:root{--brand:#E3312B;--brand-dark:#B9231E;--bg:#F2F2F7;--card:#FFFFFF;--card2:#F7F7FA;--text:#111114;--sub:#6B6B73;--line:rgba(60,60,67,.14);--fill:rgba(118,118,128,.12);--ok:#2FB157;--warn:#FF9F0A;--bad:#E3312B;--blue:#0A84FF;--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.06);--r:20px;
 --safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}
[data-theme=dark]{--bg:#000;--card:#1C1C1E;--card2:#2C2C2E;--text:#F5F5F7;--sub:#9A9AA2;--line:rgba(84,84,88,.6);--fill:rgba(118,118,128,.24);--shadow:none}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:17px;line-height:1.35;-webkit-font-smoothing:antialiased}
body{min-height:100vh;overscroll-behavior-y:none;-webkit-user-select:none;user-select:none}
input,textarea{-webkit-user-select:text;user-select:text}
button,input,select,textarea{font:inherit;color:inherit}
.ic{width:24px;height:24px;flex:none}
.hidden{display:none!important}
/* ---------- intro ---------- */
#intro{position:fixed;inset:0;z-index:100;overflow:hidden;background:linear-gradient(180deg,#05070d 0%,#0e1424 45%,#2a1d24 72%,#5a2a22 100%);transition:opacity .6s ease}
#intro video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#intro.vid:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 70%,rgba(0,0,0,.5));pointer-events:none}
#intro.vid .brandup{animation:none;top:16%;transition:opacity .8s ease,transform .8s ease;z-index:2}
#intro.vid .brandup.show{opacity:1;transform:none}
#intro .skip{z-index:3}
#intro.out{opacity:0;pointer-events:none}
#intro .sun{position:absolute;left:50%;top:58%;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;background:radial-gradient(circle,rgba(255,140,90,.55) 0%,rgba(227,49,43,.18) 35%,rgba(0,0,0,0) 70%)}
#intro .stars{position:absolute;inset:0 0 45% 0;background-image:radial-gradient(1px 1px at 20% 30%,#fff8,transparent),radial-gradient(1px 1px at 70% 20%,#fff6,transparent),radial-gradient(1.5px 1.5px at 40% 10%,#fff7,transparent),radial-gradient(1px 1px at 85% 40%,#fff5,transparent),radial-gradient(1px 1px at 10% 55%,#fff4,transparent),radial-gradient(1px 1px at 55% 35%,#fff5,transparent)}
#intro .city{position:absolute;left:0;right:0;bottom:31%;height:90px;opacity:.55;animation:par 6s linear forwards}
#intro .road{position:absolute;left:0;right:0;bottom:0;height:31%;background:linear-gradient(180deg,#17181c 0%,#0b0c0f 100%);border-top:2px solid #2b2d33}
#intro .road:before{content:"";position:absolute;left:0;right:0;top:6px;height:2px;background:rgba(255,255,255,.12)}
#intro .dash{position:absolute;left:0;top:38%;width:300%;height:5px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.75) 0 60px,transparent 60px 130px);animation:dash 1.1s linear infinite}
#intro .glare{position:absolute;left:0;right:0;bottom:0;height:31%;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.07),transparent 60%)}
#intro .rig{position:absolute;bottom:calc(31% - 34px);left:0;width:min(170vw,1100px);transform:translateX(-105%);animation:drive 3.6s cubic-bezier(.45,.05,.35,1) .25s forwards}
#intro .rig svg{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 18px rgba(0,0,0,.55))}
#intro .rig .body{animation:bounce .35s ease-in-out infinite alternate}
#intro .wheel{transform-box:fill-box;transform-origin:center;animation:spin .45s linear infinite}
#intro .beam{position:absolute;right:-260px;bottom:46px;width:300px;height:90px;background:linear-gradient(90deg,rgba(255,240,200,.45),transparent);clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);filter:blur(4px)}
#intro .brandup{position:absolute;left:0;right:0;top:20%;text-align:center;opacity:0;transform:translateY(12px);animation:rise .9s ease 2.9s forwards}
#intro .brandup img{width:min(72vw,360px);height:auto}
#intro .brandup .tag{color:rgba(255,255,255,.72);font-size:13px;letter-spacing:.32em;text-transform:uppercase;margin-top:14px}
#intro .skip{position:absolute;right:16px;bottom:calc(16px + var(--safe-b));color:rgba(255,255,255,.55);background:rgba(255,255,255,.08);border:0;border-radius:99px;padding:8px 14px;font-size:14px}
@keyframes drive{0%{transform:translateX(-105%)}55%{transform:translateX(calc(50vw - 62%))}70%{transform:translateX(calc(50vw - 58%))}100%{transform:translateX(105vw)}}
@keyframes dash{to{transform:translateX(-130px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bounce{from{transform:translateY(0)}to{transform:translateY(-1.2px)}}
@keyframes par{to{transform:translateX(-60px)}}
@keyframes rise{to{opacity:1;transform:none}}
/* ---------- layout ---------- */
.screen{max-width:560px;margin:0 auto;padding:calc(12px + var(--safe-t)) 18px calc(110px + var(--safe-b));min-height:100vh}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0 10px}
.topbar img.logo{height:30px;width:auto}
.logo-d{display:none}[data-theme=dark] .logo-l{display:none}[data-theme=dark] .logo-d{display:inline-block}
.iconbtn{width:42px;height:42px;border-radius:50%;border:0;background:var(--card);box-shadow:var(--shadow);display:grid;place-items:center;color:var(--text);cursor:pointer}
.hello{margin:8px 0 2px;font-size:30px;font-weight:700;letter-spacing:-.02em}
.subhello{color:var(--sub);font-size:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--fill);border:0;border-radius:99px;padding:6px 12px;font-size:15px;font-weight:600;cursor:pointer;color:var(--text)}
.chip .ic{width:17px;height:17px}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:18px}
.daycard{margin:18px 0 16px;padding:20px;position:relative;overflow:hidden}
.daycard .lbl{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sub)}
.daycard .big{font-size:24px;font-weight:700;margin:4px 0 2px;letter-spacing:-.01em}
.daycard .muted{color:var(--sub);font-size:15px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.stat{background:var(--card2);border-radius:14px;padding:10px 8px;text-align:center}
.stat b{display:block;font-size:20px;letter-spacing:-.01em}.stat span{font-size:12px;color:var(--sub)}
.primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:0;border-radius:16px;padding:17px 18px;font-size:18px;font-weight:700;background:var(--brand);color:#fff;cursor:pointer;box-shadow:0 8px 20px rgba(227,49,43,.28);transition:transform .12s}
.primary:active{transform:scale(.98)}
.primary.dark{background:#111114;box-shadow:0 8px 20px rgba(0,0,0,.2)}[data-theme=dark] .primary.dark{background:#F5F5F7;color:#111}
.primary.green{background:var(--ok);box-shadow:0 8px 20px rgba(47,177,87,.28)}
.secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:16px;padding:15px;font-size:17px;font-weight:600;background:var(--fill);color:var(--text);cursor:pointer}
.daycard .primary{margin-top:16px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;border:0;border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);padding:16px;min-height:120px;cursor:pointer;transition:transform .12s;color:var(--text)}
.tile:active{transform:scale(.97)}
.tile .ti{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#fff}
.tile .ti .ic{width:25px;height:25px}
.tile .tx{display:flex;flex-direction:column;gap:3px}.tile b{font-size:17px;line-height:1.2}.tile small{font-size:13px;color:var(--sub);line-height:1.25}
.tile.wide{grid-column:1/-1;flex-direction:row;align-items:center;min-height:auto;padding:14px 16px}
.tile.wide .tx{display:flex;flex-direction:column;gap:2px;flex:1}.tile.wide small{margin:0}
.tile.alert{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff}.tile.alert small{color:rgba(255,255,255,.82)}.tile.alert .ti{background:rgba(255,255,255,.2)!important}
.sect{display:flex;align-items:baseline;justify-content:space-between;margin:26px 4px 10px}
.sect h2{margin:0;font-size:22px;letter-spacing:-.01em}.sect span{color:var(--sub);font-size:14px}
.list{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;color:var(--text)}
.row:last-child{border-bottom:0}
.row .ri{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none}.row .ri .ic{width:19px;height:19px}
.row .rt{flex:1;min-width:0}.row .rt b{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .rt small{color:var(--sub);font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .rr{color:var(--sub);font-size:14px;text-align:right}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:99px;background:var(--fill);color:var(--sub)}
.pill.ok{background:rgba(47,177,87,.14);color:var(--ok)}.pill.bad{background:rgba(227,49,43,.13);color:var(--bad)}.pill.warn{background:rgba(255,159,10,.16);color:#C77700}
.empty{color:var(--sub);text-align:center;padding:26px 10px;font-size:15px}
.syncbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + var(--safe-b));z-index:20;display:flex;align-items:center;gap:8px;background:var(--card);box-shadow:0 6px 24px rgba(0,0,0,.16);border-radius:99px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--sub);white-space:nowrap}
.syncbar .dot{width:9px;height:9px;border-radius:50%;background:var(--ok)}.syncbar.wait .dot{background:var(--warn)}.syncbar.off .dot{background:#8e8e93}
.syncbar .ic{width:16px;height:16px}
/* ---------- login ---------- */
.login{min-height:100vh;display:flex;flex-direction:column;justify-content:center;max-width:430px;margin:0 auto;padding:calc(30px + var(--safe-t)) 26px calc(26px + var(--safe-b))}
.login .brandbox{text-align:center;margin-bottom:34px}
.login .brandbox img{width:min(78%,300px);height:auto}
.login .brandbox p{color:var(--sub);margin:12px 0 0;font-size:15px;letter-spacing:.02em}
.field{display:block;margin-bottom:12px}
.field > span{display:block;font-size:14px;font-weight:600;color:var(--sub);margin:0 4px 6px}
.input{width:100%;border:1.5px solid transparent;background:var(--card);box-shadow:var(--shadow);border-radius:14px;padding:15px 16px;font-size:18px;outline:none;transition:border .15s}
[data-theme=dark] .input{background:var(--card2)}
.input:focus{border-color:var(--brand)}
textarea.input{min-height:92px;resize:vertical;font-size:17px}
.check{display:flex;align-items:center;gap:12px;margin:14px 4px 20px;font-size:16px;cursor:pointer}
.switch{position:relative;width:51px;height:31px;flex:none}.switch input{opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;border-radius:99px;background:var(--fill);transition:.2s}.switch i:after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:.2s}
.switch input:checked+i{background:var(--ok)}.switch input:checked+i:after{transform:translateX(20px)}
.fingerbtn{margin-top:12px}
.err{color:var(--bad);font-size:15px;min-height:20px;margin:4px 4px 8px;font-weight:600}
.prefs{display:flex;gap:10px;justify-content:center;margin-top:26px}
.seg{display:inline-flex;background:var(--fill);border-radius:11px;padding:2px}
.seg button{border:0;background:none;padding:7px 13px;border-radius:9px;font-size:14px;font-weight:600;color:var(--sub);cursor:pointer}
.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.12)}
[data-theme=dark] .seg button.on{background:#636366}
.foot{text-align:center;color:var(--sub);font-size:12px;margin-top:22px}
/* ---------- sheets (forms) ---------- */
.sheet{position:fixed;inset:0;z-index:50;background:var(--bg);overflow-y:auto;animation:slidein .28s cubic-bezier(.2,.8,.2,1)}
@keyframes slidein{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet .hd{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:calc(10px + var(--safe-t)) 12px 10px;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}
.sheet .hd h1{flex:1;margin:0;font-size:18px;text-align:center}
.sheet .hd .iconbtn{box-shadow:none;background:var(--fill);width:38px;height:38px}
.sheet .bd{max-width:560px;margin:0 auto;padding:18px 18px calc(120px + var(--safe-b))}
.sheet .ft{position:fixed;left:0;right:0;bottom:0;padding:12px 18px calc(12px + var(--safe-b));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--line);z-index:6}
.sheet .ft .inner{max-width:560px;margin:0 auto;display:flex;gap:10px}
.group{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:6px 16px;margin-bottom:16px}
.group h3{margin:12px 0 4px;font-size:13px;font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:.06em}
.frow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);min-height:56px}
.frow:last-child{border-bottom:0}
.frow label{flex:1;font-size:16px;font-weight:500}
.frow input,.frow select{border:0;background:transparent;text-align:right;font-size:18px;font-weight:600;outline:none;min-width:0;width:52%;padding:8px 0}
.frow input::placeholder{color:var(--sub);font-weight:400}
.frow .nowbtn{border:0;background:var(--fill);border-radius:10px;padding:8px 11px;font-weight:700;font-size:14px;color:var(--brand);cursor:pointer}
.frow.stack{flex-direction:column;align-items:stretch;gap:8px}.frow.stack input,.frow.stack textarea{text-align:left;width:100%}
.frow textarea{border:0;background:var(--card2);border-radius:12px;padding:12px;font-size:16px;outline:none;min-height:80px;resize:vertical}
.big-input{font-size:34px!important;font-weight:700!important;letter-spacing:.02em;text-align:center!important;width:100%!important;padding:6px 0!important}
.opts{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 10px}
.opt{border:1.5px solid var(--line);background:var(--card);border-radius:12px;padding:11px 15px;font-size:16px;font-weight:600;cursor:pointer;color:var(--text)}
.opt.on{border-color:var(--brand);background:rgba(227,49,43,.09);color:var(--brand)}
.opts.three .opt{flex:1;text-align:center}
.okbig{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:6px 0 12px;border:2px solid var(--ok);background:rgba(47,177,87,.08);color:var(--ok);border-radius:16px;padding:15px;font-size:18px;font-weight:800;cursor:pointer}
.okbig.on{background:var(--ok);color:#fff}
.defects{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px 0 12px}
.defect{border:1.5px solid var(--line);background:var(--card);border-radius:12px;padding:11px 10px;font-size:14.5px;font-weight:600;text-align:left;cursor:pointer;line-height:1.2;color:var(--text);display:flex;align-items:center;gap:8px;min-height:50px}
.defect:before{content:"";width:18px;height:18px;border-radius:6px;border:2px solid var(--line);flex:none}
.defect.on{border-color:var(--bad);background:rgba(227,49,43,.09);color:var(--bad)}.defect.on:before{background:var(--bad);border-color:var(--bad);box-shadow:inset 0 0 0 3px var(--card)}
.hint{color:var(--sub);font-size:14px;margin:2px 0 8px}
.photos{display:flex;gap:10px;flex-wrap:wrap;padding:8px 0 12px}
.photo{width:84px;height:84px;border-radius:14px;background:var(--fill) center/cover;position:relative;border:0;cursor:pointer;display:grid;place-items:center;color:var(--sub)}
.photo .x{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-size:14px}
.photo.add{border:2px dashed var(--line);flex-direction:column;font-size:12px;font-weight:600;gap:2px}
.calc{display:flex;justify-content:space-between;align-items:center;background:var(--card2);border-radius:14px;padding:12px 14px;margin:8px 0 12px;font-weight:600}
.calc b{font-size:22px}
.sigwrap{background:#fff;border-radius:16px;border:1.5px dashed var(--line);position:relative;height:190px;margin:8px 0}
.sigwrap canvas{width:100%;height:100%;display:block;touch-action:none;border-radius:16px}
.sigwrap span{position:absolute;left:16px;bottom:12px;color:#9a9aa2;font-size:13px;pointer-events:none}
.sigwrap button{position:absolute;right:10px;top:10px;border:0;background:#eee;color:#333;border-radius:9px;padding:6px 10px;font-weight:600;font-size:13px}
.recent{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.recent::-webkit-scrollbar{display:none}
.recent button{flex:none;border:0;background:var(--fill);border-radius:99px;padding:7px 12px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer}
#toast{position:fixed;left:50%;top:calc(14px + var(--safe-t));transform:translate(-50%,-120px);z-index:200;background:#111114;color:#fff;padding:13px 20px;border-radius:16px;font-weight:600;font-size:15px;box-shadow:0 12px 30px rgba(0,0,0,.3);transition:transform .35s cubic-bezier(.2,.9,.3,1.2);max-width:90vw;text-align:center}
#toast.show{transform:translate(-50%,0)}#toast.good{background:var(--ok)}#toast.bad{background:var(--bad)}
[data-theme=dark] #toast{background:#F5F5F7;color:#111}[data-theme=dark] #toast.good{background:var(--ok);color:#fff}
.success{display:grid;place-items:center;text-align:center;min-height:70vh;padding:30px}
.success .tick{width:96px;height:96px;border-radius:50%;background:var(--ok);display:grid;place-items:center;color:#fff;margin:0 auto 18px;animation:pop .45s cubic-bezier(.2,.9,.3,1.4)}
.success .tick .ic{width:52px;height:52px;stroke-width:2.6}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.kv{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:16px}.kv:last-child{border:0}.kv span{color:var(--sub)}
.picker .row .rr .ic{width:20px}
@media (min-width:700px){.grid{grid-template-columns:1fr 1fr 1fr}.tile.wide{grid-column:auto;flex-direction:column;align-items:flex-start;min-height:128px}}

/* 4-way move status, reimbursement switches, lookup */
.opts.four{display:grid;grid-template-columns:1fr 1fr;gap:8px}.opts.four .opt{text-align:center}
.group .check{margin:10px 2px 6px}.check small{display:block;font-size:13px;color:var(--sub);margin-top:2px}
.req-box{margin-top:6px}.req-box .frow{margin-top:6px}
.lk-sec{margin:16px 2px 6px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sub)}
.lk-item{background:var(--card);border-radius:14px;padding:12px 14px;margin:8px 0;box-shadow:var(--shadow)}.lk-item b{display:block;font-size:15px}.lk-item small{display:block;color:var(--sub);font-size:13px;margin-top:3px}
.lk-form{display:flex;gap:8px}.lk-form input{flex:1}.lk-form button{width:auto;padding:0 18px}
.tile.lookup .ti{background:#64748B}

/* ---------- installed iPhone app ---------- */
html{overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{touch-action:manipulation}
input,select,textarea{font-size:max(16px,1em)}
.screen,.sheet .bd{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
.login{padding-left:max(26px,env(safe-area-inset-left,0px));padding-right:max(26px,env(safe-area-inset-right,0px))}
.ioshint{display:flex;align-items:center;gap:12px;margin:18px 0 4px;padding:12px 12px 12px 12px;background:var(--card);border-radius:16px;box-shadow:var(--shadow);font-size:14px;line-height:1.35;color:var(--sub)}
.ioshint img{width:42px;height:42px;border-radius:10px;flex:none}
.ioshint b{display:block;color:var(--text);font-size:15px;margin-bottom:2px}
.ioshint .ish{width:17px;height:17px;vertical-align:-3px;color:var(--blue)}
.ioshint button{flex:none;align-self:flex-start;width:28px;height:28px;border-radius:50%;border:0;background:var(--fill);color:var(--sub);font-size:13px}
