:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.4;font-weight:400;color:#1c1f24;background-color:#f5f6f8}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#1c1f24;background-color:#f5f6f8}#root{min-height:100vh}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0}ul{margin:0;padding:0;list-style:none}.app-shell{max-width:1140px;margin:0 auto;padding:1.5rem;display:grid;gap:1rem}.panel{background:#fff;border:1px solid #d7dde4;border-radius:10px;padding:1rem}.app-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.sync-actions{display:grid;justify-items:end;gap:.2rem}.sync-helper,.sync-meta{font-size:.82rem}.subtle{color:#5a6472;font-size:.92rem}.alert{border-width:2px}.alert-form{border-color:#b45309;background:#fffbeb}.alert-shell{border-color:#b91c1c;background:#fef2f2}.alert-shell h2{margin-bottom:.5rem}.alert-shell ul{display:grid;gap:.4rem;list-style:disc;padding-left:1.25rem}.toast-region{position:fixed;left:50%;bottom:calc(.9rem + env(safe-area-inset-bottom));transform:translate(-50%);width:min(28rem,calc(100vw - 1.5rem));pointer-events:none;z-index:50}.toast{padding:.65rem .9rem;border:1px solid transparent;border-radius:10px;font-weight:700;box-shadow:0 10px 28px #0f172a26}.toast-success{background:#dcfce7;border-color:#15803d;color:#14532d}.toast-warning{background:#fef3c7;border-color:#b45309;color:#78350f}.toast-error{background:#fee2e2;border-color:#b91c1c;color:#7f1d1d}.forms-grid,.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-shell{display:block}.mobile-form-toggle{display:none}.form-grid{display:grid;gap:.75rem;margin-top:.75rem}.form-grid label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}.optional-field span{font-weight:500;color:#556070}.form-meta{padding-top:.2rem}input,select,button{font:inherit}input,select{border:1px solid #aeb7c2;border-radius:8px;padding:.5rem .6rem;background:#fff}input:focus,select:focus,button:focus{outline:2px solid #1d4ed8;outline-offset:1px}.form-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:8px;padding:.5rem .75rem;cursor:pointer;font-weight:600}.btn:disabled{cursor:not-allowed;opacity:.65}.btn-primary{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.btn-secondary{background:#f2f4f7;border-color:#c4ccd6;color:#1c1f24}.btn-link{background:transparent;border-color:transparent;color:#1d4ed8;padding:0}.phase-badge{display:inline-grid;gap:.15rem;padding:.4rem .6rem;border-radius:8px;border:1px solid transparent;text-align:left}.phase-signal{font-size:.9rem;font-weight:800;letter-spacing:.02em}.phase-banner{display:grid;gap:.25rem;width:100%;padding:.8rem .9rem;border-radius:10px;border:2px solid transparent}.phase-banner-signal{font-size:1.05rem;font-weight:800;letter-spacing:.02em}.phase-banner-reason{font-size:.9rem;font-weight:500}.phase-safe{background:#dcfce7;border-color:#15803d;color:#14532d}.phase-warning{background:#fef3c7;border-color:#b45309;color:#78350f}.phase-danger{background:#fee2e2;border-color:#b91c1c;color:#7f1d1d}.risk-label{display:inline-grid;gap:.15rem}.risk-label strong{font-size:.95rem}.risk-safe strong{color:#166534}.risk-warning strong{color:#92400e}.risk-danger strong{color:#991b1b}.data-label{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#5a6472}.vehicle-list{display:grid;gap:.75rem;margin-top:.75rem}.fleet-client-groups{display:grid;gap:1rem;margin-top:.75rem}.fleet-client-group{display:grid;gap:.45rem}.fleet-client-heading{font-size:.95rem;font-weight:800;letter-spacing:.01em;color:#243244}.status-summary-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.75rem;padding:.35rem;border:1px solid #d7dde4;border-radius:10px;background:#fffffff2}.status-summary-item{display:grid;gap:.1rem;align-content:center;min-height:3.2rem;padding:.55rem .65rem;text-align:left;cursor:pointer;appearance:none;-webkit-appearance:none;background-clip:padding-box;border-width:2px;border-style:solid;border-radius:8px;transition:transform .14s ease,box-shadow .14s ease}.status-summary-item:hover{transform:translateY(-1px)}.status-summary-item.is-active{box-shadow:inset 0 0 0 1px #1d4ed8}.status-summary-item:focus-visible{outline:2px solid #1d4ed8;outline-offset:1px}.phase-all{background:#eef2ff;border-color:#6366f1;color:#312e81}.status-summary-label{display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.status-summary-count{font-size:1.35rem;line-height:1}.status-summary-total{margin-top:.45rem}.vehicle-card{width:100%;text-align:left;border:2px solid #c7d0da;border-radius:10px;padding:.85rem;display:grid;gap:.75rem;background:#fff;min-height:6.5rem;touch-action:manipulation}.vehicle-safe{border-color:#15803d;background:#f8fdf9}.vehicle-warning{border-color:#b45309;background:#fffbeb}.vehicle-danger{border-color:#991b1b;background:#fef2f2}.vehicle-card.is-selected{border-width:3px;box-shadow:inset 0 0 0 1px #1d4ed8}.vehicle-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.vehicle-title{font-size:1rem}.vehicle-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;align-items:start}.issue-count-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .55rem;border-radius:999px;font-size:.82rem;font-weight:700;border:1px solid transparent}.issue-count-safe{background:#ecfdf3;color:#166534;border-color:#166534}.issue-count-warning{background:#fffbeb;color:#92400e;border-color:#b45309}.issue-count-danger{background:#fef2f2;color:#991b1b;border-color:#b91c1c}.vehicle-selected-indicator{font-size:.84rem;font-weight:700;color:#1d4ed8}.vehicle-vin{font-size:.85rem}.vehicle-meta-row{font-size:.82rem}.detail-content{display:grid;gap:.85rem}.detail-identity{display:grid;gap:.1rem}.detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.vehicle-details-editor{display:grid;gap:.6rem;border:1px solid #d7dde4;border-radius:8px;padding:.75rem;background:#f8fafc}.vehicle-details-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.detail-edit-error{color:#991b1b;font-weight:600}.issue-draft-list,.issue-list,.history-list{display:grid;gap:.5rem;margin-top:.55rem}.issue-draft-list li,.issue-list li,.history-list li{border:1px solid #d9dfe7;border-radius:8px;padding:.55rem .65rem;background:#fafbfc}.issue-draft-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem}.issue-item{display:grid;gap:.35rem}.issue-item-top{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem}.issue-context{padding-left:.1rem}.severity{display:inline-block;font-size:.78rem;font-weight:700;border-radius:999px;padding:.15rem .5rem;text-transform:uppercase;letter-spacing:.02em}.severity-minor{background:#e2e8f0;color:#334155}.severity-major{background:#fef3c7;color:#92400e}.severity-critical{background:#fee2e2;color:#991b1b}.history-list.compact summary{cursor:pointer;font-weight:700}.history-list.compact details[open] summary{margin-bottom:.45rem}.history-issue-list{display:grid;gap:.35rem}.history-issue-list li{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.45rem;border:1px solid #d9dfe7;border-radius:6px;padding:.4rem .5rem;background:#fff}.empty-state{padding:.8rem;border:1px dashed #c0c9d4;border-radius:8px;background:#f8fafc;color:#5a6472;margin-top:.75rem}@media(max-width:940px){.app-shell{padding:1rem}.app-header{align-items:flex-start;flex-direction:column}.sync-actions{justify-items:start}.forms-grid,.content-grid,.vehicle-card-meta,.detail-meta,.status-summary-bar{grid-template-columns:1fr}}@media(max-width:768px){html,body,#root{height:100%;width:100%}body{overflow:hidden;overscroll-behavior-y:none}#root{height:100vh;height:100dvh;overflow:hidden}.app-shell{gap:.85rem;max-width:none;height:100%;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-top:calc(1rem + env(safe-area-inset-top));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:calc(1rem + env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left))}.toast-region{width:min(24rem,calc(100vw - 1rem));bottom:calc(.75rem + env(safe-area-inset-bottom))}.app-header{order:1}.alert{order:2}.content-grid{order:3;grid-template-columns:1fr}.forms-grid{order:4;grid-template-columns:1fr;gap:.75rem}.content-grid .fleet-panel{order:1}.content-grid .detail-panel{order:2}.status-summary-bar{position:static}.form-shell{display:grid;gap:.5rem}.form-shell-record{order:2}.form-shell-add{order:1}.mobile-form-toggle{display:flex;align-items:center;justify-content:space-between;min-height:44px;border:1px solid #c4ccd6;border-radius:10px;padding:.6rem .75rem;background:#f8fafc;color:#1c1f24;font-weight:700}.mobile-form-toggle-label{display:inline-flex;align-items:center;gap:.35rem}.mobile-form-toggle-indicator{display:inline-flex;align-items:center;gap:.45rem;margin-left:.75rem}.mobile-form-toggle-hint{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;opacity:.72}.mobile-form-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border:1px solid currentColor;border-radius:999px;font-size:1rem;line-height:1;transition:transform .18s ease}.mobile-form-toggle[aria-expanded=true] .mobile-form-toggle-icon{transform:rotate(180deg)}.form-shell[data-mobile-open=false] .form-shell-body{display:none}.form-shell[data-mobile-open=true] .form-shell-body{display:block}.form-shell .panel{margin:0}.forms-grid .form-shell[data-has-selection=true].form-shell-record{padding:.2rem;border:2px solid #93c5fd;border-radius:12px;background:#eff6ff}.forms-grid .form-shell[data-has-selection=true].form-shell-record .mobile-form-toggle{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.forms-grid .form-shell[data-has-selection=true].form-shell-add{opacity:.78}.detail-panel{padding:1.2rem;border-width:2px;border-color:#93c5fd;background:#f8fbff;min-height:60vh}.detail-identity{gap:.25rem;padding-bottom:.25rem;border-bottom:1px solid #dbeafe}.detail-identity .subtle{font-size:.95rem;color:#334155}.fleet-panel .vehicle-meta-row,.fleet-panel .vehicle-vin{display:none}.btn,.mobile-form-toggle,input,select{min-height:44px}.form-actions{gap:.6rem}.vehicle-list{gap:.85rem}.vehicle-card{padding:.95rem}}
