/* "Building your lab" screen: shown the moment a learner presses Start lab, and while the lab machine boots in the console */
.ll-overlay{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(900px 500px at 50% 110%,rgba(33,198,215,.18),transparent 70%),rgba(4,10,20,.94);backdrop-filter:blur(6px);animation:ll-in .25s ease-out}
@keyframes ll-in{from{opacity:0}to{opacity:1}}
.ll-box{width:min(560px,100%);color:#dce6f5;text-align:center}
.ll-box h2{color:#fff;font-size:1.45rem;margin:18px 0 4px;letter-spacing:-.01em}
.ll-box .ll-sub{color:#93a6bf;font-size:.92rem;margin:0 0 18px}
.ll-orbit{position:relative;width:132px;height:132px;margin:0 auto}
.ll-orbit i{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:#21c6d7;border-right-color:rgba(33,198,215,.35);animation:ll-spin 1.6s linear infinite}
.ll-orbit i:nth-child(2){inset:14px;border-top-color:#0a66ff;border-right-color:rgba(10,102,255,.35);animation-duration:2.4s;animation-direction:reverse}
.ll-orbit i:nth-child(3){inset:28px;border-top-color:#7dd3fc;border-right-color:transparent;animation-duration:3.2s}
.ll-orbit b{position:absolute;inset:44px;border-radius:14px;background:linear-gradient(135deg,#0a66ff,#21c6d7);display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px rgba(33,198,215,.55);animation:ll-pulse 1.8s ease-in-out infinite}
.ll-orbit b svg{width:22px;height:22px;color:#fff}
@keyframes ll-spin{to{transform:rotate(360deg)}}
@keyframes ll-pulse{50%{transform:scale(1.08);box-shadow:0 0 60px rgba(33,198,215,.8)}}
.ll-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin:4px 0 6px}
.ll-bar span{display:block;height:100%;width:2%;border-radius:99px;background:linear-gradient(90deg,#0a66ff,#21c6d7);box-shadow:0 0 12px rgba(33,198,215,.7);transition:width .9s ease}
.ll-meta{display:flex;justify-content:space-between;font-size:.78rem;color:#8296b0;margin-bottom:14px}
.ll-steps{list-style:none;margin:0 0 14px;padding:0;text-align:left;display:grid;gap:6px}
.ll-steps li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.03);color:#6f839d;font-size:.9rem;transition:background .3s,color .3s}
.ll-steps li i{flex:0 0 18px;height:18px;border-radius:50%;border:2px solid #34465f;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:11px}
.ll-steps li.on{color:#fff;background:rgba(33,198,215,.1)}
.ll-steps li.on i{border-color:#21c6d7;border-top-color:transparent;animation:ll-spin .8s linear infinite}
.ll-steps li.done{color:#b9c8da}
.ll-steps li.done i{border-color:#22c55e;background:#22c55e;color:#04120a}
.ll-steps li.done i::after{content:"✓";font-weight:800}
.ll-term{font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-align:left;background:#020812;border:1px solid #13243a;border-radius:10px;padding:10px 12px;height:96px;overflow:hidden;color:#7dd3fc}
.ll-term div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:ll-line .35s ease-out}
.ll-term div::before{content:"$ ";color:#22c55e}
@keyframes ll-line{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.ll-tip{margin:12px 0 0;font-size:.82rem;color:#93a6bf;min-height:2.4em}
.ll-tip b{color:#21c6d7}
/* inside the console page (lab machine still booting) */
.ll-inline{position:static;min-height:calc(100vh - 44px);background:radial-gradient(900px 500px at 50% 110%,rgba(33,198,215,.16),transparent 70%),#07111f}
.lc-embed .ll-inline{min-height:100vh}
@media (prefers-reduced-motion:reduce){.ll-overlay,.ll-orbit i,.ll-orbit b,.ll-steps li.on i,.ll-term div{animation:none}}
/* Copy / Type-in-terminal buttons above commands in lab instructions */
.lc-codebar{display:flex;justify-content:flex-end;gap:6px;margin:10px 0 -6px}
.lc-cbtn{font:600 .74rem/1 system-ui,sans-serif;padding:6px 10px;border-radius:7px;border:1px solid var(--line,#d6deea);background:var(--surface,#fff);color:var(--ink,#0b1b33);cursor:pointer}
.lc-cbtn:hover{border-color:var(--brand,#0a66ff);color:var(--brand,#0a66ff)}
.lc-cbtn.lc-type{background:var(--brand,#0a66ff);border-color:var(--brand,#0a66ff);color:#fff}
.lc-cbtn.lc-type:hover{filter:brightness(1.08);color:#fff}
.lc-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9500;background:#0b1b33;color:#fff;padding:10px 16px;border-radius:10px;font-size:.88rem;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:opacity .5s}
.lc-toast.out{opacity:0}
/* mission briefing above the tasks */
.kl-brief{margin-bottom:12px;padding:0;overflow:hidden}
.kl-brief>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px 18px}
.kl-brief>summary::-webkit-details-marker{display:none}
.kl-brief>summary b{display:block;color:var(--ink)}
.kl-brief>summary small{display:block;color:var(--muted);font-size:.8rem}
.kl-brief-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand,#0a66ff),#21c6d7);color:#fff;flex:0 0 auto}
.kl-brief-b{padding:0 18px 16px;border-top:1px solid var(--line-2,#eef2f8)}
.kl-brief-b h3{font-size:.86rem;margin:14px 0 6px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kl-brief-steps{margin:0;padding:0;list-style:none;counter-reset:s;display:grid;gap:4px}
.kl-brief-steps li{counter-increment:s;display:flex;align-items:center;gap:10px;font-size:.9rem}
.kl-brief-steps li::before{content:counter(s);flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;background:var(--brand-50,#eaf2ff);color:var(--brand-ink,#0a5be0)}
.kl-brief-steps li.is-ok::before{content:"✓";background:#22c55e;color:#fff}
.kl-brief-steps button{background:none;border:0;padding:0;text-align:left;color:var(--ink);cursor:pointer;flex:1}
.kl-brief-steps button:hover{color:var(--brand,#0a66ff);text-decoration:underline}
.kl-brief-steps span{font-size:.76rem;color:var(--muted)}
.kl-brief{flex-shrink:0}
body.lab-focus .kl-brief{background:#0f1a2e;border-color:#1c2a44;color:#c8d4e6;box-shadow:none}
body.lab-focus .kl-brief>summary b,body.lab-focus .kl-brief-steps button{color:#fff}
body.lab-focus .kl-brief-b{border-top-color:#1c2a44}
body.lab-focus .kl-brief-steps li::before{background:#16233b;color:#7dd3fc}
