/* Shared components and explicit light/dark palettes. Layout lives in desktop.css/mobile.css. */
:root{color-scheme:light;--bg:#f3f6fa;--surface:#fff;--raised:#fff;--subtle:#edf2f6;--input:#fff;--ink:#172f3e;--muted:#617583;--line:#dce5ec;--accent:#087e75;--on-accent:#fff;--accent-soft:#e4f3ee;--accent-ink:#216c59;--danger:#a73e34;--danger-soft:#fff0ec;--blue:#376797;--blue-soft:#eaf2ff;--shadow:0 12px 40px #17313d12;--overlay:#0d243b70;--focus:#37aa99;--header-height:76px}
:root[data-theme=dark]{color-scheme:dark;--bg:#0d141e;--surface:#151f2c;--raised:#1b2837;--subtle:#202e3e;--input:#111c29;--ink:#e6eff7;--muted:#a2b3c4;--line:#2b3b4d;--accent:#68dbc0;--on-accent:#092d29;--accent-soft:#183c38;--accent-ink:#8ce1c8;--danger:#ffaaa0;--danger-soft:#402a30;--blue:#a2c9ff;--blue-soft:#213651;--shadow:0 16px 50px #0005;--overlay:#020913b3;--focus:#83e6cd}
*,*::before,*::after{box-sizing:border-box}html{min-width:280px;background:var(--bg);scroll-padding-top:calc(var(--header-height) + 16px);-webkit-text-size-adjust:100%}body{margin:0;font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%;min-height:44px;padding:10px 15px;background:var(--surface);border:1px solid var(--line);border-radius:11px;font-size:13px;font-weight:650;line-height:1.4;cursor:pointer;white-space:normal;overflow-wrap:anywhere}button svg{width:19px;height:19px;flex-shrink:0}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}@media(hover:hover){button:hover:not(:disabled){background:var(--subtle)}button.primary:hover:not(:disabled){filter:brightness(.94);background:var(--accent)}}:is(button,input,select,textarea,a,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}input,select,textarea{display:block;width:100%;min-width:0;max-width:100%;min-height:46px;margin:0;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:var(--input);font-size:16px;line-height:1.5}input[type=date]{appearance:none;-webkit-appearance:none;min-inline-size:0;width:100%;text-align:left}input::-webkit-date-and-time-value{text-align:left;min-height:1.5em}input[type=checkbox]{appearance:auto;width:23px;height:23px;min-height:23px;flex:0 0 23px;accent-color:var(--accent);padding:0}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}textarea{min-height:132px;resize:vertical}input:disabled,textarea:disabled,select:disabled{background:var(--subtle);color:var(--muted)}a{color:var(--accent-ink)}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:30px;letter-spacing:-.8px}h2{font-size:19px;letter-spacing:-.3px}h3{font-size:16px}p{margin:10px 0}.hidden,[hidden]{display:none!important}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.4px;color:var(--muted);margin-bottom:8px}.subtle,.contact-lines{font-size:13px;line-height:1.8;color:var(--muted)}.contact-lines{overflow-wrap:anywhere}.card,.object-card,.stat{min-width:0;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}.card{margin-bottom:20px}.sectionhead,.page-actions,.editor-title,.object-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;min-width:0}.sectionhead>*,.page-actions>*,.editor-title>*,.object-topline>*{min-width:0}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.text-button{background:transparent;border:0;color:var(--accent-ink);padding:8px 0}.badge{display:inline-flex;width:fit-content;max-width:100%;padding:5px 9px;border-radius:7px;font-size:11px;font-weight:650;background:var(--accent-soft);color:var(--accent-ink);overflow-wrap:anywhere}.badge.late,.stat.alert{background:var(--danger-soft);color:var(--danger)}.badge.working{background:var(--blue-soft);color:var(--blue)}.badge.gray{background:var(--subtle);color:var(--muted)}.fields{display:grid;gap:20px;min-width:0;margin-top:20px}.field{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%;font-size:13px;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea{color:var(--ink);font-weight:400}.full{grid-column:1/-1}.checkfield{display:flex;gap:11px;align-items:center;min-width:0;font-size:13px}.empty{padding:30px 16px;text-align:center;color:var(--muted)}.form-result{overflow-wrap:anywhere}.form-result:empty{display:none}.filters{display:flex;gap:12px;background:var(--subtle);border:1px solid var(--line);padding:12px;border-radius:14px;margin-bottom:20px}.filters input{flex:1}.filters select{flex:0 1 240px}.heading{margin-bottom:26px}.heading>div{min-width:0}#saveState{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.stats{display:grid;gap:16px;margin-bottom:26px}.stat>div{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted)}.stat svg{width:18px;height:18px;flex-shrink:0}.stat b{display:block;font-size:32px;letter-spacing:-1px;margin-top:18px}.dashboard-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.dashboard-intro .actions{margin:0}.record-row{display:grid;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line);min-width:0}.record-row:first-child{border:0}.date-tile{width:52px;background:var(--subtle);border-radius:11px;text-align:center;padding:9px 3px}.date-tile b{display:block;font-size:22px;line-height:1.2}.date-tile span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.record-main,.row-actions{min-width:0}.record-main strong{display:block;overflow-wrap:anywhere;font-size:14px}.record-main small{display:block;color:var(--muted);margin:5px 0;font-size:12px;overflow-wrap:anywhere}.record-main .badge{margin-top:4px}.row-actions button{justify-content:space-between}.object-grid,.customer-grid,.overview-grid{display:grid;gap:20px;min-width:0}.object-card{display:flex;flex-direction:column;gap:17px}.object-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.object-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:var(--subtle);border-radius:12px;color:var(--accent-ink)}.object-icon svg{width:22px;height:22px}.object-card h3{font-size:20px}.object-card p{margin:8px 0 0}.object-date{padding:14px;border-radius:11px;background:var(--subtle)}.object-date span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.object-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}.object-card>button{margin-top:auto;justify-content:space-between;width:100%}.customer-grid .card,.overview-grid .card{margin:0}.object-tabs{display:flex;padding:5px;gap:5px;border-radius:13px;background:var(--subtle);margin-bottom:22px}.object-tabs button{background:transparent;border-color:transparent;color:var(--muted);flex:1;font-size:12px}.object-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 6px #0001}.record-picker{margin:18px 0;max-width:460px}.appointment-date{font-size:26px;font-weight:750;margin:20px 0 10px;letter-spacing:-.5px}.appointment-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.appointment-stats b{display:block;font-size:19px}.appointment-stats span{display:block;font-size:11px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}dl{margin:0}dt{color:var(--muted);font-size:12px;margin-top:18px}dd{margin:5px 0 0;overflow-wrap:anywhere;line-height:1.7}.preparation-text{white-space:pre-wrap;font-size:14px;line-height:1.8;color:var(--muted)}.template-row{border:1px solid var(--line);background:var(--subtle);border-radius:13px;padding:20px;margin-top:20px}.template-row .fields{margin-top:0}.template-row .actions{justify-content:flex-end}.account-card h2{margin-bottom:20px}.account-card form>button{margin-top:24px}.user-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding:18px 0}.user-row>div{min-width:0}.user-row :is(b,small,span){display:block;overflow-wrap:anywhere}.user-row :is(small,span){font-size:12px;color:var(--muted);margin-top:5px}.report-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.report-toolbar h2{margin:10px 0}.report-stepper{display:grid;gap:8px;margin-bottom:20px}.report-stepper button{background:var(--subtle);border-color:transparent;justify-content:flex-start;font-size:12px}.report-stepper button>span{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--surface);color:var(--muted)}.report-stepper button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.report-stepper button.active>span{background:var(--accent);color:var(--on-accent)}.report-layout{display:grid;gap:22px;align-items:start;min-width:0}.report-layout>*,#reportBody{min-width:0}.large{font-size:30px;font-weight:750}.progress{height:7px;background:var(--subtle);border-radius:10px;overflow:hidden;margin:15px 0 8px}.progress span{display:block;height:100%;background:var(--accent)}.report-mini{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:20px}.report-mini span{color:var(--muted);font-size:11px;margin-top:16px}.report-mini b{font-size:13px;margin-top:5px;overflow-wrap:anywhere}.report-bottom{display:flex;justify-content:space-between;gap:12px;padding:12px;background:var(--raised);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-top:20px;position:sticky;z-index:5}.report-bottom button{min-width:0}.order-address{color:var(--muted);font-size:13px}.order-preparation{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;margin:22px 0}.order-preparation svg{width:22px;height:22px;flex-shrink:0}.order-preparation p{margin:0;white-space:pre-wrap;line-height:1.8}.order-groups>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:13px 0}.order-groups b{color:var(--muted);font-size:12px;flex-shrink:0}.access-panel summary{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:650;min-height:28px}.access-panel summary svg{width:22px;height:22px;flex-shrink:0}.access-panel[open] summary{margin-bottom:20px}.task{padding:20px 0;border-top:1px solid var(--line);display:grid;gap:14px;align-items:center}.task-line{display:flex;align-items:flex-start;gap:12px;min-width:0}.task-line label{min-width:0;flex:1;cursor:pointer}.task-line strong{display:block;overflow-wrap:anywhere}.task-line small{display:block;color:var(--muted);font-size:12px;margin-top:6px}.task-line input{margin-top:3px}.task.done strong{color:var(--accent-ink)}.result-field{min-width:0;font-size:12px;color:var(--muted)}.result-field select{margin-top:6px}.supply{display:grid;gap:12px;align-items:center;border-top:1px solid var(--line);padding:20px 0;grid-template-columns:23px minmax(0,1fr) 90px}.supply>label{min-width:0;overflow-wrap:anywhere}.supply small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.report-fields .field{margin-top:20px}.completion-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.completion-metrics>span{background:var(--subtle);border-radius:11px;padding:12px;font-size:12px;color:var(--muted)}.completion-metrics b{display:block;color:var(--ink);font-size:25px}.next-service{background:var(--accent-soft);color:var(--accent-ink);border-radius:13px;padding:18px;display:flex;justify-content:space-between;gap:12px}.team-bar{background:var(--danger-soft);color:var(--danger);padding:16px;border:1px solid var(--line);border-radius:12px;margin-bottom:20px;display:flex;justify-content:space-between;gap:12px}.mail-card{max-width:850px}.callout{padding:18px;background:var(--subtle);border-radius:12px;line-height:1.8;overflow-wrap:anywhere}.section-label{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}dialog{padding:28px;background:var(--raised);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);width:calc(100% - 40px);max-width:780px;max-height:calc(100dvh - 48px);overflow:auto;border-radius:20px;overscroll-behavior:contain}dialog::backdrop{background:var(--overlay);backdrop-filter:blur(5px)}dialog form{min-width:0}dialog h2{margin-bottom:24px}dialog .actions{justify-content:flex-end}#toast{position:fixed;z-index:60;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);background:var(--ink);color:var(--bg);border-radius:12px;padding:14px 20px;box-shadow:var(--shadow);font-size:13px;overflow-wrap:anywhere;pointer-events:none}
/* Header and account panel */
.app-header{position:sticky;top:0;z-index:30;height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--line)}.header-inner{height:100%;display:flex;justify-content:space-between;align-items:center;gap:20px}.header-start,.header-actions{display:flex;align-items:center;gap:20px;min-width:0}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex-shrink:0}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--accent);color:var(--on-accent);border-radius:12px}.brand-mark svg{width:29px;height:29px}.brand-copy{display:flex;flex-direction:column;gap:4px}.brand-copy strong{font-size:17px;letter-spacing:-.4px;line-height:1.1}.brand-copy small{font-size:9px;font-weight:650;letter-spacing:2px;color:var(--muted)}.header-location{display:flex;align-items:center;gap:24px;min-width:0;color:var(--muted);font-size:12px}.header-divider{width:1px;height:28px;background:var(--line);flex-shrink:0}#headerSection{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.profile-menu{position:relative}.profile-toggle{padding:5px;border-color:transparent;background:transparent;gap:10px}.avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:750}.profile-copy{display:flex;flex-direction:column;align-items:flex-start;max-width:180px}.profile-copy strong{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.profile-copy small{color:var(--muted);font-size:11px}.profile-chevron{width:16px!important;height:16px!important;color:var(--muted)}.profile-panel{position:absolute;right:0;top:calc(100% + 12px);width:300px;max-width:calc(100vw - 24px);background:var(--raised);border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:var(--shadow);max-height:calc(100dvh - var(--header-height) - 20px);overflow:auto}.profile-panel-heading{padding:12px;border-bottom:1px solid var(--line);margin-bottom:5px}.profile-panel-heading>span{display:block;color:var(--muted);font-size:10px;letter-spacing:1.4px;margin-bottom:6px}.profile-panel-heading strong{display:block;font-size:12px;font-weight:550;overflow-wrap:anywhere}.profile-panel>button,.profile-panel form button{width:100%;justify-content:space-between;border:0;background:transparent}.profile-panel form{margin:6px 0 0;padding-top:6px;border-top:1px solid var(--line)}.logout-button{color:var(--danger)}.theme-setting{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;font-size:12px;color:var(--muted)}.theme-setting select{width:140px;min-height:40px;font-size:13px;padding:8px}.theme-toggle{width:44px;padding:10px;background:transparent}.theme-toggle svg{width:20px;height:20px}#navigation button svg{width:20px;height:20px;flex-shrink:0}.nav-label{font-size:10px;letter-spacing:1.5px;color:var(--muted);padding:10px 12px}.nav-footer{margin-top:auto;padding:25px 12px;color:var(--muted)}.nav-footer span,.nav-footer small{display:block;font-size:12px}.nav-close{justify-content:space-between!important}.mobile-nav,.nav-scrim{display:none}.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:420px;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.login-card h1{margin:30px 0 24px}.login-card label{margin-top:18px}.login-card>button{width:100%;margin-top:24px}.login-card .theme-setting{padding:24px 0 0}.login-card [role=alert]{color:var(--danger)}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}dialog[open]{animation:appear .15s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
