/* BITACORA → Astro variable aliases (scoped to the panel) */
:root {
  --card: var(--bg-card);
  --card2: var(--bg-2);
  --surface: var(--bg-card);
  --accent: var(--green);
  --accent-dim: color-mix(in srgb, var(--green) 12%, transparent);
  --accent2: var(--blue);
  --blue-dim: color-mix(in srgb, var(--blue) 12%, transparent);
  --text-dim: var(--dim);
  --border2: var(--border-hi);
  --warning: var(--gold);
  --warn-bg: color-mix(in srgb, var(--gold) 10%, transparent);
  --warn-border: color-mix(in srgb, var(--gold) 25%, transparent);
  --success: var(--green);
  --mono: 'DM Mono', 'Courier New', monospace;
  --sans: 'DM Sans', Arial, sans-serif;
  --cond: 'DM Sans', Arial, sans-serif;
  --font: var(--sans);
  --r: 12px;
  --r-md: 14px;
  --r-sm: 8px;
  --sh: 0 4px 24px rgba(0,0,0,.3);
  --sh-sm: 0 2px 8px rgba(0,0,0,.15);
}
body.light {
  --card: var(--bg-card);
  --card2: var(--bg-2);
  --surface: var(--bg-card);
  --text-dim: var(--dim);
  --border2: var(--border-hi);
  --sh: 0 4px 24px rgba(0,0,0,.08);
  --sh-sm: 0 2px 8px rgba(0,0,0,.05);
}

/* ─── Keyframes ─── */
@keyframes flash-highlight {
  0%   { box-shadow: 0 0 0 4px var(--accent); transform: scale(1.02); }
  100% { box-shadow: 0 0 0 0 transparent;      transform: scale(1); }
}
@keyframes flash { 0%{background:var(--accent-dim);}100%{background:transparent;} }
@keyframes mc-slide { from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:translateY(0);} }
@keyframes slide-up { 0%{opacity:0;transform:translateY(10px);} 100%{opacity:1;transform:translateY(0);} }
.highlight-card { animation: flash-highlight 1.5s ease-out; }
.flash { animation: flash .5s ease-out; }

/* ─── SEARCH ─── */
.search-btn {background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font-size:16px;padding:0 12px;height:36px;display:flex;align-items:center;gap:6px;transition:all .2s;}
.search-btn:hover {background:var(--border);}
.search-modal {display:none;position:fixed;top:60px;right:24px;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);z-index:200;flex-direction:column;max-height:calc(100vh - 80px);overflow:hidden;}
.search-modal.open {display:flex;}
.search-header {padding:12px;border-bottom:1px solid var(--border);background:var(--card);}
.search-input {width:100%;background:var(--card2);border:1px solid var(--border2);color:var(--text);border-radius:var(--r-sm);padding:8px 12px;font-family:var(--sans);font-size:14px;}
.search-input:focus {outline:none;border-color:var(--accent);}
.search-results {flex:1;overflow-y:auto;padding:8px;}
.search-item {padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;border-bottom:1px solid transparent;transition:background .2s;}
.search-item:hover {background:var(--card2);}
.search-item-title {font-weight:600;font-size:13px;color:var(--text);}
.search-item-desc {font-size:11px;color:var(--text-dim);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-item-group {font-size:9px;text-transform:uppercase;color:var(--accent);margin-top:4px;font-weight:700;}

/* ─── HELP ─── */
.help-icon {display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--border);color:var(--text);border-radius:50%;font-size:10px;font-weight:bold;cursor:pointer;margin-left:6px;transition:all 0.2s;vertical-align:middle;}
.help-icon:hover {background:var(--accent);color:#fff;transform:scale(1.1);}
.help-modal-overlay {display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:900;backdrop-filter:blur(2px);align-items:center;justify-content:center;}
.help-modal-overlay.open {display:flex;}
.help-modal-box {background:var(--surface);border:1px solid var(--border);border-radius:var(--r);width:90%;max-width:400px;box-shadow:var(--sh);padding:20px;position:relative;animation:slide-up 0.2s ease-out;}
.help-modal-close {position:absolute;top:12px;right:16px;cursor:pointer;font-size:16px;color:var(--text-dim);background:none;border:none;}
.help-modal-close:hover {color:var(--text);}
.help-modal-title {font-family:var(--cond);font-size:18px;font-weight:700;color:var(--accent);margin-bottom:8px;padding-right:20px;}
.help-modal-body {font-size:14px;color:var(--text);line-height:1.5;}

/* ─── TAB NAV ─── */
.tab-nav-wrap {position:sticky;top:56px;z-index:90;background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;overflow-x:auto;scrollbar-width:none;}
.tab-nav-wrap::-webkit-scrollbar {display:none;}
.tab-nav {display:flex;gap:4px;padding:8px 0;white-space:nowrap;}
.tab-btn {background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.02em;padding:6px 14px;transition:all .15s;white-space:nowrap;}
.tab-btn:hover {background:var(--card2);color:var(--text);}
.tab-btn.active {background:var(--accent-dim);border-color:var(--accent);color:var(--accent);}
.tab-dot {display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:6px;vertical-align:middle;background:currentColor;opacity:.6;}

/* ─── MAIN LAYOUT ─── */
#panel-bitacora main {max-width:1280px;margin:0 auto;padding:28px 24px 60px;}
.buffer-section {display:none;}
.buffer-section.active {display:block;}
.section-header {margin-bottom:20px;}
.section-title {font-family:var(--cond);font-size:22px;font-weight:700;letter-spacing:.04em;color:var(--text);}
.section-desc {font-size:13px;color:var(--text-dim);margin-top:4px;}
.cards-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;}

/* ─── BUFFER CARD ─── */
.buffer-card {background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh-sm);overflow:hidden;transition:border-color .2s,box-shadow .2s;}
.buffer-card:hover {border-color:var(--border2);box-shadow:var(--sh);}
.card-header {background:var(--card2);border-bottom:1px solid var(--border);padding:14px 16px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.card-title {font-family:var(--cond);font-size:17px;font-weight:700;letter-spacing:.03em;color:var(--text);line-height:1.3;}
.table-badge {background:var(--accent-dim);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:4px;color:var(--accent);font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.04em;padding:2px 7px;white-space:nowrap;flex-shrink:0;margin-top:2px;}
.card-body {padding:14px 16px 0;}
.vol-control {margin-bottom:14px;}
.vol-label {display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px;}
.vol-input-row {display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.vol-input {background:var(--bg);border:1.5px solid var(--border2);border-radius:var(--r-sm);color:var(--text);font-family:var(--mono);font-size:20px;font-weight:500;height:44px;padding:0 10px;text-align:right;width:130px;transition:border-color .15s;-moz-appearance:textfield;}
.vol-input::-webkit-outer-spin-button,.vol-input::-webkit-inner-spin-button {-webkit-appearance:none;}
.vol-input:focus {outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);}
.vol-unit {font-family:var(--mono);font-size:16px;font-weight:500;color:var(--text-dim);}
.reset-btn {background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer;font-size:16px;height:36px;width:36px;display:grid;place-items:center;transition:all .15s;margin-left:auto;}
.reset-btn:hover {background:var(--border);color:var(--text);}
.presets-row {display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;}
.preset-btn {background:var(--card2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);cursor:pointer;font-family:var(--mono);font-size:11px;padding:3px 9px;transition:all .12s;}
.preset-btn:hover,.preset-btn.active-preset {background:var(--accent-dim);border-color:var(--accent);color:var(--accent);}
.highlight-badge {background:var(--card);border:1px solid var(--border2);border-radius:4px;padding:2px 7px;cursor:pointer;transition:all 0.2s ease;font-size:9.5px;color:var(--text-dim);display:inline-flex;align-items:center;gap:4px;user-select:none;}
.highlight-badge:hover {background:var(--border);color:var(--text);border-color:var(--accent);transform:translateY(-1px);}
.highlight-badge.active-badge {background:var(--accent-dim);color:var(--accent);border-color:var(--accent);}
.scale-badge {display:inline-flex;align-items:center;gap:5px;background:var(--card2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-family:var(--mono);font-size:11px;padding:3px 10px;transition:all .2s;}
.scale-badge.changed {background:var(--blue-dim);border-color:var(--accent2);color:var(--accent2);}
.scale-val {font-weight:500;}
.ingr-table {width:100%;border-collapse:collapse;font-size:13px;}
.ingr-table th {font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);padding:6px 8px;text-align:left;border-bottom:1px solid var(--border);}
.ingr-table th:last-child {text-align:right;}
.ingr-table td {padding:8px;border-bottom:1px solid var(--border);vertical-align:middle;}
.ingr-table tr:last-child td {border-bottom:none;}
.ingr-table tr:hover td {background:rgba(255,255,255,.02);}
body.light .ingr-table tr:hover td {background:rgba(0,0,0,.02);}
.ingr-name {color:var(--text);font-weight:500;}
.ingr-conc {color:var(--text-dim);font-size:12px;white-space:nowrap;}
.ingr-qty {text-align:right;white-space:nowrap;}
.qty-val {font-family:var(--mono);font-size:14px;font-weight:500;color:var(--text);}
.qty-unit {font-family:var(--mono);font-size:11px;color:var(--text-dim);margin-left:2px;}
.card-footer {display:flex;align-items:center;justify-content:space-between;padding:10px 16px 14px;margin-top:2px;}
.card-notes {background:var(--warn-bg);border-left:3px solid var(--warning);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--warning);font-size:12px;margin:0 16px;padding:7px 10px;}

/* ─── PHASE BANNERS ─── */
.phase-banner {display:flex;align-items:center;gap:14px;margin:44px 0 22px;padding:14px 20px 14px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.06);position:relative;overflow:hidden;}
.phase-banner::before {content:'';position:absolute;inset:0;opacity:.07;pointer-events:none;}
.phase-badge {flex-shrink:0;font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.1em;padding:5px 10px;border-radius:6px;text-transform:uppercase;white-space:nowrap;}
.phase-banner-body {display:flex;flex-direction:column;gap:3px;min-width:0;}
.phase-banner-title {font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em;}
.phase-banner-sub {font-size:11px;color:var(--text-dim);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phase-banner--blue {background:rgba(37,99,235,.12);border-color:rgba(37,99,235,.35);}
.phase-banner--blue .phase-badge {background:rgba(37,99,235,.25);color:#93c5fd;}
.phase-banner--green {background:rgba(5,150,105,.12);border-color:rgba(5,150,105,.35);}
.phase-banner--green .phase-badge {background:rgba(5,150,105,.25);color:#6ee7b7;}
.phase-banner--purple {background:rgba(124,58,237,.12);border-color:rgba(124,58,237,.35);}
.phase-banner--purple .phase-badge {background:rgba(124,58,237,.25);color:#c4b5fd;}
.phase-banner--orange {background:rgba(234,88,12,.12);border-color:rgba(234,88,12,.35);}
.phase-banner--orange .phase-badge {background:rgba(234,88,12,.25);color:#fdba74;}
.phase-banner--sky {background:rgba(2,132,199,.12);border-color:rgba(2,132,199,.35);}
.phase-banner--sky .phase-badge {background:rgba(2,132,199,.25);color:#7dd3fc;}
.phase-banner--amber {background:rgba(217,119,6,.12);border-color:rgba(217,119,6,.35);}
.phase-banner--amber .phase-badge {background:rgba(217,119,6,.25);color:#fcd34d;}
.phase-banner--rose {background:rgba(190,24,93,.12);border-color:rgba(190,24,93,.35);}
.phase-banner--rose .phase-badge {background:rgba(190,24,93,.25);color:#f9a8d4;}
body.light .phase-banner--blue .phase-badge {color:#1d4ed8;background:rgba(29,78,216,.15);}
body.light .phase-banner--green .phase-badge {color:#065f46;background:rgba(6,95,70,.15);}
body.light .phase-banner--purple .phase-badge {color:#5b21b6;background:rgba(91,33,182,.15);}
body.light .phase-banner--orange .phase-badge {color:#9a3412;background:rgba(154,52,18,.15);}
body.light .phase-banner--sky .phase-badge {color:#075985;background:rgba(7,89,133,.15);}
body.light .phase-banner--amber .phase-badge {color:#92400e;background:rgba(146,64,14,.15);}
body.light .phase-banner--rose .phase-badge {color:#9d174d;background:rgba(157,23,77,.15);}
body.light .bio-step {background:#fff;border-color:#d4daea;}
body.light .bio-step-header {background:#f0f4fb;color:#1a2340;}
body.light .bio-calc-box {background:#f0f4fb;border-color:#c0c8de;}
body.light .vol-num {color:#0a8f7a;}
body.light .timer-display {color:#1a2340;}
body.light .timer-btn {background:#e2e8f0;color:#1a2340;border-color:#c0c8de;}
body.light .timer-btn:hover {background:#cbd5e1;}

/* ─── MISC ─── */
.base-vol-note {font-family:var(--mono);font-size:11px;color:var(--text-dim);}
.copy-btn {background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer;font-size:12px;padding:5px 12px;transition:all .15s;}
.copy-btn:hover {background:var(--border2);color:var(--text);}
.copy-btn.copied {border-color:var(--success);color:var(--success);}

/* ─── IMAC ─── */
.imac-protocol-bar {background:var(--card);border:1px solid var(--border);border-radius:var(--r);margin-bottom:20px;overflow:hidden;}
.imac-proto-toggle {width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:var(--text);font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.04em;text-align:left;gap:8px;transition:background .15s;}
.imac-proto-toggle:hover {background:var(--card2);}
.imac-proto-label {display:flex;align-items:center;gap:8px;}
.imac-proto-arrow {font-size:10px;color:var(--text-dim);transition:transform .2s;}
.imac-protocol-bar.open .imac-proto-arrow {transform:rotate(90deg);}
.imac-proto-body {display:none;border-top:1px solid var(--border);padding:16px;}
.imac-protocol-bar.open .imac-proto-body {display:block;}
.imac-formula-row {background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.imac-formula-label {font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);flex-shrink:0;}
.imac-formula-eq {font-family:var(--mono);font-size:13px;color:var(--accent2);}
.imac-formula-note {font-size:11px;color:var(--text-dim);flex-basis:100%;margin-top:2px;}
.imac-steps {display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px;}
.imac-step {background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;position:relative;}
.imac-step-num {position:absolute;top:-8px;left:10px;background:var(--accent2);color:#fff;font-size:10px;font-weight:700;border-radius:3px;padding:1px 6px;letter-spacing:.04em;}
.imac-step:nth-child(3) .imac-step-num {background:var(--accent);}
.imac-step:nth-child(5) .imac-step-num {background:var(--warning);}
.imac-step-title {font-size:12px;font-weight:600;color:var(--text);margin-bottom:3px;margin-top:4px;}
.imac-step-body {font-size:11px;color:var(--text-dim);line-height:1.5;}
.imac-flow {display:flex;align-items:center;gap:0;margin-bottom:18px;overflow-x:auto;padding-bottom:4px;}
.imac-flow-step {display:flex;align-items:center;flex-shrink:0;}
.imac-flow-node {background:var(--card2);border:1.5px solid var(--border2);border-radius:var(--r-sm);padding:6px 12px;text-align:center;min-width:90px;}
.imac-flow-node.teal {border-color:#2dd4bf55;}
.imac-flow-node.emerald {border-color:#34d39955;}
.imac-flow-node.amber {border-color:#fbbf2455;}
.imac-flow-node.sky {border-color:#38bdf855;}
.imac-flow-num {font-family:var(--mono);font-size:9px;color:var(--text-dim);}
.imac-flow-name {font-size:11px;font-weight:600;color:var(--text);}
.imac-flow-dtt {font-size:9px;margin-top:1px;}
.imac-flow-arr {color:var(--border2);font-size:14px;padding:0 4px;}
.stage-badge {display:inline-flex;align-items:center;gap:4px;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.04em;padding:2px 7px;white-space:nowrap;flex-shrink:0;margin-top:2px;}
.stage-badge.teal {background:rgba(45,212,191,.10);border:1px solid rgba(45,212,191,.30);color:#2dd4bf;}
.stage-badge.emerald,.stage-badge.green {background:rgba(52,211,153,.10);border:1px solid rgba(52,211,153,.30);color:#34d399;}
.stage-badge.amber,.stage-badge.orange {background:rgba(251,191,36,.10);border:1px solid rgba(251,191,36,.30);color:#fbbf24;}
.stage-badge.sky {background:rgba(56,189,248,.10);border:1px solid rgba(56,189,248,.30);color:#38bdf8;}
.stage-badge.rose,.stage-badge.purple {background:rgba(248,113,133,.10);border:1px solid rgba(248,113,133,.30);color:#fb7185;}
.stage-badge.slate {background:var(--card2);border:1px solid var(--border);color:var(--text-dim);}
body.light .stage-badge.teal {color:#0d9488;background:rgba(13,148,136,.08);border-color:rgba(13,148,136,.3);}
body.light .stage-badge.emerald {color:#059669;background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.3);}
body.light .stage-badge.amber {color:#b45309;background:rgba(180,83,9,.08);border-color:rgba(180,83,9,.3);}
body.light .stage-badge.sky {color:#0284c7;background:rgba(2,132,199,.08);border-color:rgba(2,132,199,.3);}
.dtt-yes {color:#34d399;font-size:10px;}
.dtt-no {color:#f87171;font-size:10px;}
.dtt-band {display:flex;align-items:center;gap:8px;border-radius:var(--r-sm);padding:7px 11px;margin-bottom:12px;font-size:12px;font-weight:600;line-height:1.4;}
.dtt-band-safe {background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.30);color:#f87171;}
.dtt-band-active {background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.30);color:#34d399;}
.buffer-card.imac-no-dtt {border-left:3px solid rgba(248,113,113,.5);}
.buffer-card.imac-yes-dtt {border-left:3px solid rgba(52,211,153,.5);}
.imid-role {display:block;font-size:10px;font-style:italic;color:var(--text-dim);margin-top:1px;font-weight:400;}
.imac-notes-bar {background:var(--card);border:1px solid var(--border);border-radius:var(--r);margin-top:20px;overflow:hidden;}
.imac-notes-toggle {width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:var(--text-dim);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.05em;text-align:left;gap:8px;transition:background .15s;}
.imac-notes-toggle:hover {background:var(--card2);color:var(--text);}
.imac-notes-bar.open .imac-notes-arrow {transform:rotate(90deg);}
.imac-notes-arrow {font-size:10px;transition:transform .2s;}
.imac-notes-body {display:none;border-top:1px solid var(--border);padding:18px 16px;}
.imac-notes-bar.open .imac-notes-body {display:block;}
.imac-notes-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;}
.imac-note-card {background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px;}
.imac-note-title {font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.imac-note-body {font-size:12px;color:var(--text-dim);line-height:1.6;}
.imac-note-body ul {padding-left:14px;margin-top:6px;}
.imac-note-body li {margin-bottom:3px;}
.imac-note-body .hi {color:var(--text);font-weight:500;}
.imac-note-body .red {color:#f87171;}
.imac-sat-row {display:flex;gap:10px;margin-bottom:10px;}
.imac-sat-val {background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);flex:1;padding:8px 12px;text-align:center;}
.imac-sat-num {font-family:var(--mono);font-size:18px;font-weight:700;color:var(--text);line-height:1.2;}
.imac-sat-label {font-size:10px;color:var(--text-dim);margin-top:2px;}
.imac-warn {background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);color:var(--warning);font-size:11px;font-weight:500;padding:6px 10px;margin-top:8px;}

/* ─── MW & REFERENCES ─── */
.ref-container {
    display: flex;
    flex-direction: column;
    gap: 40px;
    width: 100%;
}
.ref-block-molecular {
    width: 100%;
}
.ref-molecular-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
}
@media(min-width: 900px) {
    .ref-molecular-grid {
        grid-template-columns: 2.2fr 1fr;
        gap: 24px;
    }
}
.ref-block-apa {
    width: 100%;
    border-top: 1px solid var(--border);
    padding-top: 30px;
}
.ref-apa-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
@media(min-width: 768px) {
    .ref-apa-grid {
        grid-template-columns: 1fr 1fr;
    }
}
.ref-block-title {font-family:var(--cond);font-size:18px;font-weight:700;letter-spacing:.04em;color:var(--text);margin-bottom:14px;}
.mw-table {width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;}
.mw-table th {background:var(--card2);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);padding:9px 14px;text-align:left;border-bottom:1px solid var(--border);}
.mw-table th:last-child {text-align:right;}
.mw-table td {padding:9px 14px;border-bottom:1px solid var(--border);color:var(--text);font-size:13px;}
.mw-table tr:last-child td {border-bottom:none;}
.mw-table tr:hover td {background:rgba(255,255,255,.02);}
body.light .mw-table tr:hover td {background:rgba(0,0,0,.02);}
.mw-val {font-family:var(--mono);font-size:12px;color:var(--accent2);text-align:right;white-space:nowrap;}
.mw-tag {display:inline-block;font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:3px;margin-left:5px;background:var(--accent-dim);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);vertical-align:middle;}
.mw-tag-b {background:var(--blue-dim);color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 20%,transparent);}
.ref-formula-note {font-size:12px;color:var(--text-dim);margin-top:12px;line-height:1.7;background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;}
.apa-section {background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;}
.apa-theme-header {background:var(--card2);border-bottom:1px solid var(--border);padding:10px 16px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);}
.apa-theme-body {padding:14px 16px;}
.apa-ref {font-size:12px;color:var(--text-dim);line-height:1.7;padding-left:22px;text-indent:-22px;margin-bottom:10px;}
.apa-ref:last-child {margin-bottom:0;}
.apa-ref em {color:var(--text);}
.apa-theme-sep {height:1px;background:var(--border);margin:0;}

/* ─── MEDIOS DE CULTIVO ─── */
.mc-section {display:flex;flex-direction:column;gap:20px;}
.mc-controls {background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh-sm);}
.mc-controls-grid {display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;}
@media(min-width:900px){.mc-controls-grid{grid-template-columns:1.1fr 1fr 2fr;}}
.mc-label {display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:7px;}
.mc-chip-group {display:flex;flex-wrap:wrap;gap:4px;background:var(--card2);border:1px solid var(--border);border-radius:var(--r-sm);padding:4px;}
.mc-chip {flex:1;min-width:max-content;padding:7px 12px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-dim);cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:600;transition:all .15s;white-space:nowrap;text-align:center;}
.mc-chip:hover {color:var(--text);background:var(--card);}
.mc-chip.active {background:var(--blue-dim);border-color:var(--accent2);color:var(--accent2);}
.mc-input-row {display:flex;align-items:stretch;background:var(--card2);border:1.5px solid var(--border2);border-radius:var(--r-sm);overflow:hidden;height:44px;transition:border-color .15s;}
.mc-input-row:focus-within {border-color:var(--accent);}
.mc-vol-input {flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:18px;font-weight:500;padding:0 12px;-moz-appearance:textfield;}
.mc-vol-input::-webkit-outer-spin-button,.mc-vol-input::-webkit-inner-spin-button {-webkit-appearance:none;}
.mc-unit-select {background:var(--card);border:none;border-left:1px solid var(--border);outline:none;color:var(--accent2);font-family:var(--sans);font-size:13px;font-weight:700;padding:0 12px;cursor:pointer;min-width:58px;}
.mc-unit-select option {background:var(--card);color:var(--text);}
.mc-workflow-group {display:none;grid-column:1/-1;}
.mc-alert {display:none;background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);color:var(--warning);padding:11px 15px;gap:10px;align-items:flex-start;font-size:12px;margin-top:14px;}
.mc-alert.active {display:flex;animation:mc-slide .3s ease-out;}
.mc-alert-icon {font-size:15px;flex-shrink:0;}
.mc-split {display:grid;grid-template-columns:1fr;gap:20px;align-items:start;}
@media(min-width:900px){.mc-split{grid-template-columns:1.25fr 1fr;}}
.mc-results-pane {display:flex;flex-direction:column;gap:14px;}
.mc-part-card {background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);}
.mc-part-header {background:var(--blue-dim);border-bottom:1px solid var(--border);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;}
.mc-part-title {font-family:var(--cond);font-size:15px;font-weight:700;color:var(--accent2);letter-spacing:.03em;}
.mc-part-vol {font-family:var(--mono);font-size:13px;font-weight:700;color:var(--text);background:var(--card);padding:3px 10px;border-radius:5px;border:1px solid var(--border);}
.mc-part-card-addon {background:var(--card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);}
.mc-part-header-addon {background:var(--accent-dim);border-bottom:1px solid var(--border);padding:10px 16px;display:flex;justify-content:space-between;align-items:center;}
.mc-part-title-addon {font-family:var(--cond);font-size:14px;font-weight:700;color:var(--accent);letter-spacing:.03em;}
.mc-addon-tag {font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--accent-dim);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent);border-radius:4px;padding:2px 7px;}
.mc-table {width:100%;border-collapse:collapse;}
.mc-table td {padding:11px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);}
.mc-table tr:last-child td {border-bottom:none;}
.mc-table tr:hover td {background:rgba(255,255,255,.015);}
body.light .mc-table tr:hover td {background:rgba(0,0,0,.02);}
.mc-amount {text-align:right;font-family:var(--mono);font-size:14px;font-weight:600;color:var(--text);}
.mc-unit {font-family:var(--mono);font-size:11px;color:var(--text-dim);}
.mc-hint {display:inline-block;font-size:10px;color:var(--text-dim);margin-top:4px;background:var(--card2);padding:2px 7px;border-radius:4px;border-left:2px solid var(--accent2);}
.mc-hint-alt {display:block;font-size:11px;color:var(--text-dim);margin-top:3px;}
.mc-water-row td {background:var(--card2)!important;font-weight:600;}
.mc-vol-final-row {background:var(--blue-dim)!important;}
.mc-vol-final-row td {color:var(--accent2)!important;font-weight:700!important;}
.mc-vol-note {font-size:11px;color:var(--text-dim);padding:8px 14px 10px;line-height:1.5;font-style:italic;border-top:1px dashed var(--border);}
.mc-protocol-pane {position:sticky;top:108px;}
.mc-protocol-card {background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh-sm);}
.mc-protocol-title {font-family:var(--cond);font-size:16px;font-weight:700;color:var(--text);letter-spacing:.03em;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;}
.mc-progress-wrap {width:100%;height:5px;background:var(--border);border-radius:3px;margin:10px 0 16px;overflow:hidden;}
.mc-progress-bar {height:100%;width:0%;background:var(--success);border-radius:3px;transition:width .3s ease;}
.mc-task-list {list-style:none;display:flex;flex-direction:column;gap:10px;}
.mc-task-item {display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:7px 8px;border-radius:var(--r-sm);transition:background .15s;}
.mc-task-item:hover {background:var(--card2);}
.mc-task-item input[type="checkbox"] {margin-top:3px;width:16px;height:16px;cursor:pointer;accent-color:var(--success);flex-shrink:0;}
.mc-task-text {font-size:12px;color:var(--text);flex:1;line-height:1.5;transition:all .2s;}
.mc-task-item input:checked+.mc-task-text {color:var(--text-dim);text-decoration:line-through;opacity:.65;}
.mc-tip {margin-top:14px;padding-top:12px;border-top:1px dashed var(--border);font-size:12px;color:var(--text-dim);line-height:1.6;}
.mc-tip strong {color:var(--text);}
.mc-export-btn {margin-top:12px;width:100%;background:var(--accent2);border:none;border-radius:var(--r-sm);color:#fff;cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:600;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s;box-shadow:0 2px 8px rgba(91,141,238,.3);}
.mc-export-btn:hover {opacity:.88;}

/* ─── BLANK RUN TABLE ─── */
.blank-run-table {width:100%;border-collapse:collapse;margin-top:12px;font-size:12px;}
.blank-run-table th {font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);padding:6px 10px;text-align:left;border-bottom:1px solid var(--border);background:var(--card);}
.blank-run-table td {padding:7px 10px;border-bottom:1px solid var(--border);color:var(--text-dim);}
.blank-run-table tr:last-child td {border-bottom:none;}
.blank-run-table td:first-child {font-family:var(--mono);font-size:11px;color:var(--accent2);font-weight:600;width:60px;}
.blank-run-table td.brt-action {color:var(--text);}

/* ─── GST SECTION ─── */
.gst-calc-grid {display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:24px;}
@media(min-width:900px){.gst-calc-grid{grid-template-columns:1fr 1fr;}}
.gst-calc-panel {background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:16px;box-shadow:var(--sh-sm);}
.gst-calc-header {font-size:11px;font-weight:700;color:var(--text-dim);margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);padding-bottom:8px;}
.gst-reagent-row {display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;align-items:center;margin-bottom:10px;}
.gst-reagent-labels {font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-dim);}
.gst-label {font-size:13px;font-weight:600;color:var(--text);}
.gst-input {background:var(--card2);border:1.5px solid var(--border2);border-radius:var(--r-sm);color:var(--text);padding:8px;font-family:var(--mono);width:100%;transition:border-color .15s;}
.gst-input:focus {outline:none;border-color:var(--accent);}
.gst-table-card {background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);margin-bottom:24px;}
.gst-table-header {background:var(--card2);border-bottom:1px solid var(--border);padding:12px 16px;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;display:flex;justify-content:space-between;}
.gst-row {display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);}
.gst-row:last-child {border-bottom:none;}
.gst-row.mix {background:var(--warn-bg);border-left:4px solid var(--warning);color:var(--warning);font-weight:600;justify-content:center;}
.gst-row.final {background:var(--blue-dim);border-top:1px solid var(--border);font-weight:700;color:var(--text);}
.gst-val {font-family:var(--mono);font-size:14px;font-weight:600;}
.gst-error-msg {background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.3);border-radius:var(--r-sm);color:#f87171;font-size:12px;font-weight:600;padding:12px;margin-top:12px;display:none;text-align:center;}

/* ─── GST PLATE MAP ─── */
.gst-plate-wrap {overflow-x:auto;margin-bottom:24px;padding-bottom:8px;}
#gstPlateMap {border-collapse:separate;border-spacing:4px;min-width:720px;width:100%;}
#gstPlateMap th,#gstPlateMap td {padding:0;border:none;text-align:center;}
.plate-well {border-radius:50%;width:50px;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:auto;border:2px solid;transition:transform .15s;cursor:default;}
.plate-well:hover {transform:scale(1.15);z-index:10;position:relative;}
.plate-row-label {font-size:11px;font-weight:700;color:var(--text-dim);width:40px;text-align:center;vertical-align:middle;}
.plate-col-header {font-size:10px;font-weight:700;text-align:center;padding:4px 2px;border-radius:4px 4px 0 0;}
.gst-plate-legend {display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px;padding:12px;background:var(--card2);border-radius:var(--r-sm);border:1px solid var(--border);}
.gst-legend-tag {padding:4px 10px;border-radius:20px;font-size:10px;font-weight:700;border:1.5px solid;}

/* ─── GST VOL TABLE ─── */
.gst-vol-table {width:100%;border-collapse:collapse;min-width:800px;font-size:12px;}
.gst-vol-table th {background:var(--card2);color:var(--text-dim);text-align:center;padding:10px;font-size:10px;font-weight:600;text-transform:uppercase;border-bottom:1px solid var(--border);}
.gst-vol-table td {text-align:center;padding:10px;border-bottom:1px solid var(--border);color:var(--text);}
.gst-vol-table tbody tr {cursor:pointer;transition:background .15s;}
.gst-vol-table tbody tr:hover {background:rgba(255,255,255,.02);}
body.light .gst-vol-table tbody tr:hover {background:rgba(0,0,0,.02);}
.gst-vol-table tbody tr.selected-row {background:var(--accent-dim) !important;box-shadow:inset 4px 0 0 0 var(--accent);}
.vol-badge {display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;}
.vol-num {font-family:var(--mono);font-weight:500;}
.vol-error {color:#f87171 !important;font-weight:700;}

/* ─── GPX SECTION: layout familiar al ensayo GST, pero más robusto en pantallas estrechas ─── */
.gpx-section {container-type:inline-size;}
.gpx-section .card-notes {overflow-wrap:anywhere;}
.gpx-hypothesis-grid {margin:0 0 20px 0 !important;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;}
.gpx-config-grid {align-items:stretch;}
@media(min-width:1100px){.gpx-config-grid{grid-template-columns:1.15fr 1fr 1fr 1.15fr;}}
.gpx-config-grid .gst-calc-panel {min-width:0;}
.gpx-select-row {grid-template-columns:minmax(110px,1fr) minmax(0,2fr) !important;}
.gpx-select-row select {grid-column:auto !important;min-width:0;font-family:var(--sans);font-size:12px;line-height:1.35;white-space:normal;}
.gpx-result-grid {align-items:start;}
.gpx-field-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.gpx-field-grid label {min-width:0;}
.gpx-field-grid .gst-input {margin-top:4px;}
.gpx-section .gst-row {gap:14px;}
.gpx-section .gst-row > span:first-child {min-width:0;overflow-wrap:anywhere;}
.gpx-section .gst-val {text-align:right;white-space:nowrap;}
.gpx-section .stage-badge {white-space:normal;}
#gpxPlateMap {border-collapse:separate;border-spacing:4px;min-width:860px;width:100%;table-layout:fixed;}
#gpxPlateMap th,#gpxPlateMap td {padding:0;border:none;text-align:center;vertical-align:middle;}
#gpxPlateMap .plate-well {width:48px;height:48px;}
.gpx-vol-scroll {overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:24px;}
.gpx-vol-scroll .gst-vol-table {min-width:1040px;}
.gpx-vol-scroll .gst-vol-table th,.gpx-vol-scroll .gst-vol-table td {padding:8px 9px;}
@media(max-width:899px){
  .gpx-config-grid {grid-template-columns:1fr;}
  .gpx-result-grid {grid-template-columns:1fr !important;}
}
@media(max-width:640px){
  .gpx-hypothesis-grid {grid-template-columns:1fr;}
  .gpx-select-row {grid-template-columns:1fr !important;gap:6px;}
  .gpx-field-grid {grid-template-columns:1fr;}
  .gpx-section .gst-table-header,.gpx-section .gst-row {padding-left:12px;padding-right:12px;}
  .gpx-section .gst-row {align-items:flex-start;flex-direction:column;}
  .gpx-section .gst-row.mix {align-items:center;text-align:center;}
  .gpx-section .gst-val {text-align:left;}
  #gpxPlateMap {min-width:820px;}
  #gpxPlateMap .plate-well {width:44px;height:44px;}
}

/* ─── BIOPROCESS STEPS ─── */
.bio-step {background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);padding:20px;margin-bottom:16px;box-shadow:0 4px 6px rgba(0,0,0,0.1);}
.bio-step-header {display:flex;align-items:center;justify-content:space-between;font-weight:700;color:var(--text);font-size:15px;margin-bottom:12px;}
.bio-step-content {font-size:14px;color:var(--text-dim);line-height:1.5;}
.bio-check {appearance:none;width:22px;height:22px;border:2px solid var(--accent);border-radius:6px;cursor:pointer;position:relative;background:var(--card2);}
.bio-check:checked {background:var(--accent);}
.bio-check:checked::after {content:"✓";color:#000;position:absolute;font-size:16px;top:-1px;left:4px;font-weight:900;}
.timer-box {background:var(--card2);border-radius:var(--r-sm);padding:12px 16px;display:flex;align-items:center;gap:16px;margin-top:12px;border:1px solid var(--border);}
.timer-display {font-family:var(--mono);font-size:24px;font-weight:700;color:var(--accent);min-width:80px;text-align:center;}
.timer-btn {background:var(--accent);color:#000;border:none;padding:8px 16px;border-radius:6px;font-weight:600;cursor:pointer;font-size:13px;transition:background 0.2s;}
.timer-btn:hover {opacity:0.9;}
.bio-calc-box {display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--card2);padding:20px;border-radius:var(--r-sm);margin-top:16px;border:1px solid var(--border);}
.bio-row {display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--border);}
.bio-row:last-child {border-bottom:none;}

/* ─── SCROLLBAR ─── */
#panel-bitacora ::-webkit-scrollbar {width:6px;height:6px;}
#panel-bitacora ::-webkit-scrollbar-track {background:transparent;}
#panel-bitacora ::-webkit-scrollbar-thumb {background:var(--border2);border-radius:3px;}
#panel-bitacora ::-webkit-scrollbar-thumb:hover {background:var(--text-dim);}

/* ─── RESPONSIVE ─── */
@media(max-width:500px){
  .cards-grid{grid-template-columns:1fr;}
  #panel-bitacora main{padding:16px 12px 40px;}
  .tab-nav-wrap{padding:0 12px;}
  .mc-controls-grid{grid-template-columns:1fr;}
}
@media print{
  .tab-nav-wrap,.presets-row,.reset-btn,.copy-btn,.mc-export-btn{display:none!important;}
  .buffer-section{display:block!important;}
  .buffer-card{break-inside:avoid;border:1px solid #ccc;box-shadow:none;}
}
