:root{--teal:#4e9a96;--teal-dark:#137f88;--pale:#dfeceb;--blue:#0e88b7;--navy:#102a43;--green:#19aa4b;--red:#e74535;--gold:#f2cd57;--ink:#4d5357;--line:#cad9d7;--paper:#f7faf9}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);background:#eef4f3;margin:0;font-family:Arial,Helvetica,sans-serif}button,select{font:inherit}.app-shell{border:5px solid var(--pale);background:#fff;width:min(1560px,100% - 30px);margin:16px auto;box-shadow:0 14px 40px #163c431f}.titlebar{border-bottom:6px solid var(--line);grid-template-columns:90px 1fr 190px;align-items:center;height:54px;padding:0 14px;display:grid}.titlebar h1{text-align:center;color:var(--blue);margin:0;font-size:25px;font-weight:700}.home{color:#080b0d;font-size:37px;line-height:1;text-decoration:none}.brand{justify-content:flex-end;display:flex}.brand img{object-fit:contain;width:150px;height:42px}.view-tabs{border-bottom:1px solid var(--line);background:#eff6f5;gap:6px;padding:7px 9px;display:flex}.view-tabs button{color:#536266;cursor:pointer;background:#fff;border:1px solid #c9d9d8;border-radius:3px;padding:8px 15px;font-size:12px}.view-tabs button i{margin-right:7px;font-style:normal}.view-tabs button.active{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff}.view-tabs .export{color:#fff;background:#31a94d;border-color:#31a94d;margin-left:auto}.filter-row{border-bottom:6px solid var(--line);background:#f8fbfa;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:7px;display:grid}.filter-row label{background:#fff;border:1px solid #d8e2e1;padding:8px 10px;display:block}.filter-row span{color:#5b6266;white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:11px;display:block;overflow:hidden}.filter-row select{color:#6e7477;background:#fff;border:1px solid #d8dfde;width:100%;height:29px;padding:0 8px;font-size:11px}.content{background:#f8fbfa;padding:0}.panel,.kpi{border:3px solid var(--line);background:#fff;position:relative;overflow:hidden}.panel h3,.kpi>span{letter-spacing:.02em;color:#5d6669;margin:0;padding:5px 7px;font-size:12px;font-weight:400;display:block}.patient-grid{grid-template-rows:290px 290px;grid-template-columns:1.05fr 1.7fr 1.7fr 1.7fr 1.7fr;display:grid}.kpi-stack{grid-row:1/span 2;grid-template-rows:repeat(5,1fr);gap:0;display:grid}.kpi{border-width:3px 3px 0}.kpi:last-child{border-bottom-width:3px}.kpi strong{text-align:center;margin:14px 0 6px;font-size:42px;font-weight:500;line-height:1;display:block}.kpi strong i{vertical-align:top;margin-left:3px;font-size:17px;font-style:normal}.kpi strong.green{color:var(--green)}.kpi strong.red{color:var(--red)}.kpi strong.blue{color:var(--blue)}.kpi small{text-align:center;color:#999;font-size:11px;display:block}.kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.kpi-row .kpi{border-bottom-width:3px;min-height:118px}.kpi-row .kpi strong{font-size:28px}.kpi-row .kpi small{padding:0 6px}.gender{border-bottom:1px solid #aaa;justify-content:space-evenly;align-items:end;height:244px;margin:4px 18px 12px;display:flex}.gender>div{text-align:center;position:relative}.gender b{font-size:125px;line-height:.8;display:block}.gender>div:first-child b{color:#df781e}.gender>div:last-child b{color:#2d75a2}.gender strong{font-size:15px;position:absolute;top:-45px;left:50%;transform:translate(-50%)}.gender span{color:#777;margin:20px 0 7px;display:block}.vbars{border-bottom:1px solid #ddd;align-items:flex-end;gap:16px;height:240px;padding:20px 40px 25px;display:flex}.vbars>div{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.vbars>div>span{justify-content:center;align-items:flex-end;height:190px;display:flex;position:relative}.vbars i{background:#ae917a;width:70%;display:block}.vbars i.blue{background:#2e78a6}.vbars b{bottom:calc(var(--h,100%) + 4px);font-size:11px;font-weight:400;position:absolute}.vbars small{white-space:nowrap;margin-top:14px;font-size:10px;transform:rotate(-30deg)}.hbars{gap:9px;padding:15px 12px;display:grid}.hbars>div{grid-template-columns:92px 1fr 50px;align-items:center;gap:7px;font-size:11px;display:grid}.hbars>div>span{text-align:right;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hbars>div>i{background:#f0f3f2;height:24px}.hbars em{background:var(--teal);height:100%;display:block}.hbars em.gray{background:#879394}.hbars em.gold{background:var(--gold)}.hbars em.coral{background:#d9776d}.hbars em.blue{background:#2e78a6}.hbars b{font-weight:400}.donut-layout{justify-content:center;align-items:center;gap:16px;height:240px;display:flex}.donut{border-radius:50%;place-items:center;width:150px;height:150px;display:grid;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;width:70px;height:70px;position:absolute}.donut span{z-index:1;text-align:center;font-size:11px;position:relative}.donut-legend p{grid-template-columns:9px 90px 35px;gap:6px;margin:8px 0;font-size:10px;display:grid}.donut-legend i{border-radius:50%;width:8px;height:8px}.donut-legend b{text-align:right}.lollipops{padding:25px 18px}.lollipops p{grid-template-columns:100px 1fr 35px;align-items:center;gap:7px;margin:24px 0;font-size:10px;display:grid}.lollipops p>span{text-align:right}.lollipops p>i{background:#cdd8d7;height:2px;position:relative}.lollipops em{background:#4da248;height:3px;display:block}.lollipops i b{color:#4da248;font-size:32px;position:absolute;top:-18px;transform:translate(-7px)}.lollipops strong{font-size:11px}.city-map{background:linear-gradient(25deg,#e2e6d8 10%,#0000 10% 20%,#d8d4e4 20% 25%,#0000 25% 44%,#e2e6d8 44% 52%,#0000 52%),#f3f1eb;height:250px;margin:3px 8px 10px;position:relative;overflow:hidden}.city-map:before,.city-map:after{content:"";border:4px solid #b98ad0;border-radius:45%;position:absolute;inset:18% -10%;transform:rotate(-20deg)}.city-map:after{border-color:#a8c6db;inset:50% -5% 5%;transform:rotate(12deg)}.city-map i{z-index:2;border:1px solid #222;border-radius:50%;width:10px;height:10px;position:absolute}.city-map .city{color:#888;z-index:1;font-size:17px;position:absolute}.city-map .c1{bottom:17%;right:7%}.city-map .c2{top:7%;left:10%}.city-map .c3{bottom:3%;left:38%}.hr-grid,.finance-grid{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.span-2{grid-column:span 2}.trend{width:100%;height:250px;display:block}.trend .gridline{stroke:#e0e8e7}.trend text{fill:#758084;font-size:9px}.trend polyline{fill:none;stroke-width:3px}.trend .budget-line{stroke:#48a342;stroke-dasharray:6 4}.trend .actual-line{stroke:#167c9b}.trend .dot{fill:#fff;stroke:#167c9b;stroke-width:2px}.vacancy-list{padding:14px}.vacancy-list p{border-bottom:1px solid #e5eceb;grid-template-columns:1fr 65px 65px;margin:0;padding:10px 4px;font-size:11px;display:grid}.vacancy-list b{color:var(--red)}.vacancy-list em{text-align:right;font-style:normal}.coverage{padding:12px}.coverage-head,.coverage>div{grid-template-columns:130px repeat(7,1fr);gap:3px;display:grid}.coverage b,.coverage span,.coverage em{text-align:center;padding:8px 5px;font-size:10px;font-style:normal}.coverage b:first-child,.coverage span{text-align:left}.coverage em.high{background:#cce9c1}.coverage em.mid{background:#f5e6a6}.coverage em.low{background:#f5c3b4}.aging{padding:18px}.aging p{grid-template-columns:85px 1fr 55px;align-items:center;gap:8px;font-size:11px;display:grid}.aging i{background:#edf1f1;height:18px}.aging em{background:#4e9a96;height:100%;display:block}.bridge{align-items:flex-end;gap:8px;height:240px;padding:25px 12px;display:flex}.bridge>div{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.bridge b,.bridge span{font-size:9px}.bridge i{background:var(--navy);margin:5px 0;display:block}.bridge i.up{background:var(--green)}.bridge i.down{background:var(--red)}.margin-chart{width:100%;height:240px;display:block}.margin-chart .gridline{stroke:#e1e9e8;stroke-width:1px}.margin-chart .margin-area{fill:url(#marginArea)}.margin-chart .margin-line{fill:none;stroke:#137f88;stroke-width:3px}.margin-chart .target-line{fill:none;stroke:#d79a31;stroke-width:2px;stroke-dasharray:6 5}.margin-chart .margin-dot{fill:#fff;stroke:#137f88;stroke-width:2px}.margin-chart .legend{font-size:10px;font-weight:600}.margin-chart .actual-legend{fill:#137f88}.margin-chart .target-legend{fill:#b47b1d}.margin-chart .margin-value{fill:#19aa4b;font-size:12px;font-weight:700}.margin-chart .axis-label,.margin-chart .month-label{fill:#758084;font-size:8px}.records{border-top-width:6px}.records h3{color:var(--teal-dark);font-size:14px;font-weight:600}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:980px}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid #e2e9e8;padding:9px 10px;font-size:10px}th{color:#5f6b6e;background:#edf5f4;font-weight:600}th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}.status{color:#32803b;background:#e7f4e8;border-radius:20px;padding:4px 7px}.status.icu{color:#c13d33;background:#fde5e3}.status.inpatient{color:#29779c;background:#e3f0f6}.status.observation{color:#9b7324;background:#fff1cf}.meter{background:#e7edec;width:72px;height:7px;display:inline-block}.meter i{background:#4ea24a;height:100%;display:block}.positive{color:var(--green)}.negative{color:var(--red)}footer{color:#697779;background:#e5efee;justify-content:space-between;padding:10px 14px;font-size:10px;display:flex}@media (width<=1100px){.app-shell{border-width:2px;width:100%;margin:0}.filter-row{grid-template-columns:repeat(3,1fr)}.patient-grid{grid-template-rows:auto;grid-template-columns:1fr 1fr 1fr}.kpi-stack{grid-area:auto/span 3;grid-template-rows:auto;grid-template-columns:repeat(5,1fr)}.hr-grid,.finance-grid{grid-template-columns:1fr 1fr}.kpi-row{grid-template-columns:repeat(3,1fr)}}@media (width<=700px){.titlebar{grid-template-columns:48px 1fr 90px}.titlebar h1{font-size:18px}.brand img{width:85px}.view-tabs{overflow:auto}.view-tabs button{white-space:nowrap}.view-tabs .export{margin-left:0}.filter-row{grid-template-columns:1fr 1fr}.patient-grid,.hr-grid,.finance-grid{grid-template-columns:1fr}.kpi-stack{grid-column:auto;grid-template-columns:1fr 1fr}.span-2{grid-column:auto}.kpi-row{grid-template-columns:1fr 1fr}.gender,.vbars,.trend,.margin-chart,.donut-layout{height:220px}footer{display:block}footer b{margin-top:5px;display:block}}
