:root { font-family: system-ui,-apple-system,"Segoe UI",sans-serif; color:#24332e; background:#f3f7f5; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; }
button,input,select { font:inherit; }
button { border:0; border-radius:.5rem; padding:.65rem 1rem; color:#fff; background:#237052; cursor:pointer; }
button.secondary { color:#285443; background:#e2eee9; }
button.connected { color:#17613f; background:#def2e8; }
.link-button { padding:.3rem .2rem; border-radius:.25rem; color:#2c684f; background:transparent; text-decoration:underline; text-underline-offset:.18rem; }
.link-button:hover { color:#174b37; background:#eef6f2; }
.link-button.danger { color:#a13b3b; }.link-button.danger:hover { color:#7e2525; background:#fbeaea; }
button:disabled { opacity:.55; cursor:not-allowed; }
.shell { width:min(94%,72rem); margin:auto; padding:2.5rem 0 5rem; }
.topbar,.section-title,.identity { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.eyebrow { margin:0 0 .2rem; color:#35705b; font-size:.78rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(1.9rem,5vw,3rem); } h2 { margin-top:0; }
.section-title h2 { margin-bottom:.25rem; }
.section-description { margin:0; color:#61756d; }
.card { margin-top:1.5rem; padding:1.5rem; border:1px solid #c9ddd5; border-radius:.8rem; background:#fff; box-shadow:0 .5rem 2rem rgb(36 51 46 / 7%); }
.narrow { width:min(100%,25rem); }
label { display:grid; gap:.4rem; font-weight:650; }
input,select { width:100%; min-height:2.7rem; padding:.55rem .7rem; border:1px solid #aac3b9; border-radius:.45rem; background:#fff; }
form { display:grid; gap:1rem; }
.form-grid { grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); align-items:end; margin:1rem 0 1.5rem; padding:1rem; border-radius:.6rem; background:#f3f7f5; }
.checkbox-field { display:flex; align-items:center; min-height:2.7rem; }
.checkbox-field input { width:auto; min-height:auto; }
.form-actions,.row-actions { display:flex; align-items:center; gap:.5rem; }
.modal { width:min(92vw,48rem); padding:0; border:1px solid #bfd4cb; border-radius:.85rem; color:#24332e; background:#fff; box-shadow:0 1.5rem 5rem rgb(23 55 43 / 25%); }
.modal::backdrop { background:rgb(27 48 40 / 48%); backdrop-filter:blur(2px); }
.modal-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.4rem 1.5rem 0; }
.modal-heading h3 { margin:0 0 .25rem; font-size:1.35rem; }.modal-heading p { margin:0; color:#61756d; }
.modal-close { padding:.1rem .55rem; color:#527064; background:transparent; font-size:1.8rem; line-height:1; }
.modal-form { margin:1rem 1.5rem 1.5rem; }
.modal-actions { grid-column:1/-1; justify-content:flex-end; }
.tabs { display:flex; gap:.5rem; margin-top:2rem; border-bottom:1px solid #c9ddd5; padding-bottom:.7rem; }
.tabs button { color:#285443; background:transparent; }.tabs button.active { color:#fff; background:#237052; }
.tabs .nav-secondary { margin-left:auto; padding:.45rem .2rem; color:#527064; text-decoration:underline; text-underline-offset:.2rem; }
.tabs .nav-secondary.active { color:#285443; background:#e2eee9; padding-inline:.75rem; text-decoration:none; }
.message { margin-top:1rem; padding:.8rem 1rem; border-radius:.5rem; background:#e2eee9; }.message.error { color:#842d2d; background:#f9dddd; }
.table-wrap { overflow-x:auto; } table { width:100%; border-collapse:collapse; } th,td { padding:.75rem; border-bottom:1px solid #dfebe6; text-align:left; white-space:nowrap; } th { font-size:.8rem; text-transform:uppercase; color:#527064; }
.status { display:inline-block; padding:.2rem .55rem; border-radius:999px; font-size:.82rem; font-weight:700; }
.status.active { color:#17613f; background:#def2e8; }.status.inactive { color:#6c7470; background:#edf0ee; }
.inactive-row td:not(.row-actions) { color:#738079; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:2rem; }.metrics article { padding:1rem; border-radius:.6rem; background:#eef6f2; }.metrics span,.metrics strong { display:block; }.metrics strong { margin-top:.3rem; font-size:1.4rem; }
.finance-patient { width:min(100%,32rem); margin:1.5rem 0; }
.empty-state { margin:2rem 0 .5rem; padding:1.5rem; border:1px dashed #aac3b9; border-radius:.6rem; color:#61756d; text-align:center; background:#f8fbfa; }
.history-title { margin-top:2rem; }
@media(max-width:600px){.topbar{align-items:flex-start}.metrics{grid-template-columns:1fr}.tabs{overflow-x:auto}.tabs .nav-secondary{margin-left:0}.section-title{align-items:flex-start}}
