/* Shared minimal interface. Keep the tracker palette, typography, bevels and shadows. */
:root{--ink:#112640;--navy:#15274b;--cyan:#4bbded;--ice:#a5edff;--green:#60e99a;--coral:#ffa294;--amber:#ffd19a;--muted:#254e67;--border:#122640;--line:#245377;--shadow:5px 5px 0 #142847}
*{box-sizing:border-box}body{margin:0;padding:0 32px 40px;min-height:100svh;background:var(--cyan);color:var(--ink);font-family:Arial,"Segoe UI",sans-serif;font-weight:600;line-height:1.5}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default;filter:saturate(.45);opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px dashed #fff4bc;outline-offset:5px}a{color:inherit}.site-header{max-width:1080px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:27px 0;gap:18px}.brand{text-decoration:none;font-family:"Courier New",monospace;font-size:23px;font-weight:900;line-height:1;direction:ltr}.connection{display:none}.connection.offline{display:flex;align-items:center;gap:7px;font-size:12px;padding:6px 10px;background:var(--coral);border:2px solid var(--border)}.connection i{width:7px;height:7px;background:var(--ink)}main{max-width:1080px;margin:32px auto 0}h1,h2,h3,p{margin-top:0}h1{font-size:38px;font-weight:900;line-height:1.15;letter-spacing:-.8px;margin-bottom:27px}h2{font-size:25px;line-height:1.25;margin-bottom:18px}h3{font-size:20px;margin:0}.muted{color:var(--muted)}.small{font-size:12px}.home-grid{max-width:560px;margin:36px auto 0}.entry-tabs{display:flex;gap:22px;margin-bottom:20px}.entry-tabs button{border:0;border-bottom:3px solid transparent;padding:5px 0;background:none;font-size:15px;color:var(--muted)}.entry-tabs button[aria-pressed=true]{border-color:var(--ink);color:var(--ink);font-weight:900}.card{background:#6ac9e6;border:3px solid var(--border);padding:27px;box-shadow:inset 2px 2px 0 #b0edff,inset -2px -2px 0 #2788b4,var(--shadow)}.card-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.card-top h3{font-size:22px}.form-row{display:grid;grid-template-columns:1fr 1.2fr;gap:18px}label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}input,select{border:3px solid var(--border);border-radius:0;box-shadow:inset 3px 3px 0 #347785;background:#b0e8cb;color:var(--ink);padding:12px;width:100%;min-height:49px}input::placeholder{color:#3d6662;opacity:1}input#room-code{font-family:"Courier New",monospace;font-weight:700;text-align:center;letter-spacing:4px}form .btn{margin-top:23px;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:47px;background:var(--green);border:3px solid var(--border);border-radius:0;padding:10px 20px;font-size:15px;font-weight:800;text-decoration:none;box-shadow:inset 2px 2px 0 #c4ffd9,inset -2px -2px 0 #289875,4px 4px 0 #192c49;transition:transform .1s,filter .1s}.btn:hover{filter:brightness(1.07);transform:translate(-1px,-1px)}.btn:active{transform:translate(2px,2px);box-shadow:inset 2px 2px 0 #289875,1px 1px 0 #192c49}.btn.secondary{background:var(--amber);box-shadow:inset 2px 2px 0 #fff0ca,inset -2px -2px 0 #b17f61,4px 4px 0 #192c49}.btn.danger{background:var(--coral)}.btn.text{min-height:30px;padding:5px 8px;background:transparent;border:0;font-size:12px;box-shadow:none;text-decoration:underline;text-underline-offset:4px}.teacher-form{display:flex;align-items:end;gap:18px}.teacher-form .field{flex:1;min-width:0}.teacher-form .btn{width:auto;white-space:nowrap;margin:0}.teacher-form select{background:#93d8e9}.form-error{font-size:12px;color:#6a132a;margin:16px 0 0;background:#ffbbab;padding:5px 8px}.form-error:empty{display:none}.resume{max-width:560px;margin:0 auto 27px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:2px solid var(--border);background:var(--amber);padding:13px 17px}.resume-actions{display:flex;gap:10px;align-items:center}.resume .btn{min-height:34px;padding:5px 10px;font-size:11px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:5px 0 28px}.game-top h1{font-size:28px;margin:4px 0 0}.room-chip{display:flex;align-items:center;gap:12px;font-size:12px}.room-chip strong{font-size:24px;letter-spacing:2px;font-family:"Courier New",monospace;direction:ltr}.room-chip button{font-size:12px;border:0;background:none;padding:5px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}.lobby-grid{display:grid;grid-template-columns:.9fr 1.2fr;gap:28px}.invite{text-align:center}.invite h2{font-size:20px}.big-code{font-size:clamp(45px,5vw,70px);letter-spacing:6px;font-family:"Courier New",monospace;font-weight:900;line-height:1.25;background:#8ce5b0;border:3px solid var(--border);box-shadow:inset 3px 3px 0 #3c8366,4px 4px 0 #101d38;color:#16494b;direction:ltr;margin:20px 0;padding:10px}.join-address{display:block;font-family:"Courier New",monospace;font-size:13px;direction:ltr;margin:25px 0;color:var(--muted)}.empty{text-align:center;font-size:14px;padding:35px 10px;margin:0;color:var(--muted)}.lobby-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:27px;padding-top:5px}.waiting{max-width:560px;margin:50px auto;text-align:center;padding:38px}.waiting h2{font-size:29px;margin:0 0 12px}.waiting p{margin:0;color:var(--muted);font-size:16px}.game-grid{max-width:900px;margin:auto;display:block}.question-card{padding:30px}.round-line{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:24px;color:var(--muted)}.question{font-size:clamp(26px,3vw,36px);line-height:1.3;margin-bottom:29px;font-weight:900;letter-spacing:-.4px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:19px}.choice{position:relative;display:flex;align-items:center;gap:13px;min-height:96px;border:3px solid var(--border);border-radius:0;box-shadow:inset 2px 2px 0 #ffe5b8,inset -2px -2px 0 #af856f,4px 4px 0 #20354b;background:var(--amber);text-align:right;padding:19px 16px;font-size:21px;font-weight:800;transition:transform .1s}.choice:nth-child(2){background:var(--coral);box-shadow:inset 2px 2px 0 #ffd6bd,inset -2px -2px 0 #ad646e,4px 4px 0 #20354b}.choice:nth-child(3){background:#9edbea;box-shadow:inset 2px 2px 0 #d6f8fa,inset -2px -2px 0 #5988a6,4px 4px 0 #20354b}.choice:nth-child(4){background:#8ae3ad;box-shadow:inset 2px 2px 0 #c4ffd9,inset -2px -2px 0 #4b9577,4px 4px 0 #20354b}.choice:disabled{opacity:1;filter:none}.choice:not(:disabled):hover{transform:translate(-2px,-2px)}.choice.selected{outline:3px solid var(--navy);outline-offset:3px}.choice.winner{background:var(--green);outline:3px solid var(--ink);outline-offset:3px}.choice-marker{display:grid;place-items:center;flex-shrink:0;width:29px;height:29px;border:2px solid var(--border);background:#fff3bf;font-size:13px;font-weight:900}.choice.selected .choice-marker{background:var(--ink);color:var(--green)}.choice-copy{flex:1;min-width:0}.choice-meta{display:block;font-size:12px;font-weight:600;margin-top:7px}.vote-status{font-size:13px;margin:26px 0 0;min-height:20px}.host-controls{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-top:23px}.rank{width:20px;flex-shrink:0;font-family:"Courier New",monospace;font-size:14px}.finished{max-width:700px;margin:35px auto 0}.finished h1{font-size:34px;margin-bottom:25px}.finished-actions{display:flex;gap:18px;margin-top:27px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 19px;border:3px solid var(--border);background:var(--amber);color:var(--ink);box-shadow:var(--shadow);max-width:calc(100% - 35px);font-size:14px;text-align:center;z-index:60}.toast[hidden]{display:none}.loading{padding:60px;text-align:center}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.student-top{max-width:900px;margin:5px auto 20px;color:var(--muted);font-size:14px}.teacher-grid .question{font-size:30px;margin-bottom:22px}.teacher-grid .choices{gap:13px}.teacher-grid .choice{min-height:60px;padding:12px;font-size:18px;gap:10px}.teacher-grid .choice-marker{width:25px;height:25px;font-size:12px}.teacher-grid .choice-meta{font-size:11px;margin-top:4px}.teacher-grid .vote-status{margin-top:22px}
@media(min-width:1000px){.teacher-grid,.student-results-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:27px;align-items:start;max-width:none}}
/* Generic project hub: add more .project-entry links here. */
.histogram{margin:15px 0 0;padding-top:27px}.histogram-bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.hist-column{min-width:0;text-align:center}.hist-track{height:140px;display:flex;align-items:end;justify-content:center;border-bottom:2px solid var(--border);background:repeating-linear-gradient(to top,transparent 0 39px,#24537720 39px 40px)}.hist-bar{position:relative;width:72%;max-width:95px;height:0;min-height:3px;background:var(--amber);border:2px solid var(--border)}.hist-column:nth-child(2) .hist-bar{background:var(--coral)}.hist-column:nth-child(3) .hist-bar{background:#9edbea}.hist-column:nth-child(4) .hist-bar{background:#8ae3ad}.hist-bar.winner{border-width:3px;box-shadow:3px 0 0 var(--ink)}.hist-count{position:absolute;bottom:100%;left:0;right:0;margin-bottom:5px;font:900 23px "Courier New",monospace}.hist-label{font-size:16px;line-height:1.4;margin-top:11px;overflow-wrap:anywhere}.hist-winner{display:block;font-size:11px;margin-top:4px;font-weight:900}
@media(max-width:600px){.histogram-bars{gap:8px}.hist-track{height:135px}.hist-label{font-size:12px}.hist-count{font-size:20px}.hist-winner{font-size:10px}}
.hub-heading{font-size:32px;margin:32px 0}.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.project-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:110px;background:var(--amber);border:3px solid var(--border);box-shadow:inset 2px 2px 0 #fff0c7,inset -2px -2px 0 #b18065,var(--shadow);text-decoration:none;padding:25px;transition:transform .12s}.project-entry:hover{transform:translate(-2px,-2px);background:#ffdba9}.project-entry h2{font-size:26px;margin:0}.project-entry>span{font-size:26px}
@media(max-width:800px){body{padding-inline:23px}.lobby-grid{grid-template-columns:1fr}.invite{max-width:560px;width:100%;margin:auto}.big-code{font-size:60px}.project-list{grid-template-columns:1fr}.project-entry{max-width:650px}.game-top h1{font-size:25px}}
@media(max-width:600px){body{padding:0 20px 30px}.site-header{padding:24px 0}.brand{font-size:21px}main{margin-top:24px}.home-grid{margin-top:22px}h1{font-size:31px;margin-bottom:25px}.card{padding:23px 19px}.form-row{gap:13px;grid-template-columns:1fr 1.1fr}input,select{padding:10px;min-height:47px}.entry-tabs{gap:25px;margin-bottom:19px}.teacher-form{gap:13px}.teacher-form .btn{padding:10px 15px;font-size:14px}.card-top h3{font-size:21px}.game-top{gap:15px;align-items:start;margin-bottom:23px}.game-top h1{font-size:23px;max-width:10ch}.game-top .small{font-size:11px}.room-chip{flex-wrap:wrap;gap:2px 7px;max-width:135px;padding-top:4px;font-size:11px}.room-chip strong{font-size:22px;letter-spacing:1px}.room-chip button{font-size:11px;padding:3px 0}.big-code{font-size:49px;letter-spacing:5px}.invite{padding:25px 20px}.lobby-controls{flex-wrap:wrap}.lobby-controls .btn{font-size:13px;padding:10px 13px}.waiting{margin-top:35px;padding:32px 18px}.waiting h2{font-size:27px}.question-card{padding:23px 17px}.round-line{font-size:11px;margin-bottom:23px}.question{font-size:28px;margin-bottom:25px}.choices{gap:17px 13px}.choice{font-size:18px;min-height:99px;padding:15px 10px;gap:9px;align-items:start}.choice-marker{width:25px;height:25px;font-size:12px}.choice-meta{font-size:11px}.vote-status{font-size:12px}.host-controls{gap:12px}.host-controls .btn:not(.text){flex:1;font-size:14px;padding:10px 12px}.host-controls .btn.text{font-size:11px}.resume{padding:12px;align-items:start;font-size:12px}.resume-actions{flex-direction:column;align-items:stretch}.resume .btn{white-space:nowrap}.finished h1{font-size:30px}.finished-actions{flex-wrap:wrap}.finished-actions .btn{flex:1;white-space:nowrap;font-size:13px;padding:10px 12px}.hub-heading{font-size:29px;margin-top:26px}.project-entry{min-height:100px;padding:21px}.project-entry h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
