@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&family=Inter:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&family=Manrope:wght@400;500;600;700&family=Merriweather:wght@400;700&family=Nunito+Sans:wght@400;500;600;700&family=Open+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&family=Source+Sans+3:wght@400;500;600;700&family=Source+Serif+4:wght@400;500;600&family=Spectral:wght@400;500;600&family=Work+Sans:wght@400;500;600;700&display=swap";*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--firm-background);color:var(--firm-text);font-family:var(--firm-body-font)}button,input{font:inherit}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr)}.brand-panel{position:relative;display:flex;min-height:100vh;flex-direction:column;justify-content:space-between;padding:clamp(32px,6vw,84px);overflow:hidden;color:#fff;background:var(--firm-primary)}.brand-panel:after{content:"";position:absolute;width:min(48vw,620px);height:min(48vw,620px);right:-18%;bottom:-22%;border:1px solid color-mix(in srgb,var(--firm-accent) 55%,transparent);border-radius:999px;box-shadow:0 0 0 78px color-mix(in srgb,var(--firm-accent) 11%,transparent),0 0 0 156px color-mix(in srgb,var(--firm-accent) 7%,transparent);pointer-events:none}.brand-copy{position:relative;z-index:1;max-width:640px;margin:auto 0}.eyebrow{margin:0 0 16px;color:var(--firm-accent);font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.brand-copy h1{margin:0 0 22px;max-width:680px;font-family:var(--firm-heading-font);font-size:clamp(2.2rem,4.5vw,4.5rem);font-weight:400;line-height:1.18}.brand-copy p:not(.eyebrow){max-width:525px;color:#ffffffc7;font-size:1.08rem;line-height:1.7}.brand-footer{position:relative;z-index:1;margin:0;color:#ffffff8f;font-size:.875rem}.brand-mark{display:inline-flex;align-items:center;gap:12px;width:fit-content;color:currentColor;font-family:var(--firm-heading-font)}.brand-monogram{display:grid;width:32px;height:32px;place-items:center;border:1px solid currentColor;border-radius:50%;color:var(--firm-accent);font-family:var(--firm-body-font);font-size:.76rem;font-weight:700}.brand-name{font-size:1.04rem;line-height:1.2}.login-panel{display:grid;min-height:100vh;place-items:center;padding:32px;background:var(--firm-background)}.login-card{width:min(100%,392px)}.login-card>.brand-mark{display:none;margin-bottom:54px;color:var(--firm-primary)}.login-card h2{margin:0 0 10px;color:var(--firm-text);font-family:var(--firm-heading-font);font-size:2rem;font-weight:400;line-height:1.25}.login-intro{margin:0 0 30px;color:color-mix(in srgb,var(--firm-text) 70%,transparent);font-size:.98rem;line-height:1.6}form{display:grid;gap:8px}label{margin-top:8px;color:color-mix(in srgb,var(--firm-text) 87%,transparent);font-size:.88rem;font-weight:600}input{width:100%;height:48px;border:1px solid color-mix(in srgb,var(--firm-text) 20%,transparent);border-radius:4px;padding:0 13px;background:#fff;color:var(--firm-text)}button{width:100%;min-height:48px;margin-top:18px;border:0;border-radius:4px;background:var(--firm-primary);color:#fff;font-weight:700;cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.64}button.secondary{margin-top:0;border:1px solid color-mix(in srgb,var(--firm-text) 22%,transparent);background:transparent;color:var(--firm-text)}.login-divider{display:flex;align-items:center;gap:12px;margin:24px 0;color:color-mix(in srgb,var(--firm-text) 48%,transparent);font-size:.78rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--firm-text) 14%,transparent)}.login-help{margin:26px 0 0;color:color-mix(in srgb,var(--firm-text) 58%,transparent);font-size:.82rem;line-height:1.55;text-align:center}.notice{margin:8px 0 0;color:color-mix(in srgb,var(--firm-text) 72%,transparent);font-size:.88rem;line-height:1.45}.notice.error{color:#a61b1b}.unavailable{display:grid;min-height:100vh;place-items:center;padding:24px;font-family:var(--firm-body-font)}.portal-shell{min-height:100vh;padding:0 clamp(24px,6vw,90px) 70px;background:var(--firm-background)}.portal-header{display:flex;align-items:center;justify-content:space-between;min-height:84px;border-bottom:1px solid color-mix(in srgb,var(--firm-text) 12%,transparent);color:var(--firm-primary)}.portal-header .signout{width:auto;min-height:38px;margin:0;padding:0 16px;border:1px solid color-mix(in srgb,var(--firm-text) 20%,transparent);background:transparent;color:var(--firm-text)}.portal-hero{max-width:720px;padding:clamp(56px,9vw,126px) 0 52px}.portal-hero h1{margin:0 0 16px;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:clamp(2.4rem,5vw,4.8rem);font-weight:400;line-height:1.1}.portal-hero p:not(.eyebrow){max-width:610px;color:color-mix(in srgb,var(--firm-text) 70%,transparent);font-size:1.1rem;line-height:1.7}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:960px}.settings-card{padding:30px;border:1px solid color-mix(in srgb,var(--firm-text) 13%,transparent);border-radius:8px;background:#fff;box-shadow:0 12px 28px #0000000a}.settings-card h2{margin:0 0 8px;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:1.65rem;font-weight:400}.settings-card>p:not(.eyebrow){margin:0 0 20px;color:color-mix(in srgb,var(--firm-text) 70%,transparent);line-height:1.5}.settings-card button{margin-top:18px}@media(max-width:820px){.login-shell{display:block}.brand-panel{display:none}.login-panel{min-height:100vh}.login-card>.brand-mark{display:inline-flex}.settings-grid{grid-template-columns:1fr}}.portal-header-actions{display:flex;align-items:center;gap:16px}.role-label{color:color-mix(in srgb,var(--firm-text) 60%,transparent);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.hero-action{width:auto;min-width:150px;padding:0 20px}.portal-loading,.portal-error,.owner-workspace{padding:clamp(56px,9vw,126px) 0;max-width:820px}.portal-error h1,.owner-workspace h1{margin:0 0 16px;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:clamp(2.4rem,5vw,4.8rem);font-weight:400}.portal-error button{width:auto;padding:0 18px}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 42px;max-width:960px}.metrics-grid article{display:grid;gap:7px;min-height:118px;padding:22px;border:1px solid color-mix(in srgb,var(--firm-text) 13%,transparent);border-radius:8px;background:#fff}.metrics-grid span{color:color-mix(in srgb,var(--firm-text) 62%,transparent);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.metrics-grid strong{color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:2.5rem;font-weight:400;line-height:1}.client-section{max-width:1120px;margin:0 0 42px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 20px}.section-heading h2,.onboarding-heading h2{margin:0 0 8px;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:clamp(2rem,3.5vw,3rem);font-weight:400}.section-heading p:not(.eyebrow),.onboarding-heading p:not(.eyebrow){max-width:650px;margin:0;color:color-mix(in srgb,var(--firm-text) 68%,transparent);line-height:1.6}.compact-button{width:auto;min-width:126px;padding:0 16px}.client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.client-card,.empty-client-state,.onboarding-panel,.owner-guidance{border:1px solid color-mix(in srgb,var(--firm-text) 13%,transparent);border-radius:8px;background:#fff;box-shadow:0 12px 28px #0000000a}.client-card{display:flex;min-height:330px;flex-direction:column;padding:26px}.client-card-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.client-card h3,.empty-client-state h3,.onboarding-success h3{margin:0;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:1.75rem;font-weight:400;line-height:1.2}.status-badge{display:inline-flex;flex:none;align-items:center;min-height:28px;padding:0 10px;border:1px solid color-mix(in srgb,var(--firm-text) 17%,transparent);border-radius:999px;color:color-mix(in srgb,var(--firm-text) 70%,transparent);font-size:.74rem;font-weight:700;white-space:nowrap}.status-badge.active{border-color:color-mix(in srgb,var(--firm-accent) 55%,transparent);color:var(--firm-primary);background:color-mix(in srgb,var(--firm-accent) 17%,transparent)}.client-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0}.client-details div{min-width:0}.client-details dt{margin:0 0 5px;color:color-mix(in srgb,var(--firm-text) 53%,transparent);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.client-details dd{margin:0;color:var(--firm-text);font-size:.9rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.client-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:auto}.client-actions button{margin-top:0}.process-summary{display:grid;gap:7px;margin-top:auto;padding:16px;border-left:3px solid var(--firm-accent);background:color-mix(in srgb,var(--firm-background) 78%,#fff)}.process-summary strong{color:var(--firm-primary)}.process-summary span{color:color-mix(in srgb,var(--firm-text) 68%,transparent);font-size:.88rem;line-height:1.5}.empty-client-state{max-width:620px;padding:34px}.empty-client-state p{color:color-mix(in srgb,var(--firm-text) 68%,transparent);line-height:1.65}.empty-client-state button{width:auto;padding:0 18px}.onboarding-panel{max-width:960px;margin:0 0 38px;padding:30px}.onboarding-heading{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:28px}.text-button{width:auto;min-height:auto;margin:4px 0 0;padding:0;background:transparent;color:var(--firm-primary);font-size:.9rem;text-decoration:underline}.onboarding-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.onboarding-form>button,.onboarding-form>.notice{grid-column:1 / -1}.form-section{display:grid;gap:8px;padding:20px;border:1px solid color-mix(in srgb,var(--firm-text) 12%,transparent);border-radius:6px;background:color-mix(in srgb,var(--firm-background) 86%,#fff)}.form-section h3{margin:0 0 6px;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:1.25rem;font-weight:400}.form-section select{width:100%;height:48px;border:1px solid color-mix(in srgb,var(--firm-text) 20%,transparent);border-radius:4px;padding:0 12px;background:#fff;color:var(--firm-text)}.field-note{margin:10px 0 0;color:color-mix(in srgb,var(--firm-text) 65%,transparent);font-size:.88rem;line-height:1.55}.onboarding-success{max-width:660px;padding:10px 0}.onboarding-success>p:not(.eyebrow){color:color-mix(in srgb,var(--firm-text) 72%,transparent);line-height:1.65}.onboarding-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.onboarding-actions button{width:auto;margin:0;padding:0 18px}.owner-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:34px 0 24px}.owner-status-grid article{display:grid;gap:7px;padding:20px;border:1px solid color-mix(in srgb,var(--firm-text) 13%,transparent);border-radius:8px;background:#fff}.owner-status-grid span{color:color-mix(in srgb,var(--firm-text) 57%,transparent);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.owner-status-grid strong{color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:1.35rem;font-weight:400}.owner-guidance{padding:30px}.owner-guidance h2{margin:0 0 10px;color:var(--firm-primary);font-family:var(--firm-heading-font);font-size:1.7rem;font-weight:400}.owner-guidance p{max-width:690px;margin:0;color:color-mix(in srgb,var(--firm-text) 70%,transparent);line-height:1.65}.portal-settings{margin-top:60px}@media(max-width:860px){.metrics-grid,.owner-status-grid,.client-grid,.onboarding-form,.client-details{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}}@media(max-width:560px){.portal-shell{padding:0 22px 50px}.portal-header{min-height:72px}.role-label{display:none}.onboarding-panel,.client-card,.empty-client-state{padding:22px}.onboarding-heading{flex-direction:column}}
