@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/plus-jakarta-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f3f5f8;--surface: #ffffff;--surface-2: #f8fafc;--border: #e3e8ef;--text: #0f172a;--text-2: #475569;--text-3: #94a3b8;--primary: #0e7c86;--primary-2: #0b6169;--primary-soft: #e0f4f5;--on-primary: #ffffff;--danger: #c62828;--danger-soft: #fdecea;--warn: #b45309;--warn-soft: #fef3c7;--ok: #15803d;--ok-soft: #dcfce7;--info: #1d4ed8;--info-soft: #dbeafe;--sidebar: #0f1f2e;--sidebar-2: #16293c;--radius: 10px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--font: "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}h1,h2,h3{margin:0;font-weight:600}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}p{margin:0}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.mono{font-family:Consolas,SFMono-Regular,Menlo,monospace}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.col{display:flex;flex-direction:column;gap:12px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.mt{margin-top:16px}.mb{margin-bottom:16px}.right{text-align:right}.nowrap{white-space:nowrap}.wrap{flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.kpi{display:flex;flex-direction:column;gap:6px;position:relative}.kpi .label{color:var(--text-2);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.kpi .value{font-size:28px;font-weight:600;line-height:1.1}.kpi .sub{color:var(--text-3);font-size:12px}.kpi .actions{margin-top:6px}.pulse{position:absolute;top:14px;right:14px;width:10px;height:10px;border-radius:50%;background:var(--danger);box-shadow:0 0 #c6282899;animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 #c6282899}70%{box-shadow:0 0 0 10px #c6282800}to{box-shadow:0 0 #c6282800}}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:500;cursor:pointer;line-height:1.2;transition:background .12s,border-color .12s}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-2)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#a61f1f}.btn-ghost{background:transparent;border-color:transparent;color:var(--primary)}.btn-ghost:hover{background:var(--primary-soft)}.btn-sm{padding:5px 10px;font-size:12.5px}.btn-block{width:100%;justify-content:center}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;font-weight:600;color:var(--text-2)}.input,.select,.textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface);color:var(--text)}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.textarea{min-height:80px;resize:vertical}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.error{color:var(--danger);font-size:13px}.hint{color:var(--text-3);font-size:12px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-2)}.table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:var(--surface-2)}.table-wrap{overflow-x:auto}.empty{padding:32px;text-align:center;color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.badge-ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge-info{background:var(--info-soft);color:var(--info);border-color:transparent}.badge-primary{background:var(--primary-soft);color:var(--primary-2);border-color:transparent}.avatar{width:36px;height:36px;border-radius:50%;background:var(--primary-soft);color:var(--primary-2);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-lg{width:64px;height:64px;font-size:20px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{padding:10px 14px;border:none;background:none;font:inherit;font-weight:500;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.alert-medical{background:var(--danger);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;display:flex;align-items:center;gap:10px;animation:flash 1.4s infinite}@keyframes flash{0%,to{background:var(--danger)}50%{background:#e53935}}.alert{padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2)}.alert-danger{background:var(--danger-soft);border-color:transparent;color:var(--danger)}.alert-ok{background:var(--ok-soft);border-color:transparent;color:var(--ok)}.dialog-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.dialog{background:var(--surface);border-radius:12px;width:min(560px,100%);max-height:90vh;overflow:auto;padding:20px;box-shadow:0 20px 50px #0f172a4d}.dialog-wide{width:min(760px,100%)}.dialog h2{margin-bottom:14px}.feed{display:flex;flex-direction:column}.feed-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.feed-item:last-child{border-bottom:none}.feed-item .who{font-weight:600}.feed-item .where{color:var(--text-3);font-size:12px}.feed-item .when{margin-left:auto;color:var(--text-3);font-size:12px;white-space:nowrap}.progress{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--primary)}.progress.warn>span{background:var(--warn)}.progress.danger>span{background:var(--danger)}.dl{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:13.5px}.dl dt{color:var(--text-2)}.dl dd{margin:0}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner-dark{border-color:var(--border);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:20px;right:20px;background:var(--text);color:#fff;padding:10px 14px;border-radius:8px;box-shadow:var(--shadow);z-index:60}.toast-danger{background:var(--danger)}@media(max-width:900px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.btn-primary,.badge-primary,.chip.on{color:var(--on-primary, #fff)}
