:root{--bg: #eeeeee;--surface: #ffffff;--surface-2: #e6e6e6;--line: #cfcfcf;--text: #1c1c1c;--muted: #6d6d6d;--accent: rgb(51, 204, 255);--accent-ink: #0b83ab;--on-accent: #06303d;--ok: #1a9a5f;--warn: #c07600;--danger: #cf3b3b;--radius: 12px;--tap: 44px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.tnum{font-variant-numeric:tabular-nums}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto;background:var(--bg)}.brand{flex:none;padding:10px 16px 8px;font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--accent-ink);background:var(--surface);border-bottom:1px solid var(--line);padding-top:max(10px,env(safe-area-inset-top))}.nav-cards{display:grid;gap:8px}.nav-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;font:inherit;padding:12px 14px;min-height:var(--tap);cursor:pointer}.nav-card:hover{background:var(--surface-2)}.nav-card-title{font-weight:600}.nav-card-note{grid-column:1;font-size:12px;color:var(--muted)}.nav-card-go{grid-row:1 / span 2;grid-column:2;color:var(--muted);font-size:20px}.topbar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10}.topbar h1{font-size:17px;margin:0;flex:1;font-weight:600}.vehicle-select{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px;min-height:var(--tap)}.btn{background:var(--accent);color:var(--on-accent);border:0;border-radius:8px;min-height:var(--tap);min-width:var(--tap);padding:0 14px;font-size:15px;font-weight:600;cursor:pointer}.btn.ghost{background:transparent;color:var(--accent-ink);border:1px solid var(--line)}.btn.ghost.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.btn:disabled{opacity:.5;cursor:not-allowed}.content{flex:1;overflow-y:auto;padding:12px 16px 24px}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:20px 0 8px}.section-title:first-child{margin-top:4px}.section-title:has(.link-btn){display:flex;justify-content:space-between;align-items:center}.link-btn{background:none;border:0;color:var(--accent-ink);font:inherit;font-size:13px;text-transform:none;letter-spacing:0;cursor:pointer;padding:4px 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.record{display:block;width:100%;text-align:left;background:none;border:0;color:inherit;font:inherit;padding:12px 14px;cursor:pointer}.record:hover{background:var(--surface-2)}.record-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.record-date{color:var(--muted);font-size:13px;min-width:52px}.record-title{font-weight:600;flex:1}.tag{font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);white-space:nowrap}.tag.dc{color:var(--on-accent);background:color-mix(in srgb,var(--accent) 55%,var(--surface));border-color:color-mix(in srgb,var(--accent) 70%,var(--line))}.tag.ac{color:var(--muted)}.record-derived{font-size:13px;color:var(--muted);margin-top:3px}.badges{display:inline-flex;gap:4px;margin-left:6px}.detail-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:4px 14px;margin-bottom:12px}.row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row dt{color:var(--muted);font-size:14px}.row dd{margin:0;font-weight:600;text-align:right}.row .formula{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:9px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left}thead th{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border-bottom:0}.sheet-wrap{max-height:calc(100vh - 200px);overflow:auto}.sheet{border-collapse:separate;border-spacing:0;min-width:740px;font-size:13px;line-height:1.25}.sheet th,.sheet td{padding:3px 8px}.sheet thead th{padding-top:5px;padding-bottom:5px}.sheet thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);border-bottom:1px solid var(--line)}.sheet thead .unit-head{display:block;font-size:10px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted)}.sheet .col-date,.sheet .col-where,.sheet .col-campaign{text-align:left}.sheet .col-driver{text-align:center}.sheet th.col-driver,.sheet td.col-driver,.sheet th.col-date,.sheet td.col-date{position:sticky;z-index:1;background:var(--surface)}.sheet th.col-driver,.sheet td.col-driver{left:0;width:42px;min-width:42px;padding:3px 4px}.sheet th.col-date,.sheet td.col-date{left:42px;width:108px;min-width:108px;box-shadow:inset -1px 0 0 var(--line)}.sheet thead th.col-driver,.sheet thead th.col-date{z-index:3;background:var(--surface-2)}.driver{display:inline-block;min-width:32px;padding:0 5px;border-radius:999px;font-size:10px;font-weight:600;line-height:16px;border:1px solid}.sheet-row{cursor:pointer}.sheet-row.alt td{background:color-mix(in srgb,var(--surface-2) 45%,var(--surface))}.sheet-row:hover td,.sheet-row.open td{background:var(--surface-2)}.sheet-row.open td.col-driver{box-shadow:inset 3px 0 0 var(--accent)}.cell-main{font-weight:600}.cell-sub{font-size:11px;color:var(--muted);margin-left:5px}.unit-sfx{color:var(--muted);font-size:10px;margin-left:2px}.sheet .tag{font-size:10px;padding:0 5px;line-height:15px;display:inline-block;margin-left:4px}.sheet .badges{margin-left:4px;font-size:11px}.sheet .campaign-btn{font-size:13px;padding:0 2px}.sheet td.missing{color:var(--warn);font-size:12px}.sheet th.col-campaign,.sheet td.col-campaign{width:64px;text-align:center}.campaign{position:relative;display:inline-block}.campaign-btn{background:none;border:0;padding:2px 4px;font-size:15px;line-height:1;cursor:pointer}.campaign-pop{position:absolute;right:0;top:100%;z-index:4;width:max-content;max-width:220px;margin-top:4px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 4px 12px #00000024;font-size:12px;color:var(--text);white-space:normal;text-align:left}.muted-dash{color:var(--muted)}.sheet-detail td{background:var(--surface-2);padding:10px 12px;white-space:normal;border-bottom:2px solid var(--line)}.cell-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2px 20px}.mini-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;border-bottom:1px solid var(--line)}.mini-row span:first-child{color:var(--muted)}.mini-row span:last-child{font-weight:600}.mini-row.derived span:last-child{font-weight:400;color:var(--muted)}.cell-note{margin-top:10px;font-size:13px;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.stat-label{font-size:12px;color:var(--muted);margin-bottom:4px}.stat-value{font-size:20px;font-weight:700}.stat-note{font-size:12px;color:var(--muted);margin-top:2px}.note{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--muted);margin-bottom:12px}.note.warn{border-left-color:var(--warn)}.note strong{color:var(--text)}.card.faded{opacity:.62}.link-btn.inline{font-size:inherit;padding:0;vertical-align:baseline}.vault-body{margin:10px 0 0;padding:10px 12px;background:var(--surface-2);border-radius:8px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow-y:auto}.row dd.trace{font-size:11px;font-weight:400;color:var(--muted);max-width:60%;white-space:normal;overflow-wrap:anywhere}.conflict{border-left:3px solid var(--warn);padding:12px 14px}.conflict-head{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.conflict .table-wrap{border-radius:8px}.conflict .form-actions{margin-top:10px}.toggle{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;min-height:var(--tap);margin-bottom:4px;font-size:14px;cursor:pointer}.toggle input{width:20px;height:20px;accent-color:var(--accent)}.toggle-note{color:var(--muted);font-size:13px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:999px;min-height:var(--tap);padding:0 14px;font:inherit;font-size:14px;cursor:pointer}.chip.on{border-color:var(--accent);color:var(--accent-ink)}.chip-count{font-size:11px;color:var(--muted)}.field{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}.field-block:last-child .field,.field:last-child{border-bottom:0}.field-label{color:var(--muted);font-size:14px;flex:1}.field-input{display:flex;align-items:center;gap:6px}.field input[type=text],.field input[type=datetime-local],.field select{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:15px;font-variant-numeric:tabular-nums;min-height:var(--tap);text-align:right;width:130px}.field input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.field.check{justify-content:space-between}.unit{color:var(--muted);font-size:13px;min-width:26px}.field-hint,.field-warn{font-size:12px;padding:0 0 7px;text-align:right}.field-hint{color:var(--muted)}.field-warn{color:var(--warn)}.field-block.flagged .field input{border-color:var(--warn)}.live{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:4px 14px;margin-bottom:12px}.live-row{display:flex;justify-content:space-between;padding:7px 0;font-size:14px;color:var(--muted);border-bottom:1px solid var(--line)}.live-row:last-child{border-bottom:0}.live-row span:last-child{color:var(--text);font-weight:600}.disclosure{background:none;border:0;color:var(--accent-ink);font:inherit;font-size:14px;padding:8px 0;min-height:var(--tap);cursor:pointer}.form-actions{display:flex;gap:8px;margin-top:12px}.form-actions .btn{flex:1}.tabs{display:flex;border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;background:none;border:0;color:var(--muted);font:inherit;font-size:12px;padding:8px 4px 10px;min-height:var(--tap);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.tab[aria-current=page]{color:var(--accent-ink)}.tab .glyph{font-size:18px;line-height:1}.empty{color:var(--muted);text-align:center;padding:32px 16px}.severity-safety,.severity-high{color:var(--danger)}.severity-medium{color:var(--warn)}.severity-low{color:var(--muted)}a{color:var(--accent-ink)}
