:root {
    /* ground + elevation ------------------------------------------------ */
    --bg:          #F0F4F8;
    --surface:     #FFFFFF;
    --surface2:    #F8FAFC;
    --surface3:    rgba(226,232,240,0.62);
    --border:      #E2E8F0;
    --border-soft: #EEF2F7;

    /* type -------------------------------------------------------------- */
    --text:        #1E293B;
    --text-dim:    #475569;
    --muted:       #64748B;
    --faint:       #94A3B8;

    /* interactive ------------------------------------------------------- */
    --accent:        #1A56DB;
    --accent-hover:  #1E40AF;
    --accent-light:  #EBF2FF;
    --accent-border: #BFDBFE;
    --on-accent:     #FFFFFF;

    /* semantic signals (these carry meaning - status, not decoration) --- */
    --green:    #166534;  --green-bg: #DCFCE7;
    --amber:    #92400E;  --amber-bg: #FEF3C7;
    --red:      #991B1B;  --red-bg:   #FEE2E2;
    --blue:     #1E40AF;  --blue-bg:  #DBEAFE;
    --gray:     #4B5563;  --gray-bg:  #F3F4F6;

    /* type scale - replaces the old 8/9/10/11/12/13/14/15/16px mush ----- */
    --fs-micro: 11px;
    --fs-xs:    12px;
    --fs-sm:    13px;
    --fs-base:  15px;
    --fs-md:    17px;
    --fs-lg:    21px;
    --fs-xl:    28px;
    --fs-hero:  38px;

    /* radii - 3 steps + pill, was 7 arbitrary values -------------------- */
    --r-sm:   6px;
    --r-md:   10px;
    --r-lg:   14px;
    --r-pill: 999px;

    /* elevation --------------------------------------------------------- */
    --sh-1: 0 1px 2px rgba(15,23,42,0.08);
    --sh-2: 0 4px 14px rgba(15,23,42,0.10);
    --sh-3: 0 16px 44px rgba(15,23,42,0.14);

    --mono: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    --sans: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Lab draw collection context */
.lab-context-panel{margin:12px 16px 0;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.lab-context-panel[hidden]{display:none}
.lab-context-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--surface2)}
.lab-context-heading>div:first-child span{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lab-context-heading h3{margin:2px 0 0;font-size:15px;color:var(--text)}
.lab-context-actions{display:flex;align-items:center;gap:8px}
.lab-context-heading button{border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);padding:5px 10px;font-size:11px;font-weight:700;cursor:pointer}
.lab-context-status{padding:4px 8px;border-radius:999px;background:var(--amber-bg);color:var(--amber);font-size:10px;font-weight:800}
.lab-context-status.complete{background:var(--green-bg);color:var(--green)}
.lab-context-grid{display:grid;grid-template-columns:repeat(6,minmax(100px,1fr));gap:0;border-bottom:1px solid var(--border)}
.lab-context-grid>div{padding:10px 12px;border-right:1px solid var(--border)}
.lab-context-grid>div:last-child{border-right:0}
.lab-context-grid span{display:block;font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.lab-context-grid strong{display:block;margin-top:4px;font-size:12px;color:var(--text)}
.lab-context-grid strong.unknown{color:var(--faint);font-weight:500}
.lab-context-pending{padding:10px 14px;background:var(--amber-bg);color:var(--text)}
.lab-context-pending strong{font-size:11px;color:var(--amber)}
.lab-context-pending p,.lab-context-notes,.lab-context-empty{margin:4px 0 0;font-size:12px;line-height:1.5}
.lab-context-notes,.lab-context-empty{padding:10px 14px;margin:0;color:var(--muted)}
.lab-context-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px}
.lab-context-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--muted)}
.lab-context-form label.wide{grid-column:1/-1}
.lab-context-form input,.lab-context-form select,.lab-context-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text);padding:8px;font:inherit;font-weight:500}
.lab-context-modal .modal-box{max-width:620px;width:min(620px,calc(100vw - 24px))}
.lab-context-modal .modal-header button{border:0;background:none;color:var(--muted);font-size:24px;cursor:pointer}
.lab-context-modal .modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}
.lab-context-modal .modal-actions span{margin-right:auto;font-size:11px;color:var(--muted)}
.lab-context-modal .modal-actions button{border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text);padding:7px 11px;font-size:11px;font-weight:700;cursor:pointer}
.lab-context-modal .modal-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:760px){.lab-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-context-grid>div{border-bottom:1px solid var(--border)}.lab-context-form{grid-template-columns:1fr}.lab-context-form label.wide{grid-column:auto}}

  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: var(--sans); background: var(--bg); color: var(--text); min-height: 100vh; }

  /* NAV */
  nav { display: flex; align-items: center; justify-content: space-between; padding: 0 24px; height: 62px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface); z-index: 100; box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
  .nav-logo { font-family: var(--mono); font-size: var(--fs-base); font-weight: 500; color: var(--accent); letter-spacing: 2px; text-transform: uppercase; }
  .nav-tabs { display: flex; gap: 2px; }
  .nav-tab { background: none; border: none; color: var(--muted); font-family: var(--sans); font-size: var(--fs-base); padding: 8px 16px; border-radius: var(--r-sm); cursor: pointer; transition: all 0.15s; font-weight: 400; }
  .nav-tab:hover { color: var(--text); background: var(--surface2); }
  .nav-tab.active { color: var(--accent); background: var(--accent-light); font-weight: 500; }
  .nav-dropdown { position: relative; display: inline-block; }
  .drop-caret { font-size: var(--fs-micro); margin-left: 1px; opacity: 0.7; }
  .drop-menu { position: absolute; top: calc(100% + 4px); left: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 4px; min-width: 190px; z-index: 999; display: none; }
  .nav-dropdown.open .drop-menu { display: block; }
  .drop-submenu-wrap { position: relative; }
  .drop-submenu-wrap > .drop-item { display: flex; justify-content: space-between; align-items: center; }
  .drop-submenu-wrap > .drop-item::after { content: ''; font-size: var(--fs-micro); color: var(--muted); margin-left: 8px; }
  .drop-submenu { display: none; position: absolute; left: 100%; top: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); min-width: 200px; box-shadow: 0 4px 16px rgba(0,0,0,0.12); z-index: 200; padding: 4px 0; }
  .drop-submenu-wrap:hover .drop-submenu { display: block; }
  .drop-item { display: block; width: 100%; text-align: left; background: none; border: none; color: var(--muted); font-family: var(--sans); font-size: var(--fs-base); padding: 8px 14px; border-radius: var(--r-sm); cursor: pointer; text-decoration: none; }
  .drop-item:hover:not(:disabled) { color: var(--text); background: var(--surface2); }
  .drop-soon { opacity: 0.4; cursor: default; font-style: italic; }
  .drop-soon::after { content: ' · soon'; font-size: var(--fs-sm); }
  .drop-divider { height: 1px; background: var(--border); margin: 4px 8px; }
  .nav-right { display: flex; align-items: center; gap: 10px; }
  .status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--faint); flex-shrink: 0; }
  .status-dot.online { background: var(--green); box-shadow: 0 0 0 2px var(--green-bg); }
  .sync-btn { background: var(--surface); border: 1px solid var(--border); color: var(--muted); font-size: var(--fs-sm); padding: 6px 12px; border-radius: var(--r-sm); cursor: pointer; font-family: var(--mono); transition: all 0.15s; }
  .sync-btn:hover { border-color: var(--accent); color: var(--accent); }
  .sync-btn:disabled { cursor:wait; opacity:.75; }
  .quick-nav-trigger { display:flex; align-items:center; gap:8px; min-height:34px; padding:6px 9px 6px 11px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); color:var(--muted); font-size:var(--fs-sm); cursor:pointer; }
  .quick-nav-trigger:hover { border-color:var(--accent-border); color:var(--accent); }
  .quick-nav-trigger kbd { padding:2px 5px; border:1px solid var(--border); border-bottom-width:2px; border-radius:4px; background:var(--surface); color:var(--faint); font-family:var(--mono); font-size:var(--fs-micro); }

  /* MAIN */
  main { max-width: 1100px; margin: 0 auto; padding: 24px; }
  .view { display: none; }
  .view.active { display: block; }
  #view-tracker { background: var(--surface2); padding: 20px; border-radius: var(--r-md); }
  #tracker-content { width: 100%; }
  #tracker-content table { width: 100% !important; }

  /* DASHBOARD */
  .dash-header { margin-bottom: 24px; }
  .dash-header h1 { font-size: var(--fs-xl); font-weight: 300; color: var(--text); letter-spacing: -0.3px; }
  .dash-header h1 span { color: var(--accent); font-weight: 600; }
  .dash-header p { color: var(--muted); font-size: var(--fs-sm); margin-top: 4px; font-family: var(--mono); }
  .dashboard-actions { display:flex; flex-wrap:wrap; gap:8px; margin:-8px 0 20px; }
  .dashboard-actions button { min-height:38px; padding:8px 13px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface); color:var(--text-dim); font-size:var(--fs-sm); font-weight:500; cursor:pointer; box-shadow:var(--sh-1); transition:border-color .15s, color .15s, background .15s; }
  .dashboard-actions button:hover { border-color:var(--accent-border); color:var(--accent); background:var(--accent-light); }
  .dashboard-actions button span { color:var(--accent); font-size:var(--fs-base); margin-right:2px; }
  .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
  .stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 16px 18px; }
  .stat-card-button { position:relative; min-width:0; color:inherit; font-family:inherit; text-align:left; cursor:pointer; box-shadow:var(--sh-1); transition:border-color .15s, box-shadow .15s, transform .15s; }
  .stat-card-button:hover { border-color:var(--accent-border); box-shadow:var(--sh-2); transform:translateY(-1px); }
  .stat-card-button > span { display:block; margin-top:5px; color:var(--muted); font-size:var(--fs-micro); }
  .stat-label { font-size: var(--fs-sm); color: var(--muted); text-transform: uppercase; letter-spacing: 0.8px; font-family: var(--mono); margin-bottom: 8px; }
  .stat-value { font-size: var(--fs-hero); font-weight: 300; color: var(--text); }
  .stat-value.green { color: var(--green); }
  .stat-value.blue { color: var(--accent); }
  .stat-value.amber { color: var(--amber); }
  .dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .dash-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 20px; }
  .dash-card h3 { font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 1.2px; color: var(--muted); font-family: var(--mono); margin-bottom: 16px; }
  .quick-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
  .quick-item:last-child { border-bottom: none; }
  .compound-name { font-size: var(--fs-base); font-weight: 500; color: var(--text); }
  .compound-sub { display: block; font-size: var(--fs-sm); color: var(--muted); margin-top: 2px; }
  .dash-card .compound-sub { display: block !important; }
  .dashboard-overview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
  .dashboard-secondary-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:16px; margin-bottom:16px; }
  .dashboard-overview-card { min-width:0; }
  .dashboard-health-snapshot-card, .dashboard-activity-card { min-width:0; }
  .dashboard-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:15px; }
  .dashboard-card-heading h2 { margin-top:2px; font-size:var(--fs-md); font-weight:600; }
  .dashboard-eyebrow { display:block; color:var(--accent); font-family:var(--mono); font-size:var(--fs-micro); font-weight:600; letter-spacing:.8px; text-transform:uppercase; }
  .dashboard-card-heading button { flex-shrink:0; min-height:30px; padding:5px 9px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); color:var(--text-dim); font-size:var(--fs-xs); cursor:pointer; }
  .dashboard-card-heading button:hover { border-color:var(--accent-border); color:var(--accent); background:var(--accent-light); }
  .dashboard-insight-loading, .dashboard-empty { padding:10px 0; color:var(--muted); font-size:var(--fs-sm); }
  .dashboard-status-line { display:flex; align-items:flex-start; gap:9px; padding:11px 12px; border-radius:var(--r-sm); }
  .dashboard-status-line.pending { background:var(--amber-bg); color:var(--amber); }
  .dashboard-status-line.complete { background:var(--green-bg); color:var(--green); }
  .dashboard-status-dot { width:9px; height:9px; margin-top:4px; border:2px solid currentColor; border-radius:50%; background:transparent; }
  .dashboard-status-line.complete .dashboard-status-dot { background:currentColor; }
  .dashboard-status-line strong, .dashboard-status-line span { display:block; }
  .dashboard-status-line strong { font-size:var(--fs-sm); }
  .dashboard-status-line div span { margin-top:2px; font-size:var(--fs-xs); line-height:1.45; }
  .dashboard-lab-summary { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:10px; }
  .dashboard-lab-summary > div { padding:10px 11px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); }
  .dashboard-lab-summary span, .dashboard-lab-summary strong { display:block; }
  .dashboard-lab-summary span { color:var(--muted); font-size:var(--fs-micro); text-transform:uppercase; letter-spacing:.5px; }
  .dashboard-lab-summary strong { margin-top:4px; font-size:var(--fs-sm); }
  .dashboard-lab-summary strong.attention { color:var(--red); }
  .dashboard-card-note { margin-top:10px; color:var(--muted); font-size:var(--fs-xs); line-height:1.5; }
  .dashboard-focus-list { display:grid; grid-template-columns:minmax(0,1fr); min-width:0; gap:7px; }
  .dashboard-focus-list button { display:flex; align-items:flex-start; gap:9px; width:100%; max-width:100%; min-width:0; overflow:hidden; padding:9px 10px; border:1px solid var(--border-soft); border-radius:var(--r-sm); background:var(--surface2); color:var(--text); font-family:inherit; text-align:left; cursor:pointer; }
  .dashboard-focus-list button:hover { border-color:var(--accent-border); background:var(--accent-light); }
  .dashboard-focus-list button > span:last-child { min-width:0; }
  .dashboard-focus-list strong, .dashboard-focus-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dashboard-focus-list strong { font-size:var(--fs-sm); }
  .dashboard-focus-list small { margin-top:2px; color:var(--muted); font-size:var(--fs-micro); }
  .dashboard-focus-priority { flex-shrink:0; min-width:48px; padding:2px 6px; border-radius:var(--r-pill); background:var(--gray-bg); color:var(--gray); font-size:10px; font-weight:600; text-align:center; }
  .dashboard-focus-priority.high { background:var(--red-bg); color:var(--red); }
  .dashboard-focus-priority.medium { background:var(--amber-bg); color:var(--amber); }
  .dashboard-focus-priority.low { background:var(--green-bg); color:var(--green); }
  .dashboard-metric-row { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
  .dashboard-metric-row > div { padding:12px 8px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); text-align:center; }
  .dashboard-metric-row strong, .dashboard-metric-row span { display:block; }
  .dashboard-metric-row strong { color:var(--accent); font-size:24px; font-weight:500; }
  .dashboard-metric-row span { margin-top:3px; color:var(--muted); font-size:10px; line-height:1.3; }
  .dashboard-queue-count { display:flex; align-items:baseline; gap:8px; margin-bottom:10px; }
  .dashboard-queue-count strong { color:var(--accent); font-size:30px; font-weight:500; }
  .dashboard-queue-count span { color:var(--muted); font-size:var(--fs-sm); }
  .dashboard-test-chips { display:flex; flex-wrap:wrap; gap:5px; }
  .dashboard-test-chips span { padding:4px 7px; border:1px solid var(--accent-border); border-radius:var(--r-pill); background:var(--accent-light); color:var(--accent); font-size:var(--fs-micro); }
  .dashboard-daily-freshness { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
  .dashboard-daily-freshness > span { padding:3px 8px; border-radius:var(--r-pill); background:var(--green-bg); color:var(--green); font-size:var(--fs-micro); font-weight:600; }
  .dashboard-daily-freshness > span.stale { background:var(--amber-bg); color:var(--amber); }
  .dashboard-daily-freshness small { color:var(--muted); font-size:var(--fs-xs); }
  .dashboard-daily-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .dashboard-daily-metrics > div { min-width:0; padding:10px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); }
  .dashboard-daily-metrics > div > span, .dashboard-daily-metrics > div > strong, .dashboard-daily-metrics > div > em { display:block; }
  .dashboard-daily-metrics > div > span { color:var(--muted); font-size:var(--fs-micro); text-transform:uppercase; letter-spacing:.45px; }
  .dashboard-daily-metrics > div > strong { margin-top:5px; overflow:hidden; color:var(--text); font-size:22px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
  .dashboard-daily-metrics > div > strong small { color:var(--muted); font-size:var(--fs-xs); font-weight:400; }
  .dashboard-daily-metrics > div > em { margin-top:4px; overflow:hidden; color:var(--muted); font-family:var(--mono); font-size:9px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
  .dashboard-activity-list { display:grid; gap:2px; }
  .dashboard-activity-list button { display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:9px; width:100%; min-width:0; padding:8px 5px; border:0; border-bottom:1px solid var(--border-soft); background:transparent; color:var(--text); font-family:inherit; text-align:left; cursor:pointer; }
  .dashboard-activity-list button:last-child { border-bottom:0; }
  .dashboard-activity-list button:hover { background:var(--surface2); }
  .dashboard-activity-list button > span:nth-child(2) { min-width:0; }
  .dashboard-activity-list strong, .dashboard-activity-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .dashboard-activity-list strong { font-size:var(--fs-xs); }
  .dashboard-activity-list small { margin-top:2px; color:var(--muted); font-size:var(--fs-micro); }
  .dashboard-activity-list time { color:var(--muted); font-family:var(--mono); font-size:9px; white-space:nowrap; }
  .dashboard-activity-dot { width:8px; height:8px; border-radius:50%; background:var(--faint); }
  .dashboard-activity-dot.injection { background:var(--accent); }
  .dashboard-activity-dot.protocol { background:var(--amber); }
  .dashboard-activity-dot.supplement { background:var(--green); }
  .dashboard-protocol-details { margin-bottom:24px; }
  .dashboard-protocol-details > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); cursor:pointer; list-style:none; box-shadow:var(--sh-1); }
  .dashboard-protocol-details > summary::-webkit-details-marker { display:none; }
  .dashboard-protocol-details > summary strong, .dashboard-protocol-details > summary small { display:block; }
  .dashboard-protocol-details > summary strong { font-size:var(--fs-sm); }
  .dashboard-protocol-details > summary small { margin-top:2px; color:var(--muted); font-size:var(--fs-xs); font-weight:400; }
  .dashboard-details-action { color:var(--accent); font-family:var(--mono); font-size:var(--fs-xs); }
  .dashboard-protocol-details[open] .dashboard-details-action { font-size:0; }
  .dashboard-protocol-details[open] .dashboard-details-action::after { content:'Hide details'; font-size:var(--fs-xs); }
  .dashboard-protocol-details[open] > summary { margin-bottom:14px; }

  /* BADGES */
  .badge { font-size: var(--fs-xs); padding: 2px 8px; border-radius: var(--r-pill); font-family: var(--mono); font-weight: 500; white-space: nowrap; }
  .badge-active { background: var(--green-bg); color: var(--green); }
  .badge-paused { background: var(--gray-bg); color: var(--gray); }
  .badge-tbd { background: var(--amber-bg); color: var(--amber); }
  .badge-onorder { background: var(--blue-bg); color: var(--blue); }
  .badge-deferred { background: var(--gray-bg); color: var(--faint); }

  /* SECTION */
  .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
  .section-header h2 { font-size: var(--fs-md); font-weight: 500; color: var(--text); }
  .section-sub { margin-top:3px; color:var(--muted); font-size:var(--fs-xs); line-height:1.45; }
  .generated-view-header { padding-bottom:12px; border-bottom:1px solid var(--border); }
  body > .view.standard-view,
  #app-shell > .view.standard-view { width:min(1100px,100%); margin:24px auto; padding:0 24px; }
  .print-btn { background: var(--accent); color: var(--surface); border: none; font-family: var(--sans); font-size: var(--fs-sm); font-weight: 500; padding: 7px 16px; border-radius: var(--r-sm); cursor: pointer; }
  .print-btn:hover { background: var(--blue); }

  /* TABLES */
  .table-wrap { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); overflow-x: auto; margin-bottom: 16px; }
  .timing-header { background: var(--accent-light); padding: 8px 14px; font-size: var(--fs-sm); font-family: var(--mono); color: var(--accent); letter-spacing: 1.5px; text-transform: uppercase; border-bottom: 1px solid var(--accent-border); font-weight: 500; }
  .data-table { width: 100%; border-collapse: collapse; min-width: 600px; }
  .data-table th { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.8px; color: var(--muted); font-family: var(--mono); padding: 9px 14px; text-align: left; border-bottom: 1px solid var(--border); font-weight: 400; background: var(--surface2); }
  .data-table td { padding: 10px 14px; border-bottom: 1px solid var(--border); font-size: var(--fs-base); vertical-align: middle; }
  .data-table tr:last-child td { border-bottom: none; }
  .data-table tr:hover td { background: var(--surface2); }

  /* SHARED DATA VIEWS */
  .data-enhanced .data-view-header { margin-bottom:10px; }
  .data-enhanced .data-view-toolbar { align-items:center; margin-bottom:10px; padding:11px 12px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); }
  .data-enhanced .data-view-toolbar > span:first-child { margin-right:4px; color:var(--text) !important; font-size:var(--fs-base) !important; font-weight:600 !important; }
  .data-view-utility { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
  .data-view-utility-spacer { flex:1; }
  .data-view-search { display:flex; align-items:center; gap:7px; flex:1; min-width:220px; max-width:460px; padding:0 10px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface); color:var(--muted); }
  .data-view-search:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-light); }
  .data-view-search input { width:100%; min-height:38px; padding:7px 0; border:0; box-shadow:none; background:transparent; color:var(--text); font-size:var(--fs-sm); outline:0; }
  .data-view-count { margin-left:auto; color:var(--muted); font-family:var(--mono); font-size:var(--fs-xs); white-space:nowrap; }
  .data-enhanced [hidden] { display:none !important; }
  .data-density-toggle, .data-export-button { min-height:36px; padding:6px 10px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface); color:var(--text-dim); font-size:var(--fs-xs); cursor:pointer; white-space:nowrap; }
  .data-density-toggle:hover, .data-export-button:hover { border-color:var(--accent-border); color:var(--accent); background:var(--accent-light); }
  .data-view-empty { margin-bottom:12px; padding:16px; border:1px dashed var(--border); border-radius:var(--r-md); background:var(--surface); color:var(--muted); text-align:center; font-size:var(--fs-sm); }
  .data-filter-empty { display:none; }
  :root[data-data-density="compact"] .data-enhanced .data-table th { padding-top:6px; padding-bottom:6px; }
  :root[data-data-density="compact"] .data-enhanced .data-table td { padding-top:6px; padding-bottom:6px; font-size:var(--fs-sm); }
  :root[data-data-density="compact"] .data-enhanced .timing-header { padding-top:6px; padding-bottom:6px; }
  :root[data-data-density="compact"] .data-enhanced .pricing-group { margin-bottom:12px; }
  .data-sort-button { display:flex; align-items:center; justify-content:space-between; gap:6px; width:100%; padding:0; border:0; background:transparent; color:inherit; font:inherit; letter-spacing:inherit; text-align:inherit; text-transform:inherit; cursor:pointer; }
  .data-sort-button:hover { color:var(--accent); }
  .data-sort-indicator { color:var(--faint); font-size:11px; }
  th[aria-sort] .data-sort-indicator { color:var(--accent); }
  .injlog-table-scroll { overflow-x:auto; }
  .injlog-history-tools { display:flex; align-items:center; gap:8px; margin:0 0 12px; }
  .injlog-history-tools .data-view-search { max-width:340px; }
  .injlog-range-label { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:var(--fs-xs); white-space:nowrap; }
  .injlog-range-label select { min-height:38px; padding:6px 28px 6px 9px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface); color:var(--text); font-size:var(--fs-sm); }
  .daily-log-history-table td:not(:first-child) { text-align:right; font-family:var(--mono); font-size:var(--fs-xs); }
  .daily-log-history-table th:not(:first-child) { text-align:right; }

  /* REMAINING VIEW POLISH */
  .injlog-full-heading { margin:0 !important; }
  #injlog-history-toggle { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; margin:4px 0 12px; padding:12px 14px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); color:var(--text); text-align:left; cursor:pointer; }
  #injlog-history-toggle:hover { border-color:var(--accent-border); background:var(--surface2); }
  #injlog-history-toggle strong { display:block; font-size:var(--fs-sm); }
  #injlog-history-toggle small { display:block; margin-top:2px; color:var(--muted); font-size:var(--fs-xs); font-weight:400; }
  .injlog-toggle-label { color:var(--accent); font-family:var(--mono); font-size:var(--fs-xs); white-space:nowrap; }
  #injlog-summary, #injlog-full, #log-history, #bc-history, #db-content { border-radius:var(--r-md); }
  #injlog-summary, #injlog-full { overflow-x:auto; }
  #view-databrowser .section-header { padding:12px 14px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); }
  #db-content > div { box-shadow:var(--sh-1); }
  #back-to-top { position:fixed; right:20px; bottom:20px; z-index:500; width:42px; height:42px; border:1px solid var(--accent-border); border-radius:var(--r-pill); background:var(--surface); color:var(--accent); box-shadow:var(--sh-2); font-size:20px; cursor:pointer; opacity:0; transform:translateY(8px); pointer-events:none; transition:opacity .15s, transform .15s; }
  #back-to-top.visible { opacity:1; transform:translateY(0); pointer-events:auto; }

  /* FILTER BAR */
  .filter-bar { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }

  /* LAB MONITORING PLAN */
  .labs-toolbar { display:flex; align-items:center; gap:10px; margin-bottom:16px; padding:14px 16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); }
  .labs-heading { min-width:220px; margin-right:auto; }
  .labs-heading strong { display:block; color:var(--text); font-size:var(--fs-md); font-weight:600; }
  .labs-heading span { display:block; margin-top:2px; color:var(--muted); font-size:var(--fs-xs); }
  .labs-view-picker { display:flex; align-items:center; gap:7px; color:var(--muted); font-family:var(--mono); font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.5px; }
  .labs-view-picker select, .labs-toolbar-select { min-height:34px; padding:5px 30px 5px 9px; border:1px solid var(--border); border-radius:var(--r-sm); color:var(--text); background:var(--surface2); font-family:var(--sans); font-size:var(--fs-sm); }
  .labs-view-picker select:hover, .labs-toolbar-select:hover { border-color:var(--accent-border); }
  .labs-log-result { margin-left:2px; background:var(--accent); color:var(--on-accent); border-color:var(--accent); white-space:nowrap; }
  .labs-log-result:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
  .labs-batch-result { white-space:nowrap; }
  .batch-lab-modal-box { width:min(760px,calc(100vw - 28px)); max-height:88vh; overflow-y:auto; }
  .batch-lab-help { margin:-6px 0 16px; color:var(--muted); font-size:var(--fs-sm); line-height:1.5; }
  .batch-lab-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  #batch-lab-input { width:100%; min-height:180px; resize:vertical; font-family:var(--mono); font-size:var(--fs-xs); line-height:1.55; }
  .batch-lab-preview { margin-top:10px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface2); overflow:hidden; }
  .batch-lab-preview > p { padding:16px; color:var(--muted); font-size:var(--fs-sm); }
  .batch-lab-preview-heading { display:flex; justify-content:space-between; gap:10px; padding:10px 12px; border-bottom:1px solid var(--border); background:var(--surface); }
  .batch-lab-preview-heading strong { font-size:var(--fs-sm); }
  .batch-lab-preview-heading span { color:var(--muted); font-size:var(--fs-xs); }
  .batch-lab-preview-table { max-height:240px; overflow:auto; }
  .batch-lab-preview table { width:100%; border-collapse:collapse; }
  .batch-lab-preview th, .batch-lab-preview td { padding:7px 10px; border-bottom:1px solid var(--border); font-size:var(--fs-xs); text-align:left; }
  .batch-lab-preview th { position:sticky; top:0; background:var(--surface2); color:var(--muted); font-family:var(--mono); font-size:var(--fs-micro); text-transform:uppercase; }
  .batch-lab-preview td small { display:block; color:var(--amber); font-size:10px; }
  .batch-lab-error td { color:var(--red); background:var(--red-bg); }
  .batch-lab-range { color:var(--green); font-weight:600; }
  .batch-lab-range.out { color:var(--red); }
  .batch-lab-more { padding:8px 10px; color:var(--muted); font-size:var(--fs-xs); }
  .batch-lab-actions { align-items:center; }
  #batch-lab-status { margin-right:auto; color:var(--muted); font-size:var(--fs-xs); }
  .lab-draw-insights { margin-bottom:16px; padding:16px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); box-shadow:var(--sh-1); }
  .lab-insight-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
  .lab-insight-heading > div:first-child span { color:var(--accent); font-family:var(--mono); font-size:var(--fs-micro); font-weight:600; letter-spacing:.7px; text-transform:uppercase; }
  .lab-insight-heading h2 { margin-top:3px; font-size:var(--fs-lg); font-weight:500; }
  .lab-insight-actions { display:flex; align-items:center; gap:8px; }
  .lab-insight-actions > span { color:var(--muted); font-size:var(--fs-xs); }
  .lab-insight-actions button { min-height:34px; padding:6px 10px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); color:var(--text-dim); font-size:var(--fs-xs); cursor:pointer; }
  .lab-insight-actions button:hover { border-color:var(--accent-border); color:var(--accent); background:var(--accent-light); }
  .lab-result-pending { display:flex; align-items:flex-start; gap:9px; margin-top:12px; padding:10px 11px; border-radius:var(--r-sm); background:var(--amber-bg); color:var(--amber); }
  .lab-result-pending > span { width:9px; height:9px; margin-top:4px; border:2px solid currentColor; border-radius:50%; }
  .lab-result-pending strong, .lab-result-pending small { display:block; }
  .lab-result-pending strong { font-size:var(--fs-sm); }
  .lab-result-pending small { margin-top:2px; font-size:var(--fs-xs); line-height:1.4; }
  .lab-insight-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:12px; }
  .lab-insight-stats > div { padding:10px 11px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); }
  .lab-insight-stats strong, .lab-insight-stats span { display:block; }
  .lab-insight-stats strong { font-size:22px; font-weight:500; }
  .lab-insight-stats span { margin-top:2px; color:var(--muted); font-size:var(--fs-micro); text-transform:uppercase; letter-spacing:.4px; }
  .lab-insight-stats .attention strong { color:var(--red); }
  .lab-flagged-summary { margin-top:12px; padding:11px 12px; border:1px solid rgba(153,27,27,.16); border-radius:var(--r-sm); background:var(--red-bg); }
  .lab-flagged-summary > strong { display:block; margin-bottom:7px; color:var(--red); font-size:var(--fs-xs); text-transform:uppercase; letter-spacing:.5px; }
  .lab-flagged-summary > div { display:flex; flex-wrap:wrap; gap:6px; }
  .lab-flagged-summary span { padding:4px 7px; border-radius:var(--r-pill); background:rgba(255,255,255,.58); color:var(--red); font-size:var(--fs-xs); }
  .lab-no-flags { margin-top:12px; color:var(--green); font-size:var(--fs-xs); }
  .lab-comparison { margin-top:12px; border-top:1px solid var(--border); }
  .lab-comparison > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0 0; cursor:pointer; list-style:none; }
  .lab-comparison > summary::-webkit-details-marker { display:none; }
  .lab-comparison > summary strong, .lab-comparison > summary small { display:block; }
  .lab-comparison > summary strong { font-size:var(--fs-sm); }
  .lab-comparison > summary small { margin-top:2px; color:var(--muted); font-size:var(--fs-xs); font-weight:400; }
  .lab-comparison-action { color:var(--accent); font-family:var(--mono); font-size:var(--fs-xs); }
  .lab-comparison[open] .lab-comparison-action { font-size:0; }
  .lab-comparison[open] .lab-comparison-action::after { content:'Hide comparison'; font-size:var(--fs-xs); }
  .lab-comparison-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:10px; }
  .lab-comparison-grid > div { position:relative; padding:9px 72px 9px 10px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface2); }
  .lab-comparison-grid > div > span, .lab-comparison-grid > div > strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .lab-comparison-grid > div > span { color:var(--muted); font-size:var(--fs-micro); }
  .lab-comparison-grid > div > strong { margin-top:3px; font-family:var(--mono); font-size:var(--fs-xs); }
  .lab-comparison-grid i { color:var(--faint); font-style:normal; }
  .lab-comparison-grid small { color:var(--muted); font-family:var(--sans); font-weight:400; }
  .lab-comparison-grid em { position:absolute; right:9px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:var(--fs-xs); font-style:normal; font-weight:600; }
  .lab-comparison-grid em.up, .lab-comparison-grid em.down { color:var(--accent); }
  .lab-draw-flag-bar { margin-bottom:12px; padding:10px 12px; border:1px solid rgba(153,27,27,.18); border-radius:var(--r-sm); background:var(--red-bg); color:var(--red); font-size:var(--fs-xs); }
  .lab-draw-table td:nth-child(3) { color:var(--muted); font-size:var(--fs-xs); }
  .lab-draw-value { font-family:var(--mono); font-weight:600; }
  .lab-draw-value.out { color:var(--red); }
  .lab-draw-status { color:var(--green); font-size:var(--fs-xs); }
  .lab-draw-status.out { color:var(--red); font-weight:600; }
  .lab-plan-intro { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; padding:14px 16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); }
  .lab-plan-intro strong { display:block; font-size:var(--fs-base); color:var(--text); }
  .lab-plan-intro span { color:var(--muted); font-size:var(--fs-xs); font-family:var(--mono); }
  .lab-plan-intro > span { white-space:nowrap; color:var(--accent); }
  .lab-plan-tools { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
  .lab-plan-search { display:flex; align-items:center; gap:7px; flex:1; min-width:220px; padding:0 10px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface); color:var(--muted); }
  .lab-plan-search:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-light); }
  .lab-plan-search input { width:100%; min-height:38px; padding:7px 0; border:0; box-shadow:none; background:transparent; color:var(--text); font-size:var(--fs-sm); outline:0; }
  .lab-plan-tools button { min-height:38px; padding:7px 11px; border:1px solid var(--border); border-radius:var(--r-sm); background:var(--surface); color:var(--text-dim); font-size:var(--fs-xs); cursor:pointer; }
  .lab-plan-tools button:hover { border-color:var(--accent-border); color:var(--accent); background:var(--accent-light); }
  .lab-plan-match-count { min-width:68px; color:var(--muted); font-family:var(--mono); font-size:var(--fs-xs); text-align:right; }
  .lab-plan-grid { display:grid; gap:16px; }
  .lab-plan-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden; }
  .lab-plan-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; background:var(--surface2); cursor:pointer; list-style:none; }
  .lab-plan-heading::-webkit-details-marker { display:none; }
  .lab-plan-section[open] .lab-plan-heading { border-bottom:1px solid var(--border); }
  .lab-plan-heading:hover { background:var(--surface3); }
  .lab-plan-heading h2 { margin:0; color:var(--accent); font-family:var(--mono); font-size:var(--fs-sm); letter-spacing:.8px; text-transform:uppercase; }
  .lab-plan-heading span { display:block; margin-top:3px; color:var(--muted); font-size:var(--fs-xs); }
  .lab-plan-heading strong { min-width:28px; padding:3px 8px; border-radius:var(--r-pill); background:var(--accent-light); color:var(--accent); font-family:var(--mono); font-size:var(--fs-xs); text-align:center; }
  .lab-plan-heading-actions { display:flex; align-items:center; gap:12px; }
  .lab-plan-chevron { width:8px; height:8px; margin:0 2px 3px 0 !important; border-right:1.5px solid var(--muted); border-bottom:1.5px solid var(--muted); transform:rotate(45deg); transition:transform .15s ease; }
  .lab-plan-section[open] .lab-plan-chevron { margin-bottom:-3px !important; transform:rotate(225deg); }
  .lab-plan-cards { display:block; }
  .lab-plan-item { border-bottom:1px solid var(--border-soft); }
  .lab-plan-item:last-child { border-bottom:none; }
  .lab-plan-item-summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; min-height:46px; padding:8px 14px; cursor:pointer; list-style:none; }
  .lab-plan-item-summary::-webkit-details-marker { display:none; }
  .lab-plan-item-summary:hover { background:var(--surface2); }
  .lab-plan-card-top { display:flex; align-items:center; gap:9px; min-width:0; }
  .lab-plan-item h3 { margin:0; color:var(--text); font-size:var(--fs-sm); font-weight:600; }
  .lab-plan-category { flex-shrink:0; padding:2px 7px; border-radius:var(--r-pill); background:var(--blue-bg); color:var(--blue); font-family:var(--mono); font-size:var(--fs-micro); }
  .lab-plan-item-meta { display:flex; align-items:center; gap:12px; }
  .lab-plan-frequency { color:var(--muted); font-family:var(--mono); font-size:var(--fs-xs); white-space:nowrap; }
  .lab-plan-item-notes { margin:0; padding:0 42px 11px 14px; color:var(--text-dim); font-size:var(--fs-sm); line-height:1.45; white-space:pre-line; }
  .lab-plan-item-chevron { width:7px; height:7px; margin:0 2px 3px 0; border-right:1.5px solid var(--muted); border-bottom:1.5px solid var(--muted); transform:rotate(45deg); transition:transform .15s ease; }
  .lab-plan-item[open] .lab-plan-item-chevron { margin-bottom:-3px; transform:rotate(225deg); }
  .lab-plan-empty { padding:22px; color:var(--muted); }
  @media (max-width: 700px) {
    .labs-toolbar { align-items:stretch; flex-direction:column; }
    .labs-heading { min-width:0; margin:0 0 4px; }
    .labs-view-picker { justify-content:space-between; }
    .labs-view-picker select, .labs-toolbar-select { width:100%; }
    .labs-log-result { margin-left:0; }
    .labs-batch-result { min-height:42px; }
    .lab-plan-intro { align-items:flex-start; flex-direction:column; gap:6px; }
    .lab-plan-tools { align-items:stretch; flex-wrap:wrap; }
    .lab-plan-search { flex-basis:100%; min-width:0; }
    .lab-plan-tools button { flex:1; min-height:42px; }
    .lab-plan-match-count { align-self:center; }
    .lab-plan-item-summary { align-items:flex-start; grid-template-columns:1fr; gap:5px; padding:10px 12px; }
    .lab-plan-item-meta { justify-content:space-between; }
    .lab-plan-item-notes { padding:0 12px 11px; }
  }

  @media (max-width: 760px) {
    .data-enhanced .data-view-toolbar { align-items:stretch; }
    .data-view-utility { align-items:stretch; flex-wrap:wrap; }
    .data-view-search { flex-basis:100%; max-width:none; min-width:0; }
    .data-view-count { align-self:center; margin-left:0; margin-right:auto; }
    .injlog-history-tools { align-items:stretch; flex-wrap:wrap; }
    .injlog-history-tools .data-view-search { flex-basis:100%; max-width:none; min-width:0; }
    .injlog-range-label { flex:1; }
    .injlog-range-label select { width:100%; }
    .data-density-toggle, .data-export-button { min-height:42px; }
    .data-enhanced .table-wrap { position:relative; }
    .data-enhanced .data-table th:first-child,
    .data-enhanced .data-table td:first-child { position:sticky; left:0; z-index:2; background:var(--surface); box-shadow:1px 0 0 var(--border); }
    .data-enhanced .data-table th:first-child { z-index:3; background:var(--surface2); }
    .data-enhanced .data-table tr:hover td:first-child { background:var(--surface2); }
    body > .view.standard-view,
    #app-shell > .view.standard-view { margin:18px auto; padding:0 14px; }
    #view-databrowser .section-header { align-items:stretch; }
    #view-databrowser .section-header > div { width:100%; }
    #db-collection, #db-search { width:100% !important; min-height:42px; }
    #db-content th:first-child, #db-content td:first-child,
    #log-history th:first-child, #log-history td:first-child,
    #bc-history th:first-child, #bc-history td:first-child { position:sticky; left:0; z-index:2; background:var(--surface); box-shadow:1px 0 0 var(--border); }
    #db-content th:first-child, #log-history th:first-child, #bc-history th:first-child { z-index:3; background:var(--surface2); }
    #back-to-top { right:14px; bottom:14px; }
  }

  @media (max-width: 520px) {
    #view-log .section-header { align-items:flex-start !important; }
    #view-log .section-header > div:last-child { width:100%; justify-content:space-between; }
    #log-dash, #view-bodycomp > div[style*="grid-template-columns"] { grid-template-columns:repeat(2,minmax(0,1fr)) !important; padding-left:0 !important; padding-right:0 !important; }
    #view-log .log-form, #view-log > div[style*="padding:0 16px"], #view-bodycomp > div[style*="padding:14px 16px 16px"] { margin-left:0 !important; margin-right:0 !important; padding-left:0 !important; padding-right:0 !important; }
  }
  .filter-chip { background: var(--surface); border: 1px solid var(--border); color: var(--muted); font-size: var(--fs-sm); padding: 5px 12px; border-radius: var(--r-pill); cursor: pointer; transition: all 0.15s; font-family: var(--mono); }
  .filter-chip:hover, .filter-chip.active { border-color: var(--accent); color: var(--accent); background: var(--accent-light); }

  /* WARNING BAR */
  .warning-bar { background: var(--amber-bg); border: 1px solid var(--amber-border, rgba(251,191,36,0.4)); border-radius: var(--r-md); padding: 10px 14px; margin-bottom: 16px; font-size: var(--fs-sm); color: var(--amber); font-family: var(--mono); display: flex; gap: 20px; flex-wrap: wrap; }

  /* TRACKER */
  .week-selector { display: flex; gap: 8px; margin-bottom: 16px; }
  .week-btn { background: var(--surface); border: 1px solid var(--border); color: var(--muted); font-size: var(--fs-sm); padding: 6px 14px; border-radius: var(--r-sm); cursor: pointer; font-family: var(--mono); transition: all 0.15s; }
  .week-btn.active { background: var(--accent); color: var(--surface); border-color: var(--accent); }
  .tracker-table { width: 100%; border-collapse: collapse; }
  #view-tracker { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; padding: 24px; box-sizing: border-box; }
  .tracker-table th { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.8px; color: var(--muted); font-family: var(--mono); padding: 8px; text-align: center; border-bottom: 1px solid var(--border); font-weight: 400; background: var(--surface2); }
  .tracker-table th:first-child { text-align: left; min-width: 200px; padding-left: 14px; }
  .tracker-table td { padding: 7px 8px; border-bottom: 1px solid var(--border); text-align: center; vertical-align: middle; }
  .tracker-table td:first-child { text-align: left; padding-left: 14px; }
  .tracker-table tr:hover td { background: var(--surface2); }
  .tracker-section td { background: var(--accent-light); color: var(--accent); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 1.2px; font-weight: 500; text-align: left; padding: 6px 14px; font-family: var(--mono); }
  .check-box { width: 22px; height: 22px; border: 1px solid var(--border); border-radius: var(--r-sm); margin: 0 auto; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.15s; font-size: var(--fs-xs); font-family: var(--mono); font-weight: 500; color: var(--muted); }
  .check-box:hover { border-color: var(--accent); }
  .check-box.checked { background: var(--accent-light); border-color: var(--accent); color: var(--accent); }

  /* DAILY LOG */
  .log-form { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 24px; margin-bottom: 20px; }
  .log-form h3 { font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 1.2px; color: var(--muted); font-family: var(--mono); margin-bottom: 20px; }
  .form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
  .form-field label { font-size: var(--fs-sm); color: var(--muted); font-family: var(--mono); display: block; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
  .form-field input, .form-field select { background: var(--surface2); border: 1px solid var(--border); color: var(--text); font-size: var(--fs-base); padding: 8px 10px; border-radius: var(--r-sm); width: 100%; font-family: var(--sans); outline: none; }
  .form-field input:focus, .form-field select:focus { border-color: var(--accent); }
  .save-btn { background: var(--accent); color: var(--surface); border: none; font-family: var(--sans); font-size: var(--fs-base); font-weight: 500; padding: 9px 22px; border-radius: var(--r-sm); cursor: pointer; }
  .save-btn:hover { background: var(--blue); }
  .save-status { margin-left: 12px; font-size: var(--fs-sm); font-family: var(--mono); color: var(--muted); }

  /* LOADING */
  .loading { text-align: center; padding: 50px; color: var(--muted); font-family: var(--mono); font-size: var(--fs-base); }
  .loading-dot { display: inline-block; animation: pulse 1s infinite; }
  .loading-dot:nth-child(2) { animation-delay: 0.2s; }
  .loading-dot:nth-child(3) { animation-delay: 0.4s; }
  @keyframes pulse { 0%, 100% { opacity: 0.2; } 50% { opacity: 1; } }

  /* WORKOUTS */
  .workout-table { width:100%; border-collapse:collapse; font-size: var(--fs-base); }
  .workout-table th { background:var(--surface2); padding:8px 10px; text-align:left; font-size: var(--fs-sm); font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:0.5px; border-bottom:1px solid var(--border); }
  .workout-table td { padding:4px 5px; border-bottom:1px solid var(--border); vertical-align:middle; }
  .workout-table tr:last-child td { border-bottom:none; }
  .workout-table .exercise-name { font-weight:500; color:var(--text); font-size: var(--fs-base); }
  .workout-table .variation-label { font-size: var(--fs-sm); color:var(--muted); }
  .set-input { width:46px; padding:3px 4px; border:1px solid var(--border); border-radius: var(--r-sm); font-size: var(--fs-sm); font-family:var(--mono); text-align:center; background:var(--surface); color:var(--text); }
  .set-input:focus { outline:none; border-color:var(--accent); }
  .prev-weight { font-size: var(--fs-xs); color:var(--muted); font-family:var(--mono); display:block; margin-top:2px; }

  /* MODALS */
  .modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.4); z-index:1000; align-items:center; justify-content:center; }
  .modal-box { background:var(--surface); border-radius: var(--r-lg); padding:24px; width:420px; max-width:95vw; box-shadow:0 8px 32px rgba(0,0,0,0.18); }
  .modal-title { font-size: var(--fs-base); font-weight:600; margin-bottom:16px; color:var(--text); }
  .modal-field { margin-bottom:12px; }
  .modal-field label { display:block; font-size: var(--fs-sm); font-weight:500; color:var(--muted); text-transform:uppercase; letter-spacing:0.6px; margin-bottom:4px; }
  .modal-field input, .modal-field select { width:100%; padding:8px 10px; border:1px solid var(--border); border-radius: var(--r-sm); font-size: var(--fs-base); font-family:var(--sans); background:var(--surface); color:var(--text); }
  .modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
  .btn-secondary { background: var(--surface); color: var(--text); border: 1px solid var(--border); font-family: var(--sans); font-size: var(--fs-base); font-weight: 500; padding: 10px 18px; border-radius: 9px; cursor: pointer; transition: all 0.15s; line-height: 1.2; display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; min-height: 40px; }
  .btn-secondary:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light); }
  .btn-secondary:active { transform: translateY(1px); }
  .btn-secondary.active, .btn-secondary[aria-pressed="true"] { background: var(--accent); color: var(--surface); border-color: var(--accent); }
  .btn-secondary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
  @media (max-width: 640px) { .btn-secondary { font-size: var(--fs-base); padding: 11px 16px; min-height: 44px; flex: 1 1 auto; } }
  .modal-btn { padding:7px 16px; border-radius: var(--r-sm); font-size: var(--fs-base); cursor:pointer; border:1px solid var(--border); background:var(--surface2); color:var(--text); font-family:var(--sans); }
  .modal-btn.primary { background:var(--accent); color:var(--surface); border-color:var(--accent); }
  .modal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
  .modal-header h3 { font-size: var(--fs-base); font-weight:600; color:var(--text); margin:0; }
  .modal-close { background:none; border:none; font-size: var(--fs-md); color:var(--muted); cursor:pointer; padding:2px 6px; border-radius: var(--r-sm); }
  .modal-close:hover { background:var(--surface2); color:var(--text); }
  .modal-body { display:flex; flex-direction:column; }
  .modal-footer { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
  .form-row { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
  .form-row label { font-size: var(--fs-sm); font-weight:500; color:var(--muted); text-transform:uppercase; letter-spacing:0.6px; }
  .form-row input, .form-row textarea { padding:8px 10px; border:1px solid var(--border); border-radius: var(--r-sm); font-size: var(--fs-base); font-family:var(--sans); background:var(--surface); color:var(--text); width:100%; box-sizing:border-box; }
  .form-row textarea { resize:vertical; }


  /* DAILY LOG DASH */
  .stat-card { background:var(--surface);border:1px solid var(--border);border-radius: var(--r-md);padding:12px 14px;display:flex;flex-direction:column;gap:2px; }
  .stat-label { font-size: var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted); }
  .stat-val { font-size: var(--fs-lg);font-weight:800;color:var(--text);line-height:1.1; }
  .stat-sub { font-size: var(--fs-xs);color:var(--muted); }

  /* PRICING */
  .pricing-group { margin-bottom: 20px; }
  .pricing-group-header { font-size: var(--fs-base); font-weight: 600; color: var(--text); padding: 10px 14px; background: var(--surface2); border: 1px solid var(--border); border-radius: 8px 8px 0 0; display: flex; align-items: center; gap: 10px; }
  .pricing-group-header .best-badge { background: var(--green-bg); color: var(--green); font-size: var(--fs-xs); font-weight: 600; padding: 2px 7px; border-radius: var(--r-md); font-family: var(--mono); }
  .pricing-row-best td { background: var(--green-bg) !important; }
  .price-check-btn { background: none; border: 1px solid var(--border); border-radius: var(--r-sm); padding: 3px 8px; font-size: var(--fs-sm); color: var(--accent); cursor: pointer; font-family: var(--sans); }
  .price-check-btn:hover { background: var(--accent-light); }
  .no-price { color: var(--muted); font-style: italic; font-size: var(--fs-sm); }

  /* PRINT */
  @media print {
    body { background: var(--surface); margin: 0; }
    nav, .filter-bar, .nav-right, .warning-bar,
    .filter-chip, .print-btn, button { display: none !important; }
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    .view { display: none !important; }
    .view.active { display: block !important; }
    th span { display: none !important; }
    .stats-grid { display: grid !important; grid-template-columns: repeat(4,1fr); gap: 8px; margin-bottom: 16px; }
    .stat-card { border: 1px solid var(--border) !important; padding: 10px; border-radius: var(--r-sm); }
    .dash-card { border: 1px solid var(--border) !important; padding: 12px; border-radius: var(--r-sm); break-inside: avoid; }
    .table-wrap { border: 1px solid var(--border) !important; break-inside: avoid; margin-bottom: 12px; border-radius: 0; }
    .timing-header { background: var(--accent-light) !important; color: var(--accent) !important; font-weight: 600; padding: 5px 10px; font-size: var(--fs-xs); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .tracker-section td { background: var(--accent-light) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    td, th { font-size: var(--fs-xs) !important; padding: 5px 8px !important; color: #000 !important; }
    .compound-name { font-size: var(--fs-xs) !important; font-weight: 600; }
    .compound-sub { display: block !important; font-size: var(--fs-micro) !important; color: var(--muted) !important; }
    .quick-item { padding: 5px 0 !important; }
    .badge { font-size: var(--fs-micro) !important; padding: 1px 5px !important; }
    .badge-active { background: var(--green-bg) !important; color: var(--green) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .badge-paused { background: var(--surface2) !important; color: var(--gray) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .badge-tbd { background: var(--amber-bg) !important; color: var(--amber) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .badge-onorder { background: var(--blue-bg) !important; color: var(--blue) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .badge-deferred { background: var(--surface2) !important; color: var(--faint) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .check-box { border: 1px solid var(--border) !important; width: 16px !important; height: 16px !important; font-size: var(--fs-micro) !important; }
    h2 { font-size: var(--fs-base) !important; margin-bottom: 8px; }
    .section-header { margin-bottom: 8px; }
  }

  /* HAMBURGER */
  .hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 6px; }
  .hamburger span { display: block; width: 22px; height: 2px; background: var(--text); border-radius: 2px; transition: all 0.2s; }
  .mobile-menu { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--surface); z-index: 9999; overflow-y: auto; padding: 20px 16px 40px; }
  .mobile-menu.open { display: block; }
  body.menu-open { overflow:hidden; }
  .mobile-menu-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
  .mobile-menu-logo { font-family: var(--mono); font-size: var(--fs-sm); font-weight: 500; color: var(--accent); letter-spacing: 2px; text-transform: uppercase; }
  .mobile-close { background: none; border: none; font-size: var(--fs-xl); cursor: pointer; color: var(--muted); padding: 4px; }
  .mobile-section { margin-bottom: 20px; }
  .mobile-section-label { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); padding: 0 4px; margin-bottom: 6px; }
  .mobile-item { display: block; width: 100%; text-align: left; background: none; border: none; color: var(--text); font-family: var(--sans); font-size: var(--fs-md); padding: 12px 8px; border-radius: var(--r-md); cursor: pointer; border-bottom: 1px solid var(--border); }
  .mobile-item:last-child { border-bottom: none; }
  .mobile-item:active { background: var(--accent-light); color: var(--accent); }
  .mobile-item.active { background:var(--accent-light); color:var(--accent); font-weight:600; }

  /* SECTION FINDER */
  .sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
  body.quick-nav-open { overflow:hidden; }
  .quick-nav-modal { position:fixed; inset:0; z-index:12000; display:flex; align-items:flex-start; justify-content:center; padding:12vh 16px 24px; background:rgba(15,23,42,.34); backdrop-filter:blur(3px); }
  .quick-nav-modal[hidden] { display:none; }
  .quick-nav-panel { width:min(560px,100%); max-height:72vh; overflow:hidden; border:1px solid var(--border); border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--sh-3); }
  .quick-nav-search-row { display:flex; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid var(--border); color:var(--muted); }
  .quick-nav-search-row input { flex:1; min-width:0; padding:5px 0; border:0; box-shadow:none; background:transparent; color:var(--text); font-size:var(--fs-md); outline:0; }
  .quick-nav-close { padding:4px 7px; border:1px solid var(--border); border-radius:4px; background:var(--surface2); color:var(--muted); font-family:var(--mono); font-size:var(--fs-micro); cursor:pointer; }
  .quick-nav-results { max-height:52vh; overflow-y:auto; padding:6px; }
  .quick-nav-result { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:10px 11px; border:0; border-radius:var(--r-sm); background:transparent; color:var(--text); font-size:var(--fs-base); text-align:left; cursor:pointer; }
  .quick-nav-result small { color:var(--muted); font-family:var(--mono); font-size:var(--fs-micro); }
  .quick-nav-result:hover, .quick-nav-result.selected { background:var(--accent-light); color:var(--accent); }
  .quick-nav-empty { padding:28px 12px; color:var(--muted); text-align:center; font-size:var(--fs-sm); }
  .quick-nav-help { display:flex; gap:14px; padding:8px 14px; border-top:1px solid var(--border); background:var(--surface2); color:var(--faint); font-family:var(--mono); font-size:var(--fs-micro); }

  @media (max-width: 768px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .dash-grid { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr 1fr; }
    nav { padding: 0 16px; height: 52px; }
    .nav-tabs { display: none; }
    .hamburger { display: flex; }
    .nav-right .sync-btn { display: none; }
    .quick-nav-trigger { width:40px; justify-content:center; padding:6px; font-size:0; }
    .quick-nav-trigger::before { content:'⌕'; font-size:20px; }
    .quick-nav-trigger kbd { display:none; }
    main { padding:18px 14px 28px; }
    .dashboard-actions { display:grid; grid-template-columns:1fr 1fr; }
    .dashboard-actions button { min-height:44px; }
    .dashboard-overview-grid { grid-template-columns:1fr; }
    .dashboard-secondary-grid { grid-template-columns:1fr; }
    .quick-nav-modal { padding-top:8vh; }
  }

  @media (max-width: 520px) {
    .form-grid { grid-template-columns:1fr; }
    .stats-grid { gap:9px; }
    .stat-card-button { padding:13px 12px; }
    .stat-card-button > span { display:none; }
    .dashboard-lab-summary { grid-template-columns:1fr; }
    .dashboard-metric-row { gap:6px; }
    .dashboard-metric-row > div { padding:10px 5px; }
    .dashboard-metric-row strong { font-size:21px; }
    .dashboard-daily-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .batch-lab-meta { grid-template-columns:1fr; }
    .batch-lab-actions { flex-wrap:wrap; }
    #batch-lab-status { width:100%; }
    .lab-insight-heading { align-items:stretch; flex-direction:column; }
    .lab-insight-actions { justify-content:space-between; }
    .lab-insight-stats { grid-template-columns:repeat(3,1fr); }
    .lab-insight-stats > div { padding:9px 7px; }
    .lab-insight-stats strong { font-size:19px; }
    .lab-comparison-grid { grid-template-columns:1fr; }
  }

/* PRINT STYLES */
.print-page {
  width: 100%;
  margin-bottom: 24px;
  background: white;
}
.ptable {
  width: 100%;
  border-collapse: collapse;
  font-family: Arial, sans-serif;
  font-size: var(--fs-sm);
  margin-bottom: 12px;
  table-layout: fixed;
}
.pday-hdr {
  background: #6C8CFF;
  color: #0B1020;
  font-size: var(--fs-sm);
  font-weight: 700;
  padding: 4px 8px;
  text-align: left;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pmeta td, .pmeta-cell {
  background: #f4f7ff;
  padding: 0 8px;
  font-size: var(--fs-xs);
  border: 1px solid #c4c4c4;
  vertical-align: middle;
  height: 28px;
}
.pmeta-val { font-weight: 600; }
.pwrite {
  display: inline-block;
  min-width: 64px;
  height: 18px;
  border-bottom: 2px solid var(--text);
  margin: 0 3px;
  vertical-align: middle;
}
.pcol-hdr th {
  background: #E8EEFF;
  color: #1e40af;
  padding: 3px 4px;
  font-size: var(--fs-micro);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  border: 1px solid #b9ceff;
  text-align: center;
}
.pcol-hdr th.pex-name, .pcol-hdr th.pex-var { text-align: left; }
.pex td { border: 1px solid #d0d0d0; padding: 4px 5px; vertical-align: middle; height: 30px; }
.pex-name { font-weight: 600; font-size: var(--fs-sm); word-break: break-word; }
.pex-var  { font-size: var(--fs-micro); color: var(--text-dim); word-break: break-word; }
.pset     { text-align: center; color: #999; font-size: var(--fs-micro); background: #fff; }
.preps, .pwt { text-align: center; }
.pnotes td { border: 1px solid #c4c4c4; padding: 8px 10px; background: #fff; height: 56px; vertical-align: top; font-weight: 500; font-size: var(--fs-xs); color: #555; }

@media screen {
  .print-page { border: 1px solid var(--border); padding: 16px; border-radius: var(--r-sm); background: white; }
  #print-sheet-preview { background: #f0f0f0; padding: 16px; border-radius: var(--r-md); }
}

@media print {
  body.print-workout * { -webkit-print-color-adjust: economy !important; print-color-adjust: economy !important; }
  html:has(body.print-workout), body.print-workout, body.print-workout html { background: #fff !important; margin: 0; padding: 0; }

  body.print-workout > * { display: none !important; }
  body.print-workout #app-container, body.print-workout .nav-sidebar, body.print-workout header, body.print-workout .tab-bar { display: none !important; }

  body.print-workout #view-workouts { display: block !important; position: static !important; }
  body.print-workout #view-workouts .filter-bar { display: none !important; }
  body.print-workout #workout-log-panel, body.print-workout #workout-history-panel, body.print-workout #workout-progress-panel { display: none !important; }
  body.print-workout #workout-print-panel { display: block !important; }

  body.print-workout #weekly-print-modal { display: block !important; position: static !important; background: white !important; padding: 0 !important; z-index: auto !important; overflow: visible !important; }
  body.print-workout #weekly-print-modal > div { background: white !important; border-radius: 0 !important; padding: 0 !important; max-width: 100% !important; box-shadow: none !important; }
  body.print-workout #weekly-print-modal > div > div:first-child { display: none !important; }
  body.print-workout #modal-print-preview { padding: 0 !important; }
  body.print-workout #print-week-date, body.print-workout button { display: none !important; }
  body.print-workout .print-page-controls { display: none !important; }

  body.print-workout .print-page { page-break-after: always; margin: 0; padding: 0; width: 100%; }
  body.print-workout .print-page:last-child { page-break-after: auto; }

  /* ---- ink-light print: no fills, no black rules, hairline grey grid ---- */
  body.print-workout .ptable {
    width: 100%; font-size: var(--fs-xs); margin-bottom: 8px;
    page-break-inside: avoid; break-inside: avoid;
  }
  /* day header keeps its blue bar - everything else stays hairline grey */
  body.print-workout .pday-hdr {
    font-size: var(--fs-sm); background: #6C8CFF !important; color: #0B1020 !important;
    font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase;
    border: 0 !important;
    padding: 4px 8px !important;
    -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
  }
  body.print-workout .pmeta td, body.print-workout .pmeta-cell {
    background: #fff !important; color: #000 !important; border: 0.5px solid #c4c4c4 !important;
    height: 26px !important; font-weight: 400 !important;
  }
  body.print-workout .pmeta-val { font-weight: 500 !important; }
  body.print-workout .pcol-hdr th {
    background: #E8EEFF !important; color: #1e40af !important; font-weight: 600 !important;
    border: 0.5px solid #b9ceff !important;
    padding: 2px 4px !important;
    -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important;
  }
  body.print-workout .pex td {
    height: 30px !important; background: #fff !important; border: 0.5px solid #d0d0d0 !important;
    padding: 3px 5px !important; line-height: 1.15 !important;
  }
  body.print-workout .pex-name { font-weight: 500 !important; color: #000 !important; }
  body.print-workout .pex-var { color: #6a6a6a !important; font-size: 9px !important; }
  body.print-workout .pset { background: #fff !important; color: #999 !important; }
  body.print-workout .pwrite { border-bottom: 0.5px solid #999 !important; }
  body.print-workout .pnotes td {
    background: #fff !important; border: 0.5px solid #c4c4c4 !important; height: 56px !important;
    font-weight: 500 !important; color: #555 !important;
  }

  @page { size: letter portrait; margin: 0.4in 0.4in 0.4in 0.4in; }
}

/* PDF QA VIEW */
#view-pdfqa.active {
  position: fixed; top: 56px; left: 0; right: 0; bottom: 0;
  display: flex !important; z-index: 50; background: var(--bg);
  flex-direction: column; overflow: hidden;
}


/* ============================================================
   INSTRUMENT LAYER  (added in the 8/8 design pass)
   Panels replace free-floating boxes; data reads as a readout.
   ============================================================ */

/* --- responsive layout classes (replace inline grids) ------- */
.dash-columns { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; align-items: start; }
.pair-grid    { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

@media (max-width: 1100px) { .dash-columns { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px)  { .dash-columns { grid-template-columns: 1fr; }
                             .pair-grid    { grid-template-columns: 1fr; } }

/* --- numbers read as instrument values --------------------- */
.stat-value, .metric-value, td, .dose, .num {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.stat-card {
  position: relative;
  background: linear-gradient(180deg, var(--surface2) 0%, var(--surface) 100%);
  overflow: hidden;
}
/* thin signal rule on the card edge - colour = meaning, set by the value class */
.stat-card::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: var(--border);
}
.stat-card:has(.stat-value.green)::before { background: var(--green); }
.stat-card:has(.stat-value.amber)::before { background: var(--amber); }
.stat-card:has(.stat-value.blue)::before  { background: var(--accent); }
.stat-card:has(.stat-value.red)::before   { background: var(--red); }

.stat-label {
  font-family: var(--mono); font-size: var(--fs-micro);
  text-transform: uppercase; letter-spacing: 0.10em;
  color: var(--muted);
}
.stat-value { font-size: var(--fs-xl); font-weight: 500; line-height: 1.1; }

/* --- panels: one container, internal hairlines -------------- */
.dash-card {
  background: var(--surface);
  border: 1px solid var(--border-soft);
  box-shadow: var(--sh-1);
}
.dash-card h3 {
  font-size: var(--fs-micro); letter-spacing: 0.12em;
  color: var(--muted); font-family: var(--mono);
  padding-bottom: 10px; margin-bottom: 12px;
  border-bottom: 1px solid var(--border-soft);
}
.dash-card > div > div + div,
.dash-card .row + .row { border-top: 1px solid var(--border-soft); }

/* --- tables: rules instead of boxes ------------------------- */
table { border-collapse: collapse; }
th {
  font-family: var(--mono); font-size: var(--fs-micro);
  text-transform: uppercase; letter-spacing: 0.09em;
  color: var(--muted); font-weight: 500;
  border-bottom: 1px solid var(--border);
}
tbody tr + tr td { border-top: 1px solid var(--border-soft); }
tbody tr:hover td { background: var(--surface2); }

/* --- controls ---------------------------------------------- */
input, select, textarea, button { font-family: inherit; color: var(--text); }
input, select, textarea {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--text);
}
input::placeholder, textarea::placeholder { color: var(--faint); }
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-light);
}
/* keyboard users always get a visible ring */
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: var(--r-pill); border: 3px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background: var(--faint); }

/* --- respect reduced motion -------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* --- PRINT: force light. Never print the dark theme. -------- */
@media print {
  :root {
    --bg: #ffffff; --surface: #ffffff; --surface2: #ffffff; --surface3: #ffffff;
    --border: #cccccc; --border-soft: #dddddd;
    --text: #000000; --text-dim: #222222; --muted: #444444; --faint: #666666;
    --accent: #1a56db; --accent-light: #eef3ff; --accent-border: #b9ceff;
    --green: #166534; --amber: #92400e; --red: #991b1b; --blue: #1e40af; --gray: #374151;
    --green-bg: #dcfce7; --amber-bg: #fef3c7; --red-bg: #fee2e2; --blue-bg: #dbeafe; --gray-bg: #f3f4f6;
    --sh-1: none; --sh-2: none; --sh-3: none;
  }
  body, .dash-card, .stat-card { background: #fff !important; color: #000 !important; }
  .stat-card::before { display: none; }
  ::-webkit-scrollbar { display: none; }
}


/* --- wide data tables scroll inside their panel instead of
       pushing the whole page sideways (fixes tracker +7px,
       wktracker +24px overflow on mobile) ------------------- */
#view-tracker, #view-wktracker { overflow-x: hidden; }
#view-tracker  table,
#view-wktracker table { min-width: max-content; }
#view-tracker  .table-scroll,
#view-wktracker .table-scroll,
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
/* any bare table in these two views gets a scroll parent via wrapper
   added by JS; belt-and-braces cap so nothing escapes the viewport */
#view-tracker > *, #view-wktracker > * { max-width: 100%; }

.pdfqa-root {
  --bg:#f5f6f8; --s:#fff; --s2:#f0f1f4; --b:#e2e4e9; --b2:#cdd0d8;
  --t:#1a1a1a; --d:#5a6070; --dd:#9aa0ad;
  --g:#00a855; --gd:rgba(0,168,85,.1); --gb:#007a3d;
  --r:#d63030; --rd:rgba(214,48,48,.1);
  --y:#c47800; --yd:rgba(196,120,0,.1);
  --bl:#2255cc; --bld:rgba(34,85,204,.1);
  --mono:'IBM Plex Mono',monospace;
  display:flex; flex-direction:column; flex:1; overflow:hidden;
  background:var(--bg); color:var(--t); font-family:'IBM Plex Sans',sans-serif; font-size:13px;
}
.pdfqa-root *{box-sizing:border-box;margin:0;padding:0}
.pdfqa-root .page{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.pdfqa-root .hdr{background:var(--s);border-bottom:1px solid var(--b);padding:12px 20px;display:flex;align-items:center;gap:12px;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.pdfqa-root .logo{color:var(--g);font-weight:700;letter-spacing:2px;font-size:12px;font-family:var(--mono)}
.pdfqa-root .htitle{color:var(--d);font-size:11px;font-family:var(--mono);letter-spacing:1px}
.pdfqa-root .hright{margin-left:auto;display:flex;align-items:center;gap:10px}
.pdfqa-root .dot{width:7px;height:7px;border-radius:50%;background:var(--dd)}
.pdfqa-root .dot.ok{background:var(--g)}.pdfqa-root .dot.err{background:var(--r)}.pdfqa-root .dot.warn{background:var(--y)}
.pdfqa-root .dlbl{font-size:10px;color:var(--d);font-family:var(--mono)}
.pdfqa-root .body{display:flex;flex:1;overflow:hidden}
/* SIDEBAR */
.pdfqa-root .sb{width:220px;background:var(--s);border-right:1px solid var(--b);display:flex;flex-direction:column;flex-shrink:0}
.pdfqa-root .sbh{padding:10px 14px;border-bottom:1px solid var(--b);display:flex;align-items:center;background:var(--s2)}
.pdfqa-root .sbht{font-size:9px;letter-spacing:2px;color:var(--d);text-transform:uppercase;flex:1;font-family:var(--mono)}
.pdfqa-root .sbb{flex:1;overflow-y:auto;padding:6px}
.pdfqa-root .fi{padding:9px 10px;border-radius:5px;cursor:pointer;border:1px solid transparent;margin-bottom:2px;transition:all .12s}
.pdfqa-root .fi:hover{background:var(--s2);border-color:var(--b)}
.pdfqa-root .fi.active{background:var(--bld);border-color:var(--bl)}
.pdfqa-root .fn{font-size:11px;color:var(--t);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-weight:500}
.pdfqa-root .fm{font-size:9px;color:var(--dd);font-family:var(--mono)}
.pdfqa-root .ftype{font-size:9px;font-family:var(--mono);padding:1px 6px;border-radius:3px;display:inline-block;margin-bottom:3px;font-weight:600;text-transform:capitalize}
.pdfqa-root .ft-workout{background:#e8f5ef;color:var(--g)}.pdfqa-root .ft-injection{background:#fff3e8;color:var(--y)}
.pdfqa-root .ft-supplement{background:#e8eeff;color:var(--bl)}.pdfqa-root .ft-lab{background:#fde8e8;color:var(--r)}
.pdfqa-root .grp-hdr{padding:6px 10px 3px;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--dd);font-family:var(--mono);margin-top:6px}
/* MAIN PANEL */
.pdfqa-root .panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.pdfqa-root .tabs{display:flex;border-bottom:1px solid var(--b);background:var(--s);flex-shrink:0}
.pdfqa-root .tab{font-size:11px;padding:11px 18px;cursor:pointer;color:var(--d);border-bottom:2px solid transparent;transition:all .12s;font-weight:500}
.pdfqa-root .tab:hover{color:var(--t)}.pdfqa-root .tab.active{color:var(--bl);border-bottom-color:var(--bl);font-weight:600}
.pdfqa-root .tc{flex:1;overflow:hidden;display:none;flex-direction:column}
.pdfqa-root .tc.active{display:flex}
/* REVIEW SPLIT VIEW */
.pdfqa-root .rev-wrap{flex:1;display:flex;overflow:hidden}
/* LEFT IMAGE VIEWER */
.pdfqa-root .img-panel{width:50%;border-right:1px solid var(--b);display:flex;flex-direction:column;overflow:hidden;background:#1a1a1a}
.pdfqa-root .img-toolbar{background:#111;padding:8px 12px;display:flex;align-items:center;gap:10px;flex-shrink:0}
.pdfqa-root .img-nav{display:flex;align-items:center;gap:6px}
.pdfqa-root .navbtn{background:#333;color:#ccc;border:1px solid #444;border-radius:4px;padding:4px 10px;cursor:pointer;font-size:11px;font-family:var(--mono);transition:background .1s}
.pdfqa-root .navbtn:hover{background:#444;color:#fff}.pdfqa-root .navbtn:disabled{opacity:.3;cursor:not-allowed}
.pdfqa-root .pg-label{font-size:11px;color:#aaa;font-family:var(--mono);min-width:60px;text-align:center}
.pdfqa-root .img-meta{margin-left:auto;font-size:10px;color:#666;font-family:var(--mono)}
.pdfqa-root .img-scroll{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:12px}
.pdfqa-root .img-scroll img{max-width:100%;height:auto;display:block;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.pdfqa-root .img-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#555;font-size:12px;font-family:var(--mono);flex-direction:column;gap:10px}
/* THUMB STRIP */
.pdfqa-root .thumb-strip{height:90px;border-top:1px solid #333;display:flex;overflow-x:auto;background:#111;flex-shrink:0;gap:4px;padding:6px}
.pdfqa-root .thumb{width:60px;height:76px;flex-shrink:0;border:2px solid #333;border-radius:3px;overflow:hidden;cursor:pointer;position:relative;background:#222}
.pdfqa-root .thumb:hover{border-color:#666}.pdfqa-root .thumb.active{border-color:#2255cc}
.pdfqa-root .thumb.ok{border-color:#00a855}.pdfqa-root .thumb.flagged{border-color:#d63030}
.pdfqa-root .thumb img{width:100%;height:100%;object-fit:cover}
.pdfqa-root .thumb-num{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.7);color:#aaa;font-size:8px;text-align:center;padding:1px;font-family:var(--mono)}
.pdfqa-root .thumb.active .thumb-num{color:#fff}
/* RIGHT AIRTABLE PANEL */
.pdfqa-root .at-panel{width:50%;display:flex;flex-direction:column;overflow:hidden;background:var(--s)}
.pdfqa-root .at-toolbar{padding:10px 14px;border-bottom:1px solid var(--b);display:flex;align-items:center;gap:8px;flex-shrink:0;background:var(--s2)}
.pdfqa-root .at-toolbar-title{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--d);font-family:var(--mono);flex:1}
.pdfqa-root .at-scroll{flex:1;overflow-y:auto;padding:10px}
.pdfqa-root .date-row{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.pdfqa-root .date-inp{font-family:var(--mono);font-size:11px;background:var(--s);border:1px solid var(--b);color:var(--t);padding:6px 9px;border-radius:5px;outline:none;width:130px}
.pdfqa-root .date-inp:focus{border-color:var(--bl)}
.pdfqa-root .btn{font-size:11px;padding:6px 12px;border-radius:5px;cursor:pointer;border:1px solid;display:inline-flex;align-items:center;gap:5px;font-family:inherit;font-weight:500;transition:all .12s;white-space:nowrap}
.pdfqa-root .bp{background:var(--g);color:#fff;border-color:var(--g)}.pdfqa-root .bp:hover{background:var(--gb)}
.pdfqa-root .bp:disabled{background:var(--dd);border-color:var(--dd);cursor:not-allowed}
.pdfqa-root .bb{background:transparent;color:var(--bl);border-color:var(--bl)}.pdfqa-root .bb:hover{background:var(--bld)}
.pdfqa-root .bb:disabled{opacity:.4;cursor:not-allowed}
.pdfqa-root .by{background:transparent;color:var(--y);border-color:var(--y)}.pdfqa-root .by:hover{background:var(--yd)}
.pdfqa-root .br{background:transparent;color:var(--r);border-color:var(--r)}.pdfqa-root .br:hover{background:var(--rd)}
.pdfqa-root .bg-btn{background:transparent;color:var(--d);border-color:var(--b)}.pdfqa-root .bg-btn:hover{border-color:var(--b2);color:var(--t)}
/* STATUS BADGES */
.pdfqa-root .badge{font-size:9px;padding:2px 7px;border-radius:10px;font-family:var(--mono);font-weight:600;display:inline-block}
.pdfqa-root .badge-ok{background:var(--gd);color:var(--g)}.pdfqa-root .badge-miss{background:var(--rd);color:var(--r)}
.pdfqa-root .badge-flag{background:var(--yd);color:var(--y)}
/* TABLE */
.pdfqa-root .tbl{width:100%;border-collapse:collapse;font-size:11px}
.pdfqa-root .tbl th{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--d);text-align:left;padding:6px 10px;border-bottom:1px solid var(--b);background:var(--s2);white-space:nowrap;font-family:var(--mono)}
.pdfqa-root .tbl td{padding:5px 10px;border-bottom:1px solid var(--b);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdfqa-root .tbl tr:last-child td{border-bottom:none}.pdfqa-root .tbl tr:hover td{background:var(--s2)}
.pdfqa-root .tcg{color:var(--g)}.pdfqa-root .tcr{color:var(--r)}.pdfqa-root .tcy{color:var(--y)}.pdfqa-root .tcd{color:var(--dd)}
.pdfqa-root .sec{background:var(--s);border:1px solid var(--b);border-radius:6px;overflow:hidden;margin-bottom:10px}
.pdfqa-root .sech{padding:8px 12px;border-bottom:1px solid var(--b);display:flex;align-items:center;gap:8px;background:var(--s2)}
.pdfqa-root .sect{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;flex:1;font-family:var(--mono)}
.pdfqa-root .sectg{color:var(--g)}.pdfqa-root .sectr{color:var(--r)}.pdfqa-root .secty{color:var(--y)}.pdfqa-root .sectbl{color:var(--bl)}
.pdfqa-root .secc{font-size:10px;color:var(--d);background:var(--b);padding:1px 7px;border-radius:10px;font-family:var(--mono)}
/* PAGE STATUS ROW */
.pdfqa-root .pg-status-bar{padding:8px 14px;border-top:1px solid var(--b);display:flex;align-items:center;gap:8px;background:var(--s);flex-shrink:0;font-size:11px}
/* SETTINGS */
.pdfqa-root .type-section{margin-bottom:14px;border:1px solid var(--b);border-radius:6px;overflow:hidden}
.pdfqa-root .type-hdr{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--s2);border-bottom:1px solid var(--b)}
.pdfqa-root .type-badge{font-size:11px;font-family:var(--mono);padding:3px 10px;border-radius:4px;font-weight:600;text-transform:capitalize}
.pdfqa-root .type-workout{background:#e8f5ef;color:var(--g)}.pdfqa-root .type-injection{background:#fff3e8;color:var(--y)}
.pdfqa-root .type-supplement{background:#e8eeff;color:var(--bl)}.pdfqa-root .type-lab{background:#fde8e8;color:var(--r)}
.pdfqa-root .type-body{padding:10px 14px;display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:42px}
.pdfqa-root .chip{font-size:10px;font-family:var(--mono);padding:3px 8px 3px 10px;border-radius:12px;background:var(--s2);border:1px solid var(--b);color:var(--t);display:inline-flex;align-items:center;gap:4px;max-width:220px}
.pdfqa-root .chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdfqa-root .chip-x{cursor:pointer;color:var(--dd);flex-shrink:0;font-size:12px;line-height:1}.pdfqa-root .chip-x:hover{color:var(--r)}
.pdfqa-root .chip-add{background:transparent;border-style:dashed;color:var(--bl);cursor:pointer}.pdfqa-root .chip-add:hover{background:var(--bld)}
.pdfqa-root .inp{font-family:var(--mono);font-size:11px;background:#fff;border:1px solid var(--b);color:var(--t);padding:7px 10px;border-radius:5px;outline:none}
.pdfqa-root .inp:focus{border-color:var(--bl);box-shadow:0 0 0 3px var(--bld)}
.pdfqa-root select.inp{cursor:pointer}
/* MODAL */
.pdfqa-root .modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200;display:none;align-items:center;justify-content:center}
.pdfqa-root .modal-bg.open{display:flex}
.pdfqa-root .modal{background:#fff;border-radius:8px;width:540px;max-width:95vw;height:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 40px rgba(0,0,0,.2)}
.pdfqa-root .mhdr{padding:14px 18px;border-bottom:1px solid var(--b);flex-shrink:0}
.pdfqa-root .mhdr-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.pdfqa-root .mhdr-title{font-size:14px;font-weight:600;flex:1}
.pdfqa-root .breadcrumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pdfqa-root .bc-item{font-size:11px;color:var(--bl);cursor:pointer;font-family:var(--mono);padding:2px 5px;border-radius:3px}
.pdfqa-root .bc-item:hover{background:var(--bld)}.pdfqa-root .bc-item.current{color:var(--t);cursor:default;font-weight:600}.pdfqa-root .bc-item.current:hover{background:transparent}
.pdfqa-root .bc-sep{font-size:10px;color:var(--dd)}
.pdfqa-root .msearch{padding:8px 14px;border-bottom:1px solid var(--b);flex-shrink:0}
.pdfqa-root .msearch input{width:100%;font-family:var(--mono);font-size:11px;background:var(--s2);border:1px solid var(--b);color:var(--t);padding:7px 10px;border-radius:5px;outline:none}
.pdfqa-root .msearch input:focus{border-color:var(--bl)}
.pdfqa-root .mlist{flex:1;overflow-y:auto;padding:6px}
.pdfqa-root .mitem{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:5px;cursor:pointer;transition:background .1s;user-select:none}
.pdfqa-root .mitem:hover{background:var(--s2)}.pdfqa-root .mitem.checked{background:var(--bld)}.pdfqa-root .mitem.disabled{opacity:.5;cursor:not-allowed}
.pdfqa-root .mitem-icon{font-size:16px;flex-shrink:0;width:22px;text-align:center}
.pdfqa-root .mitem-name{font-size:11px;color:var(--t);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.pdfqa-root .mitem-meta{font-size:9px;color:var(--dd);font-family:var(--mono);flex-shrink:0}
.pdfqa-root .mitem-arrow{font-size:11px;color:var(--dd);flex-shrink:0}
.pdfqa-root .mftr{padding:12px 16px;border-top:1px solid var(--b);display:flex;align-items:center;gap:8px;flex-shrink:0}
.pdfqa-root .mftr-count{font-size:11px;color:var(--d);flex:1;font-family:var(--mono)}
/* MISC */
.pdfqa-root .abox{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px;text-align:center}
.pdfqa-root .atitle{font-size:13px;font-weight:600}.pdfqa-root .asub{font-size:12px;color:var(--d);max-width:240px;line-height:1.6}
.pdfqa-root .empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:50px 20px;text-align:center}
.pdfqa-root .ei{font-size:32px;opacity:.2}.pdfqa-root .et{font-size:12px;font-weight:600;color:var(--d)}.pdfqa-root .es{font-size:11px;color:var(--dd);max-width:240px;line-height:1.6}
.pdfqa-root .toasts{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:6px;z-index:9999}
.pdfqa-root .toast{font-size:11px;padding:9px 14px;border-radius:6px;border:1px solid;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pdfqa-root .tg{background:#f0faf5;border-color:var(--g);color:var(--g)}
.pdfqa-root .tr{background:#fdf0f0;border-color:var(--r);color:var(--r)}
.pdfqa-root .ti{background:#f0f3ff;border-color:var(--bl);color:var(--bl)}
.pdfqa-root .ty{background:#fff8f0;border-color:var(--y);color:var(--y)}
.pdfqa-root ::-webkit-scrollbar{width:5px;height:5px}.pdfqa-root ::-webkit-scrollbar-track{background:var(--s2)}.pdfqa-root ::-webkit-scrollbar-thumb{background:var(--b2);border-radius:3px}
/* EXPORT TAB */
.pdfqa-root .tc-scroll{overflow-y:auto;padding:20px;flex:1}
