*{box-sizing:border-box;margin:0;padding:0;}

:root{
  --color-background-primary:#FFFFFF;
  --color-background-secondary:#F6F7F9;
  --color-background-elevated:#FFFFFF;
  --color-border-secondary:#D4DAE2;
  --color-border-tertiary:#E8ECF1;
  --color-text-primary:#1A2332;
  --color-text-secondary:#5C6775;
  --color-text-tertiary:#8A939E;
  --color-brand:#0A5F7A;
  --color-brand-strong:#084E66;
  --color-brand-soft:#F3F8FA;
  --color-brand-muted:#D6E6EE;
  --color-accent:#0A5F7A;
  --color-success-bg:#E8F3E4;
  --color-success-border:#6BA84A;
  --color-success-text:#1F4A12;
  --color-info-bg:#E9F3FA;
  --color-info-border:#6BAED6;
  --color-info-text:#0C447C;
  --color-warn-bg:#FDF5E6;
  --color-warn-border:#E5A82E;
  --color-warn-text:#633806;
  --color-danger-bg:#FDEEEE;
  --color-danger-border:#E07070;
  --color-danger-text:#791F1F;
  --shadow-sm:0 1px 2px rgba(26,35,50,.04);
  --shadow-md:0 8px 24px rgba(26,35,50,.08);
  --shadow-lg:0 16px 40px rgba(26,35,50,.1);
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:12px;
  --radius-pill:999px;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --transition-fast:.15s var(--ease-out);
  --transition-med:.25s var(--ease-out);
  --border-radius-md:var(--radius-sm);
  --border-radius-lg:var(--radius-md);
}

html{font-size:16px;scroll-behavior:smooth;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Noto Sans JP","Hiragino Sans","Yu Gothic UI",sans-serif;
  background:linear-gradient(180deg,#EEF3F7 0%,#F8FAFB 220px,#F4F6F8 100%);
  background-attachment:fixed;
  color:var(--color-text-primary);
  line-height:1.6;
  letter-spacing:.01em;
  -webkit-text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
  min-height:100dvh;
}

/* ── Header ── */
.app-header{
  text-align:center;
  background:linear-gradient(165deg,#0A5F7A 0%,#084E66 55%,#063D52 100%);
  padding:2.25rem 1.5rem 2rem;
  border-bottom:0;
  box-shadow:0 4px 20px rgba(10,95,122,.18);
  position:relative;
  overflow:hidden;
}
.app-header::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% -20%,rgba(255,255,255,.12),transparent 70%);
  pointer-events:none;
}
.app-header-inner{max-width:32rem;margin:0 auto;position:relative;z-index:1;}
.app-header-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.75rem;
}
.app-header-mark{
  display:block;
  color:rgba(255,255,255,.95);
  opacity:1;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));
}
.app-header-title{
  font-size:1.5rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#FFFFFF;
  line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.08);
}
.app-header-subtitle{
  margin-top:.9rem;
  font-size:0.8125rem;
  font-weight:500;
  color:rgba(255,255,255,.88);
  line-height:1.75;
  letter-spacing:.03em;
}

/* ── Main shell ── */
.app{max-width:720px;margin:0 auto;padding:1.5rem 1rem 2.5rem;}

.progress-wrap{
  margin-bottom:1.65rem;
  padding:1rem 1rem .85rem;
  background:var(--color-background-elevated);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}
.progress-steps{
  display:flex;
  justify-content:space-between;
  gap:4px;
  margin-bottom:.85rem;
  position:relative;
}
.progress-steps::before{
  content:"";
  position:absolute;
  top:13px;
  left:10%;
  right:10%;
  height:2px;
  background:var(--color-border-tertiary);
  z-index:0;
}
.progress-step{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  flex:1;
  min-width:0;
  position:relative;
  z-index:1;
}
.progress-step-dot{
  width:26px;
  height:26px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.6875rem;
  font-weight:700;
  background:var(--color-background-secondary);
  color:var(--color-text-tertiary);
  border:2px solid var(--color-border-secondary);
  transition:background var(--transition-med),border-color var(--transition-med),color var(--transition-med),box-shadow var(--transition-med);
}
.progress-step.current .progress-step-dot{
  background:var(--color-brand);
  border-color:var(--color-brand);
  color:#FFFFFF;
  box-shadow:0 0 0 4px rgba(10,95,122,.15);
}
.progress-step.done .progress-step-dot{
  background:var(--color-success-bg);
  border-color:var(--color-success-border);
  color:var(--color-success-text);
  font-size:0.75rem;
}
.progress-step-label{
  font-size:0.625rem;
  font-weight:600;
  color:var(--color-text-tertiary);
  letter-spacing:.02em;
  text-align:center;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.progress-step.current .progress-step-label{color:var(--color-brand);font-weight:700;}
.progress-step.done .progress-step-label{color:var(--color-text-secondary);}
.progress-bar{
  height:5px;
  background:var(--color-border-tertiary);
  border-radius:var(--radius-pill);
  overflow:hidden;
}
.progress-fill{
  height:100%;
  background:linear-gradient(90deg,var(--color-brand-strong),var(--color-brand));
  border-radius:var(--radius-pill);
  transition:width .4s var(--ease-out);
}
.progress-hint{
  margin-top:0.6rem;
  font-size:0.6875rem;
  font-weight:600;
  color:var(--color-text-tertiary);
  letter-spacing:.06em;
  text-align:center;
}

/* ── Step header ── */
.step-header{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:1.35rem;
  padding:1rem 1.1rem;
  background:var(--color-background-elevated);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}
.step-badge{
  width:36px;
  height:36px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.875rem;
  font-weight:700;
  flex-shrink:0;
  transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);
}
.step-badge.active{
  background:var(--color-brand);
  color:#FFFFFF;
}
.step-badge.done{
  background:var(--color-success-bg);
  color:var(--color-success-text);
  border:2px solid var(--color-success-border);
}
.step-badge.inactive{
  background:var(--color-background-secondary);
  color:var(--color-text-tertiary);
  border:1.5px solid var(--color-border-tertiary);
}
.step-title{
  font-size:1rem;
  font-weight:600;
  color:var(--color-text-primary);
  line-height:1.4;
  letter-spacing:.01em;
}

/* ── Cards ── */
.card{
  background:var(--color-background-elevated);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  padding:1.35rem 1.4rem;
  margin-bottom:1rem;
  box-shadow:var(--shadow-sm);
}
.q-label{
  font-size:0.75rem;
  font-weight:500;
  color:var(--color-text-tertiary);
  margin-bottom:0.45rem;
  letter-spacing:.04em;
}
.q-text{
  font-size:1rem;
  color:var(--color-text-primary);
  margin-bottom:0.85rem;
  line-height:1.65;
  font-weight:500;
}
.q-subtext{
  display:block;
  margin-top:0.35rem;
  color:var(--color-text-secondary);
  font-size:0.875rem;
  line-height:1.65;
  font-weight:400;
}

/* ── Choice buttons ── */
.btn-group{display:flex;gap:10px;flex-wrap:wrap;}
.btn-group.age-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.btn-group.age-grid .btn{
  flex:unset;
  padding:11px 10px;
  font-size:0.875rem;
}
.btn{
  padding:12px 20px;
  border-radius:var(--radius-md);
  border:1.5px solid var(--color-border-secondary);
  background:var(--color-background-primary);
  font-size:0.9375rem;
  cursor:pointer;
  color:var(--color-text-secondary);
  transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);
  font-family:inherit;
  min-height:48px;
  font-weight:500;
}
.btn:hover{
  background:var(--color-brand-soft);
  border-color:var(--color-brand-muted);
  color:var(--color-text-primary);
}
.btn:active{transform:scale(.98);}
.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}
.btn.sel-yes{
  background:var(--color-success-bg);
  border-color:var(--color-success-border);
  color:var(--color-success-text);
  font-weight:600;
}
.btn.sel-no{
  background:var(--color-info-bg);
  border-color:var(--color-accent);
  color:var(--color-info-text);
  font-weight:600;
}

/* ── Radio-style options ── */
.fx-option{
  display:flex;
  align-items:flex-start;
  gap:14px;
  width:100%;
  padding:1rem 1.1rem;
  border-radius:var(--radius-md);
  border:1.5px solid var(--color-border-secondary);
  background:var(--color-background-secondary);
  cursor:pointer;
  color:inherit;
  font:inherit;
  text-align:left;
  transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);
  margin-bottom:10px;
  appearance:none;
}
.fx-option:last-child{margin-bottom:0;}
.fx-option:hover{
  border-color:var(--color-accent);
  background:#F5FAFC;
}
.fx-option:active{transform:scale(.995);}
.fx-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}
.fx-option.selected{
  background:var(--color-success-bg);
  border-color:var(--color-success-border);
}
.fx-radio{
  width:22px;
  height:22px;
  border-radius:50%;
  border:2px solid var(--color-border-secondary);
  background:var(--color-background-primary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  margin-top:3px;
  transition:all var(--transition-fast);
}
.fx-option.selected .fx-radio{
  background:var(--color-success-border);
  border-color:var(--color-success-border);
}
.fx-radio-dot{width:8px;height:8px;border-radius:50%;background:white;}
.fx-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);line-height:1.4;}
.fx-option.selected .fx-title{color:var(--color-success-text);}
.fx-sub{font-size:0.8125rem;color:var(--color-text-secondary);margin-top:4px;line-height:1.65;}
.inline-hint{
  margin-top:0.85rem;
  color:var(--color-warn-text);
  font-size:0.8125rem;
  font-weight:600;
  line-height:1.6;
}

.divider{border:none;border-top:1px solid var(--color-border-tertiary);margin:1.15rem 0;}

/* ── Alerts ── */
.alert{
  padding:0.85rem 1rem;
  border-radius:var(--radius-md);
  font-size:0.875rem;
  margin-bottom:12px;
  display:flex;
  align-items:flex-start;
  gap:10px;
  line-height:1.65;
  font-weight:500;
}
.alert.info{background:var(--color-info-bg);color:var(--color-info-text);border:1px solid var(--color-info-border);}
.alert.warn{background:var(--color-warn-bg);color:var(--color-warn-text);border:1px solid var(--color-warn-border);}
.alert.success{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border);}
.handoff-notice .handoff-hint-list{margin:8px 0 0;padding-left:1.2em;font-size:13px;line-height:1.6;}

/* ── ほねみる引き継ぎパネル ── */
.handoff-panel{
  margin-bottom:1rem;
  border:1px solid var(--color-info-border);
  border-radius:var(--radius-md);
  background:var(--color-info-bg);
  overflow:hidden;
}
.handoff-panel-title{
  padding:12px 14px;
  font-size:0.875rem;
  font-weight:700;
  color:var(--color-info-text);
  cursor:pointer;
  list-style:none;
}
.handoff-panel-title::-webkit-details-marker{display:none;}
.handoff-panel-body{padding:0 14px 14px;}
.handoff-panel-lead{
  margin:0 0 12px;
  font-size:0.8125rem;
  line-height:1.65;
  color:var(--color-info-text);
}
.handoff-col{margin-bottom:10px;padding:10px 12px;border-radius:var(--radius-sm);background:rgba(255,255,255,.55);}
.handoff-col:last-child{margin-bottom:0;}
.handoff-col-title{font-size:0.75rem;font-weight:700;margin-bottom:6px;line-height:1.4;}
.handoff-col-applied .handoff-col-title{color:var(--color-success-text);}
.handoff-col-negative{background:#f4fbf8;}
.handoff-col-negative .handoff-col-title{color:#2f6442;}
.handoff-col-reference .handoff-col-title{color:var(--color-text-secondary);}
.handoff-col-required .handoff-col-title{color:var(--color-warn-text);}
.handoff-list{margin:0;padding-left:1.15em;font-size:0.8125rem;line-height:1.55;}
.handoff-list li{margin:2px 0;}
.handoff-item-label{font-weight:600;}
.handoff-empty{color:var(--color-text-tertiary);list-style:none;margin-left:-1.15em;}
.handoff-badge{
  display:inline-block;
  margin-left:6px;
  padding:1px 6px;
  border-radius:999px;
  background:#e0efe8;
  color:#1e4a40;
  font-size:0.625rem;
  font-weight:700;
  vertical-align:middle;
  letter-spacing:.02em;
}
.sec-toggle.checked .handoff-badge,
.toggle-row.checked .handoff-badge{background:rgba(255,255,255,.75);}

.handoff-bmd-ref{
  margin-bottom:12px;
  padding:10px 12px;
  border-radius:var(--radius-sm);
  border:1px dashed var(--color-info-border);
  background:rgba(255,255,255,.6);
}
.handoff-bmd-ref-title{
  font-size:0.75rem;
  font-weight:700;
  color:var(--color-info-text);
  margin-bottom:4px;
}
.handoff-bmd-ref-val{
  font-size:1.0625rem;
  font-weight:600;
  color:var(--color-text-primary);
  line-height:1.4;
}
.handoff-bmd-sep{margin:0 8px;color:var(--color-text-tertiary);font-weight:400;}
.handoff-bmd-ref-note{
  margin-top:6px;
  font-size:0.75rem;
  line-height:1.55;
  color:var(--color-text-secondary);
}

/* ── Footer disclaimer ── */
.disclaimer{
  margin-top:1rem;
  padding:1rem 1.1rem;
  border-radius:var(--radius-md);
  background:var(--color-background-primary);
  border:1px solid var(--color-border-tertiary);
  color:var(--color-text-secondary);
  font-size:0.75rem;
  line-height:1.75;
}
.disclaimer p{margin-bottom:8px;}
.disclaimer p:last-child{margin-bottom:0;}
.app-footer{
  margin-top:1.75rem;
  text-align:center;
  padding:12px 14px;
  background:transparent;
  border:0;
  color:var(--color-text-tertiary);
  font-size:0.6875rem;
  line-height:1.7;
  box-shadow:none;
}
.has-step4-action .nav-row{
  position:static;
  margin-bottom:1rem;
  box-shadow:none;
  background:transparent;
  border:0;
  padding:0;
}
.has-step4-action .app-footer{margin-top:.75rem;padding-bottom:108px;}
.app-footer p{margin-bottom:5px;}
.footer-links{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;}
.footer-links span{color:var(--color-border-secondary);}
.app-footer .terms-link{color:var(--color-text-secondary);}
.app-footer .terms-link:hover{color:var(--color-brand);}
.terms-link{
  display:inline;
  border:0;
  background:none;
  padding:0;
  color:var(--color-brand);
  font:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
  transition:color var(--transition-fast);
}
.terms-link:hover{color:var(--color-brand-strong);}
.terms-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px;}

/* ── Modals ── */
.modal-backdrop{
  position:fixed;
  inset:0;
  z-index:1000;
  background:rgba(15,28,40,.5);
  backdrop-filter:blur(6px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  animation:fadeIn .2s var(--ease-out);
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.terms-modal{
  width:min(640px,100%);
  max-height:88vh;
  display:flex;
  flex-direction:column;
  background:#FFFFFF;
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
  animation:slideUp .25s var(--ease-out);
}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.terms-modal-header{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:16px 56px;
  background:var(--color-background-primary);
  border-bottom:1px solid var(--color-border-tertiary);
}
.terms-modal-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);text-align:center;}
.terms-close{
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border-radius:50%;
  border:0;
  background:var(--color-background-primary);
  color:var(--color-text-secondary);
  font-size:22px;
  line-height:1;
  cursor:pointer;
  transition:background var(--transition-fast),color var(--transition-fast);
}
.terms-close:hover{background:var(--color-info-bg);color:var(--color-brand);}
.terms-modal-body{
  overflow:auto;
  padding:1.25rem 1.35rem;
  background:#FFFFFF;
  color:var(--color-text-primary);
  font-size:0.875rem;
  line-height:1.8;
}
.terms-app-intro{
  margin-bottom:1.25rem;
  padding:1.1rem 1.15rem;
  border:1px solid var(--color-brand-muted);
  border-radius:var(--radius-md);
  background:var(--color-brand-soft);
  text-align:center;
}
.terms-app-name{
  font-size:1.35rem;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--color-text-primary);
}
.terms-app-subtitle{
  margin-top:.45rem;
  font-size:1rem;
  font-weight:700;
  color:var(--color-brand);
}
.terms-app-intro p{
  margin:.75rem auto 0;
  max-width:30rem;
  color:var(--color-text-secondary);
  line-height:1.7;
}
.terms-modal-body h3{font-size:1rem;margin:1.25rem 0 0.5rem;color:var(--color-text-primary);}
.terms-modal-body h3:first-child{margin-top:0;}
.terms-modal-body p{margin-bottom:10px;}
.terms-modal-body ol{padding-left:1.35rem;margin-bottom:10px;}
.terms-modal-body ul{padding-left:1.35rem;margin-bottom:10px;}
.terms-modal-body li{margin-bottom:8px;}
.terms-actions{display:flex;justify-content:center;margin-top:18px;}
.terms-actions .nav-btn{white-space:normal;line-height:1.45;max-width:100%;}

/* ── Navigation buttons ── */
.nav-btn{
  padding:12px 24px;
  border-radius:var(--radius-md);
  border:1.5px solid var(--color-border-secondary);
  background:var(--color-background-primary);
  font-size:0.9375rem;
  cursor:pointer;
  color:var(--color-text-primary);
  font-family:inherit;
  min-height:50px;
  font-weight:600;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  transition:transform var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);
}
.nav-btn:hover{background:var(--color-brand-soft);}
.nav-btn:active{transform:scale(.98);}
.nav-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;}
.nav-btn.primary{
  background:var(--color-brand);
  color:#FFFFFF;
  border-color:var(--color-brand);
}
.nav-btn.primary:hover{background:var(--color-brand-strong);}
.nav-row{
  display:flex;
  gap:10px;
  justify-content:space-between;
  margin-top:1.35rem;
  margin-bottom:1.5rem;
  padding:12px 14px;
  background:rgba(255,255,255,.92);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  position:sticky;
  bottom:12px;
  z-index:100;
  backdrop-filter:blur(8px);
}
.nav-row .nav-btn:only-child{margin-left:auto;}

/* ── BMD inputs ── */
.bmd-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px;}
.bmd-box{
  background:var(--color-background-secondary);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-md);
  padding:1rem;
}
.bmd-box-label{font-size:0.8125rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:10px;}
.bmd-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.bmd-row label{font-size:0.8125rem;color:var(--color-text-secondary);width:70px;flex-shrink:0;font-weight:500;}
.bmd-row input{
  width:100%;
  min-height:46px;
  padding:10px 12px;
  border:1.5px solid var(--color-border-secondary);
  border-radius:var(--radius-sm);
  font-size:1.125rem;
  background:var(--color-background-primary);
  color:var(--color-text-primary);
  font-family:inherit;
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast);
}
.bmd-row input:focus{
  outline:none;
  border-color:var(--color-accent);
  box-shadow:0 0 0 3px rgba(26,139,184,.2);
}
.bmd-row input.adopted{
  border:2px solid var(--color-accent);
  background:var(--color-info-bg);
  color:var(--color-info-text);
  font-weight:700;
}
.bmd-input-wrap{display:flex;align-items:stretch;width:100%;}
.bmd-input-wrap input{min-width:0;}
.bmd-prefix{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  padding:0 8px;
  border:1.5px solid var(--color-border-secondary);
  border-right:0;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
  background:#EEF2F6;
  color:var(--color-text-secondary);
  font-size:1.25rem;
  font-weight:700;
}
.bmd-input-wrap.has-prefix input{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.bmd-input-wrap.has-prefix input.adopted{border-left:1.5px solid var(--color-accent);}
.bmd-sign-group{
  display:flex;
  flex-shrink:0;
  border:1.5px solid var(--color-border-secondary);
  border-right:0;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
  overflow:hidden;
  background:#EEF2F6;
}
.bmd-sign{
  width:38px;
  border:0;
  border-right:1px solid var(--color-border-secondary);
  background:#EEF2F6;
  color:var(--color-text-secondary);
  font-size:1.125rem;
  font-weight:700;
  cursor:pointer;
  font-family:inherit;
  transition:background var(--transition-fast),color var(--transition-fast);
}
.bmd-sign:last-child{border-right:0;}
.bmd-sign:hover{background:var(--color-info-bg);color:var(--color-brand);}
.bmd-sign.active{background:var(--color-brand);color:white;}
.bmd-input-wrap.has-sign input{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.bmd-input-wrap.has-sign input.adopted{border-left:1.5px solid var(--color-accent);}
.adopted-note{font-size:0.75rem;color:var(--color-brand);margin-top:4px;font-weight:700;}
.result-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px;
  background:var(--color-info-bg);
  border:1px solid var(--color-info-border);
  border-radius:var(--radius-md);
  margin-top:10px;
}
.result-label{font-size:0.875rem;color:var(--color-text-secondary);font-weight:500;}
.result-val{font-size:1.125rem;font-weight:700;}
.result-val.ok{color:var(--color-success-text);}
.result-val.warn{color:var(--color-warn-text);}
.result-val.danger{color:var(--color-danger-text);}
.result-source{font-size:0.75rem;color:var(--color-text-tertiary);margin-top:2px;text-align:right;}

/* ── Patient summary ── */
.patient-summary{
  margin-bottom:1rem;
  padding:14px 16px;
  border:1px solid var(--color-border-tertiary);
  border-left:4px solid var(--color-brand);
  border-radius:var(--radius-md);
  background:#FFFFFF;
  color:var(--color-text-primary);
  box-shadow:var(--shadow-sm);
}
.patient-summary-title{
  font-size:0.75rem;
  font-weight:700;
  color:var(--color-text-tertiary);
  letter-spacing:.06em;
  margin-bottom:6px;
}
.patient-summary-row,
.patient-summary-risk{
  font-size:0.875rem;
  line-height:1.65;
}
.patient-summary-row{
  color:var(--color-text-secondary);
}
.patient-summary-risk{
  color:var(--color-text-primary);
  font-weight:700;
  margin-top:2px;
}

/* ── Treatment target card (Goal-Directed Treatment) ── */
.treatment-target-card{
  margin-bottom:1.25rem;
  padding:14px 16px;
  border:1px solid var(--color-border-tertiary);
  border-left:4px solid #0A5F7A;
  border-radius:var(--radius-md);
  background:#FAFCFD;
}
.treatment-target-header{
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:1px solid var(--color-border-tertiary);
}
.treatment-target-title{
  font-size:0.9rem;
  font-weight:700;
  color:var(--color-text-primary);
  line-height:1.4;
}
.treatment-target-sub{
  font-size:0.7rem;
  color:var(--color-text-tertiary);
  margin-top:2px;
  letter-spacing:.02em;
}
.treatment-target-primary{
  background:#FFFFFF;
  border:1px solid #BCD9E0;
  border-radius:var(--radius-sm);
  padding:9px 11px;
  margin-bottom:10px;
}
.target-primary-label{
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:.08em;
  color:#0A5F7A;
  margin-bottom:3px;
}
.target-primary-value{
  font-size:0.95rem;
  font-weight:600;
  color:var(--color-text-primary);
  line-height:1.55;
}
.target-sub-detail{
  display:inline-block;
  margin-top:3px;
  font-size:0.75rem;
  font-weight:400;
  color:var(--color-text-secondary);
  line-height:1.5;
}
.target-list{
  list-style:none;
  margin:0 0 6px;
  padding:0;
}
.target-list li{
  font-size:0.8125rem;
  line-height:1.6;
  color:var(--color-text-secondary);
  padding-left:14px;
  position:relative;
  margin-bottom:3px;
}
.target-list li::before{
  content:"";
  position:absolute;
  left:2px;
  top:0.6rem;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#5DA5B5;
}
.target-list li strong{
  color:var(--color-text-primary);
  font-weight:700;
}

/* 折りたたみセクション（治療戦略・逐次療法・休薬の詳細） */
.target-details{
  margin-top:8px;
  border-top:1px dashed var(--color-border-tertiary);
  padding-top:8px;
}
.target-details summary{
  font-size:0.75rem;
  font-weight:600;
  color:var(--color-text-secondary);
  cursor:pointer;
  padding:4px 0;
  list-style:none;
}
.target-details summary::-webkit-details-marker{display:none;}
.target-details summary::before{
  content:"▶ ";
  font-size:0.65rem;
  color:var(--color-text-tertiary);
  margin-right:2px;
  transition:transform .2s;
}
.target-details[open] summary::before{content:"▼ ";}
.target-details-body{
  padding:6px 4px 4px;
}
.target-details-section{margin-bottom:8px;}
.target-details-section:last-child{margin-bottom:0;}
.target-details-label{
  font-size:0.7rem;
  font-weight:700;
  color:var(--color-text-secondary);
  letter-spacing:.04em;
  margin-bottom:3px;
}
.target-details-section ul{
  list-style:none;
  margin:0;
  padding:0;
}
.target-details-section ul li{
  font-size:0.78rem;
  line-height:1.6;
  color:var(--color-text-secondary);
  padding-left:12px;
  position:relative;
  margin-bottom:2px;
}
.target-details-section ul li::before{
  content:"・";
  position:absolute;
  left:0;
  color:var(--color-text-tertiary);
}
.target-footnote{
  margin-top:10px;
  padding-top:8px;
  border-top:1px dashed var(--color-border-tertiary);
  font-size:0.68rem;
  color:var(--color-text-tertiary);
  line-height:1.55;
}

/* ── Safety toggles ── */
.safety-section{margin-bottom:1.35rem;}
.safety-section-title{
  font-size:0.6875rem;
  font-weight:700;
  color:var(--color-text-secondary);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:10px;
  padding:6px 0;
  border-bottom:1px solid var(--color-border-tertiary);
}
.toggle-row{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:14px 16px;
  border-radius:var(--radius-md);
  margin-bottom:8px;
  border:1.5px solid var(--color-border-secondary);
  cursor:pointer;
  transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);
  background:var(--color-background-primary);
}
.toggle-row:hover{border-color:#D48484;background:#FFFAFA;}
.toggle-row:active{transform:scale(.995);}
.toggle-row.checked{
  background:var(--color-danger-bg);
  border-color:var(--color-danger-border);
  box-shadow:var(--shadow-sm);
}
.toggle-text{flex:1;min-width:0;}
.toggle-label{font-size:0.9375rem;color:var(--color-text-primary);line-height:1.55;font-weight:500;}
.toggle-row.checked .toggle-label{color:var(--color-danger-text);font-weight:700;}
.toggle-sub{font-size:0.8125rem;color:var(--color-text-secondary);margin-top:4px;line-height:1.6;}
.toggle-row.checked .toggle-sub{color:#A32D2D;}
.toggle-check{
  width:24px;
  height:24px;
  border-radius:6px;
  border:2px solid var(--color-border-secondary);
  background:var(--color-background-secondary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  margin-top:2px;
  transition:all var(--transition-fast);
  color:white;
  font-size:14px;
  font-weight:700;
}
.toggle-row.checked .toggle-check{
  background:var(--color-danger-border);
  border-color:var(--color-danger-border);
  color:white;
}

/* ── Secondary OP ── */
.secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.sec-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:var(--radius-md);
  border:1.5px solid var(--color-border-secondary);
  background:var(--color-background-primary);
  cursor:pointer;
  transition:transform var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);
  min-height:52px;
}
.sec-toggle:hover{border-color:var(--color-accent);background:var(--color-brand-soft);}
.sec-toggle:active{transform:scale(.995);}
.sec-toggle.checked{
  background:var(--color-info-bg);
  border-color:var(--color-accent);
}
.sec-check{
  width:22px;
  height:22px;
  border-radius:5px;
  border:2px solid var(--color-border-secondary);
  background:var(--color-background-secondary);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  font-size:13px;
  transition:all var(--transition-fast);
  color:white;
}
.sec-toggle.checked .sec-check{background:var(--color-brand);border-color:var(--color-brand);}
.sec-label{font-size:0.875rem;color:var(--color-text-primary);line-height:1.45;font-weight:500;}
.sec-toggle.checked .sec-label{color:var(--color-info-text);font-weight:700;}

/* ── Drug cards ── */
.drug-card{
  position:relative;
  background:var(--color-background-primary);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  padding:1.15rem 1.3rem;
  margin-bottom:0.9rem;
  box-shadow:var(--shadow-sm);
  transition:border-color var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast);
}
.drug-card.selectable{cursor:pointer;}
.drug-card.selectable:hover{
  border-color:var(--color-brand-muted);
  background:var(--color-brand-soft);
  box-shadow:var(--shadow-md);
}
.drug-card.selectable:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px;}
.drug-card.first{
  border-color:var(--color-brand);
  background:var(--color-background-primary);
}
.drug-card.first .drug-name{color:var(--color-brand-strong);font-weight:600;}
.drug-card.second{background:#FFFFFF;border-color:var(--color-border-tertiary);}
.drug-card.selected{
  border-color:var(--color-brand);
  background:var(--color-brand-soft);
}
.drug-card.blocked{opacity:.5;}
.drug-card.blocked .drug-name{text-decoration:line-through;}
.warning-banner{
  display:block;
  margin:-0.25rem 0 0.75rem;
  padding:0.55rem 0.75rem;
  border-radius:var(--radius-sm);
  font-size:0.875rem;
  line-height:1.45;
  font-weight:700;
}
.warning-banner-contraindicated{
  background:var(--color-danger-bg);
  color:var(--color-danger-text);
  border:1px solid var(--color-danger-border);
}
.warning-banner-caution{
  background:var(--color-warn-bg);
  color:var(--color-warn-text);
  border:1px solid var(--color-warn-border);
}
.drug-title-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px;}
.drug-select-mark{
  width:24px;
  height:24px;
  border-radius:50%;
  border:2px solid var(--color-border-secondary);
  background:#FFFFFF;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#FFFFFF;
  font-size:14px;
  font-weight:700;
  line-height:1;
  pointer-events:none;
  flex-shrink:0;
  margin-top:2px;
  transition:background var(--transition-fast),border-color var(--transition-fast);
}
.drug-card.selected .drug-select-mark{background:var(--color-brand);border-color:var(--color-brand-strong);}
.drug-tag{
  display:inline-block;
  padding:4px 12px;
  border-radius:var(--radius-pill);
  font-size:0.8125rem;
  font-weight:600;
  margin-bottom:10px;
}
.drug-name{font-size:1.0625rem;font-weight:600;color:var(--color-text-primary);line-height:1.4;}
.drug-detail{font-size:0.875rem;color:var(--color-text-secondary);line-height:1.75;}
.drug-price{font-size:0.875rem;font-weight:700;margin-top:8px;color:var(--color-brand);}
.drug-warnings{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.drug-warn-tag{
  display:inline-flex;
  align-items:flex-start;
  gap:6px;
  padding:6px 12px;
  border-radius:var(--radius-sm);
  font-size:0.8125rem;
  line-height:1.5;
  white-space:normal;
}
.drug-warn-tag.contraindicated{
  background:var(--color-danger-bg);
  color:var(--color-danger-text);
  border:1px solid var(--color-danger-border);
}
.drug-warn-tag.wait{
  background:var(--color-warn-bg);
  color:var(--color-warn-text);
  border:1px solid var(--color-warn-border);
}
.drug-warn-tag.avoid{
  background:var(--color-warn-bg);
  color:var(--color-warn-text);
  border:1px solid var(--color-warn-border);
}
.drug-warn-tag.caution,.drug-warn-tag.required,.drug-warn-tag.recommended{
  background:var(--color-background-secondary);
  color:var(--color-text-secondary);
  border:1px solid var(--color-border-tertiary);
}
.drug-card.first .drug-warn-tag:not(.contraindicated):not(.wait){
  background:var(--color-info-bg);
  color:var(--color-info-text);
  border-color:var(--color-info-border);
}
.drug-card.second .drug-warn-tag:not(.contraindicated):not(.wait){
  background:#EEF6FC;
  color:#3E647E;
  border-color:var(--color-brand-muted);
}
.section-label{
  font-size:0.75rem;
  font-weight:600;
  color:var(--color-text-tertiary);
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:10px;
  margin-top:1.5rem;
  padding:0 0 0.35rem;
  border-bottom:1px solid var(--color-border-tertiary);
}
.section-label.secondary-section{color:var(--color-text-secondary);}
.section-label.blocked-section{color:var(--color-warn-text);border-bottom-color:var(--color-warn-border);}
.blocked-tag{
  display:inline-flex;
  align-items:flex-start;
  gap:4px;
  padding:5px 12px;
  border-radius:var(--radius-sm);
  background:var(--color-danger-bg);
  color:var(--color-danger-text);
  border:1px solid var(--color-danger-border);
  font-size:0.8125rem;
  margin:2px;
  line-height:1.5;
  white-space:normal;
}
.contraindication-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.secondary-rec{
  background:#FFF8E8;
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-md);
  padding:14px 16px;
  margin-bottom:10px;
}
.secondary-rec-title{font-size:0.9375rem;font-weight:700;color:var(--color-text-primary);margin-bottom:8px;}
.secondary-rec-body{font-size:0.875rem;color:var(--color-text-secondary);line-height:1.75;}
.note-toggle{margin-top:8px;border:1px solid var(--color-border-tertiary);border-radius:var(--radius-sm);background:#FFFFFF;overflow:hidden;}
.note-toggle:first-child{margin-top:0;}
.note-toggle summary{cursor:pointer;list-style:none;padding:10px 12px;font-weight:700;color:var(--color-text-primary);background:var(--color-background-secondary);display:flex;align-items:center;justify-content:space-between;gap:10px;}
.note-toggle summary::-webkit-details-marker{display:none;}
.note-toggle-label{display:flex;align-items:center;gap:10px;min-width:0;}
.note-toggle-icon{flex-shrink:0;color:var(--color-brand);display:block;}
.note-toggle--nutrition .note-toggle-icon{color:#2F7D4A;}
.note-toggle--exercise .note-toggle-icon{color:var(--color-brand);}
.note-toggle--avoid .note-toggle-icon{color:#B45309;}
.note-toggle summary::after{content:"＋";font-weight:700;color:var(--color-text-tertiary);flex-shrink:0;}
.note-toggle[open] summary::after{content:"−";}
.note-toggle div{padding:12px;color:var(--color-text-secondary);line-height:1.75;}

/* ── Patient explanation ── */
.explain-intro{
  margin:0 0 1rem;
  padding:12px 14px;
  border-radius:var(--radius-md);
  background:var(--color-brand-soft);
  border:1px solid var(--color-brand-muted);
  font-size:0.875rem;
  color:var(--color-text-secondary);
  line-height:1.7;
}
.explain-intro strong{color:var(--color-brand-strong);}
.explain-card{
  background:var(--color-background-primary);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-lg);
  padding:1.25rem 1.35rem;
  margin-bottom:1rem;
  box-shadow:var(--shadow-sm);
}
.explain-title{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary);line-height:1.45;margin-bottom:4px;}
.explain-sub{font-size:0.8125rem;color:var(--color-text-secondary);line-height:1.65;margin-bottom:14px;}
.explain-list{display:flex;flex-direction:column;gap:10px;}
.explain-item{
  padding:12px 14px;
  border-radius:var(--radius-md);
  background:var(--color-background-secondary);
  border:1px solid var(--color-border-tertiary);
  font-size:0.875rem;
  color:var(--color-text-secondary);
  line-height:1.75;
}
.explain-item-key{
  background:var(--color-brand-soft);
  border-color:var(--color-brand-muted);
  border-left:4px solid var(--color-brand);
}
.explain-item-title{
  font-size:0.9375rem;
  font-weight:700;
  color:var(--color-text-primary);
  line-height:1.5;
  margin-bottom:6px;
}
.explain-item-body{color:var(--color-text-secondary);line-height:1.75;}
.explain-item-body strong{color:var(--color-brand-strong);font-weight:700;}
.explain-callout{
  margin-bottom:1rem;
  padding:14px 16px;
  border-radius:var(--radius-md);
  background:var(--color-info-bg);
  border:1.5px solid var(--color-info-border);
}
.explain-callout-title{
  font-size:0.9375rem;
  font-weight:700;
  color:var(--color-info-text);
  margin-bottom:8px;
}
.explain-callout p{
  margin:0;
  font-size:0.875rem;
  color:var(--color-text-secondary);
  line-height:1.75;
}
.explain-callout strong{color:var(--color-info-text);font-weight:700;}

/* ── Feedback CTA ── */
.feedback-cta{
  margin:1.75rem auto .75rem;
  text-align:center;
  padding:1.75rem 1.5rem;
  border-radius:var(--radius-lg);
  background:var(--color-background-primary);
  border:1px solid var(--color-border-tertiary);
}
.feedback-cta-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin-bottom:14px;line-height:1.45;}
.feedback-cta-body{max-width:560px;margin:0 auto 20px;font-size:0.9375rem;color:var(--color-text-secondary);line-height:1.8;}
.feedback-btn{
  width:min(520px,100%);
  min-height:54px;
  padding:12px 18px;
  border:1px solid var(--color-brand);
  border-radius:var(--radius-md);
  background:#FFFFFF;
  color:var(--color-brand);
  font-size:1rem;
  font-weight:600;
  transition:background var(--transition-fast),color var(--transition-fast);
}
.feedback-btn:hover{background:var(--color-brand-soft);color:var(--color-brand-strong);}
.feedback-btn:active{transform:scale(.98);}

/* ── Fixed action bar (step 4) ── */
.step4-action-bar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:2000;
  margin-top:0;
  padding:14px 16px calc(22px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  border-top:1px solid var(--color-border-tertiary);
  box-shadow:0 -4px 24px rgba(26,35,50,.06);
  display:flex;
  justify-content:center;
}
.step4-action-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:min(640px,calc(100vw - 32px));
}
.step4-data-note{
  font-size:11px;
  color:#8A96A3;
  line-height:1.55;
  margin:0 0 10px;
  text-align:center;
}
.step4-action-btn{
  width:100%;
  min-height:58px;
  font-size:1.0625rem;
}
.step4-action-btn.prompt{
  background:#FFFFFF;
  border:2px dashed var(--color-brand);
  color:var(--color-brand-strong);
  font-size:1.125rem;
  font-weight:700;
  letter-spacing:.02em;
  box-shadow:0 0 0 0 rgba(10,95,122,.18);
  animation:step4-btn-prompt 2.2s ease-in-out infinite;
  cursor:default;
  opacity:1;
}
@keyframes step4-btn-prompt{
  0%,100%{box-shadow:0 0 0 0 rgba(10,95,122,.15);}
  50%{box-shadow:0 0 0 6px rgba(10,95,122,.08);}
}
.step4-action-btn.ready{
  background:#D97706;
  border-color:#D97706;
  color:#FFFFFF;
  animation:none;
}
.step4-action-btn.ready:hover{
  background:#B45309;
  border-color:#B45309;
}
.step4-action-btn.prompt:disabled,
.step4-action-btn.prompt:disabled:hover{
  background:#FFFFFF;
  border-color:var(--color-brand);
  color:var(--color-brand-strong);
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .progress-fill{transition:none;}
  .step4-action-btn.prompt{animation:none;}
}

/* ── Mobile（480px以下）── */
@media (max-width:480px){
  html{font-size:17px;}
  .app-header{padding:1.85rem 1rem 1.65rem;}
  .app-header-title{font-size:1.25rem;letter-spacing:.12em;}
  .app-header-subtitle{font-size:0.75rem;}
  .app{max-width:none;padding:1rem .85rem 2rem;}
  .progress-wrap{padding:.85rem .75rem .75rem;}
  .progress-step-dot{width:24px;height:24px;font-size:0.625rem;}
  .progress-step-label{font-size:0.5625rem;}
  .progress-bar{height:6px;margin-bottom:0;}
  .progress-hint{font-size:0.625rem;}
  .btn-group.age-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .nav-row{
    bottom:8px;
    margin-left:-.15rem;
    margin-right:-.15rem;
    border-radius:var(--radius-md);
  }
  .step-badge{width:38px;height:38px;font-size:0.9375rem;}
  .step-title{font-size:1.0625rem;}
  .card{padding:1.15rem;}
  .q-label{font-size:0.6875rem;}
  .q-text{font-size:1.0625rem;line-height:1.7;margin-bottom:14px;}
  .alert{font-size:0.875rem;padding:13px 14px;}
  .btn{font-size:1rem;min-height:52px;padding:12px 16px;flex:1 1 auto;}
  .nav-btn{font-size:1rem;min-height:54px;padding:13px 18px;}
  .fx-option{padding:14px;}
  .fx-radio{width:24px;height:24px;}
  .fx-radio-dot{width:10px;height:10px;}
  .fx-title{font-size:1.0625rem;}
  .fx-sub{font-size:0.875rem;}
  .bmd-grid{grid-template-columns:1fr;}
  .bmd-row label{font-size:0.875rem;width:88px;}
  .bmd-row input{font-size:1.375rem;min-height:52px;}
  .bmd-sign{width:44px;font-size:1.25rem;}
  .result-val{font-size:1.375rem;}
  .toggle-row{padding:14px;}
  .toggle-label{font-size:1rem;}
  .toggle-check{width:28px;height:28px;font-size:16px;}
  .secondary-grid{grid-template-columns:1fr;}
  .sec-toggle{min-height:56px;}
  .sec-label{font-size:1rem;}
  .drug-name{font-size:1.125rem;}
  .drug-detail{font-size:0.9375rem;}
  .explain-title{font-size:1.125rem;}
  .explain-item{font-size:0.9375rem;}
  .feedback-cta-title{font-size:1.125rem;}
  .feedback-btn{font-size:1rem;min-height:54px;}
  .step4-action-btn{min-height:56px;font-size:1rem;}
  .step4-action-btn.prompt{font-size:1.0625rem;}
  .has-step4-action .app-footer{padding-bottom:112px;}
}

@media (max-width:360px){
  .bmd-row{
    display:block;
  }
  .bmd-row label{
    display:block;
    width:auto;
    margin-bottom:6px;
  }
  .bmd-input-wrap{
    width:100%;
  }
}

/* ── STEP5 診療チートシート ── */
.cs-drug-header{
  background:linear-gradient(135deg,var(--color-brand) 0%,var(--color-brand-strong) 100%);
  color:#fff;
  border-radius:var(--radius-lg);
  padding:18px 20px;
  margin-bottom:14px;
}
.cs-drug-name{font-size:1.1rem;font-weight:700;line-height:1.4;margin-bottom:4px;}
.cs-drug-sub{font-size:0.8125rem;opacity:.85;line-height:1.5;}

.cs-section{
  background:var(--color-background-primary);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-md);
  padding:16px 18px;
  margin-bottom:12px;
}
.cs-section-title{
  font-size:0.8125rem;
  font-weight:700;
  color:var(--color-text-secondary);
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.cs-today-list{list-style:none;display:flex;flex-direction:column;gap:8px;}
.cs-today-list li{
  font-size:0.9375rem;font-weight:600;color:var(--color-text-primary);
  line-height:1.55;padding-left:18px;position:relative;
}
.cs-today-list li::before{
  content:'▶';position:absolute;left:0;font-size:.6rem;color:var(--color-brand);top:4px;
}
.cs-qa-list{display:flex;flex-direction:column;gap:10px;}
.cs-qa-item{background:var(--color-background-secondary);border-radius:var(--radius-sm);padding:10px 14px;}
.cs-qa-q{font-size:0.875rem;font-weight:700;color:var(--color-text-primary);margin-bottom:4px;}
.cs-qa-a{font-size:0.875rem;color:var(--color-text-secondary);line-height:1.6;}
.cs-check-list{list-style:none;display:flex;flex-direction:column;gap:8px;}
.cs-check-list li{font-size:0.9rem;color:var(--color-text-primary);line-height:1.5;display:flex;align-items:baseline;gap:8px;}
.cs-checkbox{font-size:1rem;color:var(--color-brand);flex-shrink:0;font-weight:700;}
.cs-detail-toggle{
  background:var(--color-background-primary);
  border:1px solid var(--color-border-tertiary);
  border-radius:var(--radius-md);
  margin-bottom:12px;overflow:hidden;
}
.cs-detail-toggle>summary{
  cursor:pointer;list-style:none;padding:14px 18px;
  font-size:0.9rem;font-weight:600;color:var(--color-brand);
  display:flex;align-items:center;gap:8px;user-select:none;
}
.cs-detail-toggle>summary::before{content:'▶';font-size:.65rem;transition:transform .2s;}
.cs-detail-toggle[open]>summary::before{transform:rotate(90deg);}
.cs-detail-body{padding:0 18px 16px;}
.cs-viewed-section{background:var(--color-brand-soft);border-color:var(--color-brand-muted);}
.cs-viewed-drugs{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;}
.cs-viewed-btn{
  background:#fff;border:1.5px solid var(--color-brand-muted);border-radius:var(--radius-pill);
  padding:7px 14px;font-size:0.8125rem;font-weight:600;color:var(--color-brand);
  cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast);
  line-height:1.3;text-align:left;
}
.cs-viewed-btn:hover{background:var(--color-brand-muted);}
.cs-pearl{
  display:flex;align-items:flex-start;gap:10px;
  background:linear-gradient(135deg,#EAF4FF 0%,#F0F7FF 100%);
  border:1px solid #BFD9F2;border-radius:var(--radius-md);
  padding:14px 16px;margin-bottom:12px;
}
.cs-pearl-icon{font-size:1.1rem;flex-shrink:0;margin-top:1px;}
.cs-pearl-text{font-size:0.875rem;font-weight:600;color:#1A3A5C;line-height:1.65;}
