/* NAIQ Health AI — Radiology Console (dark workstation). NAIQ indigo/orange. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root{
  --bg:#0e1520; --bg2:#131c29; --panel:#16202e; --panel2:#1b2634; --line:#243347;
  --tx:#e7edf5; --tx2:#9fb0c3; --tx3:#6b7d92;
  --ind:#8b6cf0; --ind2:#6C4AB6; --org:#ff7438; --ok:#2fd39a; --warn:#f2b23c; --risk:#ff5d6c;
}
*{box-sizing:border-box;margin:0;padding:0}
body.console{background:var(--bg);color:var(--tx);font-family:"Inter",system-ui,sans-serif;
  height:100vh;overflow:hidden;font-size:13px}
button{font-family:inherit;cursor:pointer}
select{font-family:inherit}

.ws{display:grid;grid-template-columns:96px 1fr 372px;height:100vh}

/* ---- left rail ---- */
.rail-l{background:var(--bg2);border-right:1px solid var(--line);display:flex;flex-direction:column;
  align-items:center;padding:14px 8px;gap:14px}
.rail-l .logo img{width:34px;height:34px;border-radius:9px}
.rail-btn{width:100%;background:none;border:none;color:var(--tx3);font-size:9.5px;font-weight:700;
  letter-spacing:.05em;padding:8px 0;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:4px}
.rail-btn .ic{font-size:18px}
.rail-btn.active{color:var(--org);background:rgba(255,116,56,.1)}
.series{margin-top:8px;display:flex;flex-direction:column;gap:10px;width:100%;overflow-y:auto;flex:1}
.thumb{position:relative;border:1.5px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;background:#000}
.thumb.active{border-color:var(--org)}
.thumb canvas{display:block;width:100%}
.thumb .lab{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:8px;color:var(--tx2);
  background:rgba(0,0,0,.5);padding:1px}
.thumb .aitag{position:absolute;top:2px;right:2px;font-size:7px;font-weight:700;color:#fff;
  background:var(--org);border-radius:3px;padding:0 3px}
.rail-bottom{margin-top:auto;display:flex;flex-direction:column;gap:6px;width:100%}
.rail-bottom button{background:none;border:1px solid var(--line);color:var(--tx3);border-radius:7px;
  padding:6px 0;font-size:9px;font-weight:700}

/* ---- center viewer ---- */
.viewer-col{display:flex;flex-direction:column;min-width:0}
.toolbar{height:52px;display:flex;align-items:center;gap:6px;padding:0 16px;
  background:var(--bg2);border-bottom:1px solid var(--line)}
.tb{width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:none;color:var(--tx2);
  font-size:16px;display:flex;align-items:center;justify-content:center}
.tb:hover{background:var(--panel2);color:var(--tx)}
.tb.active{background:rgba(139,108,240,.18);color:var(--ind);border-color:var(--ind2)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--tx3);font-size:12px;font-weight:600}
.tb-right .user{display:flex;align-items:center;gap:6px;color:var(--tx2)}
.viewport{position:relative;flex:1;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}
.viewport canvas{display:block;max-width:100%;max-height:100%;touch-action:none}
.drop{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;color:var(--tx2);cursor:pointer;text-align:center}
.drop .big{font-size:36px}
.drop b{color:var(--ind)}
.drop small{color:var(--tx3)}
.ov-tl{position:absolute;top:12px;left:16px;font-size:11px;color:var(--tx2);line-height:1.5;text-shadow:0 1px 3px #000}
.ov-tl b{color:var(--tx)}
.hideai{position:absolute;top:12px;right:16px;background:rgba(20,28,40,.8);border:1px solid var(--line);
  color:var(--tx);border-radius:7px;padding:6px 12px;font-size:12px;font-weight:600}
.hideai.off{color:var(--tx3)}
.ov-br{position:absolute;bottom:12px;right:16px;font-size:13px;font-weight:700;color:var(--org);text-shadow:0 1px 3px #000}
.ov-help{position:absolute;bottom:12px;left:16px;font-size:11px;color:var(--tx3)}

/* scan overlay */
.scanmask{position:absolute;inset:0;background:rgba(6,10,16,.7);display:none;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;z-index:6}
.scanmask.on{display:flex}
.scanline{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--org),transparent);
  box-shadow:0 0 16px 3px rgba(255,116,56,.6);animation:sweep 2s ease-in-out infinite}
@keyframes sweep{0%{top:8%}50%{top:92%}100%{top:8%}}
.scan-ring{position:relative;width:82px;height:82px}
.scan-ring svg{transform:rotate(-90deg)}
.scan-ring .bg{fill:none;stroke:rgba(255,255,255,.15);stroke-width:6}
.scan-ring .fg{fill:none;stroke:var(--org);stroke-width:6;stroke-linecap:round;stroke-dasharray:226;stroke-dashoffset:226}
.scan-ring .pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}
.scan-cap{color:var(--tx2);font-size:12px}

/* ---- right rail ---- */
.rail-r{background:var(--bg2);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.r-head{padding:16px 18px 10px;font-size:14px;font-weight:600;color:var(--tx)}
.r-cols{display:grid;grid-template-columns:26px 1fr 1fr 96px;gap:8px;padding:0 18px 8px;
  font-size:10px;color:var(--tx3);font-weight:600;border-bottom:1px solid var(--line)}
.nodlist{flex:1;overflow-y:auto;padding:6px 12px}
.nrow{display:grid;grid-template-columns:26px 1fr 1fr 96px 26px;gap:8px;align-items:start;
  padding:11px 6px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:8px}
.nrow:hover{background:var(--panel)}
.nrow.sel{background:rgba(139,108,240,.12)}
.nrow .nid{font-size:15px;font-weight:700;color:var(--tx2)}
.nrow .col small{display:block;color:var(--tx3);font-size:10px;margin-bottom:2px}
.nrow .col{font-size:12px;color:var(--tx);line-height:1.4}
.nrow select{width:100%;margin-top:5px;background:var(--panel2);color:var(--tx);border:1px solid var(--line);
  border-radius:6px;padding:4px 6px;font-size:11px}
.nrow .del{background:none;border:none;color:var(--tx3);font-size:15px}
.nrow .del:hover{color:var(--risk)}
.nrow .lr{display:inline-block;font-size:9.5px;font-weight:700;color:#fff;border-radius:5px;padding:1px 6px;margin-top:3px}
.empty-r{padding:30px 18px;color:var(--tx3);text-align:center;font-size:12px}

/* Lung-RADS panel */
.lrpanel{border-top:1px solid var(--line);padding:14px 18px;background:var(--panel)}
.lrpanel .cat{font-size:19px;font-weight:700;margin-bottom:6px}
.lrpanel .expl{font-size:11px;color:var(--tx2);line-height:1.6}
.lrpanel .expl div{margin-bottom:1px}
.r-actions{display:flex;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--line);align-items:center}
.r-actions .addn{flex:1;background:none;border:1.5px solid var(--org);color:var(--org);border-radius:9px;
  padding:9px;font-weight:700;font-size:12.5px}
.r-actions .addn:hover{background:rgba(255,116,56,.12)}
.r-actions .icn{width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);
  color:var(--tx2);font-size:15px}
.r-actions .cmp{background:var(--ind2);border:none;color:#fff;border-radius:9px;padding:9px 16px;font-weight:700}
.r-actions .cmp:disabled{opacity:.4}

/* toast */
.toast{position:fixed;top:14px;left:14px;z-index:50;background:var(--panel2);border:1px solid var(--line);
  border-left:3px solid var(--ok);border-radius:10px;padding:10px 16px;display:none;align-items:center;gap:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.5)}
.toast.show{display:flex;animation:tin .2s ease}
@keyframes tin{from{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}
.toast .tk{color:var(--ok);font-size:16px}
.toast b{display:block;font-size:12.5px}
.toast small{color:var(--tx3);font-size:11px}

/* add-nodule hint */
.addmode .viewport{cursor:crosshair}
.addbanner{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:var(--org);color:#fff;
  font-size:12px;font-weight:600;padding:6px 14px;border-radius:8px;display:none;z-index:7}
.addmode .addbanner{display:block}
