:root{--ink:#1d1c1a;--paper:#fcfaf6f7;--line:#e2ddd3;--muted:#6b675f;--accent:#2f6fd0;--good:#2f9e6a;--bad:#c2412d;--glass:#18181c8c;color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:#bfe3f5;height:100%;margin:0;overflow:hidden}#app canvas{display:block}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:none}.hidden{display:none!important}.crosshair{width:18px;height:18px;margin:-9px;position:absolute;top:50%;left:50%}.crosshair:before,.crosshair:after{content:"";background:#fff;position:absolute;box-shadow:0 0 2px #0008}.crosshair:before{width:2px;height:18px;top:0;left:8px}.crosshair:after{width:18px;height:2px;top:8px;left:0}.topbtn{pointer-events:auto;background:var(--glass);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:0;border-radius:10px;padding:6px 10px;font:600 14px system-ui}.guide{pointer-events:auto;background:var(--paper);border-left:4px solid var(--accent);border-radius:8px;align-items:center;gap:8px;max-width:min(560px,100vw - 24px);padding:5px 8px;font-size:14px;display:flex;position:absolute;top:56px;left:12px;box-shadow:0 4px 16px #0002}.guide.hidden{display:none}.guide b{color:var(--accent);flex:none}.guide span{flex:1;line-height:1.25}.guide button{flex:none;padding:4px 8px;font-size:13px}.guide button.x{opacity:.6;background:0 0;border:0;padding:0 4px}.guide kbd{opacity:.7;margin-left:5px;font-size:11px}.topbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex;position:absolute;top:12px;left:12px}.brand,.coins,.place{background:var(--glass);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;padding:6px 12px}.brand{letter-spacing:.02em;font-weight:700}.coins{color:#ffd76a;font-weight:700}.place b{margin-right:8px}.place span{opacity:.8}.run{background:var(--glass);color:#fff;border-radius:12px;padding:10px 18px;font:700 26px/1 system-ui;position:absolute;top:14px;left:50%;transform:translate(-50%)}.run.urgent{color:#ff9a9a}.values{background:var(--glass);color:#fff;white-space:nowrap;border-radius:999px;padding:5px 12px;font:600 14px/1.2 system-ui;position:absolute;top:62px;left:50%;transform:translate(-50%)}.bottom{flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.block-name{color:#fff;text-shadow:0 1px 3px #000a;font-weight:600}.hotbar{background:var(--glass);border-radius:12px;gap:6px;padding:6px;display:flex}.slot{border:2px solid #0000;border-radius:8px;padding:4px;position:relative}.slot.on{background:#fff2;border-color:#fff}.slot.part{color:#fff;text-align:center;background:#ffffff14;justify-content:center;align-items:center;width:74px;height:42px;padding:2px 4px;font:600 11px/1.15 system-ui;display:flex;overflow:hidden}.slot.part.empty{width:auto;padding:4px 12px}.slot i{color:#fff;text-shadow:0 1px 2px #000;font:600 10px system-ui;position:absolute;top:1px;left:4px}.swatch{border-radius:6px;flex:none;display:inline-block;box-shadow:inset 0 0 0 1px #0002}.swatch.glow{box-shadow:0 0 8px 1px #fff8,inset 0 0 0 1px #0002}.swatch.see-through{opacity:.65}.hint{color:#fff;background:var(--glass);white-space:nowrap;border-radius:999px;padding:5px 12px;font-size:13.5px;position:absolute;bottom:104px;left:50%;transform:translate(-50%)}.toasts{flex-direction:column;align-items:flex-end;gap:8px;max-width:min(420px,100vw - 24px);display:flex;position:absolute;top:60px;right:12px}.toast{background:var(--paper);border-left:4px solid var(--accent);border-radius:8px;padding:8px 12px;transition:opacity .4s,transform .4s;box-shadow:0 4px 16px #0002}.toast.good{border-color:var(--good)}.toast.bad{border-color:var(--bad)}.toast.out{opacity:0;transform:translate(20px)}.chat{width:min(420px,100vw - 24px);position:absolute;bottom:14px;left:12px}.chat-log{color:#fff;text-shadow:0 1px 2px #000c;flex-direction:column;gap:2px;max-height:180px;font-size:14px;display:flex;overflow:hidden}.chat-log .sys{opacity:.8;font-style:italic}.chat-input{pointer-events:auto;width:100%;margin-top:6px}.status{background:var(--bad);color:#fff;border-radius:10px;padding:8px 14px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,80px)}input,textarea,button{font:inherit}input,textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;width:100%;padding:7px 10px}textarea{resize:vertical}button{pointer-events:auto;border:1px solid var(--line);color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:7px 14px}button:hover:not(:disabled){border-color:#bdb6a8}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button:disabled{opacity:.5;cursor:default}.panel-wrap{z-index:5;background:#0004;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0;pointer-events:auto!important}.panel{background:var(--paper);border-radius:16px;width:min(460px,100%);max-height:calc(100vh - 32px);padding:18px 20px 20px;overflow:auto;box-shadow:0 20px 60px #0005}.panel.wide{width:min(640px,100%)}.panel header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.panel h2{margin:0;font-size:20px}.panel h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 0;font-size:13px}.panel p{margin:0}.x{background:0 0;border:none;padding:2px 8px;font-size:24px;line-height:1}.stack{flex-direction:column;gap:10px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row input{flex:1;min-width:0}label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}label.check{flex-direction:row;align-items:center;gap:8px}label.check input{width:auto}.muted{color:var(--muted)}.small{font-size:12.5px}.callout{border-radius:10px;padding:8px 12px;font-weight:600}.callout.ok{color:#1f6b47;background:#e3f4ea}.callout.warn{color:#8a5a12;background:#fdf0dc}.scores{margin:0;padding-left:22px}.scores li span{margin-right:12px}.guestbook{flex-direction:column;gap:6px;max-height:200px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.guestbook li{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px}.palette{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;display:grid}.pick{text-align:left;align-items:center;gap:8px;padding:6px 8px;display:flex}.pick.on{border-color:var(--accent);box-shadow:0 0 0 2px #2f6fd033}.rules{flex-direction:column;gap:4px;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.rules li{align-items:baseline;gap:8px;display:flex}.rules b{white-space:nowrap}table{border-collapse:collapse;width:100%}.dir td,.dir th{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:3px 6px;font-size:13.5px}.dir button{padding:2px 10px}.dir tr.district td{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#00000008;padding-top:6px;font:700 11.5px system-ui}.dir th{color:var(--muted);font-size:12px}.num{white-space:nowrap;text-align:right!important}.keys td{vertical-align:top;padding:3px 8px 3px 0}kbd{border:1px solid var(--line);white-space:nowrap;background:#fff;border-bottom-width:2px;border-radius:6px;padding:1px 7px;font:600 12.5px system-ui;display:inline-block}.steps{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.join{background:linear-gradient(160deg,#bfe3f5,#e9f3d8);justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0;pointer-events:auto!important}.join-card{background:var(--paper);text-align:center;border-radius:18px;flex-direction:column;gap:12px;width:min(380px,100%);padding:28px;display:flex;box-shadow:0 20px 60px #0003}.join-card h1{letter-spacing:-.01em;margin:0;font-size:34px}.join-card p{color:var(--muted);margin:0}.part-slider{grid-template-columns:110px 1fr 46px;align-items:center;gap:8px;display:grid}.part-slider output{text-align:right;font-variant-numeric:tabular-nums}button.danger{color:#c0392b}.grid2{grid-template-columns:1fr 1fr;align-items:end;gap:6px 10px;display:grid}.grid2 .span2{grid-column:span 2}.callout.sale{flex-direction:column;gap:6px;display:flex}@media (width<=520px){.grid2{grid-template-columns:1fr}.grid2 .span2{grid-column:auto}}.stick{left:max(16px, env(safe-area-inset-left));bottom:max(16px, env(safe-area-inset-bottom));touch-action:none;background:#fff2;border:2px solid #fff5;border-radius:50%;width:120px;height:120px;position:absolute;pointer-events:auto!important}.stick-knob{background:#fffa;border-radius:50%;width:48px;height:48px;position:absolute;top:36px;left:36px;box-shadow:0 2px 8px #0004}.roster{background:var(--glass);color:#fff;pointer-events:none;border-radius:10px;width:min(340px,100vw - 24px);max-height:60vh;padding:8px 12px;font-size:14px;position:absolute;top:60px;left:50%;overflow:hidden;transform:translate(-50%)}.roster h3{margin:0 0 4px;font-size:13px}.roster-row{align-items:center;gap:6px;padding:1px 0;display:flex}.roster-row i{border-radius:2px;flex:none;width:10px;height:10px}.roster-row span{opacity:.75;margin-left:auto;font-size:12.5px}.tbtns{right:max(12px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));grid-template-columns:repeat(2,46px);gap:8px;display:grid;position:absolute;pointer-events:none!important}.tbtn{pointer-events:auto;background:var(--glass);color:#fff;touch-action:none;border:2px solid #fff6;border-radius:50%;width:46px;height:46px;padding:0;font:700 17px/1 system-ui}.tbtn.big{border-radius:23px;grid-column:span 2;width:100%;font-size:22px}body.touch .bottom{bottom:150px}body.touch .slot.part{width:58px;height:34px;font-size:10px}body.touch .hotbar{max-width:calc(100vw - 24px);overflow:hidden}body.touch .chat{width:min(300px,100vw - 140px);bottom:214px;left:10px}body.touch .chat-log{max-height:62px;font-size:12px}body.touch .block-name{text-align:center;max-width:calc(100vw - 150px);font-size:12.5px}body.touch .hint{white-space:normal;text-align:center;max-width:calc(100vw - 24px);font-size:12.5px;top:96px;bottom:auto}@media (width<=600px){.topbar{gap:6px;top:8px;left:8px;right:8px}.brand{display:none}.topbtn{padding:4px 7px;font-size:12px}.guide{flex-wrap:wrap;max-width:none;font-size:12.5px;top:72px;left:8px;right:8px}.guide span{flex:calc(100% - 48px)}.brand,.coins,.place{padding:4px 9px;font-size:13px}.run{padding:6px 12px;font-size:20px;top:48px}.values{font-size:12.5px;top:86px}.toasts{top:150px;right:8px}.toast{padding:6px 10px;font-size:13px}.panel{border-radius:12px;padding:12px 14px 14px}.panel-wrap{align-items:flex-end;padding:8px}.panel h2{font-size:17px}.dir td,.dir th{padding:4px 5px;font-size:13px}.stack{gap:8px}}body.touch .panel-wrap{padding-bottom:max(8px, env(safe-area-inset-bottom))}
