:root{--ink:#1d2433;--panel:#1a202edb;--line:#ffffff24;--text:#f3efe4;--muted:#f3efe4a6;--accent:#f2c94c;--danger:#e5533d;--ok:#7cd67c;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:#a9d4f0;height:100%;margin:0;overflow:hidden}canvas#game{width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui *{pointer-events:auto}.hud,.hud .topbar,.hud .players-panel,.hud .economy,.hud .target-tip,.hud .error-toast,.hud .chat,.hud .chat *{pointer-events:none}.hud .chat.open,.hud .chat.open *,.hud button,.hud select,.hud .ready{pointer-events:auto}button{font:inherit;letter-spacing:.03em;color:var(--text);cursor:pointer;background:#00000026;border:2px solid #ffffff8c;border-radius:8px;padding:.65em 1.1em;font-weight:700}button:hover:not(:disabled){background:#ffffff1f}button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}button.primary:hover:not(:disabled){background:#ffd966}button:disabled{opacity:.4;cursor:default}button.small{padding:.3em .7em;font-size:.85em}input,select{font:inherit;color:var(--text);background:#00000059;border:2px solid #ffffff59;border-radius:8px;outline:none;padding:.55em .8em}input:focus,select:focus{border-color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);padding:0}.muted{color:var(--muted);margin:0}.small{font-size:.82em}.error{color:#ffb3a6;margin:0}.screen{justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.screen.menu{background:radial-gradient(#141a281a,#141a2899)}.screen.lobby{background:#141a2859}.screen.end{background:#141a2873}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;width:min(460px,100%);max-height:100%;padding:26px;display:flex;overflow:auto;box-shadow:0 20px 60px #00000073}.panel.wide{width:min(640px,100%)}.logo{letter-spacing:.1em;color:var(--accent);text-shadow:3px 3px #6b4a2e;margin:0;font-size:60px;font-weight:900;line-height:1}.logo span{letter-spacing:.5em;color:var(--muted);text-shadow:none;text-transform:uppercase;margin-top:6px;font-size:13px;display:block}.tagline{color:var(--muted);margin:0;line-height:1.45}h2{margin:0}h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 6px;font-size:13px}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:.85em;display:flex}.field input{font-size:1.1em}.buttons{flex-wrap:wrap;gap:10px;display:flex}.buttons button{flex:1}.join{gap:10px;display:flex}.join input{text-align:center;letter-spacing:.3em;text-transform:uppercase;width:110px;font-weight:700}.join button{flex:1}.controls{color:var(--muted);font-size:.88em}.controls summary{cursor:pointer}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line);text-align:left;padding:3px 6px}.controls td:first-child,.help td:first-child{white-space:nowrap;color:var(--text);font-weight:700}.controls ul{margin:8px 0 0;padding-left:18px;line-height:1.5}.lobby-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.code-box{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.code{letter-spacing:.2em;color:var(--accent);font-size:38px;font-weight:900;line-height:1}.players{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.players li{background:#ffffff12;border-radius:8px;padding:8px 10px}.players li.me{outline:2px solid var(--accent)}.hud{position:absolute;inset:0}.topbar{align-items:stretch;gap:10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.wave-now,.schedule,.players-panel,.economy,.sends,.target-tip{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 24px #0000004d}.wave-now{flex-direction:column;align-items:center;gap:4px;min-width:230px;padding:10px 14px;display:flex}.phase-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:11px}.wave-title{font-size:22px;font-weight:800}.timer{color:var(--accent);font-size:18px;font-weight:800}.wave-parts{flex-wrap:wrap;justify-content:center;gap:6px;font-size:13px;display:flex}.el{color:#fff;border-radius:10px;padding:1px 8px;font-weight:700}.el.mixed{background:linear-gradient(90deg,#e8603c,#5fb14a,#3f8fd8)}.ready{margin-top:4px;padding:.35em .9em;font-size:.85em}.ready.on{background:var(--ok);border-color:var(--ok);color:var(--ink)}.schedule{align-items:center;gap:4px;padding:8px;display:flex}.sched{flex-direction:column;align-items:center;gap:3px;width:40px;font-size:11px;display:flex}.sched .num{font-weight:800}.sched .dot{border:2px solid #ffffff80;border-radius:50%;width:18px;height:18px}.sched .what{color:var(--accent);height:12px;font-size:10px}.players-panel{flex-direction:column;gap:4px;min-width:210px;padding:8px;display:flex;position:absolute;top:12px;left:12px}.seat{border-radius:6px;grid-template-columns:12px 1fr auto auto;align-items:center;gap:8px;padding:3px 4px;font-size:13px;display:grid}.seat.me{background:#f2c94c26}.seat.out{opacity:.5}.swatch{border-radius:3px;width:12px;height:12px}.seat .lives{color:#ffc2c2;font-weight:700}.seat .inc{color:var(--accent);font-size:12px}.players-panel .leave{opacity:.8;align-self:flex-start;margin-top:4px;font-size:.75em}.economy{flex-direction:column;gap:6px;min-width:220px;padding:12px 14px;display:flex;position:absolute;top:12px;right:12px}.geloof{color:var(--accent);font-size:34px;font-weight:900;line-height:1}.geloof span{color:var(--muted);margin-left:6px;font-size:13px;font-weight:600}.inc-lines{flex-direction:column;gap:2px;font-size:13px;display:flex}.toast{color:var(--ok);font-weight:800;animation:.3s ease-out pop}@keyframes pop{0%{transform:scale(1.3)}to{transform:scale(1)}}.hotbar{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.carry-note{background:var(--panel);color:var(--accent);border-radius:8px;padding:4px 10px;font-size:13px}.slots{gap:5px;display:flex}.slot{background:var(--panel);text-transform:none;letter-spacing:0;border:2px solid #ffffff40;border-radius:10px;flex-direction:column;align-items:center;gap:1px;width:78px;padding:6px 4px;display:flex}.slot.building{border-color:#f2c94c80}.slot.active{box-shadow:0 0 0 2px var(--accent);background:#f2c94c4d}.slot.poor{opacity:.45}.slot .key{color:var(--muted);align-self:flex-start;margin-left:4px;font-size:10px;line-height:1}.slot .icon{font-size:18px;line-height:1.1}.slot .nm{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;font-weight:700;overflow:hidden}.slot .cost{color:var(--accent);font-size:12px}.sends{flex-direction:column;gap:6px;width:250px;padding:10px 12px;display:flex;position:absolute;bottom:12px;right:12px}.send-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.send-row select{width:100%;padding:.35em .5em;font-size:.9em}.elbtn{padding:.25em .6em;font-size:1.05em}.elbtn.active{background:#ffffff40}.hint{flex:1;min-width:100%}.sendbtn{text-transform:none;letter-spacing:0;flex-direction:column;flex:1;padding:.35em .3em;font-size:11px;display:flex}.sendbtn .cost{color:var(--accent);font-size:10px}.target-tip{flex-direction:column;align-items:center;gap:2px;padding:6px 12px;display:flex;position:absolute;bottom:100px;left:50%;transform:translate(-50%)}.error-toast{background:#961e14e0;border-radius:10px;padding:8px 16px;font-weight:700;position:absolute;bottom:150px;left:50%;transform:translate(-50%)}.chat{flex-direction:column;gap:4px;width:340px;display:flex;position:absolute;bottom:12px;left:12px}.chat .lines{text-shadow:0 1px 2px #000000e6;flex-direction:column;gap:2px;font-size:13px;display:flex}.chat .lines .sys{color:var(--accent)}.chat.open .lines{background:var(--panel);border-radius:10px;padding:8px}.lobby .chat{width:auto;position:static}.help{pointer-events:auto;background:#00000059;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ranking td,.ranking th{font-size:14px}.ranking tr.me td{color:var(--accent);font-weight:700}@media (width<=1100px){.slot{width:62px}.slot .nm{font-size:10px}.sends{width:210px}.schedule{display:none}}
