.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--color-canvas:#f5f3fa;--color-surface:#fff;--color-surface-subtle:#faf9fc;--color-surface-translucent:#ffffffb8;--color-ink:#24212d;--color-ink-muted:#6f6a7a;--color-border:#e6e1ec;--color-accent:#6c55b5;--color-accent-hover:#59449d;--color-accent-soft:#eee9fa;--color-focus:#4f46a5;--color-ok:#287a5b;--color-ok-soft:#e3f3eb;--color-due:#8a6100;--color-due-soft:#fff1c7;--color-overdue:#a33d4a;--color-overdue-soft:#fce4e7;--color-info:#316a8a;--color-info-soft:#e2f0f7;--color-neutral:#5f6470;--color-neutral-soft:#eceef2;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:Inter, system-ui, sans-serif;--font-data:"Roboto Mono", ui-monospace, monospace;--shadow-card:0 8px 24px #281f3e12;--shadow-navigation:0 4px 15px #281f3e0d;--motion-fast:.16s ease-out;--motion-layout:.22s ease-out}*{box-sizing:border-box}html{background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-body)}body{min-width:320px;margin:0}.access-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.access-card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:18px;width:100%;max-width:460px;padding:32px}.access-card h1{font-family:var(--font-display);margin:4px 0 10px;font-size:36px}.access-kicker{color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-weight:700}.access-card form{gap:16px;margin:24px 0;display:grid}.access-card label{gap:7px;font-weight:650;display:grid}.access-card input{border:1px solid var(--color-border);font:inherit;border-radius:10px;min-height:44px;padding:10px 12px}.form-error{color:var(--color-overdue);margin:0}.access-note{color:var(--color-ink-muted);margin-top:22px;font-size:14px}.fleet-list{gap:10px;margin-top:24px;display:grid}.fleet-choice{background:var(--color-surface-subtle);border:1px solid var(--color-border);cursor:pointer;text-align:left;border-radius:12px;align-items:start;gap:4px;min-height:64px;padding:12px;display:grid}.fleet-choice span{color:var(--color-ink-muted);text-transform:capitalize}.access-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--color-ink);color:var(--color-surface);z-index:100;padding:10px 14px;position:fixed;top:-56px;left:16px}.skip-link:focus{top:12px}.app-shell{min-height:100vh;padding:16px 20px 36px}.command-header{grid-template-columns:auto auto minmax(340px,1fr) auto;align-items:center;gap:14px;max-width:1600px;min-height:52px;margin:0 auto 42px;display:grid}.brand{letter-spacing:-.04em;align-items:center;gap:9px;font-size:18px;font-weight:700;display:inline-flex}.brand__mark{background:var(--color-ink);color:var(--color-surface);font-family:var(--font-display);border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:inline-flex}.organization{border-left:1px solid var(--color-border);color:var(--color-ink-muted);margin:0;padding-left:14px;font-size:13px}.pill-nav{background:var(--color-surface-translucent);border:1px solid var(--color-border);box-shadow:var(--shadow-navigation);border-radius:999px;justify-self:center;gap:2px;padding:4px;display:flex;overflow-x:auto}.pill-nav__item,.icon-button,.user-button,.button,.card__link{color:var(--color-ink);cursor:pointer;background:0 0;border:0;min-height:44px}.pill-nav__item{white-space:nowrap;border-radius:999px;padding:0 16px;font-size:14px}.pill-nav__item:hover{background:var(--color-surface-subtle)}.pill-nav__item--current{background:var(--color-accent-soft);color:var(--color-accent-hover);font-weight:700}.header-controls{justify-self:end;align-items:center;gap:8px;display:flex}.icon-button{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-accent);border-radius:50%;justify-content:center;align-items:center;min-width:44px;height:44px;display:flex}.user-button{align-items:center;gap:8px;padding:0 4px;display:flex}.user-button span{background:var(--color-neutral-soft);color:var(--color-ink);font-family:var(--font-data);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;display:inline-flex}.user-button b{font-size:13px}.command-main{max-width:1600px;margin:0 auto}.context-plate{justify-content:space-between;align-items:end;margin:0 0 20px;display:flex}.context-plate__eyebrow,.card__eyebrow{color:var(--color-ink-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700}h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:38px;line-height:1}.context-plate p:not(.context-plate__eyebrow){color:var(--color-ink-muted);margin:8px 0 0;font-size:14px}.local-note{border:1px solid var(--color-border);color:var(--color-neutral);border-radius:999px;padding:7px 10px;font-size:12px}.dashboard-board__tools{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dashboard-board__hint{color:var(--color-ink-muted);margin:0;font-size:13px}.dashboard-board__actions{gap:8px;display:flex}.button{border-radius:10px;padding:0 14px;font-size:14px;font-weight:700}.button--primary{background:var(--color-accent);color:var(--color-surface)}.button--primary:hover{background:var(--color-accent-hover)}.button--quiet{border:1px solid var(--color-border);color:var(--color-ink-muted)}.dashboard-grid-item{height:100%}.dashboard-grid-item__inner{height:100%;min-height:0}.card{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:18px;flex-direction:column;height:100%;padding:20px;display:flex;overflow:hidden}.card__header{justify-content:space-between;align-items:flex-start;display:flex}.card h2{letter-spacing:-.01em;margin:0;font-size:16px}.card__description{color:var(--color-ink-muted);margin:5px 0 0;font-size:13px;line-height:18px}.card__drag-handle{background:var(--color-surface-subtle);border:1px solid var(--color-border);color:var(--color-ink-muted);cursor:grab;border-radius:8px;justify-content:center;align-items:center;min-width:44px;height:44px;font-size:18px;display:none}.dashboard-board:has(.button[aria-pressed=true]) .card__drag-handle{display:inline-flex}.card__body{flex:1;min-height:0;padding:16px 0}.card-state,.dashboard-board__error,.dashboard-board__loading{color:var(--color-ink-muted);gap:12px;display:grid}.dashboard-board__error{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin-bottom:16px;padding:16px}.dashboard-board__loading{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;min-height:180px;padding:24px}.card-empty{color:var(--color-ink-muted);margin:8px 0 0;font-size:14px;line-height:20px}.skeleton{background:var(--color-neutral-soft);border-radius:8px;width:100%;height:18px;animation:1.4s ease-in-out infinite dashboard-pulse;display:block}.skeleton--short{width:58%}@keyframes dashboard-pulse{50%{opacity:.48}}.card__footer{border-top:1px solid var(--color-border);margin-top:auto;padding-top:10px}.card__link{color:var(--color-accent-hover);align-items:center;gap:7px;padding:0;font-size:14px;font-weight:700;display:flex}.fleet-total{align-items:end;gap:9px;display:flex}.fleet-total strong{font-family:var(--font-display);letter-spacing:-.04em;font-size:44px;line-height:.85}.fleet-total span{color:var(--color-ink-muted);padding-bottom:3px;font-size:13px}.status-list,.unit-list,.activity-list{margin:14px 0 0;padding:0;list-style:none}.status-list li{grid-template-columns:10px 1fr auto;align-items:center;gap:9px;min-height:30px;font-size:14px;display:grid}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot--ok{background:var(--color-ok)}.status-dot--info{background:var(--color-info)}.status-dot--neutral{background:var(--color-neutral)}.data{font-family:var(--font-data);font-variant-numeric:tabular-nums}.unit-list{gap:10px;display:grid}.unit-list li{justify-content:space-between;align-items:center;gap:8px;display:flex}.unit-list b,.activity-list b{font-size:14px;display:block}.unit-list span:not(.chip),.activity-list span{color:var(--color-ink-muted);margin-top:2px;font-size:12px;display:block}.chip{border-radius:999px;padding:5px 8px;font-size:11px;font-weight:700}.chip--neutral{background:var(--color-neutral-soft);color:var(--color-neutral)}.activity-list{gap:14px;display:grid}.activity-list li{grid-template-columns:68px 1fr;gap:12px;display:grid}.activity-list time{color:var(--color-ink-muted);padding-top:2px;font-size:12px}.react-grid-item.react-grid-placeholder{background:var(--color-accent-soft);border:2px dashed var(--color-accent);opacity:.8;border-radius:18px}.react-resizable-handle{background-color:var(--color-accent);border:3px solid var(--color-surface);border-radius:5px;width:14px;height:14px;bottom:8px;right:8px}.meter-page{max-width:1180px;margin:0 auto}.meter-page__header,.meter-history__tools,.meter-dialog__header,.meter-dialog__actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.meter-page__header{margin:0 0 20px}.meter-page__header p,.meter-history__tools p,.meter-dialog__header p{color:var(--color-ink-muted);margin:6px 0 0}.meter-eyebrow{color:var(--color-ink-muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.meter-summary,.meter-history{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:18px}.meter-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.meter-summary>div,.meter-summary>p{background:var(--color-surface);gap:4px;margin:0;padding:18px 20px;display:grid}.meter-summary span,.meter-summary small{color:var(--color-ink-muted);font-size:13px}.meter-summary strong{font-size:28px}.meter-history{padding:20px}.meter-history h2,.meter-dialog h2{margin:0;font-size:20px}.meter-history__tools label{color:var(--color-ink-muted);gap:4px;font-size:13px;display:grid}.meter-history select,.meter-form input,.meter-form textarea{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-ink);font:inherit;border-radius:10px;min-height:44px;padding:9px 11px}.meter-history select{min-width:150px}.meter-table-wrap{margin-top:20px;overflow-x:auto}.meter-table-wrap table{border-collapse:collapse;width:100%;min-width:700px}.meter-table-wrap th,.meter-table-wrap td{border-top:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:12px 10px}.meter-table-wrap th{color:var(--color-ink-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.chip--correction{background:var(--color-info-soft);color:var(--color-info)}.chip--incorrect{background:var(--color-neutral-soft);color:var(--color-neutral)}.chip--manual{background:var(--color-ok-soft);color:var(--color-ok)}.meter-notice{border-radius:10px;margin:0 0 16px;padding:12px 14px}.meter-notice--error{background:var(--color-overdue-soft);color:var(--color-overdue)}.meter-notice--success{background:var(--color-ok-soft);color:var(--color-ok)}.meter-notice a{color:inherit;font-weight:700}.meter-empty{background:var(--color-surface-subtle);border:1px dashed var(--color-border);border-radius:12px;margin-top:18px;padding:28px}.meter-empty h3,.meter-empty p{margin:0 0 8px}.meter-skeleton{gap:10px;margin-top:20px;display:grid}.meter-skeleton span{background:var(--color-surface-subtle);border-radius:8px;height:44px}.meter-dialog{z-index:20;background:#24212d73;justify-content:center;align-items:end;padding:20px;display:flex;position:fixed;inset:0}.meter-dialog__panel{background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:18px;width:100%;max-width:620px;padding:24px}.meter-dialog__header{align-items:flex-start}.meter-form{gap:16px;margin-top:22px;display:grid}.meter-form label,.meter-kind-choice{gap:7px;font-weight:700;display:grid}.meter-kind-choice{border:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.meter-kind-choice legend{grid-column:1/-1;margin-bottom:2px}.meter-kind-choice label{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:10px;align-items:center;min-height:44px;padding:0 12px;font-weight:600;display:flex}.meter-input-group{align-items:center;display:flex;position:relative}.meter-input-group input{font-family:var(--font-data);font-variant-numeric:tabular-nums;width:100%;padding-right:48px}.meter-input-group span{color:var(--color-ink-muted);font-family:var(--font-data);pointer-events:none;position:absolute;right:13px}.meter-help{color:var(--color-ink-muted);font-size:13px;font-weight:400}.meter-form__time{grid-template-columns:1fr 1fr;gap:12px;display:grid}.meter-form textarea{resize:vertical;min-height:100px}.meter-preview{background:var(--color-accent-soft);color:var(--color-accent-hover);border-radius:10px;margin:0;padding:11px 12px}.meter-dialog__actions{border-top:1px solid var(--color-border);padding-top:16px}@media (width<=1199px){.command-header{grid-template-columns:auto 1fr auto}.organization{display:none}.pill-nav{grid-area:2/1/auto/-1;justify-self:stretch}.command-header{margin-bottom:24px}.pill-nav__item{flex:1}.dashboard-board__hint{max-width:55ch}}@media (width<=699px){.app-shell{padding:12px}.command-header{gap:8px}.user-button b{display:none}.context-plate{flex-direction:column;align-items:flex-start;gap:12px}.dashboard-board__tools{flex-direction:column;align-items:stretch;gap:10px}.dashboard-board__actions>.button{flex:1}.card{padding:16px}.pill-nav__item{flex:initial}.local-note{align-self:flex-start}.meter-page__header,.meter-history__tools{flex-direction:column;align-items:stretch}.meter-page__header>.button,.meter-history__tools label{width:100%}.meter-summary,.meter-form__time{grid-template-columns:1fr}.meter-dialog{padding:0}.meter-dialog__panel{border-radius:18px 18px 0 0;max-height:94vh;overflow-y:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}.skeleton{animation:none}}@media (forced-colors:active){.card,.pill-nav,.icon-button,.chip{border:1px solid canvastext}}
