:root{
  --navy:#0B2545;
  --navy-2:#122C52;
  --teal:#137A72;
  --teal-2:#0F5F59;
  --mint:#4FD1C5;
  --alert:#D64550;
  --amber:#E7A83C;
  --bg:#F3F6F8;
  --card:#FFFFFF;
  --ink:#16223D;
  --muted:#65748D;
  --line:#E3E9EE;
  --radius:14px;
}
*{box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  overflow-x:hidden;
}
h1,h2,h3,h4,.brand,.nav-section-label,.display-face{
  font-family:'Space Grotesk',system-ui,sans-serif;
}
.mono{font-family:'JetBrains Mono',monospace;}
.app-shell{display:flex; min-height:100vh;}
.sidebar{
  width:264px;
  background:linear-gradient(180deg,var(--navy) 0%, var(--navy-2) 100%);
  color:#DCE6F5;
  flex-shrink:0;
  position:fixed; top:0; left:0; bottom:0;
  overflow-y:auto;
  z-index:1030;
  transition:transform .25s ease;
}
.sidebar .brand{
  color:#fff; font-weight:700; font-size:1.15rem;
  padding:22px 22px 18px;
  display:flex; align-items:center; gap:10px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.sidebar .brand .mark{
  width:34px;height:34px;border-radius:9px;
  background:radial-gradient(circle at 30% 30%, var(--mint), var(--teal));
  display:flex;align-items:center;justify-content:center;
  font-weight:700; font-size:.95rem; color:#04211f;
  flex-shrink:0;
}
.sidebar .brand small{display:block;font-weight:400;font-size:.68rem;color:#9FB3D6;font-family:'Inter';letter-spacing:.02em;}
.nav-section-label{
  font-size:.68rem; text-transform:uppercase; letter-spacing:.12em;
  color:#7C93C0; padding:20px 22px 8px; font-weight:600;
}
.side-link{
  display:flex; align-items:center; gap:12px;
  padding:11px 22px; color:#C9D6EC; text-decoration:none;
  font-size:.92rem; font-weight:500; border-left:3px solid transparent;
  cursor:pointer;
}
.side-link i{font-size:1.05rem; width:20px; text-align:center; color:#7C93C0;}
.side-link:hover{background:rgba(255,255,255,.05); color:#fff;}
.side-link.active{
  background:rgba(79,209,197,.12); color:#fff;
  border-left-color:var(--mint);
}
.side-link.active i{color:var(--mint);}
.side-foot{
  margin-top:auto; padding:16px 22px 22px; font-size:.72rem; color:#7C93C0;
  border-top:1px solid rgba(255,255,255,.08);
}
.main-col{margin-left:264px; flex:1; min-width:0; display:flex; flex-direction:column;}
.topbar{
  background:var(--card); border-bottom:1px solid var(--line);
  padding:14px 26px; display:flex; align-items:center; gap:16px;
  position:sticky; top:0; z-index:1020;
}
.topbar .page-title{font-weight:700; font-size:1.15rem; margin:0;}
.topbar .page-sub{font-size:.78rem; color:var(--muted); margin:0;}
.live-clock{
  margin-left:auto; text-align:right; font-family:'JetBrains Mono',monospace;
  font-weight:700; font-size:1.05rem; color:var(--navy);
}
.live-clock .d{font-size:.68rem; font-weight:500; color:var(--muted); font-family:'Inter';}
.menu-toggle{
  display:none; border:none; background:var(--bg); width:38px;height:38px;border-radius:9px;
  align-items:center; justify-content:center; font-size:1.1rem; color:var(--navy);
}
.page-content{padding:26px;}
.card-soft{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px;
}
.stat-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 20px; display:flex; align-items:center; gap:14px;
}
.stat-card .icon{
  width:44px;height:44px;border-radius:11px; display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; flex-shrink:0;
}
.stat-card .val{font-family:'Space Grotesk'; font-weight:700; font-size:1.5rem; line-height:1;}
.stat-card .lbl{font-size:.76rem; color:var(--muted); margin-top:3px;}
.badge-dept{
  font-size:.68rem; font-weight:600; letter-spacing:.03em; padding:4px 10px; border-radius:20px;
}
.btn-teal{background:var(--teal); border-color:var(--teal); color:#fff;}
.btn-teal:hover{background:var(--teal-2); border-color:var(--teal-2); color:#fff;}
.btn-outline-teal{border-color:var(--teal); color:var(--teal);}
.btn-outline-teal:hover{background:var(--teal); color:#fff;}
.section-eyebrow{
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal); font-weight:700;
}
.board{
  background:radial-gradient(1200px 400px at 20% -10%, #123a5c 0%, var(--navy) 55%, #081a34 100%);
  border-radius:20px; padding:30px 28px; color:#EAF2FF; position:relative; overflow:hidden;
}
.board::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0px, rgba(255,255,255,.025) 1px, transparent 1px, transparent 3px);
  pointer-events:none;
}
.board-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; position:relative; z-index:1;}
.board-head .tag{font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mint); font-weight:700;}
.board-head .live-dot{width:8px;height:8px;border-radius:50%;background:#4CE0A0; display:inline-block; margin-right:6px; animation:pulse 1.6s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(76,224,160,.6);}70%{box-shadow:0 0 0 9px rgba(76,224,160,0);}100%{box-shadow:0 0 0 0 rgba(76,224,160,0);}}
.now-token{
  font-family:'JetBrains Mono',monospace; font-weight:800; font-size:clamp(2.6rem,7vw,4.6rem);
  line-height:1; color:#fff; letter-spacing:.02em;
  text-shadow:0 0 22px rgba(79,209,197,.5);
}
.now-token .flash{animation:flash .5s ease;}
@keyframes flash{0%{opacity:0; transform:translateY(-8px);}100%{opacity:1; transform:translateY(0);}}
.board .sub{color:#9FB3D6; font-size:.85rem;}
.board-row{position:relative; z-index:1;}
.next-chip{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:12px;
  padding:10px 16px; text-align:center; min-width:92px;
}
.next-chip .n{font-family:'JetBrains Mono',monospace; font-weight:700; font-size:1.3rem;}
.next-chip .l{font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; color:#9FB3D6;}
.ticker-wrap{
  border-top:1px solid rgba(255,255,255,.1); margin-top:20px; padding-top:14px; overflow:hidden;
  position:relative; z-index:1;
}
.ticker{white-space:nowrap; display:inline-block; animation:scroll-left 22s linear infinite; font-size:.85rem; color:#C9D6EC;}
@keyframes scroll-left{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.q-table thead th{
  font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  border-bottom:2px solid var(--line); font-weight:700; padding-bottom:10px;
}
.q-table td{vertical-align:middle; padding:12px 8px; border-bottom:1px solid var(--line); font-size:.9rem;}
.token-pill{
  font-family:'JetBrains Mono',monospace; font-weight:700; font-size:.85rem;
  background:#EAF6F5; color:var(--teal-2); padding:4px 10px; border-radius:8px;
}
.token-pill.emg{background:#FBE6E8; color:var(--alert);}
.status-dot{width:8px;height:8px;border-radius:50%; display:inline-block; margin-right:6px;}
.nav-pills-soft .nav-link{
  border-radius:10px; font-size:.85rem; font-weight:600; color:var(--muted); padding:8px 16px;
}
.nav-pills-soft .nav-link.active{background:var(--navy); color:#fff;}
.patient-slab{
  border-radius:var(--radius); padding:20px; border:1px solid var(--line);
}
.patient-slab.current{background:linear-gradient(135deg,#0B2545,#134463); color:#fff; border:none;}
.patient-slab.current .lbl{color:#9FB3D6;}
.action-grid .btn{font-size:.82rem; padding:10px 8px;}
.ld-screen{
  background:var(--navy); border-radius:20px; padding:0; overflow:hidden; border:6px solid #08172E;
  display:flex; flex-direction:column;
}
.ld-top{
  background:linear-gradient(90deg,var(--teal),var(--teal-2)); color:#fff; padding:14px 24px;
  display:flex; justify-content:space-between; align-items:center; font-size:clamp(.95rem,1.6vw,1.3rem);
}
.ld-current .num{font-family:'JetBrains Mono',monospace; font-weight:800; font-size:clamp(3.2rem,9vw,6rem); color:#fff; line-height:1;}
.ld-mini{background:rgba(255,255,255,.05); border-radius:14px; padding:14px; color:#EAF2FF;}
.ld-board{padding:22px 24px 8px; overflow-x:auto;}
.ld-table{width:100%; border-collapse:separate; border-spacing:0; color:#EAF2FF;}
.ld-table thead th{
  font-family:'JetBrains Mono',monospace; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:clamp(.68rem,1vw,.85rem); color:#8FD8CE; text-align:left; padding:8px 14px;
  border-bottom:2px solid rgba(255,255,255,.15); white-space:nowrap;
}
.ld-table tbody td{
  padding:12px 14px; font-size:clamp(.85rem,1.3vw,1.15rem); border-bottom:1px solid rgba(255,255,255,.08);
  white-space:nowrap;
}
.ld-table tbody tr:last-child td{border-bottom:none;}
.ld-table tbody tr.is-current{background:rgba(79,209,197,.1);}
.ld-token-cell{font-family:'JetBrains Mono',monospace; font-weight:800; letter-spacing:.03em;}
.ld-status{
  display:inline-flex; align-items:center; gap:6px; font-weight:700;
  font-size:clamp(.72rem,1vw,.92rem); padding:4px 10px; border-radius:20px;
}
.ld-status.proceed{background:rgba(76,224,160,.18); color:#4CE0A0;}
.ld-status.waiting{background:rgba(255,255,255,.08); color:#C9D6EC;}
.ld-status.consult{background:rgba(231,168,60,.18); color:var(--amber);}
.ld-footer{
  display:flex; flex-wrap:wrap; gap:14px; padding:8px 24px 16px;
}
.ld-footer-item{
  flex:1; min-width:220px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  border-radius:14px; padding:14px 18px; display:flex; align-items:center; justify-content:space-between;
}
.ld-footer-label{color:#9FB3D6; font-size:clamp(.72rem,1vw,.9rem); text-transform:uppercase; letter-spacing:.08em; font-weight:600;}
.ld-footer-value{color:#fff; font-weight:800; font-size:clamp(1.1rem,2.2vw,1.7rem);}
.ld-bottom{
  margin-top:auto; display:flex; align-items:center; gap:18px; padding:14px 24px;
  border-top:1px solid rgba(255,255,255,.1); color:#C9D6EC; font-size:clamp(.85rem,1.2vw,1.05rem);
}
.ld-screen:fullscreen{
  border-radius:0; border:none; width:100vw; height:100vh; padding:2vh 2vw; justify-content:center;
}
.ld-screen:fullscreen .ld-top{font-size:1.6rem; padding:22px 34px;}
.ld-screen:fullscreen .ld-board{padding:34px 40px 10px;}
.ld-screen:fullscreen .ld-table thead th{font-size:1.1rem; padding:14px 20px;}
.ld-screen:fullscreen .ld-table tbody td{font-size:1.6rem; padding:20px 20px;}
.ld-screen:fullscreen .ld-footer-item{padding:24px 30px;}
.ld-screen:fullscreen .ld-footer-value{font-size:2.6rem;}
.ld-screen:fullscreen .ld-bottom{font-size:1.4rem; padding:20px 34px;}
.admin-table th{font-size:.72rem; text-transform:uppercase; color:var(--muted); letter-spacing:.05em; border-bottom:2px solid var(--line);}
.admin-table td{font-size:.88rem; vertical-align:middle;}
.form-switch .form-check-input{width:2.4em; height:1.3em;}
@media (max-width:991.98px){
  .sidebar{transform:translateX(-100%);} .sidebar.open{transform:translateX(0);} .main-col{margin-left:0;} .menu-toggle{display:flex;} .live-clock{font-size:.9rem;}
}
.overlay-backdrop{display:none; position:fixed; inset:0; background:rgba(8,17,34,.45); z-index:1025;}
.overlay-backdrop.show{display:block;}
::-webkit-scrollbar{width:8px; height:8px;}
::-webkit-scrollbar-thumb{background:#C9D6EC; border-radius:8px;}

.login-page{
  background: linear-gradient(135deg, #0B2545 0%, #137A72 100%);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.login-shell{width:100%; max-width:420px;}
.login-card{
  background: rgba(255,255,255,.97);
  border-radius: 20px;
  padding: 28px;
  box-shadow: 0 20px 50px rgba(0,0,0,.22);
}
.login-brand{display:flex; align-items:center; gap:12px; margin-bottom:18px;}
.login-brand .mark{
  width:48px; height:48px; border-radius:14px;
  background: linear-gradient(135deg, var(--mint), var(--teal));
  display:flex; align-items:center; justify-content:center;
  font-weight:700; color:#04211f; font-size:1.1rem;
}
.login-brand h1{margin:0; font-size:1.35rem; color:var(--navy);} 
.login-brand p{margin:0; color:var(--muted); font-size:.9rem;}
.login-card h2{font-size:1.55rem; margin-bottom:6px; color:var(--navy);} 
.login-subtitle{color:var(--muted); margin-bottom:18px; font-size:.95rem;}
.login-form .form-control{padding:10px 12px; border-radius:10px;}
.login-msg{min-height:24px; margin-top:12px; color:#D64550; font-size:.92rem;}
.login-footer{margin-top:20px; padding-top:16px; border-top:1px solid var(--line);} 
.text-teal{color:var(--teal);} 
