:root{
  --bg:#06101c;--bg2:#0a1727;--panel:rgba(10,26,45,.64);--panel2:rgba(14,34,56,.82);--line:rgba(126,212,255,.16);
  --text:#eef9ff;--muted:#8faec0;--cyan:#3ce7ff;--blue:#5a8cff;--violet:#9b6cff;--green:#37f5a1;--amber:#ffd166;--danger:#ff6688;
  --shadow:0 24px 80px rgba(0,0,0,.35);--radius:22px;--sidebar-w:250px;--sidebar-collapsed:78px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 20% 15%,#102c46 0,#07111f 35%,#030812 100%);color:var(--text)}
body{overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}canvas#networkCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;opacity:.65}.bg-glow{position:fixed;border-radius:50%;filter:blur(90px);opacity:.2;pointer-events:none}.bg-glow-a{width:420px;height:420px;background:#206fff;top:-120px;right:-100px}.bg-glow-b{width:360px;height:360px;background:#7d3cff;bottom:-100px;left:-80px}
.glass{background:linear-gradient(180deg,rgba(20,45,70,.66),rgba(7,22,38,.72));border:1px solid rgba(136,219,255,.14);box-shadow:var(--shadow);backdrop-filter:blur(18px)}
.app-shell{position:relative;z-index:2;min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:74px 1fr 42px;transition:.25s}.app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}
.topbar{grid-column:1/3;display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:20;border-radius:0;border-left:0;border-right:0}.brand-wrap,.topbar-actions{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--blue));color:#03111d;box-shadow:0 0 28px rgba(60,231,255,.28)}.brand-title{font-weight:800;letter-spacing:.3px}.brand-subtitle{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}.icon-btn,.ghost-btn,.profile-chip,.secondary-btn{border:1px solid rgba(125,211,252,.17);background:rgba(255,255,255,.035);color:var(--text);border-radius:12px}.icon-btn{width:42px;height:42px;font-size:20px}.ghost-btn,.secondary-btn{padding:11px 15px}.profile-chip{display:flex;gap:9px;align-items:center;padding:7px 10px}.avatar{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--violet),var(--blue));font-weight:800}.status-pill{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(55,245,161,.07);border:1px solid rgba(55,245,161,.15);font-size:12px;color:#bdfae0}.dot{width:8px;height:8px;border-radius:50%}.dot.online{background:var(--green);box-shadow:0 0 10px var(--green)}
.sidebar{grid-row:2/3;padding:16px 11px;display:flex;flex-direction:column;justify-content:space-between;border-radius:0;border-left:0;border-top:0;border-bottom:0;overflow:hidden}.nav-list{display:flex;flex-direction:column;gap:9px}.nav-item{min-height:52px;border:1px solid transparent;border-radius:15px;background:transparent;color:#bad4e4;display:flex;align-items:center;gap:15px;padding:0 16px;font-size:15px;text-align:left;white-space:nowrap}.nav-item span:first-child{min-width:24px;text-align:center;font-size:19px}.nav-item.active,.nav-item:hover{background:linear-gradient(90deg,rgba(60,231,255,.12),rgba(90,140,255,.07));border-color:rgba(60,231,255,.18);color:#fff}.sidebar-collapsed .sidebar .label,.sidebar-collapsed .threat-label .label{display:none}.sidebar-collapsed .nav-item{padding:0;justify-content:center}.sidebar-bottom{padding:12px 6px}.threat-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}.progress,.profile-progress{height:7px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden}.progress span,.profile-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--green));border-radius:999px}
.content{padding:26px;min-width:0}.view{display:none}.active-view{display:block}.panel{border-radius:var(--radius);padding:24px}.hero{min-height:330px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(60,231,255,.12);box-shadow:inset 0 0 80px rgba(60,231,255,.04)}.hero-copy{max-width:720px;z-index:2}.eyebrow{color:var(--cyan);font-size:11px;font-weight:800;letter-spacing:1.8px}.hero h1,.section-title-row h1{font-size:clamp(32px,4vw,58px);line-height:1.02;margin:10px 0 16px}.hero p{color:#b7cfdd;font-size:17px;line-height:1.6;max-width:650px}.hero-actions{display:flex;gap:12px;margin-top:24px}.primary-btn,.danger-btn{border:0;border-radius:13px;padding:12px 17px;font-weight:800}.primary-btn{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#03131f;box-shadow:0 10px 30px rgba(60,231,255,.18)}.danger-btn{background:rgba(255,102,136,.11);color:#ffb5c5;border:1px solid rgba(255,102,136,.22)}.wide{width:100%}.shield-core{height:260px;position:relative;display:grid;place-items:center}.shield{font-size:76px;filter:drop-shadow(0 0 28px rgba(60,231,255,.35));animation:float 4s ease-in-out infinite}.ring{position:absolute;border:1px solid rgba(60,231,255,.16);border-radius:50%}.ring-1{width:150px;height:150px}.ring-2{width:205px;height:205px}.ring-3{width:260px;height:260px}.orbit{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 18px var(--cyan)}.orbit-a{animation:orbitA 7s linear infinite}.orbit-b{animation:orbitB 11s linear infinite;background:var(--violet)}.orbit-c{animation:orbitC 13s linear infinite;background:var(--green)}
@keyframes float{50%{transform:translateY(-10px)}}@keyframes orbitA{from{transform:rotate(0) translateX(104px)}to{transform:rotate(360deg) translateX(104px)}}@keyframes orbitB{from{transform:rotate(120deg) translateX(78px)}to{transform:rotate(480deg) translateX(78px)}}@keyframes orbitC{from{transform:rotate(210deg) translateX(126px)}to{transform:rotate(570deg) translateX(126px)}}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stat-card{border-radius:18px;padding:18px;display:flex;align-items:center;gap:14px}.stat-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:14px;background:rgba(60,231,255,.08);font-size:22px}.stat-card small{display:block;color:var(--muted);margin-bottom:5px}.stat-card strong{font-size:21px}.dashboard-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.section-head,.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.section-head h2,.panel h2{margin:7px 0 10px}.mission-preview p,.activity-panel p,.prose p{color:#aac3d1;line-height:1.65}.mission-meta{display:flex;gap:18px;flex-wrap:wrap;color:#90acbc;font-size:13px;margin:20px 0}.risk{padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:1px}.risk.low{background:rgba(55,245,161,.08);color:#78f7bd}.activity-panel{text-align:center}.activity-ring{width:150px;height:150px;border-radius:50%;margin:8px auto 18px;display:grid;place-items:center;background:conic-gradient(var(--cyan) var(--p,0%),rgba(255,255,255,.07) 0);position:relative}.activity-ring:after{content:"";position:absolute;width:116px;height:116px;background:#0a1828;border-radius:50%}.activity-ring div{z-index:1}.activity-ring strong{display:block;font-size:28px}.activity-ring span{font-size:11px;color:var(--muted)}
.section-title-row{margin-bottom:22px}.section-title-row h1{font-size:36px;margin-bottom:0}.counter{padding:9px 12px;background:rgba(60,231,255,.08);color:#9fefff;border:1px solid rgba(60,231,255,.15);border-radius:999px;font-size:12px}.missions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mission-card{position:relative;padding:20px;border-radius:20px;overflow:hidden}.mission-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 10%,rgba(60,231,255,.09),transparent 40%);pointer-events:none}.mission-card.locked{opacity:.48;filter:saturate(.45)}.mission-number{font-size:11px;color:var(--cyan);font-weight:900;letter-spacing:1px}.mission-card h3{margin:8px 0}.mission-card p{color:#9fb8c7;line-height:1.5;min-height:66px}.mission-card .card-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px}.tag{font-size:10px;border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:6px 8px;color:#a9c1cf}.mini-btn{border:1px solid rgba(60,231,255,.18);background:rgba(60,231,255,.08);color:#d9f8ff;border-radius:10px;padding:8px 11px}.done-check{position:absolute;right:16px;top:15px;color:var(--green)}
.profile-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:18px}.profile-card-large{text-align:center}.big-avatar{width:110px;height:110px;border-radius:34px;display:grid;place-items:center;margin:0 auto 14px;font-size:44px;font-weight:900;background:linear-gradient(135deg,var(--cyan),var(--violet));color:#04121d;box-shadow:0 20px 50px rgba(73,166,255,.2)}.profile-progress{margin:18px 0 8px}.data-list{display:grid;gap:8px}.data-list div{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.07);color:#a8c0cd}.data-list strong{color:white}.badges-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.badge-card{text-align:center;padding:22px;border-radius:20px}.badge-card.locked{opacity:.35}.badge-icon{font-size:40px}.settings-panel{max-width:760px}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.07)}.switch-row input{display:none}.switch-row i{width:46px;height:26px;border-radius:99px;background:rgba(255,255,255,.12);position:relative}.switch-row i:after{content:"";position:absolute;width:20px;height:20px;top:3px;left:3px;border-radius:50%;background:white;transition:.2s}.switch-row input:checked+i{background:linear-gradient(90deg,var(--cyan),var(--blue))}.switch-row input:checked+i:after{transform:translateX(20px)}
.footer{grid-column:1/3;display:grid;place-items:center;color:#6f8998;font-size:11px;border-top:1px solid rgba(255,255,255,.05)}
.modal-backdrop{position:fixed;inset:0;background:rgba(1,7,13,.72);backdrop-filter:blur(8px);z-index:50}.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:20px}.hidden{display:none!important}.modal-card{width:min(680px,96vw);max-height:86vh;overflow:auto;border-radius:24px;padding:26px;position:relative}.modal-close{position:absolute;right:14px;top:12px;width:36px;height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:white;font-size:20px}.profiles-list{display:grid;gap:8px;margin:16px 0}.profile-row{display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:14px}.form-row{display:flex;gap:8px}.form-row input{flex:1;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.18);color:white;border-radius:12px;padding:12px}.help-content{color:#b6cedc;line-height:1.7}.mission-modal-card{width:min(820px,96vw)}.mission-intro{display:grid;gap:14px}.mission-objective{padding:14px;border-left:3px solid var(--cyan);background:rgba(60,231,255,.05);border-radius:10px}.password-lab{display:grid;gap:14px;margin-top:18px}.password-lab input{padding:15px;border-radius:13px;border:1px solid rgba(255,255,255,.1);background:rgba(1,8,15,.55);color:white;font-size:17px}.strength-track{height:10px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden}.strength-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--danger),var(--amber),var(--green));transition:.25s}.feedback-box{padding:14px;border-radius:13px;background:rgba(255,255,255,.035);color:#bfd1dc;line-height:1.55}.mission-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.success-box{padding:20px;border-radius:16px;background:rgba(55,245,161,.08);border:1px solid rgba(55,245,161,.16)}
.high-contrast{--panel:rgba(0,0,0,.88);--text:#fff;--muted:#d3d3d3}.animations-off *{animation:none!important;transition:none!important}.animations-off #networkCanvas{display:none}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.hero{grid-template-columns:1fr}.shield-core{display:none}.missions-grid{grid-template-columns:repeat(2,1fr)}.badges-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:74px;bottom:42px;width:260px;z-index:30;transform:translateX(-105%);transition:.25s}.app-shell:not(.sidebar-collapsed) .sidebar{transform:translateX(0)}.content{grid-column:1;padding:16px}.profile-name,.status-pill{display:none}.brand-subtitle{display:none}.stats-grid,.missions-grid,.badges-grid,.profile-layout{grid-template-columns:1fr}.hero{padding:20px}.hero h1{font-size:36px}.topbar-actions{gap:6px}.ghost-btn{display:none}}

/* Misja 02 — Phishing */
.phish-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.phish-head h2{margin:6px 0 0}.phish-head p{margin:5px 0;color:var(--muted)}.score-chip{padding:8px 11px;border:1px solid rgba(60,231,255,.16);background:rgba(60,231,255,.06);border-radius:999px;color:#bff5ff;font-size:12px;white-space:nowrap}.mail-sim{display:grid;grid-template-columns:245px 1fr;min-height:430px;margin-top:16px;border:1px solid rgba(255,255,255,.09);border-radius:18px;overflow:hidden;background:rgba(2,10,18,.42)}.mail-list{padding:10px;border-right:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.018);display:flex;flex-direction:column;gap:7px}.mail-item{display:grid;grid-template-columns:10px 1fr;gap:9px;width:100%;text-align:left;padding:11px;border-radius:12px;border:1px solid transparent;background:transparent;color:#c5dce9}.mail-item strong,.mail-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-item strong{font-size:13px}.mail-item small{font-size:11px;color:#7896a8;margin-top:4px}.mail-item:hover,.mail-item.active{background:rgba(60,231,255,.07);border-color:rgba(60,231,255,.13)}.mail-item.answered .mail-dot{background:var(--green);box-shadow:0 0 9px rgba(55,245,161,.6)}.mail-dot{width:7px;height:7px;border-radius:50%;background:#496677;margin-top:5px}.mail-reader{padding:22px}.mail-toolbar{display:flex;justify-content:space-between;color:#6f8e9f;font-size:10px;letter-spacing:1.2px}.mail-status{color:#72eab5}.mail-reader h3{font-size:23px;margin:20px 0 7px}.mail-meta{color:#8fafc0;font-size:12px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.07)}.mail-body{min-height:95px;line-height:1.7;color:#c5d7e0}.inspect-btn{margin-bottom:12px}.link-inspector{display:grid;gap:5px;padding:12px;border-radius:12px;background:#06111d;border:1px solid rgba(255,209,102,.16);margin-bottom:14px}.link-inspector span{font-size:10px;color:#9eb4c1;text-transform:uppercase;letter-spacing:1px}.link-inspector code{color:#ffd987;word-break:break-all}.link-inspector small{color:#6f8b9b}.decision-panel{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}.decision-panel>span{display:block;color:#9fb8c7;font-size:12px;margin-bottom:10px}.decision-panel>div{display:flex;gap:9px}.decision{flex:1;padding:11px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.025);color:white;font-weight:800}.decision.safe:hover,.decision.safe.selected{border-color:rgba(55,245,161,.45);background:rgba(55,245,161,.1);color:#9ff9cb}.decision.danger:hover,.decision.danger.selected{border-color:rgba(255,102,136,.45);background:rgba(255,102,136,.1);color:#ffc0ce}.phish-result{display:grid;gap:14px}.result-score{display:flex;align-items:baseline;gap:10px}.result-score strong{font-size:50px;color:var(--cyan)}.result-score span{color:var(--muted)}.analysis-list{display:grid;gap:8px}.analysis-row{display:grid;gap:5px;padding:12px;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}.analysis-row.ok{border-left:3px solid var(--green)}.analysis-row.bad{border-left:3px solid var(--danger)}.analysis-row span{font-size:11px;color:#a9c3d1}.analysis-row small{color:#829dab;line-height:1.45}.phish-result.retry .result-score strong{color:var(--amber)}
@media(max-width:800px){.mail-sim{grid-template-columns:1fr}.mail-list{border-right:0;border-bottom:1px solid rgba(255,255,255,.08);max-height:180px;overflow:auto}.decision-panel>div{flex-direction:column}.phish-head{flex-direction:column}}


/* Mission 03 — fake login */
.login-mission-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.login-mission-head h2{margin:6px 0 0}.login-mission-head p{margin:5px 0;color:var(--muted)}.browser-sim{margin-top:16px;border:1px solid rgba(255,255,255,.1);border-radius:18px;overflow:hidden;background:#07111c;box-shadow:0 18px 45px rgba(0,0,0,.28)}.browser-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 12px;background:#111d28;border-bottom:1px solid rgba(255,255,255,.08)}.browser-dots{display:flex;gap:6px}.browser-dots i{width:9px;height:9px;border-radius:50%;background:#607481}.browser-dots i:nth-child(1){background:#ff6f82}.browser-dots i:nth-child(2){background:#ffd166}.browser-dots i:nth-child(3){background:#4de3a6}.address-bar{min-width:0;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:#071019;border:1px solid rgba(255,255,255,.08)}.address-bar code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c7dce7;font-size:12px}.address-bar.secure span{color:#68eeb1}.address-bar.insecure{border-color:rgba(255,209,102,.28);background:rgba(255,209,102,.05)}.browser-menu{color:#8da6b5;font-size:18px}.browser-page{min-height:390px;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 50% 20%,rgba(48,159,255,.12),transparent 46%),linear-gradient(160deg,#07111b,#091827)}.login-card-sim{width:min(390px,100%);padding:28px;border-radius:20px;background:rgba(8,20,32,.94);border:1px solid rgba(82,209,255,.15);box-shadow:0 18px 55px rgba(0,0,0,.3)}.login-brand{font-size:12px;letter-spacing:1.3px;text-transform:uppercase;color:#77dcff;font-weight:800}.login-card-sim h3{font-size:25px;margin:9px 0}.login-card-sim p{color:#9bb6c5;line-height:1.55;margin-bottom:18px}.login-card-sim label{display:block;font-size:11px;color:#8fa8b7;margin:10px 0 5px}.login-card-sim input{width:100%;box-sizing:border-box;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.09);background:#06101a;color:#78909d}.fake-submit{width:100%;margin-top:15px;padding:11px;border:0;border-radius:10px;background:linear-gradient(90deg,#19a9e8,#6e6bff);color:#fff;font-weight:800;opacity:.72}.login-card-sim small{display:block;margin-top:12px;color:#647f8e;line-height:1.45}.domain-lab{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0}.domain-lab>div{min-width:0}.domain-label{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#7793a4;margin-bottom:5px}.domain-lab code{color:#d7edf7;word-break:break-all}.clues-box{padding:13px 15px;border-radius:13px;border:1px solid rgba(60,231,255,.13);background:rgba(60,231,255,.045);margin-bottom:14px}.clues-box p{margin:6px 0;color:#9fc1d2;line-height:1.5}.login-decision{margin-top:8px}.analysis-row code{color:#bfeeff}
@media(max-width:800px){.login-mission-head{flex-direction:column}.domain-lab{align-items:stretch;flex-direction:column}.browser-top{grid-template-columns:auto minmax(0,1fr) auto}.browser-page{padding:18px;min-height:350px}.login-card-sim{padding:21px}}

/* v0.4 — role panels */
.role-chip{display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:12px;border:1px solid rgba(155,108,255,.22);background:rgba(155,108,255,.08);color:#e7ddff;font-weight:800}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.teacher-layout{grid-template-columns:.85fr 1.15fr}.panel-actions{display:flex;gap:9px;flex-wrap:wrap}.muted-copy{color:var(--muted);line-height:1.6}.panel-input{width:100%;padding:12px 13px;border:1px solid rgba(255,255,255,.11);background:rgba(1,8,15,.5);border-radius:12px;color:#fff;margin:5px 0 12px}.field-label{display:block;color:#9eb8c8;font-size:12px;margin-top:10px}.check-row{display:flex;gap:9px;align-items:flex-start;padding:10px 0;color:#b8cfdb;font-size:13px;line-height:1.4}.mission-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:260px;overflow:auto;padding:10px;margin:8px 0 14px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(0,0,0,.12)}.mission-picker label{display:flex;gap:7px;align-items:center;padding:7px;border-radius:8px;background:rgba(255,255,255,.025);font-size:12px;color:#b9cfdb}.management-list,.audit-list{display:grid;gap:9px}.management-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025);border-radius:13px}.management-row small{display:block;color:#809cab;margin-top:4px}.management-row code,.policy-card code{color:#bfeeff}.server-message{min-height:20px;margin-top:10px;color:#9db8c8;font-size:12px}.server-message.success{color:#80efb7}.server-message.error{color:#ff9cb2}.policy-card{padding:15px;border-radius:14px;border:1px solid rgba(60,231,255,.13);background:rgba(60,231,255,.04);margin-bottom:12px}.mini-missions{display:flex;flex-wrap:wrap;gap:5px}.mini-missions span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:rgba(60,231,255,.08);color:#bff4ff;font-size:11px}.role-select-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.role-choice{display:grid;gap:8px;text-align:left;padding:17px;border-radius:15px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);color:#fff}.role-choice:hover{border-color:rgba(60,231,255,.28);background:rgba(60,231,255,.06)}.role-choice strong{font-size:15px}.role-choice span{color:#91adbd;font-size:11px;line-height:1.45}.login-role-box{display:grid;gap:4px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.contact-note{font-size:11px;color:#7794a5}.admin-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin-tab{padding:10px 14px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#a9c1cf}.admin-tab.active{background:rgba(60,231,255,.09);color:#e9fbff;border-color:rgba(60,231,255,.2)}.audit-row{display:grid;gap:3px;padding:11px 13px;border-left:3px solid rgba(60,231,255,.35);background:rgba(255,255,255,.025);border-radius:10px}.audit-row span{color:#819dab;font-size:11px}.audit-row small{color:#a9c1cf}.auth-card{width:min(720px,96vw)}
@media(max-width:850px){.role-grid,.teacher-layout{grid-template-columns:1fr}.role-select-grid{grid-template-columns:1fr}.mission-picker{grid-template-columns:1fr}.role-chip #roleLabel{display:none}}
.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}

/* v0.4.4 — teacher mission set builder */
.set-mode-box{padding:12px 13px;margin:8px 0 12px;border:1px solid rgba(60,231,255,.12);border-radius:13px;background:rgba(60,231,255,.035)}
.set-description{padding:11px 12px;border-radius:11px;background:rgba(0,0,0,.16);color:#a9c5d3;font-size:12px;line-height:1.55}
.set-description strong{color:#d9f7ff}.set-description small{color:#7898aa}
.compact-input{max-width:115px;margin:0}.custom-set-save{padding-top:10px;margin:8px 0 14px;border-top:1px solid rgba(255,255,255,.07)}
#selectedMissionCount{font-size:11px;vertical-align:middle;margin-left:5px}
#customModeBox .form-row select{flex:1;margin:0}

/* v0.5 — teacher student results */
.teacher-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.teacher-tab{padding:10px 14px;border-radius:11px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#a9c1cf}.teacher-tab.active{background:rgba(60,231,255,.09);color:#e9fbff;border-color:rgba(60,231,255,.2)}
.results-panel{overflow:hidden}.results-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.results-toolbar h2{margin:6px 0}.results-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.results-controls .panel-input{width:auto;min-width:220px;margin:0}.results-summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:18px 0}.result-stat{padding:15px;border:1px solid rgba(60,231,255,.11);border-radius:14px;background:rgba(60,231,255,.04);display:grid;gap:3px}.result-stat strong{font-size:25px;color:#dffbff}.result-stat span{font-size:11px;color:#86a6b6;text-transform:uppercase;letter-spacing:.6px}.results-table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px}.results-table{width:100%;border-collapse:collapse;min-width:780px}.results-table th,.results-table td{padding:12px 13px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px}.results-table th{color:#84a8ba;background:rgba(0,0,0,.18);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.results-table td{color:#bad0dc}.results-table tr:last-child td{border-bottom:0}.table-progress{width:110px;height:7px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin-bottom:4px}.table-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green))}.results-table small{color:#7e9aaa}
@media(max-width:800px){.results-summary{grid-template-columns:1fr 1fr}.results-controls{width:100%}.results-controls .panel-input{width:100%}}


/* v0.6 — szczegółowy profil wyników ucznia */
.student-result-row{cursor:pointer;transition:background .18s ease}.student-result-row:hover{background:rgba(60,231,255,.055)}.row-hint{display:block;margin-top:3px;color:#5f8294!important;font-size:9px!important}.student-detail-panel{margin-top:16px}.student-detail-panel h3{margin:20px 0 10px}.student-detail-table{min-width:900px}.mission-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border:1px solid rgba(255,255,255,.08)}.mission-status.done{color:#9ff3c8;background:rgba(83,229,163,.08);border-color:rgba(83,229,163,.18)}.mission-status.pending{color:#91aab8;background:rgba(255,255,255,.03)}.student-history-head{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap}.student-history-head small{color:#6f8d9d}.student-activity-list{display:grid;gap:8px;max-height:340px;overflow:auto;padding-right:3px}.activity-history-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(0,0,0,.13)}.activity-history-row.passed{border-color:rgba(83,229,163,.15)}.activity-history-row strong{display:block;color:#cfe6f1;font-size:12px}.activity-history-row small{display:block;color:#7896a6;margin-top:3px}.activity-history-row>span{color:#63e5a8;font-size:18px}


/* v0.7 — Misja 4: Publiczne Wi‑Fi */
.wifi-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.wifi-head h2{margin:4px 0}.wifi-head p{margin:0;color:#91aebe}.wifi-device{border:1px solid rgba(60,231,255,.15);background:linear-gradient(180deg,rgba(5,20,31,.96),rgba(2,10,17,.94));border-radius:22px;padding:15px;box-shadow:0 20px 60px rgba(0,0,0,.28);margin:14px 0}.wifi-device-top{display:flex;justify-content:space-between;align-items:center;padding:3px 4px 12px;color:#d9f9ff;font-weight:800}.wifi-device-top span:last-child{font-size:11px;color:#7fa3b5;text-transform:uppercase;letter-spacing:.8px}.wifi-list{display:grid;gap:9px}.wifi-network,.wifi-action{width:100%;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:#d7ebf4;border-radius:14px;padding:12px 13px;text-align:left;transition:.18s ease}.wifi-network{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px}.wifi-network:hover,.wifi-action:hover{border-color:rgba(60,231,255,.25);background:rgba(60,231,255,.055);transform:translateY(-1px)}.wifi-network.selected,.wifi-action.selected{border-color:rgba(60,231,255,.48);background:rgba(60,231,255,.1);box-shadow:0 0 0 1px rgba(60,231,255,.08) inset}.wifi-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(60,231,255,.08)}.wifi-main{display:grid;gap:2px}.wifi-main strong{font-size:13px}.wifi-main small{color:#83a6b7;font-size:10px}.wifi-main em{color:#6f8f9f;font-size:10px;font-style:normal;line-height:1.35;margin-top:2px}.wifi-signal{font-family:monospace;color:#62e6ff;font-size:12px;letter-spacing:1px}.wifi-action{font-size:12px;line-height:1.45}.wifi-tip{margin-top:12px;padding:10px 11px;border-radius:11px;background:rgba(255,196,91,.06);border:1px solid rgba(255,196,91,.12);color:#cfb986;font-size:11px;line-height:1.5}.wifi-rules{margin-top:14px;padding:13px 15px;border-radius:13px;background:rgba(60,231,255,.045);border:1px solid rgba(60,231,255,.11);color:#a8c3d0;font-size:12px;line-height:1.55}.wifi-rules strong{color:#dcf9ff}.wifi-rules ul{margin:8px 0 0 18px;padding:0}
@media(max-width:700px){.wifi-network{grid-template-columns:32px 1fr}.wifi-signal{grid-column:2}.wifi-head{display:block}.wifi-head .score-chip{margin-top:8px;display:inline-flex}}


/* v0.8 — Misja 5: Malware */
.malware-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.malware-head h2{margin:4px 0}.malware-head p{margin:0;color:#91aebe}.malware-console{margin:14px 0;border:1px solid rgba(255,102,136,.16);background:linear-gradient(180deg,rgba(18,9,20,.92),rgba(5,11,19,.96));border-radius:20px;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.malware-case-title{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.07)}.malware-case-title>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:rgba(255,102,136,.09);font-size:20px}.malware-case-title strong{font-size:15px}.malware-case-title em{font-style:normal;font-size:9px;letter-spacing:1.2px;color:#ff91aa}.symptom-list{display:grid;gap:8px;margin:14px 0}.symptom-item{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:10px 11px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.055)}.symptom-item span{color:#ff7d9b}.symptom-item p{margin:0;color:#bcd1dc;font-size:12px;line-height:1.5}.malware-question{font-weight:800;color:#eefbff;margin:16px 0 10px}.malware-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.malware-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#d5e8f1;font-size:12px}.malware-choice:hover{border-color:rgba(255,102,136,.28);background:rgba(255,102,136,.055)}.malware-choice.selected{border-color:rgba(60,231,255,.42);background:rgba(60,231,255,.09);box-shadow:0 0 0 1px rgba(60,231,255,.06) inset}.malware-note{margin-top:12px;padding:10px 11px;border-radius:11px;background:rgba(255,209,102,.055);border:1px solid rgba(255,209,102,.12);color:#c9b782;font-size:11px;line-height:1.5}.malware-rules{margin-top:14px;padding:13px 15px;border-radius:13px;background:rgba(55,245,161,.04);border:1px solid rgba(55,245,161,.12);color:#a8c3d0;font-size:12px;line-height:1.55}.malware-rules strong{color:#bdfae0}.malware-rules ol{margin:8px 0 0 18px;padding:0}@media(max-width:700px){.malware-head{display:block}.malware-head .score-chip{margin-top:8px;display:inline-flex}.malware-choices{grid-template-columns:1fr}.malware-case-title{grid-template-columns:40px 1fr}.malware-case-title em{grid-column:2}}

/* v0.8.1 — pełne Centrum Pomocy */
.help-center-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,2fr) auto;gap:12px;align-items:center;margin-bottom:12px}.help-center-toolbar>div{display:grid;gap:3px}.help-center-toolbar small{color:#7898aa}.help-center-toolbar .panel-input{margin:0}.help-f1-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid rgba(60,231,255,.14);border-radius:15px;margin-bottom:18px;background:rgba(60,231,255,.04)}.help-f1-banner>div{display:flex;align-items:center;gap:12px}.help-f1-banner strong,.help-f1-banner small{display:block}.help-f1-banner small{color:#819eae;margin-top:2px}.help-key{width:42px;height:34px;display:grid;place-items:center;border-radius:9px;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.24);box-shadow:inset 0 -2px 0 rgba(255,255,255,.06);font:800 13px monospace;color:#dffaff}.help-group{margin:22px 0}.help-group>h2{font-size:15px;margin:0 0 10px;color:#b8d8e7}.help-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.help-topic-card{min-height:118px;padding:14px;border-radius:14px;border:1px solid rgba(255,255,255,.075);background:rgba(255,255,255,.025);color:#d9edf5;text-align:left;display:grid;align-content:start;gap:6px;transition:.18s ease}.help-topic-card:hover{transform:translateY(-2px);border-color:rgba(60,231,255,.24);background:rgba(60,231,255,.05)}.help-topic-card span{font-size:9px;text-transform:uppercase;letter-spacing:.8px;color:#62dff3}.help-topic-card strong{font-size:13px}.help-topic-card small{color:#819eae;line-height:1.45}.help-article{margin-top:22px;scroll-margin-top:90px;border-color:rgba(60,231,255,.17)}.help-article-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.help-article-head h2{margin:5px 0 12px}.help-article-body{color:#abc5d1;line-height:1.7}.help-article-body strong{color:#e6faff}.help-article-body code{padding:2px 6px;border-radius:6px;background:rgba(60,231,255,.07);color:#85edff}.help-empty{text-align:center;color:#89a7b7}.help-modal-actions{display:flex;justify-content:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.07)}
@media(max-width:980px){.help-topic-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){.help-center-toolbar{grid-template-columns:1fr}.help-topic-grid{grid-template-columns:1fr}.help-f1-banner{align-items:flex-start;flex-direction:column}.help-f1-banner button{width:100%}.help-article-head{display:block}.help-article-head button{margin-bottom:8px}}

/* v0.9 — Misja 6: Ransomware */
.ransom-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:10px 0 14px}.ransom-head h2{margin:0 0 5px}.ransom-head p{margin:0;color:#86a7b7}.ransom-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin-top:16px}.ransom-desktop{padding:12px;border-radius:18px;border:1px solid rgba(255,77,122,.18);background:radial-gradient(circle at 30% 20%,rgba(151,42,82,.18),transparent 45%),rgba(3,9,16,.7);min-height:300px}.fake-window{border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;background:#08131d;box-shadow:0 20px 45px rgba(0,0,0,.25)}.fake-window-bar{display:flex;justify-content:space-between;padding:9px 11px;background:rgba(255,255,255,.06);color:#c6dae4;font-size:11px}.fake-files{padding:12px;display:grid;gap:7px}.fake-files>div{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:6px;padding:8px;border-radius:8px;background:rgba(255,255,255,.025);font:11px monospace;color:#9fb8c4}.locked-ext{color:#ff668f;font-weight:800}.ransom-note{margin-top:12px;padding:14px;border:1px solid rgba(255,77,122,.22);border-radius:12px;background:rgba(139,22,58,.13)}.ransom-note strong{color:#ff789a;letter-spacing:1px}.ransom-note p{line-height:1.55;color:#c6d6dd}.ransom-note small{color:#7895a3}.ransom-question{padding:16px;border-radius:18px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.075)}.ransom-question h3{font-size:15px;line-height:1.45;margin:10px 0 13px}.phase-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.9px;color:#ffabc0;background:rgba(255,77,122,.1);border:1px solid rgba(255,77,122,.2)}.ransom-choices{display:grid;gap:8px}.ransom-choice{padding:11px 12px;text-align:left;border-radius:11px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.18);color:#d4e6ee;line-height:1.4}.ransom-choice:hover{border-color:rgba(60,231,255,.23);background:rgba(60,231,255,.045)}.ransom-choice.selected{border-color:rgba(60,231,255,.5);background:rgba(60,231,255,.09);box-shadow:inset 3px 0 0 #3ce7ff}.ransom-playbook{margin-top:14px;padding:15px;border-radius:13px;border:1px solid rgba(55,245,161,.16);background:rgba(55,245,161,.045);color:#a9c9b9}.ransom-playbook ol{margin:9px 0 0 19px;display:grid;gap:5px}.ransom-playbook b{color:#70f6b2}@media(max-width:760px){.ransom-shell{grid-template-columns:1fr}.ransom-head{display:block}.ransom-head .score-chip{margin-top:8px;display:inline-flex}}


/* v0.10 — Misja 7: Aktualizacje */
.update-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:10px 0 14px}.update-head h2{margin:0 0 5px}.update-head p{margin:0;color:#86a7b7}.update-lab{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin-top:16px}.update-screen{border:1px solid rgba(60,231,255,.15);border-radius:18px;background:linear-gradient(180deg,rgba(13,32,46,.96),rgba(5,14,22,.96));overflow:hidden;box-shadow:0 20px 45px rgba(0,0,0,.24)}.update-toolbar{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.07);color:#d7edf5;font-size:11px}.update-source{padding:18px 18px 8px;display:grid;gap:5px}.update-source small{color:#678998;font-size:9px;letter-spacing:1.1px;font-weight:900}.update-source strong{color:#60e7ff;font-size:13px}.update-message{margin:8px 18px 14px;padding:16px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);line-height:1.6;color:#c7dce5}.update-status{display:flex;align-items:center;gap:6px;padding:0 18px 18px;color:#7799a8;font-size:10px}.update-status span{width:8px;height:8px;border-radius:50%;background:#39e8ff;box-shadow:0 0 12px rgba(57,232,255,.5)}.update-status span:nth-child(2){opacity:.65}.update-status span:nth-child(3){opacity:.35}.update-status em{margin-left:4px;font-style:normal}.update-question{padding:16px;border-radius:18px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.075)}.update-question h3{font-size:15px;line-height:1.45;margin:10px 0 13px}.update-rules{margin-top:14px;padding:15px;border-radius:13px;border:1px solid rgba(60,231,255,.16);background:rgba(60,231,255,.045);color:#a9c8d4}.update-rules ol{margin:9px 0 0 19px;display:grid;gap:5px}.update-rules b{color:#66eaff}@media(max-width:760px){.update-lab{grid-template-columns:1fr}.update-head{display:block}.update-head .score-chip{margin-top:8px;display:inline-flex}}


/* v0.11 — Misja 8: Antywirus */
.antivirus-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.antivirus-head h2{margin:4px 0}.antivirus-head p{margin:0;color:#91aebe}.antivirus-lab{margin:14px 0;padding:16px;border-radius:20px;border:1px solid rgba(85,239,190,.16);background:linear-gradient(180deg,rgba(6,26,28,.94),rgba(5,12,20,.97));box-shadow:0 20px 60px rgba(0,0,0,.26)}.scan-panel{display:grid;grid-template-columns:86px 1fr;gap:16px;align-items:center;padding:16px;border-radius:16px;background:rgba(46,224,175,.045);border:1px solid rgba(46,224,175,.12)}.scan-orbit{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;font-size:30px;background:radial-gradient(circle,rgba(68,244,192,.18),rgba(25,137,115,.04));border:1px solid rgba(81,240,194,.28);box-shadow:0 0 32px rgba(65,239,193,.09)}.scan-info small{display:block;color:#62ddbd;letter-spacing:1px;font-size:9px}.scan-info h3{margin:4px 0 2px;font-size:18px}.scan-info code{color:#8aa8b6;word-break:break-all}.risk-line{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.06);font-size:11px;color:#87a3b1}.risk-line strong{color:#ffd278}.scan-alert{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:start;margin:12px 0;padding:13px;border-radius:13px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07)}.scan-alert>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:rgba(255,209,102,.08);font-size:19px}.scan-alert p{margin:0;color:#bad0da;line-height:1.55;font-size:12px}.antivirus-question h3{margin:10px 0;color:#e9faff}.antivirus-choices{display:grid;gap:9px}.antivirus-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#d7eaf2}.antivirus-choice:hover{border-color:rgba(79,238,193,.28);background:rgba(79,238,193,.05)}.antivirus-choice.selected{border-color:rgba(79,238,193,.5);background:rgba(79,238,193,.1);box-shadow:0 0 0 1px rgba(79,238,193,.06) inset}.antivirus-rules{margin-top:14px;padding:13px 15px;border-radius:13px;background:rgba(79,238,193,.04);border:1px solid rgba(79,238,193,.13);color:#a8c5cf;font-size:12px;line-height:1.55}.antivirus-rules strong{color:#c2fae9}.antivirus-rules ol{margin:8px 0 0 18px;padding:0}@media(max-width:700px){.antivirus-head{display:block}.antivirus-head .score-chip{margin-top:8px;display:inline-flex}.scan-panel{grid-template-columns:1fr}.scan-orbit{width:58px;height:58px}.scan-info h3{font-size:16px}}


/* v0.12 — Misja 9: Socjotechnika */
.social-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.social-head h2{margin:4px 0}.social-head p{margin:0;color:#91adbb;font-size:12px}.social-lab{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:15px;margin-top:14px}.chat-phone{border-radius:20px;background:linear-gradient(180deg,rgba(13,29,48,.98),rgba(7,17,29,.98));border:1px solid rgba(155,108,255,.22);overflow:hidden;box-shadow:inset 0 0 36px rgba(155,108,255,.035)}.chat-top{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(155,108,255,.055)}.chat-top>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:rgba(155,108,255,.1);font-size:20px}.chat-top strong{display:block}.chat-top small{display:block;color:#829fae;margin-top:2px}.chat-top em{font-style:normal;color:#63efb2;font-size:10px}.chat-thread{min-height:250px;padding:16px;display:flex;flex-direction:column;justify-content:flex-end;gap:9px;background:radial-gradient(circle at 20% 20%,rgba(60,231,255,.035),transparent 45%)}.chat-bubble{max-width:88%;padding:11px 13px;border-radius:15px 15px 15px 5px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07);color:#d7e8ef;line-height:1.5;font-size:12px}.chat-bubble.them{align-self:flex-start}.social-question{padding:16px;border-radius:18px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07)}.social-question h3{margin:10px 0 12px}.social-choices{display:grid;gap:9px}.social-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#d7eaf2}.social-choice:hover{border-color:rgba(155,108,255,.32);background:rgba(155,108,255,.06)}.social-choice.selected{border-color:rgba(155,108,255,.52);background:rgba(155,108,255,.12);box-shadow:0 0 0 1px rgba(155,108,255,.08) inset}.social-signals{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.social-signals strong{width:100%;color:#bcd5df;font-size:11px}.social-signals span{font-size:10px;color:#b8a8ff;border:1px solid rgba(155,108,255,.2);background:rgba(155,108,255,.06);padding:5px 8px;border-radius:999px}.social-rules{margin-top:14px;padding:13px 15px;border-radius:13px;background:rgba(155,108,255,.05);border:1px solid rgba(155,108,255,.15);color:#abc4cf;font-size:12px;line-height:1.55}.social-rules strong{color:#d2c8ff}.social-rules ol{margin:8px 0 0 18px;padding:0}@media(max-width:760px){.social-lab{grid-template-columns:1fr}.social-head{display:block}.social-head .score-chip{display:inline-flex;margin-top:8px}.chat-thread{min-height:210px}}


/* v0.13 — Misja 10: Media społecznościowe i prywatność */
.privacy-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 16px}.privacy-head h2{margin:0 0 4px}.privacy-head p{margin:0;color:var(--muted)}
.privacy-lab{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:18px;margin:18px 0}.profile-preview,.privacy-card{background:rgba(9,18,35,.72);border:1px solid rgba(107,218,255,.18);border-radius:20px;padding:18px}.profile-preview{text-align:center;position:relative;overflow:hidden}.profile-cover{height:82px;border-radius:14px;background:linear-gradient(120deg,rgba(0,209,255,.34),rgba(132,92,255,.32));margin:-2px -2px 0}.profile-avatar{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;margin:-34px auto 10px;background:#101d35;border:4px solid #142541;font-size:34px}.profile-preview strong,.profile-preview small{display:block}.profile-preview small{color:var(--muted);margin-top:5px}.privacy-meter{height:8px;background:rgba(255,255,255,.07);border-radius:99px;overflow:hidden;margin-top:18px}.privacy-meter span{display:block;height:100%;background:linear-gradient(90deg,#19d3ff,#7d72ff);transition:width .25s ease}.privacy-scene{display:flex;gap:13px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;margin:12px 0 16px;background:rgba(255,255,255,.025)}.privacy-scene>span{font-size:30px}.privacy-scene h3,.privacy-scene p{margin:0}.privacy-scene p{color:var(--muted);margin-top:5px}.privacy-choices{display:grid;gap:10px}.privacy-choice{width:100%;text-align:left;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.035);color:inherit;padding:13px 14px;border-radius:13px;cursor:pointer}.privacy-choice:hover,.privacy-choice.selected{border-color:rgba(59,216,255,.62);background:rgba(40,190,255,.11)}.privacy-rules{margin:18px 0;padding:16px;border-radius:16px;background:rgba(37,188,255,.07);border:1px solid rgba(37,188,255,.18)}.privacy-rules ol{margin-bottom:0}@media(max-width:760px){.privacy-lab{grid-template-columns:1fr}.privacy-head{flex-direction:column}}


/* v0.14 — Misja 11: Ślad cyfrowy */
.footprint-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 15px}.footprint-head h2{margin:0 0 4px}.footprint-head p{margin:0;color:var(--muted)}.footprint-lab{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:17px;margin:17px 0}.trace-map{min-height:330px;position:relative;border-radius:20px;border:1px solid rgba(83,229,255,.16);background:radial-gradient(circle at center,rgba(36,190,255,.08),rgba(5,14,28,.94) 58%);overflow:hidden}.trace-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:#0e2138;border:1px solid rgba(70,221,255,.38);font-size:34px;box-shadow:0 0 35px rgba(45,205,255,.13);z-index:2}.trace-core small{display:block;font-size:9px;color:#7fb2c4;margin-top:-18px}.trace-node{position:absolute;width:126px;padding:10px;border-radius:13px;background:rgba(13,31,50,.96);border:1px solid rgba(255,255,255,.09);z-index:2;box-shadow:0 12px 28px rgba(0,0,0,.2)}.trace-node span{font-size:18px}.trace-node small{display:block;color:#adc4cf;line-height:1.35;margin-top:5px}.trace-node.n1{left:8%;top:10%}.trace-node.n2{right:7%;top:14%}.trace-node.n3{left:18%;bottom:9%}.trace-map:before,.trace-map:after{content:"";position:absolute;left:50%;top:50%;width:70%;height:1px;background:linear-gradient(90deg,transparent,rgba(61,219,255,.28),transparent);transform-origin:center}.trace-map:before{transform:translate(-50%,-50%) rotate(28deg)}.trace-map:after{transform:translate(-50%,-50%) rotate(-34deg)}.footprint-card{border-radius:20px;padding:17px;background:rgba(9,18,35,.76);border:1px solid rgba(107,218,255,.18)}.footprint-source{display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;margin:10px 0 13px;padding:11px;border-radius:14px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}.footprint-source>span{font-size:28px}.footprint-source small,.footprint-source strong{display:block}.footprint-source small{font-size:9px;color:#6ea8bc;letter-spacing:1px}.footprint-source strong{color:#5ee6ff;margin:2px 0}.footprint-source h3{margin:2px 0 0}.exposure-meter{margin:12px 0 16px}.exposure-meter>span{display:block;color:#89a9b8;font-size:10px;margin-bottom:6px}.exposure-meter>div{height:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}.exposure-meter i{display:block;height:100%;background:linear-gradient(90deg,#34d9ff,#b06dff);border-radius:inherit}.footprint-choices{display:grid;gap:9px}.footprint-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.03);color:#d8eaf2}.footprint-choice:hover,.footprint-choice.selected{border-color:rgba(83,229,255,.5);background:rgba(83,229,255,.08)}.footprint-rules{margin-top:14px;padding:14px 15px;border-radius:13px;background:rgba(83,229,255,.045);border:1px solid rgba(83,229,255,.15);color:#aac5d0}.footprint-rules ol{margin:8px 0 0 18px;padding:0}.footprint-rules b{color:#68e9ff}@media(max-width:760px){.footprint-lab{grid-template-columns:1fr}.footprint-head{display:block}.footprint-head .score-chip{display:inline-flex;margin-top:8px}.trace-map{min-height:300px}.trace-node{width:112px}}


/* v0.15 — Misja 12: Bezpieczeństwo telefonu */
.phone-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:10px 0 16px}.phone-head h2{margin:0}.phone-head p{margin:5px 0 0;color:#9bb6c8}.phone-lab{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(320px,1.35fr);gap:20px;align-items:stretch;margin:18px 0}.phone-device{width:230px;max-width:100%;margin:auto;border:2px solid rgba(132,209,255,.35);border-radius:34px;padding:9px;background:linear-gradient(155deg,#0d1825,#07101a);box-shadow:0 22px 55px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,255,255,.03)}.phone-notch{width:82px;height:18px;border-radius:0 0 14px 14px;background:#02070c;margin:-1px auto 0;position:relative;z-index:2}.phone-screen{min-height:390px;border-radius:26px;padding:16px;background:radial-gradient(circle at 30% 15%,rgba(47,151,255,.18),transparent 35%),linear-gradient(180deg,#0c2032,#07131f);display:flex;flex-direction:column;align-items:center}.phone-status{width:100%;display:flex;justify-content:space-between;font-size:.72rem;color:#cde9f6}.phone-lock{font-size:3.4rem;margin:45px 0 14px;filter:drop-shadow(0 0 18px rgba(95,211,255,.24))}.phone-screen>small{color:#8eaabb;margin:4px 0 18px}.phone-security-meter{height:7px;width:88%;border-radius:99px;background:#102938;overflow:hidden}.phone-security-meter span{height:100%;display:block;background:linear-gradient(90deg,#4cc8ff,#60f0b2);transition:.3s}.phone-mini-settings{display:grid;width:88%;gap:8px;margin-top:26px}.phone-mini-settings span{padding:8px 10px;border:1px solid rgba(135,213,255,.13);background:rgba(4,18,30,.52);border-radius:10px;font-size:.76rem;color:#b7d0de}.phone-card{border:1px solid rgba(128,210,255,.17);background:rgba(7,23,37,.7);border-radius:18px;padding:20px}.phone-scene{display:flex;gap:15px;align-items:flex-start;padding:14px;border-radius:14px;background:rgba(12,40,60,.55);margin:12px 0 18px}.phone-scene>span{font-size:2rem}.phone-scene h3,.phone-scene p{margin:0}.phone-scene p{margin-top:6px;color:#aec6d5}.phone-choices{display:grid;gap:10px;margin-top:12px}.phone-choice{padding:12px 14px;border-radius:12px;border:1px solid rgba(130,211,255,.18);background:#0b2132;color:#d9eef7;text-align:left;cursor:pointer;transition:.18s}.phone-choice:hover,.phone-choice.selected{transform:translateY(-1px);border-color:#62d6ff;background:#10334a}.phone-rules{margin-top:18px;padding:16px 18px;border-radius:14px;background:rgba(38,135,114,.12);border:1px solid rgba(93,238,190,.2)}.phone-rules ol{margin-bottom:0;padding-left:22px}.phone-rules li{margin:6px 0;color:#bed6d8}@media(max-width:760px){.phone-lab{grid-template-columns:1fr}.phone-head{align-items:flex-start;flex-direction:column}.phone-device{width:210px}.phone-screen{min-height:350px}}


/* v0.16 — Misja 13: Uprawnienia aplikacji */
.perm-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.perm-head h2{margin:4px 0}.perm-head p{margin:0;color:var(--muted)}
.perm-lab{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);gap:18px;align-items:stretch;margin:18px 0}
.perm-phone{border:1px solid rgba(111,226,255,.25);border-radius:28px;padding:24px;background:linear-gradient(180deg,rgba(8,19,38,.98),rgba(9,33,48,.88));box-shadow:0 25px 55px rgba(0,0,0,.28);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:330px;text-align:center}
.perm-app-icon{width:78px;height:78px;border-radius:23px;display:grid;place-items:center;font-size:38px;background:linear-gradient(145deg,rgba(68,208,255,.18),rgba(123,82,255,.18));border:1px solid rgba(120,220,255,.35);margin-bottom:12px}.perm-phone>strong{font-size:20px}.perm-phone>small{color:var(--muted);margin:4px 0 15px}
.perm-request-list{width:100%;display:grid;gap:8px}.perm-request-list span{padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);text-align:left}.perm-toggle-row{margin-top:16px;width:100%;display:flex;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}.perm-toggle-row i{font-style:normal;color:#7ce8bc;font-weight:800}
.perm-card{border:1px solid rgba(111,226,255,.18);border-radius:20px;padding:22px;background:rgba(8,18,35,.72)}.perm-card h3{margin:12px 0}.perm-card p{color:var(--muted);line-height:1.6}.perm-warning{padding:12px 14px;border-radius:12px;background:rgba(255,190,74,.08);border:1px solid rgba(255,190,74,.22);margin:16px 0;color:#f9d68b}
.perm-choices{display:grid;gap:10px}.perm-choice{width:100%;text-align:left;padding:13px 14px;border-radius:12px;border:1px solid rgba(126,213,255,.18);background:rgba(255,255,255,.035);color:var(--text);cursor:pointer;transition:.18s}.perm-choice:hover,.perm-choice.selected{transform:translateY(-1px);border-color:rgba(89,220,255,.7);background:rgba(67,190,255,.1);box-shadow:0 0 0 1px rgba(70,210,255,.08) inset}
.perm-rules{margin-top:18px;padding:16px 18px;border:1px solid rgba(124,232,188,.22);border-radius:14px;background:rgba(49,178,131,.07)}.perm-rules ol{margin:9px 0 0 20px}.perm-rules li{margin:6px 0;color:var(--muted)}
@media(max-width:760px){.perm-lab{grid-template-columns:1fr}.perm-phone{min-height:260px}.perm-head{flex-direction:column}}


/* v0.17 — Misja 14: Kody QR */
.qr-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 14px}.qr-head h2{margin:0 0 4px}.qr-head p{margin:0;color:var(--muted)}.qr-lab{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);gap:18px;margin:18px 0}.qr-scanner,.qr-card{border:1px solid rgba(97,224,255,.18);border-radius:20px;background:rgba(7,19,34,.78);padding:20px}.qr-scanner{display:flex;flex-direction:column;align-items:center;text-align:center}.qr-frame{width:190px;height:190px;border:2px solid rgba(85,226,255,.48);border-radius:22px;padding:18px;position:relative;background:radial-gradient(circle at center,rgba(45,208,255,.08),rgba(3,12,22,.95));box-shadow:0 0 32px rgba(65,218,255,.09) inset;margin:2px 0 15px}.qr-frame>i{position:absolute;left:12px;right:12px;top:50%;height:2px;background:linear-gradient(90deg,transparent,#61e7ff,transparent);box-shadow:0 0 14px #61e7ff;animation:qrscan 2.2s linear infinite}.qr-fake{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;width:100%;height:100%}.qr-fake span{background:rgba(219,249,255,.88);border-radius:2px}.qr-fake span:nth-child(3n),.qr-fake span:nth-child(5n){background:transparent;border:2px solid rgba(219,249,255,.75)}.qr-scanner>small{color:var(--muted);margin:3px 0 14px}.small-btn{padding:8px 11px;font-size:12px}.qr-target{width:100%;margin-top:12px;padding:11px;border-radius:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);text-align:left}.qr-target small{display:block;color:#74d9ee;font-size:9px;letter-spacing:1px;margin-bottom:5px}.qr-target code{font-size:11px;word-break:break-all;color:#cdeaf2}.qr-scene{display:flex;gap:13px;padding:14px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);margin:12px 0 17px}.qr-scene>span{font-size:30px}.qr-scene h3,.qr-scene p{margin:0}.qr-scene p{margin-top:5px;color:var(--muted);line-height:1.55}.qr-choices{display:grid;gap:9px}.qr-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:var(--text);cursor:pointer}.qr-choice:hover,.qr-choice.selected{border-color:rgba(86,225,255,.62);background:rgba(60,197,255,.09)}.qr-rules{margin-top:18px;padding:16px;border-radius:14px;background:rgba(54,201,170,.07);border:1px solid rgba(77,231,188,.18)}.qr-rules ol{margin:8px 0 0 20px}.qr-rules li{margin:6px 0;color:var(--muted)}@keyframes qrscan{0%{transform:translateY(-72px);opacity:.2}50%{opacity:1}100%{transform:translateY(72px);opacity:.2}}@media(max-width:760px){.qr-lab{grid-template-columns:1fr}.qr-head{flex-direction:column}.qr-frame{width:170px;height:170px}}


/* v0.18 — Misja 15: Kopia zapasowa 3-2-1 */
.backup-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 14px}.backup-head h2{margin:0 0 4px}.backup-head p{margin:0;color:var(--muted)}.backup-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);gap:18px;margin:18px 0}.backup-designer,.backup-card{border:1px solid rgba(97,224,255,.18);border-radius:20px;background:rgba(7,19,34,.78);padding:20px}.backup-designer h3{margin-top:0}.backup-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}.backup-rule-grid>div{padding:14px 8px;border-radius:14px;text-align:center;background:rgba(76,221,255,.055);border:1px solid rgba(76,221,255,.15)}.backup-rule-grid strong{display:block;font-size:30px;color:#7deaff}.backup-rule-grid span{font-size:10px;color:var(--muted);line-height:1.3}.backup-stack{display:grid;gap:8px;margin:16px 0}.backup-stack span{padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);font-size:12px}.backup-designer>small{color:var(--muted);line-height:1.5}.backup-scene{display:flex;gap:13px;padding:14px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);margin:12px 0 17px}.backup-scene>span{font-size:30px}.backup-scene h3,.backup-scene p{margin:0}.backup-scene p{margin-top:5px;color:var(--muted);line-height:1.55}.backup-choices{display:grid;gap:9px}.backup-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:var(--text);cursor:pointer}.backup-choice:hover,.backup-choice.selected{border-color:rgba(86,225,255,.62);background:rgba(60,197,255,.09)}.backup-rules{margin-top:18px;padding:16px;border-radius:14px;background:rgba(54,201,170,.07);border:1px solid rgba(77,231,188,.18)}.backup-rules ol{margin:8px 0 0 20px}.backup-rules li{margin:6px 0;color:var(--muted)}@media(max-width:760px){.backup-layout{grid-template-columns:1fr}.backup-head{flex-direction:column}.backup-rule-grid{grid-template-columns:1fr 1fr 1fr}}


/* v0.19 — Misja 16: Uwierzytelnianie 2FA */
.twofa-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 14px}.twofa-head h2{margin:0 0 4px}.twofa-head p{margin:0;color:var(--muted)}.twofa-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);gap:18px;margin:18px 0}.twofa-panel,.twofa-card{border:1px solid rgba(121,219,255,.18);border-radius:20px;background:rgba(7,19,34,.78);padding:20px}.twofa-panel h3{margin-top:0}.twofa-stack{display:grid;gap:8px;margin:14px 0}.twofa-stack span,.twofa-methods span{padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);font-size:12px}.twofa-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.twofa-methods span{text-align:center}.twofa-panel small{color:var(--muted);line-height:1.5}.twofa-scene{display:flex;gap:13px;padding:14px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07);margin:12px 0 17px}.twofa-scene>span{font-size:30px}.twofa-scene h3,.twofa-scene p{margin:0}.twofa-scene p{margin-top:5px;color:var(--muted);line-height:1.55}.twofa-choices{display:grid;gap:9px}.twofa-choice{padding:12px 13px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:var(--text);cursor:pointer}.twofa-choice:hover,.twofa-choice.selected{border-color:rgba(86,225,255,.62);background:rgba(60,197,255,.09)}.twofa-rules{margin-top:18px;padding:16px;border-radius:14px;background:rgba(91,115,255,.08);border:1px solid rgba(112,151,255,.2)}.twofa-rules ol{margin:8px 0 0 20px}.twofa-rules li{margin:6px 0;color:var(--muted)}@media(max-width:760px){.twofa-layout{grid-template-columns:1fr}.twofa-head{flex-direction:column}.twofa-methods{grid-template-columns:1fr}}


/* v0.20 — Misja 17: Incydent bezpieczeństwa */
.incident-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:12px 0 14px}.incident-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0}.incident-timeline span{padding:10px 8px;border:1px solid rgba(125,211,252,.16);border-radius:12px;background:rgba(8,18,35,.55);font-size:.82rem;text-align:center;opacity:.52}.incident-timeline span.active{opacity:1;border-color:rgba(125,211,252,.45);box-shadow:inset 0 0 22px rgba(56,189,248,.06)}.incident-card{padding:20px;border:1px solid rgba(125,211,252,.18);border-radius:20px;background:linear-gradient(145deg,rgba(9,21,39,.95),rgba(13,17,33,.92))}.incident-scene{display:flex;gap:16px;align-items:flex-start;margin:14px 0 18px}.incident-scene>span{font-size:2.6rem}.incident-scene h3{margin:0 0 6px}.incident-scene p{margin:0;color:var(--muted)}.incident-choices{display:grid;gap:10px}.incident-choice{width:100%;text-align:left;padding:13px 14px;border:1px solid rgba(125,211,252,.18);border-radius:12px;background:rgba(255,255,255,.025);color:inherit;cursor:pointer}.incident-choice:hover,.incident-choice.selected{border-color:rgba(125,211,252,.62);background:rgba(56,189,248,.09)}.incident-rules{margin:18px 0;padding:16px;border-radius:16px;background:rgba(56,189,248,.07);border:1px solid rgba(56,189,248,.17)}.incident-rules ol{margin:10px 0 0;padding-left:22px}.incident-rules li{margin:7px 0}@media(max-width:800px){.incident-timeline{grid-template-columns:1fr}.incident-head{flex-direction:column}}
/* v0.21 — Misja 18: Cyber Escape Room */
.escape-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 14px}.escape-head h2{margin:0 0 4px}.escape-head p{margin:0;color:var(--muted)}.escape-map{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:16px 0}.escape-map span{height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);color:var(--muted);font-weight:700}.escape-map span.active{border-color:#68e7ff;color:#dffaff;box-shadow:0 0 18px rgba(92,225,255,.16)}.escape-map span.done{background:rgba(68,205,153,.1);border-color:rgba(84,231,174,.35);color:#8df0c7}.escape-card{border:1px solid rgba(109,224,255,.18);border-radius:20px;background:linear-gradient(180deg,rgba(10,25,42,.92),rgba(5,14,26,.92));padding:20px;box-shadow:inset 0 0 30px rgba(44,180,255,.03)}.escape-scene{display:flex;gap:14px;padding:15px;border-radius:15px;background:rgba(255,255,255,.026);border:1px solid rgba(255,255,255,.07);margin:12px 0 17px}.escape-scene>span{font-size:34px}.escape-scene h3,.escape-scene p{margin:0}.escape-scene p{margin-top:5px;color:var(--muted);line-height:1.55}.escape-choices{display:grid;gap:10px}.escape-choice{padding:13px 14px;text-align:left;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:var(--text);cursor:pointer}.escape-choice:hover,.escape-choice.selected{border-color:rgba(99,228,255,.62);background:rgba(60,197,255,.09)}@media(max-width:760px){.escape-head{flex-direction:column}.escape-map{grid-template-columns:repeat(3,1fr)}}

/* v0.23 — Osiągnięcia i odznaki */
.achievement-dashboard{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}.achievement-level-card,.achievement-next-card{min-height:170px}.achievement-level-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.achievement-level-top h2{margin:6px 0 4px;font-size:28px}.achievement-level-top p{margin:0;color:#8eabba}.achievement-level-top>strong{font-size:28px;color:#69f5c4}.achievement-level-track{height:11px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;margin:24px 0 10px}.achievement-level-track span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green));box-shadow:0 0 18px rgba(60,231,255,.25);transition:width .35s ease}.achievement-level-card>small{color:#7898a8}.next-achievement{display:flex;align-items:center;gap:15px;margin-top:20px;padding:16px;border-radius:16px;border:1px solid rgba(60,231,255,.13);background:rgba(60,231,255,.045)}.next-achievement>span{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;font-size:29px;background:linear-gradient(135deg,rgba(60,231,255,.12),rgba(131,101,255,.14));border:1px solid rgba(255,255,255,.08)}.next-achievement div{display:grid;gap:5px}.next-achievement small{color:#87a5b4;line-height:1.35}.achievement-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.achievement-stats article{padding:17px;border-radius:17px;display:grid;gap:5px}.achievement-stats small{color:#88a7b7;text-transform:uppercase;letter-spacing:.7px;font-size:10px}.achievement-stats strong{font-size:28px;color:#e7fbff}.achievement-stats span{color:#718f9e;font-size:11px}.achievement-groups{display:block}.badge-group{margin:0 0 22px}.badge-group>h2{font-size:16px;margin:0 0 11px;color:#a9c9d8}.badge-group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.badge-card{position:relative;overflow:hidden;min-height:190px;transition:.2s transform,.2s border-color,.2s opacity}.badge-card.earned{border-color:rgba(55,245,161,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 12px 35px rgba(0,0,0,.12)}.badge-card.earned:hover{transform:translateY(-3px);border-color:rgba(55,245,161,.4)}.badge-card.locked{opacity:.42;filter:saturate(.55)}.badge-card.locked .badge-icon{filter:grayscale(.3)}.badge-icon{font-size:42px;margin-bottom:8px}.badge-state{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.65px;color:#76efb3;background:rgba(55,245,161,.07);border:1px solid rgba(55,245,161,.12);margin-bottom:5px}.badge-card.locked .badge-state{color:#88a0ad;background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07)}.badge-card h3{margin:5px 0 7px;font-size:16px}.badge-card p{margin:0;color:#89a5b3;line-height:1.45;font-size:11px}@media(max-width:1050px){.badge-group-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.achievement-dashboard,.achievement-stats,.badge-group-grid{grid-template-columns:1fr}.achievement-level-top h2{font-size:23px}}
.achievement-unlock{margin:18px 0;padding:16px;border-radius:16px;border:1px solid rgba(55,245,161,.2);background:linear-gradient(135deg,rgba(55,245,161,.07),rgba(60,231,255,.04));text-align:left}.achievement-unlock-row{display:flex;align-items:center;gap:12px;padding-top:10px}.achievement-unlock-row>span{font-size:32px}.achievement-unlock-row div{display:grid;gap:3px}.achievement-unlock-row small{color:#8caaB8}
\n/* v0.24 — Certyfikat ukończenia */\n.certificate-locked{text-align:center;padding:48px 28px}.certificate-lock-icon{font-size:54px}.certificate-locked h2{margin:12px 0 8px}.certificate-locked p{color:#8fa9b7}.certificate-progress{max-width:560px;height:12px;margin:22px auto 10px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.certificate-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--green));transition:width .35s ease}.certificate-sheet{background:#f8fbff;color:#10243a;padding:18px;border-radius:20px;box-shadow:0 25px 70px rgba(0,0,0,.28);max-width:1100px;margin:0 auto}.certificate-frame{min-height:660px;border:3px solid #173a55;outline:1px solid #8cb5ca;outline-offset:-12px;padding:60px 70px;text-align:center;position:relative;background:radial-gradient(circle at top left,rgba(60,231,255,.12),transparent 26%),radial-gradient(circle at bottom right,rgba(131,101,255,.11),transparent 28%),#fff}.certificate-brand{font-weight:950;letter-spacing:4px;color:#0c5778}.certificate-kicker{margin-top:42px;font-size:14px;letter-spacing:3px;color:#577084}.certificate-frame h2{font-size:32px;margin:10px 0 22px;color:#153d5b}.certificate-intro{color:#60788a;margin:0}.certificate-frame h1{font-size:44px;margin:14px 0;color:#092d49}.certificate-copy{max-width:780px;margin:0 auto;color:#496578;line-height:1.7;font-size:15px}.certificate-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:760px;margin:42px auto 34px}.certificate-metrics div{border-top:1px solid #b7cbd8;padding-top:13px}.certificate-metrics small,.certificate-footer-row small{display:block;color:#7890a1;text-transform:uppercase;letter-spacing:1px;font-size:10px}.certificate-metrics strong{display:block;margin-top:5px;font-size:21px;color:#143d58}.certificate-footer-row{display:flex;justify-content:space-between;align-items:flex-end;text-align:left;margin-top:45px}.certificate-signature{text-align:right}.certificate-signature span{display:block;font-family:Georgia,serif;font-size:24px;font-style:italic;color:#163f5b}.certificate-actions{display:flex;justify-content:center;margin-top:18px}.hidden{display:none!important}@media(max-width:800px){.certificate-frame{padding:42px 26px}.certificate-frame h1{font-size:34px}.certificate-metrics{grid-template-columns:1fr}.certificate-footer-row{gap:20px;flex-direction:column;align-items:center;text-align:center}.certificate-signature{text-align:center}}\n@media print{body.printing-certificate *{visibility:hidden!important}body.printing-certificate #certificateSheet,body.printing-certificate #certificateSheet *{visibility:visible!important}body.printing-certificate #certificateSheet{position:absolute!important;left:0;top:0;width:100%;max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important;border-radius:0!important}body.printing-certificate .certificate-frame{min-height:0!important;height:190mm;box-sizing:border-box!important} @page{size:A4 landscape;margin:8mm}}\n
/* v0.25 — rozbudowany panel nauczyciela */
.teacher-analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.analytics-card{padding:17px;border-radius:16px;border:1px solid rgba(60,231,255,.12);background:rgba(6,18,31,.68)}.ranking-list,.performance-list,.mission-performance{display:grid;gap:9px;margin-top:12px}.ranking-row{display:grid;grid-template-columns:32px minmax(130px,1fr) minmax(90px,.8fr);gap:10px;align-items:center;padding:10px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}.rank-pos{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:rgba(60,231,255,.08);color:#bff5ff;font-weight:900}.ranking-row small,.area-row small,.mission-performance-row small{display:block;color:#7f9aa9;margin-top:3px}.rank-bar,.performance-bar{height:7px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.rank-bar i,.performance-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green))}.area-row{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;padding:10px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}.area-row .performance-bar{grid-column:1/-1}.area-row>span{font-weight:900;color:#dff9ff}.mission-analytics-card{margin:16px 0}.mission-performance{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-performance-row{padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}.mission-performance-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px}.mission-performance-head span{font-weight:900;color:#baf2ff}.mission-performance-row .performance-bar{margin-bottom:6px}@media(max-width:900px){.teacher-analytics-grid,.mission-performance{grid-template-columns:1fr}}@media(max-width:650px){.ranking-row{grid-template-columns:32px 1fr}.ranking-row .rank-bar{grid-column:1/-1}}


/* v0.26 — hybrydowe konta uczniów */
.student-account-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.student-account-banner h2{margin:3px 0 5px}.student-mode-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.teacher-tab[data-teacher-tab="students"]{white-space:nowrap}@media(max-width:760px){.student-account-banner{align-items:flex-start;flex-direction:column}.student-mode-actions{grid-template-columns:1fr}}

/* v0.27 — tryb nauczyciela na lekcji */
.live-lesson-panel{display:grid;gap:18px}.live-lesson-controls{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(5,18,31,.45)}
.live-student-list,.lesson-lock-list{display:grid;gap:8px;margin-top:12px}.live-student-row,.lesson-lock-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025)}
.live-student-row small,.lesson-lock-row small{display:block;color:var(--muted);margin-top:3px}.live-status{font-size:.78rem;padding:5px 9px;border-radius:999px;border:1px solid var(--line)}.live-status.done{color:#8ff0bf;border-color:rgba(93,222,158,.35)}.live-status.started{color:#7ed7ff;border-color:rgba(95,196,255,.35)}.live-status.waiting{color:#a9b8c8}.lesson-lock-row button{min-width:102px}.student-reset-btn{margin-left:6px}
.live-student-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:rgba(89,213,255,.32);box-shadow:0 0 30px rgba(49,158,255,.08)}
@media(max-width:760px){.live-student-banner,.live-student-row,.lesson-lock-row{align-items:flex-start;flex-direction:column}.live-student-banner button,.lesson-lock-row button{width:100%}}

/* v0.28 — system poziomów trudności */
.difficulty-config{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding:14px;margin:12px 0;border:1px solid rgba(255,255,255,.08);border-radius:14px}
.difficulty-config .server-message{grid-column:1/-1}
.difficulty-student-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.difficulty-badge{padding:10px 14px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.08em;border:1px solid rgba(255,255,255,.14)}
.difficulty-badge.easy{background:rgba(49,196,141,.14)}
.difficulty-badge.standard{background:rgba(77,169,255,.14)}
.difficulty-badge.hard{background:rgba(255,111,97,.16)}
html[data-difficulty="easy"] .mission-objective::after{content:"  •  Tryb ŁATWY: niższy próg zaliczenia i pełne wskazówki.";font-weight:600}
html[data-difficulty="hard"] .clues-box:not(.force-show){display:none!important}
html[data-difficulty="hard"] #showCluesBtn{display:none!important}
html[data-difficulty="hard"] .mission-objective::after{content:"  •  Tryb TRUDNY: wyższy próg zaliczenia; część podpowiedzi ukryta.";font-weight:600}
@media(max-width:760px){.difficulty-config{grid-template-columns:1fr}.difficulty-config .server-message{grid-column:auto}.difficulty-student-banner{align-items:flex-start;flex-direction:column}}

/* v0.29 — tryb egzaminacyjny */
.exam-student-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid rgba(255,190,77,.28);background:linear-gradient(135deg,rgba(255,190,77,.08),rgba(255,255,255,.025))}.exam-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.exam-modal-card{width:min(920px,94vw);max-height:92vh;overflow:auto}.exam-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.exam-timer{font-size:28px;font-weight:900;letter-spacing:1px;padding:10px 14px;border-radius:12px;background:rgba(255,190,77,.09);border:1px solid rgba(255,190,77,.25)}.exam-question-card{padding:18px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(125,211,252,.12);margin-bottom:14px}.exam-question-card h3{margin:0 0 12px}.exam-options{display:grid;gap:9px}.exam-option{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid rgba(125,211,252,.12);border-radius:11px;background:rgba(0,0,0,.12)}.exam-option:hover{border-color:rgba(60,231,255,.4)}.exam-submit-row{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.exam-result-hero{text-align:center;padding:24px}.exam-result-hero strong{display:block;font-size:54px;margin:10px 0}.exam-lock-note{padding:10px 12px;border-radius:10px;background:rgba(255,190,77,.07);border:1px solid rgba(255,190,77,.18);color:#ffe2a6}.exam-active body{}.exam-active #openHelpCenterBtn{display:none}
@media(max-width:900px){.exam-config-grid{grid-template-columns:1fr 1fr}.exam-student-banner{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.exam-config-grid{grid-template-columns:1fr}}


/* v0.30 — UI polish */
:root{--ease-out:cubic-bezier(.2,.8,.2,1);--focus-ring:0 0 0 3px rgba(92,214,255,.22)}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
button,input,select{transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out),transform .18s var(--ease-out),background .18s var(--ease-out),opacity .18s var(--ease-out)}
button:not(:disabled):hover{transform:translateY(-1px)}
button:not(:disabled):active{transform:translateY(0) scale(.985)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:none;box-shadow:var(--focus-ring)!important;border-color:#63d9ff!important}
.glass{backdrop-filter:blur(18px) saturate(120%);-webkit-backdrop-filter:blur(18px) saturate(120%)}
.panel,.mission-card,.stat-card{transition:transform .25s var(--ease-out),border-color .25s var(--ease-out),box-shadow .25s var(--ease-out)}
.panel:hover,.mission-card:hover,.stat-card:hover{border-color:rgba(110,220,255,.24);box-shadow:0 18px 60px rgba(0,0,0,.18)}
.mission-card:not(.locked):hover{transform:translateY(-3px)}
.view{opacity:0;transform:translateY(8px);pointer-events:none}
.view.active-view{opacity:1;transform:none;pointer-events:auto;animation:viewIn .32s var(--ease-out)}
@keyframes viewIn{from{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}
.top-action-btn{width:38px;height:38px;font-size:17px}
.app-splash{position:fixed;inset:0;z-index:99999;background:radial-gradient(circle at 50% 42%,#0b2d46 0,#071421 32%,#030911 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transition:opacity .45s ease,visibility .45s ease;color:#eaf8ff}
.app-splash.hidden{opacity:0;visibility:hidden;pointer-events:none}
.splash-logo{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;font-weight:900;font-size:28px;letter-spacing:-1px;background:linear-gradient(145deg,rgba(78,216,255,.28),rgba(110,83,255,.26));border:1px solid rgba(130,226,255,.38);box-shadow:0 0 55px rgba(67,205,255,.18)}
.app-splash strong{font-size:24px}.app-splash small{color:#89aabc}
.splash-progress{width:min(280px,64vw);height:4px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:8px}.splash-progress span{display:block;height:100%;width:38%;background:linear-gradient(90deg,#4be1ff,#886cff);border-radius:inherit;animation:splashLoad 1.05s var(--ease-out) forwards}
@keyframes splashLoad{0%{width:8%}55%{width:64%}100%{width:100%}}
.splash-orbit{position:absolute;width:190px;height:190px;border:1px solid rgba(94,218,255,.08);border-radius:50%;animation:spin 7s linear infinite}.splash-orbit span{position:absolute;width:7px;height:7px;border-radius:50%;background:#5cddff;box-shadow:0 0 16px #5cddff}.splash-orbit span:nth-child(1){top:12px;left:62px}.splash-orbit span:nth-child(2){right:6px;top:92px}.splash-orbit span:nth-child(3){bottom:8px;left:78px}
.toast-stack{position:fixed;right:20px;top:78px;z-index:100000;display:grid;gap:10px;width:min(360px,calc(100vw - 28px));pointer-events:none}
.ui-toast{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:start;padding:13px 14px;border:1px solid rgba(122,219,255,.22);border-radius:15px;background:rgba(7,22,35,.94);box-shadow:0 18px 60px rgba(0,0,0,.34);backdrop-filter:blur(16px);animation:toastIn .3s var(--ease-out);color:#eaf8ff}.ui-toast.out{animation:toastOut .25s ease forwards}.ui-toast .toast-icon{font-size:20px}.ui-toast strong{display:block;font-size:13px}.ui-toast small{display:block;color:#91adbd;margin-top:2px;line-height:1.35}.ui-toast button{border:0;background:transparent;color:#8eabbc;font-size:18px;padding:0;cursor:pointer}.ui-toast.success{border-color:rgba(79,236,165,.28)}.ui-toast.warn{border-color:rgba(255,195,90,.3)}.ui-toast.error{border-color:rgba(255,102,126,.3)}
@keyframes toastIn{from{opacity:0;transform:translateX(22px) scale(.98)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateX(25px) scale(.97)}}
.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
body.ui-fullscreen .topbar{border-top-color:rgba(96,221,255,.32)}
body.animations-off *,body.animations-off *::before,body.animations-off *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
body.animations-off .app-splash{display:none!important}
@media(max-width:900px){.topbar-actions .status-pill{display:none}.top-action-btn{display:none}.hero{grid-template-columns:1fr}.shield-core{min-height:220px}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.content{padding:14px}.topbar{padding:9px 10px}.brand-subtitle{display:none}.brand-title{font-size:14px}.topbar-actions{gap:5px}.topbar-actions .ghost-btn{padding:8px 9px;font-size:0}.topbar-actions .ghost-btn::after{content:'F1';font-size:12px}.role-chip,.profile-chip{padding:7px 9px}.profile-chip .profile-name,.role-chip span:last-child{display:none}.hero{padding:22px 18px}.hero h1{font-size:clamp(28px,10vw,42px)}.stats-grid{grid-template-columns:1fr}.section-title-row{align-items:flex-start;gap:10px}.missions-grid{grid-template-columns:1fr}.toast-stack{right:14px;top:68px}.footer{font-size:10px;text-align:center;padding-inline:12px}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.app-splash{display:none!important}}


/* Pakiet 2 — Codzienne zagrożenia */
.pack2-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 18px}.pack2-head h2{margin:.25rem 0}.pack2-scene{display:flex;gap:18px;align-items:center;padding:22px;border:1px solid rgba(87,221,255,.2);border-radius:22px;background:linear-gradient(135deg,rgba(19,42,71,.9),rgba(12,24,46,.8));margin:18px 0}.pack2-icon{font-size:3rem;filter:drop-shadow(0 0 16px rgba(70,220,255,.45))}.pack2-scene small{color:#65e4ff;letter-spacing:.12em}.pack2-scene h3{margin:4px 0 7px}.pack2-scene p{margin:0;color:var(--muted)}.pack2-choices{display:grid;gap:10px;margin:14px 0 4px}.pack2-choice{width:100%;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid rgba(129,182,221,.23);background:rgba(9,22,42,.72);color:var(--text);cursor:pointer;transition:.2s}.pack2-choice:hover,.pack2-choice:focus-visible{transform:translateY(-1px);border-color:rgba(74,222,255,.72);box-shadow:0 10px 28px rgba(0,0,0,.2)}.pack2-choice.selected{border-color:#55e7ff;background:rgba(42,154,194,.17);box-shadow:0 0 0 1px rgba(85,231,255,.18) inset}@media(max-width:720px){.pack2-head,.pack2-scene{flex-direction:column}.pack2-icon{font-size:2.3rem}}

/* v0.36 language switch */
.cs-lang-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid rgba(125,211,252,.22);border-radius:999px;background:rgba(4,13,26,.55);backdrop-filter:blur(10px)}
.cs-lang-switch button{border:0;background:transparent;color:#91a8bf;font:700 11px/1 system-ui;padding:7px 9px;border-radius:999px;cursor:pointer;letter-spacing:.06em}
.cs-lang-switch button.active{background:linear-gradient(135deg,rgba(34,211,238,.24),rgba(59,130,246,.22));color:#fff;box-shadow:0 0 18px rgba(34,211,238,.12)}
@media(max-width:760px){.topbar .cs-lang-switch{order:-1}.cs-lang-switch button{padding:6px 8px}}

/* v0.37 — Tryb kampanii */
.campaign-hero{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;margin-bottom:20px;background:linear-gradient(135deg,rgba(35,113,160,.16),rgba(93,58,175,.12))}.campaign-hero-icon{font-size:64px;filter:drop-shadow(0 0 28px rgba(85,231,255,.28))}.campaign-hero h2{margin:.2rem 0}.campaign-progress{height:10px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin:14px 0 7px}.campaign-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#48e7ff,#8b73ff);box-shadow:0 0 18px rgba(72,231,255,.28)}.campaign-chapters{display:grid;gap:16px}.campaign-card{padding:22px;position:relative;overflow:hidden}.campaign-card.done{border-color:rgba(72,235,164,.28)}.campaign-card.locked{opacity:.62}.campaign-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.campaign-chapter-icon{font-size:34px}.campaign-card h2{margin:.15rem 0}.campaign-status{font-size:11px;font-weight:800;letter-spacing:.08em;color:#7ee7ff}.campaign-card.done .campaign-status{color:#78e7a9}.campaign-card p{color:var(--muted);max-width:900px}.campaign-mission-strip{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.campaign-node{width:40px;height:40px;border-radius:12px;border:1px solid rgba(125,211,252,.2);background:rgba(8,24,40,.72);color:#dff8ff;font-weight:800;cursor:pointer}.campaign-node.done{background:rgba(58,204,140,.16);border-color:rgba(78,235,165,.4);color:#8ff0b9}.campaign-node:disabled{cursor:not-allowed;opacity:.55}.campaign-card-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid rgba(125,211,252,.1);padding-top:14px}.campaign-card-foot span{color:#8fabbd;font-weight:700}@media(max-width:700px){.campaign-hero{grid-template-columns:1fr}.campaign-hero-icon{font-size:48px}.campaign-card-head{grid-template-columns:auto 1fr}.campaign-status{grid-column:1/-1}.campaign-card-foot{align-items:stretch;flex-direction:column}.campaign-start{width:100%}}

/* v0.38 — Codzienne wyzwanie */
.daily-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.daily-stat{padding:15px 16px;border:1px solid rgba(91,220,255,.16);background:rgba(7,25,40,.66);border-radius:16px;display:flex;flex-direction:column}.daily-stat strong{font-size:1.55rem;color:#f5fbff}.daily-stat span{font-size:.78rem;color:#8eafc0;text-transform:uppercase;letter-spacing:.08em}.daily-card{overflow:hidden;position:relative}.daily-card:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(0,255,188,.12),transparent 70%);right:-130px;top:-180px;pointer-events:none}.daily-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.daily-head h2{font-size:clamp(1.7rem,4vw,2.8rem);margin:.35rem 0;color:#f7fcff}.daily-date{border:1px solid rgba(104,232,255,.25);background:rgba(4,20,32,.75);padding:10px 14px;border-radius:999px;color:#9ceeff;white-space:nowrap}.daily-question{position:relative;z-index:1}.daily-question>strong{display:block;font-size:1.15rem;line-height:1.55;color:#edfaff;margin-bottom:18px}.daily-options{display:grid;gap:10px}.daily-option{width:100%;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid rgba(123,219,255,.18);background:rgba(8,28,43,.82);color:#e9f8ff;cursor:pointer;transition:.2s}.daily-option:hover:not(:disabled){transform:translateY(-2px);border-color:rgba(80,240,212,.55);background:rgba(11,43,57,.92)}.daily-option.correct{border-color:rgba(62,236,165,.7);background:rgba(22,111,78,.32)}.daily-option.wrong{border-color:rgba(255,101,123,.7);background:rgba(120,33,51,.28)}.daily-feedback{margin-top:18px;min-height:24px;color:#a9c5d3;line-height:1.55}.daily-feedback.success{color:#7ff0ba}.daily-feedback.error{color:#ffabb8}.daily-feedback.done{color:#92dfc7}.daily-empty{padding:30px;text-align:center;color:#a7c4d2}@media(max-width:760px){.daily-stats{grid-template-columns:repeat(2,1fr)}.daily-head{flex-direction:column}.daily-date{align-self:flex-start}}
/* v0.39 — Rangi i sezony */
.season-hero{display:flex;gap:24px;align-items:center;margin-bottom:20px;background:radial-gradient(circle at 15% 20%,rgba(76,201,240,.15),transparent 35%),linear-gradient(135deg,rgba(11,31,55,.95),rgba(16,20,48,.95))}.season-rank-icon{font-size:64px;filter:drop-shadow(0 0 18px rgba(91,214,255,.35))}.season-main{flex:1}.season-main h2{margin:.2rem 0;font-size:clamp(1.7rem,4vw,3rem)}.season-progress{height:12px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin:12px 0}.season-progress span{display:block;height:100%;background:linear-gradient(90deg,#58e6ff,#a66cff);border-radius:inherit;box-shadow:0 0 16px rgba(88,230,255,.45)}.season-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.season-rank-row,.season-history-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.07)}.season-rank-row span,.season-history-row>span{font-size:24px}.season-rank-row strong{flex:1}.season-rank-row small{color:#91a8ba}.season-rank-row.reached{background:rgba(72,207,173,.07);border-radius:12px}.season-history-row div{display:flex;flex-direction:column}.season-history-row small{color:#91a8ba}@media(max-width:760px){.season-grid{grid-template-columns:1fr}.season-hero{align-items:flex-start}.season-rank-icon{font-size:48px}}

/* v0.40 — Odznaki klasowe */
.class-badges-student{margin-top:18px}.class-badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.class-badge-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.class-badge-card{padding:16px;border:1px solid rgba(130,206,239,.16);border-radius:18px;background:linear-gradient(145deg,rgba(9,26,43,.9),rgba(8,18,35,.78));opacity:.72;transition:.2s}.class-badge-card.earned{opacity:1;border-color:rgba(87,239,171,.35);box-shadow:0 0 28px rgba(59,222,168,.08) inset}.class-badge-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.class-badge-icon{font-size:30px;filter:drop-shadow(0 0 12px rgba(95,220,255,.25))}.class-badge-card h3{margin:0 0 2px;color:#f4fbff}.class-badge-card small{color:#8fb0c2;font-size:10px;letter-spacing:.08em}.class-badge-card p{color:#aac1ce;font-size:.9rem;line-height:1.45;min-height:42px}.class-badge-progress{height:8px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin:10px 0}.class-badge-progress span{display:block;height:100%;background:linear-gradient(90deg,#4fe8ff,#62eda8);border-radius:inherit}.class-badge-condition{display:block;line-height:1.35}.class-badge-card.earned .class-badge-top small{color:#73efae}@media(max-width:980px){.class-badge-grid.compact{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.class-badge-grid,.class-badge-grid.compact{grid-template-columns:1fr}}

/* v0.41 class leaderboard */
.leaderboard-settings-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:14px;align-items:end;margin:18px 0 22px}.leaderboard-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.leaderboard-podium-card{padding:22px 16px;border:1px solid rgba(109,224,255,.18);border-radius:20px;background:linear-gradient(180deg,rgba(17,39,61,.86),rgba(8,21,35,.9));text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.18)}.leaderboard-podium-card.place-1{transform:translateY(-8px);border-color:rgba(255,215,96,.42)}.podium-medal{display:block;font-size:2rem;margin-bottom:8px}.leaderboard-podium-card strong,.leaderboard-podium-card b,.leaderboard-podium-card small{display:block}.leaderboard-podium-card b{font-size:1.35rem;margin:7px 0;color:#dffaff}.leaderboard-podium-card small{color:#91afc2}.leaderboard-list{overflow:auto;border:1px solid rgba(109,224,255,.12);border-radius:18px}.leaderboard-head,.leaderboard-row{display:grid;grid-template-columns:56px minmax(170px,2fr) minmax(130px,1fr) 100px 100px;gap:12px;align-items:center;padding:13px 16px}.leaderboard-head{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#8fb0c3;background:rgba(255,255,255,.035)}.leaderboard-row{border-top:1px solid rgba(255,255,255,.06)}.leaderboard-row:nth-child(-n+4) strong{color:#e7fbff}.leaderboard-row b{color:#6de0ff}@media(max-width:900px){.leaderboard-settings-grid{grid-template-columns:1fr}.leaderboard-podium{grid-template-columns:1fr}.leaderboard-podium-card.place-1{transform:none}.leaderboard-head,.leaderboard-row{grid-template-columns:44px minmax(150px,2fr) minmax(110px,1fr)}.leaderboard-head span:nth-child(4),.leaderboard-head span:nth-child(5),.leaderboard-row span:nth-child(4),.leaderboard-row span:nth-child(5){display:none}}

/* v0.42 — tryb drużynowy */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.team-card{position:relative;overflow:hidden}.team-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.team-card-head h3{margin:.2rem 0;color:#f8fbff!important}.team-status{font-size:.72rem;font-weight:800;text-transform:uppercase;padding:6px 9px;border-radius:999px;background:rgba(148,163,184,.14)}.team-status.done{background:rgba(34,197,94,.16);color:#86efac}.team-status.active{background:rgba(56,189,248,.16);color:#7dd3fc}.team-progress{height:9px;border-radius:99px;background:rgba(148,163,184,.13);overflow:hidden;margin:12px 0}.team-progress span{display:block;height:100%;background:linear-gradient(90deg,#22d3ee,#60a5fa,#a78bfa)}.team-stats{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 10px;align-items:baseline}.team-members{display:grid;gap:7px;margin:10px 0 14px}.team-member-row,.team-member-check{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:rgba(15,23,42,.38)}.team-member-row.done{border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.06)}.team-member-picker{display:grid;gap:8px;max-height:260px;overflow:auto;margin:8px 0 14px}.team-actions{display:flex;gap:8px;flex-wrap:wrap}.danger-btn.compact{padding:7px 10px;font-size:.78rem}@media(max-width:720px){.team-grid{grid-template-columns:1fr}.team-stats{grid-template-columns:auto 1fr}.team-card-head{flex-direction:column}}

/* v0.43 – generator losowych incydentów */
.incident-generator-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:18px}.incident-console{min-height:520px}.incident-severity{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.incident-severity span{padding:9px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.04)}.incident-story{padding:18px;border-radius:16px;background:linear-gradient(135deg,rgba(255,75,90,.08),rgba(59,130,246,.08));border:1px solid rgba(255,255,255,.1);margin:16px 0 20px}.incident-actions{display:grid;gap:10px;margin:14px 0}.incident-action{display:flex;align-items:center;gap:12px;text-align:left;padding:13px 15px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit;cursor:pointer}.incident-action:hover{transform:translateY(-1px);border-color:rgba(102,220,255,.45)}.incident-action span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(102,220,255,.12);font-weight:700}.incident-action.selected{opacity:.75;border-color:rgba(102,220,255,.45)}.incident-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.incident-stat-grid>div{padding:14px;border-radius:14px;background:rgba(255,255,255,.04);text-align:center}.incident-stat-grid strong{display:block;font-size:1.5rem}.incident-stat-grid span{font-size:.78rem;opacity:.72}.incident-history{display:grid;gap:8px;margin:10px 0 18px}.incident-history>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}.incident-guidance{margin:16px 0;padding:16px;border-radius:14px;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2)}@media(max-width:900px){.incident-generator-layout{grid-template-columns:1fr}.incident-stat-grid{grid-template-columns:1fr 1fr 1fr}}

/* v0.44 — Raport PDF ucznia */
.student-report-sheet{max-width:1100px;margin:0 auto;background:#fff;color:#163147;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.25);overflow:hidden}.student-report-page{padding:34px 38px}.report-header{display:flex;justify-content:space-between;gap:24px;border-bottom:2px solid #d9e8ef;padding-bottom:20px}.report-brand{font-weight:950;letter-spacing:3px;color:#0b6c88}.report-header h1{margin:6px 0;color:#102f49}.report-header p{margin:0;color:#607889}.report-date{text-align:right;min-width:130px}.report-date small,.report-identity small,.report-mini-grid small{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:#7891a1}.report-date strong{display:block;margin-top:5px}.report-identity{display:grid;grid-template-columns:1.2fr 1.2fr 1fr;gap:14px;margin:22px 0}.report-identity>div{border:1px solid #dbe8ee;border-radius:12px;padding:13px}.report-identity strong{display:block;margin-top:5px}.report-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:16px 0 24px}.report-metrics>div{background:#f1f7fa;border-radius:12px;padding:12px;text-align:center}.report-metrics strong{display:block;font-size:20px;color:#0c5778}.report-metrics span{display:block;font-size:10px;color:#637b8a;margin-top:3px}.report-section{margin:20px 0}.report-section h2{font-size:17px;color:#163f5b;margin:0 0 10px}.report-badges{display:flex;gap:7px;flex-wrap:wrap}.report-badge{background:#e9f8fb;border:1px solid #b9e3ec;color:#0c5c70;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.report-muted{color:#7891a1}.report-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-columns ol{margin:0;padding-left:22px;color:#496578}.report-columns li{margin:6px 0}.report-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.report-mini-grid>div{border:1px solid #dbe8ee;border-radius:12px;padding:12px}.report-mini-grid strong{display:block;font-size:20px;margin:4px 0}.report-mini-grid span{font-size:11px;color:#6a8291}.report-table-section table{width:100%;border-collapse:collapse;font-size:11px}.report-table-section th{background:#eef6f9;color:#36576b;text-align:left;padding:8px;border-bottom:1px solid #ccdce5}.report-table-section td{padding:7px 8px;border-bottom:1px solid #e4eef2}.report-footer{display:flex;justify-content:space-between;border-top:1px solid #d9e8ef;margin-top:24px;padding-top:12px;color:#7891a1;font-size:10px}.teacher-report-overlay{position:fixed;inset:0;z-index:9998;background:#0a1219;overflow:auto;padding:18px}.teacher-report-toolbar{max-width:1100px;margin:0 auto 12px;display:flex;justify-content:space-between;gap:10px}.teacher-report-overlay.hidden{display:none!important}@media(max-width:900px){.report-identity,.report-columns,.report-mini-grid{grid-template-columns:1fr}.report-metrics{grid-template-columns:repeat(2,1fr)}.student-report-page{padding:22px 18px}.report-table-section{overflow:auto}}
@media print{body.printing-student-report *{visibility:hidden!important}body.printing-student-report [data-print-target="1"],body.printing-student-report [data-print-target="1"] *{visibility:visible!important}body.printing-student-report [data-print-target="1"]{position:absolute!important;left:0;top:0;width:100%!important;max-width:none!important;margin:0!important;box-shadow:none!important;border-radius:0!important}body.printing-student-report .student-report-page{padding:6mm!important}body.printing-student-report .teacher-report-toolbar{display:none!important}body.printing-student-report .report-table-section table{font-size:9pt}body.printing-student-report .report-table-section tr{break-inside:avoid}body.printing-student-report .report-section{break-inside:avoid} @page{size:A4 portrait;margin:8mm}}
.class-report-areas{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.class-report-areas>div{border:1px solid #dbe8ee;border-radius:12px;padding:12px}.class-report-areas span,.class-report-areas small{display:block;color:#607889}.class-report-areas strong{display:block;font-size:20px;color:#0c5778;margin:4px 0}.class-report-table{width:100%;border-collapse:collapse;font-size:11px}.class-report-table th{background:#eef6f9;color:#36576b;text-align:left;padding:8px;border-bottom:1px solid #ccdce5}.class-report-table td{padding:7px 8px;border-bottom:1px solid #e4eef2}@media(max-width:900px){.class-report-areas{grid-template-columns:1fr}}

/* v0.47 — import / eksport profilu lokalnego */
.local-profile-transfer-modal{max-width:680px}.transfer-preview-card{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.transfer-preview-card>div{padding:14px;border:1px solid rgba(109,224,255,.16);border-radius:14px;background:rgba(255,255,255,.04)}.transfer-preview-card small,.transfer-preview-card strong{display:block}.transfer-preview-card small{color:#91afc2;text-transform:uppercase;font-size:.68rem;letter-spacing:.07em}.transfer-preview-card strong{font-size:1.15rem;margin-top:5px;color:#e7fbff}.transfer-warning{padding:13px 14px;border-radius:14px;background:rgba(251,191,36,.09);border:1px solid rgba(251,191,36,.28);color:#fde68a;margin:14px 0}.transfer-check{display:flex;gap:9px;align-items:flex-start;margin:12px 0;color:#c9deea}.transfer-check input{margin-top:3px}@media(max-width:720px){.transfer-preview-card{grid-template-columns:1fr 1fr}}

/* v0.48 Event Center */
.event-center-nav{position:relative}.event-unread-badge{margin-left:auto;min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ff5978;color:#fff;font-size:10px;font-weight:900;box-shadow:0 0 18px rgba(255,89,120,.4)}
.event-toolbar{padding:14px 16px;border-radius:18px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.event-filters,.event-actions{display:flex;gap:8px;flex-wrap:wrap}.event-filters .active{border-color:rgba(61,235,255,.55);background:rgba(61,235,255,.14);color:#dffcff}.event-center-list{display:grid;gap:10px}.event-row{padding:15px 16px;border-radius:17px;display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:start;transition:.2s}.event-row.unread{border-color:rgba(83,224,255,.28);background:linear-gradient(135deg,rgba(8,31,48,.92),rgba(8,24,37,.8));box-shadow:inset 3px 0 0 rgba(75,225,255,.62)}.event-row.read{opacity:.72}.event-row.success{box-shadow:inset 3px 0 0 rgba(79,236,165,.55)}.event-row.warn{box-shadow:inset 3px 0 0 rgba(255,195,90,.6)}.event-row.error{box-shadow:inset 3px 0 0 rgba(255,102,126,.65)}.event-type-icon{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:rgba(81,218,255,.1);font-weight:900}.event-title-line{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.event-title-line strong{color:#effbff}.event-title-line span{font-size:11px;color:#7896a7;white-space:nowrap}.event-copy p{margin:4px 0 5px;color:#a8c0cf;line-height:1.45}.event-copy small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#638497}.event-empty{padding:36px;text-align:center;border-radius:18px}.event-empty>span{font-size:36px}.event-empty h3{margin:8px 0}.event-empty p{color:#8da9b8}.topbar-event-btn{position:relative}
@media(max-width:700px){.event-row{grid-template-columns:34px 1fr}.event-row>.mini-btn{grid-column:2;justify-self:start}.event-title-line{flex-direction:column;gap:2px}.event-toolbar{align-items:stretch}.event-actions{width:100%}.event-actions button{flex:1}}


/* v0.49 — accessibility mode */
:root{--a11y-focus:0 0 0 3px rgba(255,209,102,.95),0 0 0 6px rgba(6,16,28,.95)}
body.large-text{font-size:118%}
body.large-text .muted-copy,body.large-text small,body.large-text .brand-subtitle{font-size:max(0.82em,13px)}
body.large-text .nav-item{font-size:1rem;min-height:58px}
body.large-text button,body.large-text input,body.large-text select,body.large-text textarea{font-size:1rem}
body.high-contrast{--bg:#000;--bg2:#050505;--panel:#000;--panel2:#050505;--line:#fff;--text:#fff;--muted:#f0f0f0;--cyan:#00ffff;--blue:#70a7ff;--green:#66ff99;--amber:#ffe066;--danger:#ff8098;background:#000}
body.high-contrast .glass,body.high-contrast .panel,body.high-contrast .mission-card,body.high-contrast .stat-card{background:#000!important;border-color:#fff!important;box-shadow:none!important;backdrop-filter:none!important}
body.high-contrast button,body.high-contrast input,body.high-contrast select,body.high-contrast textarea{border-color:#fff!important}
body.high-contrast a{color:#00ffff;text-decoration:underline}
body.high-contrast #networkCanvas,body.high-contrast .bg-glow{display:none!important}
body.enhanced-focus :focus-visible{outline:3px solid #ffd166!important;outline-offset:3px!important;box-shadow:var(--a11y-focus)!important}
.accessibility-summary{margin:16px 0 4px;padding:14px 16px;border:1px solid rgba(125,211,252,.18);border-radius:14px;background:rgba(255,255,255,.03);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.accessibility-summary small{color:var(--muted)}kbd{font:700 .82em/1 ui-monospace,SFMono-Regular,Consolas,monospace;border:1px solid currentColor;border-bottom-width:2px;border-radius:5px;padding:3px 6px;background:rgba(255,255,255,.06)}
@media (prefers-reduced-motion: reduce){body:not(.force-motion) #networkCanvas{display:none!important}}

/* v0.51 Teacher scenario bank */
.scenario-bank-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:18px}.scenario-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scenario-form-grid .full{grid-column:1/-1}.scenario-class-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:8px 0 14px}.scenario-class-check{display:flex;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}.scenario-class-check small{opacity:.65}.scenario-bank-card{padding:16px;margin-bottom:12px}.scenario-bank-head,.scenario-meta{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.scenario-meta{font-size:.86rem;opacity:.8;margin:10px 0}.scenario-answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.scenario-answer-btn{text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);color:inherit}.scenario-answer-btn:hover,.scenario-answer-btn:focus-visible{border-color:var(--accent);transform:translateY(-1px)}.scenario-situation{padding:14px;border-left:3px solid var(--accent);background:rgba(255,255,255,.025);border-radius:10px;margin:14px 0}.scenario-feedback{padding:14px;border-radius:12px;margin-top:14px}.scenario-feedback.success{background:rgba(35,190,120,.12)}.scenario-feedback.warn{background:rgba(240,170,40,.12)}@media(max-width:900px){.scenario-bank-layout{grid-template-columns:1fr}.scenario-form-grid{grid-template-columns:1fr}.scenario-answer-grid{grid-template-columns:1fr}}

/* v0.52 — edytor własnej misji */
.custom-mission-step{padding:16px;margin:16px 0;border:1px solid var(--line)}
.custom-mission-step .points-field{display:flex;align-items:center;gap:8px;font-size:.85rem}
.custom-mission-step .points-field input{width:90px}
.custom-run-steps{display:grid;gap:16px;margin-top:18px}
.custom-run-step{padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.scenario-answer-btn.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
@media(max-width:900px){.custom-mission-editor-layout{grid-template-columns:1fr}.custom-mission-step .section-head{align-items:flex-start;flex-direction:column}}

/* v0.53 — Incydent dnia */
.daily-incident-widget{margin:18px 0;padding:18px 20px;border-color:rgba(91,218,255,.22);background:linear-gradient(135deg,rgba(8,30,48,.88),rgba(10,18,35,.88))}
.incident-day-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.incident-day-head h2{margin:.2rem 0 .35rem}.incident-day-head p{margin:0;color:var(--muted)}.incident-day-stat{min-width:86px;text-align:center;font-size:1.35rem;font-weight:900;padding:10px 12px;border-radius:14px;border:1px solid rgba(91,218,255,.2);background:rgba(91,218,255,.06)}.incident-day-stat small{display:block;font-size:.62rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:3px}.incident-day-question{margin-top:14px}.incident-day-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.incident-day-options button{text-align:left;padding:12px 13px;border:1px solid rgba(125,211,252,.18);border-radius:12px;background:rgba(255,255,255,.035);color:var(--text);cursor:pointer}.incident-day-options button:hover:not(:disabled),.incident-day-options button:focus-visible{border-color:rgba(68,224,255,.58);background:rgba(68,224,255,.08)}.incident-day-options button.correct{border-color:rgba(70,230,150,.65);background:rgba(70,230,150,.12)}.incident-day-options button.wrong{border-color:rgba(255,102,126,.65);background:rgba(255,102,126,.1)}.incident-day-feedback{min-height:20px;margin-top:10px;color:var(--muted)}.incident-day-feedback.success{color:#82f0ba}.incident-day-feedback.error{color:#ffb1bf}.incident-day-feedback.done{color:#9fc5d8}@media(max-width:760px){.incident-day-head{flex-direction:column}.incident-day-options{grid-template-columns:1fr}.incident-day-stat{align-self:flex-start}}

/* v0.54 API */
.checkbox-row{display:flex;gap:.65rem;align-items:center;margin:.8rem 0}.api-secret-line{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.55rem}.api-secret-line code{user-select:all;overflow-wrap:anywhere}.management-item code{overflow-wrap:anywhere}
