:root{
  --bg:#0a0e1a;--bg2:#0f1526;--bg3:#151c30;--bg4:#1c2540;
  --border:#2a3555;--border2:#3a4a70;
  --cyan:#00c8e0;--cd:#00c8e018;
  --amber:#f5a623;--ad:#f5a62318;
  --green:#2ecc71;--gd:#2ecc7118;
  --red:#e74c3c;--rd:#e74c3c18;
  --purple:#a78bfa;--pd:#a78bfa18;
  --orange:#f97316;--od:#f9731618;
  --text:#c8d4f0;--text2:#7a8ab0;--text3:#3d4f75;
  --grid1:rgba(0,200,224,.022);--grid2:rgba(0,200,224,.01);
  --canvas:#060810;
  --mono:'IBM Plex Mono',monospace;--sans:'IBM Plex Sans',sans-serif;
}
/* LIGHT THEME -- mirrors all variables for full surface coverage */
html[data-theme="light"]{
  --bg:#f4f6fb;--bg2:#ffffff;--bg3:#eef2f8;--bg4:#e3e9f3;
  --border:#cdd6e4;--border2:#a8b4c8;
  --cyan:#0083a0;--cd:#0083a014;
  --amber:#b06b00;--ad:#b06b0014;
  --green:#1f8a4f;--gd:#1f8a4f14;
  --red:#c0392b;--rd:#c0392b14;
  --purple:#6d4cc7;--pd:#6d4cc714;
  --orange:#c75a16;--od:#c75a1614;
  --text:#1a2238;--text2:#445072;--text3:#6b7794;
  --grid1:rgba(0,131,160,.05);--grid2:rgba(0,131,160,.025);
  --canvas:#fafbfd;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;overflow:hidden;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(var(--grid1) 1px,transparent 1px),linear-gradient(90deg,var(--grid1) 1px,transparent 1px),linear-gradient(var(--grid2) 1px,transparent 1px),linear-gradient(90deg,var(--grid2) 1px,transparent 1px);
  background-size:80px 80px,80px 80px,16px 16px,16px 16px;}
#app{position:relative;z-index:1;display:flex;flex-direction:column;height:100vh;}
header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:48px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;}
.logo{display:flex;align-items:center;gap:9px;}
.logo-icon{width:26px;height:26px;border:1.5px solid var(--cyan);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--cyan);position:relative;}
.logo-icon::before{content:'';position:absolute;inset:3px;border:1px solid var(--cyan);opacity:.3;}
.logo-text{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text);letter-spacing:.04em;}
.logo-text span{color:var(--cyan);}
.htag{font-family:var(--mono);font-size:9px;color:var(--text3);border:1px solid var(--border);padding:2px 7px;letter-spacing:.07em;}
.hdr-right{display:flex;align-items:center;gap:7px;}
#hdr-drw{font-family:var(--mono);font-size:9px;color:var(--text2);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hbtn{font-family:var(--mono);font-size:9px;font-weight:600;padding:3px 9px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;transition:all .15s;letter-spacing:.06em;}
.hbtn:hover,.hbtn.on{border-color:var(--cyan);color:var(--cyan);background:var(--cd);}
.pbadge{font-family:var(--mono);font-size:9px;font-weight:600;background:var(--cd);border:1px solid var(--cyan);color:var(--cyan);padding:2px 9px;letter-spacing:.08em;}
.body-layout{display:flex;flex:1;min-height:0;overflow:hidden;}
/* SIDEBAR */
.sb{width:288px;flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;}
.sh{display:flex;align-items:center;gap:7px;padding:8px 13px;border-bottom:1px solid var(--border);background:var(--bg3);}
.sn{font-family:var(--mono);font-size:9px;font-weight:600;color:var(--cyan);background:var(--cd);border:1px solid var(--cyan);padding:1px 5px;min-width:22px;text-align:center;}
.st{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--text);letter-spacing:.06em;text-transform:uppercase;}
.sform{padding:10px 13px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--border);}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.fg{display:flex;flex-direction:column;gap:3px;}
.fg label{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;}
.fg input,.fg select{background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:11px;padding:5px 8px;outline:none;transition:border-color .2s;width:100%;}
.fg input:focus,.fg select:focus{border-color:var(--cyan);}
.fg select option{background:var(--bg3);}
.uz{margin:10px 13px;border:1.5px dashed var(--border2);padding:13px 10px;text-align:center;cursor:pointer;transition:all .2s;position:relative;background:var(--bg3);}
.uz:hover,.uz.dov{border-color:var(--cyan);background:var(--cd);}
.uz input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.uz-t{font-family:var(--mono);font-size:10px;color:var(--text);margin-bottom:2px;}
.uz-s{font-size:10px;color:var(--text3);}
.fchip{margin:0 13px 8px;padding:6px 10px;background:var(--ad);border:1px solid var(--amber);font-family:var(--mono);font-size:10px;color:var(--amber);display:none;align-items:center;gap:6px;}
.fchip.on{display:flex;}
.esec{padding:9px 13px;border-bottom:1px solid var(--border);}
.etabs{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--border);}
.etabs.etabs4{grid-template-columns:1fr 1fr 1fr 1fr;}
.etab{font-family:var(--mono);font-size:9px;font-weight:600;padding:6px 2px;background:var(--bg3);border:none;color:var(--text3);cursor:pointer;transition:all .15s;text-align:center;}
.etab:not(:last-child){border-right:1px solid var(--border);}
.etab.a.demo{background:var(--gd);color:var(--green);}
.etab.a.oss{background:var(--od);color:var(--orange);}
.etab.a.gem{background:var(--pd);color:var(--purple);}
.etab.a.anth{background:var(--cd);color:var(--cyan);}
.etab:hover:not(.a){background:var(--bg4);color:var(--text2);}
.ep{display:none;margin-top:8px;}
.ep.on{display:block;}
.kw{display:flex;}
.kw input{flex:1;background:var(--bg3);border:1px solid var(--border);border-right:none;color:var(--text);font-family:var(--mono);font-size:10px;padding:6px 8px;outline:none;}
.kw input:focus{border-color:var(--cyan);}
.ks{background:var(--bg4);border:1px solid var(--border);border-left:none;color:var(--cyan);font-family:var(--mono);font-size:9px;font-weight:600;padding:0 10px;cursor:pointer;}
.ks:hover{background:var(--cd);}
.kh{font-size:10px;color:var(--text3);margin-top:4px;line-height:1.5;}
.kst{font-family:var(--mono);font-size:9px;margin-top:4px;}
.kst.ok{color:var(--green);}.kst.err{color:var(--red);}
.di{padding:8px 10px;background:var(--gd);border:1px solid var(--green);font-size:10px;color:var(--green);line-height:1.6;}
.dpk{padding:0 13px 10px;display:flex;flex-direction:column;gap:5px;}
.dopt{display:flex;align-items:center;gap:8px;padding:7px 9px;background:var(--bg3);border:1px solid var(--border);cursor:pointer;transition:all .12s;}
.dopt:hover,.dopt.sel{border-color:var(--green);background:var(--gd);}
.doi{font-size:14px;flex-shrink:0;}
.dot{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--text);}
.dos{font-size:9px;color:var(--text3);margin-top:1px;}
.aw{padding:10px 13px 8px;}
.abtn{width:100%;padding:10px;background:transparent;border:1.5px solid var(--cyan);color:var(--cyan);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.09em;cursor:pointer;transition:all .2s;text-transform:uppercase;position:relative;overflow:hidden;}
.abtn::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--cd);transition:width .3s;}
.abtn:hover::before{width:100%;}
.abtn:disabled{opacity:.3;cursor:not-allowed;border-color:var(--text3);color:var(--text3);}
.abtn:disabled::before{display:none;}
.abtn.dm{border-color:var(--green)!important;color:var(--green)!important;}
.abtn.dm::before{background:var(--gd)!important;}
.pw{padding:0 13px 8px;display:none;}
.pw.on{display:block;}
.pb{height:2px;background:var(--border);}
.pf{height:100%;background:var(--cyan);width:0%;transition:width .35s;}
.pt{font-family:var(--mono);font-size:9px;color:var(--cyan);margin-top:4px;}
/* MAIN */
.ma{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;}
.cs{flex:0 0 auto;border-bottom:1px solid var(--border);}
.ch{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:var(--bg3);border-bottom:1px solid var(--border);}
.ctg{display:flex;align-items:center;gap:7px;}
.ct{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--text);}
.lb{font-family:var(--mono);font-size:8px;padding:1px 5px;border:1px solid;letter-spacing:.05em;font-weight:600;}
.lb3{color:var(--cyan);border-color:var(--cyan);background:var(--cd);}
.lb4{color:var(--amber);border-color:var(--amber);background:var(--ad);}
.lb9{color:var(--purple);border-color:var(--purple);background:var(--pd);}
.ctools{display:flex;gap:5px;}
.ctool{font-family:var(--mono);font-size:9px;padding:3px 8px;background:var(--bg4);border:1px solid var(--border);color:var(--text3);cursor:pointer;transition:all .12s;}
.ctool:hover,.ctool.a{border-color:var(--cyan);color:var(--cyan);background:var(--cd);}
.cw{position:relative;background:var(--canvas);overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:255px;max-height:350px;}
#dCvs,#rCvs{max-width:100%;max-height:350px;display:none;}
#l4Cvs{position:absolute;top:0;left:0;pointer-events:none;display:none;}
#l9Cvs{position:absolute;top:0;left:0;pointer-events:none;display:none;opacity:.55;}
.cph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text3);height:255px;width:100%;}
.cph .phi{font-size:24px;opacity:.2;}
.cph p{font-family:var(--mono);font-size:10px;text-align:center;line-height:1.9;}
@keyframes scan{0%{top:0}100%{top:100%}}
#scl{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,200,224,.7),transparent);pointer-events:none;display:none;animation:scan 1.4s linear infinite;}
.ba{flex:1;display:flex;min-height:0;overflow:hidden;}
/* TABLE */
.ts{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border);}
.th2{display:flex;align-items:center;justify-content:space-between;padding:6px 13px;background:var(--bg3);border-bottom:1px solid var(--border);flex-shrink:0;}
.tt{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--text);}
.sr{display:flex;gap:5px;}
.tst{font-family:var(--mono);font-size:9px;padding:1px 6px;border:1px solid var(--border);color:var(--text3);}
.tst.cy{border-color:var(--cyan);color:var(--cyan);background:var(--cd);}
.tst.am{border-color:var(--amber);color:var(--amber);background:var(--ad);}
.tst.gr{border-color:var(--green);color:var(--green);background:var(--gd);}
.tw{flex:1;overflow-y:auto;overflow-x:auto;}
table{width:100%;border-collapse:collapse;}
thead tr{background:var(--bg3);position:sticky;top:0;z-index:10;}
thead th{font-family:var(--mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:7px 9px;text-align:left;border-bottom:1px solid var(--border2);white-space:nowrap;}
tbody tr{border-bottom:1px solid var(--border);transition:background .1s;cursor:pointer;}
tbody tr:hover{background:rgba(0,200,224,.04);}
tbody tr.hl{background:var(--cd);}
tbody tr.he{background:rgba(231,76,60,.08);outline:1px solid rgba(231,76,60,.35);}
td{padding:5px 9px;font-size:11px;color:var(--text);vertical-align:middle;}
td.sno{font-family:var(--mono);font-size:9px;color:var(--text3);width:30px;}
td.en{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--cyan);}
td.vl{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--amber);}
.cbg{display:inline-flex;align-items:center;font-family:var(--mono);font-size:9px;font-weight:600;padding:1px 5px;border:1px solid;}
.cbg.h{color:var(--green);border-color:var(--green);background:var(--gd);}
.cbg.m{color:var(--amber);border-color:var(--amber);background:var(--ad);}
.cbg.l{color:var(--red);border-color:var(--red);background:var(--rd);}
.catb{font-family:var(--mono);font-size:8px;padding:1px 5px;border:1px solid;letter-spacing:.04em;text-transform:uppercase;}
.cd1{color:#7eb8ff;border-color:#7eb8ff;background:rgba(126,184,255,.07);}
.cg1{color:#b388ff;border-color:#b388ff;background:rgba(179,136,255,.07);}
.cm1{color:#80cbc4;border-color:#80cbc4;background:rgba(128,203,196,.07);}
.cn1{color:#ffcc80;border-color:#ffcc80;background:rgba(255,204,128,.07);}
.ctl{color:var(--cyan);border-color:var(--cyan);background:var(--cd);}
.ct1{color:#ef9a9a;border-color:#ef9a9a;background:rgba(239,154,154,.07);}
.cv1{color:#a5d6a7;border-color:#a5d6a7;background:rgba(165,214,167,.07);}
/* Y14.8 Manufacturing category badge colors */
.cmfg{color:#fb923c;border-color:#fb923c;background:rgba(251,146,60,.09);}
/* Canvas bright/dark theme toggle */
#cw[data-theme="bright"]{background:#e8eef5!important;}
#cw[data-theme="bright"] canvas{filter:invert(1) hue-rotate(180deg) contrast(1.05);}
/* Canvas height transition */
#cw,#dCvs,#l4Cvs,#l9Cvs{transition:height .25s ease;}
.cdraft{color:#fbbf24;border-color:#fbbf24;background:rgba(251,191,36,.09);}
.callw{color:#f97316;border-color:#f97316;background:rgba(249,115,22,.09);}
.cpl{color:#e879f9;border-color:#e879f9;background:rgba(232,121,249,.09);}
.cpspec{color:#38bdf8;border-color:#38bdf8;background:rgba(56,189,248,.09);}
/* MFG panel engine toggle */
.mfg-eng-toggle{display:flex;border-bottom:1px solid var(--border);margin-bottom:0;}
.met{flex:1;font-family:var(--mono);font-size:9px;font-weight:600;padding:6px 3px;background:var(--bg3);border:none;color:var(--text3);cursor:pointer;transition:all .15s;letter-spacing:.04em;text-align:center;border-right:1px solid var(--border);}
.met:last-child{border-right:none;}
.met.ma{background:var(--bg2);color:var(--orange);}
/* MFG finding cards */
.mfc{margin-bottom:6px;border:1px solid;padding:0;background:var(--bg3);cursor:pointer;transition:all .12s;overflow:hidden;}
.mfc.cr{border-color:rgba(231,76,60,.45);}
.mfc.cr:hover,.mfc.cr.ax{border-color:var(--red);background:var(--rd);}
.mfc.wn{border-color:rgba(245,166,35,.4);}
.mfc.wn:hover,.mfc.wn.ax{border-color:var(--amber);background:var(--ad);}
.mfc.ps{border-color:rgba(46,204,113,.3);}
.mfc.ps:hover,.mfc.ps.ax{border-color:var(--green);background:var(--gd);}
.mfc.if{border-color:rgba(251,146,60,.3);}
.mfc.if:hover,.mfc.if.ax{border-color:var(--orange);background:var(--od);}
/* process selector in sidebar */
.psec{padding:8px 13px 0;border-bottom:1px solid var(--border);}
.psel{background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:10px;padding:5px 8px;outline:none;width:100%;transition:border-color .2s;margin-bottom:8px;}
.psel:focus{border-color:var(--orange);}
/* MFG summary badge in header */
.mfg-badge{font-family:var(--mono);font-size:8px;padding:1px 6px;border:1px solid var(--orange);color:var(--orange);background:var(--od);letter-spacing:.06em;display:none;}
.mfg-badge.on{display:inline-block;}
/* L16 mode toggle header */
.l16-mode-bar{display:flex;align-items:center;border-bottom:1px solid var(--border);background:var(--bg4);}
.l16-mode-btn{flex:1;font-family:var(--mono);font-size:9px;font-weight:600;padding:5px 4px;border:none;background:transparent;color:var(--text3);cursor:pointer;transition:all .15s;letter-spacing:.05em;border-right:1px solid var(--border);}
.l16-mode-btn:last-child{border-right:none;}
.l16-mode-btn.am{background:var(--bg2);color:var(--red);}
.l16-mode-btn.am.mfg{color:var(--orange);}
/* MFG scan btn */
.mrsb{font-family:var(--mono);font-size:9px;font-weight:600;padding:6px 8px;border:1.5px solid var(--orange);background:transparent;color:var(--orange);cursor:pointer;transition:all .2s;text-transform:uppercase;width:100%;letter-spacing:.07em;margin-top:6px;}
.mrsb:hover{background:var(--od);}
/* MFG panel content */
.mfg-panel{display:none;flex-direction:column;flex:1;overflow:hidden;}
.mfg-panel.on{display:flex;}
.gdt-panel{display:flex;flex-direction:column;flex:1;overflow:hidden;}
.gdt-panel.off{display:none;}
/* MFG status strip */
.mfg-status-strip{padding:4px 8px;font-family:var(--mono);font-size:9px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--border);background:var(--bg4);}
/* process info panel */
.proc-info{margin:6px 7px;padding:6px 8px;background:var(--od);border:1px solid var(--orange);font-family:var(--mono);font-size:9px;color:var(--orange);display:none;}
.proc-info.on{display:block;}
.cbw{display:flex;align-items:center;gap:5px;}
.cbb{width:34px;height:4px;background:var(--border);border-radius:2px;flex-shrink:0;}
.cbf{height:100%;border-radius:2px;}
.ec{outline:none;min-width:30px;border-bottom:1px dashed transparent;transition:border-color .15s;display:inline-block;}
.ec:focus{border-bottom:1px dashed var(--cyan);color:#fff;}
.tem{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:36px 16px;color:var(--text3);}
.tem .ei{font-size:22px;opacity:.2;}
.tem p{font-family:var(--mono);font-size:10px;text-align:center;line-height:1.9;}
.smb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 13px;background:var(--bg3);border-top:1px solid var(--border);flex-shrink:0;}
.si{display:flex;align-items:center;gap:5px;}
.sl{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;}
.sv{font-family:var(--mono);font-size:11px;font-weight:600;}
.eb{display:flex;gap:5px;padding:7px 13px;background:var(--bg2);border-top:1px solid var(--border);flex-shrink:0;align-items:center;}
.ebt{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.06em;padding:4px 10px;background:var(--bg3);border:1px solid var(--border);color:var(--text3);cursor:pointer;transition:all .15s;text-transform:uppercase;}
.ebt:hover{border-color:var(--amber);color:var(--amber);background:var(--ad);}
/* L16 */
.ep2{width:286px;flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg2);}
.eh{display:flex;align-items:center;justify-content:space-between;padding:6px 13px;background:var(--bg3);border-bottom:1px solid var(--border);}
.et{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--text);}
.ecb{font-family:var(--mono);font-size:9px;font-weight:600;padding:1px 6px;border:1px solid var(--red);color:var(--red);background:var(--rd);}
.l16t{display:flex;border-bottom:1px solid var(--border);}
.l16tb{flex:1;font-family:var(--mono);font-size:9px;font-weight:600;padding:6px 3px;background:var(--bg3);border:none;color:var(--text3);cursor:pointer;transition:all .15s;letter-spacing:.04em;border-right:1px solid var(--border);}
.l16tb:last-child{border-right:none;}
.l16tb.a{background:var(--bg2);color:var(--red);}
.l16tb.a.gn{color:var(--green);}
.l16tb.a.cy{color:var(--cyan);}
.el{flex:1;overflow-y:auto;padding:7px;}
.ee{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:22px 12px;color:var(--text3);}
.ee .ei2{font-size:16px;opacity:.2;}
.ee p{font-family:var(--mono);font-size:9px;text-align:center;line-height:1.9;}
/* FINDING CARDS */
.fc{margin-bottom:6px;border:1px solid;padding:0;background:var(--bg3);cursor:pointer;transition:all .12s;overflow:hidden;}
.fc.cr{border-color:rgba(231,76,60,.45);}
.fc.cr:hover,.fc.cr.ax{border-color:var(--red);background:var(--rd);}
.fc.wn{border-color:rgba(245,166,35,.4);}
.fc.wn:hover,.fc.wn.ax{border-color:var(--amber);background:var(--ad);}
.fc.ab{border-color:rgba(249,115,22,.4);}
.fc.ab:hover,.fc.ab.ax{border-color:var(--orange);background:var(--od);}
.fc.ms{border-color:rgba(167,139,250,.4);}
.fc.ms:hover,.fc.ms.ax{border-color:var(--purple);background:var(--pd);}
.fc.ps{border-color:rgba(46,204,113,.3);}
.fc.ps:hover,.fc.ps.ax{border-color:var(--green);background:var(--gd);}
.fc.if{border-color:rgba(0,200,224,.25);}
.fc.if:hover,.fc.if.ax{border-color:var(--cyan);background:var(--cd);}
.fct{display:flex;align-items:center;justify-content:space-between;padding:7px 9px 3px;}
.fcr{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.04em;}
.fc.cr .fcr{color:var(--red);}
.fc.wn .fcr{color:var(--amber);}
.fc.ab .fcr{color:var(--orange);}
.fc.ms .fcr{color:var(--purple);}
.fc.ps .fcr{color:var(--green);}
.fc.if .fcr{color:var(--cyan);}
.fcs{font-family:var(--mono);font-size:8px;padding:1px 5px;border:1px solid;letter-spacing:.05em;}
.sER{color:var(--red);border-color:var(--red);}
.sWA{color:var(--amber);border-color:var(--amber);}
.sAM{color:var(--orange);border-color:var(--orange);}
.sMI{color:var(--purple);border-color:var(--purple);}
.sPA{color:var(--green);border-color:var(--green);}
.sIN{color:var(--cyan);border-color:var(--cyan);}
.fcm{font-size:10px;color:var(--text);padding:0 9px 4px;line-height:1.45;}
.fce{font-family:var(--mono);font-size:9px;color:var(--text2);padding:0 9px 3px;}
.fcx{display:none;padding:6px 9px 8px;border-top:1px solid var(--border);margin-top:3px;}
.fc.xp .fcx{display:block;}
.fcrow{display:flex;gap:6px;margin-bottom:4px;}
.fclb{font-family:var(--mono);font-size:8px;color:var(--text3);min-width:55px;text-transform:uppercase;letter-spacing:.05em;padding-top:1px;flex-shrink:0;}
.fcv{font-size:10px;color:var(--text);line-height:1.45;flex:1;}
.fcf{font-size:10px;color:var(--amber);line-height:1.45;flex:1;}
.fch{font-family:var(--mono);font-size:9px;color:var(--text3);margin-left:3px;}
.rsb{margin:7px;font-family:var(--mono);font-size:9px;font-weight:600;padding:7px;background:var(--bg3);border:1px solid var(--red);color:var(--red);cursor:pointer;letter-spacing:.07em;text-transform:uppercase;transition:all .15s;text-align:center;}
.rsb:hover{background:var(--rd);}
.rsb.dn{border-color:var(--green);color:var(--green);}
.rsb.dn:hover{background:var(--gd);}
.lf{border-top:1px solid var(--border);flex-shrink:0;}
.cl{padding:7px 13px;}
.clt{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;}
.clb{height:6px;width:100%;background:linear-gradient(90deg,#e74c3c,#f5a623,#2ecc71);border-radius:2px;}
.clls{display:flex;justify-content:space-between;margin-top:2px;}
.cll{font-family:var(--mono);font-size:8px;color:var(--text3);}
.exr{display:flex;gap:5px;padding:6px 13px 9px;}
.exb{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.06em;padding:4px 7px;background:var(--bg3);border:1px solid var(--border);color:var(--text3);cursor:pointer;transition:all .15s;text-transform:uppercase;flex:1;text-align:center;}
.exb:hover{border-color:var(--amber);color:var(--amber);background:var(--ad);}
/* HELP */
.ho{position:fixed;inset:0;background:rgba(5,9,20,.9);z-index:500;display:none;align-items:center;justify-content:center;}
.ho.on{display:flex;}
.hbox{background:var(--bg2);border:1px solid var(--border2);width:min(820px,96vw);height:min(88vh,720px);display:flex;flex-direction:column;overflow:hidden;}
.hhdr{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);}
.htitle{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--cyan);}
.hcls{font-family:var(--mono);font-size:11px;color:var(--text3);cursor:pointer;background:none;border:1px solid var(--border);padding:3px 10px;}
.hcls:hover{border-color:var(--red);color:var(--red);}
.htabs{display:flex;border-bottom:1px solid var(--border);}
.htb{font-family:var(--mono);font-size:10px;padding:8px 14px;background:var(--bg3);border:none;color:var(--text3);cursor:pointer;border-right:1px solid var(--border);}
.htb.a{background:var(--bg2);color:var(--cyan);}
.hbody{flex:1;overflow-y:auto;padding:20px;}
.hbody h2{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--cyan);margin-bottom:10px;margin-top:18px;letter-spacing:.05em;}
.hbody h2:first-child{margin-top:0;}
.hbody h3{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--amber);margin-bottom:7px;margin-top:14px;}
.hbody p{font-size:12px;color:var(--text);line-height:1.7;margin-bottom:10px;}
.hbody ul{margin-left:16px;margin-bottom:10px;}
.hbody li{font-size:12px;color:var(--text);line-height:1.7;margin-bottom:4px;}
.hbody li::marker{color:var(--cyan);}
.tag{font-family:var(--mono);font-size:10px;display:inline-block;padding:1px 7px;border:1px solid;margin:2px 3px;letter-spacing:.05em;}
.tag.dn{color:var(--green);border-color:var(--green);background:var(--gd);}
.tag.pd{color:var(--amber);border-color:var(--amber);background:var(--ad);}
.tag.ft{color:var(--purple);border-color:var(--purple);background:var(--pd);}
.hbody table{width:100%;border-collapse:collapse;margin-bottom:14px;}
.hbody th{font-family:var(--mono);font-size:9px;color:var(--text3);padding:6px 10px;text-align:left;border-bottom:1px solid var(--border2);text-transform:uppercase;letter-spacing:.06em;}
.hbody td{font-size:11px;color:var(--text);padding:6px 10px;border-bottom:1px solid var(--border);}
.sb2{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--cyan);font-family:var(--mono);font-size:9px;font-weight:600;color:var(--cyan);flex-shrink:0;margin-right:8px;}
.toast{position:fixed;bottom:20px;right:20px;z-index:9999;font-family:var(--mono);font-size:10px;padding:9px 13px;background:var(--bg3);border:1px solid var(--border2);color:var(--text);opacity:0;transform:translateY(6px);transition:all .25s;pointer-events:none;max-width:280px;}
.toast.show{opacity:1;transform:translateY(0);}
.toast.ok{border-color:var(--green);color:var(--green);}
.toast.err{border-color:var(--red);color:var(--red);}
.toast.warn{border-color:var(--amber);color:var(--amber);}
/* LOAD JSON MODAL */
.ljm{position:fixed;inset:0;background:rgba(5,9,20,.92);z-index:600;display:none;align-items:center;justify-content:center;}
.ljm.on{display:flex;}
.ljbox{background:var(--bg2);border:1px solid var(--border2);width:min(620px,96vw);display:flex;flex-direction:column;overflow:hidden;}
.ljhdr{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--bg3);}
.ljtitle{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--green);}
.ljcls{font-family:var(--mono);font-size:10px;color:var(--text3);cursor:pointer;background:none;border:1px solid var(--border);padding:3px 10px;}
.ljcls:hover{border-color:var(--red);color:var(--red);}
.ljbody{padding:16px 18px;display:flex;flex-direction:column;gap:10px;}
.ljinfo{font-size:11px;color:var(--text2);line-height:1.6;}
.ljinfo strong{color:var(--green);}
.ljinfo code{font-family:var(--mono);font-size:10px;color:var(--amber);background:var(--ad);padding:1px 5px;border:1px solid var(--amber);border-radius:1px;}
.ljta{width:100%;height:180px;background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--mono);font-size:10px;padding:10px;outline:none;resize:vertical;line-height:1.5;}
.ljta:focus{border-color:var(--green);}
.ljta::placeholder{color:var(--text3);}
.ljfooter{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--bg3);}
.ljbtn{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.07em;padding:7px 18px;border:1px solid;cursor:pointer;transition:all .15s;text-transform:uppercase;}
.ljbtn.load{border-color:var(--green);color:var(--green);background:var(--gd);}
.ljbtn.load:hover{background:rgba(46,204,113,.25);}
.ljbtn.cancel{border-color:var(--border);color:var(--text3);background:var(--bg4);}
.ljbtn.cancel:hover{border-color:var(--red);color:var(--red);}
.ljbtn.file{border-color:var(--amber);color:var(--amber);background:var(--ad);}
.ljbtn.file:hover{background:rgba(245,166,35,.25);}

/* EXPAND OVERLAYS */
.expand-overlay{position:fixed;inset:0;background:rgba(5,9,20,.95);z-index:800;display:flex;align-items:center;justify-content:center;}
.expand-box{background:var(--bg2);border:1px solid var(--border2);width:96vw;height:94vh;display:flex;flex-direction:column;overflow:hidden;border-radius:2px;}
.expand-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg3);flex-shrink:0;}
.expand-close{font-family:var(--mono);font-size:10px;color:var(--text3);cursor:pointer;background:none;border:1px solid var(--border);padding:3px 10px;transition:all .15s;}
.expand-close:hover{border-color:var(--red);color:var(--red);}
/* expanded table styling */
#exp-table thead th{font-family:var(--mono);font-size:10px;font-weight:500;text-transform:uppercase;color:var(--text3);padding:8px 12px;text-align:left;border-bottom:1px solid var(--border2);background:var(--bg3);position:sticky;top:0;z-index:5;white-space:nowrap;}
#exp-table tbody tr{border-bottom:1px solid var(--border);}
#exp-table tbody tr:hover{background:rgba(0,200,224,.04);}
#exp-table tbody td{padding:7px 12px;font-size:12px;color:var(--text);}
/* expanded L16 finding cards */
.exp-fc{width:calc(50% - 8px);border:1px solid;padding:10px 12px;background:var(--bg3);margin-bottom:8px;box-sizing:border-box;}
.exp-fc.cr{border-color:rgba(231,76,60,.5);}
.exp-fc.wn{border-color:rgba(245,166,35,.45);}
.exp-fc.ab{border-color:rgba(249,115,22,.4);}
.exp-fc.ms{border-color:rgba(167,139,250,.4);}
.exp-fc.ps{border-color:rgba(46,204,113,.3);}
.exp-fc.if{border-color:rgba(0,200,224,.25);}
.exp-fc-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.exp-fc-id{font-family:var(--mono);font-size:10px;font-weight:600;}
.exp-fc.cr .exp-fc-id{color:var(--red);}
.exp-fc.wn .exp-fc-id{color:var(--amber);}
.exp-fc.ab .exp-fc-id{color:var(--orange);}
.exp-fc.ms .exp-fc-id{color:var(--purple);}
.exp-fc.ps .exp-fc-id{color:var(--green);}
.exp-fc.if .exp-fc-id{color:var(--cyan);}
.exp-fc-row{display:flex;gap:8px;margin-bottom:4px;}
.exp-fc-lb{font-family:var(--mono);font-size:8px;color:var(--text3);min-width:64px;text-transform:uppercase;flex-shrink:0;padding-top:1px;}
.exp-fc-val{font-size:11px;color:var(--text);line-height:1.5;flex:1;}
.exp-fc-fix{font-size:11px;color:var(--amber);line-height:1.5;flex:1;}
.exp-fc-ref{font-family:var(--mono);font-size:9px;color:var(--cyan);}
.exp-expert-row{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);}
.exp-expert-inp{width:100%;background:var(--bg4);border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:11px;padding:5px 8px;outline:none;margin-top:3px;}
.exp-expert-inp:focus{border-color:var(--amber);}
.exp-agree-row{display:flex;gap:8px;margin-top:6px;}
.exp-agree-btn{font-family:var(--mono);font-size:9px;padding:3px 10px;border:1px solid var(--border);background:var(--bg3);color:var(--text3);cursor:pointer;transition:all .15s;}
.exp-agree-btn.yes{border-color:var(--green);color:var(--green);background:var(--gd);}
.exp-agree-btn.no{border-color:var(--red);color:var(--red);background:var(--rd);}
.exp-agree-btn.par{border-color:var(--amber);color:var(--amber);background:var(--ad);}

::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:var(--bg2);}
::-webkit-scrollbar-thumb{background:var(--border2);}
::-webkit-scrollbar-thumb:hover{background:var(--cyan);}

/* ── DSID badge ── */
#dsid-badge{font-family:var(--mono);font-size:9px;color:var(--cyan);background:rgba(0,200,224,.08);border:1px solid rgba(0,200,224,.25);padding:2px 8px;letter-spacing:.06em;white-space:nowrap;border-radius:2px;cursor:default;user-select:none;}
/* ── Save-before-change modal ── */
#save-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:9999;align-items:center;justify-content:center;}
#save-modal.open{display:flex;}
.sm-box{background:var(--bg2);border:1px solid var(--border);padding:28px 32px;max-width:480px;width:90%;font-family:var(--mono);}
.sm-title{font-size:12px;font-weight:600;color:var(--amber);letter-spacing:.08em;margin-bottom:6px;}
.sm-id{font-size:11px;color:var(--cyan);letter-spacing:.1em;margin-bottom:14px;}
.sm-msg{font-size:11px;color:var(--text2);line-height:1.7;margin-bottom:20px;}
.sm-btns{display:flex;flex-wrap:wrap;gap:8px;}
.sm-btn{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.07em;padding:7px 14px;cursor:pointer;border:1.5px solid;background:transparent;transition:all .2s;}
.sm-btn.save-all{border-color:var(--cyan);color:var(--cyan);}
.sm-btn.save-all:hover{background:rgba(0,200,224,.12);}
.sm-btn.save-json{border-color:var(--purple);color:var(--purple);}
.sm-btn.save-json:hover{background:rgba(139,92,246,.12);}
.sm-btn.discard{border-color:var(--text3);color:var(--text3);}
.sm-btn.discard:hover{background:rgba(255,255,255,.06);}
.sm-btn.cancel{border-color:var(--red,#e74c3c);color:var(--red,#e74c3c);}
.sm-btn.cancel:hover{background:rgba(231,76,60,.12);}