
:root{color-scheme:dark;--accent:#39c5bb;--line:#39c5bb27;--muted:#728b94;--ink:#d9e9ed;font-family:var(--font-mono);background:#05070a;color:var(--ink)}:root[data-theme=teto]{--accent:#d83232;--line:#d8323238}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}
.scanner{min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 65% 60%,#07212a60,transparent 62%),#05070a;padding:26px 32px 0;overflow:hidden}.scanner-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}.scanner-back{display:inline-block;color:var(--accent);font-size:9px;letter-spacing:2px;margin-bottom:12px}.scanner-back:hover{text-shadow:0 0 12px var(--accent)}.scanner-header h1{font:500 clamp(24px,3vw,40px)/1.1 var(--font-sans);letter-spacing:-1.4px;margin:0}.scanner-header h1 span{color:var(--accent)}.scanner-header sup{font:9px var(--font-mono);color:var(--muted);vertical-align:top;margin:4px 0 0 10px;display:inline-block}.scanner-header p{font-size:9px;color:var(--muted);margin:10px 0 0;letter-spacing:.6px}.scanner-header p span{color:var(--accent);padding:0 7px}.scanner-link{display:flex;align-items:center;gap:10px;font-size:8px;color:var(--muted);letter-spacing:1px}.scanner-link strong{display:block;color:var(--accent);font-weight:400;font-size:10px;margin-top:5px}.scanner-link time{border-left:1px solid var(--line);padding-left:20px;margin-left:14px;font-size:12px;font-variant-numeric:tabular-nums;color:#b5cbd3}.scanner-led{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);flex-shrink:0}.rift-dot{display:inline-block;width:5px;height:5px;background:#9d4edd;box-shadow:0 0 8px #9d4edd;border-radius:50%}
.scanner-toolbar{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.scanner-filters,.scanner-actions{display:flex;flex-wrap:wrap;gap:6px}.scanner-toolbar button{padding:9px 12px;border:1px solid transparent;border-radius:4px;font-size:9px;background:transparent;color:var(--muted);transition:color .2s,background .2s}.scanner-toolbar button span{margin-left:9px;color:#536872}.scanner-toolbar button[aria-pressed=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:var(--line)}.scanner-toolbar button:hover{color:#deeff1;border-color:var(--line)}.scanner-actions button{border-color:#23343e}.scanner-workspace{display:flex;flex:1;min-height:470px}.scanner-index{flex:0 0 236px;padding:24px 22px 20px 0;position:relative;z-index:2}.scanner-section-label{display:flex;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:1px;color:var(--muted);margin-bottom:17px}.scanner-section-label>span:last-child{color:var(--accent)}#scanner-location-list{display:flex;flex-direction:column;gap:8px}.scanner-location{width:100%;text-align:left;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;padding:13px 11px;background:#0b1119b3;border:1px solid #1c2a35;border-radius:6px;color:#cfdee4;transition:background .2s,border-color .2s}.scanner-location:hover,.scanner-location[aria-pressed=true]{border-color:var(--signal);background:#101c26}.scanner-location[aria-pressed=true]{box-shadow:inset 2px 0 var(--signal)}.scanner-location-number{font-size:10px;color:var(--signal);padding-top:2px}.scanner-location strong{display:block;font:500 12px/1.5 var(--font-sans)}.scanner-location small{display:block;font-size:8px;color:var(--muted);margin-top:5px;letter-spacing:.2px}.scanner-location-type{display:inline-block;margin-top:8px;font-size:7px;color:var(--signal);letter-spacing:1px}.scanner-index-footer{margin-top:24px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:7px;letter-spacing:.4px}.scanner-index-footer .rift-dot{margin-left:6px}.scanner-index-footer p{width:100%;font:11px/1.8 var(--font-sans);color:#647b87;margin:10px 0}
.scanner-stage{flex:1;position:relative;min-width:0;min-height:470px;overflow:hidden;border-left:1px solid var(--line);background-image:linear-gradient(#39c5bb03 1px,transparent 1px),linear-gradient(90deg,#39c5bb03 1px,transparent 1px);background-size:44px 44px}#scanner-canvas-host{position:absolute;inset:0}#scanner-canvas-host canvas{display:block;width:100%;height:100%;touch-action:none}.scanner-stage-heading,.scanner-stage-footer{position:absolute;left:22px;right:22px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;font-size:8px;letter-spacing:1px;color:#67818c}.scanner-stage-heading{top:23px}.scanner-stage-heading span:last-child{color:var(--accent)}.scanner-stage-footer{bottom:22px;font-size:7px}.scanner-stage-footer>span:first-child{display:flex;align-items:center;gap:7px}.scanner-crosshair{position:absolute;inset:16px;pointer-events:none;background:linear-gradient(var(--accent),var(--accent)) left top/15px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left top/1px 15px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/15px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/1px 15px no-repeat;opacity:.5}.scanner-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:radial-gradient(ellipse,#07161c,transparent 70%);text-align:center;padding:30px;pointer-events:none}.scanner-loading strong{font-size:13px;font-weight:400;color:var(--accent)}.scanner-loading span{font-size:10px;line-height:1.8;color:var(--muted);max-width:300px}.scanner-loader{width:60px;height:60px;border:1px solid #39c5bb20;border-top-color:var(--accent);border-radius:50%;animation:scanner-spin 2s linear infinite}.scanner-loading.failed .scanner-loader{animation:none;border-color:#d83232;opacity:.5}.scanner-tooltip{position:absolute;z-index:5;pointer-events:none;max-width:min(250px,calc(100% - 24px));padding:10px 13px;border:1px solid var(--signal,var(--accent));background:#070e16ed;backdrop-filter:blur(12px);border-radius:4px;color:#ecf6f6;font-size:10px;line-height:1.6;box-shadow:0 0 20px #39c5bb15}
.scanner-hud{flex:0 0 0;width:0;overflow:hidden;visibility:hidden;opacity:0;transform:translateX(24px);transition:opacity .3s,transform .3s,flex-basis .3s;background:linear-gradient(150deg,#11212ad9,#091018ef);backdrop-filter:blur(20px);border-left:1px solid transparent}.scanner-hud.open{flex-basis:308px;width:308px;visibility:visible;opacity:1;transform:translateX(0);border-color:var(--signal,var(--accent))}.scanner-hud-heading{padding:20px 20px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:8px;letter-spacing:1px}.scanner-hud-heading button{background:transparent;border:1px solid #30434b;color:#b4d0d7;font:22px/1 var(--font-sans);border-radius:4px;min-width:30px;min-height:30px}#scanner-hud-body{padding:10px 22px 24px;min-width:285px}.scanner-hud h2{font:500 25px/1.25 var(--font-sans);letter-spacing:-.7px;margin:14px 0}.scanner-hud .scanner-place{font-size:9px;color:var(--muted);line-height:1.6}.scanner-status-badge{display:inline-block;padding:6px 9px;margin:8px 0 20px;border:1px solid var(--signal,var(--accent));border-radius:3px;background:#ffffff04;color:var(--signal,var(--accent));font-size:8px;letter-spacing:1px}.scanner-coordinates{margin:0 0 22px;border-top:1px solid #31444b66;border-bottom:1px solid #31444b66;padding:10px 0}.scanner-coordinates>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0}.scanner-coordinates dt{font-size:8px;color:var(--muted);letter-spacing:1px}.scanner-coordinates dd{font-size:12px;color:#ccedf0;margin:0;font-variant-numeric:tabular-nums}.scanner-hud h3{font-size:8px;color:var(--muted);font-weight:400;letter-spacing:1.3px;margin:22px 0 12px}.scanner-description{font:13px/1.85 var(--font-sans);color:#a7bec8}.scanner-sensors{display:grid;grid-template-columns:1fr 1fr;gap:8px}.scanner-sensors>div{padding:13px 9px;border:1px solid #293a4555;border-radius:5px;background:#050a1055}.scanner-sensors small{display:block;color:var(--muted);font-size:7px;letter-spacing:.4px;margin-bottom:8px}.scanner-sensors strong{font-size:12px;font-weight:400;color:#d1edef}.scanner-sensors p{font-size:8px;color:var(--muted);margin:7px 0 0}.scanner-simulation{font-size:8px;color:#66838e;line-height:1.8;margin:12px 0}.scanner-hud-link{display:block;width:100%;padding:13px 12px;background:color-mix(in srgb,var(--signal,var(--accent)) 9%,transparent);border:1px solid var(--signal,var(--accent));border-radius:4px;color:var(--signal,var(--accent));font:10px/1.7 var(--font-mono);text-align:center;margin-top:20px}.scanner-hud-link:hover{box-shadow:0 0 18px color-mix(in srgb,var(--signal,var(--accent)) 15%,transparent)}.scanner-danger{display:flex;align-items:center;gap:6px;color:var(--signal);font-size:10px}.scanner-danger i{height:5px;flex:1;background:#2a2938}.scanner-danger i.active{background:var(--signal);box-shadow:0 0 8px color-mix(in srgb,var(--signal) 25%,transparent)}.scanner-danger span{margin-left:7px;white-space:nowrap}.scanner-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--line);font-size:7px;color:#536a74;letter-spacing:1px}.scanner-footer p{font-size:8px;letter-spacing:0;color:#819aa5;margin:0}.scanner-footer>span:last-child{font-size:6px}.scanner-footer>span:last-child span{color:var(--accent);margin:0 9px}@keyframes scanner-spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){.scanner{padding:35px 48px 0}.scanner-index{flex-basis:270px;padding-right:30px}.scanner-hud.open{flex-basis:340px;width:340px}.scanner-stage{min-height:580px}}
@media(max-width:1000px){.scanner{padding:20px 18px 0}.scanner-index{flex-basis:190px;padding-right:12px}.scanner-location{padding:11px 8px;gap:4px}.scanner-location strong{font-size:11px}.scanner-hud.open{flex-basis:270px;width:270px}#scanner-hud-body{min-width:260px;padding:10px 16px 20px}.scanner-hud-heading{padding:16px 16px 0}.scanner-link time{display:none}.scanner-toolbar{flex-wrap:wrap}.scanner-header h1{font-size:29px}.scanner-stage-footer span:last-child{display:none}}
@media(max-width:700px){.scanner{padding:18px 12px 0}.scanner-header{gap:10px;margin-bottom:18px;align-items:flex-start}.scanner-header h1{font-size:25px;letter-spacing:-1px}.scanner-header h1 sup{display:none}.scanner-header p{font-size:7px;letter-spacing:0;max-width:210px;line-height:1.8}.scanner-back{font-size:7px;letter-spacing:1px}.scanner-link{font-size:6px;gap:6px;letter-spacing:0;margin-top:5px;flex:0 0 80px}.scanner-link strong{font-size:7px}.scanner-toolbar{gap:8px;padding:10px 0}.scanner-filters{gap:2px}.scanner-toolbar button{font-size:8px;padding:8px}.scanner-toolbar button span{margin-left:3px}.scanner-actions{width:100%;justify-content:space-between}.scanner-actions button{flex:1}.scanner-workspace{display:grid;grid-template-columns:minmax(0,1fr);min-height:0}.scanner-stage{grid-row:1;min-height:360px;height:clamp(330px,62dvh,480px);border-left:0;border-bottom:1px solid var(--line)}.scanner-stage-heading{left:12px;right:12px;font-size:7px;top:17px}.scanner-stage-footer{left:12px;right:12px;bottom:18px}.scanner-crosshair{inset:10px}.scanner-index{grid-row:3;padding:18px 0 8px}.scanner-section-label{margin-bottom:12px}#scanner-location-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}.scanner-index-footer{display:none}.scanner-location{padding:12px 9px;gap:5px;grid-template-columns:18px minmax(0,1fr)}.scanner-location strong{font-size:11px}.scanner-location small{font-size:7px}.scanner-hud{grid-row:2;flex:none;max-height:0;border-left:0;width:100%;transform:translateY(12px)}.scanner-hud.open{max-height:1000px;width:100%;border:1px solid var(--signal);border-radius:7px;margin-top:12px}.scanner-hud h2{font-size:23px}.scanner-hud-heading{padding:16px 18px 0}#scanner-hud-body{padding:0 18px 20px;min-width:0}.scanner-coordinates{margin-bottom:16px}.scanner-footer{gap:10px;font-size:6px;padding:15px 0}.scanner-footer>span:last-child{display:none}.scanner-footer p{font-size:8px;width:100%;order:3;line-height:1.7}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
