:root{--primary:#52bfb8;--primary-dark:#3aa39c;--black:#181a20;--text:#212121;--muted:#757575;--border:#e0e0e0;--bg:#f4f7f7;--panel:#fff;--danger:#f75555;--sidebar:#0f1c1b;--radius:14px;--shadow:0 10px 30px #0f1c1b14;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,sans-serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 0 0,#52bfb82e,#0000 34%),linear-gradient(#f7fbfb 0%,#eef4f4 100%);min-width:320px}button,input,select,textarea{font:inherit}a{color:var(--primary-dark);text-decoration:none}h1,h2,h3,p{margin:0}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:#fff;flex-direction:column;gap:24px;padding:24px 18px;display:flex}.sidebar-brand{align-items:center;gap:12px;display:flex}.sidebar-logo{object-fit:contain;filter:brightness(0)invert();width:42px;height:42px}.brand-name{font-size:1.1rem;font-weight:700}.brand-role,.muted,.eyebrow{color:var(--muted)}.brand-role{color:#ffffffb3;font-size:.9rem}.sidebar-user-block{gap:2px;padding:0 4px;display:grid}.sidebar-user{color:#fff;font-size:1.05rem;font-weight:700;line-height:1.3}.sidebar-user-role{color:#ffffffa6;font-size:.85rem;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:8px;display:flex}.sidebar-link{color:#ffffffc7;border-radius:12px;padding:12px 14px}.sidebar-link.active,.sidebar-link:hover{color:#fff;background:#52bfb829}.sidebar-footer{gap:10px;display:grid}.main-content{padding:28px}.page{gap:20px;max-width:1100px;margin:0 auto;display:grid}.page.narrow{max-width:720px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header-left,.contact-info,.actions,.row-between,.status-chips,.chip-list{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row-between{justify-content:space-between}.eyebrow{margin-bottom:4px;font-size:.9rem}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--panel);width:min(440px,100%);box-shadow:var(--shadow);border-radius:24px;gap:18px;padding:32px 28px;display:grid}.auth-logo{object-fit:contain;filter:sepia()saturate(4)hue-rotate(130deg);width:96px;height:96px;margin:0 auto}.auth-card h1,.center{text-align:center}.center-link{text-align:center;display:block}.segmented{border:1px solid var(--border);background:#fff;border-radius:14px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.segmented.tabs{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.segmented button{cursor:pointer;color:var(--text);background:0 0;border:0;padding:12px;font-weight:600}.segmented button.active{background:var(--primary);color:#fff}.stack{display:grid}.gap-sm{gap:8px}.gap-md{gap:14px}.gap-lg{gap:20px}.field{gap:6px;display:grid}.field span{font-size:.92rem;font-weight:600}.field input,.field select,.field textarea,.search-bar input,.panel input,.panel select,.panel textarea{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:12px 14px}.input-with-action{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.password-input{position:relative}.password-input input{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:12px 44px 12px 14px}.password-toggle{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:6px;display:grid;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-toggle:hover{color:var(--primary-dark)}.auth-card-wide{width:min(520px,100%)}.btn,.text-btn{cursor:pointer;border:0;border-radius:12px;padding:12px 16px;font-weight:600}a.btn{text-align:center;box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{color:var(--primary-dark);background:#52bfb824}.btn-ghost{color:inherit;background:0 0;border:1px solid #ffffff2e}.sidebar .btn-ghost{color:#fff}.main-content .btn-ghost{border-color:var(--border);color:var(--text)}.btn-danger{color:var(--danger);background:#f755551f}.text-btn{color:var(--primary-dark);background:0 0;padding:0 8px}.panel,.patient-card,.notification-card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #e0e0e0e6;padding:18px}.patient-card{text-align:left;cursor:pointer;border-left:4px solid var(--primary);justify-content:space-between;gap:16px;width:100%;display:flex}.patient-card.status-pending{border-left-color:#facc15}.patient-card.status-pending .pill{color:#a16207;background:#facc1547}.patient-card.status-rejected{border-left-color:var(--danger)}.patient-card.status-rejected .pill{color:var(--danger);background:#f755551f}.patient-card-title{text-transform:capitalize;margin-bottom:6px;font-weight:700}.patient-card-meta{color:var(--muted);font-size:.92rem}.patient-card-vitals{align-items:center;gap:8px;display:flex}.adherence-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex;position:relative}.adherence-dot:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;background:#111;border-radius:4px;padding:6px 8px;font-size:.72rem;font-weight:600;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.adherence-dot:hover:after,.adherence-dot:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.pill,.chip{border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.pill{color:var(--primary-dark);background:#52bfb81f}.card-list{gap:12px;display:grid}.search-bar input{background:#fff}.empty-state,.page-center{min-height:180px;color:var(--muted);text-align:center;place-items:center;padding:32px;display:grid}.spinner{border:3px solid #52bfb840;border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;margin:24px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.user-avatar{object-fit:cover;background:#52bfb826;border-radius:50%}.user-avatar-fallback{color:var(--primary-dark);place-items:center;font-weight:700;display:grid}.profile-hero{align-items:center;gap:18px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid .full{grid-column:1/-1}.prescription-item{border:1px solid var(--border);background:#fafcfc;border-radius:12px;gap:12px;padding:16px;display:grid}.prescription-item-title{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.text-btn.danger{color:var(--danger);padding:4px 8px}.text-btn.danger:hover{background:#f7555514;border-radius:8px}.detail-row,.detail-grid{gap:10px;display:grid}.detail-row{border-bottom:1px solid #f0f0f0;grid-template-columns:1fr auto;padding:8px 0}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.plain-list{gap:8px;margin:0;padding-left:18px;display:grid}.plan-section-title{color:var(--primary-dark)}.range-bar{gap:10px;padding:4px 0 8px;display:grid}.range-bar-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.range-bar-label{color:var(--muted);font-weight:600}.range-bar-value-wrap{align-items:center;gap:8px;display:flex}.range-bar-value{font-size:1.55rem;font-weight:700;line-height:1}.range-bar-badge{border-radius:8px;padding:4px 8px;font-size:.75rem;font-weight:700}.range-bar-empty{color:var(--muted);font-size:.85rem}.range-bar-track-wrap{height:8px;margin:6px 0 2px;position:relative}.range-bar-track{background:#f0f0f0;border-radius:4px;width:100%;height:100%;position:relative;overflow:hidden}.range-bar-segment{border-radius:4px;height:100%;position:absolute;top:0}.range-bar-thumb{z-index:1;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000038}.range-bar-thumb-dot{background:#fff;border-radius:50%;width:8px;height:8px}.range-bar-legend{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.range-bar-bound{color:var(--muted);flex-shrink:0;font-size:.85rem;font-weight:700}.range-bar-legend-items{flex-wrap:wrap;flex:1;justify-content:center;gap:12px 16px;display:flex}.range-bar-legend-item{color:var(--text);align-items:center;gap:6px;font-size:.78rem;font-weight:500;display:inline-flex}.range-bar-swatch{border-radius:50%;flex-shrink:0;width:8px;height:8px}.prescription-status-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.prescription-status-item{border:1px solid var(--border);background:#fafcfc;border-radius:12px;padding:12px 14px}.prescription-status-text{gap:4px;display:grid}.prescription-status-flag.taken{color:#1bac4b;font-weight:700}.prescription-status-flag.not-taken{color:#fb9400;font-weight:700}.banner{border-radius:12px;padding:12px 14px}.banner.success{border:1px solid var(--primary);background:#e8f5e9}.banner.error,.field-error{color:var(--danger)}.banner.error{background:#f7555514;border:1px solid #f755554d}.notification-card.tone-orange{border-left:4px solid #fb9400}.notification-card.tone-blue{border-left:4px solid #52bfb8}.notification-card.tone-green{border-left:4px solid #0abe75}.notification-card.tone-red{border-left:4px solid #f75555}.notification-card.tone-primary{border-left:4px solid var(--primary)}.contact-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.range-inputs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.diagnosis-row{text-align:left;cursor:pointer;gap:4px;display:grid}.diagnosis-row.selected{border-color:var(--primary);background:#52bfb814}.checkbox-row{align-items:center;gap:8px;display:flex}.sticky-actions{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);background:#ffffffeb;border-radius:14px;flex-wrap:nowrap;align-items:stretch;gap:12px;padding:12px;display:flex;position:sticky;bottom:16px}.sticky-actions .btn{flex:1;justify-content:center}.toast-stack{z-index:50;gap:10px;width:min(360px,100vw - 32px);display:grid;position:fixed;bottom:20px;right:20px}.toast{box-shadow:var(--shadow);border-left:4px solid var(--primary);background:#fff;border-radius:14px;padding:14px 16px}.toast p{color:var(--muted);margin-top:4px}.toast-error{border-left-color:var(--danger)}.toast-success{border-left-color:#0abe75}.modal-backdrop{z-index:40;background:#0f1c1b73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{background:var(--panel);width:min(640px,100%);max-height:min(80vh,720px);box-shadow:var(--shadow);border-radius:18px;gap:14px;padding:20px;display:grid;overflow:auto}.modal-list{max-height:420px;overflow:auto}.date-picker{position:relative}.date-picker-trigger{border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;text-align:left;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.date-picker-trigger.placeholder{color:var(--muted)}.date-picker-trigger:hover,.date-picker-trigger:focus-visible{border-color:var(--primary);outline:none}.date-picker-required{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.date-picker-popover{z-index:30;border:1px solid var(--border);width:min(320px,100%);box-shadow:var(--shadow);background:#fff;border-radius:16px;gap:12px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.date-picker-header{grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;display:grid}.date-picker-month{text-align:center;font-weight:700}.date-picker-nav{width:36px;height:36px;color:var(--primary-dark);cursor:pointer;background:#52bfb81f;border:0;border-radius:10px;font-size:1.2rem;line-height:1}.date-picker-nav:hover{background:#52bfb838}.date-picker-weekdays,.date-picker-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.date-picker-weekdays span{text-align:center;color:var(--muted);padding:4px 0;font-size:.75rem;font-weight:600}.date-picker-day{aspect-ratio:1;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;font-weight:600}.date-picker-day:hover:not(:disabled){background:#52bfb81f}.date-picker-day.outside{color:#bdbdbd}.date-picker-day.today:not(.selected){box-shadow:inset 0 0 0 1.5px var(--primary)}.date-picker-day.selected{background:var(--primary);color:#fff}.date-picker-day.disabled,.date-picker-day:disabled{opacity:.35;cursor:not-allowed}.date-picker-footer{border-top:1px solid #f0f0f0;justify-content:space-between;gap:8px;padding-top:4px;display:flex}.diagnosis-page{grid-template-rows:auto auto auto auto minmax(0,1fr);height:calc(100vh - 56px);max-height:calc(100vh - 56px);overflow:hidden}.diagnosis-search{padding:4px}.diagnosis-search input{border:1px solid var(--border);background:#f5f5f5;border-radius:28px;width:100%;padding:14px 18px}.diagnosis-search input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #52bfb847}.diagnosis-done{width:100%}.diagnosis-selected,.diagnosis-results-wrap{gap:10px;min-height:0;display:grid}.diagnosis-selected-list{gap:10px;max-height:180px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.diagnosis-selected-item{border:1px solid var(--border);background:#fff;border-radius:14px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.diagnosis-selected-text{gap:4px;min-width:0;display:grid}.diagnosis-selected-title{color:var(--text);font-size:.98rem;font-weight:700;line-height:1.35}.diagnosis-selected-code{color:var(--primary-dark);font-size:.85rem;font-weight:600}.diagnosis-selected-remove{width:28px;height:28px;color:var(--danger);cursor:pointer;background:#f755551f;border:0;border-radius:50%;flex-shrink:0;font-size:1.2rem;line-height:1}.diagnosis-selected-remove:hover{background:#f7555533}.diagnosis-results-wrap{grid-template-rows:auto minmax(0,1fr);height:100%}.diagnosis-results-panel{border:1px solid var(--border);background:#fff;border-radius:16px;height:100%;min-height:220px;display:grid;overflow:hidden}.diagnosis-results-list{align-content:start;gap:0;display:grid;overflow:auto}.diagnosis-result-row{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.diagnosis-result-row>div{gap:4px;display:grid}.diagnosis-result-row strong{color:var(--text)}.diagnosis-result-row span{color:var(--muted);font-size:.92rem}.diagnosis-result-row.selected{background:#52bfb814}.diagnosis-result-action{width:28px;height:28px;color:var(--primary-dark);background:#52bfb824;border-radius:50%;flex-shrink:0;place-items:center;font-size:1.1rem;font-weight:700;display:grid}.diagnosis-result-row.selected .diagnosis-result-action{color:var(--danger);background:#f755551f}.diagnosis-state{text-align:center;min-height:160px;color:var(--muted);place-items:center;gap:8px;padding:24px;display:grid}.diagnosis-state.empty-results{min-height:220px}.diagnosis-empty-icon{width:64px;height:64px;color:var(--primary);background:#52bfb81f;border-radius:50%;place-items:center;font-size:1.8rem;display:grid}@media (width<=900px){.diagnosis-page{height:calc(100vh - 120px);max-height:calc(100vh - 120px)}.app-shell{grid-template-columns:1fr}.sidebar{z-index:10;flex-direction:row;align-items:center;gap:16px;position:sticky;top:0;overflow-x:auto}.sidebar-nav{flex-direction:row;flex:1}.sidebar-footer{display:none}.main-content{padding:18px}.form-grid{grid-template-columns:1fr}}
