:root{--bg:#14110fb8;--fg:#f3ece4;--accent:#e0803a;--accent-2:#f2a15c;--radius:14px;color:var(--fg);font-family:PingFang SC,Noto Sans SC,Helvetica Neue,system-ui,sans-serif}*{box-sizing:border-box}html,body{touch-action:none;background:#1a1613;height:100%;margin:0;overflow:hidden}canvas#c{width:100%;height:100%;display:block;position:fixed;inset:0}.hud{z-index:5;-webkit-backdrop-filter:blur(14px);position:fixed}.hidden{display:none!important}.top{padding:max(10px, env(safe-area-inset-top)) 14px 10px;-webkit-backdrop-filter:none;pointer-events:none;background:linear-gradient(#0000008c,#0000);justify-content:space-between;align-items:center;gap:12px;display:flex;top:0;left:0;right:0}.top>*{pointer-events:auto}.brand h1{letter-spacing:.02em;text-shadow:0 1px 6px #0009;margin:0;font-size:17px;font-weight:600}.brand span{opacity:.8;font-size:12px}.tools{align-items:center;gap:8px;display:flex}.btn{white-space:nowrap;appearance:none;background:var(--bg);color:var(--fg);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffff2e;border-radius:999px;min-height:40px;padding:9px 16px;font-size:14px;transition:background .15s,transform .1s}.btn:hover{background:#28221ed9}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#1a1210;border-color:#0000;font-weight:600}.btn.primary:hover{background:var(--accent-2)}.btn.primary:disabled{opacity:.5;cursor:default}.btn.icon{text-align:center;width:40px;padding:0;font-weight:600}.btn.big{padding:14px 28px;font-size:16px}.btn.round{border-radius:50%;width:64px;height:64px;padding:0;font-size:22px}select#goto{appearance:none;background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23f3ece4' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--fg);border:1px solid #ffffff2e;border-radius:999px;min-height:40px;padding:9px 32px 9px 14px;font-size:14px}.fps{right:14px;bottom:max(10px, env(safe-area-inset-bottom));opacity:.55;font-variant-numeric:tabular-nums;font-size:11px}.attrib{left:14px;bottom:max(10px, env(safe-area-inset-bottom));opacity:.5;-webkit-backdrop-filter:none;max-width:60vw;font-size:10px}.label{background:var(--bg);pointer-events:none;border:1px solid #ffffff24;border-radius:12px;max-width:min(420px,100vw - 32px);padding:8px 14px;font-size:13px;line-height:1.45;top:56%;left:50%;transform:translate(-50%)}.label .dim{font-size:11px}.hint{background:var(--bg);border-radius:999px;padding:8px 16px;font-size:13px;bottom:40px;left:50%;transform:translate(-50%)}.stick{z-index:6;pointer-events:none;background:#ffffff14;border:2px solid #ffffff59;border-radius:50%;width:128px;height:128px;margin:-64px 0 0 -64px;display:none;position:fixed}.stick.on{display:block}.knob{background:#ffffffbf;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #0006}.altitude{right:18px;bottom:calc(40px + env(safe-area-inset-bottom));-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;gap:14px;display:flex}.panel{background:var(--bg);border-radius:var(--radius);border:1px solid #ffffff24;width:min(560px,100vw - 32px);max-height:80vh;padding:20px 22px;font-size:14px;line-height:1.6;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.panel h2{text-transform:uppercase;letter-spacing:.12em;opacity:.7;margin:12px 0 4px;font-size:13px}.panel h2:first-child{margin-top:0}.panel p{margin:4px 0}.layers{width:min(340px,100vw - 28px);padding:14px 16px;font-size:13px;top:64px;left:auto;right:14px;transform:none}.layers label{cursor:pointer;align-items:center;gap:8px;padding:3px 0;display:flex}.layers input{accent-color:#e0a04a;width:16px;height:16px}.legend{opacity:.75;flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex;margin:2px 0 6px 24px!important}.legend i{border-radius:2px;width:10px;height:10px;margin-right:2px;display:inline-block}.btn.sm{width:32px;height:32px;min-height:32px;font-size:13px}.side{z-index:7;background:#14161ae6;flex-direction:column;width:min(400px,100vw - 28px);max-height:none;padding:0;font-size:13px;line-height:1.5;display:flex;inset:64px 14px 14px auto;overflow:hidden;transform:none}.side-head{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:12px 16px 8px;display:flex}.side-head h2{margin:0}.side-body{-webkit-overflow-scrolling:touch;flex:1;padding:12px 16px;overflow:auto}.side-foot{padding:10px 16px max(10px, env(safe-area-inset-bottom));border-top:1px solid #ffffff1a;gap:8px;display:flex}.side-foot .btn{flex:1;padding:9px 10px;font-size:13px}.side-tools{gap:8px;padding:10px 16px 6px;display:flex}.side-tools input,.side-tools select{appearance:none;min-width:0;color:var(--fg);background:#ffffff14;border:1px solid #ffffff29;border-radius:10px;flex:1;min-height:36px;padding:8px 10px;font-size:13px}.side-tools select{flex:none}.side-tools input:focus,.side-tools select:focus{outline:2px solid var(--accent);outline-offset:0}.side h3{margin:0 0 6px;font-size:15px;font-weight:600;line-height:1.35}.side h4{text-transform:uppercase;letter-spacing:.1em;opacity:.6;margin:14px 0 4px;font-size:11px}.side ul{margin:2px 0;padding-left:16px}.side li{margin:1px 0}.side ul.inf li{opacity:.75}.side ul.inf li::marker{content:"? ";color:var(--accent-2)}.side a{color:var(--accent-2)}.side .kv{border-bottom:1px dashed #ffffff14;grid-template-columns:64px 1fr;gap:8px;padding:3px 0;display:grid}.side .kv>span{opacity:.55}.side .policy{border-top:1px solid #ffffff1a;margin-top:14px;padding-top:8px}.dot{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block;box-shadow:0 0 0 1px #0006}.tag{vertical-align:1px;background:#ffffff1a;border:1px solid #ffffff24;border-radius:999px;margin:1px 2px;padding:1px 7px;font-size:11px;font-style:normal;display:inline-block}.tag.ok{background:#4caf6a38;border-color:#4caf6a80}.tag.warn{background:#e0b34a33;border-color:#e0b34a80}.tags{flex-wrap:wrap;gap:2px;margin:4px 0 6px;display:flex}.label{pointer-events:auto;cursor:pointer}.label .row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.label .act{opacity:.55;margin-top:4px}.counts{opacity:.7;margin-bottom:8px;font-size:12px}.items{flex-direction:column;gap:2px;display:flex}.item{text-align:left;appearance:none;width:100%;color:var(--fg);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:16px 56px 1fr;align-items:center;column-gap:6px;padding:6px;font-size:13px;display:grid}.item:hover,.item:focus-visible{background:#ffffff14;outline:none}.item b{font-variant-numeric:tabular-nums}.item .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item .meta{opacity:.55;grid-column:2/4;font-size:11px}kbd{text-align:center;background:#ffffff1f;border:1px solid #fff3;border-radius:6px;min-width:22px;margin:0 1px;padding:1px 6px;font:12px ui-monospace,monospace;display:inline-block}.dim{opacity:.6}.small{font-size:12px}.overlay{z-index:10;background:radial-gradient(at 50% 30%,#7846288c,#14110feb 70%);place-items:center;display:grid;position:fixed;inset:0}.card{text-align:center;background:var(--bg);border:1px solid #ffffff24;border-radius:20px;width:min(440px,100vw - 32px);padding:32px 28px;box-shadow:0 20px 60px #00000080}.card h1{margin:0 0 4px;font-size:24px;font-weight:600}.card p{margin:6px 0}.progress{background:#ffffff1f;border-radius:3px;height:6px;margin:18px 0 8px;overflow:hidden}#bar{background:linear-gradient(90deg, var(--accent), var(--accent-2));width:0;height:100%;transition:width .2s}.card .btn.big{width:100%;margin:14px 0 6px}.touch-only{display:none}body.touch .touch-only{display:flex}body.touch .panel .touch-only{display:block}body.touch .desktop-only,body:not(.touch) .altitude{display:none}.drone-only{visibility:hidden}body[data-mode=drone] .drone-only{visibility:visible}@media (max-width:640px){.top{gap:8px;padding-left:10px;padding-right:10px}.brand{display:none}.tools{flex:1;justify-content:space-between}.btn{padding:8px 12px;font-size:13px}select#goto{flex:1;min-width:0;max-width:150px}.side{border-radius:18px 18px 0 0;width:100%;max-height:62vh;inset:auto 0 0}body.sheet-open .label,body.sheet-open .altitude,body.sheet-open .stick,body.sheet-open #attrib,body.sheet-open #fps{display:none}.label{top:auto;bottom:calc(96px + env(safe-area-inset-bottom))}.layers{max-height:70vh}}
