:root{--panel:#0c1014c7;--line:#ffffff1f;--text:#e7edf2;--muted:#93a1ad;--ok:#4ade80;--bad:#f87171;--warn:#fbbf24;--accent:#38bdf8}*{box-sizing:border-box}html,body{height:100%;color:var(--text);background:#0b0e11;margin:0;font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif;overflow:hidden}#view{width:100vw;height:100vh;display:block}#hud{pointer-events:none;font-size:13px;position:fixed;inset:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px 12px;position:absolute}.label{color:var(--muted);letter-spacing:.05em;font-size:11px}.sub{color:var(--muted);font-size:12px}#money-box{min-width:180px;top:12px;left:12px}#money{font-variant-numeric:tabular-nums;font-size:22px}#customer{width:300px;top:12px;right:12px}#cust-name{margin:2px 0 4px;font-size:15px}#cust-reqs{margin:0;padding-left:0;list-style:none}#cust-reqs li:before{content:"✗ ";color:var(--bad)}#cust-reqs li.ok:before{content:"✓ ";color:var(--ok)}#cust-state{margin-top:6px;font-weight:700}#cust-state.ok{color:var(--ok)}#cust-state.bad{color:var(--bad)}#links{width:300px;top:150px;right:12px}#link-list{font-variant-numeric:tabular-nums;margin:0;padding:0;list-style:none}#link-list li{justify-content:space-between;gap:8px;display:flex}#link-list li.over{color:var(--bad)}#link-list li.empty{color:var(--muted)}#crosshair{width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:50%;left:50%}#crosshair:before,#crosshair:after{content:"";background:#ffffffd9;position:absolute}#crosshair:before{width:2px;height:14px;top:0;left:6px}#crosshair:after{width:14px;height:2px;top:6px;left:0}#aim-info{background:var(--panel);white-space:nowrap;border-radius:4px;padding:4px 10px;display:none;position:absolute;top:calc(50% + 18px);left:50%;transform:translate(-50%)}#aim-info.show{display:block}#toast{background:var(--panel);opacity:0;border-radius:4px;padding:6px 14px;transition:opacity .3s;position:absolute;top:22%;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#hotbar{gap:6px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.slot{background:var(--panel);border:1px solid var(--line);border-radius:6px;min-width:112px;padding:6px 10px}.slot.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.slot .key,.slot .price{color:var(--muted);font-size:11px}.overlay{cursor:pointer;background:#05080ab8;place-items:center;display:grid;position:fixed;inset:0}.overlay.hidden{display:none}.card{border:1px solid var(--line);background:#11161b;border-radius:8px;max-width:520px;padding:20px 26px}.card h1{margin:0 0 8px;font-size:22px}.card table{border-collapse:collapse;margin:8px 0}.card td{padding:2px 12px 2px 0}.card td:first-child{color:var(--accent);white-space:nowrap}#start-msg{color:var(--warn)}body.capture #hud,body.capture #start{display:none}#terminal{z-index:60;background:#080a0c;border:1px solid #2d3a44;border-radius:6px;flex-direction:column;width:min(980px,94vw);height:min(560px,80vh);font-family:DejaVu Sans Mono,Menlo,Consolas,monospace;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 40px #0009}#terminal.open{display:flex}#terminal .term-bar{color:#cbd5dc;background:#1c252c;border-radius:6px 6px 0 0;justify-content:space-between;padding:5px 10px;font-size:12px;display:flex}#terminal .term-hint{color:#7d8b96}#terminal .term-out{color:#d7e3d0;white-space:pre-wrap;word-break:break-all;flex:1;margin:0;padding:8px 12px 0;font-size:13px;line-height:1.35;overflow-y:auto}#terminal .term-line{color:#d7e3d0;padding:0 12px 10px;font-size:13px;display:flex}#terminal .term-prompt{white-space:pre}#terminal .term-in{color:#f3f7ef;font:inherit;caret-color:#9be36b;background:0 0;border:0;outline:0;flex:1;padding:0}#tickets{width:330px;max-height:60vh;top:96px;left:12px;overflow:hidden}#tickets h3{margin:4px 0 2px;font-size:13px}#tickets h3.done{color:var(--ok)}#tickets ul{margin:0 0 6px;padding:0;font-size:12px;list-style:none}#tickets li:before{content:"[ ] ";color:var(--muted);font-family:monospace}#tickets li.ok{color:#b9e8c4}#tickets li.ok:before{content:"[OK] ";color:var(--ok)}#tickets .ticket-note{color:var(--muted);margin:0 0 4px;font-size:11px}.modes a{color:#7dd3fc}body.beast #customer,body.beast #links,body.beast #tickets{display:none}#beast-hud{z-index:30;color:#e5e7eb;text-align:center;pointer-events:none;background:#0c1014cc;border:1px solid #3b4652;border-radius:6px;width:min(560px,90vw);padding:8px 14px;font-size:13px;display:none;position:fixed;top:12px;left:50%;transform:translate(-50%)}body.beast #beast-hud{display:block}#beast-hud .bh-title{letter-spacing:.2em;color:#9ca3af;font-size:11px}#beast-hud .bh-bar{background:#1f2937;border-radius:5px;height:10px;margin:4px 0;overflow:hidden}#beast-hud .bh-bar i{background:linear-gradient(90deg,#f59e0b,#ef4444);width:0;height:100%;display:block}#beast-hud.alarm{border-color:#ef4444;animation:.8s infinite alternate bh-pulse}#beast-hud .bh-stage{color:#fca5a5;margin-top:2px}#beast-hud .bh-count{color:#fde047;font-size:16px;font-weight:700}@keyframes bh-pulse{0%{box-shadow:0 0 #ef444400}to{box-shadow:0 0 24px #ef4444b3}}#beast-over{z-index:80;pointer-events:none;display:none;position:fixed;inset:0}#beast-over.show{display:block}#beast-over .bo-flash{opacity:0;background:#f4fbff;position:absolute;inset:0}#beast-over .bo-card{text-align:center;color:#fff;pointer-events:auto;background:#080a0edb;border:1px solid #ef4444;border-radius:8px;padding:22px 34px;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#beast-over.final .bo-card{display:block}#beast-over h1{letter-spacing:.12em;color:#ef4444;margin:0 0 6px;font-size:44px}#beast-over .bo-stats{border-collapse:collapse;margin:12px auto}#beast-over .bo-stats td{text-align:left;padding:2px 12px}#beast-over button{color:#fff;cursor:pointer;background:#ef4444;border:0;border-radius:4px;margin-top:8px;padding:8px 18px;font-size:15px}#perf{z-index:70;color:#d1fae5;pointer-events:none;background:#0009;border-radius:4px;padding:4px 8px;font:12px monospace;display:none;position:fixed;bottom:12px;right:12px}.quality a.on{color:#fff;font-weight:700;text-decoration:none}.quality a{color:#7dd3fc}.quality .hint{color:#8b98a5;margin-left:6px;font-size:12px}
