:root{--bg:#F6F3EF;--card:#fff;--ink:#1C1410;--mut:#6B5E55;--line:#E7DFD7;--pri:#C2410C;--pri2:#9A3412;--dark:#1C1410;--open:#2563EB;--prog:#D97706;--done:#15803D;--red:#B91C1C;--r:14px;--safe:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;min-height:100vh;overflow-x:hidden}
body.noscroll{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
svg:not(.leaflet-container svg){width:20px;height:20px;fill:currentColor;flex:none}
:focus-visible{outline:3px solid #FB923C;outline-offset:2px}
.app{max-width:640px;margin:0 auto;padding-bottom:110px}
.boot{display:grid;place-items:center;height:80vh}.boot img{border-radius:22px}
.muted{color:var(--mut)}.center{text-align:center}.small{font-size:13px}.err{color:var(--red);min-height:1.2em;margin:6px 0;font-weight:600}
.banner{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:8px;padding:calc(8px + var(--safe)) 14px 8px;font-weight:700;font-size:15px;text-align:center}
.banner.off{background:#3F3F46;color:#fff}.banner.sync{background:#FEF3C7;color:#78350F}.banner.ok{background:#DCFCE7;color:#14532D}
.banner .cnt{background:rgba(255,255,255,.18);padding:2px 8px;border-radius:99px}.banner.sync .cnt{background:rgba(0,0,0,.08)}
.banner .dot{width:10px;height:10px;border-radius:50%;background:#F87171}
.spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp 0.8s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.top{background:var(--dark);color:#fff;padding:calc(12px + var(--safe)) 14px 12px;position:sticky;top:0;z-index:20}
body.has-banner .top{top:40px;padding-top:12px}
.brandrow{display:flex;align-items:center;gap:10px}.brandrow img{border-radius:9px}
.tt{flex:1;min-width:0}.tt h1{margin:0;font-size:20px;line-height:1.2}.brand-sm{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#FDBA74;font-weight:700}
.clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iconbtn{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:12px;border:0;background:rgba(255,255,255,.1);color:inherit;text-decoration:none;font-size:18px}
.sheet .iconbtn{background:#F1ECE6}
.lang{display:inline-flex;background:rgba(255,255,255,.12);border-radius:10px;padding:3px}
.lang button{border:0;background:none;color:inherit;font-weight:800;font-size:14px;padding:8px 10px;border-radius:8px;min-width:40px}
.lang button.on{background:var(--pri);color:#fff}
.panel .lang,.login .lang{background:#EFE8E1}.login .lang{color:var(--ink)}
.searchbox{display:flex;align-items:center;gap:8px;background:#fff;color:var(--ink);border-radius:12px;padding:0 12px;margin-top:12px;height:50px}
.searchbox svg{color:var(--mut)}.searchbox input{border:0;outline:0;flex:1;min-width:0;height:100%;background:none;font-size:17px}
.searchbox.in-sheet{border:2px solid var(--line);margin:0 0 6px}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}
.tab{min-width:0;border:0;border-radius:10px;padding:7px 2px 8px;background:rgba(255,255,255,.1);color:#fff;font-weight:700;font-size:14px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column-reverse;align-items:center;gap:3px}
.tab .n{font-size:16px;font-weight:800;background:rgba(255,255,255,.18);border-radius:99px;padding:0 9px;min-width:30px}
.tab.on{background:#fff;color:var(--ink)}.tab.on .n{background:var(--pri);color:#fff}
.list{padding:12px}
.card{display:block;background:var(--card);border-radius:var(--r);padding:14px 14px 12px;margin-bottom:10px;text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.06);border-left:6px solid var(--open)}
.card.s-progress{border-left-color:var(--prog)}.card.s-done{border-left-color:var(--done);opacity:.92}
.row1{display:flex;align-items:center;gap:8px}.num{color:var(--mut);font-weight:700;font-size:14px}
.pill{font-size:13px;font-weight:800;padding:3px 10px;border-radius:99px;color:#fff;background:var(--open)}.p-progress{background:var(--prog)}.p-done{background:var(--done)}
.pend{width:10px;height:10px;border-radius:50%;background:#F59E0B;margin-left:auto;box-shadow:0 0 0 3px #FEF3C7}
.cust{font-size:19px;font-weight:800;margin-top:6px}
.addr{display:flex;gap:6px;color:var(--mut);margin-top:2px}.addr svg{margin-top:2px;width:18px;height:18px}
.prob{margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:14px;color:var(--mut)}.meta span{display:inline-flex;align-items:center;gap:4px}.meta svg{width:16px;height:16px}
.empty{text-align:center;padding:60px 20px;color:var(--mut)}.empty svg{width:56px;height:56px;color:#D6C8BC}.empty .big{font-size:19px;font-weight:700;color:var(--ink);margin:10px 0 4px}
.fab{position:fixed;right:max(16px,calc(50% - 304px));bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:8px;background:var(--pri);color:#fff;text-decoration:none;font-weight:800;font-size:18px;padding:16px 22px;border-radius:99px;box-shadow:0 8px 22px rgba(194,65,12,.4);z-index:15}
.fab svg{width:24px;height:24px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 18px;border-radius:12px;border:2px solid var(--line);background:#fff;font-weight:800;text-decoration:none;font-size:17px}
.btn.sm{min-height:40px;padding:0 12px;font-size:15px}
.btn.ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}
.btn.primary{background:var(--pri);border-color:var(--pri);color:#fff}.btn.primary:active{background:var(--pri2)}
.btn.danger{color:var(--red);border-color:#FECACA;background:#fff}.btn.ghost-danger{color:var(--red);border-color:#FECACA}
.btn.wide{display:flex;width:100%;margin-top:10px}.btn.big{min-height:58px;font-size:19px}
.btn.act{background:#FFF7ED;border-color:#FED7AA;color:var(--pri2);min-width:96px}
.detail{padding:12px}
.segs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#EAE3DC;border-radius:14px;padding:5px}
.seg{border:0;border-radius:10px;min-height:52px;font-weight:800;font-size:16px;background:none;color:var(--mut)}
.seg.on{color:#fff;background:var(--open)}.seg.s-progress.on{background:var(--prog)}.seg.s-done.on{background:var(--done)}
.panel{background:var(--card);border-radius:var(--r);padding:6px 14px 14px;margin-top:10px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.panel.parts{padding-top:4px}.row-pad{display:flex;align-items:center;gap:12px;padding:12px 14px}
.line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.line:last-child{border-bottom:0}.line.col{display:block}.line.two{display:grid;grid-template-columns:1fr 1fr}
.lbl{font-size:13px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}.val{font-size:17px;font-weight:600;word-break:break-word}.pre{white-space:pre-wrap;font-weight:500}
.sec{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin:20px 4px 0}
.pad1{padding:10px 0;margin:0}
.part,.pick{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 0;min-height:68px}
.part img,.pick img,.noimg{width:52px;height:52px;border-radius:10px;object-fit:cover;background:#F1ECE6;flex:none;display:grid;place-items:center;color:#B8A898}
.pn{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.nm{font-weight:700;line-height:1.25}.sub{font-size:14px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pq{font-weight:800;font-size:19px;white-space:nowrap}.pq small,.stk small{font-size:12px;color:var(--mut);margin-left:3px;font-weight:600}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px;background:#F1ECE6;color:var(--mut);align-self:flex-start}.tag.ok{background:#DCFCE7;color:#166534}.tag.wait{background:#FEF3C7;color:#92400E}
.stk{font-weight:800;font-size:18px;white-space:nowrap;color:var(--done)}.stk.zero{color:var(--red)}
.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:10px}
.ph{position:relative;border:0;padding:0;border-radius:10px;overflow:hidden;aspect-ratio:1;background:#F1ECE6}.ph img{width:100%;height:100%;object-fit:cover;display:block}.ph .pend{position:absolute;top:6px;right:6px}
.photos .muted{grid-column:1/-1}
.two-btn{display:grid;grid-template-columns:1fr 1fr;gap:8px}.two-btn .btn{margin-top:10px}
textarea,input[type=text],input[type=tel],input[type=number],input[type=datetime-local],input:not([type]),select{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px;background:#fff;font-size:17px}
textarea{resize:vertical;margin-top:10px}
.stamp{font-size:13px;color:var(--mut);margin:10px 0 6px}
.hist{list-style:none;margin:0;padding:0;font-size:15px}.hist li{padding:8px 0;border-top:1px solid var(--line)}.hist time{display:block;font-size:12px;color:var(--mut)}.hd{color:var(--mut)}
.form{padding:14px}.fld{display:block;margin-bottom:14px}.fld>span{display:block;font-size:14px;font-weight:800;color:var(--mut);margin:0 2px 6px;text-transform:uppercase;letter-spacing:.04em}
.form textarea{margin-top:0}
.sheet{position:fixed;inset:0;z-index:50}.scrim{position:absolute;inset:0;background:rgba(20,12,8,.5)}
.panelx{position:absolute;left:0;right:0;bottom:0;max-height:92vh;overflow:auto;background:#fff;border-radius:20px 20px 0 0;padding:14px 16px calc(20px + env(safe-area-inset-bottom,0px));max-width:640px;margin:0 auto}
.sh-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sh-head h2{flex:1;margin:0;font-size:20px;min-width:0}
.asof{font-size:13px;color:var(--mut);margin:2px 2px 4px}
.picks{min-height:40vh}
.pk-item{display:flex;gap:14px;align-items:center;padding:6px 0 16px}.pk-item img,.noimg.big{width:96px;height:96px;border-radius:14px;object-fit:cover;background:#F1ECE6}.pk-item .nm{font-size:19px}.stk-line{margin-top:6px}
.stepper{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 6px}
.stp{width:64px;height:64px;border-radius:16px;border:2px solid var(--line);background:#FFF7ED;font-size:32px;font-weight:800;color:var(--pri2)}
.stepper input{width:110px;text-align:center;font-size:28px;font-weight:800;height:64px}
.bigph{width:100%;border-radius:12px;display:block}
.login{padding:calc(20px + var(--safe)) 18px 30px;max-width:520px;margin:0 auto}
.login-head{display:flex;align-items:center;gap:12px}.login-head img{border-radius:16px}.login-head div{flex:1}.login-head h1{margin:0;font-size:24px}.login-head .brand-sm{color:var(--pri)}
.ask{font-size:24px;margin:28px 0 14px;text-align:center}
.people{display:grid;gap:10px}
.person{display:flex;align-items:center;gap:14px;min-height:64px;padding:0 16px;border-radius:14px;border:2px solid var(--line);background:#fff;font-size:20px;font-weight:800;text-align:left}
.av{width:42px;height:42px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;font-weight:800;flex:none}
.link-back{display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--pri2);font-weight:700;margin-top:16px;padding:8px 0}
.pdots{display:flex;justify-content:center;gap:18px;margin:18px 0 4px}.pdot{width:18px;height:18px;border-radius:50%;border:3px solid var(--pri)}.pdot.on{background:var(--pri)}
.shake{animation:sh .4s}@keyframes sh{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:330px;margin:10px auto 0}
.key{height:70px;border-radius:18px;border:0;background:#fff;font-size:28px;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.08)}.key:active{background:#FFEDD5}
.tm{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.tm.off{opacity:.55}.tm .pn{min-width:120px}
.addp h3{margin:16px 0 10px}
.toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);background:var(--dark);color:#fff;padding:12px 18px;border-radius:12px;font-weight:700;z-index:60;max-width:90vw;text-align:center}
@media (min-width:700px){.app{padding-top:10px}}

/* ===== v2 (Oct 11 2026): Light (default) / Dark per phone, assignment popup, alerts card, steps, material, map ===== */
html[data-theme="light"]{--bg:#F7F5F2}
html[data-theme="light"] .top{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,.04)}
html[data-theme="light"] .top .iconbtn{background:#F1ECE6;color:var(--ink)}
html[data-theme="light"] .top .lang{background:#EFE8E1;color:var(--ink)}
html[data-theme="light"] .top .brand-sm{color:var(--pri)}
html[data-theme="light"] .top .tab{background:#F1ECE6;color:var(--ink)}
html[data-theme="light"] .top .tab .n{background:rgba(28,20,16,.1)}
html[data-theme="light"] .top .tab.on{background:var(--dark);color:#fff}
html[data-theme="light"] .top .tab.on .n{background:var(--pri);color:#fff}
html[data-theme="light"] .top .searchbox{background:#F7F5F2;border:2px solid var(--line)}
html[data-theme="light"] .top .btn.ghost{background:#F1ECE6;color:var(--ink);border-color:var(--line)}
html[data-theme="dark"]{--bg:#14100D;--card:#221B16;--ink:#F4EEE8;--mut:#B9AA9E;--line:#3B3029;--dark:#0C0907;color-scheme:dark}
html[data-theme="dark"] .top{background:#0C0907;border-bottom:1px solid #2A221C}
html[data-theme="dark"] .searchbox{background:#221B16;color:var(--ink)}
html[data-theme="dark"] .tab.on{background:#F4EEE8;color:#1C1410}
html[data-theme="dark"] .btn,html[data-theme="dark"] .btn.danger,html[data-theme="dark"] .person,html[data-theme="dark"] .key,html[data-theme="dark"] .panelx,
html[data-theme="dark"] textarea,html[data-theme="dark"] input[type=text],html[data-theme="dark"] input[type=tel],html[data-theme="dark"] input[type=number],html[data-theme="dark"] input[type=datetime-local],html[data-theme="dark"] input:not([type]),html[data-theme="dark"] select{background:#221B16;color:var(--ink)}
html[data-theme="dark"] .btn.primary{background:var(--pri);color:#fff}
html[data-theme="dark"] .btn.act,html[data-theme="dark"] .stp{background:#3A2416;border-color:#5B3520;color:#FDBA74}
html[data-theme="dark"] .segs{background:#2A221C}
html[data-theme="dark"] .seg:not(.on){color:var(--ink)}
html[data-theme="dark"] .sheet .iconbtn,html[data-theme="dark"] .panel .lang,html[data-theme="dark"] .login .lang,html[data-theme="dark"] .tag,html[data-theme="dark"] .ph,html[data-theme="dark"] .part img,html[data-theme="dark"] .pick img,html[data-theme="dark"] .noimg,html[data-theme="dark"] .pk-item img{background:#2E251F;color:var(--ink)}
html[data-theme="dark"] .login .lang{color:var(--ink)}
html[data-theme="dark"] .tag.ok{background:#14361F;color:#86EFAC}
html[data-theme="dark"] .tag.wait{background:#3A2E0E;color:#FCD34D}
html[data-theme="dark"] .key:active{background:#3A2416}
html[data-theme="dark"] .empty svg{color:#5A4A3E}
html[data-theme="dark"] .card{box-shadow:none}
.newtag{font-size:12px;font-weight:900;letter-spacing:.04em;background:var(--red);color:#fff;border-radius:99px;padding:2px 8px}
.notice{text-align:center;padding:4px 2px}
.notice .bell{font-size:44px;line-height:1;margin:6px 0}
.notice h2{margin:4px 0 12px;font-size:22px}
.notice .btn{margin-top:10px}
.ncall{text-align:left;border:2px solid var(--line);border-radius:14px;padding:12px;margin:10px 0;background:var(--card)}
.ncall .nhead{font-size:18px;font-weight:800}
.ncall .nprob{margin-top:4px}
.ncall svg{width:14px;height:14px;vertical-align:-2px}
.alertcard{background:#FFF7ED;border:2px solid #FED7AA;color:#7C2D12;border-radius:14px;padding:12px 14px;margin-bottom:10px}
.alertcard p{margin:6px 0 0;font-size:15px}
.alertcard .ac-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.alertcard .btn.ghost{background:transparent;color:#7C2D12;border-color:#FED7AA}
html[data-theme="dark"] .alertcard{background:#2E1D10;border-color:#5B3520;color:#FED7AA}
html[data-theme="dark"] .alertcard .btn.ghost{color:#FED7AA;border-color:#5B3520}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.step{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:64px;border-radius:14px;border:2px solid var(--line);background:var(--card);color:var(--ink);font-weight:800;font-size:15px;padding:6px 4px}
.step span{font-size:22px}
.step:active{border-color:var(--pri)}
.sechint{margin:-4px 14px 6px}
.mrow{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}
.mrow .pn{flex:1;display:flex;flex-direction:column;min-width:0}
.mrow .nm{font-weight:700}
.mtot{margin-top:10px;padding:10px 4px 2px}
.mtot .lbl{font-weight:800;margin-bottom:4px}
.mtot .trow{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:4px 0}
.mtot .trow span{flex:1;min-width:60%}
.mtot .trow small{width:100%}
.warnbox{background:#FEF3C7;color:#78350F;border-radius:12px;padding:10px 12px;margin:10px 0;font-weight:600;font-size:15px}
html[data-theme="dark"] .warnbox{background:#3A2E0E;color:#FCD34D}
.leadrow{display:flex;align-items:center;gap:10px;margin:-2px 0 10px 56px;font-size:14px;color:var(--mut)}
.leadrow select{flex:1;padding:8px 10px;min-height:44px}
.crewrow{display:flex;align-items:center;gap:10px}
.crewrow .pn{flex:1;min-width:0}
.crewrow select{max-width:52%;min-height:44px;padding:8px 10px}
.themesw{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;background:#EFE8E1;border-radius:12px;padding:4px;margin-right:10px}
.themesw button{border:0;background:none;border-radius:9px;min-height:44px;padding:0 14px;font-weight:800;color:var(--ink)}
.themesw button.on{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.12)}
html[data-theme="dark"] .themesw{background:#2E251F}
.mapbox{height:220px;border-radius:12px;overflow:hidden;margin-bottom:8px;background:#E5E0DA}
.mapbox.big{height:min(58vh,460px)}
.maprow{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}
.maprow .pn{flex:1;display:flex;flex-direction:column;min-width:0}
.maprow .nm{font-weight:800}
.mdot{width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.off{color:var(--red)}
.leaflet-container{font:inherit}

/* ===== v5 (Oct 11 2026): address links, Directions, job timer, Tech app settings ===== */
.maplink{color:#0B6E85;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;cursor:pointer}
html[data-theme="dark"] .maplink{color:#7FD3E3}
.addr .maplink{color:inherit;text-decoration-color:rgba(88,112,120,.5)}
.addr-btns .btn{margin-top:10px}
.jobtimer{display:flex;align-items:center;gap:6px;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--card);box-shadow:0 0 0 1px var(--line);font-weight:600;font-size:15px}
.jobtimer b{font-variant-numeric:tabular-nums;margin-left:auto;font-size:17px}
.jobtimer.done{color:var(--mut)}
.tcrow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.tcrow .pn{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tcrow .nm{font-weight:700;font-size:15.5px;line-height:1.25}.tcrow .sub{white-space:normal;font-size:13px}
.tcform.off{opacity:.5}
.tcform .fld{margin:12px 0 0}.tcform .fld small{display:block;margin:5px 2px 0;font-size:13px}
.tc-who{margin:10px 0 4px}
.tcdef{border-bottom:2px solid var(--line)}
input.sw{appearance:none;-webkit-appearance:none;flex:none;width:50px;height:30px;border-radius:99px;background:#CBD5DA;position:relative;margin:0;cursor:pointer;transition:background .15s}
input.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
input.sw:checked{background:#1E9E3E}input.sw:checked::after{left:23px}
input.sw:disabled{opacity:.6}
html[data-theme="dark"] input.sw{background:#3A4F57}
input[type=time]{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px;background:var(--card);color:var(--ink);font-size:17px}

/* v8: address search + simple tech status + required location */
.ac{position:relative}
.aclist{margin-top:6px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.achd{font-size:12px;font-weight:700;color:var(--mut);padding:8px 14px 4px;text-transform:uppercase;letter-spacing:.03em}
.acit{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:10px 14px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,.08)}
.acit:first-of-type{border-top:0}
.acit:active,.acit:hover{background:rgba(127,127,127,.12)}
.acpin{font-size:18px;flex:none}
.actx{display:flex;flex-direction:column;min-width:0}
.actx b{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.actx small{font-size:13px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.geost{margin:8px 2px 0;font-weight:700;font-size:15px}
.geost.g-ok{color:var(--done)}.geost.g-none{color:var(--red)}.geost.g-partial{color:var(--prog)}.geost.g-wait,.geost.g-offline{color:var(--mut);font-weight:600}
.geomap{height:170px;margin:8px 0 0}
.geomap .mapin{width:100%;height:100%}
.flow{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.flowbtn{min-height:60px;font-size:19px}
.flowst{font-weight:700;font-size:16px;padding:10px 14px;border-radius:12px;background:var(--card);border:1.5px solid var(--line)}
.flowst.ok{color:var(--done)}
.flowst.muted{color:var(--mut);font-weight:600;font-size:14px}
.flowhere{min-height:52px}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.tl{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--mut);font-size:13px;text-align:center}
.tl span{font-size:18px}.tl b{color:var(--ink);font-size:14px}.tl.on time{color:var(--ink);font-weight:600}
.steps-list{text-align:left;margin:10px 0 6px;padding-left:22px;line-height:1.45}
.steps-list li{margin:6px 0}

/* v9 (Oct 12 2026): job report + live map */
.repbtn{display:flex;align-items:center;justify-content:center;gap:6px;margin:10px 0;text-decoration:none}
.rep-ic{font-size:20px;line-height:1}
.repsum .rephead{display:flex;align-items:center;gap:8px;font-size:18px;margin-bottom:4px}
.repsum .badge{font-size:12px;padding:2px 8px;border-radius:999px;color:#fff}
.repsum .badge.s-done{background:#15803D}.repsum .badge.s-progress{background:#C2410C}
.repgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:12px}
.repgrid>div{display:flex;flex-direction:column;min-width:0}
.repgrid .lbl,.parts .lbl{font-size:12px;opacity:.7;text-transform:uppercase;letter-spacing:.03em}
.reprow{text-decoration:none;color:inherit}
.reprow .chev,.maprow .chev{margin-left:auto;font-size:20px;opacity:.6;text-decoration:none;padding:0 4px}
.rpin span{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:#fff;font-size:14px;font-weight:700;border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.45);box-sizing:border-box}
.lpin{position:relative}
.lpin span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;color:#fff;font-size:13px;font-weight:800;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.5);box-sizing:border-box}
.lpin em{position:absolute;left:50%;top:36px;transform:translateX(-50%);white-space:nowrap;font-style:normal;font-size:12px;font-weight:700;background:rgba(255,255,255,.92);color:#111;padding:1px 6px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.3)}

/* v10 (Oct 13 2026): report for the office + Send to office */
input[type=date],input[type=time]{width:100%;border:2px solid var(--line);border-radius:12px;padding:12px;background:#fff;font-size:17px;min-height:50px}
html[data-theme="dark"] input[type=date],html[data-theme="dark"] input[type=time]{background:#1b1f23;border-color:#3a4148;color:inherit}
.ofc .fld{display:block;margin-bottom:12px}.ofc .fld>span{display:block;font-size:13px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.ofc2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ofcline{display:grid;grid-template-columns:84px 84px 1fr 40px;gap:6px;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.ofcline .on{grid-column:1/4;grid-row:1}.ofcline .ox{grid-column:4;grid-row:1}.ofcline .oq{grid-column:1;grid-row:2}.ofcline .ou{grid-column:2;grid-row:2}
.ofcline input{padding:10px 8px;font-size:16px;min-width:0}
.iconx{width:40px;height:40px;border-radius:10px;border:2px solid #FECACA;background:#fff;color:var(--red);font-weight:800;font-size:16px}
html[data-theme="dark"] .iconx{background:transparent}
.ofcsw{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-weight:600}
.ofc #o_send{margin-top:16px}
.ofcsent{color:#15803D;font-weight:700}
.linkbtn{background:none;border:0;padding:8px 0;color:var(--mut);text-decoration:underline;cursor:pointer}
details.ofcdet>summary{cursor:pointer;list-style:none}details.ofcdet>summary::-webkit-details-marker{display:none}
details.ofcdet>summary::after{content:" ▸"}details.ofcdet[open]>summary::after{content:" ▾"}
