:root{color-scheme:dark;--panel:#111a2a;--line:#2a3c57;--txt:#edf5ff;--muted:#99adc7}
*{box-sizing:border-box}body{margin:0;background:#07101c;color:var(--txt);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.app{max-width:1500px;margin:auto;padding:14px}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.h1{font-size:22px;font-weight:800}.sub{font-size:11px;color:var(--muted);margin-top:4px}
.badge{border:1px solid #405776;border-radius:999px;padding:7px 10px;font-size:10px;color:#fff7a4}
.setup{background:#101a2b;border:1px solid var(--line);border-radius:13px;padding:12px;margin-bottom:10px}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.key{height:40px;flex:1;min-width:230px;border:1px solid #38506f;background:#091423;color:#fff;border-radius:9px;padding:0 11px}
.btn,.sel{height:40px;border:1px solid #38506f;border-radius:9px;background:#0b1728;color:#eef7ff;padding:0 11px;cursor:pointer}
.btn.primary{background:#ffe500;color:#171717;font-weight:800;border-color:#ffe500}.btn.on{background:#e7f8ff;color:#06111b}.btn:disabled{opacity:.45;cursor:not-allowed}
.msg{font-size:10px;color:var(--muted);margin-top:7px}
.main{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}@media(max-width:960px){.main{grid-template-columns:1fr}}
.card{background:#111a2a;border:1px solid var(--line);border-radius:15px;overflow:hidden}
.viewport{position:relative;aspect-ratio:16/9;min-height:360px;background:#060c15}
.rvLayer,#map{position:absolute;inset:0;width:100%;height:100%}
.rvLayer{opacity:0;pointer-events:none;background:#060c15;z-index:1;transition:none}
.rvLayer.active{opacity:1;pointer-events:auto;z-index:2}
.rvLayer.incoming{opacity:0;pointer-events:none;z-index:3;transition:opacity .14s ease-out}
.rvLayer.incoming.reveal{opacity:1}
.hud{position:absolute;left:10px;top:10px;z-index:20;display:grid;grid-template-columns:repeat(3,minmax(83px,1fr));gap:6px;max-width:430px;pointer-events:none}
.k{background:rgba(4,9,18,.76);border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:7px 8px;backdrop-filter:blur(4px)}
.k b{font-size:15px;display:block}.k span{font-size:8px;color:#b3c6dd}
.rvStatus{position:absolute;right:10px;bottom:10px;z-index:20;background:rgba(4,9,18,.78);border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:7px 9px;font-size:10px;max-width:58%}
.controls{padding:11px}.time{font-size:12px;min-width:128px;font-variant-numeric:tabular-nums}
input[type=range]{flex:1;min-width:180px;accent-color:#8fe7ff}
.status{font-size:10px;color:#94a9c4;margin-top:7px;line-height:1.5}
.summary{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:10px}@media(max-width:950px){.summary{grid-template-columns:repeat(3,1fr)}}
.stat{border:1px solid var(--line);background:#0d1726;border-radius:10px;padding:8px}.stat span{font-size:8px;color:#8fa5c0}.stat b{display:block;font-size:13px;margin-top:2px}
.warn{font-size:10px;color:#91a5c0;margin-top:9px;line-height:1.5}
.importPanel{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:9px}.progress{height:10px;flex:1;min-width:180px;background:#08111e;border:1px solid #263850;border-radius:999px;overflow:hidden}.progressBar{height:100%;width:0;background:linear-gradient(90deg,#ffe500,#35d17a);transition:width .12s}.cacheInfo{font-size:10px;color:#a9bdd5;min-width:190px}.hidden{display:none!important}

.setupSummary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;padding:2px 2px 10px;color:#eaf4ff;list-style:none}.setupSummary::-webkit-details-marker{display:none}.setupSummary:after{content:"▾";font-size:14px;color:#99adc7}.setup:not([open]) .setupSummary{padding-bottom:2px}.setup:not([open]) .setupSummary:after{content:"▸"}.setupSummary #setupSummaryState{margin-left:auto;font-size:11px;font-weight:600;color:#9fb5ce}.setup:not([open]){padding:10px 12px}.setup:not([open])>#setup{display:none}
