.lab-card.locked{opacity:.56}.lab-card.locked:hover{transform:none;border-color:var(--border)}
.dashboard-stats{display:flex;gap:10px}.dashboard-stats .xp-card{min-width:145px;padding:22px 28px}.xp-card strong small{font-size:13px;color:#66756b}
.lab-workspace{grid-template-columns:minmax(340px,400px) minmax(0,1fr);background:#080c0a}.mission-panel{background:linear-gradient(180deg,#0c120f,#080c0a);box-shadow:14px 0 45px rgba(0,0,0,.2);position:relative;z-index:2}.back-link{display:inline-flex!important;align-items:center;gap:7px;color:#a5b2a9!important}.mission-meta{display:flex;align-items:center;gap:10px;margin-top:28px;font:600 9px IBM Plex Mono;color:#66756b;letter-spacing:.12em}.mission-meta .badge{margin:0!important}.mission-panel h1{margin:18px 0 8px!important;font-size:36px!important}.mission-summary{margin-top:0}.objective-card{margin-top:28px;padding:18px;border:1px solid rgba(53,239,120,.18);border-left:3px solid var(--green);border-radius:8px;background:rgba(53,239,120,.035)}.objective-card p{margin:9px 0 0!important;color:#c1cbc4!important}.task-list{margin:22px 0}.task-list div{display:flex;gap:13px;padding:11px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.task-list b{font:600 10px IBM Plex Mono;color:var(--green)}
.hint{background:#0a100c;border:1px solid var(--border);border-radius:8px;padding:13px 15px;font-size:12px;color:var(--muted)}.hint summary{cursor:pointer;color:#c6d0c9;display:flex;justify-content:space-between;gap:12px}.hint summary small{color:#657269}.hint p{margin-bottom:2px}.flag-form{margin-top:24px!important}.flag-form label{font:600 10px IBM Plex Mono;letter-spacing:.1em}.flag-form input{font-family:IBM Plex Mono}.flag-form .button{font-size:12px}
.browser-lab{padding:24px 28px 28px!important;background:radial-gradient(circle at 80% 10%,rgba(53,239,120,.055),transparent 30%),#0b100d!important;min-width:0}.workspace-title{display:flex;justify-content:space-between;align-items:center;margin:0 2px 14px;color:#9caaa1;font:600 9px IBM Plex Mono;letter-spacing:.12em}.workspace-title>span{color:#59675e;font-weight:400}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);margin-right:7px}.browser-frame{border:1px solid #2a3930;border-radius:12px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.38)}.browser-bar{height:54px!important;border-radius:0!important;background:#19221d!important;gap:8px!important;padding:0 14px!important}.window-dots{display:flex;gap:6px;margin-right:6px}.window-dots i{width:9px;height:9px;border-radius:50%;background:#77847b}.window-dots i:first-child{background:#ff6877}.window-dots i:nth-child(2){background:#ffbd55}.window-dots i:nth-child(3){background:#35ef78}.browser-control{width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:#829087;cursor:pointer;font-size:18px}.browser-control:hover{background:#28342d;color:white}.browser-address{background:#0f1511!important;color:#91a097;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.browser-address span{margin-right:9px}.browser-open{font:600 10px IBM Plex Mono!important;color:var(--green)!important;white-space:nowrap;padding:8px}.target-frame{display:block;width:100%;height:clamp(560px,calc(100vh - 230px),760px);border:0;background:white;border-radius:0}.environment-note{margin:12px 3px 0;color:#5e6b63;font:9px IBM Plex Mono}.environment-note span{color:var(--green)}.environment-note b{margin:0 7px;color:#334039}.browser-frame:fullscreen{background:#111a15;padding:12px}.browser-frame:fullscreen .target-frame{height:calc(100vh - 78px)}
.coming-soon{min-height:calc(100vh - 145px);display:grid;place-content:center;text-align:center;padding:30px}.coming-soon h1{font-size:48px;margin:10px}.coming-soon p{color:var(--muted);margin-bottom:28px}
.mission-success{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(2,7,4,.82);backdrop-filter:blur(10px);animation:successFade .25s ease}.mission-success.is-closing{opacity:0;pointer-events:none;transition:opacity .2s}.success-glow{position:absolute;width:min(620px,90vw);height:min(620px,90vw);border-radius:50%;background:rgba(53,239,120,.12);filter:blur(80px)}.success-card{position:relative;width:min(470px,100%);overflow:hidden;text-align:center;padding:42px 38px 34px;border:1px solid rgba(53,239,120,.3);border-radius:18px;background:linear-gradient(155deg,#101a14,#080d0a 72%);box-shadow:0 35px 100px #000,0 0 60px rgba(53,239,120,.08);animation:successRise .4s cubic-bezier(.2,.8,.2,1)}.success-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,var(--green),transparent)}.success-close{position:absolute;right:15px;top:15px;width:32px;height:32px;border:1px solid var(--border);border-radius:50%;background:#111a15;color:#8e9c93;cursor:pointer;font-size:19px}.success-close:hover{color:white;border-color:#3d5144}.success-emblem{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 22px;border:1px solid rgba(53,239,120,.38);border-radius:50%;background:rgba(53,239,120,.09);box-shadow:0 0 35px rgba(53,239,120,.12)}.success-emblem span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--green);color:#061109;font-size:27px;font-weight:900}.success-kicker{font:600 10px IBM Plex Mono;color:var(--green);letter-spacing:.23em}.success-card h2{font-size:38px;letter-spacing:-.04em;margin:10px 0}.success-card>p{max-width:355px;margin:0 auto;color:var(--muted);font-size:14px}.success-card>p strong{color:#dce5df}.success-reward{display:inline-flex;align-items:center;gap:14px;margin:25px 0;padding:10px 15px;border:1px solid var(--border);border-radius:8px;background:#0b120e}.success-reward span{font:600 9px IBM Plex Mono;color:#718078;letter-spacing:.14em}.success-reward strong{font:700 18px IBM Plex Mono;color:var(--green)}.success-actions{display:grid;grid-template-columns:1.25fr 1fr;gap:9px}.success-actions .button{font-size:11px;padding:12px 10px}.success-card>small{display:block;margin-top:23px;color:#405047;font:600 8px IBM Plex Mono;letter-spacing:.14em}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-20px;width:8px;height:14px;background:var(--green);animation:confettiFall var(--duration) linear var(--delay) forwards;transform:rotate(var(--rotation))}.confetti i:nth-child(3n){background:#8b5cf6}.confetti i:nth-child(3n+1){background:#ffbd55}@keyframes successFade{from{opacity:0}}@keyframes successRise{from{opacity:0;transform:translateY(25px) scale(.96)}}@keyframes confettiFall{to{transform:translate3d(var(--drift),105vh,0) rotate(720deg)}}
@media(prefers-reduced-motion:reduce){.mission-success,.success-card,.confetti i{animation:none!important}.confetti{display:none}}
@media(max-width:1050px){.lab-workspace{grid-template-columns:340px minmax(0,1fr)}.browser-lab{padding:18px!important}.browser-open{font-size:0!important}.browser-open:after{content:'↗';font-size:16px}}
@media(max-width:900px){.lab-workspace{grid-template-columns:1fr}.browser-lab{min-height:700px}.target-frame{height:650px}.workspace-title>span{display:none}}
@media(max-width:600px){.browser-lab{padding:10px!important}.browser-control{display:none}.browser-bar{padding:0 10px!important}.window-dots{display:none}.target-frame{height:600px}.mission-panel h1{font-size:31px!important}.success-card{padding:38px 22px 28px}.success-card h2{font-size:32px}.success-actions{grid-template-columns:1fr}.dashboard-stats{width:100%}.dashboard-stats .xp-card{min-width:0;flex:1;padding:18px 10px}}
