.fastprax-onboarding{background:linear-gradient(135deg,var(--color-ocean-blue-50) 0,var(--color-healthcare-green-50) 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;padding:var(--spacing-lg)}.onboarding-header{margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl) 0;text-align:center}.header-content{margin:0 auto;max-width:800px}.app-logo{gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.app-logo,.logo-icon{align-items:center;display:flex;justify-content:center}.logo-icon{background:linear-gradient(135deg,var(--color-ocean-blue) 0,var(--color-healthcare-green) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);color:var(--white,#fff);font-size:24px;height:48px;width:48px}.app-logo h1{color:var(--color-ocean-blue);font-size:32px;font-weight:700;letter-spacing:-.5px;margin:0}.onboarding-header h2{color:var(--text-primary);font-size:28px;font-weight:600;margin:0 0 var(--spacing-sm) 0}.onboarding-header p{color:var(--text-secondary);font-size:18px;line-height:1.6;margin:0 0 var(--spacing-xl) 0}.progress-container{background:var(--bg-primary,#fff);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg)}.progress-bar{background-color:var(--color-gray-200);height:8px;margin-bottom:var(--spacing-sm);overflow:hidden;width:100%}.progress-bar,.progress-fill{border-radius:var(--radius-sm)}.progress-fill{background:linear-gradient(90deg,var(--color-healthcare-green) 0,var(--color-ocean-blue) 100%);height:100%;transition:width .3s ease}.progress-text{color:var(--text-secondary);font-size:14px;font-weight:600;text-align:center}.onboarding-content{margin:0 auto;max-width:1000px}.setup-steps{display:flex;flex-direction:column;gap:var(--spacing-lg)}.setup-step{background:var(--bg-primary,#fff);border:2px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-lg);overflow:hidden;padding:var(--spacing-xl);position:relative;transition:all .3s ease}.setup-step.completed{background:var(--color-healthcare-green-50);border-color:var(--color-healthcare-green);box-shadow:var(--shadow-md)}.setup-step.in-progress{background:var(--color-ocean-blue-50);border-color:var(--color-ocean-blue);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.step-header{align-items:flex-start;display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.step-icon{align-items:center;background:var(--bg-primary,#fff);border:2px solid var(--border-light);border-radius:50%;color:var(--text-secondary);display:flex;flex-shrink:0;font-size:18px;font-weight:600;height:48px;justify-content:center;transition:all .3s ease;width:48px}.setup-step.completed .step-icon{background:var(--color-healthcare-green);border-color:var(--color-healthcare-green);color:var(--white,#fff)}.setup-step.in-progress .step-icon{background:var(--color-ocean-blue);border-color:var(--color-ocean-blue);color:var(--white,#fff)}.step-info h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 var(--spacing-xs) 0}.step-info p{color:var(--text-secondary);font-size:16px;line-height:1.5;margin:0}.step-form{border-top:1px solid var(--border-light);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.form-fields{display:flex;flex-direction:column;gap:var(--spacing-xl)}.form-fields h3{border-bottom:2px solid var(--border-light);font-size:20px;margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-md)}.form-fields h3,.form-fields h4{color:var(--text-primary);font-weight:600}.form-fields h4{font-size:16px;margin:0 0 var(--spacing-md) 0}.form-row{display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.form-group label{color:var(--text-primary);display:block;font-size:14px;font-weight:500;margin-bottom:var(--spacing-sm)}.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary,#fff);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);font-size:16px;min-height:48px;padding:var(--spacing-md) var(--spacing-lg);transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-ocean-blue);box-shadow:0 0 0 3px var(--color-ocean-blue-100);outline:none;transform:translateY(-1px)}.form-group input:required:invalid{border-color:var(--color-alert-red)}.form-group small{color:var(--text-muted);font-size:12px;line-height:1.4;margin-top:var(--spacing-xs)}.form-group input::-moz-placeholder,.form-group select::-moz-placeholder,.form-group textarea::-moz-placeholder{color:var(--text-muted);opacity:.7}.form-group input::placeholder,.form-group select::placeholder,.form-group textarea::placeholder{color:var(--text-muted);opacity:.7}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--color-gray-100);color:var(--text-muted);cursor:not-allowed}.form-section{background:var(--color-gray-50);border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg)}.form-section h4{color:var(--text-primary);font-size:16px;font-weight:600}.form-grid,.form-section h4{margin-bottom:var(--spacing-lg)}.form-grid{display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.form-grid .form-group{margin-bottom:0}.form-group.full-width{grid-column:1/-1}.form-group.full-width input,.form-group.full-width select,.form-group.full-width textarea{width:100%}.step-actions{align-items:center;border-top:1px solid var(--border-light);display:flex;gap:var(--spacing-md);justify-content:space-between;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg)}.btn-primary{background:linear-gradient(135deg,var(--color-ocean-blue) 0,var(--color-ocean-blue-700) 100%);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--white,#fff);cursor:pointer;font-size:16px;font-weight:600;min-width:120px;padding:var(--spacing-md) var(--spacing-xl);transition:all .2s ease}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-ocean-blue-700) 0,var(--color-deep-navy) 100%);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-primary:disabled{background:var(--color-gray-300);box-shadow:none;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-primary,#fff);border:1px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:16px;font-weight:500;min-width:100px;padding:var(--spacing-md) var(--spacing-lg);transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:var(--color-gray-50);border-color:var(--color-gray-400);color:var(--text-primary);transform:translateY(-1px)}.btn-secondary:disabled{background:var(--color-gray-100);color:var(--color-gray-400);cursor:not-allowed;transform:none}.validation-error{background:var(--color-alert-red-50);border:1px solid var(--color-alert-red-200);border-radius:var(--radius-md);color:var(--color-alert-red-700);margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.validation-error h4{color:var(--color-alert-red-700);font-size:16px;font-weight:600;margin:0 0 var(--spacing-sm) 0}.validation-error ul{margin:0;padding-left:var(--spacing-lg)}.validation-error li{margin-bottom:var(--spacing-xs)}.hipaa-notice{background:var(--color-ocean-blue-50);border:1px solid var(--color-ocean-blue-200);border-radius:var(--radius-md);margin-top:var(--spacing-lg);padding:var(--spacing-lg)}.hipaa-notice h4{color:var(--color-ocean-blue-700);font-size:16px;font-weight:600;margin:0 0 var(--spacing-sm) 0}.hipaa-notice p{color:var(--color-ocean-blue-600);font-size:14px;line-height:1.5;margin:0}@media(max-width:1024px){.onboarding-content{max-width:100%;padding:0 var(--spacing-md)}.form-row{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media(max-width:768px){.fastprax-onboarding{padding:var(--spacing-md)}.onboarding-header h2{font-size:24px}.onboarding-header p{font-size:16px}.setup-step{margin-bottom:var(--spacing-lg);padding:var(--spacing-lg)}.step-header{flex-direction:column;gap:var(--spacing-md);text-align:center}.form-row{gap:var(--spacing-md);grid-template-columns:1fr}.form-group{margin-bottom:var(--spacing-lg)}.form-fields{gap:var(--spacing-lg)}.step-actions{flex-direction:column;gap:var(--spacing-md)}.btn-primary,.btn-secondary{font-size:16px;padding:var(--spacing-lg);width:100%}}@media(max-width:480px){.fastprax-onboarding{padding:var(--spacing-sm)}.setup-step{padding:var(--spacing-md)}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:var(--spacing-md)}.step-actions{gap:var(--spacing-sm)}}@media print{.fastprax-onboarding{background:var(--bg-primary,#fff);padding:0}.step-actions{display:none}.step-form{border-top:none;padding-top:0}}@media(prefers-reduced-motion:reduce){.btn-primary,.btn-secondary,.progress-fill,.setup-step,.step-icon{transition:none}}.btn-primary:focus,.btn-secondary:focus{outline:2px solid var(--color-ocean-blue);outline-offset:2px}.btn-primary:disabled{position:relative}.btn-primary:disabled:after{align-items:center;animation:fadeInOut 2s ease-in-out infinite;content:"";display:flex;height:16px;justify-content:center;left:50%;margin:-8px 0 0 -8px;position:absolute;top:50%;width:16px}@keyframes fadeInOut{0%,to{opacity:.3}50%{opacity:1}}.feature-gate-loading{align-items:center;display:flex;justify-content:center;min-height:200px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top:3px solid var(--primary-color,#2563eb);height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.upgrade-prompt{flex-direction:column;margin:0 auto;max-width:500px;padding:48px 24px;text-align:center}.upgrade-prompt,.upgrade-prompt-icon{align-items:center;display:flex;justify-content:center}.upgrade-prompt-icon{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-radius:50%;color:#6b7280;height:80px;margin-bottom:24px;width:80px}.upgrade-prompt-icon.warning{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.upgrade-prompt-title{color:#111827;font-size:24px;font-weight:700;margin:0 0 12px}.upgrade-prompt-description{color:#6b7280;font-size:16px;line-height:1.5;margin:0 0 24px}.upgrade-prompt-benefits{background:#f9fafb;border-radius:12px;margin-bottom:24px;padding:20px;width:100%}.upgrade-prompt-benefits h3{color:#374151;font-size:14px;font-weight:600;margin:0 0 12px}.upgrade-prompt-benefits ul{list-style:none;margin:0 0 16px;padding:0}.upgrade-prompt-benefits li{align-items:center;color:#4b5563;display:flex;font-size:14px;gap:8px;padding:6px 0}.upgrade-prompt-benefits li svg{color:#10b981;flex-shrink:0}.upgrade-prompt-price{align-items:baseline;display:flex;gap:4px;justify-content:center}.price-amount{color:#111827;font-size:32px;font-weight:700}.price-period{color:#6b7280;font-size:16px}.upgrade-prompt-button{background:var(--primary-color,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 32px;transition:background-color .2s,transform .1s}.upgrade-prompt-button:hover{background:var(--primary-hover,#1d4ed8)}.upgrade-prompt-button:active{transform:scale(.98)}.limit-meter{background:#e5e7eb;border-radius:12px;height:24px;margin:16px 0;overflow:hidden;position:relative;width:100%}.limit-meter-fill{background:linear-gradient(90deg,#f59e0b,#ef4444);border-radius:12px;height:100%;left:0;position:absolute;top:0;transition:width .3s ease}.limit-meter-text{color:#374151;font-size:12px;font-weight:600;left:50%;position:absolute;text-shadow:0 1px 2px hsla(0,0%,100%,.8);top:50%;transform:translate(-50%,-50%)}.upgrade-suggestion{color:#6b7280;font-size:14px;margin:0 0 20px}.usage-warning-banner{align-items:center;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.usage-warning-banner.critical{background:#fee2e2;border-color:#ef4444}.usage-warning-content{align-items:center;color:#92400e;display:flex;font-size:14px;font-weight:500;gap:12px}.usage-warning-banner.critical .usage-warning-content{color:#991b1b}.usage-warning-content svg{color:#d97706;flex-shrink:0}.usage-warning-banner.critical .usage-warning-content svg{color:#dc2626}.usage-warning-upgrade{background:#fff;border:1px solid #d97706;border-radius:6px;color:#d97706;cursor:pointer;font-size:14px;font-weight:600;padding:6px 16px;transition:all .2s}.usage-warning-banner.critical .usage-warning-upgrade{border-color:#dc2626;color:#dc2626}.usage-warning-upgrade:hover{background:#d97706;color:#fff}.usage-warning-banner.critical .usage-warning-upgrade:hover{background:#dc2626}@media(max-width:640px){.upgrade-prompt{padding:32px 16px}.upgrade-prompt-title{font-size:20px}.upgrade-prompt-description{font-size:14px}.price-amount{font-size:28px}.usage-warning-banner{flex-direction:column;gap:12px;text-align:center}.usage-warning-upgrade{width:100%}}.modal-overlay{align-items:center;background:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:1000}.provider-upgrade-modal{background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);max-width:420px;padding:32px;position:relative;width:100%}.modal-close{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;padding:4px;position:absolute;right:16px;top:16px;transition:background-color .2s}.modal-close:hover{background:#f3f4f6;color:#374151}.modal-icon{align-items:center;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:50%;color:var(--primary-color,#2563eb);display:flex;height:72px;justify-content:center;margin:0 auto 20px;width:72px}.modal-title{color:#111827;font-size:24px;font-weight:700;margin:0 0 8px;text-align:center}.modal-description{color:#6b7280;font-size:14px;line-height:1.5;margin:0 0 24px;text-align:center}.price-card{background:#f9fafb;border-radius:12px;margin-bottom:24px;padding:20px}.price-row{align-items:center;display:flex;justify-content:space-between}.price-label{color:#374151;font-size:14px;font-weight:500}.price-value{color:var(--primary-color,#2563eb);font-size:18px;font-weight:700}.price-divider{border:none;border-top:1px solid #e5e7eb;margin:16px 0}.team-features{display:flex;flex-direction:column;gap:12px}.team-features-label{color:#6b7280;font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.team-feature-row{align-items:center;display:flex;gap:12px}.feature-icon{font-size:20px;text-align:center;width:32px}.feature-info{display:flex;flex-direction:column}.feature-title{color:#374151;font-size:14px;font-weight:500}.feature-subtitle{color:#9ca3af;font-size:12px}.modal-actions{display:flex;flex-direction:column;gap:12px}.modal-actions .btn-primary{background:var(--primary-color,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 24px;transition:background-color .2s,transform .1s}.modal-actions .btn-primary:hover{background:var(--primary-hover,#1d4ed8)}.modal-actions .btn-primary:active{transform:scale(.98)}.modal-actions .btn-secondary{background:transparent;border:none;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:color .2s}.modal-actions .btn-secondary:hover{color:#374151}@media(prefers-color-scheme:dark){.upgrade-prompt-icon{background:linear-gradient(135deg,#374151,#1f2937);color:#9ca3af}.upgrade-prompt-icon.warning{background:linear-gradient(135deg,#78350f,#451a03);color:#fbbf24}.upgrade-prompt-title{color:#f9fafb}.upgrade-prompt-description{color:#9ca3af}.upgrade-prompt-benefits{background:#1f2937}.upgrade-prompt-benefits h3{color:#e5e7eb}.upgrade-prompt-benefits li{color:#d1d5db}.price-amount{color:#f9fafb}.limit-meter{background:#374151}.limit-meter-text{color:#e5e7eb;text-shadow:0 1px 2px rgba(0,0,0,.5)}.upgrade-suggestion{color:#9ca3af}.usage-warning-banner{background:#451a03;border-color:#b45309}.usage-warning-banner.critical{background:#450a0a;border-color:#b91c1c}.usage-warning-content{color:#fcd34d}.usage-warning-banner.critical .usage-warning-content{color:#fca5a5}.modal-overlay{background:rgba(0,0,0,.7)}.provider-upgrade-modal{background:#1f2937}.modal-close{color:#9ca3af}.modal-close:hover{background:#374151;color:#e5e7eb}.modal-icon{background:linear-gradient(135deg,#1e3a5f,#1e40af)}.modal-title{color:#f9fafb}.modal-description{color:#9ca3af}.price-card{background:#374151}.price-label{color:#d1d5db}.price-divider{border-top-color:#4b5563}.team-features-label{color:#9ca3af}.feature-title{color:#e5e7eb}.feature-subtitle,.modal-actions .btn-secondary{color:#9ca3af}.modal-actions .btn-secondary:hover{color:#e5e7eb}}.patient-portal-page-shell{background:radial-gradient(circle at top left,rgba(37,99,235,.12),transparent 34%),radial-gradient(circle at top right,rgba(14,165,233,.1),transparent 30%),linear-gradient(180deg,#f5f9ff,#f8fafc 46%,#eef4ff);min-height:100vh}.patient-portal-page-content{margin:0 auto;max-width:1120px;padding:28px 24px 32px}.patient-portal-page-header{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:hsla(0,0%,100%,.82);border-bottom:1px solid rgba(148,163,184,.18);box-shadow:0 18px 40px -36px rgba(15,23,42,.45);position:relative;z-index:2}.patient-portal-page-header-inner{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin:0 auto;max-width:1120px;padding:18px 24px 16px}.patient-portal-header-copy{display:flex;flex-direction:column;gap:6px}.patient-portal-header-eyebrow{color:#2563eb;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.patient-portal-header-title{color:#0f172a;font-size:30px;font-weight:700;line-height:1.1;margin:0}.patient-portal-header-subtitle{color:#64748b;font-size:15px;line-height:1.5;margin:0;max-width:620px}.patient-portal-header-actions{align-items:center;display:flex;gap:12px}.patient-portal-action-button{align-items:center;background:hsla(0,0%,100%,.92);border:1px solid rgba(148,163,184,.22);border-radius:999px;box-shadow:0 20px 45px -34px rgba(15,23,42,.35);color:#0f172a;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 18px;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,color .15s ease}.patient-portal-action-button:hover{box-shadow:0 24px 48px -34px rgba(15,23,42,.42);transform:translateY(-1px)}.patient-portal-action-button:active{transform:scale(.98)}.patient-portal-action-button-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:transparent;color:#fff}.patient-portal-action-button-secondary{background:rgba(239,246,255,.9);color:#1d4ed8}.patient-portal-tabs-desktop{display:flex;gap:10px;margin:0 auto;max-width:1120px;overflow-x:auto;padding:14px 24px 12px;-webkit-overflow-scrolling:touch}.patient-portal-tab-button{align-items:center;background:transparent;border:none;border-radius:999px;color:#64748b;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;line-height:1;padding:10px 14px;transition:background-color .15s ease,color .15s ease,transform .15s ease;white-space:nowrap}.patient-portal-tab-button:hover{background:rgba(241,245,249,.9)}.patient-portal-tab-button:active{transform:scale(.97)}.patient-portal-tab-button.active{background:rgba(37,99,235,.1);color:#2563eb}.patient-portal-tab-icon-wrapper{align-items:center;display:inline-flex;justify-content:center;position:relative}.patient-portal-tabs-mobile{display:none}.patient-portal-pull-indicator{align-items:center;color:#64748b;display:flex;font-size:13px;font-weight:500;gap:8px;justify-content:center;overflow:hidden}.patient-portal-inline-error{background:hsla(0,86%,97%,.95);border:1px solid hsla(0,94%,82%,.45);border-radius:18px;color:#b91c1c;font-size:14px;margin-bottom:20px;padding:14px 16px}.patient-portal-stat-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:24px}.patient-portal-stat-card{align-items:center;background:linear-gradient(180deg,hsla(0,0%,100%,.96),rgba(248,250,252,.98));border:1px solid rgba(226,232,240,.95);border-radius:24px;box-shadow:0 24px 60px -42px rgba(15,23,42,.3);display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:132px;padding:20px 18px;text-align:center}.patient-portal-stat-icon{align-items:center;background:rgba(239,246,255,.9);border-radius:16px;display:inline-flex;height:48px;justify-content:center;width:48px}.patient-portal-stat-value{color:#0f172a;font-size:28px;font-weight:700;line-height:1.1}.patient-portal-stat-label{color:#64748b;font-size:12px;font-weight:600;line-height:1.3}.patient-portal-surface{background:hsla(0,0%,100%,.92);border:1px solid rgba(226,232,240,.95);border-radius:24px;box-shadow:0 32px 70px -48px rgba(15,23,42,.34);padding:24px}.patient-portal-surface+.patient-portal-surface{margin-top:20px}.patient-portal-goals-surface{overflow:hidden}.patient-portal-goals-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.patient-portal-goals-eyebrow{align-items:center;color:#0f766e;display:inline-flex;font-size:11px;font-weight:700;gap:6px;letter-spacing:.12em;margin-bottom:8px;text-transform:uppercase}.patient-portal-goals-title{margin-bottom:8px}.patient-portal-goals-subtitle{color:#64748b;font-size:14px;line-height:1.6;margin:0;max-width:620px}.patient-portal-goals-summary{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.patient-portal-goals-summary-pill{align-items:center;background:rgba(219,234,254,.88);border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:13px;font-weight:700;gap:6px;padding:10px 14px}.patient-portal-goals-summary-pill-success{background:rgba(220,252,231,.94);color:#15803d}.patient-portal-goals-chart-shell{background:radial-gradient(circle at top right,rgba(14,165,233,.12),transparent 36%),linear-gradient(180deg,rgba(239,246,255,.96),rgba(248,250,252,.98));border:1px solid rgba(191,219,254,.92);border-radius:24px;margin-bottom:18px;padding:18px 18px 12px}.patient-portal-goals-list{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.patient-portal-goal-card{background:rgba(248,250,252,.9);border:1px solid rgba(226,232,240,.95);border-radius:22px;padding:18px}.patient-portal-goal-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.patient-portal-goal-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.patient-portal-goal-badge{align-items:center;background:rgba(219,234,254,.92);border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.02em;padding:6px 10px}.patient-portal-goal-badge-muted{background:rgba(226,232,240,.9);color:#475569}.patient-portal-goal-card-title{color:#0f172a;font-size:15px;line-height:1.5;margin:0}.patient-portal-goal-score{background:color-mix(in srgb,var(--goal-accent,#2563eb) 14%,#fff);border-radius:18px;color:var(--goal-accent,#2563eb);min-width:78px;padding:12px 10px;text-align:center}.patient-portal-goal-score span{display:block;font-size:24px;font-weight:700;line-height:1}.patient-portal-goal-score small{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;margin-top:4px;text-transform:uppercase}.patient-portal-goal-metrics{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.patient-portal-goal-metric{background:hsla(0,0%,100%,.92);border:1px solid rgba(226,232,240,.94);border-radius:16px;padding:12px}.patient-portal-goal-metric-label{color:#64748b;display:block;font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.patient-portal-goal-metric strong{color:#0f172a;font-size:18px;line-height:1.2}.patient-portal-goal-progress-track{background:rgba(226,232,240,.9);border-radius:999px;height:10px;margin-bottom:12px;overflow:hidden;width:100%}.patient-portal-goal-progress-fill{border-radius:999px;height:100%;transition:width .22s ease}.patient-portal-goal-supporting{color:#64748b;display:flex;font-size:12px;gap:12px;justify-content:space-between;line-height:1.5}.patient-portal-section-heading{color:#0f172a;font-size:20px;font-weight:700;line-height:1.2;margin:0 0 18px}.patient-portal-list{display:flex;flex-direction:column;gap:14px}.patient-portal-list-card{background:rgba(248,250,252,.88);border:1px solid rgba(226,232,240,.95);border-radius:20px;padding:18px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background-color .15s ease}.patient-portal-list-card:hover{box-shadow:0 24px 50px -40px rgba(15,23,42,.3);transform:translateY(-1px)}.patient-portal-list-card.unread{background:rgba(239,246,255,.92);border-color:rgba(147,197,253,.95)}.patient-portal-list-card-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.patient-portal-empty-state{background:hsla(0,0%,100%,.94);border:1px solid rgba(226,232,240,.95);border-radius:24px;box-shadow:0 24px 50px -42px rgba(15,23,42,.25);padding:42px 24px;text-align:center}.patient-portal-empty-state-icon{align-items:center;background:rgba(239,246,255,.92);border-radius:24px;color:#2563eb;display:inline-flex;height:72px;justify-content:center;margin:0 auto 16px;width:72px}.patient-portal-empty-state-title{color:#0f172a;font-size:20px;font-weight:700;line-height:1.2;margin:0 0 8px}.patient-portal-empty-state-body{color:#64748b;font-size:14px;line-height:1.5;margin:0}.patient-portal-form-stack{display:flex;flex-direction:column;gap:16px}.patient-portal-form-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.patient-portal-field-label{color:#334155;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.patient-portal-input,.patient-portal-select,.patient-portal-textarea{background:rgba(248,250,252,.96);border:1px solid rgba(203,213,225,.9);border-radius:16px;box-sizing:border-box;color:#0f172a;font-family:inherit;font-size:14px;padding:12px 14px;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;width:100%}.patient-portal-input:focus,.patient-portal-select:focus,.patient-portal-textarea:focus{background:#fff;border-color:rgba(37,99,235,.45);box-shadow:0 0 0 4px rgba(37,99,235,.12);outline:none}.patient-portal-upload-meta{color:#64748b;font-size:14px;margin-top:8px}.patient-portal-primary-button{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:18px;box-shadow:0 24px 48px -34px rgba(37,99,235,.55);color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:14px 16px;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;width:100%}.patient-portal-primary-button:hover:not(:disabled){transform:translateY(-1px)}.patient-portal-primary-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.58}.patient-portal-tonal-panel{background:rgba(239,246,255,.9);border:1px solid rgba(191,219,254,.95);border-radius:18px;padding:16px}.patient-portal-link-button{color:#2563eb;font-size:14px;font-weight:600;text-decoration:none}.patient-portal-secondary-button{align-items:center;background:rgba(239,246,255,.95);border:1px solid rgba(191,219,254,.95);border-radius:16px;color:#1d4ed8;cursor:pointer;display:inline-flex;font-size:14px;font-weight:700;gap:8px;justify-content:center;padding:11px 16px;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.patient-portal-secondary-button:hover:not(:disabled){box-shadow:0 20px 40px -32px rgba(29,78,216,.4);transform:translateY(-1px)}.patient-portal-secondary-button:disabled{cursor:not-allowed;opacity:.56}.patient-portal-split-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.patient-portal-section-subtitle{color:#64748b;font-size:14px;line-height:1.6;margin:0}.patient-portal-inline-pill{align-items:center;background:rgba(226,232,240,.95);border-radius:999px;color:#334155;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;min-height:36px;padding:8px 12px}.patient-portal-document-card{align-items:center;display:flex;gap:14px;justify-content:space-between}.patient-portal-document-card-main{align-items:flex-start;display:flex;flex:1;gap:14px}.patient-portal-document-card-icon{align-items:center;background:rgba(219,234,254,.95);border-radius:16px;color:#1d4ed8;display:inline-flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.patient-portal-document-card-icon-muted{background:rgba(241,245,249,.95);color:#475569}.patient-portal-document-card-topline{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:4px}.patient-portal-document-card-title{color:#0f172a;font-size:16px;font-weight:700;line-height:1.4}.patient-portal-document-card-meta{color:#475569;font-size:14px;line-height:1.5}.patient-portal-document-card-submeta{color:#64748b;font-size:12px;line-height:1.5;margin-top:4px}.patient-portal-document-badge{align-items:center;background:rgba(241,245,249,.95);border-radius:999px;color:#475569;display:inline-flex;font-size:11px;font-weight:700;padding:6px 10px}.patient-portal-document-badge-shared{background:rgba(219,234,254,.95);color:#1d4ed8}.patient-portal-ios-tab-shell{margin-bottom:18px}.patient-portal-ios-appointment-card{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:20px;cursor:pointer;display:flex;gap:14px;padding:16px 18px;text-align:left;transition:transform .15s ease,box-shadow .15s ease;width:100%}.patient-portal-ios-appointment-card:hover{box-shadow:0 24px 48px -40px rgba(15,23,42,.3);transform:translateY(-1px)}.patient-portal-ios-appointment-time{display:flex;flex-direction:column;gap:2px;min-width:96px}.patient-portal-ios-appointment-date{color:#64748b;font-size:12px;font-weight:600;line-height:1.3}.patient-portal-ios-appointment-time strong{color:#0f172a;font-size:15px;line-height:1.3}.patient-portal-ios-appointment-accent{align-self:stretch;background:linear-gradient(180deg,#1d4ed8,#0ea5e9);border-radius:999px;width:3px}.patient-portal-ios-appointment-body{flex:1;min-width:0}.patient-portal-ios-appointment-title{color:#0f172a;font-size:18px;font-weight:700;line-height:1.3;margin-bottom:4px}.patient-portal-ios-appointment-meta{color:#475569;font-size:14px;line-height:1.5}.patient-portal-appointment-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.patient-portal-appointment-badge{align-items:center;background:rgba(226,232,240,.95);border-radius:999px;color:#334155;display:inline-flex;font-size:11px;font-weight:800;justify-content:center;letter-spacing:.02em;min-height:32px;padding:6px 10px}.patient-portal-appointment-badge-telehealth{background:rgba(224,231,255,.98);color:#4338ca}.patient-portal-empty-state-compact{padding-block:28px}.patient-portal-claim-card{gap:16px}.patient-portal-claim-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:14px}.patient-portal-status-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:700;justify-content:center;padding:6px 10px;white-space:nowrap}.patient-portal-status-pill.success{background:rgba(220,252,231,.96);color:#166534}.patient-portal-status-pill.info{background:rgba(219,234,254,.96);color:#1d4ed8}.patient-portal-status-pill.danger{background:hsla(0,93%,94%,.96);color:#991b1b}.patient-portal-status-pill.neutral{background:rgba(241,245,249,.96);color:#475569}.patient-portal-financial-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.patient-portal-financial-cell{background:hsla(0,0%,100%,.95);border:1px solid rgba(226,232,240,.96);border-radius:18px;padding:14px}.patient-portal-financial-label{color:#64748b;display:block;font-size:11px;font-weight:700;letter-spacing:.04em;line-height:1.4;margin-bottom:6px;text-transform:uppercase}.patient-portal-financial-cell strong{color:#0f172a;font-size:17px;line-height:1.3}.patient-portal-tonal-panel-compact{margin-bottom:12px;padding:14px 16px}.patient-portal-claim-documents{display:flex;flex-wrap:wrap;gap:10px}.patient-portal-inline-action{align-items:center;background:rgba(219,234,254,.95);border:none;border-radius:999px;color:#1d4ed8;cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:6px;padding:10px 14px}.patient-portal-inline-action:disabled{cursor:not-allowed;opacity:.56}.patient-portal-login-shell{align-items:center;background:radial-gradient(circle at top left,rgba(37,99,235,.14),transparent 34%),linear-gradient(180deg,#eff6ff,#f8fafc 58%,#eef4ff);display:flex;justify-content:center;min-height:100vh;padding:24px}.patient-portal-login-card{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:hsla(0,0%,100%,.9);border:1px solid rgba(226,232,240,.95);border-radius:28px;box-shadow:0 40px 80px -56px rgba(15,23,42,.38);max-width:430px;padding:32px;width:100%}.patient-portal-login-header{margin-bottom:28px;text-align:center}.patient-portal-login-icon{align-items:center;background:rgba(239,246,255,.9);border-radius:24px;color:#2563eb;display:inline-flex;height:72px;justify-content:center;margin:0 auto 16px;width:72px}.patient-portal-login-title{color:#0f172a;font-size:30px;font-weight:700;line-height:1.1;margin:0 0 8px}.patient-portal-login-subtitle{color:#64748b;font-size:14px;line-height:1.5;margin:0}@media(max-width:767px){.patient-portal-page-shell{padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))}.patient-portal-page-content{padding:18px 16px 24px}.patient-portal-page-header-inner{align-items:stretch;flex-direction:column;padding:18px 16px 14px}.patient-portal-header-title{font-size:28px}.patient-portal-header-actions{justify-content:flex-end;width:100%}.patient-portal-action-button-toolbar{border-radius:16px;height:48px;min-width:48px;padding:0;width:48px}.patient-portal-action-button-toolbar .patient-portal-action-label,.patient-portal-tabs-desktop{display:none}.patient-portal-tabs-mobile{align-items:flex-start;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:hsla(0,0%,100%,.88);border:1px solid rgba(226,232,240,.95);border-radius:24px;bottom:calc(10px + env(safe-area-inset-bottom, 0px));box-shadow:0 24px 55px -38px rgba(15,23,42,.38);display:flex;gap:6px;justify-content:space-around;left:12px;padding:10px 10px 12px;position:fixed;right:12px;z-index:100}.patient-portal-mobile-tab{align-items:center;background:transparent;border:none;border-radius:16px;color:#64748b;cursor:pointer;display:flex;flex:1;flex-direction:column;gap:5px;justify-content:center;min-height:54px;padding:8px 4px;transition:background-color .15s ease,color .15s ease,transform .15s ease}.patient-portal-mobile-tab:active{background:rgba(241,245,249,.95);transform:scale(.96)}.patient-portal-mobile-tab.active{background:rgba(37,99,235,.1);color:#2563eb}.patient-portal-mobile-label{font-size:10px;font-weight:700;line-height:1.1}.patient-portal-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-portal-surface{border-radius:22px;padding:20px 18px}.patient-portal-goals-header{flex-direction:column}.patient-portal-goals-summary{justify-content:flex-start}.patient-portal-goals-chart-shell{border-radius:20px;padding:14px 12px 10px}.patient-portal-goals-list{grid-template-columns:1fr}.patient-portal-goal-card{border-radius:20px;padding:16px}.patient-portal-goal-card-header{flex-direction:column}.patient-portal-goal-score{width:100%}.patient-portal-goal-metrics{grid-template-columns:1fr}.patient-portal-goal-supporting{flex-direction:column}.patient-portal-list-card{border-radius:18px;padding:16px}.patient-portal-claim-card-header,.patient-portal-document-card,.patient-portal-document-card-topline,.patient-portal-split-heading{flex-direction:column}.patient-portal-secondary-button{width:100%}.patient-portal-ios-appointment-card{align-items:flex-start;flex-direction:column}.patient-portal-ios-appointment-time{min-width:0}.patient-portal-ios-appointment-accent{height:3px;width:100%}.patient-portal-appointment-actions,.patient-portal-appointment-actions .patient-portal-secondary-button{width:100%}.patient-portal-financial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-portal-form-grid{grid-template-columns:1fr}.patient-portal-login-shell{align-items:stretch;padding:16px}.patient-portal-login-card{border-radius:24px;margin:auto 0;max-width:none;padding:24px 20px}}