@import "https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--prim-neutral-0:#fff;--prim-neutral-25:#fdfcfb;--prim-neutral-50:#faf9f7;--prim-neutral-100:#f3f1ee;--prim-neutral-200:#e8e5e0;--prim-neutral-300:#d2cfc8;--prim-neutral-400:#b0ada5;--prim-neutral-500:#888580;--prim-neutral-600:#66635d;--prim-neutral-700:#46443f;--prim-neutral-800:#2c2b27;--prim-neutral-900:#1a1917;--prim-neutral-950:#0f0e0c;--prim-teal-50:#f0fdfa;--prim-teal-100:#ccfbf1;--prim-teal-200:#99f6e4;--prim-teal-300:#5eead4;--prim-teal-400:#2dd4bf;--prim-teal-500:#14b8a6;--prim-teal-600:#0d9488;--prim-teal-700:#0f766e;--prim-teal-800:#115e59;--prim-teal-900:#134e4a;--prim-green-100:#dcfce7;--prim-green-600:#16a34a;--prim-green-400:#4ade80;--prim-amber-100:#fef3c7;--prim-amber-600:#d97706;--prim-amber-400:#fbbf24;--prim-red-100:#fee2e2;--prim-red-600:#dc2626;--prim-red-400:#f87171;--prim-blue-100:#dbeafe;--prim-blue-600:#2563eb;--prim-blue-400:#60a5fa;--prim-violet-100:#ede9fe;--prim-violet-600:#7c3aed;--prim-violet-400:#a78bfa;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--prim-neutral-50);--bg-elevated:var(--prim-neutral-25);--bg-sunken:var(--prim-neutral-100);--surface:var(--prim-neutral-0);--surface-raised:var(--prim-neutral-0);--surface-overlay:#fdfcfbeb;--table-stripe:var(--prim-neutral-50);--border-subtle:var(--prim-neutral-100);--border:var(--prim-neutral-200);--border-strong:var(--prim-neutral-300);--text-primary:var(--prim-neutral-900);--text-secondary:var(--prim-neutral-600);--text-muted:var(--prim-neutral-500);--text-placeholder:var(--prim-neutral-400);--text-disabled:var(--prim-neutral-400);--text-inverse:var(--prim-neutral-0);--text-on-accent:var(--prim-neutral-0);--text-link:var(--prim-teal-700);--text-link-hover:var(--prim-teal-800);--text-on-color:var(--prim-neutral-0);--scrim-on-color:#0003;--scrim-overlay:#00000073;--hairline-on-color:#fff6;--wash-on-color:#ffffff26;--accent:var(--prim-teal-600);--accent-hover:var(--prim-teal-700);--accent-muted:var(--prim-teal-500);--accent-subtle:var(--prim-teal-50);--accent-subtle-border:var(--prim-teal-200);--status-success:var(--prim-green-600);--status-success-bg:var(--prim-green-100);--status-warning:var(--prim-amber-600);--status-warning-bg:var(--prim-amber-100);--status-error:var(--prim-red-600);--status-error-bg:var(--prim-red-100);--status-info:var(--prim-blue-600);--status-info-bg:var(--prim-blue-100);--task-accent:var(--prim-violet-600);--task-accent-bg:var(--prim-violet-100);--shadow-xs:0 1px 2px 0 #1a19170a;--shadow-sm:0 1px 3px 0 #1a19170f, 0 1px 2px -1px #1a19170a;--shadow-md:0 4px 6px -1px #1a191712, 0 2px 4px -2px #1a19170a;--shadow-lg:0 10px 15px -3px #1a191714, 0 4px 6px -4px #1a19170a;--shadow-xl:0 20px 25px -5px #1a191714, 0 8px 10px -6px #1a19170a;--shadow-inner:inset 0 2px 4px 0 #1a19170d;--shadow-focus:0 0 0 3px #0d94882e;--btn-primary-top:var(--prim-teal-500);--btn-primary-bottom:var(--prim-teal-600);--btn-primary-border:var(--prim-teal-700);--btn-primary-top-h:var(--prim-teal-400);--btn-primary-bot-h:var(--prim-teal-500);--btn-surface-top:var(--prim-neutral-0);--btn-surface-bottom:var(--prim-neutral-50);--btn-surface-top-h:var(--prim-neutral-50);--btn-surface-bot-h:var(--prim-neutral-100);--shadow-btn:0 1px 2px 0 #1a19171a, inset 0 1px 0 0 #ffffff24;--shadow-btn-hover:0 2px 5px -1px #1a191724, inset 0 1px 0 0 #ffffff2e;--shadow-btn-active:inset 0 2px 4px 0 #1a19172e;--period-today-bg:#fef9e7;--period-today-text:#7c4e00;--period-today-border:#f5c518;--period-today-header:#fde68a;--period-week-bg:#ecfdf5;--period-week-text:#054f35;--period-week-border:#6ee7b7;--period-week-header:#a7f3d0;--period-month-bg:#ecfeff;--period-month-text:#155e75;--period-month-border:#67e8f9;--period-month-header:#a5f3fc;--period-q3mo-bg:#eff6ff;--period-q3mo-text:#1e3a8a;--period-q3mo-border:#93c5fd;--period-q3mo-header:#bfdbfe;--period-quarter-bg:#f5f3ff;--period-quarter-text:#4c1d95;--period-quarter-border:#c4b5fd;--period-quarter-header:#ddd6fe;--period-year-bg:#faf5ff;--period-year-text:#581c87;--period-year-border:#d8b4fe;--period-year-header:#e9d5ff;--period-alltime-bg:#fff1f2;--period-alltime-text:#881337;--period-alltime-border:#fca5a5;--period-alltime-header:#fecdd3;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, monospace;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:18px;--text-2xl:22px;--text-3xl:28px;--text-4xl:36px;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-snug:1.4;--leading-normal:1.55;--leading-relaxed:1.75;--tracking-tight:-.02em;--tracking-normal:-.01em;--tracking-wide:.02em;--tracking-caps:.06em;--sp-px:1px;--sp-0-5:2px;--sp-1:4px;--sp-1-5:6px;--sp-2:8px;--sp-2-5:10px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--public-logo-max-h:44px;--theme-toggle-size:24px;--portal-max-w:1280px;--portal-avatar-size:24px;--portal-account-name-max:160px;--portal-account-name-max-narrow:84px;--public-logo-max-w:200px;--accept-terms-max-h:18rem;--accept-modal-max-w:640px;--settings-logo-max-h:64px;--sched-day-min-h:120px;--sched-month-min-h:110px;--sched-month-min-h-narrow:52px;--sched-range-min-w:200px;--gantt-day-width:40px;--gantt-row-height:34px;--gantt-bar-height:22px;--gantt-label-width:220px;--gantt-weekend-bg:var(--prim-neutral-100);--qb-aside-width:300px;--qb-addr-card-min:240px;--qb-qty-input-w:110px;--qb-step-num-size:20px;--qb-muted-opacity:.55;--qb-est-w:96px;--inv-tile-min:190px;--inv-tile-count-size:var(--text-lg);--inv-panel-gap:var(--sp-2);--quote-product-col-min:240px;--job-book-phase-min:150px;--job-book-date-w:140px;--job-book-time-w:116px;--job-book-crews-min:160px;--recurring-title-min:180px;--recurring-title-max:320px;--recurring-assignees-max:220px;--dash-visits-min-h:40px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:20px;--radius-full:9999px;--detail-col-min:22rem;--detail-label-min:6rem;--detail-label-max:9rem;--ease:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--dur-fast:.1s;--dur-normal:.2s;--dur-slow:.35s;--transition:var(--dur-normal) var(--ease);--transition-fast:var(--dur-fast) var(--ease);--transition-slow:var(--dur-slow) var(--ease);--z-base:0;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-overlay-backdrop:290;--z-overlay:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--fab-size:60px;--mobile-topbar-h:48px;--chart-month-label-w:60px;--chart-revenue-val-w:70px;--chart-job-count-w:40px;--chart-bar-min-w:40px;--chart-rate-val-w:36px;--appt-status-min-w:72px;--appt-time-min-w:160px;--phase-seq-min-w:24px;--phase-duration-min-w:80px;--sop-crew-input-w:72px}html.dark,html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141412;--bg-elevated:#1a1917;--bg-sunken:#0f0e0c;--surface:#1f1e1b;--surface-raised:#252421;--surface-overlay:#141412f0;--table-stripe:#25241f;--border-subtle:#252421;--border:#2e2d29;--border-strong:#3d3c37;--text-primary:#f0ede8;--text-secondary:#9a9790;--text-muted:#8a877f;--text-placeholder:#4a4844;--text-disabled:#3d3c37;--text-inverse:#1a1917;--text-on-accent:#0f0e0c;--text-link:var(--prim-teal-400);--text-link-hover:var(--prim-teal-300);--accent:var(--prim-teal-500);--accent-hover:var(--prim-teal-400);--accent-muted:var(--prim-teal-600);--accent-subtle:#0d948824;--accent-subtle-border:#0d948852;--status-success:var(--prim-green-400);--status-success-bg:#4ade801a;--status-warning:var(--prim-amber-400);--status-warning-bg:#fbbf241a;--status-error:var(--prim-red-400);--status-error-bg:#f871711a;--status-info:var(--prim-blue-400);--status-info-bg:#60a5fa1a;--task-accent:var(--prim-violet-400);--task-accent-bg:#a78bfa1f;--shadow-xs:0 1px 2px 0 #0000004d;--shadow-sm:0 1px 3px 0 #0006, 0 1px 2px -1px #0000004d;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #0000004d;--shadow-xl:0 20px 25px -5px #00000080, 0 8px 10px -6px #0000004d;--shadow-inner:inset 0 2px 4px 0 #0006;--btn-primary-top:var(--prim-teal-500);--btn-primary-bottom:var(--prim-teal-600);--btn-primary-border:var(--prim-teal-700);--btn-primary-top-h:var(--prim-teal-400);--btn-primary-bot-h:var(--prim-teal-500);--btn-surface-top:#2a2925;--btn-surface-bottom:#1f1e1b;--btn-surface-top-h:#322f2b;--btn-surface-bot-h:#26251f;--shadow-btn:0 1px 2px 0 #00000073, inset 0 1px 0 0 #ffffff12;--shadow-btn-hover:0 2px 6px -1px #0000008c, inset 0 1px 0 0 #ffffff1a;--shadow-btn-active:inset 0 2px 5px 0 #0000008c;--shadow-focus:0 0 0 3px #14b8a640;--period-today-bg:#2d2000;--period-today-text:#fcd34d;--period-today-border:#7c5000;--period-today-header:#3d2d00;--period-week-bg:#022c22;--period-week-text:#6ee7b7;--period-week-border:#065f46;--period-week-header:#042f26;--period-month-bg:#042229;--period-month-text:#67e8f9;--period-month-border:#0c4a6e;--period-month-header:#062f3b;--period-q3mo-bg:#0a1628;--period-q3mo-text:#93c5fd;--period-q3mo-border:#1e3a8a;--period-q3mo-header:#0e2040;--period-quarter-bg:#170f30;--period-quarter-text:#c4b5fd;--period-quarter-border:#2e1065;--period-quarter-header:#1e1545;--period-year-bg:#1a0833;--period-year-text:#d8b4fe;--period-year-border:#3b0764;--period-year-header:#220b40;--period-alltime-bg:#2a0510;--period-alltime-text:#fda4af;--period-alltime-border:#4c0519;--period-alltime-header:#380718}@media (prefers-color-scheme:dark){html:not([data-theme=light]):not(.light){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141412;--bg-elevated:#1a1917;--bg-sunken:#0f0e0c;--surface:#1f1e1b;--surface-raised:#252421;--surface-overlay:#141412f0;--table-stripe:#25241f;--border-subtle:#252421;--border:#2e2d29;--border-strong:#3d3c37;--text-primary:#f0ede8;--text-secondary:#9a9790;--text-muted:#8a877f;--text-placeholder:#4a4844;--text-disabled:#3d3c37;--text-inverse:#1a1917;--text-on-accent:#0f0e0c;--text-link:var(--prim-teal-400);--text-link-hover:var(--prim-teal-300);--accent:var(--prim-teal-500);--accent-hover:var(--prim-teal-400);--accent-muted:var(--prim-teal-600);--accent-subtle:#0d948824;--accent-subtle-border:#0d948852;--status-success:var(--prim-green-400);--status-success-bg:#4ade801a;--status-warning:var(--prim-amber-400);--status-warning-bg:#fbbf241a;--status-error:var(--prim-red-400);--status-error-bg:#f871711a;--status-info:var(--prim-blue-400);--status-info-bg:#60a5fa1a;--task-accent:var(--prim-violet-400);--task-accent-bg:#a78bfa1f;--shadow-xs:0 1px 2px 0 #0000004d;--shadow-sm:0 1px 3px 0 #0006, 0 1px 2px -1px #0000004d;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -2px #0000004d;--shadow-lg:0 10px 15px -3px #00000080, 0 4px 6px -4px #0000004d;--shadow-xl:0 20px 25px -5px #00000080, 0 8px 10px -6px #0000004d;--shadow-inner:inset 0 2px 4px 0 #0006;--shadow-focus:0 0 0 3px #14b8a640;--btn-primary-top:var(--prim-teal-500);--btn-primary-bottom:var(--prim-teal-600);--btn-primary-border:var(--prim-teal-700);--btn-primary-top-h:var(--prim-teal-400);--btn-primary-bot-h:var(--prim-teal-500);--btn-surface-top:#2a2925;--btn-surface-bottom:#1f1e1b;--btn-surface-top-h:#322f2b;--btn-surface-bot-h:#26251f;--shadow-btn:0 1px 2px 0 #00000073, inset 0 1px 0 0 #ffffff12;--shadow-btn-hover:0 2px 6px -1px #0000008c, inset 0 1px 0 0 #ffffff1a;--shadow-btn-active:inset 0 2px 5px 0 #0000008c;--period-today-bg:#2d2000;--period-today-text:#fcd34d;--period-today-border:#7c5000;--period-today-header:#3d2d00;--period-week-bg:#022c22;--period-week-text:#6ee7b7;--period-week-border:#065f46;--period-week-header:#042f26;--period-month-bg:#042229;--period-month-text:#67e8f9;--period-month-border:#0c4a6e;--period-month-header:#062f3b;--period-q3mo-bg:#0a1628;--period-q3mo-text:#93c5fd;--period-q3mo-border:#1e3a8a;--period-q3mo-header:#0e2040;--period-quarter-bg:#170f30;--period-quarter-text:#c4b5fd;--period-quarter-border:#2e1065;--period-quarter-header:#1e1545;--period-year-bg:#1a0833;--period-year-text:#d8b4fe;--period-year-border:#3b0764;--period-year-header:#220b40;--period-alltime-bg:#2a0510;--period-alltime-text:#fda4af;--period-alltime-border:#4c0519;--period-alltime-header:#380718}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:2;font-size:100%}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "cv11"}img,svg,video,canvas{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:var(--text-link);text-decoration:none}a:hover{color:var(--text-link-hover)}button{cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}hr{border:none;border-top:1px solid var(--border)}:focus-visible{outline:2px solid var(--status-info);outline-offset:2px;border-radius:var(--radius-sm);box-shadow:var(--shadow-focus)}:focus:not(:focus-visible){outline:none}.text-xs{font-size:var(--text-xs);line-height:var(--leading-snug)}.text-sm{font-size:var(--text-sm);line-height:var(--leading-snug)}.text-base{font-size:var(--text-base);line-height:var(--leading-normal)}.text-md{font-size:var(--text-md);line-height:var(--leading-normal)}.text-lg{font-size:var(--text-lg);line-height:var(--leading-snug)}.text-xl{font-size:var(--text-xl);line-height:var(--leading-snug)}.text-2xl{font-size:var(--text-2xl);line-height:var(--leading-tight)}.text-3xl{font-size:var(--text-3xl);line-height:var(--leading-tight)}.font-normal{font-weight:var(--weight-normal)}.font-medium{font-weight:var(--weight-medium)}.font-semibold{font-weight:var(--weight-semibold)}.font-bold{font-weight:var(--weight-bold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}.text-success{color:var(--status-success)}.text-warning{color:var(--status-warning)}.text-error{color:var(--status-error)}.font-mono{font-family:var(--font-mono)}h1{font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}h2{font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}h3{font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}h4{font-size:var(--text-lg);font-weight:var(--weight-medium)}h5{font-size:var(--text-md);font-weight:var(--weight-medium)}h6{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-secondary)}.page-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:var(--tracking-tight)}.section-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-muted);letter-spacing:var(--tracking-caps);text-transform:uppercase}.label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);margin-bottom:var(--sp-1);display:block}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}code{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:1px 5px}pre{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4);font-size:var(--text-sm);overflow-x:auto}pre code{background:0 0;border:none;padding:0}.btn{justify-content:center;align-items:center;gap:var(--sp-1-5);padding:var(--sp-1-5) var(--sp-3);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);border-radius:var(--radius-md);white-space:nowrap;letter-spacing:var(--tracking-normal);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);-webkit-user-select:none;user-select:none;cursor:pointer;border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:not(:disabled):not([aria-disabled=true]):active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:not(:disabled):not([aria-disabled=true]):active{transform:none}}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-xs{padding:2px var(--sp-1-5);font-size:var(--text-xs);border-radius:var(--radius-sm);gap:var(--sp-1)}.btn-sm{padding:var(--sp-1) var(--sp-2);font-size:var(--text-sm)}.btn-lg{padding:var(--sp-2-5) var(--sp-5);font-size:var(--text-md);border-radius:var(--radius-lg)}.btn-primary{background:linear-gradient(180deg, var(--btn-primary-top), var(--btn-primary-bottom));color:var(--text-on-accent);border-color:var(--btn-primary-border);box-shadow:var(--shadow-btn)}.btn-primary:hover{background:linear-gradient(180deg, var(--btn-primary-top-h), var(--btn-primary-bot-h));box-shadow:var(--shadow-btn-hover)}.btn-primary:not(:disabled):active{box-shadow:var(--shadow-btn-active)}.btn-secondary{background:linear-gradient(180deg, var(--btn-surface-top), var(--btn-surface-bottom));color:var(--text-primary);border-color:var(--border);box-shadow:var(--shadow-btn)}.btn-secondary:hover{background:linear-gradient(180deg, var(--btn-surface-top-h), var(--btn-surface-bot-h));border-color:var(--border-strong);box-shadow:var(--shadow-btn-hover)}.btn-secondary:not(:disabled):active{box-shadow:var(--shadow-btn-active)}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-sunken);color:var(--text-primary)}.btn-danger{background:var(--status-error-bg);color:var(--status-error);border-color:var(--status-error)}.btn-danger:hover{background:var(--status-error);color:var(--text-on-accent);box-shadow:var(--shadow-btn-hover)}.btn-danger:not(:disabled):active{box-shadow:var(--shadow-btn-active)}.btn-accent-subtle{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent-subtle-border)}.btn-accent-subtle:hover{background:var(--accent-subtle-border)}.btn-icon{padding:var(--sp-1-5);border-radius:var(--radius-md)}.btn-icon.btn-xs{padding:var(--sp-1);border-radius:var(--radius-sm)}.input,.select,.textarea{width:100%;padding:var(--sp-1-5) var(--sp-2);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);appearance:none;outline:none;display:block}.input::-moz-placeholder{color:var(--text-placeholder)}.textarea::-moz-placeholder{color:var(--text-placeholder)}.input::placeholder,.textarea::placeholder{color:var(--text-placeholder)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-sunken);color:var(--text-disabled);cursor:not-allowed}.input-error{border-color:var(--status-error)!important}.input-error:focus{box-shadow:0 0 0 3px #dc262626}.input-sm{padding:var(--sp-1) var(--sp-1-5);font-size:var(--text-sm)}.input-lg{padding:var(--sp-2) var(--sp-3);font-size:var(--text-md);border-radius:var(--radius-lg)}.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888580' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--sp-2) center;padding-right:var(--sp-6);cursor:pointer}.select-sm{width:auto;padding-top:var(--sp-1);padding-bottom:var(--sp-1);font-size:var(--text-sm);display:inline-block}.textarea{resize:vertical;min-height:80px}.field{gap:var(--sp-1);flex-direction:column;display:flex}.field-hint{font-size:var(--text-xs);color:var(--text-muted)}.field-error-msg{font-size:var(--text-xs);color:var(--status-error)}.dup-warning{gap:var(--sp-2);padding:var(--sp-3);margin-bottom:var(--sp-4);border:1px solid var(--status-warning);background:var(--status-warning-bg);border-radius:var(--radius-md);flex-direction:column;display:flex}.dup-warning-head{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--status-warning)}.dup-warning-body{font-size:var(--text-sm);color:var(--text-muted);margin:0}.dup-warning-list{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dup-warning-list li{align-items:center;gap:var(--sp-2);display:flex}.dup-warning-link{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--accent)}.dup-warning-kind{font-size:var(--text-xs);color:var(--text-muted);text-transform:capitalize}.checkbox,.radio{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.check-field{align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary);display:flex}.toggle{flex-shrink:0;width:34px;height:20px;display:inline-flex;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-track{background:var(--border-strong);border-radius:var(--radius-full);transition:background var(--transition-fast);cursor:pointer;position:absolute;inset:0}.toggle-track:after{content:"";background:var(--prim-neutral-0);width:16px;height:16px;box-shadow:var(--shadow-xs);transition:transform var(--transition-fast);border-radius:50%;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(14px)}.toggle input:focus-visible+.toggle-track{box-shadow:var(--shadow-focus)}.badge{padding:1px var(--sp-1-5);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-full);white-space:nowrap;letter-spacing:.01em;border:1px solid #0000;align-items:center;gap:3px;line-height:1.6;display:inline-flex}.badge-success{background:var(--status-success-bg);color:var(--status-success);border-color:var(--status-success)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning);border-color:var(--status-warning)}.badge-error{background:var(--status-error-bg);color:var(--status-error);border-color:var(--status-error)}.badge-info{background:var(--status-info-bg);color:var(--status-info);border-color:var(--status-info)}.badge-neutral{background:var(--bg-sunken);color:var(--text-secondary);border-color:var(--border)}.badge-accent{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent-subtle-border)}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.status-dot-success{background:var(--status-success)}.status-dot-warning{background:var(--status-warning)}.status-dot-error{background:var(--status-error)}.status-dot-info{background:var(--status-info)}.status-dot-neutral{background:var(--text-muted)}.period-badge{padding:1px var(--sp-1-5);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;letter-spacing:.01em;border:1px solid;align-items:center;line-height:1.6;display:inline-flex}.period-row-header td,.period-row-header th{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:var(--sp-1) var(--sp-3);border-bottom:1px solid}.period-section-header{padding:var(--sp-1-5) var(--sp-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;border-left:3px solid}.period-today{background-color:var(--period-today-bg);color:var(--period-today-text);border-color:var(--period-today-border)}.period-row-header.period-today td,.period-row-header.period-today th{background-color:var(--period-today-header);color:var(--period-today-text);border-color:var(--period-today-border)}.period-section-header.period-today{background-color:var(--period-today-bg);color:var(--period-today-text);border-color:var(--period-today-border)}.period-week{background-color:var(--period-week-bg);color:var(--period-week-text);border-color:var(--period-week-border)}.period-row-header.period-week td,.period-row-header.period-week th{background-color:var(--period-week-header);color:var(--period-week-text);border-color:var(--period-week-border)}.period-section-header.period-week{background-color:var(--period-week-bg);color:var(--period-week-text);border-color:var(--period-week-border)}.period-month{background-color:var(--period-month-bg);color:var(--period-month-text);border-color:var(--period-month-border)}.period-row-header.period-month td,.period-row-header.period-month th{background-color:var(--period-month-header);color:var(--period-month-text);border-color:var(--period-month-border)}.period-section-header.period-month{background-color:var(--period-month-bg);color:var(--period-month-text);border-color:var(--period-month-border)}.period-q3mo{background-color:var(--period-q3mo-bg);color:var(--period-q3mo-text);border-color:var(--period-q3mo-border)}.period-row-header.period-q3mo td,.period-row-header.period-q3mo th{background-color:var(--period-q3mo-header);color:var(--period-q3mo-text);border-color:var(--period-q3mo-border)}.period-section-header.period-q3mo{background-color:var(--period-q3mo-bg);color:var(--period-q3mo-text);border-color:var(--period-q3mo-border)}.period-quarter{background-color:var(--period-quarter-bg);color:var(--period-quarter-text);border-color:var(--period-quarter-border)}.period-row-header.period-quarter td,.period-row-header.period-quarter th{background-color:var(--period-quarter-header);color:var(--period-quarter-text);border-color:var(--period-quarter-border)}.period-section-header.period-quarter{background-color:var(--period-quarter-bg);color:var(--period-quarter-text);border-color:var(--period-quarter-border)}.period-year{background-color:var(--period-year-bg);color:var(--period-year-text);border-color:var(--period-year-border)}.period-row-header.period-year td,.period-row-header.period-year th{background-color:var(--period-year-header);color:var(--period-year-text);border-color:var(--period-year-border)}.period-section-header.period-year{background-color:var(--period-year-bg);color:var(--period-year-text);border-color:var(--period-year-border)}.period-alltime{background-color:var(--period-alltime-bg);color:var(--period-alltime-text);border-color:var(--period-alltime-border)}.period-row-header.period-alltime td,.period-row-header.period-alltime th{background-color:var(--period-alltime-header);color:var(--period-alltime-text);border-color:var(--period-alltime-border)}.period-section-header.period-alltime{background-color:var(--period-alltime-bg);color:var(--period-alltime-text);border-color:var(--period-alltime-border)}.period-filter-btn{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.period-filter-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.period-filter-btn.active.period-today{background:var(--period-today-bg);color:var(--period-today-text);border-color:var(--period-today-border)}.period-filter-btn.active.period-week{background:var(--period-week-bg);color:var(--period-week-text);border-color:var(--period-week-border)}.period-filter-btn.active.period-month{background:var(--period-month-bg);color:var(--period-month-text);border-color:var(--period-month-border)}.period-filter-btn.active.period-q3mo{background:var(--period-q3mo-bg);color:var(--period-q3mo-text);border-color:var(--period-q3mo-border)}.period-filter-btn.active.period-quarter{background:var(--period-quarter-bg);color:var(--period-quarter-text);border-color:var(--period-quarter-border)}.period-filter-btn.active.period-year{background:var(--period-year-bg);color:var(--period-year-text);border-color:var(--period-year-border)}.period-filter-btn.active.period-alltime{background:var(--period-alltime-bg);color:var(--period-alltime-text);border-color:var(--period-alltime-border)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-sm{border-radius:var(--radius-md)}.card-flat{box-shadow:none}.card-header{padding:var(--sp-4) var(--sp-4) 0;justify-content:space-between;align-items:center;display:flex}.card-body{padding:var(--sp-4)}.card-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);background:var(--bg-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.detail-list{grid-template-columns:repeat(auto-fill, minmax(min(100%, var(--detail-col-min)), 1fr));-moz-column-gap:var(--sp-6);column-gap:var(--sp-6);margin:0;display:grid}.detail-item{grid-template-columns:minmax(var(--detail-label-min), var(--detail-label-max)) 1fr;align-items:baseline;gap:var(--sp-3);padding:var(--sp-1-5) 0;border-bottom:1px solid var(--border-subtle);min-width:0;display:grid}.detail-item-label{color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-snug)}.detail-item-value{min-width:0;font-size:var(--text-sm);line-height:var(--leading-snug);overflow-wrap:anywhere;margin:0}.table tbody tr[role=link]:hover{background:var(--table-stripe);cursor:pointer}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:var(--shadow-xs)}.stat-card-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps);margin-bottom:var(--sp-1)}.stat-card-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-tight);line-height:1.2}.stat-card-delta{font-size:var(--text-xs);font-weight:var(--weight-medium);margin-top:var(--sp-1)}.stat-card-delta.up{color:var(--status-success)}.stat-card-delta.down{color:var(--status-error)}.dash-grids{gap:var(--sp-3);flex-direction:column;display:flex}.dash-kpi-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.dash-row-2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.dash-row-2{grid-template-columns:1fr}}.dash-card{padding:var(--sp-4);min-width:0}.dash-card-title{margin-bottom:var(--sp-3)}.dash-card-empty{color:var(--text-muted);font-size:var(--text-sm);text-align:center;padding:var(--sp-5) 0}.dash-visits{align-items:center;gap:var(--sp-2);min-height:var(--dash-visits-min-h);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.dash-visit-chip{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);display:flex}.dash-visit-time{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap}.dash-visit-meta{flex-direction:column;min-width:0;display:flex}.dash-visit-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary)}.dash-visit-addr{font-size:var(--text-xs);color:var(--text-muted)}.summary-point-group+.summary-point-group{margin-top:var(--sp-4)}.summary-point-group-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps);margin-bottom:var(--sp-2)}.summary-point-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.summary-point{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--status-warning);border-radius:var(--radius-md);background:var(--status-warning-bg);display:flex}.summary-point.is-acknowledged{border-color:var(--border);background:var(--bg-sunken)}.summary-point-icon{width:var(--sp-4);height:var(--sp-4);margin-top:var(--sp-0-5);color:var(--status-warning);flex-shrink:0}.summary-point.is-acknowledged .summary-point-icon{color:var(--text-disabled)}.summary-point-body{flex:auto;min-width:0}.summary-point-title{font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--text-primary);margin-bottom:var(--sp-0-5)}.summary-point-text{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-relaxed);white-space:pre-line}.summary-point-ack{align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2-5);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex-shrink:0;display:inline-flex}.summary-point-ack:hover{background:var(--bg-sunken)}.summary-point-ack:focus-visible{box-shadow:var(--shadow-focus);outline:none}.summary-point-ack[aria-pressed=true]{border-color:var(--status-success);color:var(--status-success);background:var(--status-success-bg)}.summary-point-ack-icon{width:var(--sp-3);height:var(--sp-3)}.overlay.accept-overlay{padding:var(--sp-4)}.modal.accept-modal{max-width:var(--accept-modal-max-w);outline:none;flex-direction:column;max-height:92vh;display:flex;overflow:hidden}.accept-modal-header{gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;display:flex}.accept-modal-title-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.accept-modal-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--sp-0-5)}.accept-modal-body{min-height:0;padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.accept-modal-body>*{flex-shrink:0}.accept-modal-footer{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);background:var(--bg-sunken);flex-shrink:0;display:flex}.accept-modal-footer-actions{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.accept-steps{align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.accept-step{align-items:center;gap:var(--sp-1-5);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;display:flex}.accept-step+.accept-step:before{content:"";width:var(--sp-4);background:var(--border-strong);flex-shrink:0;height:1px}.accept-step-num{width:var(--sp-5);height:var(--sp-5);border-radius:var(--radius-full);border:1px solid var(--border-strong);font-weight:var(--weight-semibold);font-size:var(--text-xs);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.accept-step.is-current{color:var(--text-primary);font-weight:var(--weight-medium)}.accept-step.is-current .accept-step-num{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.accept-step.is-done .accept-step-num{background:var(--status-success-bg);border-color:var(--status-success);color:var(--status-success)}.accept-review{gap:var(--sp-2);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-sunken);flex-direction:column;display:flex}.accept-review-row{justify-content:space-between;align-items:baseline;gap:var(--sp-3);font-size:var(--text-md);color:var(--text-secondary);display:flex}.accept-review-row.is-total{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.accept-review-row.is-deposit{color:var(--text-primary);font-weight:var(--weight-medium)}.accept-review-row .accept-money{font-family:var(--font-mono)}.accept-review-row.is-deposit .accept-money{color:var(--accent)}.accept-note{font-size:var(--text-base);color:var(--text-secondary);line-height:var(--leading-normal);margin:0}.accept-terms-scroll{max-height:var(--accept-terms-max-h);border-radius:var(--radius-lg);overflow-y:auto}.accept-terms-scroll:focus-visible{box-shadow:var(--shadow-focus);outline:none}.accept-progress{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.accept-progress.is-complete{color:var(--status-success)}.accept-agree{font-size:var(--text-base);line-height:var(--leading-snug);align-items:flex-start}.accept-agree .checkbox{margin-top:var(--sp-0-5)}.accept-legal{font-size:var(--text-xs);color:var(--text-muted);line-height:var(--leading-normal);margin:0}@media (width<=640px){.overlay.accept-overlay{align-items:stretch;padding:0}.modal.accept-modal{border:0;border-radius:0;max-width:none;height:100%;max-height:none}.accept-modal-body{padding:var(--sp-4)}.accept-modal-header,.accept-modal-footer{padding-left:var(--sp-4);padding-right:var(--sp-4)}.accept-step-label{display:none}.accept-step.is-current .accept-step-label{display:inline}}.deposit-pay-amount{justify-content:space-between;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.deposit-pay-amount-value{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary)}.deposit-pay-meta{font-size:var(--text-sm);color:var(--text-muted)}.deposit-pay-question{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.deposit-choice-grid{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.deposit-choice{align-items:flex-start;gap:var(--sp-1);padding:var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-primary);text-align:left;cursor:pointer;font:inherit;transition:border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;text-decoration:none;display:flex}.deposit-choice:hover{border-color:var(--accent);background:var(--accent-subtle);text-decoration:none}.deposit-choice:focus-visible{box-shadow:var(--shadow-focus);border-color:var(--accent);outline:none}.deposit-choice[aria-pressed=true]{border-color:var(--accent);background:var(--accent-subtle)}.deposit-choice[disabled],.deposit-choice[aria-disabled=true]{cursor:not-allowed;color:var(--text-disabled);border-color:var(--border);background:var(--bg-sunken)}.deposit-choice-title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.deposit-choice-hint{font-size:var(--text-xs);color:var(--text-muted)}.deposit-choice[disabled] .deposit-choice-hint{color:var(--text-disabled)}.deposit-check-panel{gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-sunken);flex-direction:column;display:flex}.deposit-check-rows{gap:var(--sp-1-5) var(--sp-3);font-size:var(--text-sm);grid-template-columns:minmax(0,10rem) 1fr;margin:0;display:grid}.deposit-check-rows dt{color:var(--text-muted);margin:0}.deposit-check-rows dd{color:var(--text-primary);white-space:pre-line;margin:0}.deposit-check-rows dd.is-money{font-family:var(--font-mono);font-weight:var(--weight-semibold)}.deposit-check-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}@media (width<=640px){.deposit-choice-grid{grid-template-columns:1fr}.deposit-check-rows{gap:var(--sp-0-5);grid-template-columns:1fr}.deposit-check-rows dd{margin-bottom:var(--sp-1-5)}}.topbar{height:48px;padding:0 var(--sp-4);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs);z-index:var(--z-sticky);align-items:center;gap:var(--sp-3);display:flex;position:sticky;top:0}.topbar-brand{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-tight);flex-shrink:0;text-decoration:none}.sidebar-nav{padding:var(--sp-1-5);flex-direction:column;gap:1px;display:flex}.nav-item{align-items:center;gap:var(--sp-2);padding:var(--sp-1-5) var(--sp-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;text-decoration:none;display:flex}.nav-item:hover{background:var(--bg-sunken);color:var(--text-primary)}.nav-item.active{background:var(--accent-subtle);color:var(--accent);font-weight:var(--weight-semibold)}.nav-item.active:hover{background:var(--accent-subtle)}.nav-item-icon{opacity:.7;flex-shrink:0;width:16px;height:16px}.nav-item.active .nav-item-icon{opacity:1}.mobile-topbar{display:none}.nav-hamburger{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.nav-hamburger:hover{background:var(--bg-sunken);color:var(--text-primary)}.mobile-nav-backdrop{background:var(--scrim-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;z-index:var(--z-overlay-backdrop);animation:fade-in var(--dur-fast) var(--ease-out);border:none;padding:0;display:none;position:fixed;inset:0}.nav-section-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:var(--sp-3) var(--sp-2) var(--sp-1)}.tab-list{border-bottom:1px solid var(--border);padding:0 var(--sp-1);align-items:center;gap:1px;display:flex}.tab{align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;margin-bottom:-1px;text-decoration:none;display:inline-flex}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:var(--weight-semibold)}.breadcrumb{align-items:center;gap:var(--sp-1);font-size:var(--text-sm);color:var(--text-muted);display:flex}.breadcrumb-item{color:var(--text-secondary);text-decoration:none}.breadcrumb-item:hover{color:var(--text-primary)}.breadcrumb-item:last-child{color:var(--text-primary);font-weight:var(--weight-medium)}.breadcrumb-sep{color:var(--text-muted)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;box-shadow:var(--shadow-xs);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table thead{background:var(--bg-sunken);z-index:var(--z-raised);position:sticky;top:0}.table th{padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);text-align:left;letter-spacing:var(--tracking-caps);text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.table th.sortable{cursor:pointer}.table th.sortable:hover{color:var(--text-primary)}.table td{padding:var(--sp-2) var(--sp-3);color:var(--text-primary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:nth-child(2n){background:var(--table-stripe)}.table tbody tr:hover{background:var(--bg-elevated)}.table tbody tr.selected{background:var(--accent-subtle)}.table-compact th,.table-compact td{padding:var(--sp-1) var(--sp-2)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);letter-spacing:0}.quote-lines-product{min-width:var(--quote-product-col-min)}.table tr.tk-needs-review td{box-shadow:inset var(--sp-0-5) 0 0 0 var(--status-warning)}.table tr.tk-detail-row td{background:var(--bg-sunken);border-bottom:1px solid var(--border-subtle);padding-top:var(--sp-1-5);padding-bottom:var(--sp-1-5)}.tk-note,.tk-correction{gap:var(--sp-2);font-size:var(--text-sm);align-items:flex-start;display:flex}.tk-correction-body{gap:var(--sp-0-5);flex-direction:column;flex:1;display:flex}.tk-correction-actions{gap:var(--sp-1);flex-shrink:0;display:flex}.tk-note-tag,.tk-correction-tag{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:var(--sp-0-5) var(--sp-1-5);border-radius:var(--radius-sm);flex-shrink:0}.tk-note-tag{background:var(--bg-elevated);color:var(--text-muted)}.tk-correction-tag{background:var(--status-warning-bg);color:var(--status-warning)}.dropdown{display:inline-block;position:relative}.dropdown-menu{top:calc(100% + var(--sp-1));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:180px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);padding:var(--sp-1);animation:dropdown-in var(--dur-fast) var(--ease-out);display:none;position:absolute;left:0}.dropdown-menu.open{display:block}.dropdown-menu.right{left:auto;right:0}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.menu-item{align-items:center;gap:var(--sp-2);padding:var(--sp-1-5) var(--sp-2);font-size:var(--text-sm);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap;text-decoration:none;display:flex}.menu-item:hover{background:var(--bg-sunken)}.menu-item.danger{color:var(--status-error)}.menu-item.danger:hover{background:var(--status-error-bg)}.menu-item.active{background:var(--accent-subtle);color:var(--accent);font-weight:var(--weight-medium)}.menu-item-icon{opacity:.7;flex-shrink:0;width:14px;height:14px}.menu-divider{background:var(--border-subtle);height:1px;margin:var(--sp-1) 0}.menu-label{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted);letter-spacing:var(--tracking-caps);text-transform:uppercase}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-overlay);animation:fade-in var(--dur-normal) var(--ease-out);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:480px;max-height:90vh;animation:modal-in var(--dur-normal) var(--ease-spring);z-index:var(--z-modal);overflow-y:auto}.modal-sm{max-width:360px}.modal-lg{max-width:640px}.modal-xl{max-width:800px}@keyframes modal-in{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:var(--tracking-tight)}.modal-body{padding:var(--sp-6)}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--border-subtle);background:var(--bg-sunken);border-radius:0 0 var(--radius-xl) var(--radius-xl);display:flex}.alert{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-snug);border:1px solid;display:flex}.alert-success{background:var(--status-success-bg);color:var(--status-success);border-color:var(--status-success)}.alert-warning{background:var(--status-warning-bg);color:var(--status-warning);border-color:var(--status-warning)}.alert-error{background:var(--status-error-bg);color:var(--status-error);border-color:var(--status-error)}.alert-info{background:var(--status-info-bg);color:var(--status-info);border-color:var(--status-info)}.toast-container{bottom:calc(var(--sp-6) + var(--fab-size) + var(--sp-2));right:var(--sp-6);gap:var(--sp-2);z-index:var(--z-toast);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{pointer-events:all;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--text-primary);min-width:280px;max-width:380px;animation:toast-in var(--dur-normal) var(--ease-spring);display:flex}@keyframes toast-in{0%{opacity:0;transform:translate(100%)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.toast{border-left-width:3px}.toast-success{border-left-color:var(--status-success)}.toast-error{border-left-color:var(--status-error)}.toast-info{border-left-color:var(--status-info)}.toast-icon{flex-shrink:0;display:inline-flex}.toast-success .toast-icon{color:var(--status-success)}.toast-error .toast-icon{color:var(--status-error)}.toast-info .toast-icon{color:var(--status-info)}.toast-message{line-height:var(--leading-snug);flex:1}.toast-close{padding:var(--sp-1);margin:calc(-1 * var(--sp-1));border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.toast-close:hover{color:var(--text-primary);background:var(--bg-sunken)}@media (width<=768px){.toast-container{top:calc(var(--mobile-topbar-h) + var(--sp-2));bottom:auto;left:var(--sp-4);right:var(--sp-4)}.toast{min-width:0;max-width:none}}.fab{bottom:var(--sp-6);right:var(--sp-6);z-index:var(--z-sticky);align-items:center;gap:var(--sp-2);min-height:var(--fab-size);padding:0 var(--sp-5);border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-color);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);box-shadow:var(--shadow-lg);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:none;display:inline-flex;position:fixed}.fab:hover{background:var(--accent-hover)}.fab:active{transform:scale(.97)}.fab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fab-danger{background:var(--status-error)}.fab-danger:hover{background:var(--status-error);filter:brightness(1.08)}.fab-danger:focus-visible{outline-color:var(--status-error)}.fab-icon{flex-shrink:0;display:inline-flex}.fab-round{width:var(--fab-size);height:var(--fab-size);min-height:0;font-size:var(--text-3xl);font-weight:var(--weight-normal);line-height:var(--leading-tight);justify-content:center;padding:0}.fab-round[aria-expanded=true]{background:var(--accent-hover)}.fab-menu{right:var(--sp-6);bottom:calc(var(--sp-6) + var(--fab-size) + var(--sp-2));z-index:var(--z-tooltip);min-width:180px;padding:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:dropdown-in var(--dur-fast) var(--ease-out);position:fixed}.fab-menu .menu-item{width:100%;font:inherit;font-size:var(--text-sm);text-align:left;background:0 0;border:none}.fab-menu .menu-item:hover{background:var(--bg-sunken)}.fab-menu .menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sched-day-head{justify-content:space-between;align-items:center;gap:var(--sp-1);display:flex}.sched-day-add{opacity:0;transition:opacity var(--transition-fast)}.sched-day-head:hover .sched-day-add,.sched-day-add:focus-visible{opacity:1}.sched-addable{cursor:cell}.sched-passthrough{pointer-events:none}.sched-toolbar{justify-content:flex-end;align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;min-width:0;display:flex}.sched-nav{justify-content:center;align-items:center;gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.sched-range{min-width:var(--sched-range-min-w);text-align:center;font-size:var(--text-sm);color:var(--text-secondary)}@media (width<=768px){.page-header{flex-wrap:wrap}.sched-toolbar{justify-content:flex-start}.sched-range{min-width:0}}.sched-week{display:flex}.sched-day-col{border-right:1px solid var(--border);flex:1;min-width:0}.sched-day-body{padding:var(--sp-2);min-height:var(--sched-day-min-h)}@media (width<=768px){.sched-week{flex-direction:column}.sched-week .sched-day-col{border-right:0;border-bottom:1px solid var(--border)}.sched-week .sched-day-col:last-child{border-bottom:0}.sched-week .sched-day-body{min-height:0}.sched-day-add{opacity:1}}.sched-card{min-width:0}.sched-card-head{justify-content:space-between;align-items:center;gap:var(--sp-1) var(--sp-2);min-width:0;margin-bottom:var(--sp-1);flex-wrap:wrap;display:flex}.sched-card-name{align-items:center;gap:var(--sp-1);min-width:0;font-weight:var(--weight-medium);font-size:var(--text-sm);flex:auto;display:flex}.sched-card-label{overflow-wrap:anywhere;min-width:0}.sched-card-head .badge{white-space:normal;text-align:center;flex-shrink:0;max-width:100%;margin-left:auto}.sched-card-time{align-items:center;gap:var(--sp-1) var(--sp-2);font-size:var(--text-xs);color:var(--text-muted);overflow-wrap:anywhere;flex-wrap:wrap;display:flex}.sched-month-cell{min-height:var(--sched-month-min-h)}.sched-month-summary{display:none}.sched-month-count{align-items:center;gap:var(--sp-0-5);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--text-secondary);display:inline-flex}.sched-month-dot-appt{background:var(--accent)}.sched-month-dot-visit{background:var(--status-info)}.sched-month-dot-task{background:var(--task-accent)}@media (width<=768px){.sched-month-cell{min-height:var(--sched-month-min-h-narrow)}.sched-month-items{display:none}.sched-month-summary{gap:var(--sp-0-5) var(--sp-1-5);padding:var(--sp-0-5) 0;color:inherit;flex-wrap:wrap;display:flex}.sched-month-summary:hover .sched-month-count,.sched-month-summary:focus-visible .sched-month-count{color:var(--accent)}}.task-card{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-1-5) var(--sp-2);margin-bottom:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--task-accent);border-radius:var(--radius-sm);font-size:var(--text-xs);display:flex}.task-card-done{border-left-color:var(--text-muted)}.task-card-check{margin-top:var(--sp-0-5)}.task-card-body{gap:var(--sp-0-5);flex-direction:column;flex:1;min-width:0;display:flex}.task-card-open{font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;margin:0;padding:0}.task-card-open:hover .task-card-title{color:var(--task-accent)}.task-card-open:focus-visible{outline:2px solid var(--accent);outline-offset:var(--sp-0-5)}.task-card-top{align-items:center;gap:var(--sp-0-5) var(--sp-1-5);min-width:0;color:var(--text-muted);flex-wrap:wrap;display:flex}.task-card-time{font-variant-numeric:tabular-nums;min-width:0}.task-card-repeat{color:var(--task-accent);font-weight:var(--weight-semibold)}.task-card-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary);overflow-wrap:anywhere}.task-card-done .task-card-title{color:var(--text-muted);text-decoration:line-through}.task-card-done .task-card-meta{color:var(--text-muted)}.task-card-meta{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-card-assignees{gap:var(--sp-0-5);flex-wrap:wrap;min-width:0;margin-left:auto;display:inline-flex}.task-card-initials{min-width:var(--sp-5);height:var(--sp-5);padding:0 var(--sp-1);border-radius:var(--radius-full);background:var(--task-accent-bg);color:var(--task-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);justify-content:center;align-items:center;display:inline-flex}.crew-task-list{gap:var(--sp-1);flex-direction:column;display:flex}.task-card-notes{color:var(--text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;font-style:italic;overflow:hidden}.task-card-done .task-card-notes{color:var(--text-muted)}.crew-task-check{width:var(--sp-8);height:var(--sp-8);margin:calc(var(--sp-2) * -1) 0 0 calc(var(--sp-2) * -1);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.crew-task-check:has(:disabled){cursor:not-allowed}.task-form{gap:var(--sp-3);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.task-form .span-2{grid-column:span 2}.task-form .span-3{grid-column:span 3}.task-form .span-4{grid-column:span 4}.task-form .span-6{grid-column:span 6}.task-form .field{gap:var(--sp-0-5)}.task-fieldset{border:none;min-width:0;margin:0;padding:0}.task-fieldset legend{padding:0}.task-form .label{margin-bottom:0}.task-rule-summary{font-size:var(--text-xs);color:var(--text-secondary)}.task-rule-hint{display:block}.task-modal-meta{align-items:center;gap:var(--sp-2);display:inline-flex}.modal-footer .task-modal-delete{margin-right:auto}.task-details{gap:var(--sp-3);flex-direction:column;display:flex}.task-details-title{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-primary);overflow-wrap:anywhere;margin:0}.scope-dialog-body{font-size:var(--text-sm);color:var(--text-secondary)}.recurring-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;display:flex}.recurring-tabs{margin-bottom:var(--sp-3);padding:0}.recurring-table td{vertical-align:top}.recurring-title-cell{min-width:var(--recurring-title-min);max-width:var(--recurring-title-max)}.recurring-title{font-weight:var(--weight-medium);overflow-wrap:anywhere;display:block}.recurring-rule{white-space:nowrap;display:block}.recurring-sub{font-size:var(--text-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.recurring-assignees{max-width:var(--recurring-assignees-max);color:var(--text-secondary)}.recurring-actions{white-space:nowrap;text-align:right}.recurring-actions .btn+.btn{margin-left:var(--sp-0-5)}.recurring-danger{color:var(--status-error)}.recurring-danger:hover{color:var(--status-error);background:var(--status-error-bg)}.recurring-pagination{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.recurring-pagination-links{gap:var(--sp-2);display:flex}.series-end-body{gap:var(--sp-3);flex-direction:column;display:flex}.series-end-context{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.series-end-title{font-weight:var(--weight-medium);color:var(--text-primary)}.series-end-options{gap:var(--sp-2);flex-direction:column;display:flex}.series-end-date{padding-left:var(--sp-6);gap:var(--sp-0-5)}.scope-dialog-body+.modal-footer{flex-wrap:wrap}.task-inline-fields{align-items:center;gap:var(--sp-1-5);display:flex}.task-inline-fields .input,.task-inline-fields .select{flex:1;min-width:0}.task-inline-fields .input-n{flex:0 0 var(--sp-16)}@media (width<=520px){.task-form .span-2{grid-column:span 3}.task-form .span-2.stack-narrow,.task-form .span-3,.task-form .span-4{grid-column:span 6}}.chip-group{gap:var(--sp-1);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--sp-1);padding:var(--sp-0-5) var(--sp-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-secondary);font:inherit;font-size:var(--text-xs);line-height:var(--leading-snug);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.chip[aria-pressed=true]{background:var(--accent-subtle);border-color:var(--accent-subtle-border);color:var(--accent);font-weight:var(--weight-medium)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip:disabled{cursor:not-allowed;color:var(--text-disabled)}.chip-stale{color:var(--text-muted);border-style:dashed}.chip-stale[aria-pressed=true]{background:var(--bg-sunken);border-color:var(--border-strong);color:var(--text-secondary);font-weight:var(--weight-normal)}.chip-note{color:var(--text-muted);font-style:italic}.picker{position:relative}.picker-list{top:calc(100% + var(--sp-1));z-index:var(--z-dropdown);padding:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);max-height:240px;box-shadow:var(--shadow-lg);margin:0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto}.picker-option{align-items:baseline;gap:var(--sp-2);padding:var(--sp-1-5) var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;display:flex}.picker-option:hover{background:var(--bg-sunken)}.picker-option[aria-selected=true]{background:var(--accent-subtle);color:var(--accent)}.picker-option-secondary{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;margin-left:auto}.picker-status{padding:var(--sp-1-5) var(--sp-2);font-size:var(--text-xs);color:var(--text-muted)}.picker-status-loading{font-style:italic}.picker-selected{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-2);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);display:flex}.picker-selected-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:var(--weight-medium);color:var(--text-primary);overflow:hidden}.picker-selected-secondary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);font-size:var(--text-xs);overflow:hidden}.picker-clear{flex-shrink:0;margin-left:auto}.job-book-form{gap:var(--sp-3);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.job-book-form .span-1{grid-column:span 1}.job-book-form .span-2{grid-column:span 2}.job-book-form .span-3{grid-column:span 3}.job-book-form .span-6{grid-column:span 6}.job-book-form .field{gap:var(--sp-0-5)}.job-book-form .label{margin-bottom:0}.job-book-note{justify-content:space-between;align-items:center;gap:var(--sp-2) var(--sp-3);flex-wrap:wrap}.job-book-note .btn{flex-shrink:0}.job-book-preview{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.job-book-preview-head{justify-content:space-between;align-items:baseline;gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;display:flex}.job-book-preview-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary)}.job-book-table{width:max-content;min-width:100%}.job-book-table td{vertical-align:middle}.job-book-phase{min-width:var(--job-book-phase-min)}.job-book-phase-name{font-weight:var(--weight-medium);display:block}.job-book-date{width:var(--job-book-date-w)}.job-book-time{width:var(--job-book-time-w)}.job-book-crews{min-width:var(--job-book-crews-min)}.job-book-crews .chip-group{flex-wrap:nowrap}.job-book-table tr.job-book-row-error td{background:var(--status-error-bg)}.job-book-table tr.job-book-row-error td:first-child{box-shadow:inset 3px 0 0 var(--status-error)}.job-book-table tr.job-book-row-msg td{padding-top:0}.job-book-skipped{gap:var(--sp-1) var(--sp-3);flex-wrap:wrap;display:flex}.modal-footer .job-book-footer-note{margin-right:auto}@media (width<=520px){.job-book-form .span-1,.job-book-form .span-2{grid-column:span 3}.job-book-form .span-2.stack-narrow,.job-book-form .span-3{grid-column:span 6}}.app-shell{background:var(--bg);min-height:100dvh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex-shrink:0;width:220px;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-header{height:48px;padding:0 var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;display:flex}.sidebar-footer{padding:var(--sp-3);border-top:1px solid var(--border-subtle);margin-top:auto}.main-content{flex-direction:column;flex:1;min-width:0;display:flex}.page-header{padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:var(--sp-4);flex-shrink:0;display:flex}.page-body{padding:var(--sp-6);flex:1;overflow-y:auto}.toolbar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-6);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);display:flex}@media (width<=768px){.app-shell{flex-direction:column}.sidebar{z-index:var(--z-overlay);transition:left var(--transition);height:100%;position:fixed;left:-220px}.sidebar.open{box-shadow:var(--shadow-xl);left:0}.page-body{padding:var(--sp-4)}.mobile-topbar{align-items:center;gap:var(--sp-3);height:var(--mobile-topbar-h);padding:0 var(--sp-3);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs);z-index:var(--z-sticky);flex-shrink:0;display:flex;position:sticky;top:0}.mobile-nav-backdrop{display:block}}.avatar{background:var(--accent-subtle);color:var(--accent);font-weight:var(--weight-semibold);font-size:var(--text-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex;overflow:hidden}.avatar-xs{width:22px;height:22px;font-size:var(--text-xs)}.avatar-sm{width:28px;height:28px;font-size:var(--text-xs)}.avatar-lg{width:40px;height:40px;font-size:var(--text-md)}.avatar-xl{width:52px;height:52px;font-size:var(--text-lg)}.avatar img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.avatar-group{align-items:center;display:flex}.avatar-group .avatar{border:2px solid var(--surface);margin-left:-6px}.avatar-group .avatar:first-child{margin-left:0}.divider{background:var(--border);height:1px;margin:var(--sp-4) 0}.divider-subtle{background:var(--border-subtle)}.divider-strong{background:var(--border-strong)}.divider-label{align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0;color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;display:flex}.divider-label:before,.divider-label:after{content:"";background:var(--border);flex:1;height:1px}.skeleton{background:var(--border);border-radius:var(--radius-sm);animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton-text{height:12px}.skeleton-title{height:20px}.skeleton-circle{border-radius:50%}.skeleton-stack{gap:var(--sp-2);flex-direction:column;display:flex}.skeleton-card{gap:var(--sp-3);padding:var(--sp-4);flex-direction:column;display:flex}td>.skeleton-text{width:70%}@media (prefers-reduced-motion:reduce){.skeleton{opacity:.6;animation:none}}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.block{display:block}.hidden{display:none}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-wrap{flex-wrap:wrap}.min-w-0{min-width:0}.gap-1{gap:var(--sp-1)}.gap-1-5{gap:var(--sp-1-5)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-6{gap:var(--sp-6)}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.p-6{padding:var(--sp-6)}.px-3{padding-left:var(--sp-3);padding-right:var(--sp-3)}.px-4{padding-left:var(--sp-4);padding-right:var(--sp-4)}.px-6{padding-left:var(--sp-6);padding-right:var(--sp-6)}.py-2{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.py-4{padding-top:var(--sp-4);padding-bottom:var(--sp-4)}.mt-1{margin-top:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mb-1{margin-bottom:var(--sp-1)}.mb-2{margin-bottom:var(--sp-2)}.mb-4{margin-bottom:var(--sp-4)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mx-auto{margin-left:auto;margin-right:auto}.w-full{width:100%}.h-full{height:100%}.max-w-sm{max-width:480px}.max-w-md{max-width:640px}.max-w-lg{max-width:800px}.max-w-xl{max-width:1024px}.max-w-content{max-width:1280px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.text-center{text-align:center}.text-right{text-align:right}.tabular-nums{font-variant-numeric:tabular-nums}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.border{border:1px solid var(--border)}.bg-surface{background:var(--surface)}.bg-sunken{background:var(--bg-sunken)}.bg-elevated{background:var(--bg-elevated)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}.inset-0{inset:0}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--sp-2);left:var(--sp-2);z-index:var(--z-tooltip);padding:var(--sp-2) var(--sp-3);background:var(--surface);color:var(--text-link);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:transform var(--transition-fast);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.offline-indicator{align-items:center;gap:var(--sp-1-5);padding:var(--sp-0-5) var(--sp-2);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-full);white-space:nowrap;border:1px solid #0000;line-height:1.4;display:inline-flex}.offline-indicator-online{background:var(--status-success-bg);color:var(--status-success);border-color:var(--status-success)}.offline-indicator-offline{background:var(--status-warning-bg);color:var(--status-warning);border-color:var(--status-warning)}.offline-indicator-label{letter-spacing:.01em}.offline-indicator-pending{padding:0 var(--sp-1-5);min-width:var(--sp-4);height:var(--sp-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent);justify-content:center;align-items:center;display:inline-flex}.install-prompt{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--accent-subtle);border:1px solid var(--accent-subtle-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary);display:flex}.install-prompt-icon{color:var(--accent);flex-shrink:0;display:inline-flex}.install-prompt-body{flex:1;min-width:0}.install-prompt-title{font-weight:var(--weight-semibold);color:var(--text-primary)}.install-prompt-sub{color:var(--text-secondary);font-size:var(--text-xs)}.install-prompt-actions{align-items:center;gap:var(--sp-1-5);flex-shrink:0;display:flex}.field-page{max-width:720px;padding:var(--sp-3);gap:var(--sp-4);flex-direction:column;margin:0 auto;display:flex}.field-job-header{gap:var(--sp-2);flex-direction:column;display:flex}.field-job-headline{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.field-job-title-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);display:flex}.field-job-number{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono)}.field-job-customer{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin:0}.field-job-address{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.field-directions{align-items:center;gap:var(--sp-1);display:inline-flex}.field-job-address-text{font-size:var(--text-xs);color:var(--text-muted)}.field-clock-note{font-size:var(--text-xs);color:var(--status-warning);font-weight:var(--weight-medium)}.field-install{margin-bottom:var(--sp-1)}.field-sync-note{font-size:var(--text-xs);color:var(--text-secondary)}.field-failures{border:1px solid var(--status-error);background:var(--status-error-bg);color:var(--text-primary);border-radius:var(--radius-md);padding:var(--sp-3);font-size:var(--text-sm)}.field-failures ul{margin:var(--sp-2) 0;padding-left:var(--sp-4)}.field-section{gap:var(--sp-2);flex-direction:column;display:flex}.field-section-head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.field-section-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);margin:0}.field-empty-note{font-size:var(--text-sm);color:var(--text-muted);margin:0}.field-phase-list{gap:var(--sp-3);flex-direction:column;display:flex}.field-phase{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;display:flex}.field-phase-pending{border-color:var(--accent-subtle-border)}.field-phase-head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.field-phase-title{align-items:center;gap:var(--sp-2);font-weight:var(--weight-semibold);font-size:var(--text-sm);color:var(--text-primary);display:flex}.field-phase-seq{width:var(--sp-5);height:var(--sp-5);border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex}.field-phase-meta{gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.field-phase-weather{color:var(--status-info)}.field-phase-equipment{gap:var(--sp-1);flex-wrap:wrap;display:flex}.field-chip{font-size:var(--text-xs);padding:var(--sp-0-5) var(--sp-2);border-radius:var(--radius-full);background:var(--bg-sunken);color:var(--text-secondary);border:1px solid var(--border)}.field-steps{gap:var(--sp-1);flex-direction:column;display:flex}.field-step{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;display:flex}.field-step:hover{background:var(--bg-sunken)}.field-step input{width:var(--sp-4);height:var(--sp-4);flex-shrink:0}.field-step-title{flex:1;min-width:0}.field-step-done .field-step-title{color:var(--text-muted);text-decoration:line-through}.field-cue{font-size:var(--text-xs);padding:0 var(--sp-1-5);border-radius:var(--radius-full);font-weight:var(--weight-medium)}.field-cue-pending{background:var(--accent-subtle);color:var(--accent)}.field-cue-failed{background:var(--status-error-bg);color:var(--status-error)}.field-phase-actions{gap:var(--sp-2);display:flex}.field-photo-btn{align-items:center;gap:var(--sp-1);cursor:pointer;display:inline-flex}.field-photo-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid}.field-photo{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-sunken);aspect-ratio:1;flex-direction:column;display:flex;position:relative;overflow:hidden}.field-photo img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.field-photo-pending{border-color:var(--accent-subtle-border)}.field-photo-failed{border-color:var(--status-error)}.field-photo-placeholder{color:var(--text-muted);flex:1;justify-content:center;align-items:center;display:flex}.field-photo-label{font-size:var(--text-xs);padding:var(--sp-0-5) var(--sp-1);background:var(--surface-overlay);color:var(--text-secondary);text-align:center;position:absolute;bottom:0;left:0;right:0}.stat-strip{gap:var(--sp-6);padding:var(--sp-3) var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;display:flex}.stat{gap:var(--sp-0-5);flex-direction:column;min-width:0;display:flex}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.stat-value{font-size:var(--text-md);font-weight:var(--weight-semibold);font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap}.page-tabs{z-index:var(--z-sticky);gap:var(--sp-1);padding:var(--sp-1) var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;position:sticky;top:0}.page-tab{cursor:pointer;font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);padding:var(--sp-1-5) var(--sp-3);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000}.page-tab:hover{color:var(--text-primary);background:var(--bg-sunken)}.page-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.grid-cell{min-width:0}.grid-cell>.card{height:100%}.grid-cell--wide{grid-column:1/-1}@media (width<=1100px){.card-grid{grid-template-columns:1fr}.grid-cell--wide{grid-column:auto}}.collapsible-toggle{align-items:center;gap:var(--sp-2);cursor:pointer;color:inherit;font:inherit;background:0 0;border:none;margin:0;padding:0;display:inline-flex}.collapsible-chevron{color:var(--text-muted);font-size:var(--text-sm);transition:transform var(--transition-fast);line-height:1;display:inline-flex}.collapsible-chevron.open{transform:rotate(90deg)}.collapsible-meta{align-items:center;gap:var(--sp-3);display:flex}.qb-layout{grid-template-columns:minmax(0, 1fr) var(--qb-aside-width);gap:var(--sp-4);align-items:start;display:grid}.qb-main{gap:var(--sp-3);flex-direction:column;min-width:0;display:flex}.qb-aside{gap:var(--sp-3);flex-direction:column;display:flex;position:sticky;top:0}@media (width<=1100px){.qb-layout{grid-template-columns:1fr}.qb-aside{position:static}}.qb-step{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0;transition:opacity var(--transition);margin:0;padding:0}.qb-step:disabled,.qb-step.is-muted{opacity:var(--qb-muted-opacity)}.qb-step-header{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) 0;display:flex}.qb-step-num{width:var(--qb-step-num-size);height:var(--qb-step-num-size);border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.qb-step-q{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);letter-spacing:var(--tracking-normal)}.qb-step-hint{font-size:var(--text-xs);color:var(--text-muted);margin-left:auto}.qb-step-body{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-4);flex-direction:column;display:flex}.qb-group-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.qb-visits td.qb-num{text-align:right}.qb-visit-when{white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-sm)}.qb-matches{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.qb-match{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1-5) var(--sp-3);border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;display:flex}.qb-match:last-child{border-bottom:none}.qb-match:hover{background:var(--bg-elevated)}.qb-match-meta{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap;margin-left:auto}.qb-selected{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--accent-subtle-border);border-radius:var(--radius-md);background:var(--accent-subtle);display:flex}.qb-selected-name{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.qb-selected-meta{gap:var(--sp-1) var(--sp-3);margin-top:var(--sp-1);font-size:var(--text-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.qb-selected-meta .mono{font-family:var(--font-mono)}.qb-addr-list{grid-template-columns:repeat(auto-fill, minmax(var(--qb-addr-card-min), 1fr));gap:var(--sp-2);display:grid}.qb-addr{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);align-items:flex-start;display:flex}.qb-addr:hover{border-color:var(--border-strong)}.qb-addr.is-selected{border-color:var(--accent);background:var(--accent-subtle)}.qb-addr input{margin-top:var(--sp-0-5)}.qb-addr-type{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.qb-addr-text{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-snug)}.copy-address{justify-content:space-between;align-items:baseline;gap:var(--sp-2);width:100%;padding:var(--sp-0-5) var(--sp-1);margin-left:calc(-1 * var(--sp-1));text-align:left;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:0;display:flex}.copy-address:hover,.copy-address:focus-visible{background:var(--status-info-bg)}.copy-address-hint{font-size:var(--text-xs);color:var(--status-info);opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.copy-address:hover .copy-address-hint,.copy-address:focus-visible .copy-address-hint,.copy-address-hint.is-active{opacity:1}.copy-address-hint.is-failed{color:var(--status-error)}.qb-panel{gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-sunken);flex-direction:column;display:flex}.qb-grid-2{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.qb-grid-3{gap:var(--sp-2);grid-template-columns:2fr 1fr 1fr;display:grid}@media (width<=768px){.qb-grid-2,.qb-grid-3{grid-template-columns:1fr}}.qb-line{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.qb-line-header{align-items:center;gap:var(--sp-2);padding:var(--sp-1-5) var(--sp-3);background:var(--bg-sunken);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);display:flex}.qb-line-title{font-weight:var(--weight-medium);color:var(--text-primary)}.qb-line-sub{color:var(--text-muted)}.qb-line-body{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3);flex-direction:column;display:flex}.qb-line-fields{gap:var(--sp-2);grid-template-columns:2fr 1fr 1fr;display:grid}@media (width<=768px){.qb-line-fields{grid-template-columns:1fr}}.qb-area-row{grid-template-columns:minmax(0, 1fr) var(--qb-qty-input-w) auto auto;gap:var(--sp-2);align-items:start;display:grid}.qb-area-unit{font-size:var(--text-xs);color:var(--text-muted);padding-top:var(--sp-2);white-space:nowrap}.qb-num-input{text-align:right;font-family:var(--font-mono)}.qb-total-row{justify-content:flex-end;align-items:baseline;gap:var(--sp-2);padding-top:var(--sp-1);border-top:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.qb-total{font-family:var(--font-mono);font-weight:var(--weight-semibold);color:var(--text-primary)}.qb-total-sep{color:var(--border-strong)}.qb-est-label{color:var(--text-muted);white-space:nowrap}.qb-est{min-width:var(--qb-est-w);text-align:right;font-family:var(--font-mono);font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap;display:inline-block}.qb-est.is-pending{color:var(--text-muted);font-weight:var(--weight-normal);font-family:var(--font-sans)}.qb-est.is-empty{color:var(--text-muted)}.qb-est-min{margin-left:var(--sp-1);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--text-muted)}.qb-est-total{align-items:flex-end;gap:var(--sp-0-5);font-size:var(--text-sm);color:var(--text-secondary);flex-direction:column;display:flex}.qb-est-total-row{align-items:baseline;gap:var(--sp-2);display:flex}.qb-est-total .qb-est{font-size:var(--text-md)}.qb-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.qb-bom{gap:var(--sp-2);flex-direction:column;display:flex}.qb-bom-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.qb-bom-list{gap:var(--sp-0-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.qb-bom-item{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-snug)}.qb-bom-meta{color:var(--text-muted);font-size:var(--text-xs)}.qb-bom-group>summary{cursor:pointer;font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps);padding:var(--sp-1) 0;-webkit-user-select:none;user-select:none;list-style:none}.qb-bom-group>summary::-webkit-details-marker{display:none}.qb-bom-group>summary:before{content:"▸ "}.qb-bom-group[open]>summary:before{content:"▾ "}.qb-bom-empty{font-size:var(--text-sm);color:var(--text-muted)}.qb-submit{justify-content:flex-end;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.qb-errors{padding-left:var(--sp-4);margin:0}.inv-panel{grid-template-columns:repeat(auto-fill, minmax(var(--inv-tile-min), 1fr));gap:var(--inv-panel-gap);margin-bottom:var(--sp-4);display:grid}.inv-tile{justify-content:space-between;align-items:baseline;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);text-align:left;font:inherit;cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);text-decoration:none;display:flex}.inv-tile:hover{border-color:var(--border-strong)}.inv-tile:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.inv-tile-lens{border-color:var(--accent-subtle-border);background:var(--accent-subtle);color:var(--accent)}.inv-tile-lens:hover{border-color:var(--accent)}.inv-tile-name{font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);min-width:0}.inv-tile-count{font-size:var(--inv-tile-count-size);font-weight:var(--weight-semibold);color:var(--text-secondary);flex-shrink:0}.inv-tile-lens .inv-tile-count{color:var(--accent)}.inv-tile-sub{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--text-muted);display:block}.inv-scope{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.inv-scope-label{font-size:var(--text-sm);color:var(--text-secondary)}.inv-scope-label strong{color:var(--text-primary);font-weight:var(--weight-semibold)}.input:-webkit-autofill{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);-webkit-transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s;transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s}.input:-webkit-autofill:hover{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);-webkit-transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s;transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s}.input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);-webkit-transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s;transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s}.select:-webkit-autofill{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);-webkit-transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s;transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s}.textarea:-webkit-autofill{box-shadow:0 0 0 1000px var(--surface) inset;-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);-webkit-transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s;transition:background-color calc(var(--dur-slow) * 1000) ease-in-out 0s}.input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--surface) inset, var(--shadow-focus)}.theme-toggle{align-items:center;gap:var(--sp-0-5);padding:var(--sp-0-5);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-full);display:inline-flex}.theme-toggle-option{width:var(--theme-toggle-size);height:var(--theme-toggle-size);border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle-option:hover{color:var(--text-primary)}.theme-toggle-option.is-active{background:linear-gradient(180deg, var(--btn-surface-top), var(--btn-surface-bottom));border-color:var(--border);color:var(--accent);box-shadow:var(--shadow-btn)}.theme-toggle-option:focus-visible{box-shadow:var(--shadow-focus);outline:none}@media (prefers-reduced-motion:reduce){.theme-toggle-option{transition:none}}.portal-shell{background:var(--bg);min-height:100dvh}.portal-header{z-index:var(--z-sticky);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs);position:sticky;top:0}.portal-header-inner,.portal-nav-inner,.portal-main-inner{width:100%;max-width:var(--portal-max-w);padding-left:var(--sp-4);padding-right:var(--sp-4);margin:0 auto}.portal-header-inner{justify-content:space-between;align-items:center;gap:var(--sp-4);padding-top:var(--sp-3);padding-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.portal-brand{align-items:center;gap:var(--sp-2-5);min-width:0;display:inline-flex}.portal-brand-logo{max-height:var(--public-logo-max-h);max-width:var(--public-logo-max-w);-o-object-fit:contain;object-fit:contain}.portal-brand-name{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-tight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.portal-header-actions{align-items:center;gap:var(--sp-2);display:inline-flex}.portal-account{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2-5) var(--sp-1) var(--sp-1);border:1px solid var(--border);border-radius:var(--radius-full);background:linear-gradient(180deg, var(--btn-surface-top), var(--btn-surface-bottom));box-shadow:var(--shadow-btn);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);text-decoration:none;display:inline-flex}.portal-account:hover{background:linear-gradient(180deg, var(--btn-surface-top-h), var(--btn-surface-bot-h));border-color:var(--border-strong);box-shadow:var(--shadow-btn-hover);text-decoration:none}.portal-account:focus-visible{box-shadow:var(--shadow-focus);outline:none}.portal-account-avatar{width:var(--portal-avatar-size);height:var(--portal-avatar-size);border-radius:var(--radius-full);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.portal-account-label{line-height:var(--leading-tight);flex-direction:column;min-width:0;display:flex}.portal-account-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:var(--portal-account-name-max);overflow:hidden}.portal-account-hint{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--text-muted)}.portal-nav{background:var(--surface);border-bottom:1px solid var(--border)}.portal-nav-inner{gap:var(--sp-1);flex-wrap:wrap;display:flex}.portal-nav-link{padding:var(--sp-2-5) var(--sp-2-5);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);border-radius:var(--radius-md) var(--radius-md) 0 0;transition:background var(--transition-fast), color var(--transition-fast);text-decoration:none;position:relative}.portal-nav-link:after{content:"";left:var(--sp-2-5);right:var(--sp-2-5);border-radius:var(--radius-full) var(--radius-full) 0 0;height:2px;transition:background var(--transition-fast);background:0 0;position:absolute;bottom:0}.portal-nav-link:hover{background:var(--bg-sunken);color:var(--text-primary);text-decoration:none}.portal-nav-link.is-active{color:var(--text-primary);font-weight:var(--weight-semibold)}.portal-nav-link.is-active:after{background:var(--accent)}.portal-nav-link:focus-visible{box-shadow:var(--shadow-focus);outline:none}.portal-main-inner{padding-top:var(--sp-6);padding-bottom:var(--sp-10)}@media (prefers-reduced-motion:reduce){.portal-nav-link,.portal-nav-link:after,.portal-account{transition:none}}@media (width<=40rem){.portal-header-inner{gap:var(--sp-2)}.portal-account-name{max-width:var(--portal-account-name-max-narrow)}}
