:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;--background:#f1f5f9;--card:#fff;--border:#cbd5e1;--border-soft:#e2e8f0;--text:#0f172a;--muted:#475569;--primary:#9a3412;--primary-hover:#7c2d12;--primary-soft:#ffedd5;--focus:#1d4ed8;--danger:#b91c1c;--shadow:0 8px 24px #0f172a0f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--background);min-width:320px}body{background:var(--background);min-width:320px;min-height:100vh;color:var(--text);margin:0;font-size:14px;line-height:1.5}button,input,output,select{font:inherit}button,input,select{min-height:40px}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--focus);outline:3px solid color-mix(in srgb, var(--focus) 70%, transparent);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.55}hr{border:0;border-top:1px dashed var(--border);width:100%;margin:18px 0}.wrap{width:min(100%,1320px);margin:0 auto;padding:24px 18px 56px}.page-header{text-align:center;margin-bottom:22px}.account-bar{border:1px solid var(--border-soft);text-align:right;background:#ffffffe0;border-radius:12px;justify-content:flex-end;align-items:center;gap:12px;width:fit-content;max-width:100%;margin:0 0 14px auto;padding:7px 8px 7px 13px;display:flex;box-shadow:0 4px 14px #0f172a0a}.account-bar>span{flex-direction:column;min-width:0;line-height:1.25;display:flex}.account-bar strong,.account-bar small{text-overflow:ellipsis;white-space:nowrap;max-width:min(42vw,260px);overflow:hidden}.account-bar strong{color:#334155;font-size:13px}.account-bar small{color:var(--muted);margin-top:2px;font-size:11px}.badge{background:var(--primary-soft);color:#7c2d12;border:1px solid #fdba74;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:700;display:inline-flex}h1{margin:12px 0 6px;font-size:clamp(24px,4vw,34px);line-height:1.2}.lead{max-width:720px;color:var(--muted);margin:0 auto;font-size:15px}.card{border:1px solid var(--border-soft);background:var(--card);min-width:0;box-shadow:var(--shadow);border-radius:16px}.project-card{grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:10px 22px;margin-bottom:12px;padding:18px;display:grid}.project-field{flex-direction:column;gap:6px;display:flex}.project-field label,.compact-field label,.manual-ap-form label{color:#334155;font-size:13px;font-weight:700}.project-field input,.compact-field input,.manual-ap-form input{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:9px;padding:8px 11px}.project-field input:hover,.compact-field input:hover,.manual-ap-form input:hover{border-color:#94a3b8}.project-actions{flex-wrap:wrap;gap:9px;display:flex}.privacy-note{color:var(--muted);grid-column:1/-1;margin:0;font-size:12px}.btn{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fff;border-radius:9px;justify-content:center;align-items:center;min-height:40px;padding:8px 13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.btn.primary{border-color:var(--primary);background:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){border-color:var(--primary-hover);background:var(--primary-hover)}.btn.secondary{color:#fff;background:#334155;border-color:#334155}.btn.secondary:hover:not(:disabled){background:#1e293b;border-color:#1e293b}.btn.auto-ap{color:#422006;background:#fef08a;border-color:#ca8a04}.btn.auto-ap:hover:not(:disabled){background:#fde047}.btn.danger{color:var(--danger);border-color:#fecaca}.btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.btn.compact{min-height:40px;padding:7px 12px}.status-message{border:1px solid;border-radius:10px;margin:0 0 12px;padding:11px 14px;font-weight:600}.status-message.success{color:#166534;background:#f0fdf4;border-color:#86efac}.status-message.info{color:#1e40af;background:#eff6ff;border-color:#93c5fd}.status-message.error{color:#991b1b;background:#fef2f2;border-color:#fca5a5}.configuration-card{margin-bottom:18px;padding:20px}.section-title{color:#334155;text-align:center;margin:0 0 10px;font-size:14px}.choice-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pill{border:1px solid var(--border);color:#334155;cursor:pointer;text-align:center;background:#fff;border-radius:10px;min-height:42px;padding:9px 14px;font-weight:700;line-height:1.2}.pill small{color:var(--muted);margin-top:3px;font-size:12px;font-weight:500;display:block}.pill:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.pill.active{border-color:var(--primary);background:var(--primary);color:#fff}.pill.active small{color:#ffedd5}.pill.dark.active{background:#1e293b;border-color:#1e293b}.server-history-button{color:#7c2d12;background:#fff7ed;border-color:#fdba74}.server-history-button small{color:#9a3412}.server-history-button:hover:not(:disabled){background:var(--primary-soft);border-color:#fb923c}.pill.compact{min-height:38px;padding:7px 11px}.dimension-fields{border:1px solid var(--border-soft);background:#f8fafc;border-radius:11px;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:16px;padding:15px;display:flex}.compact-field{flex-direction:column;gap:4px;min-width:130px;display:flex}.dimension-hint{width:100%;color:var(--muted);text-align:center;margin-top:-4px}.material-settings{grid-template-columns:minmax(220px,.7fr) minmax(400px,1.3fr);align-items:start;gap:20px;display:grid}fieldset{text-align:center;border:0;min-width:0;margin:0;padding:0}legend{width:100%;color:var(--muted);margin-bottom:7px;font-size:12px;font-weight:700}.seg{border:1px solid var(--border);background:#fff;border-radius:10px;flex-wrap:wrap;gap:4px;max-width:100%;padding:4px;display:inline-flex}.seg button{color:#334155;cursor:pointer;background:0 0;border:0;border-radius:7px;min-height:36px;padding:7px 11px;font-weight:700}.seg button:hover:not(:disabled){background:#f1f5f9}.seg button.active{background:var(--primary);color:#fff}.grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.simulator-card{padding:16px}.view-switch{background:#f1f5f9;border-radius:12px;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:14px;padding:6px;display:grid}.view-switch .pill{border:0}.toolbar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:12px;padding-bottom:12px;display:flex}.editor-modes{background:#fff7ed;border-color:#fdba74}.furniture-selector{background:#fffbeb;border-style:dashed;border-color:#fdba74;flex-basis:100%}.toolbar-actions{flex-wrap:wrap;gap:7px;margin-left:auto;display:flex}.report-area{border:1px solid var(--border-soft);background:#fff;border-radius:12px;padding:14px;overflow:hidden}.report-heading{text-align:center;margin-bottom:10px}.report-heading h2{margin:0;font-size:18px}.report-heading p{color:var(--muted);margin:3px 0 0;font-size:12px}.canvas-wrap{background:#f8fafc;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:clamp(300px,50vh,520px);display:flex;overflow:auto}.floor-canvas-shell{flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;min-width:0;padding:8px;display:flex}.canvas-instruction{color:#fff;text-align:center;background:#1e293b;border-radius:10px;max-width:680px;margin:0;padding:6px 11px;font-size:12px;font-weight:600}.keyboard-position{min-height:auto;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.floor-canvas{border:1px solid var(--border);cursor:crosshair;touch-action:manipulation;background:#fafafa;border-radius:9px;width:auto;max-width:100%;height:auto;max-height:min(70vh,700px);display:block}.three-dimensional-view{background:#0f172a;border-radius:10px;width:100%;height:clamp(360px,60vh,600px);overflow:hidden}.view-loading,.view-fallback,.webgl-fallback{width:100%;min-height:320px;color:var(--muted);text-align:center;place-items:center;padding:24px;display:grid}.view-fallback{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:10px}.signal-legend{flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:14px;display:flex}.signal-legend-item{align-items:center;gap:7px;font-size:12px;display:flex}.signal-legend-item>span:last-child{flex-direction:column;display:flex}.signal-legend-item small{color:var(--muted)}.signal-swatch{border:1px solid #0f172a59;border-radius:4px;flex:none;width:16px;height:16px}.coverage-summary{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px;display:grid}.coverage-summary>div,.coverage-summary>p{border:1px solid var(--border-soft);text-align:center;background:#f8fafc;border-radius:9px;margin:0;padding:11px}.coverage-summary>p{color:var(--muted);grid-column:1/-1}.coverage-summary strong,.coverage-summary span{display:block}.coverage-summary strong{font-size:16px}.coverage-summary span{color:var(--muted);font-size:11px}.report-parameters{border-top:1px dashed var(--border);grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:14px 0 0;padding-top:12px;display:grid}.report-parameters div{min-width:0}.report-parameters dt{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.report-parameters dd{overflow-wrap:anywhere;margin:2px 0 0;font-size:11px;font-weight:600}.sidebar{min-width:0}.sidebar>.card{padding:17px;position:sticky;top:14px}.sidebar-title{color:#334155;margin:0 0 8px;font-size:14px}.band-selector{width:100%;display:flex}.band-selector button{flex:auto}.band-selector button[data-band="2.4"].active{color:#fff;background:#1d4ed8}.band-selector button[data-band="5"].active{color:#fff;background:#047857}.band-selector button[data-band="6"].active{color:#fff;background:#6d28d9}.band-description{color:#334155;margin:8px 0 0;font-size:12px}.users-button{color:#7c2d12;background:#fff7ed;border-color:#fdba74;width:100%;margin-top:12px}.users-button:hover:not(:disabled){background:var(--primary-soft);color:var(--primary-hover);border-color:#fb923c}.hint{color:var(--muted);text-align:center;margin:8px 0;font-size:12px}.ap-list{max-height:230px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.ap-row{border-bottom:1px dashed var(--border-soft);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}.ap-row:last-child{border-bottom:0}.ap-row>span{min-width:0}.ap-row small{color:var(--muted);margin:2px 0 0 16px;display:block}.ap-dot{border:1px solid #0f172a4d;border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.icon-button{width:36px;min-width:36px;min-height:36px;color:var(--danger);cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:8px;place-items:center;font-size:20px;line-height:1;display:inline-grid}.icon-button:hover{background:#fef2f2}.manual-ap-form{border:1px solid var(--border-soft);background:#f8fafc;border-radius:10px;margin-top:14px;padding:12px}.manual-ap-form h3{margin:0 0 8px;font-size:12px}.manual-ap-form>div{grid-template-columns:auto minmax(55px,1fr) auto minmax(55px,1fr);align-items:center;gap:6px;display:grid}.manual-ap-form input{min-width:0}.manual-ap-form .btn{width:100%;margin-top:8px}.advanced-settings{border-top:1px dashed var(--border);margin-top:15px;padding-top:13px}.advanced-settings summary{color:#334155;cursor:pointer;font-weight:700}.range-field{grid-template-columns:minmax(95px,1fr) minmax(90px,1.5fr) 70px;align-items:center;gap:8px;margin-top:10px;font-size:12px;display:grid}.range-field label{color:#334155}.range-field input{width:100%;min-height:30px}.range-field output{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.footer{max-width:820px;color:var(--muted);text-align:center;margin:26px auto 0;font-size:12px}.auth-screen{--auth-bg:#0c1118;--auth-panel:#141b24;--auth-panel-2:#1b2530;--auth-line:#26323f;--auth-text:#e8eef4;--auth-muted:#8a97a6;--auth-green:#e8650e;--auth-green-2:#ff7a18;--auth-brand:#ff7a18;--auth-accent:#ffb020;--background:var(--auth-bg);--card:var(--auth-panel);--border:var(--auth-line);--border-soft:var(--auth-line);--text:var(--auth-text);--muted:var(--auth-muted);--primary:var(--auth-green);--primary-hover:var(--auth-green-2);--primary-soft:#ff7a181f;--focus:var(--auth-accent);background:radial-gradient(circle at 15% 12%, #e8650e33, transparent 30rem), radial-gradient(circle at 88% 86%, #ffb0201a, transparent 28rem), linear-gradient(145deg, #090d12 0%, var(--auth-bg) 50%, #111923 100%);min-width:320px;min-height:100dvh;color:var(--auth-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;place-items:center;padding:28px 18px;display:grid;position:relative;overflow:hidden auto}.auth-screen:before,.auth-screen:after{content:"";pointer-events:none;border:1px solid #ff7a1826;border-radius:50%;position:absolute}.auth-screen:before{width:min(48vw,520px);height:min(48vw,520px);top:-260px;right:-120px}.auth-screen:after{width:min(40vw,430px);height:min(40vw,430px);bottom:-240px;left:-90px}.auth-card{z-index:1;border:1px solid var(--auth-line);text-align:center;background:linear-gradient(145deg,#1b253075,#0000 42%),#141b24f7;border-radius:20px;width:min(100%,460px);padding:clamp(24px,5vw,38px);position:relative;overflow:hidden;box-shadow:0 28px 70px #0000006b,0 0 0 1px #ff7a180a,0 0 34px #e8650e14}.auth-card:before{background:linear-gradient(90deg, var(--auth-green), var(--auth-brand), var(--auth-accent));content:"";height:5px;position:absolute;top:0;left:0;right:0}.auth-card .badge{max-width:100%;color:var(--auth-accent);background:#ff7a181a;border-color:#ff7a186b;justify-content:center}.auth-logo{aspect-ratio:1;object-fit:cover;filter:drop-shadow(0 0 10px #ffb02057);border:1px solid #ffb02080;border-radius:26px;width:clamp(88px,24vw,112px);height:auto;margin:24px auto 18px;animation:2.6s ease-in-out infinite auth-logo-glow;display:block;transform:translateZ(0);box-shadow:0 0 0 6px #ff7a180f,0 0 24px #ff7a1885,0 0 52px #e8650e33}@keyframes auth-logo-glow{0%,to{filter:drop-shadow(0 0 7px #ffb02040);transform:scale(1);box-shadow:0 0 0 5px #ff7a180d,0 0 20px #ff7a186b,0 0 44px #e8650e29}50%{filter:drop-shadow(0 0 15px #ffb02085);transform:scale(1.025);box-shadow:0 0 0 7px #ffb02017,0 0 34px #ff7a18b3,0 0 68px #e8650e4d}}.auth-card h1{color:var(--auth-text);margin:0;font-size:clamp(24px,5vw,30px)}.auth-card>p:not(.auth-error,.auth-security-note){max-width:350px;color:var(--auth-muted);margin:9px auto 0}.login-form{text-align:left;gap:16px;margin-top:26px;display:grid}.form-field{flex-direction:column;gap:6px;min-width:0;display:flex}.form-field label{color:#334155;font-size:13px;font-weight:700}.form-field input,.form-field select{border:1px solid var(--border);width:100%;min-width:0;min-height:44px;color:var(--text);background:#fff;border-radius:10px;padding:9px 11px;transition:border-color .15s,box-shadow .15s}.form-field input:hover:not(:disabled),.form-field select:hover:not(:disabled){border-color:#94a3b8}.form-field input:focus,.form-field select:focus{border-color:var(--focus);box-shadow:0 0 0 3px #1d4ed81f}.auth-screen .form-field label{color:var(--auth-text)}.auth-screen .form-field input{border-color:var(--auth-line);background:var(--auth-panel-2);color:var(--auth-text);caret-color:var(--auth-accent)}.auth-screen .form-field input:hover:not(:disabled){border-color:#ff7a189e}.auth-screen .form-field input:focus{border-color:var(--auth-accent);box-shadow:0 0 0 3px #ffb02024}.auth-screen .form-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--auth-panel-2) inset;-webkit-text-fill-color:var(--auth-text);caret-color:var(--auth-accent)}.password-field{grid-template-columns:minmax(0,1fr) auto;display:grid}.password-field input{border-radius:10px 0 0 10px}.password-toggle{border:1px solid var(--border);color:#334155;cursor:pointer;background:#f8fafc;border-left:0;border-radius:0 10px 10px 0;min-width:78px;min-height:44px;padding:8px 10px;font-size:12px;font-weight:700}.password-toggle:hover:not(:disabled){background:#f1f5f9}.auth-screen .password-toggle{border-color:var(--auth-line);color:var(--auth-text);background:#202c38}.auth-screen .password-toggle:hover:not(:disabled){color:var(--auth-accent);background:#263542;border-color:#ff7a189e}.auth-error,.dialog-error{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:9px;margin:0;padding:10px 12px;font-size:13px;font-weight:600}.auth-submit{width:100%;min-height:46px;margin-top:2px}.auth-screen .auth-submit{border-color:var(--auth-green);background:linear-gradient(110deg, var(--auth-green), var(--auth-green-2));box-shadow:0 10px 24px #e8650e40}.auth-screen .auth-submit:hover:not(:disabled){border-color:var(--auth-accent);background:linear-gradient(110deg, var(--auth-green-2), var(--auth-accent));color:#15100a}.auth-screen .btn:not(.primary){border-color:var(--auth-line);background:var(--auth-panel-2);color:var(--auth-text)}.auth-screen .btn:not(.primary):hover:not(:disabled){background:#263542;border-color:#ff7a189e}.auth-security-note{border-top:1px solid var(--auth-line);color:var(--auth-muted);margin:22px 0 0;padding-top:18px;font-size:11px}.auth-disclaimer{color:var(--auth-muted);text-align:center;margin:14px 0 0;font-size:10px;line-height:1.5}.auth-credit{border-top:1px solid var(--auth-line,var(--border));flex-direction:column;align-items:center;gap:2px;margin-top:20px;padding-top:16px;display:flex}.auth-credit span{color:var(--auth-muted,var(--muted));letter-spacing:1px;text-transform:uppercase;font-size:10px}.auth-credit b{color:var(--auth-text,var(--text));font-size:15px;font-weight:800}.auth-credit .next{color:var(--auth-brand,#ff7a18)}.auth-loading{min-height:150px;color:var(--auth-text);justify-content:center;align-items:center;gap:12px;font-weight:700;display:flex}.auth-loading:before{display:none}.session-recovery h1{margin-top:24px}.session-recovery>.auth-error{text-align:left;margin-top:18px}.session-recovery-actions{grid-template-columns:1fr;gap:10px;margin-top:18px;display:grid}.session-recovery-actions .btn{width:100%;min-height:44px}.auth-spinner{border:3px solid #fed7aa;border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.install-prompt{z-index:100;right:18px;bottom:max(18px, env(safe-area-inset-bottom));overscroll-behavior:contain;color:#e8eef4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:#465565 #141b24;background:radial-gradient(circle at 12% 0,#ff7a1840,#0000 15rem),linear-gradient(145deg,#1b2530fc,#0c1118fc);border:1px solid #ff7a1885;border-radius:20px;width:min(430px,100vw - 36px);max-height:calc(100dvh - 36px);padding:22px;animation:.42s cubic-bezier(.2,.8,.2,1) install-prompt-enter;position:fixed;overflow:hidden auto;box-shadow:0 24px 70px #02060c80,0 0 0 1px #ffb0200f,0 0 38px #e8650e2e}.install-prompt:before{content:"";background:linear-gradient(90deg,#e8650e,#ff7a18,#ffb020);height:5px;position:absolute;top:0;left:0;right:0}@keyframes install-prompt-enter{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.install-prompt-close{z-index:1;color:#c6d0da;cursor:pointer;background:#0c1118b3;border:1px solid #3a4857;border-radius:11px;place-items:center;width:42px;min-width:42px;min-height:42px;padding:0;font-size:25px;line-height:1;display:inline-grid;position:absolute;top:12px;right:12px}.install-prompt-close:hover:not(:disabled){color:#ffb020;background:#26323f;border-color:#ffb020a3}.install-prompt-heading{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:14px;padding-right:38px;display:grid}.install-prompt-heading img{object-fit:cover;border:1px solid #ffb02080;border-radius:17px;width:64px;height:64px;animation:2.8s ease-in-out infinite install-icon-glow;box-shadow:0 0 0 5px #ff7a1812,0 0 24px #ff7a1870}@keyframes install-icon-glow{50%{transform:scale(1.025);box-shadow:0 0 0 7px #ffb0201a,0 0 34px #ff7a18ad}}.install-prompt-badge{color:#ffc15c;letter-spacing:.11em;background:#ff7a181f;border:1px solid #ffb02073;border-radius:999px;margin-bottom:3px;padding:3px 8px;font-size:10px;font-weight:900;display:inline-flex}.install-prompt h2{color:#fff;margin:0;font-size:clamp(20px,4vw,24px);line-height:1.17}.install-prompt>p{color:#b2beca;margin:14px 0 0;line-height:1.5}.install-benefits{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:16px 0 0;padding:0;list-style:none;display:grid}.install-benefits li{color:#dce4ec;text-align:center;background:#1b2530b8;border:1px solid #354351;border-radius:11px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:58px;padding:8px 6px;font-size:11px;font-weight:750;line-height:1.25;display:flex}.install-benefits span{font-size:16px}.install-guide{background:#ff7a1812;border:1px solid #ff7a1857;border-radius:13px;margin-top:16px;padding:13px 14px}.install-guide>p{color:#ffbd70;margin:0 0 8px;font-size:12px;font-weight:800}.install-instructions{color:#d7e0e9;margin:0;padding-left:20px;font-size:12px}.install-instructions li+li{margin-top:5px}.install-instructions li::marker{color:#ff9a45;font-weight:800}.install-prompt .install-prompt-error{color:#ffd08b;background:#ffb02017;border:1px solid #ffb02080;border-radius:10px;margin-top:14px;padding:9px 11px;font-size:12px;font-weight:650}.install-prompt .install-login-note{color:#8f9dab;margin-top:13px;font-size:11px}.install-prompt-actions{gap:9px;margin-top:17px;display:flex}.install-prompt-actions button{cursor:pointer;border-radius:11px;flex:1 1 0;min-height:46px;padding:9px 14px;font-size:13px;font-weight:850}.install-primary-action{color:#251207;background:linear-gradient(110deg,#ffb020,#ff7a18);border:1px solid #ff9d4d;box-shadow:0 10px 24px #e8650e47}.install-primary-action:hover:not(:disabled){background:linear-gradient(110deg,#ffc150,#ff963f);border-color:#ffd18c;transform:translateY(-1px)}.install-secondary-action{color:#d8e0e8;background:#1b2530;border:1px solid #435161}.install-secondary-action:hover:not(:disabled){color:#fff;background:#26323f;border-color:#657587}.install-already-action{color:#9eabb8;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;min-height:40px;margin:7px auto -8px;padding:7px 10px;font-size:11px;font-weight:700;-webkit-text-decoration:underline #ff9a458c;text-decoration:underline #ff9a458c;display:block}.install-already-action:hover:not(:disabled){color:#ffc078}@media (width<=620px){.install-prompt{right:8px;bottom:max(8px, env(safe-area-inset-bottom));width:auto;max-height:calc(100dvh - max(16px, env(safe-area-inset-bottom)));padding:20px 18px max(18px, env(safe-area-inset-bottom));border-radius:18px;left:8px}.install-prompt-heading{grid-template-columns:58px minmax(0,1fr);gap:12px}.install-prompt-heading img{border-radius:15px;width:58px;height:58px}.install-prompt h2{font-size:20px}.install-benefits li{min-height:54px;padding:7px 4px;font-size:10px}}@media (width<=370px){.install-benefits{grid-template-columns:1fr}.install-benefits li{min-height:40px}}.users-dialog,.projects-dialog{border:1px solid var(--border);background:var(--card);width:min(900px,100% - 32px);max-width:none;max-height:min(820px,100dvh - 32px);color:var(--text);border-radius:18px;margin:auto;padding:0;overflow:hidden;box-shadow:0 28px 80px #0f172a4d}.users-dialog[open],.projects-dialog[open]{flex-direction:column;display:flex}.users-dialog::backdrop,.projects-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172aad}.dialog-header{border-bottom:1px solid var(--border-soft);background:linear-gradient(120deg,#fff7ed,#fff 65%);flex:none;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;display:flex}.dialog-header h2{color:var(--text);margin:2px 0 0;font-size:clamp(20px,4vw,25px);line-height:1.2}.dialog-eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.dialog-close{border:1px solid var(--border);color:#475569;cursor:pointer;background:#fff;border-radius:10px;place-items:center;width:44px;min-width:44px;min-height:44px;padding:0;font-size:26px;line-height:1;display:inline-grid}.dialog-close:hover:not(:disabled){color:var(--danger);background:#fef2f2;border-color:#fca5a5}.users-dialog>.dialog-error,.projects-dialog>.dialog-error{flex:none;margin:14px 20px 0}.dialog-toolbar{flex:none;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px 12px;display:flex}.dialog-toolbar p{color:var(--muted);margin:0;font-size:13px}.users-list{overscroll-behavior:contain;min-height:180px;padding:0 20px 20px;overflow:auto}.dialog-empty{border:1px dashed var(--border);min-height:160px;color:var(--muted);text-align:center;background:#f8fafc;border-radius:12px;place-items:center;margin:0;padding:24px;display:grid}.user-card{border:1px solid var(--border-soft);background:#fff;border-radius:12px;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:14px;padding:14px;display:grid}.user-card+.user-card{margin-top:9px}.user-identity{flex-direction:column;min-width:0;display:flex}.user-identity strong,.user-identity span,.user-identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-identity strong{color:#1e293b}.user-identity span{color:var(--muted);font-size:12px}.user-identity small{color:#64748b;margin-top:2px;font-size:11px}.user-identity .current-user-note{color:#9a3412;white-space:normal;font-weight:700}.role-badge{letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:4px 9px;font-size:10px;font-weight:800;display:inline-flex}.role-badge.admin{color:#9a3412;background:#fff7ed;border-color:#fdba74}.role-badge.user{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.user-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.status-switch{color:#475569;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:7px;min-height:42px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.status-switch>span{background:#94a3b8;border-radius:999px;flex:none;width:34px;height:20px;transition:background-color .15s;position:relative}.status-switch>span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a59}.status-switch.active{color:#166534;background:#f0fdf4;border-color:#86efac}.status-switch.active>span{background:#16a34a}.status-switch.active>span:after{transform:translate(14px)}.status-switch:hover:not(:disabled){border-color:#94a3b8}.user-form{overscroll-behavior:contain;padding:18px 20px 20px;overflow:auto}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 16px;display:grid}.password-guidance{color:#075985;background:#f0f9ff;border:1px solid #bae6fd;border-radius:9px;margin:14px 0 0;padding:10px 12px;font-size:12px}.dialog-form-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:9px;margin-top:18px;padding-top:16px;display:flex}.projects-dialog{width:min(980px,100% - 32px)}.project-history-eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.walk-survey-dialog{background:var(--card);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);border:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.walk-survey-dialog[open]{flex-direction:column;display:flex}.walk-survey-dialog::backdrop{background:#0c1118}.walk-survey-body{flex-direction:column;flex:auto;gap:16px;padding:18px 20px 24px;display:flex;overflow-y:auto}.walk-survey-confirm p{color:var(--text);margin:0;line-height:1.5}.walk-survey-hint{color:var(--muted);text-align:center;margin:8px 0 0;font-size:12px}.walk-survey-band-row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.walk-survey-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.walk-survey-walking{align-items:center}.walk-survey-minimap-wrap{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.walk-survey-minimap{aspect-ratio:1;border:1px solid var(--border);cursor:crosshair;touch-action:none;border-radius:12px;width:min(100%,340px);height:auto}.walk-survey-bucket-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;width:100%;max-width:640px;display:grid}.walk-survey-bucket-button{border:2px solid var(--bucket-color,var(--border));background:color-mix(in srgb, var(--bucket-color,#94a3b8) 16%, #fff);color:#1f2937;cursor:pointer;border-radius:12px;min-height:64px;padding:10px 14px;font-size:1.05rem;font-weight:800}.walk-survey-bucket-button:hover{background:color-mix(in srgb, var(--bucket-color,#94a3b8) 30%, #fff)}.walk-survey-debug{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:8px;margin:4px 0 0;padding:6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.project-history-toolbar{align-items:end}.project-history-search{flex:420px;min-width:min(420px,60vw)}.project-history-result-count{color:var(--muted);margin:0;padding:0 20px 10px;font-size:12px}.project-history-list{overscroll-behavior:contain;min-height:220px;padding:0 20px 20px;overflow:auto}.project-history-card{border:1px solid var(--border-soft);background:#fff;border-radius:13px;padding:15px}.project-history-card+.project-history-card{margin-top:10px}.project-history-card-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.project-history-card-heading h3{overflow-wrap:anywhere;color:#1e293b;min-width:0;margin:0;font-size:16px;line-height:1.3}.project-history-revision{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;flex:none;padding:4px 8px;font-size:10px;font-weight:800}.project-history-metadata{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:13px 0 0;display:grid}.project-history-metadata div{min-width:0}.project-history-metadata dt{color:#64748b;letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:800}.project-history-metadata dd{color:#334155;text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:12px;overflow:hidden}.project-history-card-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:8px;margin-top:14px;padding-top:13px;display:flex}.project-history-button{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fff;border-radius:9px;justify-content:center;align-items:center;min-height:42px;padding:8px 13px;font-weight:750;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.project-history-button:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.project-history-edit,.project-history-copy-submit{border-color:var(--primary);background:var(--primary);color:#fff}.project-history-edit:hover:not(:disabled),.project-history-copy-submit:hover:not(:disabled){border-color:var(--primary-hover);background:var(--primary-hover)}.project-history-copy{color:#fff;background:#334155;border-color:#334155}.project-history-copy:hover:not(:disabled){background:#1e293b;border-color:#1e293b}.project-history-copy-form{overscroll-behavior:contain;padding:20px;overflow:auto}.project-history-copy-description{color:#7c2d12;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;margin:0 0 17px;padding:12px 14px}.project-history-form-actions{margin-top:20px}@media (width<=1050px){.grid{grid-template-columns:1fr}.sidebar>.card{position:static}.material-settings{grid-template-columns:1fr}}@media (width<=720px){.wrap{padding:16px 10px 40px}.project-card{grid-template-columns:1fr}.project-actions{grid-template-columns:1fr;display:grid}.privacy-note{grid-column:1}.configuration-card,.simulator-card{padding:12px}.view-switch{grid-template-columns:1fr}.toolbar-actions{width:100%;margin-left:0}.toolbar-actions .btn{flex:130px}.canvas-wrap{min-height:280px}.coverage-summary{grid-template-columns:1fr}.report-parameters{grid-template-columns:repeat(2,minmax(0,1fr))}.user-card{grid-template-columns:minmax(0,1fr) auto}.user-actions{grid-column:1/-1}}@media (width<=460px){body{font-size:13px}.choice-row>.pill,.dimension-fields,.compact-field,.seg{width:100%}.seg button{flex:120px}.dimension-fields{gap:10px}.compact-field input{font-size:16px}.manual-ap-form>div{grid-template-columns:auto 1fr}.range-field{grid-template-columns:1fr}.range-field output{text-align:left}.signal-legend{justify-content:flex-start}.account-bar{text-align:left;justify-content:space-between;width:100%;padding-left:11px}.account-bar>span{align-items:flex-start}.account-bar strong,.account-bar small{max-width:calc(100vw - 120px)}.auth-screen{padding:12px 8px}.auth-card{border-radius:16px;padding:24px 16px}.auth-logo{border-radius:22px;width:88px;margin-top:18px}.login-form{margin-top:22px}.form-field input,.form-field select{font-size:16px}.users-dialog,.projects-dialog{border-radius:14px;width:calc(100% - 12px);max-height:calc(100dvh - 12px)}.dialog-header{padding:14px}.users-dialog>.dialog-error,.projects-dialog>.dialog-error{margin:12px 14px 0}.dialog-toolbar{flex-direction:column;align-items:stretch;padding:14px}.dialog-toolbar .btn{width:100%}.project-history-search{width:100%;min-width:0}.project-history-reload{width:100%}.project-history-result-count{padding:0 14px 10px}.project-history-list{padding:0 14px 14px}.project-history-metadata{grid-template-columns:1fr}.project-history-card-actions{grid-template-columns:1fr;display:grid}.project-history-copy-form{padding:14px}.project-history-form-actions .project-history-copy-submit{grid-row:1}.users-list{padding:0 14px 14px}.user-card{grid-template-columns:1fr;gap:10px}.role-badge{width:fit-content}.user-actions{grid-column:auto;grid-template-columns:minmax(0,1fr) auto;justify-content:stretch;display:grid}.status-switch{justify-content:center}.user-form{padding:14px}.form-grid{grid-template-columns:1fr}.dialog-form-actions{grid-template-columns:1fr;display:grid}.dialog-form-actions .btn.primary{grid-row:1}}@media (pointer:coarse){button,input,select,.btn.compact,.status-switch{min-height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.auth-spinner,.auth-logo,.install-prompt,.install-prompt-heading img{animation:none}}@media (forced-colors:active){.auth-card,.install-prompt,.project-history-card,.projects-dialog,.user-card,.users-dialog{border:1px solid canvastext}.status-switch>span{border:1px solid buttontext}}
