:root{font-family:Inter,system-ui,Arial,sans-serif;color:#183047;background:#f4f7fa}*{box-sizing:border-box}body{margin:0}h1{font-size:clamp(1.7rem,3vw,2.5rem);letter-spacing:-.04em;margin:.3rem 0}h2{margin-top:0}p{color:#627589;line-height:1.55}a{color:inherit;text-decoration:none}.card{background:white;padding:1.8rem;border-radius:18px;box-shadow:0 9px 32px #1830470a;border:1px solid #e7edf2}.narrow{max-width:460px;margin:7vh auto;padding:2.5rem}label{display:block;font-weight:600;margin:1rem 0;color:#334b60}input,select{display:block;width:100%;margin-top:.45rem;padding:.8rem;border:1px solid #ccd8e2;border-radius:9px;font:inherit;background:white}button,.button{border:0;border-radius:9px;background:#0b7779;color:white;padding:.8rem 1.25rem;font:inherit;font-weight:700;cursor:pointer;display:inline-block}.secondary{background:#e8f4f2;color:#126266}.outline{background:white;color:#215667;border:1px solid #cddde2}.error,.success{padding:.8rem;border-radius:9px}.error{background:#fff0f0;color:#ad3030}.success{background:#e9f8ef;color:#246c43}.layout{display:flex;min-height:100vh}aside{width:250px;background:#143c50;color:#d2e5e9;padding:2rem 1.2rem;display:flex;flex-direction:column;gap:2rem}.brand{font-size:1.25rem;font-weight:800;color:white}nav a{display:block;padding:.85rem 1rem;border-radius:10px;margin-bottom:.25rem}nav a:hover,nav .active{background:#27576a;color:white}aside small{line-height:1.7;margin-top:auto;color:#a8c7d0}main{flex:1;padding:3rem;max-width:1200px;margin:auto;width:100%}.top{display:flex;justify-content:space-between;align-items:start;gap:1rem}.eyebrow{text-transform:uppercase;color:#0b7779;font-weight:800;letter-spacing:.1em;font-size:.72rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}.stats span{display:block;color:#657c8c}.stats strong{display:block;font-size:2rem;margin:.55rem 0}.actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.5rem}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.8rem;border-bottom:1px solid #e8edf2}th{color:#657c8c}.section{margin-top:1.4rem}@media(max-width:720px){.layout{display:block}aside{width:100%;padding:1rem;gap:.5rem}nav{display:flex;overflow-x:auto;gap:.25rem}nav a{white-space:nowrap}aside small{display:none}main{padding:1.2rem}.stats{grid-template-columns:1fr}.top{align-items:center}.narrow{margin:1rem;padding:1.5rem}}
textarea{display:block;width:100%;margin-top:.45rem;min-height:85px;padding:.8rem;border:1px solid #ccd8e2;border-radius:9px;font:inherit;resize:vertical}form.inline{display:inline-block}.muted{color:#687e8c}
@media print{aside,.no-print,.top .button{display:none!important}body{background:white}.layout{display:block}main{padding:0;max-width:none}.card{border:0;box-shadow:none;padding:0}table{font-size:12px}}
/* Tenant themes and workspace layout */
body.theme-clinic{--brand:#0e827b;--brand-dark:#0d635e;--brand-soft:#e6f7f3;--side:#123b49;--side-active:#245d69;--canvas:#f5faf9}
body.theme-hospital{--brand:#4758b8;--brand-dark:#34459f;--brand-soft:#eef0ff;--side:#1d2d61;--side-active:#374a88;--canvas:#f6f7fd}
body{background:var(--canvas,#f5f8fb);overflow-x:hidden;color:#1b3044}
.layout{display:flex;align-items:stretch;min-height:100vh;overflow-x:hidden}
.app-sidebar{position:sticky;top:0;height:100vh;width:260px;min-width:260px;background:var(--side,#193a51);padding:1.25rem .9rem .9rem;gap:0;overflow:hidden;z-index:4}
.app-sidebar .brand{display:flex;align-items:center;gap:.7rem;padding:.4rem .65rem .9rem;font-size:1.05rem;line-height:1.1}
.brand-mark{display:grid;place-items:center;background:#ffffff26;color:#fff;width:36px;height:36px;border-radius:11px;font-size:1.2rem;flex:none}
.app-sidebar .brand small{display:block;color:#a9cdd4;font-size:.7rem;font-weight:500;letter-spacing:.04em;margin-top:.3rem}
.side-facility{color:#d7eaed;font-size:.78rem;background:#ffffff13;margin:.15rem .55rem 1rem;padding:.6rem .72rem;border-radius:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-nav{display:block;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;padding-right:.15rem}
.side-nav a{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-radius:10px;margin:.14rem .2rem;padding:.67rem .75rem;font-size:.91rem;color:#d5e6ea;white-space:nowrap;transition:background .15s}
.side-nav a:hover,.side-nav a.active{background:var(--side-active,#27576a);color:#fff}
.side-nav a.active{font-weight:700;box-shadow:inset 3px 0 0 #73ddd1}
.side-nav a>span:first-child{overflow:hidden;text-overflow:ellipsis;min-width:0}
.bell-icon{font-size:.78rem;margin-right:.55rem;filter:grayscale(1) brightness(2)}
.notification-badge{display:grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .32rem;border-radius:999px;background:#ffcf7e;color:#473516;font-size:.7rem;font-weight:800;flex:none}
.notification-badge[hidden]{display:none}
.side-user{display:flex;align-items:center;gap:.65rem;padding:.8rem .65rem .45rem;border-top:1px solid #ffffff2e;margin-top:.6rem;color:white;min-width:0}
.user-avatar{display:grid;place-items:center;background:#ffffff31;width:35px;height:35px;flex:none;border-radius:11px;font-weight:800}
.user-details{min-width:0}.user-details strong,.user-details small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-details strong{font-size:.86rem}.user-details small{font-size:.72rem;color:#a9cdd4;margin-top:.15rem}
.side-logout{padding:0 .55rem}.side-logout button{width:100%;background:#ffffff16;color:#e8f4f4;padding:.55rem;font-size:.78rem;text-align:left}.side-logout button:hover{background:#ffffff29}
.layout main{min-width:0;width:auto;max-width:1460px;margin:0 auto;flex:1;padding:clamp(1.1rem,3vw,2.7rem);align-self:stretch}
.card{border:1px solid #dce9eb;box-shadow:0 10px 28px #25394d0a}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:1.2rem 0}
.stats .card{padding:1.25rem 1.35rem}.stats strong{font-size:1.85rem}
button,.button{background:var(--brand,#0b7779)}button:hover,.button:hover{background:var(--brand-dark,#095d60)}.secondary{background:var(--brand-soft,#e8f4f2);color:var(--brand-dark,#126266)}.secondary:hover{background:var(--brand-soft,#e8f4f2);color:var(--brand-dark,#126266)}.eyebrow{color:var(--brand,#0b7779)}
.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:1.4rem;background:linear-gradient(115deg,var(--side,#153b4c),var(--brand,#0b7779));border-radius:20px;padding:2rem 2.2rem;color:white;box-shadow:0 16px 32px #133c5b23}
.dashboard-hero h1{color:white}.dashboard-hero p,.dashboard-hero .eyebrow{color:#dceff0}.dashboard-hero .eyebrow{letter-spacing:.13em}.hero-action{display:inline-flex;background:#fff;color:var(--brand-dark,#0b7779);border-radius:10px;padding:.78rem 1rem;font-weight:700;white-space:nowrap}
.task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:1rem 0}.task-card{display:flex;flex-direction:column;gap:.5rem;min-height:142px}.task-card .task-count{font-size:2rem;font-weight:800;color:var(--brand,#0b7779)}.task-card a{margin-top:auto;font-weight:700;color:var(--brand-dark,#0b7779)}
.status-pill{display:inline-flex;padding:.24rem .62rem;border-radius:999px;background:#edf2f5;color:#52677a;font-size:.75rem;font-weight:700;text-transform:capitalize}.status-requested{background:#fff2da;color:#8c5a11}.status-collected,.status-preparing{background:#e9f0ff;color:#3454a0}.status-resulted,.status-ready{background:#e8f7f0;color:#176345}
.work-table td,.work-table th{vertical-align:middle}.work-table tbody tr:hover{background:#f8fbfb}.work-table a{color:var(--brand-dark,#0b7779);font-weight:700}
@media(max-width:900px){.app-sidebar{width:220px;min-width:220px}.layout main{padding:1.3rem}}
@media(max-width:720px){.layout{display:block;overflow:visible}.app-sidebar{position:relative;width:100%;min-width:0;height:auto;padding:.75rem}.app-sidebar .brand{padding:.25rem .6rem}.side-facility{display:none}.side-nav{display:flex;overflow-x:auto;overflow-y:hidden;flex:none;padding:.2rem 0}.side-nav a{min-width:max-content;margin:.1rem;padding:.55rem .75rem}.side-user{border:0;margin:0;padding:.4rem .65rem;display:inline-flex}.side-logout{display:inline-flex;vertical-align:middle}.side-logout button{width:auto}.layout main{padding:1.05rem}.dashboard-hero{padding:1.35rem;align-items:flex-start;flex-wrap:wrap}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats strong{font-size:1.45rem}}
@media(max-width:460px){.stats{grid-template-columns:1fr}.top{flex-wrap:wrap}}
@media print{.app-sidebar,.no-print{display:none!important}.layout main{max-width:none;padding:0}.card{box-shadow:none;border:0}}
body.theme-platform{--brand:#4f5fc4;--brand-dark:#33449c;--brand-soft:#eef0ff;--side:#202b55;--side-active:#394984;--canvas:#f6f7fc}

/* Reports dashboard: compact, readable cards without changing other workspaces. */
.report-page .report-filter{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.1rem 1.35rem}
.report-page .report-filter h2{font-size:1.05rem;margin:0}
.report-page .report-filter p{font-size:.84rem;margin:.3rem 0 0}
.report-page .report-filter form{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}
.report-page .report-filter label{font-size:.77rem;margin:0;font-weight:600}
.report-page .report-filter input{min-width:145px;padding:.57rem .7rem;font-size:.87rem;margin-top:.25rem}
.report-page .report-filter button,.report-page .report-filter .button{padding:.64rem .85rem;font-size:.82rem;white-space:nowrap}
.report-page .report-group{margin-top:1.65rem}
.report-page .report-group-heading{margin-bottom:.8rem}
.report-page .report-group-heading h2{font-size:1.14rem;letter-spacing:-.02em;margin:.2rem 0 0}
.report-page .report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}
.report-page .report-kpi{min-width:0;min-height:104px;display:flex;flex-direction:column;justify-content:space-between;gap:.65rem;background:#fff;border:1px solid #dce9eb;border-radius:14px;padding:1rem 1.1rem;box-shadow:0 5px 18px #25394d08}
.report-page .report-kpi-label{display:block;color:#607585;font-size:.79rem;line-height:1.35;font-weight:600;overflow-wrap:anywhere}
.report-page .report-kpi strong{display:block;color:#1b3044;font-size:clamp(1.22rem,1.7vw,1.55rem);line-height:1.12;font-weight:750;letter-spacing:-.03em;overflow-wrap:anywhere}
.report-page .report-kpi-featured{background:var(--brand-soft,#e6f7f3);border-color:var(--brand,#0e827b)}
.report-page .report-kpi-featured strong{color:var(--brand-dark,#0d635e)}
.report-page .report-balances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.report-page .report-balances .report-kpi{min-height:95px}
.report-page .report-balances small{color:#708392;font-size:.75rem}
@media(max-width:1100px){.report-page .report-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.report-page .report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.report-page .report-kpis,.report-page .report-balances{grid-template-columns:1fr}.report-page .report-kpi{min-height:88px}.report-page .report-filter form{width:100%}.report-page .report-filter label{flex:1;min-width:130px}}

/* Facility forms: measured widths, clear focus and predictable grouping. */
.layout main .card{padding:clamp(1.15rem,2vw,1.65rem)}
.layout main .card > h2{font-size:clamp(1.08rem,1.5vw,1.3rem);letter-spacing:-.02em;margin-bottom:.8rem}
.layout main .card .form-intro{font-size:.87rem;margin:-.2rem 0 1.3rem;color:#677b8b}
.layout main .card:not(.report-filter) > form:not(.inline){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.05rem;row-gap:1.05rem;align-items:end;margin:1rem 0 1.3rem}
.layout main .card:not(.report-filter) > form:not(.inline) > :not(label):not(button):not(input[type="hidden"]):not(.button){grid-column:1/-1}
.layout main .card:not(.report-filter) > form:not(.inline) > label{min-width:0;margin:0;color:#3c5366;font-size:.82rem;font-weight:650;line-height:1.35}
.layout main .card:not(.report-filter) > form:not(.inline) > label:has(textarea),
.layout main .card:not(.report-filter) > form:not(.inline) > label:has(input[type="checkbox"]){grid-column:1/-1}
.layout main .card form:not(.inline) :is(input:not([type="hidden"]),select,textarea){border:1px solid #cbd9e1;border-radius:10px;background:#fbfdfe;color:#193348;font-size:.92rem;font-weight:450;min-height:44px;max-width:100%;padding:.65rem .82rem;transition:border-color .16s,box-shadow .16s,background .16s}
.layout main .card form:not(.inline) :is(input:not([type="hidden"]),select,textarea):hover{border-color:#9eb4c2;background:#fff}
.layout main .card form:not(.inline) :is(input:not([type="hidden"]),select,textarea):focus-visible{outline:0;border-color:var(--brand,#0e827b);background:#fff;box-shadow:0 0 0 3px var(--brand-soft,#e6f7f3)}
.layout main .card form:not(.inline) textarea{min-height:98px;resize:vertical}
.layout main .card form:not(.inline) input[type="checkbox"]{display:inline-block;width:1rem;min-height:0;height:1rem;margin:0 .55rem 0 0;padding:0;vertical-align:middle;accent-color:var(--brand,#0e827b)}
.layout main .card:not(.report-filter) > form:not(.inline) > button{justify-self:start;align-self:end;min-height:42px;padding:.65rem 1.1rem;font-size:.86rem}
.layout main .card > form.search-form{grid-template-columns:minmax(220px,420px) auto;justify-content:start;align-items:end}
.layout main .card > form.patient-form > label:has(textarea){grid-column:1/-1}
.layout main :is(input,select,textarea,button,.button):focus-visible{outline:2px solid var(--brand,#0e827b);outline-offset:2px}
.layout main .work-table form{font-size:.84rem}
.layout main .work-table form :is(input,select){min-height:36px;padding:.45rem .55rem;font-size:.82rem}
@media(max-width:720px){.layout main .card:not(.report-filter) > form:not(.inline),.layout main .card > form.search-form{grid-template-columns:1fr}.layout main .card:not(.report-filter) > form:not(.inline) > button{width:auto}}

/* Super admin overview */
.platform-control .platform-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1.25rem 0}
.platform-control .platform-metric{background:#fff;border:1px solid #dce9eb;border-radius:14px;padding:1rem 1.15rem;display:flex;flex-direction:column;min-height:105px;gap:.35rem;box-shadow:0 6px 18px #25394d08}
.platform-control .platform-metric span{color:#5e7384;font-size:.8rem;font-weight:650;line-height:1.35}
.platform-control .platform-metric strong{font-size:1.6rem;color:#193348;line-height:1.2;letter-spacing:-.03em}
.platform-control .platform-metric small{font-size:.75rem;color:#6e8190;margin-top:auto}
.platform-control .platform-metric.alert{background:#fff8ed;border-color:#f0dab8}.platform-control .platform-metric.alert strong,.platform-control .platform-metric.alert a{color:#895813}
.platform-control .secondary-summary .platform-metric{min-height:88px}
.platform-control .platform-filters{display:flex;align-items:end;gap:.8rem;flex-wrap:wrap;margin:1rem 0}
.platform-control .platform-filters label{margin:0;font-size:.8rem;flex:1;min-width:190px}
.platform-control .platform-filters :is(input,select){font-size:.87rem;margin-top:.3rem;padding:.62rem}
.platform-control .platform-filters button{font-size:.84rem;padding:.7rem 1rem}
.platform-control .platform-panels{display:grid;grid-template-columns:minmax(230px,1fr) minmax(0,2fr);gap:1rem}
.platform-control .platform-panels .section{margin-top:1rem}
.platform-control .platform-state{display:inline-block;padding:.24rem .6rem;border-radius:999px;background:var(--brand-soft,#e8f4f2);color:var(--brand-dark,#126266);font-size:.74rem;font-weight:700;white-space:nowrap}
.platform-control .work-table td small{display:block;color:#738695;font-size:.73rem;margin-top:.25rem}
@media(max-width:1150px){.platform-control .platform-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-control .platform-panels{grid-template-columns:1fr}}
@media(max-width:560px){.platform-control .platform-summary{grid-template-columns:1fr 1fr}.platform-control .platform-metric{padding:.85rem;min-height:95px}.platform-control .platform-metric strong{font-size:1.35rem}}
/* Patient portal */
.patient-portal .portal-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-top:1.3rem}
.patient-portal .portal-metrics .card{padding:1rem}
.patient-portal .portal-metrics span{display:block;color:#647788;font-size:.8rem}
.patient-portal .portal-metrics strong{display:block;font-size:1.65rem;color:var(--brand,#0b7779);margin-top:.35rem}
.patient-portal .portal-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.patient-portal .portal-row{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #e6edf1;padding:.7rem 0;font-weight:650;color:var(--brand-dark,#0b7779)}
.patient-portal .portal-row small{color:#667b88;font-weight:400}
.patient-portal td a{color:var(--brand-dark,#0b7779);font-weight:700}
@media(max-width:780px){.patient-portal .portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-portal .portal-columns{grid-template-columns:1fr}}
/* Appointment patient lookup */
.patient-picker{position:relative;min-width:0}
.patient-picker label{margin:0}
.patient-picker small{display:block;margin-top:.45rem}
.patient-results{position:absolute;z-index:12;top:calc(100% - .1rem);left:0;right:0;max-height:270px;overflow-y:auto;background:#fff;border:1px solid #cddde2;border-radius:12px;box-shadow:0 16px 32px #18304725}
.patient-result{display:block;width:100%;text-align:left;background:#fff;color:#1b3044;border:0;border-bottom:1px solid #ebf1f4;border-radius:0;padding:.73rem .9rem;font-weight:550}
.patient-result:hover,.patient-result:focus{background:var(--brand-soft,#e6f7f3);color:var(--brand-dark,#0d635e)}
.patient-result-message{padding:.8rem;color:#627589;font-size:.88rem}

.staff-reset{margin-top:10px;min-width:220px}.staff-reset summary{color:#106f72;cursor:pointer;font-weight:650}.staff-reset form{display:grid;gap:9px;padding:15px;margin-top:8px;border:1px solid #dbe8ee;border-radius:12px;background:#f5fafb;min-width:240px}.staff-reset label{font-size:.85rem}.staff-reset input{width:100%;box-sizing:border-box}.staff-reset button{white-space:nowrap}
