:root{--ink:#16171a;--ink-soft:#6b6d71;--ink-faint:#9a9c9f;--line:#e4e1d8;--line-strong:#16171a;--surface:#ffffff;--canvas:#f8f6f1;--wheat:#ead292;--wheat-tint:#fbf5e6;--wheat-deep:#8a6f2e;--ok:#2f6b45;--ok-tint:#f1f7f3;--ok-line:#cde0d4;--warn:#8a5a12;--err:#9b2c2c;--radius:8px;--shadow:0 1px 2px rgba(22,23,26,0.05),0 10px 28px rgba(22,23,26,0.05)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--canvas);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}.page{max-width:660px;margin:0 auto;padding:40px 20px 64px}.masthead{padding-bottom:28px}.masthead img{display:block;width:190px;height:auto;max-width:55%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px;margin-bottom:18px}.label{display:block;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint)}.amount-due{font-size:44px;font-weight:700;letter-spacing:-.025em;line-height:1.05;margin:8px 0 4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:18px;gap:18px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.meta-grid .label{margin-bottom:3px}.line-items{width:100%;border-collapse:collapse;margin-top:14px}.line-items th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);padding:0 0 10px;border-bottom:1.5px solid var(--line-strong)}.line-items td{padding:13px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:15px}.line-items tr:last-child td{border-bottom:none}.line-items td.amount,.line-items th.amount{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:20px}.totals{margin-top:18px;display:grid;grid-gap:8px;gap:8px;font-size:15px}.totals div{display:flex;justify-content:space-between;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.totals span:first-child{color:var(--ink-soft)}.totals .grand{font-weight:700;font-size:18px;padding-top:12px;margin-top:4px;border-top:1.5px solid var(--line-strong)}.totals .grand span:first-child{color:var(--ink)}.rail-choice{display:grid;grid-gap:10px;gap:10px;margin:18px 0 4px}.rail{display:flex;gap:14px;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--radius);padding:16px 18px;cursor:pointer;background:var(--surface);transition:border-color .12s ease,background .12s ease}.rail:hover{border-color:var(--ink-soft)}.rail:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px var(--wheat)}.rail:has(input:checked),.rail[data-selected=true]{border-color:var(--ink);background:var(--wheat-tint)}.rail:not(:has(input:checked))[data-selected=true]{border-color:var(--line);background:var(--surface)}.rail input[type=radio]{margin:3px 0 0;width:17px;height:17px;accent-color:var(--ink);flex-shrink:0;cursor:pointer}.rail>span{display:block}.rail-title{font-weight:650;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.rail-note{display:block;font-size:14px;color:var(--ink-soft);margin-top:3px}.pill{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;background:var(--wheat);color:var(--ink);padding:3px 8px;border-radius:3px;white-space:nowrap}.autopay-box{border:1px solid var(--line);border-radius:var(--radius);padding:17px 18px;background:var(--canvas);margin:18px 0}.autopay-box label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-weight:600;font-size:15px}.autopay-box input[type=checkbox]{margin-top:3px;width:17px;height:17px;accent-color:var(--ink);flex-shrink:0;cursor:pointer}.mandate-text{font-size:12.5px;color:var(--ink-soft);margin:11px 0 0 29px;line-height:1.55}button.pay{width:100%;background:var(--ink);color:#fff;border:none;border-radius:var(--radius);padding:17px;font-size:16px;font-weight:650;letter-spacing:.01em;cursor:pointer;transition:background .12s ease,opacity .12s ease}button.pay:hover:not(:disabled){background:#000}button.pay:focus-visible{outline:none;box-shadow:0 0 0 3px var(--wheat)}button.pay:disabled{opacity:.4;cursor:not-allowed}.linkish{background:none;border:none;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--wheat);text-decoration-color:var(--wheat);text-decoration-thickness:2px;text-underline-offset:3px;cursor:pointer;font-size:14px;padding:0}.notice{border-radius:var(--radius);padding:15px 17px;font-size:14.5px;line-height:1.6;margin:16px 0}.notice.error{background:#fdf3f3;border:1px solid #f0cccc;color:var(--err)}.notice.ok{background:var(--ok-tint);border:1px solid var(--ok-line);color:var(--ok)}.notice.info{background:var(--wheat-tint);border:1px solid #eadfbf;color:var(--wheat-deep)}.footer{margin-top:36px;padding-top:22px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-soft)}.footer p{margin:4px 0}.footer .tag{font-weight:600;color:var(--ink);letter-spacing:.01em}.footer .fine{margin-top:12px;font-size:12px;color:var(--ink-faint)}.footer a{color:var(--ink);-webkit-text-decoration-color:var(--wheat);text-decoration-color:var(--wheat);text-decoration-thickness:2px;text-underline-offset:2px}.card h1{letter-spacing:-.02em}.card h2{letter-spacing:-.01em}.card ul{padding-left:20px;margin:10px 0}.card li{margin-bottom:7px}.admin{max-width:980px;margin:0 auto}body:has(.admin) .page{max-width:1040px}.admin-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 0 20px;margin-bottom:8px;border-bottom:1px solid var(--line)}.admin-nav-links{display:flex;gap:20px}.admin-nav-links a{color:var(--ink);font-weight:600;font-size:15px;text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px}.admin-nav-links a:hover{border-bottom-color:var(--wheat)}.admin:has(.sched-page) .admin-nav-links a[href="/admin/schedule"]{border-bottom-color:var(--wheat)}.admin-nav-meta{display:flex;align-items:center;gap:14px;font-size:13px}.admin-nav-meta .linkish,.admin-nav-meta a{color:var(--ink-soft);font-size:13px;text-decoration:none}.admin-nav-meta .linkish:hover,.admin-nav-meta a:hover{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--wheat);text-decoration-color:var(--wheat);text-decoration-thickness:2px;text-underline-offset:3px}:where(.admin) a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-decoration-thickness:1px;text-underline-offset:3px}:where(.admin) a:hover{-webkit-text-decoration-color:var(--wheat);text-decoration-color:var(--wheat);text-decoration-thickness:2px}:where(.admin) .notice a{color:inherit;-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}a.admin-btn{text-decoration:none;display:inline-block}.admin-btn:focus-visible,.linkish:focus-visible,:where(.admin) a:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:3px}.admin-h1{font-size:26px;letter-spacing:-.02em;margin:8px 0 20px}.admin-h2{font-size:18px;letter-spacing:-.01em;margin:0 0 10px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.admin-stats>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.admin-stat{font-size:28px;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:6px 0 2px}.admin-sub{font-size:13px;color:var(--ink-soft);margin-top:2px}.admin-late{color:var(--err);font-weight:600}.admin-attention{list-style:none;padding:0;margin:14px 0 0}.admin-attention li{padding:12px 14px;border-radius:var(--radius);margin-bottom:8px;font-size:14.5px;line-height:1.55;border-left:3px solid var(--wheat);background:var(--wheat-tint)}.admin-attention li[data-severity=high]{border-left-color:var(--err);background:#fdf3f3}.admin-table th{white-space:nowrap}.admin-table td{vertical-align:top}.admin-table td.amount+td,.admin-table th.amount+th{padding-left:32px}.admin-table td.service,.admin-table th.service{padding-right:32px;white-space:nowrap}.service-select{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer}.service-select:disabled{opacity:.6;cursor:default}.send-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.send-divider{width:1px;height:22px;background:var(--line);margin:0 4px}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:28px 16px;border:1.5px dashed var(--line);border-radius:var(--radius);background:var(--canvas);text-align:center;cursor:pointer;transition:border-color .12s ease,background .12s ease}.dropzone:focus-visible,.dropzone:hover{border-color:var(--ink-faint)}.dropzone[data-dragging=true]{border-color:var(--ink);background:var(--wheat-tint)}.admin-envelope{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}.admin-envelope:hover{color:var(--wheat-deep)}.admin-envelope-label{letter-spacing:.01em}.admin-actions{text-align:right;white-space:nowrap}.admin-btn{font-family:inherit;font-size:13px;font-weight:600;padding:7px 12px;border-radius:6px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;margin-left:6px}.admin-btn:hover:not(:disabled){border-color:var(--ink-soft)}.admin-btn-go{background:var(--ink);color:#fff;border-color:var(--ink)}.admin-btn-go:hover:not(:disabled){background:#000}.admin-btn:disabled{opacity:.4;cursor:not-allowed}.admin-pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:3px;background:var(--line);color:var(--ink)}.admin-pill[data-status=succeeded]{background:var(--ok-tint);color:var(--ok)}.admin-pill[data-status=disputed],.admin-pill[data-status=failed]{background:#fdf3f3;color:var(--err)}.admin-pill[data-status=awaiting-verification],.admin-pill[data-status=refunded]{background:var(--wheat-tint);color:var(--wheat-deep)}.admin-pill[data-status=processing],.admin-pill[data-status=won]{background:var(--ok-tint);color:var(--ok)}.admin-pill[data-status=bid_sent]{background:var(--wheat-tint);color:var(--wheat-deep)}.admin-pill[data-status=lost]{background:#fdf3f3;color:var(--err)}.admin-pill[data-status=qbo-link],.admin-pill[data-status=wire-requested]{background:var(--wheat-tint);color:var(--wheat-deep)}.admin code{background:var(--canvas);padding:2px 5px;border-radius:3px;font-size:13px}@media (max-width:640px){.admin-actions{text-align:left;white-space:normal;padding-top:10px}.admin-btn{margin:4px 6px 0 0}}.invoice-search{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:-6px 0 18px}.invoice-search input[type=search]{flex:1 1;min-width:220px;font:inherit;font-size:15px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink)}.invoice-search input[type=search]:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.invoice-search .admin-btn{margin-left:0}.payments-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.payments-head a{font-size:13px}.today-page{--tv-project:#a07c2c;--tv-project-tint:#f6eedb;--tv-maint:#2f6fae;--tv-maint-tint:#e7eff8;--tv-invoiced:#b8913a;--tv-collected:#5c4515;--tv-current:#8e9095;--tv-emailing:#b7791f;--tv-call:var(--err)}.today-date{margin:-6px 0 18px}.today-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:18px}.today-split>.card{margin-bottom:0}.today-empty{margin:10px 0 0}.tv-muted{font-weight:400}.tv-muted,.tv-note{color:var(--ink-soft)}.tv-note{margin:12px 0 0;font-size:13px}.tv-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}:where(.admin) a.tv-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-gap:10px 12px;gap:10px 12px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;color:var(--ink);text-decoration:none;transition:border-color .15s}:where(.admin) a.tv-tile:hover{border-color:var(--ink-faint)}.tv-tile-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--canvas);color:var(--ink-soft)}.tv-tile[data-state=todo] .tv-tile-icon{background:var(--wheat-tint);color:var(--wheat-deep)}.tv-tile[data-state=urgent] .tv-tile-icon{background:#fbefef;color:var(--err)}.tv-tile[data-state=clear] .tv-tile-icon{background:var(--ok-tint);color:var(--ok)}.tv-tile-body{display:flex;flex-direction:column;min-width:0}.tv-tile-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.tv-tile-value{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.tv-tile-sub{font-size:12.5px;color:var(--ink-soft)}.tv-chip{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--canvas);color:var(--ink-soft)}.tv-chip[data-state=clear]{background:var(--ok-tint);color:var(--ok)}.tv-chip[data-state=todo]{background:var(--wheat-tint);color:var(--wheat-deep)}.tv-chip[data-state=urgent]{background:#fbefef;color:var(--err)}.tv-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--ink);margin-top:10px}.tv-legend span{display:inline-flex;align-items:center;gap:6px}.tv-legend b{font-weight:600}.tv-legend-stack{flex-direction:column;gap:6px}.tv-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex:none}.tv-swatch[data-kind=project]{background:var(--tv-project)}.tv-swatch[data-kind=maintenance]{background:var(--tv-maint)}.tv-swatch[data-kind=tentative]{background:repeating-linear-gradient(135deg,var(--tv-project) 0 2px,var(--tv-project-tint) 2px 5px)}.tv-swatch[data-kind=clash]{background:var(--surface);box-shadow:inset 0 0 0 2px var(--err)}.tv-swatch[data-kind=current]{background:var(--tv-current)}.tv-swatch[data-kind=emailing]{background:var(--tv-emailing)}.tv-swatch[data-kind=call]{background:var(--tv-call)}.tv-board+.tv-board{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.tv-board-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.tv-board-title{font-size:16px;font-weight:700}.tv-more{font-size:13px}.tv-board-grid{display:grid;grid-template-columns:96px minmax(0,1fr) minmax(0,1fr);grid-gap:6px;gap:6px}.tv-board-row{display:contents}.tv-col-head{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.tv-resource{font-weight:600;font-size:14px;padding-top:10px}.tv-board-row:not([data-crew]) .tv-resource{font-weight:500;color:var(--ink-soft)}.tv-half{display:flex;flex-direction:column;gap:4px;min-height:44px;background:var(--canvas);border-radius:6px;padding:4px}.tv-span{grid-column:2/span 2}.tv-free{margin:auto;font-size:12.5px;color:var(--ink-faint)}.tv-block{display:flex;flex-direction:column;gap:1px;border-radius:4px;padding:6px 8px 6px 10px;border-left:4px solid;min-width:0}:where(.admin) a.tv-block{text-decoration:none;color:var(--ink)}.tv-block[data-kind=project]{background:var(--tv-project-tint);border-left-color:var(--tv-project)}.tv-block[data-kind=maintenance]{background:var(--tv-maint-tint);border-left-color:var(--tv-maint)}.tv-block[data-tentative]{background:repeating-linear-gradient(135deg,var(--tv-project-tint) 0 6px,var(--surface) 6px 10px)}.tv-block[data-clash]{box-shadow:inset 0 0 0 2px var(--err)}.tv-block-name{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv-block-sub{font-size:12px;color:var(--ink-soft)}.tv-block-flag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--err)}.tv-hero-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:8px 0 12px}.tv-hero{font-size:34px;font-weight:700;letter-spacing:-.02em;line-height:1}.tv-rows{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:14px 12px;gap:14px 12px;align-items:center}.tv-row{display:contents}.tv-row-label{display:flex;flex-direction:column;font-weight:600;font-size:14px;line-height:1.25}.tv-row-label .tv-muted{font-size:12px}.tv-row-track{height:16px;background:var(--canvas)}.tv-row-fill,.tv-row-track{display:block;border-radius:0 6px 6px 0}.tv-row-fill{height:100%}.tv-row-fill[data-kind=planned]{background:var(--tv-current)}.tv-row-fill[data-kind=invoiced]{background:var(--tv-invoiced)}.tv-row-fill[data-kind=collected]{background:var(--tv-collected)}.tv-row-value{font-weight:700;font-size:15px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-bar{display:flex;gap:2px;height:18px}.tv-bar-seg{flex-basis:0;min-width:6px}.tv-bar-seg:first-child{border-radius:0}.tv-bar-seg:last-child{border-radius:0 6px 6px 0}.tv-bar-seg[data-kind=current]{background:var(--tv-current)}.tv-bar-seg[data-kind=emailing]{background:var(--tv-emailing)}.tv-bar-seg[data-kind=call]{background:var(--tv-call)}.tv-week{display:grid;grid-template-columns:repeat(var(--tv-days,8),minmax(0,1fr));grid-gap:6px;gap:6px;margin-top:10px}.tv-day{display:flex;flex-direction:column;gap:4px;min-height:92px;background:var(--canvas);border-radius:6px;padding:8px 6px;border-top:3px solid transparent}.tv-day[data-today]{border-top-color:var(--ink)}.tv-day[data-late]{background:#fbefef;border-top-color:var(--err)}.tv-day-head{display:flex;flex-direction:column;font-size:12px;line-height:1.3}.tv-day-label{display:inline-flex;align-items:center;gap:3px;font-weight:700}.tv-day[data-late] .tv-day-label{color:var(--err)}.tv-day-total{font-size:15px;font-weight:700;margin-top:2px}:where(.admin) a.tv-bill{display:flex;flex-direction:column;background:var(--surface);border-left:3px solid var(--tv-project);border-radius:4px;padding:4px 6px;font-size:12px;line-height:1.3;color:var(--ink);text-decoration:none}.tv-bill-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv-cols{display:block;width:100%;height:auto;margin-top:4px}.tv-col{fill:var(--tv-invoiced)}.tv-col-now{fill:var(--tv-collected)}.tv-baseline{stroke:var(--line);stroke-width:1}.tv-axis{font-size:11px;fill:var(--ink-soft)}.tv-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}:where(.admin) a.tv-pill{display:inline-flex;align-items:baseline;gap:6px;padding:5px 10px;border-radius:999px;background:var(--canvas);border:1px solid var(--line);font-size:12.5px;color:var(--ink);text-decoration:none}:where(.admin) a.tv-pill[data-late]{background:#fbefef;border-color:#efcccc}@media (max-width:900px){.tv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-week{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:760px){.today-split{grid-template-columns:1fr}}@media (max-width:480px){.tv-tiles{gap:10px}:where(.admin) a.tv-tile{grid-template-columns:1fr;padding:12px;gap:8px}.tv-tile-icon{width:32px;height:32px}.tv-tile-value{font-size:24px}.tv-block-name{white-space:normal}.tv-board-grid{grid-template-columns:72px minmax(0,1fr) minmax(0,1fr)}.tv-week{grid-template-columns:repeat(2,minmax(0,1fr))}}.sched-intro{margin:0 0 18px}.sched-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:16px}.sched-seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}:where(.admin) .sched-seg a{font-size:13px;font-weight:600;padding:7px 14px;color:var(--ink);text-decoration:none;white-space:nowrap}.sched-seg a+a{border-left:1px solid var(--line)}.sched-seg a:hover{background:var(--canvas)}.sched-seg a[aria-current=page]{background:var(--wheat-tint)}:where(.admin) .sched-seg a:focus-visible{outline:2px solid var(--ink);outline-offset:-3px;border-radius:0}.sched-range{font-size:13px;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.notice.sched-notice{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;padding:12px 14px;margin:0 0 12px}.sched-notice ul{margin:4px 0 0;padding-left:18px}.sched-notice li{margin:0}.sched-glyph{flex:none;width:18px;height:18px;margin-top:1px;border:1.5px solid;border-radius:50%;font-size:11px;font-weight:700;line-height:15px;text-align:center}.card.sched-card{padding:0;overflow:hidden}.sched-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}.sched-scroll::-webkit-scrollbar{height:6px}.sched-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.sched-grid{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sched-grid td,.sched-grid th{padding:8px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);background:var(--surface)}.sched-cell,.sched-week{min-width:88px;border-left:1px solid var(--line)}.sched-grid thead th{vertical-align:bottom;padding-top:10px}.sched-month{display:block;min-height:15px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.sched-day{font-size:15px;font-weight:500}.sched-now{display:inline-block;margin-left:6px;padding:1px 5px;border-radius:3px;background:var(--wheat);color:var(--ink);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;vertical-align:2px}.sched-grid [data-now]{background:var(--wheat-tint)}.sched-week[data-now] .sched-day{font-weight:700}.sched-lead{position:-webkit-sticky;position:sticky;left:0;z-index:2;min-width:140px;white-space:nowrap;border-right:1px solid var(--line);box-shadow:4px 0 6px -4px rgba(22,23,26,.14)}.sched-grid thead .sched-lead{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.sched-row .sched-lead{font-weight:400}.sched-row .sched-lead[data-crew]{font-weight:600}.sched-row>*{height:44px}.sched-row:hover>*{background:var(--canvas)}.sched-row:hover>[data-now]{background:color-mix(in srgb,var(--wheat-tint) 70%,var(--wheat))}.sched-grid .sched-section>*{border-bottom:none;padding:12px 10px 2px}.sched-grid .sched-section th{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.sched-group+.sched-group .sched-section>*{border-top:1px solid var(--line)}.sched-group:last-of-type .sched-row:last-child>*{border-bottom:none}.sched-grid td[data-clash]{background:#fdf3f3}.sched-free{font-size:12px;color:color-mix(in srgb,var(--ink-soft) 55%,var(--ink-faint))}.sched-chips{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.sched-chip,:where(.admin) .sched-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:12.5px;font-weight:600;line-height:1.45;text-decoration:none;white-space:nowrap;transition:border-color .12s ease,background .12s ease}a.sched-chip:hover{border-color:var(--ink-soft);background:var(--canvas)}:where(.admin) a.sched-chip:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:6px}.sched-days{font-weight:400;color:var(--ink-soft)}.sched-chip[data-firm=false]{border-style:dashed;border-color:var(--ink-soft);font-style:italic}.sched-chip[data-confirmed=true]{border-color:var(--ok-line)}.sched-tick{color:var(--ok);font-size:11px;font-weight:700}.sched-chip[data-clash]{border:1.5px solid var(--err);color:var(--err)}.sched-chip[data-clash] .sched-days{color:var(--err)}.sched-flag{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--err);color:#fff;font-size:10px;font-style:normal;font-weight:700;line-height:14px;text-align:center}.sched-bar{display:block;position:relative;height:3px;margin-top:7px;border-radius:2px;background:var(--canvas);overflow:hidden}.sched-bar:after{content:"";position:absolute;inset:0 auto 0 0;width:0;background:var(--ink-faint);border-radius:2px}.sched-bar[data-load="1"]:after{width:20%}.sched-bar[data-load="2"]:after{width:40%}.sched-bar[data-load="3"]:after{width:60%}.sched-bar[data-load="4"]:after{width:80%}.sched-bar[data-load="5"]:after{width:100%}.sched-grid .sched-pad{width:28px;min-width:28px;padding:0}.sched-legend{display:flex;flex-wrap:wrap;gap:10px 22px;padding:12px 14px;border-top:1px solid var(--line);background:var(--canvas);font-size:12.5px;color:var(--ink-soft)}.sched-key{display:inline-flex;align-items:center;gap:8px}.sched-bar.sched-bar-demo{display:inline-block;width:44px;margin:0;background:var(--line)}.sched-codes{margin:10px 0 32px;font-size:12.5px}@media (max-width:760px){.sched-toolbar{align-items:flex-start}:where(.admin) .sched-seg a{min-height:44px;display:inline-flex;align-items:center;padding:0 12px}.sched-lead{min-width:104px}.sched-legend{gap:8px 16px}}.sched-tools{display:flex;flex-wrap:wrap;gap:10px}.sched-seg a[aria-current=page]{font-weight:700}.sched-days .sched-cell,.sched-days .sched-week{min-width:64px}.sched-dayhead .sched-weekday{display:block;font-size:11px;color:var(--ink-soft)}.sched-grid [data-weekend]:not([data-now]){background:var(--canvas)}.sched-daycell[data-busy]{opacity:.5}button.sched-chip{font-family:inherit;cursor:pointer}button.sched-chip:hover{border-color:var(--ink-soft);background:var(--canvas)}.sched-add:focus-visible,button.sched-chip:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.sched-add{width:24px;height:22px;padding:0;border:1px dashed var(--line);border-radius:6px;background:transparent;color:var(--ink-soft);font:inherit;font-size:14px;line-height:1;cursor:pointer}.sched-add:focus-visible,.sched-row:hover .sched-add{border-color:var(--ink-soft);color:var(--ink)}.sched-add:disabled{cursor:default;opacity:.4}.sched-add.sched-add-demo{display:inline-flex;align-items:center;justify-content:center}.sched-pop{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:190px;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);white-space:normal}.sched-pop select{max-width:100%;font:inherit;font-size:13px}.sched-pop-title{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}.sched-pop-name{font-size:13px;font-weight:600}.sched-pop-link{font-size:13px}@media (hover:none){.sched-add{border-color:var(--ink-soft);color:var(--ink);width:32px;height:32px}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.exec-intro{margin:0 0 24px}.exec-section{margin-bottom:34px}.card.exec-card{padding:18px 20px}.exec-card>.label{display:block;margin-bottom:8px}.exec-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:14px;gap:14px}.exec-split .card{margin-bottom:0}.exec-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.exec-table{width:100%;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.exec-table td,.exec-table th{padding-top:8px;padding-bottom:8px;vertical-align:middle}.exec-table td.amount+td,.exec-table th.amount+th{padding-left:20px}.exec-total td{font-weight:700;border-top:1px solid var(--line)}.exec-months tr[data-now] td{background:var(--wheat-tint)}.exec-now{margin-left:8px;padding:1px 5px;border-radius:3px;background:var(--wheat);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.exec-bar-col{width:38%}.exec-bar{height:8px;background:var(--canvas)}.exec-bar,.exec-bar-fill{display:block;border-radius:0 4px 4px 0}.exec-bar-fill{height:100%;background:#a07c2c}.exec-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--ink-soft);margin-bottom:6px}.exec-key{display:inline-flex;align-items:center;gap:7px}.exec-swatch{width:12px;height:12px;border-radius:3px}.exec-chart{display:block;width:100%;min-width:620px;height:auto}.exec-grid{stroke:var(--line);stroke-width:1}.exec-baseline{stroke:var(--ink-faint);stroke-width:1}.exec-axis{fill:var(--ink-soft);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.exec-axis-now{fill:var(--ink);font-weight:700}.exec-now-band{fill:var(--wheat-tint)}.exec-note{margin:12px 0 0;font-size:13px;line-height:1.55}.admin:has(.exec-page) .admin-nav-links a[href="/admin/exec"]{border-bottom-color:var(--wheat)}@media (max-width:760px){.card.exec-card{padding:14px}.exec-bar-col{width:30%}}@media (max-width:760px){.admin,body:has(.admin) .page{max-width:100%}.admin-nav{flex-wrap:wrap;gap:10px}.admin-nav-links{gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.admin-nav-links a{white-space:nowrap;padding-bottom:6px}.admin-h1{font-size:22px}.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px}.admin-stat{font-size:22px}.admin-table{font-size:14px;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table tbody,.admin-table thead{display:table;width:100%}input,select,textarea{font-size:16px;max-width:100%}.card input[type=date],.card input[type=text],.card label,.card select{width:100%!important}.admin-btn,.service-select{min-height:44px;display:inline-flex;align-items:center}.send-row{gap:8px}.dropzone{padding:20px 12px}}@media (max-width:480px){.page{padding:24px 14px 48px}.card{padding:22px 18px}.amount-due{font-size:34px}.masthead img{width:155px;max-width:65%}}.sched-half{margin-left:6px;padding:1px 5px;border-radius:4px;background:var(--canvas);font-size:10.5px;font-weight:700;letter-spacing:.05em}.sched-half,.sched-row[data-half=pm] .sched-lead{color:var(--ink-soft)}.sched-row[data-half=am]>*{border-bottom-style:dashed}.sched-row[data-half]>*{height:38px}.sched-chip[data-kind=maintenance]{background:var(--wheat-tint,var(--canvas));border-color:color-mix(in srgb,var(--line) 70%,var(--ink-soft));font-weight:500}.sched-chip[data-allday]{border-left-width:3px;border-left-color:var(--ink-soft)}.sched-row[data-half] .sched-chips{flex-direction:row;flex-wrap:wrap;gap:3px}.flag-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.flag{flex:1 1 auto;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.flag>summary{display:flex;align-items:center;gap:8px;padding:7px 11px;cursor:pointer;font-size:13px;line-height:1.45;color:var(--ink);list-style:none;border-radius:7px}.flag>summary::-webkit-details-marker{display:none}.flag>summary:after{content:"";width:6px;height:6px;margin-left:auto;border-right:1.5px solid var(--ink-soft);border-bottom:1.5px solid var(--ink-soft);transform:rotate(45deg) translate(-2px,-2px);transition:transform .12s ease}.flag[open]>summary:after{transform:rotate(-135deg) translate(-2px,-2px)}.flag>summary:hover{background:var(--canvas)}.flag>summary:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.flag-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flag-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ink-soft)}.flag[data-tone=warn] .flag-dot{background:#b4332b}.flag[data-tone=warn]{border-color:color-mix(in srgb,#b4332b 28%,var(--line))}.flag[data-tone=info] .flag-dot{background:#9a7b2f}.flag-body{padding:2px 11px 11px 27px;font-size:13px;line-height:1.55;color:var(--ink-soft)}.flag-body ul{margin:0;padding-left:16px}.flag-body li+li{margin-top:5px}.flag-body a{color:var(--ink)}@media (max-width:640px){.flag{flex-basis:100%}.flag-summary{white-space:normal}}.group-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:500;line-height:1.4;cursor:pointer;transition:border-color .12s ease,background .12s ease}.group-chip:hover:not(:disabled){border-color:var(--ink-soft);background:var(--canvas)}.group-chip:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.group-chip:disabled{opacity:.55;cursor:default}.group-chip[data-on]{border-color:var(--ink);background:var(--ink);color:var(--surface)}.group-chip[data-on] .group-chip-count{background:color-mix(in srgb,var(--surface) 26%,transparent);color:var(--surface)}.group-chip[data-new]{border-style:dashed;color:var(--ink-soft);font-weight:400}.group-chip-count{padding:0 6px;border-radius:999px;background:var(--canvas);color:var(--ink-soft);font-size:11.5px;font-weight:600}@media (max-width:760px){.admin-table:not(.admin-cards) tbody,.admin-table:not(.admin-cards) thead{width:max-content;min-width:100%}}@media (max-width:900px){.admin-cards,.admin-cards tbody,.admin-cards td,.admin-cards thead,.admin-cards tr{display:block;width:auto;min-width:0}.admin-cards thead{display:none}.admin-cards,.admin-cards tbody{overflow:visible}.admin-cards tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:14px;margin-bottom:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.admin-cards tr:last-child{margin-bottom:0}.admin-cards td{border:0;padding:0}.admin-cards td:first-child{flex:1 1 100%}.admin-cards td:not(:first-child){flex:0 1 auto;white-space:normal}.admin-cards td.amount+td{padding-left:0}.admin-cards td.amount{text-align:left;font-size:17px;font-weight:700}.admin-cards .admin-actions{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;text-align:left;white-space:normal}.admin-cards .admin-actions>*{flex:0 0 auto}.admin-cards .admin-actions .notice,.admin-cards .notice{flex:1 1 100%}.admin-cards tr>*{border-bottom:0}.admin-cards-figures tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:16px;column-gap:16px;grid-row-gap:0;row-gap:0;align-items:start}.admin-cards-figures td:first-child{grid-column:1;grid-row:1/20}.admin-cards-figures td:not(:first-child){grid-column:2;text-align:right}.admin-cards-figures td.admin-actions{grid-column:1/-1;text-align:left;margin-top:10px}.admin-cards-figures td.amount{font-size:18px;line-height:1.3}.admin-cards-figures td.amount+td{margin-top:2px}}@media (min-width:901px){.admin-table td[data-label]:empty:after{content:"—";color:var(--ink-soft)}}@media (max-width:900px){.admin-cards-labelled td[data-label]:empty{display:none}.admin-cards-labelled td[data-label]:not(:empty){display:inline-flex;align-items:baseline;gap:6px;text-align:left}.admin-cards-labelled td[data-label]:not(:empty):before{content:attr(data-label);flex:none;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.admin-cards-labelled td[data-label=""]:not(:empty):before,.admin-cards-labelled td[data-label=Status]:not(:empty):before{content:none}.admin-cards-labelled td.amount,.admin-cards-labelled td.amount+td{padding-left:0;text-align:left}.admin-cards-labelled td.amount{font-size:15px;font-weight:700}.admin-cards-labelled tr{column-gap:16px;row-gap:6px}}.attach-list{margin:6px 0 10px;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.attach-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13.5px}.attach-name{flex:1 1 220px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.attach-item .admin-sub,.attach-item .linkish{flex:none}.dropzone[data-compact]{padding:14px 12px}.dropzone[data-compact] strong{font-size:14px}.filter-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}.filter-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;font-size:13px;line-height:1.2;color:var(--ink-soft);text-decoration:none;background:var(--surface);white-space:nowrap}.filter-chip:hover{border-color:var(--ink-soft);color:var(--ink)}.filter-chip[data-current=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}.filter-chip-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px;opacity:.65}.attach-inline{gap:8px;flex:none}.attach-inline,.attach-inline label{display:inline-flex;align-items:center}.attach-inline label{gap:5px;white-space:nowrap}.inspect-month{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:420px;margin:0 0 18px}.inspect-board{list-style:none;margin:0;padding:0}.inspect-board li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:12px;gap:12px;padding:14px 18px;border-top:1px solid var(--line)}.inspect-board li:first-child{border-top:0}.inspect-board-flags{display:flex;gap:6px}.inspect-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;font-size:12px;font-weight:700}.inspect-chip,.inspect-count,.inspect-dot,.inspect-flag{--flag:var(--line);--flag-ink:var(--ink)}[data-flag=green]{--flag:#9fcc7c;--flag-tint:#eef6e8;--flag-ink:#2f5a17}[data-flag=yellow]{--flag:#f2c35b;--flag-tint:#fbf3df;--flag-ink:#7a5408}[data-flag=red]{--flag:#e48b8b;--flag-tint:#fbecec;--flag-ink:#8a2626}[data-flag=na]{--flag:#d9d6cd;--flag-tint:#f3f1ec;--flag-ink:#5f5e5a}.inspect-count{background:var(--flag-tint);color:var(--flag-ink)}.inspect-card{padding:18px 20px}.inspect-standing div+div{margin-top:4px}.inspect-field{display:flex;flex-direction:column;gap:4px;margin-top:10px}.inspect-field input[type=date]{max-width:200px}.inspect-items{list-style:none;margin:8px 0 0;padding:0}.inspect-item{padding:12px 0 12px 12px;border-top:1px solid var(--line);border-left:4px solid transparent}.inspect-item[data-flag=red],.inspect-item[data-flag=yellow]{border-left-color:var(--flag)}.inspect-item-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.inspect-item-label{font-size:15px}.inspect-flags{display:flex;gap:8px;flex:none}.inspect-flag{width:40px;height:40px;border-radius:50%;border:2px solid var(--flag);background:var(--surface);color:var(--flag-ink);font:700 10px/1 inherit;cursor:pointer;padding:0}.inspect-flag[data-flag=na]{border-radius:10px;width:44px}.inspect-flag[data-on=yes]{background:var(--flag);box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--flag)}.inspect-chip{flex:none;font-size:12px;font-weight:700;padding:4px 10px;border-radius:12px;background:var(--flag-tint,var(--canvas));color:var(--flag-ink)}.inspect-extra{display:flex;flex-wrap:wrap;gap:10px}.inspect-note{width:100%;margin-top:10px;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;resize:vertical}.inspect-note-read{margin:8px 0 0;font-size:14px;color:var(--ink-soft);white-space:pre-wrap}.inspect-add-note{font-size:13px;padding:6px 0 0;color:var(--ink-soft)}.inspect-save{display:block;font-size:12px;color:var(--ink-faint);margin-top:4px}.inspect-save[data-state=saved]{color:var(--ok)}.inspect-save[data-state=error]{color:var(--err);font-weight:600}.inspect-problems{margin:0 0 12px;padding-left:18px}.inspect-finish .admin-btn:first-child{margin-left:0}.inspect-grid-wrap{overflow-x:auto}.inspect-grid{border-collapse:collapse;font-size:13px}.inspect-grid td,.inspect-grid th{padding:5px 6px;text-align:center;white-space:nowrap}.inspect-grid td:first-child,.inspect-grid th:first-child{text-align:left;padding-left:0}.inspect-grid thead th{font-weight:600;color:var(--ink-soft)}.inspect-dot{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--flag);vertical-align:middle}.inspect-dot[data-flag=unset]{background:transparent;border:1px dashed var(--line)}@media (max-width:640px){.inspect-card{padding:14px}.inspect-item-top{flex-direction:column;align-items:flex-start;gap:8px}.inspect-flags{gap:12px}.inspect-flag{width:44px;height:44px}.inspect-flag[data-flag=na]{width:48px}.inspect-board li{grid-template-columns:minmax(0,1fr) auto}.inspect-board-go{grid-column:1/-1}}