/* Central semantic palette. Print and archived PDFs deliberately stay light. */
@media screen {
:root,.app-shell,.public-shell{color-scheme:light;--canvas:#f7f7fb;--paper:#ffffff;--heading:#181b35;--text:#272c43;--muted:#596176;--line:#d3d7e3;--tenant-primary:#683ab2;--tenant-primary-deep:#51278e;--tenant-primary-soft:#eee6fb;--tenant-primary-contrast:#ffffff;--selection:#e4d5fb;--hover:#f0ebf8;--focus:#8252cb;--ok:#16713b;--ok-soft:#e4f5e9;--warn:#965800;--warn-soft:#fff0cd;--danger:#b8233b;--danger-soft:#fce6eb;--neutral:#566174;--neutral-soft:#edf0f5;--sidebar:#f2f0f7;--dialog-backdrop:#17172b80;background:var(--canvas);color:var(--text)}
html[data-theme=dark],html[data-theme=dark] .app-shell{color-scheme:dark;--canvas:#141720;--paper:#202530;--heading:#f4f2ff;--text:#e9eaf2;--muted:#b5bed0;--line:#444c60;--tenant-primary:#a778ed;--tenant-primary-deep:#d8baff;--tenant-primary-soft:#352848;--tenant-primary-contrast:#171121;--selection:#4b3567;--hover:#303447;--focus:#c29bff;--ok:#79dfa0;--ok-soft:#173c2a;--warn:#ffcd6c;--warn-soft:#49371a;--danger:#ff9aaa;--danger-soft:#492431;--neutral:#bac4d6;--neutral-soft:#303747;--sidebar:#1b1e29;--dialog-backdrop:#080a12ba}
html{background:var(--canvas);color:var(--text)}body{background:var(--canvas);color:var(--text)}
.app-sidebar,.sidebar-bottom{background:var(--sidebar)}.app-topbar,.mobile-navigation,.navigation-dialog,.notification-panel,dialog{background:var(--paper);color:var(--text)}
h1,h2,h3,h4{color:var(--heading)}a:not(.button):focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:var(--selection)}
.button-primary,.subscription-page a.button-primary,.subscription-page a.button-primary:visited,.subscription-page a.button-primary:hover,.subscription-page a.button-primary:focus{background:var(--tenant-primary);color:var(--tenant-primary-contrast)}
.button-primary:hover{filter:brightness(.93)}.button-secondary{background:var(--tenant-primary-soft);color:var(--tenant-primary-deep)}
.text-link,button.text-link,a.text-link{text-decoration:underline;text-underline-offset:3px;color:var(--tenant-primary-deep)}
.app-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background-color:var(--paper);color:var(--text);border-color:var(--line);color-scheme:inherit}
.app-shell :is(button,input,select,textarea,a):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.side-navigation a,.navigation-submenu a{color:var(--text)}.side-navigation a.active,.navigation-submenu a.active,.navigation-group.active{background:var(--selection);color:var(--tenant-primary-deep)}
:is(.access-status.active,.plant-round-card .round-completion.rating-success,.notice-rating.Within,.round-signal.Within){color:var(--ok);background:var(--ok-soft)}
:is(.access-status.pending,.plant-round-card .round-completion.rating-warning,.notice-rating.Notice,.round-signal.Notice){color:var(--warn);background:var(--warn-soft)}
:is(.access-status.failed,.plant-round-card .round-completion.rating-error,.notice-rating.Outside,.round-signal.Outside){color:var(--danger);background:var(--danger-soft)}
:is(.plant-round-card .round-completion.rating-neutral,.notice-rating.NotRated,.round-signal.NotRated){color:var(--neutral);background:var(--neutral-soft)}
.access-status.blocked{color:var(--danger);background:var(--danger-soft)}.profile-success{color:var(--ok);background:var(--ok-soft)}.form-error{color:var(--danger);background:var(--danger-soft)}
.due-date{color:var(--neutral);background:var(--neutral-soft)}.due-date.near{color:var(--warn);background:var(--warn-soft)}.due-date.overdue{color:var(--danger);background:var(--danger-soft)}
.mfa-key,.work-return-dialog,.round-step-dots li:has(>span),.demo-perspective-form select,.demo-display label,.demo-preview-heading,.offer-card input:not([type=checkbox]),.offer-card select,.offer-card output,.invoice-filters input,.invoice-filters select,.invoice-settings select,.quota-filters input,.quota-filters select,.quota-assignment input:not([type=checkbox]),.quota-assignment select,.subscription-confirm input{background:var(--paper);color:var(--text)}
html[data-theme=dark] :is(.button-danger,.account-settings-content .btn-danger){color:#2b1119}
.offer-workspace .button-primary,.offer-workspace .button-primary:visited,.offer-workspace .button-primary:hover,.offer-workspace .button-primary:focus{color:var(--tenant-primary-contrast);background:var(--tenant-primary)}
.appearance-selector{display:grid;gap:5px;font-size:12px;color:var(--muted);margin:8px 0 14px}.appearance-selector select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.subscription-page{--sub-purple:var(--tenant-primary);--sub-ink:var(--heading);--sub-muted:var(--muted);--sub-line:var(--line);--sub-soft:var(--tenant-primary-soft)}
.trend-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.trend-controls label{margin:0}.trend-controls select,.trend-controls button{height:44px;min-height:44px}.trend-periods{display:flex;gap:0;background:var(--tenant-primary-soft);padding:3px;border-radius:9px}.trend-periods button{height:38px;min-height:38px;border:0;border-radius:6px;background:transparent}.trend-controls .trend-periods button[aria-pressed=true]{background:var(--tenant-primary);color:var(--tenant-primary-contrast)}
.check-row{align-items:flex-start}.check-row input{margin-top:3px;flex-shrink:0}.feedback-slot{min-height:1.7em}.interval-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,1fr);gap:10px;align-items:end}
@media(max-width:480px){.trend-controls{grid-template-columns:minmax(0,1fr)}.trend-periods{width:100%}.trend-periods button{flex:1}.appearance-selector{max-width:260px}}
.company-directory{min-width:0}.directory-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 26px}.directory-heading h1{font-size:34px;margin:10px 0}.directory-heading p{color:var(--muted);margin:0;line-height:1.5}.directory-heading>.button{flex-shrink:0}.directory-tools{display:grid;grid-template-columns:minmax(180px,2fr) 1fr 1fr 90px;gap:12px;padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.directory-tools label{display:grid;gap:7px;font-size:13px;font-weight:600;min-width:0}.directory-tools :is(input,select){width:100%;min-width:0;height:46px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.directory-results{font-size:13px;color:var(--muted);margin:18px 0 10px}.directory-table{border:1px solid var(--line);background:var(--paper);border-radius:12px}.directory-row{display:grid;grid-template-columns:minmax(170px,1.65fr) minmax(100px,1fr) minmax(110px,1fr) minmax(110px,1fr) 100px;gap:16px;padding:18px;align-items:center;border-bottom:1px solid var(--line);font-size:13px;line-height:1.5}.directory-row:last-child{border-bottom:0}.directory-row>div{min-width:0;overflow-wrap:anywhere}.directory-row .button{white-space:nowrap;gap:6px;padding:11px 10px}.directory-row strong{font-size:15px;color:var(--heading)}.directory-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.directory-labels{font-weight:650;color:var(--muted);background:var(--neutral-soft);border-radius:12px 12px 0 0;font-size:12px}.directory-row .directory-partner{color:var(--tenant-primary-deep)}.list-status{display:inline-flex;align-items:center;gap:5px;border-radius:7px;padding:5px 8px;margin:2px 0;font-size:12px;line-height:1.4}.list-status.success{color:var(--ok);background:var(--ok-soft)}.list-status.warning{color:var(--warn);background:var(--warn-soft)}.list-status.danger{color:var(--danger);background:var(--danger-soft)}.list-status.neutral{color:var(--neutral);background:var(--neutral-soft)}.directory-pagination{display:flex;justify-content:space-between;align-items:center;margin:18px 0}.directory-other{border-top:1px solid var(--line);padding-top:16px}.directory-other summary{cursor:pointer;min-height:44px}.directory-empty{padding:24px;background:var(--paper)}
@media(max-width:1100px){.directory-row{grid-template-columns:minmax(145px,1.5fr) 1fr 1fr 1fr 85px;gap:10px;padding:14px}.directory-row .button{padding:10px;gap:6px;white-space:nowrap}}
@media(max-width:700px){.directory-heading{display:grid;gap:16px}.directory-heading h1{font-size:30px}.directory-heading>.button{justify-self:start}.directory-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:14px}.directory-tools label:first-child{grid-column:1/-1}.directory-labels{display:none}.directory-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:16px}.directory-row>div:first-child{grid-column:1/-1}.directory-row>div:nth-child(2){grid-column:1}.directory-row>div:nth-child(3){grid-column:1/-1}.directory-row>div:nth-child(4){grid-column:1}.directory-row>div:last-child{grid-column:2;grid-row:4}.directory-row strong{font-size:16px}.directory-row .button{min-width:90px}.directory-row .list-status{margin-right:6px}}

}

/* The public SSR layout is always light; never write the user's saved theme or html data-theme. */
@media screen {
html:has(.public-shell){color-scheme:light}
.public-shell :is(.public-primary,.btn-primary),.public-shell :is(.public-primary,.btn-primary):is(:visited,:hover,:focus-visible,:active){color:var(--tenant-primary-contrast)}
}

/* Reading surfaces and feature banners retain their own semantic contrast. */
@media screen {
.app-shell :is(.customer-feature,.technician-feature){color:var(--heading);background:var(--tenant-primary-soft)}
.app-shell :is(.customer-feature,.technician-feature) :is(h2,.technician-feature-number){color:var(--heading)}
.app-shell :is(.customer-feature,.technician-feature) :is(p,.eyebrow,.technician-feature-number span){color:var(--text)}
}
/* Invoice paper is independent of the surrounding app theme, including print. */
.invoice-paper{color-scheme:light;--canvas:#fff;--paper:#fff;--heading:#191a31;--text:#272335;--muted:#595163;--line:#ded9e5;--tenant-primary:#633e97;--tenant-primary-deep:#51278e;--tenant-primary-soft:#f0e9f8;--tenant-primary-contrast:#fff;--neutral:#566174;--neutral-soft:#f4f0f9;--ok:#16713b;--ok-soft:#e4f5e9;--warn:#965800;--warn-soft:#fff0cd;--danger:#b8233b;--danger-soft:#fce6eb;background:#fff;color:var(--text)}
.invoice-paper :is(h1,h2,h3,h4,strong,td,dd){color:var(--heading)}
.invoice-paper a{color:var(--tenant-primary-deep);text-decoration:underline}
.invoice-paper .invoice-paper-lines th{background:var(--neutral-soft);color:var(--heading)}
.invoice-paper :is(.invoice-paper-parties dt,.invoice-paper-totals dt,.invoice-mobile-caption,small){color:var(--muted)}
