:root{--color-bg: #ffffff;--color-fg: #0f172a;--color-accent: #0284c7;--color-muted: #64748b;--color-warning-bg: #fef3c7;--color-warning-fg: #92400e;--space: 16px;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--color-bg);color:var(--color-fg);-webkit-text-size-adjust:100%}button{min-height:44px;padding:0 var(--space);border:none;border-radius:var(--radius);background:var(--color-accent);color:#fff;font-size:1rem;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{padding:var(--space);border-bottom:1px solid #e2e8f0}.app-header__brand{font-weight:700;font-size:1.25rem;color:var(--color-fg);text-decoration:none}.app-main{flex:1;padding:var(--space);width:100%;max-width:720px;margin:0 auto}.home__note{color:var(--color-muted)}.offline-indicator{padding:8px var(--space);background:var(--color-warning-bg);color:var(--color-warning-fg);text-align:center;font-size:.9rem}.toast-region{position:fixed;bottom:var(--space);left:0;right:0;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;display:flex;gap:12px;align-items:center;padding:12px var(--space);border-radius:var(--radius);background:var(--color-fg);color:#fff;max-width:90vw}.toast button{min-height:auto;padding:0 8px;background:transparent}.toast--error{background:#b91c1c}.toast--success{background:#15803d}.app-fallback{padding:var(--space);text-align:center}.driver-page{display:flex;flex-direction:column;gap:var(--space)}.driver-page h1{font-size:1.5rem;margin:0}.driver-page h2{font-size:1.15rem;margin:8px 0 0}.driver-page__lead{color:var(--color-muted);margin:0}.driver-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-weight:600}.field input,.q-number input,.q-text textarea{width:100%;min-height:48px;padding:0 12px;font-size:1.1rem;border:1px solid #cbd5e1;border-radius:var(--radius);background:#fff;color:var(--color-fg)}.q-text textarea{padding:10px 12px;min-height:84px}.driver-actions{display:flex;flex-direction:column;gap:10px}.q-btn{min-height:52px;font-size:1.05rem;font-weight:600}.q-btn--wide{width:100%}.q-btn--secondary{background:#e2e8f0;color:var(--color-fg)}.q-btn--link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.q-btn--yes-active{background:#15803d}.q-btn--no-active{background:#b91c1c}.link-btn{background:transparent;color:var(--color-accent);min-height:40px;text-decoration:underline}.form-error{color:#b91c1c;font-weight:600;margin:0}.muted{color:var(--color-muted)}.q-card{border:1px solid #e2e8f0;border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}.q-card__title{font-weight:600;margin:0}.q-card__req{color:#b91c1c}.q-card__help{color:var(--color-muted);font-size:.9rem;margin:0}.q-boolean{display:flex;gap:10px}.q-boolean .q-btn{flex:1}.q-select{display:flex;flex-direction:column;gap:8px}.q-group__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.q-group__item--failed{color:#b91c1c;font-weight:600}.q-group__check{display:flex;gap:10px;align-items:center}.q-group__check input{width:22px;height:22px}.q-group__note{color:#b91c1c;margin:0}.inspection__header{position:sticky;top:0;background:var(--color-bg);padding-bottom:8px;border-bottom:1px solid #e2e8f0;z-index:1}.inspection__veh{font-weight:700;font-size:1.1rem}.progress__track{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.progress__fill{height:100%;background:var(--color-accent);transition:width .2s ease}.progress__label{font-size:.95rem;margin-bottom:4px}.save-indicator{font-size:.9rem}.save-indicator--saved{color:#15803d}.save-indicator--error{color:#b91c1c}.inspection__section,.inspection__remarks{display:flex;flex-direction:column;gap:12px}.inspection__nav{display:flex;gap:10px;margin-top:8px}.inspection__nav .q-btn{flex:1}.remark-card{border:1px solid #fecaca;background:#fef2f2;border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px}.remark-card__title{margin:0;font-size:1.05rem}.remark-card__desc{margin:0}.remark-card__meta{margin:0;color:var(--color-muted);font-size:.9rem}.remark-card__observed{margin:0;font-weight:600;color:#15803d}.remark-card__actions{display:flex;flex-direction:column;gap:8px}.vehicle-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.vehicle-item{width:100%;text-align:left;background:#f8fafc;color:var(--color-fg);border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:2px;padding:12px;min-height:auto}.vehicle-item__reg{font-weight:700;font-size:1.1rem}.vehicle-item__meta{color:var(--color-muted);font-size:.9rem}.vehicle-confirm{border:1px solid #e2e8f0;border-radius:var(--radius);padding:14px}.vehicle-confirm p{margin:2px 0}.vehicle-confirm__reg{font-weight:700;font-size:1.3rem}.vehicle-confirm__station{font-weight:700;margin-top:8px!important}.summary__facts{display:grid;grid-template-columns:1fr;gap:8px;margin:0}.summary__facts div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #f1f5f9;padding-bottom:6px}.summary__facts dt{color:var(--color-muted)}.summary__facts dd{margin:0;font-weight:600;text-align:right}.summary__negatives,.summary__remarks,.summary__blockers{margin:0;padding-left:20px}.summary__blockers{color:#9a3412}.summary__awaiting{background:#fff7ed;border:1px solid #fdba74;border-radius:8px;padding:12px 14px;margin:0 0 16px;color:#9a3412}.summary__confirm{margin-top:24px;display:flex;flex-direction:column;gap:12px}.summary__confirm p{margin:0}.summary--completed h1{color:#166534}.q-btn--primary{background:#0f766e;color:#fff}.q-btn--primary:disabled{opacity:.55}.q-btn--ghost{background:transparent;color:var(--color-fg);border:1px solid #cbd5e1}.qr-scanner{display:flex;flex-direction:column;gap:12px}.qr-scanner__video{width:100%;max-height:55vh;background:#0f172a;border-radius:var(--radius);object-fit:cover}.qr-scanner__canvas{display:none}.vehicle-qr-admin__body{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.vehicle-qr-admin__actions{display:flex;flex-wrap:wrap;gap:8px}.vehicle-qr-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.vehicle-qr-label{border:1px solid #0f172a;padding:12px;text-align:center;background:#fff;color:#000;break-inside:avoid;page-break-inside:avoid}.vehicle-qr-label__brand{margin:0 0 8px;font-weight:800;letter-spacing:.04em;font-size:.95rem}.vehicle-qr-label__img{width:160px;height:160px;image-rendering:pixelated;margin:0 auto;display:block}.vehicle-qr-label__reg{margin:10px 0 0;font-size:1.35rem;font-weight:800;letter-spacing:.02em}@media print{.no-print,.control-header,.control-offline{display:none!important}.vehicle-qr-sheet{grid-template-columns:repeat(3,1fr);gap:12mm}.vehicle-qr-label{border-color:#000}.control-content{padding:0}}.control-shell{--control-border: #d8dee6;--control-surface: #f5f7fa;--control-accent: #0f4c6e;--control-accent-soft: #e8f1f6;--control-danger: #9f1239;--control-ok: #166534;margin:calc(var(--space) * -1);min-height:calc(100vh - 80px);background:linear-gradient(180deg,#eef3f7 0%,var(--color-bg) 220px),var(--color-bg)}.control-offline{padding:8px var(--space);background:var(--color-warning-bg);color:var(--color-warning-fg);text-align:center;font-size:.9rem}.control-header{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;padding:14px var(--space);border-bottom:1px solid var(--control-border);background:#ffffffeb}.control-header__brand{display:flex;align-items:baseline;gap:10px}.control-header__title{font-weight:700;font-size:1.15rem;color:var(--color-fg);text-decoration:none;letter-spacing:.02em}.control-header__part{color:var(--color-muted);font-size:.9rem}.control-nav{display:flex;gap:8px}.control-nav__link{padding:8px 12px;border-radius:8px;text-decoration:none;color:var(--color-fg);font-weight:600;font-size:.95rem}.control-nav__link.active{background:var(--control-accent-soft);color:var(--control-accent)}.control-header__user{display:flex;align-items:center;gap:12px;margin-left:auto}.control-header__meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.85rem;color:var(--color-muted)}.control-header__meta strong{color:var(--color-fg);font-size:.95rem}.control-header__scope{max-width:280px;text-align:right}.control-content{width:100%;max-width:1100px;margin:0 auto;padding:var(--space)}.control-login{display:flex;justify-content:center;padding:32px 0}.control-login__card{width:100%;max-width:420px;padding:28px 24px;border:1px solid var(--control-border);border-radius:12px;background:#fff;box-shadow:0 10px 30px #0f172a0f}.control-login__card h1{margin:0;font-size:1.75rem;letter-spacing:.03em}.control-login__subtitle{margin:6px 0 20px;color:var(--color-muted)}.control-form,.control-field{display:flex;flex-direction:column;gap:8px}.control-form{gap:14px}.control-field span{font-weight:600;font-size:.92rem}.control-field input,.control-field textarea{width:100%;min-height:44px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:1rem;background:#fff;color:var(--color-fg)}.control-field textarea{min-height:88px;resize:vertical}.control-btn{min-height:40px;padding:0 14px;border-radius:8px;border:1px solid transparent;font-size:.95rem;font-weight:600;cursor:pointer;background:#e2e8f0;color:var(--color-fg)}.control-btn:disabled{opacity:.55;cursor:not-allowed}.control-btn--primary{background:var(--control-accent);color:#fff}.control-btn--ghost{background:transparent;border-color:var(--control-border)}.control-btn--small{min-height:34px;font-size:.85rem;white-space:nowrap}.control-btn--danger{background:var(--control-danger);color:#fff}.control-btn--match{background:#ecfdf3;color:var(--control-ok);border-color:#bbf7d0}.control-btn--disc{background:#fff1f2;color:var(--control-danger);border-color:#fecdd3}.control-btn--active{outline:2px solid currentColor;outline-offset:1px}.control-error{color:#b91c1c;font-weight:600}.control-success{color:var(--control-ok);font-weight:600}.control-page{display:flex;flex-direction:column;gap:18px}.control-page__header h1{margin:0;font-size:1.5rem}.control-page__header p{margin:6px 0 0}.control-page__header--row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}.control-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.control-field select{width:100%;min-height:44px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:1rem;background:#fff;color:var(--color-fg)}.control-error--soft{display:block;margin-top:4px;font-weight:500;font-size:.88rem}.control-reports__meta{text-align:right;font-size:.88rem;white-space:nowrap}.control-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.control-kpi{padding:14px;border:1px solid var(--control-border);border-radius:10px;background:#fff}.control-kpi__value{font-size:1.6rem;font-weight:700;color:var(--control-accent);line-height:1.1}.control-kpi__label{margin-top:6px;color:var(--color-muted);font-size:.88rem}.control-panels,.control-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.control-panel{padding:16px;border:1px solid var(--control-border);border-radius:10px;background:#fff}.control-panel h2{margin:0 0 12px;font-size:1.05rem}.control-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.control-list li{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #eef2f6}.control-list li:last-child{border-bottom:none;padding-bottom:0}.control-list a{color:var(--control-accent);text-decoration:none;font-weight:600}.control-list a:hover{text-decoration:underline}.control-table{list-style:none;margin:0;padding:0;border:1px solid var(--control-border);border-radius:10px;background:#fff;overflow:hidden}.control-table li{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #eef2f6}.control-table li:last-child{border-bottom:none}.control-table__main{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--color-fg)}.control-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:14px;border:1px solid var(--control-border);border-radius:10px;background:#fff}.control-meta>div{display:flex;flex-direction:column;gap:4px}.control-actions{display:flex;flex-wrap:wrap;gap:10px}.control-muted{color:#5c6570;font-size:.92rem}.control-code{margin:10px 0;padding:12px;overflow-x:auto;background:#f4f6f8;border:1px solid #d7dde3;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;word-break:break-all;white-space:pre-wrap}.control-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.control-timeline li{display:grid;grid-template-columns:140px 1fr;gap:12px}.control-timeline time{color:var(--color-muted);font-size:.88rem}.control-review-layout{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:14px}.control-list--select li{border-bottom:none;padding-bottom:0}.control-select-btn{width:100%;text-align:left;background:transparent;color:var(--color-fg);border:1px solid transparent;border-radius:8px;min-height:40px;font-weight:500}.control-select-btn--active{background:var(--control-accent-soft);border-color:#bfd6e4;color:var(--control-accent)}.control-review-driver,.control-review-outcomes{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.control-outcome-row{display:flex;flex-wrap:wrap;gap:8px}.control-fieldset{border:1px solid var(--control-border);border-radius:8px;padding:12px;margin:0 0 14px}.control-check{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:.95rem}@media (max-width: 800px){.control-header__user{width:100%;justify-content:space-between}.control-header__meta{align-items:flex-start}.control-header__scope{text-align:left}.control-review-layout{grid-template-columns:1fr}.control-timeline li{grid-template-columns:1fr;gap:4px}}.app-main:has(.control-shell),.app-main:has(.control-login){max-width:none;padding-left:0;padding-right:0}
