@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-khmer-khmer-400-normal-DnqNet9s.woff2)format("woff2"),url(/assets/noto-sans-khmer-khmer-400-normal-CfhpqDv8.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-khmer-latin-ext-400-normal-DodaIRJA.woff2)format("woff2"),url(/assets/noto-sans-khmer-latin-ext-400-normal-Bd3ZAoRX.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-khmer-latin-400-normal-BLI6HyUZ.woff2)format("woff2"),url(/assets/noto-sans-khmer-latin-400-normal-Dek0CCYB.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-khmer-khmer-500-normal-2z33mOhH.woff2)format("woff2"),url(/assets/noto-sans-khmer-khmer-500-normal-dNx9-JxI.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-khmer-latin-ext-500-normal-CXyrd2lV.woff2)format("woff2"),url(/assets/noto-sans-khmer-latin-ext-500-normal-D_xgPDZH.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-khmer-latin-500-normal-DNgM42S4.woff2)format("woff2"),url(/assets/noto-sans-khmer-latin-500-normal-YUyrHXTV.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-khmer-khmer-700-normal-qwjLDidk.woff2)format("woff2"),url(/assets/noto-sans-khmer-khmer-700-normal-BUdGgDYy.woff)format("woff");unicode-range:U+1780-17FF,U+19E0-19FF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-khmer-latin-ext-700-normal-D0NTkDRW.woff2)format("woff2"),url(/assets/noto-sans-khmer-latin-ext-700-normal-DTINSare.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Khmer;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-khmer-latin-700-normal-DuGo6TL7.woff2)format("woff2"),url(/assets/noto-sans-khmer-latin-700-normal-DlNc-L-D.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-vietnamese-400-normal-BNOj0Qhp.woff2)format("woff2"),url(/assets/space-mono-vietnamese-400-normal-B0PMp_xB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-ext-400-normal-DTLbW2xa.woff2)format("woff2"),url(/assets/space-mono-latin-ext-400-normal-D4cJI_B-.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-vietnamese-700-normal-DWQgDHuA.woff2)format("woff2"),url(/assets/space-mono-vietnamese-700-normal-D-KrLuLr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-ext-700-normal-B2s3bDs2.woff2)format("woff2"),url(/assets/space-mono-latin-ext-700-normal-B_E7P90g.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2)format("woff2"),url(/assets/space-mono-latin-700-normal-D7A851RN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Niradei;src:url(/assets/Niradei-Medium-Bn7UkawQ.ttf)format("truetype");font-weight:100 600;font-style:normal;font-display:swap}@font-face{font-family:Niradei;src:url(/assets/Niradei-Black-CuNNh_zh.ttf)format("truetype");font-weight:700 900;font-style:normal;font-display:swap}:root{--primary:#0039f5;--primary-600:#0030cf;--primary-50:#ecefff;--on-primary:#fff;--green:#15893e;--green-bg:#e6f5ec;--yellow:#d9820a;--yellow-bg:#fcf0da;--red:#d23;--red-bg:#fce6e9;--bg:#f3f5fc;--surface:#fff;--fg:#0a0f22;--muted:#535a73;--border:#e6e9f4;--radius:12px;--radius-sm:10px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 16px -4px #0f172a1a;--mono:"Space Mono", "Noto Sans Khmer", "Niradei", ui-monospace, monospace}.fleet{--paper:#f3f5fc;--panel:#fff;--ink:#0a0f22;--ink2:#535a73;--ink3:#9298ae;--line:#e6e9f4;--accent:#0039f5;--accent-d:#0030cf;--accent-soft:#ecefff;--primary:#0039f5;--primary-600:#0030cf;--primary-50:#ecefff;--on-primary:#fff;--green:#15893e;--green-bg:#e6f5ec;--yellow:#d9820a;--yellow-bg:#fcf0da;--red:#d23;--red-bg:#fce6e9;--bg:#f3f5fc;--surface:#fff;--fg:#0a0f22;--muted:#535a73;--border:#e6e9f4;--shadow-sm:0 1px 2px #0a0f220a, 0 10px 30px -16px #0a0f222e;--shadow-md:0 10px 30px -14px #0a0f223d;background-color:var(--paper)}.mono{font-family:var(--mono);letter-spacing:-.01em}.s-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.s-badge .dot{border-radius:50%;flex:none;width:8px;height:8px}.s-badge.red{background:var(--red-bg);color:var(--red)}.s-badge.red .dot{background:var(--red)}.s-badge.yellow{background:var(--yellow-bg);color:var(--yellow)}.s-badge.yellow .dot{background:var(--yellow)}.s-badge.green{background:var(--green-bg);color:var(--green)}.s-badge.green .dot{background:var(--green)}.fleet.wide{max-width:1040px}.mgr-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 12px;margin-bottom:2px;display:flex}.mgr-head h1{letter-spacing:-.02em;color:var(--fg);font-size:1.6rem;font-weight:800}.mgr-head .sub{color:var(--muted);margin-top:3px;font-size:.85rem}.kpis{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:18px 20px;position:relative;overflow:hidden}.kpi-t{color:var(--ink2);align-items:center;gap:7px;font-size:.8rem;font-weight:600;display:flex}.kpi-n{font-family:var(--mono);color:var(--fg);margin-top:10px;font-size:2.1rem;font-weight:700;line-height:1}.kpi-s{color:var(--ink3);margin-top:6px;font-size:.72rem}.kpi-dot{border-radius:50%;flex:none;width:8px;height:8px}.kpi-pill{border-radius:50%;width:10px;height:10px;position:absolute;top:18px;right:18px}.kpi-dot.red,.kpi-pill.red{background:var(--red)}.kpi-dot.yellow,.kpi-pill.yellow{background:var(--yellow)}.kpi-dot.green,.kpi-pill.green{background:var(--green)}.kpi-n.red-n{color:var(--red)}.kpi-n.yellow-n{color:var(--yellow)}.kpi-n.green-n{color:var(--green)}.kpi.feature{background:linear-gradient(135deg, var(--accent), var(--accent-d,#0030cf));color:#fff;border-color:#0000}.kpi.feature .kpi-t,.kpi.feature .kpi-s{color:#ffffffd1}.kpi.feature .kpi-n{color:#fff}@media (width<=1000px){.kpis{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.kpis{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;overflow:hidden}.card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.card-head h2{margin:0;font-size:1rem;font-weight:700}.card .ftable{box-shadow:none;border:0;border-radius:0}.mgr-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 10px;display:flex}.mgr-toolbar h2{text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin:0;font-size:.9rem}.search{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;min-width:220px;padding:4px 12px;display:flex}.search input{background:0 0;border:0;min-height:0;padding:6px 0}.search input:focus{box-shadow:none}.ftable{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.frow{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:6px 110px 1.2fr 1fr 110px 1.3fr 22px;align-items:center;gap:14px;padding:13px 16px;transition:background .15s;display:grid}.frow:last-child{border-bottom:0}.frow:hover{background:#f1f5f9}.frow.head{cursor:default;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);background:#f1f5f9;font-size:.66rem}.fstripe{background:var(--line);border-radius:3px;width:5px;height:30px}.frow.red .fstripe{background:var(--red)}.frow.yellow .fstripe{background:var(--yellow)}.frow.green .fstripe{background:var(--green)}.fplate{font-family:var(--mono);font-size:.95rem;font-weight:700}.fsub{color:var(--ink3);margin-top:2px;font-size:.72rem}.fodo{font-family:var(--mono);font-size:.9rem;font-weight:700}.fworst{color:var(--ink2);font-size:.82rem}.fchev{color:var(--ink3);text-align:center;font-size:1.1rem}@media (width<=640px){.frow{grid-template-columns:6px 1fr auto 22px;gap:10px;padding:12px 14px}.frow .col-driver,.frow .col-odo,.frow .col-worst{display:none}}.scrim{opacity:0;pointer-events:none;z-index:40;background:#0f172a73;transition:opacity .25s;position:fixed;inset:0}.scrim.on{opacity:1;pointer-events:auto}.drawer{background:var(--panel);z-index:50;visibility:hidden;pointer-events:none;flex-direction:column;width:440px;max-width:92vw;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1),visibility .3s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-12px 0 40px -16px #0006}.drawer.on{visibility:visible;pointer-events:auto;transform:none}.drawer-head{border-bottom:1px solid var(--line);padding:20px 22px}.drawer-head .x{float:right;width:34px;height:34px;min-height:0;color:var(--ink2);box-shadow:none;background:#f1f5f9;border:0;padding:0}.drawer-plate{font-family:var(--mono);font-size:1.35rem;font-weight:700}.drawer-meta{color:var(--ink3);margin-top:4px;font-size:.8rem}.drawer-body{flex:1;padding:10px 22px 22px;overflow:auto}.seclbl{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);margin:12px 0;font-size:.66rem}.ditem{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.ditem:last-child{border-bottom:0}.ditem .nm{font-size:.92rem;font-weight:600}.ditem .me{color:var(--ink3);margin-top:2px;font-size:.75rem}.ditem .rt{text-align:right;font-family:var(--mono);margin-left:auto;font-size:.85rem;font-weight:700}.ditem .rt.red{color:var(--red)}.ditem .rt.yellow{color:var(--yellow)}.ditem .rt.green{color:var(--green)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:Niradei,Noto Sans Khmer,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.8}.app{max-width:540px;padding:16px 16px calc(28px + env(safe-area-inset-bottom));min-height:100vh;margin:0 auto}.app-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;display:flex}.center{flex-direction:column;gap:16px;display:flex}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.screen{flex-direction:column;gap:16px;display:flex}h1{letter-spacing:-.01em;margin:0;font-size:1.3rem;line-height:1.5}h2{margin:4px 0;font-size:1.15rem;line-height:1.5}h3{margin:0 0 4px;font-size:1.05rem;line-height:1.5}.tagline{color:var(--muted);margin:0 0 4px}.notice{color:var(--muted)}.error{color:var(--red);font-weight:500}.success,.scaffold-note{color:var(--green);font-weight:600}.muted{color:var(--muted)}.code{color:#e2e8f0;border-radius:var(--radius-sm);background:#0f172a;padding:12px 14px;font-size:.85rem;overflow-x:auto}button{border-radius:var(--radius-sm);background:var(--primary);min-height:48px;color:var(--on-primary);cursor:pointer;box-shadow:var(--shadow-sm);border:1px solid #0000;padding:12px 18px;font-family:inherit;font-size:1rem;font-weight:600;line-height:1.6;transition:background .15s,box-shadow .15s,transform 50ms,border-color .15s}button:hover{background:var(--primary-600)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}button:focus-visible{outline:3px solid var(--primary-50);outline-offset:1px}.header-actions button,.link-back{background:var(--surface);color:var(--fg);border-color:var(--border);box-shadow:none;font-weight:500}.header-actions button:hover{background:var(--bg);border-color:var(--muted)}.lang-switcher{background:var(--bg);border:1px solid var(--border);border-radius:999px;gap:3px;padding:3px;display:inline-flex}.lang-switcher button{min-height:0;box-shadow:none;color:var(--muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:.9rem;font-weight:600;display:inline-flex}.lang-switcher button:hover{color:var(--fg);background:0 0}.lang-switcher button.active{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #0a0f221f}.lang-label{line-height:1}.flag{border-radius:3px;width:24px;height:16px;display:block}.link-back{align-self:flex-start;min-height:40px;padding:6px 14px}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--fg);padding:12px 14px;font-family:inherit;font-size:1rem;line-height:1.6;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50);outline:none}.form,.odo-form,.login-form{flex-direction:column;gap:14px;max-width:460px;display:flex}.login-form,.odo-form{gap:12px}.field{flex-direction:column;gap:6px;display:flex}.field label,.form label,.odo-form label,.login-form label{font-size:.95rem;font-weight:600}.login{padding-top:6vh}.form,.login-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);width:100%;padding:16px}.big-actions{gap:12px;margin-top:8px;display:grid}.big-action{background:var(--surface);min-height:70px;color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-align:left;justify-content:space-between;align-items:center;padding:16px 18px;font-size:1.1rem;font-weight:600;display:flex}.big-action:hover{background:var(--surface);border-color:var(--primary);box-shadow:var(--shadow-md)}.big-action:after{content:"›";color:var(--muted);font-size:1.6rem;font-weight:400;line-height:1}.big-action .soon{color:var(--muted);font-size:.78rem;font-weight:400}.facts{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);gap:0;margin:0;display:grid;overflow:hidden}.facts>div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:12px 16px;display:flex}.facts>div:last-child{border-bottom:none}.facts dt{color:var(--muted);margin:0}.facts dd{margin:0;font-weight:600}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:4px;margin-bottom:14px;padding:4px;display:flex}.tabs button{min-height:42px;color:var(--muted);border-radius:var(--radius-sm);box-shadow:none;background:0 0;border:none;flex:auto;padding:8px 12px;font-weight:600}.tabs button:hover{background:var(--bg);color:var(--fg)}.tabs button.active{background:var(--primary);color:var(--on-primary)}.tab-badge{background:var(--red);color:#fff;text-align:center;vertical-align:middle;border-radius:999px;min-width:18px;margin-left:6px;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-block}.status-summary{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600}.pill.red{background:var(--red-bg);color:var(--red);border-color:#0000}.pill.yellow{background:var(--yellow-bg);color:var(--yellow);border-color:#0000}.pill.green{background:var(--green-bg);color:var(--green);border-color:#0000}.vehicle-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.vehicle-card{background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px}.vehicle-card.red,.vehicle-card.open{border-left-color:var(--red)}.vehicle-card.yellow{border-left-color:var(--yellow)}.vehicle-card.green,.vehicle-card.resolved{border-left-color:var(--green)}.vehicle-card-head{align-items:center;gap:10px;display:flex}.vehicle-card-head strong{font-size:1.05rem}.vehicle-card-head .dot{font-size:.7rem}.vehicle-card-head .vtype{color:var(--muted);margin-left:auto;font-size:.85rem}.vehicle-signals{gap:6px;margin:12px 0 0;display:grid}.vehicle-signals>div{justify-content:space-between;gap:12px;font-size:.95rem;display:flex}.vehicle-signals dt{color:var(--muted);margin:0}.vehicle-signals dd{margin:0;font-weight:600}.vehicle-card button{min-height:40px;padding:8px 14px;font-size:.92rem}.row-actions{flex-wrap:wrap;gap:8px;display:flex}button.secondary{background:var(--surface);color:var(--fg);border-color:var(--border);box-shadow:none;font-weight:500}button.secondary:hover{background:var(--bg);border-color:var(--muted)}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-left:auto;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-block}.badge.open{background:var(--red-bg);color:var(--red);border-color:#0000}.badge.resolved,.badge.green{background:var(--green-bg);color:var(--green);border-color:#0000}.badge.manager{background:var(--primary-50);color:var(--primary-600);border-color:#0000}.incident-note{white-space:pre-wrap;margin:10px 0}.incident-photo{border-radius:var(--radius-sm);border:1px solid var(--border);max-width:100%;max-height:260px;display:block}.incident-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;font-size:.9rem;display:flex}.brand{align-items:center;gap:8px;display:inline-flex}.logo{color:var(--primary);flex:none}.brand-img{object-fit:contain;border-radius:50%;flex:none}.login{gap:18px;padding-top:4vh}.login-lang{justify-content:flex-end;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:4px;margin:4px 0;display:flex}.login-brand h1{font-size:1.55rem}.login-brand .tagline{margin:0}.login-brand .logo{background:var(--primary-50);box-sizing:content-box;border-radius:50%;padding:14px}.app.has-bottom-nav{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.bottom-nav{z-index:30;background:var(--surface);border-top:1px solid var(--border);width:100%;max-width:540px;padding:6px 8px calc(8px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -2px 14px #0f172a0f}.nav-item{min-height:54px;box-shadow:none;color:var(--muted);background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 4px;font-weight:600;display:flex}.nav-item:hover{background:var(--bg)}.nav-item.active{color:var(--primary)}.nav-icon{display:inline-flex;position:relative}.nav-label{font-size:.72rem;line-height:1.3}.nav-badge{background:var(--red);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.64rem;font-weight:700;display:flex;position:absolute;top:-6px;right:-10px}.input-icon{position:relative}.input-icon>svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-icon input{padding-left:40px}.input-icon.with-eye input{padding-right:50px}.masked{-webkit-text-security:disc;text-security:disc}.input-eye{width:44px;height:44px;min-height:0;box-shadow:none;color:var(--muted);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.input-eye:hover,.input-eye:active{background:var(--bg)}.login-foot{text-align:center;flex-direction:column;gap:4px;margin-top:4px;display:flex}.login-foot p{color:var(--muted);margin:0;font-size:.85rem}.login-foot .muted-sm{opacity:.75;font-size:.78rem}.fleet .apphead{justify-content:space-between;align-items:center;gap:12px;margin:2px 0 14px;display:flex}.fleet .apphead .hi{color:var(--ink3);font-size:.78rem}.fleet .apphead .nm2{font-size:1.2rem;font-weight:800}.fleet .avatar{background:var(--ink);width:40px;height:40px;color:var(--paper);font-family:var(--mono);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.fleet .myhead{justify-content:space-between;align-items:center;margin:4px 2px 8px;display:flex}.fleet .myttl{font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink3);font-size:1.15rem;font-weight:700}.fleet .mycnt{font-family:var(--mono);color:var(--accent);font-size:.9rem;font-weight:700}.fleet .vswitch{gap:8px;margin:0 0 6px;padding:2px 0 6px;display:flex;overflow-x:auto}.fleet .vchip{background:var(--panel);border:1px solid var(--line);min-height:0;box-shadow:none;color:var(--fg);border-radius:12px;flex:none;align-items:center;gap:8px;padding:8px 12px;display:flex}.fleet .vchip.on{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.fleet .vchip.on .cp{color:var(--accent)}.fleet .vchip.on .ct{color:var(--ink2)}.fleet .vchip-body{text-align:left;line-height:1.2}.fleet .cdot{border-radius:50%;flex:none;width:9px;height:9px}.fleet .cdot.red{background:var(--red)}.fleet .cdot.yellow{background:var(--yellow)}.fleet .cdot.green{background:var(--green)}.fleet .cp{font-size:.8rem;font-weight:700;display:block}.fleet .ct{color:var(--ink3);font-size:.66rem}.fleet .myveh{color:#fff;border-radius:18px;padding:18px}.fleet .myveh.red{background:linear-gradient(135deg,#e0432f,#a8240f)}.fleet .myveh.yellow{background:linear-gradient(135deg,#e8920c,#b36a00)}.fleet .myveh.green{background:linear-gradient(135deg,#2b8a3e,#1c5e2b)}.fleet .myveh-lab{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;opacity:.9;font-size:.66rem}.fleet .myveh-pl{margin-top:2px;font-size:1.7rem;font-weight:700}.fleet .myveh-ty{opacity:.85;margin-top:2px;font-size:.78rem}.fleet .myveh-od{justify-content:space-between;align-items:flex-end;margin-top:16px;display:flex}.fleet .myveh-od small{opacity:.8;text-transform:uppercase;letter-spacing:.05em;font-size:.66rem;display:block}.fleet .myveh-od .k{font-size:1.3rem;font-weight:700}.fleet .myveh-badge{color:#fff;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:#ffffff2e;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.66rem;font-weight:700;display:inline-flex}.fleet .myveh-alarm{background:#ffffff29;border-radius:10px;margin-top:12px;padding:9px 11px;font-size:.8rem;font-weight:600}.fleet .quick{grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0;display:grid}.fleet .qa{background:var(--panel);border:1px solid var(--line);min-height:0;box-shadow:none;color:var(--fg);border-radius:14px;flex-direction:column;align-items:center;gap:5px;padding:12px 4px;display:flex}.fleet .qa .qi{font-size:1.3rem}.fleet .qa .ql{color:var(--ink2);text-align:center;font-size:.7rem;font-weight:600;line-height:1.25}.fleet .blocktitle{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);margin:14px 2px 8px;font-size:.66rem}.fleet .duecard{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.fleet .due{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:12px 14px;display:flex}.fleet .due:last-child{border-bottom:0}.fleet .due-body{min-width:0}.fleet .due-nm{font-size:.85rem;font-weight:600}.fleet .due-me{color:var(--ink3);margin-top:1px;font-size:.7rem}.fleet .due .s-badge{flex:none;margin-left:auto}.fleet .seclbl-row{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);justify-content:space-between;margin:4px 2px;font-size:.66rem;display:flex}.fleet .seclbl-row .hint{color:var(--accent)}.fleet .opt-list{flex-direction:column;gap:8px;display:flex}.fleet .opt{background:var(--panel);border:1.5px solid var(--line);min-height:0;box-shadow:none;color:var(--fg);text-align:left;border-radius:13px;align-items:center;gap:11px;padding:12px 13px;display:flex}.fleet .opt.sel{border-color:var(--accent);background:var(--accent-soft)}.fleet .opt-check{border:2px solid var(--line);color:#fff;background:#fff;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;font-size:.8rem;display:grid}.fleet .opt.sel .opt-check{background:var(--accent);border-color:var(--accent)}.fleet .opt-body{min-width:0}.fleet .opt-nm{font-size:.88rem;font-weight:600;display:block}.fleet .opt-me{color:var(--ink3);font-size:.68rem}.fleet .opt .s-badge{flex:none;margin-left:auto}.fleet .field-row{gap:11px;display:flex}.fleet .field-row .field{flex:1;min-width:0}@media (width<=520px){.fleet .field-row{flex-direction:column;gap:13px}}.fleet input[type=date]{appearance:none;text-align:left;min-width:0;max-width:100%}.fleet input[type=date]::-webkit-date-and-time-value{text-align:left}.fleet .summary-box{border:1.5px solid var(--accent);background:#fff;border-radius:13px;padding:13px 15px}.fleet .summary-title{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:8px;font-size:.66rem}.fleet .summary-row{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;padding:5px 0;font-size:.8rem;display:flex}.fleet .summary-row:last-child{border-bottom:0}.fleet .done-screen{text-align:center;align-items:center;padding-top:24px}.fleet .done-ring{background:var(--green-bg);width:84px;height:84px;color:var(--green);border-radius:50%;place-items:center;margin:0 auto;font-size:2.4rem;display:grid}.fleet .reset-list{background:var(--panel);border:1px solid var(--line);border-radius:13px;width:100%;padding:4px 14px}.fleet .reset-row{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;padding:9px 0;font-size:.82rem;display:flex}.fleet .reset-row:last-child{border-bottom:0}.fleet .reset-row .mono{color:var(--green);font-weight:700}.fleet .allveh{flex-direction:column;gap:9px;display:flex}.fleet .vrow{background:var(--panel);border:1px solid var(--line);border-radius:13px;align-items:center;gap:11px;padding:11px 13px;display:flex}.fleet .vrow.mine{border-color:var(--accent);background:var(--accent-soft)}.fleet .vrow-body{min-width:0}.fleet .vrow-pl{align-items:center;gap:7px;font-size:.85rem;font-weight:700;display:flex}.fleet .vrow-ty{color:var(--ink3);font-size:.7rem}.fleet .mine-tag{font-family:var(--mono);background:var(--accent);color:#fff;letter-spacing:.04em;border-radius:5px;padding:2px 6px;font-size:.6rem}.fleet .vrow-open{min-height:0;margin-left:auto;padding:7px 14px;font-size:.82rem}.fleet .vrow-lock{color:var(--ink3);white-space:nowrap;margin-left:auto;font-size:.72rem}.app-header.header-menu{justify-content:flex-start;gap:10px}.fleet .menu-btn{background:var(--surface);width:40px;height:40px;min-height:0;color:var(--fg);border:1px solid var(--border);box-shadow:none;place-items:center;padding:0;display:grid}.fleet .menu-btn:hover{background:var(--bg)}.menu-drawer{background:var(--panel);z-index:50;flex-direction:column;width:300px;max-width:86vw;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:12px 0 40px -16px #0006}.menu-drawer.on{transform:none}.menu-drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.menu-drawer-head strong{font-size:1.05rem}.menu-drawer-head .x{width:34px;height:34px;min-height:0;color:var(--ink2);box-shadow:none;background:#f1f5f9;border:0;padding:0}.menu-drawer-body{flex-direction:column;gap:18px;padding:18px 20px;display:flex}.menu-section{flex-direction:column;gap:8px;display:flex}.menu-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--ink3);font-size:.66rem}.tg-link{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:44px;color:var(--fg);justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-weight:500;text-decoration:none;display:flex}.tg-link:hover{background:var(--bg)}.tg-link-inline{min-height:38px;padding:6px 12px;font-size:.9rem;display:inline-flex}.admin{background:var(--bg);min-height:100vh;color:var(--fg);display:flex}.sidebar{background:linear-gradient(180deg, var(--accent), var(--accent-d,#0030cf));color:#fff;flex-direction:column;flex:none;width:248px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:12px;padding:4px 8px 18px;display:flex}.sidebar-brand strong{color:#fff;font-size:1.05rem;line-height:1.2}.sidebar-nav{flex:1;overflow-y:auto}.nav-group-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:#ffffff8c;padding:14px 10px 6px;font-size:.6rem}.nav-link{width:100%;min-height:0;box-shadow:none;color:#ffffffd1;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;margin:2px 0;padding:11px 12px;font-size:.92rem;font-weight:600;display:flex}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:var(--accent);background:#fff}.nav-link .nav-count{background:var(--red);color:#fff;min-width:20px;height:20px;font-family:var(--mono);border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 7px;font-size:.7rem;font-weight:700;display:inline-flex}.sidebar-foot{flex-direction:column;gap:6px;margin-top:auto;display:flex}.sidebar-user{background:#ffffff1a;border-radius:12px;align-items:center;gap:11px;padding:11px;display:flex}.sidebar-user .av{width:36px;height:36px;color:var(--accent);font-family:var(--mono);background:#fff;border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:grid}.sidebar-user .nm{color:#fff;font-size:.82rem;font-weight:700;line-height:1.2}.sidebar-user .rl{color:#ffffffb3;font-size:.72rem}.sidebar-signout{color:#ffffffe6;width:100%;min-height:0;box-shadow:none;background:#ffffff14;border:1px solid #ffffff2e;padding:9px;font-size:.85rem;font-weight:600}.sidebar-signout:hover{background:#ffffff29}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-top{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 28px;display:flex;position:sticky;top:0}.admin-head{flex-direction:column;display:flex}.admin-crumb{color:var(--ink3);font-size:.72rem}.admin-burger{background:var(--surface);border:1px solid var(--border);width:40px;height:40px;min-height:0;color:var(--fg);box-shadow:none;place-items:center;padding:0;display:none}.admin-title{letter-spacing:-.02em;font-size:1.4rem;font-weight:800;line-height:1.25}.admin-top-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.admin-content{flex:1;padding:26px 28px 60px}.admin-scrim{display:none}@media (width<=900px){.sidebar{z-index:50;transition:transform .25s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:8px 0 30px -12px #0f172a66}.sidebar.open{transform:none}.admin-burger{display:inline-grid}.admin-scrim{z-index:40;background:#0f172a73;display:block;position:fixed;inset:0}}.admin .sidebar-brand strong{font-size:1.35rem}.admin .nav-group-label{font-size:.78rem}.admin .nav-link{font-size:1.2rem}.admin .nav-count{font-size:.9rem}.admin .sidebar-user .av{font-size:1rem}.admin .sidebar-user .nm{font-size:1.05rem}.admin .sidebar-user .rl{font-size:.92rem}.admin .sidebar-signout{font-size:1.1rem}.admin .admin-crumb{font-size:.92rem}.admin .admin-title{font-size:1.85rem}.admin .kpi-t{font-size:1.05rem}.admin .kpi-n{font-size:2.7rem}.admin .kpi-s{font-size:.95rem}.admin .card-head h2{font-size:1.3rem}.admin .frow.head{font-size:.85rem}.admin .fplate{font-size:1.25rem}.admin .fodo{font-size:1.15rem}.admin .fworst{font-size:1.05rem}.admin .fsub{font-size:.95rem}.admin .search,.admin .search input{font-size:1rem}.admin .notice,.admin .vehicle-card-head strong,.admin .field label,.admin .row-actions button{font-size:1.05rem}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.admin .kpis,.admin .card,.admin .vehicle-list,.admin .form{animation:.4s both rise}.admin .kpi,.admin .card,.admin .vehicle-card{transition:transform .15s,box-shadow .15s}.admin .kpi:hover,.admin .vehicle-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.admin .card:hover{box-shadow:var(--shadow-md)}
