:root{--bg: #0b0f18;--panel: #141b28;--panel-head: #1a2333;--line: #26314a;--text: #e8eef8;--muted: #93a3bd;--accent: #4ea3ff;--satellite: #ffd479;--danger: #ff6b6b;color-scheme:dark;font-family:Segoe UI,Roboto,system-ui,sans-serif;font-size:15px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{background:#223049;border:1px solid var(--line);border-radius:6px;padding:5px 11px;cursor:pointer}button:hover:not(:disabled){background:#2c3d5c}button.active{background:var(--accent);border-color:var(--accent);color:#0b0f18;font-weight:600}button:disabled{opacity:.5;cursor:default}input,select{background:#0f1521;border:1px solid var(--line);border-radius:6px;padding:5px 9px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}.app{height:100vh;display:grid;grid-template-rows:auto minmax(0,1fr)}.app-head{display:flex;align-items:center;gap:24px;padding:10px 18px;background:var(--panel-head);border-bottom:1px solid var(--line)}.brand{display:grid;line-height:1.15}.brand-mark{font-size:20px;font-weight:700;letter-spacing:.5px}.brand-owner{font-size:10px;color:var(--muted);letter-spacing:.3px;white-space:nowrap}.app-body{display:grid;grid-template-columns:minmax(360px,32%) minmax(0,1fr);gap:12px;padding:12px;min-height:0}.app-body.blocked{grid-template-columns:1fr;place-items:center}.column{display:grid;grid-template-rows:minmax(0,46%) minmax(0,1fr);gap:12px;min-height:0}.column.wide{grid-template-rows:minmax(0,1fr)}.panel{display:flex;flex-direction:column;min-height:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--panel-head);border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted)}.panel-actions{display:flex;align-items:center;gap:10px}.panel-foot{display:flex;gap:16px;padding:6px 12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden}.site-label{overflow:hidden;text-overflow:ellipsis}.switch{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);cursor:pointer}.switch input{accent-color:var(--accent)}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.site-search{display:flex;gap:6px;flex:1 1 320px;max-width:520px}.site-search-field{position:relative;flex:1}.site-search-field input{width:100%}.suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;margin:0;padding:4px;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px #00000073;max-height:320px;overflow-y:auto}.suggestions button{display:flex;flex-direction:column;gap:1px;width:100%;padding:6px 9px;border:none;border-radius:5px;background:none;text-align:left;line-height:1.3}.suggestions button.active,.suggestions button:hover{background:#24334d}.suggestions strong{font-weight:600}.suggestions span{font-size:12px;color:var(--muted)}.satellite-picker{display:flex;align-items:center;gap:12px}.satellite-picker label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.satellite-picker select{min-width:300px}.custom-lon input{width:84px}.map-stage,.street-view-stage{position:relative;flex:1;min-height:0}.map-canvas,.street-view-canvas{position:absolute;inset:0}.street-view-canvas{isolation:isolate}.sv-overlay{position:absolute;inset:0;z-index:1;pointer-events:none}.sv-horizon line{stroke:#ffffff73;stroke-width:1;stroke-dasharray:10 8}.sv-horizon text{fill:#ffffff8c;font-size:11px;letter-spacing:1px;text-transform:uppercase;paint-order:stroke;stroke:#0000008c;stroke-width:3}.sv-horizon g line{stroke-dasharray:none;stroke:#ffffff80}.sv-horizon g.major line{stroke:#fffc}.sv-horizon g.major text{font-size:10px;letter-spacing:0;fill:#ffffffbf}.sv-overlay.measuring{pointer-events:auto;cursor:crosshair}.sv-arc path{fill:none;stroke:#ffd47980;stroke-width:2;stroke-dasharray:2 5}.sv-arc path.masque{stroke:var(--danger);stroke-opacity:.9;stroke-dasharray:none;stroke-width:3}.sv-mask-fill{fill:#ff6b6b29;stroke:none}.sv-mask-line{fill:none;stroke:var(--danger);stroke-width:2;stroke-opacity:.85}.sv-mask circle{fill:var(--danger);stroke:#080c14cc;stroke-width:1.5}.sv-mask text{fill:#ffc9c9;font-size:11px;font-weight:600;paint-order:stroke;stroke:#000000a6;stroke-width:3}.sv-hint{position:absolute;left:50%;top:14px;transform:translate(-50%);padding:7px 14px;border-radius:8px;background:#080c14db;border:1px solid var(--accent);font-size:13px;max-width:80%;text-align:center}.sv-arc circle{fill:#ffd479d9}.sv-arc text{fill:#ffd479e6;font-size:10px;paint-order:stroke;stroke:#0009;stroke-width:3}.sv-center line{stroke:#ffffffb3;stroke-width:1.5}.sv-reticle line{stroke:currentColor;stroke-width:2}.sv-reticle-ring{fill:none;stroke:currentColor;stroke-width:2}.sv-reticle-halo{fill:currentColor;fill-opacity:.12;stroke:currentColor;stroke-opacity:.35;stroke-width:1}.sv-label{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 10px;border-radius:6px;background:#080c14d1;border:1px solid rgba(255,212,121,.5);font-size:12px;white-space:nowrap}.sv-label strong{color:var(--satellite)}.sv-offscreen{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;background:#080c14d1;border:1px solid var(--line);font-size:13px}.sv-offscreen.right{right:16px;flex-direction:row-reverse}.sv-offscreen.left{left:16px}.sv-offscreen-arrow{font-size:26px;line-height:1;color:var(--satellite)}.sv-warning{position:absolute;left:50%;bottom:18px;transform:translate(-50%);padding:7px 14px;border-radius:8px;background:#3c0c0ce6;border:1px solid var(--danger);font-size:13px}.street-view-empty{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:6px;padding:24px;text-align:center;background:#0b0f18e6}.street-view-empty span{color:var(--muted);max-width:380px}.sv-warnings{position:absolute;top:0;left:0;right:0;z-index:2;display:grid;gap:1px;pointer-events:none}.sv-warnings p{margin:0;padding:5px 12px;background:#0b0f18d1;border-left:3px solid var(--satellite);font-size:12px;line-height:1.35;color:var(--muted)}.sv-warnings strong{color:var(--satellite);font-weight:600}.panel-foot .alerte{color:var(--satellite)}.pointing{overflow-y:auto}.visibility{padding:7px 12px;font-size:13px;font-weight:600;border-bottom:1px solid var(--line)}.visibility.mask-clear{color:#4ade80;background:#4ade801a}.visibility.below-horizon{color:var(--danger);background:#ff6b6b1f}.readouts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.readout{display:flex;flex-direction:column;gap:2px;padding:12px 10px;background:var(--panel);text-align:center}.readout-label{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.readout-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--satellite)}.readout-hint{font-size:11px;color:var(--muted)}.details{margin:0;padding:4px 12px}.details>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid rgba(38,49,74,.5);font-size:13px}.details dt{color:var(--muted)}.details dd{margin:0;font-variant-numeric:tabular-nums;text-align:right}.disclaimer{margin:10px 12px 12px;font-size:11px;line-height:1.45;color:var(--muted)}.sheet-overlay{position:fixed;inset:0;z-index:200;overflow-y:auto;background:#2a2f3a;padding:24px 0 48px}.sheet-actions{display:flex;justify-content:center;gap:10px;margin-bottom:18px}.sheet{width:210mm;min-height:297mm;margin:0 auto;padding:14mm 15mm;box-sizing:border-box;background:#fff;color:#14181f;font-size:11pt;line-height:1.45;box-shadow:0 8px 32px #00000080}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:8px;border-bottom:2px solid #14181f}.sheet-head h1{margin:0;font-size:19pt;letter-spacing:.4px}.sheet-site{margin:2px 0 0;font-size:11pt;color:#4a5262}.sheet-satellite{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.sheet-satellite strong{font-size:13pt}.sheet-satellite span{font-size:15pt;font-weight:700}.sheet-values{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:10mm 0 6mm;background:#c9cfdb;border:1px solid #c9cfdb}.sheet-values>div{display:flex;flex-direction:column;align-items:center;gap:1px;padding:5mm 2mm;background:#fff;text-align:center}.sheet-label{font-size:8.5pt;text-transform:uppercase;letter-spacing:.9px;color:#4a5262}.sheet-value{font-size:24pt;font-weight:700;font-variant-numeric:tabular-nums}.sheet-note{font-size:8.5pt;color:#4a5262}.sheet-verdict{margin:0 0 6mm;padding:3mm 4mm;border-left:4px solid #14181f;background:#f2f4f8;font-weight:600}.sheet-verdict.degage{border-color:#1a7f45}.sheet-verdict.bloque{border-color:#c02626}.sheet-reserves{margin:0 0 6mm;padding:3mm 4mm 3mm 8mm;border-left:4px solid #a86a00;background:#fdf6e8;font-size:9.5pt;line-height:1.45}.sheet-reserves li+li{margin-top:1.5mm}.sheet-note-table{margin:2mm 0 0;font-size:8.5pt;color:#4a5262}.sheet-views{display:grid;grid-template-columns:1fr 1fr;gap:5mm;margin-bottom:6mm}.sheet-views figure{margin:0}.sheet-views img{width:100%;height:auto;border:1px solid #c9cfdb;display:block}.sheet-missing{display:grid;place-items:center;aspect-ratio:16 / 9;border:1px dashed #c9cfdb;color:#4a5262;font-size:9pt}.sheet-panorama{position:relative;line-height:0}.sheet-panorama .sv-overlay{position:absolute;inset:0}.sheet-panorama .sv-overlay svg{width:100%;height:100%}.sheet-panorama .sv-label,.sheet-panorama .sv-offscreen,.sheet-panorama .sv-hint,.sheet-panorama .sv-warning,.sheet-panorama .sv-center,.sheet-panorama .sv-mask text{display:none}.sheet-panorama .sv-arc path{stroke:#ffd479;stroke-width:3;paint-order:stroke}.sheet-panorama .sv-arc path.masque{stroke:#ff4d4d}.sheet-panorama .sv-arc circle{fill:#ffd479;stroke:#000000b3;stroke-width:1}.sheet-panorama .sv-arc text,.sheet-panorama .sv-horizon text{font-size:17px;font-weight:700;stroke-width:5}.sheet-panorama .sv-horizon line{stroke:#ffffffd9;stroke-width:2}.sheet-panorama .sv-reticle line,.sheet-panorama .sv-reticle-ring{stroke-width:3}.sheet-views figcaption{margin-top:1.5mm;font-size:8.5pt;color:#4a5262}.sheet table{width:100%;border-collapse:collapse;font-size:10pt}.sheet-details th{width:15%;text-align:left;font-weight:600;color:#4a5262}.sheet-details td{width:35%}.sheet-details th,.sheet-details td{padding:2mm 2mm 2mm 0;border-bottom:1px solid #e2e6ee}.sheet-masks{margin-top:6mm}.sheet-masks h2{margin:0 0 2mm;font-size:11pt;text-transform:uppercase;letter-spacing:.9px;color:#4a5262}.sheet-masks th{text-align:left;font-size:9pt;color:#4a5262;border-bottom:1px solid #14181f;padding:1.5mm 2mm 1.5mm 0}.sheet-masks td{padding:1.5mm 2mm 1.5mm 0;border-bottom:1px solid #e2e6ee;font-variant-numeric:tabular-nums}.sheet-foot{margin-top:8mm;padding-top:3mm;border-top:1px solid #c9cfdb;font-size:8.5pt;color:#4a5262}.sheet-foot p{margin:0 0 1.5mm}.sheet-stamp{text-align:right}@media print{body{overflow:visible;background:#fff}.app{display:block;height:auto}.app>*:not(.sheet-overlay){display:none!important}.sheet-actions{display:none!important}.sheet-overlay{position:static;padding:0;background:none;overflow:visible}.sheet{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}.sheet-verdict,.sheet-reserves,.sheet-views,.sheet-masks{break-inside:avoid}}.blocker{max-width:620px;padding:28px 32px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.blocker h1{margin-top:0;font-size:20px}.blocker ol{margin:0;padding-left:20px;line-height:1.7;color:var(--muted)}.blocker code{padding:1px 5px;border-radius:4px;background:#0f1521;font-size:13px}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:9px 12px 9px 16px;border-radius:8px;background:#2a1a1f;border:1px solid var(--danger);font-size:13px}.toast button{padding:0 6px;border:none;background:none;font-size:18px;line-height:1}
