:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#1b2938;background:#f5f6f3;color-scheme:light}
*{box-sizing:border-box}html,body{height:100%;width:100%;margin:0;overflow:hidden;overscroll-behavior:none}
button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #bf8f49;outline-offset:2px}[hidden]{display:none!important}
.app{width:100%;height:100vh;height:100dvh;min-height:0;display:grid;grid-template-rows:66px minmax(0,1fr) 78px;overflow:hidden}
.topbar{display:flex;align-items:center;gap:25px;min-width:0;padding:0 24px;background:#172637;color:#fff}
.brand{font-size:23px;letter-spacing:-1.35px;font-weight:900;white-space:nowrap;line-height:1}.brand span{color:#f0c66e}
.topbar h1{margin:0;font-size:16px;letter-spacing:-.3px;font-weight:650;min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;color:#e8edf0}
.verdict{display:flex;gap:26px;flex-shrink:0}.verdict>div{display:flex;flex-direction:column;gap:3px}.verdict small{font-size:9px;color:#abb7c5;font-weight:800;letter-spacing:1.2px}.verdict strong{color:#ffdb91;font-size:17px;white-space:nowrap;letter-spacing:-.2px}
.viewer{min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;padding:7px;overflow:hidden;background:#f5f6f3}
.map-frame{height:100%;width:100%;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.map-art{width:100%;height:100%;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}
.map-art svg{display:block;max-width:100%;max-height:100%;height:100%;width:100%;overflow:visible}
.controls{display:flex;align-items:center;gap:18px;min-width:0;padding:0 24px;background:#fff;border-top:1px solid #d7dcd9}
.view-select{display:flex;align-items:center;flex-shrink:0;background:#eef0ef;border-radius:9px;padding:4px;gap:3px}
.view-select button{border:0;background:transparent;border-radius:7px;padding:10px 16px;white-space:nowrap;font-size:13px;font-weight:750;color:#62717d}
.view-select button.active{background:#172637;color:white;box-shadow:0 2px 4px #13253a14}
#actorSelect{flex:0 1 215px;min-width:0;border:1px solid #d7dedc;padding:10px 9px;border-radius:8px;color:#253544;background:white;font-size:13px;font-weight:650;text-overflow:ellipsis}
.steps{flex:1;min-width:0;display:flex;align-items:center;gap:13px;margin-left:7px}
.step-arrow{border:1px solid #dce1df;background:#f6f8f7;color:#304354;width:37px;height:37px;border-radius:8px;font-size:27px;line-height:20px;flex-shrink:0}
.step-arrow:hover{background:#e9eeee}
.steps input{flex:1;min-width:20px;accent-color:#dba24e;cursor:pointer;height:30px}
.now{display:flex;flex-direction:column;min-width:75px;text-align:right;flex-shrink:0;gap:2px}.now strong{font-size:16px;line-height:1.1;white-space:nowrap}.now span{font-size:11px;font-weight:700;color:#7b898d;font-variant-numeric:tabular-nums}
.fatal{position:fixed;inset:0;background:#112135e5;display:grid;place-items:center;padding:20px}.fatal>div{max-width:450px;background:#fff;border-radius:12px;padding:24px;line-height:1.5;box-shadow:0 12px 45px #0005}.fatal strong{font-size:20px}.fatal p{color:#63727c}
@media(max-width:690px){.app{grid-template-rows:67px minmax(0,1fr) 100px}.topbar{padding:8px 12px;gap:3px 10px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:24px 25px}.brand{font-size:18px;grid-column:1}.topbar h1{grid-column:2;text-align:right;font-size:13px}.verdict{grid-column:1/-1;grid-row:2;gap:17px;justify-content:center;align-items:center}.verdict>div{flex-direction:row;gap:6px;align-items:center}.verdict small{font-size:9px}.verdict strong{font-size:13px}.viewer{padding:4px}.controls{padding:7px 10px;gap:5px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:37px 39px;align-content:center}.view-select{grid-column:1;grid-row:1;padding:2px;gap:2px}.view-select button{font-size:11px;padding:8px 12px}.controls #actorSelect:not([hidden]){grid-column:2;grid-row:1;min-width:0;width:100%;padding:7px 6px;font-size:11px}.steps{grid-row:2;grid-column:1/-1;margin:0;gap:8px;padding-right:78px}.step-arrow{width:31px;height:31px;font-size:23px}.now{grid-row:2;grid-column:2;justify-self:end;align-self:center;margin-left:0}.now strong{font-size:13px}.now span{font-size:10px}}
@media(max-width:345px){.topbar h1{font-size:11px}.view-select button{padding:8px 9px}.now{min-width:63px}.steps{padding-right:65px;gap:5px}.step-arrow{width:29px;height:29px}}
@media(max-height:520px) and (min-width:691px){.app{grid-template-rows:43px minmax(0,1fr) 54px}.topbar{padding:0 13px;gap:13px}.brand{font-size:17px}.topbar h1{font-size:13px}.verdict{gap:15px}.verdict small{font-size:8px}.verdict strong{font-size:12px}.controls{padding:0 14px;gap:10px}.view-select button{padding:7px 11px}.step-arrow{height:30px;width:30px}.steps{gap:7px}.now strong{font-size:13px}}
@media(max-height:620px) and (max-width:690px){.app{grid-template-rows:49px minmax(0,1fr) 76px}.topbar{grid-template-rows:19px 16px;padding:3px 9px}.brand{font-size:15px}.topbar h1{font-size:11px}.verdict small{font-size:7px}.verdict strong{font-size:10px}.controls{padding:2px 7px;grid-template-rows:30px 30px;row-gap:2px}.view-select button{padding:5px 8px}.step-arrow{height:25px;width:26px}.steps{padding-right:65px}.now strong{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* V4: centered per-case code entry, single-screen preserved after unlock. */
.access-screen{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;display:grid;place-items:center;overflow:hidden;padding:18px;background:radial-gradient(circle at 50% 30%,#334760 0,#172637 60%,#111c2a 100%);z-index:9}
.access-card{width:min(390px,100%);padding:35px 28px 30px;background:#fff;border-radius:17px;text-align:center;box-shadow:0 22px 65px #0005}
.lock-brand{font-weight:900;letter-spacing:-1.4px;font-size:26px;color:#172637}.lock-brand span{color:#bd833a}
.access-card h1{font-size:25px;line-height:1.2;letter-spacing:1px;color:#172637;margin:22px 0 27px}
.access-message{font-size:12px;min-height:1.1em;margin:14px 0 0;color:#b33742}
.shortcut-warning{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#172637;color:#fff;z-index:50;padding:12px 18px;border-radius:9px;box-shadow:0 8px 24px #0005;text-align:center;font-size:13px;max-width:min(90vw,480px)}
.topbar h1{text-align:center;font-size:18px;letter-spacing:.65px}
@media(max-width:690px){.access-card{padding:28px 22px}.topbar h1{font-size:13px;text-align:center}.access-card h1{font-size:23px}}
