:root{--accent: #5f44b8;--ink: #16171a;--glass: rgba(18, 19, 22, .72);--glass-line: rgba(255, 255, 255, .12);--text: #f4f4f6;--muted: #a9acb3;--gutter: max(16px, env(safe-area-inset-left));--lift: 0px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body.host-badge{--lift: 52px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#111214;color:var(--text);-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0}#app canvas{display:block;width:100%;height:100%;touch-action:none}body[data-mode=orbit] #app canvas,body[data-mode=plan] #app canvas,body[data-mode=tour] #app canvas{cursor:grab}body[data-mode=orbit] #app canvas:active,body[data-mode=plan] #app canvas:active,body[data-mode=tour] #app canvas:active{cursor:grabbing}body.planning #app canvas{cursor:default}.label-layer{position:absolute;inset:0;pointer-events:none}.titlecard,.toolbar,.disclaimer,.tour-card,.hint,.toast,.panel,.popover,.card,.planbar{position:fixed;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-line);border-radius:14px}.titlecard{top:max(16px,env(safe-area-inset-top));left:var(--gutter);padding:12px 16px 12px 18px;max-width:min(420px,calc(100vw - 32px));border-left:4px solid var(--accent)}.titlecard:not([hidden]){display:flex;align-items:center;gap:12px}.titlecard.has-mark{border-left-width:1px;padding-left:14px}.brandmark{height:38px;width:auto;flex:none}.titlecard h1{margin:0;font-size:17px;font-weight:650;letter-spacing:.01em}.titlecard p{margin:3px 0 0;font-size:13px;color:var(--muted)}.toolbar{right:var(--gutter);bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift));display:flex;gap:6px;padding:6px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 32px)}.toolbar button{font:inherit;font-size:13px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:10px;padding:8px 12px;min-height:36px;cursor:pointer}.toolbar[hidden]{display:none}.toolbar button:hover{background:#ffffff14}.toolbar button[aria-pressed=true]{background:#ffffff1f;border-color:var(--glass-line)}.disclaimer{left:var(--gutter);bottom:max(16px,env(safe-area-inset-bottom));margin:0;padding:7px 12px;font-size:12px;color:#e7e7ea;border-radius:10px;pointer-events:none}.views{position:fixed;top:max(16px,env(safe-area-inset-top));right:var(--gutter);display:flex;gap:8px;align-items:center}.segmented{display:flex;padding:4px;gap:2px;border-radius:12px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-line)}.views button{font:inherit;font-size:13px;color:var(--text);background:transparent;border:0;border-radius:9px;padding:8px 14px;min-height:36px;cursor:pointer}.segmented button[aria-pressed=true]{background:#ffffff29;font-weight:600}.segmented button[aria-pressed=false]{color:#d3d5da}.segmented button:hover{background:#ffffff17}.views .primary{display:inline-flex;align-items:center;gap:7px;background:var(--accent);font-weight:600;padding:10px 16px;min-height:44px;border-radius:12px;box-shadow:0 6px 20px #0000004d}.views .primary svg{width:13px;height:13px}.views .primary:hover{filter:brightness(1.1)}body[data-mode=tour] .views,body[data-mode=tour] .toolbar{display:none}.navpad{position:fixed;right:var(--gutter);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;border-radius:14px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--glass);border:1px solid var(--glass-line);touch-action:none;user-select:none;-webkit-user-select:none}.navpad[hidden],body[data-mode=tour] .navpad{display:none}.navpad .drag{display:none;margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid var(--glass-line);border-radius:10px 10px 4px 4px}body[data-mode=orbit] .navpad .drag{display:grid}.navpad .drag[aria-pressed=true]{background:var(--accent)}.navpad .drag[aria-pressed=true]:hover{background:var(--accent);filter:brightness(1.1)}@media(pointer:coarse){body[data-mode=walk] .dpad{display:none}}.navpad button{display:grid;place-items:center;width:38px;height:38px;padding:0;color:var(--text);background:transparent;border:0;border-radius:10px;cursor:pointer}.navpad button:hover{background:#ffffff17}.navpad button:active{background:#ffffff2e}.navpad button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.navpad svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dpad{display:grid;grid-template-columns:repeat(3,30px);grid-template-rows:repeat(3,30px);margin-top:4px;padding-top:6px;border-top:1px solid var(--glass-line)}.dpad button{width:30px;height:30px;border-radius:8px}.dpad [data-nav=up]{grid-area:1 / 2}.dpad [data-nav=left]{grid-area:2 / 1}.dpad [data-nav=right]{grid-area:2 / 3}.dpad [data-nav=down]{grid-area:3 / 2}.tour-card{left:50%;bottom:calc(max(20px,env(safe-area-inset-bottom)) + var(--lift));transform:translate(-50%);width:min(560px,calc(100vw - 32px));padding:16px 18px 12px;border-radius:16px;border-top:3px solid var(--accent)}.tour-head{display:flex;gap:10px;align-items:baseline;font-size:12px;color:var(--muted)}.tour-zone{color:var(--text);font-weight:600;font-size:13px;letter-spacing:.02em;text-transform:uppercase}.tour-caption{margin:6px 0 12px;font-size:18px;line-height:1.35;font-weight:500}.tour-stops{display:flex;flex-wrap:wrap;gap:4px;margin:-4px 0 10px}.tour-stops button{font:inherit;font-size:11px;color:var(--muted);background:#ffffff12;border:1px solid transparent;border-radius:999px;padding:3px 9px;cursor:pointer}.tour-stops button:hover{background:#ffffff24;color:var(--text)}.tour-stops button[aria-current=true]{color:#fff;background:var(--accent)}.tour-look{margin:-6px 0 10px;font-size:12px;color:var(--muted)}.tour-look[hidden]{display:none}.tour-bar{height:3px;border-radius:3px;background:#ffffff1f;overflow:hidden}.tour-bar i{display:block;height:100%;width:0;background:var(--accent)}.tour-controls{display:flex;gap:6px;margin-top:10px}.tour-controls button{font:inherit;font-size:13px;color:var(--text);background:#ffffff17;border:0;border-radius:9px;padding:8px 12px;min-height:36px;cursor:pointer;white-space:nowrap}.tour-controls button:disabled{opacity:.35;cursor:default}.tour-controls .quiet{margin-left:auto;background:transparent;color:var(--muted)}.tour-controls .photo{background:var(--accent);color:#fff;font-weight:600}.photo-view{position:fixed;inset:0;z-index:50;background:#111}.photo-view canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.photo-view canvas:active{cursor:grabbing}.photo-bar{position:absolute;left:50%;top:max(16px,env(safe-area-inset-top));transform:translate(-50%);width:min(560px,calc(100vw - 32px));display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;border-radius:14px;background:#18181cd1;backdrop-filter:blur(10px);color:var(--text)}.photo-bar div{flex:1;display:flex;flex-direction:column;gap:2px}.photo-bar span{font-size:12px;color:var(--muted)}.photo-bar button{font:inherit;font-size:13px;color:#fff;background:var(--accent);border:0;border-radius:9px;padding:8px 14px;min-height:36px;cursor:pointer}.photo-loading{position:absolute;inset:auto 0 45%;text-align:center;color:#ddd;display:none}.photo-view.loading .photo-loading{display:block}.joystick{position:fixed;left:calc(var(--gutter) + 8px);bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 56px);width:120px;height:120px;border-radius:50%;background:#12131666;border:1px solid rgba(255,255,255,.25);touch-action:none}.joystick i{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:#ffffffd9;box-shadow:0 2px 10px #0000004d}.hint,.toast{left:50%;transform:translate(-50%);margin:0;padding:10px 16px;font-size:14px;border-radius:12px;pointer-events:none;text-align:center;max-width:calc(100vw - 32px)}.hint{top:50%;transition:opacity .6s}.hint.fade{opacity:0}.toast{top:84px}.panel{top:max(84px,calc(env(safe-area-inset-top) + 84px));right:var(--gutter);bottom:calc(max(84px,calc(env(safe-area-inset-bottom) + 84px)) + var(--lift));width:min(380px,calc(100vw - 32px));overflow-y:auto;padding:18px 18px 22px;border-radius:16px;background:#141518eb;z-index:4;overscroll-behavior:contain}#changes{right:auto;left:var(--gutter)}body.changes-open .counts{visibility:hidden}.panel .close{position:sticky;top:0;float:right;width:34px;height:34px;margin:-6px -6px 0 0;border-radius:50%;border:0;background:#ffffff1a;color:var(--text);font-size:20px;cursor:pointer}.panel-head{margin-bottom:10px}.show-me{margin-top:10px;font:inherit;font-size:13px;font-weight:600;color:#fff;background:var(--accent);border:0;border-radius:9px;padding:7px 12px;min-height:34px;cursor:pointer}.show-me:hover{filter:brightness(1.1)}.panel h2{margin:2px 0 0;font-size:19px;line-height:1.25;font-weight:650}.panel h3{margin:18px 0 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.eyebrow{margin:0;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;color:var(--text);overflow-wrap:anywhere}.facts dd.missing-value,.missing li{color:#8d9097;font-style:italic}.missing{margin:0;padding-left:18px;font-size:13px}.muted{color:var(--muted);margin:0;font-size:13px}.small{font-size:12px}.product{margin:8px 0 14px;background:#fff;border-radius:12px;padding:10px;text-align:center}.product img{width:auto;height:auto;max-width:100%;max-height:180px;object-fit:contain;display:block;margin:0 auto}.product.photo img{max-height:280px}.product figcaption{font-size:11px;color:#6b6e75;margin-top:4px}.product.empty{background:#ffffff0d;color:#8d9097;font-style:italic;font-size:13px;padding:22px 10px}.product.empty p{margin:0}.flags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}.badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:#ffffff1a;white-space:nowrap}.badge.danger{background:#5c1d1f;color:#ffb3ad}.flags .badge{white-space:normal;max-width:100%}.badge.warn{background:#4d3d12;color:#ffd98a}.badge.accent{background:var(--accent);color:#fff}.kit,.bom,.changes,.conflicts{list-style:none;margin:0;padding:0;font-size:13px}.kit li{display:flex;gap:6px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap;align-items:baseline}.kit-qty{color:var(--muted);min-width:26px}.search{width:100%;margin:4px 0 8px;padding:8px 10px;font:inherit;font-size:13px;color:var(--text);background:#ffffff14;border:1px solid var(--glass-line);border-radius:9px}.search:focus{outline:2px solid var(--accent);outline-offset:-1px}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.chip-btn{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:11px;color:var(--muted);background:#ffffff12;border:0;border-radius:999px;padding:4px 9px;cursor:pointer}.chip-btn:hover{color:var(--text);background:#ffffff24}.chip-btn[aria-pressed=true]{color:#fff;background:var(--accent)}.chip-btn .dot{width:8px;height:8px}.bom li{display:flex;gap:8px;align-items:center;padding:7px 4px;border-bottom:1px solid rgba(255,255,255,.06)}.bom li.placed{cursor:pointer}.bom li.placed:hover{background:#ffffff0d}.bom-n{color:var(--muted);min-width:34px;font-variant-numeric:tabular-nums}.bom-q{color:var(--muted);min-width:26px}.bom-d{flex:1;display:flex;flex-direction:column;min-width:0}.bom-d b{font-weight:500}.bom-d small{color:var(--muted)}.changes li,.conflicts li{padding:7px 4px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer}.conflicts li{color:#ffb3ad}.plan-actions{margin-top:18px;padding-top:6px;border-top:1px solid var(--glass-line)}.btn-row{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.btn-row button,.planbar button{font:inherit;font-size:13px;color:var(--text);background:#ffffff1a;border:0;border-radius:9px;padding:8px 12px;min-height:36px;cursor:pointer}.btn-row button:hover,.planbar button:hover{background:#ffffff29}.planbar{top:max(16px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:6px;align-items:center;padding:6px 6px 6px 14px;border-radius:14px;border-top:3px solid var(--accent);z-index:5;max-width:calc(100vw - 32px);overflow-x:auto}.planbar[hidden]{display:none}.planbar-title{font-size:13px;font-weight:650;white-space:nowrap;margin-right:4px}.planbar button{white-space:nowrap}.planbar button:disabled{opacity:.4;cursor:default}.planbar .quiet{background:transparent;color:var(--muted)}.planbar .done{background:var(--accent);font-weight:600}.planbar .has-issues{background:#5c1d1f;color:#ffb3ad}body.planning .views,body.planning .titlecard{display:none}.popover{right:var(--gutter);bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 62px);padding:8px;border-radius:12px;display:flex;flex-direction:column;min-width:210px;z-index:6}.popover[hidden]{display:none}@media(min-width:641px){body:has(#panel:not([hidden])) .popover,body:has(#bomlist:not([hidden])) .popover{right:calc(var(--gutter) + min(380px,calc(100vw - 32px)) + 10px)}}.toolbar .help{font-weight:700;padding:8px 11px}.help-menu{width:min(360px,calc(100vw - 32px));padding:12px 14px}.help-menu h3{margin:6px 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.keys{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 6px;font-size:13px}.keys dt{color:var(--text);font-weight:600;white-space:nowrap;max-width:150px;overflow-wrap:anywhere}body:has(.popover:not([hidden])) .navpad{visibility:hidden}.keys dd{margin:0;color:var(--muted)}.toggle{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;font-size:14px;cursor:pointer}.toggle:hover{background:#ffffff12}.toggle input{width:17px;height:17px;accent-color:var(--accent)}.card{padding:12px 14px;border-radius:14px}.counts{top:calc(max(16px,env(safe-area-inset-top)) + 88px);left:var(--gutter);width:250px}.counts h3{margin:0 0 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.counts ul{list-style:none;margin:0 0 8px;padding:0;font-size:13px}.counts li{display:flex;align-items:center;padding:1px 0}.count-row{display:flex;align-items:center;gap:8px;width:100%;padding:4px 6px;margin:0 -6px;font:inherit;color:var(--text);background:transparent;border:0;border-radius:7px;text-align:left;cursor:pointer}.count-row:hover{background:#ffffff14}.count-row[aria-pressed=true]{background:#ffffff24}.count-row span{flex:1}.count-row b{font-variant-numeric:tabular-nums}.zone-label{padding:6px 12px;border-radius:999px;background:var(--accent);color:#fff;font-size:13px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 4px 14px #00000040;white-space:nowrap}.chip{display:flex;align-items:center;gap:6px;padding:3px 8px 3px 6px;border-radius:999px;background:#121316d1;border:1px solid rgba(255,255,255,.14);font-size:11px;white-space:nowrap;transition:opacity .25s;opacity:.95}.chip i{width:8px;height:8px;border-radius:50%;flex:none}.chip b{font-weight:650;letter-spacing:.02em}.chip span{display:none;color:#cfd1d6}.chip.near span{display:inline}.loader{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 30%,#23242a,#0f1012 70%);transition:opacity .5s ease;z-index:10}.loader.done{opacity:0;pointer-events:none}.loader-card{width:min(340px,calc(100vw - 32px));text-align:center}.loader-title{margin:0 0 14px;font-size:18px;font-weight:600}.loader-logo{display:block;width:min(240px,64vw);height:auto;margin:0 auto 22px;animation:logo-in .6s ease both}.loader-logo[hidden]{display:none}.loader-logo:not([hidden])+.loader-title{font-size:15px;font-weight:500;color:var(--muted)}@keyframes logo-in{0%{opacity:0;transform:translateY(4px)}}.bar{height:4px;border-radius:4px;background:#ffffff1a;overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .25s ease}.loader-step{margin:12px 0 0;font-size:13px;color:var(--muted);min-height:1.2em}.loader-error{color:#ff9b8f}@media(max-width:640px){.panel,#changes{top:auto;left:var(--gutter);right:var(--gutter);width:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + var(--lift));max-height:62vh}.counts{top:auto;bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 206px);width:auto;right:var(--gutter)}.planbar{top:max(10px,env(safe-area-inset-top));left:var(--gutter);right:var(--gutter);transform:none}.views{top:auto;right:var(--gutter);left:var(--gutter);bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 142px);justify-content:space-between}.views button{padding:8px 12px}body[data-mode=walk] .views{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 142px)}.joystick{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 202px)}.navpad{top:auto;transform:none;bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 202px)}.navpad .dpad{display:none}.tour-card{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 40px);padding:12px 14px 10px}.tour-stops{display:none}.tour-caption{font-size:15px;margin:4px 0 8px}.tour-controls{gap:4px}.tour-controls button{padding:8px 9px}.titlecard{padding:10px 12px 10px 14px}.titlecard h1{font-size:15px}.titlecard p{font-size:12px}.toolbar{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 40px);left:var(--gutter);right:var(--gutter);max-width:none;display:grid;grid-template-columns:repeat(3,1fr)}.toolbar button{padding:8px 6px}.popover{bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift) + 140px)}.disclaimer{font-size:11px;bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--lift))}}.chip.culled{opacity:0}
