/* THETASK.ONE v1.8 — one design token system for public site, all portals, operational boards, modals & PWA */
:root[data-tt-theme="greige-teal"] {--bg:#F1ECE7;--panel:#FFFCF9;--panel2:#EAE3DD;--stroke:#B8AAA0;--text:#222C2D;--muted:#4E5A5D;--accent:#174A53;--on-accent:#FFFFFF;--blue:#174A53;--orange:#7C431E;--danger:#A1242F;--surface:#E9E1DA;--control:#FFFFFF;--raised:#FFF9F4;--nav:#EEE7E0;--wash:#E2EAE8;--heading:#182D30;--shadow:0 15px 45px rgba(46,39,34,.09);color-scheme:light}
:root[data-tt-theme="offwhite-terra"] {--bg:#F7F1EA;--panel:#FFFCF8;--panel2:#F0E4D8;--stroke:#BEA99B;--text:#2A2926;--muted:#61524C;--accent:#99442F;--on-accent:#FFFFFF;--blue:#823D31;--orange:#93472E;--danger:#B12B39;--surface:#EEE2D7;--control:#FFFDF9;--raised:#FCF4EC;--nav:#F1E8DF;--wash:#F0DDCF;--heading:#412A26;--shadow:0 15px 45px rgba(59,36,26,.09);color-scheme:light}
:root[data-tt-theme="grey-blue"] {--bg:#EFF0F2;--panel:#FFFFFF;--panel2:#DDE2E6;--stroke:#A9B6C1;--text:#202C36;--muted:#4B5865;--accent:#3F617D;--on-accent:#FFFFFF;--blue:#3F617D;--orange:#8C512B;--danger:#A62B39;--surface:#E0E6EB;--control:#FFFFFF;--raised:#F6F8FA;--nav:#E7EBEF;--wash:#DCE7F0;--heading:#203448;--shadow:0 15px 45px rgba(34,55,78,.10);color-scheme:light}
:root[data-tt-theme="cream-choc"] {--bg:#FBF0E1;--panel:#FFF9F0;--panel2:#F1DFCD;--stroke:#BDA18C;--text:#2D251F;--muted:#66554A;--accent:#663C2C;--on-accent:#FFFFFF;--blue:#694734;--orange:#855025;--danger:#AA283B;--surface:#F1E0D0;--control:#FFFBF5;--raised:#FFF6EA;--nav:#F6E8D8;--wash:#F1DED0;--heading:#513224;--shadow:0 15px 45px rgba(63,35,21,.10);color-scheme:light}
:root[data-tt-theme="beige-olive"] {--bg:#F3E7D8;--panel:#FFF9EF;--panel2:#E8DBC4;--stroke:#B5A589;--text:#28291E;--muted:#525545;--accent:#4E5537;--on-accent:#FFFFFF;--blue:#495B43;--orange:#7F5030;--danger:#A62E35;--surface:#E9DCC8;--control:#FFFAF0;--raised:#F8EDDB;--nav:#EEE2CF;--wash:#E4E6D4;--heading:#3F452C;--shadow:0 15px 45px rgba(53,48,28,.10);color-scheme:light}
:root[data-tt-theme="midnight"] {--bg:#07131B;--panel:#11222C;--panel2:#152F39;--stroke:#40606A;--text:#F1F8FA;--muted:#BCCED5;--accent:#64E6C7;--on-accent:#071F1C;--blue:#8FC6FF;--orange:#FFD29C;--danger:#FFB1BA;--surface:#10232D;--control:#172F39;--raised:#152B36;--nav:#0C202A;--wash:#13332F;--heading:#F3FAFC;--shadow:0 15px 45px rgba(0,0,0,.30);color-scheme:dark}
:root[data-tt-theme="contrast"] {--bg:#050505;--panel:#101010;--panel2:#202020;--stroke:#F0F0F0;--text:#FFFFFF;--muted:#FFFFFF;--accent:#FFE65C;--on-accent:#090909;--blue:#8FE7FF;--orange:#FFE65C;--danger:#FF929C;--surface:#101010;--control:#080808;--raised:#101010;--nav:#050505;--wash:#202020;--heading:#FFFFFF;--shadow:none;color-scheme:dark}
/* Global background and component colors; overrides earlier fixed-color rules without touching content or data. */
html[data-tt-theme] body{background:var(--bg);color:var(--text)}
html[data-tt-theme] .topbar,html[data-tt-theme] .portal-header{background:var(--nav);border-color:var(--stroke);color:var(--text)}
html[data-tt-theme] .sidebar{background:var(--nav);border-color:var(--stroke)}
html[data-tt-theme] .navlinks,html[data-tt-theme] .navitem,html[data-tt-theme] .side-title{color:var(--muted)}
html[data-tt-theme] .navlinks a:hover,html[data-tt-theme] .sidebar .navitem:hover{color:var(--accent)}
html[data-tt-theme] .navitem.active,html[data-tt-theme] .navitem:hover{background:var(--wash);color:var(--heading)}
html[data-tt-theme] .brandmark{background:var(--accent);color:var(--on-accent);box-shadow:none}
html[data-tt-theme] .hero h1,html[data-tt-theme] .pagehead h2,html[data-tt-theme] .section h2,html[data-tt-theme] h1,html[data-tt-theme] h2,html[data-tt-theme] h3,html[data-tt-theme] h4{color:var(--heading)}
html[data-tt-theme] .hero p,html[data-tt-theme] .section-intro,html[data-tt-theme] .pagehead p,html[data-tt-theme] .portal-header p,html[data-tt-theme] .profilecard p,html[data-tt-theme] .stat p,html[data-tt-theme] .list-row p,html[data-tt-theme] .preview-row p,html[data-tt-theme] .small.muted,html[data-tt-theme] .muted,html[data-tt-theme] .callout,html[data-tt-theme] .empty,html[data-tt-theme] .side-title,html[data-tt-theme] .mini-card span{color:var(--muted)}
html[data-tt-theme] .service,html[data-tt-theme] .profilecard,html[data-tt-theme] .panel,html[data-tt-theme] .stat,html[data-tt-theme] .mini-card,html[data-tt-theme] .showcase,html[data-tt-theme] .swindow,html[data-tt-theme] .loginbox,html[data-tt-theme] .ops-record,html[data-tt-theme] .ops-icon-tile{background:var(--panel);border-color:var(--stroke);color:var(--text);box-shadow:var(--shadow)}
html[data-tt-theme] .winbar,html[data-tt-theme] .preview-body,html[data-tt-theme] .cta,html[data-tt-theme] .callout,html[data-tt-theme] .chip,html[data-tt-theme] .pill,html[data-tt-theme] .filterbar button,html[data-tt-theme] .profilecard .tagrow span,html[data-tt-theme] .icon-box,html[data-tt-theme] .preview-icon,html[data-tt-theme] .preview-row,html[data-tt-theme] .ops-project-picker,html[data-tt-theme] .calcell,html[data-tt-theme] .ops-modal-head{background:var(--surface);border-color:var(--stroke);color:var(--text)}
html[data-tt-theme] .section[style*="background"],html[data-tt-theme] .section[style*="background-color"]{background:var(--bg)!important}
html[data-tt-theme] .btn.primary,html[data-tt-theme] .filterbar button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
html[data-tt-theme] .btn.outline,html[data-tt-theme] .btn.secondary,html[data-tt-theme] .filterbar button:not(.on){background:var(--raised);color:var(--text);border-color:var(--stroke)}
html[data-tt-theme] .btn:hover,html[data-tt-theme] .filterbar button:hover{filter:brightness(.96)}
html[data-tt-theme] input,html[data-tt-theme] textarea,html[data-tt-theme] select,html[data-tt-theme] .ops-fields input,html[data-tt-theme] .ops-fields select,html[data-tt-theme] .ops-modal-content input,html[data-tt-theme] .ops-modal-content textarea,html[data-tt-theme] .ops-project-picker select{background:var(--control);color:var(--text);border:1px solid var(--stroke)}
html[data-tt-theme] option{background:var(--panel);color:var(--text)}
html[data-tt-theme] input::placeholder,html[data-tt-theme] textarea::placeholder{color:var(--muted);opacity:1}
html[data-tt-theme] :is(button,input,textarea,select,a,[tabindex]):focus-visible{outline:3px solid var(--accent);outline-offset:3px}
html[data-tt-theme] .data-table th,html[data-tt-theme] .data-table td,html[data-tt-theme] .list-row,html[data-tt-theme] .preview-row,html[data-tt-theme] .dialog-head,html[data-tt-theme] .footer{border-color:var(--stroke);color:var(--text)}
html[data-tt-theme] .data-table tr:hover td{background:var(--wash)}
html[data-tt-theme] .data-table th{color:var(--muted)}
html[data-tt-theme] .pill.good,html[data-tt-theme] .calcell.available{background:var(--wash);color:var(--accent);border-color:var(--accent)}
html[data-tt-theme] .calcell.booked,html[data-tt-theme] .pill.warn{background:var(--panel2);color:var(--orange);border-color:var(--stroke)}
html[data-tt-theme] .calcell.busy,html[data-tt-theme] .pill.bad{background:var(--panel2);color:var(--danger);border-color:var(--stroke)}
html[data-tt-theme] .calhead{background:var(--panel2)}
html[data-tt-theme] .profilecard .tagrow span,html[data-tt-theme] .chip{color:var(--accent)}
html[data-tt-theme] .bar,html[data-tt-theme] .meter{background:var(--panel2)}
html[data-tt-theme] .bar span,html[data-tt-theme] .meter b{background:var(--accent)}
html[data-tt-theme] .ops-glyph,html[data-tt-theme] .preview-icon{color:var(--accent)}
html[data-tt-theme] .ops-icon-tile small,html[data-tt-theme] .ops-details{color:var(--muted)}
html[data-tt-theme] .ops-icon-tile:hover,html[data-tt-theme] .ops-on{outline:2px solid var(--accent)}
html[data-tt-theme] .ops-modal,html[data-tt-theme] .dialog{background:var(--panel);color:var(--text);border-color:var(--stroke)}
html[data-tt-theme] .ops-modal-head{background:var(--panel)}
html[data-tt-theme] .ops-modal-content label,html[data-tt-theme] .field label{color:var(--text)}
html[data-tt-theme] .ops-history p{border-color:var(--stroke)}
html[data-tt-theme] .footer,html[data-tt-theme] .footer a{color:var(--muted)}
html[data-tt-theme] .eyebrow,html[data-tt-theme] .service .kind,html[data-tt-theme] .service-logo{color:var(--accent)}
html[data-tt-theme] .cta{background:var(--panel2)}
html[data-tt-theme] .showcase{transform:none}
html[data-tt-theme] .toast{background:var(--panel);border-color:var(--accent);color:var(--text)}
html[data-tt-theme] .toast.error{border-color:var(--danger);color:var(--danger)}
/* Floating global control survives SPA route/view transitions and operates on public and authenticated pages. */
.tt-theme-shell{position:fixed;right:max(15px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:110010;font:500 13px/1.4 system-ui,-apple-system,sans-serif}
.tt-theme-trigger{display:flex;align-items:center;gap:8px;min-height:48px;border-radius:999px;padding:10px 14px;background:var(--accent);color:var(--on-accent);border:2px solid var(--panel);box-shadow:0 7px 26px #0004;cursor:pointer;font-weight:800}
.tt-theme-symbol{font-size:24px;line-height:1}.tt-theme-caption{font-size:12px;letter-spacing:.2px}
.tt-theme-trigger:hover{filter:brightness(1.08)}
.tt-theme-panel{position:absolute;right:0;bottom:61px;width:min(390px,calc(100vw - 24px));max-height:min(610px,calc(100dvh - 90px));overflow:auto;padding:18px;border:1px solid var(--stroke);border-radius:20px;background:var(--panel);color:var(--text);box-shadow:0 16px 70px #0005}
.tt-theme-panel[hidden]{display:none!important}
.tt-theme-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.tt-theme-head strong{font-size:16px;color:var(--heading)}.tt-theme-head p{font-size:12px;color:var(--muted);margin:4px 0 0}
.tt-theme-close{color:var(--text);background:transparent;border:1px solid var(--stroke);border-radius:10px;width:35px;height:35px;font-size:24px;cursor:pointer}
.tt-theme-options{display:grid;grid-template-columns:1fr;gap:7px}.tt-theme-option{display:flex;align-items:center;gap:11px;text-align:left;min-height:47px;padding:9px 11px;background:var(--raised);border:1px solid var(--stroke);border-radius:12px;color:var(--text);cursor:pointer}
.tt-theme-option.selected,.tt-theme-option:hover{border:2px solid var(--accent);background:var(--wash);padding:8px 10px}.tt-theme-chip{display:block;flex:none;width:31px;height:31px;border:1px solid var(--stroke);border-radius:50%;box-shadow:0 1px 3px #0002}.tt-theme-option-name{flex:1;font-weight:650;font-size:12px}.tt-theme-check{opacity:0;color:var(--accent);font-weight:900;font-size:18px}.tt-theme-option.selected .tt-theme-check{opacity:1}
.tt-theme-note{border-top:1px solid var(--stroke);padding-top:11px;margin:14px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
:root[data-tt-theme="contrast"] .tt-theme-trigger,:root[data-tt-theme="contrast"] .tt-theme-panel,:root[data-tt-theme="contrast"] .tt-theme-option{border-width:2px}
@media(max-width:600px){.tt-theme-shell{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom))}.tt-theme-trigger{width:52px;height:52px;justify-content:center;padding:8px}.tt-theme-caption{display:none}.tt-theme-panel{position:fixed;inset:auto 0 0 0;width:100%;max-height:min(86dvh,780px);border-radius:22px 22px 0 0;padding:18px 20px max(24px,env(safe-area-inset-bottom))}.tt-theme-options{grid-template-columns:1fr 1fr}.tt-theme-option{min-height:62px;gap:8px;padding:8px}.tt-theme-option.selected,.tt-theme-option:hover{padding:7px}.tt-theme-option-name{font-size:11px}.tt-theme-chip{width:28px;height:28px}.tt-theme-check{font-size:13px}}
@media(prefers-reduced-motion:reduce){.tt-theme-shell *,html[data-tt-theme] .btn{transition:none!important;animation:none!important}}
@media print{.tt-theme-shell{display:none!important}}
/* Keep the bottom-sheet within the visible mobile viewport even on older pages. */
.tt-theme-shell,.tt-theme-shell *{box-sizing:border-box}
