/* Local-first laboratory finance UI. No external fonts or style dependencies. */
:root {color-scheme:light;
  --page: #f3f6fa;
  --surface: #ffffff;
  --surface-soft: #f8fafd;
  --ink: #203b57;
  --ink-strong: #162f49;
  --muted: #7c8da2;
  --line: #dce5ef;
  --line-soft: #edf1f6;
  --blue: #286eb9;
  --blue-dark: #215f9e;
  --blue-soft: #eaf2fd;
  --green: #348273;
  --green-soft: #edf7f2;
  --amber: #a77320;
  --amber-soft: #fff6e5;
  --red: #bf5656;
  --radius: 14px;
  --shadow: 0 3px 12px rgb(32 59 87 / 3%);font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;font-synthesis:none;
  font-size:calc(14px * var(--ui-font-scale,1));font-weight:400;line-height:1.5;
  color: var(--ink);
  background: var(--page);
}
* {box-sizing:border-box; }
body {margin:0;min-width:320px; background: var(--page); }
button, input, select, textarea {font:inherit; }
button, a, input, select, textarea {-webkit-tap-highlight-color:transparent; }
button {cursor:pointer; }
button, input, select, textarea {transition:border-color 150ms, background-color 150ms, box-shadow 150ms; }
button:disabled {cursor:not-allowed;opacity:.48; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {outline:3px solid rgb(40 110 185 / 22%);outline-offset:2px;
}
a { color: var(--blue);text-decoration:none; }
a:hover {text-decoration:underline; }
button { border: 1px solid var(--line);border-radius:8px;background:var(--ui-surface, #fff); color: var(--ink);padding:8px 13px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap; }
button:hover:not(:disabled) {border-color:var(--ui-border, #b6cce3);background:var(--ui-surface-soft, #f7faff); }
button:active:not(:disabled) {transform:translateY(1px); }
button svg, .icon-button svg, .nav svg {width:17px;height:17px;flex:0 0 auto; }
.primary {color:white; background: var(--blue); border-color: var(--blue);box-shadow:0 2px 3px rgb(40 110 185 / 9%); }
.primary:hover:not(:disabled) {color:white; background: var(--blue-dark); border-color: var(--blue-dark); }
.secondary {background:white;color:var(--ui-text, #526a83); }
.danger { color: var(--red);border-color:#ebcece;background:white; }
.danger:hover:not(:disabled) {background:#fff5f5;border-color:#dca5a5; }
.icon-button {padding:7px;width:35px;min-width:35px; }
.link-button {background:transparent;border-color:transparent; color: var(--blue);padding:4px 7px;min-height:28px; }
.link-button:hover:not(:disabled) { background: var(--blue-soft);border-color:transparent; }
.small-button { font-size:calc(12px * var(--ui-font-scale,1));padding:5px 10px;min-height:30px; }
h1, h2, h3, h4, p {margin-top:0; }
h1, h2, h3, h4 { color: var(--ink-strong); }
svg {vertical-align:middle; }
[hidden] {display:none !important; }

/* The two-row header deliberately follows the soil system's shared shell. */
.topbar {min-height:72px;padding:15px 30px;background:var(--ui-surface, #fff); border-bottom: 1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:18px; }
.brand {display:flex;align-items:center;gap:12px;flex:0 0 auto; }
.brand > svg, .brand-icon {width:38px;height:38px; color: var(--blue); background: var(--blue-soft);padding:8px;border-radius:10px;flex:0 0 auto; }
.brand h1 { font-size:calc(19px * var(--ui-font-scale,1));letter-spacing:.2px;line-height:1.25;margin:0 0 3px;font-weight:700; }
.brand small {display:block; color: var(--muted); font-size:calc(11px * var(--ui-font-scale,1));letter-spacing:.5px; }
.top-actions {display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px; font-size:calc(12px * var(--ui-font-scale,1)); }
.top-actions button { font-size:calc(12px * var(--ui-font-scale,1));padding:7px 11px;min-height:34px; }
.save-status { color: var(--green);display:inline-flex;align-items:center;gap:6px; }
.save-status::before {content:"";width:5px;height:5px;border-radius:50%;background:currentColor; }
.mode-pill { font-size:calc(11px * var(--ui-font-scale,1));line-height:1;color:var(--ui-muted, #73849a);padding:7px 9px;background:var(--ui-surface-soft, #f3f6fa);border:1px solid var(--ui-border, #e4eaf2);border-radius:5px; }
.nav {min-height:54px;background:var(--ui-surface, #fff); border-bottom: 1px solid var(--line);padding:7px 30px;display:flex;align-items:center;gap:8px; }
.nav button {border-color:transparent;color:var(--ui-text, #63768c); font-size:calc(13px * var(--ui-font-scale,1));padding:8px 15px;border-radius:7px;background:transparent; }
.nav button[aria-current="page"], .nav button.active { color: var(--blue); background: var(--blue-soft);font-weight:600; }
.nav button:hover:not(:disabled) {background:var(--ui-surface-soft, #f4f7fb);border-color:transparent; }
.nav button[aria-current="page"]:hover { background: var(--blue-soft); }
.shell {max-width:1500px;margin:0 auto;padding:28px 30px 50px; }
.page-head {display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px; }
.eyebrow {color:var(--ui-muted, #8091a5); font-size:calc(10px * var(--ui-font-scale,1));letter-spacing:1.7px;font-weight:600;text-transform:uppercase;margin-bottom:7px; }
.page-head h2, .page-head .title { font-size:calc(25px * var(--ui-font-scale,1));line-height:1.25;margin:0 0 7px;letter-spacing:-.4px;font-weight:650; }
.page-head .subtitle, .page-head p { font-size:calc(12px * var(--ui-font-scale,1));margin-bottom:0; color: var(--muted); }
.page-actions {display:flex;flex-wrap:wrap;gap:9px;align-items:center; }
.banner {display:flex;align-items:center;gap:9px; font-size:calc(12px * var(--ui-font-scale,1));line-height:1.6;padding:10px 14px;margin-bottom:20px;border:1px solid var(--ui-border, #d8e5f4);background:var(--ui-surface-soft, #eef5fe);color:var(--ui-text, #5c7999);border-radius:8px; }
.banner svg {width:16px;height:16px;flex:0 0 auto;color:var(--ui-muted, #698ab0); }
.banner.warning { background: var(--amber-soft);color:#987229;border-color:#ecdcb9; }
.banner .link-button {margin-left:auto; }
.toolbar, .filter-bar {display:flex;align-items:center;flex-wrap:wrap;gap:10px; }
.toolbar {margin-bottom:18px; }
.toolbar .search {flex:1 1 220px;min-width:180px;max-width:440px; }
.toolbar select {width:auto;min-width:118px; }
.filter-bar {margin:0 0 20px; }
.filter-bar label { font-size:calc(12px * var(--ui-font-scale,1)); color: var(--muted); }
.filter-bar select {width:auto;min-width:116px; }
.filter-bar .subtle {margin-left:auto; }
.search {position:relative; }
.search svg {position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ui-muted, #8ba0b7);pointer-events:none; }
.search input {padding-left:37px; }
input, select, textarea {width:100%;min-height:38px; color: var(--ink);background:white; border: 1px solid var(--line);border-radius:7px;padding:9px 11px; }
input::placeholder, textarea::placeholder {color:var(--ui-muted, #99a7b7); }
input:hover, select:hover, textarea:hover {border-color:var(--ui-border, #becfe1); }
input:focus, select:focus, textarea:focus {border-color:var(--ui-focus, #76a3d0);outline:none;box-shadow:0 0 0 3px rgb(40 110 185 / 9%); }
input[type="checkbox"], input[type="radio"] {width:16px;height:16px;min-height:0; accent-color: var(--blue);vertical-align:middle; }
input[type="file"] { font-size:calc(12px * var(--ui-font-scale,1)); background: var(--surface-soft); }
textarea {resize:vertical;min-height:82px; }

/* Overview */
.metrics {display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:16px;margin-bottom:22px; }
.metric {background:var(--ui-surface, #fff); border: 1px solid var(--line); border-radius: var(--radius);padding:20px 22px 17px; box-shadow: var(--shadow);min-width:0;position:relative; }
.metric-label {color:var(--ui-muted, #7b8ca1); font-size:calc(12px * var(--ui-font-scale,1));display:flex;align-items:center;gap:7px;margin-bottom:13px; }
.metric-label svg {color:var(--ui-muted, #8da9c7);width:15px;height:15px; }
.metric-value { font-size: calc(clamp(24px, 2.4vw, 32px) * var(--ui-font-scale,1));font-weight:650;letter-spacing:-.8px; color: var(--ink-strong);line-height:1.15;font-variant-numeric:tabular-nums;margin-bottom:11px; }
.metric-value small, .metric-value .unit { font-size:calc(14px * var(--ui-font-scale,1));margin-right:5px;font-weight:400;color:var(--ui-muted, #90a1b4); }
.metric-foot {color:var(--ui-muted, #98a5b4); font-size:calc(11px * var(--ui-font-scale,1));display:flex;align-items:center;gap:6px; }
.metric.primary-metric {border-color:var(--ui-border, #ccdef2); }
.metric.primary-metric .metric-value { color: var(--blue); }
.metric-foot .dot {width:5px;height:5px;border-radius:50%;background:var(--ui-accent, #6b9ccc); }
.dashboard-grid {display:grid;grid-template-columns:minmax(0, 1.8fr) minmax(0, 1fr);gap:20px;margin-bottom:20px; }
.dashboard-lower {display:grid;grid-template-columns:minmax(0, 1.65fr) minmax(0, 1fr);gap:20px;align-items:start; }
.panel {background:var(--ui-surface, #fff); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);min-width:0;overflow:hidden; }
.panel-head {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:19px 22px 13px; }
.panel-head h3 { font-size:calc(14px * var(--ui-font-scale,1));font-weight:650;margin:0;letter-spacing:.1px; }
.panel-head small {display:block;color:var(--ui-muted, #97a5b6); font-size:calc(11px * var(--ui-font-scale,1));margin-top:4px; }
.panel-head .link-button { font-size:calc(11px * var(--ui-font-scale,1)); }
.panel-body {padding:16px 22px 22px; }
.panel-foot {padding:13px 22px; border-top: 1px solid var(--line-soft); color: var(--muted); font-size:calc(11px * var(--ui-font-scale,1)); }
.chart {height:240px;position:relative;padding:8px 20px 15px; }
.chart-tall {height:280px; }
.chart svg, .chart canvas {width:100%;height:100%;display:block; }
.chart svg text {font-family:inherit; }
.legend {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;color:var(--ui-muted, #8090a3); font-size:calc(11px * var(--ui-font-scale,1)); }
.legend > span {display:inline-flex;align-items:center;gap:6px; }
.legend i {width:7px;height:7px;border-radius:2px;display:inline-block; background: var(--blue); }
.stat-list {padding:0 22px 17px;display:grid;gap:15px; }
.stat-row {display:grid;gap:6px; font-size:calc(12px * var(--ui-font-scale,1)); }
.stat-row > div:first-child {display:flex;align-items:center;justify-content:space-between;gap:12px; }
.progress-track {height:5px;background:var(--ui-surface-soft, #eef2f7);border-radius:8px;overflow:hidden; }
.progress-track > span {display:block;height:100%;border-radius:inherit;background:var(--ui-accent, #75a3d1); }

/* Records and reimbursement */
.table-wrap {width:100%;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#cbd7e5 transparent; }
.data-table {width:100%;border-collapse:collapse; font-size:calc(12px * var(--ui-font-scale,1));white-space:nowrap; }
.data-table th {text-align:left;font-weight:500; font-size:calc(11px * var(--ui-font-scale,1));color:var(--ui-muted, #8494a7);padding:11px 17px;background:var(--ui-surface, #f9fbfd); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.data-table td {padding:14px 17px; border-bottom: 1px solid var(--line-soft);vertical-align:middle; }
.data-table th:first-child, .data-table td:first-child {padding-left:22px; }
.data-table th:last-child, .data-table td:last-child {padding-right:22px; }
.data-table tbody tr:last-child td {border-bottom:none; }
.data-table tbody tr:hover {background:var(--ui-surface, #f9fbfe); }
.data-table tbody tr[data-id], .data-table tbody tr.clickable {cursor:pointer; }
.data-table .name-cell {min-width:180px;white-space:normal; }
.name-cell strong {display:block; font-size:calc(12px * var(--ui-font-scale,1));font-weight:550; color: var(--ink);line-height:1.55; }
.name-cell .subtle, .name-cell small {display:block;margin-top:3px; }
.subtle, .muted { color: var(--muted); }
.subtle { font-size:calc(11px * var(--ui-font-scale,1)); }
.amount {font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap; }
.data-table .amount {text-align:right; }
.badge {display:inline-flex;align-items:center;gap:5px;line-height:1.35; font-size:calc(10px * var(--ui-font-scale,1));font-weight:500;border-radius:5px;padding:4px 7px;color:var(--ui-muted, #7b8ca0);background:var(--ui-surface-soft, #f0f3f7);white-space:nowrap; }
.badge[data-status="pending"] { color: #a47a35; background: #fcf4e6; }
.badge[data-status="processing"] { color: #437fb9; background: #edf4fc; }
.badge[data-status="paid"] { color: #388572; background: #eaf5ef; }
.badge[data-status="none"], .badge[data-status="personal"], .badge.neutral { color: #8290a2; background: #f0f3f7; }
.badge[data-status="refunded"] { color: #8a769e; background: #f3eff7; }
.empty {padding:58px 22px;text-align:center;color:var(--ui-muted, #8e9bad); font-size:calc(12px * var(--ui-font-scale,1)); }
.empty svg {width:34px;height:34px;color:var(--ui-muted, #b2c5db);display:block;margin:0 auto 13px; }
.empty strong {display:block;margin-bottom:7px;color:var(--ui-muted, #677e98); font-size:calc(14px * var(--ui-font-scale,1));font-weight:500; }
.empty button {margin-top:16px; }
.tabs {display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:20px; border-bottom: 1px solid var(--line); }
.tabs button {position:relative;border:0;border-radius:0;background:none;padding:10px 16px 13px;color:var(--ui-muted, #8492a5);min-height:42px; }
.tabs button.active, .tabs button[aria-selected="true"] { color: var(--blue);font-weight:600; }
.tabs button.active::after, .tabs button[aria-selected="true"]::after {content:"";position:absolute;height:2px; background: var(--blue);left:15px;right:15px;bottom:-1px; }
.tabs .count { font-size:calc(10px * var(--ui-font-scale,1));color:inherit;background:var(--ui-surface-soft, #eaf0f7);padding:1px 5px;border-radius:4px; }

/* Forms and evidence */
.form-grid {display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:18px 22px; }
.field {min-width:0; }
.field.full {grid-column:1 / -1; }
.field > label {display:block;color:var(--ui-text, #61768e); font-size:calc(12px * var(--ui-font-scale,1));margin-bottom:7px;font-weight:500; }
.field label .required {color:#c67265;margin-left:3px; }
.field > small, .field .hint {display:block;color:var(--ui-muted, #97a5b6); font-size:calc(11px * var(--ui-font-scale,1));margin-top:6px; }
.field.invalid input, .field.invalid select, .field.invalid textarea {border-color:#d79090; }
.field .error { color: var(--red); }
.form-section {padding:23px; border-bottom: 1px solid var(--line-soft); }
.form-section:last-child {border-bottom:0; }
.form-section h3 { font-size:calc(13px * var(--ui-font-scale,1));margin:0 0 18px; }
.form-footer {display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:17px 23px;background:var(--ui-surface, #fafbfd); border-top: 1px solid var(--line-soft); }
.items-editor { border: 1px solid var(--line);border-radius:10px;overflow:hidden; background: var(--surface-soft); }
.item-row {display:grid;grid-template-columns:minmax(150px, 2fr) minmax(110px, 1.1fr) minmax(60px, .55fr) minmax(80px, .75fr) 32px;gap:9px;padding:12px;align-items:end; border-bottom: 1px solid var(--line-soft); }
.item-row:last-child {border-bottom:0; }
.item-row label {display:block; font-size:calc(10px * var(--ui-font-scale,1)); color: var(--muted);margin-bottom:5px; }
.item-row input, .item-row select {min-height:34px;padding:7px 8px; font-size:calc(12px * var(--ui-font-scale,1)); }
.items-editor .item-actions {padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px; }
.items-total { border-top: 1px solid var(--line);padding:13px 15px;display:flex;justify-content:flex-end;align-items:baseline;gap:14px;background:var(--ui-surface, #fff);color:var(--ui-muted, #7c8fa5); font-size:calc(12px * var(--ui-font-scale,1)); }
.items-total strong { color: var(--blue); font-size:calc(19px * var(--ui-font-scale,1)); }
.detail-grid {display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:18px 25px;margin:0; }
.detail-grid dl {margin:0;min-width:0; }
.detail-grid dt { font-size:calc(11px * var(--ui-font-scale,1));color:var(--ui-muted, #8a9aaf);margin-bottom:5px; }
.detail-grid dd {margin:0; font-size:calc(13px * var(--ui-font-scale,1));word-break:break-word; }
.detail-grid .full {grid-column:1 / -1; }
.detail-summary {display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px;background:var(--ui-surface-soft, #f6f9fd);border-radius:10px;margin-bottom:24px; }
.detail-summary .amount { font-size:calc(26px * var(--ui-font-scale,1)); color: var(--blue); }
.receipt-grid {display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:12px; }
.receipt-card {position:relative; border: 1px solid var(--line);border-radius:9px;overflow:hidden;min-width:0;background:var(--ui-surface, #fafbfd); }
.receipt-card img {width:100%;height:145px;object-fit:cover;display:block;cursor:zoom-in; }
.receipt-card figcaption, .receipt-card .caption {padding:9px 10px;color:var(--ui-muted, #8191a5); font-size:calc(10px * var(--ui-font-scale,1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.receipt-card .icon-button {position:absolute;top:6px;right:6px;width:27px;min-width:27px;min-height:27px;padding:4px; }
.receipt-upload {padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:var(--ui-surface, #fafcff);border:1px dashed var(--ui-border, #c6d6e7);border-radius:9px;color:var(--ui-muted, #7290ae);text-align:center; font-size:calc(12px * var(--ui-font-scale,1));cursor:pointer; }
.receipt-upload:hover {background:var(--ui-surface-soft, #f2f7ff); }
.audit-list {list-style:none;padding:0;margin:0; }
.audit-list li {position:relative; border-left: 1px solid var(--line);padding:0 0 20px 20px;margin-left:5px;color:var(--ui-muted, #71859b); font-size:calc(12px * var(--ui-font-scale,1)); }
.audit-list li::before {content:"";position:absolute;left:-4px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--ui-accent, #93b3d5);border:2px solid var(--ui-border, #fff);box-sizing:content-box; }
.audit-list li:last-child {border-color:transparent;padding-bottom:0; }
.audit-list small {display:block;color:var(--ui-muted, #9aa8b8);margin-top:4px; font-size:calc(10px * var(--ui-font-scale,1)); }
.audit-list strong {color:var(--ui-text, #4c6886);font-weight:500; }
.settings-grid {display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:20px; }
.setting-card { border: 1px solid var(--line); border-radius: var(--radius);background:var(--ui-surface, #fff);padding:24px;min-width:0; }
.setting-card h3 {margin:0 0 9px; font-size:calc(15px * var(--ui-font-scale,1)); }
.setting-card p {color:var(--ui-muted, #8495a9); font-size:calc(12px * var(--ui-font-scale,1));margin-bottom:18px;line-height:1.8; }
.setting-card .row {flex-wrap:wrap; }

/* Overlays remain within the viewport on narrow devices. */
dialog.dialog {width:min(800px, calc(100vw - 40px));max-height:min(90vh, 940px);margin:auto; border: 1px solid var(--line);padding:0;border-radius:15px; color: var(--ink);background:white;box-shadow:0 18px 70px rgb(30 52 77 / 18%);overflow:hidden; }
dialog.dialog[open] {display:flex;flex-direction:column;animation:dialog-in 160ms ease-out; }
dialog::backdrop {background:rgb(30 49 72 / 30%); }
.modal-backdrop {position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgb(30 49 72 / 30%); }
.modal-backdrop > .dialog {width:min(800px, 100%);max-height:90vh;background:var(--ui-surface, #fff); border: 1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 70px rgb(30 52 77 / 18%);animation:dialog-in 160ms ease-out; }
.dialog-head {padding:20px 24px; border-bottom: 1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:15px;flex:0 0 auto; }
.dialog-head h2, .dialog-head h3 { font-size:calc(17px * var(--ui-font-scale,1));margin:0; }
.dialog-head small { color: var(--muted); font-size:calc(11px * var(--ui-font-scale,1));display:block;margin-top:4px; }
.dialog-body {padding:24px;overflow-y:auto;overscroll-behavior:contain;min-height:0; }
.dialog-body h3 { font-size:calc(13px * var(--ui-font-scale,1));margin:25px 0 14px; }
.dialog-body h3:first-child {margin-top:0; }
.dialog-foot {padding:15px 24px; border-top: 1px solid var(--line-soft);display:flex;align-items:center;justify-content:flex-end;gap:9px;background:var(--ui-surface, #fbfcfe);flex:0 0 auto;flex-wrap:wrap; }
.dialog-foot .danger {margin-right:auto; }
.dialog.image-dialog {width:min(1100px, calc(100vw - 40px));background:#f5f7fa; }
.image-dialog .dialog-body {display:flex;align-items:center;justify-content:center;padding:12px; }
.image-dialog img {max-width:100%;max-height:75vh;object-fit:contain; }
.toast {position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:2000;padding:12px 20px;max-width:calc(100vw - 32px);border:1px solid var(--ui-border, #d5e2f0);border-radius:10px;color:var(--ui-text, #315777);background:var(--ui-surface, #fff);box-shadow:0 7px 28px rgb(29 52 78 / 13%); font-size:calc(12px * var(--ui-font-scale,1));text-align:center;animation:toast-in 180ms ease-out; }
.toast.error {border-color:#e9caca; color: var(--red); }
@keyframes dialog-in { from {opacity:0;transform:translateY(7px); } to {opacity:1;transform:translateY(0); } }
@keyframes toast-in { from {opacity:0;margin-bottom:-5px; } to {opacity:1;margin-bottom:0; } }

/* Small reusable layout primitives. */
.content-stack, .stack {display:flex;flex-direction:column;gap:18px; }
.row {display:flex;align-items:center;gap:10px; }
.row-between {display:flex;align-items:center;justify-content:space-between;gap:12px; }
.mono {font-variant-numeric:tabular-nums;font-family:"SFMono-Regular", Consolas, monospace; }
.section-note { font-size:calc(11px * var(--ui-font-scale,1));color:var(--ui-muted, #8b9aae);line-height:1.8;margin:10px 0 0; }
.divider {border:none; border-top: 1px solid var(--line-soft);margin:22px 0; }
.text-right {text-align:right; }
.nowrap {white-space:nowrap; }
.grow {flex:1;min-width:0; }
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0; }

/* Application-specific components share the same visual tokens. */
.brand-symbol {width:39px;height:39px;display:inline-flex;align-items:center;justify-content:center; color: var(--blue); background: var(--blue-soft);border:1px solid var(--ui-border, #deebfa);border-radius:10px; }
.brand-symbol svg {width:23px;height:23px; }
.nav-note {color:var(--ui-muted, #a2afbe);margin-left:auto; font-size:calc(10px * var(--ui-font-scale,1));letter-spacing:.5px;padding-right:3px;white-space:nowrap; }
.search-field {position:relative;flex:1;min-width:200px; }
.search-field > svg {position:absolute;left:13px;top:50%;width:16px;height:16px;transform:translateY(-50%);pointer-events:none;color:var(--ui-muted, #91a3b8); }
.search-field input {padding-left:39px; }
.demo-strip {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;padding:9px 13px;border:1px solid var(--ui-border, #dbe6f3);border-radius:8px;color:var(--ui-muted, #7890aa); font-size:calc(11px * var(--ui-font-scale,1));margin:-2px 0 20px;background:var(--ui-surface-soft, #edf4fd); }
.demo-strip .link-button { font-size:calc(11px * var(--ui-font-scale,1));min-height:23px;padding:2px 5px; }
.metric.featured {border-color:var(--ui-border, #c8dcef);background:var(--ui-surface, #fafdff); }
.metric.featured .metric-value { color: var(--blue); }
.metric-label {justify-content:space-between;flex-wrap:wrap;gap:4px 7px; }
.metric-label > span { font-size:calc(10px * var(--ui-font-scale,1));color:var(--ui-muted, #90a6bb);font-weight:400; }
.metric-unit {color:var(--ui-muted, #8c9bae); font-size:calc(13px * var(--ui-font-scale,1));font-weight:400;letter-spacing:0; }
.metric-foot strong {font-weight:500;color:var(--ui-muted, #6f859c); }
.page-actions .tabs {margin-bottom:0; border: 1px solid var(--line);border-radius:8px;padding:3px;background:var(--ui-surface, #fff);gap:3px; }
.page-actions .tabs button {min-height:30px;padding:5px 13px;border-radius:5px; font-size:calc(11px * var(--ui-font-scale,1)); }
.page-actions .tabs button.active { background: var(--blue-soft); }
.page-actions .tabs button.active::after {display:none; }
.order-link {justify-content:flex-start; color: var(--ink); font-size:calc(12px * var(--ui-font-scale,1));font-weight:500;border:0;background:none;padding:0;min-height:0;text-align:left;white-space:normal;gap:3px; }
.order-link:hover:not(:disabled) {background:none; color: var(--blue);text-decoration:underline; }
.name-cell small {color:var(--ui-muted, #98a6b5); font-size:calc(10px * var(--ui-font-scale,1)); }
.data-table .amount small {display:block;color:var(--ui-muted, #99a7b8); font-size:calc(9px * var(--ui-font-scale,1));font-weight:400;margin-top:3px; }
.danger-text { color: var(--red); }
.form-grid label.field {display:block;color:var(--ui-text, #647a93); font-size:calc(12px * var(--ui-font-scale,1));font-weight:500; }
.form-grid label.field input, .form-grid label.field select, .form-grid label.field textarea {display:block;margin-top:7px;font-weight:400; }
.required {color:#c27770; }
.form-section-head {display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 12px; }
.form-section-head h3 {margin:0 0 4px; font-size:calc(13px * var(--ui-font-scale,1)); }
.form-section-head p {margin:0; font-size:calc(11px * var(--ui-font-scale,1));color:var(--ui-muted, #91a0b2);line-height:1.7; }
.form-section-head button, .form-section-head .upload-label {flex:0 0 auto; font-size:calc(11px * var(--ui-font-scale,1)); }
.item-row {grid-template-columns:21px minmax(145px, 1.65fr) minmax(100px, 1fr) minmax(85px, .8fr) minmax(90px, .9fr) 29px;gap:9px;align-items:end; }
.item-number {align-self:end;padding-bottom:10px; font-size:calc(10px * var(--ui-font-scale,1));font-variant-numeric:tabular-nums;color:var(--ui-muted, #a1b1c3); }
.item-row > label {margin-bottom:0; }
.item-row > label > input, .item-row > label > select {display:block;margin-top:5px; }
.item-row .icon-button {width:29px;min-width:29px;min-height:34px;height:34px;padding:6px;border-color:transparent;background:transparent;color:#b0a3a3; }
.item-row .icon-button:hover {background:#fbefef; color: var(--red); }
.form-total {display:flex;justify-content:flex-end;align-items:baseline;gap:16px;padding:13px 3px 0;color:var(--ui-muted, #8c9cad); font-size:calc(11px * var(--ui-font-scale,1)); }
.form-total strong { font-size:calc(20px * var(--ui-font-scale,1)); color: var(--blue);font-variant-numeric:tabular-nums;font-weight:600; }
.upload-label {display:inline-flex;align-items:center;justify-content:center;gap:7px; border: 1px solid var(--line);border-radius:7px;padding:8px 11px;cursor:pointer;white-space:nowrap; }
.upload-label:hover {border-color:var(--ui-border, #b6cce3);background:var(--ui-surface-soft, #f7faff); }
.receipt-empty {grid-column:1 / -1;padding:21px 15px; border: 1px dashed var(--line);background:var(--ui-surface, #fafbfd);border-radius:8px;color:var(--ui-muted, #9aa8b8);text-align:center; font-size:calc(11px * var(--ui-font-scale,1)); }
.receipt-card > span {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 10px; font-size:calc(10px * var(--ui-font-scale,1));color:var(--ui-muted, #8798aa);width:100%;text-align:left; }
button.receipt-card {display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;background:var(--ui-surface, #fafbfd);border-radius:9px;width:100%; }
button.receipt-card:hover {background:var(--ui-surface-soft, #f2f7fd); }
.receipt-card > .icon-button {z-index:1;background:white;border-color:var(--ui-border, #e3e9f0);box-shadow:0 2px 5px rgb(30 49 72 / 8%); }
.optional-fields {margin-top:24px;padding-top:16px; border-top: 1px solid var(--line-soft); }
.optional-fields summary {cursor:pointer;color:var(--ui-muted, #7f92a8); font-size:calc(12px * var(--ui-font-scale,1));padding:3px 0; }
.optional-fields[open] > summary {margin-bottom:17px; }
.form-error { color: var(--red); font-size:calc(12px * var(--ui-font-scale,1));margin:12px 0 0; }
.form-error:empty {display:none; }
.dialog-body form > .form-footer {margin:23px -24px -24px;justify-content:space-between; }
.detail-title {display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px; }
.detail-title h3 { font-size:calc(19px * var(--ui-font-scale,1));font-weight:600;margin:7px 0 0;line-height:1.5; }
.detail-title .eyebrow { font-size:calc(10px * var(--ui-font-scale,1));letter-spacing:.2px;color:var(--ui-muted, #8b9aae); }
.detail-amounts {display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));padding:17px 20px;border:1px solid var(--ui-border, #e4edf7);background:var(--ui-surface-soft, #f7fafd);border-radius:10px;gap:20px;margin-bottom:23px; }
.detail-amounts small {display:block;color:var(--ui-muted, #8b9fb6); font-size:calc(10px * var(--ui-font-scale,1));margin-bottom:5px; }
.detail-amounts strong { font-size:calc(21px * var(--ui-font-scale,1));color:var(--ui-text, #4b6b8d);font-weight:600;font-variant-numeric:tabular-nums; }
.detail-amounts > :last-child strong { color: var(--blue); }
.dialog-body > .detail-grid {margin-bottom:23px; }
.detail-section {display:flex;align-items:center;gap:9px; }
.detail-actions {display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:21px;margin-top:23px; border-top: 1px solid var(--line-soft); }
.detail-actions > .danger-text {margin-left:auto; }
.note-box {margin-top:15px;padding:11px 13px;color:var(--ui-muted, #8392a5); font-size:calc(12px * var(--ui-font-scale,1));background:var(--ui-surface, #fafbfd);border-radius:7px;white-space:pre-wrap; }
.refund-row {display:flex;justify-content:space-between;align-items:center;gap:15px; font-size:calc(12px * var(--ui-font-scale,1)); border-bottom: 1px solid var(--line-soft);padding:11px 0;margin:0; }
.refund-row small {display:block; font-size:calc(10px * var(--ui-font-scale,1));color:var(--ui-muted, #96a4b5);margin-top:4px; }
.refund-row strong {color:#56867c;white-space:nowrap;font-weight:500; }
.payer-panel {margin-bottom:20px; }
.payer-list {padding:4px 22px 21px;display:flex;flex-wrap:wrap;gap:12px; }
.payer {flex:1 1 175px;max-width:270px;justify-content:flex-start;border-color:var(--ui-border, #e3eaf3);padding:13px 14px;background:var(--ui-surface, #fbfcfe); font-size:calc(12px * var(--ui-font-scale,1));gap:10px; }
.payer strong {margin-left:auto; font-size:calc(13px * var(--ui-font-scale,1));font-weight:600;color:var(--ui-text, #4f6f92);font-variant-numeric:tabular-nums; }
.avatar {width:29px;height:29px;border-radius:50%;background:var(--ui-surface-soft, #eaf1fa);color:var(--ui-muted, #6b8fb7); font-size:calc(11px * var(--ui-font-scale,1));display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto; }
.setting-icon {display:inline-flex;color:var(--ui-muted, #6e93bb);padding:10px;border-radius:10px;background:var(--ui-surface-soft, #f0f5fb);margin-bottom:15px; }
.setting-card .tabs {margin-bottom:12px; }
.audit-panel {margin-top:22px; }
.audit-panel .audit-list {padding:10px 24px 23px; }
.audit-row {display:flex;gap:12px;padding-bottom:20px;position:relative; font-size:calc(12px * var(--ui-font-scale,1)); }
.audit-row:last-child {padding-bottom:0; }
.audit-row strong {font-weight:500;color:var(--ui-text, #637f9c); }
.audit-row small {display:block;color:var(--ui-muted, #9eacbc); font-size:calc(10px * var(--ui-font-scale,1));margin-top:4px; }
.audit-dot {width:7px;height:7px;border:2px solid var(--ui-border, #e8f0fa);background:var(--ui-accent, #a0bbd7);box-sizing:content-box;border-radius:50%;margin-top:5px;flex:0 0 auto;position:relative; }
.audit-row:not(:last-child) .audit-dot::after {content:"";position:absolute;width:1px;height:32px;top:10px;left:3px;background:var(--ui-surface-soft, #e8eef5); }
dialog.image-viewer {width:min(1100px, calc(100vw - 40px)); }
.viewer-controls {display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px; border-bottom: 1px solid var(--line-soft); }
.viewer-controls button { font-size:calc(12px * var(--ui-font-scale,1));min-height:31px;padding:5px 13px; }
.viewer-canvas {min-height:0;overflow:auto;padding:16px;background:var(--ui-surface-soft, #f2f5f8);overscroll-behavior:contain; }
.viewer-canvas img {display:block;height:auto;max-width:none;max-height:none;margin:0 auto;object-fit:contain; }

@media (min-width: 1600px) { .shell {padding-top:34px; } }
@media (max-width: 1100px) {
  .topbar {padding:14px 22px; }
  .nav {padding-left:22px;padding-right:22px; }
  .shell {padding:24px 22px 40px; }
  .top-actions .save-status {display:none; }
  .metrics {gap:12px; }
  .metric {padding:18px; }
  .dashboard-grid {grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); }
  .dashboard-lower {grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr); }
}
@media (max-width: 820px) {
  .dashboard-grid, .dashboard-lower {grid-template-columns:minmax(0, 1fr); }
  .metrics {grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .metric-value { font-size:calc(29px * var(--ui-font-scale,1)); }
  .settings-grid {grid-template-columns:minmax(0, 1fr); }
  .item-row {grid-template-columns:18px minmax(130px, 1.5fr) minmax(90px, 1fr) 85px 85px 27px;gap:7px; }
  .top-actions .mode-pill {display:none; }
  .chart {height:250px; }
}
@media (min-width: 601px) and (max-width: 720px) {
  .item-row {grid-template-columns:18px minmax(0, 1fr) minmax(0, 1fr) 27px;gap:9px; }
  .item-row > :first-child {grid-column:1;grid-row:1; }
  .item-row > :nth-child(2) {grid-column:2 / 4;grid-row:1; }
  .item-row > :nth-child(3) {grid-column:2;grid-row:2; }
  .item-row > :nth-child(4) {grid-column:3;grid-row:2; }
  .item-row > :nth-child(5) {grid-column:2 / 4;grid-row:3; }
  .item-row > :last-child {grid-column:4;grid-row:1; }
}
@media (max-width: 600px) {
  :root { font-size:calc(13px * var(--ui-font-scale,1)); }
  .topbar {align-items:flex-start;padding:16px;gap:12px;flex-wrap:wrap; }
  .brand {gap:10px; }
  .brand h1 { font-size:calc(18px * var(--ui-font-scale,1)); }
  .brand small { font-size:calc(10px * var(--ui-font-scale,1)); }
  .brand-symbol {width:35px;height:35px; }
  .nav-note {display:none; }
  .brand > svg, .brand-icon {width:35px;height:35px; }
  .top-actions {margin-left:auto;gap:6px; }
  .top-actions button {min-height:31px; font-size:calc(11px * var(--ui-font-scale,1));padding:6px 8px; }
  .top-actions .save-status {display:inline-flex; font-size:calc(10px * var(--ui-font-scale,1)); }
  .nav {padding:6px 10px;min-height:48px;gap:1px;overflow-x:auto;scrollbar-width:none; }
  .nav::-webkit-scrollbar {display:none; }
  .nav button { font-size:calc(12px * var(--ui-font-scale,1));padding:8px 10px;flex:0 0 auto;min-height:34px;gap:5px; }
  .nav button svg {width:14px;height:14px; }
  .shell {padding:21px 14px 35px; }
  .page-head {align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px; }
  .page-head h2, .page-head .title { font-size:calc(23px * var(--ui-font-scale,1)); }
  .page-head .subtitle, .page-head p { font-size:calc(11px * var(--ui-font-scale,1)); }
  .eyebrow { font-size:calc(9px * var(--ui-font-scale,1));letter-spacing:1.3px; }
  .page-actions {gap:7px; }
  .page-actions button { font-size:calc(12px * var(--ui-font-scale,1));padding:7px 10px; }
  .banner { font-size:calc(11px * var(--ui-font-scale,1));padding:9px 11px;align-items:flex-start;margin-bottom:17px; }
  .banner svg {margin-top:2px; }
  .toolbar {gap:8px;margin-bottom:15px; }
  .toolbar .search {flex-basis:100%;max-width:none; }
  .toolbar select {flex:1;min-width:100px; }
  .filter-bar {gap:8px; }
  .filter-bar .subtle {width:100%;margin-left:0; }
  .search-field {flex-basis:100%; }
  .filter-bar > select {flex:1 1 95px;min-width:0; }
  .demo-strip { font-size:calc(10px * var(--ui-font-scale,1));margin-bottom:17px;padding:8px 11px; }
  .demo-strip .link-button { font-size:calc(10px * var(--ui-font-scale,1)); }
  .metrics {gap:10px;margin-bottom:16px; }
  .metric {padding:16px 14px;border-radius:11px; }
  .metric-label { font-size:calc(11px * var(--ui-font-scale,1));margin-bottom:11px; }
  .metric-value { font-size:calc(26px * var(--ui-font-scale,1));margin-bottom:9px; }
  .metric-value small, .metric-value .unit { font-size:calc(12px * var(--ui-font-scale,1)); }
  .metric-foot { font-size:calc(10px * var(--ui-font-scale,1)); }
  .dashboard-grid, .dashboard-lower {gap:16px;margin-bottom:16px; }
  .panel {border-radius:11px; }
  .panel-head {padding:17px 16px 12px; }
  .panel-head h3 { font-size:calc(13px * var(--ui-font-scale,1)); }
  .panel-body {padding:12px 16px 18px; }
  .panel-foot {padding:12px 16px; }
  .chart {height:230px;padding:5px 12px 12px; }
  .chart-tall {height:260px; }
  .stat-list {padding:0 16px 18px; }
  .data-table td, .data-table th {padding-left:13px;padding-right:13px; }
  .data-table td:first-child, .data-table th:first-child {padding-left:16px; }
  .data-table td:last-child, .data-table th:last-child {padding-right:16px; }
  .data-table .name-cell {min-width:145px; }
  .tabs {gap:0; }
  .tabs button { font-size:calc(12px * var(--ui-font-scale,1));padding:9px 11px 12px; }
  .form-grid {grid-template-columns:minmax(0, 1fr);gap:16px; }
  .form-section {padding:19px 16px; }
  .form-footer {padding:15px 16px; }
  .item-row {grid-template-columns:18px minmax(0, 1fr) minmax(0, 1fr) 27px;gap:9px;padding:14px 11px;background:var(--ui-surface, #fbfcfe); }
  .item-row > :first-child {grid-column:1;grid-row:1; }
  .item-row > :nth-child(2) {grid-column:2 / 4;grid-row:1; }
  .item-row > :nth-child(3) {grid-column:2;grid-row:2; }
  .item-row > :nth-child(4) {grid-column:3;grid-row:2; }
  .item-row > :nth-child(5) {grid-column:2 / 4;grid-row:3; }
  .item-row > :last-child {grid-column:4;grid-row:1;align-self:end; }
  .form-section-head {align-items:flex-start;gap:10px;margin-top:22px; }
  .form-section-head p { font-size:calc(10px * var(--ui-font-scale,1)); }
  .form-section-head .upload-label, .form-section-head button {padding:6px 8px; font-size:calc(10px * var(--ui-font-scale,1)); }
  .form-total { font-size:calc(10px * var(--ui-font-scale,1));gap:12px; }
  .form-total strong { font-size:calc(19px * var(--ui-font-scale,1)); }
  .receipt-grid {grid-template-columns:repeat(2, minmax(0, 1fr));gap:9px; }
  .receipt-card img {height:130px; }
  .setting-card {padding:20px 18px; }
  dialog.dialog {width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:12px; }
  .modal-backdrop {padding:10px; }
  .modal-backdrop > .dialog {max-height:calc(100dvh - 24px);border-radius:12px; }
  .dialog-head {padding:17px 17px; }
  .dialog-head h2, .dialog-head h3 { font-size:calc(16px * var(--ui-font-scale,1)); }
  .dialog-body {padding:19px 17px; }
  .dialog-body form > .form-footer {margin:21px -17px -19px;flex-wrap:wrap;gap:12px; }
  .dialog-body form > .form-footer > .subtle { font-size:calc(10px * var(--ui-font-scale,1)); }
  .dialog-foot {padding:13px 17px;gap:7px; }
  .dialog-foot button { font-size:calc(12px * var(--ui-font-scale,1)); }
  .detail-grid {gap:16px; }
  .detail-summary {padding:15px;margin-bottom:20px; }
  .detail-summary .amount { font-size:calc(23px * var(--ui-font-scale,1)); }
  .detail-title h3 { font-size:calc(17px * var(--ui-font-scale,1)); }
  .detail-amounts {gap:12px;padding:14px; }
  .detail-amounts strong { font-size:calc(16px * var(--ui-font-scale,1)); }
  .detail-actions button { font-size:calc(11px * var(--ui-font-scale,1));padding:7px 9px; }
  .detail-actions > .danger-text {margin-left:0; }
  .payer-list {padding:4px 16px 18px;gap:9px; }
  .payer {flex-basis:100%;max-width:none; }
  .payer-panel {margin-bottom:16px; }
  .audit-panel .audit-list {padding:8px 18px 20px; }
  dialog.image-viewer {width:calc(100vw - 20px); }
  .viewer-canvas {padding:10px; }
  input, select, textarea { font-size:calc(16px * var(--ui-font-scale,1)); }
  .item-row input, .item-row select { font-size:calc(16px * var(--ui-font-scale,1)); }
  .toast {bottom:18px; font-size:calc(12px * var(--ui-font-scale,1)); }
}
@media (max-width: 370px) {
  .metric-value { font-size:calc(23px * var(--ui-font-scale,1)); }
  .brand small {display:none; }
  .detail-grid {grid-template-columns:minmax(0, 1fr); }
  .top-actions .save-status {display:none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {animation:none !important;transition:none !important;scroll-behavior:auto !important; }
}
/* Analysis: compact indicators, shared category colors, and a secondary buyer summary. */
.analysis-scope {display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;color:var(--ui-text, #647c94); font-size:calc(12px * var(--ui-font-scale,1));margin:-4px 0 12px; }
.analysis-scope small {color:var(--ui-muted, #8798aa); font-size:calc(11px * var(--ui-font-scale,1)); }
.analysis-metrics {gap:12px; }
.analysis-metrics .metric {display:block;text-align:left;white-space:normal;padding:18px 20px 16px; }
.analysis-metrics .metric-label {justify-content:space-between;margin-bottom:10px;color:var(--ui-text, #637a93); }
.analysis-metrics .metric-value {display:block; font-size: calc(clamp(22px, 2.1vw, 30px) * var(--ui-font-scale,1));margin-bottom:9px;overflow-wrap:anywhere; }
.analysis-metrics .metric-unit { font-size:calc(13px * var(--ui-font-scale,1));font-weight:400;color:var(--ui-muted, #7b8ea3); }
.analysis-metrics .metric-foot {display:block;line-height:1.5;min-height:17px;color:var(--ui-muted, #8293a6); }
.analysis-metrics .metric-label svg {opacity:0;transition:opacity 120ms; }
.analysis-metrics .metric:hover .metric-label svg, .analysis-metrics .metric:focus-visible .metric-label svg {opacity:1; }
.analysis-metrics .featured {background:var(--ui-surface-soft, #f3f8ff);border-color:var(--ui-border, #bdd4ec); }
.analysis-metrics .pending-metric .metric-value {color:var(--ui-accent, #3e7bb5); }
.analysis-metrics .paid-metric .metric-value {color:#348273; }
.analysis-charts {grid-template-columns:minmax(0, 1.85fr) minmax(290px, 1fr);align-items:stretch; }
.chart-mode {display:flex;background:var(--ui-surface-soft, #f2f5f9);padding:3px;border-radius:7px;gap:2px; }
.chart-mode button { font-size:calc(11px * var(--ui-font-scale,1));background:transparent;border-color:transparent;min-height:29px;padding:5px 9px; }
.chart-mode button[aria-pressed="true"] {background:var(--ui-surface, #fff); color: var(--blue);border-color:var(--ui-border, #dce5ef);box-shadow:0 1px 2px #203b5708; }
.trend-controls {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding:0 22px; }
.trend-controls label {display:flex;align-items:center;gap:8px;color:var(--ui-muted, #7a8ea4); font-size:calc(11px * var(--ui-font-scale,1)); }
.trend-controls input {width:143px;min-height:31px;padding:5px 8px; font-size:calc(12px * var(--ui-font-scale,1)); }
.trend-controls .link-button { font-size:calc(11px * var(--ui-font-scale,1));padding-left:0; }
.trend-chart {height:305px;padding:0 10px; }
.trend-legend {display:flex;flex-wrap:wrap;justify-content:center;gap:7px 15px;padding:0 22px; font-size:calc(11px * var(--ui-font-scale,1));color:var(--ui-text, #617b94); }
.trend-legend span {display:flex;align-items:center;gap:5px; }
.trend-legend i, .legend-dot {width:9px;height:9px;display:inline-block;border-radius:2px;flex-shrink:0; }
.chart-note {margin:12px 22px 19px;text-align:center; font-size:calc(10px * var(--ui-font-scale,1));color:var(--ui-muted, #8799ab); }
.category-chart {height:178px;padding:0; }
.category-legend {padding:3px 22px 18px; }
.category-legend-row {display:grid;width:100%;grid-template-columns:9px 1fr 44px auto;gap:9px;text-align:left; font-size:calc(11px * var(--ui-font-scale,1));border-color:transparent;border-radius:5px;padding:6px 4px;min-height:28px; }
.category-legend-row small {color:var(--ui-muted, #8094a7);text-align:right; font-size:calc(10px * var(--ui-font-scale,1)); }
.category-legend-row strong { font-size:calc(11px * var(--ui-font-scale,1));font-weight:550;text-align:right;min-width:80px;font-variant-numeric:tabular-nums; }
.buyer-summary {margin-top:18px; }
.buyer-summary summary {cursor:pointer;padding:16px 22px;font-weight:550; font-size:calc(12px * var(--ui-font-scale,1)); }
.buyer-summary summary span {color:var(--ui-muted, #8b9aad);margin-left:12px; font-size:calc(11px * var(--ui-font-scale,1));font-weight:400; }
.buyer-summary > .section-note {margin:0 22px 12px; }
.buyer-summary-list {padding:0 22px 18px;display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:10px; }
.buyer-summary-list button {display:flex;gap:8px;text-align:left;padding:10px; font-size:calc(12px * var(--ui-font-scale,1)); }
.buyer-summary-list button strong { font-size:calc(11px * var(--ui-font-scale,1));font-weight:550;margin-left:auto; }
.filter-chip { font-size:calc(11px * var(--ui-font-scale,1));background:var(--ui-surface-soft, #edf4fc);color:var(--ui-accent, #3e7bb5); }
.reimbursement-metrics {grid-template-columns:repeat(3, minmax(0,1fr)); }
@media (max-width: 1100px) {
  .analysis-charts {grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr); }
  .buyer-summary-list {grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .analysis-charts {grid-template-columns:minmax(0,1fr); }
  .category-panel {display:grid;grid-template-columns:1fr 1.2fr;align-items:center; }
  .category-panel > .panel-head {grid-column:1/-1; }
  .category-panel .category-legend {padding:0 18px 18px 0; }
  .category-chart {height:195px; }
}
@media (max-width: 600px) {
  .analysis-metrics {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
  .analysis-metrics .metric {padding:14px 13px 12px; }
  .analysis-metrics .metric-label { font-size:calc(11px * var(--ui-font-scale,1));margin-bottom:8px; }
  .analysis-metrics .metric-value { font-size:calc(23px * var(--ui-font-scale,1));letter-spacing:-.7px; }
  .analysis-metrics .metric-foot { font-size:calc(10px * var(--ui-font-scale,1));min-height:30px; }
  .trend-controls {padding:0 16px; }
  .trend-controls label { font-size:calc(10px * var(--ui-font-scale,1));gap:5px; }
  .trend-chart {height:280px;padding:0 4px; }
  .trend-legend {gap:8px 12px; font-size:calc(10px * var(--ui-font-scale,1));padding:0 13px; }
  .category-panel {grid-template-columns:1fr; }
  .category-chart {height:172px; }
  .category-panel .category-legend {padding:0 20px 16px; }
  .category-legend-row { font-size:calc(12px * var(--ui-font-scale,1));min-height:33px; }
  .category-legend-row strong { font-size:calc(12px * var(--ui-font-scale,1)); }
  .buyer-summary summary {padding:15px 16px; }
  .buyer-summary summary span {display:block;margin:5px 0 0 16px; }
  .buyer-summary-list {padding:0 16px 16px;grid-template-columns:1fr; }
  .reimbursement-metrics {grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reimbursement-metrics > .featured {grid-column:1/-1; }
}
@media print {
  .top-actions, .nav, .page-actions, .toolbar, .filter-bar, .toast, .dialog-foot, .link-button {display:none !important; }
  body {background:var(--ui-surface, #fff); }
  .shell {max-width:none;padding:15px 0; }
  .panel, .metric, .setting-card {box-shadow:none;break-inside:avoid; }
  .table-wrap {overflow:visible; }
}
