/* Profile Equipment tool style: dark bar, ink background, gold accent. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#17150e;--ink2:#1f1c13;--ink3:#26231a;--paper:#f5f1e6;--text:#f5f1e6;--muted:#8f8970;--muted2:#b0aa96;--line:rgba(255,255,255,.09);--accent:#c2a202;--accent2:#f0d24a;--pass:#6ec26e;--warn:#e9b94a;--fail:#f08a7a;--blocked:#6b6650;--info:#9fc5ff}
html,body{height:100%;background:var(--ink);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1.45}
body{display:flex;flex-direction:column;min-height:100%}
a{color:var(--accent2)}
h1,h2,h3{font-weight:700;letter-spacing:-.01em}
h2{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
button,select,input[type=text],input[type=number]{font:inherit;color:var(--text);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:7px 12px}
button{cursor:pointer;font-weight:600;font-size:.84rem}
button:hover:not(:disabled){background:rgba(255,255,255,.12)}
button:disabled{opacity:.4;cursor:not-allowed}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}
button.primary:hover:not(:disabled){background:#d9b503}
button.danger{border-color:rgba(240,138,122,.5);color:#f6c1b8}
button.ghost{background:transparent}
button.on{background:rgba(194,162,2,.22);border-color:rgba(194,162,2,.45);color:var(--accent2)}
select option{background:var(--ink3);color:var(--text)}
input:focus,select:focus,button:focus-visible{outline:2px solid rgba(194,162,2,.6);outline-offset:1px}
label{font-size:.8rem;color:var(--muted2)}
.muted{color:var(--muted)} .small{font-size:.78rem} .big{font-size:1.05rem;font-weight:700}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.spacer{flex:1}

#bar{min-height:48px;display:flex;align-items:center;gap:12px;padding:6px 14px;background:rgba(23,21,14,.95);border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none}
.brand img{height:26px;width:auto;display:block}
.bar-name{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.beta{font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--accent);border-radius:999px;padding:1px 7px}
.bar-meta{margin-left:auto;font-size:.72rem;color:var(--muted)}
.bar-actions{display:flex;gap:8px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:var(--muted2);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:2px 10px;white-space:nowrap}
.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blocked)}
.pill.on{color:var(--accent2);border-color:rgba(194,162,2,.4)} .pill.on::before{background:var(--accent)}
.pill.lost{color:#f6c1b8;border-color:rgba(240,138,122,.4)} .pill.lost::before{background:var(--fail)}
.tk-install,.tk-update,#modeToggle{font-size:.75rem;font-weight:700;border-radius:999px;padding:3px 12px}
.tk-install,.tk-update{border:1px solid rgba(194,162,2,.45);background:rgba(194,162,2,.15);color:var(--accent2)}
.tk-install[hidden],.tk-update[hidden]{display:none}

#unsupported{margin:12px 14px 0;border:1px solid rgba(240,138,122,.4);background:rgba(240,138,122,.08);color:#f6c1b8;border-radius:10px;padding:10px 12px;font-size:.85rem}
#unsupported[hidden]{display:none}

#app{flex:1;display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;padding:14px;max-width:1280px;width:100%;margin:0 auto}
@media (max-width:860px){#app{grid-template-columns:1fr}.bar-meta{display:none}}
#side{display:flex;flex-direction:column;gap:12px}
.panel{background:var(--ink2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.health{list-style:none;display:flex;flex-direction:column;gap:6px}
.health li{display:flex;align-items:center;gap:10px;font-size:.86rem}
.health .dot{width:9px;height:9px;border-radius:50%;background:var(--blocked);flex-shrink:0}
.health .name{flex:1}
.health .st{font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--muted2)}
.PASS .dot{background:var(--pass)} .PASS .st{color:var(--pass)}
.WARNING .dot{background:var(--warn)} .WARNING .st{color:var(--warn)}
.FAIL .dot{background:var(--fail)} .FAIL .st{color:var(--fail)}
.TESTING .dot{background:var(--info)} .TESTING .st{color:var(--info)}
.steps{list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:3px}
.steps li{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted);padding:4px 6px;border-radius:6px}
.steps li::before{counter-increment:s;content:counter(s);width:20px;height:20px;border-radius:50%;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;flex-shrink:0}
.steps li.current{color:var(--text);background:rgba(194,162,2,.1)} .steps li.current::before{border-color:var(--accent);color:var(--accent2)}
.steps li.done{color:var(--muted2)} .steps li.done::before{content:"✓";color:var(--pass);border-color:transparent}
.steps li.link{cursor:pointer} .steps li.link:hover{background:rgba(255,255,255,.05)}
.suspects{list-style:none;display:flex;flex-direction:column;gap:7px}
.suspects li{font-size:.8rem}
.suspects .bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);margin-top:3px;overflow:hidden}
.suspects .bar i{display:block;height:100%;background:var(--accent)}
.suspects li:first-child .bar i{background:var(--fail)}

#main{display:flex;flex-direction:column;gap:14px;min-width:0}
.card{background:var(--ink2);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.card h1{font-size:1.35rem;margin-bottom:6px}
.card .lead{color:var(--muted2);margin-bottom:14px;max-width:70ch}
.card h3{font-size:.92rem;margin:14px 0 6px}
.card p{max-width:76ch}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;align-items:center}
.note{font-size:.78rem;color:var(--muted);line-height:1.5;margin-top:10px;max-width:76ch}
.checklist{list-style:none;display:flex;flex-direction:column;gap:8px}
.checklist label{display:flex;align-items:flex-start;gap:10px;font-size:.95rem;color:var(--text);cursor:pointer;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02)}
.checklist input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}
.chk{display:inline-flex;gap:6px;align-items:center}
.results{width:100%;border-collapse:collapse;font-size:.9rem}
.results td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.results td:first-child{color:var(--muted2);width:38%}
.results td.st{font-weight:700;letter-spacing:.06em;font-size:.76rem;width:14%}
.results .truth{font-size:.66rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;white-space:nowrap}
.st-PASS,.st-PRESENT{color:var(--pass)} .st-FAIL,.st-MISSING{color:var(--fail)} .st-WARNING{color:var(--warn)} .st-BLOCKED,.st-NOT,.st-PARTLY,.st-WAITING{color:var(--muted)} .st-INFO{color:var(--info)}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;font-size:.88rem}
.kv dt{color:var(--muted2)} .kv dd{word-break:break-word}
.profiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.profiles button{text-align:left;padding:12px 14px;border-radius:10px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;font-weight:500}
.profiles button b{font-size:.95rem} .profiles button span{font-size:.78rem;color:var(--muted2)}
.profiles button.on{background:rgba(194,162,2,.12)}
.channels{display:flex;flex-direction:column;gap:6px;max-width:560px}
.ch{display:grid;grid-template-columns:64px 1fr 56px;align-items:center;gap:10px;font-size:.82rem}
.ch .track{height:12px;background:rgba(255,255,255,.07);border-radius:6px;position:relative;overflow:hidden}
.ch .track::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,.2)}
.ch .fill{position:absolute;top:0;bottom:0;left:0;background:var(--accent);border-radius:6px;transition:width .1s}
.ch .val{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted2)}
.ch.aux .fill{background:#8f8970} .ch.aux.on .fill{background:var(--pass)}
.flags{list-style:none;display:flex;flex-direction:column;gap:8px}
.flags li{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:rgba(255,255,255,.02)}
.flags li.fail{border-color:rgba(240,138,122,.4)} .flags li.warn{border-color:rgba(233,185,74,.4)} .flags li.info{opacity:.8}
.flags .code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;color:var(--muted);margin-left:8px}
.flags ol{margin:6px 0 0 18px;font-size:.85rem;color:var(--muted2)}
.finding{border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:rgba(255,255,255,.02)}
.finding.critical,.finding.fail{border-left-color:var(--fail)} .finding.info{border-left-color:var(--info)} .finding.pass{border-left-color:var(--pass)}
.finding h3{margin:0 0 4px} .finding .sev{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted2);margin-right:8px}
.finding ol{margin:8px 0 0 18px;font-size:.88rem} .finding .ev{margin-top:8px;font-size:.8rem;color:var(--muted2)} .finding .ev span{display:inline-block;margin-right:14px}
.measure{border:1px dashed rgba(194,162,2,.5);border-radius:10px;padding:12px 14px;margin-top:12px;background:rgba(194,162,2,.05)}
.measure input{width:110px;font-variant-numeric:tabular-nums}
.motors{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}
.motor{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.motor b{font-size:.95rem} .motor .res{font-size:.78rem;color:var(--muted2);min-height:1.2em}
.motor.spinning{border-color:var(--accent);box-shadow:0 0 0 2px rgba(194,162,2,.25)}
.interlocks{list-style:none;display:flex;flex-direction:column;gap:4px;font-size:.86rem}
.interlocks li::before{content:"✗ ";color:var(--fail)} .interlocks li.ok::before{content:"✓ ";color:var(--pass)}
.radio{display:flex;flex-wrap:wrap;gap:8px}
.radio label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--text);cursor:pointer}
.radio label.on{border-color:var(--accent);background:rgba(194,162,2,.12)}
.radio input{accent-color:var(--accent)}
.hint-demo{display:inline-block;font-size:.72rem;color:var(--accent2);margin-left:8px}
.demo{border:1px solid rgba(159,197,255,.3);background:rgba(159,197,255,.06);border-radius:10px;padding:12px 14px;margin-top:16px}
.demo h3{margin-top:0;color:var(--info)}
.events{list-style:none;font-size:.8rem;color:var(--muted2);display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}
.events time{color:var(--muted);margin-right:8px}
.big-num{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat{display:inline-flex;flex-direction:column;gap:2px;min-width:120px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;margin:4px 8px 4px 0}
.stat span{font-size:.7rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.msg{margin-top:12px;font-size:.88rem;padding:8px 12px;border-radius:8px;border:1px solid var(--line)}
.msg.err{border-color:rgba(240,138,122,.4);color:#f6c1b8;background:rgba(240,138,122,.08)}
.msg.ok{border-color:rgba(110,194,110,.4);color:#cfe9cf}

#console{border-top:1px solid var(--line);background:#0f0e09;padding:10px 14px 14px;max-width:1280px;width:100%;margin:0 auto}
#console[hidden]{display:none}
.console-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.console-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px}
@media (max-width:860px){.console-body{grid-template-columns:1fr}}
#log{height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#0b0a06;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.4;color:#e9e4d2}
#log .ts{color:#6f6a55} #log .warn{color:var(--warn)} #log .error{color:var(--fail)} #log .msp{color:#8f8970} #log .engine{color:var(--accent2)}
.live{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:#d6d1bf;background:#0b0a06;border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow:auto;height:260px;white-space:pre-wrap}

@media print{
  body{background:#fff;color:#000;font-size:12px}
  #bar,#side,#console,.actions,.demo,.measure,button{display:none!important}
  #app{display:block;padding:0}
  .card,.finding,.flags li{border-color:#999;background:none;break-inside:avoid}
  .card h1{color:#000} h2{color:#444}
  .finding .sev,.results .truth,.muted,.lead{color:#444}
  .st-PASS{color:#1a7f1a} .st-FAIL{color:#b3261e} .st-WARNING{color:#8a6d00}
}

/* ── extension: symptom entry, intake questions, technician panels, confidence ── */
.symptoms button b{font-size:.9rem}
.qrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:rgba(255,255,255,.02)}
.qrow .q{flex:1 1 320px;font-size:.92rem}
.truth-tag{display:inline-block;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;white-space:nowrap}
.conf{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}
.lvl{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:2px 10px;border:1px solid var(--line)}
.lvl.HIGH{color:var(--pass);border-color:rgba(110,194,110,.5)} .lvl.MEDIUM{color:var(--warn);border-color:rgba(233,185,74,.5)} .lvl.LOW{color:var(--muted2)}
.finding.primary{border-left-width:6px;background:rgba(255,255,255,.04)}
.sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}
.section h3{margin-top:0}
.small-radio button{font-size:.76rem;padding:4px 9px}
.checklist.plain{list-style:disc;padding-left:20px;font-size:.88rem;color:var(--muted2)}
.checklist.plain li{display:list-item}
.causes{margin:8px 0 0 18px;color:var(--muted2)}
.paths{margin-top:8px}
.events .etype{display:inline-block;min-width:76px;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:8px}
.events .truth-tag{margin-left:8px}
.tpanels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;height:auto;max-height:420px;overflow:auto;padding:0;border:0;background:transparent}
.tpanel{background:#0b0a06;border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0}
.tpanel h3{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.tpanel pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.45;color:#d6d1bf;white-space:pre-wrap;word-break:break-word}
.st-INFO,.st-WAITING{color:var(--info)}
