.compliance-badge{white-space:nowrap;border-radius:12px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-block}.badge-green{color:#155724;background:#d4edda}.badge-yellow{color:#856404;background:#fff3cd}.badge-red{color:#721c24;background:#f8d7da}:root{--primary:#2a9d8f;--primary-light:#a8dadc;--accent:#e76f51;--success:#52b788;--warning:#f4a261;--danger:#e63946;--bg:#fafaf7;--card-bg:#fff;--text-primary:#264653;--text-secondary:#6b7280}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}#root{min-height:100vh}.loading{min-height:200px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:16px;display:flex}.empty-state{text-align:center;color:var(--text-secondary);padding:24px;font-size:14px}.page-header{background:var(--card-bg);z-index:100;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000014}.page-header h1{color:var(--text-primary);font-size:20px;font-weight:600}.header-right{align-items:center;gap:16px;display:flex}.clinician-name{color:var(--text-secondary);font-size:14px}.btn-signout{border:1px solid var(--text-secondary);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:13px}.btn-signout:hover{border-color:var(--danger);color:var(--danger)}.btn-alerts{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:13px;position:relative}.alert-badge{background:var(--danger);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 4px;font-size:11px;font-weight:600;display:inline-flex}.last-updated{text-align:right;color:var(--text-secondary);padding:8px 32px 0;font-size:12px}.btn-back{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.btn-back:hover{text-decoration:underline}.btn-view{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-size:13px}.btn-view:hover{opacity:.9}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--card-bg);text-align:center;border-radius:12px;width:100%;max-width:400px;padding:48px;box-shadow:0 2px 8px #00000014}.login-card h1{margin-bottom:4px;font-size:22px}.login-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:14px}.login-card form{flex-direction:column;gap:16px;display:flex}.login-card input{border:1px solid #ddd;border-radius:8px;outline:none;padding:12px 16px;font-size:15px}.login-card input:focus{border-color:var(--primary)}.login-card button[type=submit]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px;font-size:15px;font-weight:500}.login-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#721c24;text-align:left;background:#f8d7da;border-radius:8px;padding:10px 14px;font-size:14px}section h2{color:var(--text-primary);margin-bottom:16px;font-size:18px;font-weight:600}.patient-list-page{min-height:100vh}.filter-bar{justify-content:space-between;align-items:center;gap:16px;padding:16px 32px;display:flex}.filter-toggles{gap:8px;display:flex}.filter-toggles button{background:var(--card-bg);cursor:pointer;color:var(--text-secondary);border:1px solid #ddd;border-radius:6px;padding:6px 16px;font-size:13px}.filter-toggles button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.search-input{border:1px solid #ddd;border-radius:6px;outline:none;width:240px;padding:8px 14px;font-size:14px}.search-input:focus{border-color:var(--primary)}.patient-table{border-collapse:collapse;width:100%;padding:0 32px}.patient-table thead{background:var(--card-bg)}.patient-table th{text-align:left;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:2px solid #eee;padding:12px 16px;font-size:13px;font-weight:600}.patient-table th:hover{color:var(--text-primary)}.patient-table td{border-bottom:1px solid #f0f0f0;padding:12px 16px;font-size:14px}.patient-row{cursor:pointer}.patient-row:hover{background:var(--primary-light)}.patient-name{font-weight:500}.patient-detail-page{min-height:100vh;padding:0 32px 48px}.detail-header{border-bottom:1px solid #eee;align-items:center;gap:16px;margin-bottom:24px;padding:16px 0;display:flex}.detail-header h1{font-size:22px;font-weight:600}.phase-label{color:var(--text-secondary);margin-left:auto;font-size:14px}.stats-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px;display:grid}.stat-tile{background:var(--card-bg);text-align:center;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.stat-value{color:var(--text-primary);font-size:36px;font-weight:700}.stat-label{color:var(--text-secondary);margin-top:4px;font-size:13px}.charts-section{margin-bottom:32px}.patient-charts{flex-direction:column;gap:24px;display:flex}.chart-section{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.chart-section h3{color:var(--text-primary);margin-bottom:12px;font-size:15px;font-weight:600}.milestones-section{margin-bottom:32px}.milestone-list{background:var(--card-bg);border-radius:12px;list-style:none;overflow:hidden;box-shadow:0 2px 8px #00000014}.milestone-item{border-bottom:1px solid #f0f0f0;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 20px;display:flex}.milestone-item:last-child{border-bottom:none}.milestone-info{align-items:center;gap:12px;display:flex}.milestone-label{font-size:14px;font-weight:500}.milestone-date{color:var(--text-secondary);font-size:12px}.milestone-data{color:var(--text-secondary);width:100%;font-size:13px}.recent-logs-section{margin-bottom:32px}.logs-table{border-collapse:collapse;background:var(--card-bg);border-radius:12px;width:100%;overflow:hidden;box-shadow:0 2px 8px #00000014}.logs-table th{text-align:left;color:var(--text-secondary);border-bottom:2px solid #eee;padding:12px 16px;font-size:13px;font-weight:600}.logs-table td{border-bottom:1px solid #f0f0f0;padding:10px 16px;font-size:14px}.pain-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.pain-green{background:var(--success)}.pain-amber{background:var(--warning)}.pain-red{background:var(--danger)}.notes-cell{cursor:pointer;color:var(--text-secondary);font-size:13px}.messaging-section{margin-bottom:32px}.message-composer{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.message-composer h3{margin-bottom:16px;font-size:16px;font-weight:600}.message-thread{flex-direction:column;gap:10px;max-height:400px;margin-bottom:16px;display:flex;overflow-y:auto}.message-item{background:#f5f5f5;border-radius:8px;padding:10px 14px}.message-item.sent{background:#e8f4f2;margin-left:40px}.message-item.received{margin-right:40px}.message-item.system-alert{border-left:3px solid var(--warning);background:#fff8e1}.message-header{justify-content:space-between;margin-bottom:4px;display:flex}.message-sender{font-size:13px;font-weight:600}.message-time{color:var(--text-secondary);font-size:12px}.message-body{font-size:14px;line-height:1.4}.message-status{text-align:right;color:var(--text-secondary);margin-top:2px;font-size:11px;display:block}.compose-area textarea{resize:vertical;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:12px;font-family:inherit;font-size:14px}.compose-area textarea:focus{border-color:var(--primary)}.compose-actions{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.char-counter{color:var(--text-secondary);font-size:12px}.btn-send{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 18px;font-size:14px}.btn-send:disabled{opacity:.5;cursor:not-allowed}.send-confirm{color:var(--success);margin-top:8px;font-size:13px;display:inline-block}.alert-center-page{min-height:100vh;padding:0 32px 48px}.alert-filter-tabs{gap:8px;margin-bottom:24px;display:flex}.alert-filter-tabs button{background:var(--card-bg);cursor:pointer;color:var(--text-secondary);border:1px solid #ddd;border-radius:6px;padding:6px 16px;font-size:13px}.alert-filter-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.alert-list{flex-direction:column;gap:12px;display:flex}.alert-card{background:var(--card-bg);border-left:4px solid var(--danger);border-radius:12px;padding:16px 20px;box-shadow:0 2px 8px #00000014}.alert-card.resolved{border-left-color:var(--success);opacity:.7}.alert-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.alert-type{color:var(--danger);font-size:14px;font-weight:600}.alert-card.resolved .alert-type{color:var(--success)}.alert-time{color:var(--text-secondary);font-size:12px}.alert-patient{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.alert-body{margin-bottom:12px;font-size:14px;line-height:1.4}.alert-actions{align-items:center;gap:8px;display:flex}.btn-resolve{background:var(--success);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-size:13px}.resolved-label{color:var(--success);font-size:13px;font-weight:500}
