:root{
    --sidebar-width:268px;
    --sidebar-collapsed-width:76px;
    --topbar-height:56px;
    --blue:#0877f9;
    --blue-strong:#0875f5;
    --sidebar:#073d72;
    --sidebar-deep:#053767;
    --line:#dfe8f3;
    --page:#f5f8fc;
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body.app-shell-body{min-height:100vh;margin:0;background:var(--page);color:#0e2c4e;font-family:"Segoe UI",Arial,Helvetica,sans-serif;font-size:14px}
button,input{font:inherit}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid rgba(8,119,249,.32);outline-offset:2px}
.app-shell{min-height:100vh}
.app-shell-sidebar{position:fixed;z-index:1100;inset:0 auto 0 0;width:var(--sidebar-width);display:flex;flex-direction:column;color:#fff;background:linear-gradient(180deg,#073e73 0%,#073b6d 58%,#063765 100%);box-shadow:4px 0 14px rgba(0,35,70,.12);overflow:hidden;transition:width .2s ease}
.app-shell-sidebar-header{height:65px;padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08);flex:0 0 auto}
.app-shell-brand-icon{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;overflow:hidden;border-radius:10px}
.app-shell-brand-icon img{width:100%;height:100%;display:block;object-fit:contain}
.app-shell-brand-copy{min-width:0;flex:1;transition:opacity .15s}
.app-shell-brand-title{margin:0;color:#fff;font-size:17px;font-weight:800;line-height:1.1;white-space:nowrap}
.app-shell-brand-subtitle{margin:5px 0 0;color:#cfe1f1;font-size:8.6px;line-height:1.25;white-space:normal}
.app-shell-nav{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;padding:14px 9px 76px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.app-shell-nav::-webkit-scrollbar{width:5px}.app-shell-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:10px}
.dvt-sidebar-nav{display:flex;flex-direction:column;gap:4px}
.dvt-nav-main{width:100%;height:48px;padding:0 15px;display:flex;align-items:center;gap:12px;color:#f4f8fc;background:transparent;border:0;text-decoration:none;border-radius:8px;font-size:14px;font-weight:700;white-space:nowrap;text-align:left;cursor:pointer}
.dvt-nav-main:hover{background:rgba(255,255,255,.06)}
.dvt-nav-main.is-active{color:#fff;background:#1476ec;box-shadow:0 5px 12px rgba(0,45,105,.12)}
.dvt-nav-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}.dvt-nav-icon svg{width:20px;height:20px;stroke-width:1.7}
.dvt-nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dvt-module-list{display:flex;flex-direction:column;gap:4px;padding:0}
.dvt-module-list-flat{margin:0}
.dvt-module-item{width:100%;height:48px;padding:0 11px 0 15px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:12px;color:#dceaf7;background:transparent;border:0;border-radius:8px;text-align:left;font-size:14px;font-weight:600;cursor:pointer}
.dvt-module-item:hover:not(.is-disabled){color:#fff;background:rgba(255,255,255,.06)}
.dvt-module-item.is-active{color:#fff;background:#1476ec;font-weight:700;box-shadow:0 5px 12px rgba(0,45,105,.12)}
.dvt-module-item.is-disabled{cursor:default;color:#6f91b0}
.dvt-module-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}.dvt-module-icon svg{width:19px;height:19px;stroke-width:1.7}
.dvt-module-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dvt-status{flex:0 0 auto;padding:3px 7px;color:#8cabc7;border:1px solid rgba(139,176,208,.3);border-radius:12px;font-size:9px;font-weight:500;white-space:nowrap}
.sidebar-collapse-button{position:absolute;z-index:3;left:0;right:0;bottom:0;height:64px;padding:0 24px;display:flex;align-items:center;gap:12px;color:#d7e8f7;background:#073866;border:0;border-top:1px solid rgba(255,255,255,.14);font-size:12px;font-weight:700;cursor:pointer}
.sidebar-collapse-button:hover{background:#083f73}.sidebar-collapse-button svg{width:18px;height:18px;flex:0 0 18px;stroke-width:1.8}.sidebar-collapse-button span{white-space:nowrap}
.sidebar-hospital-art{display:none}
.app-shell-main{min-height:100vh;margin-left:var(--sidebar-width);display:flex;flex-direction:column;transition:margin-left .2s ease}
.app-shell-topbar{height:var(--topbar-height);padding:0 16px 0 10px;display:flex;align-items:center;justify-content:flex-start;gap:14px;background:#fff;border-bottom:1px solid #d9e4ef;position:sticky;top:0;z-index:900}
.app-shell-topbar-left{min-width:0;width:100%;display:flex;align-items:center;gap:10px}
.app-shell-icon-button{width:32px;height:32px;padding:0;display:grid;place-items:center;color:#3b6588;background:transparent;border:0;border-radius:5px;cursor:pointer}.app-shell-icon-button:hover{background:#f1f6fb}.app-shell-icon-button svg{width:18px;height:18px}
.global-search{width:min(520px,60vw);height:36px;padding:0 14px;display:flex;align-items:center;gap:8px;background:#fbfdff;border:1px solid #d8e3ef;border-radius:20px}.global-search svg{width:15px;height:15px;color:#6d89a5}.global-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#31506e;font-size:12px}.global-search input::placeholder{color:#9aaabd}
.app-shell-content{flex:1;padding:10px 16px 24px 14px}.app-shell-content-inner{width:100%;max-width:none;margin:0}.app-shell-breadcrumb{min-height:28px;margin:0 0 8px;display:flex;align-items:center;gap:6px;color:#73869a;font-size:11px;flex-wrap:wrap}.app-shell-breadcrumb-link{display:inline-flex;align-items:center;gap:4px;color:#73869a;text-decoration:none}.app-shell-breadcrumb-current{color:#173b5c;font-weight:700}.app-shell-breadcrumb-home-icon,.app-shell-breadcrumb-home-icon svg{width:12px;height:12px}.app-shell-breadcrumb-separator{color:#a8b7c4}
.app-shell-overlay{position:fixed;z-index:1050;inset:0;display:none;background:rgba(0,21,48,.48)}
body.sidebar-collapsed .app-shell-sidebar{width:var(--sidebar-collapsed-width)}
body.sidebar-collapsed .app-shell-main{margin-left:var(--sidebar-collapsed-width)}
body.sidebar-collapsed .app-shell-brand-copy,body.sidebar-collapsed .dvt-nav-label,body.sidebar-collapsed .dvt-module-name,body.sidebar-collapsed .dvt-status,body.sidebar-collapsed .sidebar-collapse-button span{display:none}
body.sidebar-collapsed .app-shell-sidebar-header{justify-content:center;padding-left:8px;padding-right:8px}
body.sidebar-collapsed .dvt-nav-main{justify-content:center;padding:0}
body.sidebar-collapsed .dvt-module-item{grid-template-columns:20px;justify-content:center;padding:0}
body.sidebar-collapsed .sidebar-collapse-button{justify-content:center;padding:0}body.sidebar-collapsed .sidebar-collapse-button svg{transform:rotate(180deg)}
@media(max-width:1024px){:root{--sidebar-width:245px}.app-shell-content{padding:8px 8px 14px}}
@media(max-width:760px){.app-shell-sidebar{transform:translateX(-100%);width:min(268px,86vw);transition:transform .2s ease}.app-shell-main,body.sidebar-collapsed .app-shell-main{margin-left:0}.app-shell-body.app-shell-mobile-open .app-shell-sidebar{transform:none}.app-shell-body.app-shell-mobile-open .app-shell-overlay{display:block}.global-search{width:calc(100vw - 64px)}body.sidebar-collapsed .app-shell-sidebar{width:min(268px,86vw)}body.sidebar-collapsed .app-shell-brand-copy,body.sidebar-collapsed .dvt-nav-label,body.sidebar-collapsed .dvt-module-name,body.sidebar-collapsed .dvt-status,body.sidebar-collapsed .sidebar-collapse-button span{display:initial}body.sidebar-collapsed .dvt-nav-main{justify-content:flex-start;padding:0 15px}body.sidebar-collapsed .dvt-module-item{grid-template-columns:20px minmax(0,1fr) auto;justify-content:initial;padding:0 11px 0 15px}}


/* Sidebar labels: allow long module names to show neatly */
.dvt-nav-main,.dvt-module-item{min-height:48px;height:auto;padding-top:12px;padding-bottom:12px;align-items:center}
.dvt-nav-label,.dvt-module-name{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.dvt-module-item{grid-template-columns:20px minmax(0,1fr) auto}
.dvt-module-icon svg,.dvt-nav-icon svg{stroke-linecap:round;stroke-linejoin:round}
@media (max-width:760px){.dvt-nav-main,.dvt-module-item{min-height:44px;padding-top:10px;padding-bottom:10px}}
