/* Signal-path designer (/tools/signal-path/), loaded only on that page beside tools.css. Scoped under .sp. Colours are custom
   properties with the charcoal tokens; html[data-theme="light"] swaps them (this file is not in the light-theme generator's
   SOURCES, like tools-hub.css). The shared tl-* classes come from tools.css and are themed by theme-light.css. */
.sp{--sp-bg:#222424;--sp-surface:#2a2d2d;--sp-line:#373a3a;--sp-ink:#dcdede;--sp-muted:#939898;--sp-gold:#c5a77b;--sp-wire:#c5a77b;--sp-hub:#33302a;--sp-lime:#def29b;--sp-red:#b9675f}
html[data-theme="light"] .sp{--sp-bg:#f5f3ef;--sp-surface:#fff;--sp-line:#e2ded6;--sp-ink:#222424;--sp-muted:#575b5b;--sp-gold:#86693f;--sp-wire:#86693f;--sp-hub:#f3ece0;--sp-lime:#def29b;--sp-red:#a8554d}
.sp [hidden]{display:none!important}
.sp-step{padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid var(--sp-line)}
.ac .sp-h{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:400;margin:0 0 14px;color:var(--sp-ink)}
.sp-h span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--sp-gold);color:var(--sp-gold);font-size:13px}
.sp-pills{border:0;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sp-pills legend{margin-bottom:10px;font-size:12px!important;letter-spacing:.06em}
.sp-pills label{display:inline-flex;align-items:center;gap:8px;min-height:40px;box-sizing:border-box;padding:8px 16px;border:1px solid var(--sp-line);border-radius:999px;font-size:14.5px;cursor:pointer;background:var(--sp-bg);color:var(--sp-ink)}
.sp-pills label:has(input:checked){border-color:var(--sp-gold);color:var(--sp-gold)}
.sp-pills input{accent-color:var(--sp-gold);margin:0}
.sp .tl-grid{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}
.ac .tl-doc h3{font-size:17px;font-weight:400;margin:20px 0 6px}
.ac .tl-doc h3+p{margin-top:0}
.sp-out{padding-top:4px}
.ac .sp-title{font-size:26px;font-weight:400;margin:6px 0 14px}
.ac .sp-sub{font-size:17px;font-weight:400;margin:26px 0 10px}
.sp-table td{font-size:14px;line-height:1.45}
.sp-table td:last-child{white-space:normal}
.sp-cell{display:flex;gap:8px;align-items:flex-start}
.sp-cell .tl-icon{flex:0 0 20px;height:20px;font-size:11px;margin-top:1px}
.sp-cell.tl-ok .tl-icon{background:var(--sp-lime);color:#161818}
.sp-cell.tl-warn .tl-icon{background:var(--sp-gold);color:#161818}
.sp-cell.tl-fail .tl-icon{background:var(--sp-red);color:#161818}
.sp-wiring{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:28px;align-items:start}
.sp-svg{display:block;width:100%;height:auto;max-width:420px}
.sp-svg rect{fill:var(--sp-surface);stroke:var(--sp-line);stroke-width:1.2}
.sp-svg .sp-hub rect{fill:var(--sp-hub);stroke:var(--sp-gold)}
.sp-svg .sp-display rect{stroke:var(--sp-ink);stroke-opacity:.5}
.sp-svg .sp-t{fill:var(--sp-ink);font-size:14px;font-family:inherit}
.sp-svg .sp-s{fill:var(--sp-muted);font-size:12.5px;font-family:inherit}
.sp-svg .sp-l{fill:var(--sp-muted);font-size:12px;font-family:inherit}
.sp-svg .sp-w{fill:none;stroke:var(--sp-wire);stroke-width:2;stroke-linejoin:round}
.sp-svg .sp-earc{stroke-width:3}
.sp-svg .sp-opt{stroke-dasharray:5 5}
.sp-cables{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sp-cables li{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--sp-line);border-radius:12px;font-size:14.5px;line-height:1.5}
.sp-cables strong{font-weight:500}
.sp-n{flex:0 0 24px;height:24px;border-radius:50%;background:var(--sp-gold);color:#161818;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px}
html[data-theme="light"] .sp-n{color:#fff}
.sp-warn{margin-top:0}
.sp-notes .sp-note .tl-icon{background:transparent;border:1px solid var(--sp-muted);color:var(--sp-muted);font-style:italic}
.sp-settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:4px 22px}
.sp-set{margin-top:12px}
.sp-set li label{font-size:14px}
.sp-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:26px 0 0}
.sp-foot{margin-top:18px!important}
.sp-foot a{color:var(--sp-gold)}
@media(max-width:860px){.sp-wiring{grid-template-columns:1fr;gap:8px}}
/* Phones: the table becomes one card per source. */
@media(max-width:640px){
  .sp-table thead{display:none}
  .sp-table,.sp-table tbody,.sp-table tr,.sp-table td{display:block;width:100%;box-sizing:border-box}
  .sp-table tr{border:1px solid var(--sp-line);border-radius:12px;padding:10px 12px;margin:0 0 10px}
  .sp-table td{border:0;padding:4px 0}
  .sp-table td:first-child{font-size:15.5px;color:var(--sp-ink)}
  .sp-table td[data-h]:not(:first-child)::before{content:attr(data-h);display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--sp-muted);margin-bottom:2px}
  .sp .tl-grid{grid-template-columns:1fr 1fr}
  .sp-actions .ac-btn{flex:1 1 100%}
}
@media(max-width:380px){.sp .tl-grid{grid-template-columns:1fr}}
/* Print: the plan only, black on white. */
@media print{
  body.ac-page>*:not(main),.tl-crumbs,.ac-eyebrow,.ac-lede,.tl-doc,.tl-related,[data-sp],.sp-actions,.sp-foot,.tlh-skip{display:none!important}
  .sp{--sp-bg:#fff;--sp-surface:#fff;--sp-line:#bbb;--sp-ink:#000;--sp-muted:#444;--sp-gold:#6b5232;--sp-wire:#6b5232;--sp-hub:#f4efe6;border:0!important;box-shadow:none!important;background:#fff!important;color:#000}
  body,main,.ac,.ac-wrap{background:#fff!important;color:#000!important}
  .ac h1{color:#000!important;font-size:22px!important}
  .sp-wiring{grid-template-columns:300px 1fr}
  .sp-table tr,.sp-cables li,.sp-set{break-inside:avoid}
}
