/* spinal/ — troubleshooting section styles. Every selector starts with .spinal-app .ts- or #ts-. */

/* ---------------------------------------------------------------- layout: index + panel */
.spinal-app .ts-layout{display:grid;gap:28px;margin-top:28px}
@media (min-width:1100px){
  .spinal-app .ts-layout{grid-template-columns:260px minmax(0,1fr);gap:48px;align-items:start}
  .spinal-app .ts-index{position:sticky;top:168px;max-height:calc(100vh - 188px);overflow-y:auto}
}
.spinal-app .ts-index{border-top:3px solid var(--sp-ink);padding-top:10px}
.spinal-app .ts-index-h{font:400 12px/1.6 var(--sp-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--sp-muted);margin:14px 0 4px}
.spinal-app .ts-index-h:first-child{margin-top:0}
.spinal-app .ts-index-list{list-style:none;margin:0;padding:0}
.spinal-app .ts-index-list li{margin:0;padding:0;border-bottom:1px solid var(--sp-line)}
.spinal-app main .ts-index-link{display:flex;align-items:center;min-height:44px;padding:4px 10px 4px 12px;border-left:2px solid transparent;color:var(--sp-ink);text-decoration:none;font:15px/1.35 var(--sp-sans);transition:border-color .15s,background-color .15s}
.spinal-app main .ts-index-link:hover{background:var(--sp-surface-2);border-left-color:var(--sp-line-strong)}
.spinal-app main .ts-index-link[aria-current=true]{border-left-color:var(--sp-accent);background:var(--sp-accent-soft);color:var(--sp-ink);font-weight:500}
@media (max-width:1099px){
  .spinal-app .ts-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 24px}
  .spinal-app .ts-index-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .spinal-app .ts-index-list li{border:1px solid var(--sp-line)}
  .spinal-app main .ts-index-link{min-height:48px;padding:6px 10px;font-size:14.5px;border-left-width:3px}
}
@media (max-width:420px){
  .spinal-app .ts-index{grid-template-columns:1fr}
}
.spinal-app .ts-panel[hidden]{display:none}
.spinal-app .ts-panel{min-width:0}
.spinal-app .ts-panel-kicker{font:400 12px/1.6 var(--sp-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--sp-muted);margin:0 0 4px}
.spinal-app main .ts-panel-h{font:400 clamp(26px,2.6vw,32px)/1.15 var(--sp-serif);letter-spacing:-.03em;margin:0 0 12px}
.spinal-app .ts-panel-h:focus{outline:none}
.spinal-app .ts-panel-h:focus-visible{outline:2px solid var(--sp-focus);outline-offset:3px}
.spinal-app .ts-intro{max-width:68ch;color:var(--sp-ink);margin:0 0 20px}
.spinal-app .ts-small{max-width:68ch;font-size:14px;color:var(--sp-muted)}
.spinal-app .ts-panel>.sp-table-wrap{margin:8px 0 16px}
.spinal-app .ts-panel .sp-callout{margin:20px 0}
.spinal-app .ts-outline-d{margin-top:24px}

/* ---------------------------------------------------------------- decision tree */
.spinal-app .ts-tree{background:var(--sp-surface);border:1px solid var(--sp-line);border-top:3px solid var(--sp-ink);padding:18px 22px 20px;margin:20px 0;max-width:820px}
.spinal-app .ts-tree-kicker{font:400 12px/1.6 var(--sp-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--sp-muted);margin:0 0 6px}

.spinal-app .ts-trail{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0 0 14px;padding:0;font:400 12px/1.4 var(--sp-mono);color:var(--sp-muted)}
.spinal-app .ts-crumb{display:flex;align-items:center;margin:0;padding:0}
.spinal-app .ts-crumb+.ts-crumb::before{content:'›';padding:0 6px;color:var(--sp-muted)}
.spinal-app .ts-crumb-btn{min-height:44px;padding:4px 2px;border:0;background:transparent;color:var(--sp-accent);font:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer;text-align:left}
.spinal-app .ts-crumb-btn:hover{text-decoration-thickness:2px}
.spinal-app .ts-crumb-cur{display:inline-flex;align-items:center;min-height:44px;color:var(--sp-ink)}

.spinal-app main .ts-prompt{font:400 22px/1.3 var(--sp-serif);letter-spacing:-.015em;color:var(--sp-ink);margin:0 0 10px;text-transform:none;max-width:40ch}
.spinal-app .ts-prompt:focus{outline:none}
.spinal-app .ts-prompt:focus-visible{outline:2px solid var(--sp-focus);outline-offset:4px}
.spinal-app .ts-step{display:block;font:400 12px/1.6 var(--sp-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--sp-muted);margin-bottom:2px}
.spinal-app .ts-detail{font-size:15px;line-height:1.6;color:var(--sp-muted);max-width:66ch;margin:0 0 14px}
.spinal-app .ts-detail p{margin:0 0 8px}
.spinal-app .ts-detail ul{margin:0 0 8px;padding-left:20px}
.spinal-app .ts-detail li{margin:0 0 4px}
.spinal-app .ts-vignette{color:var(--sp-ink);font-size:16px;border-left:3px solid var(--sp-line-strong);padding:4px 0 4px 14px}
.spinal-app .ts-node-fig{margin:0 0 14px}

.spinal-app .ts-choices{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.spinal-app .ts-choice{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;padding:10px 16px;border:1px solid var(--sp-line-strong);border-radius:0;background:var(--sp-bg);color:var(--sp-ink);font:15px/1.4 var(--sp-sans);text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s}
.spinal-app .ts-choice:hover,.spinal-app .ts-choice:focus-visible{border-color:var(--sp-accent);background:var(--sp-accent-soft)}
.spinal-app .ts-choice-arrow{flex:none;color:var(--sp-accent);font-size:18px;line-height:1}
.spinal-app .ts-choice-label{min-width:0}

.spinal-app .ts-feedback{border:1px dashed var(--sp-line-strong);background:var(--sp-bg);padding:10px 14px;margin:0 0 16px;max-width:66ch}
.spinal-app .ts-feedback-label{font:600 12px/1.4 var(--sp-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--sp-muted);margin:0 0 4px}
.spinal-app .ts-feedback-body{font-size:15px;line-height:1.6}
.spinal-app .ts-feedback-body p{margin:0}

.spinal-app .ts-outcome{--c:var(--sp-ok);--cb:var(--sp-ok-bg);background:var(--cb);border-left:3px solid var(--c);padding:14px 18px}
.spinal-app .ts-outcome--warn{--c:var(--sp-warn);--cb:var(--sp-warn-bg)}
.spinal-app .ts-outcome--danger{--c:var(--sp-danger);--cb:var(--sp-danger-bg)}
.spinal-app .ts-outcome-label{display:flex;align-items:center;gap:8px;margin:0 0 6px;font:600 12px/1.4 var(--sp-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--c)}
.spinal-app .ts-outcome-label svg{width:16px;height:16px;flex:none}
.spinal-app .ts-outcome-body{font-size:15px;line-height:1.6;color:var(--sp-ink);max-width:66ch}
.spinal-app .ts-outcome-body p{margin:0 0 8px}
.spinal-app .ts-outcome-body p:last-child{margin-bottom:0}
.spinal-app .ts-outcome-body ul{margin:0 0 8px;padding-left:20px}
.spinal-app .ts-outcome-body li{margin:0 0 4px}

.spinal-app .ts-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.spinal-app .ts-actions[hidden],.spinal-app .ts-hint[hidden]{display:none}
.spinal-app .ts-act{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 16px;border:1px solid var(--sp-line-strong);border-radius:0;background:transparent;color:var(--sp-ink);font:14px/1.3 var(--sp-sans);cursor:pointer;transition:border-color .15s,background-color .15s}
.spinal-app .ts-act:hover{border-color:var(--sp-accent);background:var(--sp-accent-soft)}
.spinal-app .ts-hint{margin:8px 0 0;font:400 12px/1.5 var(--sp-mono);color:var(--sp-muted)}

/* ---------------------------------------------------------------- outline (whole tree as a list) */
.spinal-app .ts-outline{font-size:14px;line-height:1.55;padding:4px 0 16px}
.spinal-app .ts-outline ul{list-style:none;margin:0;padding:0}
.spinal-app .ts-ol-sub{padding-left:18px!important;border-left:1px solid var(--sp-line);margin:4px 0 8px 6px!important}
.spinal-app .ts-ol-prompt{font-weight:600;margin:4px 0}
.spinal-app .ts-ol-label{margin:4px 0;color:var(--sp-accent)}
.spinal-app .ts-ol-note{color:var(--sp-muted);font-size:14px;margin:0 0 4px}
.spinal-app .ts-ol-note p{margin:0}
.spinal-app .ts-ol-outcome{margin:4px 0;font-weight:600}
.spinal-app .ts-ol-tone{font:600 12px/1.4 var(--sp-sans);text-transform:uppercase;letter-spacing:.06em}
.spinal-app .ts-ol-outcome--ok .ts-ol-tone{color:var(--sp-ok)}
.spinal-app .ts-ol-outcome--warn .ts-ol-tone{color:var(--sp-warn)}
.spinal-app .ts-ol-outcome--danger .ts-ol-tone{color:var(--sp-danger)}
.spinal-app .ts-ol-body{color:var(--sp-ink);margin:0 0 6px}
.spinal-app .ts-ol-body p{margin:0 0 4px}
.spinal-app .ts-ol-body ul{padding-left:18px!important;list-style:disc!important}
.spinal-app .ts-ol-repeat{color:var(--sp-muted);font-style:italic;margin:0}

/* ---------------------------------------------------------------- bone redirect guide */
.spinal-app .ts-guide-views{display:grid;grid-template-columns:1fr;gap:1px;background:var(--sp-line)}
@media (min-width:700px){.spinal-app .ts-guide-views{grid-template-columns:1fr 1fr}}
.spinal-app .ts-guide-pane{background:var(--an-plate);padding:8px 8px 4px;min-width:0}
.spinal-app .ts-guide-view{font:400 12px/1.4 var(--sp-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--an-ink);margin:0 0 4px}
.spinal-app .ts-guide-svg{display:block;width:100%;height:auto}
.spinal-app .ts-guide-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-right:16px}
.spinal-app .ts-guide-ctl-l{font:400 12px/1.4 var(--sp-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--sp-muted)}
.spinal-app .ts-guide-read{display:grid;gap:0;margin:12px 0;border-top:1px solid var(--sp-line);max-width:820px}
.spinal-app .ts-guide-row{display:grid;grid-template-columns:1fr;gap:2px;padding:8px 0;border-bottom:1px solid var(--sp-line)}
@media (min-width:640px){.spinal-app .ts-guide-row{grid-template-columns:170px 1fr;gap:16px}}
.spinal-app .ts-guide-row dt{font:600 12px/1.6 var(--sp-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--sp-muted)}
.spinal-app .ts-guide-row dd{margin:0;font-size:15px;line-height:1.55;color:var(--sp-ink)}

/* ---------------------------------------------------------------- tiers, checklist */
.spinal-app main .ts-index [data-tier]::after{display:none}
.spinal-app .ts-panel>[data-tier]:not(.ts-tree){margin-top:20px}
.spinal-app .ts-checklist{counter-reset:ts-step;list-style:none;margin:8px 0 20px;padding:18px 22px;max-width:820px;background:var(--sp-surface);border:1px solid var(--sp-line);border-top:3px solid var(--sp-ink)}
.spinal-app .ts-checklist li{counter-increment:ts-step;position:relative;margin:0;padding:10px 0 10px 40px;border-bottom:1px solid var(--sp-line);font-size:15px;line-height:1.55}
.spinal-app .ts-checklist li:last-child{border-bottom:0}
.spinal-app .ts-checklist li::before{content:counter(ts-step);position:absolute;left:0;top:10px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--sp-line-strong);font:500 13px/1 var(--sp-mono);color:var(--sp-ink)}

@media (max-width:760px){
  .spinal-app .ts-tree{padding:14px 14px 16px}
  .spinal-app main .ts-prompt{font-size:20px}
}
@media print{
  .spinal-app .ts-index{display:none}
  .spinal-app .ts-panel[hidden]{display:block}
}

/* ---------------------------------------------------------------- emergency card */
.spinal-app .ts-first{background:var(--sp-danger-bg);border:1px solid var(--sp-danger);border-top:4px solid var(--sp-danger);padding:18px 22px 20px;margin:8px 0 28px;max-width:960px}
.spinal-app .ts-first-kicker{font:600 12px/1.4 var(--sp-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--sp-danger);margin:0 0 2px}
.spinal-app main .ts-first-h{font:400 clamp(26px,3vw,32px)/1.15 var(--sp-serif);letter-spacing:-.03em;margin:0 0 12px;color:var(--sp-ink)}
.spinal-app .ts-first-steps{margin:0 0 16px;padding-left:22px;font-size:16px;line-height:1.5}
.spinal-app .ts-first-steps li{margin:0 0 4px}
.spinal-app .ts-first-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:0 0 18px}
@media (min-width:640px){.spinal-app .ts-first-grid{grid-template-columns:1fr 1fr}}
.spinal-app .ts-mini{background:var(--sp-bg);border:1px solid var(--sp-line-strong);padding:12px 14px;min-width:0}
.spinal-app main .ts-mini-h{font:600 14px/1.35 var(--sp-sans);text-transform:none;letter-spacing:0;margin:0 0 4px;color:var(--sp-ink)}
.spinal-app .ts-mini-b{font-size:15px;line-height:1.5;margin:0 0 6px}
.spinal-app main .ts-mini-a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
.spinal-app .ts-first>.sp-table-wrap{margin:8px 0 16px;background:var(--sp-bg)}
.spinal-app .ts-first .sp-callout{margin:0}
.spinal-app main .ts-first[data-tier]::after{display:none}
.spinal-app .ts-linklist{margin:0;padding-left:20px}
.spinal-app .ts-linklist li{margin:0 0 6px}
.spinal-app .ts-linklist a{display:inline-block;min-height:32px}
.spinal-app .ts-all-h{font:600 15px/1.4 var(--sp-sans);margin:18px 0 6px}
.spinal-app .ts-panel>.sp-table-wrap{max-width:960px}
.spinal-app .ts-index-group{min-width:0}
body.spinal-app main .ts-index li[data-tier]{margin-top:0!important}
body.spinal-app main .ts-index-h{margin-top:12px}

/* "If it goes wrong": the regional app's shared guides (shared/regional/js/decide.js; styles in
   shared/regional/css/decide.css). Map the engine tokens to this app's, so dark mode follows. */
.spinal-app .ra-dg-host{--tb-paper:var(--sp-bg);--tb-inset:var(--sp-surface-2);--tb-hover:var(--sp-accent-soft);--tb-ink:var(--sp-ink);--tb-ink-soft:var(--sp-ink-2);--tb-muted:var(--sp-muted);--tb-wine:var(--sp-accent);--tb-wine-hover:var(--sp-accent);--tb-ivory:var(--sp-on-accent);--tb-line:var(--sp-line);--tb-line-strong:var(--sp-line-strong);--tb-danger:var(--sp-danger);--tb-danger-bg:var(--sp-danger-bg);--tb-warn:var(--sp-warn);--tb-warn-bg:var(--sp-warn-bg);--tb-sans:var(--sp-sans);--tb-mono:var(--sp-mono)}
.spinal-app main .ts-wrong-more{font-size:15px;margin:12px 0 0}
.spinal-app main .ts-wrong-more a{display:inline-flex;align-items:center;gap:6px;min-height:44px}
