@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700&family=Sora:wght@500;700&display=swap";:root{--font-body:"Manrope", "Segoe UI", Tahoma, sans-serif;--font-display:"Sora", "Segoe UI", Tahoma, sans-serif;--body-text:#1f2937;--muted-text:#58667a;--label-text:#374151;--panel-bg:#ffffffdb;--panel-border:#0f172a17;--soft-shadow:0 14px 34px #0f172a17;--chip-bg:#ecfeff;--chip-text:#155e75;--action-primary:#0a7f57;--action-secondary:#0f4c81}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-body);color:var(--body-text);background-color:#0000;background-image:radial-gradient(circle at 12% 8%,#0a7f5733,#0000 28%),radial-gradient(circle at 88% 14%,#0f4c8133,#0000 30%),linear-gradient(145deg,#f2f8f7 0%,#eef4fb 48%,#f8f5ef 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0}#app{max-width:1200px;margin:0 auto;padding:1.1rem}@media (width<=640px){#app{padding:.8rem}}.fatal-error{color:#7c2d12;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;max-width:720px;margin:2rem auto;padding:1rem 1.1rem;box-shadow:0 10px 30px #7c2d1226}.fatal-error h1{font-family:var(--font-display);margin:0;font-size:1.2rem}.fatal-error p{margin:.6rem 0 0}.panel[data-v-1cc5f3e7]{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow);border-radius:16px;padding:1rem}.panel-header h2[data-v-1cc5f3e7]{font-family:var(--font-display);margin:0;font-size:1.1rem}.panel-header p[data-v-1cc5f3e7]{color:var(--muted-text);margin:.35rem 0 0;font-size:.9rem}ul[data-v-1cc5f3e7]{gap:.6rem;margin:.8rem 0 0;padding:0;list-style:none;display:grid}.alert-item[data-v-1cc5f3e7]{border:1px solid #0000;border-radius:12px;padding:.7rem .8rem}.alert-item p[data-v-1cc5f3e7]{margin:.25rem 0 0;font-size:.9rem}.severity[data-v-1cc5f3e7]{text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:700}.info[data-v-1cc5f3e7]{color:#0c4a6e;background:#f0f9ff;border-color:#bae6fd}.warning[data-v-1cc5f3e7]{color:#7c2d12;background:#fffbeb;border-color:#fde68a}.critical[data-v-1cc5f3e7]{color:#881337;background:#fff1f2;border-color:#fecdd3}.panel[data-v-fa9510b5]{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow);border-radius:16px;padding:1rem}h2[data-v-fa9510b5]{font-family:var(--font-display);margin:0;font-size:1.2rem}.monitor-header[data-v-fa9510b5]{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.monitor-header p[data-v-fa9510b5]{color:var(--muted-text);margin:.2rem 0 0;font-size:.9rem}.stats[data-v-fa9510b5]{align-items:stretch;gap:1rem;display:flex}.stats p[data-v-fa9510b5]{background:var(--chip-bg);min-width:86px;color:var(--chip-text);border-radius:12px;flex-direction:column;align-items:flex-end;margin:0;padding:.55rem .75rem;display:flex}.stats .mode-sign[data-v-fa9510b5]{min-width:106px}.stats .mode-sign.live[data-v-fa9510b5]{color:#166534;background:#dcfce7}.stats .mode-sign.preview[data-v-fa9510b5]{color:#9a3412;background:#fff7ed}.stats strong[data-v-fa9510b5]{font-size:1.05rem}.stats span[data-v-fa9510b5]{font-size:.74rem}.monitor-actions[data-v-fa9510b5]{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.9rem;display:flex}.actions-label[data-v-fa9510b5]{letter-spacing:.04em;text-transform:uppercase;color:#475569;font-size:.8rem;font-weight:700}button[data-v-fa9510b5]{cursor:pointer;white-space:nowrap;text-align:center;border:none;border-radius:10px;padding:.55rem .9rem;font-weight:600}.primary[data-v-fa9510b5]{background:var(--action-primary);color:#fff;min-width:88px}.secondary[data-v-fa9510b5]{background:var(--action-secondary);color:#fff;min-width:88px}.ghost[data-v-fa9510b5]{color:#2f3a4a;background:#f4f5f7;min-width:148px}.mode-toggle[data-v-fa9510b5]{color:#fff;background:#0b7285;min-width:220px}button[data-v-fa9510b5]:disabled{opacity:.45;cursor:not-allowed}.chart-shell[data-v-fa9510b5]{border:1px solid #00000014;border-radius:12px;margin-top:1rem;position:relative;overflow:hidden}.record-review[data-v-fa9510b5]{border-top:1px dashed #cbd5e1;margin-top:1rem;padding-top:.8rem}.review-header[data-v-fa9510b5]{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.review-header h3[data-v-fa9510b5]{font-family:var(--font-display);margin:0;font-size:.98rem}.review-header .ghost[data-v-fa9510b5]{min-width:110px}.review-status[data-v-fa9510b5]{color:#64748b;margin:.55rem 0 0;font-size:.82rem}.review-status.error[data-v-fa9510b5]{color:#991b1b}.record-list[data-v-fa9510b5]{gap:.45rem;margin:.55rem 0 0;padding:0;list-style:none;display:grid}.record-list li[data-v-fa9510b5]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .55rem;display:flex}.record-title[data-v-fa9510b5]{color:#0f172a;margin:0;font-size:.8rem;font-weight:700}.record-meta[data-v-fa9510b5]{color:#64748b;margin:.12rem 0 0;font-size:.74rem}svg[data-v-fa9510b5]{background:#fcfdfc;width:100%;height:320px;display:block}.overlay-warning[data-v-fa9510b5]{color:#fff;background:#7c2d12e6;border-radius:8px;margin:0;padding:.35rem .6rem;font-size:.82rem;position:absolute;top:1rem;right:1rem}@media (width<=740px){.monitor-header[data-v-fa9510b5]{flex-direction:column}.stats[data-v-fa9510b5]{width:100%}.stats p[data-v-fa9510b5]{flex:1;align-items:flex-start}}.panel[data-v-e3f5f841]{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow);border-radius:16px;padding:1rem}.panel-header[data-v-e3f5f841]{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.header-actions[data-v-e3f5f841]{align-items:center;gap:.45rem;display:flex}h2[data-v-e3f5f841]{font-family:var(--font-display);margin:0;font-size:1.1rem}.refresh-btn[data-v-e3f5f841],.select-btn[data-v-e3f5f841],.add-btn[data-v-e3f5f841],.save-btn[data-v-e3f5f841],.cancel-btn[data-v-e3f5f841]{cursor:pointer;border:none;border-radius:9px;padding:.4rem .65rem;font-size:.8rem;font-weight:700}.refresh-btn[data-v-e3f5f841],.select-btn[data-v-e3f5f841]{background:var(--action-secondary);color:#fff}.add-btn[data-v-e3f5f841],.save-btn[data-v-e3f5f841]{background:var(--action-primary);color:#fff}.cancel-btn[data-v-e3f5f841]{color:#334155;background:#e2e8f0}.select-btn[data-v-e3f5f841]:disabled,.refresh-btn[data-v-e3f5f841]:disabled,.save-btn[data-v-e3f5f841]:disabled{opacity:.5;cursor:not-allowed}.add-form[data-v-e3f5f841]{border:1px dashed #cbd5e1;border-radius:12px;gap:.45rem;margin-top:.7rem;padding:.6rem;display:grid}.add-form label[data-v-e3f5f841]{color:var(--label-text);gap:.2rem;font-size:.8rem;display:grid}.add-form input[data-v-e3f5f841]{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.4rem .5rem;font-size:.85rem}.form-actions[data-v-e3f5f841]{gap:.45rem;margin-top:.2rem;display:flex}.patient-grid[data-v-e3f5f841]{gap:.55rem;margin-top:.8rem;display:grid}.patient-grid p[data-v-e3f5f841]{grid-template-columns:110px 1fr;gap:.75rem;margin:0;font-size:.92rem;display:grid}strong[data-v-e3f5f841]{color:var(--label-text)}span[data-v-e3f5f841]{color:var(--body-text)}.search-label[data-v-e3f5f841]{color:var(--label-text);gap:.22rem;margin-top:.7rem;font-size:.82rem;display:grid}.search-label input[data-v-e3f5f841]{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:.42rem .55rem;font-size:.9rem}.patient-list[data-v-e3f5f841]{gap:.45rem;margin:.65rem 0 0;padding:0;list-style:none;display:grid}.patient-list li[data-v-e3f5f841]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;gap:.7rem;padding:.5rem .55rem;display:flex}.row-title[data-v-e3f5f841]{color:#0f172a;margin:0;font-size:.84rem;font-weight:700}.row-meta[data-v-e3f5f841]{color:#64748b;margin:.15rem 0 0;font-size:.76rem}.selected-profile[data-v-e3f5f841]{border-top:1px dashed #cbd5e1;margin-top:.75rem;padding-top:.7rem}.selected-head[data-v-e3f5f841]{justify-content:space-between;align-items:center;display:flex}.selected-head h3[data-v-e3f5f841]{font-family:var(--font-display);margin:0;font-size:.95rem}.chip[data-v-e3f5f841]{background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:.25rem .55rem;font-size:.75rem}.status[data-v-e3f5f841]{border-radius:8px;margin:.65rem 0 0;padding:.42rem .5rem;font-size:.8rem}.status.info[data-v-e3f5f841]{color:#1e40af;background:#eff6ff}.status.ok[data-v-e3f5f841]{color:#065f46;background:#ecfdf5}.status.error[data-v-e3f5f841]{color:#991b1b;background:#fef2f2}.panel[data-v-ae9cbedf]{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow);border-radius:16px;padding:1rem}.panel-header[data-v-ae9cbedf]{justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.panel-header h2[data-v-ae9cbedf]{font-family:var(--font-display);margin:0;font-size:1.1rem}.panel-header p[data-v-ae9cbedf]{font-family:var(--font-display);color:var(--action-secondary);margin:0;font-size:1.15rem}.session-actions[data-v-ae9cbedf]{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}button[data-v-ae9cbedf]{cursor:pointer;border:none;border-radius:10px;padding:.5rem .75rem;font-weight:600}.primary[data-v-ae9cbedf]{background:var(--action-primary);color:#fff}.secondary[data-v-ae9cbedf]{background:var(--action-secondary);color:#fff}.ghost[data-v-ae9cbedf]{color:#3730a3;background:#eef2ff}.save[data-v-ae9cbedf]{color:#fff;background:#065f46}.danger[data-v-ae9cbedf]{color:#9f1239;background:#fee2e2}button[data-v-ae9cbedf]:disabled{opacity:.5;cursor:not-allowed}.counter[data-v-ae9cbedf]{color:var(--muted-text);margin:.8rem 0 0;font-size:.9rem}.session-meta[data-v-ae9cbedf]{gap:.4rem;margin-top:.75rem;display:grid}.session-meta p[data-v-ae9cbedf]{grid-template-columns:120px 1fr;gap:.65rem;margin:0;font-size:.84rem;display:grid}.status[data-v-ae9cbedf]{border-radius:8px;margin:.6rem 0 0;padding:.45rem .55rem;font-size:.85rem}.status.ok[data-v-ae9cbedf]{color:#065f46;background:#ecfdf5}.status.error[data-v-ae9cbedf]{color:#991b1b;background:#fef2f2}.last-saved[data-v-ae9cbedf]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:.7rem;padding:.55rem .65rem;font-size:.82rem}.last-saved p[data-v-ae9cbedf]{margin:.2rem 0}.panel[data-v-b87af7ea]{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow);border-radius:16px;padding:1rem}header h2[data-v-b87af7ea]{font-family:var(--font-display);margin:0;font-size:1.1rem}header p[data-v-b87af7ea]{color:var(--muted-text);margin:.35rem 0 0;font-size:.9rem}.hint[data-v-b87af7ea]{color:#475569;font-size:.8rem}.table-wrapper[data-v-b87af7ea]{margin-top:.75rem;overflow-x:auto}.simulation-table[data-v-b87af7ea]{border-collapse:collapse;width:100%;font-size:.84rem}.simulation-table th[data-v-b87af7ea],.simulation-table td[data-v-b87af7ea]{vertical-align:top;border:1px solid #dbe3ef;padding:.6rem}.simulation-table th[data-v-b87af7ea]{color:#334155;text-align:left;background:#f8fafc;font-weight:700}.simulation-table strong[data-v-b87af7ea]{font-family:var(--font-display);margin-bottom:.2rem;display:block}.simulation-table p[data-v-b87af7ea]{color:#64748b;margin:0}.csv-config[data-v-b87af7ea]{gap:.55rem;display:grid}.csv-config label[data-v-b87af7ea]{color:var(--label-text);gap:.2rem;display:grid}input[type=file][data-v-b87af7ea],input[type=number][data-v-b87af7ea]{background:#fff;border:1px solid #ced4da;border-radius:8px;padding:.42rem .5rem}button[data-v-b87af7ea]{cursor:pointer;border:none;border-radius:8px;padding:.5rem .8rem;font-weight:600}.primary[data-v-b87af7ea]{background:var(--action-primary);color:#fff}.secondary[data-v-b87af7ea]{color:#fff;background:#0f4c81}button[data-v-b87af7ea]:disabled{opacity:.55;cursor:not-allowed}.mono[data-v-b87af7ea]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.badge[data-v-b87af7ea]{border-radius:999px;padding:.2rem .5rem;font-size:.73rem;font-weight:700;display:inline-block}.badge.active[data-v-b87af7ea]{color:#166534;background:#dcfce7}.badge.inactive[data-v-b87af7ea]{color:#475569;background:#e2e8f0}.file-meta[data-v-b87af7ea]{color:#475569;margin-top:.35rem;font-size:.74rem}.ghost[data-v-b87af7ea]{color:#374151;background:#f3f4f6}.status[data-v-b87af7ea]{border-radius:8px;margin:.6rem 0 0;padding:.45rem .55rem;font-size:.85rem}.status.ok[data-v-b87af7ea]{color:#065f46;background:#ecfdf5}.status.info[data-v-b87af7ea]{color:#1e40af;background:#eff6ff}.status.error[data-v-b87af7ea]{color:#991b1b;background:#fef2f2}.ecg-app[data-v-ed37977f]{gap:1.1rem;display:grid}.page-header[data-v-ed37977f]{background:linear-gradient(125deg,#0a7f5733,#0f172a14);border:1px solid #0a7f5733;border-radius:18px;padding:1.2rem}.eyebrow[data-v-ed37977f]{letter-spacing:.08em;text-transform:uppercase;color:#0f766e;margin:0;font-size:.74rem;font-weight:700}h1[data-v-ed37977f]{font-family:var(--font-display);margin:.2rem 0 0;font-size:clamp(1.7rem,2.2vw,2.3rem)}.subline[data-v-ed37977f]{color:var(--muted-text);margin:.45rem 0 0}.layout-grid[data-v-ed37977f]{grid-template-columns:1.8fr 1fr;gap:1rem;display:grid}.monitor-column[data-v-ed37977f],.side-column[data-v-ed37977f]{align-content:start;gap:.9rem;display:grid}.panel[data-v-ed37977f]{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow);border-radius:16px;padding:1rem}.threshold-panel h2[data-v-ed37977f]{font-family:var(--font-display);margin:0;font-size:1.1rem}.threshold-form[data-v-ed37977f]{gap:.6rem;margin-top:.75rem;display:grid}.threshold-form label[data-v-ed37977f]{color:var(--label-text);gap:.25rem;font-size:.85rem;display:grid}.threshold-form input[data-v-ed37977f]{border:1px solid #ced4da;border-radius:10px;padding:.45rem .55rem;font-size:.9rem}.threshold-form button[data-v-ed37977f]{color:#fff;cursor:pointer;background:#0f766e;border:none;border-radius:10px;margin-top:.15rem;padding:.55rem .8rem;font-weight:600}.fade-in-up[data-v-ed37977f]{animation:.52s both fadeUp-ed37977f}.delay-1[data-v-ed37977f]{animation-delay:.14s}@keyframes fadeUp-ed37977f{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.layout-grid[data-v-ed37977f]{grid-template-columns:1fr}}
