/* CleanOrbit shared look. Loaded by index, customize, portal and admin so every page matches. */
:root{
 --ink:#14303a; --ink-2:#4b646b; --line:#d9e4e4; --line-2:#e8eff0; --bg:#f3f7f7; --card:#fff;
 --nav:#0b1016; --nav-hover:#16212c; --nav-text:#bccad3; --nav-line:#1d2a36; --mint:#9ed6c2;
 --primary:#17695f; --primary-hover:#0f564d; --primary-soft:#e4f2ef; --primary-ink:#145a51;
 --danger:#9b3a30; --danger-soft:#fdecea; --warn-soft:#fff3e6; --warn:#8a4b08; --ok:#1d6959; --ok-soft:#e1f3ee;
 --focus:#1a8a7b; --radius:12px; --radius-sm:9px;
 --company-accent:#17695f;
 --surface:#fff; --on-primary:#fff; --link:#17695f; --field-line:#7f9696; --btn-line:#c3d6d6; --danger-line:#e3b9b4; --placeholder:#5c7279;
 --note-bg:#e7f2f2; --note-ink:#1f4d54; --note-line:#cfe5e4; --danger-line-2:#f0c9c4; --ok-line:#c5e5db; --warn-line:#f3d9b9; --neutral-bg:#eaf0f1; --neutral-ink:#3f565c;
 --section-bg:#fafcfc; --plan-current-bg:#eef7f4; --meter-bg:#dfe9e8; --shadow:#14303a08;
 color-scheme:light;
 font:16px/1.55 "Segoe UI",Inter,system-ui,-apple-system,Roboto,Arial,sans-serif; color:var(--ink); background:var(--bg);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink)}
h1{font-size:28px;line-height:1.2;letter-spacing:-.5px;margin:0}
h2{font-size:19px;line-height:1.3;margin:0 0 14px}
h3{font-size:16px;margin:0 0 10px}
p{margin:0 0 12px}
a{color:var(--link)}
code{background:var(--line-2);padding:1px 6px;border-radius:6px;font-size:.9em}
.muted{color:var(--ink-2)}
.small{font-size:13px}
.hide{display:none!important}
.right{margin-left:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--surface);color:var(--ink);padding:10px 14px;border-radius:8px;z-index:100;border:2px solid var(--focus)}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

/* Buttons: primary = main action, ghost/secondary = everything else. One size, one shape. */
button{font:inherit;cursor:pointer;min-height:44px;border-radius:var(--radius-sm);padding:10px 18px;border:1px solid transparent;font-weight:600;line-height:1.2;transition:background .12s,border-color .12s}
button:disabled{opacity:.55;cursor:not-allowed}
button.primary,.btn-primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}
button.ghost,button.secondary{background:var(--surface);color:var(--primary-ink);border-color:var(--btn-line)}
button.ghost:hover:not(:disabled),button.secondary:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}
button.danger{background:var(--surface);color:var(--danger);border-color:var(--danger-line)}
a.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:var(--radius-sm);font-weight:600;line-height:1.2;text-decoration:none;border:1px solid transparent}
a.btn.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
a.btn.primary:hover{background:var(--primary-hover)}
a.btn.ghost{background:var(--surface);color:var(--primary-ink);border-color:var(--btn-line)}
button.small,.small-btn{min-height:36px;padding:6px 12px;font-size:14px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}

/* Forms */
label{display:block;font-size:14px;font-weight:600;margin:14px 0 4px}
input,select,textarea{font:inherit;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--field-line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);margin:0 0 4px}
textarea{min-height:110px;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--placeholder)}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;margin:0 8px 0 0}
.hint{font-size:13px;color:var(--ink-2);margin:2px 0 8px}
.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.row>*{flex:1;min-width:140px}
.form-narrow{max-width:520px}

/* Cards, tables, notices */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:16px;box-shadow:0 2px 10px var(--shadow)}
.card>h2:first-child{margin-top:0}
.stat{font-size:32px;font-weight:800;letter-spacing:-1px;line-height:1.1}
.stat-label{color:var(--ink-2);font-size:14px;margin-bottom:6px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
th{font-size:13px;font-weight:700;color:var(--ink-2)}
tr:last-child td{border-bottom:0}
.note,.notice{padding:12px 16px;border-radius:var(--radius-sm);background:var(--note-bg);color:var(--note-ink);margin:0 0 16px;border:1px solid var(--note-line);white-space:pre-wrap}
.note.error,.notice.error,.error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line-2)}
.note.ok,.notice.ok{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-line)}
.note.warn,.warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}
.empty{padding:36px 16px;text-align:center;color:var(--ink-2)}
.empty b{display:block;color:var(--ink);font-size:17px;margin-bottom:4px}
.pill{display:inline-block;border-radius:30px;padding:3px 11px;font-size:13px;font-weight:600;background:var(--ok-soft);color:var(--ok);white-space:nowrap}
.pill.neutral{background:var(--neutral-bg);color:var(--neutral-ink)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--danger-soft);color:var(--danger)}
.section{border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:12px 0;background:var(--section-bg)}
.item{border-top:1px solid var(--line-2);padding:14px 0}

/* Dialog */
dialog{border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 80px #0b2b3050;width:min(640px,calc(100% - 24px));max-height:92vh;overflow:auto;padding:26px;color:var(--ink)}
dialog::backdrop{background:#0b253080}
dialog h2{margin-bottom:6px}

/* Page header bar used by customize, portal and admin */
.topbar{background:var(--nav);color:#fff;padding:14px max(20px,calc((100vw - 1160px)/2));display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.topbar a{color:var(--mint)}
.topbar .where{color:var(--nav-text);font-size:15px;margin-left:10px}
.brand-link{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:24px;letter-spacing:-1px}
.brand-link span,.brand span{color:var(--mint)}
.logo{width:30px;height:auto;flex:none;background:var(--mint,#9ed6c2);-webkit-mask:url(/assets/orbit-mark.svg) center/contain no-repeat;mask:url(/assets/orbit-mark.svg) center/contain no-repeat;object-position:-999px 0}
.page{max-width:1160px;margin:28px auto;padding:0 20px}
.page.narrow{max-width:720px}
.signin-card{max-width:460px;margin:0 auto}
.signin-card h2{font-size:22px}
details.advanced{margin-top:16px;border-top:1px solid var(--line-2);padding-top:12px}
details.advanced summary{cursor:pointer;font-weight:600;color:var(--ink-2)}

/* Workspace app (index): sidebar + content */
aside{width:250px;position:fixed;inset:0 auto 0 0;background:var(--nav);border-right:1px solid var(--nav-line);color:#fff;padding:22px 14px;overflow:hidden auto;display:flex;flex-direction:column}
.brand{font-size:26px;font-weight:800;letter-spacing:-1.2px;margin:0 8px;display:flex;align-items:center;gap:10px}
.tag{color:#9fb0bb;font-size:11px;margin:2px 0 22px 8px;white-space:nowrap}
.menu-toggle{display:none}
nav{flex:1}
.nav-group{margin:0 0 6px}
.nav-title{color:var(--mint);font-size:14px;font-weight:700;letter-spacing:.3px;margin:20px 8px 6px;padding-top:16px;border-top:1px solid var(--nav-line)}
.nav-group:first-child .nav-title{border-top:0;padding-top:0;margin-top:6px}
nav button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--nav-text);border-radius:9px;padding:9px 12px 9px 14px;margin:1px 0;min-height:40px;font-weight:500}
nav button:hover{background:var(--nav-hover);color:#fff}
nav button[aria-current=page],nav button.active{background:#1b302f;color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--mint)}
nav button:focus-visible{outline-color:var(--mint)}
.side-links{border-top:1px solid var(--nav-line);margin-top:14px;padding-top:8px}
.side-links a{display:block;color:var(--mint);padding:8px 12px;text-decoration:none;border-radius:8px;font-size:15px}
.side-links a:hover{background:var(--nav-hover)}
.side-links a:focus-visible{outline-color:var(--mint)}
main{margin-left:250px;padding:28px 38px 60px;max-width:1400px}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.top .who{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.top select{width:auto;min-width:200px;max-width:320px;margin:0}
.status-line{color:var(--ink-2);font-size:14px;margin:0 0 18px}

/* Dashboard */
.stats{grid-template-columns:repeat(3,1fr)}
.todo{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line-2)}
.todo-text{flex:1}
.todo .pill{min-width:64px;text-align:center}

/* Plans and usage (billing page) */
.plans{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.plan{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--surface)}
.plan.current{border:2px solid var(--primary);background:var(--plan-current-bg)}
.plan h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:18px}
.plan .muted{margin:2px 0 14px}
.usage-row{margin:14px 0}
.usage-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}
.meter{background:var(--meter-bg);border-radius:8px;height:10px;overflow:hidden}
.meter>span{display:block;height:100%;background:var(--primary);border-radius:8px}
.meter.warn>span{background:#b8760b}
.meter.bad>span{background:var(--danger)}

/* Structured editors (walkthrough areas, proposal sections) */
.area-card{border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:12px 0;background:var(--section-bg)}
.area-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.area-grid label{margin-top:6px}

@media(max-width:860px){
 aside{position:static;width:100%;padding:12px 14px;display:block}
 .brand{margin:0;font-size:24px}
 .tag{display:none}
 .menu-toggle{display:inline-flex;position:absolute;right:14px;top:10px;align-items:center;gap:8px;background:#16212c;color:#fff;border-color:#2a3a48;min-height:44px}
 aside .navwrap{display:none;margin-top:10px}
 aside.open .navwrap{display:block}
 main{margin:0;padding:18px 16px 48px}
 h1{font-size:24px}
 .topbar{padding:12px 16px}
 .page{margin:18px auto;padding:0 16px}
 .card{padding:18px}
 .top select{min-width:0;width:100%;max-width:none}
 .top .who{width:100%}
 .top .who>*{flex:1}
 .top .who>select{flex:1 1 100%}
 .stats{grid-template-columns:repeat(2,1fr)}
 .stats .card{padding:14px}
 .stat{font-size:28px}
}
@media(max-width:600px){
 table.stack thead{position:absolute;left:-9999px}
 table.stack,table.stack tbody{display:block}
 table.stack tr{display:block;border-bottom:1px solid var(--line);padding:10px 0}
 table.stack tr:last-child{border-bottom:0}
 table.stack td{display:flex;justify-content:space-between;align-items:center;gap:14px;border:0;padding:5px 0;text-align:right}
 table.stack td[data-label]::before{content:attr(data-label);color:var(--ink-2);font-weight:600;font-size:14px;text-align:left}
 table.stack td:not([data-label]){justify-content:flex-end}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{aside,.actions,.top button,.note,.skip,.menu-toggle{display:none!important}main{margin:0;padding:0}.card{box-shadow:none;break-inside:avoid}}

footer.legal{text-align:center;padding:18px 16px 28px;font-size:.85rem;color:var(--ink-2)}footer.legal a{color:inherit;text-decoration:underline;display:inline-block;min-height:44px;line-height:44px;padding:0 8px}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:12px 0}dl.kv dt{color:var(--ink-2)}dl.kv dd{margin:0;font-weight:600}@media(max-width:520px){dl.kv{grid-template-columns:1fr;gap:2px}dl.kv dd{margin-bottom:8px}}

/* Dark theme. Chosen per person in Settings (Light / Dark / Match my device); assets/theme.js sets data-theme on <html>. */
:root[data-theme=dark]{
 --ink:#e6edf1; --ink-2:#a9bac3; --line:#2a3846; --line-2:#202c38; --bg:#0d141b; --card:#141d27;
 --nav:#0b1016; --nav-hover:#16212c; --nav-text:#bccad3; --nav-line:#1d2a36; --mint:#9ed6c2;
 --primary:#9ed6c2; --primary-hover:#b6e3d4; --primary-soft:#1a2f2e; --primary-ink:#9ed6c2; --on-primary:#0b1016; --link:#9ed6c2;
 --danger:#f2a79e; --danger-soft:#3a1f1d; --warn:#f0bd72; --warn-soft:#38291a; --ok:#86d9bf; --ok-soft:#16302a;
 --focus:#7fe0cc; --surface:#101922; --field-line:#62778a; --btn-line:#3b4d5c; --danger-line:#6b3a35; --placeholder:#8da0ab;
 --note-bg:#16262e; --note-ink:#c3dde0; --note-line:#27414a; --danger-line-2:#5a312d; --ok-line:#24503f; --warn-line:#5a4524;
 --neutral-bg:#22303c; --neutral-ink:#b8c8d1; --section-bg:#111a23; --plan-current-bg:#15282a; --meter-bg:#26333f; --shadow:#00000040;
 color-scheme:dark;
}
/* Black: the Dark theme on pure black (best on OLED screens). data-theme stays "dark", so every dark rule still applies; this only deepens the backgrounds. */
:root[data-theme=dark][data-black]{
 --bg:#000000; --card:#0c0f13; --surface:#07090c; --nav:#000000; --nav-hover:#10151a; --nav-line:#171d23; --section-bg:#050709;
 --line:#222b33; --line-2:#161c22; --neutral-bg:#1a2128; --meter-bg:#1f272e; --plan-current-bg:#0d1a1b; --note-bg:#0c161a; --shadow:#00000000;
}
:root[data-theme=dark] code{background:var(--line-2)}
:root[data-theme=dark] dialog::backdrop{background:#000000a0}
:root[data-theme=dark] .logo{filter:none}
.topbar nav a{color:var(--mint)}

/* Training Videos */
.training{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:16px;align-items:start}
@media(max-width:860px){.training{grid-template-columns:1fr}}
.tr-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.tr-head h2{margin:0}
button.sm{min-height:40px;padding:6px 12px;font-size:14px}
.tr-actions button.sm{background:transparent;border-color:transparent;min-height:36px;padding:4px 10px;text-decoration:underline;text-underline-offset:3px}.tr-actions button.sm:hover{background:var(--primary-soft)}
.tr-list{list-style:none;margin:0;padding:0}.tr-list .tr-list{margin-left:14px;padding-left:12px;border-left:2px solid var(--line-2)}
.tr-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0}
.tr-actions{display:flex;flex-wrap:wrap;gap:2px;margin:0 0 6px 34px;width:100%}
.tr-name{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;color:var(--ink);border:1px solid transparent;font-weight:600;padding:8px 10px;min-height:44px}
.tr-row .tr-name{width:auto;flex:1 1 220px}
.tr-name:hover{background:var(--primary-soft)}.tr-name.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-ink)}
.tr-name span:first-of-type{overflow-wrap:anywhere}.tr-icon{flex:none}
.tr-empty{margin:0 0 6px 8px}
.tr-frame{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden}
.tr-frame iframe,.tr-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.tr-dialog{width:min(560px,calc(100% - 24px))}
.tr-choice{border:0;padding:0;margin:12px 0}.tr-choice legend{font-weight:600;margin-bottom:6px}
label.inline{display:flex;gap:10px;align-items:center;font-weight:400;margin:6px 0}label.inline input{width:auto;min-height:auto;margin:0}

.co-list{list-style:none;margin:0;padding:0}.co-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line-2)}.co-list li:first-child{border-top:0}

.mt-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.mt-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.mt-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.mt-summary .mt-chips{margin:0}
.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:30px;padding:6px 14px;font-size:14px;cursor:pointer}
.chip.on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.mt-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:8px}
.mt-toggle{min-width:32px;padding:4px 6px}
.mt-toggle-gap{display:inline-block;width:32px}
.mt-pols{list-style:none;margin:0 0 12px;padding:0}
.mt-pols li{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px}
.mt-pol{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.mt-pol-actions{display:flex;gap:6px;flex-wrap:wrap}
.mt-text{white-space:pre-wrap;margin-top:10px;max-height:320px;overflow:auto;padding-top:10px;border-top:1px solid var(--line)}
.mt-ack{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;margin-bottom:12px}
.tr-choice{border:1px solid var(--line);border-radius:var(--radius-sm);margin:12px 0;padding:8px 12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

body.gate aside,body.gate .top{display:none}
body.gate main{margin:0 auto;max-width:480px;padding:40px 16px 60px}
body.gate #notice:empty{display:none}
.gate-card{margin-top:8px}
.gate-brand{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:700;margin-bottom:10px;color:var(--ink)}
.gate-brand span span{color:var(--primary)}
.gate-card form{margin-top:4px}

.geo-helper{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;margin:14px 0;background:var(--section-bg)}
.geo-helper h3{margin:0 0 6px}
.geo-helper .actions{align-items:center}
.geo-helper a{font-size:14px}
.help-steps{margin:0;padding-left:20px}.help-steps li{margin:0 0 12px}

.list-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:6px}
.thsort{all:unset;cursor:pointer;font-weight:inherit;color:inherit;display:inline-flex;align-items:center;gap:2px;min-height:44px}
.thsort:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
th[aria-sort=ascending] .thsort,th[aria-sort=descending] .thsort{color:var(--primary)}

.stat-card{margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%}
.stat-card:hover{border-color:var(--primary)}
ul.attn{list-style:none;margin:0;padding:0}
ul.attn li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
ul.attn li:last-child{border-bottom:0}
ul.attn .todo-text{flex:1 1 200px}
.stat-card span{display:block}

.gate-switch{margin:16px 0 0;color:var(--muted);font-size:.95rem}
.linklike{all:unset;cursor:pointer;color:var(--primary-ink);font-weight:600;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center;padding:0 4px}
.linklike:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
[hidden]{display:none!important}

/* Calculator and estimate results */
.calc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;align-items:start}
.calc-inputs{display:grid;gap:4px}
.result-empty{border:1px dashed var(--line);border-radius:var(--radius);padding:24px;color:var(--ink-2);background:var(--surface-2,transparent);min-height:120px;display:block;padding-top:44px;padding-bottom:44px}
.result{border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:var(--surface)}
.result h3{font-size:15px;margin:22px 0 10px}
.result-head{display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between;align-items:flex-end}
.result-label{color:var(--ink-2);font-size:14px;font-weight:600}
.result-big{font-size:clamp(32px,6vw,44px);font-weight:800;letter-spacing:-1px;line-height:1.1;margin:2px 0}
.result-big.neg{color:var(--danger)}
.result-sub{color:var(--ink-2);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.result-facts{display:grid;gap:10px;margin:0}
.result-facts dt{font-size:13px;color:var(--ink-2)}
.result-facts dd{margin:0;font-weight:700}
.stackbar{display:flex;height:14px;border-radius:30px;overflow:hidden;background:var(--line)}
.seg.c1,.dot.c1{background:var(--primary)}.seg.c2,.dot.c2{background:#5aa89a}.seg.c3,.dot.c3{background:#c9a24a}.seg.c4,.dot.c4{background:#3f6fb5}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;padding:0;margin:10px 0 14px;font-size:14px}
.legend li{display:flex;align-items:center;gap:6px}.legend b{margin-left:2px}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.result-table td.num,.result-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.result-table tr.total td{font-weight:800;border-top:2px solid var(--line)}
@media(max-width:860px){.calc-grid{grid-template-columns:1fr}}
.result-table{width:100%;border-collapse:collapse}.result-table th,.result-table td{padding:9px 6px;border-bottom:1px solid var(--line-2);text-align:left}.result-table th.num,.result-table td.num{text-align:right}
@media(max-width:520px){.result{padding:16px}.result-table th,.result-table td{padding:8px 4px;font-size:14px}}

.seg.c5,.dot.c5{background:#b5546b}.seg.c6,.dot.c6{background:#7a5fb0}.seg.c7,.dot.c7{background:#d27a3a}.seg.c8,.dot.c8{background:#6b7f8c}
.cost-lines{display:grid;gap:10px;margin:4px 0 10px}
.cost-line{display:grid;grid-template-columns:minmax(0,1fr) 120px 44px;gap:8px;align-items:end}
.cost-line label{font-size:13px}
.cost-line .ghost{min-width:44px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.chips button{min-height:36px;padding:4px 12px;font-size:14px}
@media(max-width:520px){.cost-line{grid-template-columns:minmax(0,1fr) 96px 44px}}

.rec-days{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px 12px;margin:10px 0;display:flex;flex-wrap:wrap;gap:4px 14px}
.rec-days legend{font-weight:600;padding:0 6px}
.chk{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:500;margin:0}
.chk input{width:20px;height:20px;margin:0}
.rec-custom-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}

/* Checklists: sections, subsections, photos, issue reports */
.cl-page h3,.cl-page h4{margin:0}.cl-h3{margin:18px 0 6px!important}
.cl-sec{border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:14px 0;background:var(--card)}
.cl-sub{border:1px solid var(--line-2);border-left:4px solid var(--primary);border-radius:var(--radius-sm);padding:12px 14px;margin:14px 0 6px 12px;background:var(--bg)}
.cl-sec.view .cl-sub.view{background:transparent}
.cl-sec-head{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin-bottom:6px}
.cl-tools{display:flex;gap:6px;flex-wrap:wrap}.cl-tools .small{min-height:36px;min-width:44px}
.cl-desc{white-space:pre-wrap;color:var(--ink-2);margin:6px 0 10px}
.cl-tasks{margin:8px 0 8px 18px;padding:0}.cl-tasks li{margin:4px 0}
.cl-task-row{display:flex;gap:8px;margin:6px 0}.cl-task-row input{flex:1;min-width:0}.cl-x2{min-width:44px;padding:0}
.lbl{display:block;font-weight:600;margin:12px 0 4px}
.cl-photos{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:6px 0 10px}
.cl-photos li{position:relative}
.cl-photo{display:block;width:112px;height:112px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);background:var(--line-2)}
.cl-photo img{width:100%;height:100%;object-fit:cover;display:block}.cl-photo img.missing{opacity:.4}
.cl-x{position:absolute;top:-8px;right:-8px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.cl-addphoto{cursor:pointer;position:relative}.cl-addphoto:focus-within{outline:2px solid var(--focus);outline-offset:2px}.cl-addphoto.is-disabled{opacity:.5;cursor:not-allowed}
.cl-areas{border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 12px 10px;margin:12px 0}.cl-areas legend{font-weight:600;padding:0 6px}
.cl-areas .chk{display:flex;align-items:center;gap:10px;min-height:44px;width:100%;margin:0}.cl-areas .chk.d1{padding-left:22px}
.cl-report{margin-top:16px}.cl-issue{border:1px solid var(--line-2);border-radius:var(--radius-sm);padding:10px 12px;margin:0 0 14px;background:var(--bg)}
.cl-save{position:sticky;bottom:0;background:linear-gradient(transparent,var(--card) 30%);padding:12px 0 4px;margin-top:8px}
.row-actions{white-space:nowrap}.row-actions .ghost+.ghost{margin-left:6px}

/* Inspection reports. Four rating levels use the same soft colours as the pills; the label is always written out, never colour alone. */
.ir-excellent{--ir-bg:var(--ok-soft);--ir-ink:var(--ok);--ir-line:var(--ok-line)}
.ir-acceptable{--ir-bg:var(--primary-soft);--ir-ink:var(--primary-ink);--ir-line:var(--note-line)}
.ir-needs_improvement{--ir-bg:var(--warn-soft);--ir-ink:var(--warn);--ir-line:var(--warn-line)}
.ir-poor{--ir-bg:var(--danger-soft);--ir-ink:var(--danger);--ir-line:var(--danger-line-2)}
.ir-na,.ir-none{--ir-bg:var(--neutral-bg);--ir-ink:var(--neutral-ink);--ir-line:var(--line)}
.ir-pill{display:inline-block;border-radius:30px;padding:3px 11px;font-size:13px;font-weight:600;background:var(--ir-bg);color:var(--ir-ink);border:1px solid var(--ir-line);white-space:nowrap}
.ir-head{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:6px 0 16px}
.ir-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:150px;padding:14px 22px;border-radius:var(--radius);background:var(--ir-bg);color:var(--ir-ink);border:1px solid var(--ir-line)}
.ir-num{font-size:38px;font-weight:700;line-height:1.1;letter-spacing:-1px}
.ir-band{font-size:15px;font-weight:600}
.ir-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 24px;margin:0;flex:1}
.ir-meta dt{font-size:13px;color:var(--ink-2)}
.ir-meta dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ir-findings{background:var(--note-bg);color:var(--note-ink);border:1px solid var(--note-line);border-radius:var(--radius-sm);padding:12px 16px;margin:0 0 16px}
.ir-findings h3{margin:0 0 6px}.ir-findings p{margin:0;white-space:pre-wrap}
.ir-sec,.ir-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;margin:0 0 14px;background:var(--surface)}
.ir-sub,.ir-subcard{border-left:3px solid var(--primary);background:var(--section-bg);border-radius:var(--radius-sm);padding:10px 14px;margin:12px 0 0}
.ir-sec-h{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ir-sec-h h3,.ir-sec-h h4{margin:0}
.ir-comment{margin:8px 0;white-space:pre-wrap}
.ir-vis{margin:-8px 0 12px}
.ir-card h3{margin:0 0 4px}.ir-subcard h4{margin:0 0 4px}
.ir-rate{border:0;padding:0;margin:10px 0 4px}
.ir-rate legend{font-weight:600;padding:0;margin-bottom:6px}
.ir-opts{display:flex;flex-wrap:wrap;gap:8px}
.ir-opt{position:relative;display:inline-flex;margin:0}
.ir-opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.ir-opt span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:30px;border:2px solid var(--field-line);background:var(--surface);font-weight:600;font-size:14px;cursor:pointer}
.ir-opt input:checked+span{background:var(--ir-bg);color:var(--ir-ink);border-color:var(--ir-ink)}
.ir-opt input:checked+span::before{content:"\2713\00a0"}
.ir-opt input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.ir-live{display:flex;flex-direction:column;gap:2px;margin:14px 0;padding:10px 14px;border-radius:var(--radius-sm);background:var(--ir-bg);color:var(--ir-ink);border:1px solid var(--ir-line);position:sticky;top:8px;z-index:5}
.ir-tasks{margin:6px 0}.ir-tasks summary{cursor:pointer;min-height:32px;color:var(--ink-2)}
.ir-share .chk{display:flex;align-items:center;gap:10px;min-height:44px}
@media(max-width:600px){.ir-score{width:100%}.ir-opt span{padding:0 12px}}

/* Workspaces: team and client spaces, chat, to-dos, notes, files. */
.ws-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;margin-left:8px;border-radius:30px;background:var(--mint);color:#0b1016;font-size:12px;font-weight:700;line-height:1;vertical-align:middle}
.ws-head{margin-bottom:12px}.ws-head h2{margin-bottom:6px}
.ws-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 24px;margin:12px 0 0}
.ws-contact dt{font-size:13px;color:var(--ink-2)}.ws-contact dd{margin:0;font-weight:600;overflow-wrap:anywhere}.ws-wide{grid-column:1/-1}
.ws-sites{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ws-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.ws-tabs [role=tab]{min-height:44px;padding:0 16px;border-radius:30px;border:1px solid var(--btn-line);background:var(--surface);color:var(--ink);font-weight:600;cursor:pointer}
.ws-tabs [role=tab][aria-selected=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.ws-clients{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ws-client{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 16px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.ws-client:hover{border-color:var(--primary)}
.ws-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 14px}
.ws-add{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 16px;margin:14px 0;background:var(--section-bg)}
.ws-filters{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:10px 0}
.ws-filters .chk,.ws-device,.ws-check{display:flex;align-items:center;gap:10px;min-height:44px}
.ws-todos,.ws-notes,.ws-files{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ws-todo{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;background:var(--surface)}
.ws-todo.done .ws-title{text-decoration:line-through;color:var(--ink-2)}
.ws-check input{width:22px;height:22px;flex:none}.ws-title{font-weight:600;overflow-wrap:anywhere}
.ws-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:2px 0 0 32px}
.ws-due{font-size:13px;font-weight:600}.ws-overdue{color:var(--danger)}.ws-today{color:var(--warn)}.ws-soon,.ws-later{color:var(--ink-2)}
.ws-details{margin:6px 0 0 32px;white-space:pre-wrap}
.ws-acts{display:flex;gap:8px;margin:6px 0 0 32px;flex-wrap:wrap}
.ws-note{display:flex;flex-direction:column;gap:2px;width:100%;min-height:44px;padding:10px 14px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.ws-files li{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px}
.ws-files .ws-acts{margin:0}
.wc-feed{height:min(60vh,560px);min-height:300px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:var(--section-bg)}
.wc-day{text-align:center;margin:12px 0 6px}.wc-day span{display:inline-block;padding:2px 12px;border-radius:30px;background:var(--neutral-bg);color:var(--neutral-ink);font-size:12px;font-weight:600}
.wc-msg{max-width:min(640px,92%);margin:8px 0;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line)}
.wc-msg.mine{margin-left:auto;background:var(--primary-soft);border-color:var(--note-line)}
.wc-msg header{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;font-size:14px}
.wc-msg time{color:var(--ink-2);font-size:12px}.wc-role{font-size:12px;color:var(--ink-2)}
.wc-del{margin-left:auto;min-height:32px}
.wc-body{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.wc-atts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.wc-photo img{width:160px;height:160px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block;background:var(--neutral-bg)}
.wc-media{max-width:100%;width:320px;border-radius:8px;background:#000}
.wc-more{text-align:center;margin-bottom:8px}
.wc-form{margin-top:10px}.wc-form textarea{width:100%}
.wc-pending{margin:8px 0}.wc-pending li{position:relative}.wc-pending img{width:88px;height:88px;object-fit:cover;border-radius:8px}
.wc-vid{display:inline-block;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.wc-actions{align-items:center}
@media(max-width:600px){.wc-msg{max-width:100%}.wc-photo img{width:128px;height:128px}.ws-meta,.ws-details,.ws-acts{margin-left:0}}

/* Notification bell in the top bar (always visible, also on phones). */
.bell-wrap{position:relative;display:inline-block;margin-right:8px}
.bell{display:inline-flex;align-items:center;gap:2px;min-height:44px;min-width:44px;justify-content:center;padding:0 10px}
.bell .ws-badge{margin-left:2px}
.bell-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:50;width:min(340px,86vw);max-height:60vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 8px 28px #0003;padding:6px}
.bell-panel ul{list-style:none;margin:0;padding:0}
.bell-panel button{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;min-height:48px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.bell-panel button:hover{background:var(--primary-soft)}
.menu-toggle .ws-badge{margin-left:8px}
.bell .ws-badge{background:var(--primary);color:var(--on-primary)}
@media(max-width:600px){.bell-panel{position:fixed;left:12px;right:12px;width:auto}}

/* SOPs */
.sop-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.sop-top .actions{margin:0}
.sop-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 14px;margin-top:8px}
.sop-cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.sop-card{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:0}
.sop-card h3{margin:0 0 4px}
.sop-card p{margin:4px 0}
.sop-main{flex:1 1 280px;min-width:0}
.sop-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sop-acts{display:flex;gap:8px;flex-wrap:wrap}
.sop-read{max-width:820px}
.sop-body{margin-top:14px;line-height:1.6;overflow-wrap:anywhere}
.sop-body h2{font-size:20px;margin:18px 0 6px}.sop-body h3{font-size:17px;margin:14px 0 4px}
.sop-body ul,.sop-body ol{padding-left:24px}.sop-body li{margin:4px 0}
.sop-form{max-width:760px}
.sop-form textarea{width:100%;font-family:inherit}
.ws-people{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 14px;margin:10px 0 0}
.ws-people legend{font-weight:600;padding:0 6px}
.ws-people-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 12px;max-height:200px;overflow:auto}
.wc-file{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;background:var(--surface);color:var(--ink);text-decoration:none;max-width:100%;min-height:44px}
.wc-file:hover{background:var(--primary-soft)}
.wc-file-ic{background:var(--danger);color:#fff;border-radius:4px;font-size:11px;font-weight:700;padding:2px 5px}
.wc-file-nm{font-weight:600;overflow-wrap:anywhere}
.wc-file.missing{opacity:.6}
.wo-share{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.wo-dests{display:grid;gap:2px 14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));max-height:220px;overflow:auto}

/* Proposal editor */
.pe-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media(min-width:1100px){.pe-grid{grid-template-columns:minmax(340px,440px) minmax(0,1fr);align-items:start}.pe-side{position:sticky;top:12px}}
.pe-form .card,.pe-side .card{margin-bottom:14px}
.pe-sec{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;margin:0 0 12px}
.pe-sec-head{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.pe-sec-head>div{flex:1 1 220px}
.pe-area{border-top:1px dashed var(--line);margin-top:10px;padding-top:6px}
.pe-sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 16px}
.pe-size-row{display:flex;align-items:center;gap:8px}.pe-size-row input[type=range]{flex:1 1 auto;min-width:60px}.pe-size-row input[type=number]{width:76px}
.pe-logo-row{margin:6px 0}.pe-logo-thumb{max-width:200px;max-height:90px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:4px}
.pp-wrap{background:#dfe6e4;border-radius:10px;padding:0;overflow:hidden}
.pp-page{background:#fff;color:#16211f;width:612pt;min-height:792pt;box-sizing:border-box;padding:54pt;font-family:Helvetica,Arial,sans-serif;line-height:1.28;box-shadow:0 2px 12px #0002}
.pp-logo{display:block;height:auto;margin-bottom:8pt}.pp-company{font-weight:700;color:#4a5a57;margin-bottom:4pt}
.pp-title{margin:0 0 6pt;font-weight:700}.pp-h{margin:12pt 0 4pt;font-weight:700}
.pp-kv{display:grid;grid-template-columns:90pt 1fr;gap:3pt 0;margin:8pt 0}.pp-kv dt{font-weight:700;color:#4a5a57}.pp-kv dd{margin:0}
.pp-intro,.pp-terms{white-space:normal;margin:0 0 10pt}.pp-terms{color:#4a5a57}
.pp-table{width:100%;border-collapse:collapse;margin-bottom:10pt}.pp-table th{background:#e3efec;text-align:left}.pp-table th,.pp-table td{padding:4pt;vertical-align:top;border-bottom:.4pt solid #dde6e4}.pp-table tbody tr:nth-child(even){background:#f6f9f8}
.pp-price{font-weight:700;margin-bottom:10pt}.pp-foot{margin-top:24pt;border-top:.6pt solid #17695f;padding-top:4pt;color:#59686a}
.pp-page{position:relative}
.pp-logo{cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none}
.pp-logo.free{position:absolute;margin:0;z-index:2}
.pp-logo.drag{cursor:grabbing;outline:2px dashed #17695f;outline-offset:2px}
.pp-logo:focus-visible{outline:2px solid #17695f;outline-offset:2px}
.pp-reserve{height:0}
.pp-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:8pt;margin:2pt 0 10pt}.pp-gal figure{margin:0}.pp-gal img{width:100%;max-height:150pt;object-fit:contain;display:block}.pp-gal figcaption{font-size:8pt;color:#4a5a57;margin-top:2pt}
.pe-pics{margin:8px 0}.pe-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.pe-thumb{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.pe-thumb img{width:96px;height:72px;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:#fff}
.pp-pic{margin:0}.pp-pic img{width:100%;display:block;-webkit-user-drag:none;user-select:none}.pp-pic{cursor:grab;touch-action:none}
.pp-band.free{position:relative;margin:2pt 0 10pt}.pp-band.free .pp-pic{position:absolute}.pp-band.free .pp-pic img{max-height:none}
.pp-pic.drag{outline:2px dashed #17695f;outline-offset:2px;cursor:grabbing;z-index:2}.pp-pic:focus-visible{outline:2px solid #17695f;outline-offset:2px}
.pe-thumb .pe-size-row{width:190px}
.wo-sec{margin:18px 0 6px}.wo-h{margin:0 0 6px;padding:4px 0 4px 10px;border-left:4px solid var(--line);font-size:1.05rem}
.wo-h.high{border-left-color:var(--danger)}.wo-h.medium{border-left-color:var(--warn)}.wo-h.low{border-left-color:var(--accent,#17695f)}
.wo-done{margin:18px 0 6px;border-top:1px solid var(--line);padding-top:10px}.wo-done>summary{cursor:pointer;font-weight:700;padding:6px 0}

/* ---- Scheduling, Live map ---- */
.sc-bar-top{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:12px}
.seg{display:inline-flex;gap:0}.seg button{border-radius:0;min-height:40px}.seg button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.seg button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.sc-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sc-title{margin:0 0 0 8px;font-size:19px}
.sc-tools{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.sc-tools select{min-width:140px}
.sc-actions{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.sc-legend{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sc-key{display:inline-block;width:12px;height:12px;border-radius:3px;margin-left:8px}.sc-key.shift{background:var(--primary)}.sc-key.job{background:var(--warn)}
.sc-site{margin-bottom:14px}.sc-site-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.sc-site-h h3{margin:0}.sc-site-h p{margin:2px 0 0}
.sc-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:760px}.sc-table th,.sc-table td{border:1px solid var(--line);padding:6px;vertical-align:top;font-size:14px;text-align:left}
.sc-table thead th{background:var(--section-bg);text-align:center}.sc-table .sc-first{width:150px;background:var(--section-bg)}.sc-table .sc-first .small{display:block}
.sc-table th.today,.sc-table td.today,.sc-mc.today{background:var(--plan-current-bg)}
.sc-label th{background:var(--primary-soft);color:var(--primary-ink);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.sc-chip{display:block;width:100%;text-align:left;border:1px solid var(--note-line);background:var(--primary-soft);color:var(--primary-ink);border-radius:8px;padding:4px 7px;margin:0 0 4px;font-size:13px;line-height:1.3;cursor:pointer}
.sc-chip:disabled{cursor:default;opacity:1}.sc-chip span{display:block}.sc-chip.job{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}
.sc-mark{display:inline-block;margin-top:2px;padding:0 7px;border-radius:20px;font-size:12px;font-weight:600;background:var(--neutral-bg);color:var(--neutral-ink)}.sc-mark.ok{background:var(--ok-soft);color:var(--ok)}.sc-mark.bad{background:var(--danger-soft);color:var(--danger)}.sc-mark.warn{background:var(--warn-soft);color:var(--warn)}
.sc-add{border:1px dashed var(--btn-line);background:transparent;color:var(--ink-2);border-radius:8px;min-height:28px;width:100%;font-size:16px;cursor:pointer;opacity:.55}.sc-add:hover,.sc-add:focus-visible{opacity:1;border-color:var(--primary);color:var(--primary-ink)}
.sc-axis,.sc-lane{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:center;margin-bottom:6px}.sc-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.sc-ticks{position:relative;height:18px;border-bottom:1px solid var(--line)}.sc-ticks span{position:absolute;transform:translateX(-50%);font-size:11px;color:var(--ink-2)}
.sc-track{position:relative;height:46px;background:var(--section-bg);border:1px solid var(--line);border-radius:8px}
.sc-bar{position:absolute;top:3px;bottom:3px;overflow:hidden;border:1px solid var(--note-line);background:var(--primary-soft);color:var(--primary-ink);border-radius:7px;padding:2px 6px;font-size:12px;line-height:1.25;text-align:left;cursor:pointer;white-space:nowrap}.sc-bar:disabled{cursor:default;opacity:1}
.sc-sub{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--primary-ink);margin:10px 0 4px}.sc-jobs{display:flex;gap:8px;flex-wrap:wrap}.sc-jobs .sc-chip{width:auto}
.sc-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.sc-mh{text-align:center;font-weight:600;font-size:13px;color:var(--ink-2);padding:4px}
.sc-mc{min-height:104px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:6px;text-align:left;display:flex;flex-direction:column;gap:3px;align-items:flex-start;cursor:pointer;font-size:12px}
.sc-mc.out{opacity:.55}.sc-mc:hover{border-color:var(--primary)}.sc-md{font-weight:700;font-size:14px}.sc-ml{display:block;line-height:1.25}.sc-mt{color:var(--ink-2)}
.sc-dows{display:flex;gap:10px;flex-wrap:wrap}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lm-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin-bottom:10px}.lm-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lm-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
.lm-mapbox{height:min(70vh,640px);min-height:360px;border:1px solid var(--line);border-radius:var(--radius)}
.lm-side{max-height:min(70vh,640px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:10px 12px}.lm-side h3{margin:12px 0 6px;font-size:15px}.lm-side h3:first-child{margin-top:0}
.lm-list,.lm-routes,.lm-att{list-style:none;margin:0;padding:0}.lm-list>li,.lm-routes>li{border-bottom:1px solid var(--line-2);padding:6px 0}.lm-list>li.on,.lm-routes>li.on{background:var(--plan-current-bg);border-radius:8px}
.lm-pick{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:0;color:var(--ink);padding:4px;cursor:pointer;border-radius:8px}
.lm-who{display:flex;flex-direction:column;flex:1;min-width:0}.lm-av{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-weight:700;font-size:13px;background:var(--ok-soft);color:var(--ok)}.lm-av.bad{background:var(--danger-soft);color:var(--danger)}.lm-av.warn{background:var(--warn-soft);color:var(--warn)}.lm-av.neutral{background:var(--neutral-bg);color:var(--neutral-ink)}
.lm-seen{margin:0 4px}.lm-act{margin:2px 4px}.lm-att li{padding:6px 8px;margin:0 0 6px}
.lm-stops{list-style:none;margin:6px 0 4px;padding:0 0 0 4px}.lm-stops li{display:flex;gap:8px;padding:5px 0;border-left:2px solid var(--line);padding-left:8px}.lm-n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%;background:var(--neutral-bg);color:var(--neutral-ink);font-size:12px;font-weight:700}
.st-done .lm-n{background:var(--ok);color:var(--on-primary)}.st-here .lm-n{background:var(--primary);color:var(--on-primary)}.st-missed .lm-n{background:var(--danger);color:#fff}.st-due .lm-n{background:var(--warn);color:#fff}
.linklike{background:none;border:0;padding:0;color:var(--link);text-decoration:underline;cursor:pointer;font:inherit;text-align:left}
.sm-map{position:relative;overflow:hidden;background:#dfe8ea;touch-action:none;cursor:grab;user-select:none}.sm-map.drag{cursor:grabbing}
.sm-tiles img{position:absolute;left:0;top:0;max-width:none;width:256px;height:256px}.sm-svg{position:absolute;left:0;top:0;pointer-events:none}.sm-pins{position:absolute;inset:0;pointer-events:none}
.sm-circle{fill:#17695f22;stroke:#17695f;stroke-width:1.5}.sm-line{fill:none;stroke:#35545c;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.sm-line.trail{stroke:#6b7c84;stroke-width:2;opacity:.7}.sm-line.done{stroke:#1d6959}.sm-line.next{stroke:#b85c00;stroke-width:2}
.sm-line.r1{stroke:#6b3fa0}.sm-line.r2{stroke:#a03f6b}.sm-line.r3{stroke:#3f6ba0}.sm-line.r4{stroke:#a07a3f}.sm-line.r5{stroke:#3fa07a}
.sm-pin{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);min-width:30px;height:30px;padding:0 6px;border-radius:50%;border:2px solid #fff;background:#17695f;color:#fff;font-weight:700;font-size:12px;box-shadow:0 1px 4px #0005;cursor:pointer}
.sm-pin.site{min-width:18px;width:18px;height:18px;padding:0;border-radius:50%;background:#fff;border:5px solid #17695f}.sm-pin.staff.ok{background:#17695f}.sm-pin.staff.bad{background:#9b3a30}.sm-pin.staff.neutral{background:#5b6b73}.sm-pin.sel{outline:3px solid #f0b429;outline-offset:1px}
.sm-pin.stop{background:#35545c;border-radius:50% 50% 50% 4px}.sm-pin.stop.st-done{background:#1d6959}.sm-pin.stop.st-here{background:#17695f;outline:3px solid #9ed6c2}.sm-pin.stop.st-due{background:#8a4b08}.sm-pin.stop.st-missed{background:#9b3a30}
.sm-zoom{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:4px}.sm-zoom button{width:36px;height:36px;font-size:20px;line-height:1;border:1px solid #9bb0b0;background:#fff;color:#14303a;border-radius:8px;cursor:pointer}
.sm-attr{position:absolute;right:0;bottom:0;background:#ffffffcc;color:#14303a;font-size:11px;padding:1px 6px}.sm-attr a{color:#0f564d}.sm-note{position:absolute;left:8px;bottom:22px;margin:0;background:#fff;color:#14303a;font-size:12px;padding:4px 8px;border-radius:6px}
@media (max-width:900px){.lm-body{grid-template-columns:1fr}.lm-side{max-height:none}.lm-mapbox{height:55vh}.sc-mc{min-height:76px}.sc-axis,.sc-lane{grid-template-columns:90px 1fr}.sc-tools{margin-left:0}}
.sched-jobs{margin-top:22px;display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}.sched-jobs>h2,.sched-jobs-head h2{margin:0}.sched-jobs-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.sched-jobs>.tasks-seg{grid-column:1}.sched-jobs>.actions{grid-column:2;justify-self:end;margin:0}.sched-jobs>.card{grid-column:1/-1}.sched-jobs>:not(h2):not(.tasks-seg):not(.actions):not(.card){grid-column:1/-1}@media(max-width:520px){.sched-jobs>.actions{grid-column:1/-1;justify-self:stretch}.sched-jobs>.actions .primary{width:100%}}
.sc-title{margin:0 0 10px}
.ws-h{margin:26px 0 10px}.ws-tpl{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--radius-sm);margin:8px 0}.ws-sec{padding:12px;border:1px solid var(--line-2);border-radius:var(--radius-sm);margin:8px 0;background:var(--card)}.ws-sec .row{margin:6px 0}.ws-sec .row input{flex:1 1 200px}
.ch{display:grid;gap:16px}.ch .stats{margin:0}.ch-stat{font-size:26px}
@media (min-width:901px){.ch .stats{grid-template-columns:repeat(4,1fr)}}

/* Sign-in page: always uses the dark navy and mint look of the sidebar, whatever the device theme is. */
body.gate{
 --ink:#e6edf1; --ink-2:#a9bac3; --muted:#a9bac3; --line:#1d2a36; --line-2:#202c38; --bg:#0b1016; --card:#101922;
 --primary:#9ed6c2; --primary-hover:#b6e3d4; --primary-soft:#16212c; --primary-ink:#9ed6c2; --on-primary:#0b1016; --link:#9ed6c2;
 --danger:#f2a79e; --danger-soft:#3a1f1d; --warn:#f0bd72; --warn-soft:#38291a; --ok:#86d9bf; --ok-soft:#16302a;
 --focus:#7fe0cc; --surface:#0d141b; --field-line:#62778a; --btn-line:#3b4d5c; --danger-line:#6b3a35; --placeholder:#8da0ab;
 --note-bg:#16262e; --note-ink:#c3dde0; --note-line:#27414a; --danger-line-2:#5a312d; --ok-line:#24503f; --warn-line:#5a4524;
 --shadow:#00000040; color-scheme:dark;
 background:#0b1016; color:#e6edf1;
}
body.gate .gate-brand{color:#fff}
body.gate .gate-brand span span{color:var(--mint)}
body.gate .logo{filter:none}
body.gate .gate-card{border-color:var(--nav-line)}
body.gate .legal,body.gate .legal a{color:var(--ink-2)}
html:has(body.gate){background:#0b1016;color-scheme:dark}
body.gate{min-height:100vh}

.note-cell{display:flex;align-items:center;gap:8px;width:300px;max-width:100%}
.note-text{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.note-cell .linklike{flex:none;white-space:nowrap;min-height:44px}
table.stack .note-cell{width:220px;max-width:100%}
@media(max-width:700px){table.stack .note-cell{width:auto}}

/* Recognition (medals) */
.rc-set{border:0;margin:0 0 20px;padding:0;min-width:0}
.rc-set legend,.rc-set>label{font-weight:700;padding:0;margin-bottom:8px;display:block}
.rc-medals{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.rc-medal{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:12px 8px 10px;border:2px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s,transform .12s}
.rc-medal:hover{border-color:var(--primary);transform:translateY(-1px)}
.rc-medal input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;min-height:0}
.rc-medal:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.rc-medal.on{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary)}
.rc-mname{font-weight:700;font-size:14px;line-height:1.25;margin-top:4px}
.rc-mblurb{font-size:12px;color:var(--ink-2);line-height:1.3}
.rc-modes{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.rc-mode{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:2px solid var(--line);border-radius:30px;cursor:pointer;font-weight:600;background:var(--surface)}
.rc-mode:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.rc-mode.on{border-color:var(--primary);background:var(--primary-soft)}
.rc-mode input{margin-right:8px}
.rc-find{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.rc-find input[type=search]{flex:1 1 220px;margin:0}
.rc-find .actions{margin:0}
.rc-people{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;max-height:300px;overflow:auto;background:var(--surface)}
.rc-people li{border-bottom:1px solid var(--line-2)}
.rc-people li:last-child{border-bottom:0}
.rc-people label{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px;cursor:pointer;font-weight:500}
.rc-people label:hover{background:var(--primary-soft)}
.rc-pname{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.rc-none{padding:12px}
.rc-preview{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--note-bg);color:var(--note-ink);border:1px solid var(--note-line);margin:4px 0 14px}
.rc-history,.rc-list{list-style:none;margin:0;padding:0}
.rc-history li,.rc-list li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line-2)}
.rc-history li:last-child,.rc-list li:last-child{border-bottom:0}
.rc-history svg,.rc-list svg{flex:none}
.rc-quote{margin:4px 0;font-style:italic;color:var(--ink)}
.rc-mine-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rc-mine-head h2{margin:0}
.rc-shelf{display:flex;flex-wrap:wrap;gap:8px 14px;margin:12px 0 4px}
.rc-shelf-item{position:relative;display:inline-flex}
.rc-x{position:absolute;right:-8px;bottom:-2px;background:var(--ink);color:var(--card);font-size:11px;font-weight:700;border-radius:30px;padding:1px 6px}
.rc-list li.new{background:linear-gradient(90deg,var(--primary-soft),transparent);border-radius:10px;padding-left:8px;margin-left:-8px}
.rc-mine-empty{display:flex;gap:14px;align-items:center}
.rc-ghost{opacity:.45;filter:grayscale(1)}
.pill.small{font-size:11px;padding:1px 8px}
@media (max-width:600px){.rc-medals{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){.rc-medal{transition:none}.rc-medal:hover{transform:none}}
.rc-mode .muted{margin-left:6px}

.ws-todo.ws-new{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.ws-ackbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:12px 0;padding:10px 14px;border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--surface)}
.ws-acktext{margin:4px 0 0}
.ws-tabs .ws-badge{margin-left:6px}
.ws-tabs [role=tab][aria-selected=true] .ws-badge{background:var(--on-primary);color:var(--primary)}

/* ---------- Prospect CRM ---------- */
.crm-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:6px}
.crm-title{margin:0 0 2px;font-size:22px}.crm-sub{margin:0}
.crm-head .actions{margin:0 0 0 auto}
.crm-tabs{margin-top:10px}
.crm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
.crm-stat{margin:0;padding:16px 18px}.crm-stat .stat{font-size:28px}
.crm-stat-warn{border-color:var(--warn-line);background:var(--warn-soft)}.crm-stat-warn .stat,.crm-stat-warn .stat-label{color:var(--warn)}
.crm-stat-good .stat{color:var(--ok)}
.crm-list{list-style:none;margin:0;padding:0}
.crm-row{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--line-2)}
.crm-row:first-child{border-top:0}
.crm-row-slim{padding:10px 0}
.crm-row-main{min-width:200px;flex:1 1 260px}
.crm-row-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px}
.crm-row-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crm-snooze{display:inline-flex;gap:6px;padding-left:8px;margin-left:2px;border-left:1px solid var(--line)}
.crm-link{background:none;border:0;padding:0;min-height:0;font:inherit;font-weight:700;color:var(--primary-ink);text-align:left;cursor:pointer;text-decoration:none;border-radius:4px}
.crm-link:hover{text-decoration:underline}
.crm-prop{font-weight:500}
.crm-due{font-size:13px;font-weight:700;padding:2px 9px;border-radius:30px;background:var(--neutral-bg);color:var(--neutral-ink);white-space:nowrap}
.crm-due.crm-overdue{background:var(--danger-soft);color:var(--danger)}
.crm-due.crm-today{background:var(--warn-soft);color:var(--warn)}
.pill.crm-info{background:var(--note-bg);color:var(--note-ink)}
.crm-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.crm-toolbar input[type=search]{flex:1 1 220px;max-width:340px}.crm-toolbar select{max-width:200px}
.crm-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity;align-items:flex-start}
.crm-col{flex:0 0 250px;scroll-snap-align:start;background:var(--section-bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-height:140px;transition:background .12s,border-color .12s}
.crm-col.over{background:var(--primary-soft);border-color:var(--primary)}
.crm-col header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.crm-col h3{margin:0;font-size:14px}
.crm-count{min-width:24px;height:24px;border-radius:30px;background:var(--neutral-bg);color:var(--neutral-ink);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 7px}
.crm-colval{margin:2px 0 8px}
.crm-cards{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.crm-col-warn{border-top:3px solid #d9962b}.crm-col-good{border-top:3px solid #2f9d7f}.crm-col-bad{border-top:3px solid #c25a4e}.crm-col-info{border-top:3px solid #4a8fb8}.crm-col-neutral{border-top:3px solid #9bb0b4}
.crm-card{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:grab;position:relative;min-height:0;font-weight:500;box-shadow:0 1px 3px var(--shadow)}
.crm-card:hover{border-color:var(--primary)}.crm-card.dragging{opacity:.45}
.crm-card-name{font-weight:700;padding-right:30px;overflow-wrap:anywhere}
.crm-card-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:2px}
.crm-avatar{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:var(--primary-soft);color:var(--primary-ink);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.crm-dropempty{list-style:none;padding:14px 6px;text-align:center;border:1px dashed var(--line);border-radius:8px}
.crm-more{margin:8px 2px 0}
.crm-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:6px}
.crm-filters input,.crm-filters select{width:100%}
.crm-table .num,.crm-table th.num{text-align:right}
.crm-table th[scope=row]{font-size:inherit;font-weight:500;color:var(--ink)}
.crm-name{min-width:220px}
.crm-cardhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.crm-cardhead h3{margin:0}
.crm-tpls{list-style:none;margin:0;padding:0}
.crm-tpl{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line-2)}.crm-tpl:first-child{border-top:0}
.crm-tpl .actions{margin:0}
.crm-pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--section-bg);border:1px solid var(--line);border-radius:8px;padding:10px;margin:6px 0 0;font:inherit;font-size:14px;max-width:640px}
.crm-bullets{margin:0 0 4px;padding-left:20px}.crm-bullets li{margin:6px 0}
.crm-exports{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:10px 0}
.crm-export{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;height:auto;padding:12px 14px;white-space:normal}
.crm-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 14px;margin:8px 0 16px}.crm-map select{width:100%}
/* the prospect window */
dialog.crm-dlg{width:min(980px,calc(100% - 20px));padding:22px}
.crm-dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.crm-dhead h2{margin:0 0 2px;font-size:22px;overflow-wrap:anywhere}.crm-dsub{margin:0 0 10px;overflow-wrap:anywhere}
.crm-quick{margin:8px 0 14px}
.crm-wait{margin-bottom:14px}
.crm-dgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:start}
.crm-inner{padding:16px;margin-bottom:14px;box-shadow:none}.crm-inner h3{margin-bottom:8px}
.crm-sf{display:grid;gap:10px;margin-bottom:10px}.crm-sf select,.crm-fu input{max-width:100%}
.crm-fu-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.crm-fu-row input{flex:1 1 150px}
.crm-dl{margin:0;display:grid;gap:8px}.crm-dl div{display:grid;grid-template-columns:120px 1fr;gap:10px}.crm-dl dt{color:var(--ink-2);font-size:14px}.crm-dl dd{margin:0;overflow-wrap:anywhere}
.crm-h4{margin:14px 0 4px;font-size:14px;color:var(--ink-2)}.crm-notes{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.crm-foot{margin:0}
.crm-act-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.crm-act-row input,.crm-act-row select{width:100%}
.crm-docl{list-style:none;margin:0 0 8px;padding:0}.crm-docl li{padding:6px 0;border-top:1px solid var(--line-2)}.crm-docl li:first-child{border-top:0}
.crm-kind{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;border-radius:6px;background:var(--neutral-bg);color:var(--neutral-ink);margin-right:6px;white-space:nowrap}
.crm-tl{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.crm-tl li{position:relative;padding:0 0 14px 10px}
.crm-tl li::before{content:"";position:absolute;left:-21px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--card);border:2px solid var(--primary)}
.crm-tl-status_change::before{border-color:#d9962b}.crm-tl-email_sent::before,.crm-tl-email_received::before{border-color:#4a8fb8}
.crm-tl-head{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.crm-tl-sum{font-weight:600;overflow-wrap:anywhere}
.crm-tl-body{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--section-bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:4px;font-size:14px}
.crm-formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:4px 16px}.crm-formgrid>div{min-width:0}.crm-formgrid input,.crm-formgrid select,.crm-formgrid textarea{width:100%}.crm-wide{grid-column:1/-1}
#crmMail select,#crmMail input,#crmMail textarea,#tplForm input,#tplForm textarea{width:100%}
.req{color:var(--danger)}
@media (max-width:760px){.crm-dgrid{grid-template-columns:1fr}.crm-snooze{border-left:0;padding-left:0;margin-left:0}.crm-row-acts{width:100%}.crm-dl div{grid-template-columns:100px 1fr}.crm-act-row{grid-template-columns:1fr}dialog.crm-dlg{padding:16px}.crm-col{flex-basis:78vw}}
:root[data-theme=dark] .crm-card,:root[data-theme=dark] .crm-col{box-shadow:none}
.crm .chk,dialog.crm-dlg .chk{display:flex;align-items:center;gap:8px}.crm input[type=radio],.crm input[type=checkbox],dialog.crm-dlg input[type=checkbox]{width:auto;flex:none}

/* ---------- Payroll page ---------- */
.pr-tabs{margin-top:4px}
.pr-period select,.pr-period input{height:48px;width:100%;min-width:0;box-sizing:border-box}.pr-period>div{min-width:0}
.pr-check-list{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}.pr-check-list li{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--line,#d8dee4)}.pr-check-list li.open{border-left:4px solid var(--warn,#b7791f)}.pr-check textarea{width:100%;box-sizing:border-box;margin-top:6px}
.pr-period{display:grid;grid-template-columns:minmax(220px,2fr) 1fr 1fr;gap:14px;align-items:end}
.pr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px 20px}
.pr-fmts{border:0;padding:0;margin:14px 0 6px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.pr-fmt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;margin:0;font-weight:500}
.pr-fmt input{width:auto;flex:none;margin:0}.pr-fmt.on{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary)}
.pr-help{margin:10px 0 12px;color:var(--ink-2)}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}
table tfoot td{border-top:2px solid var(--line);background:var(--section-bg)}
.pr-save{width:90px;text-align:right}.pr td input[data-pid]{max-width:260px}
.pr-guides{display:grid;gap:10px}.pr-guide{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--card)}
.pr-guide summary{cursor:pointer;font-weight:600}.pr-guide ol{margin:10px 0 4px 20px;padding:0;color:var(--ink-2)}.pr-guide li{margin:6px 0}
button.link{background:none;border:0;padding:0;color:var(--link);text-decoration:underline;cursor:pointer;font:inherit;min-height:0;box-shadow:none}
dialog#modal{position:relative}.modal-x{position:absolute;top:14px;right:14px;z-index:2}
@media(max-width:700px){.pr-period{grid-template-columns:1fr 1fr}.pr-period>div:first-child{grid-column:1/-1}table.stack tfoot{display:block}table.stack tfoot td:empty{display:none}.pr-save{width:auto}.pr td input[data-pid]{max-width:none;width:100%}}

/* ---------- Tidy tables: keep IDs, dates and money on one line; give long notes less room so the last column never gets clipped ---------- */
td[data-label="Invoice"],td[data-label="Amount"],td[data-label="Due"],td[data-label="Date"],td[data-label="Hourly rate"]{white-space:nowrap}
.table-wrap td:last-child{padding-right:10px}
input[type=color]{width:96px;height:44px;padding:4px;cursor:pointer}

/* Time Off */
.to .to-list li{align-items:flex-start;gap:12px}
.to .to-main{min-width:0;overflow-wrap:anywhere}
.to .ws-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.to .to-answer{width:200px;max-width:100%;margin:0}
@media(max-width:700px){.to .to-list li{flex-direction:column}.to .ws-acts{justify-content:flex-start;width:100%}.to .to-answer{width:100%}}
.bell-att{display:flex;gap:6px;align-items:flex-start}
.bell-panel .bell-att [data-go]{flex:1 1 auto;width:auto;min-width:0}
.bell-panel .bell-att [data-dismiss]{flex:none;width:auto;min-height:36px;margin-top:6px;padding:4px 12px;border:1px solid var(--line);flex-direction:row;font-size:14px}

.rc-vis{margin-top:14px}
.rc-private{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;border:2px solid var(--line);border-radius:30px;cursor:pointer;background:var(--surface)}
.rc-private:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.rc-private.on{border-color:var(--primary);background:var(--primary-soft)}
.rc-recent{margin-top:16px}
.sched-rec{margin-top:16px}
.sched-rec[hidden]{display:none}
.sc-rec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.sc-rec-head h2{margin:0}
.np-list{list-style:none;margin:12px 0;padding:0}.np-row{padding:10px 0;border-top:1px solid var(--line,#d9e2e0)}.np-row:first-child{border-top:0}.np-row label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;min-height:44px}.np-row input[type=checkbox]{width:22px;height:22px;margin-top:2px;flex:none}.np-hint{display:block;margin-top:2px}.np-tz{margin-top:14px}.np-tz select{max-width:100%}
.sc-site h3 .small,.sc-name .small{display:block;font-weight:400}.sc-free{opacity:.9}.sc-free h3{font-size:1rem}
.sc-show{display:flex;align-items:center;gap:8px}.sc-show label{margin:0;font-weight:600}
.al .al-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.al .al-row{padding:10px 0;border-bottom:1px solid var(--line,rgba(127,127,127,.25))}
.al .al-head{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;align-items:baseline;overflow-wrap:anywhere}
.al .al-changes{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px;font-size:.9em;overflow-wrap:anywhere}
.ar .ar-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ar .ar-item{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,rgba(127,127,127,.25))}
.ar .ar-main{min-width:0;flex:1 1 260px;overflow-wrap:anywhere}
.ar .ar-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ar .ar-acts input{flex:1 1 200px;min-width:0}
.ar .card.inner{margin:12px 0 0;box-shadow:none;border:1px solid var(--line,rgba(127,127,127,.25))}
.ar .check{display:flex;gap:8px;align-items:center;margin:10px 0}
.ar .check input{width:auto;min-height:auto}

.tc .tc-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tc .tc-row{padding:10px 0;border-bottom:1px solid var(--line,rgba(127,127,127,.25))}
.tc .tc-head{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;align-items:baseline;overflow-wrap:anywhere}
.tc .al-changes{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px;font-size:.9em;overflow-wrap:anywhere}
.tc textarea{width:100%}

.att-nav{margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.mth .mth-list,.arq .arq-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.mth .mth-row,.arq .arq-row{padding:10px 0;border-bottom:1px solid var(--line,rgba(127,127,127,.25))}
.mth .mth-head,.arq .arq-head{display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;align-items:baseline;overflow-wrap:anywhere}
.mth .al-changes{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px;font-size:.9em;overflow-wrap:anywhere}
.mth textarea,.arq textarea{width:100%}
.sl-plot{width:100%;max-width:320px;height:auto;display:block;margin:10px 0;border:1px solid var(--line,#d8dee4);border-radius:var(--radius-sm);background:var(--surface-2,transparent)}.sl-site{fill:rgba(23,105,95,.10);stroke:var(--accent,#17695f);stroke-dasharray:4 3}.sl-site-dot{fill:var(--accent,#17695f)}.sl-in{fill:#1a7f4b;stroke:#fff;stroke-width:1.5}.sl-out{fill:#c0392b;stroke:#fff;stroke-width:1.5}.sl-route{fill:var(--muted,#6b7785)}.sl-lines{margin:8px 0;padding-left:20px}
.sr h4{margin:14px 0 6px}.sr-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sr-item{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.sr-item .actions{margin:0}
.sc-chip.dragging{opacity:.5}.sc-table td.drop-ok{outline:2px dashed var(--brand,#1a6b5a);outline-offset:-3px;background:rgba(26,107,90,.08)}.sc-chip[draggable=true]{cursor:grab}
.sc-bar[draggable=true]{cursor:grab}.sc-bar.dragging{opacity:.5}.sc-track.drop-ok,.sc-site.drop-ok{outline:2px dashed var(--brand,#1a6b5a);outline-offset:-3px;background:rgba(26,107,90,.08)}
.av-table{width:100%;border-collapse:collapse;margin:10px 0}.av-table th{text-align:left;font-weight:600;padding:6px 8px 6px 0;white-space:nowrap}.av-table td{padding:4px 8px 4px 0}.av-times input{width:auto}.av-team{list-style:none;margin:6px 0 0;padding:0}.av-team li{padding:6px 0;border-top:1px solid var(--line,#e5e7eb)}.av-team b{display:block}
.ed-list{list-style:none;margin:8px 0 0;padding:0}.ed-item{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line,#e5e7eb)}.ed-main{min-width:0;flex:1 1 220px}.ed-card{margin-top:14px}
.ob-bar{height:6px;border-radius:6px;background:var(--neutral-bg,#e5e7eb);overflow:hidden;margin:6px 0}.ob-bar span{display:block;height:100%;background:var(--brand,#1a6b5a)}.ob-tick{display:flex;gap:10px;align-items:flex-start;flex:1 1 220px;cursor:pointer}.ob-tick input{margin-top:4px}.ob-done b{text-decoration:line-through;opacity:.7}.ob-tpl{padding-left:20px}.ob-tpl li{margin-bottom:10px}
.mt-form{margin-bottom:8px}.btn-link{display:inline-block;text-decoration:none;padding:6px 14px;border-radius:8px;background:var(--brand,#1a6b5a);color:#fff;font-weight:600}.btn-link:hover{filter:brightness(1.08)}
.an-form{margin-bottom:12px}.an-card h3{margin:0 0 4px}.an-body{white-space:normal;overflow-wrap:anywhere;margin:8px 0}.an-receipts{margin-top:8px}.an-rc-list{list-style:none;margin:0;padding:0}.an-rc-list li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line,#e5e7eb)}.an-popup{max-width:min(520px,92vw)}.an-popup::backdrop{background:rgba(0,0,0,.6)}
.an-card{padding:20px 22px}.an-card h3{font-size:18px;margin:0 0 6px}.an-card>.small{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 10px}.an-card .actions{align-items:center;gap:10px 12px;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line,#e5e7eb)}.an-card .actions button{min-height:38px}
.an-status{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--ok);margin-right:auto}.an-new{color:var(--warn)}
.an-card .actions .danger{margin-left:auto}.an-status+button{margin-left:0}.an-body{font-size:16px;line-height:1.5}
.an-rc-list li{align-items:center}
@media(max-width:600px){.an-card .actions .danger{margin-left:0}.an-status{width:100%;margin-right:0}}
.an-form{margin:0 0 22px;padding-bottom:22px;border-bottom:1px solid var(--line,#e5e7eb)}.an-form h3{margin:0 0 4px}.an-form label.check{font-weight:400;align-items:flex-start}.an-form label.check input{margin-top:3px;flex:none}.an-form .an-post{margin:16px 0 0}
.an-card{border:1px solid var(--line,#e5e7eb);border-radius:12px;margin:0 0 14px}
.an-dash-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.an-dash-head h2{margin:0}.an-dash .an-card:last-of-type{margin-bottom:0}
.sv-card,.sv-m{border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:18px 20px;margin:0 0 14px}.sv-card h3,.sv-m h3{margin:0 0 6px}.sv-q{border:0;padding:0;margin:14px 0}.sv-q legend{font-weight:600;padding:0;margin-bottom:6px}
.sv-opt{display:flex;gap:8px;align-items:flex-start;margin:6px 0;font-weight:400}.sv-opt input{margin-top:3px;flex:none}.sv-rate{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sv-star{display:inline-flex}.sv-star input{position:absolute;opacity:0}.sv-star span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line,#cbd5d1);border-radius:10px;font-weight:600;cursor:pointer}.sv-star input:checked+span{background:var(--primary,#17695f);color:#fff;border-color:transparent}.sv-star input:focus-visible+span{outline:3px solid var(--focus,#0a84ff);outline-offset:2px}
.sv-form{margin:0 0 22px;padding-bottom:22px;border-bottom:1px solid var(--line,#e5e7eb)}.sv-form h3{margin:0 0 8px}.sv-form fieldset.sv-q{border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:12px 14px}.sv-form .sv-q input,.sv-form .sv-q select,.sv-form .sv-q textarea{margin-bottom:8px}.sv-kind{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px}.sv-kind .check{display:flex;gap:8px;align-items:flex-start;font-weight:400}
.sv-h{margin:20px 0 10px}.sv-res{margin:12px 0}.sv-res h4{margin:0 0 6px}.sv-bar{display:grid;grid-template-columns:minmax(70px,28%) 1fr auto;gap:10px;align-items:center;margin:5px 0}.sv-track{background:var(--neutral-bg,#e5e7eb);border-radius:6px;height:14px;overflow:hidden}.sv-track span{display:block;height:100%;background:var(--primary,#17695f)}.sv-n{font-size:13px;color:var(--muted,#55706b);white-space:nowrap}.sv-texts{margin:6px 0;padding-left:20px}.sv-results{margin-top:10px}
@media(max-width:600px){.sv-bar{grid-template-columns:1fr auto}.sv-bar .sv-label{grid-column:1/-1}.sv-bar .sv-track{grid-column:1}}
.sv-form label.check{font-weight:400;display:flex;gap:8px;align-items:flex-start}.sv-form label.check input{margin-top:3px;flex:none}.sv-kind{margin-bottom:12px}
.sv-chat{margin:0 0 16px;padding:14px 16px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--warn-soft,#fff7ed)}.sv-chat .an-dash-head{margin-bottom:8px}.sv-chat h3{margin:0;font-size:16px}.sv-chat .sv-card{background:var(--card,#fff)}.sv-chat .sv-card:last-child{margin-bottom:0}
.al-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 14px;margin:12px 0}.al-filters label{display:block;margin-bottom:4px}.al-search{grid-column:span 2}
.al-list{list-style:none;margin:8px 0;padding:0}.al-row{padding:10px 0;border-top:1px solid var(--line,#e5e7eb)}.al-row:first-child{border-top:0}.al-main{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;overflow-wrap:anywhere}.al-detail{margin-top:4px;color:var(--ink,#1f2d2b);overflow-wrap:anywhere}
@media(max-width:600px){.al-search{grid-column:auto}}
/* invoice editor: line items and the preview's small extras */
.pp-sub{color:#4a5a57;margin:0 0 6pt}.pp-void{color:#b3261e;margin:6pt 0}
.iv-line{display:grid;grid-template-columns:minmax(70px,1fr) minmax(90px,1.4fr) auto auto;gap:8px 10px;align-items:end;padding:12px 0;border-top:1px solid var(--line,#dfe7e5)}.iv-line:first-child{border-top:0}.iv-desc{grid-column:1/-1}
.iv-amt{display:grid;gap:2px;padding-bottom:10px;min-width:84px}.iv-total{margin:12px 0 0;font-size:1.05rem}
/* mileage */
.ml-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px;margin:10px 0 6px}.ml-wide{grid-column:1/-1}.ml-miles{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ml-miles input{flex:1 1 90px;min-width:80px}
.ml-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 12px;align-items:end;margin:8px 0}.ml-rate{max-width:360px}

/* Email marketing (inside CRM) */
.mk .crm-stats{margin-bottom:12px}
.mk-table{width:100%;border-collapse:collapse}
.mk-table th,.mk-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.mk-table th{font-size:.85rem;color:var(--muted)}
.mk-aud{border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0}
.mk-aud legend{font-weight:700;padding:0 6px}
.mk-count{font-weight:700;margin:8px 0 0}
.mk-preview{width:100%;height:420px;border:1px solid var(--line);border-radius:10px;background:#fff}
.mk-send{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.mk-when{align-items:center}
.mk-links{padding-left:20px;margin:6px 0}
.mk-url{word-break:break-all}
.mk-edit{margin:10px 0}
.mk textarea{width:100%;box-sizing:border-box;font:inherit}
.mk .checkline{display:flex;gap:8px;align-items:center;margin:6px 0;font-weight:400}
.mk .checkline input{width:auto;min-height:0}
.mk #mkLink{max-width:100%;width:420px}
.mk .actions .pill{align-self:center;white-space:nowrap;height:auto}
.mk #mkAt{width:auto;min-width:220px}

.mk-readonly input:disabled,.mk-readonly textarea:disabled,.mk-readonly select:disabled{background:var(--surface-2,#eef2f1);color:var(--muted,#52606d);cursor:not-allowed;border-style:dashed}.mk-locked{border-left:4px solid var(--warn-line,#d9a441)}.mk-when-line{margin:.25rem 0 .75rem;font-size:.9rem;color:var(--primary-ink,#17635a);font-weight:600}
.ws-pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0}.ws-pics figure{margin:0}.ws-pics img{width:100%;height:120px;object-fit:cover;border:1px solid var(--line);border-radius:8px;display:block;background:#fff}.ws-pics figcaption{margin-top:3px;color:var(--muted)}
/* Help chat (assistant) */
.as-fab{position:fixed;right:18px;bottom:18px;z-index:60;width:56px;height:56px;border-radius:50%;padding:0;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);border:0;box-shadow:0 6px 18px #0003;cursor:pointer}
.as-fab:hover{background:var(--primary-hover)}
.as-fab[hidden],.as-panel[hidden]{display:none}
.as-panel{position:fixed;right:18px;bottom:84px;z-index:60;width:min(360px,calc(100vw - 24px));height:min(520px,calc(100vh - 110px));display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 32px #0003;overflow:hidden}
.as-panel header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--primary);color:var(--on-primary)}
.as-panel header .as-x{background:transparent;color:inherit;border:0;font-size:22px;line-height:1;padding:2px 8px}
.as-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.as-msg{max-width:88%;padding:8px 11px;border-radius:12px;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.as-msg p{margin:0}
.as-msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line)}
.as-msg.me{align-self:flex-end;background:var(--primary-soft);color:var(--primary-ink)}
.as-handoff{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.as-handoff p{margin:4px 0 8px}
.as-chips{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.as-chips button{text-align:left;font-size:13px;padding:6px 10px}
.as-form{display:flex;gap:8px;padding:8px 10px;border-top:1px solid var(--line);background:var(--surface)}
.as-form input{flex:1;min-width:0;margin:0}
.as-note{margin:0;padding:6px 12px 8px;font-size:12px;color:var(--ink-2);background:var(--surface)}
@media (max-width:520px){.as-panel{right:8px;left:8px;width:auto;bottom:80px}.as-fab{right:12px;bottom:12px}}
@media print{.as-fab,.as-panel{display:none!important}}
/* Advanced reports */
.rp-bar{display:inline-block;height:12px;border-radius:6px;background:var(--primary);vertical-align:middle;min-width:4px}
.rp-total th,.rp-total td{border-top:2px solid var(--line)}
.rp-form{margin:12px 0}.rp-status{border:0;padding:0;margin:10px 0}.rp-status legend{font-weight:600;padding:0;margin-bottom:4px}
.rp-form label.inline,.rp-status label.inline{display:inline-flex;gap:6px;align-items:center;margin-right:12px;font-weight:400}
/* Automation rules */
.au-form{margin:14px 0;display:grid;gap:6px}.au-form label.inline{display:flex;gap:6px;align-items:center;font-weight:400}

/* Company colors (Settings) */
.pal-row{display:flex;align-items:center;gap:12px;margin:6px 0 12px}
.pal-row input[type=color]{width:72px;height:44px;padding:2px;border:1px solid var(--field-line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}

/* Two-factor sign-in setup */
.mfa-qr{display:flex;justify-content:center;margin:12px 0}
.mfa-qr img{background:#fff;padding:8px;border-radius:8px;max-width:100%;height:auto}
.mfa-codes{font-family:ui-monospace,Consolas,monospace;font-size:1.05rem;line-height:1.7;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;white-space:pre;user-select:all}
.cl-visit-open{list-style:none;padding:0;margin:8px 0}.cl-visit-open li{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.vr-task{padding:10px 0;border-bottom:1px solid var(--line)}.vr-task .chk{display:flex;gap:10px;align-items:flex-start;font-size:1.05rem;min-height:44px}.vr-task .chk input{width:24px;height:24px;flex:none}
.vr-more{margin:6px 0 0 34px}.vr-more summary{cursor:pointer;color:var(--muted);min-height:32px}.vr-progress{display:flex;gap:12px;align-items:center;margin:8px 0 14px}.vr-progress progress{flex:1;height:12px}
.vr-line{display:flex;gap:10px;padding:6px 0}.vr-yes{color:var(--ok,#1a7f37)}.vr-no{color:var(--muted)}.cl-addphoto.is-disabled{opacity:.5;pointer-events:none}
.help-find{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.help-find input{flex:2 1 220px;min-width:0}.help-find select{flex:1 1 180px;min-width:0}[data-help-card][hidden],.help-steps li[hidden]{display:none}
#setNav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}#setNav button{border-radius:var(--radius-sm)}.card[hidden],details.card[hidden],h2.ws-h[hidden]{display:none}
.nav-title[role=button]{cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}.nav-title[role=button]::after{content:"\25BE";font-size:12px;opacity:.7;transition:transform .15s}
.nav-group.collapsed .nav-title[role=button]::after{transform:rotate(-90deg)}.nav-group.collapsed>button{display:none}
.nav-group.collapsed:has(.ws-badge) .nav-title[role=button]::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--primary,#e0662a);margin-right:auto;margin-left:8px;order:2}
.nav-title[role=button]:focus-visible{outline:3px solid var(--focus,#5b9dff);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.nav-title[role=button]::after{transition:none}}
.plan-limits{list-style:none;margin:8px 0 12px;padding:0;font-size:14px}.plan-limits li{padding:2px 0}
.plan-table{width:100%;border-collapse:collapse;font-size:14px}.plan-table th,.plan-table td{padding:8px 10px;border-bottom:1px solid var(--line,#e3e6ea);text-align:center;vertical-align:top}.plan-table th[scope=row],.plan-table thead th:first-child{text-align:left;font-weight:500}.plan-table thead th{font-weight:700}.plan-table .plan-group th{text-align:left;background:var(--neutral-bg,#f3f5f7);font-weight:700}

.seg .plan-badge{display:inline-block;margin-left:6px;padding:3px 10px;border-radius:999px;background:#16a34a;color:#fff;font-size:14px;font-weight:700;vertical-align:middle}
.plan-was{color:#8b95a1;text-decoration:line-through;font-size:18px;margin-top:4px}
.plan-save{display:inline-block;margin:4px 0;padding:5px 14px;border-radius:999px;background:#dcfce7;color:#14532d;font-weight:700;font-size:16px}
details.plan-compare{border:2px solid var(--primary,#0a14ff)}
details.plan-compare>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 2px;font-size:18px;font-weight:700;color:var(--primary,#0a14ff)}
details.plan-compare>summary::-webkit-details-marker{display:none}
details.plan-compare>summary::before{content:'▸';font-size:20px}
details.plan-compare[open]>summary::before{content:'▾'}
.plan-compare-hint{font-size:13px;font-weight:500;color:#4b5563}
.ob-slim{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;padding:8px 12px;border:1px solid var(--line,#e3e6ea);border-radius:10px;background:var(--card,#fff);font-size:14px}
#acctRemoval{border:1px solid #dc2626}#acctRemoval h2{color:#b91c1c}:root[data-theme=dark] #acctRemoval h2{color:#f87171}#acctRemoval button.ghost{border-color:#dc2626;color:#b91c1c}:root[data-theme=dark] #acctRemoval button.ghost{color:#f87171;border-color:#f87171}
/* Admin: favorite companies (MultiOrbit Gives) */
button.fav{font-size:20px;line-height:1;padding:2px 8px;min-width:36px;color:var(--muted,#6b7b8a);vertical-align:middle}
button.fav.on{color:#d99a00}
.fav-note{margin-top:4px}
#favOnly{width:auto;margin:0 6px 0 14px}
/* Inline confirmation next to a Save button */
.save-note{align-self:center;font-weight:600;color:var(--ok);background:var(--ok-soft);border:1px solid var(--ok-line,transparent);border-radius:8px;padding:7px 12px}
.save-note.bad{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-line,transparent)}
/* Settings tab: larger, easier to tap checkboxes and labels */
form[id^=ws] label.check{font-size:16px;font-weight:600;line-height:1.35;padding:6px 0}
form[id^=ws] label.check input[type=checkbox]{width:22px;height:22px;min-height:0;flex:none;margin:0 12px 0 0;accent-color:var(--primary)}
.inv-table .inv-actions{white-space:nowrap;text-align:right}.inv-table .inv-actions button{margin-left:6px}
/* Black theme: the selected menu item is a neutral dark grey instead of a green tint (the colored bar on its left stays) */
:root[data-theme=dark][data-black] nav button[aria-current=page],:root[data-theme=dark][data-black] nav button.active{background:#1a1d21}
.result-yearly{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px}
@media (max-width:560px){.result-yearly{grid-template-columns:1fr}}
/* Payroll > Settings > Pay schedule: numbered steps and a plain-English summary */
.pr-step{display:flex;gap:14px;margin:18px 0}
.pr-step-n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--primary-soft);color:var(--primary-ink);font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:2px}
.pr-step-body{flex:1;min-width:0}.pr-step-body h3{margin:0 0 4px;font-size:17px}.pr-step-body .hint{margin:0 0 10px;font-size:14px}
.pr-summary{margin:6px 0 16px;padding:12px 14px;border-radius:10px;background:var(--note-bg);color:var(--note-ink);border:1px solid var(--note-line);font-size:15px}
.pr-summary.bad{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-line)}
h3.pr-sec{margin:20px 0 6px;font-size:17px}h3.pr-sec:first-of-type{margin-top:6px}
/* Live map toolbar: one tidy row, easier-to-tap checkbox */
.lm-tools select{width:220px;max-width:100%}
.lm-tools label.inline{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;white-space:nowrap}
.lm-tools label.inline input[type=checkbox]{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--primary)}
/* Live map polish: one readable type size, round pins, tidy toolbar */
.lm-status{display:flex;align-items:center;gap:10px;margin:0;font-size:15px;color:var(--ink-2)}
.lm-live{flex:none;width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.lm-bar{margin-bottom:14px}
.lm-tools select,.lm-tools .ghost.small{font-size:15px;min-height:40px}
.lm-tools .ghost.small{padding:8px 16px}
.lm-side{font-size:15px;line-height:1.45}.lm-side h3{font-size:17px;margin:16px 0 8px}.lm-side h3:first-child{margin-top:2px}
.lm-side .muted.small,.lm-side .small{font-size:13px}
.lm .hint{font-size:13px;line-height:1.5;margin-top:14px}
.sm-pin{min-height:0}
/* Unsaved changes: a bar at the top of an open editor, and the "save before you leave?" dialog */
.unsaved-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1px solid var(--warn-line);border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);font-size:14px;line-height:1.4}
.unsaved-bar b{font-weight:700}
.unsaved-dot{width:10px;height:10px;border-radius:50%;background:currentColor;flex:none}
#unsavedDialog{width:min(480px,calc(100% - 24px))}
#unsavedDialog .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.mk-tip{font-size:15px;line-height:1.5;color:var(--ink-2);margin:12px 0 14px}
/* Supplies and supply requests */
.sup-card+.sup-card,#supMgr+*{margin-top:16px}#supMgr{margin-bottom:16px}.sup-list{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:10px}.sup-req{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.sup-req-head{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.sup-req p{margin:6px 0 0}.sup-req input{width:100%;margin-top:4px}.sup-req .actions{margin-top:8px}.sup-form{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin:12px 0}.sup-form[hidden]{display:none}.sup-qty{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sup-hist summary{cursor:pointer;margin-top:12px}

/* Work orders on the calendar */
.sc-key.wo{background:#5b9bf5}.sc-chip.wo{background:rgba(91,155,245,.18);border-color:rgba(91,155,245,.65);color:var(--ink)}.sc-chip.wo .muted{color:inherit;opacity:.75}
/* Client Your Space */
.ws-client-head{padding-bottom:16px}
.ws-client-head h2{margin:2px 0 4px;font-size:clamp(22px,4vw,28px)}
.ws-eyebrow{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.ws-sub{margin:0 0 12px;overflow-wrap:anywhere}
.ws-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 14px}
.ws-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:56px;padding:10px 14px;border-radius:12px;border:1px solid var(--btn-line);background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.ws-chip:hover{border-color:var(--primary)}.ws-chip.bad{border-color:var(--danger,#c0362c)}.ws-chip.bad b{color:var(--danger,#c0362c)}
.ws-chip-l{font-size:12px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}
.ws-row-end{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.inv-tiles{margin:6px 0 14px}.inv-tile.bad .stat{color:var(--danger,#c0362c)}
.btn-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:30px;font-weight:700;text-decoration:none;background:var(--primary);color:var(--on-primary)}
.req-types{border:0;padding:0;margin:0 0 14px;display:grid;gap:8px}.req-types legend{font-weight:700;margin-bottom:6px;padding:0}
.req-type{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--btn-line);border-radius:12px;cursor:pointer;background:var(--surface)}
.req-type.on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.req-type input{margin-top:4px}.req-type span{display:flex;flex-direction:column;gap:2px}
.ws-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.ws-tabs [role=tab]{flex:0 0 auto;white-space:nowrap}
@media (min-width:900px){.ws-tabs{flex-wrap:wrap;overflow-x:visible}}
.req-list{margin-top:6px}.req-item{flex-wrap:wrap}.req-details{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.req-act{flex:1 1 100%;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}.req-act input{flex:1 1 220px;min-width:0}.req-act span{display:flex;gap:8px}

/* Review fixes 2026-11-04: phone and tablet layout, tap targets, contrast. */
:root{--muted:var(--ink-2)}
.table-wrap{position:relative}
.ws-clients>li{min-width:0}
.ws-client>*{min-width:0}
.ws-client>:first-child{overflow-wrap:anywhere}
.ws-client>:not(:first-child){flex:none;white-space:nowrap}
.note-cell{min-width:0}
.note-cell .note-text{min-width:0}
dialog{max-height:calc(100dvh - 24px)}
@media(max-width:860px){
 table.stack thead{position:absolute;left:-9999px}
 table.stack,table.stack tbody{display:block}
 table.stack tr{display:block;border-bottom:1px solid var(--line);padding:10px 0}
 table.stack tr:last-child{border-bottom:0}
 table.stack td{display:flex;justify-content:space-between;align-items:center;gap:14px;border:0;padding:5px 0;text-align:right}
 table.stack td[data-label]::before{content:attr(data-label);color:var(--ink-2);font-weight:600;font-size:14px;text-align:left}
 table.stack td:not([data-label]){justify-content:flex-end}
 aside{position:sticky;top:0;z-index:50}
 aside.open .navwrap{max-height:calc(100dvh - 84px);overflow-y:auto}
 main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 nav button,button.small,.small-btn{min-height:44px}
}

/* Phone review 2026-11-04: date boxes stay inside the card; legend items stay together */
.pr-period input[type=date]{-webkit-appearance:none;appearance:none;display:block;max-width:100%;min-width:0;width:100%;text-align:center;margin:0}
.pr-period{overflow:hidden}
.sc-item{white-space:nowrap;display:inline-flex;align-items:center}
.sc-item .sc-key{margin-left:0;margin-right:6px}

/* What's new notice */
.whats-new{border-left:4px solid var(--primary)}.wn-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.wn-head h2{margin:0}.wn-list{margin:8px 0 0;padding-left:20px}.wn-list li{margin:6px 0}

/* Touch screens: every control is at least 44 x 44 px (small buttons were 36 px, summaries 32 px) */
@media (pointer:coarse){
 button.small,.small-btn,.tr-actions button.sm,.chips button,.cl-tools .small,.wc-del,.bell-panel .bell-att [data-dismiss],.btn-link,.sc-add{min-height:44px}
 .ir-tasks summary,.vr-more summary,.sm-zoom button{min-height:44px}
 .sm-zoom button{min-width:44px;width:44px;height:44px}
 .chips button{padding-top:8px;padding-bottom:8px}
}

/* Phones: tab pills wrap onto a second line so every tab (Settings, Email...) is visible without hidden sideways scrolling */
@media (max-width:700px){
 .ws-tabs{flex-wrap:wrap;overflow-x:visible}
 .ws-tabs [role=tab]{padding:0 14px}
}

/* Stacked rows (phones and tablets): action buttons wrap instead of running off the left edge, so Edit is always reachable */
@media(max-width:860px){
 table.stack td.row-actions{flex-wrap:wrap;white-space:normal;justify-content:flex-end;gap:8px}
 table.stack td.row-actions .ghost+.ghost{margin-left:0}
}

/* Phone review 2 (2026-11-04): date boxes, schedule names, report tabs */
input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;box-sizing:border-box;text-align:left}
.ml-filters>*,.ml-form>*,.pr-period>*{min-width:0}
.sc-table .sc-first{overflow-wrap:anywhere;word-break:break-word}
.sc-site-h>button,.sc-site-h .ghost,.sc-site-h .primary{white-space:nowrap;flex:none}
@media(max-width:700px){
 .seg{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}
 .seg button,.seg button:first-child,.seg button:last-child{border-radius:var(--radius-sm);flex:1 1 auto}
}
