:root{--ink:#100c08;--paper:#f3e6c8;--muted:#b8a48a;--brass:#c9a36a;--copper:#b87333;--oxide:#2a1c12;--pcb:#0a2216;--trace:#2ee56a;--green:#7dff6a;--amber:#ffb020;--nixie:#ff6a1a;--danger:#e24a3b;--card:#1c1510;--font:"Rajdhani", "Trebuchet MS", sans-serif;--font-display:"Cinzel", "Palatino Linotype", serif;--font-mono:"Share Tech Mono", ui-monospace, monospace;color:var(--paper);background:var(--ink);font-family:var(--font);line-height:1.4}*{box-sizing:border-box}html,body{background-color:var(--ink);min-height:100%;margin:0}body:before,body:after{content:"";pointer-events:none;z-index:0;position:fixed;inset:0}body:before{opacity:.92;background-image:radial-gradient(circle at 12% 0,#c9a36a33,#0000 34%),radial-gradient(circle at 88% 100%,#2ee56a1f,#0000 38%),url(../../../circuit.svg?v=5);background-position:0 0;background-repeat:no-repeat,no-repeat,repeat;background-size:auto,auto,960px 960px}body:after{background:repeating-linear-gradient(#0000 0 4px,#0000000d 4px 5px)}a{color:var(--green)}button,input{font:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:.03em;margin:0;line-height:1.15}p{margin:0}.app-shell{z-index:1;width:min(40rem,100% - 1.5rem);margin:0 auto;padding:1rem 0 3rem;position:relative}.app-shell.wide{width:min(96rem,100% - 1rem)}.app-shell:before,.app-shell:after{content:"";background:linear-gradient(#efe0b0,#8a6a38);width:.35rem;height:4.4rem;position:absolute;top:.2rem;box-shadow:2px 0 #3a2a14}.app-shell:before{left:-.55rem}.app-shell:after{right:-.55rem;transform:scaleX(-1)}.topbar{background:linear-gradient(#2a2118 0%,#16110c 100%);border:1px solid #c9a36a73;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.7rem .85rem;display:flex;box-shadow:inset 0 1px #ffdca02e,0 6px #0a0704}.brand{color:inherit;align-items:center;gap:.7rem;text-decoration:none;display:flex}.brand-mark{width:2.4rem;height:2.4rem;color:var(--brass);flex:none}.brand small{color:var(--trace);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}.brand strong{font-family:var(--font-display);font-size:1.05rem;display:block}.nav{gap:.45rem;display:flex}.nav a,.nav button{border:1px solid var(--brass);color:var(--paper);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:#24180f;padding:.4rem .7rem;font-size:.85rem;font-weight:700;text-decoration:none}.card{background:radial-gradient(circle at 12px 12px,#8a7050 2px,#0000 2.6px),radial-gradient(circle at calc(100% - 12px) 12px,#8a7050 2px,#0000 2.6px),radial-gradient(circle at 12px calc(100% - 12px),#8a7050 2px,#0000 2.6px),radial-gradient(circle at calc(100% - 12px) calc(100% - 12px),#8a7050 2px,#0000 2.6px),linear-gradient(#2a2118 0%,#16110c 100%);border:1px solid #c9a36a8c;gap:.9rem;padding:1.15rem 1.1rem 1.1rem;display:grid;position:relative;box-shadow:inset 0 1px #ffdca024,0 8px #0a0704}.stack{gap:.9rem;display:grid}label{letter-spacing:.04em;text-transform:uppercase;gap:.35rem;font-weight:700;display:grid}input[type=text],input[type=password]{width:100%;color:var(--green);font-family:var(--font-mono);letter-spacing:.06em;background:repeating-linear-gradient(#0000 0 3px,#0000002e 3px 4px),#07140d;border:1px solid #245c3a;padding:.8rem .9rem}input:focus{outline:2px solid var(--trace)}.button{color:#241400;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#e6c98a 0%,#b8863a 52%,#7a4e1c 100%);border:1px solid #7a5a32;justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1rem;font-weight:800;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #fff3c8,0 3px #3a240c}.button.secondary{color:var(--green);background:linear-gradient(#2a5a38 0%,#123222 100%);border-color:#3a6b48;box-shadow:inset 0 1px #7dff6a40,0 3px #06140c}.button.danger{color:#2b0000;background:linear-gradient(#e24a3b 0%,#8a1c14 100%);border-color:#7a2018}.button:disabled{opacity:.6;cursor:wait}.button.full{width:100%}.error{color:#ffd5d5;background:#e24a3b29;border:1px solid #e24a3b80;padding:.7rem .8rem;font-weight:700}.muted{color:var(--muted)}.group-list{gap:.5rem;display:grid}.group-list a,.group-list button{width:100%;color:var(--paper);text-align:left;cursor:pointer;background:#0d0a08;border:1px solid #3a2a14;justify-content:space-between;align-items:center;padding:.85rem 1rem;text-decoration:none;display:flex}.badge{color:var(--green);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#102418;border:1px solid #2ee56a73;padding:.15rem .5rem;font-size:.72rem;font-weight:700}.follow-up-banner{color:var(--amber);letter-spacing:.1em;text-transform:uppercase;background:#ffb02024;border:1px solid #ffb02073;margin:0;padding:.55rem .7rem;font-size:.78rem;font-weight:800}.answer-form{gap:.9rem;display:grid}.location{background:#0d0a08;border:1px dashed #c9a36a66;padding:.9rem 1rem}.location strong{color:var(--amber);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.25rem;font-size:.78rem;display:block}.won-banner{color:#241400;font-family:var(--font-mono);text-align:center;letter-spacing:.08em;background:linear-gradient(#ffb020,#c47a18);border:1px solid #7a5a32;padding:.9rem 1rem;font-size:1.3rem;font-weight:800}.grid-wrap{background:#0d0a08;border:1px solid #c9a36a66;overflow:auto}.score-grid{border-collapse:separate;border-spacing:0;font-size:.85rem}.score-grid th,.score-grid td{text-align:center;white-space:nowrap;border-bottom:1px solid #c9a36a24;min-width:6.5rem;padding:.55rem .65rem}.score-grid th:first-child,.score-grid td:first-child{z-index:1;text-align:left;background:#1c1510;width:1%;min-width:12rem;position:sticky;left:0}.cell-empty{color:#6d5a48}.cell-playing{color:var(--amber);background:#ffb0202e;font-weight:800}.cell-done{color:var(--green);background:#2ee56a1f;font-weight:800}.follow-up{opacity:.8;font-style:italic}.game-title{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.game-title:hover,.game-title:focus-visible{color:var(--amber)}.game-answer{color:var(--amber);font-family:var(--font-mono);letter-spacing:.08em;background:#0d0a08;border:1px dashed #ffb02080;margin-top:.4rem;padding:.2rem .45rem;font-size:.85rem;font-style:normal;font-weight:700;display:block}.clock-bar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.clock-bar time{color:var(--green);font-family:var(--font-mono);letter-spacing:.12em;text-shadow:0 0 12px #7dff6a73;font-size:1.8rem;font-weight:700}.clock-bar p{color:var(--muted);margin:0}.clock-bar strong{color:var(--amber);font-family:var(--font-mono)}.totals{flex-wrap:wrap;gap:1rem 1.5rem;display:flex}.totals p{color:var(--muted);margin:0}.totals strong{color:var(--green);font-family:var(--font-mono)}.score-grid th{vertical-align:top}.score-grid th span,.score-grid th form{display:block}.puzzle-score{color:var(--green);font-family:var(--font-mono);letter-spacing:.06em;background:#102418;border:1px solid #2ee56a73;margin-top:.35rem;padding:.2rem .45rem;font-size:.85rem;font-weight:700}button.puzzle-score{cursor:pointer;width:100%}button.puzzle-score.owed{color:var(--amber);background:#ffb02029;border-color:#ffb0208c}.stats-inset{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:.55rem;display:grid}.stats-inset div{text-align:center;background:#0d0a08;border:1px solid #c9a36a47;flex-direction:column;justify-content:flex-start;align-items:center;min-height:4.4rem;padding:.5rem .35rem .55rem;display:flex}.stats-inset span{min-height:1.7em;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:700;line-height:1.2;display:block}.stats-inset strong{color:var(--green);font-family:var(--font-mono);margin-top:auto;padding-top:.35rem;font-size:1.15rem;line-height:1}.timer{font-family:var(--font-mono);letter-spacing:.03em;margin-top:.15rem;font-size:.92rem;font-weight:700;display:block}.crew-link{text-align:center;margin:1.2rem 0 0}.crew-link a{color:#6d5a48;font-size:.85rem}.dashboard-actions{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.create-group{flex:18rem;grid-template-columns:minmax(12rem,1fr) auto;align-items:end;gap:.6rem;display:grid}.dashboard-actions .error{flex:100%}.confirm-dialog{width:min(24rem,100vw - 2rem);color:var(--paper);background:linear-gradient(#2a2118 0%,#16110c 100%);border:1px solid #c9a36a8c;padding:1.2rem 1.1rem 1.1rem;box-shadow:inset 0 1px #ffdca024,0 12px #0a0704}.confirm-dialog::backdrop{background:#080604c7}.confirm-dialog h2{margin-bottom:.45rem}.confirm-dialog p{color:var(--muted);margin-bottom:1rem}.confirm-actions{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}
