:root{--paper:#eee8d9;--ink:#182b32;--muted:#a7b6b6;--amber:#ffd08b}*{box-sizing:border-box}body{margin:0;background:#14222c;color:var(--paper);font-family:system-ui,'Microsoft JhengHei',sans-serif;overflow:hidden}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;border:1px solid #5a6d73;background:#243941;color:var(--paper);border-radius:8px;min-height:44px;padding:10px 16px}button:hover{border-color:var(--amber)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--amber);outline-offset:3px}[hidden]{display:none!important}a{color:inherit;text-decoration:none}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:absolute;top:18px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}header>*{pointer-events:auto}header a{font-size:13px;letter-spacing:2px;text-shadow:0 2px 15px #000}header button{padding:5px;width:44px;background:#14222ccf}#home{position:absolute;left:6%;top:50%;transform:translateY(-46%);width:390px;padding:32px;background:#14222cf5;border:1px solid #58727b;border-radius:18px;box-shadow:0 20px 80px #0005}#home>small{font-size:10px;letter-spacing:2px;color:#b3beb6;display:block;line-height:1.8}h1{font-size:39px;line-height:1.35;letter-spacing:-1px;margin:18px 0}h1 em{font-style:normal;color:var(--amber)}p{line-height:1.8}#home .muted{font-size:14px;color:#b9c2bf}.primary{background:var(--amber);color:var(--ink);font-weight:650;border-color:var(--amber)}#home button{display:block;width:100%;margin:15px 0}#home #sandbox{background:transparent;font-size:13px}#hud{position:absolute;top:83px;left:24px;right:24px;display:flex;justify-content:space-between;pointer-events:none}#hud>*{pointer-events:auto}.clock{background:#14222cdd;border:1px solid #58727b;border-radius:10px;padding:12px 18px;display:flex;flex-direction:column;gap:5px}.clock small{font-size:9px;letter-spacing:2px;color:#afc5c7}.clock b{font-size:34px;font-variant-numeric:tabular-nums;letter-spacing:2px}.clock span{font-size:11px;color:var(--amber)}#inbox{display:flex;flex-direction:column;gap:5px;background:#14222cdd;align-self:start}#inbox b{font-size:25px}#inbox span{font-size:10px}#ticker{position:absolute;top:90px;left:50%;transform:translateX(-50%);max-width:450px;background:#172b32ec;padding:12px 18px;border:1px solid #a89570;border-radius:10px;font-size:14px;line-height:1.7;pointer-events:none}#ticker:empty{display:none}#stick-wrap{position:absolute;left:24px;bottom:30px}#stick{width:130px;height:130px;border:1px solid #c7d4ce77;background:#d5e3d315;border-radius:50%;display:grid;place-items:center;touch-action:none}.joystick-thumb{display:block;width:54px;height:54px;background:#d8d9bcbb;border:2px solid #f8eccc;border-radius:50%}#action-wrap{position:absolute;right:24px;bottom:30px;display:flex;align-items:center;flex-direction:column;gap:10px}#near-label{font-size:11px;background:#14222cd9;padding:7px 12px;border-radius:7px}#interact{border-radius:50%;height:86px;width:86px;background:#f8ca87;color:#20353d;font-size:30px}#mission{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 390px));display:flex;align-items:center;justify-content:space-between;gap:12px;background:#14222ceb;border:1px solid #5e7277;border-radius:12px;padding:12px 16px;font-size:13px}#mission span{line-height:1.6}#mission button{white-space:nowrap}dialog{position:fixed;inset:0 22px 0 auto;margin:auto 0;width:460px;max-width:calc(100% - 28px);max-height:calc(100dvh - 40px);padding:0;background:#192f38;color:var(--paper);border:1px solid #7e9496;border-radius:16px;box-shadow:0 15px 70px #0006}dialog::backdrop{background:#08121788}#panel-body{padding:30px;max-height:calc(100dvh - 42px);overflow:auto;overscroll-behavior:contain}#close{position:absolute;top:8px;right:8px;z-index:2;width:42px;height:42px;padding:0;font-size:25px;background:#192f38}dialog h2{font-size:25px;line-height:1.5;margin:18px 0}dialog h3{font-size:16px;color:var(--amber);margin-top:22px}dialog p{font-size:15px}.eyebrow{font-size:10px;letter-spacing:2px;color:#acbebc;padding-right:28px}.note{font-size:12px!important;color:#adbab8}.controls{display:grid;gap:10px;margin:14px 0}.controls button{text-align:left;font-size:14px;line-height:1.6}.controls button[aria-pressed=true]{border-color:#e7bf77;background:#365052}.log{padding:12px;background:#0f222b;border-radius:7px;margin:10px 0;font-size:13px;line-height:1.8}.log small{color:#e9c291}.result{padding:14px;border-left:3px solid #e9bf7c;background:#2e4245;font-size:14px;line-height:1.7}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.8;padding:14px;background:#0f222b;border-radius:7px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metrics div{padding:12px;background:#243e46;border-radius:7px;text-align:center;font-size:11px}.metrics b{display:block;font-size:26px;margin-bottom:6px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#14222c;z-index:30;letter-spacing:3px}.playing #home{display:none}.modal #stick-wrap,.modal #action-wrap,.modal #mission{visibility:hidden}@media(max-width:760px){header{top:12px;left:14px;right:14px}header a{font-size:10px;letter-spacing:1px}header button{width:38px;min-height:38px}#home{left:14px;right:14px;top:auto;bottom:24px;transform:none;width:auto;max-height:calc(100dvh - 100px);overflow:auto;padding:24px}h1{font-size:31px;margin:12px 0}#home p{font-size:14px;margin:10px 0}#hud{top:66px;left:14px;right:14px}.clock{padding:8px 11px;flex-direction:row;gap:9px;align-items:center}.clock small{display:none}.clock b{font-size:22px}.clock span{font-size:10px}#inbox{padding:7px 10px;gap:0}#inbox b{font-size:19px}#ticker{top:116px;max-width:calc(100% - 28px);width:max-content;font-size:12px;padding:9px 12px}#stick-wrap{left:14px;bottom:88px}#stick{width:92px;height:92px}.joystick-thumb{width:42px;height:42px}#action-wrap{right:14px;bottom:88px;gap:5px}#near-label{font-size:9px;padding:5px 8px}#interact{width:66px;height:66px;font-size:25px}#mission{bottom:14px;width:calc(100% - 28px);padding:7px 10px;font-size:11px;min-height:54px}#mission button{font-size:11px;padding:8px 10px}dialog{inset:0;margin:auto;width:560px;max-height:calc(100dvh - 20px)}#panel-body{padding:25px 20px;max-height:calc(100dvh - 22px)}dialog h2{font-size:23px}}@media(max-height:540px) and (min-width:600px){#home{top:60px;bottom:15px;width:390px;left:20px;padding:20px}h1{font-size:28px}#home p{font-size:12px}#home>small:last-child{display:none}#hud{top:64px}.clock{padding:8px 12px}.clock b{font-size:25px}.clock small{display:none}#ticker{top:64px;max-width:40vw;font-size:11px}#stick-wrap{bottom:18px}#stick{width:96px;height:96px}#action-wrap{bottom:18px}#mission{width:calc(100% - 330px);bottom:18px;font-size:11px}dialog{max-height:calc(100dvh - 20px)}#panel-body{max-height:calc(100dvh - 22px)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Feedback belongs to the event: an arriving message nudges its own card. */
#ticker.announce{animation:message-knock .55s ease-out;border-color:#f0c07b;box-shadow:0 0 24px #efbc5b22}#inbox.urgent{animation:inbox-ring .6s ease-out}.result{animation:result-reveal .22s ease-out}.result.warning{border-left-color:#f0a08a;background:#4c3439}button:not(:disabled):active{transform:translateY(1px)}
@keyframes message-knock{0%{opacity:0;transform:translate(-50%,-12px)}45%{opacity:1;transform:translate(-50%,3px)}65%{transform:translate(calc(-50% - 2px),0)}85%{transform:translate(calc(-50% + 2px),0)}100%{transform:translate(-50%,0)}}@keyframes inbox-ring{25%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}75%{transform:rotate(-1deg)}100%{transform:none}}@keyframes result-reveal{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#ticker.announce,#inbox.urgent,.result{animation:none!important}}
header>div{display:flex;align-items:center;gap:4px}header button{white-space:nowrap;line-height:1;padding:4px}#quality{font-size:11px;letter-spacing:0}
/* Incident desks: readable side-by-side evidence, full-width on phones. */
dialog{inset:0;margin:auto;width:980px;max-width:calc(100% - 28px)}#panel-body{padding:32px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:26px}.two-col>div{min-width:0}.chat-bubble{padding:18px;background:#30494e;border-radius:4px 18px 18px 18px;border-left:3px solid var(--amber)}.chat-bubble b{font-size:13px;color:var(--amber)}.chat-bubble p{margin:8px 0}.app-screen,.workbench,.compose{background:#10252e;border:1px solid #526a72;border-radius:14px;padding:20px}.app-bar{padding:10px;background:#3b6470;border-radius:5px;font-size:13px}.empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;color:#b6c6c1;line-height:1.7}.empty span{font-size:46px;color:#d7c39d}.empty p{font-size:13px}.badge{display:inline-block;padding:5px 9px;background:#624738;color:#ffe0a1;font-size:12px;border-radius:5px;margin:3px 0}.badge.ok{background:#2d594e;color:#c5f0d6}.file-list{display:grid;gap:12px}.file-card{display:flex;gap:14px;text-align:left;line-height:1.8;padding:16px;width:100%}.file-card[aria-pressed=true]{outline:2px solid var(--amber);background:#3a5156}.file-card small{font-size:12px;color:#c5cfc8}.file-icon{font-size:28px;color:var(--amber)}.workbench h3,.attachment-source b,.dropzone b{overflow-wrap:anywhere}.attachment-source{padding:14px;border:1px solid #60767d;border-radius:9px;margin:12px 0;background:#283f48;cursor:grab}.attachment-source b{font-size:13px}.attachment-source small{display:block;color:#c5cfc8;margin-top:8px}.attachment-source .actions{margin-top:12px}.attachment-source button{font-size:13px}select{display:block;width:100%;min-height:48px;padding:10px;color:var(--paper);background:#243941;border:1px solid #71868a;border-radius:7px;font:inherit;margin:10px 0}.dropzone{border:2px dashed #8eaaad;min-height:112px;padding:16px;border-radius:10px;line-height:1.8;font-size:13px;margin:16px 0}.dropzone.drag-over{background:#456658;border-color:var(--amber)}.dropzone button{margin-top:10px}.pdf{position:relative;background:#f5f0e3;color:#25383e;padding:32px;border-radius:5px;margin:20px auto;max-width:650px;box-shadow:0 10px 30px #0004}.pdf>small{font-size:10px;letter-spacing:1px}.pdf h3{color:#273f48;font-size:26px;border-bottom:2px solid #516c70;padding-bottom:18px}.pdf dl{display:grid;grid-template-columns:90px 1fr;gap:16px;line-height:1.8}.pdf dt{color:#60777a;font-size:13px}.pdf dd{margin:0}.pdf p,.pdf footer{font-size:11px;color:#586d70;overflow-wrap:anywhere}.stamp{position:absolute;right:24px;top:66px;padding:8px;color:#a65a43;border:2px solid #a65a43;transform:rotate(-8deg);font-weight:bold}.checklist{border:1px solid #58727b;padding:8px 18px;border-radius:9px;margin:20px 0}.checklist p{margin:10px 0;font-size:14px}.ending{animation:result-reveal .4s ease-out}@media(max-width:760px){.two-col{grid-template-columns:1fr;gap:18px}#panel-body{padding:28px 18px 20px}.app-screen,.workbench,.compose{padding:16px}.pdf{padding:20px 16px}.pdf h3{font-size:21px}.pdf dl{grid-template-columns:72px 1fr;font-size:14px;gap:12px}.stamp{font-size:12px;right:18px;top:56px}.file-card{font-size:14px}.chat-bubble{padding:14px}}@media(prefers-reduced-motion:reduce){.ending{animation:none}}
