:root{--background:#f5f8f9;--surface:#ffffff;--surface-muted:#edf5f7;--text:#122832;--muted:#60747c;--line:#d6e2e5;--brand:#005573;--brand-strong:#003e56;--brand-soft:#007196;--accent:#f79421;--danger:#a43d3d;--warning:#b76612;--shadow:0 18px 50px rgba(0,85,115,0.1)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--background);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.site-page{min-height:100vh;display:grid;grid-gap:56px;gap:56px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 40px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand-link{text-decoration:none}.site-nav{display:flex;align-items:center;gap:16px;font-weight:700}.site-nav a{text-decoration:none}.hero-section{width:min(1180px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);grid-gap:34px;gap:34px;align-items:center;min-height:520px}.hero-copy h2{font-size:52px;line-height:1.02;margin-bottom:18px}.hero-copy p{color:var(--muted);font-size:18px;line-height:1.55;max-width:680px}.hero-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:22px;display:grid;grid-gap:18px;gap:18px}.hero-logo{width:min(280px,100%);height:auto;object-fit:contain;justify-self:start}.hero-note{background:var(--surface-muted);border-radius:8px;padding:18px}.hero-note p{color:var(--muted);line-height:1.5;margin:8px 0 0}.feature-band{width:min(1180px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.feature-item{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:18px;display:flex;gap:12px}.feature-item>span{color:var(--brand)}.feature-item h3{margin-bottom:6px}.feature-item p{color:var(--muted);font-size:14px;line-height:1.45;margin:0}.plans-section{margin:0 auto 70px}.learn-section,.plans-section{width:min(1180px,calc(100% - 48px));display:grid;grid-gap:22px;gap:22px}.learn-section{margin:0 auto}.video-placeholder{aspect-ratio:16/9;border:1px dashed var(--brand);border-radius:8px;background:#ffffff;display:grid;place-items:center;padding:24px;text-align:center}.video-placeholder>div{max-width:440px;display:grid;justify-items:center;grid-gap:10px;gap:10px}.video-placeholder svg{color:var(--brand)}.video-placeholder p{color:var(--muted);line-height:1.45;margin:0}.section-heading h2{font-size:34px;margin-bottom:8px}.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:18px;gap:18px}.plan-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:22px;display:grid;grid-gap:12px;gap:12px}.plan-card.featured{border-color:var(--brand)}.plan-limit{color:var(--muted);margin:0}.plan-price{font-size:38px;font-weight:800}.plan-price span{color:var(--muted);font-size:16px;font-weight:700}.plan-card ul{list-style:none;padding:0;margin:6px 0 0;display:grid;grid-gap:10px;gap:10px}.plan-card li{display:flex;align-items:center;gap:8px;color:var(--muted)}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{background:#ffffff;border-right:1px solid var(--line);padding:24px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:40px;height:40px;border-radius:8px;background:var(--brand);color:#ffffff;display:grid;place-items:center;font-weight:700}.brand-symbol{width:42px;height:42px;object-fit:contain;flex:0 0 auto}.brand h1{margin:0;font-size:21px}.brand p,.meta,.microcopy,.profile p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.nav{display:grid;grid-gap:8px;gap:8px}.nav button,.patient-button{border:0;background:transparent;color:var(--text);border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left}.nav button.active,.nav button:hover,.patient-button.active,.patient-button:hover{background:var(--surface-muted)}.profile{margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.main{padding:28px;display:grid;align-content:start;align-items:start;grid-gap:22px;gap:22px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-panel{width:min(100%,440px);background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:24px;display:grid;grid-gap:22px;gap:22px}.patient-intake-page{min-height:100vh;padding:28px;background:linear-gradient(180deg,#f6fafb,#ffffff);display:grid;align-items:start;justify-items:center}.patient-intake-panel{width:min(100%,960px);background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:24px;display:grid;grid-gap:20px;gap:20px}.patient-intake-panel.compact{width:min(100%,520px)}.intake-header{border-bottom:1px solid var(--line);padding-bottom:18px}.intake-header h1,.patient-intake-panel h1{margin:0 0 8px;font-size:32px}.patient-intake-form{display:grid;grid-gap:16px;gap:16px}.intake-success{display:flex;align-items:flex-start;gap:14px;border:1px solid #83c79b;border-radius:8px;background:#f1fbf4;color:#1d6b3a;padding:18px}.intake-success h2{margin:0 0 6px}.intake-success p{margin:0;color:#1d6b3a}.intake-success p+p{margin-top:8px}.intake-success a{color:#1d6b3a;font-weight:700}.intake-portal-notice{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;background:rgba(0,85,115,.08);border-radius:8px;color:var(--brand-strong)}.intake-portal-notice p{margin:0;color:var(--brand-strong);font-size:14px}.intake-portal-notice a{color:var(--brand-strong);font-weight:700}.intake-photo-section{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 0 8px}.intake-photo-picker{position:relative;width:100px;height:100px;border-radius:50%;border:2px dashed var(--line);background:var(--surface-muted);cursor:pointer;overflow:visible;transition:border-color .2s,background .2s;padding:0;display:flex;align-items:center;justify-content:center}.intake-photo-picker:hover{border-color:var(--brand);background:#eaf4f8}.intake-photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;pointer-events:none}.intake-photo-preview{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.intake-photo-badge{position:absolute;bottom:2px;right:2px;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface);pointer-events:none}.intake-photo-hint{margin:0;font-size:12px;color:var(--muted);text-align:center}.intake-portal-section{border-color:var(--brand);background:linear-gradient(180deg,#f0f8fb,#ffffff)}.intake-portal-header{display:flex;align-items:flex-start;gap:12px}.intake-portal-icon{width:36px;height:36px;border-radius:8px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.intake-portal-header h3{margin:0 0 4px}.intake-portal-header .microcopy{margin:0}.intake-optional-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-muted);padding:2px 7px;border-radius:20px;vertical-align:middle}.form-error{color:var(--danger)}.form-error,.form-success{margin:0;font-size:14px;font-weight:700}.form-success{color:var(--brand)}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.eyebrow{margin:0 0 6px;color:var(--brand);font-size:13px;font-weight:700;text-transform:uppercase}h2,h3,p{margin-top:0}h2{margin-bottom:8px;font-size:28px}h3{margin-bottom:12px;font-size:18px}.grid{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);grid-gap:22px;gap:22px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel-body,.panel-header{padding:18px}.panel-header{border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.patient-list{display:grid;grid-gap:8px;gap:8px;padding:8px}.patient-button{width:100%;justify-content:flex-start}.patient-button>span{min-width:0;width:100%}.patient-card-panel{width:100%;display:flex;flex-direction:column;gap:16px}.patient-card-panel-header{display:flex;align-items:center;gap:14px;padding:4px 0}.patient-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.patient-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.05);cursor:pointer;text-align:left;transition:box-shadow .18s,transform .18s,border-color .18s;padding:0}.patient-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.1);transform:translateY(-2px);border-color:#c8d8e8}.patient-card.active{border-color:var(--primary,#6b3fa0);box-shadow:0 4px 16px rgba(107,63,160,.15)}.patient-card-stripe{height:5px;width:100%;flex-shrink:0}.patient-card-stripe[data-color=blue]{background:#3b82f6}.patient-card-stripe[data-color=green]{background:#22c55e}.patient-card-stripe[data-color=purple]{background:#8b5cf6}.patient-card-stripe[data-color=orange]{background:#f97316}.patient-card-stripe[data-color=teal]{background:#14b8a6}.patient-card-stripe[data-color=red]{background:#ef4444}.patient-card-stripe[data-color=indigo]{background:#6366f1}.patient-card-stripe[data-color=amber]{background:#d97706}.patient-card-body{display:flex;flex-direction:column;gap:12px;padding:16px}.patient-card-header{display:flex;align-items:flex-start;gap:12px}.patient-avatar-md{width:48px!important;height:48px!important;font-size:1rem!important;flex-shrink:0}.patient-card-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.patient-card-name{font-weight:700;font-size:.9rem;color:var(--text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patient-card-meta{font-size:.78rem;color:var(--muted);display:block}.patient-consent-tag{flex-shrink:0;font-size:.7rem;font-weight:600;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#166534;white-space:nowrap}.patient-consent-tag.pending{background:#fff3cd;color:#92400e}.patient-card-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0;border-top:1px solid var(--line);margin:0 -16px -16px;padding:0}.patient-stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-right:1px solid var(--line)}.patient-stat-item:last-child{border-right:none}.patient-stat-item strong{font-size:1.1rem;font-weight:700;color:var(--text);line-height:1}.patient-stat-item span{font-size:.65rem;color:var(--muted);text-align:center;line-height:1.2}.patient-stat-item.stat-success strong{color:#16a34a}.patient-stat-item.stat-danger strong{color:#dc2626}.patient-stat-item.stat-progress strong{color:#d97706}.patient-status-note{display:inline-flex;margin-top:6px;border-radius:999px;padding:4px 8px;background:#fff2df;color:var(--warning);font-size:12px;font-weight:800}.columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.field{display:grid;grid-gap:6px;gap:6px}.field label{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#ffffff;color:var(--text)}.field textarea{min-height:90px;resize:vertical}.stack{display:grid;grid-gap:14px;gap:14px}.actions,.status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.checkbox-row{display:flex;gap:8px;color:var(--muted);font-size:14px}.badge,.checkbox-row{align-items:center;font-weight:700}.badge{display:inline-flex;gap:6px;border-radius:999px;padding:6px 10px;font-size:13px;background:var(--surface-muted);color:var(--brand-strong)}.badge.warning{color:var(--warning);background:#fff2df}.badge.success{color:#1d6b3a;background:#e6f6eb}.badge.danger,.badge.recording{color:#ffffff;background:var(--danger)}.btn{border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--text);min-height:40px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.btn.primary{background:var(--brand);border-color:var(--brand);color:#ffffff}.btn.primary:hover{background:var(--brand-soft);border-color:var(--brand-soft)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#ffffff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-busy=true]{opacity:.85}.spinner{animation:spin .8s linear infinite;flex:0 0 auto}.pending-note{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--brand-strong);font-size:14px;font-weight:700}@keyframes spin{to{transform:rotate(1turn)}}.recording-panel{border:1px solid var(--line);border-radius:8px;padding:18px;background:#fbfcfb;display:grid;grid-gap:16px;gap:16px}.timer{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding:0 18px}.tabs button{border:0;background:transparent;padding:14px 10px;color:var(--muted);font-weight:700;border-bottom:2px solid transparent}.tabs button.active{color:var(--brand);border-bottom-color:var(--brand)}.evolution-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:14px;gap:14px}.history{display:grid;grid-gap:10px;gap:10px}.history-item{border:1px solid var(--line);border-radius:8px;padding:14px;background:#ffffff}.session-select{width:100%;color:inherit;text-align:left}.session-select.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(0,85,115,.14)}audio{width:100%}.session-picker{width:min(560px,100%)}.session-workspace{width:100%}.session-steps{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:4px;margin-bottom:16px}.session-steps button{border:0;border-radius:6px;background:transparent;color:var(--muted);min-height:34px;padding:8px 14px;font-weight:800}.session-steps button.active{background:var(--surface-muted);color:var(--brand-strong)}.session-steps button:disabled{opacity:.45;cursor:not-allowed}.session-list{display:grid}.session-list-row{width:100%;border:0;border-top:1px solid var(--line);background:#ffffff;color:var(--text);padding:16px 22px;display:grid;grid-template-columns:minmax(90px,.7fr) minmax(110px,.9fr) minmax(100px,.7fr) minmax(100px,.7fr) minmax(140px,1fr) auto;grid-gap:14px;gap:14px;align-items:center;text-align:left}.session-list-row:hover{background:#fbfdfe}.session-list-row span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.session-list-row strong{display:inline-flex;margin-top:4px}.session-list-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.consent-warning{border:1px solid #f2ca8a;border-radius:8px;background:#fff8eb;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.consent-warning p{margin:4px 0 0;color:var(--muted)}.session-detail-layout{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.session-detail-layout .recording-panel{min-width:0}.session-detail-layout .evolution-grid{grid-template-columns:1fr}.session-detail-layout .evolution-grid textarea{min-height:210px}.session-detail-layout .field textarea{font-size:16px;line-height:1.5}.session-detail-layout .transcript-field textarea{min-height:340px}.session-detail-layout .field input:focus,.session-detail-layout .field select:focus,.session-detail-layout .field textarea:focus{outline:2px solid rgba(0,85,115,.18);border-color:var(--brand)}@media (max-width:980px){.app-shell,.columns,.evolution-grid,.feature-band,.grid,.hero-section,.plans-grid{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.site-header{align-items:flex-start;flex-direction:column}.site-nav{width:100%;flex-wrap:wrap}.registry-edit-form{grid-template-columns:1fr}.hero-copy h2{font-size:38px}.session-detail-layout{grid-template-columns:1fr}.session-steps{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.appointment-action-form,.appointment-card-main,.schedule-grid,.session-list-row{grid-template-columns:1fr}.day-agenda-header{align-items:stretch;flex-direction:column}.finance-filters,.finance-grid,.finance-summary,.report-filters,.report-summary{grid-template-columns:1fr}.finance-item{display:grid}.finance-item-side{justify-items:start}.calendar-day{min-height:70px}}.session-picker{width:100%;margin-top:-36px}.session-picker .panel{width:100%;max-width:none}.session-picker .patient-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.schedule-layout{display:grid;grid-gap:0;gap:0;margin:-18px}.schedule-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:18px;gap:18px;align-items:start}.calendar-header{justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.calendar-header,.calendar-nav{display:flex;align-items:center}.calendar-nav{gap:10px}.calendar-title{margin:0;text-transform:capitalize;font-size:17px;min-width:200px;text-align:center}.cal-nav-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.cal-nav-btn:hover{background:var(--surface-muted);border-color:var(--brand)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px;padding:16px}.calendar-weekday{color:var(--muted);font-size:11px;font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.04em;padding-bottom:8px}.calendar-day{min-height:96px;border:1px solid var(--line);border-radius:10px;background:#ffffff;color:var(--text);padding:10px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;transition:border-color .15s,box-shadow .15s,background .15s;position:relative;overflow:hidden}.nav-submenu{display:grid;grid-gap:6px;gap:6px;padding-left:18px}.nav-submenu button{font-size:14px}.nav-submenu-label{color:var(--muted);font-size:11px;font-weight:800;padding:8px 12px 2px;text-transform:uppercase}.calendar-day:hover:not(:disabled){border-color:var(--brand-soft);box-shadow:0 4px 12px rgba(0,85,115,.1);background:#f9fdff}.calendar-day.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(0,85,115,.18);background:#f0f8fc}.calendar-day.today .cal-day-number{background:var(--brand);color:#fff;border-radius:999px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}.calendar-day:disabled{opacity:.3;cursor:default;background:transparent;border-color:transparent}.cal-day-number{font-size:13px;font-weight:800;line-height:1;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}.cal-day-dots{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:auto}.cal-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0}.cal-dot.success{background:#39a66a}.cal-dot.warning{background:var(--accent)}.cal-dot.danger{background:#d84e78}.cal-dot.recording{background:#2b78d4}.cal-dot-extra{font-size:10px;font-weight:800;color:var(--muted)}.cal-day-count{font-size:11px;font-weight:700;color:var(--brand);white-space:nowrap}.schedule-form{border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:16px}.schedule-side{align-content:start}.schedule-list{border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:16px;display:grid;grid-gap:12px;gap:12px}.day-agenda-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.day-agenda-header h3{margin:0}.day-agenda-list{display:grid;grid-gap:10px;gap:10px;align-content:start}.appointment-card{position:relative;border:1px solid var(--line);border-radius:8px;background:#ffffff;box-shadow:0 6px 18px rgba(0,37,52,.04);overflow:hidden}.appointment-card-main{width:100%;border:0;background:transparent;color:var(--text);min-height:86px;padding:12px 16px 12px 18px;display:grid;grid-template-columns:minmax(130px,.8fr) minmax(150px,.9fr) minmax(230px,1.2fr) auto;grid-gap:14px;gap:14px;align-items:center;text-align:left}.appointment-card-main:hover{background:#fbfdfe}.appointment-accent{position:absolute;inset:0 auto 0 0;width:5px;background:var(--brand)}.appointment-card.success .appointment-accent{background:#39a66a}.appointment-card.warning .appointment-accent{background:var(--warning)}.appointment-card.danger .appointment-accent{background:#d84e78}.appointment-card.recording .appointment-accent{background:#2b78d4}.appointment-patient,.appointment-time,.appointment-topic{display:grid;grid-gap:4px;gap:4px}.appointment-patient strong,.appointment-time>strong,.appointment-topic>strong{font-size:14px}.appointment-patient span,.appointment-time span,.appointment-topic span{color:var(--muted);font-size:12px}.appointment-patient{grid-template-columns:auto minmax(0,1fr);align-items:center}.appointment-patient div{display:grid;grid-gap:2px;gap:2px;min-width:0}.appointment-patient span,.appointment-patient strong{display:block}.patient-avatar{width:38px;height:38px;border-radius:999px;background:var(--surface-muted);color:var(--brand-strong);display:inline-flex;font-size:13px;font-weight:900}.status-dot{display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;font-weight:800}.status-dot:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.status-dot.success{color:#1d6b3a}.status-dot.warning{color:var(--warning)}.status-dot.danger{color:var(--danger)}.status-dot.recording{color:#2b78d4}.appointment-card-detail{border-top:1px solid var(--line);padding:14px 18px 16px 20px}.appointment-actions{display:grid;grid-gap:12px;gap:12px}.appointment-action-form{display:grid;grid-template-columns:minmax(170px,220px) minmax(180px,1fr) auto;grid-gap:10px;gap:10px;align-items:end}.inline-time-range{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:8px;gap:8px;align-items:center}.inline-time-range span{font-size:13px;color:#4f5f6a}.app-toast{position:fixed;top:18px;right:18px;z-index:60;min-width:280px;max-width:420px;padding:12px 14px;border-radius:8px;border:1px solid transparent;box-shadow:0 10px 26px rgba(0,22,32,.18);font-size:14px;font-weight:600}.app-toast.success{background:#ecfdf3;color:#166534;border-color:#bbf7d0}.app-toast.error{background:#fef2f2;color:#991b1b;border-color:#fecaca}.modal-backdrop{position:fixed;inset:0;z-index:20;background:rgba(0,22,32,.36);display:grid;place-items:center;padding:24px}.modal-panel{width:min(720px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:8px;background:#ffffff;box-shadow:0 24px 60px rgba(0,22,32,.22)}.modal-header{border-bottom:1px solid var(--line);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.modal-header h3{margin:0}.modal-panel .schedule-form{border:0;border-radius:0;background:#ffffff}.patient-search-combo{position:relative}.patient-search-input{width:100%;box-sizing:border-box}.patient-search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#ffffff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);max-height:220px;overflow-y:auto;z-index:200;list-style:none;margin:0;padding:4px 0}.patient-search-dropdown li{padding:9px 14px;font-size:14px;cursor:pointer;color:var(--text)}.patient-search-dropdown li.active,.patient-search-dropdown li:hover{background:#eef4fb;color:var(--brand)}.patient-search-dropdown li.no-results{color:var(--muted);cursor:default;font-style:italic}.icon-btn{width:42px;padding:0;justify-content:center}.appointment-item{border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:12px;display:grid;grid-gap:6px;gap:6px}.appointment-item.success{border-color:#83c79b;background:#f1fbf4}.appointment-item.danger{border-color:#d9a0a0;background:#fff3f3}.appointment-item p{margin:0;color:var(--muted);font-size:14px;line-height:1.35}.appointment-item strong{color:var(--text)}.main.sessions-compact{gap:10px}.main.sessions-compact .topbar{margin-bottom:0}.main.sessions-compact .session-picker{margin-top:0}.patients-grid{margin-top:0;grid-template-columns:minmax(320px,420px) minmax(0,1fr)}.main.sessions-compact .patients-grid{margin-top:0}.patient-record-picker,.patient-workspace,.patient-workspace .panel{width:100%}.patient-record-picker .patient-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.patient-picker{width:100%;background:var(--surface);border-radius:12px;border:1px solid var(--line);overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.04)}.patient-picker-header{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.patient-picker-search{flex:1 1;display:flex;align-items:center;gap:8px;background:var(--surface-muted,#f5f7f9);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.patient-picker-search input{flex:1 1;border:none;background:transparent;outline:none;font-size:.875rem;color:var(--text)}.patient-picker-clear{background:none;border:none;cursor:pointer;color:var(--muted);padding:2px;display:flex;align-items:center}.patient-picker-list{display:flex;flex-direction:column}.patient-picker-item{display:flex;align-items:center;gap:14px;padding:14px 20px;background:none;border:none;border-top:1px solid var(--line);text-align:left;cursor:pointer;transition:background .1s;width:100%}.patient-picker-item:first-child{border-top:none}.patient-picker-item:hover{background:var(--surface-muted,#f5f7f9)}.patient-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0;color:#fff;letter-spacing:.02em}.patient-avatar[data-color=blue]{background:#3b82f6}.patient-avatar[data-color=green]{background:#22c55e}.patient-avatar[data-color=purple]{background:#8b5cf6}.patient-avatar[data-color=orange]{background:#f97316}.patient-avatar[data-color=teal]{background:#14b8a6}.patient-avatar[data-color=red]{background:#ef4444}.patient-avatar[data-color=indigo]{background:#6366f1}.patient-avatar[data-color=amber]{background:#d97706}.patient-picker-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.patient-picker-name{font-weight:600;font-size:.9375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.patient-picker-meta{font-size:.8125rem;color:var(--muted)}.patient-picker-badges{display:flex;align-items:center;gap:6px;flex-shrink:0}.patient-picker-arrow{color:var(--muted);margin-left:2px}.registry-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:8px;gap:8px;padding:8px}.registry-item{border:0;border-radius:8px;background:#ffffff;color:var(--text);padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;text-align:left}.registry-item:hover{background:var(--surface-muted)}.registry-listview{display:grid;grid-template-columns:1fr;grid-gap:0;gap:0;padding:0}.registry-listview .registry-item{border-radius:0;border-top:1px solid var(--line);padding:16px 22px}.registry-listview .registry-item:first-child{border-top:0}.registry-listview .registry-item:hover{background:#fbfdfe}.registry-item form{flex:0 0 auto}.registry-item-info{display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0}.registry-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.registry-edit-form{width:100%;display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;grid-gap:12px;gap:12px;align-items:end}.registry-edit-form .actions{flex-wrap:nowrap}.registry-footer{border-top:1px solid var(--line)}.report-page{display:grid;grid-gap:18px;gap:18px}.report-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));grid-gap:12px;gap:12px;align-items:end}.report-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.report-table-wrap{width:100%;overflow:auto}.report-table{width:100%;border-collapse:collapse;font-size:14px}.report-table td,.report-table th{border-top:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}.report-table th{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.report-table td:last-child,.report-table th:last-child{text-align:right}.finance-layout,.team-layout{display:grid;grid-gap:18px;gap:18px}.finance-summary{display:grid;grid-template-columns:repeat(2,minmax(0,220px));grid-gap:12px;gap:12px}.summary-box{border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:16px;display:grid;grid-gap:6px;gap:6px}.summary-box span{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase}.summary-box strong{font-size:24px}.summary-box.success strong{color:#1d6b3a}.summary-box.warning strong{color:var(--warning)}.summary-box.danger strong{color:var(--danger)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.dashboard-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:18px;gap:18px;align-items:start}.dashboard-list{display:grid;grid-gap:10px;gap:10px}.dashboard-row{border:1px solid var(--line);border-radius:8px;padding:12px;background:#ffffff;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboard-row p{margin:4px 0 0;color:var(--muted);font-size:14px}.dashboard-row>span{flex:0 0 auto}.dashboard-row>span,.status-pill{color:var(--brand-strong);font-weight:800}.status-pill{border-radius:999px;padding:5px 9px;background:var(--surface-muted);font-size:12px}.status-pill.success{background:#e6f6eb;color:#1d6b3a}.status-pill.warning{background:#fff2df;color:var(--warning)}.status-pill.danger,.status-pill.recording{background:#fff3f3;color:var(--danger)}.finance-grid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.finance-list{display:grid;grid-gap:12px;gap:12px}.finance-filters{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(130px,1fr));grid-gap:12px;gap:12px;align-items:end}.finance-item{border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.finance-item.paid{background:#f1fbf4;border-color:#83c79b}.finance-item p{margin:4px 0 0;color:var(--muted)}.finance-item-side{min-width:160px;display:grid;justify-items:end;grid-gap:8px;gap:8px}.finance-list-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto) auto;grid-gap:14px;gap:14px;align-items:center}.finance-list-meta{display:grid;justify-items:end;grid-gap:8px;gap:8px}.team-list{display:grid;grid-gap:12px;gap:12px}.team-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#ffffff}.team-row-expanded{display:grid;align-items:stretch}.team-member-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.team-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.team-permissions-form{display:grid;grid-gap:12px;gap:12px;padding-top:12px;border-top:1px solid var(--line)}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px}.permission-toggle{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;align-items:flex-start;gap:10px;background:#ffffff}.permission-toggle input{margin-top:3px}.permission-toggle span{display:grid;grid-gap:3px;gap:3px}.permission-toggle small{color:var(--muted);line-height:1.35}.permission-note{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.permission-note p{margin:6px 0 0;color:var(--muted);line-height:1.45}.copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center}.copy-field input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#ffffff;color:var(--text)}.pre-registration-banner{border:1px solid #f2ca8a;border-radius:8px;background:#fff8eb;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.pre-registration-banner p{margin:4px 0 0;color:var(--muted)}.patient-form-sections{display:grid;grid-gap:18px;gap:18px}.form-section{display:grid;grid-gap:14px;gap:14px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.form-section h3{margin:0}.three-columns{grid-template-columns:minmax(90px,140px) minmax(180px,260px) minmax(0,1fr)}.compact-field{max-width:220px}.patient-tabs{display:flex;border-bottom:2px solid var(--line);padding:0 22px;gap:0;background:var(--surface)}.patient-tab{display:flex;align-items:center;gap:6px;padding:11px 18px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.875rem;font-weight:500;color:var(--color-text-muted,#888);cursor:pointer;transition:color .15s}.patient-tab:hover{color:var(--text)}.patient-tab.active{color:var(--primary,#6b3fa0);border-bottom-color:var(--primary,#6b3fa0);font-weight:600}.tab-count{display:inline-flex;align-items:center;justify-content:center;background:var(--primary,#6b3fa0);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;min-width:18px;height:18px;padding:0 5px}.doc-upload-form{gap:12px;padding:16px;background:var(--surface-muted,#f8f9fa);border-radius:8px;border:1px dashed var(--line)}.doc-list,.doc-upload-form{display:flex;flex-direction:column}.doc-list{gap:0}.doc-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.doc-item:last-child{border-bottom:none}.doc-icon{flex-shrink:0;color:var(--color-text-muted,#888)}.doc-info{flex:1 1;min-width:0}.doc-name{font-weight:500;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.doc-meta{font-size:.75rem;color:var(--color-text-muted,#888);margin:2px 0 0}.doc-actions{display:flex;gap:6px;flex-shrink:0}.records-panel{display:grid;grid-template-columns:280px 1fr;min-height:600px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.records-sidebar{border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:12px;background:var(--surface-muted)}.records-sidebar h2{margin:0;font-size:16px}.records-list{gap:6px}.records-list,.records-list-item{display:flex;flex-direction:column}.records-list-item{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-align:left;cursor:pointer;gap:4px;transition:border-color .15s}.records-list-item:hover{border-color:var(--brand-soft)}.records-list-item.active{border-color:var(--brand);background:#edf5f7}.records-patient-name{font-weight:700;font-size:14px}.records-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}.records-content{padding:24px;overflow-y:auto}.records-empty{height:100%;align-items:center;justify-content:center;gap:12px;color:var(--muted);text-align:center;padding:40px}.record-form,.records-empty{display:flex;flex-direction:column}.record-form{gap:0}.record-session-block{border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.record-session-header{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;font-weight:600;color:var(--brand);padding-bottom:8px;border-bottom:1px solid var(--line)}@media (max-width:900px){.records-panel{grid-template-columns:1fr}.records-sidebar{border-right:none;border-bottom:1px solid var(--line)}.records-list{flex-direction:row;flex-wrap:wrap}.records-list-item{width:auto;flex:1 1 200px}}@media print{body{background:#ffffff}.no-print,.sidebar{display:none!important}.app-shell{display:block}.main{padding:0}.topbar{margin-bottom:16px}.panel,.summary-box{box-shadow:none}.printable-report{page-break-inside:avoid;break-inside:avoid}}.site-nav-portal{color:var(--brand);text-decoration:none}.link-btn{background:none;border:none;padding:0;color:var(--brand);font-size:inherit;font-weight:700;cursor:pointer;text-decoration:underline}.link-btn:hover{color:var(--brand-strong)}.schedule-v2{display:grid;grid-template-columns:210px 1fr;grid-gap:0;gap:0;height:calc(100vh - 64px);overflow:hidden;background:var(--surface);border-top:1px solid var(--line)}.sched-sidebar{border-right:1px solid var(--line);padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;background:#fafcfd}.sched-new-btn{width:100%;justify-content:center}.mini-cal{display:grid;grid-gap:8px;gap:8px}.mini-cal-header{display:flex;align-items:center;justify-content:space-between;gap:6px}.mini-cal-month{font-size:12px;font-weight:700;text-transform:capitalize;text-align:center;flex:1 1;color:var(--text)}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px}.mini-cal-weekday{font-size:10px;font-weight:700;text-align:center;color:var(--muted);padding-bottom:4px;text-transform:uppercase}.mini-cal-day{position:relative;font-size:11px;font-weight:500;text-align:center;border:0;background:transparent;color:var(--text);border-radius:50%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .12s}.mini-cal-day:hover:not(:disabled){background:var(--surface-muted)}.mini-cal-day.in-week{background:color-mix(in srgb,var(--brand) 8%,transparent)}.mini-cal-day.today{background:var(--brand);color:#fff;font-weight:800}.mini-cal-day.active:not(.today){background:#cde8f0;color:var(--brand-strong);font-weight:800}.mini-cal-day:disabled{opacity:.25;cursor:default}.mini-cal-dot{position:absolute;bottom:1px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:var(--brand)}.mini-cal-day.today .mini-cal-dot{background:rgba(255,255,255,.7)}.sched-week{display:flex;flex-direction:column;overflow:hidden;min-width:0}.sched-week-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--line);gap:10px;flex-shrink:0}.sched-week-nav-left h2{margin:0;font-size:16px}.sched-week-nav-left .eyebrow{margin-bottom:1px}.sched-week-nav-right{display:flex;align-items:center;gap:8px}.sched-week-label{font-size:13px;font-weight:600;color:var(--text);min-width:170px;text-align:center}.sched-week-grid-wrap{flex:1 1;overflow:hidden;display:flex;flex-direction:column}.sched-week-head{display:grid;grid-template-columns:52px repeat(7,1fr);border-bottom:1px solid var(--line);flex-shrink:0;background:var(--surface);z-index:5}.sched-day-head{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;border:0;background:transparent;color:var(--text);cursor:pointer;gap:2px;transition:background .12s}.sched-day-head:hover{background:var(--surface-muted)}.sched-day-head.today{background:color-mix(in srgb,var(--brand) 5%,transparent)}.sched-day-head.selected .sched-day-num{background:var(--brand);color:#fff}.sched-day-name{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.sched-day-num{font-size:16px;font-weight:700;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .12s,color .12s}.sched-day-num.today{background:var(--brand);color:#fff}.sched-week-body{flex:1 1;overflow-y:auto;display:grid;grid-template-columns:52px repeat(7,1fr)}.sched-hour-label{display:flex;align-items:flex-start;justify-content:flex-end;padding:0 6px 0 0;border-top:1px solid var(--line);position:relative;top:-8px}.sched-hour-label span{font-size:10px;color:var(--muted);font-weight:500;white-space:nowrap}.sched-day-col{position:relative;border-left:1px solid var(--line)}.sched-day-col.today{background:color-mix(in srgb,var(--brand) 3%,transparent)}.sched-hour-bg{position:absolute;left:0;right:0;border-top:1px solid var(--line);cursor:pointer}.sched-hour-bg:hover{background:color-mix(in srgb,var(--brand) 6%,transparent)}.sched-event{position:absolute;left:3px;right:3px;border-radius:5px;padding:3px 6px;text-align:left;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;gap:2px;z-index:1;transition:filter .12s,box-shadow .12s;border:0;color:inherit}.sched-event:hover{filter:brightness(.94);box-shadow:0 2px 8px rgba(0,0,0,.12)}.sched-event.success{background:#dcfce7;border-left:3px solid #16a34a;color:#14532d}.sched-event.warning{background:#fff3cd;border-left:3px solid #ca8a04;color:#713f12}.sched-event.danger{background:#ffe4e6;border-left:3px solid #dc2626;color:#7f1d1d}.sched-event.recording{background:#ede9fe;border-left:3px solid #7c3aed;color:#3b0764}.sched-event-patient{display:flex;align-items:flex-start;gap:5px}.sched-event-avatar{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;margin-top:1px}.sched-event-name{font-size:11px;font-weight:700;line-height:1.3;white-space:normal;word-break:break-word}.sched-event-time{font-size:10px;opacity:.75;white-space:nowrap}.sched-legend{border-top:1px solid var(--line);padding-top:12px;display:grid;grid-gap:6px;gap:6px}.sched-legend-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 2px}.sched-legend-item{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--text)}.sched-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.sched-legend-item.warning .sched-legend-dot{background:#ca8a04}.sched-legend-item.recording .sched-legend-dot{background:#7c3aed}.sched-legend-item.success .sched-legend-dot{background:#16a34a}.sched-legend-item.danger .sched-legend-dot{background:#dc2626}@media (max-width:900px){.schedule-v2{grid-template-columns:1fr}.sched-sidebar{display:none}}.portal-page{min-height:100vh;background:var(--background)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--surface);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:10}.portal-content{max-width:720px;margin:0 auto;padding:32px 24px 64px;display:grid;grid-gap:28px;gap:28px}.portal-welcome{display:flex;align-items:center;gap:18px;padding:24px;background:var(--surface);border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow)}.portal-welcome h2{margin:0 0 4px;font-size:22px;color:var(--text)}.portal-welcome .microcopy{margin:0}.portal-avatar-circle{width:64px;height:64px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.portal-section-heading{padding-bottom:4px;border-bottom:1px solid var(--line)}.portal-section-heading h3{margin:4px 0 0;font-size:16px;color:var(--text)}.portal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.portal-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}.portal-card-icon{width:44px;height:44px;border-radius:10px;background:var(--surface-muted);color:var(--brand);display:flex;align-items:center;justify-content:center}.portal-card-body h4{margin:0 0 4px;font-size:15px;color:var(--text)}.portal-card-body p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.portal-card-soon{opacity:.75}.portal-badge-soon{display:inline-block;padding:3px 8px;font-size:11px;font-weight:700;border-radius:20px;background:var(--surface-muted);color:var(--muted);align-self:flex-start;text-transform:uppercase;letter-spacing:.04em}a.portal-card{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}a.portal-card:hover{border-color:var(--brand-soft);box-shadow:0 4px 16px rgba(0,85,115,.1);transform:translateY(-2px)}.portal-badge-active{display:inline-block;padding:3px 10px;font-size:11px;font-weight:700;border-radius:20px;background:#e8f7ee;color:#1d6b3a;text-transform:uppercase;letter-spacing:.04em;align-self:flex-start}.profile-back{margin-bottom:8px}.profile-layout{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:32px;gap:32px;align-items:start}@media (max-width:720px){.profile-layout{grid-template-columns:1fr}}.profile-left{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 20px;gap:20px;text-align:center;position:-webkit-sticky;position:sticky;top:24px}.profile-left,.profile-photo-wrap{display:flex;flex-direction:column;align-items:center}.profile-photo-wrap{gap:12px}.profile-photo-circle{width:120px;height:120px;border-radius:999px;background:var(--surface-muted);color:var(--brand);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;border:3px solid var(--line);flex-shrink:0}.profile-photo-img{width:100%;height:100%;object-fit:cover}.profile-photo-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff}.profile-photo-btn{font-size:13px;font-weight:700;color:var(--brand-soft);background:transparent;border:1px solid var(--brand-soft);border-radius:20px;padding:5px 14px;cursor:pointer;transition:background .15s,color .15s}.profile-photo-btn:hover:not(:disabled){background:var(--brand);color:#fff;border-color:var(--brand)}.profile-photo-btn:disabled{opacity:.6;cursor:default}.profile-left-info{display:flex;flex-direction:column;align-items:center;gap:6px}.profile-name{font-size:17px;font-weight:800;color:var(--text);line-height:1.3}.profile-email-label{font-size:13px;color:var(--muted);word-break:break-all}.profile-right{display:flex;flex-direction:column;gap:0}.profile-right-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:4px}.profile-right-header h2{margin:4px 0 0}.profile-section{padding:20px 0;border-bottom:1px solid var(--line)}.profile-section:last-child{border-bottom:none}.profile-section-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 14px}.profile-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:14px 24px;gap:14px 24px}.profile-field{display:flex;flex-direction:column;gap:3px}.profile-label{font-size:12px;color:var(--muted);font-weight:600}.profile-value{font-size:14px;font-weight:700;color:var(--text)}.profile-consent{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.profile-consent-text strong{font-size:14px;display:block;margin-bottom:4px}.profile-consent-text p{margin:0;font-size:13px;color:var(--muted);line-height:1.5;max-width:420px}.consent-toggle{position:relative;width:48px;height:26px;border-radius:999px;background:var(--line);border:none;cursor:pointer;flex-shrink:0;transition:background .2s;padding:0}.consent-toggle.active{background:#39a66a}.consent-toggle:disabled{opacity:.6;cursor:default}.consent-toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:transform .2s;display:block}.consent-toggle.active .consent-toggle-knob{transform:translateX(22px)}.consent-status-label{margin:10px 0 0;font-size:13px;font-weight:700;color:var(--muted)}.consent-status-label.success{color:#1d6b3a}.profile-modal{width:min(860px,100%)}.profile-modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:24px;max-height:calc(100vh - 180px);overflow-y:auto}.profile-modal-section{display:flex;flex-direction:column;gap:12px}.profile-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px 16px;gap:12px 16px}.profile-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:8px;border-top:1px solid var(--line)}