:root{--bg:#f7f3ec;--paper:#fffaf3;--ink:#1c1712;--muted:#7f7467;--line:rgba(36,28,19,.12);--gold:#c49a3a;--green:#3f8a5f;--orange:#d27b28;--red:#c64b3f;--shadow:0 24px 70px rgba(41,31,20,.11);--radius:28px}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at top left,#fff8ec 0,#f7f3ec 42%,#efe8db 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.page{width:min(1240px,calc(100% - 36px));margin:0 auto;padding:36px 0 80px}
.report-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:28px}
.brand-line,.section-kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:750}
.report-header h1{font-family:Georgia,serif;font-size:44px;margin:7px 0 4px;letter-spacing:-.035em}
.computed-line,.muted-line,.delta-line,.model-line{color:var(--muted);font-size:14px;margin:0}
.load-card,.summary-card,.wide-panel,.input-panel,.system-state{background:rgba(255,250,243,.82);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);backdrop-filter:blur(18px)}
.load-card{padding:16px;min-width:300px}
.load-card label,.input-grid label,.marker-input-grid label{display:grid;gap:7px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.load-row,.field-row{display:flex;gap:8px}
.load-row input,.input-grid input,.input-grid select,.field-row input,.field-row select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px 13px;font:inherit}
button{border:0;border-radius:999px;background:var(--ink);color:#fff;font-weight:760;padding:12px 18px;cursor:pointer}
.secondary-btn,.ghost-btn,.info-pill{background:#efe7d8;color:var(--ink)}
.info-dot{width:24px;height:24px;padding:0;display:grid;place-items:center;background:#efe7d8;color:var(--ink);font-size:12px}
.hidden{display:none!important}
.system-state{display:flex;gap:14px;align-items:center;padding:18px 20px;margin:18px 0}
.system-state.error{border-color:rgba(198,75,63,.45)}
.pulse{width:10px;height:10px;border-radius:999px;background:var(--green);box-shadow:0 0 0 7px rgba(63,138,95,.12)}
.input-panel{padding:24px;margin:18px 0}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.panel-head h2,.panel-head h3{margin:3px 0 0;font-size:22px;letter-spacing:-.02em}
.input-section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.input-grid,.marker-input-grid,.readiness-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.marker-input-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.readiness-card{padding:14px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.readiness-card span,.small-chip{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.readiness-card strong{display:block;margin-top:5px}
.small-chip{border:1px solid var(--line);border-radius:999px;padding:8px 10px;background:#fff}
.input-actions{display:flex;gap:14px;align-items:center;justify-content:flex-end;margin-top:22px}
.report{display:grid;gap:20px}
.summary-grid{display:grid;grid-template-columns:1.05fr 1.05fr 1.35fr;gap:18px}
.summary-card{padding:24px;min-height:220px;position:relative;overflow:hidden}
.summary-card:before{content:"";position:absolute;inset:auto -40px -80px auto;width:180px;height:180px;border-radius:50%;background:rgba(196,154,58,.12)}
.card-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:14px;font-weight:750}
.big-value{font-size:56px;line-height:1;margin:25px 0 8px;font-weight:820;letter-spacing:-.05em}
.big-value small{font-size:20px;color:var(--muted);margin-left:6px}
.big-age-inline{font-size:54px;font-weight:820;letter-spacing:-.05em}
.big-age-inline small{font-size:18px;color:var(--muted)}
.sparkline{height:42px;margin:16px 0;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.25));border:1px solid rgba(36,28,19,.08);position:relative;overflow:hidden}
.sparkline svg{width:100%;height:100%;display:block}
.sparkline.large{height:66px}
.mini-system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}
.mini-system{padding:12px;border-radius:18px;border:1px solid var(--line);background:#fff}
.mini-system span{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-system strong{font-size:26px}
.tone-gold{border-color:rgba(196,154,58,.55)!important;background:linear-gradient(180deg,#fff8e5,#fff)!important}
.tone-green{border-color:rgba(63,138,95,.42)!important}
.tone-orange{border-color:rgba(210,123,40,.45)!important}
.tone-red{border-color:rgba(198,75,63,.45)!important}
.tone-muted{opacity:.72}
.wide-panel{padding:26px}
.age-section-layout{display:grid;grid-template-columns:.85fr 1.25fr;gap:24px;align-items:stretch}
.model-table{display:grid;gap:10px}
.model-row{display:grid;grid-template-columns:1.1fr .9fr .7fr auto;gap:10px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fff}
.model-row strong{font-size:14px}
.model-row span{font-size:13px;color:var(--muted)}
.plus-btn{width:26px;height:26px;padding:0;background:#efe7d8;color:var(--ink)}
.missing-list{grid-column:1/-1;display:none;color:var(--muted);font-size:13px;padding-top:7px}
.model-row.open .missing-list{display:block}
.deep-detail{margin-top:20px;border-top:1px solid var(--line);padding-top:18px}
.deep-detail summary,.technical summary{cursor:pointer;font-weight:800}
.marker-detail-grid,.systems-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.marker-card,.system-card,.marker-row{border:1px solid var(--line);background:#fff;border-radius:20px;padding:16px}
.marker-card summary,.system-card summary{list-style:none;cursor:pointer}
.marker-card summary::-webkit-details-marker,.system-card summary::-webkit-details-marker{display:none}
.marker-main,.system-main{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.marker-name,.system-name{font-size:18px;font-weight:820}
.marker-value,.system-score{font-size:30px;font-weight:860;letter-spacing:-.04em}
.range-bar{height:9px;border-radius:99px;margin:12px 0;background:linear-gradient(90deg,var(--red),var(--orange),var(--green),var(--gold),var(--green),var(--orange),var(--red));position:relative}
.range-cursor{position:absolute;top:50%;transform:translate(-50%,-50%);width:15px;height:15px;border-radius:50%;background:#1c1712;border:3px solid #fff;box-shadow:0 3px 12px rgba(0,0,0,.2)}
.marker-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.marker-meta div,.system-mini div{padding:10px;border-radius:14px;background:#f8f4ed}
.marker-meta span,.system-mini span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.marker-meta strong,.system-mini strong{font-size:13px}
.marker-copy,.system-copy{margin:12px 0 0;color:#4b4137;font-size:14px;line-height:1.45}
.marker-list{display:grid;gap:10px}
.marker-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}
.status-pill{border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850}
.status-pill.tone-red{background:rgba(198,75,63,.12);color:var(--red)}
.status-pill.tone-orange{background:rgba(210,123,40,.12);color:var(--orange)}
.status-pill.tone-green{background:rgba(63,138,95,.12);color:var(--green)}
.status-pill.tone-gold{background:rgba(196,154,58,.14);color:#8a691e}
.other-marker-card .marker-value.status-pill{font-size:12px;letter-spacing:0;line-height:1.2;max-width:150px;text-align:center}
.systems-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.system-card{padding:0;overflow:hidden}
.system-card summary{padding:18px}
.system-copy{color:var(--muted)}
.system-mini{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.system-detail{border-top:1px solid var(--line);padding:16px}
.detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.detail-note{padding:12px;border-radius:16px;background:#f8f4ed;color:#4b4137;font-size:14px}
.full-panel{display:grid;gap:8px;margin-top:14px}
.full-row{display:grid;grid-template-columns:1.3fr .65fr .65fr 1fr 1fr;gap:10px;padding:10px;border-bottom:1px solid var(--line);font-size:13px}
.technical pre{white-space:pre-wrap;background:#111;color:#eee;border-radius:18px;padding:16px;overflow:auto}
.popover{position:fixed;z-index:20;max-width:340px;background:#fffaf3;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:16px;color:#4b4137}
.popover strong{display:block;margin-bottom:6px;color:var(--ink)}
@media(max-width:980px){.summary-grid,.age-section-layout,.marker-detail-grid,.systems-grid{grid-template-columns:1fr}
.input-grid,.marker-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-header{flex-direction:column}
.load-card{width:100%}
}
@media(max-width:640px){.page{width:min(100% - 22px,1240px);padding-top:22px}
.report-header h1{font-size:34px}
.big-value{font-size:44px}
.input-grid,.marker-input-grid,.mini-system-grid{grid-template-columns:1fr}
.full-row{grid-template-columns:1fr 1fr}
.marker-row{grid-template-columns:1fr}
}



/* Patch 19 · Blood dashboard + PDF ingestion */
.app-header{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
  margin-bottom:28px;
}
.app-header h1{
  font-family:Georgia,serif;
  font-size:44px;
  margin:7px 0 4px;
  letter-spacing:-.035em;
}
.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dashboard-view{display:grid;gap:20px}
.dashboard-summary-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}
.dashboard-hero-card,.dashboard-systems-card{
  background:rgba(255,250,243,.82);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  backdrop-filter:blur(18px);
  padding:26px;
  min-height:310px;
}
.dashboard-hero-card{position:relative;overflow:hidden}
.dashboard-hero-card:before{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  right:-90px;
  top:-110px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(196,154,58,.2),rgba(196,154,58,0));
  pointer-events:none;
}
.dashboard-age-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:34px 0 8px}
.dashboard-age-row>div>strong{font-size:72px;line-height:.9;letter-spacing:-.065em}
.dashboard-age-row>div>small{font-size:20px;color:var(--muted)}
.dashboard-secondary-metric{display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--line);padding-top:18px}
.dashboard-secondary-metric>span{font-size:14px;color:var(--muted);font-weight:750}
.dashboard-secondary-metric>strong{font-size:30px}
.dashboard-secondary-metric small{font-size:13px;color:var(--muted);margin-left:3px}
.landing-system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.landing-system{border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px;min-height:82px;display:flex;flex-direction:column;justify-content:space-between}
.landing-system span{font-size:12px;color:var(--muted);font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.landing-system strong{font-size:30px;letter-spacing:-.04em}
.empty-copy,.empty-history{color:var(--muted);line-height:1.5}
.dashboard-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.action-panel h2,.evolution-panel h2,.history-panel h2{margin:5px 0 10px;font-size:25px;letter-spacing:-.025em}
.action-panel .muted-line{max-width:680px;line-height:1.55}
.action-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.dashboard-spark{height:100px;margin-top:24px}
.evolution-labels{display:flex;justify-content:space-between;gap:16px}
.evolution-labels span{display:grid;gap:3px;color:var(--muted);font-size:12px}
.evolution-labels strong{font-size:20px;color:var(--ink)}
.history-list,.analysis-list{display:grid;gap:10px}
.history-row{
  width:100%;
  display:grid;
  grid-template-columns:120px 1.6fr .65fr .65fr auto;
  gap:16px;
  align-items:center;
  padding:15px 16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  color:var(--ink);
  text-align:left;
}
.history-row:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(41,31,20,.08)}
.history-date{font-weight:760}
.history-source{display:grid;gap:3px;min-width:0}
.history-source strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.history-source small,.history-metric small{color:var(--muted)}
.history-metric{display:grid;gap:3px}
.history-metric strong{font-size:20px}
.history-arrow{font-size:12px;color:var(--gold);font-weight:820;text-transform:uppercase;letter-spacing:.07em}
.analysis-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px}
.analysis-row>div{display:grid;gap:3px}
.analysis-row>div span{font-size:12px;color:var(--muted)}
.analysis-status{padding:7px 10px;border-radius:999px;background:#efe7d8;font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.status-review_required{background:rgba(210,123,40,.12);color:var(--orange)}
.status-failed{background:rgba(198,75,63,.12);color:var(--red)}
.status-ready_for_compute{background:rgba(63,138,95,.12);color:var(--green)}
.upload-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start}
.pdf-drop-zone{
  min-height:230px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  border:1.5px dashed rgba(36,28,19,.24);
  border-radius:24px;
  background:linear-gradient(180deg,#fff,#fbf6ee);
  text-align:center;
  cursor:pointer;
  padding:26px;
  transition:.2s ease;
}
.pdf-drop-zone:hover,.pdf-drop-zone.dragging{border-color:var(--gold);background:#fff8e8;transform:translateY(-1px)}
.upload-icon{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:13px;font-weight:900;letter-spacing:.08em}
.pdf-drop-zone strong{font-size:20px}
.pdf-drop-zone small{color:var(--muted)}
.upload-context-grid{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:12px;margin-top:14px}
.upload-context-grid label{display:grid;gap:7px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.upload-context-grid input,.upload-context-grid select{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px 13px;font:inherit}
.upload-actions{justify-content:flex-start}
.upload-actions p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.ingestion-result{border:1px solid var(--line);border-radius:24px;background:#fff;padding:22px}
.ingestion-result h3{font-size:25px;margin:5px 0 18px}
.ingestion-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ingestion-metrics div{padding:14px;border-radius:17px;background:#f8f4ed}
.ingestion-metrics strong{display:block;font-size:30px;letter-spacing:-.04em}
.ingestion-metrics span{font-size:11px;color:var(--muted)}
.ingestion-readiness{display:grid;gap:8px;margin:18px 0}
.readiness-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px}
.readiness-line span{font-size:12px;font-weight:800}
.readiness-line small{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px}
.readiness-ready{border-color:rgba(63,138,95,.4)}
.readiness-review_required{border-color:rgba(210,123,40,.45)}
.ingestion-result>button{width:100%;margin-top:4px}
.ingestion-result .muted-line{margin-top:12px;line-height:1.45}
button:disabled{opacity:.45;cursor:not-allowed;transform:none!important}
.spark-empty{display:block;padding:12px}
#report-view{display:grid;gap:20px}
.technical{display:grid;gap:12px}
.technical>details{background:rgba(255,250,243,.82);border:1px solid var(--line);border-radius:20px;padding:18px}

@media(max-width:980px){
  .app-header{flex-direction:column}
  .dashboard-summary-grid,.dashboard-content-grid,.upload-layout{grid-template-columns:1fr}
  .history-row{grid-template-columns:100px 1fr auto}
  .history-metric{display:none}
  .upload-context-grid{grid-template-columns:1fr 1fr}
  .participant-field{grid-column:1/-1}
}
@media(max-width:640px){
  .app-header h1{font-size:34px}
  .header-actions{width:100%}
  .header-actions button{flex:1}
  .dashboard-age-row{align-items:flex-start;flex-direction:column}
  .dashboard-age-row>div>strong{font-size:58px}
  .landing-system-grid,.ingestion-metrics,.upload-context-grid{grid-template-columns:1fr}
  .participant-field{grid-column:auto}
  .history-row{grid-template-columns:1fr auto}
  .history-date{grid-column:1/-1;color:var(--muted);font-size:12px}
  .history-source small{display:none}
  .analysis-row{grid-template-columns:1fr}
  .analysis-row button{width:100%}
}

/* Blood test request guide */
.new-analysis-head{align-items:flex-start}
.new-analysis-tabs{display:inline-flex;gap:6px;padding:5px;margin:4px 0 22px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.62)}
.new-analysis-tab{border:0;background:transparent;color:var(--muted);box-shadow:none;padding:10px 16px;border-radius:12px;font-size:13px}
.new-analysis-tab:hover{transform:none;background:rgba(25,31,39,.05)}
.new-analysis-tab.active{background:var(--ink);color:#fff}
.request-guide-view{display:grid;gap:20px}
.request-guide-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:4px 2px}
.request-guide-intro h3{margin:5px 0 5px;font-size:26px;letter-spacing:-.035em}
.guide-sex-switch{display:inline-flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:14px;background:#fff;flex:0 0 auto}
.guide-sex-btn{border:0;background:transparent;color:var(--muted);box-shadow:none;padding:9px 14px;border-radius:10px;font-size:12px}
.guide-sex-btn:hover{transform:none;background:rgba(25,31,39,.05)}
.guide-sex-btn.active{background:var(--ink);color:#fff}
.guide-loading-state{min-height:88px;display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.55)}
.guide-loading-state strong{display:block;margin-bottom:3px}
.guide-loading-state p{margin:0;color:var(--muted);font-size:13px}
.guide-loading-state.error{border-color:rgba(183,73,56,.35);background:rgba(183,73,56,.06)}
.request-guide-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.guide-legend-item{display:grid;gap:6px;padding:14px 15px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.65)}
.guide-legend-sample{font-size:14px;color:var(--ink)}
.guide-legend-sample u,.request-marker-essential u{text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:currentColor}
.guide-legend-item small{color:var(--muted);font-size:11px;line-height:1.35}
.request-guide-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.guide-summary-card{display:flex;align-items:baseline;gap:9px;padding:13px 15px;border-radius:15px;border:1px solid var(--line);background:rgba(255,255,255,.5)}
.guide-summary-card strong{font-size:24px;line-height:1}
.guide-summary-card span{font-size:12px;color:var(--muted)}
.guide-summary-essential{box-shadow:inset 0 -2px 0 rgba(21,31,40,.68)}
.guide-summary-high_value{box-shadow:inset 0 -2px 0 rgba(21,31,40,.28)}
.request-guide-panels{display:grid;gap:10px}
.request-panel{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.58);overflow:hidden}
.request-panel[open]{background:rgba(255,255,255,.78)}
.request-panel summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:17px 18px}
.request-panel summary::-webkit-details-marker{display:none}
.request-panel summary::after{content:'+';font-size:22px;font-weight:400;line-height:1;color:var(--muted);margin-left:4px}
.request-panel[open] summary::after{content:'–'}
.request-panel-copy{display:grid;gap:4px;min-width:0}
.request-panel-copy strong{font-size:16px;letter-spacing:-.015em}
.request-panel-copy small{color:var(--muted);font-size:12px;line-height:1.35}
.request-panel-counts{margin-left:auto;white-space:nowrap;color:var(--muted);font-size:11px}
.request-panel-counts b{color:var(--ink)}
.request-panel-content{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 18px 18px;border-top:1px solid rgba(28,34,40,.08)}
.request-marker-group{padding-top:15px}
.request-marker-group-title{display:block;margin-bottom:9px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.request-marker-group.request-separately{padding-left:15px;border-left:1px solid var(--line)}
.request-marker-list{display:flex;flex-wrap:wrap;gap:7px}
.request-marker{display:inline-flex;align-items:center;min-height:31px;padding:7px 10px;border:1px solid rgba(25,31,39,.11);border-radius:999px;background:#fff;font-size:12px;line-height:1.2;color:var(--ink)}
.request-marker-essential{border-color:rgba(25,31,39,.32);background:rgba(25,31,39,.06)}
.request-marker-high_value{background:rgba(255,255,255,.95)}
.request-marker-complete{color:#4f565f;background:rgba(255,255,255,.62)}
.calculated-by-timereset{display:flex;gap:10px;align-items:baseline;padding:13px 15px;border-radius:14px;background:rgba(25,31,39,.045);font-size:12px}
.calculated-by-timereset strong{white-space:nowrap}
.calculated-by-timereset span{color:var(--muted);line-height:1.45}
.guide-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding-top:2px}
.guide-action-status{font-size:12px;color:#2f755d;margin-left:4px}

@media (max-width:760px){
  .request-guide-intro{display:grid}
  .guide-sex-switch{justify-self:start}
  .request-guide-legend,.request-guide-summary{grid-template-columns:1fr}
  .request-panel summary{align-items:flex-start}
  .request-panel-counts{display:none}
  .request-panel-content{grid-template-columns:1fr}
  .request-marker-group.request-separately{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .new-analysis-tabs{display:flex;width:100%}
  .new-analysis-tab{flex:1}
  .calculated-by-timereset{display:grid}
}

@media print{
  body.printing-request-guide{background:#fff}
  body.printing-request-guide .app-header,
  body.printing-request-guide .new-analysis-head,
  body.printing-request-guide .new-analysis-tabs,
  body.printing-request-guide .guide-actions,
  body.printing-request-guide #pdf-upload-view,
  body.printing-request-guide #dashboard-view,
  body.printing-request-guide #input-panel,
  body.printing-request-guide #report-view{display:none!important}
  body.printing-request-guide #upload-panel,
  body.printing-request-guide #request-guide-view,
  body.printing-request-guide #request-guide-content{display:block!important;border:0;box-shadow:none;padding:0;margin:0}
  body.printing-request-guide .request-panel{break-inside:avoid;background:#fff}
  body.printing-request-guide .request-panel:not([open]) .request-panel-content{display:grid}
  body.printing-request-guide .request-panel summary::after{display:none}
}
.readiness-artifact_pending{border-style:dashed;background:rgba(25,31,39,.035)}

.request-marker-badge{display:inline-flex;align-items:center;margin-left:5px;padding:2px 6px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.02em;vertical-align:1px;text-decoration:none}
.request-marker-badge-research{background:rgba(104,75,151,.10);color:#5e4388;border:1px solid rgba(104,75,151,.18)}
.request-marker-badge-specimen{background:rgba(38,105,124,.08);color:#286879;border:1px solid rgba(38,105,124,.16)}
.request-marker-badge-policy{background:rgba(25,31,39,.055);color:var(--muted);border:1px solid rgba(25,31,39,.10)}
.research-marker-group{margin-top:10px;padding:10px 12px;border:1px dashed rgba(104,75,151,.22);border-radius:12px;background:rgba(104,75,151,.025)}
.research-marker-group summary{cursor:pointer;font-size:11px;font-weight:750;color:#5e4388;list-style:none}
.research-marker-group summary::-webkit-details-marker{display:none}
.research-marker-group[open] summary{margin-bottom:9px}

/* Patch 22 · shared session + private direct upload */
.session-state{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.7);
  color:var(--muted);
  font-size:12px;
  font-weight:760;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.session-state.active{color:var(--green);border-color:rgba(63,138,95,.35);background:rgba(63,138,95,.08)}
.upload-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.analysis-row{grid-template-columns:minmax(0,1fr) auto auto auto}
@media(max-width:640px){
  .session-state{width:100%;max-width:none;justify-content:center}
  .header-actions .session-state{order:-1}
  .analysis-row{grid-template-columns:1fr}
}

/* Patch 22.1 · hard critical-context gate */
.critical-context-dialog{
  width:min(680px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  margin:auto;
  padding:0;
  border:0;
  border-radius:26px;
  background:transparent;
  color:var(--ink);
  overflow:visible;
}
.critical-context-dialog::backdrop{background:rgba(12,17,22,.62);backdrop-filter:blur(6px)}
.critical-context-card{max-height:calc(100vh - 28px);overflow:auto;padding:25px;border:1px solid rgba(255,255,255,.55);border-radius:26px;background:linear-gradient(180deg,#fff,#fbf7f0);box-shadow:0 28px 90px rgba(10,17,24,.28)}
.critical-context-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.critical-context-head h2{margin:5px 0 7px;font-size:29px;letter-spacing:-.04em}
.critical-context-head p{margin:0;max-width:540px;color:var(--muted);line-height:1.5}
.dialog-close{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);box-shadow:none;font-size:22px;font-weight:400}
.dialog-close:hover{transform:none;background:#f7f3ec;color:var(--ink)}
.critical-context-questions{display:grid;gap:12px;margin:22px 0}
.critical-question{display:grid;gap:13px;padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.78)}
.critical-question-copy{display:grid;gap:4px}
.critical-question-copy>span{font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.critical-question-copy>strong{font-size:16px;line-height:1.35}
.critical-question-copy>small{color:var(--muted);font-size:12px;line-height:1.45}
.critical-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.critical-choice{position:relative;cursor:pointer}
.critical-choice input{position:absolute;opacity:0;pointer-events:none}
.critical-choice span{display:flex;align-items:center;justify-content:center;min-height:45px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;font-weight:780;transition:.15s ease}
.critical-choice input:checked+span{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:0 7px 18px rgba(25,31,39,.15)}
.critical-choice input:focus-visible+span{outline:3px solid rgba(63,138,95,.22);outline-offset:2px}
.critical-context-input{width:100%;min-height:47px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit}
.critical-context-input:focus{outline:3px solid rgba(63,138,95,.16);border-color:rgba(63,138,95,.55)}
.critical-context-error{min-height:18px;margin:0;color:var(--red);font-size:12px;font-weight:720}
.critical-context-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}
.critical-context-actions button{min-width:145px}
.status-awaiting_context{color:#9b5d19;background:rgba(210,123,40,.10);border-color:rgba(210,123,40,.28)}
@media(max-width:640px){
  .critical-context-dialog{width:calc(100vw - 18px);max-height:calc(100vh - 18px)}
  .critical-context-card{max-height:calc(100vh - 18px);padding:19px;border-radius:21px}
  .critical-context-head h2{font-size:25px}
  .critical-choice-grid{grid-template-columns:1fr}
  .critical-context-actions{display:grid;grid-template-columns:1fr}
  .critical-context-actions button{width:100%}
}
