/* AI Lab — modelling, scenarios and decision support over selected real series. */

.lab-page { --lab-gap: 1.25rem; }
.lab-page *, .lab-page *::before, .lab-page *::after { box-sizing: border-box; }
.lab-page h1, .lab-page h2, .lab-page h3, .lab-page p { margin: 0; }

.lab-hero {
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 1.6rem 1.8rem;
    background: var(--bg-card);
    margin-bottom: var(--lab-gap);
}
.lab-hero .lab-eyebrow {
    display: flex; align-items: center; gap: .4rem;
    font-size: .66rem; font-weight: 800; letter-spacing: .12em;
    color: var(--accent-info); text-transform: uppercase;
}
.lab-hero h1 {
    font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    font-weight: 800; line-height: 1.2; letter-spacing: -.03em; margin: .7rem 0 .55rem;
}
.lab-hero p { font-size: .87rem; line-height: 1.7; color: var(--text-secondary); max-width: 74ch; }

/* A standing statement of what the lab is, shown before any control. */
.lab-contract {
    display: grid; gap: .55rem;
    margin-top: 1.1rem; padding: .9rem 1.05rem;
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--accent-warning);
    border-radius: 10px;
    background: var(--surface-subtle);
}
.lab-contract strong { font-size: .74rem; letter-spacing: .04em; color: var(--accent-warning); }
.lab-contract li { font-size: .77rem; line-height: 1.6; color: var(--text-secondary); }
.lab-contract ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .3rem; }

.lab-grid { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: var(--lab-gap); align-items: start; }
@media (max-width: 1100px) { .lab-grid { grid-template-columns: minmax(0, 1fr); } }

.lab-panel {
    border: 1px solid var(--border-color);
    border-radius: 14px;
    background: var(--bg-card);
    padding: 1.15rem 1.25rem;
}
.lab-panel + .lab-panel { margin-top: var(--lab-gap); }
.lab-panel h2 { font-size: .95rem; font-weight: 800; letter-spacing: -.01em; margin-bottom: .2rem; }
.lab-panel > p.lab-help { font-size: .72rem; line-height: 1.6; color: var(--text-secondary); margin-bottom: .9rem; }

.lab-step { display: grid; gap: .35rem; margin-bottom: .95rem; }
.lab-step label { font-size: .69rem; font-weight: 800; letter-spacing: .05em; color: var(--text-secondary); text-transform: uppercase; }
.lab-step select, .lab-step input {
    width: 100%; min-height: 42px; padding: .55rem .7rem;
    font: inherit; font-size: .82rem;
    color: var(--text-primary);
    background: var(--input-bg);
    border: 1px solid var(--border-color); border-radius: 8px;
}
.lab-step select:focus-visible, .lab-step input:focus-visible,
.lab-run:focus-visible { outline: 3px solid var(--accent-info); outline-offset: 2px; }
.lab-hint { font-size: .68rem; line-height: 1.55; color: var(--text-muted); }

.lab-run {
    width: 100%; min-height: 46px; margin-top: .3rem;
    font: inherit; font-size: .84rem; font-weight: 800;
    color: var(--text-on-fill); background: var(--primary);
    border: 1px solid var(--primary); border-radius: 9px; cursor: pointer;
}
.lab-run:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
.lab-run[disabled] { opacity: .5; cursor: default; }

/* Result surface */
.lab-empty { display: grid; place-items: center; gap: .8rem; padding: 3rem 1.5rem; text-align: center; }
.lab-empty p { font-size: .82rem; color: var(--text-secondary); max-width: 60ch; line-height: 1.7; }
.lab-empty .gicon { color: var(--accent-info); }

.lab-headline { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; margin-bottom: 1.1rem; }
.lab-figure { border: 1px solid var(--border-color); border-radius: 11px; padding: .8rem .9rem; background: var(--surface-subtle); }
.lab-figure .lab-figure-label { font-size: .64rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.lab-figure .lab-figure-value { font-size: 1.32rem; font-weight: 800; letter-spacing: -.02em; margin-top: .25rem; }
.lab-figure .lab-figure-note { font-size: .66rem; line-height: 1.5; color: var(--text-secondary); margin-top: .3rem; }

/* Verdict on whether the trend is even usable. */
.lab-verdict { display: flex; gap: .6rem; align-items: flex-start; padding: .85rem 1rem; border-radius: 10px; margin-bottom: 1.1rem; border: 1px solid var(--border-color); }
.lab-verdict.is-ok { border-left: 3px solid var(--accent-success); }
.lab-verdict.is-weak { border-left: 3px solid var(--accent-warning); }
.lab-verdict.is-blocked { border-left: 3px solid var(--accent-danger); }
.lab-verdict p { font-size: .78rem; line-height: 1.65; color: var(--text-secondary); }
.lab-verdict strong { display: block; font-size: .8rem; color: var(--text-primary); margin-bottom: .15rem; }

.lab-chart-wrap { position: relative; border: 1px solid var(--border-color); border-radius: 11px; padding: .9rem; background: var(--bg-card); margin-bottom: 1.1rem; }
.lab-chart-wrap canvas { display: block; width: 100%; height: 320px; }
.lab-main-caption h3 { font-size: 1rem; line-height: 1.45; color: var(--text-primary); }
.lab-main-caption p, .lab-main-note { font-size: .8rem; line-height: 1.7; color: var(--text-secondary); overflow-wrap: anywhere; }
.lab-main-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.lab-main-scroll:focus-visible { outline: 2px solid var(--accent-info); outline-offset: 2px; }
.lab-main-scroll svg { display: block; width: 100%; min-width: 700px; height: auto; border-radius: 8px; margin: 12px 0; }
.lab-main-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.lab-main-tools button { padding: 10px 14px; min-height: 44px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--bg-card); color: var(--text-primary); cursor: pointer; font: inherit; font-size: .8rem; }
.lab-main-tools button:focus-visible, .lab-main-table summary:focus-visible { outline: 2px solid var(--accent-info); outline-offset: 2px; }
.lab-main-table summary { cursor: pointer; min-height: 44px; padding: 10px 0; font-size: .8rem; }
.lab-main-table table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.lab-main-table th, .lab-main-table td { border-bottom: 1px solid var(--border-color); padding: 8px 12px; text-align: left; }
.lab-main-table th { text-transform: none; }
.lab-main-scroll-hint { display: none; }
@media screen and (max-width: 800px) {
    .lab-main-scroll-hint { display: block; font-size: .8rem; padding: 10px 0; color: var(--text-secondary); }
}
@media print {
    .lab-main-scroll { overflow: visible; }
    .lab-main-scroll svg { min-width: 0; width: 100%; }
    .lab-main-tools, .lab-main-table { display: none; }
    .lab-main-caption, .lab-main-note { color: #163b4b; }
}
.lab-legend { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .6rem; font-size: .7rem; color: var(--text-secondary); }
.lab-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.lab-swatch { width: 14px; height: 3px; border-radius: 2px; display: inline-block; }
.lab-swatch.is-band { height: 10px; opacity: .35; }

.lab-scenarios { display: grid; gap: .75rem; }
.lab-scenario { border: 1px solid var(--border-color); border-radius: 11px; padding: .85rem 1rem; }
.lab-scenario h3 { font-size: .82rem; font-weight: 800; margin-bottom: .3rem; }
.lab-scenario .lab-scenario-rate { font-size: .66rem; color: var(--text-muted); font-weight: 700; }
.lab-scenario dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .55rem; margin: .6rem 0 0; }
.lab-scenario dt { font-size: .63rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.lab-scenario dd { margin: .15rem 0 0; font-size: .85rem; font-weight: 700; }

.lab-threshold { margin-top: .65rem; padding: .6rem .75rem; border-radius: 8px; background: var(--surface-subtle); font-size: .75rem; line-height: 1.6; color: var(--text-secondary); }
.lab-threshold strong { color: var(--text-primary); }

/* Limits are not a footnote: they sit at the same weight as the numbers. */
.lab-limits { margin-top: 1.15rem; border: 1px solid var(--border-color); border-left: 3px solid var(--accent-warning); border-radius: 10px; padding: .95rem 1.1rem; background: var(--surface-subtle); }
.lab-limits h3 { font-size: .78rem; font-weight: 800; color: var(--accent-warning); margin-bottom: .5rem; }
.lab-limits ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .35rem; }
.lab-limits li { font-size: .75rem; line-height: 1.6; color: var(--text-secondary); }

.lab-prov { margin-top: 1rem; font-size: .7rem; line-height: 1.65; color: var(--text-muted); }
.lab-prov a { color: var(--accent-info); }

.lab-error { border: 1px solid var(--border-color); border-left: 3px solid var(--accent-danger); border-radius: 10px; padding: .9rem 1.05rem; font-size: .8rem; line-height: 1.6; color: var(--text-secondary); }
.lab-busy { font-size: .78rem; color: var(--text-secondary); }

.lab-export { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.lab-export button {
    font: inherit; font-size: .74rem; font-weight: 700; padding: .5rem .8rem;
    color: var(--text-primary); background: transparent;
    border: 1px solid var(--border-color); border-radius: 8px; cursor: pointer;
}
.lab-export button:hover { background: var(--nav-hover); }

/* Two-up control rows for the preprocessing and window pickers. */
.lab-step.lab-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.lab-step.lab-row2 > div { display: grid; gap: .35rem; }

/* Model comparison table: the honest ranking sits next to the numbers. */
.lab-models { margin-top: 1.1rem; border: 1px solid var(--border-color); border-radius: 11px; overflow: hidden; }
.lab-models h3 { font-size: .8rem; font-weight: 800; padding: .7rem .9rem; margin: 0; background: var(--surface-subtle); border-bottom: 1px solid var(--border-color); }
.lab-models table { width: 100%; border-collapse: collapse; font-size: .74rem; }
.lab-models th, .lab-models td { padding: .5rem .9rem; text-align: left; border-bottom: 1px solid var(--border-color); }
.lab-models th { font-size: .64rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.lab-models tr:last-child td { border-bottom: 0; }
.lab-models tr.is-best td { background: rgba(22,105,76,.09); font-weight: 700; }
.lab-models tr.is-selected td { outline: 2px solid var(--accent-info); outline-offset: -2px; }
.lab-models .lab-tag { font-size: .6rem; font-weight: 800; letter-spacing: .05em; padding: .12rem .4rem; border-radius: 4px; margin-left: .35rem; }
.lab-models .lab-tag.best { background: var(--accent-success); color: var(--text-on-fill); }
.lab-models .lab-tag.sel { background: var(--accent-info); color: var(--text-on-fill); }

.lab-diag { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); gap: .7rem; margin-top: 1rem; }
.lab-diag > div { border: 1px solid var(--border-color); border-radius: 10px; padding: .7rem .85rem; }
.lab-diag dt { font-size: .62rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.lab-diag dd { margin: .25rem 0 0; font-size: .78rem; line-height: 1.5; }

/* Advanced methods panel: each method is a card that also shows its own refusal. */
.lab-advanced { margin-top: 1.15rem; }
.lab-advanced > h3 { font-size: .85rem; font-weight: 800; margin-bottom: .7rem; }
.lab-adv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px,1fr)); gap: .8rem; }
.lab-adv-card { border: 1px solid var(--border-color); border-radius: 11px; padding: .85rem .95rem; background: var(--bg-card); }
.lab-adv-card h4 { font-size: .76rem; font-weight: 800; margin: 0 0 .5rem; }
.lab-adv-card dl { display: grid; gap: .4rem; margin: 0; }
.lab-adv-card dt { font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.lab-adv-card dd { margin: .1rem 0 0; font-size: .8rem; font-weight: 700; }
.lab-adv-note { font-size: .66rem; line-height: 1.55; color: var(--text-muted); margin-top: .6rem; }
.lab-adv-skip { font-size: .74rem; line-height: 1.55; color: var(--text-secondary); margin: 0; }
.lab-adv-limits { margin: .6rem 0 0; padding-left: 1rem; display: grid; gap: .3rem; }
.lab-adv-limits li { font-size: .66rem; line-height: 1.5; color: var(--text-secondary); }

/* Second series picker: the entity select sits directly under its indicator select. */
.lab-step .lab-mt { margin-top: .5rem; }

/* ==========================================================================
   Analysis report
   The findings list and the narrative are styled apart on purpose: one is
   computed locally and reproducible, the other is written by a language model
   from that list. A reader should be able to tell which is which at a glance.
   ========================================================================== */
.lab-report {
    margin-top: 1.4rem;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    background: var(--bg-card);
    padding: 1.1rem 1.2rem;
}
.lab-report-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.lab-report h3 { font-size: .95rem; margin: 0; }
.lab-report-actions { display: flex; gap: .45rem; }
.lab-report-actions button {
    font: inherit;
    font-size: .7rem;
    font-weight: 700;
    padding: .35rem .7rem;
    border-radius: 7px;
    border: 1px solid var(--border-color);
    background: var(--surface-subtle);
    color: var(--text-on-surface);
    cursor: pointer;
}
.lab-report-actions button:hover:not(:disabled) { border-color: var(--primary); }
.lab-report-actions button:disabled { opacity: .6; cursor: default; }
.lab-report-sub { font-size: .68rem; color: var(--text-on-surface-soft); margin: .3rem 0 .9rem; }

.lab-findings { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.lab-findings li {
    display: flex;
    gap: .6rem;
    padding: .55rem .7rem;
    border-radius: 9px;
    background: var(--surface-subtle);
    border-left: 3px solid var(--border-color);
}
.lab-findings li.is-uyari { border-left-color: var(--accent-warning); }
.lab-findings li.is-engel { border-left-color: var(--accent-danger); }
.lab-findings li.is-saglama { border-left-color: var(--accent-success); }
.lab-findings li.is-egilim, .lab-findings li.is-belirsizlik { border-left-color: var(--accent-info); }
.lab-f-icon { flex-shrink: 0; font-size: .78rem; color: var(--text-on-surface-soft); line-height: 1.5; }
.lab-findings strong { display: block; font-size: .74rem; }
.lab-findings p { margin: .15rem 0 0; font-size: .72rem; line-height: 1.55; color: var(--text-on-surface-soft); }

.lab-narrative {
    margin-top: 1rem;
    padding: .85rem 1rem;
    border-radius: 10px;
    border: 1px dashed var(--border-color);
    background: transparent;
}
.lab-narrative p { font-size: .76rem; line-height: 1.7; margin: 0 0 .6rem; }
.lab-narrative p:last-child { margin-bottom: 0; }
.lab-narrative-tag { font-size: .66rem !important; color: var(--text-on-surface-soft); border-bottom: 1px solid var(--border-color); padding-bottom: .5rem; }
.lab-narrative-warn { font-size: .7rem !important; color: var(--accent-danger); }
.lab-narrative.is-missing p { font-size: .7rem; color: var(--text-on-surface-soft); }
.lab-report-engine { font-size: .64rem; color: var(--text-on-surface-soft); margin-top: .9rem; }

/* ---- GOMD antetli rapor · yazdırma ve PDF ------------------------------
   Belgeyi ai_lab.js kuruyor: sonuç panelinin kopyası + antet + veri eki.
   Ekranda gizli durur, yalnız kâğıda çıkar. */
#labPrintDoc { display: none; }

@media print {
    /* Karanlık temada basılırsa sayfa simsiyah çıkardı; baskı için açık palet
       zorlanıyor. Renkler burada sabit yazılı, çünkü tema değişkenleri
       kullanıcının ekran seçimine bağlı. */
    :root {
        --bg-card: #FFFFFF;
        --surface-subtle: #F3F6F9;
        --input-bg: #FFFFFF;
        --nav-hover: #F3F6F9;
        --border-color: #C7D2DC;
        --text-primary: #16212C;
        --text-secondary: #53606E;
        --text-muted: #5C6875;
        --text-on-surface: #16212C;
        --text-on-surface-soft: #53606E;
        --text-on-fill: #FFFFFF;
        --primary: #0A4E70;
        --primary-hover: #0A4E70;
        --primary-rgb: 10, 78, 112;
        --accent-info: #0A5670;
        --accent-success: #16694C;
        --accent-warning: #8A5600;
        --accent-danger: #A62834;
        --accent-violet: #5B3E9B;
    }

    @page { size: A4 portrait; margin: 14mm 13mm 16mm; }

    html, body {
        background: #FFFFFF !important;
        color: #16212C !important;
        font-size: 9.2pt;
        line-height: 1.42;
    }
    body > *:not(#labPrintDoc) { display: none !important; }
    #labPrintDoc {
        display: block !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    #labPrintDoc a { color: #0A4E70; text-decoration: none; }

    /* --- antet ---------------------------------------------------------- */
    .lab-print-head {
        border-bottom: 1.2pt solid #0A4E70;
        padding-bottom: 4mm;
        margin-bottom: 5mm;
    }
    .lab-print-brand { display: flex; align-items: center; gap: 5mm; }
    .lab-print-logo { height: 13mm; width: auto; }
    .lab-print-pru { height: 11mm; width: auto; margin-left: auto; }
    .lab-print-org { font-size: 7.4pt; color: #53606E; line-height: 1.5; }
    .lab-print-kind {
        font-size: 8.4pt;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: #0A4E70;
        margin: 4.5mm 0 1mm;
        font-weight: 700;
    }
    .lab-print-title {
        font-size: 14pt;
        line-height: 1.25;
        margin: 0 0 3.5mm;
        color: #16212C;
        font-weight: 700;
    }
    .lab-print-title span { font-weight: 400; color: #53606E; font-size: 11pt; }
    .lab-print-facts {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1mm 7mm;
        margin: 0;
    }
    .lab-print-fact {
        display: flex;
        gap: 2.5mm;
        border-bottom: .2pt dotted #C7D2DC;
        padding-bottom: .7mm;
        font-size: 8pt;
    }
    .lab-print-fact dt { color: #53606E; min-width: 33mm; flex: none; }
    .lab-print-fact dd { margin: 0; font-weight: 600; color: #16212C; }

    /* --- gövde: sonuç panelinin kopyası ---------------------------------- */
    .lab-print-body .lab-panel,
    .lab-print-body .lab-report { border: 0; padding: 0; background: none; }
    .lab-print-chart {
        width: 100%;
        height: auto;
        border: .3pt solid #C7D2DC;
        border-radius: 2pt;
    }

    /* Bir kart sayfanın ortasından bölünmesin. */
    .lab-verdict, .lab-figure, .lab-chart-wrap, .lab-card, .lab-models,
    .lab-scenarios, .lab-diagnostics, .lab-advanced, .lab-limits, .lab-prov,
    .lab-narrative, .lab-agreement, .lab-debate, .lab-plan, .lab-source,
    .lab-print-head, .lab-print-foot, tr, thead, figure {
        break-inside: avoid;
        page-break-inside: avoid;
    }
    h2, h3, h4 { break-after: avoid; page-break-after: avoid; }

    /* --- tablolar -------------------------------------------------------- */
    #labPrintDoc table {
        width: 100%;
        border-collapse: collapse;
        font-size: 8pt;
        margin: 2mm 0 4mm;
    }
    #labPrintDoc th, #labPrintDoc td {
        border: .3pt solid #C7D2DC;
        padding: .9mm 1.4mm;
        text-align: left;
        vertical-align: top;
    }
    #labPrintDoc th { background: #F3F6F9; font-weight: 600; }
    /* Uzun tablolar sayfa aşarken başlık her sayfada yinelensin. */
    #labPrintDoc thead { display: table-header-group; }
    #labPrintDoc tfoot { display: table-footer-group; }

    /* --- veri eki -------------------------------------------------------- */
    .lab-print-appendix {
        break-before: page;
        page-break-before: always;
    }
    .lab-print-appendix h2 {
        font-size: 11pt;
        color: #0A4E70;
        margin: 0 0 1.5mm;
    }
    .lab-print-appendix table { font-size: 7pt; }
    .lab-print-appendix th, .lab-print-appendix td { padding: .5mm 1mm; }
    .lab-print-num { text-align: right !important; font-variant-numeric: tabular-nums; }
    .lab-print-note { font-size: 7.6pt; color: #53606E; margin: 0 0 2mm; }

    /* --- altbilgi -------------------------------------------------------- */
    /* Genel footer kurali koyu zemin boyayip metin degiskenlerini ters
       cevirir; bu blok <footer> oldugu icin onu kapiyordu. Baski icin
       hepsi geri aliniyor. */
    .lab-print-foot {
        border-top: .6pt solid #C7D2DC;
        margin-top: 5mm;
        padding: 2.5mm 0 0;
        font-size: 7.4pt;
        text-align: left;
        background: none !important;
        color: #53606E;
        --text-primary: #16212C;
        --text-secondary: #53606E;
        --text-muted: #5C6875;
    }
    .lab-print-foot p { margin: .4mm 0; }
    .lab-print-stamp { color: #0A4E70; font-weight: 600; letter-spacing: .04em; }
}

/* Source panel under a series picker: where this data actually comes from. */
.lab-source {
    margin-top: .5rem;
    padding: .55rem .7rem;
    border-radius: 9px;
    background: var(--surface-subtle);
    border: 1px solid var(--border-color);
}
.lab-source-row {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    font-size: .67rem;
    line-height: 1.7;
}
.lab-source-row span { color: var(--text-on-surface-soft); flex-shrink: 0; }
.lab-source-row strong { text-align: right; font-weight: 700; overflow-wrap: anywhere; }
.lab-source-row code {
    font-size: .62rem;
    text-align: right;
    color: var(--text-on-surface-soft);
    overflow-wrap: anywhere;
}

/* Two-provider overlay chart. Each series keeps its own axis unless the units match. */
.lab-compare-chart {
    margin: .8rem 0 1rem;
    padding: .8rem;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    background: var(--bg-card);
}
.lab-compare-chart canvas { width: 100%; display: block; }
.lab-swatch.is-dashed {
    background-image: repeating-linear-gradient(90deg, currentColor 0 4px, transparent 4px 7px);
}

/* ==========================================================================
   Recommendations
   Ranked by how much they change the reading, and each carries the measured
   value that triggered it. Where a suggestion maps to a control on the page it
   becomes a button, because the point of "aggregate monthly" is to do it.
   ========================================================================== */
.lab-suggest { margin-top: 1.1rem; }
.lab-suggest h4 { font-size: .82rem; margin: 0 0 .2rem; }
.lab-suggest-list { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; counter-reset: oneri; }
.lab-suggest-list li {
    padding: .6rem .75rem;
    border-radius: 10px;
    background: var(--surface-subtle);
    border-left: 3px solid var(--border-color);
}
.lab-suggest-list li.is-high { border-left-color: var(--accent-warning); }
.lab-suggest-list li.is-medium { border-left-color: var(--accent-info); }
.lab-suggest-head { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.lab-suggest-head strong { font-size: .75rem; }
.lab-suggest-tag {
    flex-shrink: 0;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--text-on-surface-soft);
}
.lab-suggest-list p { margin: .2rem 0 0; font-size: .72rem; line-height: 1.55; color: var(--text-on-surface-soft); }
.lab-suggest-ev { font-size: .63rem !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.lab-suggest-do, .lab-advice-actions button {
    margin-top: .5rem;
    font: inherit;
    font-size: .68rem;
    font-weight: 700;
    padding: .32rem .68rem;
    border-radius: 7px;
    border: 1px solid var(--primary);
    background: transparent;
    color: var(--text-on-surface);
    cursor: pointer;
}
.lab-suggest-do:hover:not(:disabled), .lab-advice-actions button:hover:not(:disabled) {
    background: rgba(var(--primary-rgb), 0.10);
}
.lab-advice-actions button:disabled { opacity: .6; cursor: default; }
.lab-advice-actions { margin-top: .8rem; }
.lab-advice-list { margin: .5rem 0 0; padding-left: 1.1rem; }
.lab-advice-list li { font-size: .74rem; line-height: 1.65; margin-bottom: .5rem; }

/* ==========================================================================
   AI panel at the foot of the setup form
   Before the run it says what the chosen series can and cannot answer; after
   the run the report gains a policy reading. The two are styled apart from the
   findings because a policy sentence carries an authority a statistic does not.
   ========================================================================== */
.lab-ai-panel {
    margin-top: 1.1rem;
    padding: .8rem .85rem;
    border: 1px dashed var(--border-color);
    border-radius: 12px;
    background: var(--surface-subtle);
}
.lab-ai-panel h3 { font-size: .78rem; margin: 0; }
.lab-ai-sub { font-size: .66rem; color: var(--text-on-surface-soft); margin: .25rem 0 .5rem; line-height: 1.5; }
.lab-pre ul { margin: .2rem 0 0; padding-left: 1rem; }
.lab-pre li { font-size: .68rem; line-height: 1.55; margin-bottom: .28rem; color: var(--text-on-surface-soft); }
.lab-pre-notes li { list-style: none; margin-left: -1rem; }
.lab-pre-avoid, .lab-pre-do { margin-top: .55rem; }
.lab-pre-avoid strong, .lab-pre-do strong {
    display: block;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom: .15rem;
}
.lab-pre-avoid strong { color: var(--accent-danger); }
.lab-pre-do strong { color: var(--accent-success); }

.lab-cop h5 {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .05em;
    margin: .9rem 0 .3rem;
    color: var(--accent-info);
}
.lab-cop h5:first-of-type { margin-top: .4rem; }
.lab-cop-flag {
    font-size: .7rem !important;
    font-weight: 700;
    color: var(--accent-warning);
    border-left: 3px solid var(--accent-warning);
    padding-left: .55rem;
}

/* Which recorded frames the policy text was allowed to cite. */
.lab-cop-frames {
    margin: .7rem 0;
    padding: .6rem .75rem;
    border-radius: 9px;
    background: var(--surface-subtle);
}
.lab-cop-frames > strong {
    display: block;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--text-on-surface-soft);
    margin-bottom: .3rem;
}
.lab-cop-frames ul { margin: 0; padding-left: 1rem; }
.lab-cop-frames li { font-size: .69rem; line-height: 1.55; }
.lab-cop-rev li { font-size: .64rem; color: var(--text-on-surface-soft); }
.lab-cop-match { font-size: .6rem; color: var(--text-on-surface-soft); }

/* --------------------------------------------------------- spatial agreement
   One chip per location. Direction is carried by hue and significance by fill,
   so the strip can be read at a glance without a legend: a row of solid chips
   leaning one way is a trend that does not rest on a single station. */
.lab-agree-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 14px;
}

.lab-agree-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 4px 9px;
    border-radius: 3px;
    border: 1px solid var(--border-color);
    background: transparent;
    font-size: .78rem;
    line-height: 1.3;
    color: var(--text-secondary);
    max-width: 100%;
}

.lab-agree-chip b {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--text-primary);
}

.lab-agree-chip.is-up    { border-color: rgba(217, 119, 6, .55); }
.lab-agree-chip.is-down  { border-color: rgba(14, 165, 233, .55); }
.lab-agree-chip.is-flat  { border-color: var(--border-color); }
.lab-agree-chip.is-none  { opacity: .5; font-style: italic; }

/* Filled = distinguishable from zero. The unfilled chips are the point of the
   strip as much as the filled ones. */
.lab-agree-chip.is-sig.is-up   { background: rgba(217, 119, 6, .14); border-color: rgba(217, 119, 6, .9); }
.lab-agree-chip.is-sig.is-down { background: rgba(14, 165, 233, .14); border-color: rgba(14, 165, 233, .9); }
/* ------------------------------------------------------------- parameter profile
   The draft state is a border and a badge rather than a colour wash: an unverified
   profile is still worth reading, it just must not be mistaken for platform fact. */
.lab-profile {
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--accent-info);
    border-radius: 4px;
    padding: 12px 14px;
    margin-bottom: 12px;
}

.lab-profile.is-draft { border-left-color: var(--accent-warning); }

.lab-profile-head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.lab-profile-badge {
    font-size: .64rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 2px;
    border: 1px solid var(--accent-warning);
    color: var(--accent-warning);
}

.lab-profile-badge.is-ok { border-color: var(--accent-success); color: var(--accent-success); }

.lab-profile-note {
    margin: 8px 0 0;
    font-size: .8rem;
    line-height: 1.5;
    color: var(--text-muted);
}
/* ------------------------------------------------------------------- debate log
   The cited diagnostic ids are shown as chips, and a chip is filled only when the
   engine agrees the diagnostic is breached. That is the whole point of the panel:
   the model may point, the engine decides. */
.lab-debate {
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--accent-violet, var(--accent-info));
    border-radius: 4px;
    padding: 14px 16px;
    margin-top: 14px;
}

.lab-verdict-tag {
    font-size: .66rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 2px;
    border: 1px solid var(--accent-warning);
    color: var(--accent-warning);
    margin-left: 8px;
}

.lab-round { margin-top: 12px; }

.lab-round-head {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: 5px;
}

.lab-round-claim {
    margin: 0 0 8px;
    font-size: .9rem;
    line-height: 1.6;
    color: var(--text-secondary);
    white-space: pre-line;
}

.lab-objections { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }

.lab-objection {
    border-left: 2px solid var(--border-color);
    padding: 6px 0 6px 11px;
    font-size: .9rem;
    line-height: 1.55;
}

.lab-objection.is-material { border-left-color: var(--accent-danger); }
.lab-objection.is-minor    { border-left-color: var(--accent-warning); }
.lab-objection.is-dropped  { border-left-color: var(--border-color); color: var(--text-muted); font-style: italic; }

.lab-obj-sev {
    display: inline-block;
    font-size: .62rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-weight: 700;
    margin-right: 8px;
    color: var(--accent-danger);
}

.lab-objection.is-minor .lab-obj-sev { color: var(--accent-warning); }

.lab-obj-cites { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 5px; }

.lab-cite {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .7rem;
    padding: 1px 6px;
    border-radius: 2px;
    border: 1px solid var(--border-color);
    color: var(--text-muted);
}

.lab-cite.is-breached {
    border-color: var(--accent-danger);
    color: var(--accent-danger);
    background: rgba(220, 38, 38, .08);
}
/* Reproducibility receipt: monospace so it can be read aloud and typed back. */
.lab-receipt {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .78rem;
    letter-spacing: .04em;
    padding: 1px 6px;
    border-radius: 2px;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
}

/* ---------------------------------------------------------------- method plan
   An ordered list because a plan IS a sequence: preprocessing before model,
   model before which diagnostic to read. The numbering carries that, it is not
   decoration. */
.lab-plan {
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--accent-success);
    border-radius: 4px;
    padding: 12px 14px;
    margin-top: 10px;
}

.lab-plan-actions { margin-top: 10px; }

.lab-plan-list { margin: 8px 0 10px; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; }

.lab-plan-list li { font-size: .88rem; line-height: 1.5; }
.lab-plan-list li.is-dropped { color: var(--text-muted); font-style: italic; }

.lab-plan-act {
    font-weight: 700;
    margin-right: 7px;
    color: var(--text-primary);
}

.lab-plan-list code {
    font-size: .8rem;
    padding: 1px 6px;
    border-radius: 2px;
    border: 1px solid var(--border-color);
    margin-right: 8px;
}

.lab-plan-why { color: var(--text-secondary); }
/* ---- Seri arama kutusu ------------------------------------------------
   Katalog 332 seriye çıkınca düz açılır liste kullanılamaz oldu; kutu
   listeyi ada, birime, kuruma ve gösterge anahtarına göre süzüyor. */
.lab-search {
    width: 100%;
    background: var(--input-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: .45rem .65rem;
    font-size: .82rem;
    color: var(--text-primary);
    margin-bottom: .4rem;
    font-family: inherit;
}
.lab-search:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .15);
}
.lab-search-count {
    font-size: .7rem;
    color: var(--text-muted);
    margin: 0 0 .35rem;
}

/* Ocean research workspace. Screen-only so the signed report keeps its print layout. */
@media screen {
    .lab-page { --lab-gap: 22px; --lab-ink: #092c3e; --lab-ocean: #087e83; --lab-mint: #e7f4f1; }
    .lab-page .main-content { min-width: 0; }
    .lab-page .lab-hero {
        display: flex; justify-content: space-between; align-items: center; gap: 28px;
        padding: 30px 32px; margin-bottom: 18px; overflow: hidden; position: relative;
        border: 0; border-radius: 20px; background: var(--lab-ink); color: #fff;
        box-shadow: 0 12px 28px rgba(9,44,62,.08);
    }
    .lab-page .lab-hero::after {
        content: ""; position: absolute; width: 310px; height: 310px; right: -130px; top: -160px;
        border: 1px solid rgba(115,207,191,.2); border-radius: 50%;
        box-shadow: 0 0 0 45px rgba(115,207,191,.035),0 0 0 90px rgba(115,207,191,.025);
        pointer-events: none;
    }
    .lab-page .lab-hero-copy, .lab-page .lab-hero-links { position: relative; z-index: 1; min-width: 0; }
    .lab-page .lab-hero .lab-eyebrow { color: #a5ded6; font-size: 11px; letter-spacing: .12em; font-weight: 700; }
    .lab-page .lab-hero h1 { color: #fff; font-size: clamp(25px,2.5vw,34px); font-weight: 650; line-height: 1.18; letter-spacing: -.045em; margin: 12px 0 10px; }
    .lab-page .lab-hero-description { color: #c7dadd; font-size: 14px; line-height: 1.65; max-width: 62ch; }
    .lab-page .lab-hero-links { flex: 0 0 auto; display: grid; justify-items: end; gap: 18px; }
    .lab-workspace-name { border: 1px solid #37616a; border-radius: 30px; padding: 7px 13px; color: #c6eeea; font-size: 12px; font-weight: 650; }
    .lab-page .lab-hero-links a { display: flex; align-items: center; gap: 14px; color: #fff; font-size: 12px; font-weight: 600; text-decoration: none; }
    .lab-page .lab-hero-links a:hover { color: #a5ded6; }
    .lab-workflow { list-style: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 0; margin: 0 0 24px; }
    .lab-workflow li { display: flex; gap: 11px; align-items: center; padding: 12px 20px; border-right: 1px solid var(--border-color); min-width: 0; }
    .lab-workflow li:first-child { padding-left: 2px; }
    .lab-workflow li:last-child { border-right: 0; }
    .lab-workflow-number { display: grid; place-items: center; width: 33px; height: 33px; flex: 0 0 33px; border: 1px solid var(--border-color); border-radius: 50%; font-size: 11px; font-weight: 700; color: var(--primary); background: var(--bg-card); }
    .lab-workflow strong { display: block; font-size: 12px; font-weight: 650; color: var(--text-primary); line-height: 1.45; }
    .lab-workflow small { display: block; font-size: 11px; color: var(--text-secondary); margin-top: 3px; line-height: 1.45; }
    .lab-page .lab-grid { grid-template-columns: minmax(300px,360px) minmax(0,1fr); gap: var(--lab-gap); }
    .lab-page .lab-panel { min-width: 0; border-radius: 18px; padding: 22px; background: var(--bg-card); border: 1px solid var(--border-color); box-shadow: 0 5px 18px rgba(9,44,62,.025); }
    .lab-page .lab-grid > .lab-panel + .lab-panel { margin-top: 0; }
    .lab-panel-heading { display: flex; align-items: flex-start; gap: 11px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--border-color); }
    .lab-page .lab-panel-heading h2 { font-size: 16px; font-weight: 650; line-height: 1.4; letter-spacing: -.025em; margin: 0; }
    .lab-page .lab-panel-heading p { font-size: 11px; color: var(--text-secondary); line-height: 1.6; margin-top: 4px; }
    .lab-section-icon { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 11px; background: var(--surface-subtle); color: var(--primary); }
    .lab-control-group + .lab-control-group { margin-top: 24px; border-top: 1px solid var(--border-color); padding-top: 22px; }
    .lab-page .lab-group-title { display: flex; align-items: center; gap: 9px; margin: 0 0 17px; color: var(--text-primary); font-size: 13px; font-weight: 650; }
    .lab-group-title > span { color: var(--primary); font-size: 11px; font-weight: 700; letter-spacing: .02em; }
    .lab-page .lab-step { gap: 7px; margin-bottom: 16px; }
    .lab-page .lab-step label { text-transform: none; letter-spacing: 0; font-size: 12px; line-height: 1.4; font-weight: 600; color: var(--text-secondary); }
    .lab-page .lab-step label:not(:first-child) { margin-top: 7px; }
    .lab-page .lab-step input, .lab-page .lab-step select { min-height: 44px; font-size: 13px; padding: 10px 12px; border-radius: 10px; background: var(--input-bg); line-height: 1.4; }
    .lab-page .lab-step.lab-row2 { gap: 12px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .lab-page .lab-row2 > div { min-width: 0; align-content: start; }
    .lab-page .lab-hint, .lab-page .lab-search-count { font-size: 11px; line-height: 1.6; }
    .lab-page .lab-hint:empty { display: none; }
    .lab-page .lab-source { padding: 11px 12px; border: 0; border-left: 2px solid var(--primary); border-radius: 0 9px 9px 0; }
    .lab-page .lab-source-row { font-size: 11px; gap: 10px; }
    .lab-page .lab-source-row code { font-size: 10px; }
    .lab-disclosure { margin-bottom: 18px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--bg-card); }
    .lab-disclosure summary { position: relative; cursor: pointer; padding: 13px 34px 13px 13px; font-size: 12px; font-weight: 650; color: var(--text-primary); list-style: none; line-height: 1.5; }
    .lab-disclosure summary::-webkit-details-marker { display: none; }
    .lab-disclosure summary::after { content: "+"; position: absolute; right: 13px; top: 14px; font-size: 16px; font-weight: 400; color: var(--primary); }
    .lab-disclosure[open] summary::after { content: "−"; }
    .lab-disclosure summary span { display: block; font-size: 10px; color: var(--text-secondary); font-weight: 400; margin-top: 3px; }
    .lab-page .lab-disclosure-body { padding: 0 13px 13px; margin-bottom: 0; }
    .lab-page .lab-disclosure-body > .lab-step:last-child { margin-bottom: 0; }
    .lab-disclosure summary:focus-visible { outline: 3px solid var(--accent-info); outline-offset: 2px; border-radius: 10px; }
    .lab-page .lab-ai-panel { border-style: solid; background: var(--surface-subtle); padding: 14px; border-radius: 12px; }
    .lab-page .lab-ai-panel h3 { font-size: 12px; margin-bottom: 7px; }
    .lab-page .lab-ai-panel:has(.lab-pre:empty) { display: none; }
    .lab-page .lab-pre li { font-size: 11px; line-height: 1.65; }
    .lab-run-area { margin-top: 20px; }
    .lab-page .lab-run { min-height: 48px; border-radius: 11px; display: flex; justify-content: center; align-items: center; gap: 20px; font-size: 13px; font-weight: 650; background: var(--primary); border-color: var(--primary); color: var(--text-on-fill); transition: background .15s ease,box-shadow .15s ease; }
    .lab-page .lab-run:not(:disabled):hover { background: var(--primary-hover); box-shadow: 0 4px 14px rgba(8,126,131,.16); }
    .lab-page .lab-run:disabled { opacity: .55; }
    .lab-run-area > p { font-size: 10px; text-align: center; line-height: 1.6; color: var(--text-secondary); margin-top: 9px; }
    .lab-page #labResultPanel { padding: 24px; }
    .lab-page .lab-empty { padding: 35px 14px 45px; gap: 13px; min-height: 470px; align-content: center; }
    .lab-empty-art { width: min(100%,360px); padding: 10px; margin-bottom: 8px; border-radius: 22px; background: var(--surface-subtle); }
    .lab-empty-art svg { display: block; width: 100%; height: auto; }
    .lab-art-grid { stroke: var(--border-color); stroke-width: .7; stroke-dasharray: 3 5; }
    .lab-art-area { fill: rgba(8,126,131,.07); }
    .lab-art-line { stroke: var(--primary); stroke-width: 2.7; stroke-linecap: round; }
    .lab-art-projection { stroke: var(--primary); stroke-width: 2.2; stroke-dasharray: 5 6; stroke-linecap: round; opacity: .45; }
    .lab-art-dot { fill: var(--bg-card); stroke: var(--primary); stroke-width: 2.5; }
    .lab-empty-kicker { color: var(--primary); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
    .lab-page .lab-empty h3 { font-size: clamp(21px,2vw,27px); line-height: 1.25; font-weight: 600; letter-spacing: -.035em; color: var(--text-primary); }
    .lab-page .lab-empty > p { font-size: 13px; line-height: 1.8; max-width: 49ch; }
    .lab-empty-deliverables { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-top: 16px; }
    .lab-empty-deliverables > span { display: inline-flex; align-items: center; gap: 6px; color: var(--text-secondary); font-size: 11px; line-height: 1.5; }
    .lab-result-footnote { display: flex; align-items: flex-start; gap: 9px; border-top: 1px solid var(--border-color); padding-top: 17px; margin-top: 20px; color: var(--text-secondary); }
    .lab-result-footnote > .gicon { flex: 0 0 15px; margin-top: 2px; }
    .lab-result-footnote > p { font-size: 11px; line-height: 1.7; }
    .lab-page .lab-footer { --text-muted: var(--text-muted-base); --text-secondary: var(--text-secondary-base); --text-on-surface-soft: var(--text-secondary-base); text-align: center; padding: 24px 0 4px; font-size: 11px; line-height: 1.7; color: var(--text-secondary); background: transparent; }
    .lab-page .lab-headline { gap: 12px; }
    .lab-page .lab-figure { border-radius: 13px; padding: 17px; border-color: var(--border-color); }
    .lab-page .lab-figure .lab-figure-label { font-size: 10px; line-height: 1.5; }
    .lab-page .lab-figure .lab-figure-value { font-size: 25px; margin-top: 8px; letter-spacing: -.04em; }
    .lab-page .lab-figure .lab-figure-note { font-size: 11px; line-height: 1.6; }
    .lab-page .lab-chart-wrap, .lab-page .lab-compare-chart { border-radius: 14px; padding: 16px; margin-bottom: 20px; }
    .lab-page .lab-chart-wrap canvas { height: 360px; }
    .lab-page .lab-scenario, .lab-page .lab-adv-card, .lab-page .lab-diag > div { border-radius: 13px; padding: 16px; }
    .lab-page .lab-scenario h3, .lab-page .lab-adv-card h4 { font-size: 13px; }
    .lab-page .lab-scenario dt, .lab-page .lab-adv-card dt, .lab-page .lab-diag dt { font-size: 10px; line-height: 1.5; }
    .lab-page .lab-scenario dd, .lab-page .lab-adv-card dd, .lab-page .lab-diag dd { font-size: 13px; line-height: 1.6; }
    .lab-page .lab-adv-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 12px; }
    .lab-page .lab-adv-note, .lab-page .lab-adv-limits li, .lab-page .lab-adv-skip { font-size: 11px; line-height: 1.7; }
    .lab-page .lab-models { overflow-x: auto; border-radius: 13px; }
    .lab-page .lab-models table { min-width: 420px; font-size: 12px; }
    .lab-page .lab-models th { font-size: 10px; }
    .lab-page .lab-models td, .lab-page .lab-models th { padding: 10px 13px; }
    .lab-page .lab-report { padding: 19px; border-radius: 15px; }
    .lab-page .lab-report-head { gap: 12px; }
    .lab-page .lab-report-actions { flex-wrap: wrap; }
    .lab-page .lab-report-actions button, .lab-page .lab-export button { min-height: 38px; font-size: 11px; border-radius: 9px; padding: 8px 11px; }
    .lab-page .lab-findings li { padding: 12px 13px; border-radius: 9px; gap: 10px; }
    .lab-page .lab-findings strong { font-size: 12px; line-height: 1.5; }
    .lab-page .lab-findings p, .lab-page .lab-narrative p, .lab-page .lab-limits li, .lab-page .lab-verdict p { font-size: 12px; line-height: 1.75; }
    .lab-page .lab-profile, .lab-page .lab-debate, .lab-page .lab-plan, .lab-page .lab-verdict, .lab-page .lab-limits { border-radius: 12px; padding: 16px; }
    .lab-page .lab-report-sub, .lab-page .lab-report-engine, .lab-page .lab-prov { font-size: 11px; line-height: 1.7; }
    .lab-page .lab-profile-badge, .lab-page .lab-verdict-tag, .lab-page .lab-agree-chip { border-radius: 6px; }
}
@media screen and (min-width: 1600px) {
    .lab-page .lab-grid { grid-template-columns: minmax(320px,390px) minmax(0,1fr); }
}
@media screen and (max-width: 1199px) {
    .lab-page .lab-grid { grid-template-columns: minmax(280px,320px) minmax(0,1fr); gap: 16px; }
    .lab-page .lab-panel, .lab-page #labResultPanel { padding: 18px; }
    .lab-workflow li { padding-right: 12px; padding-left: 12px; }
    .lab-workflow small { font-size: 10px; }
    .lab-page .lab-hero { padding: 25px; }
    .lab-page .lab-hero-links { display: none; }
}
@media screen and (max-width: 767px) {
    .lab-page .lab-grid { grid-template-columns: minmax(0,1fr); }
    .lab-page .lab-hero { padding: 23px 20px; border-radius: 16px; }
    .lab-page .lab-hero h1 { font-size: 26px; }
    .lab-page .lab-hero-description { font-size: 13px; }
    .lab-workflow { display: flex; overflow-x: auto; gap: 10px; padding: 0 0 7px; margin-bottom: 15px; -webkit-overflow-scrolling: touch; }
    .lab-workflow li, .lab-workflow li:first-child { flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--bg-card); }
    .lab-workflow li:last-child { border-right: 1px solid var(--border-color); }
    .lab-workflow small { display: none; }
    .lab-workflow strong { font-size: 11px; white-space: nowrap; }
    .lab-workflow-number { width: 25px; height: 25px; flex-basis: 25px; border: 0; background: var(--surface-subtle); font-size: 10px; }
    .lab-page .lab-empty { min-height: 360px; padding: 20px 2px 30px; }
    .lab-page .lab-empty h3 { font-size: 24px; }
    .lab-page .lab-panel { border-radius: 15px; }
    .lab-page .lab-step input, .lab-page .lab-step select { font-size: 16px; }
    .lab-page .lab-chart-wrap canvas { height: 290px; }
    .lab-empty-deliverables { gap: 10px; }
    .lab-page .lab-report { padding: 13px; }
}
