/* RLT v14 — tool workbench layouts (voxel / trial / visualization / serial / cohort).
   Presentation-only: layout via CSS grid on existing containers; JS only adds .r14-x helper UI
   (KPI strip, sticky summary, empty states, group toggles). No controller element is moved or renamed. */
.r14 {--wb-gap:22px}
.r13-body.r14 :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=range]){min-height:48px;font-size:16px!important;border-radius:12px!important}
.r13-body.r14 input[type=range]{height:32px;accent-color:var(--r13-hot)}
.r13-body.r14 input[type=checkbox],.r13-body.r14 input[type=radio]{width:20px;height:20px;accent-color:var(--r13-hot)}
.r13-body.r14 label{font-weight:600;font-size:14px;color:var(--r13-text)}
.r13-body.r14 form button[type=submit]{min-height:56px;font-size:17px!important;font-weight:700!important;border-radius:14px!important;letter-spacing:-.01em}

/* ---- helper UI (.r14-x) ---- */
.r14-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 18px}
@media(min-width:700px){.r14-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.r14-kpi{background:var(--r13-ink,#0b0908);color:#efe9dd;border-radius:16px;padding:14px 16px 12px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.06)}
.r14-kpi::after{content:"";position:absolute;inset:auto -20% -60% auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(217,67,30,.35),transparent 70%)}
.r14-kpi small{display:block;font:500 11px var(--r13-mono);letter-spacing:.06em;text-transform:uppercase;color:#a69e90}
.r14-kpi b{display:block;font:700 clamp(26px,3.2vw,36px)/1.05 var(--r13-mono);letter-spacing:-.03em;margin-top:6px;color:#fff;font-variant-numeric:tabular-nums}
.r14-kpi b em{font-style:normal;font-size:.45em;color:#d9c9b4;margin-left:4px;letter-spacing:0}
.r14-kpi i{display:block;font:500 12px var(--r13-f);font-style:normal;color:#c9bfae;margin-top:4px}
.r14-kpi.hot b{color:#ff8a65}
.r14-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.r14-bar h3{font:800 20px var(--r13-f)!important;letter-spacing:-.02em;margin:0!important;color:var(--r13-text)!important}
.r14-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--r13-line);background:var(--r13-card);color:var(--r13-text);font:600 14px var(--r13-f);cursor:pointer}
.r14-btn:hover{border-color:var(--r13-hot);color:var(--r13-hot2)}
.r14-empty{display:grid;place-items:center;text-align:center;gap:12px;padding:34px 20px;border:1.5px dashed var(--r13-line);border-radius:20px;background:radial-gradient(80% 90% at 50% 0%,rgba(217,67,30,.07),transparent 70%)}
.r14-empty img{width:min(260px,70%);aspect-ratio:4/3;object-fit:cover;border-radius:16px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45)}
.r14-empty b{font:800 19px var(--r13-f);letter-spacing:-.02em;color:var(--r13-text)}
.r14-empty span{font-size:14px;color:var(--r13-mute);max-width:34ch}
.r14-sticky{position:fixed;left:10px;right:10px;bottom:10px;z-index:60;display:none;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:18px;background:rgba(11,9,8,.94);backdrop-filter:blur(12px);color:#efe9dd;box-shadow:0 18px 40px -12px rgba(0,0,0,.55)}
.r14-sticky.on{display:flex}
.r14-sticky .vals{display:flex;gap:14px;overflow-x:auto;flex:1;scrollbar-width:none}
.r14-sticky .vals span{white-space:nowrap;font:500 11px var(--r13-mono);color:#a69e90}
.r14-sticky .vals b{display:block;font:700 17px var(--r13-mono);color:#fff}
.r14-sticky a{flex:none;min-height:44px;display:inline-flex;align-items:center;padding:0 14px;border-radius:12px;background:var(--r13-hot);color:#fff!important;font:700 14px var(--r13-f);text-decoration:none}
@media(min-width:1100px){.r14-sticky{display:none!important}}
.r14-grouphead{cursor:pointer;display:flex!important;align-items:center;justify-content:space-between;gap:8px;user-select:none}
.r14-grouphead::after{content:"";width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s;opacity:.55;flex:none;margin-right:4px}
.r14-collapsed>.r14-grouphead::after{transform:rotate(-45deg)}
.r14-collapsed>:not(.r14-grouphead){display:none!important}
.r14-steps{display:flex;gap:6px;margin:0 0 16px;counter-reset:s}
.r14-steps span{flex:1;height:6px;border-radius:9px;background:var(--r13-line)}
.r14-steps span.on{background:var(--r13-hot)}
.r14-sec{font:600 12px var(--r13-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--r13-mute);margin:30px 0 12px;display:flex;align-items:center;gap:10px}
.r14-sec::after{content:"";flex:1;height:1px;background:var(--r13-line)}

/* ================= VOXEL DOSIMETRY ================= */
/* page order: workbench first, science/reference cards after */
.r14[data-page=voxel-dosimetry] .voxel-page>.grid{display:flex!important;flex-direction:column;gap:var(--wb-gap)}
.r14[data-page=voxel-dosimetry] .voxel-page>.grid>.right-panel{order:-1}
.r14[data-page=voxel-dosimetry] .voxel-page>.grid>.lg\:col-span-1{display:grid;grid-template-columns:1fr;gap:16px}
.r14[data-page=voxel-dosimetry] .voxel-page>.grid>.lg\:col-span-1>.glass-card{margin:0!important}
@media(min-width:900px){.r14[data-page=voxel-dosimetry] .voxel-page>.grid>.lg\:col-span-1{grid-template-columns:repeat(3,minmax(0,1fr))}}
.r14[data-page=voxel-dosimetry] .voxel-page>.mb-8{margin-bottom:18px!important}
.r14[data-page=voxel-dosimetry] .methodology-card{order:5}
/* workbench: inputs left, live results right */
@media(min-width:1100px){
 .r14-wb .calculator-tabs>.r14-wbtab{display:none!important}
 .r14-wb .calculator-container{display:grid!important;grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);gap:var(--wb-gap);align-items:start}
 .r14-wb .calculator-container>.r14-inpane{display:block!important;position:sticky;top:86px;max-height:calc(100vh - 100px);overflow:auto;scrollbar-width:thin;border-radius:24px}
 .r14-wb .calculator-container>.r14-outpane{display:block!important;min-height:520px}
 .r14-wb .calculator-container>.calculator-tab:not(.r14-inpane):not(.r14-outpane){grid-column:1/-1}
 .r14-wb .calculator-container>.calculator-tab.active:not(.r14-inpane):not(.r14-outpane){display:block!important}
 .r14-wb .r14-inpane>.glass-card,.r14-wb .r14-outpane>.glass-card{padding:24px!important}
 body:has(.r14-wb) main.container{max-width:1380px}
}
@media(max-width:1099px){.r14-wb form button[type=submit]{position:sticky;bottom:12px;z-index:5;box-shadow:0 14px 30px -10px rgba(217,67,30,.55)}}
.r14-wb .r14-outpane .glass-card{background:var(--r13-card)}
.r14-wb canvas{max-width:100%}
.r14-wb #chartSection .w-full,.r14-wb #resultsContent .w-full{min-height:300px}

/* print / export: results only */
@media print{
 header.fixed,.r13-hero,.r13-pn,footer,.r14-sticky,.r14-btn,.calculator-tabs,.r14-inpane,form,.voxel-page>.grid>.lg\:col-span-1,.methodology-card{display:none!important}
 body,.r13-body,.glass-card{background:#fff!important;color:#000!important;box-shadow:none!important}
 .r14-outpane,.calculator-tab.r14-outpane{display:block!important}
 .r14-kpi{background:#fff!important;color:#000!important;border:1px solid #999}.r14-kpi b,.r14-kpi small,.r14-kpi i{color:#000!important}
 canvas{max-width:100%!important;height:auto!important}
}
.r14[data-page=voxel-dosimetry] .voxel-page>.grid>.r14-sec{order:-1;margin:10px 0 -6px}
.r14-wb .calculator-container>.r14-inpane,.r14-wb .calculator-container>.r14-outpane{opacity:1!important;transform:none!important;animation:none!important;visibility:visible!important}
.r14[data-page=voxel-dosimetry] .voxel-page{display:flex;flex-direction:column}
.r14[data-page=voxel-dosimetry] .voxel-page>.mb-8{display:contents}
.r14[data-page=voxel-dosimetry] .voxel-page>.mb-8>*{order:1}
.r14[data-page=voxel-dosimetry] .voxel-page>.grid{order:2}
.r14[data-page=voxel-dosimetry] .voxel-page>.mb-8>.methodology-card{order:3;margin-top:16px!important}
/* mobile/tablet: stacked workbench (inputs → results), tabs only for secondary panels */
.r14-wb .calculator-tabs>.r14-wbtab{display:none!important}
.r14-wb .calculator-container>.r14-inpane,.r14-wb .calculator-container>.r14-outpane{display:block!important}
@media(max-width:1099px){.r14-wb .calculator-container{display:flex;flex-direction:column;gap:18px;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
 .r14-wb .r14-inpane>.glass-card,.r14-wb .r14-outpane>.glass-card{padding:20px 16px!important;border-radius:20px!important}}
.r14-wb .calculator-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:8px;scrollbar-width:none}
.r14-wb .calculator-tabs>button{flex:none}
/* ================= TRIAL SIMULATION ================= */
@media(min-width:1100px){.r14[data-page=trial-simulation] .r14-wb>.calculator-tabs{order:0}}
.r14[data-page=trial-simulation] .r14-outpane #survivalChartsGrid .relative{min-height:260px}
@media(min-width:1100px){.r14[data-page=trial-simulation] .r14-outpane #survivalChartsGrid{grid-template-columns:1fr 1fr!important}.r14[data-page=trial-simulation] .r14-outpane #survivalChartsGrid .relative{height:300px!important}}
.r14-outpane{scroll-margin-top:90px}
/* tab panes directly under the page root (trial-simulation style) */
.r14-wb.page-view{display:flex;flex-direction:column;gap:18px}
.r14-wb.page-view>.calculator-tab:not(.r14-inpane):not(.r14-outpane):not(.active){display:none!important}
.r14-wb.page-view>.calculator-tab{opacity:1!important}
.r14-wb.page-view>.calculator-tabs{margin:0!important}
@media(min-width:1100px){
 .r14-wb.page-view{display:grid!important;grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);gap:var(--wb-gap);align-items:start;max-width:1380px!important}
 .r14-wb.page-view>*{grid-column:1/-1}
 .r14-wb.page-view>.r14-inpane{grid-column:1;grid-row:3;position:sticky;top:86px;max-height:calc(100vh - 100px);overflow:auto;scrollbar-width:thin;border-radius:20px}
 .r14-wb.page-view>.r14-outpane{grid-column:2;grid-row:3;min-height:520px}
 .r14-wb.page-view>.calculator-tab.active:not(.r14-inpane):not(.r14-outpane){grid-row:4}
}
.r14-wb.page-view>.r14-outpane>.r14-steps,.r14-wb.page-view>.r14-outpane>.r14-bar{padding:0 4px}
.r14-wb.page-view>.r14-inpane,.r14-wb.page-view>.r14-outpane{display:block!important;opacity:1!important;transform:none!important;animation:none!important}
/* ================= VISUALIZATION — viewer stage ================= */
.r14-viz>.glass-card{padding:0!important;background:none!important;border:0!important;box-shadow:none!important;overflow:visible!important}
.r14-viz>.glass-card>.grid{display:flex!important;flex-direction:column;gap:18px}
.r14-viz .r14-stage{position:relative;background:radial-gradient(90% 80% at 50% 30%,#2a1810 0%,#120d0a 55%,#0b0908 100%)!important;border-radius:24px!important;border:1px solid rgba(255,255,255,.07);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);margin-bottom:0!important}
.r14-viz .viz-canvas-wrap{aspect-ratio:auto!important;height:62vh!important;min-height:380px!important;max-height:720px!important}
@media(max-width:1099px){
 .r14-viz .r14-stagecol{position:sticky;top:70px;z-index:4;margin:0 -16px;padding:0 0 8px;background:var(--r13-paper)}
 .r14-viz .r14-stage{border-radius:0 0 22px 22px!important}
 .r14-viz .viz-canvas-wrap{height:44vh!important;min-height:260px!important}
 .r14-viz .r14-stagecol>.grid{display:none}
 .r14-viz .r14-stagecol.r14-legend-open>.grid{display:grid}
}
@media(min-width:1100px){
 .r14-viz>.glass-card>.grid{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr)!important;gap:var(--wb-gap)!important}
 .r14-viz .r14-stagecol{position:sticky;top:86px}
 body:has(.r14-viz) main.container{max-width:1380px}
 .r14-viz.page-view{max-width:1380px!important}
}
.r14-clock{position:absolute;left:16px;top:14px;z-index:3;pointer-events:none;color:#efe9dd}
.r14-clock small{display:block;font:500 10px var(--r13-mono);letter-spacing:.1em;text-transform:uppercase;color:#a69e90}
.r14-clock b{display:block;font:700 clamp(30px,4vw,46px)/1 var(--r13-mono);letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums}
.r14-clock b em{font-style:normal;font-size:.42em;color:#ff8a65;margin-left:4px}
.r14-clock i{display:block;margin-top:8px;width:150px;height:4px;border-radius:9px;background:rgba(255,255,255,.12);overflow:hidden;font-style:normal}
.r14-clock i span{display:block;height:100%;background:linear-gradient(90deg,#d9431e,#ff8a65);border-radius:9px}
.r14-legendbtn{display:none}
@media(max-width:1099px){.r14-legendbtn{display:inline-flex;margin:10px 16px 0}}
.r14-viz #timeSlider{height:40px}
.r14-viz [data-timepoint]{min-width:64px;min-height:46px;border-radius:999px!important;font-family:var(--r13-mono)!important}
.r14-viz #timeDisplay{font:700 26px var(--r13-mono)!important;color:var(--r13-hot2)!important}
.r14-viz #zoomDisplay{color:var(--r13-mute)!important}
.r14-viz .calculator-tabs{display:flex!important;overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:none}
.r14-viz .calculator-tabs>button{flex:none}
.r14-viz .r14-railhead{font:800 20px var(--r13-f);letter-spacing:-.02em;margin:0 0 10px;color:var(--r13-text)}
/* ================= SERIAL DOSIMETRY / two-column grids ================= */
.r14-wb2{display:flex!important;flex-direction:column;gap:18px}
@media(min-width:1100px){
 .r14-wb2{display:grid!important;grid-template-columns:minmax(380px,.85fr) minmax(0,1.15fr);gap:var(--wb-gap)!important;align-items:start}
 .r14-wb2>.r14-inpane{position:sticky;top:86px;max-height:calc(100vh - 100px);overflow:auto;scrollbar-width:thin;border-radius:24px}
 body:has(.r14-wb2) main.container,.r14 .page-view:has(.r14-wb2){max-width:1380px!important}
}
.r14-wb2>.r14-inpane{padding:24px!important}
@media(max-width:1099px){.r14-wb2>.r14-inpane{padding:20px 16px!important}.r14-wb2 form button[type=submit]{position:sticky;bottom:12px;z-index:5;box-shadow:0 14px 30px -10px rgba(217,67,30,.55)}}
.r14-wb2 .measurement-row{border-radius:14px!important;border:1px solid var(--r13-line)}
.r14-wb2 #addMeasurementBtn{min-height:46px;border-style:dashed!important}
.r14-wb2>.r14-outpane #results-tab{opacity:1!important}
/* ================= COHORT SIMULATOR ================= */
.r14[data-page=cohort-simulator] #cohortPlaceholder>.glass-card{padding:30px 20px!important;border:1.5px dashed var(--r13-line)!important;background:radial-gradient(80% 90% at 50% 0%,rgba(217,67,30,.07),transparent 70%)!important;box-shadow:none!important}
.r14[data-page=cohort-simulator] #cohortPlaceholder>.glass-card::before{content:"";display:block;width:min(260px,70%);aspect-ratio:4/3;margin:0 auto 14px;border-radius:16px;background:url(../v12/tiles/cohort-simulator.webp) center/cover;box-shadow:0 18px 40px -18px rgba(0,0,0,.45)}
.r14[data-page=cohort-simulator] #cohortPlaceholder h3{font-size:19px!important;font-weight:800!important}
.r14[data-page=cohort-simulator] #powerValue{font-size:48px!important;letter-spacing:-.04em}
.r14[data-page=cohort-simulator] #simKMChart{min-height:300px}
.r14-kpis:has(.r14-kpi:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:699px){.r14-kpis:has(.r14-kpi:nth-child(3):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.r14-kpis:has(.r14-kpi:nth-child(3):last-child)>.r14-kpi:first-child{grid-column:1/-1}}
.r14-clock{background:rgba(11,9,8,.72);padding:10px 12px;border-radius:14px;backdrop-filter:blur(6px)}
