/* Hospital Management System — shared responsive design system */
:root{color-scheme:light;--navy:#142b4a;--navy-2:#1d3e66;--blue:#2868d7;--teal:#13a89e;--ink:#1d2939;--muted:#667085;--line:#e4eaf2;--canvas:#f4f7fb;--surface:#fff;--danger:#d92d20;--success:#16865c;--radius:16px;--shadow:0 8px 28px rgba(18,43,74,.07);--shadow-hover:0 13px 32px rgba(18,43,74,.13);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none;transition:color .18s ease}a:hover{color:var(--navy)}.site-header,.navbar.sticky-top{background:linear-gradient(115deg,var(--navy),var(--navy-2))!important;min-height:66px;border-bottom:1px solid rgba(255,255,255,.12);z-index:1030}.navbar-brand{font-weight:750;letter-spacing:-.025em}.navbar-brand i{color:#67e8db}.container-fluid>.row{min-height:calc(100vh - 66px);display:flex;align-items:stretch}.container-fluid>.row>main{flex:1;min-width:0}
.sidebar{background:#fff!important;border-right:1px solid var(--line);box-shadow:8px 0 28px rgba(18,43,74,.025);padding:20px 14px!important;width:250px;min-height:calc(100vh - 66px)!important;flex:0 0 250px}.sidebar .nav{gap:5px}.sidebar .nav-link{display:flex;align-items:center;gap:9px;border-radius:11px;padding:11px 13px;margin:0;color:#475467!important;font-weight:600;transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.sidebar .nav-link i{width:21px;text-align:center;margin:0!important;color:#7c8ca3;transition:color .2s ease,transform .2s ease}.sidebar .nav-link:hover{background:#f0f5ff;color:var(--blue)!important;transform:translateX(2px)}.sidebar .nav-link:hover i{color:var(--blue);transform:scale(1.08)}.sidebar .nav-link.active{background:linear-gradient(100deg,#eaf1ff,#f2f7ff);color:#245ac1!important;box-shadow:inset 3px 0 0 var(--blue)}.sidebar .nav-link.active i{color:var(--blue)}
main{padding-top:24px!important;padding-bottom:32px;min-width:0}.container,.container-fluid{max-width:100%}h1,h2,h3,h4,h5{color:var(--navy);font-weight:750;letter-spacing:-.025em}h1.h2{font-size:clamp(1.35rem,2vw,1.85rem)}.border-bottom{border-color:var(--line)!important}.card,.panel{border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important;overflow:hidden;transition:box-shadow .22s ease,transform .22s ease}.card:hover{box-shadow:var(--shadow-hover)!important}.card-header{background:#fff;border-bottom:1px solid var(--line);font-weight:700;padding:1rem 1.2rem}.card-body{padding:clamp(1rem,2vw,1.5rem)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:10px;font-weight:650;letter-spacing:.005em;padding:.62rem 1rem;min-height:40px;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease;box-shadow:0 1px 2px rgba(16,24,40,.06)}.btn:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(25,69,130,.16)}.btn:active{transform:translateY(0) scale(.98)}.btn:focus-visible,.form-control:focus-visible,.form-select:focus-visible,.nav-link:focus-visible{outline:3px solid rgba(40,104,215,.28);outline-offset:2px}.btn-primary,.btn-dark{background:linear-gradient(115deg,#245bc7,#347fe5);border-color:transparent;color:#fff}.btn-primary:hover,.btn-dark:hover{background:linear-gradient(115deg,#1d4eae,#2868d7);color:#fff}.btn-success{background:linear-gradient(115deg,#087f5b,#16a085);border-color:transparent}.btn-danger{background:linear-gradient(115deg,#c62828,#e34d59);border-color:transparent}.btn-outline-primary,.btn-outline-light{transition:all .2s ease}.btn-sm{min-height:34px;padding:.42rem .72rem;border-radius:9px}.form-control,.form-select{min-height:44px;border:1px solid #d0d9e5;border-radius:10px;padding:.65rem .85rem;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease}textarea.form-control{min-height:100px}label,.form-label{color:#344054;font-weight:650;margin-bottom:.4rem}.form-control:focus,.form-select:focus{border-color:#7ba6f5;box-shadow:0 0 0 .22rem rgba(40,104,215,.12)}.table-responsive{border-radius:12px;max-width:100%}table.table{margin-bottom:0;vertical-align:middle}table.table thead th{background:#f4f7fb;color:#475467;font-size:.78rem;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap;border-bottom:1px solid var(--line);padding:.85rem .8rem}table.table tbody td{padding:.8rem;border-color:#edf0f5}table.table tbody tr{transition:background .15s ease}table.table tbody tr:hover{background:#f8fbff}.badge{font-weight:650;letter-spacing:.01em;padding:.42em .65em;border-radius:7px}.alert{border:0;border-radius:12px}.text-muted,.muted{color:var(--muted)!important}footer{color:var(--muted);border-color:var(--line)!important}hr{border-color:var(--line);opacity:1}
/* Compact screen behavior */
@media(max-width:767.98px){body{font-size:14px}.container-fluid>.row{display:block}.sidebar.collapse:not(.show){display:none!important}.sidebar.collapse.show{display:block!important}.navbar.sticky-top{padding:.55rem .75rem}.navbar-brand{font-size:.92rem!important;max-width:58%;white-space:normal;line-height:1.2}.navbar .nav-item{padding:0 .35rem!important}.navbar .nav-item .small{display:none}.navbar .btn{min-height:34px;padding:.35rem .55rem}.container-fluid>.row{display:block}.sidebar{width:100%;min-height:0!important;flex:auto;padding:10px!important;border-right:0;border-bottom:1px solid var(--line);position:relative!important}.sidebar .nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sidebar .nav-link{font-size:.82rem;padding:10px 9px;min-height:42px}.sidebar .nav-link:hover{transform:none}.sidebar hr{grid-column:1/-1;margin:.45rem 0!important}main{padding:18px 12px 28px!important}.row.g-4{--bs-gutter-x:.75rem;--bs-gutter-y:.75rem}.card-body{padding:1rem}.d-flex.justify-content-between.align-items-center,.d-flex.justify-content-between.flex-wrap{gap:12px;align-items:flex-start!important;flex-wrap:wrap}.d-flex.justify-content-between h1{width:100%}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive table{min-width:620px}.btn{max-width:100%}.auth-panel{margin:1rem auto}.container{padding-inline:.75rem}}
@media(max-width:420px){.sidebar .nav{grid-template-columns:1fr 1fr}.navbar-brand{font-size:.82rem!important}.btn{font-size:.84rem}.sidebar .nav-link{font-size:.77rem}.card-body{padding:.85rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* v1.3 dashboard components */
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:var(--teal);margin-bottom:.4rem}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dashboard-grid-finance{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{position:relative;display:block;padding:20px;border-radius:18px;color:#fff;overflow:hidden;min-height:175px;box-shadow:var(--shadow);transition:transform .22s ease,box-shadow .22s ease}.stat-card:hover{color:#fff;transform:translateY(-4px);box-shadow:var(--shadow-hover)}.stat-card:after{content:"";position:absolute;width:145px;height:145px;border-radius:50%;right:-38px;top:-52px;background:rgba(255,255,255,.12)}.stat-blue{background:linear-gradient(135deg,#245bc7,#4389f4)}.stat-teal{background:linear-gradient(135deg,#078477,#18b8a5)}.stat-violet{background:linear-gradient(135deg,#5846bd,#8a72ed)}.stat-amber{background:linear-gradient(135deg,#b66a08,#efa72f);color:#fff}.stat-icon{font-size:1.25rem;margin-bottom:13px;opacity:.95}.stat-label{font-weight:650;font-size:.9rem;opacity:.9}.stat-value{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15;font-weight:800;letter-spacing:-.04em;margin:.25rem 0 .65rem}.stat-foot{font-size:.8rem;opacity:.92;display:flex;align-items:center;justify-content:space-between;gap:8px}.metric-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;box-shadow:var(--shadow);min-width:0}.metric-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:.87rem;font-weight:650}.metric-top i{color:var(--blue);font-size:1.15rem}.metric-value{font-size:clamp(1.3rem,2.2vw,1.85rem);font-weight:800;letter-spacing:-.035em;color:var(--navy);margin:.55rem 0}.alert-metric{display:block;color:inherit;transition:transform .2s ease,box-shadow .2s ease}.alert-metric:hover{color:inherit;transform:translateY(-2px);box-shadow:var(--shadow-hover)}
@media(max-width:991.98px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.dashboard-grid,.dashboard-grid-finance,.dashboard-grid-alerts{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;min-height:150px;border-radius:14px}.stat-value{font-size:1.8rem}.stat-label{font-size:.82rem}.stat-foot{font-size:.72rem}.metric-card{padding:14px}.metric-top{font-size:.78rem;align-items:flex-start}.metric-value{font-size:1.2rem;overflow-wrap:anywhere}.page-heading h1{font-size:1.4rem}}
@media(max-width:360px){.dashboard-grid,.dashboard-grid-finance,.dashboard-grid-alerts{grid-template-columns:1fr}.stat-card{min-height:130px}}


/* v1.3.1 hotfix: reinforce dashboard and inventory components; cache-busted from shared header */
.dashboard-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;width:100%}
.dashboard-grid.dashboard-grid-finance,.dashboard-grid.dashboard-grid-alerts{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.stat-card{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;text-decoration:none!important;padding:20px!important;border-radius:18px!important;color:#fff!important;overflow:hidden;min-height:175px;background-color:#2868d7;box-shadow:0 8px 28px rgba(18,43,74,.10);}
.stat-card .stat-icon{display:block;font-size:1.25rem;margin-bottom:12px;color:#fff!important}
.stat-card .stat-label,.stat-card .stat-value,.stat-card .stat-foot{display:block;color:#fff!important}
.stat-card .stat-label{font-weight:650;font-size:.9rem}
.stat-card .stat-value{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15;font-weight:800;margin:.25rem 0 .65rem}
.stat-card .stat-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;font-size:.8rem}
.stat-card.stat-blue{background:linear-gradient(135deg,#245bc7,#4389f4)!important}.stat-card.stat-teal{background:linear-gradient(135deg,#078477,#18b8a5)!important}.stat-card.stat-violet{background:linear-gradient(135deg,#5846bd,#8a72ed)!important}.stat-card.stat-amber{background:linear-gradient(135deg,#b66a08,#efa72f)!important}
.metric-card{display:block!important;position:relative;background:#fff!important;border:1px solid #e4eaf2!important;border-radius:16px!important;padding:19px!important;box-shadow:0 8px 28px rgba(18,43,74,.07)!important;min-width:0;color:#1d2939}
.metric-top{display:flex!important;justify-content:space-between;align-items:center;gap:12px;color:#667085;font-size:.87rem;font-weight:650}
.metric-value{display:block;font-size:clamp(1.3rem,2.2vw,1.85rem);font-weight:800;color:#142b4a;margin:.55rem 0}
.alert-metric{color:inherit!important;text-decoration:none!important}.alert-metric:hover{transform:translateY(-2px);box-shadow:0 13px 32px rgba(18,43,74,.13)!important}
.page-heading{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e4eaf2}.page-heading h1{font-size:clamp(1.4rem,2vw,1.9rem);font-weight:750;color:#142b4a}
.inventory-stats,.inventory-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:1rem 0 1.25rem}
.inventory-stats>*,.inventory-summary>*{min-width:0}
@media(max-width:991.98px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:767.98px){.dashboard-grid,.dashboard-grid.dashboard-grid-finance,.dashboard-grid.dashboard-grid-alerts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.stat-card{padding:14px!important;min-height:145px}.metric-card{padding:14px!important}.inventory-stats,.inventory-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.row.g-4>[class*="col-"]{margin-bottom:.25rem}}
@media(max-width:420px){.dashboard-grid,.dashboard-grid.dashboard-grid-finance,.dashboard-grid.dashboard-grid-alerts,.inventory-stats,.inventory-summary{grid-template-columns:1fr!important}.stat-card{min-height:125px}.stat-card .stat-value{font-size:1.7rem}}

/* v1.4.2 patient pharmacy billing and sidebar shortcuts */
.bill-patient-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:767.98px){.bill-patient-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{header,.sidebar,footer,.btn,form{display:none!important}main{padding:0!important}.card{box-shadow:none!important;border:1px solid #ddd!important}.container-fluid{width:100%!important}}

/* Lightweight SPA navigation: subtle progress and content transition. */
#hmsSpaProgress{position:fixed;z-index:3000;top:0;left:0;width:0;height:3px;opacity:0;background:linear-gradient(90deg,#2563eb,#06b6d4,#38bdf8);box-shadow:0 0 10px rgba(37,99,235,.35);transition:width .22s ease,opacity .2s ease;pointer-events:none}
#hmsSpaProgress.is-active{width:82%;opacity:1;animation:hmsSpaProgressPulse 1.1s ease-in-out infinite alternate}
@keyframes hmsSpaProgressPulse{from{filter:brightness(.95)}to{filter:brightness(1.25)}}
main{transition:opacity .14s ease,transform .14s ease}
main.hms-spa-content-loading{opacity:.62;transform:translateY(2px);pointer-events:none}
.hms-spa-error{border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.08)}
@media(prefers-reduced-motion:reduce){#hmsSpaProgress,main{transition:none}#hmsSpaProgress.is-active{animation:none}}

/* v1.4.8: reference-inspired layout structure while preserving the existing HMS visual theme */
.dashboard-action-grid{align-items:stretch}
.dashboard-action-grid .stat-card{min-height:172px}
.inventory-tabs{gap:.35rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.inventory-tabs .nav-link{border:1px solid transparent;border-radius:10px 10px 0 0;color:var(--muted);font-weight:650;padding:.7rem 1rem;background:transparent}
.inventory-tabs .nav-link:hover{color:var(--blue);background:rgba(37,99,235,.06)}
.inventory-tabs .nav-link.active{color:var(--blue);background:#fff;border-color:var(--line) var(--line) #fff;box-shadow:0 -2px 0 var(--blue) inset}
.inventory-pane[hidden]{display:none!important}
@media(max-width:575.98px){.dashboard-action-grid .stat-card{min-height:140px}.inventory-tabs .nav-link{flex:1 1 auto;padding:.6rem .65rem;font-size:.84rem}}
