:root{--navy:#061b3a;--blue:#0d6efd;--green:#16a34a;--yellow:#f59e0b;--red:#ef4444;--bg:#f6f8fb;--text:#172033;--muted:#667085;--card:#fff;--line:#e6eaf0}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;max-height:100vh;overflow-y:auto;overscroll-behavior:contain;background:var(--navy);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:20}.sidebar::-webkit-scrollbar,.scroll-panel::-webkit-scrollbar,.card-scroll::-webkit-scrollbar{width:8px;height:8px}.sidebar::-webkit-scrollbar-thumb,.scroll-panel::-webkit-scrollbar-thumb,.card-scroll::-webkit-scrollbar-thumb{background:rgba(148,163,184,.45);border-radius:999px}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;font-size:20px;flex:0 0 auto}.brand i{color:#48d597;font-size:26px}.sidebar-nav{gap:6px;margin-top:28px;overflow-y:auto;padding-right:3px;flex:1 1 auto;min-height:0}.sidebar-nav .nav-link{color:#cbd5e1;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px}.sidebar-nav .nav-link.active,.sidebar-nav .nav-link:hover{background:#12315f;color:#fff}.system-status{margin-top:18px;background:#0b2a55;border-radius:16px;padding:14px;display:flex;gap:10px;align-items:center;flex:0 0 auto}.system-status small{display:block;color:#b8c7dc}.pulse-dot{width:10px;height:10px;background:var(--green);border-radius:50%;box-shadow:0 0 0 6px rgba(22,163,74,.18)}.main-content{margin-left:260px;width:calc(100% - 260px)}.content-wrap{padding:24px}.topbar{height:96px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:18px;position:sticky;top:0;z-index:10}.topbar h1{font-size:26px;margin:0;font-weight:800}.topbar p{margin:4px 0 0;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:12px}.search-box{height:42px;background:var(--bg);border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:8px;padding:0 14px;min-width:250px}.search-box input{border:0;background:transparent;outline:0;width:100%}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:50%;width:42px;height:42px}.user-chip{display:flex;align-items:center;gap:10px}.user-chip small{display:block;color:var(--muted);text-transform:capitalize}.avatar-mini,.avatar-lg{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#dbeafe;color:#0b4bb3;font-weight:800}.avatar-mini{width:38px;height:38px}.avatar-lg{width:68px;height:68px;font-size:24px}.card-soft{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px rgba(16,24,40,.06);padding:20px}.dashboard-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:20px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-weight:800}.section-title a{font-size:13px;text-decoration:none}.watch-img{width:150px;max-width:70%;display:block;margin:8px auto 16px}.muted{color:var(--muted)}.metric-line{display:flex;justify-content:space-between;align-items:center}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;text-transform:capitalize}.connected,.green{background:#dcfce7;color:#166534}.yellow{background:#fef3c7;color:#92400e}.red{background:#fee2e2;color:#991b1b}.patient-head{display:flex;gap:14px;align-items:center}.patient-head h2{margin:0}.info-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0 0}.info-list div{background:var(--bg);border-radius:12px;padding:12px}.info-list dt{color:var(--muted);font-size:12px}.info-list dd{margin:0;font-weight:700}.risk-card{text-align:center}.risk-icon{font-size:48px;color:var(--green)}.risk-card h2{text-transform:capitalize;font-weight:900}.risk-card.risk-yellow .risk-icon{color:var(--yellow)}.risk-card.risk-red .risk-icon{color:var(--red)}.vital-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin:20px 0}.vital-card{padding:16px}.vital-card i{font-size:24px;color:var(--blue)}.vital-card strong{display:block;font-size:24px;margin-top:8px}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.chart-grid canvas{height:260px!important}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.recent-log{grid-column:1/-1}.alert-item,.session-item{border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;display:grid;gap:4px}.toolbar,.report-form{display:flex;gap:12px;margin-bottom:20px}.toolbar>*{max-width:260px}.grid-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.patient-mini{display:grid;gap:10px}.patient-mini .numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.patient-mini .numbers span{background:var(--bg);border-radius:10px;padding:8px;font-weight:800}.form-card{max-width:680px}.tele-layout,.settings-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.consult-room{min-height:360px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:linear-gradient(135deg,#061b3a,#0d6efd);color:#fff}.consult-room i{font-size:64px}.scroll-panel,.card-scroll{max-height:420px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:4px}.table-responsive{max-height:520px;overflow-y:auto;overflow-x:hidden}.table-responsive table{width:100%;table-layout:fixed}.table-responsive th,.table-responsive td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.table-responsive thead th{position:sticky;top:0;background:#fff;z-index:1}.mobile-nav{display:none}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#dbeafe,transparent 35%),var(--bg);padding:20px}.login-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:32px;box-shadow:0 24px 60px rgba(6,27,58,.16)}.login-brand{color:var(--navy);margin-bottom:20px}.login-card h1{font-weight:900}.demo-accounts{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:4px;color:var(--muted);font-size:13px}
@media (max-width:1100px){.dashboard-grid,.chart-grid,.lower-grid,.tele-layout,.settings-grid{grid-template-columns:1fr}.vital-grid{grid-template-columns:repeat(3,1fr)}.grid-list{grid-template-columns:repeat(2,1fr)}.search-box{display:none}}
@media (max-width:760px){.sidebar{display:none}.main-content{margin-left:0;width:100%;padding-bottom:76px}.topbar{height:auto;align-items:flex-start;padding:18px}.topbar h1{font-size:21px}.topbar-actions{margin-left:auto}.user-chip span:not(.avatar-mini),.topbar p{display:none}.content-wrap{padding:16px}.dashboard-grid,.vital-grid,.grid-list{grid-template-columns:1fr}.info-list{grid-template-columns:1fr}.toolbar,.report-form{flex-direction:column}.toolbar>*{max-width:none}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);z-index:30}.mobile-nav a{text-decoration:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;padding:8px 4px;font-size:11px}.mobile-nav a.active{color:var(--blue)}}
.role-hero{border-radius:18px;background:linear-gradient(135deg,#061b3a,#0d6efd);color:#fff;padding:28px;margin-bottom:20px;min-height:160px;display:flex;align-items:end}.role-hero h2{font-weight:900;margin:4px 0}.role-hero p{max-width:760px;margin:0;color:#dbeafe}.eyebrow{text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:.08em;color:#93c5fd}.stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{display:grid;gap:4px}.stat-card i{font-size:24px;color:var(--blue)}.stat-card span{color:var(--muted);font-size:13px}.stat-card strong{font-size:28px}.patient-hero{background:linear-gradient(135deg,#075985,#0d6efd)}.nurse-hero{background:linear-gradient(135deg,#064e3b,#0d9488)}.doctor-hero{background:linear-gradient(135deg,#312e81,#0d6efd)}.admin-hero{background:linear-gradient(135deg,#061b3a,#334155)}
.admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin:-6px 0 20px}.admin-actions .btn{border-radius:12px}
@media (max-width:1100px){.stat-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.stat-grid{grid-template-columns:1fr}}

/* Vertical scrolling policy: prevent sideways scrolling across dashboards. */
html,body{max-width:100%;overflow-x:hidden!important}
.app-shell,.main-content,.content-wrap,.card-soft,.dashboard-grid,.lower-grid,.chart-grid,.stat-grid,.vital-grid,.grid-list,.toolbar,.report-form{min-width:0;max-width:100%;overflow-x:hidden}
.sidebar,.sidebar-nav,.mobile-nav{overflow-x:hidden!important}
.scroll-panel,.card-scroll,.table-responsive{overflow-x:hidden!important;overflow-y:auto!important}
.table-responsive table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
.table-responsive th,.table-responsive td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;max-width:1px}
.toolbar,.report-form,.admin-actions{flex-wrap:wrap}
.admin-actions .btn,.toolbar .btn,.report-form .btn{white-space:normal}
canvas,img,svg{max-width:100%}

/* Sidebar fix: use one vertical scroll for the whole sidebar so Settings/Logout are never hidden. */
.sidebar{height:100dvh!important;max-height:100dvh!important;display:flex!important;flex-direction:column!important;overflow-y:auto!important;overflow-x:hidden!important;padding:18px 14px 20px!important}
.sidebar .brand{margin-bottom:18px}
.sidebar-nav{display:flex!important;flex-direction:column!important;gap:4px!important;margin-top:0!important;overflow:visible!important;max-height:none!important;padding-right:0!important;flex:0 0 auto!important}
.sidebar-nav .nav-link{padding:10px 12px!important;line-height:1.15!important}
.system-status{margin-top:auto!important;margin-bottom:6px!important}
.sidebar-version{color:#93a7c3;font-size:12px;text-align:center;padding:8px 4px 2px;line-height:1.4;flex:0 0 auto}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.audit-export-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:14px}
.audit-export-form label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:6px}
.audit-export-form .export-field{min-width:180px;max-width:240px;flex:1 1 180px}
.audit-export-form .export-actions{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:760px){.audit-export-form{display:grid;grid-template-columns:1fr}.audit-export-form .export-field{max-width:none}.audit-export-form .export-actions .btn{width:100%}}

/* Patient dashboard */
.patient-dashboard-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.patient-dashboard-title h2{margin:0;color:var(--navy);font-size:34px;font-weight:900}
.patient-dashboard-title p{margin:4px 0 0;color:var(--blue);font-size:20px;font-weight:700}
.patient-overview-grid{display:grid;grid-template-columns:.95fr 1.05fr 1.15fr;gap:20px;margin-bottom:20px}
.patient-device-overview,.patient-summary-card,.patient-risk-card{min-height:310px}
.status-dot-label{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-weight:800;font-size:13px}
.status-dot-label i{width:9px;height:9px;border-radius:50%;background:var(--green)}
.patient-watch-img{width:220px;max-width:78%;display:block;margin:4px auto 14px}
.patient-summary-main{display:flex;align-items:center;gap:20px;margin-bottom:18px}
.avatar-xl{display:inline-flex;align-items:center;justify-content:center;width:86px;height:86px;border-radius:50%;background:linear-gradient(135deg,#0d6efd,#0757c3);color:#fff;font-size:32px;font-weight:900;flex:0 0 auto}
.patient-summary-main h2{margin:0;font-weight:900;color:var(--navy)}
.patient-id-pill{display:inline-flex;background:#dbeafe;color:#0b61d6;border-radius:8px;padding:5px 9px;font-weight:800;font-size:13px}
.patient-summary-list{display:grid;gap:12px;margin:0 0 16px}
.patient-summary-list div{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center}
.patient-summary-list dt{font-weight:800;color:#344054}
.patient-summary-list dt i{margin-right:8px;color:var(--navy)}
.patient-summary-list dd{margin:0;color:#475467}
.card-link-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px 14px;text-decoration:none;font-weight:800;color:var(--blue)}
.risk-main{display:flex;align-items:center;justify-content:center;gap:34px;margin:18px 0}
.patient-risk-card .risk-icon{font-size:116px}
.patient-risk-card h2{font-size:34px;color:var(--green);margin:0;font-weight:900}
.patient-risk-card.risk-yellow h2{color:var(--yellow)}
.patient-risk-card.risk-red h2{color:var(--red)}
.patient-risk-card h3{font-size:22px;color:var(--navy);font-weight:500}
.patient-vitals-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}
.patient-vital-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:center;min-height:126px;overflow:hidden}
.patient-vital-card .vital-icon{width:54px;height:54px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eaf2ff;color:var(--blue);font-size:26px;flex:0 0 auto}
.patient-vital-card.vital-heart .vital-icon{background:#fee2e2;color:var(--red)}
.patient-vital-card.vital-temp .vital-icon{background:#f3e8ff;color:#8b5cf6}
.patient-vital-card.vital-fall .vital-icon{background:#fef3c7;color:var(--yellow)}
.patient-vital-card.vital-battery .vital-icon{background:#dcfce7;color:var(--green)}
.patient-vital-card .vital-content{min-width:0;display:grid;gap:4px}
.patient-vital-card .vital-label{color:#344054;font-weight:800;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.patient-vital-card .vital-value{display:block;color:var(--navy);font-size:24px;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
.patient-vital-card .vital-status{display:flex;align-items:center;gap:6px;color:var(--green);margin-top:4px;font-size:13px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.patient-vital-card .vital-status i{width:8px;height:8px;border-radius:50%;background:var(--green);flex:0 0 auto}
.patient-chart-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.patient-chart-card canvas{height:210px!important}
.chart-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px;color:var(--navy)}
.chart-card-title span{font-weight:800}
.chart-card-title strong{font-size:22px}
.patient-bottom-grid{display:grid;grid-template-columns:.9fr 1.05fr 1.65fr;gap:16px}
.patient-log-card .table-responsive{max-height:360px}
.patient-alert-row{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.patient-alert-row:last-child{border-bottom:0}
.patient-alert-row>i{font-size:22px;color:var(--green)}
.patient-alert-row .alert-yellow{color:var(--yellow)}
.patient-alert-row .alert-red{color:var(--red)}
.patient-alert-row strong{display:block;color:var(--navy)}
.patient-alert-row small{display:block;color:var(--muted)}
.telemedicine-mock{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.telemedicine-screen{min-height:190px;background:linear-gradient(135deg,#dbeafe,#eef2ff);display:flex;align-items:center;justify-content:center;position:relative;color:#0d6efd}
.telemedicine-screen .status-pill{position:absolute;left:14px;top:14px}
.telemedicine-screen>i{font-size:86px}
.telemedicine-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:#fff}
.telemedicine-footer small{display:block;color:var(--muted)}
.call-actions{display:flex;gap:8px}
.call-end{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important}
@media (max-width:1300px){.patient-overview-grid{grid-template-columns:1fr}.patient-chart-grid{grid-template-columns:repeat(2,1fr)}.patient-bottom-grid{grid-template-columns:1fr}}
@media (max-width:760px){.patient-dashboard-title h2{font-size:25px}.patient-dashboard-title p{font-size:16px}.patient-vitals-grid,.patient-chart-grid{grid-template-columns:1fr}.patient-summary-list div{grid-template-columns:1fr}.risk-main{gap:18px}.patient-risk-card .risk-icon{font-size:78px}.telemedicine-footer{align-items:flex-start;flex-direction:column}}

/* Collapsible sidebar */
.sidebar,.main-content,.brand span,.sidebar-nav .nav-link span,.system-status,.sidebar-version{transition:all .22s ease}
.topbar-title{display:flex;align-items:center;gap:14px;min-width:0}
.sidebar-toggle{flex:0 0 auto;color:var(--navy)}
.sidebar-toggle i{font-size:20px}
html.sidebar-collapsed .sidebar{width:82px!important;padding-left:12px!important;padding-right:12px!important;align-items:center}
html.sidebar-collapsed .main-content{margin-left:82px;width:calc(100% - 82px)}
html.sidebar-collapsed .brand{justify-content:center;width:100%;gap:0}
html.sidebar-collapsed .brand span{opacity:0;visibility:hidden;width:0;overflow:hidden}
html.sidebar-collapsed .sidebar-nav{width:100%;align-items:center}
html.sidebar-collapsed .sidebar-nav .nav-link{justify-content:center;width:48px;height:48px;padding:0!important;border-radius:14px}
html.sidebar-collapsed .sidebar-nav .nav-link i{font-size:20px}
html.sidebar-collapsed .sidebar-nav .nav-link span{opacity:0;visibility:hidden;width:0;overflow:hidden}
html.sidebar-collapsed .system-status{width:48px;height:48px;padding:0!important;justify-content:center;border-radius:14px}
html.sidebar-collapsed .system-status>div{display:none}
html.sidebar-collapsed .sidebar-version{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;white-space:nowrap;padding:10px 0}
@media (max-width:760px){
  .sidebar,.sidebar{display:none!important}
  .sidebar-toggle{display:none!important}
  .main-content,html.sidebar-collapsed .main-content{margin-left:0!important;width:100%!important}
  .mobile-nav a{justify-content:center;padding:12px 4px}
  .mobile-nav a span{display:none!important}
  .mobile-nav a i{font-size:22px}
}

/* Mobile app polish */
@media (max-width:760px){
  body{background:#eef4fb}
  .topbar{position:sticky;top:0;z-index:18;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(226,232,240,.85);box-shadow:0 10px 28px rgba(15,23,42,.06);border-radius:0 0 22px 22px;padding:14px 16px}
  .topbar-title{align-items:flex-start}
  .topbar h1{font-size:20px;line-height:1.2;max-width:210px}
  .topbar p{display:block!important;font-size:12px;line-height:1.35;color:#64748b;max-width:220px}
  .topbar-actions{gap:8px}
  .topbar-actions .icon-btn{width:38px;height:38px}
  .user-chip{background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:3px}
  .avatar-mini{width:32px;height:32px}
  .content-wrap{padding:16px 14px 92px}
  .card-soft{border-radius:18px;padding:16px;box-shadow:0 12px 28px rgba(15,23,42,.07)}
  .section-title{font-size:15px;margin-bottom:12px}
  .mobile-nav{left:12px;right:12px;bottom:12px;border:1px solid rgba(226,232,240,.9);border-radius:22px;box-shadow:0 18px 38px rgba(15,23,42,.16);overflow:hidden;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);padding:6px}
  .mobile-nav a{border-radius:16px;min-height:48px;color:#64748b}
  .mobile-nav a.active{background:#eaf2ff;color:var(--blue)}
  .mobile-nav a i{font-size:23px}
  .patient-dashboard-title{background:linear-gradient(135deg,#061b3a,#0d6efd);border-radius:22px;color:#fff;margin-bottom:16px;padding:20px;box-shadow:0 16px 36px rgba(13,110,253,.22)}
  .patient-dashboard-title h2{color:#fff;font-size:24px;line-height:1.12}
  .patient-dashboard-title p{color:#bfdbfe;font-size:15px;font-weight:600}
  .patient-overview-grid{gap:14px;margin-bottom:14px}
  .patient-device-overview,.patient-summary-card,.patient-risk-card{min-height:auto}
  .patient-watch-img{width:170px;max-width:62%;margin:0 auto 12px}
  .patient-summary-main{align-items:center;gap:14px;margin-bottom:14px}
  .avatar-xl{width:66px;height:66px;font-size:25px}
  .patient-summary-main h2{font-size:22px}
  .patient-id-pill{font-size:12px}
  .patient-summary-list{gap:10px}
  .patient-summary-list div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px}
  .risk-main{justify-content:flex-start;margin:8px 0 12px}
  .patient-risk-card .risk-icon{font-size:64px}
  .patient-risk-card h2{font-size:28px}
  .patient-risk-card h3{font-size:18px;margin:0}
  .patient-vitals-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .patient-vital-card{grid-template-columns:1fr;align-items:start;min-height:150px;gap:10px}
  .patient-vital-card .vital-icon{width:46px;height:46px;font-size:22px}
  .patient-vital-card .vital-label{font-size:13px}
  .patient-vital-card .vital-value{font-size:22px}
  .patient-vital-card .vital-status{font-size:12px}
  .patient-chart-grid{gap:14px}
  .patient-chart-card canvas{height:230px!important}
  .chart-card-title{display:grid;gap:4px}
  .chart-card-title strong{font-size:20px}
  .patient-bottom-grid{gap:14px}
  .telemedicine-screen{min-height:160px}
  .telemedicine-screen>i{font-size:66px}
  .table-responsive{max-height:430px}
}
@media (max-width:390px){
  .patient-vitals-grid{grid-template-columns:1fr}
  .topbar h1{max-width:170px}
  .topbar p{max-width:180px}
}

/* Telemedicine WebRTC */
.tele-session-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
.tele-session-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.telemedicine-room{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr);gap:20px}
.video-stage{position:relative;min-height:650px;background:#07152d;color:#fff;overflow:hidden;padding:0}
.remote-video-wrap{position:absolute;inset:0;background:radial-gradient(circle at top,#173b71,#061b3a);display:flex;align-items:center;justify-content:center}
.remote-video-wrap video{width:100%;height:100%;object-fit:cover}
.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;color:#dbeafe}
.video-placeholder i{font-size:84px}
#localVideo{position:absolute;right:18px;top:18px;width:220px;aspect-ratio:4/3;object-fit:cover;background:#0f172a;border:3px solid rgba(255,255,255,.85);border-radius:16px;box-shadow:0 18px 40px rgba(0,0,0,.32)}
.call-status{position:absolute;left:18px;top:18px;display:flex;align-items:center;gap:10px;background:rgba(6,27,58,.72);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 12px;backdrop-filter:blur(12px)}
.call-toolbar{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:12px;background:rgba(255,255,255,.92);padding:10px;border-radius:999px;box-shadow:0 18px 42px rgba(0,0,0,.25)}
.call-toolbar .icon-btn{width:50px;height:50px;color:var(--navy)}
.session-side h3{font-weight:900;color:var(--navy)}
.session-meta{display:grid;gap:10px;margin:18px 0}
.session-meta div{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}
.session-meta dt{font-size:12px;color:var(--muted);font-weight:800}
.session-meta dd{margin:0;color:var(--navy);font-weight:800}
.webrtc-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:14px;color:#1e3a8a}
.webrtc-note p{margin:6px 0 0}
@media (max-width:1100px){.telemedicine-room{grid-template-columns:1fr}.video-stage{min-height:520px}}
@media (max-width:760px){.tele-session-row{align-items:flex-start;flex-direction:column}.tele-session-actions{justify-content:flex-start}.video-stage{min-height:470px;border-radius:22px}#localVideo{width:120px;right:12px;top:12px;border-radius:12px}.call-status{left:12px;right:12px;top:auto;bottom:92px;border-radius:16px;align-items:flex-start}.call-toolbar{bottom:18px;gap:8px}.call-toolbar .icon-btn{width:46px;height:46px}.video-placeholder i{font-size:62px}}
.incoming-call-toast{position:fixed;right:22px;bottom:22px;z-index:1060;width:min(430px,calc(100vw - 28px));display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid #bfdbfe;border-radius:18px;padding:14px;box-shadow:0 24px 60px rgba(15,23,42,.22)}
.incoming-call-icon{width:54px;height:54px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:24px}
.incoming-call-copy{display:grid;gap:2px;min-width:0}
.incoming-call-copy strong{color:var(--navy)}
.incoming-call-copy span,.incoming-call-copy small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.incoming-call-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:760px){.incoming-call-toast{left:12px;right:12px;bottom:78px;width:auto;grid-template-columns:46px 1fr}.incoming-call-icon{width:46px;height:46px}.incoming-call-actions{grid-column:1/-1;justify-content:stretch}.incoming-call-actions .btn{flex:1}}

/* Reports */
.report-hero{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px;border-radius:22px;padding:26px;background:linear-gradient(135deg,#061b3a,#0d6efd);color:#fff;box-shadow:0 18px 44px rgba(13,110,253,.18)}
.report-hero h2{font-size:34px;font-weight:900;margin:4px 0}
.report-hero p{max-width:720px;color:#dbeafe;margin:0}
.report-hero-badge{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:12px 16px;font-weight:800;white-space:nowrap}
.report-filter-card{margin-bottom:18px}
.report-filter-form{display:grid;grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(160px,.7fr)) auto;gap:12px;align-items:end}
.filter-field label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}
.filter-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}
.report-summary-card{display:flex;align-items:center;gap:14px;min-height:120px}
.report-summary-card .summary-icon{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:24px;background:#eaf2ff;color:var(--blue);flex:0 0 auto}
.report-summary-card small{display:block;color:var(--muted);font-weight:800}
.report-summary-card strong{display:block;color:var(--navy);font-size:27px;line-height:1.1}
.report-summary-card strong span{font-size:13px;color:var(--muted);margin-left:3px}
.report-summary-card em{display:block;color:#64748b;font-style:normal;font-size:12px;margin-top:6px}
.report-summary-card.heart .summary-icon{background:#fee2e2;color:var(--red)}
.report-summary-card.spo2 .summary-icon{background:#dbeafe;color:var(--blue)}
.report-summary-card.temp .summary-icon{background:#fef3c7;color:var(--yellow)}
.report-summary-card.battery .summary-icon{background:#dcfce7;color:var(--green)}
.report-summary-card.warn .summary-icon{background:#f3e8ff;color:#7c3aed}
.report-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:18px}
.report-chart-card canvas{height:420px!important}
.report-insight-card{align-self:stretch}
.insight-row{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.insight-row:last-child{border-bottom:0}
.insight-row i{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eff6ff;color:var(--blue);font-size:18px}
.insight-row strong{display:block;color:var(--navy)}
.insight-row span{display:block;color:var(--muted);font-size:13px}
.report-table-card .table-responsive{max-height:520px}
.report-table th{font-size:12px;text-transform:uppercase;color:#64748b}
.motion-pill{display:inline-flex;border-radius:999px;background:#f1f5f9;color:#334155;padding:5px 10px;font-size:12px;font-weight:800;text-transform:capitalize}
@media (max-width:1200px){.report-filter-form{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1/-1}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-layout{grid-template-columns:1fr}}
@media (max-width:760px){.report-hero{align-items:flex-start;flex-direction:column;padding:22px}.report-hero h2{font-size:27px}.report-hero-badge{border-radius:16px;white-space:normal}.report-filter-form,.report-summary-grid{grid-template-columns:1fr}.filter-actions .btn{flex:1}.report-chart-card canvas{height:340px!important}}
@media print{.sidebar,.topbar,.mobile-nav,.report-filter-card,.incoming-call-toast,.report-table-card .btn{display:none!important}.main-content{margin-left:0!important;width:100%!important}.content-wrap{padding:0}.card-soft,.report-hero{box-shadow:none!important}}

/* System-wide page polish */
.app-page-hero{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px;border-radius:22px;padding:26px;background:linear-gradient(135deg,#061b3a,#0d6efd);color:#fff;box-shadow:0 18px 44px rgba(13,110,253,.16)}
.app-page-hero h2{font-size:32px;font-weight:900;margin:4px 0}
.app-page-hero p{max-width:760px;color:#dbeafe;margin:0}
.app-page-hero .btn{border:0;border-radius:14px;font-weight:800;box-shadow:0 10px 24px rgba(15,23,42,.12)}
.patients-hero{background:linear-gradient(135deg,#064e3b,#0d9488)}
.devices-hero{background:linear-gradient(135deg,#061b3a,#2563eb)}
.alerts-hero{background:linear-gradient(135deg,#7f1d1d,#ef4444)}
.users-hero,.staff-hero{background:linear-gradient(135deg,#312e81,#0d6efd)}
.staff-hero.nurse{background:linear-gradient(135deg,#075985,#06b6d4)}
.live-hero{background:linear-gradient(135deg,#052e16,#16a34a)}
.settings-hero{background:linear-gradient(135deg,#334155,#0d6efd)}
.notes-hero{background:linear-gradient(135deg,#4c1d95,#8b5cf6)}
.filter-card{margin-bottom:18px;padding:16px}
.filter-toolbar,.filter-card .toolbar{margin-bottom:0}
.filter-card .form-control,.filter-card .form-select,.table-card .form-control,.table-card .form-select{border-radius:12px;border-color:#dbe3ee}
.table-card{overflow:hidden}
.table-card .table{margin-bottom:0}
.table-card thead th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#64748b;background:#f8fafc}
.table-card tbody tr:hover{background:#f8fbff}
.page-scroll-wrap{max-height:calc(100dvh - 260px);overflow-y:auto;overflow-x:hidden;padding:2px 4px 6px 0}
.patient-mini{position:relative;overflow:hidden;border:1px solid #e2e8f0}
.patient-mini:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#0d6efd,#16a34a)}
.patient-mini .numbers span{display:flex;align-items:center;justify-content:center;min-height:42px;color:var(--navy)}
.patient-mini p{margin-bottom:8px}
.hero-live-pill{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:10px 14px;font-weight:800}
.hero-live-pill i{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.2)}
.elevated-form,.polished-form .card-soft{border-radius:18px;box-shadow:0 14px 34px rgba(15,23,42,.08)}
.polished-form .settings-grid{gap:18px}
.polished-form h3,.elevated-form h3{font-weight:900;color:var(--navy)}
.polished-form .form-control,.polished-form .form-select,.elevated-form .form-control,.elevated-form .form-select{border-radius:12px;border-color:#dbe3ee}
.polished-form textarea.form-control{min-height:92px}
.profile-settings-card{display:flex;align-items:center;gap:18px}
.settings-panel{display:grid;gap:12px}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px}
.settings-row span{color:var(--muted);font-weight:800}
.settings-row code{white-space:normal;overflow-wrap:anywhere}
.empty-state{display:flex;min-height:180px;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center;color:var(--muted)}
.empty-state i{font-size:42px;color:#94a3b8}
.empty-state strong{color:var(--navy)}
.table td .btn,.table th .btn{margin:2px}
@media (max-width:760px){.app-page-hero{align-items:flex-start;flex-direction:column;padding:22px;border-radius:22px}.app-page-hero h2{font-size:26px}.app-page-hero .btn{width:100%}.page-scroll-wrap{max-height:none}.profile-settings-card{align-items:flex-start;flex-direction:column}.settings-row{align-items:flex-start;flex-direction:column}.filter-card .toolbar,.table-card .toolbar{display:grid;grid-template-columns:1fr}}

/* Admin command dashboard */
.admin-command-hero{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px;border-radius:24px;padding:28px;background:linear-gradient(135deg,#061b3a,#334155);color:#fff;box-shadow:0 20px 48px rgba(6,27,58,.18)}
.admin-command-hero h2{font-size:36px;font-weight:900;margin:4px 0}
.admin-command-hero p{max-width:760px;color:#dbeafe;margin:0}
.admin-command-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.admin-command-actions .btn{border:0;border-radius:14px;font-weight:800}
.admin-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}
.admin-stat-card{display:flex;align-items:center;gap:14px;min-height:108px}
.admin-stat-card>span{width:50px;height:50px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:23px;background:#eaf2ff;color:var(--blue);flex:0 0 auto}
.admin-stat-card small{display:block;color:var(--muted);font-weight:800}
.admin-stat-card strong{display:block;color:var(--navy);font-size:28px;line-height:1.1}
.admin-stat-card.tone-green>span{background:#dcfce7;color:var(--green)}
.admin-stat-card.tone-yellow>span{background:#fef3c7;color:var(--yellow)}
.admin-stat-card.tone-red>span{background:#fee2e2;color:var(--red)}
.admin-command-layout{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(0,1.6fr);gap:18px;margin-bottom:18px}
.admin-explorer-tools{display:grid;grid-template-columns:1fr 140px;gap:10px;margin-bottom:14px}
.admin-patient-list{display:grid;gap:10px;max-height:650px;overflow-y:auto;padding-right:4px}
.admin-patient-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;text-align:left;transition:.16s ease}
.admin-patient-row:hover,.admin-patient-row.active{border-color:#93c5fd;background:#eff6ff;box-shadow:0 10px 24px rgba(13,110,253,.08)}
.patient-row-main{display:grid;min-width:0}
.patient-row-main strong{color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.patient-row-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-selected-patient{min-height:360px}
.admin-selected-head{display:flex;gap:16px;align-items:center;margin-bottom:18px}
.admin-selected-head h3{margin:0;color:var(--navy);font-weight:900}
.admin-selected-head p{margin:4px 0 8px;color:var(--muted)}
.admin-vital-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.admin-vital-mini-grid div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;min-height:82px}
.admin-vital-mini-grid span{display:block;color:var(--muted);font-size:12px;font-weight:800}
.admin-vital-mini-grid strong{display:block;color:var(--navy);font-size:18px;line-height:1.25;margin-top:4px;overflow-wrap:anywhere}
.admin-care-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.admin-care-row span{display:inline-flex;align-items:center;gap:6px;background:#eef6ff;border:1px solid #dbeafe;border-radius:999px;padding:8px 12px;color:#1e3a8a;font-weight:800;font-size:13px}
.admin-detail-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);gap:18px;margin-bottom:18px}
.admin-operations-panel{min-height:430px}
.admin-patient-ops{display:grid;gap:16px}
.ops-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ops-tile{border:1px solid var(--line);border-radius:16px;padding:14px;background:#f8fafc;display:grid;gap:5px;min-height:120px}
.ops-tile i{font-size:24px}
.ops-tile span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}
.ops-tile strong{font-size:21px;color:var(--navy);overflow-wrap:anywhere}
.ops-tile.ok i{color:var(--green)}
.ops-tile.warn i{color:var(--yellow)}
.ops-tile.danger i{color:var(--red)}
.ops-actions{display:flex;gap:10px;flex-wrap:wrap}
.ops-actions .btn{border-radius:12px}
.ops-log{border-top:1px solid var(--line);padding-top:14px}
.ops-log-list{display:grid;gap:8px}
.ops-log-list div{display:grid;grid-template-columns:170px minmax(0,1fr) auto;align-items:center;gap:10px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px}
.ops-log-list span{color:var(--muted);font-size:13px}
.ops-log-list strong{color:var(--navy);font-size:13px}
.ops-log-list em{font-style:normal;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900;text-transform:uppercase;background:#dcfce7;color:#166534}
.ops-log-list em.review{background:#fef3c7;color:#92400e}
.ops-log-list em.critical{background:#fee2e2;color:#991b1b}
.admin-operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.device-status-bars{display:grid;gap:10px}
.device-status-bars div{display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:14px}
.device-status-bars span{font-weight:800;color:var(--muted)}
.device-status-bars strong{font-size:24px;color:var(--navy)}
@media (max-width:1300px){.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-command-layout,.admin-detail-layout,.admin-operations-grid{grid-template-columns:1fr}}
@media (max-width:760px){.admin-command-hero{align-items:flex-start;flex-direction:column;padding:22px}.admin-command-hero h2{font-size:27px}.admin-command-actions{width:100%}.admin-command-actions .btn{flex:1}.admin-summary-grid,.admin-vital-mini-grid,.ops-status-grid{grid-template-columns:1fr}.admin-explorer-tools{grid-template-columns:1fr}.admin-patient-row{grid-template-columns:38px minmax(0,1fr)}.admin-patient-row .status-pill{grid-column:2}.admin-selected-head{align-items:flex-start;flex-direction:column}.ops-log-list div{grid-template-columns:1fr}.ops-actions .btn{flex:1}}

/* Users directory */
.user-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.user-hero-actions .btn{border-radius:14px;font-weight:800;border:0}
.user-summary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:18px}
.user-summary-card{display:flex;align-items:center;gap:12px;min-height:96px;padding:16px}
.user-summary-card>span{width:44px;height:44px;border-radius:14px;background:#eaf2ff;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:21px;flex:0 0 auto}
.user-summary-card small{display:block;color:var(--muted);font-weight:800;font-size:12px}
.user-summary-card strong{display:block;color:var(--navy);font-size:24px;line-height:1}
.user-summary-card.tone-green>span{background:#dcfce7;color:var(--green)}
.user-summary-card.tone-yellow>span{background:#fef3c7;color:var(--yellow)}
.user-summary-card.tone-red>span{background:#fee2e2;color:var(--red)}
.user-filter-card .toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px;gap:12px}
.user-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.user-card{position:relative;overflow:hidden;padding:18px}
.user-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--blue)}
.user-card.role-doctor:before{background:#0d6efd}
.user-card.role-nurse:before{background:#16a34a}
.user-card.role-patient:before{background:#06b6d4}
.user-card.role-admin:before{background:#ef4444}
.user-card-head{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center}
.user-avatar{width:54px;height:54px;border-radius:18px;background:#eaf2ff;color:#0b61d6;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px}
.user-card h3{margin:0;color:var(--navy);font-weight:900;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-card p{margin:2px 0 0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 12px;color:var(--muted);font-size:13px}
.role-chip{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:6px 10px;font-weight:900;text-transform:capitalize;background:#eef6ff;color:#1d4ed8}
.role-chip.role-nurse{background:#dcfce7;color:#166534}
.role-chip.role-patient{background:#cffafe;color:#155e75}
.role-chip.role-admin{background:#fee2e2;color:#991b1b}
.user-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.user-meta-grid div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px;min-width:0}
.user-meta-grid small{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.user-meta-grid strong{display:block;color:var(--navy);font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.user-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.user-card-actions .btn{border-radius:10px}
.user-edit-modal{border:0;border-radius:22px;overflow:hidden}
.user-edit-modal .modal-header{background:#f8fafc;border-bottom:1px solid var(--line)}
.user-edit-modal .modal-title{font-weight:900;color:var(--navy)}
.user-edit-modal .form-control,.user-edit-modal .form-select{border-radius:12px;border-color:#dbe3ee}
@media (max-width:1300px){.user-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.user-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.user-hero-actions{width:100%}.user-hero-actions .btn{flex:1}.user-summary-grid,.user-directory-grid,.user-filter-card .toolbar{grid-template-columns:1fr}.user-card-head{grid-template-columns:48px minmax(0,1fr)}.user-card-head .status-pill{grid-column:2}.user-role-row{align-items:flex-start;flex-direction:column}.user-meta-grid{grid-template-columns:1fr}}

/* Local AI chat */
.ai-chat-widget{position:fixed;right:24px;bottom:24px;z-index:1080}
.ai-chat-toggle{width:58px;height:58px;border:0;border-radius:20px;background:linear-gradient(135deg,#0d6efd,#061b3a);color:#fff;box-shadow:0 18px 36px rgba(13,110,253,.3);display:flex;align-items:center;justify-content:center;font-size:24px}
.ai-chat-toggle:hover{transform:translateY(-1px)}
.ai-chat-panel{position:absolute;right:0;bottom:74px;width:min(390px,calc(100vw - 32px));height:min(620px,calc(100vh - 120px));background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 80px rgba(6,27,58,.24);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto}
.ai-chat-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:linear-gradient(135deg,#061b3a,#123b72);color:#fff}
.ai-chat-head strong{display:block;font-size:17px}
.ai-chat-head span{display:block;font-size:12px;color:#bfdbfe}
.btn-icon{border:0;background:rgba(255,255,255,.14);color:#fff;width:34px;height:34px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}
.ai-chat-body{padding:16px;background:#f6f8fb;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.ai-welcome{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;color:var(--muted)}
.ai-welcome strong{display:block;color:var(--navy);margin-bottom:4px}
.ai-msg{display:flex}
.ai-msg.user{justify-content:flex-end}
.ai-msg-bubble{max-width:86%;border:1px solid var(--line);border-radius:18px;padding:11px 13px;background:#fff;color:var(--navy);font-size:14px;line-height:1.45;box-shadow:0 8px 20px rgba(15,23,42,.05);overflow-wrap:anywhere}
.ai-msg.user .ai-msg-bubble{background:#0d6efd;border-color:#0d6efd;color:#fff;border-bottom-right-radius:7px}
.ai-msg.bot .ai-msg-bubble{border-bottom-left-radius:7px}
.ai-msg.typing .ai-msg-bubble{color:var(--muted);font-style:italic}
.ai-source{display:block;width:max-content;max-width:100%;margin-top:9px;border-radius:999px;background:#eaf2ff;color:#1d4ed8;padding:4px 8px;font-size:11px;font-weight:900}
.ai-chat-form{display:grid;grid-template-columns:1fr 44px;gap:10px;padding:12px;background:#fff;border-top:1px solid var(--line)}
.ai-chat-form textarea{resize:none;min-height:44px;max-height:96px;border:1px solid #dbe3ee;border-radius:16px;padding:11px 13px;outline:0;font:inherit}
.ai-chat-form textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(13,110,253,.12)}
.ai-chat-form button{border:0;border-radius:16px;background:#16a34a;color:#fff;font-size:18px}
.ai-chat-form.is-busy button{opacity:.6}
.ai-knowledge-note{display:grid;gap:8px;margin-top:12px;color:var(--muted);font-size:13px}
@media (max-width:760px){.ai-chat-widget{right:14px;bottom:82px}.ai-chat-toggle{width:54px;height:54px;border-radius:18px}.ai-chat-panel{position:fixed;left:10px;right:10px;bottom:76px;width:auto;height:min(620px,calc(100vh - 100px));border-radius:22px}.ai-msg-bubble{max-width:92%}}

.app-footer{margin:26px 0 6px;padding:16px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;text-align:center}
@media (max-width:760px){.app-footer{margin-bottom:78px;padding-inline:10px;font-size:12px}}

/* Doctor dashboard */
.doctor-command-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;border-radius:24px;padding:28px;background:linear-gradient(135deg,#061b3a,#155e75);color:#fff;box-shadow:0 20px 48px rgba(6,27,58,.18)}
.doctor-command-hero h2{font-size:36px;font-weight:900;margin:4px 0}
.doctor-command-hero p{max-width:760px;color:#dbeafe;margin:0}
.doctor-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.doctor-hero-actions .btn{border:0;border-radius:14px;font-weight:800}
.doctor-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}
.doctor-stat{display:flex;align-items:center;gap:14px;min-height:108px}
.doctor-stat>span{width:50px;height:50px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:23px;background:#eaf2ff;color:var(--blue);flex:0 0 auto}
.doctor-stat small{display:block;color:var(--muted);font-weight:900}
.doctor-stat strong{display:block;color:var(--navy);font-size:28px;line-height:1.1}
.doctor-stat.tone-red>span{background:#fee2e2;color:var(--red)}
.doctor-stat.tone-yellow>span{background:#fef3c7;color:var(--yellow)}
.doctor-stat.tone-green>span{background:#dcfce7;color:var(--green)}
.doctor-main-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;margin-bottom:18px}
.doctor-review-grid{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(0,1.35fr);gap:18px;margin-bottom:18px}
.doctor-panel{min-height:280px}
.doctor-scroll-panel{max-height:430px;overflow-y:auto;padding-right:4px}
.doctor-alert-row,.doctor-session-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;margin-bottom:10px}
.doctor-alert-row.red{border-color:#fecaca;background:#fff7f7}
.doctor-alert-row.yellow{border-color:#fde68a;background:#fffbeb}
.doctor-alert-row strong,.doctor-session-row strong{display:block;color:var(--navy)}
.doctor-alert-row small,.doctor-session-row small{display:block;color:var(--muted);font-size:12px}
.doctor-alert-row p{margin:3px 0 0;color:var(--muted);font-size:13px}
.doctor-risk-layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:18px;min-height:230px}
.doctor-risk-layout canvas{height:210px!important}
.risk-breakdown{display:grid;gap:10px}
.risk-breakdown div{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:12px}
.risk-breakdown strong{font-size:24px;color:var(--navy)}
.doctor-filter-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;margin-bottom:14px}
.doctor-filter-row .form-control,.doctor-filter-row .form-select{border-radius:12px;border-color:#dbe3ee}
.doctor-patient-list{display:grid;gap:10px;max-height:580px;overflow-y:auto;padding-right:4px}
.doctor-patient-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;text-align:left;transition:.16s ease}
.doctor-patient-row:hover,.doctor-patient-row.active{border-color:#93c5fd;background:#eff6ff;box-shadow:0 10px 24px rgba(13,110,253,.08)}
.doctor-patient-row strong{display:block;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doctor-patient-row small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doctor-selected-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.doctor-selected-head h3{margin:0;color:var(--navy);font-weight:900}
.doctor-selected-head p{margin:4px 0 8px;color:var(--muted)}
.doctor-vital-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.doctor-vital-mini div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;min-height:82px}
.doctor-vital-mini span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}
.doctor-vital-mini strong{display:block;color:var(--navy);font-size:18px;line-height:1.25;margin-top:4px;overflow-wrap:anywhere}
.doctor-care-line{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.doctor-care-line span{display:inline-flex;align-items:center;gap:6px;background:#eef6ff;border:1px solid #dbeafe;border-radius:999px;padding:8px 12px;color:#1e3a8a;font-weight:800;font-size:13px}
.doctor-chart-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:18px}
.doctor-chart-card{min-height:290px}
.doctor-chart-card canvas{height:210px!important}
.doctor-bottom-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.doctor-note-prompt{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:14px}
.doctor-note-prompt i{width:46px;height:46px;border-radius:15px;background:#eaf2ff;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:22px}
.doctor-note-prompt strong{display:block;color:var(--navy)}
.doctor-note-prompt span{display:block;color:var(--muted);font-size:13px}
.doctor-action-list{display:grid;gap:10px}
.doctor-action-list .btn{border-radius:12px;text-align:left;font-weight:800}
@media (max-width:1300px){.doctor-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.doctor-main-grid,.doctor-review-grid,.doctor-bottom-grid{grid-template-columns:1fr}.doctor-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.doctor-command-hero{align-items:flex-start;flex-direction:column;padding:22px}.doctor-command-hero h2{font-size:27px}.doctor-hero-actions{width:100%}.doctor-hero-actions .btn{flex:1}.doctor-summary-grid,.doctor-chart-grid,.doctor-vital-mini,.doctor-risk-layout,.doctor-filter-row{grid-template-columns:1fr}.doctor-alert-row,.doctor-session-row,.doctor-note-prompt{grid-template-columns:1fr}.doctor-patient-row{grid-template-columns:40px minmax(0,1fr)}.doctor-patient-row .status-pill{grid-column:2}.doctor-selected-head{align-items:flex-start;flex-direction:column}.doctor-risk-layout canvas{height:220px!important}}

/* Nurse dashboard */
.nurse-command-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;border-radius:24px;padding:28px;background:linear-gradient(135deg,#063a2a,#0f766e);color:#fff;box-shadow:0 20px 48px rgba(6,58,42,.18)}
.nurse-command-hero h2{font-size:36px;font-weight:900;margin:4px 0}
.nurse-command-hero p{max-width:760px;color:#ccfbf1;margin:0}
.nurse-live-panel{margin-bottom:18px}
.nurse-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nurse-live-card{display:grid;gap:12px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:15px;text-align:left;transition:.16s ease;min-height:178px}
.nurse-live-card:hover,.nurse-live-card.active{border-color:#5eead4;background:#f0fdfa;box-shadow:0 12px 28px rgba(15,118,110,.09)}
.nurse-live-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center}
.nurse-live-head strong{display:block;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nurse-live-head small{display:block;color:var(--muted)}
.nurse-live-vitals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.nurse-live-vitals div{border:1px solid var(--line);background:#f8fafc;border-radius:12px;padding:9px;min-width:0}
.nurse-live-vitals span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.nurse-live-vitals strong{display:block;color:var(--navy);font-size:16px;line-height:1.2;overflow-wrap:anywhere}
.nurse-warning-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;margin-bottom:10px}
.nurse-warning-row i{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:21px;background:#eaf2ff;color:var(--blue)}
.nurse-warning-row.yellow{border-color:#fde68a;background:#fffbeb}
.nurse-warning-row.yellow i{background:#fef3c7;color:var(--yellow)}
.nurse-warning-row.red{border-color:#fecaca;background:#fff7f7}
.nurse-warning-row.red i{background:#fee2e2;color:var(--red)}
.nurse-warning-row strong{display:block;color:var(--navy)}
.nurse-warning-row small{display:block;color:var(--muted)}
@media (max-width:1300px){.nurse-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.nurse-command-hero{align-items:flex-start;flex-direction:column;padding:22px}.nurse-command-hero h2{font-size:27px}.nurse-live-grid,.nurse-live-vitals{grid-template-columns:1fr}.nurse-live-head{grid-template-columns:40px minmax(0,1fr)}.nurse-live-head .status-pill{grid-column:2}.nurse-warning-row{grid-template-columns:1fr}}

/* GraphRAG CDSS */
.cdss-hero{background:linear-gradient(135deg,#0f3b57,#0f766e)}
.cdss-workbench{display:grid;grid-template-columns:minmax(320px,.7fr) minmax(0,1.3fr);gap:18px}
.cdss-query-panel{display:grid;align-content:start}
.cdss-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.cdss-actions .btn{border-radius:12px;font-weight:800;display:inline-flex;align-items:center;gap:8px}
.cdss-answer-panel{min-height:520px}
.cdss-notice{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:12px;padding:12px;font-weight:800;margin-bottom:14px}
.cdss-answer{white-space:pre-wrap;line-height:1.55;color:var(--navy);font-weight:650}
.cdss-evidence-list{display:grid;gap:12px}
.cdss-evidence-row{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:14px}
.cdss-evidence-row strong{display:block;color:var(--navy)}
.cdss-evidence-row small{display:block;color:var(--muted);margin-top:2px}
.cdss-evidence-row ul{margin:10px 0 0;padding-left:18px;color:#334155}
.cdss-evidence-row li{margin-bottom:6px;overflow-wrap:anywhere}
@media (max-width:900px){.cdss-workbench{grid-template-columns:1fr}.cdss-answer-panel{min-height:auto}}
