:root{--teal-25:#f4fbfa;--teal-50:#e8f6f4;--teal-100:#cbebe7;--teal-200:#a3ddd7;--teal-300:#6ec8c1;--teal-400:#38ada6;--teal-500:#199188;--teal-600:#0d766f;--teal-700:#0a5e59;--teal-800:#084b47;--teal-900:#063734;--teal-950:#032523;--sand-50:#fdf6ee;--sand-100:#f9e7d2;--sand-200:#f2cfa6;--sand-400:#e2a260;--sand-500:#d18538;--sand-600:#b06a25;--ink-0:#fff;--ink-25:#fbfcfc;--ink-50:#f5f8f8;--ink-100:#eef2f2;--ink-200:#e1e8e8;--ink-300:#cbd6d6;--ink-400:#9dadad;--ink-500:#718382;--ink-600:#526463;--ink-700:#3b4a49;--ink-800:#253130;--ink-900:#14201f;--ink-950:#0a1413;--bg:var(--ink-50);--bg-tint:radial-gradient(1200px 600px at 85% -10%, #1991880f, transparent 60%);--surface:var(--ink-0);--surface-2:var(--ink-25);--surface-3:var(--ink-100);--surface-inset:var(--ink-50);--border:#e6ecec;--border-strong:#d3dedd;--overlay:#06222070;--text:var(--ink-900);--text-2:var(--ink-600);--text-3:var(--ink-500);--text-disabled:var(--ink-400);--on-accent:#fff;--accent:var(--teal-600);--accent-hover:var(--teal-700);--accent-press:var(--teal-800);--accent-soft:var(--teal-50);--accent-soft-2:var(--teal-100);--accent-border:var(--teal-200);--accent-contrast:var(--teal-800);--secondary:var(--sand-600);--secondary-soft:var(--sand-50);--success:#167c47;--success-soft:#e2f6ea;--success-border:#bde5cd;--warning:#9a5b06;--warning-soft:#fdf1dc;--warning-border:#f3ddb4;--danger:#b3261e;--danger-soft:#fdeceb;--danger-border:#f5cecb;--info:#1b4fa8;--info-soft:#e8f0fd;--info-border:#c6d9f7;--star:#e0a12c;--dk-bg:#06100f;--dk-bg-tint:radial-gradient(1200px 600px at 85% -10%, #38ada617, transparent 60%);--dk-surface:#0e1b1a;--dk-surface-2:#132322;--dk-surface-3:#1a2c2a;--dk-surface-inset:#0b1716;--dk-border:#1f3230;--dk-border-strong:#2e4643;--dk-overlay:#020c0ba8;--dk-text:#e4eeed;--dk-text-2:#9fb3b1;--dk-text-3:#7c918f;--dk-text-disabled:#566967;--dk-on-accent:#032523;--dk-accent:#45bdb5;--dk-accent-hover:#6ecbc4;--dk-accent-press:#8dd8d2;--dk-accent-soft:#0f2c2a;--dk-accent-soft-2:#143b38;--dk-accent-border:#1d514c;--dk-accent-contrast:#a3ddd7;--dk-secondary:#e2a260;--dk-secondary-soft:#2e2114;--dk-success:#4cc47f;--dk-success-soft:#0d2b1c;--dk-success-border:#1a4530;--dk-warning:#e3ab4e;--dk-warning-soft:#2e2410;--dk-warning-border:#4a3a1a;--dk-danger:#f08a83;--dk-danger-soft:#2f1615;--dk-danger-border:#4d2523;--dk-info:#8ab4f8;--dk-info-soft:#12203a;--dk-info-border:#22375c;--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI Variable Display", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--fs-display:clamp(1.9rem, 1.35rem + 2.1vw, 2.6rem);--fs-h1:clamp(1.5rem, 1.24rem + 1.05vw, 1.85rem);--fs-h2:1.22rem;--fs-h3:1.05rem;--fs-title:.95rem;--fs-subtitle:.9rem;--fs-body:.94rem;--fs-caption:.82rem;--fs-small:.75rem;--fs-label:.7rem;--lh-tight:1.18;--lh-snug:1.35;--lh-normal:1.55;--lh-relaxed:1.65;--tracking-tight:-.022em;--tracking-snug:-.012em;--tracking-wide:.055em;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--s-0:0;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--s-10:64px;--radius-xs:8px;--radius-sm:10px;--radius:14px;--radius-md:18px;--radius-lg:24px;--radius-xl:30px;--radius-pill:999px;--shadow-xs:0 1px 2px #0a28260d;--shadow-sm:0 1px 2px #0a28260d, 0 2px 6px #0a28260a;--shadow:0 2px 6px #0a28260d, 0 10px 24px -8px #0a28261a;--shadow-md:0 4px 10px #0a28260f, 0 18px 38px -12px #0a282629;--shadow-lg:0 8px 18px #0a282614, 0 32px 64px -20px #0a282647;--shadow-accent:0 6px 16px -6px color-mix(in srgb, var(--accent) 55%, transparent);--ring:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.42, .5, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--dur-4:.48s;--nav-h:64px;--tabbar-h:62px;--tabbar-gap:12px;--max-w:1200px;--max-w-narrow:780px;--tap:44px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dk-bg);--bg-tint:var(--dk-bg-tint);--surface:var(--dk-surface);--surface-2:var(--dk-surface-2);--surface-3:var(--dk-surface-3);--surface-inset:var(--dk-surface-inset);--border:var(--dk-border);--border-strong:var(--dk-border-strong);--overlay:var(--dk-overlay);--text:var(--dk-text);--text-2:var(--dk-text-2);--text-3:var(--dk-text-3);--text-disabled:var(--dk-text-disabled);--on-accent:var(--dk-on-accent);--accent:var(--dk-accent);--accent-hover:var(--dk-accent-hover);--accent-press:var(--dk-accent-press);--accent-soft:var(--dk-accent-soft);--accent-soft-2:var(--dk-accent-soft-2);--accent-border:var(--dk-accent-border);--accent-contrast:var(--dk-accent-contrast);--secondary:var(--dk-secondary);--secondary-soft:var(--dk-secondary-soft);--success:var(--dk-success);--success-soft:var(--dk-success-soft);--success-border:var(--dk-success-border);--warning:var(--dk-warning);--warning-soft:var(--dk-warning-soft);--warning-border:var(--dk-warning-border);--danger:var(--dk-danger);--danger-soft:var(--dk-danger-soft);--danger-border:var(--dk-danger-border);--info:var(--dk-info);--info-soft:var(--dk-info-soft);--info-border:var(--dk-info-border);--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 2px #0006, 0 2px 6px #0000004d;--shadow:0 2px 6px #0006, 0 10px 24px -8px #00000080;--shadow-md:0 4px 10px #00000073, 0 18px 38px -12px #0009;--shadow-lg:0 8px 18px #00000080, 0 32px 64px -20px #000000bf}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dk-bg);--bg-tint:var(--dk-bg-tint);--surface:var(--dk-surface);--surface-2:var(--dk-surface-2);--surface-3:var(--dk-surface-3);--surface-inset:var(--dk-surface-inset);--border:var(--dk-border);--border-strong:var(--dk-border-strong);--overlay:var(--dk-overlay);--text:var(--dk-text);--text-2:var(--dk-text-2);--text-3:var(--dk-text-3);--text-disabled:var(--dk-text-disabled);--on-accent:var(--dk-on-accent);--accent:var(--dk-accent);--accent-hover:var(--dk-accent-hover);--accent-press:var(--dk-accent-press);--accent-soft:var(--dk-accent-soft);--accent-soft-2:var(--dk-accent-soft-2);--accent-border:var(--dk-accent-border);--accent-contrast:var(--dk-accent-contrast);--secondary:var(--dk-secondary);--secondary-soft:var(--dk-secondary-soft);--success:var(--dk-success);--success-soft:var(--dk-success-soft);--success-border:var(--dk-success-border);--warning:var(--dk-warning);--warning-soft:var(--dk-warning-soft);--warning-border:var(--dk-warning-border);--danger:var(--dk-danger);--danger-soft:var(--dk-danger-soft);--danger-border:var(--dk-danger-border);--info:var(--dk-info);--info-soft:var(--dk-info-soft);--info-border:var(--dk-info-border);--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 2px #0006, 0 2px 6px #0000004d;--shadow:0 2px 6px #0006, 0 10px 24px -8px #00000080;--shadow-md:0 4px 10px #00000073, 0 18px 38px -12px #0009;--shadow-lg:0 8px 18px #00000080, 0 32px 64px -20px #000000bf}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{margin:0;padding:0}body{background-color:var(--bg);background-image:var(--bg-tint);color:var(--text);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-normal);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overscroll-behavior-y:none;background-attachment:fixed}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);color:var(--text);text-wrap:balance;margin:0}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);letter-spacing:var(--tracking-snug)}h4{font-size:var(--fs-title);letter-spacing:var(--tracking-snug)}p{margin:0 0 var(--s-3);text-wrap:pretty}p:last-child{margin-bottom:0}a{color:var(--accent);transition:color var(--dur-1) var(--ease-out);text-decoration:none}a:hover{color:var(--accent-hover);text-underline-offset:2px;text-decoration:underline}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font-family:inherit}code{font-family:var(--font-mono);font-size:.9em}hr{background:var(--border);height:1px;margin:var(--s-5) 0;border:none}.stat-value,.rate,table.data td,.tabular{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}::selection{background:var(--accent-soft-2);color:var(--accent-contrast)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);background-clip:content-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.t-display{font-family:var(--font-display);font-size:var(--fs-display);font-weight:var(--fw-bold);letter-spacing:-.03em;line-height:1.08}.t-h1{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight)}.t-h2{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:var(--tracking-tight)}.t-h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:var(--tracking-snug)}.t-title{font-size:var(--fs-title);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:var(--tracking-snug)}.t-subtitle{font-size:var(--fs-subtitle);font-weight:var(--fw-regular);color:var(--text-2);line-height:var(--lh-snug)}.t-body{font-size:var(--fs-body);line-height:var(--lh-normal)}.t-caption{font-size:var(--fs-caption);line-height:var(--lh-snug);color:var(--text-2)}.t-small{font-size:var(--fs-small);line-height:var(--lh-snug);color:var(--text-3)}.t-label,.label{font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-3);display:block}.muted{color:var(--text-2)}.dim{color:var(--text-3)}.small{font-size:var(--fs-caption)}.tiny{font-size:var(--fs-small)}.bold{font-weight:var(--fw-semibold)}.center{text-align:center}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mt-0{margin-top:0}.mt-1{margin-top:var(--s-2)}.mt-2{margin-top:var(--s-4)}.mt-3{margin-top:var(--s-6)}.mb-1{margin-bottom:var(--s-2)}.mb-2{margin-bottom:var(--s-4)}.mb-3{margin-bottom:var(--s-6)}.divider{background:var(--border);height:1px;margin:var(--s-5) 0;border:none}.divider-tight{margin:var(--s-3) 0}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:40;background:color-mix(in srgb, var(--surface) 78%, transparent);-webkit-backdrop-filter:saturate(180%)blur(18px);border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);padding-top:env(safe-area-inset-top);transition:box-shadow var(--dur-2) var(--ease-out);position:sticky;top:0}.topbar[data-scrolled=true]{box-shadow:var(--shadow-sm)}.topbar-inner{max-width:var(--max-w);height:var(--nav-h);padding:0 var(--s-4);align-items:center;gap:var(--s-3);margin:0 auto;display:flex}.brand{align-items:center;gap:var(--s-2);font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text);letter-spacing:-.025em;white-space:nowrap;font-size:1.05rem;display:inline-flex}.brand:hover{color:var(--text);text-decoration:none}.brand-mark{background:linear-gradient(145deg, var(--teal-400), var(--teal-700));color:#fff;width:32px;height:32px;box-shadow:var(--shadow-accent);border-radius:10px;flex:none;place-items:center;display:grid}.brand-mark svg{width:18px;height:18px}.brand em{color:var(--accent);font-style:normal}.nav-links{margin-left:var(--s-2);flex:1;align-items:center;gap:2px;min-width:0;display:flex}.nav-links a{align-items:center;gap:var(--s-2);border-radius:var(--radius-pill);color:var(--text-2);font-weight:var(--fw-medium);font-size:var(--fs-caption);white-space:nowrap;transition:background var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);padding:8px 14px;display:inline-flex}.nav-links a svg{opacity:.85;width:17px;height:17px}.nav-links a:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav-links a.active{background:var(--accent-soft);color:var(--accent-contrast);font-weight:var(--fw-semibold)}.nav-links a.active svg{opacity:1}.topbar-actions{align-items:center;gap:var(--s-1);margin-left:auto;display:flex}.main{width:100%;max-width:var(--max-w);padding:var(--s-6) var(--s-4) var(--s-9);flex:1;margin:0 auto}.main-narrow{max-width:var(--max-w-narrow)}@media (width<=900px){.nav-links{display:none}.main{padding:var(--s-4) var(--s-4);padding-bottom:calc(var(--tabbar-h) + var(--tabbar-gap) * 2 + env(safe-area-inset-bottom) + var(--s-6))}}.tabbar{left:50%;bottom:calc(env(safe-area-inset-bottom) + var(--tabbar-gap));z-index:45;width:min(520px, calc(100vw - var(--s-6)));background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);border:1px solid color-mix(in srgb, var(--border) 80%, transparent);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);display:none;position:fixed;overflow:hidden;transform:translate(-50%)}.tabbar-inner{height:var(--tabbar-h);padding:0 var(--s-1);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.tabbar a{color:var(--text-3);font-size:.63rem;font-weight:var(--fw-semibold);letter-spacing:.01em;min-height:var(--tap);transition:color var(--dur-2) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex;position:relative}.tabbar a:hover{color:var(--text-2);text-decoration:none}.tabbar a .tab-icon{border-radius:var(--radius-pill);width:30px;height:26px;transition:background var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-spring);place-items:center;display:grid}.tabbar a .tab-icon svg{width:20px;height:20px}.tabbar a.active{color:var(--accent)}.tabbar a.active .tab-icon{background:var(--accent-soft);transform:translateY(-1px)}.tabbar a:active .tab-icon{transform:scale(.9)}.tabbar .tab-dot{background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:7px;right:calc(50% - 17px)}@media (width<=900px){.tabbar{display:block}}.page-head{align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-6);flex-wrap:wrap;display:flex}.page-head .grow{flex:260px;min-width:0}.page-head h1{margin-bottom:2px}.page-head p{color:var(--text-2);font-size:var(--fs-subtitle);margin:0}.section-head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.section-head .grow{flex:200px;min-width:0}.section-head h2,.section-head h3{margin:0}.section-head p{color:var(--text-2);font-size:var(--fs-caption);margin:2px 0 0}.back-link{align-items:center;gap:var(--s-1);margin-bottom:var(--s-4);color:var(--text-2);font-size:var(--fs-caption);font-weight:var(--fw-medium);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);background:0 0;border:none;padding:6px 12px 6px 8px;display:inline-flex}.back-link svg{width:16px;height:16px}.back-link:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.grid{gap:var(--s-4);display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,168px),1fr))}.row{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.row-tight{gap:var(--s-2);align-items:center;min-width:0;display:flex}.row-between{gap:var(--s-3);justify-content:space-between;align-items:center;display:flex}.spacer{flex:1}.grow{flex:1;min-width:0}.stack{gap:var(--s-4);flex-direction:column;display:flex}.stack-sm{gap:var(--s-2);flex-direction:column;display:flex}.stack-lg{gap:var(--s-6);flex-direction:column;display:flex}.detail-layout{gap:var(--s-5);grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;display:grid}@media (width<=940px){.detail-layout{grid-template-columns:1fr}}.sticky-aside{top:calc(var(--nav-h) + var(--s-4));position:sticky}@media (width<=940px){.sticky-aside{position:static}}.btn{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-bd:var(--border-strong);--btn-shadow:var(--shadow-xs);appearance:none;border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);box-shadow:var(--btn-shadow);font:inherit;font-weight:var(--fw-semibold);font-size:var(--fs-caption);letter-spacing:var(--tracking-snug);border-radius:var(--radius-pill);cursor:pointer;justify-content:center;align-items:center;gap:var(--s-2);white-space:nowrap;min-height:40px;transition:background var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);padding:9px 18px;line-height:1.25;text-decoration:none;display:inline-flex;position:relative}.btn svg{flex:none;width:17px;height:17px}.btn:hover:not(:disabled){background:var(--surface-3);box-shadow:var(--shadow-sm);text-decoration:none}.btn:active:not(:disabled){box-shadow:var(--shadow-xs);transform:scale(.975)}.btn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--on-accent);--btn-bd:transparent;--btn-shadow:var(--shadow-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-accent)}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-secondary{--btn-bg:var(--accent-soft);--btn-fg:var(--accent-contrast);--btn-bd:transparent;--btn-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--accent-soft-2)}.btn-ghost{--btn-bd:transparent;--btn-bg:transparent;--btn-fg:var(--text-2);--btn-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text);box-shadow:none}.btn-danger{--btn-bg:var(--danger-soft);--btn-fg:var(--danger);--btn-bd:transparent;--btn-shadow:none}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 16%, var(--danger-soft))}.btn-success{--btn-bg:var(--success);--btn-fg:#fff;--btn-bd:transparent;--btn-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){background:color-mix(in srgb, var(--success) 85%, #000)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-success{--btn-fg:var(--dk-on-accent)}}:root[data-theme=dark] .btn-success{--btn-fg:var(--dk-on-accent)}:root[data-theme=light] .btn-success{--btn-fg:#fff}.btn-sm{min-height:34px;font-size:var(--fs-small);gap:var(--s-1);padding:6px 13px}.btn-sm svg{width:15px;height:15px}.btn-lg{min-height:50px;font-size:var(--fs-body);padding:13px 26px}.btn-lg svg{width:19px;height:19px}.btn-block{width:100%}.btn-square{width:40px;padding-left:0;padding-right:0}.icon-btn{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--text-2);cursor:pointer;transition:background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);background:0 0;border:1px solid #0000;flex:none;place-items:center;display:grid;position:relative}.icon-btn svg{width:19px;height:19px}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn:active{transform:scale(.92)}.icon-btn .badge-dot{border-radius:var(--radius-pill);background:var(--danger);color:#fff;min-width:17px;height:17px;font-size:.6rem;font-weight:var(--fw-bold);box-shadow:0 0 0 2px var(--surface);place-items:center;padding:0 4px;display:grid;position:absolute;top:3px;right:2px}.avatar-btn{cursor:pointer;transition:box-shadow var(--dur-2) var(--ease-out);background:0 0;border:none;border-radius:50%;place-items:center;padding:2px;display:grid}.avatar-btn:hover{box-shadow:0 0 0 2px var(--accent-border)}.fab{right:var(--s-4);bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--s-6));z-index:44;border-radius:var(--radius-lg);background:var(--accent);width:56px;height:56px;color:var(--on-accent);box-shadow:var(--shadow-md);cursor:pointer;transition:transform var(--dur-2) var(--ease-spring), box-shadow var(--dur-2) var(--ease-out);border:none;place-items:center;display:grid;position:fixed}.fab:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.fab:active{transform:scale(.94)}.field{margin-bottom:var(--s-4);flex-direction:column;gap:6px;min-width:0;display:flex}.field>label{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text);letter-spacing:var(--tracking-snug);text-transform:none}.field-required{color:var(--danger);margin-left:1px}input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=color],[type=submit],[type=button],[type=reset],[type=image]),select,textarea{width:100%;font:inherit;font-size:var(--fs-body);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:var(--tap);transition:border-color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out);appearance:none;padding:11px 14px}select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23718382' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;padding-right:38px}textarea{resize:vertical;min-height:96px;line-height:var(--lh-normal)}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border-color:var(--text-3)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}input::placeholder,textarea::placeholder{color:var(--text-3);opacity:1}input:disabled,select:disabled,textarea:disabled{background:var(--surface-3);color:var(--text-disabled);cursor:not-allowed;border-color:var(--border)}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}input[aria-invalid=true]:focus,textarea[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent)}input[type=date],input[type=time]{cursor:pointer}input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;transition:opacity var(--dur-1)}input::-webkit-calendar-picker-indicator:hover{opacity:1}.hint{font-size:var(--fs-small);color:var(--text-3);line-height:var(--lh-snug)}.field-error{font-size:var(--fs-small);color:var(--danger);font-weight:var(--fw-medium);align-items:center;gap:5px;display:flex}.field-error svg{flex:none;width:14px;height:14px}.input-icon{align-items:center;width:100%;min-width:0;display:flex;position:relative}.input-icon>svg{width:18px;height:18px;color:var(--text-3);pointer-events:none;z-index:1;position:absolute;left:14px}.input-icon input{padding-left:42px}.input-icon .input-clear{background:var(--surface-3);width:28px;height:28px;color:var(--text-2);cursor:pointer;border:none;border-radius:50%;place-items:center;display:grid;position:absolute;right:8px}.input-icon .input-clear svg{width:14px;height:14px}.input-icon .input-clear:hover{background:var(--border-strong);color:var(--text)}.search-bar input{border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-xs);padding-left:44px}.checkbox,.radio{align-items:center;gap:var(--s-3);font-size:var(--fs-body);cursor:pointer;text-transform:none;letter-spacing:normal;font-weight:var(--fw-regular);color:var(--text);min-height:36px;display:flex}.checkbox input,.radio input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.switch-row{align-items:center;gap:var(--s-3);padding:var(--s-3) 0;cursor:pointer;display:flex}.switch{border-radius:var(--radius-pill);background:var(--border-strong);width:46px;height:28px;transition:background var(--dur-2) var(--ease-out);flex:none;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch .knob{width:22px;height:22px;box-shadow:var(--shadow-sm);transition:transform var(--dur-2) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch:has(input:checked){background:var(--accent)}.switch:has(input:checked) .knob{transform:translate(18px)}.switch:has(input:focus-visible){box-shadow:var(--ring)}.segmented{background:var(--surface-3);border-radius:var(--radius-pill);scrollbar-width:none;gap:2px;width:100%;padding:4px;display:inline-flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button{font:inherit;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-2);border-radius:var(--radius-pill);cursor:pointer;min-height:36px;transition:background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);white-space:nowrap;background:0 0;border:none;flex:1;padding:8px 14px}.segmented button:hover:not([aria-pressed=true]){color:var(--text)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.segmented .seg-count{font-size:.68rem;font-weight:var(--fw-bold);opacity:.75;margin-left:4px}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);border-radius:var(--radius-pill);min-height:36px;font-size:var(--fs-caption);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);white-space:nowrap;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;text-decoration:none;display:inline-flex}.chip svg{width:15px;height:15px}.chip:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.chip:active{transform:scale(.96)}.chip[aria-pressed=true],.chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip[aria-pressed=true]:hover,.chip.active:hover{color:var(--on-accent)}.chip:disabled{opacity:.45;cursor:not-allowed}.chip-static{cursor:default;background:var(--surface-3);color:var(--text-2);font-size:var(--fs-small);border-color:#0000;min-height:28px;padding:5px 11px}.chip-static:hover{color:var(--text-2);border-color:#0000}.chip-accent{background:var(--accent-soft);color:var(--accent-contrast);border-color:#0000}.chip-remove{color:inherit;cursor:pointer;opacity:.7;transition:opacity var(--dur-1);background:0 0;border:none;place-items:center;padding:0 0 0 3px;display:grid}.chip-remove svg{width:14px;height:14px}.chip-remove:hover{opacity:1}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;height:24px}.searchable-select,.searchable-input{position:relative}.searchable-menu,.map-results{z-index:60;padding:var(--s-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:260px;animation:menu-in var(--dur-2) var(--ease-out);margin:0;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.map-results{z-index:500}.searchable-menu li button,.map-results li button{text-align:left;width:100%;font:inherit;font-size:var(--fs-caption);color:var(--text);border-radius:var(--radius-xs);cursor:pointer;line-height:var(--lh-snug);transition:background var(--dur-1);background:0 0;border:none;padding:10px 12px}.searchable-menu li button:hover,.map-results li button:hover{background:var(--accent-soft);color:var(--accent-contrast)}.searchable-empty,.map-result-empty{color:var(--text-3);font-size:var(--fs-caption);padding:10px 12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}:is(.card:has(.searchable-select),.card:has(.map-picker)){overflow:visible}.card-flat{box-shadow:none}.card-inset{background:var(--surface-2)}.card-pad{padding:var(--s-5)}.card-header{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.card-header h2,.card-header h3{margin:0}.card-header p{margin:2px 0 0}.card-body{padding:var(--s-5)}.card-body.tight{padding:var(--s-4)}.card-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--border);gap:var(--s-2);background:var(--surface-2);flex-wrap:wrap;align-items:center;display:flex}.card-link{color:inherit;transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out);display:block}.card-link:hover{color:inherit;box-shadow:var(--shadow-md);border-color:var(--accent-border);text-decoration:none;transform:translateY(-2px)}.card-link:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.list-row{align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);color:inherit;min-height:60px;transition:background var(--dur-2) var(--ease-out);text-decoration:none;display:flex}.list-row:last-child{border-bottom:none}a.list-row:hover,button.list-row:hover{background:var(--surface-2);color:inherit;text-decoration:none}a.list-row:active,button.list-row:active{background:var(--surface-3)}.list-row .grow{flex:1;min-width:0}.list-title{font-weight:var(--fw-semibold);font-size:var(--fs-title);letter-spacing:var(--tracking-snug)}.list-sub{font-size:var(--fs-caption);color:var(--text-2);margin-top:1px}.list-chevron{color:var(--text-3);flex:none}.list-chevron svg{width:18px;height:18px}.icon-tile{border-radius:var(--radius-sm);background:var(--accent-soft);width:42px;height:42px;color:var(--accent-contrast);flex:none;place-items:center;font-size:20px;line-height:1;display:grid}.icon-tile svg{width:20px;height:20px}.icon-tile-lg{border-radius:var(--radius);width:52px;height:52px;font-size:24px}.icon-tile-lg svg{width:24px;height:24px}.icon-tile-success{background:var(--success-soft);color:var(--success)}.icon-tile-warning{background:var(--warning-soft);color:var(--warning)}.icon-tile-danger{background:var(--danger-soft);color:var(--danger)}.icon-tile-info{background:var(--info-soft);color:var(--info)}.icon-tile-neutral{background:var(--surface-3);color:var(--text-2)}.pill{border-radius:var(--radius-pill);font-size:var(--fs-small);font-weight:var(--fw-semibold);letter-spacing:.005em;background:var(--surface-3);color:var(--text-2);white-space:nowrap;align-items:center;gap:5px;padding:4px 11px;line-height:1.4;display:inline-flex}.pill svg{flex:none;width:13px;height:13px}.pill-success{background:var(--success-soft);color:var(--success)}.pill-warning{background:var(--warning-soft);color:var(--warning)}.pill-danger{background:var(--danger-soft);color:var(--danger)}.pill-info{background:var(--info-soft);color:var(--info)}.pill-accent{background:var(--accent-soft);color:var(--accent-contrast)}.pill-outline{border:1px solid var(--border-strong);background:0 0}.avatar{background:linear-gradient(145deg, var(--teal-400), var(--teal-700));color:#fff;width:46px;height:46px;font-weight:var(--fw-bold);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-size:.92rem;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff24}.avatar-xs{width:26px;height:26px;font-size:.62rem}.avatar-sm{width:36px;height:36px;font-size:.74rem}.avatar-lg{width:76px;height:76px;font-size:1.45rem}.avatar-xl{width:104px;height:104px;font-size:2rem}.avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-ring{box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--accent-border)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-4) var(--s-5);box-shadow:var(--shadow-sm);flex-direction:column;gap:2px;display:flex;position:relative;overflow:hidden}.stat-head{align-items:center;gap:var(--s-2);margin-bottom:2px;display:flex}.stat .stat-label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);font-weight:var(--fw-bold)}.stat .stat-icon{border-radius:var(--radius-xs);background:var(--accent-soft);width:30px;height:30px;color:var(--accent-contrast);flex:none;place-items:center;margin-left:auto;display:grid}.stat .stat-icon svg{width:16px;height:16px}.stat .stat-value{font-family:var(--font-display);font-size:1.6rem;font-weight:var(--fw-bold);letter-spacing:-.03em;margin-top:4px;line-height:1.12}.stat .stat-sub{font-size:var(--fs-small);color:var(--text-2);margin-top:2px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-caption);min-width:620px}table.data th{text-align:left;font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-3);font-weight:var(--fw-bold);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface-2);z-index:1;position:sticky;top:0}table.data td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr{transition:background var(--dur-1)}table.data tbody tr:hover{background:var(--surface-2)}.td-right{text-align:right}.tabs{gap:var(--s-1);border-bottom:1px solid var(--border);margin-bottom:var(--s-5);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{font:inherit;font-weight:var(--fw-semibold);font-size:var(--fs-subtitle);color:var(--text-2);min-height:var(--tap);cursor:pointer;white-space:nowrap;transition:color var(--dur-2) var(--ease-out);background:0 0;border:none;padding:12px 16px;position:relative}.tab:after{content:"";height:2px;transition:background var(--dur-2) var(--ease-out);background:0 0;border-radius:2px;position:absolute;bottom:-1px;left:12px;right:12px}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--accent)}.tab[aria-selected=true]:after{background:var(--accent)}.tab-badge{border-radius:var(--radius-pill);background:var(--warning-soft);min-width:18px;height:18px;color:var(--warning);font-size:.62rem;font-weight:var(--fw-bold);place-items:center;margin-left:6px;padding:0 5px;display:inline-grid}.toast-host{left:50%;bottom:calc(env(safe-area-inset-bottom) + var(--s-5));z-index:90;gap:var(--s-2);width:min(440px, calc(100vw - var(--s-6)));pointer-events:none;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}@media (width<=900px){.toast-host{bottom:calc(var(--tabbar-h) + var(--tabbar-gap) * 2 + env(safe-area-inset-bottom) + var(--s-2))}}.toast{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--s-3) var(--s-4);gap:var(--s-3);font-size:var(--fs-caption);line-height:var(--lh-snug);animation:toast-in var(--dur-3) var(--ease-spring);align-items:flex-start;display:flex}.toast .toast-icon{background:var(--info-soft);width:26px;height:26px;color:var(--info);border-radius:50%;flex:none;place-items:center;display:grid}.toast .toast-icon svg{width:15px;height:15px}.toast.success .toast-icon{background:var(--success-soft);color:var(--success)}.toast.error .toast-icon{background:var(--danger-soft);color:var(--danger)}.toast .grow{flex:1;padding-top:3px}.toast button{color:var(--text-3);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;flex:none;place-items:center;padding:3px;display:grid}.toast button svg{width:15px;height:15px}.toast button:hover{background:var(--surface-3);color:var(--text)}.banner{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--radius);font-size:var(--fs-caption);line-height:var(--lh-snug);margin-bottom:var(--s-4);border:1px solid #0000;display:flex}.banner>svg{flex:none;width:19px;height:19px}.banner .grow{flex:1;min-width:0}.banner strong{font-weight:var(--fw-bold)}.banner-info{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.banner-warning{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}.banner-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.banner-success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.banner-accent{background:var(--accent-soft);color:var(--accent-contrast);border-color:var(--accent-border)}.banner-neutral{background:var(--surface-2);color:var(--text-2);border-color:var(--border)}.banner .btn{background:color-mix(in srgb, currentColor 10%, transparent);border-color:color-mix(in srgb, currentColor 26%, transparent);color:inherit;box-shadow:none}.banner .btn:hover:not(:disabled){background:color-mix(in srgb, currentColor 18%, transparent)}.offline-bar{z-index:95;background:var(--warning);color:#fff;text-align:center;font-size:var(--fs-small);font-weight:var(--fw-semibold);padding:6px 12px;padding-top:calc(6px + env(safe-area-inset-top));justify-content:center;align-items:center;gap:6px;display:flex;position:fixed;top:0;left:0;right:0}.offline-bar svg{width:14px;height:14px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .offline-bar{color:#241a06}}:root[data-theme=dark] .offline-bar{color:#241a06}:root[data-theme=light] .offline-bar{color:#fff}.empty{text-align:center;padding:var(--s-9) var(--s-5);color:var(--text-2);align-items:center;gap:var(--s-2);flex-direction:column;display:flex}.empty-art{margin-bottom:var(--s-2)}.empty-art svg{width:168px;max-width:60vw;height:auto}.empty .empty-icon{margin-bottom:var(--s-2);opacity:.5;font-size:40px}.empty h3{color:var(--text);font-size:var(--fs-h3);margin-bottom:2px}.empty p{font-size:var(--fs-caption);max-width:42ch;color:var(--text-2);margin:0 auto}.empty .empty-actions{margin-top:var(--s-4);gap:var(--s-2);flex-wrap:wrap;justify-content:center;display:flex}.skeleton{background:linear-gradient(100deg, var(--surface-3) 20%, color-mix(in srgb, var(--surface-3) 45%, var(--surface)) 45%, var(--surface-3) 70%);animation:shimmer 1.5s var(--ease-in-out) infinite;border-radius:var(--radius-xs);background-size:220% 100%}.skeleton-text{border-radius:var(--radius-pill);height:11px}.skeleton-circle{border-radius:50%}.spinner{border:2px solid color-mix(in srgb, currentColor 22%, transparent);border-top-color:currentColor;border-radius:50%;flex:none;width:18px;height:18px;animation:.65s linear infinite spin}.spinner-lg{border-width:3px;width:28px;height:28px}.progress{border-radius:var(--radius-pill);background:var(--surface-3);height:6px;overflow:hidden}.progress>i{border-radius:inherit;background:linear-gradient(90deg, var(--teal-400), var(--accent));height:100%;transition:width var(--dur-4) var(--ease-out);display:block}.route-progress{z-index:100;background:linear-gradient(90deg, var(--teal-300), var(--accent));height:3px;animation:route-bar 1.1s var(--ease-in-out) infinite;transform-origin:0;width:100%;position:fixed;top:0;left:0}.modal-backdrop{z-index:80;background:var(--overlay);-webkit-backdrop-filter:blur(4px);animation:fade-in var(--dur-2) var(--ease-out);justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=640px){.modal-backdrop{padding:var(--s-6);align-items:center}}.modal{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:540px;max-height:92dvh;box-shadow:var(--shadow-lg);animation:sheet-up var(--dur-3) var(--ease-out);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;overflow:hidden}@media (width>=640px){.modal{border-radius:var(--radius-lg);animation:dialog-in var(--dur-2) var(--ease-out);max-height:86dvh}}.modal:before{content:"";border-radius:var(--radius-pill);background:var(--border-strong);width:38px;height:4px;margin:var(--s-2) auto 0;flex:none}@media (width>=640px){.modal:before{display:none}}.modal-head{align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);background:var(--surface);flex:none;display:flex}.modal-head h2{font-size:var(--fs-h3);flex:1}.modal-body{padding:var(--s-5);flex:1;overflow-y:auto}.modal-body.flush{padding:0}.modal-foot{padding:var(--s-4) var(--s-5);border-top:1px solid var(--border);gap:var(--s-2);background:var(--surface-2);flex-wrap:wrap;flex:none;justify-content:flex-end;display:flex}.modal-foot .btn{flex:auto}@media (width>=640px){.modal-foot .btn{flex:none}}.menu-pop{z-index:51;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:244px;box-shadow:var(--shadow-lg);animation:menu-in var(--dur-2) var(--ease-out);position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.menu-pop .menu-user{padding:var(--s-4);border-bottom:1px solid var(--border);background:var(--surface-2)}.menu-pop .menu-item{align-items:center;gap:var(--s-3);width:100%;padding:11px var(--s-4);font:inherit;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-2);cursor:pointer;text-align:left;transition:background var(--dur-1), color var(--dur-1);background:0 0;border:none;display:flex}.menu-pop .menu-item svg{flex:none;width:17px;height:17px}.menu-pop .menu-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.menu-pop .menu-item.danger{color:var(--danger);border-top:1px solid var(--border)}.menu-pop .menu-item.danger:hover{background:var(--danger-soft)}.menu-scrim{z-index:50;position:fixed;inset:0}.auth-wrap{isolation:isolate;background:radial-gradient(880px 520px at 50% -12%, color-mix(in srgb, var(--teal-400) 22%, transparent), transparent 68%), radial-gradient(760px 480px at 12% 108%, color-mix(in srgb, var(--teal-600) 15%, transparent), transparent 62%), radial-gradient(760px 480px at 88% 104%, color-mix(in srgb, var(--teal-500) 12%, transparent), transparent 62%), var(--bg);grid-template-columns:1fr;min-height:100dvh;display:grid;position:relative}.auth-wrap:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(color-mix(in srgb, var(--text-3) 26%, transparent) 1px, transparent 1px);opacity:.45;background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(760px 620px at 50% 42%,#000,#0000 74%);mask-image:radial-gradient(760px 620px at 50% 42%,#000,#0000 74%)}.auth-wrap:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(340px 340px at 18% 30%, color-mix(in srgb, var(--teal-400) 30%, transparent), transparent 70%), radial-gradient(400px 400px at 82% 72%, color-mix(in srgb, var(--teal-500) 24%, transparent), transparent 72%);opacity:.75;will-change:transform;animation:auth-drift 26s var(--ease-in-out) infinite alternate;position:absolute;inset:-10% -20%}.auth-main{padding:var(--s-7) var(--s-4) calc(var(--s-7) + env(safe-area-inset-bottom));place-items:center;min-width:0;display:grid;position:relative}.auth-stack{gap:var(--s-5);flex-direction:column;width:100%;min-width:0;max-width:480px;display:flex}.auth-stack-wide{max-width:min(1060px,100%)}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-lg);padding:var(--s-7) var(--s-6) calc(var(--s-7) + env(safe-area-inset-bottom));animation:rise var(--dur-4) var(--ease-out) both;position:relative}.auth-card:before{content:"";z-index:-1;border-radius:inherit;background:linear-gradient(150deg, color-mix(in srgb, var(--accent) 42%, transparent), transparent 42%);filter:blur(18px);opacity:.5;position:absolute;inset:-1px}.auth-card:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:.55;border-radius:1px;height:1px;position:absolute;top:0;left:12%;right:12%}.auth-stack-wide .auth-card{padding:var(--s-8) clamp(var(--s-5), 4vw, var(--s-9)) calc(var(--s-8) + env(safe-area-inset-bottom))}.auth-form-grid{gap:0 var(--s-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));display:grid}.auth-form-grid>.span-all{grid-column:1/-1}.auth-stack-wide .map-canvas{height:340px}.form-section{align-items:center;gap:var(--s-3);margin:var(--s-5) 0 var(--s-4);display:flex}.form-section:first-child{margin-top:0}.form-section .form-section-num{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-contrast);font-size:var(--fs-small);font-weight:var(--fw-bold);border-radius:50%;flex:none;place-items:center;display:grid}.form-section h2{font-size:var(--fs-h3)}.form-section:after{content:"";background:var(--border);flex:1;height:1px}.auth-card>*{animation:rise var(--dur-3) var(--ease-out) both;animation-delay:calc(90ms + var(--i,0) * 55ms)}.auth-card .brand{justify-content:center;width:100%;font-size:1.22rem}.auth-card .brand-mark{border-radius:13px;width:40px;height:40px}.auth-card .brand-mark svg{width:22px;height:22px}.auth-head{text-align:center;margin-bottom:var(--s-6)}.auth-head h1{margin-top:var(--s-4);letter-spacing:-.032em;font-size:clamp(1.5rem,1.3rem + .9vw,1.72rem)}.auth-head p{color:var(--text-2);font-size:var(--fs-caption);max-width:34ch;margin:7px auto 0}.auth-foot{text-align:center;margin-top:var(--s-5);font-size:var(--fs-caption);color:var(--text-2)}.auth-divider{align-items:center;gap:var(--s-3);margin:var(--s-6) 0 var(--s-4);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:linear-gradient(90deg, transparent, var(--border-strong), transparent);flex:1;height:1px}.auth-divider span{font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-3);white-space:nowrap}.field-assist{justify-content:flex-end;margin-top:2px;display:flex}.field-assist a{font-size:var(--fs-small);font-weight:var(--fw-semibold)}.trust-strip{justify-content:center;gap:var(--s-2) var(--s-5);animation:rise var(--dur-4) var(--ease-out) both;flex-wrap:wrap;margin:0;padding:0;list-style:none;animation-delay:.42s;display:flex}.trust-strip li{font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--text-2);white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.trust-strip svg{width:15px;height:15px;color:var(--accent)}.demo-row{gap:var(--s-2);grid-template-columns:repeat(3,1fr);display:grid}.demo-btn{align-items:center;gap:var(--s-2);padding:var(--s-4) var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font:inherit;font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text-2);cursor:pointer;transition:border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.demo-btn .demo-avatar{background:var(--surface-3);width:38px;height:38px;color:var(--text-2);transition:background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), transform var(--dur-3) var(--ease-spring);border-radius:50%;place-items:center;display:grid}.demo-btn .demo-avatar svg{width:18px;height:18px}.demo-btn:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent-contrast);background:var(--surface);box-shadow:var(--shadow);transform:translateY(-3px)}.demo-btn:hover:not(:disabled) .demo-avatar{background:var(--accent);color:var(--on-accent);transform:scale(1.08)}.demo-btn:active:not(:disabled){transform:translateY(0)scale(.97)}.demo-btn:disabled{opacity:.5;cursor:not-allowed}.role-choice{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=620px){.role-choice{grid-template-columns:1fr}}.role-card{gap:var(--s-2);padding:var(--s-5);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:inherit;text-align:left;cursor:pointer;font:inherit;transition:border-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);flex-direction:column;display:flex}.role-card:hover{color:inherit;border-color:var(--accent);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-3px)}.role-card .icon-tile{margin-bottom:var(--s-1)}.role-title{font-weight:var(--fw-bold);font-size:var(--fs-h3)}.role-sub{font-size:var(--fs-caption);color:var(--text-2);line-height:var(--lh-normal);flex:1}.role-meta{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text-3);align-items:center;gap:5px;display:inline-flex}.role-meta svg{width:14px;height:14px}.role-cta{margin-top:var(--s-2);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--accent);align-items:center;gap:6px;display:inline-flex}.role-cta svg{width:16px;height:16px;transition:transform var(--dur-2) var(--ease-out)}.role-card:hover .role-cta svg{transform:translate(3px)}.hero{border-radius:var(--radius-lg);padding:var(--s-8) var(--s-7);margin-bottom:var(--s-7);color:#fff;background:radial-gradient(700px 320px at 92% -20%, #ffffff29, transparent 62%), linear-gradient(140deg, var(--teal-600), var(--teal-800) 58%, var(--teal-900));box-shadow:var(--shadow-md);position:relative;overflow:hidden}@media (width<=620px){.hero{padding:var(--s-6) var(--s-5);border-radius:var(--radius-md)}}.hero:after{content:"";pointer-events:none;background:#ffffff0f;border-radius:50%;width:320px;height:320px;position:absolute;bottom:-140px;right:-90px}.hero>*{z-index:1;position:relative}.hero .hero-eyebrow{border-radius:var(--radius-pill);color:#fff;font-size:var(--fs-small);font-weight:var(--fw-semibold);margin-bottom:var(--s-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff24;align-items:center;gap:6px;padding:5px 12px;display:inline-flex}.hero .hero-eyebrow svg{width:14px;height:14px}.hero h1{color:#fff;font-size:var(--fs-display);letter-spacing:-.035em;margin-bottom:var(--s-2)}.hero p{color:#ffffffd1;max-width:52ch;font-size:var(--fs-body)}.hero-search{margin-top:var(--s-6);gap:var(--s-2);flex-wrap:wrap;display:flex}.hero-search .input-icon{flex:260px}.hero-search .input-icon>svg{color:var(--text-3)}.hero-search input{border-radius:var(--radius-pill);min-height:50px;box-shadow:var(--shadow);border-color:#0000}.hero-search input:focus{box-shadow:0 0 0 3px #ffffff80}.hero-search .btn-primary{--btn-bg:#fff;--btn-fg:var(--teal-800);--btn-shadow:var(--shadow)}.hero-search .btn-primary:hover:not(:disabled){--btn-bg:var(--teal-50);background:var(--teal-50)}.hero-trust{gap:var(--s-6);margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid #ffffff29;flex-wrap:wrap;display:flex}.hero-trust div{flex-direction:column;display:flex}.hero-trust b{font-family:var(--font-display);font-size:1.3rem;font-weight:var(--fw-bold);letter-spacing:-.02em}.hero-trust span{font-size:var(--fs-small);color:#ffffffa8}.svc-banner{border-radius:var(--radius-lg);margin-bottom:var(--s-7);box-shadow:var(--shadow-md);isolation:isolate;flex-direction:column;display:flex;position:relative;overflow:hidden}.svc-banner-track{min-height:0;transition:transform var(--dur-4) var(--ease-out);will-change:transform;flex:1;display:flex}.svc-slide{min-width:0;padding:var(--s-7) var(--s-6) calc(var(--s-7) + var(--s-4));color:#fff;flex-direction:column;flex:0 0 100%;justify-content:flex-end;min-height:340px;display:flex;position:relative}.svc-slide[data-theme=a]{background:radial-gradient(620px 300px at 88% -20%, #ffffff2e, transparent 62%), linear-gradient(135deg, var(--teal-600), var(--teal-900))}.svc-slide[data-theme=b]{background:radial-gradient(620px 300px at 88% -20%,#ffffff29,#0000 62%),linear-gradient(135deg,#0f6f7d,#06323c)}.svc-slide[data-theme=c]{background:radial-gradient(620px 300px at 88% -20%,#ffffff2e,#0000 62%),linear-gradient(135deg,#17786b,#0b3a37)}.svc-slide[data-theme=d]{background:radial-gradient(620px 300px at 88% -20%,#ffffff29,#0000 62%),linear-gradient(135deg,#276a80,#0a2f3d)}.svc-slide[data-theme=e]{background:radial-gradient(620px 300px at 88% -20%, #ffffff2e, transparent 62%), linear-gradient(135deg, var(--teal-500), var(--teal-800))}.svc-slide-copy{min-width:0}.svc-eyebrow{border-radius:var(--radius-pill);font-size:var(--fs-small);font-weight:var(--fw-semibold);margin-bottom:var(--s-3);background:#ffffff29;border:1px solid #fff3;align-items:center;gap:7px;padding:5px 12px;display:inline-flex}.svc-eyebrow svg{width:14px;height:14px}.svc-slide h2{color:#fff;letter-spacing:-.032em;margin-bottom:var(--s-2);font-size:clamp(1.35rem,1rem + 1.7vw,2rem);line-height:1.12}.svc-slide p{color:#ffffffd6;font-size:var(--fs-body);max-width:46ch;margin-bottom:var(--s-5)}.svc-cta{--btn-bg:#fff;--btn-fg:var(--teal-800);--btn-bd:transparent;--btn-shadow:var(--shadow)}.svc-cta:hover:not(:disabled){background:var(--teal-50)}.svc-slide-art{z-index:0;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.svc-slide-art img{object-fit:cover;object-position:center 38%;width:100%;height:100%;display:block;position:absolute;inset:0}.svc-slide-art svg{width:62%;max-width:300px;height:auto;margin-left:auto;margin-right:5%}.svc-slide-art:after{content:"";background:linear-gradient(90deg,#041e1cf0 0%,#041e1cdb 38%,#041e1c6b 68%,#041e1c47 100%),linear-gradient(#041e1c1a,#041e1c59);position:absolute;inset:0}.svc-slide-copy{z-index:1;position:relative}.svc-banner-controls{right:var(--s-5);bottom:var(--s-5);z-index:2;align-items:center;gap:var(--s-2);display:flex;position:absolute}.svc-arrow{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);width:34px;height:34px;transition:background var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);background:#ffffff24;border:1px solid #ffffff47;border-radius:50%;place-items:center;display:grid}.svc-arrow svg{width:17px;height:17px}.svc-arrow:hover{background:#ffffff42}.svc-arrow:active{transform:scale(.92)}.svc-dots{align-items:center;gap:6px;display:flex}.svc-dot{cursor:pointer;width:22px;height:24px;transition:width var(--dur-3) var(--ease-out);background:0 0;border:none;align-items:center;padding:0;display:grid}.svc-dot>span{border-radius:var(--radius-pill);height:4px;transition:background var(--dur-2) var(--ease-out);background:#fff6;display:block}.svc-dot[data-active=true]{width:46px}.svc-dot[data-active=true]>span{background:linear-gradient(90deg,#fff 0% 100%) 0 0/0% 100% no-repeat,#ffffff59 0 0/100% 100%;animation:6s linear forwards svc-fill}@keyframes svc-fill{0%{background-size:0% 100%,100% 100%}to{background-size:100% 100%,100% 100%}}@media (width<=900px){.svc-slide{min-height:300px;padding:var(--s-6) var(--s-5) calc(var(--s-7) + var(--s-3))}.svc-slide p{margin-bottom:var(--s-4);font-size:var(--fs-caption)}.svc-slide-art:after{background:linear-gradient(#041e1c52 0%,#041e1cb8 52%,#041e1ced 100%)}.svc-slide-art img{object-position:center 32%}.svc-slide-art svg{width:55%;margin:0 auto}.svc-banner-controls{left:var(--s-5);right:var(--s-5);bottom:var(--s-4);justify-content:center}.svc-arrow{display:none}}.home-top{gap:var(--s-5);margin-bottom:var(--s-7);grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:stretch;display:grid}.home-top>.hero,.home-top>.svc-banner{margin-bottom:0}.home-top>.hero{padding:var(--s-7) var(--s-6);flex-direction:column;justify-content:center;display:flex}.home-top>.hero h1{font-size:clamp(1.5rem,1.1rem + 1.5vw,2.05rem)}.home-top>.hero p{font-size:var(--fs-caption)}.home-top .hero-search{flex-wrap:wrap}.home-top .hero-search .input-icon{flex:190px}.home-top .hero-trust{gap:var(--s-5)}.home-top .hero-trust b{font-size:1.15rem}@media (width<=1040px){.home-top{gap:var(--s-4);grid-template-columns:1fr}}.quick-actions{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));display:grid}.quick-action{align-items:center;gap:var(--s-3);padding:var(--s-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out);display:flex}.quick-action:hover{color:inherit;box-shadow:var(--shadow);border-color:var(--accent-border);text-decoration:none;transform:translateY(-2px)}.quick-action b{font-size:var(--fs-title);font-weight:var(--fw-semibold);display:block}.quick-action span{font-size:var(--fs-small);color:var(--text-3);margin-top:1px;display:block}.service-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-5) var(--s-3);text-align:center;cursor:pointer;color:inherit;align-items:center;gap:var(--s-1);box-shadow:var(--shadow-xs);transition:transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out);flex-direction:column;font-family:inherit;display:flex}.service-tile:hover{border-color:var(--accent-border);box-shadow:var(--shadow);color:inherit;text-decoration:none;transform:translateY(-3px)}.service-tile:active{transform:translateY(0)}.service-tile .ico{border-radius:var(--radius);background:var(--accent-soft);width:48px;height:48px;margin-bottom:var(--s-1);transition:background var(--dur-2) var(--ease-out), transform var(--dur-3) var(--ease-spring);place-items:center;font-size:24px;line-height:1;display:grid}.service-tile:hover .ico{background:var(--accent-soft-2);transform:scale(1.06)}.service-tile .nm{font-weight:var(--fw-semibold);font-size:var(--fs-caption);line-height:var(--lh-snug)}.service-tile .ct{font-size:var(--fs-small);color:var(--text-3)}.service-tile[data-selected=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.nurse-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));display:grid}.nurse-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-5);gap:var(--s-3);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);flex-direction:column;display:flex}.nurse-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent-border);transform:translateY(-3px)}.nurse-card-top{gap:var(--s-3);align-items:flex-start;display:flex}.nurse-card-top .grow{flex:1;min-width:0}.nurse-name{font-weight:var(--fw-semibold);font-size:var(--fs-h3);letter-spacing:var(--tracking-snug);color:var(--text);align-items:center;gap:5px;min-width:0;display:flex}.nurse-headline{color:var(--text-2);font-size:var(--fs-caption);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;display:-webkit-box;overflow:hidden}.nurse-meta{gap:var(--s-2) var(--s-4);font-size:var(--fs-caption);color:var(--text-2);flex-wrap:wrap;align-items:center;display:flex}.nurse-meta>span{align-items:center;gap:5px;display:inline-flex}.nurse-meta svg{width:15px;height:15px;color:var(--text-3);flex:none}.rate{font-family:var(--font-display);font-size:1.22rem;font-weight:var(--fw-bold);color:var(--text);letter-spacing:-.03em;line-height:1.2}.rate-unit{font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--text-3);display:block}.verified-tick{color:var(--accent);flex:none;place-items:center;display:inline-grid}.verified-tick svg{width:16px;height:16px}.stars{color:var(--star);letter-spacing:.5px;gap:1px;line-height:1;display:inline-flex}.stars svg{width:14px;height:14px}.rating-line{font-size:var(--fs-caption);align-items:center;gap:5px;display:inline-flex}.rating-line b{color:var(--text);font-weight:var(--fw-semibold)}.rating-line span{color:var(--text-3)}.star-input{gap:var(--s-1);justify-content:center;display:flex}.star-input button{cursor:pointer;color:var(--border-strong);transition:transform var(--dur-2) var(--ease-spring), color var(--dur-1);background:0 0;border:none;place-items:center;padding:4px;display:grid}.star-input button svg{width:34px;height:34px}.star-input button.on{color:var(--star)}.star-input button:hover{transform:scale(1.15)}.star-input button:active{transform:scale(.95)}.search-layout{gap:var(--s-5);grid-template-columns:288px minmax(0,1fr);align-items:start;display:grid}.filters{top:calc(var(--nav-h) + var(--s-4));max-height:calc(100dvh - var(--nav-h) - var(--s-8));position:sticky;overflow-y:auto}.filter-group{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border)}.filter-group:last-child{border-bottom:none}.filter-group>.label{margin-bottom:var(--s-3)}.filters-toggle{display:none}@media (width<=980px){.search-layout{grid-template-columns:1fr}.filters{max-height:none;position:static}.filters-toggle{display:inline-flex}.filters-col{display:none}}.time-range{align-items:center;gap:var(--s-2);grid-template-columns:1fr auto 1fr;width:100%;display:grid}.time-range input{width:100%;min-width:0;font-size:var(--fs-caption);padding-left:10px;padding-right:6px}.time-range input::-webkit-calendar-picker-indicator{margin-left:0;padding:0}.time-range .time-arrow{color:var(--text-3);place-items:center;display:grid}.time-range .time-arrow svg{width:15px;height:15px}.range-row{align-items:center;gap:var(--s-2);display:flex}.range-row input{width:100%}.range-row span{color:var(--text-3);font-size:var(--fs-caption)}.result-bar{align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.result-bar .input-icon{flex:240px}.slot-grid{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,108px),1fr));display:grid}.slot{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);min-height:var(--tap);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-2);cursor:pointer;text-align:center;transition:background var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);padding:11px 8px;font-family:inherit}.slot:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.slot:active:not(:disabled){transform:scale(.96)}.slot[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-accent)}.slot:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}.day-strip{gap:var(--s-2);padding:2px 2px var(--s-3);scroll-snap-type:x proximity;display:flex;overflow-x:auto}.day-pill{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius);cursor:pointer;text-align:center;scroll-snap-align:start;min-width:68px;transition:background var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);flex:none;padding:10px;font-family:inherit}.day-pill:hover:not(:disabled){border-color:var(--accent)}.day-pill:active:not(:disabled){transform:scale(.96)}.day-pill span{font-size:var(--fs-label);color:var(--text-3);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;display:block}.day-pill b{font-family:var(--font-display);color:var(--text);font-size:1.15rem;line-height:1.3;font-weight:var(--fw-bold);display:block}.day-pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);box-shadow:var(--shadow-accent)}.day-pill[aria-pressed=true] span,.day-pill[aria-pressed=true] b{color:var(--on-accent)}.day-pill:disabled{opacity:.4;cursor:not-allowed}.loc-choices{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,215px),1fr));display:grid}.loc-choice{align-items:center;gap:var(--s-3);text-align:left;width:100%;min-width:0;padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);font-family:inherit;display:flex}.loc-choice:hover{border-color:var(--accent)}.loc-choice[data-active=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.loc-choice .grow{min-width:0}.loc-choice .nm{font-weight:var(--fw-semibold);font-size:var(--fs-caption);line-height:var(--lh-snug);display:block}.loc-choice .ct{font-size:var(--fs-small);color:var(--text-3);margin-top:1px;display:block}.loc-choice[data-active=true] .ct{color:var(--accent-contrast)}.wizard-rail{gap:var(--s-2);margin-bottom:var(--s-5);display:flex}.wizard-rail button{cursor:pointer;font:inherit;text-align:left;color:var(--text-3);min-width:0;transition:color var(--dur-2) var(--ease-out);background:0 0;border:none;flex:1;padding:0}.wizard-rail button:disabled{cursor:not-allowed}.wizard-rail button[data-state=done],.wizard-rail button[data-state=current]{color:var(--accent)}.wizard-rail .wizard-bar{border-radius:var(--radius-pill);background:var(--border-strong);height:5px;margin-bottom:var(--s-2);transition:background var(--dur-3) var(--ease-out);display:block}.wizard-rail button[data-state=done] .wizard-bar{background:var(--accent)}.wizard-rail button[data-state=current] .wizard-bar{background:linear-gradient(90deg, var(--accent) 55%, var(--accent-border))}.wizard-rail .wizard-name{font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;display:block}.wizard-rail .wizard-value{font-size:var(--fs-small);color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}@media (width<=660px){.wizard-rail .wizard-value{display:none}}.step-panel{animation:step-in var(--dur-3) var(--ease-out)}.wizard-actions{bottom:calc(var(--tabbar-h) + var(--tabbar-gap) * 2 + env(safe-area-inset-bottom));z-index:20;gap:var(--s-2);background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s-3);box-shadow:var(--shadow-md);margin-top:var(--s-5);align-items:center;display:flex;position:sticky}@media (width>=901px){.wizard-actions{bottom:var(--s-4)}}.wizard-confirm{max-width:760px;margin-inline:auto}.summary-row{justify-content:space-between;align-items:flex-start;gap:var(--s-4);padding:var(--s-2) 0;font-size:var(--fs-caption);display:flex}.summary-row>dt{color:var(--text-3);white-space:nowrap}.summary-row>dd{text-align:right;font-weight:var(--fw-medium);min-width:0;margin:0}.summary-total{padding-top:var(--s-3);border-top:1px solid var(--border);margin-top:var(--s-2);justify-content:space-between;align-items:center;display:flex}.summary-total>span{font-weight:var(--fw-semibold)}.workflow{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-5) var(--s-5) var(--s-4);box-shadow:var(--shadow-sm)}.workflow-track{gap:var(--s-1);grid-auto-columns:1fr;grid-auto-flow:column;margin:0;padding:0;list-style:none;display:grid}.workflow-step{text-align:center;padding-top:var(--s-1);flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.workflow-step:before{content:"";background:var(--border-strong);z-index:0;height:2px;position:absolute;top:22px;left:-50%;right:50%}.workflow-step:first-child:before{display:none}.workflow-step[data-state=done]:before{background:var(--accent)}.workflow-step[data-state=active]:before{background:linear-gradient(90deg, var(--accent), var(--border-strong))}.workflow-step[data-state=broken]:before{background:repeating-linear-gradient(90deg, var(--border-strong) 0 5px, transparent 5px 10px)}.workflow-dot{z-index:1;background:var(--surface-3);width:38px;height:38px;color:var(--text-3);border:2px solid var(--border-strong);transition:background var(--dur-3) var(--ease-out), color var(--dur-3) var(--ease-out), border-color var(--dur-3) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:relative}.workflow-dot svg{width:17px;height:17px}.workflow-step[data-state=done] .workflow-dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.workflow-step[data-state=active] .workflow-dot{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);animation:pulse-ring 2.4s var(--ease-out) infinite}.workflow-step[data-state=broken] .workflow-dot{opacity:.45;border-style:dashed}.workflow-label{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text-2);line-height:1.25}.workflow-step[data-state=done] .workflow-label{color:var(--text)}.workflow-step[data-state=active] .workflow-label{color:var(--accent)}.workflow-blurb{color:var(--text-3);font-size:.66rem;line-height:1.3}@media (width<=580px){.workflow-blurb{display:none}.workflow-label{font-size:.66rem}.workflow-dot{width:32px;height:32px}.workflow-dot svg{width:15px;height:15px}.workflow-step:before{top:19px}}.workflow-note{gap:var(--s-2);margin-top:var(--s-5);padding:var(--s-3) var(--s-4);border-radius:var(--radius);background:var(--accent-soft);color:var(--text);font-size:var(--fs-caption);border:1px solid var(--accent-border);align-items:flex-start;display:flex}.workflow-note svg{width:17px;height:17px;color:var(--accent);flex:none;margin-top:1px}.workflow-note.broken{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.workflow-note.broken svg{color:var(--danger)}.chat{flex-direction:column;display:flex}.chat-log{padding:var(--s-4) var(--s-5);overscroll-behavior:contain;background:radial-gradient(circle at 15% 10%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 55%), var(--surface-2);flex-direction:column;gap:2px;height:400px;display:flex;overflow-y:auto}@media (width<=620px){.chat-log{height:320px;padding:var(--s-3)}}.chat-day{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);margin:var(--s-3) auto var(--s-2);text-transform:uppercase;width:fit-content;letter-spacing:var(--tracking-wide);align-self:center;padding:3px 12px}.bubble-row{margin-bottom:var(--s-1);display:flex}.bubble-row.mine{justify-content:flex-end}.bubble{background:var(--surface);border:1px solid var(--border);max-width:min(78%,460px);color:var(--text);border-radius:var(--radius-md) var(--radius-md) var(--radius-md) 5px;font-size:var(--fs-caption);line-height:var(--lh-normal);white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-xs);animation:bubble-in var(--dur-2) var(--ease-out);padding:9px 13px 7px}.bubble-row.mine .bubble{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-md) var(--radius-md) 5px var(--radius-md);border-color:#0000}.bubble-meta{opacity:.6;white-space:nowrap;justify-content:flex-end;align-items:center;gap:3px;margin-top:3px;font-size:.64rem;display:flex}.bubble-meta svg{width:12px;height:12px}.bubble.typing{align-items:center;gap:4px;padding:13px 15px;display:flex}.bubble.typing span{background:var(--text-3);width:6px;height:6px;animation:typing-bounce 1.3s infinite var(--ease-in-out);border-radius:50%}.bubble.typing span:nth-child(2){animation-delay:.18s}.bubble.typing span:nth-child(3){animation-delay:.36s}.chat-composer{gap:var(--s-2);padding:var(--s-3) var(--s-4);border-top:1px solid var(--border);background:var(--surface);align-items:flex-end;display:flex}.chat-composer textarea{resize:none;border-radius:var(--radius-lg);min-height:44px;max-height:132px;line-height:var(--lh-snug);flex:1;padding:11px 16px}.chat-composer .btn{border-radius:50%;flex:none;width:44px;height:44px;min-height:44px;padding:0}.unread-pill{background:var(--danger);color:#fff;border-radius:var(--radius-pill);min-width:20px;height:20px;font-size:.66rem;font-weight:var(--fw-bold);flex:none;place-items:center;padding:0 6px;display:inline-grid}.live-dot{background:var(--success);width:7px;height:7px;animation:live-pulse 2s var(--ease-in-out) infinite;border-radius:50%;flex:none;display:inline-block}.live-chip{font-size:var(--fs-small);color:var(--text-3);align-items:center;gap:5px;display:inline-flex}.live-chip svg{width:13px;height:13px}.doc-slot{border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-4);margin-bottom:var(--s-3);background:var(--surface-2);transition:border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out)}.doc-slot.filled{background:var(--surface);border-color:var(--accent-border)}.doc-slot.invalid{border-color:var(--danger)}.doc-slot-head{align-items:center;gap:var(--s-2);margin-bottom:var(--s-1);flex-wrap:wrap;display:flex}.doc-slot-label{font-weight:var(--fw-semibold);font-size:var(--fs-caption)}.doc-required{color:var(--danger)}.doc-hint{margin:0 0 var(--s-3)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);width:100%;padding:var(--s-6) var(--s-4);cursor:pointer;font:inherit;color:var(--text-2);align-items:center;gap:var(--s-1);transition:border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out);background:0 0;flex-direction:column;display:flex}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-contrast)}.dropzone .icon-tile{margin-bottom:var(--s-1)}.dropzone-text{font-size:var(--fs-caption)}.dropzone-text strong{color:var(--accent)}.doc-chosen{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--radius-sm);background:var(--surface-3);display:flex}.doc-chosen-name{font-weight:var(--fw-semibold);font-size:var(--fs-caption);display:block}.doc-review{gap:var(--s-2);margin-top:var(--s-2);flex-direction:column;display:flex}.doc-row{align-items:center;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;display:flex}.doc-row[data-status=approved]{border-left-color:var(--success)}.doc-row[data-status=rejected]{border-left-color:var(--danger)}.doc-row[data-status=pending]{border-left-color:var(--warning)}.doc-viewer{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-3);object-fit:contain;width:100%;height:min(64vh,560px);display:block}.avatar-upload{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.avatar-upload-target{cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;padding:0;position:relative}.avatar-upload-target:disabled{cursor:default;opacity:.7}.avatar-upload-overlay{background:var(--accent);width:30px;height:30px;color:var(--on-accent);border:2px solid var(--surface);transition:transform var(--dur-2) var(--ease-spring);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.avatar-upload-overlay svg{width:15px;height:15px}.avatar-upload-target:hover .avatar-upload-overlay{transform:scale(1.1)}.image-picker{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.image-picker-preview{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-3);width:68px;height:68px;color:var(--text-3);flex:none;place-items:center;display:grid;overflow:hidden}.image-picker-preview img{object-fit:cover;width:100%;height:100%}.service-icon-img{object-fit:cover;vertical-align:middle;border-radius:6px;display:inline-block}.review{padding:var(--s-4) 0;border-bottom:1px solid var(--border)}.review:first-child{padding-top:0}.review:last-child{border-bottom:none;padding-bottom:0}.review-head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-2);display:flex}.review-head .grow{flex:1;min-width:0}.review p{font-size:var(--fs-caption);color:var(--text-2)}.complaint-row{align-items:center;gap:var(--s-3);text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:var(--s-3) var(--s-4);font:inherit;color:inherit;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out);display:flex}.complaint-row:hover{border-color:var(--accent);background:var(--surface-3)}.complaint-thread{gap:var(--s-3);margin-top:var(--s-3);flex-direction:column;display:flex}.complaint-bubble{border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-3) var(--s-4);background:var(--surface-2);font-size:var(--fs-caption)}.complaint-bubble.admin{background:var(--accent-soft);border-color:var(--accent-border)}.map-picker{gap:var(--s-2);flex-direction:column;display:flex}.map-search{gap:var(--s-2);align-items:center;display:flex;position:relative}.map-search .input-icon{flex:1}.map-canvas{border-radius:var(--radius);border:1px solid var(--border-strong);z-index:0;background:var(--surface-3);width:100%;height:280px;overflow:hidden}.map-hint{margin:0}.map-coords{color:var(--accent);font-weight:var(--fw-semibold);margin:0}.map-loading{justify-content:center;align-items:center;gap:var(--s-2);display:flex}.map-pin{background:0 0;border:none}.map-pin-dot{background:var(--accent);border:2px solid #fff;border-radius:50% 50% 50% 0;width:22px;height:22px;display:block;transform:rotate(-45deg);box-shadow:0 3px 8px #00000059}.leaflet-container{font:inherit}.leaflet-bar a{background:var(--surface);color:var(--text);border-color:var(--border)}.leaflet-bar a:hover{background:var(--surface-3)}.bars{align-items:flex-end;gap:var(--s-3);height:150px;padding-top:var(--s-3);display:flex}.bars .bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bars .bar{background:linear-gradient(180deg, var(--teal-300), var(--accent));width:100%;max-width:44px;min-height:3px;transition:height var(--dur-4) var(--ease-out);border-radius:6px 6px 3px 3px}.bars .bar-label{font-size:var(--fs-label);color:var(--text-3);font-weight:var(--fw-semibold);white-space:nowrap}.bars .bar-value{color:var(--text-2);font-size:.68rem;font-weight:var(--fw-semibold)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-100% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes step-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{opacity:.6;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes dialog-in{0%{opacity:0;transform:scale(.97)translateY(6px)}to{opacity:1;transform:none}}@keyframes menu-in{0%{opacity:0;transform:scale(.97)translateY(-4px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:none}}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes route-bar{0%{opacity:1;transform:scaleX(0)}60%{opacity:1;transform:scaleX(.85)}to{opacity:0;transform:scaleX(1)}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 40%, transparent)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes auth-drift{0%{transform:translate(-3%,-2%)scale(1)}to{transform:translate(4%,3%)scale(1.08)}}@keyframes typing-bounce{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes flash-in{0%{background:var(--accent-soft)}to{background:0 0}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes draw{to{stroke-dashoffset:0}}.anim-rise{animation:rise var(--dur-3) var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}.anim-fade{animation:fade-in var(--dur-3) var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}.anim-pop{animation:pop-in var(--dur-3) var(--ease-spring) both}.just-updated{animation:flash-in 1.4s var(--ease-out)}.draw-check{stroke-dasharray:48;stroke-dashoffset:48px;animation:draw var(--dur-4) var(--ease-out) .18s forwards}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.topbar,.tabbar,.toast-host,.wizard-actions,.fab,.btn{display:none!important}body{background:#fff}.card{box-shadow:none;break-inside:avoid;border-color:#ccc}}
