@font-face{font-family:Sektor;src:url('/sektor/assets/tiktok-sans.ttf') format('truetype');font-display:swap;font-weight:300 900}
:root{--bg:#101715;--panel:#19231f;--field:#24312b;--ink:#edf2eb;--muted:#a5b5ab;--accent:#c2ed91;--danger:#ffc0a4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Sektor,Arial,sans-serif}a{color:inherit}header{display:flex;align-items:center;gap:32px;padding:24px 4vw;border-bottom:1px solid #34463b}header>span{color:var(--muted)}.brand{font-size:18px;font-weight:700;line-height:1.1;text-decoration:none}header nav{display:flex;gap:20px;align-items:center;margin-left:auto}header nav a{text-decoration:none}button,input,select,textarea{font:inherit;border-radius:0}button{min-height:44px;border:0;cursor:pointer;background:var(--field);color:var(--ink);padding:10px 16px}button:hover{background:#34483b}button.primary,.primary{background:var(--accent);color:#101715;font-weight:600}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:wait}input,select,textarea{width:100%;padding:13px;border:1px solid #405548;background:var(--field);color:var(--ink);min-height:48px}textarea{resize:vertical;min-height:150px}label{display:block;margin:20px 0 8px}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3{line-height:1.12;letter-spacing:-.025em;margin:0 0 20px}h1{font-size:clamp(32px,4vw,54px)}h2{font-size:28px}h3{font-size:21px}p{max-width:68ch;margin:12px 0 22px}small,.muted{color:var(--muted)}small{font-size:14px}main{padding:48px 4vw 100px;max-width:1600px;margin:auto}.login{max-width:540px;margin:5vh auto;padding:36px;background:var(--panel)}.login h1{font-size:38px}.login button{margin-top:24px;width:100%}.intro{display:flex;align-items:start;justify-content:space-between;gap:28px;margin-bottom:30px}.intro p{color:var(--muted)}.layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:40px}.sidebar{min-width:0}.sidebar h2{font-size:20px}.run-list{display:grid;gap:8px;margin-bottom:24px}.run-list button{text-align:left;overflow-wrap:anywhere;padding:16px}.run-list button.active{background:var(--ink);color:var(--bg)}.run-list small{display:block;margin-top:6px;color:inherit;font-size:13px}.workspace{min-width:0}.workspace-heading{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:24px}.workspace-heading h1{font-size:36px}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:20px 0}.tabs{display:flex;gap:8px;margin:24px 0 32px;flex-wrap:wrap}.tabs button[aria-selected=true]{background:var(--ink);color:var(--bg)}.panel{background:var(--panel);padding:28px}.group-list{display:grid;gap:14px}.group-row{padding:22px;background:var(--panel);display:grid;grid-template-columns:minmax(150px,1fr) minmax(200px,1.3fr) auto;align-items:center;gap:20px}.group-row h3{margin-bottom:8px}.group-row p{margin:0;font-size:14px;color:var(--muted)}.progress{display:flex;gap:6px;flex-wrap:wrap}.progress span{display:inline-flex;justify-content:center;align-items:center;min-width:34px;min-height:34px;background:var(--field);color:var(--muted);font-size:14px}.progress .started{outline:1px solid var(--muted)}.progress .done{background:var(--accent);color:var(--bg)}.group-buttons{display:flex;gap:8px;flex-wrap:wrap}.template-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:28px}.template-list{display:grid;align-content:start;gap:8px}.template-list button{text-align:left;padding:14px}.template-list button[aria-current=true]{background:var(--ink);color:var(--bg)}.template-list small{display:block;color:inherit;font-size:13px}.template-form{background:var(--panel);padding:28px}.template-form h2{font-size:25px}.inline-check{display:flex;align-items:center;gap:12px}.placeholder-help{font-size:14px;color:var(--muted);line-height:1.7}.preview{white-space:pre-wrap;background:var(--field);padding:22px;margin:22px 0;overflow-wrap:anywhere}.empty{padding:40px;background:var(--panel)}.meta-line{color:var(--muted);font-size:14px}.state-label{display:inline-block;background:var(--field);padding:4px 10px;font-size:14px}.state-label.closed{color:var(--danger)}dialog{border:1px solid #405548;background:var(--panel);color:var(--ink);padding:30px;width:min(680px,calc(100% - 28px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#000b}.modal-top{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:25px}.modal-top h2{font-size:28px;margin:6px 0}.modal-top button{flex-shrink:0}.qr{background:white;color:#111;padding:20px;width:min(280px,100%);margin:24px auto}.qr svg{display:block;width:100%;height:auto}.link-field{font:14px/1.5 ui-monospace,monospace;overflow-wrap:anywhere}#status{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90%;padding:16px 24px;background:var(--ink);color:var(--bg);z-index:10;display:none}#status.visible{display:block}.error{color:var(--danger);margin-top:18px;min-height:24px}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:var(--bg);padding:12px;z-index:20}.skip:focus{top:12px}.danger-zone{margin-top:48px;padding-top:24px;border-top:1px solid #405548}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.qr-print-only{display:none}
@media(max-width:1050px){.layout{grid-template-columns:210px minmax(0,1fr);gap:24px}.template-layout{grid-template-columns:1fr}.template-list{grid-template-columns:repeat(2,minmax(0,1fr))}.group-row{grid-template-columns:1fr}.workspace-heading{flex-direction:column;gap:12px}}
@media(max-width:650px){header{gap:14px;flex-wrap:wrap}header>span{font-size:14px}header nav{width:100%;margin:8px 0 0;gap:12px;font-size:14px}header nav button{font-size:14px}main{padding:30px 20px 80px}.layout{grid-template-columns:1fr}.sidebar{padding-bottom:24px;border-bottom:1px solid #34463b}.run-list{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{display:block}.intro h1{font-size:36px}.panel,.template-form{padding:20px}.login{padding:24px;margin:12px 0}.two-fields{grid-template-columns:1fr}.template-list{grid-template-columns:1fr 1fr}.template-list button{font-size:14px}.group-row{padding:20px}.modal-top{flex-direction:column}.modal-top button{align-self:flex-end}dialog{padding:22px}.workspace-heading h1{font-size:30px}}
@media print{body{background:white;color:#111}header,main,#status,.modal-top button,dialog .actions,dialog label,dialog input,dialog .muted{display:none!important}dialog{position:static;display:block!important;border:0;max-height:none;width:100%;background:white;color:#111}dialog::backdrop{display:none}.qr{width:90mm}.qr-print-only{display:block;overflow-wrap:anywhere;font-size:10pt}}
.skip{top:0;transform:translateY(-150%);visibility:hidden}.skip:focus{top:12px;transform:none;visibility:visible}
h1,h2,h3,p{overflow-wrap:anywhere}.group-row>div,.workspace-heading>div,.modal-top h2{min-width:0}
/* Shared mission display and its separate projection surface. */
.mission-control fieldset{border:0;padding:0;margin:0;min-width:0}.projection-link{display:inline-flex;padding:12px 18px;text-decoration:none;min-height:48px;align-items:center}.projection-link:hover{background:#d3f3b1}.mission-control form button{margin-top:12px}.mission-control .error:empty{display:none}.mission-reading{display:flex;align-items:center;gap:24px;margin:32px 0 16px}.mission-reading strong{font-size:48px;white-space:nowrap;font-variant-numeric:tabular-nums}.mission-reading span{color:var(--muted)}progress[data-mission-bar]{display:block;width:100%;height:20px;appearance:none;border:0;background:var(--field);color:var(--accent)}progress[data-mission-bar]::-webkit-progress-bar{background:var(--field)}progress[data-mission-bar]::-webkit-progress-value{background:var(--accent)}progress[data-mission-bar]::-moz-progress-bar{background:var(--accent)}.projection{color-scheme:dark}.projection header{border:0;padding-bottom:0;justify-content:space-between}.projection header .brand{color:var(--muted)}.projection main{max-width:1800px;padding-top:24px;padding-bottom:32px}.projection h1{font-size:clamp(30px,3.4vw,60px);margin-bottom:32px}.projection-progress{padding-bottom:26px;margin-bottom:28px;border-bottom:1px solid #405548}.projection-progress-heading,.projection-teams-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.projection h2{font-size:clamp(22px,2vw,34px);margin-bottom:18px}.projection-progress-heading strong{font-size:clamp(44px,5vw,80px);line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}.projection progress{height:24px;margin-top:12px}.projection-progress p{font-size:clamp(18px,1.6vw,26px);margin:14px 0 0;color:var(--muted)}#projection-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px}.projection-team{display:flex;justify-content:space-between;gap:24px;padding:22px 0;border-bottom:1px solid #34463b;min-width:0}.projection-team>div{min-width:0}.projection-team h3{font-size:clamp(22px,2.1vw,34px);margin-bottom:8px}.projection-team p{font-size:clamp(18px,1.6vw,26px);margin:0;color:var(--muted)}.projection-station{flex:0 0 36%;text-align:right}.projection-station span{display:block;color:var(--muted);font-size:14px}.projection-station strong{display:block;font-size:clamp(20px,1.8vw,30px);color:var(--accent);overflow-wrap:anywhere}#page-count{color:var(--muted)}#projection-error{color:var(--danger);font-size:18px;max-width:none}#projection-error:empty{display:none}::selection{background:var(--accent);color:var(--bg)}input,textarea{caret-color:var(--accent)}[data-mission-time]{font-variant-numeric:tabular-nums}
@media(max-width:700px){#projection-groups{grid-template-columns:1fr}.projection-team{gap:14px}.projection-progress-heading,.projection-teams-heading{gap:12px;flex-wrap:wrap}.mission-reading{gap:14px;flex-wrap:wrap}.projection main{padding:24px 20px}.projection h1{margin-bottom:24px}.projection header{flex-wrap:nowrap}.projection #fullscreen{font-size:14px}.projection-station{flex-basis:40%}}

/* Sektor 2040: shared game identity, readable operating surfaces. */
:root{color-scheme:dark;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}
body{scrollbar-color:#405548 var(--bg)}
header{max-width:1600px;margin:auto;min-height:96px}
.brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;font-size:22px;font-weight:500;letter-spacing:-.04em}
.brand b{font-weight:800}.brand svg{width:30px;height:30px;color:var(--accent);flex:none}
header>span:not(.brand){font:12px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
header nav a{color:var(--muted)}header nav a:hover{color:var(--accent)}
button,input,select,textarea,.panel,.group-row,.empty,.login{border-radius:4px}
button.primary:hover,.projection-link:hover{background:#d3f3b1}
button:disabled{cursor:not-allowed}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.intro{padding-bottom:28px;border-bottom:1px solid #34463b;margin-bottom:36px}
.intro h1{font-size:clamp(32px,4vw,48px)}.intro p{margin-bottom:0}
.sidebar h2{font-size:18px}.run-list button{border:1px solid transparent;background:transparent}
.run-list button:hover{background:var(--panel)}
.run-list button.active{background:var(--field);border-color:#819b70;color:var(--accent)}
.run-list small{color:var(--muted)}
.tabs{border-bottom:1px solid #405548;gap:4px;padding-bottom:8px}
.tabs button{background:transparent;color:var(--muted);border-radius:3px}
.tabs button:hover{background:var(--panel);color:var(--ink)}
.tabs button[aria-selected=true]{background:var(--accent);color:var(--bg)}
.state-label{color:var(--accent);font:12px/1.6 var(--mono);border:1px solid #405548;border-radius:2px}
.meta-line,.progress span,.mission-reading strong,[data-mission-percent],[data-mission-time]{font-family:var(--mono)}
.group-row{border:1px solid #34463b}.group-buttons button{font-size:14px}
.progress span{border-radius:2px}.progress .done{font-weight:700}
.template-list button{background:transparent;border:1px solid #34463b;border-radius:0}
.template-list button[aria-current=true]{background:var(--field);border-color:#819b70;color:var(--accent)}
.template-list small{font-family:var(--mono);font-size:11px;margin-top:6px}
.template-form{background:var(--panel);border-top:2px solid var(--accent)}
.template-form h2{font:24px/1.3 var(--mono);letter-spacing:-.025em}
.preview{border:1px solid #405548;background:var(--bg);line-height:1.75}
.placeholder-help{font-family:var(--mono);font-size:12px}
dialog{border-color:#405548;border-top:2px solid var(--accent)}
.modal-top{padding-bottom:20px;border-bottom:1px solid #405548}
.login{border-top:2px solid var(--accent)}.login p{color:var(--muted)}
.projection header .brand{color:var(--ink)}
.projection-progress{border-top:2px solid var(--accent);padding-top:24px}
.projection-progress-heading strong{color:var(--accent)}
.projection progress,progress[data-mission-bar]{border-radius:2px;overflow:hidden}
.projection-station span{font:11px/1.6 var(--mono);margin-bottom:5px}
@media(max-width:650px){header{padding:20px}.brand{font-size:20px}header>span:not(.brand){font-size:11px}.intro{padding-bottom:22px;margin-bottom:28px}.tabs button{flex:1 1 auto;font-size:14px}.group-buttons button{flex:1}.run-list button{padding:12px}.template-form h2{font-size:22px}}
@media print{:root{color-scheme:light}.modal-top{border:0}dialog{border:0}.qr{border:0}}
@media(min-width:701px) and (max-height:800px){
  .projection header{min-height:64px;padding-top:14px}
  .projection main{padding-top:18px;padding-bottom:20px}
  .projection h1{margin-bottom:20px}
  .projection-progress{padding-top:16px;padding-bottom:18px;margin-bottom:20px}
  .projection-team{padding:16px 0}
}
.projection header{max-width:1800px}
