﻿:root {
  --bg: #0b1220;
  --bg2: #0d1a2e;
  --bg3: #102a45;
  --bg4: #123b66;
  --panel: #101f36;
  --border: #21374f;
  --border2: #2c4763;
  --text: #e2e8ef;
  --text2: #b4c2d0;
  --text3: #94a4b4;
  --blue: #14b8d4;
  --blue2: #14b8d4;
  --blue3: #19d3e6;
  --blue-bg: #0a3a56;
  --orange: #d49a3a;
  --orange2: #a8752a;
  --green: #4caf50;
  --green2: #388e3c;
  --amber: #f5a623;
  --red: #cc4444;
  --selected-bg: #143754;
  --selected-border: #19d3e6;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;}
body{background:#0b1220;color:var(--text);font-size:12px;height:100vh;display:flex;flex-direction:column;overflow:hidden;}

/* â”€â”€ SCREEN CONTROL â”€â”€ */
.screen{display:none;flex-direction:column;height:100%;position:relative;}
.screen.active{display:flex;}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   TOPBAR
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.topbar{
  display:flex;align-items:stretch;
  background:linear-gradient(180deg,#102a45,#0b1220);
  border-bottom:2px solid #07101d;
  height:46px;
  flex-shrink:0;
}
.tab-group{display:flex;align-items:stretch;}
.tab{
  display:flex;align-items:center;gap:6px;
  padding:0 18px;
  font-size:12px;
  cursor:pointer;
  border-right:1px solid #21374f;
  color:var(--text2);
  background:transparent;
  border:none;
  position:relative;
}
.tab:hover{background:rgba(255,255,255,0.05);}
.tab.active{
  background:linear-gradient(180deg,#4a4a4a,#3a3a3a);
  color:#fff;
  box-shadow:inset 0 2px 0 var(--blue);
}
.tab svg{width:14px;height:14px;fill:currentColor;}

.top-patient-bar{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  gap:20px;
  font-size:11px;color:var(--text2);
  border-left:1px solid #21374f;
  border-right:1px solid #21374f;
}
.top-patient-bar .pat-field{display:flex;align-items:center;gap:5px;}
.top-patient-bar .pat-label{color:#aaa;}
.top-patient-bar .pat-val{color:#ddd;font-weight:600;}

.topbar-right{
  display:flex;align-items:center;gap:6px;padding:0 12px;
  border-left:1px solid #21374f;
}
.topbar-right button{
  background:none;border:none;cursor:pointer;
  color:var(--text2);
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:3px;
}
.topbar-right button:hover{background:rgba(255,255,255,0.1);}
.topbar-right button:disabled{opacity:.32;cursor:not-allowed;}
.topbar-right button:disabled:hover{background:none;}
.topbar-right button svg{width:16px;height:16px;fill:currentColor;}
.mpr-trainer-logo{
  display:flex;align-items:center;gap:8px;
  color:#f5f8fb;
  padding:0 18px 0 14px;
  min-width:214px;
  background:linear-gradient(90deg,rgba(20,184,212,0.16),rgba(20,184,212,0.03) 72%,transparent);
  border-right:1px solid #21374f;
}
.mpr-trainer-logo img{
  width:34px;height:34px;display:block;flex:none;
  filter:drop-shadow(0 0 10px rgba(20,184,212,0.34));
}
.mpr-trainer-logo .brand-wordmark{
  display:block;line-height:1;
  font-family:"Bahnschrift","DIN Alternate","Segoe UI Variable Display","Segoe UI",system-ui,sans-serif;
  font-size:17px;font-weight:800;letter-spacing:1.5px;color:#f5f8fb;
}
.mpr-trainer-logo b{color:#19d3e6;font-weight:800;}
.mpr-trainer-logo small{
  display:block;margin-top:4px;color:#19d3e6;
  font-size:10px;letter-spacing:1.7px;font-weight:800;text-transform:uppercase;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SCREEN 1 â€” PATIENTS
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.s1-body{flex:1;background:var(--bg);overflow-y:auto;padding:0;}

.s1-toprow{
  display:flex;align-items:center;gap:12px;
  padding:8px 16px;
  background:linear-gradient(180deg,#404040,#363636);
  border-bottom:1px solid #21374f;
}
.s1-title{font-size:14px;font-weight:700;color:#fff;}
.btn-mpr-trainer{
  background:linear-gradient(180deg,#14b8d4,#0f97b0);
  border:1px solid #19d3e6;
  color:#f5f8fb;
  padding:4px 12px;height:26px;
  border-radius:3px;font-size:11px;cursor:pointer;
  display:flex;align-items:center;gap:6px;
}
.btn-mpr-trainer:hover{background:linear-gradient(180deg,#14b8d4,#14b8d4);}
.btn-mpr-trainer svg{width:13px;height:13px;fill:currentColor;}
/* RIS estatico (placeholder — integracao futura) */
.btn-mpr-trainer.is-static,
.btn-mpr-trainer:disabled{
  background:#243448;border-color:#33465e;color:#8aa0b4;
  cursor:default;opacity:0.75;pointer-events:none;
}
.btn-mpr-trainer.is-static:hover,
.btn-mpr-trainer:disabled:hover{background:#243448;}

.s1-main{padding:12px 16px;display:flex;flex-direction:column;gap:14px;}

/* Form section */
.form-section{display:grid;grid-template-columns:200px 1fr 280px;gap:0;background:var(--panel);border:1px solid #21374f;}
.form-col{padding:10px 14px;display:flex;flex-direction:column;gap:7px;border-right:1px solid #21374f;}
.form-col:last-child{border-right:none;}

/* Tour de onboarding (mesmo estilo do /reconstrutor/, paleta navy/ciano) */
#sim-tour-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(9,14,22,.62);
  display:none;pointer-events:auto;
}
#sim-tour-overlay.active{display:block;}
#sim-tour-highlight{
  position:fixed;z-index:9001;
  display:none;pointer-events:none;
  border:3px solid var(--blue3);border-radius:4px;
  box-shadow:0 0 0 9999px rgba(9,14,22,.62), 0 0 30px var(--blue);
  transition:all .25s ease;
}
#sim-tour-highlight.active{display:block;}
#sim-tour-tooltip{
  position:fixed;z-index:9002;
  display:none;
  background:#0d1a2e;
  border:1px solid var(--blue);
  border-radius:6px;
  padding:0;width:340px;max-width:90vw;
  box-shadow:0 20px 60px rgba(0,0,0,.7);
}
#sim-tour-tooltip.active{display:block;}
#sim-tour-tooltip .tour-card{padding:16px 18px;}
#sim-tour-tooltip .tour-card h4{
  margin:0 0 8px;color:#8ee8ec;font-size:14px;letter-spacing:.3px;
}
#sim-tour-tooltip .tour-card p{
  margin:0 0 14px;color:var(--text);font-size:12.5px;line-height:1.5;
}
#sim-tour-tooltip .tour-card p b{color:#e6eef7;}
#sim-tour-tooltip .tour-card kbd{
  background:#1d334b;border:1px solid var(--border);
  padding:1px 6px;border-radius:3px;font-family:Consolas,monospace;
  color:#8ee8ec;font-size:11px;
}
#sim-tour-tooltip .tour-nav{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:8px;border-top:1px solid var(--border);
}
#sim-tour-tooltip .tour-step{font-size:10.5px;color:var(--text3);}
#sim-tour-tooltip .tour-actions{display:flex;gap:4px;}
#sim-tour-tooltip .tour-actions button{
  background:#1d334b;border:1px solid var(--border);
  color:var(--text);padding:4px 10px;border-radius:3px;
  font-size:11px;cursor:pointer;
}
#sim-tour-tooltip .tour-actions button:hover{background:#25436a;}
#sim-tour-tooltip .tour-actions button.tour-primary{
  background:linear-gradient(180deg,var(--blue3),var(--blue));
  color:#06202b;font-weight:700;border-color:var(--blue);
}

.frow{display:flex;align-items:center;min-height:22px;}
.frow label{
  width:110px;flex-shrink:0;
  font-size:11px;color:var(--text2);text-align:right;padding-right:8px;
}
.frow label.req::after{content:" *";color:var(--red);}
.frow input[type=text],.frow select{
  flex:1;height:22px;
  background:#2a2a2a;border:1px solid #666;
  color:#fff;padding:0 5px;font-size:11px;
  outline:none;
}
.frow input:focus,.frow select:focus{border-color:var(--blue);}
.frow select{appearance:none;cursor:pointer;padding-right:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%23888' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;background-size:8px;}

.dob-row{display:flex;gap:3px;align-items:center;}
.dob-row input{width:36px!important;flex:none!important;text-align:center;}
.dob-row span{color:#6f89a3;font-size:11px;}

.age-row{display:flex;gap:4px;align-items:center;}
.age-row input{width:50px!important;flex:none!important;}
.age-row select{width:64px!important;flex:none!important;}

.radio-group{display:flex;gap:10px;align-items:center;}
.radio-group label{
  display:flex;align-items:center;gap:4px;
  font-size:11px;color:#ccc;cursor:pointer;
  white-space:nowrap;
}
input[type=radio],input[type=checkbox]{accent-color:var(--blue);cursor:pointer;}

/* Right column actions */
.form-actions{
  display:flex;flex-direction:column;gap:6px;
  padding:10px;background:var(--panel);border:1px solid #21374f;border-left:none;
  justify-content:flex-start;
}
.btn-action-right{
  background:linear-gradient(180deg,#4a4a4a,#383838);
  border:1px solid #666;color:#ddd;
  width:100%;height:26px;border-radius:3px;
  font-size:11px;cursor:pointer;text-align:center;
}
.btn-action-right:hover{background:linear-gradient(180deg,#555,#444);}
.btn-start{
  background:linear-gradient(180deg,#3a7abf,#2a5a9f);
  border:1px solid #4a8ad0;color:#fff;font-weight:700;
  margin-top:auto;
}
.btn-start:hover{background:linear-gradient(180deg,#4a8acf,#3a6aaf);}

/* â”€â”€ Exam Card section â”€â”€ */
.exam-section{background:var(--panel);border:1px solid #21374f;padding:10px;}
.exam-section-title{font-size:12px;color:var(--amber);font-weight:700;margin-bottom:8px;letter-spacing:0.3px;}

.anatomy-bar{display:flex;gap:4px;margin-bottom:10px;overflow-x:auto;}
.abtn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  min-width:72px;padding:6px 4px;
  background:#142743;border:2px solid transparent;
  cursor:pointer;font-size:9.5px;color:var(--text2);
  border-radius:2px;transition:all 0.15s;
  text-align:center;
}
.abtn:hover{background:#3a3a3a;color:#fff;}
.abtn.active{background:#3a3a3a;border-color:var(--blue);color:#fff;}
.abtn img,.abtn .aicon{width:36px;height:36px;object-fit:contain;}
/* SVG anatomy icons */
.aicon{display:flex;align-items:center;justify-content:center;}
.aicon svg{width:32px;height:32px;fill:currentColor;}
.head-xray-icon{
  width:42px!important;height:36px!important;border:1px solid #5f6b74;
  background:#17191f;overflow:hidden;border-radius:2px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06),0 0 8px rgba(120,190,220,0.18);
}
.head-xray-icon img{
  width:100%;height:100%;object-fit:cover;object-position:45% 42%;
  filter:grayscale(1) contrast(1.2) brightness(1.05);
  transform:scale(1.45);
}

.exam-bottom{display:grid;grid-template-columns:1fr 220px;gap:10px;}

.cards-filter{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;color:var(--text2);}
.cards-filter label{display:flex;align-items:center;gap:4px;cursor:pointer;}
.card-user-ref{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--text2);}
.card-user-ref label{display:flex;align-items:center;gap:3px;cursor:pointer;}

.cards-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
  gap:4px;max-height:148px;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:#555 transparent;
}
.ecard{
  background:#2a2a2a;border:1px solid #21374f;
  padding:6px 8px;cursor:pointer;
  min-height:54px;display:flex;flex-direction:column;gap:4px;
  position:relative;transition:border-color 0.15s;
}
.ecard:hover{border-color:#aaa;background:#1d334b;}
.ecard.active{border-color:var(--selected-border);background:#2a3d52;}
.ecard .ec-title{font-size:10px;font-weight:700;color:#fff;line-height:1.3;}
.cards-grid.protocols-hidden{display:none;}
.ecard.active .ec-title{color:#a8d4f0;}
.abtn.is-unavailable,.ecard.is-unavailable,.or-tab.is-unavailable{
  opacity:.38;cursor:not-allowed;filter:saturate(.45);
}
.abtn.is-unavailable:hover,.ecard.is-unavailable:hover,.or-tab.is-unavailable:hover{
  background:inherit;border-color:var(--border);color:var(--text2);
}
.cards-filter input:disabled{cursor:not-allowed;opacity:.55;}
.ecard .ec-check{
  position:absolute;bottom:5px;left:7px;
  width:14px;height:14px;border:1px solid #21374f;
  background:#1a1a1a;display:flex;align-items:center;justify-content:center;
}
.ecard.active .ec-check::after{
  content:'';
  width:7px;height:4px;
  border-left:2px solid var(--blue);
  border-bottom:2px solid var(--blue);
  transform:rotate(-45deg) translateY(-1px);
}

/* Orientation selector */
.orient-panel{background:#142743;border:1px solid #21374f;padding:8px;}
/* Align patient orientation with anatomy cards */
#exam-section-wrap{min-height:236px;}
#exam-section-wrap .anatomy-bar{padding-right:300px;}
#exam-section-wrap .exam-bottom{padding-right:300px;}
#orient-panel-wrap{position:absolute!important;top:36px;right:10px;width:285px;}
.orient-title{font-size:11px;color:var(--amber);font-weight:700;margin-bottom:8px;}
.orient-tabs{display:flex;margin-bottom:6px;}
.or-tab{
  flex:1;background:#1d334b;border:1px solid #21374f;
  color:#aaa;font-size:10px;text-align:center;padding:3px;
  cursor:pointer;
}
.or-tab.active{background:#3a5a7a;border-color:var(--blue);color:#fff;}

.orient-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;}
.opos{
  background:#2a2a2a;border:2px solid #444;
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:8px 4px;gap:3px;
  cursor:pointer;transition:all 0.15s;font-size:9px;color:#aaa;
}
.opos:hover{border-color:#a9bed4;color:#ccc;}
.opos.active{border-color:var(--blue);background:#1a3050;color:#a8d4f0;}
.opos svg{width:52px;height:36px;fill:currentColor;}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   STATUS BAR (bottom)
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.statusbar{
  display:flex;align-items:center;
  background:#1e1e1e;border-top:1px solid #1d334b;
  height:30px;padding:0 12px;
  font-family:'Courier New',monospace;font-size:11px;
  color:#aaa;flex-shrink:0;gap:0;
}
.sb-item{
  display:flex;align-items:center;gap:4px;
  padding:0 10px;border-right:1px solid #1d334b;
  height:100%;
}
.sb-item:first-child{padding-left:0;}
.sb-val{color:#ccc;font-weight:700;}
.sb-right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.sb-icons{display:flex;gap:6px;align-items:center;}
.sb-icon{width:20px;height:20px;background:#2a2a2a;border:1px solid #444;border-radius:2px;display:flex;align-items:center;justify-content:center;}
.sb-icon svg{width:12px;height:12px;fill:#888;}
/* Status bar viva: rótulos, estado do sistema (chip com ponto) e semáforo do tubo */
.sb-lbl{color:#7f95a8;margin-right:3px;}
.sb-state-item{gap:6px;min-width:118px;}
.sb-dot{width:8px;height:8px;border-radius:50%;background:#7fe0a8;box-shadow:0 0 6px rgba(127,224,168,0.75);flex:none;}
#sb-state{font-weight:700;letter-spacing:0.6px;color:#bfe7c9;}
.statusbar.state-review .sb-dot{background:#19d3e6;box-shadow:0 0 6px rgba(25,211,230,0.8);}
.statusbar.state-review #sb-state{color:#a9e9f2;}
.statusbar.state-plan .sb-dot{background:#8ecbff;box-shadow:0 0 6px rgba(142,203,255,0.8);}
.statusbar.state-plan #sb-state{color:#c4e0ff;}
.statusbar.state-busy .sb-dot{background:#e8b84b;box-shadow:0 0 7px rgba(232,184,75,0.9);animation:sbPulse 1s ease-in-out infinite;}
.statusbar.state-busy #sb-state{color:#f0dca6;}
.sb-heat-item.warn .sb-val{color:#e8b84b;}
.sb-heat-item.bad .sb-val{color:#ef6f6f;}
@keyframes sbPulse{0%,100%{opacity:1;}50%{opacity:0.35;}}
@media (prefers-reduced-motion:reduce){.statusbar.state-busy .sb-dot{animation:none;}}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SCREEN 2 â€” SCAN
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.s2-top-patient{
  display:flex;align-items:center;justify-content:center;gap:24px;
  background:#2a2a2a;border-bottom:1px solid #21374f;
  height:30px;font-size:11px;
}
.tpf{display:flex;align-items:center;gap:5px;}
.tpl{color:#aaa;}
.tpv{color:#ddd;font-weight:600;}

/* toolbar */
.s2-toolbar{
  display:flex;align-items:center;gap:2px;flex-wrap:wrap;row-gap:3px;
  background:linear-gradient(180deg,#102a45,#0b1220);
  border-bottom:1px solid #21374f;
  padding:3px 6px;min-height:32px;flex-shrink:0;justify-content:center;
}
.tb-btn{
  background:none;border:1px solid transparent;
  width:26px;height:24px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  border-radius:2px;color:#aaa;
}
.tb-btn:hover{background:#444;border-color:#6f89a3;color:#ddd;}
.tb-btn svg{width:14px;height:14px;fill:currentColor;}
.tb-sep{width:1px;height:20px;background:#555;margin:0 3px;}
.toolbar-adjustments{
  display:flex;align-items:center;gap:8px;margin-left:4px;
  padding:0 8px;height:24px;border-left:1px solid #21374f;border-right:1px solid #21374f;
  background:rgba(0,0,0,0.12);
}
.toolbar-adjustments .result-control{
  display:flex;align-items:center;gap:4px;color:#d8d8d8;font-size:10px;
  grid-template-columns:none;
}
.toolbar-adjustments .result-control input[type=range]{width:86px;accent-color:#4ee7ff;}
.toolbar-adjustments .result-control output{min-width:26px;color:#fff;text-align:right;font-family:'Courier New',monospace;font-size:10px;}
.toolbar-adjustments .hu-window-input{
  width:52px;height:20px;background:#342f40;border:1px solid #666;color:#fff;
  font:10px 'Courier New',monospace;padding:0 4px;
}
.toolbar-adjustments .hu-window-preset{
  height:22px;min-width:104px;background:#3a3447;border:1px solid #666;color:#eee;
  font-size:10px;padding:0 18px 0 6px;cursor:pointer;
}
.toolbar-adjustments .result-reset{
  height:20px;padding:0 8px;background:#474055;border:1px solid #666;color:#ddd;
  border-radius:2px;font-size:10px;cursor:pointer;
}
.toolbar-adjustments .result-reset:hover{background:#5a526b;}
.s2-toolbar > .tb-btn,
.s2-toolbar > .tb-sep{display:none;}
.s2-toolbar .toolbar-adjustments{margin-left:0;border-left:none;border-right:none;background:transparent;flex-wrap:wrap;height:auto;min-height:24px;gap:6px;row-gap:4px;}
.s2-toolbar .toolbar-adjustments .result-control input[type=range]{width:70px;}
.toolbar-pan-btn{
  height:22px;padding:0 10px;background:#0f97b0;border:1px solid #19d3e6;
  color:#f5f8fb;border-radius:2px;font-size:10px;font-weight:700;cursor:pointer;
}
.toolbar-pan-btn.active{background:#14b8d4;box-shadow:0 0 8px rgba(20,184,212,0.38);}
.toolbar-pan-btn:hover{background:#14b8d4;}

.scan-layout{
  flex:1;display:grid;
  grid-template-columns:250px 1fr;
  overflow:hidden;
}

/* Seções de parâmetros da lateral: ocultas até clicar na sequência do proto-tree */
.seq-collapsed{display:none!important;}

/* â”€â”€ Sidebar â”€â”€ */
.scan-sidebar{
  background:#142743;border-right:1px solid #21374f;
  display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:#456078 #142743;
}

.sidebar-header{
  background:linear-gradient(180deg,#1d334b,#142743);
  border-bottom:1px solid #21374f;
  padding:4px 8px;
  display:flex;align-items:center;gap:6px;font-size:11px;
}
.sidebar-header svg{width:12px;height:12px;fill:var(--blue);}
.proto-name{color:var(--amber);font-weight:700;font-size:11px;letter-spacing:0.3px;}

/* Protocol tree */
.proto-tree{
  border-bottom:1px solid #444;
  overflow-y:auto;max-height:160px;
  flex:0 0 auto;
  scrollbar-width:thin;scrollbar-color:#444 transparent;
}
.pt-item{
  display:flex;align-items:center;gap:6px;
  padding:4px 8px;font-size:11px;color:#aaa;cursor:pointer;
  border-left:3px solid transparent;
}
.pt-item:hover{background:#1d334b;color:#ddd;}
.pt-item.active{
  background:#1e3a5a;color:#a8d4f0;font-weight:700;
  border-left-color:var(--blue);
}
.pt-num{
  width:16px;height:16px;border-radius:2px;
  background:#1d334b;display:flex;align-items:center;justify-content:center;
  font-size:9px;flex-shrink:0;
}
.pt-item.active .pt-num{background:#2a5a8a;color:#7acfff;}
.pt-sub{
  min-height:36px;padding:4px 6px 4px 32px;
  font-size:10px;color:#a9bed4;display:flex;align-items:center;gap:6px;
  width:100%;border:0;background:transparent;text-align:left;font-family:inherit;
}
.pt-sub-icon{width:14px;height:14px;border-radius:50%;border:1px solid #21374f;background:#101f36;flex-shrink:0;}
.pt-sub-copy{display:flex;min-width:0;flex:1;flex-direction:column;line-height:1.2;}
.pt-sub-copy > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pt-sub-copy small{color:#6f8ca8;font-size:8px;font-weight:500;white-space:nowrap;}
.pt-sub-status{
  min-width:43px;padding:2px 3px;border:1px solid #31465c;border-radius:2px;
  color:#7890a6;background:#122338;font-size:7px;font-weight:700;text-align:center;
}

/* Params */
.param-section{padding:8px;border-bottom:1px solid #444;display:flex;flex-direction:column;gap:0;}
.param-title{font-size:11px;color:#ccc;font-weight:700;margin-bottom:6px;}
.prow{display:flex;align-items:center;justify-content:space-between;padding:2px 0;border-bottom:1px solid #1d334b;min-height:24px;}
.prow:last-child{border-bottom:none;}
.pl{font-size:10px;color:#999;width:82px;}
.pc{display:flex;align-items:center;gap:4px;}
.pc select,.pc input{
  background:#101f36;border:1px solid #21374f;color:#ddd;
  height:20px;font-size:10px;padding:0 4px;outline:none;
}
.pc select{width:80px;appearance:none;cursor:pointer;}
.pc input{width:76px;}
.pc .unit{font-size:10px;color:#6f89a3;}
.radio-mini{display:flex;gap:8px;}
.radio-mini label{font-size:10px;color:#bbb;display:flex;align-items:center;gap:3px;cursor:pointer;}
.orient-tag{font-size:10px;color:#ddd;display:flex;align-items:center;gap:4px;}
.orient-tag svg{width:12px;height:12px;fill:#888;}
.label-window-panel{position:relative;width:100%;}
.label-window-toggle{
  width:100%;height:23px;display:flex;align-items:center;justify-content:space-between;
  background:#2c2c2c;border:1px solid #666;color:#ddd;font-size:10px;padding:0 7px;cursor:pointer;
}
.label-window-toggle::after{content:'▼';font-size:8px;color:#aaa;margin-left:6px;}
.label-window-panel.open .label-window-toggle::after{content:'▲';}
.label-window-menu{
  display:none;position:absolute;right:0;top:26px;z-index:30;width:178px;
  background:#322c40;border:1px solid #777;box-shadow:0 8px 20px rgba(0,0,0,0.45);
  padding:4px;max-height:220px;overflow-y:auto;
}
.label-window-panel.open .label-window-menu{display:block;}
.label-window-option{
  display:grid;grid-template-columns:1fr auto;gap:4px;width:100%;
  background:transparent;border:none;color:#ddd;text-align:left;font-size:10px;
  padding:5px 6px;cursor:pointer;
}
.label-window-option:hover,.label-window-option.active{background:#3b3a32;color:#f2d36b;}
.label-window-option span:last-child{font-family:'Courier New',monospace;color:#aaa;}

/* Scan info */
.scan-info{padding:8px;border-bottom:1px solid #444;display:flex;flex-direction:column;gap:3px;background:#272727;}
.si-row{display:flex;justify-content:space-between;font-size:10px;}
.si-label{color:#aaa;}
.si-val{color:#ddd;}
.si-unit{color:#6f89a3;font-size:9px;}

/* Sidebar bottom buttons */
.sidebar-icons{
  display:flex;gap:4px;padding:6px 8px;
  border-top:1px solid #444;
  border-bottom:1px solid #444;
}
.si-btn{
  width:26px;height:22px;background:#1d334b;border:1px solid #21374f;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  border-radius:2px;color:#aaa;
}
.si-btn:hover{background:#444;color:#ddd;}
.si-btn svg{width:13px;height:13px;fill:currentColor;}

.go-wrap{padding:8px;margin-top:auto;}
.btn-go{
  width:100%;height:40px;
  background:linear-gradient(180deg,#5cbf60,#3a9f3e);
  border:1px solid #2a8f2e;
  color:#fff;font-weight:900;font-size:16px;letter-spacing:3px;
  cursor:pointer;border-radius:3px;
  box-shadow:0 2px 8px rgba(0,180,0,0.4);
  transition:all 0.15s;
  text-transform:uppercase;
}
.btn-go:hover{background:linear-gradient(180deg,#6ccf70,#4aaf4e);box-shadow:0 3px 14px rgba(0,200,0,0.5);}
.btn-go:active{transform:translateY(1px);}
.btn-go.is-hidden{display:none;}
.result-go-small{display:none!important;}
.btn-end{
  width:100%;margin-top:6px;height:26px;
  background:linear-gradient(180deg,#4a4a4a,#363636);
  border:1px solid #666;color:#ccc;font-size:11px;
  cursor:pointer;border-radius:3px;
  display:flex;align-items:center;justify-content:center;gap:5px;
}
.btn-end:hover{background:linear-gradient(180deg,#555,#444);}
.btn-end svg{width:12px;height:12px;fill:currentColor;}

/* â”€â”€ Onboarding: dica de fluxo (aquisiÃ§Ã£o em duas etapas de GO) â”€â”€ */
.flow-hint{
  position:absolute;
  left:50%;bottom:14px;transform:translateX(-50%) translateY(8px);
  z-index:60;
  display:none;align-items:center;gap:9px;
  max-width:min(92%,460px);
  padding:9px 12px;
  background:linear-gradient(180deg,rgba(16,42,69,0.97),rgba(10,26,46,0.97));
  border:1px solid #2f7d86;
  border-left:3px solid var(--blue);
  border-radius:6px;
  box-shadow:0 6px 22px rgba(0,0,0,0.5);
  color:#cfeaf2;font-size:12px;line-height:1.35;
  opacity:0;transition:opacity 0.25s ease,transform 0.25s ease;
  pointer-events:none;
}
.flow-hint.is-visible{display:flex;opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
.flow-hint-dot{
  width:9px;height:9px;flex-shrink:0;border-radius:50%;
  background:var(--blue3);
  animation:flowHintPulse 1.6s ease-out infinite;
}
.flow-hint-text{flex:1;}
.flow-hint-dismiss{
  flex-shrink:0;width:18px;height:18px;line-height:1;
  background:transparent;border:none;color:#7fa8bd;
  font-size:16px;cursor:pointer;border-radius:3px;padding:0;
}
.flow-hint-dismiss:hover{background:#1d334b;color:#cfeaf2;}

@keyframes flowHintPulse{
  0%{box-shadow:0 0 0 0 rgba(25,211,230,0.55);}
  70%{box-shadow:0 0 0 7px rgba(25,211,230,0);}
  100%{box-shadow:0 0 0 0 rgba(25,211,230,0);}
}

/* Alvo da prÃ³xima aÃ§Ã£o pulsa suavemente (etapa 2 da lista ou o botÃ£o GO) */
.pt-item.flow-target{animation:flowTargetPulse 1.6s ease-in-out infinite;}
@keyframes flowTargetPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(25,211,230,0);}
  50%{box-shadow:0 0 0 3px rgba(25,211,230,0.45);}
}
.btn-go.flow-target{animation:flowTargetGoPulse 1.5s ease-in-out infinite;}
@keyframes flowTargetGoPulse{
  0%,100%{box-shadow:0 2px 8px rgba(0,180,0,0.4);}
  50%{box-shadow:0 2px 8px rgba(0,180,0,0.4),0 0 0 4px rgba(25,211,230,0.5);}
}

/* â”€â”€ Viewport â”€â”€ */
.scan-viewport{
  position:relative;
  background:#202b32;
  border:2px solid #2f7d86;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  overflow:hidden;
}

.vp-bg{
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 40%, #1a2530 0%, #0d1018 60%, #050810 100%);
}

/* Gantry/table */
.gantry-scene{
  position:relative;z-index:2;
  display:flex;flex-direction:column;align-items:center;
  gap:0;
}

/* Table top horizontal bar */
.table-top{
  width:280px;height:12px;
  background:linear-gradient(180deg,#9a9a9a,#707070);
  border-radius:3px 3px 0 0;
  border:1px solid #888;
  position:relative;
}
.table-top::before{
  content:'';position:absolute;top:2px;left:10px;right:10px;height:3px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);
  border-radius:2px;
}

/* Patient table leg */
.table-leg{
  width:6px;height:40px;
  background:linear-gradient(90deg,#707070,#888,#707070);
  margin-top:0;
  position:relative;
}

/* Patient on table */
.patient-figure{
  position:relative;
  width:110px;
  margin-top:-8px;
  z-index:3;
}
.patient-svg{width:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.5));}

/* Scan arrow */
.scan-arrow-wrap{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:50%;
  margin-top:20px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  z-index:10;
}
.scan-arrow-img{
  width:28px;height:60px;
  display:flex;flex-direction:column;align-items:center;
}
.arrow-lines{display:flex;flex-direction:column;gap:3px;margin-bottom:2px;}
.arrow-line{width:2px;height:4px;background:#ddd;border-radius:1px;}
.arrow-head svg{width:28px;height:28px;fill:#ddd;}

/* Scan position lines */
.scan-pos-lines{
  position:absolute;left:30px;right:30px;
  z-index:5;display:flex;flex-direction:column;gap:0;
}
.spl{
  height:1px;background:rgba(255,165,0,0.6);
  position:relative;
}
.spl::before,.spl::after{
  content:'';position:absolute;
  top:-3px;width:6px;height:6px;
  background:rgba(255,165,0,0.8);
  border-radius:1px;
}
.spl::before{left:0;}
.spl::after{right:0;}

/* Position markers at bottom */
.pos-markers{
  position:absolute;bottom:30px;left:0;right:0;
  display:flex;justify-content:center;gap:30px;
  z-index:5;
}
.pos-box{
  border:1px solid #f5a623;
  padding:2px 14px;
  font-family:'Courier New',monospace;font-size:10px;color:#f5a623;
  background:rgba(0,0,0,0.5);
  display:flex;align-items:center;gap:6px;
}
.pos-num{font-size:9px;color:#aaa;border:1px solid #666;padding:0 4px;background:#111;}

/* Corner labels */
.vp-corner{position:absolute;font-family:'Courier New',monospace;font-size:10px;color:#6f89a3;}
.vp-tl{top:8px;left:10px;}
.vp-tr{top:8px;right:10px;text-align:right;}
.vp-bl{bottom:8px;left:10px;}
.vp-br{bottom:8px;right:10px;text-align:right;}

/* Linha azul de varredura contínua REMOVIDA a pedido do usuário (distraía na cena
   do paciente no tomógrafo). */
.scan-sweep-line{ display:none !important; }

/* â”€â”€ Animations â”€â”€ */
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.screen.active{animation:fadeIn 0.25s ease both;}

/* Same as previous modal */
.previous-modal{
  position:fixed;inset:0;z-index:1000;
  display:none;align-items:center;justify-content:center;
  background:rgba(0,0,0,0.62);padding:20px;
}
.previous-modal.active{display:flex;}
.previous-modal-panel{
  width:min(620px,calc(100vw - 40px));
  max-height:min(560px,calc(100vh - 40px));
  background:#142743;border:1px solid #666;border-radius:4px;
  box-shadow:0 20px 50px rgba(0,0,0,0.45);
  display:flex;flex-direction:column;overflow:hidden;
}
.previous-modal-head{
  height:38px;display:flex;align-items:center;justify-content:space-between;
  padding:0 12px;background:linear-gradient(180deg,#444,#1d334b);
  border-bottom:1px solid #21374f;color:#fff;font-weight:700;
}
.previous-modal-close{
  width:26px;height:24px;border:1px solid #666;border-radius:3px;
  background:#383838;color:#ddd;cursor:pointer;font-size:15px;line-height:1;
}
.previous-modal-close:hover{background:#4a4a4a;color:#fff;}
.previous-modal-body{padding:12px;display:flex;flex-direction:column;gap:10px;overflow:hidden;}
.previous-search{
  height:26px;background:#242424;border:1px solid #666;color:#fff;
  padding:0 8px;font-size:11px;outline:none;
}
.previous-search:focus{border-color:var(--blue);}
.previous-table-wrap{border:1px solid #21374f;overflow:auto;max-height:390px;background:#262626;}
.previous-table{width:100%;border-collapse:collapse;font-size:11px;}
.previous-table th{
  position:sticky;top:0;z-index:1;background:#3a3a3a;color:#bbb;
  text-align:left;font-weight:700;padding:7px 8px;border-bottom:1px solid #21374f;
}
.previous-table td{padding:7px 8px;border-bottom:1px solid #444;color:#ddd;}
.previous-patient-row{cursor:pointer;}
.previous-patient-row:hover{background:#3a4f66;}
.previous-empty{display:none;color:#aaa;text-align:center;padding:12px;font-size:11px;}

/* Surview result shown after GO */
.scan-result-view{
  position:absolute;inset:0;z-index:20;display:none;
  background:#201f27;color:#ddd;font-size:10px;
}
.scan-result-view.active{display:grid;grid-template-columns:155px 1fr;}
.result-left{
  background:#4b474b;border-right:2px solid #1a1a1a;
  display:flex;flex-direction:column;padding:6px 5px;gap:6px;
}
.result-protocol-title{color:#8ee8ec;font-weight:700;font-size:11px;padding:2px 4px;border-left:3px solid #44b8c7;}
.result-step{background:#5a565b;border:1px solid #6a666b;padding:4px;color:#ddd;}
.result-step.active{color:#8ee8ec;border-left:3px solid #44b8c7;background:#335b62;}
.result-step small{display:block;color:#cfcfcf;font-size:9px;margin-top:3px;line-height:1.35;}
.result-adjustments{border-top:1px solid #777;border-bottom:1px solid #777;padding:7px 0;display:grid;gap:7px;}
.result-adjustments-title{color:#eee;font-weight:700;font-size:10px;}
.result-control{display:grid;grid-template-columns:52px 1fr 34px;align-items:center;gap:5px;color:#eee;font-size:9px;}
.result-control output{color:#fff;text-align:right;font-family:'Courier New',monospace;}
.result-control input[type=range]{width:100%;accent-color:#4ee7ff;}
.result-reset{
  height:20px;background:#474055;border:1px solid #777;color:#ddd;
  border-radius:2px;font-size:10px;cursor:pointer;
}
.result-reset:hover{background:#5a526b;}
.result-metrics{margin-top:auto;border-top:1px solid #777;padding-top:8px;display:grid;gap:5px;}
.result-metric{display:flex;justify-content:space-between;color:#eee;}
.result-go-small{height:22px;background:#38d957;border:1px solid #1d9d35;color:#fff;font-size:10px;margin-top:4px;font-weight:700;}
.result-main{position:relative;background:#28262e;overflow:hidden;}
.result-main::before{
  content:'';position:absolute;inset:20px 0 28px 0;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,0.018) 0 1px,transparent 1px 56px),
             repeating-linear-gradient(0deg,rgba(255,255,255,0.014) 0 1px,transparent 1px 48px);
  pointer-events:none;
}
.result-top-strip{
  position:absolute;left:0;right:0;top:0;height:20px;background:#304348;
  border-bottom:1px solid #17282c;color:#d7fbff;font-size:9px;
  display:flex;align-items:center;justify-content:center;z-index:5;
}
.result-brand{position:absolute;right:12px;top:3px;color:#bdeff2;font-weight:800;font-size:12px;letter-spacing:.6px;}
.result-surview-frame{
  position:absolute;left:14px;right:0;top:22px;bottom:42px;
  border:2px solid #3e8d96;background:#28343a;overflow:hidden;
}
.result-surview-frame::before{content:'H';position:absolute;top:4px;left:50%;color:#8ee8ec;font-weight:700;z-index:3;}
.result-surview-frame::after{content:'F';position:absolute;bottom:4px;left:50%;color:#8ee8ec;font-weight:700;z-index:3;}
.result-side-a,.result-side-p{position:absolute;top:48%;color:#8ee8ec;font-weight:700;font-size:12px;z-index:3;}
.result-side-a{left:4px;}.result-side-p{right:4px;}
.result-surview-stage{
  position:absolute;left:50%;top:50%;width:min(62vw,650px);height:min(76vh,500px);
  transform:translate(-50%,-50%);overflow:hidden;
}
/* Prévia do axial ao vivo no escanograma: mostra exatamente o que a caixa vai
   reconstruir (FOV/posição/cobertura), atualizando ao arrastar/redimensionar. */
.plan-preview{
  position:absolute;top:12px;right:12px;width:170px;z-index:45;
  background:rgba(9,18,32,.92);border:1px solid var(--blue);border-radius:7px;
  padding:7px;display:none;box-shadow:0 4px 18px rgba(0,0,0,.5);pointer-events:none;
}
/* Prévia do axial no PLANEJAMENTO = recurso de ADMIN (o cliente não vê o
   resultado antes de adquirir). Durante a aquisição a imagem aparece p/ todos. */
.scan-result-view.scout-split-mode .plan-preview{display:none;}
html.sim-admin .scan-result-view.scout-split-mode .plan-preview{display:block;}

/* Modo demonstração: só o exame de Crânio é selecionável — os demais cards
   ficam travados (adquira/entre para liberar). */
html.sim-demo .ecard:not([data-protocol="CRANIO"]){opacity:.4;filter:grayscale(1);pointer-events:none;position:relative;}
html.sim-demo .ecard:not([data-protocol="CRANIO"])::after{content:"🔒";position:absolute;top:4px;right:6px;font-size:12px;opacity:.9;}
.plan-preview-label{
  color:var(--blue3);font-size:11px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;margin-bottom:5px;
}
.plan-preview canvas{
  width:100%;height:auto;aspect-ratio:1/1;display:block;background:#000;
  border-radius:4px;image-rendering:auto;
}
.plan-preview-info{color:#cbd5e1;font-size:10.5px;margin-top:5px;text-align:center;}
.result-surview-img{
  position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:contain;
  transform:translate(-50%,-50%) scale(1);transform-origin:center center;
  opacity:0.98;filter:brightness(100%) contrast(100%);
}
.result-window-canvas{
  position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:contain;
  transform:translate(-50%,-50%) scale(1);transform-origin:center center;
  opacity:0.98;display:none;pointer-events:none;
}
.result-plan-box{display:block;}
.result-plan-box{cursor:move;overflow:hidden;min-width:90px;min-height:70px;max-width:82%;max-height:82%;}
.result-plan-box::after{content:'';position:absolute;right:0;bottom:0;width:13px;height:13px;border-right:2px solid #e8fbff;border-bottom:2px solid #e8fbff;background:rgba(0,0,0,0.16);}
.result-plan-box.resizing{cursor:nwse-resize;}
.result-plan-box{touch-action:none;}
.result-plan-box::before{content:'';position:absolute;inset:-6px;border:6px solid transparent;}
.result-plan-box.resizing-fov{cursor:ew-resize;}
.result-plan-box.resizing-length{cursor:ns-resize;}
.result-plan-box.resizing-both{cursor:nwse-resize;}
.result-plan-hidden{display:none!important;}
.result-plan-slices{position:absolute;inset:0;pointer-events:none;}
/* Linhas de fatia dentro da caixa de programação: ocultas (caixa limpa). */
.result-slice-line{display:none!important;}
.result-plan-meta{position:absolute;right:6px;bottom:5px;z-index:7;color:#f5f8fb;font:10px 'Courier New',monospace;text-shadow:0 0 5px #003a44;}
.toolbar-planning-sep{width:1px;height:18px;background:#555;margin:0 2px;}
.result-plan-box{
  position:absolute;left:34%;top:31%;width:27%;height:31%;z-index:4;
  background:rgba(0,205,230,0.35);border:2px solid #34e9ff;
  box-shadow:0 0 14px rgba(52,233,255,0.45);
}
.result-plan-line-v,.result-plan-line-h{position:absolute;background:#58ecff;z-index:5;box-shadow:0 0 7px rgba(88,236,255,0.75);}
.result-plan-line-v{top:0;bottom:0;left:50%;width:2px;}
.result-plan-line-v,.result-plan-line-h{display:none!important;}
.result-plan-line-h{left:0;right:0;top:50%;height:2px;}
.result-plan-label{position:absolute;z-index:6;color:#38f3ff;font-size:9px;text-shadow:0 0 4px #003a44;font-family:'Courier New',monospace;}
.result-plan-label.l1{left:35%;top:29%;}.result-plan-label.l2{left:62%;top:41%;}.result-plan-label.l3{left:44%;top:63%;}
.result-crosshair{position:absolute;left:52%;top:55%;width:14px;height:14px;z-index:6;}
.result-crosshair{display:none!important;}
.result-crosshair::before,.result-crosshair::after{content:'';position:absolute;background:#f4eee0;}
.result-crosshair::before{left:6px;top:0;width:2px;height:14px;}
.result-crosshair::after{left:0;top:6px;width:14px;height:2px;}
.result-info-text{position:absolute;left:12px;top:18px;z-index:4;color:#fff;font-size:9px;line-height:1.35;text-shadow:0 0 4px #000;}
.result-wc{position:absolute;left:18px;bottom:18px;z-index:4;color:#34e9ff;font-size:9px;font-family:'Courier New',monospace;}
.result-scrollbar{position:absolute;left:18%;right:14%;bottom:34px;height:13px;border:2px solid #4aa4ac;background:#41484d;z-index:5;}
.result-footer{position:absolute;left:0;right:0;bottom:0;height:28px;background:#25242a;border-top:1px solid #444;display:flex;align-items:center;gap:26px;padding:0 12px;color:#eee;font-size:11px;z-index:5;}
.result-footer .warn{background:#e5992e;color:#fff;padding:4px 8px;border-radius:2px;font-weight:700;}
/* Clean result viewport: image only, no scanner text overlays */
.scan-result-view.active{display:block;}
.scan-result-view .result-left,
.scan-result-view .result-top-strip,
.scan-result-view .result-footer,
.scan-result-view .result-info-text,
.scan-result-view .result-plan-label,
.scan-result-view .result-side-a,
.scan-result-view .result-side-p{display:none!important;}
.scan-result-view .result-main{position:absolute;inset:0;}
.scan-result-view .result-main::before{inset:0 0 0 0;}
.scan-result-view .result-surview-frame{left:0;right:0;top:0;bottom:0;border:none;}
.scan-result-view .result-surview-frame::before,
.scan-result-view .result-surview-frame::after{display:none;}
.scan-result-view .result-surview-stage{width:100%;height:100%;}
.scan-result-view .result-scrollbar{display:none;}
.result-surview-stage{cursor:default;user-select:none;}
.result-surview-stage.dragging{cursor:move;}
.result-surview-stage.adjusting{cursor:ew-resize;}
.result-surview-stage img{pointer-events:none;}
.result-surview-stage.scrolling{cursor:ns-resize;}
.scout-split-view{
  position:absolute;inset:0;z-index:2;
  display:none;grid-template-columns:50% 50%;gap:0;
  background:#07101d;
}
.scout-split-view.single-scout{grid-template-columns:1fr;}
.scout-split-view::after{
  content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;
  background:rgba(20,184,212,0.26);pointer-events:none;z-index:6;
}
.scout-split-view.single-scout::after{display:none;}
.scout-split-panel{
  position:relative;margin:0;min-width:0;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 42%,#162538 0%,#090f19 72%);
  overflow:hidden;
}
.scout-split-panel.is-hidden{display:none;}
.scout-split-panel + .scout-split-panel{box-shadow:none;}
.scout-split-panel img{
  width:100%;height:100%;object-fit:contain;
  filter:brightness(100%) contrast(100%);
  transform-origin:center center;
}
.scout-split-panel figcaption{
  position:absolute;left:12px;top:10px;
  color:#19d3e6;background:rgba(7,16,29,0.72);
  border:1px solid rgba(20,184,212,0.28);
  padding:3px 8px;border-radius:2px;
  font:700 10px 'Courier New',monospace;letter-spacing:.08em;text-transform:uppercase;
}
.scan-result-view.scout-split-mode .scout-split-view{display:grid;}
.scan-result-view.scout-split-mode .result-surview-img,
.scan-result-view.scout-split-mode .result-window-canvas,
.scan-result-view.scout-split-mode .result-plan-box,
.scan-result-view.scout-split-mode .result-plan-line-v,
.scan-result-view.scout-split-mode .result-plan-line-h,
.scan-result-view.scout-split-mode .result-plan-label,
.scan-result-view.scout-split-mode .result-wc{display:none!important;}
.scan-result-view.scout-split-mode .result-image-layer{z-index:5;pointer-events:none;}
.scan-result-view.scout-split-mode .result-surview-stage{cursor:default;}
.scan-result-view.scout-split-mode .result-surview-stage.dragging{cursor:grabbing;}
.scan-result-view.scout-split-mode .result-surview-stage.adjusting{cursor:ew-resize;}
.scan-result-view.scout-split-mode .result-surview-stage.zooming{cursor:ns-resize;}
.scout-plan-box{
  position:absolute;left:34%;top:31%;width:27%;height:31%;z-index:4;
  min-width:64px;min-height:54px;max-width:82%;max-height:82%;
  background:rgba(0,205,230,0.28);border:2px solid #34e9ff;
  box-shadow:0 0 14px rgba(52,233,255,0.42);
  cursor:move;touch-action:none;overflow:hidden;
}
.scout-plan-box::after{
  content:'';position:absolute;right:0;bottom:0;width:13px;height:13px;
  border-right:2px solid #e8fbff;border-bottom:2px solid #e8fbff;
  background:rgba(0,0,0,0.16);
}
.scout-plan-box.resizing-fov{cursor:ew-resize;}
.scout-plan-box.resizing-length{cursor:ns-resize;}
.scout-plan-box.resizing-both{cursor:nwse-resize;}
.scan-result-view.single-scout-mode .scout-plan-box{cursor:move;}
.scan-result-view.single-scout-mode .scout-plan-box.resizing-length{cursor:ns-resize;}
.scout-plan-slices{position:absolute;inset:0;pointer-events:none;}
.scout-plan-slices .result-slice-line{background:rgba(230,255,255,0.72);box-shadow:0 0 4px rgba(52,233,255,0.8);}
.scout-plan-meta{
  position:absolute;right:6px;bottom:5px;z-index:7;color:#f5f8fb;
  font:10px 'Courier New',monospace;text-shadow:0 0 5px #003a44;
}
.result-image-layer{
  position:absolute;inset:0;transform-origin:center center;
}
.result-image-layer .result-surview-img{
  left:50%;top:50%;transform:translate(-50%,-50%);
}
/* Clean initial scan viewport after Start Exam */
.scan-viewport > .vp-corner,
.scan-viewport > .pos-markers,
.scan-viewport > .scan-pos-lines{display:none!important;}
.pt-sub{cursor:pointer;}
.reconstruction-series-list{display:contents;}
.pt-sub:hover{background:#38343a;color:#ddd;}
.pt-sub.active{background:#335b62;color:#8ee8ec;border-left:3px solid #44b8c7;padding-left:29px;}
.pt-sub.active .pt-sub-icon{border-color:#44b8c7;background:#1e6570;}
.pt-sub.is-unavailable{opacity:.35;cursor:not-allowed;}
.pt-sub.is-unavailable:hover{background:transparent;color:#a9bed4;}
.pt-sub.is-processing{opacity:.9;cursor:wait;}
.pt-sub.is-processing .pt-sub-icon{border-color:#d6a447;background:#6c4c16;animation:recon-pulse 900ms ease-in-out infinite;}
.pt-sub.is-processing .pt-sub-status{border-color:#8d6928;color:#f0c56f;background:#342814;}
.pt-sub.is-ready{opacity:1;}
.pt-sub.is-ready .pt-sub-icon{border-color:#4d9b72;background:#286043;}
.pt-sub.is-ready .pt-sub-status{border-color:#377555;color:#7fe0a8;background:#173326;}
.pt-sub.is-failed{opacity:1;cursor:pointer;}
.pt-sub.is-failed .pt-sub-icon{border-color:#b45454;background:#6a2b2b;}
.pt-sub.is-failed .pt-sub-status{border-color:#8f4242;color:#ffaaaa;background:#3b1d1d;}
@keyframes recon-pulse{50%{opacity:.35;}}
.scan-result-view.volume-mode .result-plan-box,
.scan-result-view.volume-mode .result-plan-line-v,
.scan-result-view.volume-mode .result-plan-line-h,
.scan-result-view.volume-mode .result-plan-label{display:none!important;}
.scan-result-view.volume-mode .result-surview-stage{background:#000;cursor:default;}
.scan-result-view.volume-mode .result-surview-stage.zooming{cursor:ns-resize;}
.scan-result-view.volume-mode .result-surview-img{width:100%;height:100%;object-fit:contain;visibility:visible;}
.scan-result-view.volume-mode .result-window-canvas{display:block;}
.volume-hud{
  position:absolute;left:auto;right:50px;bottom:12px;z-index:12;
  display:none;align-items:center;justify-content:flex-end;gap:0;
  padding:0;background:transparent;border:none;color:#e8e8e8;
  font:11px 'Courier New',monospace;pointer-events:none;
}
.volume-hud #volume-series-label{display:none;}
.volume-slice-slider{
  position:absolute;right:12px;top:12%;bottom:12%;z-index:13;
  display:none;width:28px;height:76%;accent-color:#44b8c7;
  cursor:ns-resize;writing-mode:vertical-rl;direction:ltr;touch-action:none;
}
.scan-result-view.volume-mode .volume-hud{display:flex!important;}
.scan-result-view.volume-mode .volume-slice-slider{display:block!important;}


.btn-anonymous{background:linear-gradient(180deg,#17a7bd,#0f6675);border-color:#38d5f4;color:#ecfeff;}
.btn-anonymous:hover{background:linear-gradient(180deg,#22c4dd,#148198);}



.start-exam-scene{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111820;
  overflow:hidden;
}
.ct-start-image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  border-radius:0;
  box-shadow:none;
  opacity:1;
}
.scan-result-view.active ~ .start-exam-scene{
  display:none;
}

/* ── Ferramentas clínicas: HU / distância / ROI + atalhos ─────────────────── */
.toolbar-tool-btn{
  height:24px;min-width:42px;padding:0 9px;background:#202b34;border:1px solid #3a5468;
  color:#cfe6ee;border-radius:2px;font-size:10px;font-weight:700;cursor:pointer;
  white-space:nowrap;letter-spacing:0;text-transform:uppercase;
  transition:background .12s,border-color .12s,color .12s,box-shadow .12s;
}
.toolbar-tool-btn:hover{background:#31465a;border-color:var(--blue);color:#fff;}
.toolbar-tool-btn.active{
  background:#14b8d4;border-color:#19d3e6;color:#06202b;
  box-shadow:0 0 8px rgba(20,184,212,0.38);
}
.toolbar-tool-btn.tool-help{font-size:12px;padding:0 8px;min-width:26px;}
.s2-toolbar .tb-btn:disabled{opacity:.28;cursor:not-allowed;filter:saturate(.25);}
.s2-toolbar .tb-btn:disabled:hover{background:transparent;}
.toolbar-pan-btn{
  height:24px;text-transform:uppercase;letter-spacing:0;
  background:#203746;border-color:#4aa8bd;color:#d9f6fb;
}
.toolbar-pan-btn.active{background:#15bdd6;color:#06202b;border-color:#6ee9f4;}
.toolbar-adjustments .hu-window-input,
.toolbar-adjustments .hu-window-preset{
  background:#18242d;border-color:#3a5468;color:#eef8fa;
}
.toolbar-adjustments .result-control{color:#d2e1e7;font-weight:600;text-transform:uppercase;}
.result-reset{
  background:#202b34;border-color:#3a5468;color:#d8e8ee;
  text-transform:uppercase;font-weight:700;
}
.result-reset:hover{background:#31465a;border-color:#4ee7ff;color:#fff;}

/* overlay de medições — espelha geometria/transform do canvas de janelamento */
.measure-overlay{
  position:absolute;pointer-events:none;display:none;
  image-rendering:auto;z-index:6;
}
.result-surview-stage.measuring{cursor:crosshair;}

.app-health{
  position:fixed;right:16px;bottom:42px;z-index:9800;
  display:flex;align-items:center;gap:8px;max-width:min(420px,calc(100vw - 32px));
  padding:8px 11px;background:rgba(8,18,30,0.94);border:1px solid #3a5468;
  box-shadow:0 10px 26px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.06);
  color:#dcecf3;font-size:11px;border-radius:4px;opacity:0;pointer-events:none;
  transform:translateY(8px);transition:opacity .18s ease,transform .18s ease;
}
.app-health.show{opacity:1;transform:translateY(0);}
.app-health b{color:#8ee8ec;text-transform:uppercase;font-size:10px;letter-spacing:.6px;}
.app-health.bad{border-color:#ef6f6f;color:#ffd1d1;}
.app-health.bad b{color:#ef6f6f;}
.app-health.warn{border-color:#e8b84b;color:#f0dca6;}
.app-health.warn b{color:#e8b84b;}

/* leitura ao vivo (HU sob o cursor + resultado da medição) */
.measure-hud{
  position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:20;
  display:none;flex-direction:column;gap:2px;align-items:center;text-align:center;
  padding:6px 9px;border-radius:5px;
  background:rgba(10,20,32,0.82);border:1px solid #21374f;
  box-shadow:0 2px 10px rgba(0,0,0,0.45);
  font-size:11px;color:#cfe6ee;pointer-events:none;max-width:60%;
}
.measure-hud.is-visible{display:flex;}
.measure-hud .mh-tool{
  font-size:9px;letter-spacing:.6px;text-transform:uppercase;color:#8ee8ec;
}
.measure-hud .mh-hu{font-family:'Courier New',monospace;font-size:15px;color:#fff;}
.measure-hud .mh-hu b{color:#4ee7ff;font-weight:700;}
.measure-hud .mh-stat{font-family:'Courier New',monospace;color:#e8f4f7;}
.measure-hud .mh-warn{color:#ff8f8f;font-weight:700;}

/* modal de atalhos */
.shortcuts-modal{
  position:fixed;inset:0;z-index:9500;display:none;
  align-items:center;justify-content:center;
  background:rgba(6,12,20,0.7);backdrop-filter:blur(2px);
}
.shortcuts-modal.active{display:flex;}
.shortcuts-panel{
  width:min(680px,92vw);max-height:88vh;overflow:auto;
  background:#0d1a2e;border:1px solid var(--blue);border-radius:8px;
  box-shadow:0 18px 60px rgba(0,0,0,0.6);
}
.shortcuts-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;border-bottom:1px solid #21374f;
  color:#8ee8ec;font-size:14px;font-weight:600;
}
.shortcuts-close{
  background:none;border:none;color:#9fb6c6;font-size:20px;cursor:pointer;
  line-height:1;padding:0 4px;
}
.shortcuts-close:hover{color:#fff;}
.shortcuts-body{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:16px;
}
.shortcuts-col h4{
  margin:0 0 8px;color:var(--blue3);font-size:11px;letter-spacing:.4px;
  text-transform:uppercase;border-bottom:1px solid #21374f;padding-bottom:4px;
}
.sc-row{
  display:flex;align-items:center;gap:6px;margin-bottom:7px;
  font-size:11px;color:#cfe6ee;
}
.sc-row span{color:#a9c0cf;}
.sc-row kbd{
  min-width:20px;padding:1px 6px;text-align:center;
  background:#1b2c40;border:1px solid #3a5468;border-bottom-width:2px;border-radius:3px;
  font:11px 'Courier New',monospace;color:#fff;
}
.shortcuts-foot{
  padding:10px 16px;border-top:1px solid #21374f;
  color:#7f97a8;font-size:10px;font-style:italic;
}
@media (max-width:620px){
  .shortcuts-body{grid-template-columns:1fr;}
}

/* ── Painel de técnica do volume (dose + ruído ao vivo) ────────────────────── */
.acq-panel{
  padding:8px;border-bottom:1px solid #444;display:flex;flex-direction:column;gap:0;
  background:#1f2a1f00;
}
.acq-title{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  font-size:11px;color:#8ee8ec;font-weight:700;margin-bottom:6px;
  letter-spacing:.3px;
}
.acq-lock-state{
  padding:1px 5px;border:1px solid #3a5468;color:#9fb6c6;background:#162537;
  font:8px 'Courier New',monospace;
}
.acq-panel.is-locked .acq-lock-state{color:#7fe0a8;border-color:#377555;background:#173326;}
.acq-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:2px 0;border-bottom:1px solid #1d334b;min-height:24px;
}
.acq-l{font-size:10px;color:#999;width:66px;}
.acq-c{display:flex;align-items:center;gap:5px;flex:1;justify-content:flex-end;}
.acq-c select{
  width:84px;height:20px;background:#2b2b2b;border:1px solid #4a4a4a;color:#e6e6e6;
  font-size:10px;appearance:none;cursor:pointer;padding:0 4px;border-radius:2px;
}
.acq-c input[type=range]{width:78px;accent-color:#4ee7ff;}
.acq-c output{
  min-width:26px;text-align:right;color:#fff;
  font:10px 'Courier New',monospace;
}
.acq-c .acq-fixed{min-width:84px;color:#cfe6ee;}
.acq-c select:disabled,.acq-c input:disabled{opacity:.55;cursor:not-allowed;}
.acq-dose{
  margin-top:7px;padding-top:6px;border-top:1px solid #21374f;
  display:flex;flex-direction:column;gap:2px;
}
.acq-dose-row{display:flex;justify-content:space-between;font-size:10px;color:#b7c6d1;}
.acq-dose-row b{color:#eaf6f9;font-family:'Courier New',monospace;font-weight:700;}
.acq-noise{
  margin-top:5px;display:flex;align-items:center;gap:6px;
  font-size:9.5px;line-height:1.25;color:#b7c6d1;
}
.acq-noise-dot{
  width:8px;height:8px;border-radius:50%;flex:none;background:#4ee7ff;
  box-shadow:0 0 6px currentColor;
}
.acq-noise.good{color:#7fe0a8;} .acq-noise.good .acq-noise-dot{background:#7fe0a8;}
.acq-noise.ok{color:#4ee7ff;} .acq-noise.ok .acq-noise-dot{background:#4ee7ff;}
.acq-noise.warn{color:#e8b84b;} .acq-noise.warn .acq-noise-dot{background:#e8b84b;}
.acq-noise.bad{color:#ef6f6f;} .acq-noise.bad .acq-noise-dot{background:#ef6f6f;}
.readiness-panel{
  margin-top:8px;padding-top:7px;border-top:1px solid #21374f;
  display:flex;flex-direction:column;gap:4px;
}
.readiness-title{
  color:#8ee8ec;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.5px;margin-bottom:1px;
}
.readiness-row{
  min-height:20px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;
  align-items:center;gap:6px;color:#b7c6d1;font-size:10px;
  background:rgba(8,18,30,0.52);border:1px solid rgba(50,76,98,0.74);
  padding:2px 5px;border-radius:3px;
}
.readiness-row > span:nth-child(2){min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.readiness-row b{font:700 10px 'Courier New',monospace;color:#dcecf3;white-space:nowrap;}
.readiness-dot{width:7px;height:7px;border-radius:50%;background:#637480;box-shadow:0 0 4px currentColor;}
.readiness-row.ok{border-color:rgba(127,224,168,0.42);color:#cbe9d6;}
.readiness-row.ok .readiness-dot{background:#7fe0a8;color:#7fe0a8;}
.readiness-row.warn{border-color:rgba(232,184,75,0.5);color:#efdca8;}
.readiness-row.warn .readiness-dot{background:#e8b84b;color:#e8b84b;}
.readiness-row.bad{border-color:rgba(239,111,111,0.55);color:#f0c0c0;}
.readiness-row.bad .readiness-dot{background:#ef6f6f;color:#ef6f6f;}

/* ── Modo didático: contexto por etapa + avaliação ────────────────────────── */
.toolbar-tool-btn.tool-teach{background:#24323c;border-color:#3f5d6c;color:#d3eaf0;}
.toolbar-tool-btn.tool-teach:hover{background:#304755;border-color:#58b3ca;color:#fff;}
.toolbar-tool-btn.tool-teach.active{background:#18bad4;border-color:#6ee9f4;color:#06202b;box-shadow:0 0 8px rgba(24,186,212,0.42);}
.teach-panel{
  position:absolute;top:0;right:0;bottom:0;width:272px;z-index:40;
  display:flex;flex-direction:column;
  background:rgba(11,20,34,0.94);border-left:1px solid var(--blue);
  box-shadow:-6px 0 24px rgba(0,0,0,0.45);
  transform:translateX(100%);transition:transform .22s ease;
  backdrop-filter:blur(2px);
}
.teach-panel.is-open{transform:translateX(0);}
.teach-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;border-bottom:1px solid #21374f;
}
.teach-title{color:#8ee8ec;font-size:12px;font-weight:700;letter-spacing:.3px;}
.teach-close{background:none;border:none;color:#9fb6c6;font-size:20px;line-height:1;cursor:pointer;padding:0 4px;}
.teach-close:hover{color:#fff;}
.teach-scroll{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:14px;}
.teach-label{
  font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--blue3);
  margin-bottom:6px;border-bottom:1px solid #21374f;padding-bottom:4px;
}
.teach-context{font-size:12px;line-height:1.55;color:#cfe0ea;}
.teach-context b{color:#fff;}
.teach-eval-btn{
  width:100%;height:30px;border:1px solid var(--blue);border-radius:4px;
  background:linear-gradient(180deg,var(--blue3),var(--blue));color:#06202b;
  font-size:12px;font-weight:700;cursor:pointer;
}
.teach-eval-btn:hover{filter:brightness(1.08);}
.teach-scorecard{margin-top:10px;display:none;flex-direction:column;gap:7px;}
.teach-scorecard.is-visible{display:flex;}
.teach-score{display:flex;align-items:baseline;gap:6px;padding:8px 12px;border-radius:8px;
  border:1px solid var(--border2);background:rgba(20,184,212,0.08);}
.teach-score .ts-num{font:700 26px/1 'Bahnschrift','Segoe UI',sans-serif;}
.teach-score .ts-den{font-size:12px;color:var(--text2);}
.teach-score .ts-grade{margin-left:auto;font:700 13px/1 'Segoe UI',sans-serif;
  padding:4px 10px;border-radius:999px;background:rgba(255,255,255,0.06);}
.teach-score.ok{border-color:#3f7d5c;} .teach-score.ok .ts-num,.teach-score.ok .ts-grade{color:#8ee6a8;}
.teach-score.warn{border-color:#8a6f2e;} .teach-score.warn .ts-num,.teach-score.warn .ts-grade{color:#f0cf7a;}
.teach-score.bad{border-color:#8a3a3a;} .teach-score.bad .ts-num,.teach-score.bad .ts-grade{color:#f0a0a0;}
.teach-summary{
  font-size:11px;padding:7px 9px;border-radius:4px;line-height:1.4;
  border:1px solid;
}
.teach-summary.ok{background:rgba(127,224,168,0.1);border-color:#3f7d5c;color:#bdeacb;}
.teach-summary.warn{background:rgba(232,184,75,0.1);border-color:#8a6f2e;color:#f0dca6;}
.teach-crit{
  display:flex;gap:8px;align-items:flex-start;
  padding:6px 8px;border-radius:4px;background:rgba(255,255,255,0.03);
  border-left:2px solid #555;
}
.teach-crit .tc-ico{font-size:12px;line-height:1.3;flex:none;width:14px;text-align:center;}
.teach-crit b{display:block;font-size:11px;color:#eaf4f8;margin-bottom:1px;}
.teach-crit span{display:block;font-size:10.5px;line-height:1.4;color:#a9c0cf;}
.teach-crit.ok{border-left-color:#7fe0a8;} .teach-crit.ok .tc-ico{color:#7fe0a8;}
.teach-crit.warn{border-left-color:#e8b84b;} .teach-crit.warn .tc-ico{color:#e8b84b;}
.teach-crit.bad{border-left-color:#ef6f6f;} .teach-crit.bad .tc-ico{color:#ef6f6f;}
@media (max-width:640px){
  .teach-panel{width:88vw;}
}

/* ── Polish: botão Iniciar exame (marca) + resumo do exame ─────────────────── */
.btn-start-exam{
  display:inline-flex;align-items:center;gap:6px;
  height:28px;padding:0 18px;border-radius:3px;cursor:pointer;
  background:linear-gradient(180deg,var(--blue3),var(--blue));
  border:1px solid var(--blue);color:#06202b;font-weight:700;font-size:11px;
  transition:filter .15s,box-shadow .15s;
}
.btn-start-exam svg{width:13px;height:13px;fill:currentColor;}
.btn-start-exam:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 0 10px rgba(20,184,212,0.45);}
.btn-start-exam:disabled{cursor:not-allowed;}

.exam-summary-col{padding:0!important;background:transparent;}
.exam-summary{
  margin:6px;padding:10px 11px;border-radius:6px;
  background:linear-gradient(180deg,#12263a,#0d1a2b);
  border:1px solid #21374f;border-left:3px solid var(--blue);
  display:flex;flex-direction:column;gap:7px;min-width:150px;
}
.exam-summary.is-ready{border-left-color:#7fe0a8;}
.es-title{
  font-size:11px;font-weight:700;color:#8ee8ec;letter-spacing:.3px;
  padding-bottom:6px;border-bottom:1px solid #21374f;
}
.es-row{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;align-items:baseline;}
.es-row span{color:#8095a6;flex:none;}
.es-row b{color:#eaf4f8;text-align:right;font-weight:600;overflow:hidden;text-overflow:ellipsis;}
.es-hint{
  margin-top:2px;padding-top:7px;border-top:1px solid #21374f;
  font-size:9.5px;line-height:1.4;color:#7f97a8;font-style:italic;
}
.exam-summary.is-ready .es-hint{color:#9fe0b6;font-style:normal;}

/* ── Overlay DICOM (realismo de console) — só no volume ────────────────────── */
.dicom-overlay{position:absolute;inset:0;pointer-events:none;display:none;z-index:5;}
.scan-result-view.volume-mode .dicom-overlay{display:block;}
/* em volume, esconde marcadores de escanograma (H/F) e os HUDs antigos redundantes */
.scan-result-view.volume-mode .result-surview-frame::before,
.scan-result-view.volume-mode .result-surview-frame::after{content:none;}
.scan-result-view.volume-mode .result-wc,
.scan-result-view.volume-mode .volume-hud{display:none!important;}

.dcm-corner{
  position:absolute;display:flex;flex-direction:column;gap:1px;
  font:10px/1.5 'Courier New',monospace;color:#7fe6ff;
  text-shadow:0 0 3px #000,0 1px 2px #000;letter-spacing:.2px;
}
.dcm-corner b{color:#eaf6f9;font-size:11px;letter-spacing:.4px;margin-bottom:1px;}
.dcm-tl{top:7px;left:9px;align-items:flex-start;text-align:left;}
.dcm-tr{top:7px;right:9px;align-items:flex-end;text-align:right;}
.dcm-bl{bottom:7px;left:9px;align-items:flex-start;text-align:left;}
.dcm-br{bottom:7px;right:9px;align-items:flex-end;text-align:right;}
.dcm-orient{
  position:absolute;color:#a6f0ff;font-weight:700;font-size:13px;
  text-shadow:0 0 4px #000,0 1px 2px #000;
}
.dcm-o-t{top:4px;left:50%;transform:translateX(-50%);}
.dcm-o-b{bottom:4px;left:50%;transform:translateX(-50%);}
.dcm-o-l{left:8px;top:50%;transform:translateY(-50%);}
.dcm-o-r{right:46px;top:50%;transform:translateY(-50%);}
/* em volume, o slider de fatias fica na borda ESQUERDA do axial (arraste para
   navegar); a régua em cm ocupa a direita. Discoverability da navegação. */
.scan-result-view.volume-mode .volume-slice-slider{
  display:block!important;left:2px;right:auto;top:10%;bottom:10%;height:80%;
  width:16px;opacity:.9;
}
.scan-result-view.volume-mode .volume-slice-slider:hover{opacity:1;}

/* Régua VERTICAL em cm (direita), calibrada ao tamanho real da anatomia */
.dcm-ruler{
  position:absolute;right:9px;top:0;height:100%;width:34px;
  display:flex;align-items:flex-start;justify-content:flex-end;
}
.dcm-ruler-ticks{
  position:relative;height:100%;width:12px;
  border-right:1.5px solid #a6f0ff;box-shadow:1px 0 2px #000;
}
.dcm-tick{position:absolute;right:0;height:1.5px;width:5px;background:#a6f0ff;}
.dcm-tick.major{width:11px;}
.dcm-tick-num{
  position:absolute;right:14px;transform:translateY(-50%);
  font:8.5px 'Courier New',monospace;color:#a6f0ff;text-shadow:0 0 3px #000;
}
.dcm-ruler-unit{
  position:absolute;top:-13px;right:0;
  font:8.5px 'Courier New',monospace;color:#a6f0ff;text-shadow:0 0 3px #000;
}

/* Barra de cinza (LUT) calibrada em HU — escala de Hounsfield (esquerda) */
.dcm-graybar{
  position:absolute;left:9px;top:14%;bottom:14%;width:34px;
  display:flex;align-items:stretch;
}
.dcm-gb-wedge{
  width:11px;border:1px solid #6f89a3;box-shadow:0 0 3px #000;
  background:linear-gradient(to top,#000 0%,#fff 100%);
}
.dcm-gb-wedge.inverted{background:linear-gradient(to top,#fff 0%,#000 100%);}

/* Localizador (mini-escanograma) — ocupa a faixa esquerda no lugar da LUT */
/* Escanograma de referência lado a lado com o axial (padrão no volume, como o
   console real): escanograma lateral + faixa de cobertura + linha do corte atual. */
.review-scout{
  position:absolute;left:1.5%;top:4%;bottom:4%;width:46%;display:none;z-index:6;
  border:1px solid #3e8d96;background:#070f19;overflow:hidden;
  box-shadow:0 0 8px rgba(0,0,0,.55);
}
.scan-result-view.volume-mode .review-scout{display:block;cursor:ns-resize;touch-action:none;}
.scan-result-view.volume-mode .review-scout:hover{box-shadow:0 0 0 1px #4ee7ff,0 0 10px rgba(78,231,255,.35);}
/* cover preenche a ALTURA (sem letterbox vertical -> a linha em frontalY×100% fica
   exata) e recorta na horizontal; object-position 41% centra na cabeça (A-P ~0.41). */
.review-scout img{width:100%;height:100%;object-fit:cover;object-position:41% 50%;filter:grayscale(1) brightness(1.06) contrast(1.05);opacity:.95;}
.review-scout-band{position:absolute;left:0;right:0;background:rgba(78,231,255,0.12);
  border-top:1px solid rgba(78,231,255,0.42);border-bottom:1px solid rgba(78,231,255,0.42);pointer-events:none;}
.review-scout-line{position:absolute;left:-2px;right:-2px;height:2px;background:#ffd36b;
  box-shadow:0 0 6px #ffd36b,0 0 2px #fff;transform:translateY(-50%);pointer-events:none;}
.review-scout-tag{position:absolute;top:3px;left:0;right:0;text-align:center;
  font:8px 'Courier New',monospace;letter-spacing:.6px;color:#a6f0ff;text-shadow:0 0 3px #000;}
/* No volume, empurra o axial + overlay p/ a direita para o escanograma caber ao lado. */
/* Revisão em duas metades simétricas: escanograma à esquerda, axial à direita
   (centrado e grande, escala com a tela cheia). A barra de cinza e o slider
   encostam na borda esquerda do axial; a régua em cm fica na ponta direita. */
.scan-result-view.volume-mode .dicom-overlay{left:50%;right:0;}
.scan-result-view.volume-mode .result-surview-stage{left:50%;right:0;top:0;bottom:0;width:auto;height:auto;transform:none;}
.scan-result-view.volume-mode .dcm-graybar{left:26px;top:10%;bottom:10%;}
.scan-result-view.volume-mode .dcm-ruler{right:8px;}
.dcm-localizer{
  position:absolute;left:26px;top:14%;bottom:14%;width:56px;display:none;
  border:1px solid #3e8d96;box-shadow:0 0 6px rgba(0,0,0,0.6);background:#0a1420;
}
.dicom-overlay.loc-on .dcm-localizer{display:block;}
.dicom-overlay.loc-on .dcm-graybar{display:none;}
.dcm-localizer img{
  width:100%;height:100%;object-fit:fill;
  filter:grayscale(1) brightness(1.05) contrast(1.05);opacity:.92;
}
.dcm-loc-band{
  position:absolute;left:0;right:0;
  background:rgba(78,231,255,0.14);border-top:1px solid rgba(78,231,255,0.35);
  border-bottom:1px solid rgba(78,231,255,0.35);pointer-events:none;
}
.dcm-loc-line{
  position:absolute;left:-2px;right:-2px;height:2px;
  background:#ffd36b;box-shadow:0 0 6px #ffd36b,0 0 2px #fff;
  transform:translateY(-50%);pointer-events:none;
}
.dcm-loc-tag{
  position:absolute;top:2px;left:0;right:0;text-align:center;
  font:7.5px 'Courier New',monospace;letter-spacing:.5px;color:#a6f0ff;
  text-shadow:0 0 3px #000;
}
.dcm-gb-label{
  position:absolute;left:16px;
  font:8.5px 'Courier New',monospace;color:#a6f0ff;
  text-shadow:0 0 3px #000,0 1px 2px #000;white-space:nowrap;
}
.dcm-gb-hi{top:-2px;}
.dcm-gb-mid{top:50%;transform:translateY(-50%);color:#7fe6ff;}
.dcm-gb-lo{bottom:-2px;}
.dcm-gb-unit{
  position:absolute;left:0;top:-13px;
  font:8.5px 'Courier New',monospace;color:#a6f0ff;text-shadow:0 0 3px #000;
}

/* ── Animação de aquisição (realismo de scanner) ──────────────────────────── */
.scan-progress{
  position:absolute;inset:0;z-index:70;display:none;
  align-items:center;justify-content:center;
  background:rgba(6,12,20,0.72);backdrop-filter:blur(2px);
}
.scan-progress.is-active{display:flex;}
/* Aquisição do VOLUME como no console real: o escanograma aparece (fundo quase
   transparente) e a linha amarela varre a cobertura; o card de técnica recua
   para o rodapé, discreto. */
.scan-progress.volume-sweep{background:rgba(6,12,20,0.28);backdrop-filter:none;align-items:flex-end;justify-content:center;padding-bottom:18px;}
.scan-progress.volume-sweep .sp-card{transform:scale(.82);opacity:.96;}
/* Linha de varredura da aquisição sobre o escanograma (dentro da caixa de
   cobertura): anda de cima para baixo em sincronia com o progresso. */
.scout-scan-sweep{position:absolute;left:-3px;right:-3px;top:0;height:2px;
  background:#ffe14d;box-shadow:0 0 10px #ffe14d,0 0 3px #fff;display:none;z-index:6;pointer-events:none;}
.scout-plan-box.scanning-sweep{box-shadow:0 0 0 1px #ffe14d88;}
.scout-plan-box.scanning-sweep .scout-scan-sweep{display:block;}
/* Layout da aquisição (como no vídeo): escanograma de PERFIL à esquerda (com a
   linha varrendo) + o AXIAL sendo adquirido ocupando a metade direita. Mantém o
   painel lateral intacto (a caixa/linha seguem alinhadas); esconde o frontal. */
.scan-result-view.acq-sweeping .scout-split-view .scout-split-panel:nth-of-type(2) img,
.scan-result-view.acq-sweeping .scout-split-view .scout-split-panel:nth-of-type(2) .scout-plan-box,
.scan-result-view.acq-sweeping .scout-split-view .scout-split-panel:nth-of-type(2) figcaption{visibility:hidden;}
.scan-result-view.acq-sweeping .plan-preview{
  display:block;top:0;right:0;bottom:0;left:50%;width:auto;
  border:0;border-left:1px solid rgba(20,184,212,0.28);border-radius:0;
  background:#000;box-shadow:none;padding:0;z-index:46;overflow:hidden;
}
/* o axial preenche o quadrado (largura total da metade direita, centrado);
   as margens ficam pretas e se fundem com o fundo do próprio corte. */
.scan-result-view.acq-sweeping .plan-preview canvas{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:100%;height:auto;max-width:100%;max-height:100%;aspect-ratio:1/1;border-radius:0;
}
.scan-result-view.acq-sweeping .plan-preview-label{
  position:absolute;top:8px;left:0;right:0;margin:0;text-align:center;z-index:2;
  color:#ffe14d;text-shadow:0 1px 3px #000;
}
.scan-result-view.acq-sweeping .plan-preview-info{
  position:absolute;bottom:8px;left:0;right:0;margin:0;text-align:center;z-index:2;
  color:#cbd5e1;text-shadow:0 1px 3px #000;
}
.sp-card{
  display:flex;gap:22px;align-items:center;padding:22px 30px;
  background:linear-gradient(180deg,#12263a,#0b1626);
  border:1px solid var(--blue);border-radius:10px;
  box-shadow:0 20px 60px rgba(0,0,0,0.6);
}
.sp-gantry{position:relative;width:82px;height:82px;flex:none;}
.sp-gantry-ring{
  position:absolute;inset:0;border-radius:50%;
  border:7px solid #1b3350;
  box-shadow:inset 0 0 14px rgba(0,0,0,0.65),0 0 0 1px #22405f;
}
.sp-gantry-bore{
  position:absolute;inset:22px;border-radius:50%;
  background:radial-gradient(circle,#12263a,#0a1420);border:1px solid #22405f;
}
.sp-gantry-rotor{position:absolute;inset:0;animation:spGantrySpin .7s linear infinite;}
.sp-tube{
  position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  width:13px;height:13px;border-radius:50%;background:#ffd36b;
  box-shadow:0 0 14px #ffd36b,0 0 5px #fff;
}
.sp-det{
  position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);
  width:38px;height:8px;border-radius:6px;background:#4ee7ff;opacity:.72;
  box-shadow:0 0 8px rgba(78,231,255,0.6);
}
@keyframes spGantrySpin{to{transform:rotate(360deg);}}
.sp-info{min-width:230px;}
.sp-title{color:#eaf6f9;font-size:14px;font-weight:700;letter-spacing:.3px;}
.sp-sub{color:#8ee8ec;font-size:11px;margin:2px 0 11px;}
.sp-bar{
  height:8px;border-radius:4px;background:#0a1a2a;
  border:1px solid #21374f;overflow:hidden;
}
.sp-bar-fill{
  height:100%;width:0;border-radius:4px;
  background:linear-gradient(90deg,var(--blue),var(--blue3));
  box-shadow:0 0 8px var(--blue);
}
.sp-stats{
  display:flex;justify-content:space-between;gap:12px;margin-top:9px;
  font:11px 'Courier New',monospace;color:#b7c6d1;
}
.sp-stats span:nth-child(2){color:#8ee8ec;}

/* ── Relatório de dose do paciente (Patient Protocol) ─────────────────────── */
.toolbar-tool-btn.tool-dose{background:#243a2a;border-color:#3f6b4d;color:#cfeeda;}
.toolbar-tool-btn.tool-dose:hover{background:#2f4d38;border-color:#5fb07d;color:#fff;}
.dose-modal{
  position:fixed;inset:0;z-index:9600;display:none;
  align-items:center;justify-content:center;
  background:rgba(6,12,20,0.72);backdrop-filter:blur(2px);
}
.dose-modal.active{display:flex;}
.dose-panel{
  width:min(560px,94vw);max-height:90vh;overflow:auto;
  background:#0d1a2e;border:1px solid var(--blue);border-radius:8px;
  box-shadow:0 18px 60px rgba(0,0,0,0.6);
}
.dose-head{
  display:flex;align-items:center;gap:10px;
  padding:12px 16px;border-bottom:1px solid #21374f;
  background:linear-gradient(180deg,#12263a,#0d1a2b);
}
.dose-brand{display:flex;align-items:center;gap:7px;color:#8ee8ec;font-weight:700;font-size:12px;letter-spacing:.4px;}
.dose-brand img{width:18px;height:18px;}
.dose-head > span{flex:1;color:#eaf6f9;font-size:13px;font-weight:600;}
.dose-close{background:none;border:none;color:#9fb6c6;font-size:20px;line-height:1;cursor:pointer;padding:0 4px;}
.dose-close:hover{color:#fff;}
.dose-body{padding:16px;}
.dose-patient{
  display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin-bottom:14px;
}
.dose-patient > div{display:flex;justify-content:space-between;gap:10px;font-size:11px;border-bottom:1px solid #17293c;padding-bottom:3px;}
.dose-patient span{color:#8095a6;}
.dose-patient b{color:#eaf4f8;text-align:right;}
.dose-table{width:100%;border-collapse:collapse;font-size:11px;margin-bottom:14px;}
.dose-table th{
  background:#16283c;color:#8ee8ec;font-weight:600;text-align:right;
  padding:6px 7px;border-bottom:1px solid #2a4258;font-size:10px;line-height:1.2;
}
.dose-table th:first-child,.dose-table td:first-child{text-align:left;}
.dose-table td{padding:6px 7px;text-align:right;color:#dbe7ef;border-bottom:1px solid #17293c;font-family:'Courier New',monospace;}
.dose-table td:first-child{font-family:inherit;color:#eaf4f8;}
.dose-pending td{color:#e8b84b;font-style:italic;font-family:inherit;text-align:left;}
.dose-totals{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;}
.dose-total-item{
  flex:1;min-width:120px;padding:8px 10px;border-radius:5px;
  background:rgba(255,255,255,0.03);border:1px solid #21374f;
  display:flex;flex-direction:column;gap:2px;
}
.dose-total-item span{font-size:10px;color:#8095a6;}
.dose-total-item b{font-size:14px;color:#eaf6f9;font-family:'Courier New',monospace;}
.dose-total-item.dose-eff{border-color:#3f6b4d;background:rgba(127,224,168,0.08);}
.dose-total-item.dose-eff b{color:#9fe0b6;}
.dose-note{font-size:10px;color:#7f97a8;line-height:1.5;font-style:italic;}
.dose-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 16px;border-top:1px solid #21374f;
}
.dose-disclaimer{font-size:9.5px;color:#7f97a8;font-style:italic;flex:1;}
.dose-actions{display:flex;gap:8px;}
.dose-btn{
  height:28px;padding:0 14px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;
  background:#25313f;border:1px solid #3a5468;color:#cfe6ee;
}
.dose-btn:hover{background:#31465a;border-color:var(--blue);color:#fff;}
.dose-btn-print{background:linear-gradient(180deg,var(--blue3),var(--blue));border-color:var(--blue);color:#06202b;}
.dose-btn-print:hover{filter:brightness(1.08);}
@media print{
  body > *:not(.dose-modal){display:none!important;}
  .dose-modal{position:static;display:block!important;background:#fff;backdrop-filter:none;}
  .dose-panel{width:100%;max-height:none;border:none;box-shadow:none;background:#fff;color:#000;}
  .dose-head,.dose-brand,.dose-head>span{background:#fff;color:#000;}
  .dose-close,.dose-actions{display:none!important;}
  .dose-patient b,.dose-table td,.dose-total-item b{color:#000;}
  .dose-table th{background:#eee;color:#000;}
  .dose-patient span,.dose-note,.dose-disclaimer,.dose-total-item span{color:#333;}
}
