:root{--canvas:#f6f8fb;--card:#ffffff;--ink:#172033;--muted:#64748b;--line:#e2e8f0;--nav:#0f172a;--nav-muted:#94a3b8;--nav-active:#1e3a8a;--primary:#2563eb;--primary-hover:#1d4ed8;--danger:#dc2626;--paid:#108548;--paid-bg:#dcfce7;--progress-bg:#dbeafe;--progress-fg:#1d4ed8;--stage-bg:#dcfce7;--stage-fg:#15803d;--radius:14px;--radius-sm:10px;--font-body:var(--font-sans-tc),"Noto Sans TC","PingFang TC","Helvetica Neue",sans-serif;--shadow:0 1px 2px rgba(15,23,42,0.04),0 8px 24px rgba(15,23,42,0.06);--control-height:40px;--control-radius:12px;--control-font-size:14px;--control-line-height:1.35;--control-pad-y:10px;--control-pad-x:16px;--nav-icon-size:18px;--list-type-size:var(--control-font-size);--list-type-weight:600;--list-type-line:var(--control-line-height);--list-chip-pad:var(--control-pad-y) 12px;--list-control-height:var(--control-height);--list-control-radius:var(--control-radius);--mobile-tab-clear:0px}html[lang=zh-CN]{--font-body:var(--font-sans-sc),"Noto Sans SC","PingFang SC","Helvetica Neue",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--ink);font-family:var(--font-body);background:var(--canvas)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.side-nav{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:20px 14px;background:#0f172a;color:#fff;min-height:100vh;position:-webkit-sticky;position:sticky;top:0;align-self:start}.brand-row{display:flex;align-items:center;gap:10px;padding:8px 10px 18px;flex-shrink:0}.wd-logo{width:36px;height:36px;border-radius:10px;background:#000;object-fit:contain;display:block;flex-shrink:0}.brand-word{font-size:1.05rem;font-weight:600;color:#fff;margin:0}.nav-links{flex-direction:column;gap:4px}.nav-link,.nav-links{display:flex;flex:0 0 auto;width:100%}.nav-link{align-items:center;gap:10px;padding:11px 12px;border-radius:12px;color:var(--nav-muted);font-weight:500;line-height:1.2;text-decoration:none;box-sizing:border-box;position:static;height:auto;min-height:0}.nav-link-icon{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0}.nav-link-icon,.nav-link-icon svg{width:var(--nav-icon-size);height:var(--nav-icon-size)}.nav-link-label{flex:0 1 auto}.nav-link:hover{background:rgba(37,99,235,.18);color:#fff}.nav-link.active{background:#2563eb;color:#fff}.nav-logout{margin-top:auto;padding:12px 4px 4px;display:flex;justify-content:flex-start}.logout-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--nav-muted);cursor:pointer}.logout-icon-btn:hover{background:rgba(37,99,235,.18);color:#fff}.logout-icon-btn.on-light{color:var(--ink)}.logout-icon-btn.on-light:hover{background:#e2e8f0;color:var(--ink)}.admin-header-bar{display:flex;justify-content:flex-end;align-items:center;gap:8px}.nav-footer{display:none}.main-column{min-width:0;display:flex;flex-direction:column;min-height:100vh}.main{padding:24px 28px 40px;flex:1 1}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--ink)}.page-header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}a.btn.client-header-add{display:none}.lang-toggle{display:inline-flex;align-items:center;gap:8px}.lang-toggle,.lang-toggle button{height:var(--control-height);font-size:var(--control-font-size);line-height:var(--control-line-height);font-weight:600;color:var(--muted)}.lang-toggle button{border:0;background:transparent;cursor:pointer;padding:0 4px}.lang-toggle button.active{color:var(--ink)}.lang-toggle .sep{color:#cbd5e1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.stack{display:grid;grid-gap:16px;gap:16px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.muted{color:var(--muted)}label{display:grid;grid-gap:6px;gap:6px;font-size:.92rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:#fff;color:var(--ink)}input:-moz-read-only:not([type=checkbox]):not([type=radio]),textarea:-moz-read-only{pointer-events:none;cursor:default;caret-color:transparent;-moz-user-select:none;user-select:none;-webkit-user-select:none;outline:none;box-shadow:none}input:disabled,input:read-only:not([type=checkbox]):not([type=radio]),select:disabled,textarea:disabled,textarea:read-only{pointer-events:none;cursor:default;caret-color:transparent;-moz-user-select:none;user-select:none;-webkit-user-select:none;outline:none;box-shadow:none}input:-moz-read-only:not([type=checkbox]):not([type=radio]):focus,input:-moz-read-only:not([type=checkbox]):not([type=radio]):focus-visible,textarea:-moz-read-only:focus,textarea:-moz-read-only:focus-visible{outline:none;box-shadow:none}input:disabled:focus,input:disabled:focus-visible,input:read-only:not([type=checkbox]):not([type=radio]):focus,input:read-only:not([type=checkbox]):not([type=radio]):focus-visible,textarea:disabled:focus,textarea:disabled:focus-visible,textarea:read-only:focus,textarea:read-only:focus-visible{outline:none;box-shadow:none}.btn{border:0;border-radius:var(--control-radius);padding:var(--control-pad-y) var(--control-pad-x);min-height:var(--control-height);background:var(--primary);color:#fff;cursor:pointer;font-size:var(--control-font-size);line-height:var(--control-line-height);font-weight:600;display:inline-flex;justify-content:center;align-items:center;text-align:center;gap:8px;box-sizing:border-box}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.secondary:hover{background:#f8fafc}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-link{border:0;background:transparent;color:var(--primary);cursor:pointer;font-weight:600;padding:0}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll .table{min-width:480px}.card-list,.mobile-only{display:none}.card-list-item{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-gap:6px;gap:6px;background:#fff}a.card-list-item{text-decoration:none;color:inherit}.card-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-list-head .card-list-title{min-width:0}.card-list-head .pill,.card-list-head .status-pill{flex-shrink:0}.card-list-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700}.list-toolbar{display:flex;flex-wrap:nowrap;gap:8px 12px;margin-bottom:12px}.list-page-size select,.list-search,.list-toolbar,.list-toolbar-add,.pill,.status-pill,button.client-stage-chip{align-items:center;font-size:var(--list-type-size);font-weight:var(--list-type-weight);line-height:var(--list-type-line)}.list-page-size select,.list-search,.list-toolbar-add,.pill,.status-pill,button.client-stage-chip{padding:var(--list-chip-pad);height:var(--list-control-height);min-height:var(--list-control-height);box-sizing:border-box;display:inline-flex}.list-page-size select,.list-search,.list-toolbar-add{border-radius:var(--list-control-radius)}.list-search{flex:1 1 auto;min-width:0;max-width:none;width:auto;font-weight:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none}.list-search::-webkit-search-cancel-button,.list-search::-webkit-search-decoration,.list-search::-webkit-search-results-button,.list-search::-webkit-search-results-decoration{display:none;appearance:none;-webkit-appearance:none}.list-toolbar-add{margin-left:auto;flex-shrink:0;font-weight:var(--list-type-weight);padding:var(--control-pad-y) var(--control-pad-x);border-radius:var(--control-radius);justify-content:center}.client-stage-chips{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;flex-shrink:0}button.client-stage-chip{border:0;cursor:pointer;white-space:nowrap;font-weight:var(--list-type-weight);display:inline-flex;align-items:center}button.client-stage-chip.pill:not(.progress):not(.stage){background:#fff;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}button.client-stage-chip.active{box-shadow:inset 0 0 0 2px currentColor}button.client-stage-chip[data-client-stage-filter=all].active{background:var(--primary);color:#fff;box-shadow:none}.list-toolbar .filter-tabs{margin-bottom:0;flex-wrap:nowrap;align-items:center}.list-toolbar .filter-tab{font-size:var(--list-type-size);font-weight:var(--list-type-weight);padding:var(--list-chip-pad);height:var(--list-control-height);min-height:var(--list-control-height);line-height:var(--list-type-line);box-sizing:border-box;display:inline-flex;align-items:center;white-space:nowrap}.list-sort-btn{background:none;border:0;padding:0;font:inherit;color:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:2px}.list-sort-ind{display:inline-block;width:1em;min-width:1em;flex-shrink:0;font-weight:700;text-align:left}.list-sort-row{display:none;flex-wrap:wrap;gap:8px 12px;margin:0 0 12px}.list-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;font-size:var(--list-type-size);font-weight:var(--list-type-weight);line-height:var(--list-type-line)}.list-pager.has-page-size{justify-content:space-between}.list-pager-nav{display:flex;align-items:center;gap:10px}.list-page-size{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;color:var(--muted);font-size:inherit;font-weight:inherit}.list-page-size select{width:auto;border:1px solid var(--line);border-radius:var(--list-control-radius);background:#fff;color:var(--ink);font-weight:inherit}.list-pager-nav .btn{font-size:var(--list-type-size);font-weight:var(--list-type-weight);line-height:var(--list-type-line);padding:var(--list-chip-pad);height:var(--list-control-height);min-height:var(--list-control-height);border-radius:var(--list-control-radius)}.table{width:100%;border-collapse:collapse}.client-list-table{table-layout:fixed}.client-list-table .client-col-name{width:18%}.client-list-table .client-col-phone{width:12%}.client-list-table .client-col-address{width:20%}.client-list-table .client-col-ends{width:12%}.client-list-table .client-col-stage,.client-list-table .client-col-updated{width:14%}.client-list-table .client-col-action{width:10%}.client-list-table td,.client-list-table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table td,.table th{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);font-size:.94rem}.table th{color:var(--muted);font-weight:600}.table tr:last-child td{border-bottom:0}.pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;font-weight:var(--list-type-weight);border:0}.pill.progress{background:var(--progress-bg);color:var(--progress-fg)}.pill.stage{background:#e2e8f0;color:#334155}.pill.paid{background:var(--paid-bg);color:var(--paid)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:grid;grid-gap:10px;gap:10px}.stat-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.stat-card-top span{color:var(--muted);font-size:.9rem;font-weight:500}.stat-icon{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;font-size:.95rem;font-weight:700}.stat-icon.income{background:#dbeafe;color:#2563eb}.stat-icon.expense{background:#fee2e2;color:#dc2626}.stat-icon.net{background:#dcfce7;color:#15803d}.stat-icon.outstanding{background:#ffedd5;color:#ea580c}.stat-value{font-size:1.35rem;font-weight:700;color:var(--ink)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-header h2{margin:0;font-size:1.05rem;font-weight:700}.filter-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.filter-tab{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:7px 14px;font-weight:600;font-size:.88rem;cursor:pointer}.filter-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.detail-header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.detail-meta{gap:14px;font-size:.92rem}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;margin-bottom:8px}.stepper{flex-wrap:nowrap}.step-wrap,.stepper{display:flex;gap:8px;align-items:stretch}.step-wrap{flex:1 1;min-width:0}.step{flex:1 1;min-width:120px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc;color:var(--muted)}.step.active{border-color:var(--primary);background:#eff6ff;color:var(--primary)}.step.active.completed,.step.completed{border-color:var(--stage-fg);background:var(--stage-bg);color:var(--stage-fg)}.step.done{border-color:#bbf7d0;color:var(--stage-fg)}button.step{cursor:pointer;text-align:left;font:inherit}button.step:disabled{cursor:default}.stage-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.stage-pick{border:1px solid var(--line);border-radius:12px;padding:18px 10px;min-height:88px;background:#f8fafc;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.stage-pick.active{border-color:var(--primary);background:#eff6ff;color:var(--primary)}.stage-pick.active.is-not-started{border-color:#94a3b8;background:#e2e8f0;color:#334155}.stage-pick.active.is-in-progress{border-color:var(--primary);background:#eff6ff;color:var(--primary)}.stage-pick.active.is-complete,.stage-pick.completed{border-color:var(--paid);background:var(--paid-bg);color:var(--paid)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:8px;gap:8px}.site-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#f1f5f9}.step .step-title{font-weight:700;font-size:.9rem}.step .step-date{font-size:.8rem;margin-top:4px}.step-chevron{align-self:center;color:#cbd5e1;font-weight:700}.shell-note{margin-top:14px;padding:12px;border-radius:10px;background:#f8fafc;color:var(--muted);font-size:.9rem}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.summary-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.summary-label{color:var(--muted);font-size:.88rem;font-weight:500}.summary-value{margin-top:6px;font-size:1.4rem;font-weight:700;color:var(--ink)}.form-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.form-actions-card .form-actions{margin-top:4px}.back-link{color:var(--muted);font-weight:600;font-size:.92rem}.back-link:hover{color:var(--primary)}.detail-heading{justify-content:space-between}.detail-heading,.detail-heading-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}body:has(.detail-page) .chrome-heading,body:has(.progress-log-page) .chrome-heading{display:none}.client-profile-compact{display:none;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.profile-compact-name{font-size:1rem;font-weight:700}.detail-title-link{margin:0;font-size:1.2rem;font-weight:700;color:var(--ink)}.detail-last-updated{margin:0;color:var(--muted);font-size:.88rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.detail-page,.detail-stack{display:flex;flex-direction:column;gap:14px}.detail-version-c{display:flex;flex-direction:column;gap:1.15rem;width:100%;align-items:stretch}.detail-version-c>*{width:100%;min-width:0}.vc-identity{display:flex;gap:14px;align-items:flex-start}.vc-avatar{width:52px;height:52px;border-radius:50%;background:#2563eb;color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.25rem;flex-shrink:0}.vc-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.profile-edit-field{display:grid;grid-gap:4px;gap:4px;min-width:min(100%,220px);color:var(--ink);font-size:.82rem;font-weight:600}.profile-edit-field input,.profile-edit-field textarea{font-weight:500;width:100%}.profile-edit-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.profile-edit-btn{min-height:44px}.vc-client-badge{border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.75rem;font-weight:700;padding:3px 8px}.vc-side-footer{gap:12px}.vc-last-updated{margin:0;color:var(--muted);font-size:.88rem}.vc-actions{width:100%;flex-direction:column;align-items:stretch;justify-content:stretch}.vc-actions .btn{width:100%;justify-content:center;min-height:44px}.vc-stepper{display:flex;flex-direction:column;gap:0;margin:0;padding:0}.vc-step-wrap{list-style:none;position:relative;padding-left:0}.vc-stepper .vc-step{display:flex;width:100%;gap:12px;align-items:flex-start;min-width:0;min-height:44px;background:transparent;border:0;border-radius:10px;padding:10px 8px;color:inherit;text-align:left;pointer-events:none}.vc-step-index{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;color:#64748b;font-size:.8rem;font-weight:700;flex-shrink:0}.vc-step.active .vc-step-index,.vc-step.is-past .vc-step-index{background:#2563eb;color:#fff}.vc-step.active.is-not-started .vc-step-index{background:#94a3b8;color:#fff}.vc-step.completed .vc-step-index{background:var(--paid);color:#fff}.vc-step-copy{display:grid;grid-gap:2px;gap:2px;min-width:0}.vc-step-status{font-size:.78rem;font-weight:700;color:var(--muted)}.vc-step-status.is-current{color:#1d4ed8}.vc-step-status.is-current.is-not-started{color:#334155}.vc-step-status.is-complete{color:var(--paid)}.progress-entry-card{margin-top:4px}.progress-entry-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;color:var(--ink);font-weight:600}.progress-entry-empty{margin:0}.progress-entry-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}@media (min-width:700px){.progress-entry-btns{grid-template-columns:repeat(3,minmax(0,1fr))}}.progress-entry-btn{min-height:48px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer}.progress-entry-btn:disabled{cursor:default;opacity:.7}.progress-entry-btn.is-selected{border:2px solid #2563eb;background:#eff6ff;color:#1d4ed8}.progress-entry-btn.is-selected.is-not-started{border-color:#94a3b8;background:#e2e8f0;color:#334155}.progress-entry-btn.is-selected.is-in-progress{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.progress-entry-btn.is-selected.is-complete{border-color:var(--paid);background:var(--paid-bg);color:var(--paid)}.vc-phone-line{display:inline-flex;align-items:center;gap:8px}.wa-icon-btn{width:32px;height:32px;min-width:32px;min-height:32px;border:0;border-radius:50%;background:transparent;display:grid;place-items:center;cursor:pointer;padding:0}.wa-official{display:block}.quote-head-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;overflow:visible}.invoice-mark-paid-btn,.quote-confirm-btn,.quote-download-btn,.quote-edit-btn,.quote-edit-cancel-btn{min-height:44px;height:44px;min-width:44px;align-self:flex-end}.quote-pdf-notice{margin:0}.invoice-download-btn[aria-busy=true],.quote-download-btn[aria-busy=true]{opacity:.75}.quote-number-badge{font-size:.8rem;letter-spacing:.02em}.quote-confirmed-badge,.quote-number-badge{margin-left:8px;color:#334155;font-weight:700;vertical-align:middle}.quote-confirmed-badge{border-radius:999px;background:#e2e8f0;font-size:.75rem;padding:3px 8px}.quote-totals{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.quote-date-fields{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;overflow:visible}.quote-date-field{position:relative;display:grid;grid-gap:4px;gap:4px;min-width:min(100%,12.5rem);font-size:.78rem;color:var(--muted);font-weight:600}.quote-date-field.is-open{z-index:90}.quote-date-trigger{display:inline-flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;height:44px;min-width:12.5rem;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:1rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:left;cursor:pointer}.quote-date-popover{display:block}.quote-date-locked{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:0 2px;color:var(--ink);font-size:.95rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:transparent;border:0}.quote-date-field.is-locked{min-width:0;pointer-events:none;cursor:default}.quote-date-trigger:disabled{cursor:default;opacity:.65;pointer-events:none}.quote-date-calendar{position:absolute;top:calc(100% + 6px);left:0;z-index:80;width:min(360px,100vw - 32px);min-width:320px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.quote-date-calendar.is-open-up,.quote-date-field.is-open-up .quote-date-calendar{top:auto;bottom:calc(100% + 6px)}.quote-date-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.quote-date-nav strong{font-size:.95rem;color:var(--ink)}.quote-date-day,.quote-date-nav-btn{min-width:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--ink);cursor:pointer}.quote-date-nav-btn{display:grid;place-items:center;font-size:1.35rem}.quote-date-grid,.quote-date-weekdays{display:grid;grid-template-columns:repeat(7,minmax(44px,1fr));grid-gap:2px;gap:2px}.quote-date-blank,.quote-date-weekdays span{display:grid;place-items:center;min-height:32px;font-size:.75rem;color:var(--muted)}.quote-date-day{display:grid;place-items:center;font-size:.95rem}.quote-date-day:hover:not(:disabled){background:#eff6ff}.quote-date-day.is-selected{background:var(--primary);color:#fff;font-weight:700}.quote-date-day:disabled{color:#cbd5e1;cursor:default}@media (min-width:861px){.quote-date-popover{display:block}}@media (max-width:860px){.quote-date-field{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 8px)}.quote-date-trigger{min-width:0;min-height:48px;height:48px;font-size:16px}.quote-date-popover{display:block}.quote-date-locked{min-height:48px;font-size:16px}}.quote-table-wrap{overflow-x:auto;overflow-y:visible;max-width:100%}.quote-table-wrap:has(.quote-menu){overflow:visible}.invoice-table-wrap{overflow:visible;max-height:none}.invoice-table{table-layout:fixed;width:100%}.invoice-table .quote-col-no{width:44px}.invoice-table .invoice-col-number{width:22%;min-width:11rem}.invoice-table .invoice-col-collection,.invoice-table .invoice-col-date{width:12%;overflow:visible;position:relative}.invoice-table td:has(.quote-date-field.is-open){z-index:90;overflow:visible;position:relative}.invoice-table .invoice-col-percent{width:8%}.invoice-table .quote-col-amount{width:12%}.invoice-table .invoice-col-status{width:10%;min-width:0}.invoice-table .quote-col-action{width:200px;min-width:200px;text-align:right}.invoice-table .quote-col-action .quote-add-btn,.invoice-table .quote-col-action .quote-menu-btn{margin-left:auto}.invoice-table .quote-col-action .invoice-row-tools,.invoice-table .quote-col-action .quote-line-edit-actions{width:100%;justify-content:flex-end}.quote-table{table-layout:fixed;width:100%}.quote-table:not(.invoice-table)[data-quote-custom-count="1"]{min-width:36rem}.quote-table:not(.invoice-table)[data-quote-custom-count="2"]{min-width:42rem}.quote-table:not(.invoice-table)[data-quote-custom-count="3"]{min-width:48rem}.quote-table td,.quote-table th{vertical-align:middle;padding:4px 6px}.quote-table .quote-col-no{width:2.75rem;text-align:center}.quote-table .quote-col-custom{width:calc(6em + 1.5rem);min-width:calc(6em + 1.5rem);max-width:calc(6em + 1.5rem);text-align:left;padding-left:4px;padding-right:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-table .quote-col-item{text-align:left}.quote-table:not(.invoice-table) .quote-col-item{min-width:7.5rem}.quote-table .quote-col-amount,.quote-table .quote-col-qty,.quote-table .quote-col-unit{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quote-table .quote-col-qty{width:3.75rem;min-width:3.75rem;padding-left:4px;padding-right:4px}.quote-table .quote-col-amount,.quote-table .quote-col-unit{width:5.75rem}.quote-table .quote-col-qty input,.quote-table .quote-col-unit input{text-align:right}.quote-table input,.quote-table select{width:100%;min-width:0;height:44px;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 8px;background:#fff;box-sizing:border-box;font:inherit}.quote-table .quote-col-custom select,.quote-table .quote-col-qty input{padding-left:4px;padding-right:4px}.quote-add-row td,.quote-line-row td{height:52px}.quote-col-locked{color:var(--muted);font-weight:700;white-space:nowrap}.quote-lock{vertical-align:-1px;margin-right:4px}.quote-col-action{width:200px;min-width:200px;white-space:nowrap;overflow:visible}.quote-table:not(.invoice-table) .quote-col-action{width:4.75rem;min-width:4.75rem;text-align:center}.quote-line-edit-actions{display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:6px;align-items:center}.quote-line-edit-actions,.quote-line-edit-actions .btn{height:var(--control-height);min-height:var(--control-height)}.quote-line-edit-actions .btn{font-size:var(--control-font-size);line-height:var(--control-line-height);padding:var(--control-pad-y) 10px;white-space:nowrap;flex-shrink:0}.quote-line-row.is-editing .quote-col-action{height:calc(var(--control-height) + 8px);min-height:calc(var(--control-height) + 8px)}.quote-amount-auto{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.quote-add-btn,.quote-menu-btn{width:var(--control-height);height:var(--control-height);min-height:var(--control-height);border:0;border-radius:var(--control-radius);display:grid;place-items:center;cursor:pointer}.invoice-split-edit-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.settings-account-actions,.settings-company-actions,.settings-templates-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}.settings-account-actions .btn,.settings-company-actions .btn,.settings-templates-actions .btn{height:var(--control-height);min-height:var(--control-height);font-size:var(--control-font-size);line-height:var(--control-line-height)}.invoice-split-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.quote-add-btn{background:#2563eb;color:#fff;font-size:1.2rem;font-weight:700}.quote-line-delete-btn{height:var(--control-height);min-height:var(--control-height);padding:0 8px;border:0;border-radius:var(--control-radius);background:transparent;color:var(--danger);font:inherit;font-weight:700;font-size:var(--control-font-size);line-height:var(--control-line-height);cursor:pointer;white-space:nowrap}.quote-line-delete-btn:hover{background:#fef2f2}.quote-line-delete-btn:disabled{opacity:.5;cursor:not-allowed}.quote-menu-btn{background:transparent;color:var(--ink);font-size:1.2rem;font-weight:700;letter-spacing:.05em}.quote-row-menu{position:relative}.quote-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:8;min-width:120px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}.quote-menu button{display:block;width:100%;min-height:44px;padding:0 12px;border:0;background:transparent;text-align:left;font:inherit;font-weight:600;color:var(--ink);cursor:pointer}.quote-menu button:hover{background:#f8fafc}.quote-menu button.is-danger{color:var(--danger)}.invoice-split{gap:12px}.invoice-split-bar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:#e2e8f0}.invoice-split-seg{min-width:4px}.invoice-split-card.tone-0 header,.invoice-split-seg.tone-0{background:#2563eb}.invoice-split-card.tone-1 header,.invoice-split-seg.tone-1{background:#ea580c}.invoice-split-card.tone-2 header,.invoice-split-seg.tone-2{background:#7c3aed}.invoice-split-card.tone-3 header,.invoice-split-seg.tone-3{background:#0f766e}.invoice-split-inputs{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.invoice-split-pct{display:grid;grid-gap:4px;gap:4px;font-size:.78rem;position:relative}.invoice-split-pct input{width:5.5rem;padding-right:22px}.invoice-split-pct span{position:absolute;right:8px;bottom:12px;color:var(--muted)}.invoice-split-add,.invoice-split-remove{min-height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:0 12px;font-weight:700;color:var(--primary);cursor:pointer}.invoice-split-cards{display:none}.invoice-split-card{border:1px solid var(--line);border-radius:12px;overflow:visible;background:#fff;display:flex;flex-direction:column;gap:10px;padding-bottom:12px}.invoice-split-card header{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#fff;padding:10px 12px;border-radius:12px 12px 0 0}.invoice-split-card dl{margin:0;padding:0 12px;display:grid;grid-gap:8px;gap:8px}.invoice-split-card dt{color:var(--muted);font-size:.75rem}.invoice-split-card dd{margin:2px 0 0;font-weight:700}.invoice-split-card .invoice-split-remove,.invoice-split-card .quote-deposit-btn,.invoice-split-card .quote-deposit-marked{margin:0 12px}.invoice-status-switch{display:none}.invoice-card-links{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:0 12px}.invoice-mark-paid-btn{margin:8px 0 0;height:44px;min-height:44px;font-weight:700}.invoice-mark-paid-confirm{display:grid;grid-gap:8px;gap:8px;margin-top:8px}.invoice-mark-paid-confirm p{margin:0;font-size:.88rem}.invoice-mark-paid-confirm .btn{min-height:44px;height:44px}.invoice-split-editor{border:1px solid var(--line);border-radius:12px;padding:10px 12px 12px;background:#fff;display:grid;grid-gap:10px;gap:10px}.invoice-adjust-done-btn,.invoice-adjust-split-btn{min-height:44px;width:-moz-fit-content;width:fit-content;font-weight:700}.invoice-split-editor .invoice-split-bar,.invoice-split-editor .invoice-split-inputs{margin-top:10px}.invoice-parts-picker{display:grid;grid-gap:10px;gap:10px}.invoice-parts-picker.is-compact{margin-top:10px}.invoice-parts-choices{display:flex;flex-wrap:wrap;gap:8px}.invoice-parts-btn{min-height:44px;height:44px;min-width:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer}.invoice-parts-btn.is-active{border-color:var(--primary);background:#eff6ff;color:var(--primary)}.invoice-percent-drafts{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}.invoice-split-pct{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--muted)}.invoice-split-pct input{width:4.5rem;min-height:44px;height:44px;padding:0 8px;border:1px solid var(--line);border-radius:8px;font-weight:700;color:var(--ink)}.invoice-amount-preview{display:grid;grid-gap:4px;gap:4px;font-size:.88rem;font-weight:600}.invoice-col-collection,.invoice-col-date,.invoice-col-number,.invoice-col-percent,.invoice-col-status{vertical-align:middle}.invoice-col-number{width:11.5rem;min-width:11rem;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.25}.invoice-col-collection,.invoice-col-date{width:7.5rem;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.invoice-col-percent{width:5.5rem;text-align:right}.invoice-col-status{width:10%;min-width:0;white-space:nowrap}.invoice-status-cell{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px}.invoice-table .invoice-date-field .quote-date-field{min-width:0}.invoice-table .invoice-date-field .quote-date-field>span:first-child{display:none}.invoice-table .invoice-date-field .quote-date-trigger{min-width:0;width:100%}.invoice-table .invoice-date-field .quote-date-calendar{z-index:120}.invoice-percent-input{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:4px}.invoice-percent-input input{width:4.5rem;text-align:right}.invoice-collection-value,.invoice-created-date,.invoice-paid-at{display:block;font-size:.88rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.invoice-row-tools{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:8px}.invoice-formula-copy{display:none}.invoice-quote-head{display:none;align-items:baseline;justify-content:space-between;gap:12px}.invoice-client-name{font-size:1rem;font-weight:700;color:var(--ink)}.invoice-quote-total{margin:0;font-size:.88rem;font-weight:600;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.invoice-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.invoice-period-cards{display:none}.invoice-period-card{position:relative;z-index:0;display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:visible}.invoice-period-card:has(.quote-menu){z-index:8}.invoice-period-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.invoice-period-id{font-size:.95rem;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.invoice-period-dates{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px 12px;gap:8px 12px}.invoice-period-date-label{display:block;font-size:.75rem;font-weight:600;color:var(--muted)}.invoice-period-date-value{display:block;margin-top:2px;font-size:.92rem;font-weight:600;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.invoice-period-amount-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.invoice-period-pct{font-size:.92rem;font-weight:600;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.invoice-period-hkd{font-size:1rem;font-weight:700;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.invoice-period-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.invoice-period-card .quote-menu,.quote-menu.is-open-up{top:auto;bottom:calc(100% + 4px);z-index:20;min-width:132px;border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.16)}.invoice-period-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.invoice-percent-sum{margin:0;font-size:.92rem;font-weight:600;color:var(--muted)}.invoice-period-add{display:none;width:44px;height:44px;min-width:44px;min-height:44px;border:0;border-radius:12px;background:#dbeafe;color:#1d4ed8;font-size:1.45rem;font-weight:700;line-height:1;place-items:center;cursor:pointer}.invoice-table .invoice-mark-paid-btn,.invoice-table .invoice-revert-unpaid-btn{width:auto;min-width:5.5rem}.invoice-revert-unpaid-btn{margin:8px 0 0;min-height:44px;height:44px}.invoice-split-pct .invoice-split-remove{margin-top:6px}.next-unpaid-hint{display:none}.invoice-status-toggle{min-height:44px}.invoice-date-field .quote-date-field,.invoice-split-card .quote-date-field{min-width:0}.quote-date-clear{display:block;width:100%;min-height:44px;margin-top:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--ink);font-weight:600;cursor:pointer}.invoice-split-check{width:22px;height:22px;border-radius:50%;border:2px solid #cbd5e1;margin:4px auto 0}.invoice-split-check.is-paid{border-color:var(--paid);background:var(--paid)}.invoice-split-note{margin:0;font-size:.82rem}.profile-card{display:flex;justify-content:space-between;align-items:flex-start;gap:16px 20px;flex-wrap:wrap}.profile-card.vc-profile{position:relative;padding-bottom:2.4rem}.vc-profile .detail-last-updated{position:absolute;right:18px;bottom:12px;margin:0;text-align:right}.profile-name{margin:0;font-size:1.7rem;font-weight:700;color:var(--ink)}.detail-meta{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:8px;color:var(--muted);font-size:.95rem}.detail-meta .profile-edit-notes,.detail-meta .profile-notes{flex:1 1 100%;align-items:flex-start;white-space:pre-wrap}.profile-edit-notes{min-width:min(100%,320px)}.detail-meta span{display:inline-flex;align-items:center;gap:6px}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.profile-banner{flex-basis:100%;margin:0}.quote-card-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.quote-card-head h2{margin:0;font-size:1.05rem;font-weight:700}.quote-pay-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.quote-pay-amount{color:var(--muted);font-size:.88rem;font-weight:600}.quote-deposit-btn{min-height:44px;padding:0 16px;border:0;border-radius:10px;background:var(--primary);color:#fff;font-weight:700}.quote-deposit-btn:disabled{opacity:.7}.quote-deposit-marked{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;color:#334155;font-size:14px;font-weight:700}.quote-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:.88rem}.quote-line-row.is-editable{cursor:pointer}.quote-line-row.is-editable:hover{background:#f8fafc}.quote-totals{margin-top:12px;text-align:right;font-weight:600}.quote-totals .total-line{font-size:1.15rem;font-weight:700;margin-top:4px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.deposit-line{color:var(--primary);margin-top:4px}.deposit-hint{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:.88rem;font-weight:600}.progress-split{display:grid;grid-template-columns:minmax(140px,220px) 1fr;grid-gap:16px;gap:16px;align-items:start;margin-top:8px}.photo-placeholder,.progress-photo-slot{min-height:120px;border-radius:12px;border:1px solid var(--line);background:#f1f5f9;overflow:hidden}.progress-photo-slot .site-photo{width:100%;height:140px;aspect-ratio:auto}.invoice-footer{justify-content:space-between;gap:12px;flex-wrap:wrap}.invoice-footer,.pager{display:flex;align-items:center}.pager{gap:6px}.pager-btn{width:32px;border:1px solid var(--line);background:#fff;color:var(--muted)}.pager-btn,.pager-page{height:32px;border-radius:8px}.pager-page{min-width:32px;display:grid;place-items:center;background:#2563eb;color:#fff;font-weight:700}.status-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;font-weight:700;border:0}.status-pill.paid{background:var(--paid-bg);color:var(--paid)}.status-pill.unpaid{background:#e2e8f0;color:#334155}.status-pill.expired{background:#fef3c7;color:#b45309}.status-pill.danger{background:#fee2e2;color:var(--danger)}.modal-backdrop{position:fixed;inset:0;z-index:40;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:20px}.modal-card{width:min(440px,100%);max-height:calc(100vh - 40px);overflow:auto}.modal-card h3{margin:0;font-size:1.1rem}.quote-confirm-backdrop,.quote-sheet-backdrop{position:fixed;inset:0;z-index:60;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px}.quote-confirm-backdrop{z-index:70}.quote-sheet{width:min(440px,100%);max-height:min(640px,calc(100dvh - 48px));background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0;overflow:hidden}.quote-sheet-title{margin:0;padding:16px 16px 8px;font-size:1.1rem;flex-shrink:0}.quote-sheet-form{display:flex;flex-direction:column;flex:1 1;min-height:0}.quote-sheet-fields{display:grid;grid-gap:12px;gap:12px;padding:8px 16px 12px;overflow-x:hidden;overflow-y:auto;flex:1 1;min-height:0;overscroll-behavior:contain}.quote-sheet-field{display:grid;grid-gap:6px;gap:6px;min-width:0}.quote-sheet-field input{min-height:44px;width:100%;max-width:100%}.quote-sheet-footer{display:flex;gap:10px;flex-shrink:0;position:-webkit-sticky;position:sticky;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--line);background:var(--card)}.quote-sheet-footer .btn{flex:1 1;min-height:44px;justify-content:center;min-width:0}.quote-confirm{width:min(360px,100%)}.quote-confirm h3{margin:0;font-size:1.05rem}.confirm-ask-backdrop{position:fixed;inset:0;z-index:70;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px}.confirm-ask-card{width:min(360px,100%);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.confirm-ask-card h2{margin:0 0 16px;font-size:1.1rem;font-weight:700;text-align:center}.confirm-ask-card .modal-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.confirm-ask-card .modal-actions .btn{width:100%;min-height:44px;justify-content:center}.confirm-ask-card [data-confirm-no="1"],.confirm-ask-card [data-confirm-no="1"]:hover:not(:disabled){background:#e5e7eb;color:var(--ink);border:1px solid #e5e7eb}@media (max-width:767px){.confirm-ask-backdrop{padding:0;align-items:flex-end;justify-content:stretch}.confirm-ask-card{width:100%;max-width:100%;border-radius:16px 16px 0 0;padding:22px 16px calc(16px + env(safe-area-inset-bottom, 0px))}.confirm-ask-card h2{font-size:1.15rem;margin-bottom:18px}.confirm-ask-card .modal-actions .btn{min-height:48px;border-radius:999px}}.stage-list{display:flex;flex-direction:column;gap:8px}.stage-list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:12px;font:inherit;cursor:pointer;text-align:left;color:var(--ink)}.stage-list-item.active{border-color:#2563eb;background:#eff6ff}.stage-list-item.completed{border-color:var(--stage-fg);background:var(--stage-bg)}.stage-list-title{font-weight:700}.stage-tag{font-size:.78rem;font-weight:600;color:var(--muted);background:#e2e8f0;border-radius:999px;padding:3px 8px}.stage-tag.current{color:#1d4ed8;background:#dbeafe}.btn-block{width:100%;justify-content:center;padding:14px 16px}.btn-paid{display:inline-flex;align-items:center;padding:6px 12px;border-radius:10px;background:var(--paid);color:#fff;font-size:.85rem;font-weight:700}.progress-job-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.progress-job-name{margin:0;font-size:1.25rem}.section-label{font-weight:700;margin-bottom:8px;color:var(--ink)}@media (max-width:1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-picks{grid-template-columns:1fr 1fr}.stepper{flex-wrap:wrap}}@media (max-width:720px){.profile-actions{width:100%;justify-content:stretch}.progress-split{grid-template-columns:1fr}.profile-actions .btn{flex:1 1;justify-content:center}.stat-grid,.summary-grid{grid-template-columns:1fr}}.error,.required-asterisk{color:var(--danger)}.success{color:var(--primary)}.line-item-row{display:grid;grid-template-columns:1fr 140px auto;grid-gap:10px;gap:10px;align-items:flex-end}.bottom-tab{display:none}.app-footer{text-align:center;color:#94a3b8;font-size:.8rem;padding:8px 16px 20px}@media (max-width:980px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1279px){.client-profile-compact{display:none}.detail-version-c .profile-card{display:flex}}@media (max-width:860px){:root{--mobile-tab-clear:calc(56px + env(safe-area-inset-bottom, 0px))}.app-shell{grid-template-columns:1fr}.side-nav{display:none}.main{padding:18px 16px calc(16px + var(--mobile-tab-clear))}.detail-page{padding-bottom:calc(28px + var(--mobile-tab-clear))}.next-unpaid-hint{display:flex;align-items:center;justify-content:center;position:fixed;left:12px;right:12px;bottom:var(--mobile-tab-clear);z-index:30;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#334155;font-weight:600;font-size:.88rem;box-shadow:0 4px 18px rgba(15,23,42,.12);cursor:pointer}.bottom-tab{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;overflow:visible;width:100%;max-width:100%;box-sizing:border-box;position:fixed;left:0;right:0;bottom:0;background:var(--nav);border-top:1px solid #1e293b;z-index:40;padding:0 4px env(safe-area-inset-bottom,0)}.bottom-tab>.bottom-tab-logout,.bottom-tab>a{flex:1 1;min-width:0;width:auto;max-width:none;margin:0;padding:4px 2px;overflow:visible;box-sizing:border-box}.bottom-tab-logout{display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;margin:0}.bottom-tab a,.bottom-tab-logout-btn{min-height:44px;height:44px;text-align:center;color:var(--nav-muted);font-size:.75rem;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;overflow:visible;white-space:nowrap;border:0;background:transparent;cursor:pointer;font-family:inherit}.bottom-tab-logout-btn{flex:1 1 auto;align-self:stretch;width:auto;min-width:0;padding:0}.bottom-tab .nav-link-icon{margin-inline:auto;flex-shrink:0}.bottom-tab-label{display:block;width:100%;min-width:0;text-align:center;overflow:visible;white-space:nowrap;letter-spacing:-.04em;font-size:inherit}.bottom-tab a.active{color:#fff}.bottom-tab[data-mobile-nav-tabs="5"] .bottom-tab-logout-btn,.bottom-tab[data-mobile-nav-tabs="5"] a{font-size:.68rem;padding-left:0;padding-right:0}.line-item-row{grid-template-columns:1fr}.invoice-table-wrap,.quote-table-wrap{overflow:visible;overflow-x:auto;max-width:100%;min-width:0;-webkit-overflow-scrolling:touch}.invoice-table-wrap:has(.quote-date-field.is-open),.invoice-table-wrap:has(.quote-menu),.quote-table-wrap:has(.quote-date-field.is-open),.quote-table-wrap:has(.quote-menu){overflow:visible}.quote-table:not(.invoice-table){min-width:100%}.quote-table:not(.invoice-table):has(.quote-col-action){min-width:28rem}.quote-table:not(.invoice-table)[data-quote-custom-count="1"]{min-width:34rem}.quote-table:not(.invoice-table)[data-quote-custom-count="2"]{min-width:40rem}.quote-table:not(.invoice-table)[data-quote-custom-count="3"]{min-width:46rem}.quote-table:not(.invoice-table) .quote-col-no{width:2.2rem}.quote-table:not(.invoice-table) .quote-col-custom{width:calc(6em + 1.25rem);min-width:calc(6em + 1.25rem);max-width:calc(6em + 1.25rem);padding-left:4px;padding-right:4px;font-size:.78rem}.quote-table:not(.invoice-table) .quote-col-item{min-width:6.5rem}.quote-table:not(.invoice-table) .quote-col-qty{width:3.25rem;min-width:3.25rem}.quote-table:not(.invoice-table) .quote-col-amount,.quote-table:not(.invoice-table) .quote-col-unit{width:4.75rem;min-width:4.75rem;padding-left:4px;padding-right:4px;font-size:.78rem;overflow:hidden}.quote-table:not(.invoice-table) .quote-col-action{width:4.75rem;min-width:4.75rem}.invoice-table{min-width:52rem}.invoice-table .quote-col-no{width:2rem}.invoice-table .invoice-col-number{width:9.5625rem;min-width:9.5625rem}.invoice-table .invoice-col-collection,.invoice-table .invoice-col-date{width:7.5rem;min-width:7.5rem}.invoice-table .invoice-col-percent{width:3.25rem;min-width:3.25rem}.invoice-table .quote-col-amount{width:5.6rem;min-width:5.6rem;overflow:hidden}.invoice-table .invoice-col-status{width:4.5rem;min-width:4.5rem}.invoice-table .quote-col-action{width:8.75rem;min-width:8.75rem}.invoice-table tr.is-editing .quote-col-action{width:11rem;min-width:11rem}}.login-screen{min-height:100vh;flex-direction:column;justify-content:center;padding:24px 16px 48px;background:radial-gradient(ellipse 80% 50% at 50% -20%,#dbeafe 0,transparent 55%),linear-gradient(180deg,#eef2ff 0,var(--canvas) 45%,#e8eef7 100%)}.login-lang,.login-screen{display:flex;align-items:center}.login-lang{position:absolute;top:16px;right:16px;gap:8px}.login-card{width:min(420px,100%);padding:28px 24px;box-shadow:var(--shadow)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:4px}.login-brand-name{margin:0;font-size:1.65rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.login-screen .wd-logo{background:#000}.login-maintenance-title{margin:8px 0 0;text-align:center;font-size:1.25rem;font-weight:700}.login-maintenance-when{margin:0;text-align:center;font-weight:600}.login-ops-login{margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}.login-ops-login summary{cursor:pointer;color:var(--muted);font-size:.9rem;text-align:center;list-style-position:inside}.login-ops-login[open] summary{margin-bottom:12px}.login-card form.stack>button.btn[type=submit]{justify-self:center;align-self:center;width:auto;min-width:7.5rem;margin-inline:auto;padding:var(--control-pad-y) var(--control-pad-x);gap:0;text-align:center;justify-content:center;align-items:center}.login-forgot{display:block;width:-moz-fit-content;width:fit-content;margin:4px auto 0;padding:8px 12px;border:0;background:none;color:var(--primary);cursor:pointer;font-size:.95rem;text-align:center;text-decoration:none}.login-forgot:focus-visible,.login-forgot:hover{text-decoration:underline}.login-forgot:disabled{opacity:.6;cursor:default}.login-reset-sent{text-align:center;margin:8px 0 0}.pw-auth-head{text-align:center}.pw-auth-title{margin:0;font-size:1.35rem;font-weight:800;color:var(--ink)}.pw-auth-sub{margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.45}.login-card input.pw-email-readonly,.pw-email-readonly{background:#f1f5f9;color:#64748b;border-color:#e2e8f0;pointer-events:none;cursor:default}.pw-mail-sent{margin:0;color:#15803d;font-size:.95rem;font-weight:600;line-height:1.45}.pw-expired .error{text-align:center;margin:0}.pw-back-btn,a.btn.pw-back-btn{width:100%;min-height:44px;font-size:15px}.login-card form.stack>button.btn.pw-auth-submit[type=submit]{width:100%;min-width:0;min-height:44px;font-size:15px;justify-self:stretch;align-self:stretch;margin-inline:0}[data-testid=forgot-password-screen] .login-card label,[data-testid=set-password-screen] .login-card label{font-size:.92rem}[data-testid=forgot-password-screen] .login-card input,[data-testid=set-password-screen] .login-card input{min-height:44px;font-size:15px}[data-testid=forgot-password-screen] .login-forgot,[data-testid=set-password-screen] .login-forgot{min-height:44px;display:flex;align-items:center;justify-content:center;font-size:15px}.admin-add-company{margin-bottom:8px}.admin-add-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 16px;gap:12px 16px;align-items:start}.admin-add-grid .quote-date-field,.admin-add-grid>.quote-date-field,.admin-add-grid>label{min-width:0;width:100%}.admin-add-notes{min-width:0}.admin-add-notes textarea{min-height:4.5rem;resize:vertical}.admin-add-last-row{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.admin-add-last-row .admin-add-notes{flex:1 1 16rem}.admin-add-submit{display:flex;flex-direction:row;justify-content:flex-end;align-items:flex-end;margin-left:auto;gap:10px;min-width:0}.admin-tenant-record[data-admin-tenant-mode=view] label{pointer-events:none;cursor:default}.admin-tenant-record[data-admin-tenant-mode=view] input,.admin-tenant-record[data-admin-tenant-mode=view] textarea{background:#f1f5f9;border-color:transparent;color:var(--ink);cursor:default;pointer-events:none;caret-color:transparent;outline:none;box-shadow:none;opacity:1;-webkit-text-fill-color:var(--ink)}.admin-tenant-record[data-admin-tenant-mode=view] .quote-date-locked{width:100%;background:#f1f5f9;border-color:transparent;border-radius:var(--radius-sm);padding:10px 12px;font-weight:600;pointer-events:none;cursor:default}.admin-tenant-record[data-admin-tenant-mode=edit] input:not([type=checkbox]),.admin-tenant-record[data-admin-tenant-mode=edit] textarea{background:#fff}.admin-tenant-record .admin-add-submit,.admin-tenant-record .admin-add-submit *{pointer-events:auto}.admin-disable-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.92rem}.admin-disable-toggle input[type=checkbox]{width:20px;height:20px}.admin-tenant-list-block{display:flex;flex-direction:column;gap:12px}.admin-tenant-toolbar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:10px 16px;margin-bottom:0}.admin-tenant-search{flex:1 1 auto;min-width:0;max-width:none}.admin-tenant-toolbar .filter-tabs{margin:0;flex:0 0 auto}@media (max-width:699px){.main{padding:16px 14px calc(120px + env(safe-area-inset-bottom, 0px))}.page-header{flex-direction:column;align-items:flex-start}.page-header-right{width:100%;justify-content:space-between}.btn-block,.card-header .btn,.invoice-mark-paid-btn,.invoice-parts-btn,.invoice-revert-unpaid-btn,.invoice-split-add,.page-header .btn,.profile-actions .btn,.profile-edit-btn,.progress-camera-btn,.progress-compose-back,.progress-compose-submit,.progress-entry-btn,.progress-log-cancel-btn,.progress-log-delete-btn,.progress-log-edit-btn,.progress-log-save-btn,.progress-pager-btn,.progress-submit-btn,.progress-thumb-remove,.quote-card-head .btn,.quote-date-clear,.quote-date-day,.quote-date-nav-btn,.quote-date-trigger,.quote-deposit-btn,.quote-download-btn,.wa-icon-btn{min-height:44px}.quote-add-btn,.quote-menu-btn{width:var(--control-height);min-width:var(--control-height);height:var(--control-height);min-height:var(--control-height)}.wa-icon-btn{width:44px;min-width:44px;height:44px}.invoice-percent-input,.invoice-row-tools,.invoice-status-cell,.quote-line-edit-actions{flex-direction:row;flex-wrap:nowrap}.invoice-table-wrap,.quote-table-wrap{overflow:visible;overflow-x:auto;max-height:none;max-width:100%;min-width:0}.desktop-table{display:none}.card-list.mobile-only,.mobile-only{display:grid;grid-gap:10px;gap:10px}.table-scroll .table{min-width:520px}.profile-card{flex-direction:column;align-items:stretch}.profile-name{font-size:1.45rem;overflow-wrap:anywhere}.profile-actions{width:100%;display:flex;gap:10px}.profile-actions .btn{flex:1 1;justify-content:center;min-height:44px;padding:12px 10px}.quote-sheet-backdrop{padding:0;align-items:flex-end;justify-content:stretch}.quote-sheet{width:100%;max-width:100%;height:96dvh;max-height:96dvh;border-radius:16px 16px 0 0}.quote-sheet-title{padding:18px 16px 10px}.quote-sheet-fields{padding:4px 16px 12px}.quote-confirm{width:calc(100% - 32px);margin:0 16px}.stepper{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.step{min-width:132px}.filter-tab{min-height:44px}.admin-tenant-toolbar .filter-tabs,.list-toolbar .filter-tabs{flex-wrap:nowrap}.list-toolbar .filter-tab{min-height:var(--list-control-height);height:var(--list-control-height);font-size:var(--list-type-size);line-height:var(--list-type-line)}.admin-add-grid{grid-template-columns:1fr}.client-list-sort-row,.list-sort-row{display:flex}.list-toolbar-add{margin-left:auto}input,select,textarea{min-height:44px;font-size:1rem}.list-page-size select,.list-pager-nav .btn,.list-search,.list-toolbar-add,button.client-stage-chip{height:var(--list-control-height);min-height:var(--list-control-height);font-size:var(--list-type-size);line-height:var(--list-type-line)}.lang-toggle,.lang-toggle button,.settings-account-actions .btn,.settings-company-actions .btn,.settings-field input,.settings-templates-actions .btn,.settings-upload input[type=file]{height:var(--control-height);min-height:var(--control-height);font-size:var(--control-font-size);line-height:var(--control-line-height)}.login-screen{justify-content:flex-start;padding:72px 16px 32px}.login-card{width:100%}.login-card form.stack>button.btn[type=submit]{width:auto;min-width:7.5rem;min-height:48px;padding:var(--control-pad-y) var(--control-pad-x);gap:0;justify-self:center;margin-inline:auto;text-align:center;justify-content:center;align-items:center}.login-card form.stack>button.btn.pw-auth-submit[type=submit]{width:100%;min-width:0;min-height:44px;justify-self:stretch;margin-inline:0}}@media (max-width:767px){.desktop-table:has([data-admin-tenant-list]),.desktop-table:has([data-client-list]){display:none}.client-list-sort-row,.list-sort-row[data-admin-sort-mobile]{display:none}.admin-tenant-list-block .card-list.mobile-only,.card:has([data-client-list]) .card-list.mobile-only{display:grid;grid-gap:10px;gap:10px}.admin-tenant-list-block,.card:has([data-client-stage-filters]){min-width:0;max-width:100%}.admin-tenant-toolbar,.list-toolbar{flex-wrap:wrap;min-width:0;max-width:100%}.admin-tenant-search,.list-search{flex:1 1 12rem;min-width:0;max-width:100%}.list-toolbar:has([data-client-search]) .list-search{flex:1 1 100%;width:100%;max-width:100%}.list-toolbar:has([data-client-search]) .list-toolbar-add{display:none}.client-stage-chips{display:none}a.btn.client-header-add{display:inline-flex}.page-header:has(.client-header-add){flex-direction:row;align-items:center;justify-content:space-between}.page-header:has(.client-header-add) .page-header-right{width:auto;justify-content:flex-end}.card-list-address{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-add-company .admin-add-grid{grid-template-columns:1fr}.admin-add-company .admin-add-last-row{flex-direction:column;align-items:stretch}.admin-add-company .admin-add-submit{width:100%;margin-left:0}.admin-tenant-toolbar .filter-tabs,.list-toolbar .filter-tabs{flex-wrap:wrap;flex:1 1 auto;min-width:0;max-width:100%}.desktop-table:has([data-admin-user-grid]){display:none}.admin-users-block .card-list.mobile-only,[data-admin-user-cards]{display:grid;grid-gap:10px;gap:10px}.admin-users-block{display:flex;flex-direction:column;gap:16px}.admin-add-user-form{order:-1}[data-admin-add-user-identity]{grid-template-columns:1fr}[data-admin-add-user-submit]{width:100%}.admin-role-select-desktop{display:none}.admin-role-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.admin-role-picker[data-last-admin-lock=true]{grid-template-columns:1fr}.admin-role-btn[data-admin-role=supervisor]{grid-column:1/-1}.admin-role-picker[data-last-admin-lock=true] .admin-role-btn{grid-column:1}}@media (min-width:768px){[data-admin-add-user-identity]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px 16px;gap:12px 16px}a.btn.client-header-add{display:none}}@media (max-width:699px) and (orientation:landscape){.quote-sheet{height:100dvh;max-height:100dvh;border-radius:0}.quote-sheet-title{padding:10px 16px 4px;font-size:1rem}.quote-sheet-fields{gap:8px;padding:4px 16px 8px}.quote-sheet-footer{padding:8px 16px calc(8px + env(safe-area-inset-bottom, 0px))}}.settings-field,.settings-upload{display:grid;grid-gap:6px;gap:6px}.settings-field input,.settings-field textarea,.settings-upload input[type=file]{width:100%;min-height:var(--control-height);height:var(--control-height);font-size:var(--control-font-size);line-height:var(--control-line-height);box-sizing:border-box}.settings-field textarea{height:auto;min-height:calc(var(--control-height) * 2)}.settings-preview-actions{display:flex;flex-wrap:wrap;gap:8px}.settings-upload a.btn{width:-moz-fit-content;width:fit-content}.settings-preview{width:100%;min-height:280px;border:1px solid var(--line);border-radius:10px;background:#fff}.settings-stamp-preview{display:block;max-width:140px;max-height:72px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px}.settings-stamp-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.settings-stamp-actions input[type=file]{flex:1 1;min-width:12rem;width:auto}.settings-stamp-actions .btn{width:auto;flex:0 0 auto}.settings-section-tabs{display:flex;flex-wrap:wrap;gap:8px}.settings-section-tab{min-height:44px;padding:8px 16px;border:0;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-weight:700;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer}.settings-section-tab.active{background:var(--primary);color:#fff;box-shadow:none}.settings-numbering-title{margin:0}.settings-numbering-hint{margin:6px 0 0}.settings-account .settings-field:has([data-settings-account-email]),.settings-account[data-account-mode=view] .settings-field,.settings-company[data-company-mode=view] .settings-field,.settings-numbering[data-numbering-mode=view] .settings-field{pointer-events:none;cursor:default}.settings-account .settings-field-locked,.settings-account[data-account-mode=edit] [data-settings-account-email],.settings-account[data-account-mode=view] .settings-field input,.settings-company[data-company-mode=view] .settings-field input,.settings-company[data-company-mode=view] .settings-field textarea,.settings-numbering[data-numbering-mode=view] .settings-field input{background:#f1f5f9;border-color:transparent;color:var(--ink);cursor:default;pointer-events:none;caret-color:transparent;outline:none;box-shadow:none;opacity:1;-webkit-text-fill-color:var(--ink)}.settings-account[data-account-mode=edit] [data-settings-account-name],.settings-company[data-company-mode=edit] .settings-field input,.settings-company[data-company-mode=edit] .settings-field textarea,.settings-numbering[data-numbering-mode=edit] .settings-field input{background:#fff;border:1px solid var(--line);pointer-events:auto;caret-color:auto;-webkit-text-fill-color:var(--ink)}.settings-numbering-preview{display:grid;grid-gap:8px;gap:8px;padding:12px 14px;background:#f1f5f9;border-radius:var(--radius-sm)}.settings-numbering-preview-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.settings-numbering-preview-row span{color:var(--muted)}.settings-numbering-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}.settings-numbering-actions .btn{min-height:var(--control-height);height:var(--control-height)}.settings-line-types-toggle{display:flex;align-items:center;gap:8px;font-weight:700}.settings-custom-cols{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}@media (min-width:1100px){.settings-custom-cols{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}.settings-custom-col{display:grid;grid-gap:10px;gap:10px;padding:14px;border-radius:12px;background:#f8fafc;box-shadow:inset 0 0 0 1px var(--line);min-width:0}.settings-custom-col.is-on{background:#fff;box-shadow:inset 0 0 0 1px #bfdbfe}.settings-custom-col-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.settings-custom-col-name{flex:1 1 10rem;min-width:0}.settings-show-toggle{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-height);font-weight:700;white-space:nowrap}.settings-show-toggle input{width:18px;height:18px;accent-color:var(--primary)}.settings-custom-empty{margin:0}.settings-custom-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.settings-custom-chips li{display:inline-flex;align-items:center;gap:4px;padding:6px 8px 6px 12px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-weight:600}.settings-custom-chips button{width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:1.1rem;line-height:1;cursor:pointer}.settings-custom-chips button:hover{color:var(--danger);background:#fef2f2}.settings-line-types-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.settings-line-types-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:var(--control-height)}.settings-line-types-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.settings-line-types-add input{flex:1 1 12rem;min-width:0}.admin-heading,.chrome-heading{justify-content:flex-end;gap:12px}.admin-add-grant-chips{display:none}.admin-add-grants,[data-admin-add-grants]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;max-width:100%;min-width:0}[data-admin-add-grants] label{display:inline-flex;flex-direction:row;flex:0 0 auto;align-items:center;gap:8px;min-height:44px;max-width:100%;margin:0;writing-mode:horizontal-tb;-webkit-text-orientation:mixed;text-orientation:mixed;letter-spacing:normal;white-space:nowrap}[data-admin-add-grants] input[type=checkbox]{width:18px;height:18px;min-width:18px;max-width:18px;padding:0;margin:0;flex-shrink:0;accent-color:var(--primary)}[data-admin-add-grants] span{writing-mode:horizontal-tb;letter-spacing:normal;white-space:nowrap;word-break:keep-all}.table td[data-admin-grant]{text-align:center}[data-accounts-user-grid] input[type=checkbox],[data-admin-user-grid] input[type=checkbox]{width:18px;height:18px;min-width:18px;padding:0;margin:0;pointer-events:auto;cursor:pointer;accent-color:var(--primary);opacity:1;filter:none}[data-admin-user-grid] select:not(:disabled){pointer-events:auto;cursor:pointer;opacity:1;filter:none}[data-accounts-user-enabled=false] .accounts-grant-chip,[data-accounts-user-enabled=false] .accounts-role-btn,[data-accounts-user-enabled=false] .accounts-role-btn.is-on,[data-accounts-user-enabled=false] input[type=checkbox],[data-accounts-user-enabled=false] select,[data-admin-user-enabled=false] .admin-grant-chip,[data-admin-user-enabled=false] .admin-role-btn,[data-admin-user-enabled=false] .admin-role-btn.is-on,[data-admin-user-enabled=false] input[type=checkbox],[data-admin-user-enabled=false] select{pointer-events:none;cursor:default;opacity:.45;filter:grayscale(.25)}.admin-user-row-actions-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.admin-user-row-actions{display:inline-flex;align-items:flex-start;gap:6px}.accounts-reset-stack,.admin-reset-stack{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0}.admin-user-row-actions .admin-reset-stack{flex:0 0 auto;align-items:center}.accounts-reset-stack .btn,.admin-reset-stack .btn{width:100%}.admin-user-row-actions .admin-reset-stack .btn{width:auto}.accounts-reset-stack .error,.accounts-reset-stack .pw-mail-sent,.admin-reset-stack .error,.admin-reset-stack .pw-mail-sent{margin:0;width:0;min-width:100%;font-size:12px;line-height:1.35;font-weight:600;text-align:center;white-space:normal;overflow-wrap:break-word}.admin-user-card-actions .btn.secondary,.admin-user-row-actions .btn.secondary{border-radius:999px}.admin-user-card-actions .btn.secondary:not(:disabled),.admin-user-row-actions .btn.secondary:not(:disabled){background:#f3f4f6;color:#0f172a;border:1px solid #e5e7eb}.admin-user-card-actions .btn.secondary[data-admin-reset-user=true]:not(:disabled),.admin-user-row-actions .btn.secondary[data-accounts-reset-user=true]:not(:disabled),.admin-user-row-actions .btn.secondary[data-admin-reset-user=true]:not(:disabled),[data-accounts-last-admin=true] .admin-user-row-actions .btn.secondary[data-accounts-reset-user=true],[data-accounts-last-admin=true] .admin-user-row-actions .btn.secondary[data-accounts-reset-user=true]:hover,[data-admin-last-admin=true] .btn.secondary[data-admin-reset-user=true],[data-admin-last-admin=true] .btn.secondary[data-admin-reset-user=true]:hover{background:#fff;color:#0f172a;border:1px solid #94a3b8;font-weight:700;opacity:1;filter:none;cursor:pointer;pointer-events:auto;box-shadow:none}.admin-user-card .error,.admin-user-card .pw-mail-sent,.admin-user-row-actions-wrap .error,.admin-user-row-actions-wrap .pw-mail-sent{margin:0}.admin-user-delete{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;padding:0;border:1px solid #dc2626;border-radius:8px;background:#fff;color:#dc2626;cursor:pointer}.admin-user-delete:hover:not(:disabled){color:#b91c1c;border-color:#b91c1c}.admin-user-delete[data-last-admin-lock=true],.admin-user-delete[data-last-admin-lock=true]:hover{background:#e2e8f0;color:#94a3b8;border-color:#cbd5e1}.admin-user-card-actions .btn:disabled,.admin-user-card-actions .btn:disabled:hover,.admin-user-delete-text:disabled,.admin-user-delete-text:disabled:hover,.admin-user-delete:disabled,.admin-user-delete:disabled:hover,.admin-user-row-actions .btn:disabled,.admin-user-row-actions .btn:disabled:hover{opacity:1;background:#e2e8f0;color:#94a3b8;border-color:#cbd5e1;cursor:not-allowed;pointer-events:none;box-shadow:none}.admin-role-field{display:grid;grid-gap:6px;gap:6px;font-size:.92rem}.admin-role-label{font-weight:600}.admin-role-picker,.admin-users-count{display:none}.admin-add-expires{grid-column:1/-1;margin:0}.admin-add-seats{grid-column:1/-1}@media (max-width:860px){[data-admin-grant]{min-height:44px;display:flex;align-items:center;gap:8px}}.progress-list-page{gap:12px}.progress-list-chrome .list-toolbar{margin-bottom:12px}.progress-list-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.progress-sort-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 14px;border-radius:12px;background:#fff;border:1px solid var(--line);font-weight:700}.progress-empty{text-align:center;padding:64px 16px 48px}.progress-empty-title{margin:0;font-size:1.15rem;font-weight:800}.progress-empty-hint{margin:8px 0 0;color:var(--muted);white-space:pre-line}.progress-client-list{display:grid;grid-gap:10px;gap:10px}.progress-client-card{display:flex;gap:12px;align-items:flex-start;background:#fff;border-radius:16px;padding:14px 16px;min-height:72px;box-shadow:var(--shadow)}.progress-client-avatar{width:44px;height:44px;font-size:1.05rem}.progress-client-body{min-width:0;flex:1 1}.progress-client-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.progress-client-name{margin:0;font-size:1.05rem;font-weight:800}.progress-client-time{color:var(--muted);font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.progress-client-address{margin:4px 0 0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-list-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.progress-pager-btns{display:flex;gap:8px}.progress-pager-btn{width:44px;height:44px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:1.2rem;cursor:pointer}.progress-pager-btn:disabled{opacity:.45;cursor:default}.progress-log-page{display:flex;flex-direction:column;gap:12px;padding-bottom:88px}.progress-compose-heading,.progress-log-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.progress-log-client{margin:0;font-size:1.55rem;font-weight:800}.progress-toast{margin:0;padding:10px 12px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-weight:700}.progress-log-feed{display:grid;grid-gap:12px;gap:12px;overflow:visible}.progress-log-card{background:#fff;border-radius:16px;padding:14px 16px;box-shadow:var(--shadow)}.progress-log-card-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.progress-log-author{font-weight:800}.progress-compose-author{margin:0 0 8px}.progress-log-time{color:var(--muted);font-size:.82rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.progress-log-caption{margin:8px 0 0}.progress-log-edit-caption{margin:8px 0 0;width:100%;resize:vertical;min-height:4.5rem}.progress-log-card .progress-compose-thumbs,.progress-log-edit-media{margin-top:10px}.progress-log-card .progress-compose-hint{margin:8px 0 0}.progress-log-card-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:10px}.progress-log-cancel-btn,.progress-log-delete-btn,.progress-log-edit-btn,.progress-log-save-btn{height:var(--control-height);min-height:var(--control-height);padding:0 12px;border:0;border-radius:var(--control-radius);font:inherit;font-weight:700;font-size:var(--control-font-size);line-height:var(--control-line-height);cursor:pointer;white-space:nowrap}.progress-log-edit-btn,.progress-log-save-btn{background:#2563eb;color:#fff}.progress-log-cancel-btn{background:#e2e8f0;color:var(--ink)}.progress-log-delete-btn{background:transparent;color:var(--danger)}.progress-log-delete-btn:hover{background:#fef2f2}.progress-log-cancel-btn:disabled,.progress-log-delete-btn:disabled,.progress-log-edit-btn:disabled,.progress-log-save-btn:disabled{opacity:.5;cursor:not-allowed}.progress-log-photos{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.progress-log-photo-tile{width:120px;height:120px;padding:0;border:0;background:transparent;cursor:pointer}.progress-log-photo{width:120px;height:120px;object-fit:contain;background:#f1f5f9;border-radius:10px;border:1px solid var(--line)}.progress-photo-lightbox{position:fixed;inset:0;z-index:200;display:grid;place-items:center;pointer-events:auto;touch-action:none}body.is-progress-lightbox-open,html.is-progress-lightbox-open{overflow:hidden;overscroll-behavior:none}body.is-progress-lightbox-open .app-shell,body.is-progress-lightbox-open .bottom-tab{pointer-events:none}body.is-progress-lightbox-open .progress-photo-lightbox{pointer-events:auto}.progress-lightbox-backdrop{position:absolute;inset:0;border:0;padding:0;background:rgba(15,23,42,.88);cursor:pointer}.progress-lightbox-image{position:relative;z-index:1;max-width:min(100vw - 32px,960px);max-height:calc(100vh - 96px);width:auto;height:auto;object-fit:contain}.progress-lightbox-close{position:absolute;top:12px;right:12px;z-index:2;width:44px;height:44px;min-width:44px;min-height:44px;border:0;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:1.2rem;cursor:pointer}.progress-log-empty{margin:12px 0 0}.progress-sticky-compose{position:fixed;left:0;right:0;bottom:0;z-index:35;display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px));background:#eef2f7;border-top:1px solid var(--line)}@media (min-width:861px){.progress-sticky-compose{left:232px}}@media (max-width:860px){.progress-sticky-compose{bottom:var(--mobile-tab-clear);padding-bottom:10px}.progress-log-page{padding-bottom:148px}body:has(.progress-sticky-compose:focus-within) .bottom-tab{display:none}body:has(.progress-sticky-compose:focus-within) .progress-sticky-compose{bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px))}.progress-compose-screen{padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px))}}@media (max-width:767px){:root{--mobile-tab-clear:calc(76px + env(safe-area-inset-bottom, 0px))}.progress-log-page{padding-bottom:168px;gap:8px}.progress-log-client{font-size:1.25rem}.progress-compose-caption,.progress-sticky-input{font-size:16px}.progress-client-top{flex-wrap:wrap}}.progress-camera-btn{width:44px;height:44px;min-width:44px;min-height:44px;border:0;border-radius:12px;background:#dbeafe;color:#2563eb;display:grid;place-items:center;cursor:pointer}.progress-sticky-input{flex:1 1;min-width:0;min-height:44px;border-radius:12px;font-size:16px}.progress-submit-btn{min-width:52px;min-height:44px;padding:8px 16px;border:0;border-radius:12px;background:var(--primary);color:#fff;font-weight:800;cursor:pointer}.progress-compose-submit:disabled,.progress-submit-btn:disabled{opacity:.55;cursor:default}.progress-compose-screen{position:fixed;inset:0;z-index:50;background:var(--canvas);overflow:auto;padding:18px 16px 96px;display:flex;flex-direction:column;gap:12px}.progress-compose-back{border:0;background:transparent;padding:0;min-height:44px;cursor:pointer;text-align:left}.progress-compose-card{padding:14px}.progress-media-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;background:#dbeafe;color:#1d4ed8;border-color:transparent}.progress-compose-thumbs{display:flex;flex-wrap:wrap;gap:10px}.progress-compose-thumb{position:relative;width:96px;height:96px}.progress-compose-thumb .progress-log-photo{width:96px;height:96px}.progress-thumb-remove{position:absolute;top:4px;right:4px;width:44px;height:44px;min-width:44px;min-height:44px;border:0;border-radius:50%;background:rgba(15,23,42,.72);color:#fff;font-size:1.2rem;cursor:pointer}.progress-compose-caption{min-height:88px;resize:vertical;border:0;box-shadow:none;outline:none;padding:0}.progress-compose-hint{margin:0;font-size:.82rem}.progress-compose-submit{width:100%;min-height:48px;margin-top:auto;font-size:1.1rem;font-weight:800}.progress-log-page.is-composing .progress-sticky-compose{display:none}.dash-page{gap:10px;flex:1 1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.dash-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;flex:0 0 auto}.dash-mid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:10px;gap:10px;align-items:stretch;flex:1 1 auto;min-height:0;overflow:hidden}.dash-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0;padding:8px 10px;min-height:0;border:0;border-radius:12px;background:#fff;box-shadow:var(--shadow);color:var(--ink);text-align:left;text-decoration:none;font:inherit;cursor:pointer}a.dash-tile,button.dash-tile{-webkit-appearance:none;-moz-appearance:none;appearance:none}.dash-tile.is-active{box-shadow:0 0 0 2px #2563eb,var(--shadow)}.dash-tile-label{color:var(--muted);font-size:var(--list-type-size);font-weight:var(--list-type-weight);line-height:var(--list-type-line)}.dash-tile-value{font-size:1.12rem;font-weight:800;line-height:1.15;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-aging-chip.is-overdue .dash-aging-amount,.dash-tile-value.is-overdue{color:var(--danger)}.dash-tile-received{color:var(--paid)}.dash-tile-count{font-size:1.35rem}.dash-tile-hint{margin:0;color:var(--muted);font-size:11px;font-weight:600;line-height:1.25}.dash-aging{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.dash-aging-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0;padding:10px 12px;min-height:var(--control-height);border:0;border-radius:12px;background:#fff;box-shadow:var(--shadow);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.dash-aging-chip.is-active{box-shadow:0 0 0 2px #2563eb,var(--shadow)}.dash-aging-label{color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.dash-aging-amount{font-size:var(--list-type-size);font-weight:800;line-height:var(--list-type-line)}.dash-chase-row{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;min-height:0;border-radius:12px;background:#fff;box-shadow:var(--shadow);text-decoration:none;color:inherit}.dash-chase-main,.dash-chase-meta{min-width:0}.dash-chase-meta{text-align:right;flex-shrink:0}.dash-chase-top{display:flex;align-items:baseline;gap:8px}.dash-chase-number{font-size:var(--list-type-size);font-weight:800;line-height:var(--list-type-line)}.dash-chase-address,.dash-chase-days,.dash-chase-pct{color:var(--muted);font-size:12px;font-weight:600;line-height:1.35}.dash-chase-address{margin:2px 0 0}.dash-chase-amount{display:block;font-size:var(--list-type-size);font-weight:800;line-height:var(--list-type-line)}.dash-chase-empty{margin:4px 0 0;font-size:12px}.dash-chase-page{gap:12px}.dash-chase-page-head{display:flex;align-items:baseline;gap:10px;flex-wrap:nowrap}.dash-chase-page-head h1{margin:0;font-size:1.4rem;font-weight:800;flex:1 1;min-width:0;white-space:nowrap}.dash-chase-back{display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;min-height:36px;font-size:1.25rem;font-weight:700;color:var(--ink);text-decoration:none;flex-shrink:0}.dash-chase-page-count{color:var(--muted);font-size:14px;font-weight:700;flex-shrink:0}.dash-chase-page-hint{margin:0;font-size:13px}.dash-chase-full-list{display:grid;grid-gap:10px;gap:10px}.dash-chart-card{padding:10px 14px 4px;border-radius:16px;background:#fff;box-shadow:var(--shadow);min-height:0;overflow:hidden;display:flex;flex-direction:column}.dash-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dash-chart-head h2,.dash-due-title{margin:0;font-size:1.05rem;font-weight:800}.dash-chart-hint{margin:4px 0 0;color:var(--muted);font-size:11px;font-weight:600;line-height:1.35}.dash-chart-badge{flex-shrink:0;padding:4px 10px;border-radius:999px;background:#e8edf3;color:#64748b;font-size:11px;font-weight:700;line-height:1.3;white-space:nowrap}.dash-chart-legend{display:flex;align-items:center;gap:16px;margin:6px 0 0;color:var(--ink);font-size:12px;font-weight:700;flex:0 0 auto}.dash-chart-legend span{display:inline-flex;align-items:center;gap:6px}.dash-legend-swatch{display:inline-block;width:10px;height:10px;border-radius:2px}.dash-legend-swatch.is-invoiced{background:#2563eb}.dash-legend-swatch.is-received{background:#108548}.dash-chart-readout{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:6px 0 0;font-size:12px;font-weight:700;line-height:1.35}.dash-chart-readout .is-invoiced{color:#2563eb}.dash-chart-readout .is-received{color:#108548}.dash-chart-svg{display:block;width:100%;height:auto;max-height:118px;flex:1 1 auto;min-height:56px}.dash-chart-grid{stroke:#eef2f7;stroke-width:1}.dash-chart-axis{stroke:#e2e8f0;stroke-width:1}.dash-chart-marker{stroke:#94a3b8;stroke-width:1;stroke-dasharray:3 3}.dash-chart-hit{cursor:pointer}.dash-chart-tick,.dash-chart-y{fill:#94a3b8;font-size:10px;font-weight:600}.dash-chart-tick{cursor:pointer}.dash-chart-tick.is-selected{fill:#334155;font-weight:800}.dash-due{justify-content:flex-start;gap:8px;padding:10px 12px;border-radius:16px;background:#fff;box-shadow:var(--shadow)}.dash-due,.dash-due-section{display:flex;flex-direction:column;min-height:0;overflow:hidden}.dash-due-section{flex:1 1}.dash-due-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-shrink:0}.dash-due-count{color:#2563eb;font-size:.95rem;font-weight:800;line-height:1.2}.dash-due-section.is-overdue .dash-due-count,.dash-due-section.is-overdue .dash-due-title{color:var(--danger)}.dash-due-section.is-due30 .dash-due-count,.dash-due-section.is-due30 .dash-due-title{color:#ea580c}.dash-due-section.is-due60 .dash-due-count,.dash-due-section.is-due60 .dash-due-title{color:#2563eb}.dash-due-empty{margin:4px 0 0;font-size:12px}.dash-due-list{display:grid;align-content:start;grid-gap:4px;gap:4px;margin-top:4px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.dash-due-list::-webkit-scrollbar{width:8px}.dash-due-list::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:999px}.dash-due-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;min-height:0;border-radius:0;background:transparent;box-shadow:none;text-decoration:none;color:inherit}.dash-due-row .pill,.dash-due-row .status-pill{height:auto;min-height:0;padding:2px 8px;font-size:11px}.dash-due-main{display:grid;grid-gap:2px;gap:2px;min-width:0}.dash-due-name{font-size:var(--list-type-size);font-weight:800;line-height:var(--list-type-line)}.dash-due-date{color:var(--muted);font-size:12px;font-weight:600;line-height:1.35}.dash-due-row .pill,.dash-due-row .status-pill{flex-shrink:0}@media (min-width:861px){.dash-mid{grid-template-columns:minmax(0,1.65fr) minmax(240px,.85fr);flex:1 1 auto}.dash-due{gap:14px}.dash-chart-svg{max-height:none;height:100%}}@media (max-width:860px){.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dash-mid{flex:1 1 auto;min-height:0;grid-template-rows:auto minmax(0,1fr)}.dash-chart-hint{display:none}.dash-due{padding:0;background:transparent;box-shadow:none;border-radius:0;gap:8px}.dash-due-row{padding:8px 12px;border-radius:12px;background:#fff;box-shadow:var(--shadow)}.dash-chart-svg{max-height:96px;min-height:72px;flex:0 0 auto}}@media (max-width:767px){.admin-users-block>h1,.page-header h1,.profile-name,h1{font-size:17px}.admin-add-user-form h3,.admin-users-heading,.card-header h2,.card-list-title,.dash-chart-head h2,.dash-due-title,.quote-card-head h2,h2{font-size:14px}.admin-role-label,.card-list-item .muted,.dash-chase-pct,.dash-tile-label,.invoice-percent-input,.invoice-table .invoice-col-percent,.list-toolbar,.list-toolbar .filter-tab,.quote-table td,.quote-table th,.table td,.table th,label{font-size:12px}.back-link,.dash-aging-label,.dash-chart-hint,.dash-chase-address,.dash-chase-days,.dash-due-date,.dash-tile-hint,.detail-last-updated,.list-page-size-label,.list-pager .muted,.vc-last-updated{font-size:11px}.dash-tile-value{font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.dash-tile-count{font-size:18px}.dash-chase-amount,.dash-chase-number,.dash-due-name{font-size:13px}.list-search::placeholder{font-size:14px}.btn{font-size:15px}.list-page-size select,.list-pager-nav .btn,.list-search,.list-sort-btn,.list-toolbar-add{min-height:44px;height:44px}.admin-grant-chip,.admin-role-btn,.filter-tab,button.client-stage-chip{min-height:52px;height:auto}.bottom-tab{min-height:calc(76px + env(safe-area-inset-bottom, 0px))}.bottom-tab a,.bottom-tab-logout-btn{min-height:76px;height:76px;font-size:11px}.bottom-tab-label{font-size:11px}.admin-users-count{display:inline;margin-left:auto;color:var(--muted);font-size:14px;font-weight:600}.admin-users-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.admin-user-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-user-card-id{min-width:0}.admin-user-email{font-size:11px}.admin-user-role-badge{flex-shrink:0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;background:#e2e8f0;color:#334155}.admin-user-role-badge.is-admin{background:#0f172a;color:#fff}.admin-user-role-badge.is-project_lead{background:#334155;color:#fff}.admin-user-role-badge.is-supervisor{background:#e2e8f0;color:#475569}.admin-user-grants{display:flex;flex-wrap:wrap;gap:8px}.admin-grant-chip{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:12px;font-weight:700;padding:8px 12px;cursor:pointer}.admin-grant-chip.is-on{background:#2563eb;border-color:#2563eb;color:#fff}[data-admin-add-grants]{display:none}.admin-add-grant-chips{display:flex;flex-wrap:wrap;gap:8px}.admin-user-card-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;align-items:start}.admin-user-card-actions[data-admin-card-actions="3"]{grid-template-columns:1fr 1fr 1fr}.admin-user-card-actions[data-admin-card-actions="3"] .admin-user-delete-text,.admin-user-card-actions[data-admin-card-actions="3"] .btn{padding-left:6px;padding-right:6px;white-space:nowrap}.admin-user-card-actions .btn,.admin-user-delete-text{width:100%;min-height:44px;justify-content:center;border-radius:999px}.admin-user-delete-text{border:1px solid #dc2626;border-radius:999px;background:#fff;color:#dc2626;font-size:15px;font-weight:600;cursor:pointer}.admin-user-delete-text[data-last-admin-lock=true],.admin-user-delete-text[data-last-admin-lock=true]:disabled,.admin-user-delete-text[data-last-admin-lock=true]:disabled:hover{background:#e2e8f0;color:#94a3b8;border-color:#cbd5e1}.admin-role-btn{border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:15px;font-weight:700;cursor:pointer}.admin-role-btn.is-on{background:#2563eb;border-color:#2563eb;color:#fff}.admin-role-select-desktop{display:none}.admin-role-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.admin-role-picker[data-last-admin-lock=true]{grid-template-columns:1fr}.admin-role-btn[data-admin-role=supervisor]{grid-column:1/-1}.admin-role-picker[data-last-admin-lock=true] .admin-role-btn{grid-column:1}.desktop-table:has([data-accounts-user-grid]),.desktop-table:has([data-admin-user-grid]){display:none}.admin-users-block .card-list.mobile-only,[data-admin-user-cards]{display:grid;grid-gap:10px;gap:10px}}.accounts-page{gap:16px}.accounts-columns{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;align-items:start}.accounts-lock-copy,.admin-lock-copy{margin:4px 0 0;color:var(--muted);font-size:11px;font-weight:600}.accounts-add-grant-checks{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;max-width:100%;min-width:0}.accounts-add-grant-checks label{display:inline-flex;flex-direction:row;flex:0 0 auto;align-items:center;gap:8px;min-height:44px;margin:0;white-space:nowrap}.accounts-add-grant-checks input[type=checkbox]{width:18px;height:18px;min-width:18px;max-width:18px;padding:0;margin:0;flex-shrink:0;accent-color:var(--primary)}.accounts-grants-field [data-accounts-add-grants]{display:none}.accounts-card{min-width:0}.accounts-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.accounts-card-head h2{margin:0;font-size:1.15rem}.accounts-seats{color:var(--muted);font-weight:700;font-size:.92rem}.accounts-identity{display:grid;grid-gap:12px;gap:12px}.accounts-field-label,.accounts-grants-field,.accounts-role-field{display:grid;grid-gap:8px;gap:8px}.accounts-field-label{font-weight:600}.accounts-role-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;min-width:0}.accounts-grant-chips{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.accounts-grant-chip,.accounts-role-btn{display:inline-flex;align-items:center;justify-content:center;writing-mode:horizontal-tb;-webkit-text-orientation:mixed;text-orientation:mixed;letter-spacing:normal;white-space:nowrap;word-break:keep-all;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:13px;font-weight:700;padding:8px 12px;min-height:40px;cursor:pointer}.accounts-role-btn{width:100%}.accounts-grant-chip.is-on,.accounts-role-btn.is-on{background:var(--primary);border-color:var(--primary);color:#fff}.accounts-add-submit{width:100%}.accounts-add-submit:disabled{opacity:.45;background:#93c5fd}.accounts-user-list{gap:12px}.accounts-user-card{display:grid;grid-gap:10px;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.accounts-user-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.accounts-user-id{min-width:0}.accounts-user-name{margin:0;font-weight:800}.accounts-user-email{margin:2px 0 0;color:var(--muted);font-size:.82rem}[data-accounts-user-enabled=false] .accounts-user-name{color:var(--muted)}.accounts-role-badge{flex-shrink:0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;background:#e2e8f0;color:#334155}.accounts-role-badge.is-admin{background:#0f172a;color:#fff}.accounts-role-badge.is-project_lead{background:#64748b;color:#fff}.accounts-role-badge.is-supervisor{background:#e2e8f0;color:#475569}.accounts-user-top .accounts-role-picker{justify-content:flex-end}.accounts-user-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;align-items:start}.accounts-user-actions[data-accounts-card-actions="3"]{grid-template-columns:1fr 1fr 1fr}.accounts-delete-btn,.accounts-user-actions .btn{width:100%;min-height:44px;justify-content:center}.accounts-user-actions .btn.secondary:not(:disabled){background:#f3f4f6;color:#0f172a;border:1px solid #e5e7eb}.accounts-user-actions .btn.secondary[data-accounts-reset-user=true]:not(:disabled),[data-accounts-last-admin=true] .btn.secondary[data-accounts-reset-user=true],[data-accounts-last-admin=true] .btn.secondary[data-accounts-reset-user=true]:hover{background:#f3f4f6;color:#0f172a;border:1px solid #e5e7eb;font-weight:600;opacity:1;filter:none;cursor:pointer;pointer-events:auto;box-shadow:none}.accounts-user-card .error,.accounts-user-card .pw-mail-sent{margin:0}.accounts-delete-btn{display:inline-flex;align-items:center;border:1px solid #dc2626;border-radius:var(--control-radius);background:#fff;color:#dc2626;font-weight:600;font-size:var(--control-font-size);cursor:pointer}.accounts-delete-btn:disabled,.accounts-delete-btn:disabled:hover,.accounts-delete-btn[data-last-admin-lock=true],.accounts-delete-btn[data-last-admin-lock=true]:disabled,.accounts-delete-btn[data-last-admin-lock=true]:disabled:hover,.accounts-delete-btn[data-last-admin-lock=true]:hover,.accounts-user-actions .btn:disabled,.accounts-user-actions .btn:disabled:hover,.accounts-user-actions [data-last-admin-lock=true],.accounts-user-actions [data-last-admin-lock=true]:hover{opacity:1;background:#e2e8f0;color:#94a3b8;border-color:#cbd5e1;cursor:not-allowed;pointer-events:none;box-shadow:none}[data-accounts-user-enabled=false] .accounts-grant-chip,[data-accounts-user-enabled=false] .accounts-grant-chip.is-on,[data-accounts-user-enabled=false] .accounts-role-btn,[data-accounts-user-enabled=false] .accounts-role-btn.is-on,[data-accounts-user-mode=view] .accounts-grant-chip{opacity:1;background:#f3f4f6;color:#94a3b8;border-color:#e5e7eb;cursor:default;pointer-events:none}.accounts-edit-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;width:100%;height:auto;min-height:44px}.accounts-edit-actions .btn{width:100%;min-height:44px;justify-content:center}@media (min-width:768px){.accounts-columns{grid-template-columns:1fr}.accounts-identity{grid-template-columns:1fr 1fr}.accounts-grants-field [data-accounts-add-grants]{display:none}}@media (max-width:767px){.accounts-grants-field [data-accounts-add-grants]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.accounts-grants-field [data-accounts-add-grants] .accounts-grant-chip{width:100%}.accounts-add-grant-checks{display:none}.accounts-role-picker{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.accounts-role-picker[data-last-admin-lock=true]{grid-template-columns:1fr}.desktop-table:has([data-accounts-user-grid]){display:none}[data-accounts-user-cards]{display:grid;grid-gap:12px;gap:12px}.accounts-user-actions .accounts-delete-btn,.accounts-user-actions .btn{border-radius:999px;padding-left:4px;padding-right:4px;font-size:13px;white-space:nowrap}.accounts-user-actions[data-accounts-card-actions="3"] .accounts-delete-btn,.accounts-user-actions[data-accounts-card-actions="3"] .btn{font-size:12px;padding-left:2px;padding-right:2px}.accounts-user-card[data-accounts-user-enabled=false]{scroll-margin-bottom:140px}}.admin-test-page{max-width:100%}.admin-test-heading .page-header{margin-bottom:6px}.admin-test-card{max-width:420px;width:100%}.admin-test-card-title{margin:0;font-size:1.15rem}.admin-test-hint{margin:0}.admin-test-submit{width:100%;min-height:44px;font-size:15px}@media (min-width:768px){.admin-test-card{margin-inline:auto}}@media (max-width:767px){.admin-test-card{max-width:none;margin-inline:0}.admin-test-card-title{font-size:14px}.admin-test-hint{font-size:11px}.admin-test-submit{font-size:15px}}.chrome-brand{display:none;margin:0;font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.02em}body:has([data-dashboard]),html:has([data-dashboard]){height:100%;max-height:100%;overflow:hidden}body:has([data-dashboard]) .app-shell{min-height:0;height:100dvh;overflow:hidden}body:has([data-dashboard]) .side-nav{min-height:0;height:100dvh}body:has([data-dashboard]) .main-column{min-height:0;height:100dvh;overflow:hidden}body:has([data-dashboard]) .main{display:flex;flex-direction:column;flex:1 1;min-height:0;height:100%;overflow:hidden;padding-top:10px;padding-bottom:12px}body:has([data-dashboard]) .app-footer{display:none}body:has([data-dash-chase-page]) .app-footer{display:none}body:has([data-dashboard]) .chrome-heading{position:relative;flex:0 0 auto;flex-wrap:nowrap;min-height:0;margin:0}body:has([data-dash-chase-page]) .lang-toggle,body:has([data-dash-chase-page]) .lang-toggle button,body:has([data-dashboard]) .lang-toggle,body:has([data-dashboard]) .lang-toggle button{height:28px;min-height:0}body:has([data-dashboard]) .page-header{margin-bottom:0;flex:0 0 auto}body:has([data-dashboard]) .page-header h1{font-size:1.4rem}.dash-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}.dash-overlay-backdrop{position:absolute;inset:0;border:0;padding:0;margin:0;background:rgba(15,23,42,.45);cursor:pointer}.dash-overlay-panel{position:relative;z-index:1;width:min(720px,100%);max-height:min(78dvh,640px);display:flex;flex-direction:column;border-radius:16px 16px 0 0;background:#fff;box-shadow:0 -8px 32px rgba(15,23,42,.18);overflow:hidden}.dash-overlay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--line);flex:0 0 auto}.dash-overlay-head h2{margin:0;font-size:1.05rem;font-weight:800}.dash-overlay-close{border:0;background:transparent;color:#2563eb;font:inherit;font-size:14px;font-weight:700;cursor:pointer;padding:4px 2px}.dash-overlay-list{overflow:auto;padding:10px 12px 16px;display:grid;grid-gap:8px;gap:8px}@media (min-width:861px){.dash-overlay{align-items:center;padding:24px}.dash-overlay-panel{border-radius:16px;max-height:min(72vh,560px)}}@media (max-width:860px){body:has([data-dash-chase-page]) .chrome-heading,body:has([data-dashboard]) .chrome-heading{justify-content:space-between}body:has([data-dash-chase-page]) .chrome-brand,body:has([data-dashboard]) .chrome-brand{display:block;position:static;left:auto;transform:none}body:has([data-dashboard]) .main{padding:8px 12px calc(88px + env(safe-area-inset-bottom, 0px));height:100dvh}body:has([data-dashboard]) .page-header h1{font-size:22px}}@media (max-width:699px){body:has([data-dashboard]) .main{padding:8px 12px calc(88px + env(safe-area-inset-bottom, 0px))}}@media (max-width:767px){body:has([data-dashboard]) .page-header h1{font-size:22px}.dash-chase-page{padding-bottom:8px}.dash-chase-page-head h1{font-size:22px}.invoice-split .invoice-table-wrap{display:none}.invoice-period-cards{display:flex;flex-direction:column;gap:12px}.invoice-period-add{display:grid}.invoice-quote-head{display:flex}.invoice-quote-total-desktop{display:none}[data-detail-invoices].card{background:transparent;border:0;box-shadow:none;padding:4px 0 0}.next-unpaid-hint{display:none}}html:has(.landing){scroll-behavior:smooth;scroll-padding-top:76px}.landing{min-height:100vh;display:flex;flex-direction:column;color:var(--ink);background:radial-gradient(ellipse 80% 50% at 50% -10%,#dbeafe 0,transparent 55%),linear-gradient(180deg,#eef2ff 0,var(--canvas) 38%,#e8eef7 100%)}.landing-header{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:16px;gap:16px;padding:12px 28px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.landing-brand{justify-self:start;display:inline-flex;align-items:center;gap:10px;min-width:0}.landing-brand-name{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.landing-header .wd-logo{background:#000}.landing-nav-center{justify-self:center;display:flex;align-items:center;gap:28px;font-weight:600;flex-wrap:nowrap}.landing-nav-center a{color:var(--ink);padding:8px 2px}.landing-nav-center a:hover{color:var(--primary)}.landing-nav-right{justify-self:end;display:flex;align-items:center;gap:8px}.landing-login{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:8px 14px;border-radius:var(--control-radius);font-weight:600;color:var(--ink)}.landing-login:hover{background:#f1f5f9}.landing-hero{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:64px 0 28px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);grid-gap:48px;gap:48px;align-items:center}.landing-eyebrow{margin:0 0 12px;color:var(--primary);font-weight:700;letter-spacing:.04em}.landing-hero h1{margin:0;font-size:clamp(1.85rem,3.6vw,3.1rem);font-weight:800;letter-spacing:-.03em;line-height:1.18}.landing-lead{margin:16px 0 0;color:var(--muted);font-size:1.08rem;line-height:1.65;max-width:40rem}.landing-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.landing-preview-window{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:18px}.landing-preview-dots{display:flex;gap:6px;margin-bottom:16px}.landing-preview-dots span{width:10px;height:10px;border-radius:50%;background:#e2e8f0}.landing-preview-dots span:first-child{background:#fecaca}.landing-preview-dots span:nth-child(2){background:#fde68a}.landing-preview-dots span:nth-child(3){background:#bbf7d0}.landing-preview-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.landing-preview-tile{display:flex;flex-direction:column;gap:10px;min-height:112px;padding:16px;border-radius:14px;background:#f8fafc;border:1px solid var(--line);font-weight:600;font-size:.92rem}.landing-features,.landing-pricing{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:28px 0 12px}.landing-section-head{max-width:40rem;margin:0 auto 28px;text-align:center}.landing-section-head h2{margin:0;font-size:clamp(1.45rem,2.4vw,2rem);letter-spacing:-.02em}.landing-section-head p{margin:10px 0 0;color:var(--muted);line-height:1.6}.landing-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.landing-feature-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px}.landing-feature-card h3{margin:12px 0 8px;font-size:1.08rem}.landing-feature-card p{margin:0;color:var(--muted);line-height:1.6}.landing-feature-icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:12px;background:#dbeafe;color:var(--primary);flex-shrink:0}.landing-feature-icon svg{width:22px;height:22px}.landing-pricing{padding-bottom:56px}.landing-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px;width:min(860px,100%);margin:0 auto;align-items:stretch}.landing-price-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:28px 24px}.landing-price-card.is-starter{border-color:#93c5fd;box-shadow:0 1px 2px rgba(37,99,235,.06),0 12px 28px rgba(37,99,235,.1)}.landing-plan-name{margin:0;font-size:.92rem;font-weight:700;color:var(--primary);letter-spacing:.04em}.landing-plan-seats{margin:0;font-size:1.35rem;font-weight:800;letter-spacing:-.02em}.landing-price-block{min-height:5.75rem;display:flex;flex-direction:column;justify-content:center;gap:4px;margin:8px 0 4px}.landing-price-row{display:flex;align-items:baseline;gap:4px;margin:0}.landing-price-year{flex-wrap:wrap;column-gap:8px;row-gap:4px}.landing-price-year-main{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.landing-price-amount{font-size:1.15rem;font-weight:600;letter-spacing:-.02em}.landing-price-year .landing-price-amount{font-size:1.85rem;font-weight:800;letter-spacing:-.03em}.landing-price-period{color:var(--muted);font-weight:600}.landing-price-save{margin:0;color:#15803d;font-size:.78rem;font-weight:600}.landing-price-custom{margin:0;font-size:1.85rem;font-weight:800;letter-spacing:-.03em}.landing-plan-features{list-style:none;margin:8px 0 20px;padding:0;display:grid;grid-gap:10px;gap:10px;flex:1 1 auto}.landing-plan-features li{display:flex;align-items:flex-start;gap:10px;line-height:1.45}.landing-plan-features svg{color:#15803d;flex-shrink:0;margin-top:1px}.landing-price-card .btn{width:100%}.landing-footer{margin-top:auto;padding:24px 16px 32px;text-align:center;color:var(--muted);font-size:.9rem}.landing-enquiry-backdrop{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px}.landing-enquiry-card{width:min(440px,100%);max-height:min(720px,calc(100dvh - 48px));overflow:auto;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.landing-enquiry-card h2{margin:0 0 8px;font-size:1.15rem;font-weight:700}.landing-enquiry-hint,.landing-enquiry-plan{margin:0 0 12px}.landing-enquiry-hint{color:var(--muted);line-height:1.45}.landing-enquiry-plan{font-weight:700;color:var(--primary)}.landing-enquiry-form{display:grid;grid-gap:12px;gap:12px}.landing-enquiry-form textarea{resize:vertical;min-height:72px}.landing-enquiry-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.landing-enquiry-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:4px}.landing-enquiry-actions .btn{width:100%}.landing-enquiry-fallback{margin:0;color:var(--muted);font-size:.88rem}.landing-enquiry-fallback a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}.landing-enquiry-card.is-done,.landing-enquiry-card.is-done h2,.landing-enquiry-done,.landing-enquiry-done p{text-align:center}.landing-enquiry-done{display:grid;grid-gap:16px;gap:16px;justify-items:center}.landing-enquiry-done p{margin:0;line-height:1.5;width:100%}@media (max-width:767px){.landing-enquiry-backdrop{padding:0;align-items:flex-end;justify-content:stretch}.landing-enquiry-card{width:100%;max-width:100%;max-height:min(92dvh,calc(100dvh - env(safe-area-inset-top, 0px)));border-radius:16px 16px 0 0;padding:22px 16px calc(16px + env(safe-area-inset-bottom, 0px))}.landing-enquiry-actions .btn{min-height:48px}.landing-enquiry-card.is-done h2,.landing-enquiry-done,.landing-enquiry-done p{text-align:center}}@media (max-width:860px){.landing-hero{padding-top:36px;gap:28px}.landing-feature-grid,.landing-hero,.landing-price-grid{grid-template-columns:1fr}}@media (max-width:767px){.landing-header{grid-template-columns:1fr auto;grid-template-areas:"brand right" "nav nav";padding:10px 16px 12px;gap:4px 12px}.landing-brand{grid-area:brand}.landing-nav-center{grid-area:nav;justify-self:center;gap:24px;padding:4px 0 2px}.landing-nav-right{grid-area:right}.landing-features,.landing-hero,.landing-pricing{width:min(1120px,calc(100% - 32px))}.landing-hero h1{font-size:1.85rem}.landing-price-amount{font-size:1.05rem}.landing-price-custom,.landing-price-year .landing-price-amount{font-size:1.55rem}}