:root{--bg:#0e1728;--side:#0b1322;--panel:#131e33;--panel2:#18243c;--hover:#172238;--press:#1e2b45;--line:#22304a;--line2:#314260;--line3:#475a7c;--text:#e6ebf5;--soft:#c3cce0;--haze:#a7b3cc;--muted:#8492ad;--lilac:#c9d8ff;--lilac2:#e0e8ff;--wash:#1b2947;--amber:#ffb86b;--amber2:#ffc98a;--ink:#1a1206;--ok:#8fe3b4;--warn:#ffd166;--bad:#ff8e8e;--glass:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.01) 40%,rgba(0,0,0,.06));--hl:inset 0 1px 0 rgba(255,255,255,.06);--shadow:0 10px 30px rgba(0,0,0,.35);--sans:Inter,system-ui,sans-serif;--disp:Jost,Inter,system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--lilac);text-decoration:none}a:hover{color:var(--lilac2)}h1,h2,h3{font-family:var(--disp);font-weight:500;margin:0;letter-spacing:-.01em}h1{font-size:1.75rem;line-height:1.15}h2{font-size:1.0625rem}h3{font-size:.95rem}button,input,select,textarea{font:inherit;color:inherit}::selection{background:#ffb86b59}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.shell{display:grid;grid-template-columns:224px 1fr;min-height:100%}.side{background:linear-gradient(180deg,#0c1527,var(--side));border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;font-family:var(--disp);font-size:1.25rem;letter-spacing:.02em}.brand .mark{width:26px;height:26px;border:2px solid var(--amber);position:relative;box-shadow:0 0 18px #ffb86b40}.brand .mark:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;background:linear-gradient(135deg,var(--amber),transparent 70%)}.shopname{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 8px 12px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;color:var(--soft);border-left:2px solid transparent;transition:background .15s var(--ease),color .15s}.nav a:hover{background:var(--hover);color:var(--text)}.nav a.active{background:linear-gradient(90deg,rgba(201,216,255,.12),transparent);color:var(--lilac2);border-left-color:var(--amber)}.nav a .k{margin-left:auto;font-size:.7rem;color:var(--muted);font-family:var(--mono)}.nav svg{width:16px;height:16px;opacity:.8}.side .me{margin-top:auto;padding:10px 8px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}.side .me b{display:block;color:var(--soft);font-weight:500}.main{padding:26px 30px 60px;min-width:0}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px}.brand{padding:4px 8px}.shopname{display:none}.nav{display:flex;flex-wrap:wrap}.nav a{padding:7px 9px;border-left:0;border-bottom:2px solid transparent}.nav a.active{border-bottom-color:var(--amber)}.nav a .k{display:none}.side .me{margin:0 0 0 auto;border:0;padding:0 8px}.main{padding:16px}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-head .sub{color:var(--muted);margin-top:4px;font-size:.85rem}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--glass),var(--panel);border:1px solid var(--line);box-shadow:var(--hl);padding:16px 18px;position:relative}.card.accent:before{content:"";position:absolute;left:-1px;top:-1px;width:14px;height:14px;border-top:2px solid var(--amber);border-left:2px solid var(--amber);pointer-events:none}.card h2{margin-bottom:10px}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}@media (max-width:1000px){.g4,.g3{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.g4,.g3,.g2{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.spacer{flex:1}.muted{color:var(--muted)}.soft{color:var(--soft)}.small{font-size:.8125rem}.mono{font-family:var(--mono);font-size:.85em}.right{text-align:right}.nowrap{white-space:nowrap}.lbl,.section-label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.stat{background:var(--glass),var(--panel);border:1px solid var(--line);box-shadow:var(--hl);padding:14px 16px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;background:radial-gradient(circle at center,#c9d8ff1a,#c9d8ff00 55%)}.stat.amber:after{background:radial-gradient(circle at center,#ffb86b24,#ffb86b00 55%)}.stat.ok:after{background:radial-gradient(circle at center,#8fe3b41f,#8fe3b400 55%)}.stat .val{font-family:var(--disp);font-size:1.75rem;line-height:1.1;margin-top:6px}.stat .sub{color:var(--muted);font-size:.78rem;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line2);background:linear-gradient(180deg,var(--panel2),var(--panel));color:var(--text);cursor:pointer;font-weight:500;box-shadow:var(--hl);transition:transform .12s var(--ease),background .15s,border-color .15s;white-space:nowrap}.btn:hover{border-color:var(--line3);background:linear-gradient(180deg,var(--hover),var(--panel2))}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(180deg,var(--amber2),var(--amber));color:var(--ink);border-color:var(--amber);box-shadow:0 0 0 1px #ffb86b33,0 6px 18px #ffb86b2e}.btn.primary:hover{background:linear-gradient(180deg,#ffd4a0,var(--amber2))}.btn.ok{background:linear-gradient(180deg,#a3ecc5,var(--ok));color:#0c1d14;border-color:var(--ok)}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--soft)}.btn.ghost:hover{background:var(--hover);color:var(--text)}.btn.danger{color:var(--bad);border-color:#ff8e8e59}.btn.danger:hover{background:#ff8e8e1a}.btn.sm{padding:5px 10px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field.grow{flex:1}.field .hint{font-size:.75rem;color:var(--muted)}input,select,textarea{background:#0c1424;border:1px solid var(--line2);padding:8px 10px;color:var(--text);outline:none;width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--lilac);box-shadow:0 0 0 3px #c9d8ff1f}input::placeholder,textarea::placeholder{color:#5c6a88}textarea{min-height:72px;resize:vertical}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}input[type=checkbox]{width:auto;accent-color:var(--amber)}.form{display:grid;gap:12px}.form .cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:560px){.form .cols{grid-template-columns:1fr}}.search{position:relative}.search input{padding-left:32px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--muted)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line2);font-weight:600}.table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr.link{cursor:pointer;transition:background .12s}.table tr.link:hover td{background:var(--hover)}.table .r{text-align:right;white-space:nowrap}.table .num{font-family:var(--mono);font-size:.85rem}.pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;letter-spacing:.04em;padding:3px 8px;border:1px solid var(--line2);background:#ffffff08;color:var(--soft);white-space:nowrap}.pill i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.pill.estimate,.pill.job-pending{color:var(--amber);border-color:#ffb86b66}.pill.in_progress{color:var(--lilac);border-color:#c9d8ff66}.pill.complete{color:var(--ok);border-color:#8fe3b466}.pill.invoiced{color:var(--warn);border-color:#ffd16666}.pill.paid,.pill.job-approved{color:var(--ok);border-color:#8fe3b480}.pill.void,.pill.job-declined{color:var(--bad);border-color:#ff8e8e66}.pill.job-pending i{animation:pulse 1.6s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start}@media (max-width:1100px){.board{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.board{grid-template-columns:1fr}}.col{background:#ffffff04;border:1px solid var(--line);min-height:200px;padding:10px;transition:background .15s,border-color .15s}.col.over{background:#c9d8ff0f;border-color:var(--lilac)}.col-head{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 10px;border-bottom:1px solid var(--line);margin-bottom:10px}.col-head .n{font-family:var(--mono);font-size:.8rem;color:var(--muted)}.col-head .sum{font-size:.78rem;color:var(--muted)}.kcard{display:block;background:var(--glass),var(--panel);border:1px solid var(--line);box-shadow:var(--hl);padding:10px 12px;margin-bottom:8px;cursor:grab;color:var(--text);position:relative;transition:transform .15s var(--ease),border-color .15s,box-shadow .15s}.kcard:hover{border-color:var(--line3);transform:translateY(-1px);box-shadow:var(--hl),0 8px 20px #0000004d}.kcard:active{cursor:grabbing}.kcard.dragging{opacity:.4}.kcard .top{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--muted)}.kcard .veh{font-weight:500;margin:4px 0 2px}.kcard .cust{color:var(--soft);font-size:.85rem}.kcard .bot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:.8rem}.kcard .amt{font-family:var(--disp);font-size:1rem}.kcard .flag{position:absolute;right:0;top:0;width:0;height:0;border-style:solid;border-width:0 14px 14px 0;border-color:transparent var(--amber) transparent transparent}.kcard .tech{font-size:.72rem;color:var(--muted)}.ro-head{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}@media (max-width:1000px){.ro-head{grid-template-columns:1fr}}.ro-head .card{padding:12px 16px}.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:.85rem}.kv .k{color:var(--muted)}.job{border:1px solid var(--line);background:var(--glass),var(--panel);box-shadow:var(--hl);margin-bottom:12px;position:relative}.job:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line2)}.job.approved:before{background:var(--ok)}.job.declined:before{background:var(--bad)}.job.pending:before{background:var(--amber)}.job.declined .job-body{opacity:.55}.job-head{display:flex;gap:12px;align-items:center;padding:10px 14px 10px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.job-head h3{font-size:1rem;flex:1;min-width:140px}.job-head .amt{font-family:var(--disp);font-size:1.1rem}.job-desc{padding:8px 16px 0;color:var(--soft);font-size:.85rem;white-space:pre-line}.lines{width:100%;border-collapse:collapse;font-size:.85rem}.lines td{padding:6px 8px;border-top:1px solid var(--line)}.lines td:first-child{padding-left:16px}.lines td.r{text-align:right;white-space:nowrap}.lines .kind{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:inline-block;min-width:44px}.lines tr.edit td{background:#c9d8ff0a}.lines input,.lines select{padding:5px 8px;font-size:.85rem}.lines .pn{color:var(--muted);font-family:var(--mono);font-size:.78rem;margin-left:6px}.job-foot{display:flex;gap:6px;padding:8px 10px 10px 16px;flex-wrap:wrap;border-top:1px solid var(--line)}.totals{font-size:.9rem}.totals div{display:flex;justify-content:space-between;padding:3px 0;color:var(--soft)}.totals .grand{font-family:var(--disp);font-size:1.35rem;color:var(--text);border-top:1px solid var(--line2);margin-top:6px;padding-top:8px}.totals .due{color:var(--amber)}.timeline{font-size:.8rem;color:var(--muted)}.timeline div{padding:4px 0;border-bottom:1px dashed var(--line)}.timeline b{color:var(--soft);font-weight:500}.steps{display:flex;gap:0;margin:0 0 18px}.steps div{flex:1;text-align:center;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 4px;border-bottom:2px solid var(--line);position:relative}.steps div.done{color:var(--soft);border-color:var(--line3)}.steps div.now{color:var(--amber);border-color:var(--amber)}.steps div.now:after{content:"";position:absolute;left:50%;bottom:-5px;width:8px;height:8px;margin-left:-4px;background:var(--amber);border-radius:50%;box-shadow:0 0 10px var(--amber)}.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line2)}.empty .t{font-family:var(--disp);font-size:1.1rem;color:var(--soft)}.empty .s{margin-top:6px;font-size:.85rem}.spinner{width:22px;height:22px;border:2px solid var(--line2);border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#050912b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto;animation:fade .15s}.modal{background:var(--glass),var(--panel);border:1px solid var(--line2);box-shadow:var(--shadow),var(--hl);width:100%;max-width:520px;animation:rise .2s var(--ease)}.modal.wide{max-width:760px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-head .x{background:none;border:0;color:var(--muted);font-size:1.4rem;cursor:pointer;line-height:1}.modal-head .x:hover{color:var(--text)}.modal-body{padding:18px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:var(--panel2);border:1px solid var(--line3);border-left:3px solid var(--ok);padding:10px 14px;box-shadow:var(--shadow);animation:rise .2s var(--ease);max-width:360px}.toast.bad{border-left-color:var(--bad)}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(900px 500px at 70% -10%,#1b2947,transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(255,184,107,.08),transparent 60%),var(--bg)}.auth .card{width:100%;max-width:400px;padding:26px 28px}.auth .brand{padding:0 0 18px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;color:var(--muted);cursor:pointer;margin-bottom:-1px}.tabs button.on{color:var(--text);border-bottom-color:var(--amber)}.err{color:var(--bad);font-size:.85rem;padding:8px 10px;border:1px solid rgba(255,142,142,.3);background:#ff8e8e0f}.list-item{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.list-item:last-child{border-bottom:0}.dropdown{position:relative}.dropdown .menu{position:absolute;top:100%;left:0;z-index:20;background:var(--panel2);border:1px solid var(--line2);box-shadow:var(--shadow);min-width:260px;max-height:300px;overflow:auto}.dropdown .menu div{padding:8px 12px;cursor:pointer}.dropdown .menu div:hover{background:var(--hover)}.bar{height:6px;background:var(--line);position:relative}.bar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--lilac),var(--amber))}.chart{display:flex;align-items:flex-end;gap:3px;height:120px;border-bottom:1px solid var(--line2);padding-bottom:1px}.chart div{flex:1;background:linear-gradient(180deg,var(--lilac),rgba(201,216,255,.3));min-height:1px;position:relative}.chart div:hover{background:var(--amber)}.chart div span{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--panel2);border:1px solid var(--line2);padding:3px 6px;font-size:.72rem;white-space:nowrap;z-index:5}.chart div:hover span{display:block}.kbd{font-family:var(--mono);font-size:.72rem;border:1px solid var(--line2);padding:1px 5px;color:var(--muted)}.print-link{color:var(--muted);font-size:.8rem}.vtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.vtile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px 10px 14px;background:#0c1424;border:1px solid var(--line2);cursor:pointer;position:relative;transition:border-color .15s,background .15s}.vtile:hover{border-color:var(--line3);background:var(--hover)}.vtile:focus-visible{outline:none;border-color:var(--lilac);box-shadow:0 0 0 3px #c9d8ff1f}.vtile.on{border-color:var(--amber);background:#ffb86b0f}.vtile.on:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;background:var(--amber)}.vtile .vt-name{font-weight:500}.vtile .vt-meta{font-size:.8rem;color:var(--haze)}.vtile .vt-vin{font-size:.7rem;color:var(--muted)}.concerns-in{display:grid;gap:6px}.concern-row{display:flex;align-items:center;gap:8px}.cn{flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font:600 .72rem var(--mono);color:var(--amber);border:1px solid var(--line2)}.concern-row .x{flex:none;background:none;border:1px solid transparent;color:var(--muted);width:30px;height:34px;cursor:pointer;font-size:1.1rem}.concern-row .x:hover{color:var(--text);border-color:var(--line2)}.chip{background:none;border:1px dashed var(--line2);color:var(--haze);padding:3px 8px;font-size:.78rem;cursor:pointer}.chip:hover{border-style:solid;color:var(--text);border-color:var(--line3)}.concern-list{list-style:none;margin:0;padding:0}.concern-list li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}.concern-list li:last-child{border-bottom:0}.concern-view{flex:1;min-width:0}.concern-view.link{cursor:pointer}.concern-view.link:hover{color:var(--lilac2)}.concern-view .finding{font-size:.85rem;color:var(--haze);margin-top:2px;white-space:pre-line;border-left:2px solid var(--line2);padding-left:8px}.integ{padding:10px 0;border-bottom:1px solid var(--line)}.integ:last-child{border-bottom:0;padding-bottom:0}.integ-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px}.recall-flag{margin-top:6px;display:inline-flex;align-items:center;gap:6px;background:#ffb86b14;border:1px solid rgba(255,184,107,.4);color:var(--amber);font-size:.78rem;font-weight:600;padding:3px 8px;cursor:pointer}.recall-flag:before{content:"";width:6px;height:6px;background:var(--amber)}.recall-flag:hover{background:#ffb86b24}.recalls{display:grid;gap:10px;max-height:60vh;overflow:auto}.recall{border:1px solid var(--line2);padding:10px 12px}.recall p{margin:6px 0 0;color:var(--soft)}.photo-btns{display:flex;gap:8px;margin:8px 0 4px}.photo-btns.compact{margin:6px 0 2px}.pbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;background:var(--wash);border:1px solid var(--line3);color:var(--text);font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.pbtn svg{width:18px;height:18px}.pbtn.ghost{background:none;border-color:var(--line2);color:var(--soft)}.pbtn:active{transform:scale(.97)}.photo-btns.compact .pbtn{min-height:36px;padding:0 12px;font-size:.85rem}.thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.thumb{position:relative;width:84px;height:64px;padding:0;border:1px solid var(--line2);background:#0c1424;cursor:pointer;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb.up img{opacity:.55}.thumb .bar{position:absolute;left:4px;right:4px;bottom:4px;height:4px;background:#00000080}.thumb .bar i{display:block;height:100%;background:var(--amber);transition:width .2s}.thumb .fail{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:4px;background:#280a0e99}.thumb .fail button{background:var(--panel2);border:1px solid var(--bad);color:var(--bad);font-size:.72rem;padding:3px 6px;cursor:pointer}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#050912eb;display:flex;align-items:center;justify-content:center;padding:16px 16px 72px}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:var(--shadow)}.lb-bar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.clockchip{font-size:.72rem;color:var(--haze);border:1px solid var(--line2);padding:2px 7px;white-space:nowrap}.clockchip.live{color:var(--ok);border-color:#8fe3b473}.insp-n{font-size:.72rem;font-weight:600;padding:2px 7px;border:1px solid currentColor}.insp-n.bad{color:var(--bad)}.insp-n.watch{color:var(--amber)}.insp-row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:8px 0 8px 10px;border-left:3px solid var(--line2);margin:6px 0}.insp-row.bad{border-left-color:var(--bad)}.insp-row.watch{border-left-color:var(--amber)}.insp-row-main{flex:1;min-width:0}.onclock{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.oc{border:1px solid var(--line2);padding:10px 12px;border-left:3px solid var(--line2)}.oc.on{border-left-color:var(--lilac)}.oc.job{border-left-color:var(--ok)}.oc-name{font-weight:500;margin-bottom:2px}.oc-t{color:var(--ok);font-size:1rem;margin-top:2px}.table-wrap{overflow-x:auto}.warn-row td{background:#ffd1660f}.ok-t{color:var(--ok)}@media (max-width:640px){input,select,textarea{font-size:16px}}.tech{min-height:100vh;min-height:100dvh;background:var(--bg);-webkit-tap-highlight-color:transparent}.t-top{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:#0b1322f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand.sm{padding:0;font-size:1rem;gap:8px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand.sm .mark{width:18px;height:18px;flex:none}.brand.sm .mark:after{top:3px;right:3px;bottom:3px;left:3px}.t-clockpill{flex:none;font-size:.75rem;font-weight:600;padding:5px 9px;border:1px solid var(--line2);color:var(--muted);font-variant-numeric:tabular-nums}.t-clockpill.on{color:var(--lilac);border-color:#c9d8ff66}.t-clockpill.job{color:var(--ok);border-color:#8fe3b480}.t-main{max-width:640px;margin:0 auto;padding:12px 12px calc(88px + env(safe-area-inset-bottom))}.t-main input,.t-main textarea,.t-main select{font-size:16px}.t-tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#0b1322f7;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.t-tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;color:var(--muted);font-size:.7rem;font-weight:500}.t-tabs a svg{width:22px;height:22px}.t-tabs a.active{color:var(--amber)}.t-card{display:block;background:var(--glass),var(--panel);border:1px solid var(--line);padding:14px;margin-bottom:10px;color:inherit}a.t-card:active{background:var(--hover)}.t-h{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-family:var(--sans);font-weight:600;margin:18px 2px 8px}.t-lbl{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.t-big{font-family:var(--disp);font-size:2rem;line-height:1.1;font-variant-numeric:tabular-nums}.t-sub{color:var(--haze);font-size:.85rem}.t-row{display:flex;gap:8px;align-items:center}.t-row.between{justify-content:space-between}.t-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border:1px solid var(--line3);background:var(--panel2);color:var(--text);font-weight:600;font-size:1rem;cursor:pointer;transition:transform .1s var(--ease)}.t-btn:active:not(:disabled){transform:scale(.96)}.t-btn:disabled{opacity:.4}.t-btn.sm{min-height:44px;padding:0 16px;font-size:.92rem}.t-btn.wide{width:100%;margin:14px 0}.t-btn.in,.t-btn.go{background:var(--amber);border-color:var(--amber);color:var(--ink)}.t-btn.out{background:none;border-color:var(--line3)}.t-btn.stop{background:#ff8e8e1f;border-color:#ff8e8e99;color:var(--bad)}.t-btn.ghost{background:none;border-color:transparent;color:var(--soft)}.t-clock{border-left:3px solid var(--line2)}.t-clock.on{border-left-color:var(--lilac)}.t-clock-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.t-running{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.t-pulse{flex:none;width:10px;height:10px;background:var(--ok);animation:tpulse 1.6s ease-in-out infinite}@keyframes tpulse{50%{opacity:.35}}.t-running-txt{flex:1;min-width:0;display:flex;flex-direction:column;color:var(--text)}.t-running-txt b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-running-txt span{color:var(--haze);font-size:.8rem}.t-timer{font:500 1.05rem var(--mono);color:var(--ok);font-variant-numeric:tabular-nums}.t-timer.sm{font-size:.85rem}.t-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line2);margin:4px 0 12px}.t-seg button{min-height:44px;background:none;border:0;color:var(--muted);font-weight:500;cursor:pointer}.t-seg button+button{border-left:1px solid var(--line2)}.t-seg button.on{background:var(--wash);color:var(--text);box-shadow:inset 0 -2px 0 var(--amber)}.t-empty{color:var(--muted);text-align:center;padding:30px 10px}.t-ro{padding:0}.t-ro>*:not(.t-ro-head){margin-left:14px;margin-right:14px}.t-ro>*:last-child{margin-bottom:12px}.t-ro-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px;color:var(--text)}.t-ro-head:active{background:var(--hover)}.t-ro-veh{font-family:var(--disp);font-size:1.2rem;font-weight:500}.t-ro-veh.big{font-size:1.45rem}.t-chev{color:var(--muted);font-size:1.6rem;line-height:1}.t-vin{font-size:.78rem;color:var(--muted);margin-top:2px;word-break:break-all}.t-concerns{margin:0 0 8px;padding-left:18px;color:var(--soft);font-size:.9rem}.t-insp{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line3);color:var(--lilac);font-weight:500;margin-bottom:8px;min-height:44px}.t-insp.done{border-style:solid;color:var(--ok);border-color:#8fe3b466}.t-insp-n{display:flex;gap:4px}.t-insp-n b{font-size:.75rem;padding:1px 6px;border:1px solid currentColor}.t-insp-n .bad{color:var(--bad)}.t-insp-n .watch{color:var(--amber)}.t-meter{flex:1;height:4px;background:var(--line);min-width:40px}.t-meter i{display:block;height:100%;background:var(--amber)}.t-job{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.t-job:first-child{border-top:0}.t-job.running .t-job-txt b{color:var(--ok)}.t-job-txt{flex:1;min-width:0;display:flex;flex-direction:column}.t-job-txt span{color:var(--haze);font-size:.8rem}.t-back{display:inline-flex;align-items:center;min-height:40px;color:var(--soft);margin-bottom:4px}.t-concern{padding:8px 0;border-top:1px solid var(--line)}.t-concern:first-child{border-top:0;padding-top:0}.t-concern-q{display:flex;gap:8px;align-items:flex-start}.t-finding{display:block;width:100%;text-align:left;margin:6px 0 0 30px;width:calc(100% - 30px);background:none;border:0;border-left:2px solid var(--line3);padding:4px 10px;color:var(--soft);white-space:pre-line;cursor:pointer;font-size:.9rem}.t-addfind{display:inline-flex;align-items:center;min-height:40px;background:none;border:0;color:var(--lilac);font-weight:500;cursor:pointer;padding:0;margin:4px 0 0 30px}.t-item .t-addfind{margin-left:0}.t-finding-edit{margin:6px 0 0 30px}.t-finding-edit textarea{min-height:90px;margin-bottom:6px}.t-insp-big{display:flex;justify-content:space-between;align-items:center;gap:10px;border-left:3px solid var(--amber)}.t-insp-head{position:sticky;top:calc(53px + env(safe-area-inset-top));z-index:20;display:flex;align-items:center;gap:10px;background:var(--bg);padding:8px 0;margin-top:-4px}.t-progress{flex:1;display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--haze);font-variant-numeric:tabular-nums}.t-note{border:1px solid rgba(143,227,180,.35);color:var(--ok);padding:8px 12px;font-size:.88rem;margin-bottom:10px}.t-item{border-left:3px solid var(--line2)}.t-item.good{border-left-color:var(--ok)}.t-item.watch{border-left-color:var(--amber)}.t-item.bad{border-left-color:var(--bad)}.t-item-label{font-weight:500;margin-bottom:10px;font-size:1.02rem}.t-rate{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.t-rate button{min-height:50px;background:#0c1424;border:1px solid var(--line2);color:var(--soft);font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,transform .1s}.t-rate button:active:not(:disabled){transform:scale(.96)}.t-rate button:disabled{cursor:default}.t-rate .r-good.on{background:#8fe3b429;border-color:var(--ok);color:var(--ok)}.t-rate .r-watch.on{background:#ffb86b29;border-color:var(--amber);color:var(--amber)}.t-rate .r-bad.on{background:#ff8e8e29;border-color:var(--bad);color:var(--bad)}.t-value{margin-top:8px}.t-notes{margin-top:8px;min-height:70px}.t-note-ro{margin-top:8px;color:var(--soft);font-size:.9rem}.t-jobmade{margin-top:8px;color:var(--ok);font-size:.88rem;font-weight:500}.t-additem{display:flex;gap:6px;align-items:center}.t-start h2{margin-bottom:6px}.t-entry{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:.9rem}.shell{padding-top:env(safe-area-inset-top)}.in-tech .toasts{bottom:calc(70px + env(safe-area-inset-bottom));left:12px;right:12px;align-items:stretch}.t-locnote{margin-top:10px;font-size:.75rem;color:var(--muted)}.where{display:inline-block;font-size:.72rem;padding:1px 6px;border:1px solid var(--line2);color:var(--haze);white-space:nowrap}.where.ok{color:var(--ok);border-color:#8fe3b473}.where.away{color:var(--warn);border-color:#ffd16680}.where.none{color:var(--muted);border-style:dashed}.where-cell{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
