:root{
    --bg:#0d0f12;
    --panel:#16191e;
    --panel2:#1b1f25;
    --line:#2a2f38;
    --line-soft:#21262d;
    --ink:#ecebe5;
    --muted:#80ccde;
    --muted2:rgba(255,255,255,.60);;
    --amber:#f2a73b;
    --amber-soft:rgba(242,167,59,.10);
    --green:#6cc07a;
    --green-soft:rgba(108,192,122,.10);
    --blue:#62aecb;
    --blue-soft:rgba(98,174,203,.10);
    --red:#ff3332;
    --red-soft:rgba(255,66,66,.10);
    --disp:'Chakra Petch',sans-serif;
    --body:'IBM Plex Sans',sans-serif;
    --mono:'IBM Plex Mono',monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:var(--body);
    line-height:1.5;
    font-size:15px;
    background-image:
      linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
    background-size:34px 34px;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1080px;margin:0 auto;padding:0 22px 80px}

  /* ---------- MASTHEAD ---------- */
  .masthead{
    border-bottom:2px solid var(--amber);
    padding:40px 0 26px;
    margin-bottom:30px;
    position:relative;
  }
  .kicker{
    font-family:var(--mono);
    font-size:11px;letter-spacing:3px;text-transform:uppercase;
    color:var(--amber);margin-bottom:14px;
  }
  .masthead h1{
    font-family:var(--disp);font-weight:700;
    font-size:clamp(30px,6vw,52px);line-height:1.02;
    letter-spacing:-.5px;text-transform:uppercase;
  }
  .masthead h1 span{color:var(--amber)}
  .subline{
    font-family:var(--mono);color:var(--muted);
    font-size:13px;margin-top:14px;letter-spacing:.3px;
  }
  .subline b{color:var(--ink);font-weight:500}
  .meta-row{
    display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:12px;
    font-family:var(--mono);font-size:12px;color:var(--amber);
  }
  .meta-row span b{color:var(--amber);font-weight:500}

  /* ---------- HERO STATS ---------- */
  .stats{
    display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:34px;
  }
  .stat{
    background:var(--panel);border:1px solid var(--line);border-radius:10px;
    padding:18px 16px;position:relative;overflow:hidden;
  }
  .stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,var(--amber))}
  .stat .num{font-family:var(--disp);font-weight:700;font-size:30px;line-height:1;letter-spacing:-1px}
  .stat .unit{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:7px;text-transform:uppercase;letter-spacing:1px}

  /* ---------- LEGEND ---------- */
  .legend{
    display:flex;flex-wrap:wrap;gap:18px;margin-bottom:30px;
    font-family:var(--mono);font-size:12px;color:var(--muted);
    border:1px dashed var(--line);border-radius:8px;padding:12px 16px;
  }
  .legend .b{display:inline-flex;align-items:center;gap:7px}

  /* ---------- STATUS BADGES ---------- */
  .badge{
    font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.8px;
    text-transform:uppercase;padding:3px 8px;border-radius:5px;white-space:nowrap;
    border:1px solid transparent;
  }
  .b-done{color:var(--green);background:var(--green-soft);border-color:rgba(108,192,122,.3)}
  .b-prog{color:var(--amber);background:var(--amber-soft);border-color:rgba(242,167,59,.3)}
  .b-impl{color:var(--blue);background:var(--blue-soft);border-color:rgba(98,174,203,.3)}
  .b-verify{color:var(--red);background:var(--red-soft);border-color:rgba(229,122,92,.35)}
  .dot{width:9px;height:9px;border-radius:50%;display:inline-block}
  .d-done{background:var(--green)} .d-prog{background:var(--amber)} .d-impl{background:var(--blue)} .d-verify{background:var(--red)}

  /* ---------- SECTIONS ---------- */
  section{margin-bottom:30px}
  .sec-head{
    display:flex;align-items:baseline;gap:14px;margin-bottom:16px;
    padding-bottom:10px;border-bottom:1px solid var(--line);
  }
  .sec-head .idx{font-family:var(--mono);font-size:12px;color:var(--amber);font-weight:600}
  .sec-head h2{
    font-family:var(--disp);font-weight:600;font-size:21px;
    text-transform:uppercase;letter-spacing:.5px;
  }

  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

  .card{
    background:var(--panel);border:1px solid var(--line);border-radius:10px;
    padding:18px 18px 16px;
  }
  .card h3{
    font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:.3px;
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    margin-bottom:12px;
  }
  .card h3 .t{display:flex;align-items:center;gap:9px}
  .card .role{font-family:var(--mono);font-size:11px;color:var(--amber);text-transform:uppercase;letter-spacing:1px;margin-bottom:13px;margin-top:-6px}

  /* spec rows */
  .spec{width:100%;border-collapse:collapse;font-size:13.5px}
  .spec tr{border-bottom:1px solid var(--line-soft)}
  .spec tr:last-child{border-bottom:none}
  .spec td{padding:6px 0;vertical-align:top}
  .spec td.k{color:var(--muted);font-family:var(--mono);font-size:12px;width:42%;padding-right:12px}
  .spec td.v{font-family:var(--mono);font-weight:500;text-align:right}
  .spec td.v.l{text-align:left;font-family:var(--body);font-weight:400;color:var(--ink)}

  .note{
    font-size:12.5px;color:var(--muted);margin-top:12px;padding-top:11px;
    border-top:1px dashed var(--line);line-height:1.5;
  }
  .note b{color:var(--ink);font-weight:600}
  .accent{color:var(--amber)}

  ul.tight{list-style:none;font-size:13.5px}
  ul.tight li{padding:5px 0 5px 18px;position:relative;border-bottom:1px solid var(--line-soft)}
  ul.tight li:last-child{border-bottom:none}
  ul.tight li::before{content:"›";position:absolute;left:2px;color:var(--amber);font-weight:700}

  /* callout */
  .callout{
    border-radius:10px;padding:16px 18px;border:1px solid var(--line);
    background:var(--panel2);position:relative;
  }
  .callout.safety{border-color:rgba(229,122,92,.4);background:var(--red-soft)}

  .card.safety{border-color:rgba(229,122,92,.4);background:var(--red-soft);color:var(--muted2)}
  .card.safety h3{color:var(--red)}
  .card.safety .note,.card.safety .spec td.v.l,.card.safety ul.tight{color:var(--muted2)}
  .card.safety .note b,.card.safety ul.tight b,.callout.safety b{color:var(--ink)}
  .callout.safety,.callout.safety p{color:var(--muted2)}
  .callout.cfg{border-color:rgba(98,174,203,.35);background:rgba(98,174,203,.07)}
  .callout h4{
    font-family:var(--disp);font-size:14px;letter-spacing:.4px;margin-bottom:8px;
    display:flex;align-items:center;gap:9px;text-transform:uppercase;
  }
  .callout.safety h4{color:var(--red)}
  .callout.cfg h4{color:var(--blue)}
  .callout p{font-size:13px;color:var(--muted);line-height:1.55}
  .callout p + p{margin-top:7px}
  .callout code{font-family:var(--mono);font-size:12px;background:rgba(255,255,255,.06);padding:1px 6px;border-radius:4px;color:var(--ink)}

  .cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}

  /* open items table */
  .items{width:100%;border-collapse:collapse;font-size:13.5px}
  .items th{
    text-align:left;font-family:var(--mono);font-size:11px;text-transform:uppercase;
    letter-spacing:1px;color:var(--muted);padding:8px 12px;border-bottom:1px solid var(--line);
  }
  .items td{padding:11px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top}
  .items tr:last-child td{border-bottom:none}
  .items td.p{font-family:var(--mono);font-size:11px;white-space:nowrap}
  .items .why{color:var(--muted);font-size:12.5px}

  /* quick ref */
  .qr{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
  .qr .card{padding-top:16px}

  footer{
    margin-top:40px;padding-top:20px;border-top:1px solid var(--line);
    font-family:var(--mono);font-size:11.5px;color:var(--muted2);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  }

  @media(max-width:820px){
    .stats{grid-template-columns:repeat(2,1fr)}
    .grid2,.grid3,.cfg-grid,.qr{grid-template-columns:1fr}
  }
  @media print{
    body{background:#fff;color:#111;background-image:none;font-size:11px}
    .stat,.card,.callout{break-inside:avoid}
    section{break-inside:avoid}
    .masthead h1 span,.kicker,.accent{color:#b06f00}
  }

  /* ---------- DASH CONSOLE ADDITIONS ---------- */
  /* code block */
  .codeblock{
    background:#0a0c0f;border:1px solid var(--line);border-radius:8px;
    padding:14px 16px;font-family:var(--mono);font-size:12.5px;line-height:1.75;
    color:var(--ink);overflow-x:auto;white-space:pre;margin-top:4px;
  }
  .codeblock .c{color:var(--muted2)}
  .codeblock .p{color:var(--blue)}
  .codeblock .n{color:var(--amber)}

  /* layer stack diagram */
  .stack{display:flex;flex-direction:column;gap:0;margin-top:4px}
  .slayer{
    display:flex;justify-content:space-between;align-items:center;gap:12px;
    background:var(--panel2);border:1px solid var(--line);border-radius:8px;
    padding:11px 14px;position:relative;
  }
  .slayer.base{border-color:rgba(242,167,59,.4)}
  .slayer.base::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber);border-radius:8px 0 0 8px}
  .slayer .ttl{font-family:var(--disp);font-weight:600;font-size:13.5px;letter-spacing:.3px}
  .slayer .ttl small{display:block;font-family:var(--mono);font-weight:400;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:3px}
  .slayer .meta{font-family:var(--mono);font-size:11px;color:var(--muted);text-align:right;white-space:nowrap}
  .sgap{
    font-family:var(--mono);font-size:10px;color:var(--muted2);
    letter-spacing:.5px;text-transform:uppercase;
    padding:4px 0 4px 24px;position:relative;
  }
  .sgap::before{content:"";position:absolute;left:15px;top:-2px;bottom:-2px;width:2px;background:var(--line)}

  /* power flow diagram */
  .flow{margin-top:6px}
  .fstage{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
  .fnode{
    flex:1 1 0;min-width:150px;max-width:340px;
    background:var(--panel2);border:1px solid var(--line);border-radius:8px;
    padding:11px 14px;position:relative;
  }
  .fnode.pwr{border-color:rgba(242,167,59,.4)}
  .fnode.pwr::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber);border-radius:8px 0 0 8px}
  .fnode.gnd::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--muted2);border-radius:8px 0 0 8px}
  .fnode .lab{font-family:var(--disp);font-weight:600;font-size:13px;letter-spacing:.3px}
  .fnode .sub{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:4px;line-height:1.5}
  .fconn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0;color:var(--amber)}
  .fconn .arr{font-size:15px;line-height:1}
  .fconn .tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}

  /* ---------- MOBILE (≤600px) ---------- */
  html{-webkit-text-size-adjust:100%}
  .spec td.v{overflow-wrap:anywhere}
  @media(max-width:600px){
    body{font-size:14px}
    .wrap{padding:0 14px 56px}
    .masthead{padding:26px 0 18px;margin-bottom:22px}
    .subline{font-size:12px}
    .meta-row{gap:8px 18px;font-size:12px}
    .stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:24px}
    .stat{padding:13px 12px}
    .stat .num{font-size:23px}
    .stat .unit{font-size:10.5px;letter-spacing:.6px}
    .legend{gap:8px 14px;padding:10px 12px;font-size:11px}
    section{margin-bottom:24px}
    .sec-head{flex-wrap:wrap;gap:6px 12px}
    .sec-head h2{font-size:17px}
    .grid2,.grid3{gap:12px}
    .card{padding:14px 13px 12px}
    .card h3{flex-wrap:wrap;gap:8px}
    .spec{font-size:12.5px}
    .spec td.k{width:34%;padding-right:10px;font-size:11px}
    .note{font-size:12px}
    .callout{padding:13px 14px}
    .callout p{font-size:12.5px}
    /* multi-column tables stack into card-style rows */
    .items{font-size:13px}
    .items thead{display:none}
    .items tr{display:block;padding:10px 4px;border-bottom:1px solid var(--line-soft)}
    .items tr:last-child{border-bottom:none}
    .items td{display:block;border-bottom:none;padding:2px 8px}
    .items td.p{padding-bottom:5px}
    footer{flex-direction:column;gap:5px}
    /* dash console diagram elements */
    .slayer{flex-wrap:wrap;gap:6px;padding:10px 12px}
    .slayer .meta{white-space:normal;text-align:left}
    .fnode{min-width:120px;padding:10px 12px}
    .fstage{gap:10px}
    .codeblock{font-size:11px;padding:12px 13px;-webkit-overflow-scrolling:touch}
  }

  /* ---------- PART STATUS (information model, #59) ---------- */
  /* Solid chips, so part status never reads like a card's design badge. */
  .pbadge{
    display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;font-weight:600;
    letter-spacing:.8px;text-transform:uppercase;padding:3px 8px 3px 5px;border-radius:5px;margin-right:5px;
    white-space:nowrap;color:#0d0f12;border:1px solid transparent;
  }
  /* double-gear mark: "this is a part status" */
  .pbadge::before{
    content:"";flex:none;width:12px;height:12px;background:currentColor;
    -webkit-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cdefs%3E%3Cmask id='m'%3E%3Crect width='16' height='16' fill='white'/%3E%3Ccircle cx='6.2' cy='6.2' r='1.45' fill='black'/%3E%3Ccircle cx='12' cy='11.6' r='0.9' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Cg mask='url(%23m)' fill='black'%3E%3Cg transform='translate(6.2 6.2)'%3E%3Ccircle r='3.6'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(0.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(45.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(90.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(135.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(180.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(225.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(270.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(315.0)'/%3E%3C/g%3E%3Cg transform='translate(12 11.6)'%3E%3Ccircle r='2.35'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(30.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(90.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(150.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(210.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(270.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(330.0)'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cdefs%3E%3Cmask id='m'%3E%3Crect width='16' height='16' fill='white'/%3E%3Ccircle cx='6.2' cy='6.2' r='1.45' fill='black'/%3E%3Ccircle cx='12' cy='11.6' r='0.9' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Cg mask='url(%23m)' fill='black'%3E%3Cg transform='translate(6.2 6.2)'%3E%3Ccircle r='3.6'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(0.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(45.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(90.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(135.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(180.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(225.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(270.0)'/%3E%3Crect x='-0.95' y='-5.10' width='1.90' height='2.10' rx='.3' transform='rotate(315.0)'/%3E%3C/g%3E%3Cg transform='translate(12 11.6)'%3E%3Ccircle r='2.35'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(30.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(90.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(150.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(210.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(270.0)'/%3E%3Crect x='-0.70' y='-3.55' width='1.40' height='1.80' rx='.3' transform='rotate(330.0)'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
  }
  .ps-planned{background:var(--amber)}
  .ps-on-hand{background:var(--blue)}
  .ps-installed{background:var(--green)}
  .ps-unconfirmed{background:transparent;color:var(--red);border:1px dashed var(--red)}
  .rollup{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.3px;font-weight:400;text-transform:none}
