@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,600&family=JetBrains+Mono:wght@400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,600&family=JetBrains+Mono:wght@400;500;600&display=swap";svg{vertical-align:middle;flex-shrink:0;width:1em;height:1em;display:inline-block}@keyframes pulse{0%{opacity:1;transform:scale(.9)}50%{opacity:0;transform:scale(1.6)}to{opacity:0;transform:scale(.9)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.shell{grid-template-columns:80px 1fr}aside{width:80px;padding:20px 10px}.brand-meta,.env-info,.facility-card,.nav-item span{display:none}.nav-item{justify-content:center;padding:12px}.diag-flow{grid-template-columns:repeat(2,1fr)}main{padding:20px 18px}.page-form-content{padding:20px}.page-footer-bar{padding:16px 20px}}@media (width<=650px){.shell{display:block}aside{height:60px;padding:6px 12px;inset:auto 0 0}aside,nav{flex-direction:row;justify-content:space-around;width:100%}nav{margin:0}.brand,.sidebar-bottom{display:none}main{padding:16px 14px 80px}.form-grid-2,.form-grid-3{grid-template-columns:1fr}}:root{--font-main:"Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--brand-50:#f0fdf4;--brand-100:#dcfce7;--brand-200:#bbf7d0;--brand-500:#10b981;--brand-600:#059669;--brand-700:#047857;--brand-800:#065f46;--brand-900:#064e3b;--blue-50:#eff6ff;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--amber-50:#fffbeb;--amber-500:#f59e0b;--amber-600:#d97706;--rose-50:#fff1f2;--rose-500:#f43f5e;--rose-600:#e11d48;--purple-50:#faf5ff;--purple-600:#9333ea;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;--bg-app:#f8fafc;--bg-surface:#fff;--bg-sidebar:#0f172a;--border-subtle:#e2e8f0;--border-focus:#10b981;--text-main:#0f172a;--text-muted:#64748b;--text-dim:#94a3b8;--shadow-xs:0 1px 2px 0 #0000000a;--shadow-sm:0 1px 3px 0 #00000012, 0 1px 2px -1px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000000a;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px}*{box-sizing:border-box;margin:0;padding:0}svg{flex-shrink:0;width:1em;height:1em}body{font-family:var(--font-main);background:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer;background:0 0;border:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.shell{grid-template-columns:280px 1fr;min-height:100vh;display:grid}aside{background:var(--bg-sidebar);color:#fff;z-index:40;border-right:1px solid #ffffff14;flex-direction:column;width:280px;padding:24px 18px;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:4px 0 24px #0003}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:14px;padding:4px 6px 22px;display:flex}.brand-icon{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#10b981,#047857);border:1px solid #fff3;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:22px;font-weight:800;display:grid;box-shadow:0 4px 14px #10b98159}.brand-meta strong{letter-spacing:-.3px;color:#fff;font-size:16px;font-weight:800;display:block}.brand-meta small{color:#94a3b8;letter-spacing:.3px;margin-top:1px;font-size:11px;font-weight:600;display:block}nav{flex-direction:column;gap:6px;margin-top:24px;display:flex}.nav-section-label{color:#64748b;text-transform:uppercase;letter-spacing:1px;padding:8px 12px 4px;font-size:11px;font-weight:800}.nav-item{border-radius:var(--radius-md);color:#94a3b8;text-align:left;justify-content:space-between;padding:12px 14px;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .18s}.nav-item,.nav-item-left{align-items:center;display:flex}.nav-item-left{gap:12px}.nav-item svg{stroke-width:2px;color:#64748b;width:20px;height:20px;transition:color .18s}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item:hover svg{color:#94a3b8}.nav-item.active{color:#fff;background:linear-gradient(135deg,#10b9812e,#0596691a);border:1px solid #10b9814d;font-weight:700}.nav-item.active svg{color:#34d399}.nav-badge{color:#e2e8f0;background:#ffffff1f;border-radius:12px;padding:2px 8px;font-size:11.5px;font-weight:700}.sidebar-bottom{flex-direction:column;gap:12px;margin-top:auto;display:flex}.facility-card{border-radius:var(--radius-md);background:#ffffff0a;border:1px solid #ffffff12;align-items:center;gap:10px;padding:12px;display:flex}.facility-avatar{border-radius:var(--radius-sm);color:#38bdf8;background:#334155;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:800;display:grid}.facility-info b{color:#e2e8f0;font-size:12px;font-weight:700;display:block}.facility-info small{color:#64748b;font-size:11px;font-family:var(--font-mono);display:block}.env-status-badge{border-radius:var(--radius-md);background:#ffffff08;border:1px solid #ffffff14;align-items:center;gap:10px;padding:10px 12px;display:flex}.env-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 10px #10b981}.env-dot.mock{background:#f59e0b;box-shadow:0 0 10px #f59e0b}.env-info b{color:#f1f5f9;font-size:12px;font-weight:700;display:block}.env-info small{color:#64748b;font-size:11px;display:block}main{grid-column:2;min-width:0;padding:28px 40px 60px}header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.header-title-wrap p{color:var(--slate-500);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;font-size:12px;font-weight:700}.header-title-wrap h1{letter-spacing:-.6px;color:var(--slate-900);font-size:26px;font-weight:800}.header-actions{align-items:center;gap:12px;display:flex}.live-indicator{border:1px solid var(--slate-200);color:var(--slate-700);box-shadow:var(--shadow-xs);background:#fff;border-radius:20px;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;font-weight:700;display:flex}.live-indicator .pulse-dot{background:#10b981;border-radius:50%;width:8px;height:8px;position:relative}.live-indicator .pulse-dot:after{content:"";background:#10b98166;border-radius:50%;animation:2s infinite pulse;position:absolute;inset:-3px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{background:var(--bg-surface);border:1px solid var(--slate-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:20px 22px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.kpi-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1;transform:translateY(-2px)}.kpi-icon-wrap{border-radius:var(--radius-md);flex-shrink:0;place-items:center;width:52px;height:52px;display:grid}.kpi-icon-wrap svg{stroke-width:2.2px;width:26px;height:26px}.kpi-icon-wrap.total{color:#059669;background:#f0fdf4}.kpi-icon-wrap.waiting{color:#d97706;background:#fffbeb}.kpi-icon-wrap.success{color:#2563eb;background:#eff6ff}.kpi-icon-wrap.failed{color:#e11d48;background:#fff1f2}.kpi-data p{color:var(--slate-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;font-size:12px;font-weight:700}.kpi-data h3{color:var(--slate-900);letter-spacing:-.5px;font-size:26px;font-weight:800;line-height:1.1}.toast-bar{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 18px;font-size:13.5px;font-weight:600;animation:.3s cubic-bezier(.4,0,.2,1) slideDown;display:flex}.toast-bar.success{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.toast-bar.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.toast-bar button{color:inherit;opacity:.7;padding:0 4px;font-size:18px;line-height:1}.toast-bar button:hover{opacity:1}.toolbar{flex-wrap:wrap;justify-content:space-between;gap:14px;margin-bottom:18px}.toolbar,.toolbar-left{align-items:center;display:flex}.toolbar-left{flex:1;gap:12px;max-width:680px}.search-input-wrap{flex:1;position:relative}.search-input-wrap svg{width:18px;height:18px;color:var(--slate-400);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input-wrap input{border:1px solid var(--slate-300);border-radius:var(--radius-md);width:100%;color:var(--slate-900);background:#fff;outline:0;padding:10px 16px 10px 42px;font-size:13.5px;transition:all .18s}.search-input-wrap input:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px #10b98126}.toolbar input,.toolbar select{border:1px solid var(--slate-300);border-radius:var(--radius-md);color:var(--slate-800);background:#fff;outline:0;padding:10px 14px;font-size:13.5px;font-weight:600}.toolbar select:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px #10b98126}.toolbar-right{align-items:center;gap:10px;display:flex}.btn{border-radius:var(--radius-md);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:13.5px;font-weight:700;text-decoration:none;transition:all .18s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn svg{stroke-width:2.2px;width:17px;height:17px}.btn-primary{color:#fff;background:linear-gradient(135deg,#059669,#047857);border:1px solid #ffffff26;box-shadow:0 3px 10px #05966940}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#10b981,#059669);transform:translateY(-1px);box-shadow:0 5px 14px #05966959}.btn-secondary{border:1px solid var(--slate-300);color:var(--slate-700);box-shadow:var(--shadow-xs);background:#fff}.btn-secondary:hover:not(:disabled){background:var(--slate-50);border-color:var(--slate-400);color:var(--slate-900)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card-table-wrap{background:var(--bg-surface);border:1px solid var(--slate-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-header{border-bottom:1px solid var(--slate-200);background:#fafcfb;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.table-header h2{color:var(--slate-900);letter-spacing:-.3px;font-size:16px;font-weight:800}.table-header p{color:var(--slate-500);margin-top:1px;font-size:12.5px;font-weight:500}.table-responsive{width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}thead th{color:var(--slate-600);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--slate-200);white-space:nowrap;background:#f8fafc;padding:13px 20px;font-size:11.5px;font-weight:800}tbody tr{border-bottom:1px solid var(--slate-100);transition:background .15s}tbody tr:last-child{border-bottom:0}tbody tr:hover{background:#f8fafc}tbody td{vertical-align:middle;padding:15px 20px;font-size:13.5px}.patient-cell{align-items:center;gap:12px;display:flex}.patient-avatar{color:#065f46;background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:1px solid #86efac;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:13px;font-weight:800;display:grid}.patient-name b{color:var(--slate-900);font-size:14px;font-weight:700;display:block}.patient-name small{color:var(--slate-500);font-size:11.5px;font-family:var(--font-mono);background:var(--slate-100);border-radius:4px;gap:4px;margin-top:3px;padding:1px 7px}.patient-name small,.pill{align-items:center;display:inline-flex}.pill{border-radius:20px;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;line-height:1}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill.status-0{color:#475569;background:#f1f5f9}.pill.status-1{color:#1d4ed8;background:#eff6ff}.pill.status-2{color:#b45309;background:#fffbeb}.pill.status-3{color:#7c3aed;background:#f5f3ff}.pill.status-4{color:#047857;background:#ecfdf5}.pill.status-5{color:#b91c1c;background:#fef2f2}.class-tag{color:#047857;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.action-group{justify-content:flex-end;align-items:center;gap:6px;display:flex}.btn-icon{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--slate-600);background:var(--slate-100);place-items:center;text-decoration:none;transition:all .15s;display:grid}.btn-icon svg{width:16px;height:16px}.btn-icon:hover{background:var(--brand-600);color:#fff}.btn-icon.danger:hover{background:var(--rose-600);color:#fff}.btn-send{border-radius:var(--radius-sm);color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;padding:6px 12px;font-size:12px;font-weight:700;transition:all .15s}.btn-send:hover{color:#fff;background:#2563eb;border-color:#2563eb}.btn-send.prod{color:#be123c;background:#fff1f2;border-color:#fecdd3}.btn-send.prod:hover:not(:disabled){color:#fff;background:#e11d48;border-color:#e11d48}.btn-send:disabled{opacity:.45;cursor:not-allowed}.empty-state{text-align:center;color:var(--slate-500);padding:60px 24px}.empty-state svg{stroke-width:1.5px;width:48px;height:48px;color:var(--slate-400);margin-bottom:14px}.empty-state h4{color:var(--slate-800);margin-bottom:4px;font-size:16px;font-weight:700}.page-card{background:var(--bg-surface);border:1px solid var(--slate-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);animation:.2s pageFadeIn;overflow:hidden}.page-header{border-bottom:1px solid var(--slate-200);background:#fff;flex-wrap:wrap;justify-content:space-between;padding:22px 32px}.page-header,.page-header-left{align-items:center;gap:16px;display:flex}.btn-back{border-radius:var(--radius-md);background:var(--slate-100);color:var(--slate-700);align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.btn-back:hover{background:var(--slate-200);color:var(--slate-900);transform:translate(-2px)}.page-title h2{color:var(--slate-900);letter-spacing:-.4px;font-size:20px;font-weight:800}.page-title p{color:var(--slate-500);margin-top:2px;font-size:12.5px;font-weight:500}.page-stepper{border-bottom:1px solid var(--slate-200);background:#f8fafc;gap:10px;padding:16px 32px;display:flex;overflow-x:auto}.page-step-item{border-radius:var(--radius-md);color:var(--slate-600);white-space:nowrap;background:0 0;align-items:center;gap:10px;padding:10px 18px;font-size:13.5px;font-weight:700;transition:all .18s;display:flex}.page-step-item:hover{color:var(--slate-900);background:#fffc}.page-step-item.active{color:var(--brand-700);box-shadow:var(--shadow-sm);border:1px solid var(--slate-200);background:#fff}.page-step-number{background:var(--slate-200);width:26px;height:26px;color:var(--slate-700);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.page-step-item.active .page-step-number{background:var(--brand-600);color:#fff}.page-form-content{padding:32px 36px}.form-section-title{color:var(--slate-900);border-bottom:1.5px solid var(--slate-200);align-items:center;gap:8px;margin-bottom:20px;padding-bottom:10px;font-size:15px;font-weight:800;display:flex}.form-grid-2{grid-template-columns:repeat(2,1fr)}.form-grid-2,.form-grid-3{gap:20px;margin-bottom:24px;display:grid}.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-group{flex-direction:column;gap:7px;display:flex}.form-group.full{grid-column:1/-1}.form-group label{color:var(--slate-700);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:800}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--slate-300);border-radius:var(--radius-md);color:var(--slate-900);background:#fff;padding:11px 15px;font-size:14px;transition:all .18s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand-600);outline:0;box-shadow:0 0 0 3px #10b98126}.bmi-indicator{border-radius:var(--radius-md);background:#f0fdf4;border:1.5px dashed #86efac;justify-content:space-between;align-items:center;margin-top:10px;padding:16px 22px;display:flex}.bmi-val{color:#065f46;font-size:22px;font-weight:800;font-family:var(--font-mono)}.page-footer-bar{border-top:1px solid var(--slate-200);background:#fff;justify-content:space-between;align-items:center;padding:20px 36px;display:flex}.code-preview-box{color:#38bdf8;border-radius:var(--radius-md);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;background:#0f172a;border:1px solid #1e293b;max-height:600px;padding:22px 26px;font-size:13px;line-height:1.7;overflow-y:auto;box-shadow:inset 0 2px 8px #0000004d}.readiness-hero{border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-md);background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-bottom:24px;padding:30px 36px;display:flex}.readiness-hero h2{margin:4px 0 6px;font-size:22px;font-weight:800}.readiness-hero p{color:#94a3b8;font-size:13.5px}.readiness-score-badge{background:#ffffff1f;border:2px solid #fff3;border-radius:50%;place-items:center;width:64px;height:64px;font-size:28px;font-weight:800;display:grid}.readiness-score-badge.ok{background:#059669;border-color:#34d399;box-shadow:0 0 20px #10b98166}.diag-flow{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;display:grid}.diag-node{background:var(--bg-surface);border:1px solid var(--slate-200);border-radius:var(--radius-md);text-align:center;box-shadow:var(--shadow-xs);padding:18px 16px;transition:all .2s;position:relative}.diag-node.connected{background:#f8fafc;border-color:#86efac}.diag-node h4{color:var(--slate-900);margin:8px 0 2px;font-size:13px;font-weight:800}.diag-node span{color:var(--slate-500);font-size:11.5px}.settings-container{background:var(--bg-surface);border:1px solid var(--slate-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.settings-tabs-header{border-bottom:1px solid var(--slate-200);background:#f8fafc;gap:8px;padding:6px 16px 0;display:flex}.settings-tab-btn{color:var(--slate-500);border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:12px 20px;font-size:13.5px;font-weight:700;transition:all .18s;display:flex}.settings-tab-btn:hover{color:var(--slate-900);background:#ffffffb3}.settings-tab-btn.active{color:var(--brand-700);border-bottom-color:var(--brand-600);background:#fff}.settings-body{padding:28px}.mode-switch-card{border:1px solid var(--slate-200);border-radius:var(--radius-md);background:#f8fafc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:18px 22px;display:flex}.mode-switch-info h4{color:var(--slate-900);margin:0 0 4px;font-size:15px}.mode-switch-info p{color:var(--slate-500);margin:0;font-size:13px}.mode-toggle-group{background:var(--slate-200);border-radius:var(--radius-md);gap:4px;padding:4px;display:flex}.mode-toggle-group button{border-radius:var(--radius-sm);color:var(--slate-600);background:0 0;border:0;padding:8px 16px;font-size:13px;font-weight:700;transition:all .18s}.mode-toggle-group button.active{color:var(--slate-900);background:#fff;box-shadow:0 2px 4px #00000014}.mode-toggle-group button.active.live{background:var(--brand-600);color:#fff}@media (width<=900px){.shell{grid-template-columns:80px 1fr}aside{width:80px;padding:20px 10px}.brand-meta,.env-info,.facility-card,.nav-item span{display:none}.nav-item{justify-content:center;padding:12px}.diag-flow{grid-template-columns:repeat(2,1fr)}main{padding:20px 18px}.page-form-content{padding:20px}.page-footer-bar{padding:16px 20px}}@media (width<=650px){.shell{display:block}aside{height:60px;padding:6px 12px;inset:auto 0 0}aside,nav{flex-direction:row;justify-content:space-around;width:100%}nav{margin:0}.brand,.sidebar-bottom{display:none}main{padding:16px 14px 80px}.form-grid-2,.form-grid-3{grid-template-columns:1fr}}svg{vertical-align:middle;max-width:100%;display:inline-block}
