/* AutoSoft / AutoServiceSoft – single stylesheet: app, marketing, public, print */
:root{
  --bg:#f6f7fb;--card:#fff;--edge:#e6eaf1;--ink:#0f172a;--soft:#5b6472;--faint:#8b95a5;
  --primary:#2f6fed;--primary-ink:#fff;--primary-soft:#e8f0ff;--accent:#ff7a1a;
  --ok:#1a9f5a;--ok-soft:#e3f6ec;--warn:#c98a00;--warn-soft:#fff4d6;--danger:#d93b3b;--danger-soft:#fde8e8;--info-soft:#e8f0ff;
  --chip:#eef1f6;--accent-soft:#fff1e6;--shadow:0 1px 2px rgba(15,23,42,.05),0 6px 20px rgba(15,23,42,.06);--r:14px;--rs:9px;
  --side:#fff;--side-ink:#3f4a5c;--side-active:#eef2f8;--side-edge:#e6eaf1;--side-brand:#0f172a;
  --s-requested:#8b5cf6;--s-scheduled:#0ea5e9;--s-accepted:#64748b;--s-in_progress:#2f6fed;--s-waiting_parts:#f59e0b;--s-waiting_approval:#f97316;--s-ready:#1a9f5a;--s-delivered:#334155;--s-cancelled:#9ca3af;
  color-scheme:light;
}
[data-theme="dark"]{--side:#0f1524;--side-ink:#b7c0d1;--side-active:#1b2338;--side-edge:#1f2740;--side-brand:#fff;--bg:#0b1020;--card:#151b2c;--edge:#232b3f;--ink:#eef2f8;--soft:#a3adbf;--faint:#6f7a8f;--primary:#4f86ff;--primary-soft:#1a2747;--chip:#1f2740;--accent-soft:#3a2214;--ok-soft:#10301f;--warn-soft:#332a10;--danger-soft:#3a1717;--info-soft:#1a2747;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);--side:#0a0f1c;--side-active:#1a2236;color-scheme:dark}
@media (prefers-color-scheme:dark){[data-theme="auto"]{--side:#0f1524;--side-ink:#b7c0d1;--side-active:#1b2338;--side-edge:#1f2740;--side-brand:#fff;--bg:#0b1020;--card:#151b2c;--edge:#232b3f;--ink:#eef2f8;--soft:#a3adbf;--faint:#6f7a8f;--primary:#4f86ff;--primary-soft:#1a2747;--chip:#1f2740;--accent-soft:#3a2214;--ok-soft:#10301f;--warn-soft:#332a10;--danger-soft:#3a1717;--info-soft:#1a2747;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);--side:#0a0f1c;--side-active:#1a2236;color-scheme:dark}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01"}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0;line-height:1.2;letter-spacing:-.02em;font-weight:800}h1{font-size:1.55rem}h2{font-size:1.15rem}h3{font-size:1rem}h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft)}
p{margin:0 0 .6em}p:last-child{margin-bottom:0}
.muted{color:var(--soft)}.small{font-size:.86rem}.r{text-align:right}.ok{color:var(--ok)}.warn{color:var(--warn)}.danger{color:var(--danger)}
.ic{width:18px;height:18px;flex:0 0 auto;vertical-align:-3px}.ic.flip{transform:rotate(180deg)}
.skip{position:absolute;left:-999px}.hp{position:absolute;left:-9999px}
code{background:var(--chip);padding:2px 6px;border-radius:5px;font-size:.85em;word-break:break-all}
kbd{font:11px/1 inherit;border:1px solid var(--edge);border-radius:5px;padding:2px 5px;color:var(--faint)}
[hidden]{display:none!important}

/* buttons & inputs */
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid var(--edge);background:var(--card);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;line-height:1.2;white-space:nowrap;transition:.15s}
.btn:hover{text-decoration:none;border-color:var(--faint);transform:translateY(-1px)}.btn:focus-visible,.icon-btn:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:default;transform:none}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(47,111,237,.25)}.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}
.btn.sm{padding:6px 11px;font-size:.88rem}.btn.xs{padding:4px 8px;font-size:.78rem;border-radius:7px}.btn.lg{padding:13px 22px;font-size:1.05rem}.btn.block{width:100%;justify-content:center}
.icon-btn{border:0;background:transparent;color:var(--soft);padding:6px;border-radius:8px;cursor:pointer;display:inline-flex}.icon-btn:hover{background:var(--chip);color:var(--ink)}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--edge);border-radius:var(--rs);padding:9px 11px;width:100%;min-width:0;transition:border .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--primary)}input[type=color]{padding:2px;height:40px}input[type=file]{padding:6px}
label>span,.field>span{display:block;font-size:.8rem;font-weight:600;color:var(--soft);margin-bottom:4px}label{display:block}
.check{display:flex;align-items:center;gap:8px;font-weight:500}.check input{margin:0}
.stack{display:flex;flex-direction:column;gap:14px}.grid2,.grid3,.grid4{display:grid;gap:12px}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}
.inline{display:inline-flex;gap:6px;align-items:center}.inline input,.inline select{width:auto}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-actions.sticky{position:sticky;bottom:0;background:var(--bg);padding:12px 0;margin-top:8px;z-index:5}
.narrow-form{max-width:720px}.hint{color:var(--faint);font-size:.8rem}
.seg{display:flex;gap:6px;flex-wrap:wrap}.seg-item{position:relative;flex:1;min-width:120px}.seg-item input{position:absolute;opacity:0}.seg-item span{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1px solid var(--edge);border-radius:10px;cursor:pointer;font-weight:600;text-align:center}.seg-item span em{font-style:normal;color:var(--faint);font-weight:500}.seg-item input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.seg.small{display:inline-flex;background:var(--chip);border-radius:9px;padding:3px;gap:2px}.seg-btn{padding:5px 10px;border-radius:7px;font-size:.85rem;font-weight:600;color:var(--soft);display:inline-flex;gap:5px;align-items:center}.seg-btn.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.seg-btn:hover{text-decoration:none}
.slug-input{display:flex;align-items:center;border:1px solid var(--edge);border-radius:var(--rs);background:var(--card);overflow:hidden}.slug-input input{border:0;border-radius:0;flex:1}.slug-input input:focus{box-shadow:none}.slug-suffix{padding:0 10px;color:var(--faint);font-size:.85rem;white-space:nowrap;background:var(--chip);align-self:stretch;display:flex;align-items:center}
.plate-input{text-transform:uppercase;font-weight:700;letter-spacing:.06em;font-family:ui-monospace,Menlo,Consolas,monospace}
.copy-row{display:flex;gap:6px;align-items:center}.copy-row input{font-size:.82rem;flex:1}.inline-input{border:0;background:transparent;padding:2px 0;font-weight:600}.inline-input:focus{background:var(--card);padding:2px 6px}

/* cards, badges, tables */
.card{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);padding:18px;box-shadow:0 1px 2px rgba(15,23,42,.04);margin-bottom:16px}.card>h2,.card>h3{margin-bottom:12px}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.card-head h2{display:flex;align-items:center;gap:8px}
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:700;background:var(--chip);color:var(--soft);white-space:nowrap;vertical-align:middle}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}
.badge[class*=" s-"]{color:#fff}.s-requested{--c:var(--s-requested)}.s-scheduled{--c:var(--s-scheduled)}.s-accepted{--c:var(--s-accepted)}.s-in_progress{--c:var(--s-in_progress)}.s-waiting_parts{--c:var(--s-waiting_parts)}.s-waiting_approval{--c:var(--s-waiting_approval)}.s-ready{--c:var(--s-ready)}.s-delivered{--c:var(--s-delivered)}.s-cancelled{--c:var(--s-cancelled)}
.badge[class*=" s-"],.badge.s-issued,.badge.s-paid,.badge.s-draft,.badge.s-cancelled{background:var(--c,var(--chip))}.badge.s-issued{--c:var(--s-waiting_parts)}.badge.s-paid{--c:var(--ok)}.badge.s-draft{--c:var(--faint)}
.status-dot{width:10px;height:10px;border-radius:50%;background:var(--c);display:inline-block}
.status-select{width:auto;font-weight:700;border-left:5px solid var(--c)}
.plate{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.04em;background:var(--chip);padding:1px 7px;border-radius:6px;white-space:nowrap}.plate.lg{font-size:1.1rem;padding:2px 10px}
.table{width:100%;border-collapse:collapse;font-size:.92rem}.table thead th{position:sticky;top:0;background:var(--card);z-index:1}.table th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding:8px 10px;border-bottom:1px solid var(--edge)}.table td{padding:10px;border-bottom:1px solid var(--edge);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table th.r,.table td.r{text-align:right}
.table-wrap{padding:0;overflow-x:auto}.table-wrap .table th:first-child,.table-wrap .table td:first-child{padding-left:18px}.table-wrap .table th:last-child,.table-wrap .table td:last-child{padding-right:18px}
.row-link{cursor:pointer}.row-link:hover td{background:var(--chip)}.row-warn td{background:var(--warn-soft)}
.list{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--edge)}.list li:last-child{border-bottom:0}.list li>span:not(.avatar):not(.badge):not(.plate){flex:1;min-width:0}.list li>a{flex:0 0 auto}.list li b{white-space:nowrap}.list.compact li{padding:6px 0;font-size:.9rem}
.pagination{display:flex;gap:4px;align-items:center;margin:14px 0}.pagination a{padding:6px 10px;border-radius:8px;border:1px solid var(--edge);background:var(--card)}.pagination a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.flash{padding:11px 14px;border-radius:10px;margin-bottom:14px;font-weight:500;display:flex;gap:8px;align-items:center}.flash.success{background:var(--ok-soft);color:var(--ok)}.flash.error{background:var(--danger-soft);color:var(--danger)}.flash.info{background:var(--info-soft);color:var(--primary)}
.empty-state{text-align:center;padding:50px 20px}.empty-state .ic{width:44px;height:44px;color:var(--faint);margin-bottom:10px}.empty-state h1{font-size:2.4rem;margin-bottom:8px}.empty-state p{color:var(--soft);margin-bottom:18px}
.avatar{display:inline-flex;width:34px;height:34px;border-radius:50%;background:var(--c,#2f6fed);color:#fff;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;flex:0 0 auto}.avatar.sm{width:26px;height:26px;font-size:.68rem}
.chip{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:var(--c,var(--chip));color:#fff;font-size:.7rem;font-weight:700}
.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:16px;border-bottom:1px solid var(--edge)}.tabs a{padding:10px 14px;font-weight:600;color:var(--soft);border-bottom:2px solid transparent;white-space:nowrap}.tabs a.active{color:var(--primary);border-color:var(--primary)}.tabs a:hover{text-decoration:none;color:var(--ink)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.filters input[type=search]{max-width:280px}.filters select{width:auto}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.hbars{list-style:none;margin:0;padding:0}.hbars li{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:10px;align-items:center;padding:6px 0;font-size:.9rem}.hbars li i{display:block;height:10px;border-radius:5px;background:var(--primary);min-width:3px}.hbars li b{white-space:nowrap}

/* app shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:240px;flex:0 0 240px;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--side-edge)}
.brand{display:flex;align-items:center;justify-content:space-between;padding:16px 14px 10px}.brand-link{display:flex;align-items:center;gap:10px;color:var(--side-brand);font-weight:700;min-width:0}.brand-link:hover{text-decoration:none}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;flex:0 0 auto}.brand-logo{height:34px;width:auto;max-width:120px;border-radius:6px;background:#fff;padding:2px}.brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav{display:flex;flex-direction:column;gap:2px;padding:6px 10px}.nav-group{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);padding:14px 10px 4px}.nav-group:first-child{padding-top:6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--side-ink);font-weight:500;font-size:.93rem}.nav-item:hover{background:var(--side-active);color:var(--side-brand);text-decoration:none}.nav-item.active{background:var(--primary-soft);color:var(--primary)}.nav-item .ic{opacity:.75}.nav-item.active .ic{opacity:1}
.sidebar-foot{margin-top:auto;padding:12px 14px;border-top:1px solid var(--side-edge)}.trial-pill{display:flex;align-items:center;gap:6px;background:var(--accent-soft,#fff1e6);color:#c2410c;border-radius:9px;padding:7px 10px;font-size:.8rem;font-weight:600;margin-bottom:10px}.trial-pill:hover{text-decoration:none;background:rgba(255,122,26,.3)}
.user-row{display:flex;align-items:center;gap:10px}.user-meta{flex:1;min-width:0;line-height:1.2}.user-meta strong{display:block;color:var(--side-brand);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta small{color:var(--faint)}.sidebar .icon-btn{color:var(--side-ink)}
.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;padding:10px 22px;background:var(--card);border-bottom:1px solid var(--edge);position:sticky;top:0;z-index:20}
.search{flex:1;max-width:520px;position:relative;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--edge);border-radius:10px;padding:0 10px}.search input{border:0;background:transparent;padding:8px 0}.search input:focus{box-shadow:none}.search .ic{color:var(--faint)}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--edge);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:30}.search-results a{display:flex;gap:10px;align-items:center;padding:9px 12px;color:var(--ink);border-bottom:1px solid var(--edge)}.search-results a:hover,.search-results a.sel{background:var(--chip);text-decoration:none}.search-results a small{color:var(--faint);margin-left:auto}.search-results .type{font-size:.7rem;text-transform:uppercase;color:var(--faint);width:60px}
.topbar-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.content{padding:22px;max-width:1500px;width:100%}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;flex-wrap:wrap}.page-head .muted{font-size:.9rem}.page-head h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.back-link{font-size:.85rem;color:var(--soft);display:inline-flex;align-items:center;gap:4px;margin-bottom:4px}
.only-mobile,.only-mobile-inline{display:none}
#theme-toggle .sun{display:none}[data-theme="dark"] #theme-toggle .sun{display:block}[data-theme="dark"] #theme-toggle .moon{display:none}
@media (prefers-color-scheme:dark){[data-theme="auto"] #theme-toggle .sun{display:block}[data-theme="auto"] #theme-toggle .moon{display:none}}

/* dashboard */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);padding:14px 16px;color:var(--ink);display:flex;flex-direction:column;gap:2px}.kpi:hover{text-decoration:none;border-color:var(--primary)}.kpi{position:relative;overflow:hidden}.kpi::after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--primary);opacity:.35}.kpi:nth-child(2)::after{background:var(--ok)}.kpi:nth-child(4)::after{background:var(--warn)}.kpi:nth-child(6)::after{background:var(--accent)}.kpi span{font-size:.74rem;color:var(--soft);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.kpi b{font-size:1.5rem;letter-spacing:-.02em;white-space:nowrap}.kpi small{color:var(--faint)}.kpis.small .kpi b{font-size:1.2rem}
.quick-intake{display:flex;flex-direction:column;gap:10px;border-left:4px solid var(--accent)}.qi-head{display:flex;gap:10px;align-items:center}.qi-head .ic{color:var(--accent);width:24px;height:24px}.qi-head small{display:block;color:var(--soft)}.qi-form{display:flex;gap:8px}.qi-form input{max-width:260px;font-size:1.1rem}
.lookup-result{background:var(--info-soft);border-radius:10px;padding:10px 12px;font-size:.9rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.lookup-result.new{background:var(--ok-soft)}
.bl-alert{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:12px 14px;margin-bottom:14px}.bl-alert ul{margin:6px 0 0;padding-left:18px;color:var(--ink)}.bl-alert .ic{width:22px;height:22px}
.chart-card .legend{font-size:.8rem;color:var(--soft);display:flex;gap:10px;align-items:center}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:4px}.l-rev{background:var(--primary)}.l-exp{background:var(--accent)}
.bars{display:flex;gap:8px;height:120px;align-items:flex-end}.bars.tall{height:180px}.bar-group{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;gap:4px}.bar-pair{display:flex;gap:2px;align-items:flex-end;height:100%;width:100%;justify-content:center}.bar-pair i{width:40%;max-width:22px;border-radius:4px 4px 0 0;min-height:2px;transition:.3s}.b-rev{background:var(--primary)}.b-exp{background:var(--accent)}.bar-group small{color:var(--faint);font-size:.72rem}
.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.dash-grid>*,.job-grid>*,.two-col>*{min-width:0}

/* board */
.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px}.board.full{min-height:60vh}.board-col{flex:0 0 250px;background:var(--bg);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px;border:1px dashed transparent}.board-col.over{border-color:var(--primary);background:var(--primary-soft)}
.board.mini .board-col{flex:0 0 210px}
.board-col-head{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--soft);padding:2px 4px}.board-col-head b{margin-left:auto;background:var(--card);border-radius:999px;padding:0 7px;font-size:.72rem}
.job-card{background:var(--card);border:1px solid var(--edge);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:3px;color:var(--ink);box-shadow:var(--shadow);cursor:grab}.job-card{border-left:3px solid var(--c,var(--edge))}.board-col[data-status=accepted] .job-card{--c:var(--s-accepted)}.board-col[data-status=in_progress] .job-card{--c:var(--s-in_progress)}.board-col[data-status=waiting_parts] .job-card{--c:var(--s-waiting_parts)}.board-col[data-status=waiting_approval] .job-card{--c:var(--s-waiting_approval)}.board-col[data-status=ready] .job-card{--c:var(--s-ready)}.board-col[data-status=requested] .job-card{--c:var(--s-requested)}.board-col[data-status=scheduled] .job-card{--c:var(--s-scheduled)}.job-card:hover{text-decoration:none;border-color:var(--primary);border-left-color:var(--c,var(--primary));transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.1)}.job-card.hot{--c:var(--danger)}.job-card em{font-style:normal;font-size:.85rem;color:var(--soft)}.job-card small{font-size:.78rem}.job-card-foot{display:flex;gap:6px;align-items:center;margin-top:4px;font-size:.8rem;color:var(--soft)}.job-card .chip{align-self:flex-start}.job-card .due{margin-left:auto;color:var(--faint)}.job-card .due.late{color:var(--danger);font-weight:700}.job-card.dragging{opacity:.4}

/* job form & show */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span2{grid-column:1/-1}.form-grid .card{margin-bottom:0}.form-grid .card h2{margin-bottom:12px}.form-grid label{margin-bottom:10px}
.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.service-cat h4{margin-bottom:6px}.service-chip{display:block;margin-bottom:5px}.service-chip input{position:absolute;opacity:0}.service-chip span{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border:1px solid var(--edge);border-radius:8px;font-size:.88rem;cursor:pointer}.service-chip span em{font-style:normal;color:var(--faint)}.service-chip input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}
.software-box{border-left:4px solid #8b5cf6}.software-box h2,.software-box h3{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.job-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.job-side .card h3{margin-bottom:8px;display:flex;align-items:center;gap:6px}
.items-table input{padding:6px 8px;font-size:.9rem}.items-table td{padding:5px 6px}.w-qty{width:80px}.w-price{width:110px}.w-disc{width:70px}.w-mech{width:80px}.i-total{white-space:nowrap;font-weight:600}
.kind-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.k-labor{background:var(--primary)}.k-part{background:var(--accent)}.k-other{background:var(--faint)}
.pay-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--edge)}
.notify-grid{display:flex;flex-direction:column;gap:6px;margin-top:8px}.notify-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap;font-size:.85rem}.notify-row>span{flex:1 0 100%;color:var(--soft);font-weight:600;font-size:.78rem}
.note-form{display:flex;gap:6px;margin-bottom:10px}.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--edge)}.timeline li{position:relative;padding:0 0 10px 12px;font-size:.88rem}.timeline li::before{content:"";position:absolute;left:-19px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--faint)}.timeline li.tl-status::before{background:var(--primary)}.timeline li.tl-customer::before{background:var(--ok)}.timeline li span{display:block}.timeline li small{display:block}
.upload-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.upload-row input[type=file]{flex:1;min-width:200px}.upload-row input[name=caption]{max-width:220px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.photo{margin:0}.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--edge)}.photo figcaption{font-size:.78rem;color:var(--soft);display:flex;align-items:center;gap:4px;margin-top:3px}.photo figcaption form{margin-left:auto}.file-tile{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px;border:1px solid var(--edge);border-radius:10px;font-size:.8rem;text-align:center;word-break:break-all}
.insp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.insp-row{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--edge)}.insp-name{font-weight:600;font-size:.9rem}.insp-opts{display:flex;gap:3px}.insp-opt input{position:absolute;opacity:0}.insp-opt span{display:inline-flex;width:34px;height:30px;align-items:center;justify-content:center;border:1px solid var(--edge);border-radius:7px;font-weight:700;cursor:pointer;font-size:.8rem}.insp-opt.o-ok input:checked+span{background:var(--ok);color:#fff;border-color:var(--ok)}.insp-opt.o-attention input:checked+span{background:var(--warn);color:#fff;border-color:var(--warn)}.insp-opt.o-urgent input:checked+span{background:var(--danger);color:#fff;border-color:var(--danger)}.insp-opt.o-na input:checked+span{background:var(--chip)}.insp-note{grid-column:1/-1;padding:5px 8px;font-size:.85rem}
.history{list-style:none;margin:0;padding:0}.history li{padding:10px 0;border-bottom:1px solid var(--edge)}.h-head{display:flex;gap:10px;align-items:center}.h-head .r{margin-left:auto}.h-items{margin:4px 0 0;padding-left:18px;font-size:.88rem;color:var(--soft)}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.team-card.inactive{opacity:.55}.team-head{display:flex;gap:10px;align-items:center}.team-head small{display:block}
.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.module-card{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--edge);border-radius:12px;cursor:pointer}.module-card:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.module-card.locked{opacity:.5}.module-card .ic{width:22px;height:22px;color:var(--primary)}.module-card span{display:flex;flex-direction:column}.module-card small{color:var(--soft)}
.hours-grid{grid-template-columns:repeat(7,1fr)}

/* calendar */
.cal-card{padding:0;overflow:auto}.cal{display:grid;grid-template-columns:52px repeat(var(--d,7),minmax(150px,1fr));min-width:900px}.cal.day{--d:1;min-width:0}.cal-times{padding-top:38px}.cal-times div{height:56px;font-size:.72rem;color:var(--faint);text-align:right;padding-right:6px;border-top:1px solid var(--edge);transform:translateY(-8px)}
.cal-day{border-left:1px solid var(--edge)}.cal-day.today .cal-day-head{color:var(--primary)}.cal-day.closed .cal-body{background:repeating-linear-gradient(45deg,transparent,transparent 8px,var(--chip) 8px,var(--chip) 9px)}.cal-day-head{height:38px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:.8rem;text-transform:uppercase;color:var(--soft);border-bottom:1px solid var(--edge);position:sticky;top:0;background:var(--card);z-index:2}.cal-day-head b{font-size:1rem}
.cal-body{position:relative;height:calc(var(--hn)*56px)}.cal-slot{height:56px;border-top:1px solid var(--edge);cursor:pointer}.cal-slot:hover{background:var(--primary-soft)}
.cal-event{position:absolute;left:3px;right:3px;top:calc(var(--top)*56px);height:calc(var(--len)*56px - 3px);background:var(--c);color:#fff;border-radius:7px;padding:4px 7px;font-size:.76rem;line-height:1.25;overflow:hidden;cursor:pointer;box-shadow:var(--shadow);display:flex;flex-direction:column}.cal-event b{display:block}.cal-event.st-requested{background:repeating-linear-gradient(45deg,var(--c),var(--c) 6px,rgba(255,255,255,.25) 6px,rgba(255,255,255,.25) 8px)}.cal-event.st-done,.cal-event.st-noshow{opacity:.5}.cal-event.st-arrived{outline:2px solid var(--ok)}

/* modal & toast */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;background:rgba(15,23,42,.45)}.modal-card{background:var(--card);border-radius:16px;padding:20px;width:100%;max-width:640px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-weight:600;z-index:200;box-shadow:var(--shadow)}

/* auth */
.auth-body{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-side{background:#0f172a;color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-side::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(47,111,237,.45),transparent 70%);top:-160px;right:-160px}.auth-side::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(255,122,26,.25),transparent 70%);bottom:-120px;left:-80px}.auth-side>*{position:relative}.auth-side h2{font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1.15;margin:0 0 14px}.auth-side p{color:#a9b4c9;max-width:44ch}.auth-side ul{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-direction:column;gap:10px}.auth-side li{display:flex;gap:10px;align-items:flex-start;color:#dbe3f0}.auth-side li .ic{color:#4ade80;flex:0 0 auto;margin-top:2px}.auth-side .logo{color:#fff}.auth-side small{color:#7c8aa3}.auth-main{display:flex;align-items:center;justify-content:center;padding:28px 20px}.auth-wrap{width:100%;max-width:440px}.auth-brand.only-mobile{display:none}.auth-card.wide{max-width:640px}.auth-wrap:has(.wide){max-width:640px}.auth-brand{display:flex;justify-content:center;margin-bottom:24px;color:var(--ink)}.auth-card h1{margin-bottom:6px}.auth-card .muted{margin-bottom:16px}.auth-links{text-align:center;margin-top:14px;font-size:.9rem}.auth-lang{text-align:center;font-size:.8rem;color:var(--faint)}

/* marketing */
.mk-body{font-size:16px}.mk-wrap{max-width:1120px;margin:0 auto;padding:0 22px}.mk-wrap.narrow{max-width:760px}
.mk-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--edge)}.mk-header .mk-wrap{display:flex;align-items:center;justify-content:space-between;height:76px}.mk-logo{color:var(--ink);display:flex}.mk-nav{display:flex;gap:18px;align-items:center}.mk-nav a{color:var(--ink);font-weight:600}.mk-nav a:hover{text-decoration:none;color:var(--primary)}.mk-lang{font-size:.85rem;color:var(--faint)!important}
.mk-hero .mk-wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding-top:70px;padding-bottom:60px}.mk-eyebrow{display:inline-block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:12px}.mk-hero h1{font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.08;letter-spacing:-.02em;margin-bottom:16px}.mk-lead{font-size:1.15rem;color:var(--soft);max-width:520px}.mk-cta-row{display:flex;gap:12px;margin:22px 0 10px;flex-wrap:wrap}.mk-cta-sub{color:var(--faint);font-size:.88rem}
.mock{background:var(--card);border:1px solid var(--edge);border-radius:16px;box-shadow:0 30px 60px -20px rgba(15,23,42,.35);overflow:hidden;position:relative;transform:perspective(1200px) rotateY(-6deg) rotateX(2deg)}.mock-top{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--edge)}.mock-top span{width:10px;height:10px;border-radius:50%;background:var(--edge)}.mock-body{display:flex}.mock-side{width:44px;background:var(--side);padding:12px 10px;display:flex;flex-direction:column;gap:12px}.mock-side i{height:8px;border-radius:4px;background:#334155}.mock-side i:first-child{background:var(--primary)}.mock-main{flex:1;padding:12px}.mock-kpis{display:flex;gap:8px;margin-bottom:12px}.mock-kpis div{flex:1;background:var(--bg);border-radius:8px;padding:8px}.mock-kpis b{display:block;font-size:1.1rem}.mock-kpis small{color:var(--faint);font-size:.68rem}.mock-board{display:flex;gap:8px}.mock-col{flex:1;background:var(--bg);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:6px}.mock-col>span{font-size:.62rem;text-transform:uppercase;font-weight:700;color:var(--faint)}.mock-card{background:var(--card);border:1px solid var(--edge);border-radius:6px;padding:6px;font-size:.7rem;font-weight:700;font-family:ui-monospace,Menlo,monospace}.mock-card em{display:block;font:.62rem/1.3 -apple-system,sans-serif;color:var(--soft)}.mock-card.hot{border-left:3px solid var(--danger)}.mock-card.ok{border-left:3px solid var(--ok)}.mock-alert{position:absolute;right:-8px;bottom:14px;background:var(--danger);color:#fff;font-size:.76rem;font-weight:600;padding:8px 12px;border-radius:10px;display:flex;gap:6px;align-items:center;box-shadow:0 10px 30px rgba(217,59,59,.4)}
.mk-strip{background:#0f172a;color:#fff}.mk-strip .mk-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:24px 22px}.mk-strip b{display:block;font-size:1.5rem}.mk-strip span{color:#94a3b8;font-size:.9rem}
.mk-section{padding:70px 0}.mk-section.alt{background:var(--card);border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}.mk-section h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.02em;margin-bottom:10px;text-align:center}.mk-sub{text-align:center;color:var(--soft);max-width:640px;margin:0 auto 36px;font-size:1.05rem}
.mk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mk-feature{background:var(--card);border:1px solid var(--edge);border-radius:16px;padding:22px}.mk-section.alt .mk-feature{background:var(--bg)}.mk-feature .ic{width:28px;height:28px;color:var(--primary);margin-bottom:10px}.mk-feature h3{margin-bottom:6px;font-size:1.05rem}.mk-feature p{color:var(--soft);font-size:.95rem}
.mk-two{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}.mk-two h2{text-align:left}.mk-checks{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:8px}.mk-checks .ic{color:var(--ok)}.mk-panel{background:var(--bg);border-radius:20px;padding:30px}.bl-demo{background:var(--card);border:1px solid var(--edge);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.bl-demo-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.bl-demo-item{padding:10px;border-radius:9px;background:var(--danger-soft);margin-top:8px}.bl-demo-item b{display:block;color:var(--danger)}.bl-demo-item small{color:var(--soft)}
.mk-billing{display:flex;justify-content:center;gap:16px;margin-bottom:26px}.mk-billing label{display:flex;gap:6px;align-items:center;font-weight:600;cursor:pointer}
.mk-plans{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}.mk-plan{background:var(--card);border:1px solid var(--edge);border-radius:18px;padding:22px;position:relative;display:flex;flex-direction:column}.mk-plan.featured{border-color:var(--primary);box-shadow:0 20px 40px -20px rgba(47,111,237,.5)}.mk-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;font-size:.72rem;font-weight:700;padding:4px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}.mk-plan h3{font-size:1.2rem}.mk-plan-desc{color:var(--soft);font-size:.9rem;min-height:2.6em}.mk-price{margin:8px 0 2px;display:flex;align-items:baseline;gap:4px}.mk-price b{font-size:2.4rem;letter-spacing:-.03em}.mk-price small{color:var(--faint)}.mk-users{color:var(--faint);font-size:.82rem;margin-bottom:12px}.mk-plan ul{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:6px;font-size:.9rem;flex:1}.mk-plan ul .ic{color:var(--ok);width:16px;height:16px}.mk-plan ul li{display:flex;gap:6px;align-items:flex-start}.mk-custom-list label{display:flex;gap:6px;align-items:center;cursor:pointer;width:100%}.mk-custom-list em{margin-left:auto;font-style:normal;color:var(--faint);font-size:.8rem}.mk-plan.custom{border-style:dashed}.mk-note{text-align:center;color:var(--faint);font-size:.85rem;margin-top:22px}
.mk-plans.compact{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.mk-plan.selectable{cursor:pointer}.mk-plan.selectable>input{position:absolute;top:14px;right:14px}.mk-plan.selectable:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.mk-faq{border-bottom:1px solid var(--edge);padding:14px 0}.mk-faq summary{font-weight:700;cursor:pointer;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between}.mk-faq summary::after{content:"+";color:var(--faint)}.mk-faq[open] summary::after{content:"–"}.mk-faq p{color:var(--soft);margin-top:8px}
.mk-final{padding:70px 0;text-align:center;background:linear-gradient(135deg,var(--primary),#1e40af);color:#fff}.mk-final h2{font-size:2rem;margin-bottom:8px}.mk-final p{opacity:.85;margin-bottom:20px}.mk-final .btn.primary{background:#fff;color:var(--primary);border-color:#fff}
.mk-footer{padding:26px 0;border-top:1px solid var(--edge);color:var(--faint);font-size:.88rem}.mk-footer .mk-wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.mk-footer img{vertical-align:middle}
.mk-legal h1{margin-bottom:16px}.mk-legal h3{margin:18px 0 6px}.mk-legal p{color:var(--soft)}

/* public portal */
.public-body{padding:16px}.public-wrap{max-width:640px;margin:0 auto}.public-head{display:flex;align-items:center;gap:12px;padding:10px 0 18px}.public-logo{height:44px;border-radius:8px}.public-head .mk-lang{margin-left:auto}.public-foot{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--faint);font-size:.82rem;padding:20px 0}.public-foot .logo{color:var(--ink)}
.steps{display:flex;gap:6px;margin:16px 0}.step{flex:1;text-align:center;font-size:.75rem;color:var(--faint);display:flex;flex-direction:column;gap:5px;align-items:center}.step i{width:28px;height:28px;border-radius:50%;background:var(--chip);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700}.step.done i{background:var(--ok);color:#fff}.step.current i{background:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-soft)}.step.done,.step.current{color:var(--ink)}
.approve-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.insp-list{list-style:none;margin:0;padding:0}.insp-list li{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--edge)}.insp-list li i{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.insp-list .o-ok i{background:var(--ok)}.insp-list .o-attention i{background:var(--warn)}.insp-list .o-urgent i{background:var(--danger)}.insp-list small{margin-left:auto;color:var(--soft)}
.stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}.stars input{display:none}.stars label{font-size:2rem;color:var(--edge);cursor:pointer}.stars input:checked~label,.stars label:hover,.stars label:hover~label{color:#f5b301}

/* print documents */
.print-body{background:#fff;color:#111;padding:20px}.print-bar{display:flex;gap:8px;max-width:800px;margin:0 auto 14px}
.doc{max-width:800px;margin:0 auto;background:#fff;color:#111;padding:36px;font-size:13px;line-height:1.45}.app .doc{border:1px solid var(--edge);border-radius:var(--r);color:var(--ink);background:var(--card)}
.doc-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:26px;align-items:flex-start}.doc-head h1{font-size:1.5rem;letter-spacing:.04em}.doc-head h2{font-size:1.1rem}.doc-logo{max-height:60px;max-width:200px;margin-bottom:8px;display:block}
.doc-two{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px}.parties>div{border:1px solid #ddd;border-radius:8px;padding:12px}.app .parties>div{border-color:var(--edge)}
.doc-table{width:100%;border-collapse:collapse;margin:10px 0 14px}.doc-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid #111;padding:6px 8px}.app .doc-table th{border-color:var(--ink)}.doc-table td{padding:7px 8px;border-bottom:1px solid #e5e5e5;vertical-align:top}.doc-table .r{text-align:right}.doc-table tfoot td{border-bottom:0;padding:5px 8px}.doc-table tr.grand td{border-top:2px solid #111;font-size:1.05rem}
.doc-words{font-style:italic;margin-bottom:6px}.doc-note{font-size:.8rem;color:#555;margin-bottom:10px}.doc-sign{display:flex;justify-content:space-between;gap:20px;margin-top:30px;font-size:.85rem}.doc-foot{margin-top:24px;font-size:.78rem;color:#666;border-top:1px solid #ddd;padding-top:8px}
.doc.cancelled{position:relative}.doc.cancelled::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent 0 40px,rgba(217,59,59,.06) 40px 42px);pointer-events:none}
@media print{.no-print,.sidebar,.topbar,.page-head,.copy-row,.print-bar{display:none!important}body,.print-body{padding:0;background:#fff}.doc{padding:0;border:0;max-width:none;box-shadow:none}.content{padding:0}}

/* responsive */
@media (max-width:1100px){.dash-grid,.job-grid{grid-template-columns:1fr}.mk-grid{grid-template-columns:1fr 1fr}.mk-plans{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  .auth-body{grid-template-columns:1fr}.auth-side{display:none}.auth-brand.only-mobile{display:flex}
  .sidebar{box-shadow:0 0 40px rgba(0,0,0,.25)}
  .only-mobile{display:inline-flex}.only-mobile-inline{display:inline}.hide-sm{display:none}
  .topbar-logo{color:var(--ink);display:inline-flex}.search{max-width:none}.search kbd{display:none}.mk-header .mk-wrap{height:64px}
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s;z-index:50;width:270px;box-shadow:0 0 40px rgba(0,0,0,.4)}.sidebar.open{transform:none}
  .content{padding:14px}.topbar{padding:8px 12px}.form-grid,.two-col,.grid3,.grid4{grid-template-columns:1fr}.grid2{grid-template-columns:1fr 1fr}.hours-grid{grid-template-columns:repeat(2,1fr)}.insp-grid{grid-template-columns:1fr}
  .mk-hero .mk-wrap{grid-template-columns:1fr;padding-top:36px}.mock{transform:none}.mk-two{grid-template-columns:1fr}.mk-strip .mk-wrap{grid-template-columns:1fr 1fr}.mk-nav a:not(.btn):not(.mk-lang){display:none}.mk-section{padding:44px 0}
  .kpi b{font-size:1.25rem}.qi-form{flex-direction:column}.qi-form input{max-width:none}.page-head h1{font-size:1.3rem}
  .doc{padding:18px}.doc-two{grid-template-columns:1fr}.items-table .w-mech,.items-table th:nth-child(7),.items-table td:nth-child(7){display:none}
}
@media (max-width:560px){.grid2{grid-template-columns:1fr}.mk-grid,.mk-plans{grid-template-columns:1fr}.mk-strip .mk-wrap{grid-template-columns:1fr}.steps .step span{font-size:.65rem}}

/* logo, auth extras */
.logo{display:block;max-width:100%;height:auto}.mk-logo .logo,.auth-brand .logo{color:var(--ink)}.mk-strip .logo,.mk-final .logo{color:#fff}
.auth-or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:.8rem;margin:14px 0}.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--edge)}
.google-btn{justify-content:center;gap:10px}.auth-register{margin-top:18px;padding-top:14px;border-top:1px solid var(--edge);display:flex;flex-direction:column;gap:8px;text-align:center;color:var(--soft);font-size:.9rem}
/* workshop type cards */
.type-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.type-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--edge);border-radius:12px;cursor:pointer}.type-card input{position:absolute;opacity:0}.type-card:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.type-card b{display:flex;align-items:center;gap:8px}.type-card .ic{color:var(--primary)}.type-card small{color:var(--soft)}
/* service book */
.sb-card{border-left:4px solid var(--primary)}.sb-inline{border:1px dashed var(--edge);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px}.sb-inline h3{display:flex;align-items:center;gap:8px;font-size:.95rem}
.sb-hero h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:1.3rem;margin:6px 0}.eyebrow-sb{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--primary)}
.sb-next{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bg);border-radius:12px;padding:12px 14px;margin:12px 0}.sb-next span:first-child{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);font-weight:700}.sb-next b{font-size:1.25rem}.sb-next small{display:block;color:var(--soft)}.sb-next.st-overdue{background:var(--danger-soft)}.sb-next.st-soon{background:var(--warn-soft)}
.sb-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:720px){.type-cards{grid-template-columns:1fr}}
.side-brand{display:inline-flex;margin-bottom:10px;color:var(--side-brand);opacity:.85}.side-brand:hover{opacity:1}

/* ---------- hero band: the one number that matters, plus a 7-day pulse ---------- */
.hero-band{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap;margin-bottom:20px}
.hero-eyebrow{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--faint);font-weight:800;margin-bottom:8px}
.hero-num{display:block;font-size:4rem;line-height:.92;font-weight:800;letter-spacing:-.045em}
.hero-label{display:block;color:var(--soft);font-weight:600;margin-top:6px;font-size:1.02rem}
.hero-side{display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap}
.hero-stat{display:flex;flex-direction:column;gap:3px}
.hero-stat b{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.hero-stat span{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);font-weight:800}
.spark{display:block;overflow:visible}
.spark .s-area{fill:var(--primary);opacity:.10;stroke:none}
.spark .s-line{fill:none;stroke:var(--primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.spark .s-dot{fill:var(--primary)}

/* ---------- bays: the live workshop floor ---------- */
.bay-meter{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;font-size:.88rem}
.bay-meter-bar{flex:1;min-width:160px;max-width:340px;height:6px;border-radius:99px;background:var(--chip);overflow:hidden}
.bay-meter-bar i{display:block;height:100%;border-radius:99px;background:var(--primary);transition:width .4s}
.bay-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(282px,1fr));margin-bottom:18px}
.bay-card{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:13px;box-shadow:0 1px 2px rgba(15,23,42,.04);min-width:0;overflow:hidden}
.bay-card.free{background:transparent;border-style:dashed}
.bay-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.bay-name{font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:var(--soft)}
.badge.b-late{background:var(--danger-soft);color:var(--danger)}
.badge.b-soon{background:var(--warn-soft);color:var(--warn)}
.badge.b-ontime,.badge.b-done{background:var(--ok-soft);color:var(--ok)}
.bay-body{display:flex;gap:14px;align-items:center;min-width:0}
.ring{position:relative;width:76px;height:76px;flex:0 0 auto}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:4;stroke-linecap:round}
.ring .ring-bg{stroke:var(--chip)}
.ring .ring-fg{stroke:var(--primary)}
.ring.r-late .ring-fg{stroke:var(--danger)}.ring.r-soon .ring-fg{stroke:var(--warn)}.ring.r-done .ring-fg{stroke:var(--ok)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:.92rem;font-weight:800;letter-spacing:-.02em}
.bay-info{min-width:0;display:flex;flex-direction:column;gap:3px}
.bay-info em{font-style:normal;font-weight:700}
.bay-info .plate{align-self:flex-start}
.bay-info small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bay-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--edge);padding-top:11px;font-size:.85rem;margin-top:auto}
.bay-foot form{margin-left:auto}
.bay-due{display:inline-flex;align-items:center;gap:4px;color:var(--soft)}
.bay-place{display:flex;flex-wrap:wrap;gap:9px;align-items:center;flex:1}
.bay-place .bay-hint{flex:1 1 100%}
.bay-place select{flex:1;min-width:0}
.bay-hint{color:var(--faint);font-size:.85rem}
.bay-manage{display:none}.bay-manage.open{display:block}
.bay-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}
.empty-state{text-align:center;padding:40px 18px}
.empty-state img{opacity:.45;margin-bottom:12px;max-width:180px;height:auto}
.empty-state p{color:var(--soft);margin-bottom:14px}
@media (max-width:860px){.hero-num{font-size:3rem}.bay-grid{grid-template-columns:1fr}.bay-row{grid-template-columns:1fr auto}}

/* ---------- photography: the login panel and the marketing hero ---------- */
.auth-side{background-image:linear-gradient(180deg,rgba(9,14,26,.86),rgba(9,14,26,.94)),url(img/auth.jpg);background-size:cover;background-position:center}
.auth-side::before{opacity:.5}.auth-side::after{opacity:.5}
.mk-hero{position:relative;overflow:hidden}
.mk-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0 42%,rgba(246,247,251,.35) 62%,transparent 100%),url(img/hero.jpg) right center/cover no-repeat;z-index:0}
.mk-hero .mk-wrap{position:relative;z-index:1}
@media (max-width:860px){.mk-hero::before{background:linear-gradient(180deg,var(--bg) 0 58%,rgba(246,247,251,.6) 78%,transparent),url(img/hero.jpg) center/cover no-repeat}}

/* workshop-side banners */
.imp-bar{position:sticky;top:0;z-index:80;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#7a2e0e;color:#fff;padding:8px 18px;font-size:.88rem;font-weight:600}
.imp-bar .ic{flex:0 0 auto}.imp-bar span{flex:1;min-width:200px}.imp-bar form{margin:0}.imp-bar .btn{background:#fff;color:#7a2e0e;border-color:#fff}
.is-imp .topbar{top:38px}
.broadcast{display:flex;gap:10px;align-items:center;padding:9px 18px;background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:.9rem;border-bottom:1px solid var(--edge)}
.broadcast.warn{background:var(--warn-soft);color:var(--warn)}
.promo-hint.ok{color:var(--ok);font-weight:700}.promo-hint.bad{color:var(--danger)}


.inline.wrap{flex-wrap:wrap}
/* ---------- change requests ---------- */
.cr-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px;align-items:start}
.cr-thread{display:flex;flex-direction:column;gap:12px}
.cr-msg{border:1px solid var(--edge);border-radius:12px;padding:12px 14px;max-width:88%;display:flex;flex-direction:column;gap:6px}
.cr-msg.user{align-self:flex-start;background:var(--bg)}
.cr-msg.admin{align-self:flex-end;background:var(--primary-soft);border-color:transparent}
.cr-msg.system{align-self:center;background:transparent;border-style:dashed;font-size:.88rem;color:var(--soft)}
.cr-meta{font-size:.85rem}.cr-body{white-space:normal;line-height:1.55}
.cr-reply{border-top:1px solid var(--edge);padding-top:12px}
.badge.cr-new{background:var(--primary-soft);color:var(--primary)}.badge.cr-reviewing,.badge.cr-planned{background:var(--warn-soft);color:var(--warn)}
.badge.cr-in_progress{background:var(--info-soft);color:var(--primary)}.badge.cr-done{background:var(--ok-soft);color:var(--ok)}.badge.cr-declined{background:var(--chip);color:var(--soft)}
.badge.info{background:var(--primary-soft);color:var(--primary)}
.row-unread td{font-weight:600}
.nav-badge{margin-left:auto;background:var(--danger);color:#fff;border-radius:999px;font-size:.68rem;min-width:18px;height:18px;display:inline-grid;place-items:center;padding:0 5px}
.custom-fields{margin-top:6px}.custom-list li{justify-content:space-between}
@media (max-width:860px){.cr-layout{grid-template-columns:1fr}.cr-msg{max-width:100%}}
/* ---------- simpler navigation ---------- */
.nav-more{display:flex;flex-direction:column;gap:inherit}
.nav-more>summary{list-style:none;cursor:pointer;user-select:none}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more>summary small{margin-left:auto;font-size:.72rem;opacity:.6}
.nav-more[open]>summary{opacity:.75}
.nav-more[open]>.nav-item:not(summary){padding-left:26px}
.promo-box>summary{cursor:pointer;color:var(--primary);font-weight:600;font-size:.92rem;width:max-content}
.promo-box[open]>summary{margin-bottom:8px}
/* ---------- first steps ---------- */
.first-steps{display:grid;gap:12px}
.first-steps .fs-head{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.first-steps .fs-head h2{margin:0}
.fs-bar{height:6px;border-radius:99px;background:var(--chip);overflow:hidden;flex:1;min-width:120px;max-width:260px}
.fs-bar i{display:block;height:100%;background:var(--ok);border-radius:inherit}
.fs-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.fs-list a{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--edge);border-radius:12px;color:inherit;text-decoration:none;min-width:0}
.fs-list a:hover{border-color:var(--primary)}
.fs-list a span{min-width:0}.fs-list b{display:block;font-size:.93rem}.fs-list small{color:var(--soft);font-size:.8rem}
.fs-list .fs-dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--edge);display:grid;place-items:center}
.fs-list .done a{opacity:.6}.fs-list .done .fs-dot{background:var(--ok);border-color:var(--ok);color:#fff}
.fs-list .done .fs-dot svg{width:13px;height:13px}
/* job items: the description gets the room, numbers stay compact */
.job-items{table-layout:fixed;width:100%}
.job-items th:first-child{width:22px}.job-items th.w-qty{width:60px}.job-items th.w-price{width:86px}.job-items th.w-disc{width:54px}
.job-items th:nth-child(6){width:86px}.job-items th.w-mech{width:72px}.job-items th:last-child{width:34px}
.job-items td input,.job-items td select{width:100%;min-width:0}
.job-items th,.job-items td{padding-left:4px!important;padding-right:4px!important}
@media (max-width:860px){.job-items{table-layout:auto}}
/* one "send to customer" form instead of a grid of buttons */
.notify-form{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.notify-form label{display:flex;flex-direction:column;gap:4px}
.notify-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.notify-channels .btn{justify-content:center}
@media (max-width:640px){.hero-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.hero-side .hero-stat:first-child{grid-column:1/-1}}
/* ---------- unreliable customers ---------- */
.nav-alert svg{color:var(--danger)}.nav-alert.active svg{color:inherit}
.bl-h1{display:flex;align-items:center;gap:12px}
.bl-mark{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--danger-soft);color:var(--danger);flex:none}
.bl-mark svg{width:22px;height:22px}
.bl-check{display:grid;gap:14px;padding:22px}
.bl-check-head{display:flex;gap:14px;align-items:flex-start}
.bl-check-head h2{margin:0 0 2px}.bl-check-head p{margin:0}
.bl-check-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--primary-soft);color:var(--primary);flex:none}
.bl-search{display:flex;gap:10px}
.bl-search input{flex:1;min-width:0;font-size:1.05rem;padding:13px 16px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.bl-search input::placeholder{text-transform:none;letter-spacing:0;font-weight:400}
.bl-search .btn{padding-left:22px;padding-right:22px}
.bl-result{border-radius:14px;padding:14px 16px;display:grid;gap:12px}
.bl-result.danger{background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}
.bl-result.ok{background:var(--ok-soft);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bl-result-head{display:flex;gap:12px;align-items:center}
.bl-result-head>svg{width:26px;height:26px;flex:none}
.bl-result.danger .bl-result-head{color:var(--danger)}.bl-result.ok .bl-result-head{color:var(--ok)}
.bl-result-head div{display:flex;flex-direction:column;line-height:1.3}.bl-result-head span{color:var(--ink);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.05em}
.bl-hits{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.bl-hits li{background:var(--card);border-radius:10px;padding:10px 12px;display:grid;gap:4px}
.bl-hits p{margin:0;line-height:1.5}
.bl-hit-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.bl-amount{font-weight:800;color:var(--danger);white-space:nowrap}
.bl-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.bl-stats>div{background:var(--card);border:1px solid var(--edge);border-radius:var(--rs,12px);padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.bl-stats b{font-size:1.5rem;line-height:1.1}.bl-stats b.danger{color:var(--danger)}
.bl-stats span{color:var(--soft);font-size:.85rem}
.bl-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start}
.bl-cols .card-head h2{display:flex;align-items:center;gap:8px}
.bl-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bl-item{border:1px solid var(--edge);border-radius:12px;padding:12px 14px;display:grid;gap:6px;min-width:0}
.bl-item-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bl-item-top .bl-amount{margin-left:auto}
.bl-who{font-weight:600;font-size:.92rem}
.bl-details{margin:0;color:var(--soft);line-height:1.5;overflow-wrap:anywhere}
.bl-item-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:4px;border-top:1px dashed var(--edge)}
.bl-item-foot form{margin:0}
.bl-item.resolved{opacity:.7;padding:9px 12px}
.bl-chip{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700;white-space:nowrap}
.bl-chip.danger{background:var(--danger-soft);color:var(--danger)}.bl-chip.warn{background:var(--warn-soft);color:var(--warn)}.bl-chip.neutral{background:var(--chip);color:var(--soft)}
.bl-phone{display:inline-flex;align-items:center;gap:5px;font-weight:700;white-space:nowrap}.bl-phone svg{width:14px;height:14px}
.bl-resolved{margin-top:12px}.bl-resolved>summary{cursor:pointer;color:var(--soft);font-weight:600;padding:6px 0}
.bl-resolved[open]>summary{margin-bottom:8px}
.bl-empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:22px 10px;color:var(--soft)}
.bl-empty svg{width:30px;height:30px;opacity:.5}.bl-empty p{margin:0;max-width:340px}
.bl-feed{list-style:none;margin:0;padding:0}
.bl-feed li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--edge)}
.bl-feed li:last-child{border-bottom:0}
.bl-feed li>div{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0}
.bl-feed small{flex-basis:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-about{margin-top:16px}.bl-about>summary{cursor:pointer;font-weight:700;display:flex;align-items:center;gap:8px;list-style:none}
.bl-about>summary::-webkit-details-marker{display:none}.bl-about p{line-height:1.6}
.bl-legal{display:flex;gap:8px;align-items:flex-start;font-size:.8rem;color:var(--soft);background:var(--chip);border-radius:10px;padding:10px 12px;margin:0;line-height:1.5}
.bl-legal svg{flex:none;width:16px;height:16px;margin-top:2px}
.bl-report{color:var(--danger)}.bl-report svg{color:var(--danger)}
@media (max-width:900px){.bl-cols{grid-template-columns:1fr}.bl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.bl-search{flex-direction:column}.bl-check{padding:16px}.bl-h1{font-size:1.5rem}}
/* ---------- dashboard ---------- */
.d2-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:18px}
.d2-head h1{margin:0}.d2-head p{margin:2px 0 0}
.d2-intake{position:relative;display:flex;gap:8px;flex:0 1 460px;min-width:0}
.d2-intake input{flex:1;min-width:0;font-size:1.05rem;padding:11px 14px}
.d2-intake .lookup-result{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;box-shadow:var(--shadow);background:var(--card);border:1px solid var(--edge)}
.d2-ic{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--primary-soft);color:var(--primary);flex:none}
.d2-ic svg{width:18px;height:18px}
.d2-ic.ok{background:var(--ok-soft);color:var(--ok)}.d2-ic.warn{background:var(--warn-soft);color:var(--warn)}.d2-ic.danger{background:var(--danger-soft);color:var(--danger)}.d2-ic.neutral{background:var(--chip);color:var(--soft)}
.d2-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.d2-kpi{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;background:var(--card);border:1px solid var(--edge);border-radius:var(--r,16px);padding:16px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow);overflow:hidden;min-width:0;transition:border-color .15s,transform .15s}
.d2-kpi:hover{border-color:var(--primary);transform:translateY(-1px)}
.d2-kpi .d2-ic{grid-row:1/3;grid-column:1}.d2-kpi>b,.d2-kpi>span:not(.d2-ic){grid-column:2}
.d2-kpi b{font-size:1.55rem;line-height:1.1;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.d2-kpi b.warn{color:var(--warn)}
.d2-kpi>span:last-of-type{color:var(--soft);font-size:.82rem;line-height:1.3}
.d2-kpi-rev{grid-template-columns:auto minmax(0,1fr) auto}.d2-kpi-rev .spark{grid-column:3;grid-row:1/3;width:64px;height:30px;opacity:.7}
.d2-todo{margin-bottom:16px}
.d2-todo .card-head h2{margin:0}
.d2-todo-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.d2-todo-list a{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--edge);border-radius:12px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem;min-width:0}
.d2-todo-list a>span:nth-child(2){flex:1;min-width:0}
.d2-todo-list a>svg{width:16px;height:16px;color:var(--faint);flex:none}
.d2-todo-list a:hover{border-color:var(--primary)}
.d2-todo-list a.t-danger{border-color:color-mix(in srgb,var(--danger) 35%,var(--edge))}
.d2-allgood{display:flex;align-items:center;gap:8px;margin:0;color:var(--ok);font-weight:600}.d2-allgood svg{width:18px;height:18px}
.d2-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:16px;align-items:start}
.d2-side{display:grid;gap:16px;min-width:0}
.d2-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.d2-filter button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--edge);background:transparent;color:var(--soft);border-radius:999px;padding:5px 11px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.d2-filter button b{color:var(--ink)}
.d2-filter button.active{background:var(--ink);border-color:var(--ink);color:var(--card)}.d2-filter button.active b{color:var(--card)}
.d2-jobs{list-style:none;margin:0;padding:0}
.d2-jobs li{border-top:1px solid var(--edge)}.d2-jobs li:first-child{border-top:0}
.d2-jobs li[hidden]{display:none}
.d2-jobs a{display:grid;grid-template-columns:132px 112px minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:10px 4px;color:var(--ink);text-decoration:none;border-radius:10px}
.d2-jobs a:hover{background:var(--chip)}
.d2-st{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:600;color:var(--soft);min-width:0}
.d2-st-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d2-jobs .plate{justify-self:start}
.d2-car{display:flex;flex-direction:column;min-width:0}
.d2-car b,.d2-car small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.d2-car b{font-size:.92rem}.d2-car small{color:var(--soft);font-size:.8rem}
.d2-due{font-size:.8rem;color:var(--soft);white-space:nowrap;min-width:72px;text-align:right}.d2-due.late{color:var(--danger);font-weight:700}
.avatar.empty{background:var(--chip);color:var(--faint)}
.d2-empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:30px 10px;color:var(--soft)}.d2-empty svg{width:32px;height:32px;opacity:.45}.d2-empty p{margin:0;max-width:380px}
.d2-timeline{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.d2-timeline li{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-left:2px solid var(--primary-soft);padding-left:10px}
.d2-timeline li.past{opacity:.55}
.d2-timeline time{font-weight:800;font-variant-numeric:tabular-nums}
.d2-timeline div{display:flex;flex-direction:column;min-width:0}.d2-timeline small{color:var(--soft);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d2-online{margin-top:12px;padding-top:12px;border-top:1px dashed var(--edge);display:grid;gap:8px}
.d2-online h3{margin:0;font-size:.85rem;display:flex;align-items:center;gap:6px;color:var(--warn)}.d2-online h3 svg{width:15px;height:15px}
.d2-online-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--warn-soft);border-radius:10px;padding:8px 10px}
.d2-online-row div{display:flex;flex-direction:column;min-width:0}.d2-online-row b{font-size:.88rem}.d2-online-row small{color:var(--soft);font-size:.78rem}
.d2-online-row form{margin:0;flex:none}
.d2-load{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.d2-load li{display:grid;grid-template-columns:auto minmax(0,1fr) 90px 22px;align-items:center;gap:10px}
.d2-load-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}
.d2-bar{height:6px;border-radius:99px;background:var(--chip);overflow:hidden}.d2-bar i{display:block;height:100%;border-radius:inherit;background:var(--c,var(--primary))}
.d2-load b{text-align:right}
.d2-mini{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.d2-mini li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.d2-mini-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.88rem;color:var(--soft)}
.d2-steps{margin-bottom:16px;padding:12px 16px}
.d2-steps>summary{display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none}
.d2-steps>summary::-webkit-details-marker{display:none}
.d2-steps-ring{--p:0;width:44px;height:44px;border-radius:50%;flex:none;display:grid;place-items:center;background:conic-gradient(var(--ok) calc(var(--p)*1%),var(--chip) 0)}
.d2-steps-ring b{width:34px;height:34px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-size:.72rem}
.d2-steps-txt{display:flex;flex-direction:column;flex:1;min-width:0}.d2-steps-txt small{color:var(--soft)}
.d2-steps-more{font-size:.82rem;color:var(--primary);font-weight:600;white-space:nowrap}
.d2-steps[open] .fs-list{margin-top:14px}
.d2-steps-hide{margin-top:10px;text-align:right}
@media (max-width:1100px){.d2-grid{grid-template-columns:1fr}}
@media (max-width:760px){
  .d2-head{align-items:stretch}.d2-intake{flex-basis:100%}
  .d2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.d2-kpi{padding:12px;column-gap:10px}.d2-kpi b{font-size:1.2rem}.d2-kpi .d2-ic{width:30px;height:30px}
  .d2-kpi-rev{grid-column:1/-1}
  .d2-jobs a{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"plate car av" "st st due";row-gap:4px}
  .d2-jobs .plate{grid-area:plate}.d2-car{grid-area:car}.d2-jobs .avatar{grid-area:av}.d2-st{grid-area:st}.d2-due{grid-area:due}.d2-jobs .badge{display:none}
  .d2-steps-more{display:none}
}
/* ---------- inspection, customer view (3-step scale) ---------- */
.insp-client{--lv:var(--ok);--lv-soft:var(--ok-soft)}
.insp-client .o-attention,.insp-pill.o-attention{--lv:var(--warn);--lv-soft:var(--warn-soft)}
.insp-client .o-urgent,.insp-pill.o-urgent{--lv:var(--danger);--lv-soft:var(--danger-soft)}
.insp-client .o-ok,.insp-pill.o-ok{--lv:var(--ok);--lv-soft:var(--ok-soft)}
.insp-summary{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}
.insp-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--lv-soft);color:var(--lv);font-weight:700;font-size:.92rem}
.insp-pill b{font-weight:900}
.insp-scale-legend{list-style:none;margin:0 0 14px;padding:12px 14px;background:var(--chip);border-radius:12px;display:grid;gap:8px;font-size:.86rem}
.insp-scale-legend li{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center}
.insp-scale-legend b{color:var(--lv);min-width:72px}.insp-scale-legend span:last-child{color:var(--soft)}
.insp-meter{display:inline-flex;gap:3px}
.insp-meter i{width:14px;height:8px;border-radius:3px;background:color-mix(in srgb,var(--soft) 22%,transparent)}
.insp-meter[data-n="1"] i:nth-child(-n+1),.insp-meter[data-n="2"] i:nth-child(-n+2),.insp-meter[data-n="3"] i:nth-child(-n+3){background:var(--lv)}
.insp-client-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.insp-client-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--edge);border-left:4px solid var(--lv)}
.insp-client-list li.o-urgent,.insp-client-list li.o-attention{background:var(--lv-soft);border-color:transparent;border-left-color:var(--lv)}
.insp-sym{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lv);color:#fff;font-weight:900;font-size:.95rem;letter-spacing:-.05em}
.insp-body{display:flex;flex-direction:column;min-width:0}.insp-body small{color:var(--ink);opacity:.8;line-height:1.4;margin-top:2px}
.insp-level{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.insp-level em{font-style:normal;font-weight:800;font-size:.8rem;color:var(--lv);text-transform:uppercase;letter-spacing:.04em}
.insp-note-box{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--primary-soft);line-height:1.5}
.insp-note-box svg{flex:none;width:18px;height:18px;color:var(--primary);margin-top:2px}
@media (max-width:520px){.insp-scale-legend li{grid-template-columns:auto 1fr}.insp-scale-legend span:last-child{grid-column:1/-1}.insp-client-list li{padding:10px}.insp-sym{width:30px;height:30px}}
/* ---------- inspection on the work order: collapsible, compact ---------- */
.insp-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px}
.insp-card>summary::-webkit-details-marker{display:none}
.insp-head-title{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:1.05rem}
.insp-head-sum{display:flex;gap:6px;flex-wrap:wrap;flex:1;justify-content:flex-end}
.insp-head-sum .insp-pill{padding:3px 10px;font-size:.82rem}
.insp-pill.o-ok{--lv:var(--ok);--lv-soft:var(--ok-soft)}
.insp-head-toggle svg{width:16px;height:16px;transform:rotate(90deg);transition:transform .15s;color:var(--soft)}
.insp-card[open] .insp-head-toggle svg{transform:rotate(-90deg)}
.insp-card[open]>summary{margin-bottom:12px}
.insp-key{margin:0}.insp-key b{font-weight:900}.insp-key .o-ok{color:var(--ok)}.insp-key .o-attention{color:var(--warn)}.insp-key .o-urgent{color:var(--danger)}
/* the note field only shows up for "!" and "!!" (or when it already has text) */
.insp-row .insp-note:placeholder-shown{display:none}
.insp-row:has(input[value=attention]:checked) .insp-note,.insp-row:has(input[value=urgent]:checked) .insp-note{display:block}
/* Settings → Inspection */
.insp-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.insp-pick-item input{position:absolute;opacity:0;pointer-events:none}
.insp-pick-item span{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--edge);border-radius:10px;cursor:pointer;font-size:.92rem;font-weight:600;color:var(--soft)}
.insp-pick-item span svg{width:16px;height:16px;flex:none;border-radius:5px;border:1.5px solid var(--edge);color:transparent;padding:1px}
.insp-pick-item input:checked+span{border-color:var(--primary);background:var(--primary-soft);color:var(--ink)}
.insp-pick-item input:checked+span svg{background:var(--primary);border-color:var(--primary);color:#fff}
.insp-pick-item input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
/* ---------- notifications ---------- */
.notif{position:relative}
.notif-btn{position:relative}
.notif-count{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:.66rem;font-weight:800;display:grid;place-items:center;line-height:1;border:2px solid var(--card)}
.notif-count[hidden]{display:none}
.notif-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 24px));background:var(--card);border:1px solid var(--edge);border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,.18);z-index:60;overflow:hidden}
.notif-head{padding:12px 14px;border-bottom:1px solid var(--edge)}
.notif-list{list-style:none;margin:0;padding:6px;max-height:min(440px,70vh);overflow:auto}
.notif-list li a{display:flex;gap:10px;padding:9px 10px;border-radius:10px;color:var(--ink);text-decoration:none}
.notif-list li a:hover{background:var(--chip)}
.notif-list li.new a{background:var(--primary-soft)}
.notif-list li a>span:last-child{display:flex;flex-direction:column;min-width:0;gap:1px}
.notif-list b{font-size:.88rem;font-weight:700;line-height:1.35}
.notif-list small{color:var(--soft);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notif-list em{font-style:normal;color:var(--faint);font-size:.75rem}
.notif-empty{padding:18px 12px;color:var(--soft);font-size:.88rem;text-align:center}
.notif-ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--chip);font-size:.85rem;font-weight:800}
.notif-ic.k-approved{background:var(--ok-soft);color:var(--ok)}.notif-ic.k-declined{background:var(--danger-soft);color:var(--danger)}
.notif-ic.k-review{background:var(--warn-soft);color:var(--warn)}.notif-ic.k-opened,.notif-ic.k-booking{background:var(--primary-soft);color:var(--primary)}
.notif-toasts{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.notif-toast{pointer-events:auto;display:flex;gap:10px;align-items:center;max-width:340px;padding:10px 14px 10px 10px;background:var(--card);color:var(--ink);border:1px solid var(--edge);border-radius:14px;box-shadow:0 12px 34px rgba(15,23,42,.16);text-decoration:none;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s}
.notif-toast.in{opacity:1;transform:none}
.notif-toast span:last-child{display:flex;flex-direction:column;min-width:0}.notif-toast b{font-size:.88rem}.notif-toast small{color:var(--soft);font-size:.8rem}
@media (max-width:760px){.notif-toasts{left:12px;right:12px;bottom:84px}.notif-toast{max-width:none}}
/* ---------- customer link card (job page) ---------- */
.cl-card{border:1.5px solid color-mix(in srgb,var(--primary) 30%,var(--edge));display:grid;gap:12px}
.cl-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.cl-top h3{margin:0;display:flex;align-items:center;gap:8px}
.cl-track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;position:relative}
.cl-track li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;position:relative;min-width:0}
.cl-track li:not(:last-child)::after{content:"";position:absolute;top:9px;left:calc(50% + 12px);right:calc(-50% + 12px);height:2px;background:var(--edge)}
.cl-track li.done:not(:last-child)::after{background:var(--ok)}
.cl-track i{width:20px;height:20px;border-radius:50%;border:2px solid var(--edge);background:var(--card);display:grid;place-items:center;z-index:1}
.cl-track li.done i{background:var(--ok);border-color:var(--ok)}.cl-track li.done i::after{content:"✓";color:#fff;font-size:.7rem;font-weight:900;font-style:normal}
.cl-track li.wait i{border-color:var(--warn);background:var(--warn-soft)}.cl-track li.bad i{background:var(--danger);border-color:var(--danger)}.cl-track li.bad i::after{content:"✕";color:#fff;font-size:.65rem;font-weight:900;font-style:normal}
.cl-track span{display:flex;flex-direction:column;min-width:0}.cl-track b{font-size:.78rem}.cl-track small{font-size:.72rem;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-send{display:grid;gap:10px;margin:0}
.cl-kind{display:flex;flex-direction:column;gap:4px}.cl-kind span{font-size:.8rem;color:var(--soft);font-weight:600}
.cl-preview{margin:0;padding:10px 12px;border-radius:12px 12px 12px 4px;background:var(--chip);font-size:.84rem;line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.cl-warn{margin:0;display:flex;gap:6px;align-items:center;color:var(--warn);font-size:.85rem;font-weight:600}.cl-warn svg{width:16px;height:16px}
.cl-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cl-ch{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:12px;border:1px solid var(--edge);background:var(--card);color:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:transform .1s,border-color .15s}
.cl-ch:hover:not(:disabled){border-color:var(--c);transform:translateY(-1px)}.cl-ch:active:not(:disabled){transform:none}
.cl-ch:focus-visible{outline:2px solid var(--c);outline-offset:2px}
.cl-ch:disabled{opacity:.45;cursor:not-allowed}
.cl-dot{width:10px;height:10px;border-radius:50%;background:var(--c)}
.ch-viber{--c:#7360f2}.ch-sms{--c:#2f6fed}.ch-wa{--c:#25d366}.ch-mail{--c:#64748b}
.cl-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.cl-tools .cl-url{grid-column:1/-1}.cl-tools .btn{justify-content:center}
.cl-url{flex:1;min-width:0;font-size:.8rem;padding:7px 9px;color:var(--soft)}
.cl-qr{display:grid;justify-items:center;gap:8px;padding:12px;border-radius:12px;background:#fff;border:1px solid var(--edge);text-align:center}
.cl-qr-code{width:190px;height:190px}.cl-qr-code svg{width:100%;height:100%}.cl-qr small{color:#555}
.cl-jump{scroll-margin-top:80px}#client-link{scroll-margin-top:84px}
#client-link:target{animation:cl-flash 1.2s ease}
@keyframes cl-flash{0%{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 45%,transparent)}100%{box-shadow:var(--shadow)}}
.cl-qr[hidden]{display:none}
/* ---------- invoice editor ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ie{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.ie-main{display:grid;gap:18px;min-width:0}
.ie-card{padding:20px 22px}
.ie-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.ie-card-head h2{margin:0;display:flex;align-items:center;gap:10px;font-size:1.1rem}
.ie-step{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;font-size:.8rem;font-weight:800}
.ie-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.ie-field>span{font-size:.82rem;font-weight:600;color:var(--soft)}
.ie-field input,.ie-field select,.ie-field textarea{font-size:1rem;padding:11px 13px;width:100%}
.ie-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;margin-top:12px}
.ie-grid .span2{grid-column:1/-1}.ie-grid.two{margin-top:14px}
.ie-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:.9rem;color:var(--soft)}
.ie-switch input{appearance:none;width:38px;height:22px;border-radius:999px;background:var(--edge);position:relative;cursor:pointer;transition:background .15s;margin:0}
.ie-switch input::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ie-switch input:checked{background:var(--primary)}.ie-switch input:checked::after{left:19px}
.ie-switch input:checked+span{color:var(--ink)}
.ie:not(.is-company) .ie-company-only{display:none}.ie.is-company .ie-person-only{display:none}
/* lines */
.ie-lines-head,.ie-line{display:grid;grid-template-columns:22px minmax(0,1fr) 68px 92px 62px 96px 32px;gap:8px;align-items:start}
.ie-lines-head{padding:0 4px 8px;border-bottom:1px solid var(--edge);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:700}
.ie-lines-head span:nth-child(n+3):nth-child(-n+6){text-align:right}
.ie-lines{list-style:none;margin:0;padding:0}
.ie-line{padding:12px 4px;border-bottom:1px solid var(--edge);position:relative}
.ie-line.err .i-desc{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
.ie-n{padding-top:12px;font-weight:800;color:var(--faint);font-size:.85rem;text-align:center}
.ie-desc{position:relative;min-width:0}
.ie-desc textarea{width:100%;min-height:46px;resize:none;overflow:hidden;font-size:1rem;line-height:1.45;padding:11px 13px}
.ie-num{display:flex;flex-direction:column;min-width:0}
.ie-num>span{display:none}
.ie-num input{width:100%;text-align:right;font-size:1rem;padding:11px 8px;font-variant-numeric:tabular-nums}
.i-total{padding-top:12px;text-align:right;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ie-line .i-del{margin-top:6px;color:var(--faint)}.ie-line .i-del:hover{color:var(--danger)}
.ie-sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;list-style:none;margin:0;padding:4px;background:var(--card);border:1px solid var(--edge);border-radius:12px;box-shadow:0 14px 40px rgba(15,23,42,.16)}
.ie-sug button{display:flex;justify-content:space-between;gap:12px;width:100%;padding:9px 10px;border:0;background:transparent;border-radius:8px;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.ie-sug button:hover{background:var(--primary-soft)}.ie-sug b{white-space:nowrap;color:var(--soft)}
.ie-add-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 4px}
.ie-quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.chip-btn{border:1px solid var(--edge);background:var(--card);color:var(--ink);border-radius:999px;padding:5px 11px;font:inherit;font-size:.82rem;cursor:pointer}
.chip-btn:hover{border-color:var(--primary);background:var(--primary-soft)}
.ie-notes{margin-top:14px}
/* side panel */
.ie-sticky{position:sticky;top:84px;display:grid;gap:4px}
.ie-seg{display:grid;grid-template-columns:repeat(3,1fr);background:var(--chip);border-radius:12px;padding:4px;gap:4px}
.ie-seg input{position:absolute;opacity:0;pointer-events:none}
.ie-seg span{display:block;text-align:center;padding:9px 4px;border-radius:9px;font-weight:700;font-size:.82rem;cursor:pointer;color:var(--soft);line-height:1.2}
.ie-seg input:checked+span{background:var(--card);color:var(--ink);box-shadow:0 1px 4px rgba(15,23,42,.12)}
.ie-seg input:focus-visible+span{outline:2px solid var(--primary)}
.ie-sticky .ie-field input,.ie-sticky .ie-field select{font-size:.92rem;padding:9px 10px}
.ie-more{margin:10px 0 2px}.ie-more>summary{cursor:pointer;color:var(--primary);font-weight:600;font-size:.88rem}
.ie-more[open]{display:grid;gap:10px}.ie-more[open]>summary{margin-bottom:2px}
.ie-sum{margin:14px 0 12px;padding:14px 0 0;border-top:1px solid var(--edge);display:grid;gap:8px}
.ie-sum>div{display:flex;justify-content:space-between;gap:10px;margin:0}
.ie-sum dt{color:var(--soft)}.ie-sum dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.ie-total{padding-top:10px;border-top:1px dashed var(--edge);align-items:baseline}
.ie-total dt{color:var(--ink);font-weight:800}.ie-total dd{font-size:1.7rem;font-weight:800;letter-spacing:-.02em}
.ie-submit{width:100%;justify-content:center}
@media (max-width:1100px){.ie{grid-template-columns:1fr}.ie-sticky{position:static}}
@media (max-width:760px){
  .ie-card{padding:16px}
  .ie-grid{grid-template-columns:1fr}
  .ie-lines-head{display:none}
  .ie-line{grid-template-columns:repeat(3,minmax(0,1fr)) 36px;grid-template-areas:"n n n del" "desc desc desc desc" "qty price disc disc" "tot tot tot tot";row-gap:8px;padding:14px 0}
  .ie-n{grid-area:n;text-align:left;padding:0}.ie-n::before{content:"№ "}
  .ie-desc{grid-area:desc}.ie-line .i-del{grid-area:del;margin:0}
  .ie-num{grid-area:auto}.ie-line .ie-num:nth-of-type(2){grid-area:qty}.ie-line .ie-num:nth-of-type(3){grid-area:price}.ie-line .ie-disc{grid-area:disc}
  .ie-num>span{display:block;font-size:.72rem;color:var(--soft);font-weight:600;margin-bottom:3px}
  .i-total{grid-area:tot;padding:0;font-size:1.05rem}
}

.ie.is-company .ie-vehicle{grid-column:auto}
/* ---------- software / ECU card (account feature) ---------- */
.sw-card .card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.sw-profit{font-size:.9rem;color:var(--soft)}.sw-profit b{color:var(--ok);font-size:1.05rem}.sw-profit.neg b{color:var(--danger)}
.sw-files{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.sw-file-col{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px dashed var(--edge);border-radius:12px;min-width:0}
.sw-file-col>b{font-size:.82rem;color:var(--soft)}
.sw-file{display:flex;gap:8px;align-items:center;padding:7px 9px;border-radius:9px;background:var(--chip);color:var(--ink);text-decoration:none;min-width:0}
.sw-file:hover{background:var(--primary-soft)}.sw-file svg{width:16px;height:16px;flex:none;color:var(--primary)}
.sw-file span{display:flex;flex-direction:column;min-width:0;font-size:.86rem;font-weight:600}.sw-file span,.sw-file small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw-file small{color:var(--soft);font-weight:400;font-size:.75rem}
.sw-upload{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sw-upload select{width:auto}.sw-upload input[type=file]{flex:1;min-width:180px}
.sw-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sw-grid label,.sw-costs label:not(.check){display:flex;flex-direction:column;gap:4px;min-width:0}.sw-grid label>span,.sw-costs label>span{font-size:.8rem;color:var(--soft);font-weight:600}
.sw-grid .span2{grid-column:span 2}.sw-grid .span3{grid-column:span 3}
.mono-in{font-family:ui-monospace,Menlo,Consolas,monospace}
.sw-costs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid var(--edge)}
.sw-paid{padding-bottom:10px}
@media (max-width:760px){.sw-files{grid-template-columns:1fr}.sw-grid,.sw-costs{grid-template-columns:1fr 1fr}.sw-grid .span2,.sw-grid .span3{grid-column:1/-1}}
/* ---------- payment on the work order: never pushed out of the card ---------- */
.pay-box{display:grid;gap:12px;margin-top:12px;padding-top:14px;border-top:1px solid var(--edge)}
.pay-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pay-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.pay-form label{display:flex;flex-direction:column;gap:4px;min-width:0}.pay-form label>span{font-size:.78rem;color:var(--soft);font-weight:600}
.pay-form .pay-amount input{width:130px;text-align:right;font-variant-numeric:tabular-nums}.pay-form select{width:auto;min-width:130px}
.pay-form .btn{flex:0 0 auto}
.pay-docs{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:520px){.pay-form{display:grid;grid-template-columns:1fr 1fr}.pay-form .btn{grid-column:1/-1;justify-content:center}.pay-form .pay-amount input,.pay-form select{width:100%}}
/* ---------- quick intake (account feature "compact") ---------- */
.qk-card{display:grid;gap:16px;max-width:860px}
.qk-row{display:grid;gap:12px}
.qk-car{grid-template-columns:1.2fr 1fr 1fr 1fr}
.qk-row:not(.qk-car):not(.qk-money){grid-template-columns:1fr 1fr}
.qk-money{grid-template-columns:1fr 1fr .7fr}
.qk label,.qk-notes label{display:flex;flex-direction:column;gap:5px;min-width:0}
.qk label>span,.qk-label,.qk-notes label>span{font-size:.82rem;font-weight:600;color:var(--soft)}
.qk input,.qk textarea{font-size:1.02rem;padding:11px 13px}
.qk-plate input{font-size:1.15rem}
.qk-price input{font-size:1.2rem;font-weight:800;text-align:right}
.qk-block{display:grid;gap:8px}
.qk-chips{display:flex;flex-wrap:wrap;gap:8px}
.qk-chip input{position:absolute;opacity:0;pointer-events:none}
.qk-chip span{display:inline-flex;align-items:center;min-height:42px;padding:8px 14px;border:1.5px solid var(--edge);border-radius:999px;font-weight:700;font-size:.92rem;cursor:pointer;user-select:none;background:var(--card)}
.qk-chip input:checked+span{background:var(--primary);border-color:var(--primary);color:var(--primary-ink,#fff)}
.qk-chip input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.qk-more>summary{cursor:pointer;color:var(--primary);font-weight:600;font-size:.88rem;margin:4px 0}
.qk-more[open]>summary{margin-bottom:8px}
.qk-submit{justify-content:center}
.qk-notes{display:grid;gap:10px}
.job-items.no-mech th.w-mech,.job-items.no-mech tbody td:nth-child(7){display:none}
@media (max-width:760px){
  .qk-car{grid-template-columns:1fr 1fr}.qk-car .qk-plate{grid-column:1/-1}
  .qk-row:not(.qk-car):not(.qk-money){grid-template-columns:1fr}
  .qk-money{grid-template-columns:1fr 1fr}.qk-money .qk-price{grid-column:1/-1}
  .qk-submit{position:sticky;bottom:78px;z-index:5}
  /* work-order lines become readable cards on a phone */
  .job-items thead{display:none}
  .job-items,.job-items tbody,.job-items tfoot{display:block;width:100%}
  .job-items tbody tr{display:grid;grid-template-columns:12px repeat(3,minmax(0,1fr)) auto;grid-template-areas:"dot desc desc desc del" ". qty price disc tot" ". mech mech mech mech";gap:6px 8px;padding:10px 0;border-bottom:1px solid var(--edge);align-items:center}
  .job-items tbody td{padding:0!important;border:0}
  .job-items tbody td:nth-child(1){grid-area:dot}.job-items tbody td:nth-child(2){grid-area:desc}.job-items tbody td:nth-child(3){grid-area:qty}.job-items tbody td:nth-child(4){grid-area:price}
  .job-items tbody td:nth-child(5){grid-area:disc}.job-items tbody td:nth-child(6){grid-area:tot;text-align:right;font-weight:800}.job-items tbody td:nth-child(7){grid-area:mech}.job-items tbody td:nth-child(8){grid-area:del}
  .job-items tbody td input,.job-items tbody td select{width:100%!important;font-size:1rem;padding:9px 10px}
  .job-items tfoot tr{display:flex;justify-content:flex-end;gap:10px;padding-top:10px}.job-items tfoot td{padding:0!important;border:0}
  .job-items tfoot td:empty{display:none}
}
/* ---------- invite a colleague ---------- */
.ref-hero{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;align-items:center;background:linear-gradient(135deg,var(--primary-soft),var(--card) 60%)}
.ref-gift{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--primary);color:#fff}.ref-gift svg{width:24px;height:24px}
.ref-hero h2{font-size:1.45rem;margin:12px 0 14px;line-height:1.25}
.ref-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ref-steps li{display:flex;gap:12px;align-items:flex-start}.ref-steps b{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:1.5px solid var(--primary);color:var(--primary);font-size:.85rem}
.ref-steps span{line-height:1.45;padding-top:2px}
.ref-meter{display:grid;justify-items:center;text-align:center;gap:6px}
.ref-ring{--p:0;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ok) calc(var(--p)*1%),var(--chip) 0)}
.ref-ring b{width:118px;height:118px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-size:2.1rem;font-weight:800;color:var(--ok)}
.ref-meter span{font-weight:700}
.ref-share{display:grid;gap:12px}.ref-share h2{margin:0}
.ref-link{display:flex;gap:8px}.ref-link input{flex:1;min-width:0;font-size:1rem}
.ref-channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ref-channels .cl-ch{text-decoration:none}
.ref-preview>summary{cursor:pointer;color:var(--primary);font-weight:600;font-size:.88rem}.ref-preview p{background:var(--chip);border-radius:12px;padding:10px 12px;margin:8px 0 0;line-height:1.5}
.ref-list{list-style:none;margin:0;padding:0}
.ref-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--edge)}
.ref-list li:last-child{border-bottom:0}
.ref-name{display:flex;flex-direction:column;min-width:0}.ref-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-pct{color:var(--faint)}.ref-pct.on{color:var(--ok)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.pending-state{max-width:520px;margin:40px auto;text-align:center}.pending-ic{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--warn-soft);color:var(--warn)}.pending-ic svg{width:30px;height:30px}
@media (max-width:760px){.ref-hero{grid-template-columns:1fr}.ref-channels{grid-template-columns:1fr 1fr}.ref-link{flex-direction:column}}
.invited-banner{display:flex;gap:8px;align-items:center}.invited-banner svg{width:18px;height:18px;flex:none}
.approval-note{display:flex;gap:6px;align-items:flex-start;margin:0}.approval-note svg{width:15px;height:15px;flex:none;margin-top:2px}
/* ---------- landing page ---------- */
.lp-hero{position:relative;min-height:min(760px,92vh);display:flex;align-items:center;overflow:hidden;color:#fff;background:#0f1726}
.lp-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center}
.lp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,14,26,.88) 0%,rgba(9,14,26,.66) 38%,rgba(9,14,26,.15) 70%,rgba(9,14,26,0) 100%)}
.lp-hero-in{position:relative;z-index:1;padding-top:70px;padding-bottom:70px}
.lp-hero h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;letter-spacing:-.02em;max-width:640px;margin:16px 0 18px;color:#fff}
.lp-lead{font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.55;max-width:560px;color:rgba(255,255,255,.88);margin:0 0 26px}
.lp-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);font-weight:600;font-size:.88rem;backdrop-filter:blur(6px)}
.lp-pill svg{width:16px;height:16px}
.lp-cta{display:flex;gap:12px;flex-wrap:wrap}
.lp-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35)}.lp-ghost:hover{background:rgba(255,255,255,.2)}
.lp-trust{list-style:none;margin:26px 0 0;padding:0;display:flex;gap:10px 22px;flex-wrap:wrap;color:rgba(255,255,255,.85);font-size:.92rem}
.lp-trust li{display:flex;align-items:center;gap:7px}.lp-trust svg{width:16px;height:16px;color:#7fd3a6}
.lp-steps-band{background:var(--card);border-bottom:1px solid var(--edge)}
.lp-steps{list-style:none;margin:0;padding:28px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.lp-steps li{display:flex;gap:14px;align-items:flex-start}
.lp-steps b{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:1.1rem}
.lp-steps h3{margin:2px 0 4px;font-size:1.05rem}.lp-steps p{margin:0;color:var(--soft);line-height:1.5;font-size:.95rem}
.lp-split{padding:84px 0}.lp-split.alt{background:var(--card)}
.lp-split-in{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.lp-split-in.rev{grid-template-columns:.8fr 1fr}
.lp-copy h2{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;margin:10px 0 14px;letter-spacing:-.01em}
.lp-copy p{font-size:1.06rem;line-height:1.65;color:var(--soft);margin:0 0 18px}
.lp-copy .mk-eyebrow{display:inline-flex;align-items:center;gap:6px}.lp-copy .mk-eyebrow svg{width:16px;height:16px}
.lp-photo{position:relative;margin:0;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(15,23,42,.35)}
.lp-photo img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.lp-photo.tall img{aspect-ratio:4/5;max-height:620px}
.lp-float{position:absolute;left:18px;bottom:18px;display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.95);color:#14171d;border-radius:14px;padding:10px 14px;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.lp-float-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#2c7a5b;color:#fff}.lp-float-ic svg{width:18px;height:18px}
.lp-float span:last-child{display:flex;flex-direction:column}.lp-float small{color:#5f6672}
.lp-grid .mk-feature{transition:transform .15s}.lp-grid .mk-feature:hover{transform:translateY(-2px)}
.lp-invite{padding:84px 0;background:linear-gradient(135deg,#0f1f3d,#1d3f7a);color:#fff}
.lp-invite .lp-copy p{color:rgba(255,255,255,.82)}.lp-invite .mk-eyebrow{color:#ffcf8a}
.lp-invite-math{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:6px}
.lp-invite-math span{display:inline-flex;align-items:baseline;gap:6px;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.1);font-size:.9rem}
.lp-invite-math b{font-size:1.2rem}.lp-invite-math i{font-style:normal;opacity:.6}.lp-invite-math .win{background:#2c7a5b}
.lp-final{padding:90px 0;text-align:center;background:var(--card)}
.lp-final h2{font-size:clamp(1.7rem,3.4vw,2.6rem);margin:0 0 12px}.lp-final p{color:var(--soft);font-size:1.08rem;margin:0 auto 24px;max-width:560px}
@media (max-width:900px){
  .lp-hero{min-height:auto}.lp-hero::after{background:linear-gradient(180deg,rgba(9,14,26,.55),rgba(9,14,26,.88))}
  .lp-hero-img{object-position:75% center}.lp-hero-in{padding-top:60px;padding-bottom:56px}
  .lp-steps{grid-template-columns:1fr;gap:16px}
  .lp-split,.lp-invite{padding:56px 0}.lp-split-in,.lp-split-in.rev{grid-template-columns:1fr;gap:28px}
  .lp-split-in.rev .lp-photo{order:2}.lp-invite .lp-photo{order:-1}
  .lp-cta .btn{flex:1;justify-content:center}
}
/* landing headings win over the skin's compact app headings */
.mk-body .lp-copy h2,.mk-body .lp-final h2,.mk-body #features h2,.mk-body #pricing h2,.mk-body #faq h2{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-weight:600}
.mk-body .lp-final h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
.mk-body .lp-hero h1{font-family:Fraunces,Georgia,serif;font-weight:600}
.mk-body .lp-steps h3{font-size:1.08rem}
.mk-body .lp-invite h2{color:#fff}
/* Carbon is the only design: landing headings and the invite band follow it */
[data-skin="carbon"] .mk-body .lp-copy h2,[data-skin="carbon"] .mk-body .lp-final h2,[data-skin="carbon"] .mk-body #features h2,[data-skin="carbon"] .mk-body #pricing h2,[data-skin="carbon"] .mk-body #faq h2,[data-skin="carbon"] .mk-body .lp-hero h1{font-family:"Space Grotesk",system-ui,sans-serif;font-weight:700;letter-spacing:-.02em}
[data-skin="carbon"] .lp-invite{background:radial-gradient(900px 400px at 85% 50%,rgba(25,211,230,.16),transparent 60%),linear-gradient(135deg,#070b10,#0b1a24);border-top:1px solid rgba(25,211,230,.25);border-bottom:1px solid rgba(25,211,230,.25)}
[data-skin="carbon"] .lp-invite .mk-eyebrow{color:var(--primary)}
[data-skin="carbon"] .lp-invite-math .win{background:var(--primary);color:var(--primary-ink,#06121a)}
[data-skin="carbon"] .lp-steps b{background:var(--primary);color:var(--primary-ink,#06121a);box-shadow:0 0 18px rgba(25,211,230,.35)}
[data-skin="carbon"] .lp-hero h1{text-shadow:0 2px 30px rgba(0,0,0,.4)}
/* Upcoming appointments (calendar + dashboard) */
.up-list{display:flex;flex-direction:column;gap:6px}
.up-row{display:flex;align-items:center;gap:14px;padding:10px 12px;border:1px solid var(--edge);border-radius:10px;color:inherit;text-decoration:none}
.up-row:hover{border-color:var(--primary)}.up-row.today{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}
.up-when{display:flex;flex-direction:column;min-width:74px}.up-when b{font-size:1.05rem}.up-when small,.up-what small{color:var(--soft)}
.up-what{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.up-what small{flex-basis:100%}
.plate.sm{font-size:.8rem;padding:0 6px}
.d2-next-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin:10px 0 6px}
.d2-next time{display:flex;flex-direction:column;line-height:1.1}.d2-next time small{color:var(--soft);font-weight:500}
/* ---- Customer tracker (/s/<token> with the "tracker" feature) ---- */
.public-logo{height:52px;max-width:200px;object-fit:contain;background:#fff;padding:6px 10px;border-radius:10px;box-shadow:0 2px 12px rgba(0,0,0,.25)}
.tr{display:flex;flex-direction:column;gap:14px}
.tr-card{background:var(--card);border:1px solid var(--edge);border-radius:14px;padding:18px}
.tr-card h2{font-size:1.05rem;margin:0 0 12px;display:flex;align-items:center;gap:8px}.tr-card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin:14px 0 6px}
.tr-hero{position:relative;overflow:hidden;border-radius:18px;padding:22px 20px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--edge));
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--primary) 22%,transparent),transparent 60%),linear-gradient(160deg,color-mix(in srgb,var(--card) 92%,#fff 8%),var(--card))}
.tr-hero.st-ready{border-color:color-mix(in srgb,var(--ok) 55%,var(--edge));background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--ok) 26%,transparent),transparent 60%),var(--card)}
.tr-hero.st-waiting_parts{border-color:color-mix(in srgb,var(--warn) 45%,var(--edge))}
.tr-hero.st-cancelled{border-color:color-mix(in srgb,var(--danger) 45%,var(--edge))}
.tr-hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tr-live{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--primary)}
.tr-live i{width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 0 var(--primary);animation:tr-pulse 2s infinite}
@keyframes tr-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--primary) 60%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.tr-car{display:inline-flex;align-items:center;gap:8px;color:var(--soft);font-weight:600}
.tr-hi{margin:16px 0 4px;color:var(--soft)}
.tr-status{display:flex;gap:14px;align-items:flex-start}
.tr-status h1{font-size:1.65rem;line-height:1.15;margin:0 0 4px}.tr-status p{margin:0;color:var(--soft)}
.tr-hero>h1{font-size:1.5rem;margin:4px 0}.tr-hero>p{color:var(--soft)}
.tr-ic{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary)}
.tr-ic svg{width:26px;height:26px}.st-ready .tr-ic,.tr-ic.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.st-waiting_parts .tr-ic{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.st-in_progress .tr-ic svg{animation:tr-wrench 2.4s ease-in-out infinite;transform-origin:50% 50%}
@keyframes tr-wrench{0%,60%,100%{transform:rotate(0)}70%{transform:rotate(-18deg)}80%{transform:rotate(14deg)}90%{transform:rotate(-6deg)}}
.tr-steps{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.tr-steps:before,.tr-steps:after{content:"";position:absolute;top:15px;left:12.5%;height:3px;border-radius:3px;background:var(--edge);width:75%}
.tr-steps:after{background:linear-gradient(90deg,var(--primary),var(--ok));width:calc(25% * var(--p));transition:width .8s ease}
.tr-steps li{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;font-size:.8rem;color:var(--soft)}
.tr-steps i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;background:var(--card);border:2px solid var(--edge)}
.tr-steps li.done i{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.tr-steps li.now i{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 5px color-mix(in srgb,var(--primary) 18%,transparent)}
.st-ready .tr-steps li.now i,.st-delivered .tr-steps li.now i{background:var(--ok);border-color:var(--ok);color:#04140b}
.tr-steps li.now b{color:var(--ink)}.tr-steps small{color:var(--faint);font-size:.7rem}
.tr-eta{margin:16px 0 0;display:flex;align-items:center;gap:6px;color:var(--soft)}.tr-eta svg{width:16px;height:16px}
.tr-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--soft);font-weight:700}
.tr-amount{font-size:2.4rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:4px 0}
.tr-due{border-color:color-mix(in srgb,var(--ok) 45%,var(--edge));background:linear-gradient(135deg,color-mix(in srgb,var(--ok) 12%,transparent),transparent 70%),var(--card)}
.tr-due .tr-amount{color:var(--ok)}.tr-due.is-paid h2{margin:0}.tr-due-row{display:flex;align-items:center;gap:14px}
.tr-note{display:flex;gap:6px;align-items:flex-start;margin:6px 0 0;color:var(--soft);font-size:.9rem}.tr-note svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--primary)}
.tr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tr-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--chip)}
.tr-tick{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--edge);display:grid;place-items:center;font-size:.75rem;font-weight:800}
.tr-list li.done .tr-tick{background:var(--ok);border-color:var(--ok);color:#04140b}
.tr-list li.now .tr-tick{border-color:var(--primary);border-top-color:transparent;animation:tr-spin 1s linear infinite}
@keyframes tr-spin{to{transform:rotate(360deg)}}
.tr-request,.tr-done{margin:0 0 12px;padding:12px;border-radius:10px;background:var(--chip)}.tr-request small,.tr-done small{display:block;color:var(--soft);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.tr-done{margin:12px 0 0}.tr-done p{margin:0}
.tr-actions{display:flex;gap:10px;flex-wrap:wrap}.tr-actions .btn{flex:1 1 160px;justify-content:center}
.tr-hours{margin:0 0 12px;color:var(--ok);font-weight:600}.tr-hours.closed{color:var(--warn)}
.tr-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.tr-inline>span{display:flex;align-items:center;gap:8px}
.tr-contact{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.tr-contact small{display:block;color:var(--soft)}
.tr-updated{text-align:center;color:var(--faint);font-size:.78rem;margin:0}
.tr-stars-static{font-size:2rem;color:var(--warn);letter-spacing:4px;margin:6px 0}.tr-stars-static span{color:var(--edge)}
.stars.big label{font-size:2.6rem}.tr-review-form{margin-top:14px}
.tr-insp-sum{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.tr-confetti{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}
.tr-confetti i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;opacity:.9;animation:tr-fall linear forwards}
@keyframes tr-fall{to{transform:translateY(110vh) rotate(720deg);opacity:.2}}
.cl-offer{display:flex;flex-direction:column;gap:4px;margin:4px 0 12px;padding:10px 12px;border:1px dashed var(--edge);border-radius:10px}
.cl-offer label{display:flex;flex-direction:column;gap:4px}.cl-offer-row{display:flex;align-items:center;gap:8px}.cl-offer-row input{max-width:140px;font-weight:700}
@media (max-width:480px){.tr-status h1{font-size:1.35rem}.tr-amount{font-size:2rem}.tr-steps b{font-size:.72rem}}
@media (prefers-reduced-motion:reduce){.tr-live i,.st-in_progress .tr-ic svg,.tr-list li.now .tr-tick{animation:none}}
.tr .stars label{color:color-mix(in srgb,var(--soft) 55%,transparent);transition:color .15s,transform .15s}
.tr .stars label:hover,.tr .stars label:hover~label,.tr .stars input:checked~label{color:var(--warn)}.tr .stars label:hover{transform:scale(1.12)}
.notif-ic.k-pickup{background:var(--ok-soft);color:var(--ok)}
.tr-pick{margin:0 0 14px;padding:14px;border-radius:12px;background:color-mix(in srgb,var(--primary) 8%,var(--chip));border:1px solid color-mix(in srgb,var(--primary) 30%,var(--edge))}
.tr-pick.is-set{background:var(--chip);border-color:var(--edge)}
.tr-pick-q{display:block;font-weight:700;margin-bottom:10px}.tr-pick.is-set .tr-pick-q{font-weight:500;color:var(--soft);font-size:.85rem}
.tr-pick-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tr-pick-btn{padding:12px 10px;border-radius:10px;border:1px solid var(--edge);background:var(--card);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}
.tr-pick-btn:hover{border-color:var(--primary)}.tr-pick-btn.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.tr-picked{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:12px;border-radius:10px;background:var(--ok-soft);color:var(--ok);font-weight:700}.tr-picked svg{width:18px;height:18px;flex:none}
.cl-pickup{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:10px;background:var(--ok-soft);color:var(--ok);font-weight:700}.cl-pickup svg{width:18px;height:18px;flex:none}
/* tracker steps with a variable count (booked jobs have 5) */
.tr-steps{grid-template-columns:repeat(var(--n,4),1fr)}
.tr-steps:before,.tr-steps:after{left:calc(50% / var(--n,4));width:calc(100% - 100% / var(--n,4))}
.tr-steps:after{width:calc((100% / var(--n,4)) * var(--p))}
.tr-steps b{font-size:.74rem}
/* ---- booking "ticket" ---- */
.tk{position:relative;border-radius:20px;padding:22px 20px 18px;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 45%,var(--edge));
  background:radial-gradient(90% 70% at 100% 0%,color-mix(in srgb,var(--primary) 30%,transparent),transparent 60%),radial-gradient(70% 60% at 0% 100%,color-mix(in srgb,var(--ok) 14%,transparent),transparent 60%),linear-gradient(160deg,color-mix(in srgb,var(--card) 90%,#fff 10%),var(--card));
  box-shadow:0 20px 50px -20px color-mix(in srgb,var(--primary) 45%,transparent)}
.tk:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.07) 45%,transparent 60%);transform:translateX(-100%);animation:tk-shine 3.2s 0.6s ease-out 1 forwards;pointer-events:none}
@keyframes tk-shine{to{transform:translateX(100%)}}
.tk-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tk-h{font-size:1.7rem;line-height:1.15;margin:2px 0 16px;display:flex;align-items:center;gap:10px}
.tk-ok{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ok);color:#04140b;animation:tk-pop .6s cubic-bezier(.2,1.6,.4,1) .2s both}.tk-ok svg{width:18px;height:18px}
@keyframes tk-pop{from{transform:scale(0)}to{transform:scale(1)}}
.tk-body{display:flex;gap:16px;align-items:stretch}
.tk-date{flex:none;width:92px;border-radius:16px;overflow:hidden;text-align:center;background:var(--bg);border:1px solid var(--edge);display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.tk-mon{background:var(--primary);color:var(--primary-ink);font-weight:800;letter-spacing:.12em;font-size:.8rem;padding:5px 0}
.tk-date b{font-size:2.6rem;line-height:1.1;font-weight:800;padding-top:6px;font-variant-numeric:tabular-nums}
.tk-dow{font-size:.75rem;color:var(--soft);padding:0 4px 8px}
.tk-info{display:flex;flex-direction:column;gap:6px;min-width:0}
.tk-time{font-size:2.3rem;font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.tk-count{color:var(--primary);font-weight:700;font-size:.95rem;min-height:1.2em}
.tk-what,.tk-dur{display:flex;gap:6px;align-items:flex-start;color:var(--soft);font-size:.9rem}.tk-what svg,.tk-dur svg{width:16px;height:16px;flex:none;margin-top:2px}.tk-what span{color:var(--ink);font-weight:600}
.tk-tear{position:relative;margin:18px -20px 14px;border-top:2px dashed color-mix(in srgb,var(--soft) 35%,transparent)}
.tk-tear:before,.tk-tear:after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:var(--bg)}.tk-tear:before{left:-11px}.tk-tear:after{right:-11px}
.tk-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tk-foot small{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--soft)}.tk-foot b{display:block}.tk-foot span{display:block;color:var(--soft);font-size:.88rem}
.tk-price{text-align:right}.tk-price b{font-size:1.3rem;color:var(--ok)}
.tk-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tk-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 8px;border-radius:14px;border:1px solid var(--edge);background:var(--card);color:var(--ink);text-decoration:none;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;text-align:center;transition:border-color .15s,transform .15s}
.tk-act svg{width:22px;height:22px;color:var(--primary)}.tk-act:hover{border-color:var(--primary);transform:translateY(-1px)}
.tk-act.danger svg{color:var(--danger)}.tk-act.danger:hover{border-color:var(--danger)}
.tk-panel h2{display:flex;align-items:center;gap:8px}
.tk-move-form{display:flex;flex-direction:column;gap:12px}
.tk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}
.tk-slot{padding:10px 0;border-radius:10px;border:1px solid var(--edge);background:var(--chip);color:var(--ink);font:inherit;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums}
.tk-slot:hover{border-color:var(--primary)}.tk-slot.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.tk-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.tk-steps li{display:flex;gap:12px;position:relative;padding-bottom:14px}
.tk-steps li:not(:last-child):before{content:"";position:absolute;left:15px;top:32px;bottom:2px;width:2px;background:var(--edge)}
.tk-steps i{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;background:var(--chip);border:2px solid var(--edge);color:var(--soft)}
.tk-steps li.now i{background:var(--ok);border-color:var(--ok);color:#04140b}.tk-steps i svg{width:16px;height:16px}
.tk-steps b{display:block}.tk-steps small{color:var(--soft)}
.tk-save{display:flex;gap:8px;align-items:center;margin:4px 0 0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--ink);font-size:.88rem}.tk-save svg{width:16px;height:16px;color:var(--primary);flex:none}
.tk-car-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}.tk-car-form label{display:flex;flex-direction:column;gap:4px}.tk-car-form .tk-plate{grid-column:1/-1}.tk-car-form .btn{grid-column:1/-1}
.d2-book{white-space:nowrap}
.qk-book{border-color:color-mix(in srgb,var(--primary) 40%,var(--edge))}
@media (max-width:420px){.tk-h{font-size:1.4rem}.tk-time{font-size:2rem}.tk-date{width:80px}.tk-date b{font-size:2.2rem}}
@media (prefers-reduced-motion:reduce){.tk:before,.tk-ok{animation:none}}
.notif-ic.k-moved,.notif-ic.k-car{background:var(--primary-soft);color:var(--primary)}.notif-ic.k-cancelled{background:var(--danger-soft);color:var(--danger)}
.tk-parts{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.tk-parts legend{font-size:.85rem;color:var(--soft);margin-bottom:6px;padding:0}
.tk-part{position:relative}.tk-part input{position:absolute;opacity:0;pointer-events:none}
.tk-part span{display:block;text-align:center;padding:12px 8px;border-radius:10px;border:1px solid var(--edge);background:var(--chip);font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}
.tk-part input:checked+span{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.tk-part input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.tk-req{display:flex;gap:8px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:12px;background:var(--warn-soft);color:var(--warn);font-weight:600}.tk-req svg{width:18px;height:18px;flex:none;margin-top:2px}
.cl-movereq{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-weight:700}.cl-movereq svg{width:18px;height:18px;flex:none;margin-top:2px}.cl-movereq a{color:inherit;text-decoration:underline}
.kw-hp{display:grid;grid-template-columns:1fr 1fr;gap:6px}
/* ---- error pages (404 / 403 / 500) ---- */
.er-body{min-height:100vh;margin:0;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);
  background-image:radial-gradient(60% 50% at 50% 0%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 70%),linear-gradient(rgba(25,211,230,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(25,211,230,.035) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}
.er-wrap{flex:1;display:grid;place-items:center;padding:32px 16px}
.er-foot{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--faint);font-size:.82rem;padding:18px}.er-foot .logo{color:var(--ink)}
.er{max-width:520px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;margin:24px auto}
.er-num{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:10px;line-height:1}
.er-num span{font-size:clamp(5rem,22vw,8.5rem);font-weight:800;letter-spacing:-.04em;color:var(--primary);text-shadow:0 0 28px color-mix(in srgb,var(--primary) 55%,transparent),0 0 2px var(--primary)}
.er-tyre{width:clamp(4.6rem,20vw,7.6rem);height:clamp(4.6rem,20vw,7.6rem);animation:er-roll 6s linear infinite;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--primary) 45%,transparent))}
.er-tyre .t-out{fill:#14181f;stroke:var(--ink);stroke-width:7;stroke-dasharray:6 4}
.er-tyre .t-rim{fill:none;stroke:var(--primary);stroke-width:5}
.er-tyre .t-spokes path{stroke:var(--primary);stroke-width:4;stroke-linecap:round}
.er-tyre .t-hub{fill:var(--primary)}
@keyframes er-roll{to{transform:rotate(360deg)}}
.er h1{font-size:clamp(1.5rem,5vw,2rem);margin:6px 0 0}
.er-text{color:var(--soft);margin:0 0 14px;max-width:420px}
.er-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;width:100%}.er-actions .btn{flex:1 1 200px;justify-content:center}
.er-search{display:flex;align-items:center;gap:8px;width:100%;margin:4px 0 12px;padding:0 14px;border-radius:12px;border:1px solid var(--edge);background:var(--card)}
.er-search svg{width:18px;height:18px;color:var(--soft);flex:none}.er-search input{flex:1;border:0;background:transparent;padding:13px 0;color:var(--ink);font:inherit;outline:none;box-shadow:none}
.er-shop{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0 0 14px;padding:14px 18px;border-radius:14px;border:1px solid var(--edge);background:var(--card);width:100%}
.er-shop small{color:var(--soft)}.er-logo{height:48px;max-width:180px;object-fit:contain;background:#fff;padding:5px 9px;border-radius:9px;margin-bottom:4px}
.er-small{margin-top:14px;color:var(--faint);font-size:.85rem}
.app-main .er{margin:6vh auto}
@media (prefers-reduced-motion:reduce){.er-tyre{animation:none}}
/* ---- recurring costs ---- */
.rc{margin-bottom:16px}.rc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.rc-row{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;border:1px solid var(--edge);background:var(--chip);box-shadow:inset 3px 0 0 var(--ok)}
.rc-row.st-soon{box-shadow:inset 3px 0 0 var(--warn)}.rc-row.st-late{box-shadow:inset 3px 0 0 var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--edge))}
.rc-name,.rc-amount,.rc-status{display:flex;flex-direction:column;min-width:0}.rc-row small{color:var(--soft);font-size:.78rem}
.rc-amount{text-align:right}.rc-amount b{font-variant-numeric:tabular-nums}
.rc-pill{align-self:flex-start;font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--ok-soft);color:var(--ok)}
.st-soon .rc-pill{background:var(--warn-soft);color:var(--warn)}.st-late .rc-pill{background:var(--danger-soft);color:var(--danger)}
.rc-actions{display:flex;align-items:center;gap:4px;position:relative}
.rc-pay summary{list-style:none;cursor:pointer}.rc-pay summary::-webkit-details-marker{display:none}
.rc-pay[open] .rc-pay-form{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:260px;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;border:1px solid var(--edge);background:var(--card);box-shadow:var(--shadow)}
.rc-pay-form label{display:flex;flex-direction:column;gap:3px;font-size:.82rem}
@media (max-width:700px){.rc-row{grid-template-columns:1fr auto;}.rc-status{grid-column:1}.rc-actions{grid-column:2;grid-row:2;justify-content:flex-end}.rc-pay[open] .rc-pay-form{right:0;width:min(260px,80vw)}}
.pay-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pay-status .muted{font-size:.85rem}
.sw-mech{display:flex;flex-direction:column;gap:4px}.sw-mech-l{font-size:.82rem;color:var(--soft)}
.sw-mech-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.sw-mech-opt{position:relative}.sw-mech-opt input{position:absolute;opacity:0;pointer-events:none}
.sw-mech-opt span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:44px;padding:6px;border-radius:9px;border:1px solid var(--edge);background:var(--chip);font-weight:600;font-size:.88rem;cursor:pointer;text-align:center}
.sw-mech-opt small{font-weight:500;color:var(--soft);font-size:.74rem}
.sw-mech-opt input:checked+span{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.sw-mech-opt input:checked+span small{color:inherit;opacity:.8}
.sw-mech-opt input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.btn.is-busy{opacity:.6;cursor:progress}
.call-btn{background:var(--ok);border-color:var(--ok);color:#04140b;font-weight:700}.call-btn:hover{filter:brightness(1.08)}
.call-btn small{font-weight:600;opacity:.75;margin-left:2px;font-variant-numeric:tabular-nums}
@media (max-width:640px){.call-btn{order:-1;flex:1 1 100%;justify-content:center;padding:12px}}
.plate-add{cursor:pointer;border:1px dashed var(--primary);background:transparent;color:var(--primary);font:inherit;font-weight:700}
.arrive-btn{font-weight:700}.ar-plate input{font-size:1.4rem;text-align:center;letter-spacing:.08em}
@media (max-width:640px){.arrive-btn{order:-2;flex:1 1 100%;justify-content:center;padding:12px}}
/* ---- social links on customer pages ---- */
.soc h2{margin-bottom:4px}.soc .muted{margin:0 0 12px}
.soc-ic{display:grid;place-items:center;flex:none}.soc-ic svg{width:22px;height:22px}
.soc-fb{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;background:#1877f2;color:#fff;text-decoration:none;box-shadow:0 10px 30px -12px rgba(24,119,242,.7);transition:transform .15s,filter .15s}
.soc-fb:hover{transform:translateY(-1px);filter:brightness(1.06)}
.soc-fb .soc-ic{width:46px;height:46px;border-radius:50%;background:#fff;color:#1877f2}.soc-fb .soc-ic svg{width:28px;height:28px}
.soc-fb-t{display:flex;flex-direction:column;flex:1;min-width:0}.soc-fb-t b{font-size:1.08rem}.soc-fb-t small{opacity:.85}
.soc-go{font-size:1.4rem;font-weight:700}
.soc-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:10px}
.soc-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 10px;border-radius:12px;color:#fff;text-decoration:none;font-weight:700;transition:transform .15s,filter .15s}
.soc-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.soc-tiktok{background:#010101;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.soc-tiktok svg{filter:drop-shadow(1.5px 0 0 #25f4ee) drop-shadow(-1.5px 0 0 #fe2c55)}
.soc-youtube{background:#ff0000}.soc-instagram{background:linear-gradient(45deg,#f58529,#dd2a7b 50%,#8134af)}
.done-date{display:flex;flex-direction:column;gap:2px;margin:0 0 10px}.done-date label{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.done-date label span{font-weight:600}.done-date input{max-width:170px}.done-date small{font-size:.78rem}
.push-box{padding:10px 12px;border-bottom:1px solid var(--edge);background:var(--chip)}
.push-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.push-ic{font-size:1.1rem}.push-txt{flex:1;min-width:140px;font-size:.85rem;font-weight:600}
.push-hint{margin:8px 0 0;font-size:.8rem;color:var(--soft);line-height:1.4}
/* ---- report bill + workload calendar ---- */
.bill-list{list-style:none;margin:0;padding:0}.bill-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px dashed var(--edge)}
.bill-list li small{color:var(--soft);font-weight:500;margin-left:4px}.bill-list b{font-variant-numeric:tabular-nums;color:var(--danger)}
.bill-list .bill-in b{color:var(--ok)}.bill-list .bill-total{border-bottom:0;border-top:2px solid var(--edge);margin-top:4px;padding-top:12px;font-size:1.1rem}
.bill-list .bill-total b{color:var(--ok);font-size:1.25rem}.bill-list .bill-total.bad b{color:var(--danger)}
.wl-periods{margin:0 0 14px}.wl-kpis .wl-best b{color:var(--ok)}.wl-kpis .wl-hot b{color:var(--danger)}
.wl-legend{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--soft)}.wl-legend i{width:16px;height:12px;border-radius:3px;display:inline-block}
.wl-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.wl-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:8px 2px;border-radius:10px;text-decoration:none;color:var(--ink);border:1px solid transparent;min-height:70px}
.wl-day strong{font-size:1.1rem}.wl-day span{font-weight:700;font-variant-numeric:tabular-nums}.wl-day small{font-size:.62rem;opacity:.75}
.wl-day.sel{border-color:var(--ink);box-shadow:0 0 0 2px var(--primary)}.wl-day.na{opacity:.35;pointer-events:none}
.lv-0{background:var(--chip)}.lv-1{background:#123d5c}.lv-2{background:#1f6f6a}.lv-3{background:#8a7a1d}.lv-4{background:#a8571e}.lv-5{background:#a32a3a}
.wl-legend .lv-0{background:var(--chip)}
.wl-detail{margin-top:14px;padding:14px;border-radius:12px;background:var(--chip);display:flex;flex-direction:column;gap:3px}.wl-detail span{color:var(--soft);font-size:.85rem}.wl-detail strong{font-size:1.15rem}.wl-detail small{color:var(--soft)}
.wl-rank{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}.wl-rank li b{display:block}.wl-rank small{color:var(--soft)}
.wl-rank.quiet li::marker{color:var(--ok);font-weight:800}.wl-rank.busy li::marker{color:var(--danger);font-weight:800}
@media (max-width:520px){.wl-grid{gap:4px}.wl-day{min-height:58px;padding:6px 1px}.wl-day small{display:none}}
.stale{border-color:color-mix(in srgb,var(--danger) 40%,var(--edge));margin-bottom:16px}
.stale-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.stale-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;background:var(--chip)}
.stale-info{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink);min-width:0}.stale-info small{color:var(--soft)}
.stale-act{display:flex;gap:6px;align-items:center}
.booking-hit{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0;padding:12px 14px;border-radius:12px;background:var(--warn-soft);color:var(--warn);font-weight:700;border:1px solid color-mix(in srgb,var(--warn) 40%,transparent)}
.push-box .push-row{align-items:center}.push-main{flex:1;min-width:180px;display:flex;flex-direction:column;gap:2px}.push-main small{color:var(--soft);font-weight:500;line-height:1.35}.push-btns{display:flex;gap:6px;flex-wrap:wrap}
.push-promo{position:relative;margin:0 0 16px;padding:16px 18px;border-radius:14px;border:1px solid color-mix(in srgb,var(--primary) 45%,var(--edge));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 14%,transparent),transparent 70%),var(--card)}
.push-promo .push-ic{font-size:1.6rem}.push-promo .push-main b{font-size:1.02rem}.push-close{position:absolute;top:6px;right:8px;font-size:1.2rem}
.push-card .push-box{background:transparent;border:0;padding:0}
