:root {
  color-scheme: dark;
  --paper: #211637;
  --surface: #2b2043;
  --inset: #261b3d;
  --raised: #382950;
  --lav: #463461;
  --ink: #f8f2ff;
  --muted: #d8cde7;
  --purple: #dac2ff;
  --line: #55446e;
  --control-line: #87759f;
  --accent-line: #b89bdc;
  --lime: #e4f59f;
  --lime-hover: #edfbbd;
  --on-lime: #252136;
  --ok: #dfedb5;
  --ok-surface: #343e35;
  --ok-line: #7e966d;
  --amber: #ffe0b9;
  --amber-surface: #4a3442;
  --amber-line: #aa8178;
  --danger: #ffd0ce;
  --danger-surface: #552f46;
  --danger-line: #b77c90;
}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 "Segoe UI","Microsoft YaHei",system-ui,sans-serif}a{color:var(--purple);text-underline-offset:3px}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--control-line);border-radius:9px;background:var(--surface);padding:9px 12px;font-weight:620}button:hover{background:var(--raised);border-color:var(--accent-line)}button[disabled]{opacity:.6;cursor:not-allowed}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent-line);outline-offset:3px}.primary{background:var(--lime);border-color:var(--lime);color:var(--on-lime)}.primary:hover{background:var(--lime-hover);border-color:var(--lime-hover);color:var(--on-lime)}.quiet{background:transparent;padding:6px 9px}.subtle{color:var(--amber);background:var(--amber-surface);border-color:var(--amber-line)}.warn{background:var(--danger-surface);color:var(--danger);border-color:var(--danger-line)}.warn:hover{background:var(--raised);border-color:var(--danger)}.success{background:var(--ok-surface);border-color:var(--ok-line);color:var(--ok)}.skip{position:absolute;left:-300px;top:10px;padding:8px 13px;background:var(--lime);color:var(--on-lime);z-index:50}.skip:focus{left:10px}
.top{position:sticky;top:0;z-index:10;background:var(--inset);border-bottom:1px solid var(--line)}.top-inner{height:62px;width:min(1440px,calc(100% - 48px));margin:auto;display:flex;justify-content:space-between;align-items:center;gap:13px}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink)}.brand b{font:700 22px Georgia,serif}.brand span{font-size:10px;color:var(--muted);letter-spacing:2px;margin-left:3px}.top-links{display:flex;align-items:center;gap:14px;font-size:12px}.top-links a{text-decoration:none}.top-links a:hover{text-decoration:underline}
.layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:206px minmax(0,1fr) 290px;gap:21px;padding:22px 23px 55px;align-items:start}.sidebar,.echo{position:sticky;top:84px}.sidebar{padding:13px 2px}.side-label,.kicker{font-size:10px;letter-spacing:.15em;color:var(--purple);font-weight:780}.sidebar h1{font-size:24px;margin:8px 0 5px;line-height:1.4}.sidebar nav{margin-top:22px;display:grid;gap:6px}.sidebar nav button{border-color:transparent;background:transparent;display:flex;align-items:start;gap:8px;padding:10px 8px;text-align:left;width:100%}.sidebar nav button b,.sidebar nav button small{display:block}.sidebar nav button b{font-size:13px}.sidebar nav button small{font-size:10px;color:var(--muted);font-weight:400;margin-top:2px}.sidebar nav button[aria-current]{background:var(--lav);border-color:var(--accent-line);color:var(--purple)}.sidebar nav button:hover{background:var(--raised)}.side-note{margin:24px 6px 9px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.home-link{margin-left:6px;font-size:12px}.work{min-width:0;outline:0}.pagehead{margin:12px 0 20px}.pagehead h1{font-size:clamp(27px,3.1vw,40px);line-height:1.3;margin:7px 0 8px;letter-spacing:-.045em}.pagehead p{color:var(--muted);max-width:680px;margin:0}.tag{display:inline-block;white-space:nowrap;border-radius:25px;font-size:10px;padding:3px 8px;background:var(--raised);color:var(--muted);font-weight:700;vertical-align:middle}.tag.violet{background:var(--lav);color:var(--purple)}.tag.green{background:var(--ok-surface);color:var(--ok)}.tag.amber{background:var(--amber-surface);color:var(--amber)}.tag.danger{background:var(--danger-surface);color:var(--danger)}.card{padding:17px 18px;background:var(--surface);border:1px solid var(--line);border-radius:13px;margin:0 0 13px;min-width:0}.card h3{margin:0 0 7px;font-size:17px}.card h4{font-size:13px;margin:12px 0 6px}.card p{margin:6px 0 11px}.card .muted,.muted{color:var(--muted);font-size:12px}.cards,.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.cards .card{margin-bottom:0}.cards h3{margin:5px 0}.cards p{font-size:12px;color:var(--muted)}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson h3{font-size:18px;margin:9px 0 5px}.lesson p{font-size:13px;color:var(--muted)}.spread,.brief{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}.spread h3{margin:0}.brief{margin-top:13px;font-size:13px}.brief span{color:var(--muted);font-size:12px}.brief a{font-size:11px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px}.actions button{font-size:12px}.notice{padding:10px 13px;border-left:3px solid var(--accent-line);background:var(--lav);border-radius:5px;margin:13px 0;color:var(--purple);font-size:12px}.notice.success{background:var(--ok-surface);border-left-color:var(--ok-line)}.notice.amber{background:var(--amber-surface);border-left-color:var(--amber-line);color:var(--amber)}.check{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px}.check input{accent-color:var(--lime)}.inbox{display:grid;gap:8px;margin-top:9px}.msg{padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--inset)}.msg:nth-child(2n){background:var(--amber-surface);border-color:var(--amber-line)}.msg p{margin:3px 0 0;font-size:13px}.msg small,.receipt small{font-size:10px;font-weight:650;color:var(--muted)}.channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.tool{display:block;text-align:left;padding:9px 11px;width:100%;line-height:1.5;font-size:12px}.tool b,.tool span{display:block}.tool span{font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}.tool small{font-size:10px;color:var(--ok);margin-left:6px}.tool.chosen{background:var(--lav);border-color:var(--accent-line);color:var(--purple)}.response .tool.chosen{background:var(--ok-surface);border-color:var(--ok-line);color:var(--ok)}.lookup{background:var(--inset);padding:9px 11px;border-radius:8px;margin:10px 0}.lookup p{font-size:12px;margin:0}.empty{border:1px dashed var(--control-line);padding:10px 12px;border-radius:7px;color:var(--muted);font-size:12px}.receipt-list{display:grid;gap:7px;max-height:360px;overflow:auto}.receipt{background:var(--inset);border:1px solid var(--line);border-radius:8px;padding:9px 11px}.receipt b{font-size:12px}.receipt p{margin:3px 0 1px;font-size:12px}.facts{display:flex;gap:8px;flex-wrap:wrap;font-size:11px}.facts span{padding:4px 7px;background:var(--raised);border-radius:5px}.action-list{display:grid;gap:7px}.action-list>button{text-align:left}.activity{border-left:2px solid var(--accent-line);background:var(--raised);font-size:12px;margin-top:10px;padding:8px 10px}.dimensions{display:grid;gap:8px;margin-top:10px}.dimensions>div{background:var(--inset);border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:12px}.dimensions p{color:var(--muted);margin:4px 0 0;font-size:12px}.outcome.passed{border-color:var(--ok-line)}.trace{list-style:none;margin:12px 0 2px;padding:0;display:grid;gap:7px}.trace li{display:flex;gap:8px;align-items:start;font-size:12px}.trace li span{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:50%;background:var(--lav);color:var(--purple);font-size:10px}.trace small{color:var(--muted)}.card summary{cursor:pointer;font-size:13px;font-weight:680}.report-entry>.outcome{margin-top:12px;border-radius:9px;background:var(--surface)}.media video{width:100%;display:block;max-height:420px;aspect-ratio:16/9;background:#28243d;border-radius:9px}.media .spread{margin-top:8px;color:var(--muted);font-size:11px}.media a{font-size:11px}.echo{background:var(--raised);border:1px solid var(--line);border-radius:15px;padding:13px;display:flex;flex-direction:column;max-height:calc(100dvh - 103px);min-height:450px}.echo-head{display:flex;gap:9px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:11px}.echo-head b{display:block;font-size:15px}.echo-head small{display:block;font-size:10px;color:var(--muted)}.echo-context{font-size:10px;color:var(--muted);padding:9px 1px 6px}.messages{flex:1;min-height:120px;overflow:auto;display:flex;flex-direction:column;gap:7px}.bubble{background:var(--surface);border:1px solid var(--line);border-radius:0 9px 9px 9px;padding:8px 9px;font-size:12px;white-space:pre-wrap}.bubble p{margin:0}.bubble small{display:block;margin-top:5px;padding-top:5px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.bubble.user{margin-left:12px;background:var(--ok-surface);border-color:var(--ok-line);border-radius:9px 0 9px 9px}.echo form label{display:block;font-size:10px;color:var(--muted);margin-top:7px}.echo textarea{display:block;width:100%;padding:7px 8px;min-height:59px;resize:vertical;background:var(--surface);color:var(--ink);border:1px solid var(--control-line);border-radius:7px;font-size:11px;margin:3px 0 6px}.echo form button{width:100%;font-size:12px;padding:7px 9px}.echo #coach-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.echo #coach-actions button{font-size:10px;padding:6px 8px}.echo [hidden]{display:none}dialog{max-width:min(550px,calc(100% - 26px));border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);padding:19px 21px;line-height:1.7}dialog::backdrop{background:#231c39a8}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head h2{font-size:19px;margin:0}dialog p{font-size:13px}dialog a{font-size:12px}#toast{position:fixed;z-index:30;bottom:16px;left:50%;transform:translateX(-50%);padding:9px 13px;background:var(--surface);color:white;border-radius:8px;max-width:calc(100% - 30px);box-shadow:0 8px 25px #31254645;font-size:12px}
@media(max-width:1100px){.layout{grid-template-columns:166px minmax(0,1fr) 244px;gap:12px;padding-inline:16px}.echo{padding:10px}.top-inner{width:calc(100% - 32px)}.sidebar h1{font-size:20px}.card{padding:13px}}@media(max-width:860px){.layout{grid-template-columns:145px minmax(0,1fr)}.echo{grid-column:2;position:static;min-height:0;max-height:none}.messages{max-height:260px;min-height:0}.sidebar nav button{padding:9px 6px}.sidebar nav small{line-height:1.4}}@media(max-width:580px){.top{position:static}.top-inner{height:55px;width:calc(100% - 24px)}.brand span{display:none}.brand b{font-size:19px}.brand img{width:32px;height:32px}.top-links{gap:8px;font-size:10px}.top-links .quiet{font-size:10px;padding:5px 7px}.layout{display:block;padding:9px 12px 26px}.sidebar{position:static;padding:0}.sidebar h1,.sidebar .tag,.side-label,.side-note,.sidebar .home-link{display:none}.sidebar nav{display:flex;overflow:auto;gap:3px;margin:0;padding:0 0 4px;scrollbar-width:thin}.sidebar nav button{width:auto;flex:0 0 auto;padding:6px 8px;font-size:11px}.sidebar nav button b{font-size:11px;white-space:nowrap}.sidebar nav button small{display:none}.pagehead{margin:13px 0}.pagehead h1{font-size:26px}.pagehead p{font-size:12px}.card{padding:11px}.card h3{font-size:15px}.cards{gap:6px}.cards p{font-size:10px}.cards h3{font-size:12px}.lesson-grid{gap:8px}.lesson .spread{gap:4px}.lesson h3{font-size:15px}.lesson p{font-size:11px}.lesson button{padding:6px 7px;font-size:11px}.channel-grid{gap:5px}.tool{font-size:11px}.actions button{font-size:11px}.echo{margin-top:15px}.receipt-list{max-height:none}}


/* Illustrated scenario guides and task context */
.fraud-guide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  margin: 0 0 14px;
}
.fraud-guide-card, .family-guide, .task-figure {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--surface);
}
.fraud-guide-card { display: flex; flex-direction: column; }
.fraud-guide-card img, .family-guide img, .task-figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: var(--raised);
}
.fraud-guide-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 14px; }
.fraud-guide-copy h3, .family-guide h3 { margin: 7px 0 2px; font-size: 18px; line-height: 1.3; }
.fraud-guide-copy p, .family-guide p { margin: 4px 0 12px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.fraud-guide-copy .actions { margin-top: auto; gap: 5px; }
.fraud-guide-copy .actions button { padding-inline: 8px; }
.family-guide {
  display: grid;
  grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr);
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
  padding: 11px;
}
.family-guide img { border-radius: 9px; }
.family-guide > div { padding: 6px 10px 6px 0; }
.family-guide .actions { margin-top: 4px; }



@media(max-width:1220px) {
  .fraud-guide { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .fraud-guide-card { display: grid; grid-template-columns: minmax(0,.76fr) minmax(0,1.24fr); }
  .fraud-guide-card img { height: 100%; min-height: 128px; }
}
@media(max-width:580px) {
  .fraud-guide-card { display: flex; }
  .fraud-guide-card img { height: auto; }
  .fraud-guide-copy { padding: 12px; }
  .fraud-guide-copy h3, .family-guide h3 { font-size: 17px; }
  .family-guide { grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 10px; }
  .family-guide > div { padding: 2px 0; }




}

/* Community edition */
.community-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 18px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--raised);
  margin-bottom: 15px;
}
.community-lead h3 { font-size: clamp(21px, 2.5vw, 29px); line-height: 1.3; margin: 0 0 8px; }
.community-lead p { margin: 0 0 10px; }
.community-lead img { display: block; max-width: 100%; height: auto; border-radius: 10px; }
.community-cases .card p { margin-block: 4px 9px; }
.echo-dock { min-width: 0; position: sticky; top: 84px; }
.echo-dock .echo, .coach-inline .echo { position: static; }
.echo-context { margin: 0; }
.coach-inline:empty, .echo-dock:empty { display: none; }
.coach-inline { margin-block: 12px; }
.coach-inline .messages { min-height: 0; max-height: 155px; }
#coach-actions { display: flex; gap: 8px; flex-wrap: wrap; }
#real-help { display: inline-flex; align-items: center; padding: 6px 8px; border: 1px solid; border-radius: 9px; text-decoration: none; font-weight: 650; background: var(--amber-surface); border-color: var(--amber-line); color: var(--amber); }
.reading { max-width: 800px; padding: 20px 18px 45px; margin: auto; font-size: 17px; }
.reading h1 { line-height: 1.3; }
.reading ol, .reading ul { padding-inline-start: 1.55em; }
.reading li { margin-block: 8px; }
.reading a { overflow-wrap: anywhere; }
@media (max-width: 850px) {
  body { font-size: 17px; line-height: 1.6; }
  .layout { display: block; padding: 12px 14px 35px; }
  .top { position: static; }
  .top-inner { width: calc(100% - 24px); min-height: 57px; height: auto; padding-block: 6px; }
  .brand b { font: 750 19px/1.3 "Microsoft YaHei", system-ui, sans-serif; white-space: nowrap; }
  .brand img { width: 28px; height: 28px; }
  .top-links { gap: 9px; font-size: 15px; }
  .top-links > a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
  button, #real-help { min-height: 44px; font-size: 16px; line-height: 1.45; }
  .sidebar, .echo-dock { position: static; }
  .sidebar { padding: 0 0 12px; }
  .sidebar h1 { font-size: 21px; margin: 0 0 5px; }
  .sidebar nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 9px; }
  .sidebar nav button { padding: 8px 10px; border: 1px solid var(--line); }
  .sidebar nav small { display: none; }
  .side-note { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; font-size: 15px; }
  .side-note p { display: none; }
  .side-note a { display: inline-flex; min-height: 44px; align-items: center; }
  .pagehead h1 { font-size: clamp(25px, 5vw, 34px); line-height: 1.25; }
  .pagehead p, .muted, .notice, .msg p, .receipt p, .task-figure p,
  .fraud-guide-copy p, .family-guide p, .lesson p, .dimensions p, .tool span,
  .echo-head small, .echo-context, .bubble p, .activity { font-size: 16px; line-height: 1.55; }
  .kicker, .msg small, .receipt small, .tag, .facts span, .bubble small { font-size: 14px; line-height: 1.5; }
  .scenario-context, .community-cases, .lesson-grid, .channel-grid, .dimensions,
  .community-lead, .family-guide { grid-template-columns: minmax(0, 1fr); }
  .community-lead img { max-height: 185px; width: 100%; object-fit: cover; }
  .task-figure img { max-height: 178px; object-fit: cover; }
  .community-lead, .card, .echo { padding: 13px; }
  .card, .echo, .pagehead, .receipt, .top-links { min-width: 0; }
  .echo { margin-top: 0; }
  .echo-dock .echo { display: none; }
  .spread, .brief { flex-wrap: wrap; }
  .tool { min-height: 48px; text-align: left; }
  dialog { max-height: calc(100dvh - 28px); width: min(calc(100% - 24px), 560px); }
}
@media print {
  @page { size: A4; margin: 14mm; }
  body { background: white; color: #151515; }
  .no-print { display: none; }
  .organizer { margin: 0; padding: 0; max-width: none; font-size: 11pt; }
  .organizer h1 { margin-top: 0; font-size: 20pt; }
  .organizer h2 { margin: 0 0 6px; font-size: 15pt; }
  .organizer .card { break-inside: avoid; border-color: #888; padding: 10px 12px; }
}

.text-lesson img { display: block; width: min(100%, 550px); height: auto; border-radius: 10px; }
.text-lesson li { margin-block: 7px; }
@media (max-width: 850px) {
  .top { position: sticky; top: 0; }
  .sidebar nav { display: grid; }
  .sidebar nav button b, .actions button, .tool b, .echo #coach-actions button, .community-cases button, .lesson button { font-size: 16px; line-height: 1.4; }
  .sidebar .side-note { display: none; }
  .coach-inline .messages { max-height: none; }
  .coach-inline .bubble:not(:last-child) { display: none; }
  button, summary { scroll-margin-top: 70px; }
}

.public-filing { text-align: center; padding: 12px 16px 22px; font-size: 14px; }

.case-jumps { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.case-jumps button { min-height: 44px; }
.case-section { scroll-margin-top: 76px; }
.case-section:focus-visible { outline: 2px solid var(--purple); outline-offset: 3px; }
.case-receipt, .receipt-history { margin-top: 8px; }
.receipt-history summary { min-height: 44px; display: list-item; padding: 10px 2px; cursor: pointer; }
.receipt-history .receipt-list { margin-top: 6px; }
@media (max-width: 850px) {
  .case-active .sidebar { display: none; }
  .case-jumps button { padding-inline: 8px; font-size: 16px; }
}

.layout.route-overview { display: block; max-width: 1080px; }
.route-overview .sidebar, .route-overview .echo-dock, .case-outcome .echo-dock, #echo[hidden] { display: none; }
.case-outcome { grid-template-columns: 206px minmax(0, 1fr); max-width: 1160px; }
.sidebar-title { margin: 0 0 12px; font-weight: 750; font-size: 19px; }
.sidebar nav [aria-current="step"] { background: var(--lav); border-color: var(--accent-line); color: var(--purple); }
.sidebar nav button:disabled { opacity: .62; cursor: default; }
.route-review .outcome { padding: 9px 0; border: 0; background: transparent; box-shadow: none; }
.record-trace { margin-top: 8px; border-top: 1px solid var(--line); }
.record-trace summary { padding-block: 8px; cursor: pointer; }
.emergency-contacts { padding-inline-start: 1.5em; }
.emergency-contacts a { font-weight: 750; white-space: nowrap; }
@media (max-width: 1100px) { .case-outcome { grid-template-columns: 166px minmax(0, 1fr); } }
@media (max-width: 850px) {
  .record-trace summary { min-height: 44px; }
}

.response .lookup .tool { font-size: 16px; line-height: 1.5; }
.response .lookup h4, .response .lookup p, .report-preview p { font-size: 16px; }
.response .lookup p { margin: 4px 0 8px; }

.loading-card { max-width: 660px; padding: clamp(16px, 4vw, 32px); }
.loading-card h1 { margin: 0 0 10px; font-size: clamp(25px, 4vw, 40px); line-height: 1.2; }
#real-help-details { position: relative; }
#real-help { cursor: pointer; }
#real-help::marker { content: ""; }
#real-help::-webkit-details-marker { display: none; }
#real-help-panel {
  position: absolute;
  z-index: 1;
  top: calc(100% + 8px);
  right: 0;
  width: min(430px, calc(100vw - 24px));
  max-height: 72vh;
  max-height: 72dvh;
  overflow: auto;
  padding: 14px 16px;
  border: 1px solid var(--amber-line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 8px 28px #39284928;
}
#real-help-panel h2 { margin: 0 0 6px; font-size: 20px; }
#real-help-panel p { margin: 6px 0; }
#real-help-panel ul { margin-block: 4px; }
@media (max-width: 850px) {
  #real-help-panel { font-size: 16px; }
  #real-help-panel .emergency-contacts a { display: inline-flex; align-items: center; min-height: 44px; }
}

.contact-phrase { margin: 8px 0 10px; }
.contact-phrase summary { padding-block: 10px; cursor: pointer; color: var(--purple); }
.contact-phrase p[lang="en"] { font-weight: 700; }
@media (max-width: 850px) { .contact-phrase summary { min-height: 44px; } }

.route-review h2 { margin: 0; font-size: 20px; }
.review-finding { margin: 8px 0 4px; }
.review-improvement { margin: 4px 0; color: var(--ok); }
.review-details { margin-top: 8px; border-top: 1px solid var(--line); }
.review-details > summary { padding-block: 10px; cursor: pointer; }
@media (max-width: 850px) {
  .review-finding, .review-improvement { font-size: 16px; }
  .review-details > summary { min-height: 44px; }
}

@media (max-width: 850px) {
  #case-receipt-group { scroll-margin-block: 75px 12px; }
  #case-receipt-group .coach-inline { margin-bottom: 0; }
}

.transfer-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 10px;
  margin-block: 12px;
}
.transfer-summary > section {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--inset);
}
.transfer-summary h4 { margin: 0; font-size: 16px; }
.transfer-summary p { margin: 7px 0 0; font-size: 14px; }
.practice-note p { margin: 4px 0 0; }
.saved-brief ul { margin: 6px 0 0; padding-inline-start: 22px; }
.saved-brief li + li { margin-top: 5px; }
@media (max-width: 850px) {
  .transfer-summary p, .practice-note, .saved-brief { font-size: 16px; }
  .saved-brief summary { min-height: 44px; display: list-item; padding-block: 8px; }
}

.saved-itinerary {
  margin-block: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--inset);
}
.saved-itinerary h4, .arrival-check h4 { margin: 0 0 8px; font-size: 16px; }
.trip-fields { margin: 0; }
.trip-fields > div { padding: 8px 0; border-top: 1px solid var(--line); }
.trip-fields dt { font-size: 14px; font-weight: 700; }
.trip-fields dd { margin: 3px 0 0; color: var(--muted); font-size: 14px; }
.saved-itinerary .actions { margin-top: 6px; }
.arrival-check { margin-block: 12px; scroll-margin-block: 70px 12px; }
.arrival-check > div { border-top: 1px solid var(--line); padding-block: 8px; }
.arrival-check > div:last-child { padding-bottom: 0; }
.last-place p { font-size: 16px; }
.last-place details { margin-top: 8px; }
.last-place details[open] > summary { margin-bottom: 8px; }
@media (max-width: 850px) {
  .trip-fields dd, .arrival-check p { font-size: 16px; }
  .last-place summary { min-height: 44px; padding-block: 9px; }
}

.contact-options {
  display: grid;
  min-inline-size: 0;
  gap: 7px;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
}
.contact-options legend {
  padding: 0;
  margin-bottom: 6px;
  font-weight: 700;
}
.contact-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  cursor: pointer;
}
.contact-option input {
  margin: 3px 0 0;
  width: 17px;
  height: 17px;
  accent-color: var(--purple);
}
.contact-option .contact-copy { margin: 0; color: var(--ink); }
.contact-option.selected { border-color: var(--accent-line); background: var(--lav); }
.contact-option:focus-within { outline: 2px solid var(--purple); outline-offset: 2px; }
.report-draft, .committed-contact { margin-top: 10px; }
.report-draft p { margin-top: 4px; }
@media (max-width: 850px) {
  .contact-options legend, .report-draft p, .committed-contact p { font-size: 16px; }
}

.response .report-builder .tool.chosen {
  background: var(--lav);
  border-color: var(--accent-line);
  color: var(--purple);
}

/* Outbound safety landing */
body {
  min-height: 100vh;
  background: radial-gradient(ellipse at 74% 0%, #3b2857, transparent 53rem), var(--paper);
}
.top { background: #251a3c; }
.brand b { font-size: 21px; }
#real-help { min-height: 40px; padding-inline: 12px; }
#real-help:hover { background: #5a3d47; border-color: var(--amber); }
.layout.landing-layout { max-width: 1280px; padding-top: clamp(14px, 2.4vw, 32px); }
.journey-hero {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--inset);
  overflow: hidden;
}
.journey-slide {
  position: relative;
  display: grid;
  align-items: center;
  isolation: isolate;
  min-height: clamp(342px, 36vw, 430px);
  padding: clamp(30px, 5vw, 70px);
  background: #1b112e;
}
.journey-slide[hidden] { display: none; }
.journey-slide-photo {
  position: absolute;
  z-index: -2;
  inset: 0 0 0 auto;
  width: 87%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
  animation: journey-picture-in .65s ease-out both;
}
@keyframes journey-picture-in {
  from { opacity: .48; transform: scale(1.02); }
  to { opacity: 1; transform: scale(1); }
}
.journey-slide::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, #1b112e 4%, #1b112ef7 29%, #1b112ed9 48%, #21143358 72%, #25173512),
              linear-gradient(0deg, #1b112e80, transparent 24%);
}
.journey-slide-copy { max-width: 650px; }
.journey-slide .kicker {
  margin: 0;
  color: var(--lime);
  font-size: clamp(13px, 1.5vw, 16px);
  letter-spacing: .13em;
}
.journey-slide h1, .journey-slide h2 {
  margin: 10px 0 16px;
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.12;
  text-wrap: balance;
}
.journey-slide h1 { font-size: clamp(35px, 6.4vw, 81px); }
.journey-slide h2 { font-size: clamp(29px, 4.5vw, 55px); max-width: 11em; }
.journey-slide-description {
  color: #ede4f7;
  margin: 0;
  max-width: 26em;
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.75;
}
.journey-source {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  margin-top: 14px;
  color: var(--muted);
  font-size: 14px;
}
.journey-source a { display: inline-flex; align-items: center; min-height: 36px; font-weight: 700; color: #f1e5ff; }
.journey-image-note {
  position: absolute;
  bottom: 12px;
  right: 15px;
  padding: 2px 8px;
  border-radius: 5px;
  background: #1b112ed9;
  color: var(--muted);
  font-size: 12px;
}
.journey-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 13px clamp(14px, 2.7vw, 32px);
  border-top: 1px solid var(--line);
}
.journey-controls, .journey-topics, .journey-arrows {
  display: flex;
  align-items: center;
}
.journey-controls { flex-wrap: wrap; gap: 10px 20px; }
.journey-topics { gap: 3px; }
.journey-topics button {
  position: relative;
  padding: 8px 10px 11px;
  border-color: transparent;
  background: transparent;
  color: var(--muted);
  white-space: nowrap;
}
.journey-topics button[aria-current] { color: var(--ink); }
.journey-topics button[aria-current]::after {
  content: "";
  position: absolute;
  inset: auto 10px 4px;
  height: 2px;
  border-radius: 2px;
  background: var(--lime);
}
.journey-topics button:hover { background: var(--raised); color: var(--ink); }
.journey-arrows { gap: 5px; }
.journey-arrows button, .journey-topics button, .journey-bar .primary { min-height: 44px; }
.journey-arrows button { min-width: 44px; padding: 4px 8px; }
.journey-arrows button:is([data-slide-control="previous"],[data-slide-control="next"]) { font-size: 25px; line-height: 1; }
.journey-bar .primary { padding: 9px 18px; font-size: 16px; }
.journey-announcement {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.journey-path { margin-top: clamp(32px, 5vw, 63px); }
.journey-path-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 10px 24px;
  margin-bottom: 16px;
}
.journey-path-head h2 { margin: 0; font-size: clamp(25px, 3.2vw, 40px); line-height: 1.24; }
.journey-path-head p { margin: 7px 0 0; color: var(--muted); font-size: 16px; }
.journey-path-head .journey-progress {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  border: 1px solid var(--line);
  border-radius: 24px;
  font-size: 14px;
  white-space: nowrap;
}
.journey-progress-mark { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); }
.journey-track { list-style: none; display: grid; gap: 16px; margin: 0; padding: 0; }
.journey-stage {
  display: grid;
  grid-template-columns: minmax(0,.86fr) minmax(0,1fr);
  align-items: stretch;
  min-height: 288px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--surface);
  overflow: hidden;
}
.journey-stage:hover, .journey-stage:focus-within { border-color: var(--control-line); }
.journey-stage-photo { display: block; width: 100%; height: 100%; max-height: 320px; object-fit: cover; }
.journey-stage-photo:is([src$="/arrival-language.webp"], [src$="/police-help.webp"]) { object-position: center 12%; }
.journey-stage-copy { display: grid; align-content: center; padding: clamp(20px, 3.2vw, 40px); }
.journey-stage-status { color: var(--purple); font-size: 14px; font-weight: 700; }
.journey-stage-status .tag { padding: 4px 10px; font-size: 13px; }
.journey-stage-copy h3 { margin: 7px 0 8px; font-size: clamp(25px, 3.25vw, 41px); line-height: 1.15; letter-spacing: -.025em; }
.journey-stage-copy p { margin: 0; color: var(--muted); font-size: 16px; }
.journey-stage-copy .journey-practice { margin-top: 12px; color: var(--ink); font-size: 15px; }
.journey-practice b { margin-right: 5px; color: var(--purple); }
.journey-stage-entry { margin-top: 16px; }
.journey-stage-entry button { min-height: 44px; }
.journey-stage-entry .journey-locked { font-size: 14px; }
.journey-resources { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; margin-top: 26px; }
.journey-resource { background: var(--inset); border: 1px solid var(--line); border-radius: 16px; padding: clamp(16px, 2.3vw, 27px); }
.journey-resource h2 { margin: 0 0 8px; font-size: clamp(20px, 2.2vw, 27px); line-height: 1.25; }
.journey-resource p { margin: 0 0 10px; color: var(--muted); font-size: 16px; }
.journey-resource button { min-height: 44px; }
.journey-video summary { display: list-item; cursor: pointer; min-height: 44px; padding-block: 9px; color: var(--purple); font-size: 16px; font-weight: 700; }
.journey-video video { display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 8px; background: var(--paper); }
.journey-video p { margin-top: 8px; }
.journey-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 15px; color: var(--muted); }
.journey-foot button { min-height: 44px; }
@media (max-width: 720px) {
  .journey-hero { border-radius: 17px; }
  .journey-slide {
    align-items: end;
    min-height: 410px;
    padding: 148px 17px 28px;
  }
  .journey-slide-photo { width: 100%; height: 67%; object-position: center; }
  .journey-slide::before {
    background: linear-gradient(0deg, #1b112e 29%, #1b112ee8 45%, #1b112e52 75%, #1b112e10);
  }
  .journey-slide h1, .journey-slide h2 { margin: 7px 0 10px; }
  .journey-slide-description { line-height: 1.6; }
  .journey-image-note { bottom: 6px; }
  .journey-source { margin-top: 7px; gap: 0 10px; font-size: 13px; }
  .journey-source a { min-height: 42px; }
  .journey-bar { flex-direction: column; align-items: stretch; padding: 10px; gap: 8px; }
  .journey-controls { display: grid; grid-template-columns: minmax(0,1fr) 44px; gap: 6px; }
  .journey-topics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .journey-topics button { padding-inline: 4px; font-size: 13px; }
  .journey-arrows { display: contents; }
  .journey-arrows [data-slide-control="autoplay"] { padding-inline: 3px; }
  .journey-arrows button:is([data-slide-control="previous"],[data-slide-control="next"]) {
    position: absolute;
    top: 98px;
    z-index: 1;
    background: #1b112ec9;
    color: var(--ink);
  }
  .journey-arrows [data-slide-control="previous"] { left: 10px; }
  .journey-arrows [data-slide-control="next"] { right: 10px; }
  .journey-stage, .journey-resources { grid-template-columns: minmax(0,1fr); }
  .journey-stage-photo { height: clamp(160px, 52vw, 250px); }
}
@media (prefers-reduced-motion: reduce) { .journey-slide-photo { animation: none; } }
@media print {
  :root { color-scheme: light; --surface: white; --ink: #151515; --muted: #333; --purple: #452978; }
  body { background: white; }
}

/* Guided case pages */
.case-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  min-height: clamp(270px, 26vw, 348px);
  margin-bottom: 24px;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: clamp(20px, 3.25vw, 43px);
  overflow: hidden;
  background: #1d132f;
}
.case-hero-photo {
  position: absolute;
  z-index: -2;
  inset: 0 0 0 auto;
  width: 75%;
  height: 100%;
  object-fit: cover;
  object-position: center 37%;
}
.case-hero:is([data-scene="arrival-language"], [data-scene="police-help"]) .case-hero-photo {
  object-position: center 12%;
}
.case-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, #1d132f 2%, #1d132ff5 30%, #1d132fc4 51%, #1d132f4d 77%, #1d132f12),
              linear-gradient(0deg, #1d132fa6, transparent 49%);
}
.case-hero-copy { max-width: 590px; }
.case-hero-copy .kicker {
  margin: 0 0 7px;
  color: var(--lime);
  font-size: clamp(13px, 1.25vw, 16px);
  letter-spacing: .09em;
}
.case-hero h1 {
  margin: 0 0 12px;
  max-width: 17em;
  font-size: clamp(29px, 3.5vw, 48px);
  line-height: 1.16;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.case-hero-copy > p:not(.kicker) {
  margin: 0;
  max-width: 29em;
  font-size: 16px;
  color: #f0e8f8;
  line-height: 1.7;
}
.case-hero .case-jumps { margin: 18px 0 0; gap: 8px; }
.case-hero .case-jumps button { padding-inline: 13px; background: var(--inset); }
.case-hero .case-jumps button:hover { background: var(--raised); }
.case-hero .case-jumps .primary { background: var(--lime); }
.case-hero .case-jumps .primary:hover { background: var(--lime-hover); }

.case-materials { margin-bottom: 22px; }
.case-materials h2, .case-workbench h2 {
  margin: 0;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.3;
}
.case-materials h2 { margin-bottom: 12px; }
.material-grid, .verification-results, .route-decisions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 252px), 1fr));
  gap: 12px;
  align-items: stretch;
}
.case-material {
  min-width: 0;
  padding: clamp(14px, 1.75vw, 22px);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent-line);
  border-radius: 13px;
  background: linear-gradient(140deg, var(--raised), var(--surface) 58%);
}
.case-material.case-notice {
  border-top-color: var(--amber-line);
  background: linear-gradient(140deg, var(--amber-surface), var(--surface) 65%);
}
.case-material h3 { margin: 0 0 9px; font-size: clamp(17px, 1.5vw, 21px); line-height: 1.38; }
.case-material p, .case-material blockquote { margin: 0 0 10px; line-height: 1.6; font-size: 15px; }
.case-material blockquote {
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--inset);
  border-inline-start: 2px solid var(--amber-line);
}
.case-material .material-source { color: var(--muted); font-size: 14px; }
.material-fields { margin: 12px 0 0; }
.material-fields > div {
  display: grid;
  grid-template-columns: minmax(6em, .7fr) minmax(0, 1fr);
  gap: 5px 12px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.material-fields dt { color: var(--muted); font-size: 13px; font-weight: 650; }
.material-fields dd { margin: 0; font-size: 14px; }
.hall-plan {
  display: grid;
  grid-template-columns: minmax(0, 1.24fr) minmax(0, .85fr);
  gap: 7px;
}
.hall-plan > div { display: grid; align-content: start; gap: 5px; padding: 9px; background: var(--inset); border: 1px solid var(--line); border-radius: 8px; }
.hall-plan b { color: var(--purple); font-size: 13px; }
.hall-plan span { padding: 4px 7px; background: var(--surface); border-radius: 5px; font-size: 13px; }
.sign-translation { margin-top: 6px; }
.sign-translation summary, .case-material.last-place summary { padding-block: 9px; color: var(--purple); font-size: 14px; font-weight: 700; cursor: pointer; }
.sign-translation dl, .contact-phrase dl { margin: 0 0 7px; }
.sign-translation dl > div { display: flex; align-items: baseline; gap: 10px; }
.sign-translation dt, .contact-phrase dt { font-weight: 720; }
.sign-translation dd, .contact-phrase dd { margin: 0; color: var(--muted); }
.sign-translation p { color: var(--muted); font-size: 14px; }
.case-materials .actions button, .case-trace summary { min-height: 42px; }
.case-trace summary { padding-block: 9px; }

.case-workbench { border-radius: 15px; padding: clamp(14px, 1.7vw, 23px); }
.case-workbench .workbench-intro { margin: 7px 0 13px; font-size: 15px; color: var(--muted); }
.case-workbench .tool { padding: 10px 12px; min-height: 46px; font-size: 14px; }
.case-workbench .tool span { font-size: 13px; }
.case-workbench .actions button { min-height: 42px; font-size: 14px; }
.case-workbench .channel-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 178px), 1fr)); }
.case-workbench .channel-grid .tool { min-height: 65px; }
.case-workbench .lookup h4, .case-workbench .latest-receipt h4, .verification-progress h4 { margin: 0 0 6px; font-size: 16px; }
.verification-results { margin-top: 14px; }
.verification-progress {
  min-width: 0;
  padding: 11px 13px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--inset);
}
.verification-progress .spread { gap: 5px 8px; }
.verification-progress .spread h4 { margin: 0; }
.verification-progress .spread > span { color: var(--purple); font-size: 13px; }
.verification-progress ul { list-style: none; margin: 9px 0 0; padding: 0; }
.verification-progress li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  border-top: 1px solid var(--line);
}
.case-workbench .receipt p, .case-workbench .empty { font-size: 14px; }
.route-decisions { margin-block: 11px; }
.route-decisions > .lookup { margin: 0; }
.contact-phrase dl > div + div { margin-top: 7px; }
.case-step-update {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--accent-line);
  border-radius: 9px;
  background: var(--inset);
}
.case-step-update p { margin: 0; font-size: 15px; }
.case-step-update .actions { margin-top: 8px; }

.guided-case .echo { min-height: 0; }
.guided-case .messages { flex: none; min-height: 0; max-height: min(30vh, 230px); }
.guided-case .echo-context { font-size: 13px; }
.guided-case .bubble { font-size: 14px; }
.guided-case .echo #coach-actions button { min-height: 40px; font-size: 13px; }
.guided-case .coach-inline:has(.echo:not([hidden])) { margin-block: 12px; }

.phase-replay > summary {
  display: grid;
  grid-template-columns: minmax(80px, 128px) minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  border-radius: 8px;
  padding: 0;
}
.phase-replay > summary img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 18%; border-radius: 7px; }
.phase-replay > summary strong { display: block; color: var(--ink); font-size: 17px; }
.phase-replay > summary small { display: block; color: var(--muted); font-size: 14px; font-weight: 500; }
.phase-replay > summary::after { content: "›"; color: var(--purple); padding-inline: 4px; font-size: 27px; line-height: 1; }
.phase-replay > summary:hover strong { color: var(--purple); }
.phase-replay[open] > summary { margin-bottom: 12px; }
.phase-replay[open] > summary::after { transform: rotate(90deg); }
.phase-replay p { font-size: 15px; }

@media (max-width: 850px) {
  .case-hero { margin-bottom: 17px; }
  .case-material p, .case-material blockquote, .material-fields dd { font-size: 16px; }
  .sign-translation summary, .case-material.last-place summary { display: list-item; min-height: 44px; font-size: 16px; }
  .case-workbench .actions button, .case-workbench .tool, .case-workbench .workbench-intro { font-size: 16px; }
  .case-workbench .tool span { font-size: 14px; }
  .guided-case .echo #coach-actions button { min-height: 44px; font-size: 16px; }
}
@media (max-width: 580px) {
  .case-hero { min-height: 0; padding: clamp(132px, 43vw, 215px) 14px 16px; border-radius: 15px; }
  .case-hero-photo { width: 100%; height: 64%; object-position: center 27%; }
  .case-hero::after { background: linear-gradient(0deg, #1d132f 32%, #1d132fed 48%, #1d132f42 78%, #1d132f08); }
  .case-hero h1 { margin-bottom: 8px; }
  .case-hero .case-jumps { margin-top: 12px; }
  .case-hero .case-jumps button { padding-inline: 9px; font-size: 14px; }
  .material-grid, .verification-results, .route-decisions, .case-workbench .channel-grid { grid-template-columns: minmax(0,1fr); }
  .case-workbench .channel-grid .tool { min-height: 56px; }
}

/* Full-width guided training */
body:has(.layout:is(.guided-case, .guided-result)) {
  --training-gutter: clamp(14px, 2vw, 32px);
}
body:has(.layout:is(.guided-case, .guided-result)) .top-inner {
  width: auto;
  margin-inline: var(--training-gutter);
}
.layout:is(.guided-case, .guided-result) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  width: 100%;
  max-width: none;
  padding: 12px var(--training-gutter) 36px;
}
.layout:is(.guided-case, .guided-result) .sidebar {
  display: block;
  min-width: 0;
  position: static;
  padding: 0;
}
.layout:is(.guided-case, .guided-result) .sidebar-title,
.layout:is(.guided-case, .guided-result) > .echo-dock { display: none; }
.layout:is(.guided-case, .guided-result) .sidebar nav {
  display: flex;
  gap: 7px;
  margin: 0;
  padding: 1px 1px 4px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.layout:is(.guided-case, .guided-result) .sidebar nav button {
  width: auto;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  min-height: 43px;
  padding: 7px 12px;
  background: var(--inset);
  border-color: var(--line);
}
.layout:is(.guided-case, .guided-result) .sidebar nav button[aria-current] {
  border-color: var(--accent-line);
  background: var(--lav);
}
.layout:is(.guided-case, .guided-result) .sidebar nav button:focus-visible { outline-offset: -4px; }
.layout:is(.guided-case, .guided-result) .sidebar nav button > span { display: flex; align-items: center; gap: 8px; }
.layout:is(.guided-case, .guided-result) .sidebar nav button b { font-size: 14px; }
.layout:is(.guided-case, .guided-result) .sidebar nav button small { display: block; margin: 0; font-size: 12px; }

.prep-desk {
  display: grid;
  grid-template-columns: minmax(0, 1.11fr) minmax(0, 1.04fr) minmax(242px, .47fr);
  grid-template-areas: "materials verify guidance" "materials decision guidance";
  align-items: start;
  gap: 14px;
  margin-bottom: 16px;
}
.prep-materials { grid-area: materials; min-width: 0; container-type: inline-size; }
.prep-verify { grid-area: verify; min-width: 0; margin: 0; }
.prep-guidance { grid-area: guidance; display: grid; gap: 12px; min-width: 0; }
.prep-decision { grid-area: decision; margin: 0; }
.prep-guidance .coach-inline:has(.echo:not([hidden])) { margin: 0; }
.guided-case .echo { position: static; max-height: none; }
.guided-case .echo .messages { max-height: 215px; }
.prep-heading { margin: 0 0 10px; }
.prep-heading h2 { margin: 0; font-size: clamp(20px, 1.6vw, 26px); line-height: 1.3; }
.prep-heading p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.prep-sources {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 11px;
}
@container (min-width: 462px) {
  .prep-sources { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
.prep-source {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  padding: clamp(11px, 1.12vw, 19px);
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--surface);
}
.prep-source[data-selected] { border-color: var(--accent-line); box-shadow: inset 0 0 0 1px var(--accent-line); }
.prep-source-guide { grid-column: 1 / -1; }
.source-title h3 { margin: 0; font-size: clamp(16px, 1.35vw, 21px); line-height: 1.3; }
.source-title p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.itinerary-paper {
  padding: 13px 12px 12px;
  border-radius: 9px;
  background: #f1e9fc;
  color: #2f2048;
  box-shadow: 0 4px 10px #150e2566;
}
.itinerary-paper > p { margin: 0 0 8px; font-weight: 760; font-size: 13px; color: #604686; }
.itinerary-paper dl { display: grid; gap: 8px; margin: 0 0 12px; }
.itinerary-paper dt { color: #654e82; font-size: 12px; }
.itinerary-paper dd { margin: 2px 0 0; font-size: 15px; font-weight: 760; line-height: 1.38; }
.itinerary-attachment { display: flex; flex-wrap: wrap; gap: 3px 7px; padding-top: 9px; border-top: 1px dashed #aa91c9; font-size: 13px; }
.itinerary-attachment b { color: #654985; }
.forwarded-message {
  padding: 10px;
  border: 1px solid var(--amber-line);
  border-radius: 10px;
  background: #412c43;
}
.forwarded-message blockquote {
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px 8px 8px 2px;
  background: #553848;
  color: #ffead1;
  font-size: 15px;
  line-height: 1.45;
}
.forwarded-message .material-fields { margin: 0; }
.forwarded-message .material-fields > div { grid-template-columns: minmax(4em, .55fr) minmax(0,1fr); gap: 4px 7px; padding: 4px 0; border-color: #725064; }
.forwarded-message .material-fields dt { color: #edd5df; }
.forwarded-message .material-fields dd { font-size: 13px; }
.guide-entries {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%, 192px),1fr));
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 7px;
}
.guide-entries li { padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--inset); }
.guide-entries b, .guide-entries span { display: block; }
.guide-entries b { font-size: 14px; color: var(--purple); }
.guide-entries span { color: var(--muted); font-size: 13px; }
.source-entry {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: left;
  min-height: 43px;
  margin-top: auto;
  padding: 8px 11px;
  gap: 5px;
  font-size: 14px;
  background: var(--inset);
}
.source-entry small { color: var(--lime); white-space: nowrap; }
.source-entry::after { content: "›"; font-size: 20px; line-height: 1; color: var(--purple); }
.source-entry[aria-pressed="true"] { background: var(--lav); border-color: var(--accent-line); }

.prep-lookup { margin: 12px 0; padding: 12px; background: var(--inset); }
.prep-lookup h3, .latest-receipt h3, .prep-decision-body h3 { margin: 0 0 6px; font-size: 17px; line-height: 1.35; }
.prep-lookup p { margin: 0 0 9px; color: var(--muted); font-size: 14px; }
.prep-questions { display: grid; gap: 6px; }
.prep-question {
  min-height: 43px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  padding: 8px 11px;
  text-align: left;
  font-size: 15px;
}
.prep-question:disabled { opacity: 1; color: var(--muted); border-color: var(--line); border-style: dashed; background: var(--surface); }
.prep-lookup .actions { margin-top: 8px; }
.prep-guidance .verification-progress { border-radius: 15px; padding: 14px; background: var(--surface); }
.prep-guidance .verification-progress h2 { margin: 0; font-size: 17px; }
.prep-guidance .verification-progress .spread > span { color: var(--lime); }
.prep-guidance progress {
  display: block;
  width: 100%;
  height: 7px;
  margin-top: 10px;
  border: none;
  border-radius: 9px;
  overflow: hidden;
  background: var(--inset);
  color: var(--lime);
  accent-color: var(--lime);
}
.prep-guidance progress::-webkit-progress-bar { background: var(--inset); }
.prep-guidance progress::-webkit-progress-value { background: var(--lime); }
.prep-decision-body {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 218px),1fr));
  gap: 10px;
}
.prep-draft { min-width: 0; padding: 11px 12px; background: var(--inset); border: 1px solid var(--line); border-radius: 10px; }
.prep-draft .material-fields { margin-top: 7px; }
.prep-draft .material-fields > div { grid-template-columns: minmax(0,1fr); gap: 2px; padding: 6px 0; }
.prep-draft .material-fields dd { line-height: 1.42; }
.prep-decision .tool { line-height: 1.46; }

.guided-responding, .guided-feedback {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.18fr);
  align-items: start;
  gap: 16px;
}
.guided-feedback { grid-template-columns: minmax(0,1.45fr) minmax(0, .65fr); }
.guided-result .pagehead {
  margin: 0 0 16px;
  padding: clamp(16px, 2vw, 30px);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(116deg, var(--raised), var(--surface) 73%);
}
.guided-result .outcome .dimensions {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px),1fr));
}
.guided-result .outcome .dimensions p { font-size: 14px; }
.guided-feedback .phase-replay > summary { grid-template-columns: minmax(60px, 105px) minmax(0,1fr) auto; }
@media (min-width: 721px) {
  .guided-case .case-hero {
    min-height: clamp(203px, 13vw, 246px);
    margin-bottom: 16px;
    padding: clamp(17px, 1.55vw, 28px);
  }
  .guided-case .case-hero-copy { max-width: min(59%, 790px); }
  .guided-case .case-hero-photo {
    width: min(62%, 940px);
    object-position: center 30%;
    mask-image: linear-gradient(90deg, transparent 0%, #000 35%);
  }
  .guided-case .case-hero:is([data-scene="arrival-language"], [data-scene="police-help"]) .case-hero-photo { object-position: center 14%; }
  .guided-case .case-hero::after {
    background: linear-gradient(90deg, #1d132f 29%, #1d132ff5 47%, #1d132f90 67%, #1d132f10 91%),
                linear-gradient(0deg, #1d132f70, transparent 46%);
  }
  .guided-case .case-hero h1 { margin-bottom: 9px; font-size: clamp(30px, 3.25vw, 49px); }
  .guided-case .case-hero .case-jumps { margin-top: 13px; }
  .guided-case .case-hero-copy > p:not(.kicker) { max-width: 36em; }
}
@media (min-width: 1181px) and (min-height: 760px) {
  .prep-guidance { position: sticky; top: 76px; }
}
@media (min-width: 1480px) and (min-height: 880px) {
  .prep-materials, .guided-responding > .case-materials { position: sticky; top: 76px; }
}
@media (max-width: 1180px) {
  .prep-desk {
    grid-template-columns: minmax(0,1fr) minmax(0,1.03fr);
    grid-template-areas: "materials verify" "materials guidance" "decision decision";
  }
}
@media (max-width: 740px) {
  .layout:is(.guided-case, .guided-result) { gap: 8px; padding-top: 6px; }
  .layout:is(.guided-case, .guided-result) .sidebar nav button { padding-inline: 8px; }
  .layout:is(.guided-case, .guided-result) .sidebar nav button > span { display: grid; gap: 1px; }
  .layout:is(.guided-case, .guided-result) .sidebar nav button b { font-size: 12px; }
  .layout:is(.guided-case, .guided-result) .sidebar nav button small { font-size: 11px; }
  .prep-desk { grid-template-columns: minmax(0,1fr); grid-template-areas: "materials" "verify" "guidance" "decision"; gap: 12px; }
  .prep-sources, .guided-responding, .guided-feedback { grid-template-columns: minmax(0,1fr); }
  .source-entry, .prep-question { min-height: 44px; }
  .source-entry, .prep-question, .itinerary-paper dd { font-size: 16px; }
  .guided-case .case-hero { margin-bottom: 14px; }
}
