:root{--nav-height:max(64px, 4rem);--nav-safe-area:env(safe-area-inset-bottom, 0px);--nav-space:calc(var(--nav-height) + var(--nav-safe-area));--floating-action-height:max(48px, 3rem);--floating-action-gap:12px;font-family:system-ui,sans-serif;font-size:100%;line-height:1.5;color:#17223b;background:#f5f8fc;-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box}html,body,#root{width:100%;min-width:0;min-height:100%}html{scroll-padding-block:20px calc(var(--nav-space) + 24px)}body{margin:0}main{width:100%;min-width:0;min-height:100vh;min-height:100svh;padding-bottom:var(--nav-space)}fieldset,form,label,.vehicle-card{min-inline-size:0}input,select,textarea{min-width:0;scroll-margin-block:24px}img{max-width:100%}header{background:#0877df;color:#fff;padding:max(16px,env(safe-area-inset-top,0px)) max(18px,env(safe-area-inset-right,0px)) 16px max(18px,env(safe-area-inset-left,0px));display:grid;gap:4px}header span{font-size:13px;opacity:.9}section{width:100%;min-width:0;padding:24px max(18px,env(safe-area-inset-right,0px)) 24px max(18px,env(safe-area-inset-left,0px))}h1{font-size:20px}nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);min-height:var(--nav-height);padding-bottom:var(--nav-safe-area);background:#fff;border-top:1px solid #dfe7f1;z-index:5}button{min-height:44px;border:0;background:transparent;color:#0877df;font:inherit;cursor:pointer}input,select,textarea{max-width:100%;font-family:inherit;font-size:max(1rem,16px);line-height:1.5}button,a,input,select,textarea{touch-action:manipulation}nav button{min-height:var(--nav-height);padding:8px 4px}nav button[aria-current=page]{color:#075eae;font-weight:700;background:#edf6ff}.registration{max-width:620px;margin:auto;padding-bottom:calc(var(--nav-space) + 24px)}.registration-heading{margin-bottom:14px}.registration-heading h1{margin:0}.registration-heading p{margin:6px 0 0;color:#61718a;font-size:13px}.vehicle-information{display:grid;gap:14px}.vehicle-information>.compact-button{justify-self:start}.vehicle-information .registration-heading{margin-bottom:0}.vehicle-information .registration-group h2{margin:0;color:#075eae;font-size:1rem}.vehicle-information .registration-group p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.registration-values{display:grid;gap:12px;margin:0}.registration-values>div{display:grid;gap:5px;min-width:0}.registration-values dt{color:#61718a;font-size:.875rem}.registration-values dd{margin:0;font-weight:600;overflow-wrap:anywhere}.detail-license-photo{display:block;width:100%;padding:0;border:1px solid #dbe6f3;border-radius:10px;background:#f7faff;cursor:zoom-in}.detail-license-photo img{display:block;width:100%;height:auto;object-fit:contain;border-radius:inherit}.registration-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.registration-actions button{min-height:46px;border:1px solid #ccd8e7;border-radius:9px;background:#fff;font-weight:600}.registration-actions .discard-draft{color:#66758a}.registration form{display:grid;gap:14px}.registration-group{display:grid;gap:12px;margin:0;padding:14px;border:1px solid #dbe6f3;border-radius:12px;background:#fff}.registration-group legend{padding:0 5px;color:#075eae;font-size:14px;font-weight:700}.registration form>label{display:grid;gap:7px;color:#263753;font-weight:600}.registration-group>label{display:grid;gap:7px;color:#263753;font-weight:600}.registration input:not([type=checkbox]),.registration select,.registration input[type=file]{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px;border:1px solid #b9c9dc;border-radius:9px;color:#17223b;background:#fff;font-family:inherit;font-weight:inherit}.registration input[type=file]{padding:9px}.registration .checkbox-field{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 2px;font-weight:500}.registration .checkbox-field input{width:22px;height:22px;margin:0}.registration-success{display:grid;gap:14px;align-content:start;text-align:center}.registration-success .compact-button{min-height:46px;border:1px solid #ccd8e7;border-radius:9px;background:#fff;color:#075eae;font-weight:700}.license-preview{display:block;width:100%;max-height:300px;object-fit:contain;border:1px solid #dbe6f3;border-radius:10px;cursor:zoom-in;background:#f7faff}.photo-help{margin:0;color:#61718a;font-size:12px;line-height:1.5}.replace-photo{border:1px solid #ccd8e7;border-radius:8px;background:#f7faff;font-weight:600}.auth-gate{min-height:100vh;min-height:100svh;padding-bottom:0}.auth-card{max-width:480px;margin:42px auto;display:grid;gap:16px}.auth-card h1,.auth-card p{margin:0}.auth-card p{color:#61718a;line-height:1.6}.auth-card small{color:#718097;line-height:1.5}.wecom-login{min-height:50px;display:grid;place-items:center;border-radius:9px;background:#f47a22;color:#fff;font-weight:700;text-decoration:none}.submit-registration{width:100%;min-height:50px;border-radius:9px;color:#fff;background:#f47a22;font-weight:700;box-shadow:0 3px 8px #8d4a1730}.scope-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0 18px}.scope-tabs button{min-height:42px;border:1px solid #ccd8e7;border-radius:8px;background:#fff}.scope-tabs .selected{color:#fff;background:#0877df;border-color:#0877df}.query-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.query-actions .status{display:grid;place-items:center;padding:0 10px}.profile{display:grid;gap:14px}.profile h1,.profile h2{margin:0}.profile h2{color:#263753;font-size:16px}.profile-card,.profile-section{padding:14px;border:1px solid #dbe6f3;border-radius:12px;background:#fff}.profile-card p{margin:6px 0}.profile-card strong{font-size:18px}.identity-hint{margin:10px 0 0;color:#61718a;font-size:12px;line-height:1.5}.workbench-links{display:grid;gap:8px;margin:0;padding:0;list-style:none}.workbench-links button{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border:1px solid #ccd8e7;border-radius:9px;background:#f7faff;color:#075eae;font-weight:600;text-align:left}.workbench-links button:after{content:"›";font-size:22px;line-height:1}@media(max-width:420px){section{padding:18px max(14px,env(safe-area-inset-right,0px)) 18px max(14px,env(safe-area-inset-left,0px))}.registration-actions{grid-template-columns:1fr}}.workbench{padding-bottom:calc(var(--nav-space) + var(--floating-action-height) + var(--floating-action-gap) + 24px);max-width:680px;margin:auto}.workbench-title,.vehicle-heading,.progress-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.workbench-title{flex-wrap:wrap}.workbench-title>*{min-width:0}.workbench-title-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workbench-title p,.vehicle-card p{margin:4px 0;color:#61718a;font-size:13px}.compact-button{min-height:44px;border:1px solid #cddbeb;border-radius:8px;padding:0 12px;background:#fff}.workbench-switch{display:flex;gap:8px;margin:12px 0}.workbench-switch{flex-wrap:wrap}.workbench-switch button{min-height:44px;padding:0 14px;border:1px solid #ccd8e7;border-radius:7px;background:#fff}.workbench-switch .selected{color:#fff;background:#0877df;border-color:#0877df}.management-editor{display:grid;gap:10px;margin:14px 0;padding:14px;border:1px solid #dbe6f3;border-radius:12px;background:#fff}.management-editor label{display:grid;gap:6px;font-weight:600}.management-editor input:not([type=checkbox]),.management-editor select{min-height:42px;box-sizing:border-box;width:100%;padding:8px 10px;border:1px solid #b9c9dc;border-radius:8px;font-family:inherit;font-weight:inherit}.management-editor .checkbox-field{display:flex;align-items:center;gap:10px;min-height:40px}.management-editor button{min-height:42px;border-radius:8px}.search,.filter{display:block;margin:16px 0;font-weight:600}.search input,.filter select{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:11px;border:1px solid #ccd8e7;border-radius:9px;font-family:inherit;font-weight:inherit;background:#fff}.vehicle-list{display:grid;gap:10px}.vehicle-card{background:#fff;border:1px solid #e1e8f1;border-radius:12px;padding:13px;box-shadow:0 1px 2px #17223b0d}.plate{min-height:44px;padding:0;color:#17223b;font-size:17px;font-weight:700}.vehicle-heading span{font-size:12px;color:#718097}.progress-row{align-items:flex-end;flex-wrap:wrap}.progress-control{display:grid;gap:4px;font-size:12px}.status{min-height:44px;min-width:70px;border-radius:6px;color:#536277;background:#edf1f6;border:0;font-family:inherit;font-weight:inherit;font-size:max(1rem,16px)}.status.completed{color:#087a46;background:#dff5e8}.status.failed{color:#b82727;background:#ffe1e1}.not-applicable{min-height:44px;display:grid;place-items:center;padding:0 8px;color:#718097;background:#f0f3f7;border-radius:6px}.image-button{min-height:44px;padding:0 8px;border:1px solid #ccd8e7;border-radius:6px;background:#f7faff}.remark-mark{margin-left:7px;padding:2px 5px;border-radius:4px;color:#a95b00;background:#fff0dc;font-size:11px}.return-mark{margin-right:6px;padding:2px 5px;border-radius:4px;color:#176645;background:#dff7e9;font-size:11px;font-weight:600}.new-vehicle{position:fixed;left:max(14px,env(safe-area-inset-left,0px));right:max(14px,env(safe-area-inset-right,0px));bottom:calc(var(--nav-space) + var(--floating-action-gap));z-index:4;min-height:var(--floating-action-height);border-radius:9px;color:#fff;background:#f47a22;box-shadow:0 4px 10px #8d4a1760}.progress-detail{display:grid;grid-template-columns:minmax(58px,72px) minmax(72px,82px) minmax(0,1fr);gap:6px 10px;align-items:center;padding:10px 0;border-bottom:1px solid #e7edf5}.progress-detail small{color:#61718a;font-size:12px}.progress-detail .not-applicable{grid-column:2 / 4}.finance-row{display:flex;align-items:end;justify-content:space-between;gap:8px;flex-wrap:wrap}.finance-row label{display:grid;gap:4px;font-size:12px;color:#536277}.finance-row input[type=checkbox]{margin-right:4px}.payment{min-height:44px;border:0;border-radius:6px;padding:0 8px;font-family:inherit;font-weight:inherit;color:#536277;background:#ffe1e1}.payment.paid{color:#087a46;background:#dff5e8}.note-button{min-height:44px;padding:0 8px;border:1px solid #ccd8e7;border-radius:6px;background:#f7faff}.note-button.has-note{color:#a95b00;border-color:#f3bc80;background:#fff0dc}.finance-note-editor{display:grid;gap:8px;margin-top:12px}.finance-note-editor textarea{width:100%;min-height:68px;box-sizing:border-box;padding:8px;border:1px solid #ccd8e7;border-radius:8px;font-family:inherit;font-weight:inherit}.batch-confirm{position:fixed;left:18px;right:18px;bottom:calc(var(--nav-space) + var(--floating-action-height) + 24px);z-index:4;min-height:46px;border-radius:9px;color:#fff;background:#0877df;box-shadow:0 4px 10px #17528d40}.management-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.management-metrics button{min-height:78px;display:grid;justify-items:start;padding:12px;border:1px solid #dbe6f3;border-radius:10px;background:#fff}.management-metrics strong{color:#f47a22;font-size:24px}.management-metrics span{color:#61718a;font-size:13px}.statistics-presets{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:16px;color:#61718a;font-size:13px}.statistics-presets button{min-height:44px;padding:0 12px;border:1px solid #ccd8e7;border-radius:8px;background:#fff;font-weight:600}.statistics-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.statistics-filters label{display:grid;gap:5px;color:#536277;font-size:13px;font-weight:600}.statistics-filters input,.statistics-filters select{width:100%;min-height:44px;padding:8px;border:1px solid #ccd8e7;border-radius:8px;background:#fff;color:#17223b;font-family:inherit;font-weight:inherit}.statistics-filters button{grid-column:1 / -1;min-height:46px}.statistics-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.statistics-overview article,.statistics-card{padding:13px;border:1px solid #dbe6f3;border-radius:12px;background:#fff}.statistics-overview strong{display:block;color:#f47a22;font-size:24px}.statistics-overview span{color:#61718a;font-size:13px}.statistics-sections{display:grid;gap:10px}.statistics-card h2{margin:0 0 8px;color:#263753;font-size:15px}.statistics-card p{color:#61718a;font-size:13px}.statistics-row{display:flex;align-items:center;justify-content:space-between;min-height:32px;border-top:1px solid #edf1f6;color:#536277;font-size:13px}.statistics-row strong{color:#17223b}.export-statistics{width:100%;min-height:48px;margin-top:16px;border-radius:9px;color:#fff;background:#f47a22;font-weight:700}form:not(.registration form){display:grid;gap:12px}form:not(.registration form)>label{display:grid;gap:7px;color:#263753;font-weight:600}form:not(.registration form) input:not([type=checkbox]),form:not(.registration form) select,form:not(.registration form) textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #b9c9dc;border-radius:9px;color:#17223b;background:#fff}form:not(.registration form) textarea{min-height:96px;resize:vertical}p,small,label,button,span{overflow-wrap:anywhere}.app-dialog{position:fixed;top:0;right:0;bottom:0;left:0;top:calc(var(--visible-top, 0px) + var(--visible-height, 100dvh) / 2);bottom:auto;transform:translateY(-50%);width:min(440px,calc(100% - 28px));max-width:calc(100% - 28px);max-height:calc(100vh - 28px);max-height:calc(var(--visible-height, 100dvh) - 28px);margin:0 auto;overflow:auto;overscroll-behavior:contain;padding:18px;border:1px solid #dbe6f3;border-radius:12px;background:#fff;color:#17223b;box-shadow:0 12px 32px #17223b30}.app-dialog::backdrop{background:#17223b80}.quick-entry-field{display:grid;gap:7px;min-width:0;color:#263753;font-weight:600}.quick-entry-control{display:flex;align-items:stretch;gap:8px;min-width:0}.quick-entry-control input{flex:1;min-width:0}.quick-entry-control .quick-entry-open{flex:0 0 auto;min-height:46px;padding:8px 10px;border:1px solid #b9c9dc;border-radius:9px;background:#edf6ff;color:#075eae}.quick-entry-control input[readonly]{cursor:pointer}.quick-keyboard.app-dialog{display:block;inset:auto 0 0;top:auto;bottom:0;transform:none;width:min(620px,100%);max-width:100%;max-height:calc(var(--visible-height, 100dvh) - 12px);margin:0 auto;padding:12px max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));border-radius:16px 16px 0 0;overflow:auto}.quick-keyboard-header,.quick-keyboard-value,.quick-keyboard-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.quick-keyboard-header,.quick-keyboard-value,.quick-keyboard-body{margin-bottom:10px}.quick-keyboard-header{position:sticky;top:-12px;z-index:1;background:#fff}.quick-keyboard-header h2{margin:0;font-size:1.125rem}.quick-keyboard.app-dialog button{min-width:0;min-height:46px;margin:0;padding:8px;font-size:max(1rem,16px)}.quick-keyboard-value{padding:8px 10px;border:1px solid #b9c9dc;border-radius:10px;background:#f5f8fc}.quick-keyboard-value output{display:block;min-width:0;overflow-x:auto;white-space:pre;font-size:1.375rem;font-weight:700;color:#17223b}.quick-keyboard-value button{flex:0 0 auto}.quick-keyboard-body{min-height:0}.quick-keyboard-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.quick-keyboard-tabs button[aria-pressed=true]{background:#0877df;color:#fff}.plate-key-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(44px,2.75rem)),1fr));gap:5px}.numeric-key-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quick-keyboard .numeric-key-grid button{min-height:52px;font-size:1.25rem;font-weight:600}.plate-keyboard-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.quick-keyboard.app-dialog .key-done{background:#f47a22;color:#fff;font-weight:700}.quick-keyboard-footer{flex-wrap:wrap;color:#61718a;font-size:.75rem}.quick-keyboard button:disabled{opacity:.45;cursor:default}.app-dialog button{min-height:46px;margin:4px;padding:8px 12px;border-radius:8px;background:#edf6ff}.app-dialog p{margin-top:0}section[aria-label=共享备注] label{display:grid;gap:7px}section[aria-label=共享备注] textarea{width:100%;min-height:120px;padding:10px;border:1px solid #b9c9dc;border-radius:9px;resize:vertical}.image-viewer.app-dialog{width:100%;max-width:none;height:var(--visible-height, 100dvh);max-height:none;margin:0;transform:none;top:var(--visible-top, 0px);bottom:auto;padding:0;border:0;border-radius:0;background:#111;color:#fff;overflow:hidden}.image-viewer[open]{display:grid;place-items:center}.image-viewer .viewer-close{position:absolute;top:max(12px,env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));z-index:1;background:#fff;color:#075eae}.image-viewer img{max-width:100%;max-height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.image-viewer p{padding:24px}html[data-keyboard-open=true] nav,html[data-keyboard-open=true] .new-vehicle,html[data-keyboard-open=true] .batch-confirm{visibility:hidden;pointer-events:none}@media(max-width:767px),(pointer:coarse){.registration,.workbench,.auth-card{width:100%;max-width:none}}@media(max-width:360px){.statistics-filters{grid-template-columns:minmax(0,1fr)}.progress-detail{grid-template-columns:minmax(48px,auto) minmax(0,1fr)}.progress-detail small{grid-column:1 / -1}}@media(min-width:640px){.statistics-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.statistics-filters button{grid-column:auto;align-self:end}.statistics-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.statistics-sections{grid-template-columns:repeat(2,minmax(0,1fr))}}
