/* Thrivon Design System v1.0 — v3.3
   Layer of visual tokens and component styles over the original 3.2 application.
   No operations, data structures or server behavior have been replaced.
*/
:root{
  color-scheme:light;
  --t-brand:#061b30;--t-brand-raised:#12354c;--t-green:#00c97a;--t-action:#087955;--t-action-hover:#056444;
  --t-canvas:#f7f9fb;--t-paper:#fff;--t-paper-alt:#f3f6f9;--t-header:rgba(255,255,255,.96);
  --t-sidebar:#fff;--t-sidebar-line:#e8edf2;--t-menu-hover:#f1f6f4;--t-menu-active:#e9f7f0;
  --t-ink:#152637;--t-ink-strong:#071c30;--t-muted:#68798a;--t-faint:#92a0ad;
  --t-line:#e5eaf0;--t-line-strong:#d5dfe8;--t-input:#fff;
  --t-success-bg:#e7f8ef;--t-success-ink:#087450;--t-warn-bg:#fff6e6;--t-warn-ink:#95621c;
  --t-danger-bg:#fff0ef;--t-danger-ink:#b43e43;
  --t-shadow:0 4px 20px rgba(13,37,53,.035);--t-shadow-lg:0 22px 65px rgba(10,30,49,.16);
  --t-radius-sm:9px;--t-radius:12px;--t-radius-lg:17px;
  --t-focus:0 0 0 3px rgba(0,167,101,.19);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--t-ink);background:var(--t-canvas);
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --t-brand:#d8e9f7;--t-brand-raised:#d8e9f7;--t-green:#27e19a;--t-action:#28c88d;--t-action-hover:#4be7a8;
  --t-canvas:#0b111a;--t-paper:#15212d;--t-paper-alt:#1b2a37;--t-header:rgba(18,29,41,.97);
  --t-sidebar:#101b26;--t-sidebar-line:#263643;--t-menu-hover:#1b2e3d;--t-menu-active:#14382e;
  --t-ink:#e9f1f7;--t-ink-strong:#f8fbfe;--t-muted:#9aabba;--t-faint:#75899b;
  --t-line:#2a3a47;--t-line-strong:#3c5060;--t-input:#172634;
  --t-success-bg:#163e31;--t-success-ink:#65e6b4;--t-warn-bg:#3a301b;--t-warn-ink:#f6ca7d;
  --t-danger-bg:#3e2429;--t-danger-ink:#ff969f;
  --t-shadow:0 4px 22px rgba(0,0,0,.13);--t-shadow-lg:0 24px 74px rgba(0,0,0,.55);
  --t-focus:0 0 0 3px rgba(56,223,151,.27);
}
html{min-width:0;scroll-behavior:smooth}body{background:var(--t-canvas);color:var(--t-ink);font-family:inherit;line-height:1.48}
button,input,textarea,select{font:inherit}button{transition:background .17s ease,color .17s ease,border-color .17s ease,box-shadow .17s ease,transform .17s ease}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--t-action)!important;outline-offset:2px}
::selection{background:rgba(0,201,122,.23)}
:where(.app,.main,.content){min-width:0}
.app{grid-template-columns:264px minmax(0,1fr);background:var(--t-canvas)}
.main{background:var(--t-canvas)}
.content{max-width:1660px;padding:30px clamp(21px,3vw,47px) 58px}
h1,h2,h3,h4{color:var(--t-ink-strong);letter-spacing:-.028em}h1{font-size:clamp(23px,2.2vw,30px);line-height:1.22;font-weight:730}h2{font-weight:700}
.muted,.note,.footer-note,.field .note{color:var(--t-muted)}.eyebrow{color:var(--t-action);font-size:10px;letter-spacing:.15em}
/* Brand and navigation */
.side{background:var(--t-sidebar);color:var(--t-ink);border-right:1px solid var(--t-sidebar-line);box-shadow:none;padding:22px 12px 13px;gap:8px;scrollbar-color:var(--t-line-strong) transparent}
.side .logo{display:grid;align-content:center;gap:5px;min-height:86px;padding:10px 12px 19px;border-bottom:1px solid var(--t-sidebar-line);margin-bottom:5px;color:var(--t-ink)}
.brand-wordmark{width:155px;height:auto;max-width:100%;display:block;object-fit:contain;object-position:left center}
.brand-dark{display:none}:root[data-theme="dark"] .brand-light{display:none}:root[data-theme="dark"] .brand-dark{display:block}
.brand-subtitle{font-size:9px;font-weight:750;letter-spacing:.23em;color:var(--t-faint);padding-left:3px}
.side-navigation{gap:6px;scrollbar-color:var(--t-line-strong) transparent;padding-right:1px}
.nav-section{border-top:0;padding-top:5px}
.nav-section:not(:first-child){border-top:1px solid var(--t-sidebar-line);padding-top:12px;margin-top:8px}
.nav-heading,.nav-folder,.nav-leaf{color:var(--t-muted);border-radius:10px;min-height:41px;padding:10px 12px;font-weight:580;gap:11px}
.nav-heading{min-height:28px;padding:5px 12px 8px;color:var(--t-faint);font-size:10px;font-weight:760;letter-spacing:.14em}
.nav-heading:hover,.nav-folder:hover,.nav-leaf:hover{background:var(--t-menu-hover);color:var(--t-ink-strong)}
.nav-folder,.nav-leaf{font-size:12px}
.nav-folder.active{color:var(--t-ink-strong);background:transparent;font-weight:740}
.nav-leaf.active{background:var(--t-menu-active);color:var(--t-success-ink);font-weight:760;box-shadow:inset 3px 0 0 var(--t-green)}
.nav-leaf.nav-sub{min-height:35px;font-size:12px;line-height:1.25;padding:9px 10px}
.nav-folder-wrap>.nav-children{border-color:var(--t-sidebar-line);margin-left:19px;padding-left:7px}
.nav-children{gap:1px}.nav-icon{font-size:17px;font-weight:500;opacity:1;width:20px;flex-basis:20px;color:var(--t-muted)}
.nav-leaf.active .nav-icon,.nav-folder.active .nav-icon{color:var(--t-success-ink)}
.nav-chevron{color:var(--t-faint)}
.side-bottom{background:var(--t-sidebar);border-top:1px solid var(--t-sidebar-line);padding:16px 11px 8px;margin-top:9px}
.workspace{font-size:11px;line-height:1.65;color:var(--t-muted)}.workspace strong{font-size:12px;color:var(--t-ink-strong)}
/* Header and account */
.topbar{height:76px;background:var(--t-header);border-bottom:1px solid var(--t-line);padding:0 clamp(21px,3vw,47px);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);position:sticky;top:0;z-index:13}
.crumb{font-size:12px;color:var(--t-muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.crumb strong{color:var(--t-ink-strong);font-size:13px;font-weight:740;overflow-wrap:anywhere}.crumb-sep{color:var(--t-faint)}
.topbar-actions{display:flex;align-items:center;gap:16px;margin-left:auto;min-width:0}
.theme-toggle{display:inline-flex;gap:10px;align-items:center;justify-content:center;padding:8px 11px;min-height:40px;min-width:43px;border:1px solid var(--t-line);border-radius:11px;background:var(--t-paper);color:var(--t-muted);font-size:12px;font-weight:680}
.theme-toggle:hover{background:var(--t-paper-alt);color:var(--t-ink);border-color:var(--t-line-strong)}
.theme-icon{font-size:18px;line-height:1}.theme-label{white-space:nowrap}
.userchip{gap:10px;border-left:1px solid var(--t-line);padding-left:16px}.userchip strong{color:var(--t-ink-strong)}
.avatar{background:var(--t-success-bg);color:var(--t-success-ink);font-weight:790;border-radius:12px;width:39px;height:39px}
.logout-btn{background:var(--t-paper);border-color:var(--t-line);color:var(--t-muted);font-size:12px;font-weight:700;border-radius:9px;padding:9px 12px;margin-left:7px}
.logout-btn:hover{background:var(--t-paper-alt);color:var(--t-ink-strong)}
.mobile-menu{background:var(--t-paper)!important;color:var(--t-ink)!important;border-color:var(--t-line)!important}
/* Universal inputs and form sections */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea,.search,.select,.field input,.field select,.ops-page input,.ops-page select,.ops-page textarea,.wa-field input,.wa-field select,.bi-filters select,.bi-filters input){background:var(--t-input);color:var(--t-ink);border:1px solid var(--t-line-strong);border-radius:10px;min-height:42px;max-width:100%;box-shadow:none}
:where(input,textarea)::placeholder{color:var(--t-faint);opacity:1}
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{border-color:var(--t-action);outline:0;box-shadow:var(--t-focus)}
input[type="checkbox"],input[type="radio"]{accent-color:var(--t-action)}
.field,.cloud-form label,.wa-field,.ops-field{color:var(--t-muted);font-size:12px;font-weight:670;gap:8px}
.field input,.field select{background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong);min-height:44px;padding:10px 12px}
.field input:focus,.field select:focus{border-color:var(--t-action);box-shadow:var(--t-focus)}
.form-grid{gap:20px;padding:24px 27px}.bike-section-title{grid-column:1/-1;border-bottom:1px solid var(--t-line);padding-bottom:11px;margin:8px 0 0}
/* Button system: primary uses accessible dark green; vivid brand green is an accent */
.btn,.ops-button,.wa-btn,.bi-refresh,.bi-export,.bi-link{border-radius:10px;font-weight:690;min-height:40px;border:1px solid var(--t-line-strong);background:var(--t-paper);color:var(--t-ink);box-shadow:none}
.btn{padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px}
.btn:hover,.ops-button:hover,.wa-btn.secondary:hover,.bi-refresh:hover,.bi-export:hover{background:var(--t-paper-alt);color:var(--t-ink);border-color:var(--t-line-strong)}
.btn.primary,.ops-button.primary,.wa-btn:not(.secondary){background:var(--t-action);border-color:var(--t-action);color:#fff}
.btn.primary:hover,.ops-button.primary:hover,.wa-btn:not(.secondary):hover{background:var(--t-action-hover);border-color:var(--t-action-hover);color:#fff}
:root[data-theme="dark"] .btn.primary,:root[data-theme="dark"] .ops-button.primary,:root[data-theme="dark"] .wa-btn:not(.secondary){color:#04251c}
.btn:active:not(:disabled),.ops-button:active:not(:disabled){transform:translateY(1px)}
.btn.danger{color:var(--t-danger-ink);background:var(--t-paper);border-color:var(--t-line)}
.btn.sm{min-height:34px;font-size:12px;padding:7px 11px}
/* Surfaces, tiles, tables and modal dialogs */
.stat,.panel,.notice,.future,.rolecard,.profile-tile,.profile-info .item,.access-note,.cloud-placeholder,.ops-page .ops-stat,.ops-calendar-box,.ops-public-service,.wa-card,.wa-stat,.bi-panel,.bi-kpi{background:var(--t-paper);border:1px solid var(--t-line);border-radius:var(--t-radius-lg);box-shadow:var(--t-shadow);color:var(--t-ink)}
.panel,.rolecard,.stat,.profile-tile,.ops-public-service,.bi-kpi,.wa-card{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.stat:hover,.rolecard:hover,.profile-tile:hover{border-color:var(--t-line-strong);box-shadow:0 9px 24px rgba(10,40,45,.06)}
.stat .n,.profile-tile strong,.bi-kpi-value{color:var(--t-ink-strong);letter-spacing:-.04em;font-weight:750;font-variant-numeric:tabular-nums}
.stat .label,.stat .hint,.profile-tile p{color:var(--t-muted)}
.panel-head,.modal-head,.bi-panel-head{border-bottom:1px solid var(--t-line)}.panel-body{padding:23px}
.toolbar{gap:10px}.table-wrap,.permission-table{border-radius:11px;overflow:auto}
table{color:var(--t-ink)}th{background:var(--t-paper-alt);color:var(--t-muted);font-size:10px;letter-spacing:.07em;font-weight:780}
td,th{border-bottom:1px solid var(--t-line)}tbody tr:hover{background:var(--t-paper-alt)}
.pill{background:var(--t-success-bg);color:var(--t-success-ink)}.pill.pending{background:var(--t-warn-bg);color:var(--t-warn-ink)}.pill.off{background:var(--t-danger-bg);color:var(--t-danger-ink)}
.pill.owner,.pill.staff,.pill.client{background:var(--t-paper-alt);color:var(--t-muted)}
.link,.tab.active{color:var(--t-success-ink)}.tabrow{border-bottom:1px solid var(--t-line)}.tab.active{border-bottom-color:var(--t-action)}.tab{color:var(--t-muted)}
.notice,.access-note,.cloud-banner{background:var(--t-success-bg);border-color:var(--t-line);color:var(--t-success-ink)}
.empty{color:var(--t-muted)}.roadmap div{background:var(--t-paper-alt)}.profile-info .item{background:var(--t-paper-alt);box-shadow:none;border-radius:10px}.profile-info .item small{color:var(--t-muted)}
.overlay,.cloud-overlay,.wa-modal{background:rgba(3,13,24,.67);backdrop-filter:blur(5px)}
.modal,.cloud-dialog,.wa-dialog{background:var(--t-paper);color:var(--t-ink);border:1px solid var(--t-line);border-radius:19px;box-shadow:var(--t-shadow-lg)}
.modal-head{padding:22px 26px}.modal-head h2{font-size:19px}.modal-foot{background:var(--t-paper);border-top:1px solid var(--t-line);padding:17px 25px;gap:10px}
.cloud-dialog{padding:26px}.cloud-form input{background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong)}
.cloud-form label{color:var(--t-muted)}.cloud-connection{background:var(--t-paper-alt);border-color:var(--t-line);color:var(--t-muted)}
.toast{background:var(--t-ink-strong);color:var(--t-paper);border:1px solid var(--t-line);box-shadow:var(--t-shadow-lg);border-radius:11px}
.email-suggestions,.email-option{background:var(--t-paper);border-color:var(--t-line);color:var(--t-ink)}.email-option:hover{background:var(--t-paper-alt)}
/* Login: branded workspace with intentional whitespace and restrained lighting */
.login-screen{background:var(--t-canvas);padding:clamp(15px,3vw,36px);position:fixed}
.login-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(1020px,100%);max-height:calc(100dvh - 36px);overflow:auto;background:var(--t-paper);border:1px solid var(--t-line);border-radius:24px;box-shadow:0 30px 110px rgba(1,26,36,.11)}
.login-left{position:relative;overflow:hidden;background:linear-gradient(145deg,#051629 0%,#092e38 63%,#074f42 130%);padding:clamp(30px,4vw,58px);min-height:530px;color:#fff}
.login-left:before{content:"";position:absolute;inset:auto -90px -150px auto;width:360px;height:360px;border:1px solid rgba(75,246,178,.14);border-radius:50%;box-shadow:0 0 0 58px rgba(78,230,176,.025),0 0 0 115px rgba(78,230,176,.025);pointer-events:none}
.login-left:after{content:"";position:absolute;right:11%;top:15%;width:8px;height:8px;background:#31f1a5;border-radius:50%;box-shadow:0 0 26px rgba(0,201,122,.9)}
.login-left h1{color:#fff;max-width:360px;font-size:clamp(35px,3.5vw,47px);line-height:1.12;letter-spacing:-.052em;font-weight:740;margin-top:60px}
.login-left p{color:#b4c9d2;font-size:14px;max-width:355px;line-height:1.8}.login-left>div:last-child{color:#7da79c!important;letter-spacing:.03em}.login-build{font-size:10px;letter-spacing:.1em}
.login-brand{width:210px;max-width:100%;letter-spacing:0}.login-brand img{display:block;width:100%;max-height:72px;object-fit:contain;object-position:left center}
.login-right{background:var(--t-paper);padding:clamp(28px,4vw,53px) clamp(25px,3.5vw,48px);color:var(--t-ink)}
.login-right h2{font-size:27px;letter-spacing:-.045em;font-weight:750;color:var(--t-ink-strong)}
.login-right p{color:var(--t-muted)}.login-right label{font-size:12px;color:var(--t-ink);font-weight:680}
.login-right input{background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong);min-height:46px}
.login-right .primary{min-height:46px;margin-top:19px}
.login-hint{background:var(--t-paper-alt);border:1px solid var(--t-line);color:var(--t-muted);border-radius:13px;padding:15px}
.login-accounts button{background:var(--t-paper);border-color:var(--t-line-strong);color:var(--t-ink);font-weight:670;border-radius:9px;padding:9px 11px}
.login-accounts button:hover{background:var(--t-menu-active);color:var(--t-success-ink)}
/* Specialized modules retain all behavior: shared visual treatment */
.bi-dashboard{--bi-ink:var(--t-ink);--bi-muted:var(--t-muted);--bi-green:var(--t-action);color:var(--t-ink)}
.bi-header h1,.bi-dashboard>h1,.bi-panel-head h3,.bi-kpi-value,.bi-mini strong,.bi-rank-row b,.bi-alert-row strong{color:var(--t-ink-strong)}
.bi-header p,.bi-kpi-label,.bi-caption-row,.bi-panel-head p,.bi-kpi-footer,.bi-rank-row span,.bi-alert-row small,.bi-mini span{color:var(--t-muted)}
.bi-filters,.bi-panel,.bi-kpi,.bi-refresh,.bi-export,.bi-legend-switch,.bi-link{background:var(--t-paper);border-color:var(--t-line);box-shadow:var(--t-shadow)}
.bi-filters label{color:var(--t-muted)}.bi-filters select,.bi-filters input{background:var(--t-input);border-color:var(--t-line-strong);color:var(--t-ink)}
.bi-kpi.bi-accent{border-top-color:var(--t-green)}.bi-kpi:hover{border-color:var(--t-action);box-shadow:var(--t-shadow)}
.bi-panel-head{border-bottom-color:var(--t-line)}.bi-mini{background:var(--t-paper-alt);border-color:var(--t-line)}
.bi-legend-switch.selected{background:var(--t-menu-active);color:var(--t-success-ink);border-color:var(--t-line)}
.bi-legend-switch{color:var(--t-muted)}.bi-team-table th{background:var(--t-paper-alt);color:var(--t-muted)}
.bi-team-table td,.bi-team-table td b,.bi-donut-labels b{color:var(--t-ink);border-color:var(--t-line)}.bi-donut-labels>div{color:var(--t-muted)}
.bi-grid line{stroke:var(--t-line)}.bi-grid text,.bi-x-label{fill:var(--t-muted)}
.bi-alert-row{background:var(--t-paper);border-color:var(--t-line);color:var(--t-ink)}.bi-alert-row:hover{background:var(--t-paper-alt)}
.bi-bar-chart{border-color:var(--t-line)}.bi-track{background:var(--t-paper-alt)}.bi-track>div{background:var(--t-action)}
.bi-green{background:var(--t-action)}.bi-empty{color:var(--t-muted)}.bi-disclaimer{background:var(--t-warn-bg);color:var(--t-warn-ink);border-color:var(--t-line)}
.bi-error{background:var(--t-danger-bg);color:var(--t-danger-ink);border-color:var(--t-line)}.bi-skeleton{border-color:var(--t-line);color:var(--t-muted)}
.wa-view{color:var(--t-ink)}.wa-top h1,.wa-card h2,.wa-stat b{color:var(--t-ink-strong)}.wa-top p,.wa-card .wa-help,.wa-stat small,.wa-privacy{color:var(--t-muted)}
.wa-card,.wa-stat{background:var(--t-paper);border-color:var(--t-line)}.wa-auto,.wa-empty,.wa-consents th{background:var(--t-paper-alt);border-color:var(--t-line);color:var(--t-ink)}
.wa-auto strong{color:var(--t-ink-strong)}.wa-auto small{color:var(--t-muted)}
.wa-field input,.wa-field select{background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong)}
.wa-btn.secondary{background:var(--t-paper);color:var(--t-ink);border-color:var(--t-line-strong)}
.wa-consents,.wa-consents th,.wa-consents td,.wa-log{border-color:var(--t-line)}.wa-consents td{color:var(--t-ink)}
.wa-log{background:var(--t-paper)}.wa-log small{color:var(--t-muted)}.wa-flag{background:var(--t-paper-alt);color:var(--t-muted)}
.wa-message{background:var(--t-success-bg);color:var(--t-success-ink)}.wa-alert{background:var(--t-warn-bg);color:var(--t-warn-ink);border-color:var(--t-line)}
.wa-dialog{background:var(--t-paper)}.wa-dialog p{color:var(--t-muted)}
.ops-page,.ops-page .ops-section-title p,.ops-page .ops-page-head p{color:var(--t-muted)}
.ops-section-title h2,.ops-page h1,.ops-page h2,.ops-page h3{color:var(--t-ink-strong)}
.ops-calendar-box,.ops-customer-intro,.ops-public-service,.ops-page .ops-stat{background:var(--t-paper);border-color:var(--t-line)}
.ops-page .ops-stat strong,.ops-public-price strong{color:var(--t-ink-strong)}
.ops-calendar-toolbar input,.ops-calendar-toolbar select,.ops-page input,.ops-page select,.ops-page textarea{background:var(--t-input);border-color:var(--t-line-strong);color:var(--t-ink)}
.ops-view-toggles,.ops-time-head,.ops-mech-head,.ops-time-axis,.ops-all-services,.ops-service-choice{background:var(--t-paper-alt);border-color:var(--t-line);color:var(--t-ink)}
.ops-view-toggles .ops-button.selected{background:var(--t-paper);color:var(--t-success-ink)}
.ops-day-outer,.ops-hourly-grid,.ops-timed-lane{background:var(--t-paper);border-color:var(--t-line)}
.ops-timed-lane{background:repeating-linear-gradient(to bottom,var(--t-paper) 0,var(--t-paper) 62px,var(--t-line) 62px,var(--t-line) 63px)}
/* Optional component specimen */
.design-preview{max-width:1100px;margin:0 auto;padding:26px;color:var(--t-ink)}.ds-showcase{display:grid;gap:19px}.ds-showcase>section{background:var(--t-paper);border:1px solid var(--t-line);border-radius:var(--t-radius-lg);padding:24px}
.ds-showcase h1{margin:0 0 8px}.ds-showcase h2{margin:0 0 19px}.ds-swatches{display:flex;flex-wrap:wrap;gap:10px}.ds-swatch{min-width:135px;flex:1;border:1px solid var(--t-line);border-radius:12px;overflow:hidden;font-size:12px}.ds-swatch i{display:block;height:75px}.ds-swatch span{display:block;padding:9px;color:var(--t-muted)}.ds-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.ds-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.ds-form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--t-muted)}.ds-form input,.ds-form select{padding:12px}.ds-statuses{display:flex;flex-wrap:wrap;gap:8px}.ds-status{padding:6px 12px;font-size:11px;font-weight:750;border-radius:20px;background:var(--t-paper-alt);color:var(--t-muted)}
.ds-status[data-tone="blue"]{background:#e5f1ff;color:#24629e}.ds-status[data-tone="purple"]{background:#f0e9fc;color:#6d40a4}.ds-status[data-tone="amber"]{background:var(--t-warn-bg);color:var(--t-warn-ink)}.ds-status[data-tone="green"]{background:var(--t-success-bg);color:var(--t-success-ink)}.ds-status[data-tone="red"]{background:var(--t-danger-bg);color:var(--t-danger-ink)}
/* Dark theme: override older hard-coded module styles in a targeted way */
:root[data-theme="dark"] :where(.login-right,.login-grid,.profile-info .item,.rolecard,.profile-tile,.stat,.panel,.future,.modal,.cloud-dialog,.cloud-placeholder,.bi-dashboard,.bi-kpi,.bi-panel,.bi-filters,.wa-view,.wa-card,.wa-stat,.ops-page,.ops-calendar-box){color:var(--t-ink)}
:root[data-theme="dark"] :where(.ops-page,.booking-shell,.inv-page,.fin-page,.os-board,.os-page,.login-right,.login-hint,.ops-calendar-box,.ops-calendar-toolbar,.ops-customer-preview,.wa-view) :where(p,small,span,label){color:inherit}
:root[data-theme="dark"] :where(.booking-shell,.inv-page,.fin-page,.os-page,.ops-page,.wa-view) :where(.panel,.card,.stat,.box,.ops-card,.inv-card,.fin-card,.os-card,.ops-service-card,.ops-control,.ops-stat,.cal-card,.cal-panel,.fin-table,.inv-table,.ops-calendar-box,.ops-public-service,.ops-page-card){background:var(--t-paper);color:var(--t-ink);border-color:var(--t-line)}
:root[data-theme="dark"] :where(.booking-shell,.inv-page,.fin-page,.os-page,.ops-page,.wa-view) :where(button:not(.primary),.ops-button:not(.primary),.inv-button:not(.primary),.fin-button:not(.primary)){color:var(--t-ink);border-color:var(--t-line-strong)}
:root[data-theme="dark"] :where(.booking-shell,.inv-page,.fin-page,.os-page,.ops-page,.wa-view) :where(input:not([type="checkbox"]),select,textarea){background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong)}
:root[data-theme="dark"] :where(.booking-shell,.inv-page,.fin-page,.os-page,.ops-page,.wa-view) :where(h1,h2,h3,h4,strong){color:var(--t-ink-strong)}
:root[data-theme="dark"] .ds-status[data-tone="blue"]{background:#15374c;color:#8ec9f5}:root[data-theme="dark"] .ds-status[data-tone="purple"]{background:#35294c;color:#d1b1ff}
/* Reduced motion */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
@media(max-width:1250px){.app{grid-template-columns:252px minmax(0,1fr)}.theme-label{display:none}}
@media(max-width:990px){.app{display:block}.side{border-right:1px solid var(--t-sidebar-line);box-shadow:16px 0 40px rgba(0,0,0,.13)}.side .logo{min-height:83px;padding:10px 12px 14px;display:grid!important}.side .brand-wordmark{display:block}.topbar{height:68px}.content{padding:22px 22px 54px}.userchip{padding-left:10px}}
@media(max-width:640px){.content{padding:18px 13px 46px}.topbar{height:64px;padding:0 13px;gap:8px}.topbar-actions{gap:8px}.userchip{gap:6px;border:0;padding:0}.userchip .avatar{width:32px;height:32px;border-radius:10px}.userchip #sessionName,.userchip #sessionRole{display:none!important}.logout-btn{margin-left:1px;font-size:11px;padding:8px}.crumb{gap:5px;font-size:11px}.crumb-root,.crumb-sep{display:none}.crumb strong{font-size:12px;line-height:1.22}.theme-toggle{width:36px;min-width:36px;padding:8px}.topbar .mobile-menu{width:36px;height:36px;flex-basis:36px}.stat{padding:15px}.modal{width:100%;max-height:95dvh;border-radius:17px}.modal-head,.modal-foot{padding:15px}.form-grid{padding:16px;gap:15px}.login-screen{padding:10px;overflow:auto;align-items:start}.login-grid{grid-template-columns:1fr;max-height:none;overflow:visible;border-radius:17px}.login-left{min-height:200px;padding:26px;gap:13px}.login-left h1{font-size:27px;margin:16px 0 8px}.login-left p{font-size:12px;line-height:1.5}.login-left>div:last-child{display:none}.login-left:before{width:220px;height:220px;bottom:-115px;right:-105px}.login-right{padding:25px 21px}.login-right h2{font-size:23px}.login-right label{margin:14px 0 5px}.ds-form{grid-template-columns:1fr}.design-preview{padding:12px}.ds-showcase>section{padding:17px}}
@media(max-width:360px){.userchip .avatar{display:none}.content{padding:14px 11px}.crumb strong{font-size:11px}}
/* Consistent vector icons and a lighter hierarchy on the rail */
.nav-icon svg{display:block;width:18px;height:18px}.nav-sub-dot{width:5px;height:5px;background:var(--t-faint);border-radius:50%;display:inline-block;vertical-align:middle}.nav-leaf.active .nav-sub-dot{background:var(--t-success-ink)}
/* Dark-mode legibility fixes for visualization text and action surfaces */
:root[data-theme="dark"] .bi-header p strong{color:var(--t-ink-strong)}
:root[data-theme="dark"] .bi-donut text,:root[data-theme="dark"] .bi-donut tspan{fill:var(--t-ink-strong)!important}
:root[data-theme="dark"] .bi-donut-labels b,:root[data-theme="dark"] .bi-team-table td b{color:var(--t-ink-strong)}
:root[data-theme="dark"] .bi-up{color:#5de0ad}:root[data-theme="dark"] .bi-down{color:#ffb292}
:root[data-theme="dark"] .bi-alert-row{background:var(--t-paper);color:var(--t-ink)}
:root[data-theme="dark"] .bi-alert-row:hover{background:var(--t-paper-alt)}
:root[data-theme="dark"] .bi-alert-arrow{color:var(--t-success-ink)}
:root[data-theme="dark"] .bi-refresh,:root[data-theme="dark"] .bi-export,:root[data-theme="dark"] .bi-link,:root[data-theme="dark"] .bi-legend-switch{background:var(--t-paper);color:var(--t-ink);border-color:var(--t-line-strong)}
:root[data-theme="dark"] .bi-legend-switch.selected{background:var(--t-menu-active);color:var(--t-success-ink)}
:root[data-theme="dark"] .bi-notice{background:var(--t-warn-bg);color:var(--t-warn-ink);border-color:var(--t-line)}
:root[data-theme="dark"] .bi-mode.demo{background:var(--t-warn-bg);color:var(--t-warn-ink)}
:root[data-theme="dark"] .bi-mode:not(.demo){background:var(--t-success-bg);color:var(--t-success-ink)}
/* Extend common control styles to the independent financial, stock and order screens */
.fin-stat,.fin-card,.fin-modal,.fin-money-callout,.fin-summary span,.fin-note,.inv-card,.inv-tile,.inv-stat,.inv-dialog,.stock-dialog,.os-card,.os-stage-card,.os-board-column,.os-mini-stat,.os-modal,.ops-os-card,.ops-card{background:var(--t-paper);border-color:var(--t-line);color:var(--t-ink);box-shadow:var(--t-shadow);border-radius:var(--t-radius-lg)}
.fin-stat strong,.fin-card-head h3,.fin-empty b,.fin-table td strong,.fin-mini-row strong,.fin-summary strong,.fin-money-callout b{color:var(--t-ink-strong)}
.fin-card-head,.fin-mini-row,.fin-modal-header,.fin-table td,.fin-team-card{border-color:var(--t-line)}
.fin-stat span,.fin-stat small,.fin-card-head p,.fin-empty,.fin-table td,.fin-mini-row small,.fin-summary span,.fin-money-callout span{color:var(--t-muted)}
.fin-table th{background:var(--t-paper-alt);color:var(--t-muted)}
.fin-form .field input,.fin-form .field select,.fin-form .field textarea,.fin-month select,.fin-filter input,.inv-form .field input,.inv-form .field select{background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong)}
.fin-note{background:var(--t-success-bg);color:var(--t-success-ink)}.fin-note.warning{background:var(--t-warn-bg);color:var(--t-warn-ink)}
.fin-status.paid{background:var(--t-success-bg);color:var(--t-success-ink)}.fin-status.partial{background:var(--t-warn-bg);color:var(--t-warn-ink)}.fin-status.overdue{background:var(--t-danger-bg);color:var(--t-danger-ink)}.fin-status.pending{background:var(--t-paper-alt);color:var(--t-muted)}
.fin-month{color:var(--t-muted)}.fin-form{background:var(--t-paper)}.fin-money-callout,.fin-summary span{background:var(--t-paper-alt)}
:root[data-theme="dark"] .fin-button-link{color:var(--t-success-ink)}
:root[data-theme="dark"] .fin-table td,:root[data-theme="dark"] .fin-team-card,:root[data-theme="dark"] .fin-mini-row{color:var(--t-ink)}
:root[data-theme="dark"] .fin-bar-track{border-bottom-color:var(--t-line)}
:root[data-theme="dark"] .fin-tabs button{background:var(--t-paper);color:var(--t-ink);border-color:var(--t-line)}
:root[data-theme="dark"] .fin-tabs button.active{background:var(--t-action);color:#062318;border-color:var(--t-action)}
/* Local OS and appointment screens were authored before the shared UI primitives. */
.os-stat,.os-toolbar,.os-empty,.os-column,.os-column-heading b,.os-card,.os-check-row,.os-photo-group,.os-budget-total,.os-detail-meta span,.os-approval-checkbox,.os-customer-options,.os-client-option{background:var(--t-paper);border-color:var(--t-line);color:var(--t-ink);border-radius:var(--t-radius)}
.os-stat strong,.os-empty h3,.os-card h3,.os-budget-total strong,.os-detail-section h3{color:var(--t-ink-strong)}
.os-stat span,.os-stat small,.os-empty,.os-empty p,.os-card p,.os-toolbar label,.os-hint,.os-tip,.os-detail-meta small,.os-card-info{color:var(--t-muted)}
.os-toolbar input,.os-toolbar select,.os-form input:not([type=checkbox]),.os-form select,.os-form textarea,.os-detail-section select,.os-approval-body input[type=text]{background:var(--t-input);border-color:var(--t-line-strong);color:var(--t-ink)}
.os-column{background:var(--t-paper-alt)}.os-column-heading b{background:var(--t-paper-alt);color:var(--t-muted)}
.os-check-row,.os-detail-meta span,.os-budget-total,.os-approval-checkbox{background:var(--t-paper-alt)}
.os-number{color:var(--t-success-ink)}
.os-card-actions,.os-form-section,.os-detail-section,.os-detail-lines>div{border-color:var(--t-line)}
.os-badge.os-approval{background:var(--t-warn-bg);color:var(--t-warn-ink)}
.os-badge.os-ready{background:var(--t-success-bg);color:var(--t-success-ink)}
:root[data-theme="dark"] .os-badge{background:#263950;color:#acd1f0}
:root[data-theme="dark"] .os-badge.os-approval{background:var(--t-warn-bg);color:var(--t-warn-ink)}
:root[data-theme="dark"] .os-badge.os-ready{background:var(--t-success-bg);color:var(--t-success-ink)}
:root[data-theme="dark"] .os-toolbar,.os-empty,.os-stat{box-shadow:var(--t-shadow)}
:root[data-theme="dark"] .os-column-empty{color:var(--t-muted)}
