.portal-page{margin:0;background:#f4f5fa;color:#172033;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.55}.portal-header{background:var(--heirlo-primary, #a41f35);color:#fff;padding:20px max(24px,calc((100% - 1200px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.portal-header a{color:#fff;text-decoration:none;font-weight:800;letter-spacing:.08em}.portal-header span{font-weight:400;letter-spacing:0;margin-left:15px}.portal-shell{max-width:1200px;margin:32px auto;padding:0 24px}.portal-login{max-width:500px;margin:60px auto}.portal-card{background:#fff;border:1px solid #dce2ed;border-radius:16px;padding:26px;box-shadow:0 3px 14px #17203305;min-width:0}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.portal-page h1{font-size:30px;line-height:1.25}.portal-page h2,.portal-staff h2{font-size:21px;margin-top:0}.portal-muted{color:var(--heirlo-text-secondary, #475569);font-size:14px}.portal-page button,.portal-staff button{font:inherit;cursor:pointer;border:1px solid #cdd6e4;border-radius:9px;background:#fff;color:#263449;padding:10px 16px;font-weight:650;min-height:44px}.portal-page .portal-primary,.portal-staff .portal-primary{background:var(--heirlo-primary, #a41f35);color:#fff;border-color:var(--heirlo-primary, #a41f35)}.portal-page button:disabled,.portal-staff button:disabled{opacity:.6;cursor:wait}.portal-page label,.portal-staff label{display:block;font-weight:600;margin:14px 0}.portal-page input,.portal-page textarea,.portal-page select,.portal-staff input:not([type=checkbox]),.portal-staff textarea,.portal-staff select{display:block;box-sizing:border-box;width:100%;font:inherit;background:#fff;color:#172033;border:1px solid #aebbcf;padding:11px;border-radius:8px;margin-top:6px}.portal-page textarea,.portal-staff textarea{resize:vertical}.portal-page :focus-visible,.portal-staff :focus-visible{outline:3px solid #3871aa;outline-offset:3px}.portal-toolbar{display:flex;gap:20px;align-items:center;justify-content:space-between}.portal-toolbar label{flex:1;max-width:650px}.portal-entry{padding:18px 0;border-bottom:1px solid #dce2ed;overflow-wrap:anywhere}.portal-entry:last-child{border-bottom:0}.portal-entry h3{font-size:17px;margin:0 0 6px}.portal-entry p{white-space:pre-wrap;margin:8px 0}.portal-status{font-size:13px;color:#43536b;background:#edf1f7;border-radius:5px;padding:3px 8px;display:inline-block}.portal-messages{max-height:480px;overflow:auto}.portal-staff{color:#172033;line-height:1.55}.portal-staff .portal-card{margin-bottom:20px}.portal-staff .portal-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.portal-staff input[type=checkbox]{margin-right:10px;accent-color:var(--heirlo-primary, #a41f35);width:18px;height:18px}.portal-staff [role=status],#notice:not(:empty){background:#fff;border-left:4px solid var(--heirlo-primary, #a41f35);padding:12px 16px;border-radius:6px}.portal-page [hidden],.portal-staff [hidden]{display:none!important}@media(max-width:700px){.portal-grid{grid-template-columns:1fr}.portal-card{padding:20px}.portal-shell{padding:0 16px;margin:20px auto}.portal-header{padding:16px}.portal-header span{display:block;margin:0;font-size:13px}.portal-login{margin:24px auto}.portal-toolbar{align-items:flex-end}.portal-page h1{font-size:25px}}

/* Branded client workspace. Shared portal-staff components retain their styles above. */
.portal-page{--cp-burgundy:var(--heirlo-primary, #a41f35);--cp-ink:var(--heirlo-navy, #172033);--cp-muted:var(--heirlo-text-secondary, #475569);background:var(--heirlo-canvas, #f5f7fb);color:var(--cp-ink);font-size:15px;line-height:1.6}.portal-page *{box-sizing:border-box}.portal-page svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.portal-page .cp-sprites{position:absolute;width:0;height:0;overflow:hidden}.cp-skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:12px;color:var(--heirlo-primary, #a41f35)}.cp-skip:focus{top:12px}.portal-page button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:14px;transition:background .15s,border-color .15s}.portal-page button:hover{border-color:var(--heirlo-primary, #a41f35);background:#fff7f9}.portal-page .portal-primary{background:var(--cp-burgundy);border-color:var(--cp-burgundy);border-radius:9px}.portal-page .portal-primary:hover{background:var(--heirlo-primary-hover, #801829);color:#fff}.portal-page .portal-card{padding:26px;border:1px solid #e1e5ee;border-radius:14px;box-shadow:0 2px 6px #16223503}.portal-page h1,.portal-page h2,.portal-page h3{letter-spacing:-.025em}.portal-page h1{font-size:30px;line-height:1.2;margin:4px 0 8px}.portal-page h2{font-size:20px;line-height:1.4;margin:0 0 6px}.portal-page h3{font-size:16px}.portal-page .portal-muted{color:var(--cp-muted);font-size:14px}.portal-page .cp-eyebrow{font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;color:#627085}.portal-page .cp-brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit}.cp-brand img{height:44px;width:44px;object-fit:contain;padding:5px;background:#fff;border-radius:8px}.cp-brand>span{font-size:20px;letter-spacing:.21em;font-weight:750;line-height:1.2}.cp-brand small{display:block;font-size:9px;letter-spacing:.16em;font-weight:500;margin-top:6px}.cp-login-header{padding:24px 6%;display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #e1e5ee}.cp-secure{display:inline-flex;align-items:center;gap:8px;color:var(--heirlo-text-secondary, #475569);font-size:12px;white-space:nowrap}.cp-secure svg{width:16px;height:16px}.cp-signin{max-width:1120px;margin:70px auto;display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;padding:0 32px}.portal-page .cp-login-story h1{font-size:58px;line-height:1.13;margin:18px 0 24px;font-weight:750;color:#302331}.cp-login-story>p{color:var(--heirlo-text-secondary, #475569);max-width:420px;font-size:17px}.cp-story-list{display:grid;gap:18px;margin-top:30px}.cp-story-list span{display:flex;align-items:center;gap:12px;font-weight:600}.cp-story-list svg{color:var(--heirlo-primary, #a41f35)}.portal-page .portal-login{margin:0;padding:36px;max-width:none;border-radius:20px;box-shadow:0 12px 40px #24243608}.portal-login h2{margin-top:20px}.portal-login .portal-primary{width:fit-content;margin:10px 0}.cp-login-footnote{font-size:12px;line-height:1.7;color:#627085;margin-top:20px}.portal-page .cp-notice:empty{display:none}.portal-page .cp-notice:not(:empty){position:sticky;top:0;z-index:30;margin:0;padding:14px 28px;background:#fff4e6;color:#643a13;border:0;border-bottom:1px solid #edd2ad;border-radius:0}.portal-page.cp-authenticated .cp-notice:not(:empty){margin-left:246px}.cp-sidebar{position:fixed;inset:0 auto 0 0;width:246px;background:var(--heirlo-sidebar, #000000);color:#fff;display:flex;flex-direction:column;padding:28px 18px 18px;z-index:50;overflow-y:auto}.cp-sidebar-brand{padding:0 10px 30px;display:flex;align-items:center;justify-content:space-between}.cp-sidebar .cp-brand small{color:#b0b4c1}.cp-nav-label{font-size:10px;letter-spacing:.14em;color:#9ca3b2;padding:0 14px;margin:12px 0}.cp-sidebar nav{display:grid;gap:6px}.cp-sidebar nav a{color:#c8ccd7;text-decoration:none;display:flex;gap:12px;align-items:center;padding:13px 14px;border-radius:9px;font-weight:550;font-size:14px}.cp-sidebar nav a:hover{background:#252832;color:#fff}.cp-sidebar nav a[aria-current=page]{color:#fff;background:var(--heirlo-primary, #a41f35);box-shadow:0 4px 12px #0002}.cp-nav-badge{margin-left:auto;background:#ffffff24;border-radius:6px;padding:0 7px;min-width:22px;text-align:center;font-size:12px}.cp-sidebar-help{margin-top:auto;padding:28px 14px;color:#b5bbc8;font-size:12px}.cp-sidebar-help>svg{margin-bottom:12px;color:#d7b1ba}.cp-sidebar-help strong{display:block;color:#e3e6ed;font-size:12px}.cp-sidebar-help p{margin:8px 0 0;line-height:1.7}.cp-sidebar-account{border-top:1px solid #ffffff18;padding:20px 10px 12px;display:flex;gap:10px;align-items:center;min-width:0}.cp-sidebar-account>div{min-width:0}.cp-sidebar-account strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-sidebar-account div>span{display:block;font-size:11px;color:#aeb5c4}.cp-avatar{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:#3e2832;color:#f4d6de;font-weight:700;font-size:13px}.portal-page .cp-signout{background:transparent;color:#dce0e9;border-color:#ffffff26;margin:0 10px;font-size:12px;min-height:36px}.portal-page .cp-signout:hover{background:#2c2028;border-color:#9a5567}.cp-main{margin-left:246px;min-width:0}.cp-topbar{height:88px;background:#fff;border-bottom:1px solid #e1e5ee;display:flex;align-items:center;gap:16px;padding:16px 36px}.cp-matter-picker{min-width:0;flex:1;max-width:670px}.cp-matter-picker label{font-size:10px;letter-spacing:.14em;color:#627085;margin:0;font-weight:700}.portal-page .cp-matter-picker select{margin:2px 0 0;padding:3px 28px 3px 0;border:0;border-radius:0;font-size:14px;font-weight:600;text-overflow:ellipsis}.cp-topbar #refresh{margin-left:auto}.portal-page .cp-icon-button{width:40px;min-height:40px;padding:8px;background:transparent}.portal-page #menuToggle,.portal-page #closeMenu{display:none}.portal-page .portal-shell{max-width:1500px;margin:0 auto;padding:30px 36px 18px}.cp-page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.cp-matter-title{color:var(--heirlo-text-secondary, #475569);font-size:14px;margin:0;overflow-wrap:anywhere}.cp-welcome{border-radius:16px;background:linear-gradient(110deg,#871b32,var(--heirlo-primary, #a41f35) 65%,#b3314a);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:30px 34px;position:relative;overflow:hidden;margin-bottom:24px}.portal-page .cp-welcome .cp-eyebrow{color:#f1cbd3;font-size:10px}.portal-page .cp-welcome h2{color:#fff;font-size:29px;margin:6px 0 8px}.cp-welcome p{font-size:14px;color:#f9e9ed;line-height:1.8;margin:0 0 20px}.portal-page .cp-light-button{background:#fff;color:#8e1c32;border:1px solid #fff;font-size:13px}.cp-welcome-mark{width:170px;height:170px;border:1px solid #ffffff1f;border-radius:50%;display:grid;place-items:center;background:#ffffff08;transform:rotate(-12deg);margin-right:30px;box-shadow:0 0 0 24px #ffffff05,0 0 0 48px #ffffff04}.cp-welcome-mark svg{width:65px;height:65px;stroke-width:.8;opacity:.7}.cp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.portal-page .cp-stat{display:grid;grid-template-columns:1fr auto;gap:6px;background:#fff;border:1px solid #e1e5ee;border-radius:12px;padding:20px;text-align:left;justify-content:stretch;color:#253143}.cp-stat .cp-icon-tile{grid-column:2;grid-row:1/3}.cp-stat>strong{font-size:30px;line-height:1.3;letter-spacing:-.04em}.cp-stat>span:not(.cp-icon-tile){grid-column:1/-1;font-size:12px;font-weight:500;margin-top:6px}.cp-stat>small{grid-column:1/-1;border-top:1px solid #eff1f6;padding-top:12px;margin-top:8px;font-size:11px;color:#627085;display:flex;justify-content:space-between}.cp-icon-tile{height:40px;width:40px;display:inline-grid;place-items:center;background:var(--heirlo-primary-soft, #f8edf0);border-radius:10px;color:var(--heirlo-primary, #a41f35);flex-shrink:0}.cp-violet{background:var(--heirlo-accent-soft, #eef0fa);color:var(--heirlo-accent-strong, #50588f)}.cp-teal{background:#eaf5f1;color:#267465}.cp-amber{background:#fff3e1;color:#956116}.cp-overview-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px}.cp-card-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:8px}.cp-card-heading p{margin:0;font-size:12px!important}.portal-page .cp-text-button{border:0;color:var(--heirlo-primary, #a41f35);background:transparent;padding:2px 0;font-size:12px;white-space:nowrap;min-height:32px}.cp-next-step{display:flex;gap:12px;align-items:center;padding:20px 0;border-bottom:1px solid #edf0f5}.cp-next-step:last-child{border-bottom:0}.cp-next-step>div{flex:1;min-width:0}.cp-next-step strong{display:block;font-size:14px;line-height:1.5}.cp-next-step small{font-size:12px;color:#677489}.cp-next-step button{padding:6px 12px;font-size:12px;min-height:36px}.cp-activity{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid #edf0f5}.cp-activity:last-child{border:0}.cp-activity .cp-icon-tile{width:30px;height:30px;border-radius:8px}.cp-activity svg{width:16px;height:16px}.cp-activity strong{display:block;font-size:13px;font-weight:600}.cp-activity p{margin:3px 0 0;font-size:11px;color:#627085}.cp-activity>div{min-width:0;overflow-wrap:anywhere}.cp-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.portal-page .cp-quick-actions button{background:#fff;border-color:#e1e5ee;justify-content:flex-start;padding:20px;gap:14px;text-align:left}.cp-quick-actions button>span:nth-child(2){flex:1}.cp-quick-actions strong{display:block;font-size:14px}.cp-quick-actions small{display:block;font-size:12px;font-weight:400;color:#627085;margin-top:3px}.cp-quick-actions button>svg{width:17px;color:#748098}.cp-content-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px;align-items:start}.cp-compose>h2{margin-top:18px}.portal-page .portal-entry{padding:22px 0}.portal-page .portal-entry>p{font-size:14px}.portal-page .portal-entry>.portal-muted{font-size:11px}.portal-page .portal-entry .portal-status{margin:10px 0;font-size:11px;font-weight:650}.portal-page .portal-status[data-status=complete]{background:#eaf5f1;color:#226557}.portal-page .portal-status[data-status=submitted]{background:#fff3e1;color:#825617}.portal-page .portal-entry form{padding:16px;background:#f8f9fc;border:1px solid #e8ecf3;border-radius:10px;margin-top:12px}.portal-page .portal-entry label{font-size:12px;margin-top:0}.portal-page .portal-entry textarea{font-size:14px}.portal-page .portal-messages{max-height:650px}.portal-page .cp-client-message{background:#faf3f5;border-radius:12px;padding:18px;margin:10px 0;border:1px solid #f0dfe4}.cp-footer{display:flex;justify-content:space-between;margin-top:30px;padding-top:18px;border-top:1px solid #e1e5ee;color:#6a7688;font-size:11px}.cp-empty{padding:28px 10px;text-align:center;color:#627085;font-size:13px}.cp-empty svg{display:block;margin:0 auto 12px;width:28px;height:28px;color:#9ba6b7}.portal-page #pageTitle:focus,.portal-page #mainContent:focus{outline:none}.portal-page .cp-backdrop{position:fixed;inset:0;background:#17203366;z-index:45;border:0;border-radius:0;width:100%;height:100%;padding:0}.portal-page .cp-backdrop:hover{background:#17203366}
@media(min-width:1600px){.portal-page .portal-shell{padding-top:40px}.cp-welcome{padding:38px 40px}}
@media(max-width:1150px){.cp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-overview-grid,.cp-content-grid{grid-template-columns:1fr}.cp-welcome-mark{margin-right:0;width:100px;height:100px}.cp-quick-actions{gap:16px}.cp-quick-actions small{font-size:11px}}
@media(max-width:800px){.cp-main{margin-left:0}.cp-sidebar{transform:translateX(-100%);visibility:hidden;width:270px;transition:transform .2s,visibility .2s}.cp-menu-open .cp-sidebar{transform:translateX(0);visibility:visible}.portal-page #menuToggle,.portal-page #closeMenu{display:inline-flex}.portal-page #closeMenu{color:#fff;border:0;width:30px;min-height:30px;padding:4px}.cp-sidebar-brand{padding:0 0 24px}.cp-topbar{height:80px;padding:12px 20px;gap:12px}.portal-page .portal-shell{padding:24px 20px 18px}.portal-page.cp-authenticated .cp-notice:not(:empty){margin-left:0}.cp-page-heading>.cp-secure{display:none}.cp-signin{grid-template-columns:1fr;gap:30px;margin:35px auto;max-width:600px}.portal-page .cp-login-story h1{font-size:40px}.cp-login-story h1 br{display:none}.cp-login-story h1 br:after{content:' '}.cp-story-list{display:none}.cp-login-header{padding:18px 24px}.cp-login-header>.cp-secure{display:none}.cp-menu-open{overflow:hidden}}
@media(max-width:480px){.portal-page .portal-shell{padding:22px 16px 16px}.portal-page h1{font-size:26px}.cp-topbar{padding:12px 16px;gap:10px}.cp-topbar .cp-icon-button{width:34px;padding:6px;min-height:36px}.cp-matter-picker select{font-size:12px!important}.portal-page .portal-card{padding:20px}.cp-welcome{padding:25px 22px}.portal-page .cp-welcome h2{font-size:25px}.cp-welcome-mark{display:none}.cp-welcome p{font-size:13px}.cp-stats{gap:12px}.portal-page .cp-stat{padding:16px;gap:2px}.cp-stat .cp-icon-tile{height:32px;width:32px}.cp-stat>strong{font-size:27px}.cp-stat>span:not(.cp-icon-tile){font-size:11px}.cp-stat>small{font-size:10px}.cp-quick-actions{grid-template-columns:1fr;gap:12px}.cp-overview-grid{gap:18px}.cp-signin{padding:0 20px;gap:20px}.cp-login-story>p{font-size:15px}.portal-page .portal-login{padding:26px}.cp-next-step{gap:10px}.cp-next-step>.cp-icon-tile{display:none}.cp-card-heading{gap:8px}.cp-footer{font-size:10px}.cp-content-grid{gap:18px}}
@media(prefers-reduced-motion:reduce){.portal-page *{transition:none!important;scroll-behavior:auto!important}}

/* Questionnaire fields share the portal's white cards and burgundy actions. */
.cp-questionnaire fieldset { border: 1px solid var(--heirlo-border, #e2e7f0); border-radius: 14px; padding: 24px; margin: 24px 0; background: #fff; min-width: 0; }
.cp-questionnaire legend { color: var(--heirlo-navy, #172033); font-size: 1.15rem; font-weight: 700; padding: 0 8px; }
.cq-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .55fr); gap: 8px 16px; margin-bottom: 20px; }
.cq-field > input, .cq-field > textarea { grid-column: 1 / -1; }
.cq-field label { align-self: center; }
.cq-property, .cq-review { background: #fff; color: var(--heirlo-navy, #172033); border: 1px solid var(--heirlo-border, #e2e7f0); border-radius: 12px; padding: 18px; margin: 16px 0; overflow-wrap: anywhere; }
.cq-property label { display: block; margin: 12px 0; }
.cq-property input, .cq-property select { width: 100%; }
.cq-property > span { display: block; padding: 12px; font-weight: 700; }
.cq-review input[type=checkbox], .cp-questionnaire input[type=checkbox] { width: auto; margin-right: 10px; }
.cq-conflict { color: #922b13; background: #fff5ed; padding: 12px; border-radius: 8px; }
.cp-questionnaire [hidden] { display: none !important; }
@media (max-width: 600px) { .cq-field { grid-template-columns: 1fr; } .cp-questionnaire fieldset { padding: 16px; } }

/* Client workspace: shared Heirlo shell, quieter client-focused content. */
.portal-page.cp-authenticated { background: var(--heirlo-canvas, #f5f7fb); font-size: 14px; }
.cp-authenticated .cp-sidebar { background: var(--heirlo-sidebar, #000000); padding-top: 24px; }
.cp-authenticated .cp-sidebar-brand { padding-bottom: 26px; }
.cp-authenticated .cp-sidebar nav a { min-height: 46px; font-weight: 600; }
.cp-authenticated .cp-sidebar-help { display: flex; align-items: center; gap: 8px; padding: 24px 12px 16px; font-size: 11px; }
.cp-authenticated .cp-sidebar-help svg { width: 15px; height: 15px; margin: 0; }
.cp-authenticated .cp-topbar { background: var(--heirlo-primary, #a41f35); border: 0; height: 76px; padding: 12px 32px; }
.cp-authenticated .cp-matter-picker { max-width: 600px; }
.cp-authenticated .cp-matter-picker label { color: #ffe0e7; letter-spacing: .08em; font-size: 10px; }
.portal-page.cp-authenticated .cp-matter-picker select { color: #fff; background: transparent; padding: 4px 28px 4px 0; font-size: 14px; min-height: 32px; }
.cp-authenticated .cp-matter-picker option { color: var(--heirlo-navy, #172033); background: #fff; }
.portal-page.cp-authenticated .cp-topbar .cp-icon-button { color: #fff; border: 1px solid #ffffff55; border-radius: 10px; width: 40px; min-height: 40px; }
.portal-page.cp-authenticated .cp-topbar .cp-icon-button:hover { background: #ffffff18; }
.portal-page.cp-authenticated .portal-shell { max-width: 1440px; padding: 30px 32px 20px; }
.cp-authenticated .cp-page-heading { margin-bottom: 24px; align-items: flex-end; }
.cp-authenticated .cp-page-heading h1 { font-size: 28px; font-weight: 700; margin: 5px 0 8px; }
.cp-authenticated .cp-page-heading .cp-eyebrow { color: #58687e; font-size: 11px; letter-spacing: .07em; }
.cp-authenticated .cp-heading-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cp-authenticated .cp-heading-actions button { background: #fff; border: 1px solid var(--heirlo-border, #e2e7f0); padding: 10px 14px; font-size: 13px; color: var(--heirlo-text-secondary, #475569); box-shadow: 0 1px 2px #17203305; }
.cp-authenticated .cp-heading-actions button:last-child { border-color: #e5c3cb; color: var(--heirlo-primary, #a41f35); }
.cp-authenticated .cp-heading-actions svg { width: 17px; height: 17px; }
.cp-authenticated .cp-welcome { margin-bottom: 20px; padding: 22px 24px; border: 1px solid var(--heirlo-border, #e2e7f0); border-left: 3px solid var(--heirlo-primary, #a41f35); border-radius: 12px; background: #fff; color: var(--heirlo-navy, #172033); gap: 24px; }
.portal-page.cp-authenticated .cp-welcome h2 { color: var(--heirlo-navy, #172033); font-size: 18px; margin: 0 0 5px; }
.cp-authenticated .cp-welcome p { color: var(--heirlo-text-secondary, #475569); font-size: 13px; line-height: 1.6; margin: 0; }
.portal-page.cp-authenticated .cp-light-button { flex-shrink: 0; background: var(--heirlo-primary, #a41f35); color: #fff; border: 1px solid var(--heirlo-primary, #a41f35); min-height: 40px; padding: 9px 14px; font-size: 13px; border-radius: 9px; }
.portal-page.cp-authenticated .cp-light-button:hover { background: #85172b; }
.cp-authenticated .cp-stats { gap: 16px; margin-bottom: 24px; }
.portal-page.cp-authenticated .cp-stat { display: grid; grid-template-columns: 1fr auto; text-align: left; padding: 18px 20px; gap: 4px 12px; border: 1px solid var(--heirlo-border, #e2e7f0); border-radius: 12px; box-shadow: none; background: #fff; }
.cp-authenticated .cp-stat > .cp-icon-tile { grid-column: 2; grid-row: 1 / 3; align-self: center; width: 38px; height: 38px; margin: 0; background: var(--heirlo-accent-soft, #eef0fa); color: var(--heirlo-accent-strong, #50588f); border-radius: 10px; }
.cp-authenticated .cp-stat:first-child > .cp-icon-tile { background: #fbecf0; color: var(--heirlo-primary, #a41f35); }
.cp-authenticated .cp-stat > strong { grid-column: 1; font-size: 27px; line-height: 1.2; color: var(--heirlo-navy, #172033); }
.cp-authenticated .cp-stat > span:not(.cp-icon-tile) { grid-column: 1; font-size: 12px; color: var(--heirlo-text-secondary, #475569); font-weight: 550; }
.portal-page.cp-authenticated .cp-stat:hover { border-color: #b5c1d2; background: #fdfdff; }
.cp-authenticated .cp-overview-grid { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 22px; align-items: start; }
.portal-page.cp-authenticated .portal-card { border: 1px solid var(--heirlo-border, #e2e7f0); border-radius: 12px; padding: 24px; box-shadow: none; }
.cp-authenticated .cp-card-heading { padding-bottom: 16px; margin-bottom: 0; border-bottom: 1px solid #e8edf4; }
.cp-authenticated .cp-card-heading h2 { font-size: 17px; }
.cp-authenticated .cp-card-heading .portal-muted { font-size: 12px; margin: 3px 0 0; }
.cp-authenticated .cp-text-button { white-space: nowrap; font-size: 12px; }
.cp-authenticated .cp-next-step { padding: 20px 0; gap: 12px; }
.cp-authenticated .cp-next-step strong { font-size: 14px; font-weight: 650; }
.cp-authenticated .cp-next-step small { font-size: 12px; line-height: 1.5; }
.cp-authenticated .cp-next-step > .cp-icon-tile { width: 32px; height: 32px; background: var(--heirlo-accent-soft, #eef0fa); color: var(--heirlo-accent-strong, #50588f); }
.cp-authenticated .cp-next-step button { min-height: 38px; padding: 8px 12px; font-size: 12px; border-color: #e6c5ce; color: var(--heirlo-primary, #a41f35); }
.cp-authenticated .cp-activity { padding: 17px 0; }
.cp-authenticated .cp-activity .cp-icon-tile { background: #f3f5f8; color: #65758a; width: 30px; height: 30px; }
.cp-authenticated .cp-activity strong { font-size: 13px; font-weight: 600; }
.cp-authenticated .cp-activity p { font-size: 11px; }
.cp-authenticated .cp-footer { margin-top: 28px; color: var(--heirlo-muted, #5d6b82); }
@media(max-width:1150px) { .cp-authenticated .cp-page-heading { align-items: flex-start; flex-direction: column; gap: 16px; } .cp-authenticated .cp-overview-grid { grid-template-columns: 1fr; } }
@media(max-width:800px) { .portal-page.cp-authenticated .portal-shell { padding: 24px 20px; } .cp-authenticated .cp-topbar { padding: 12px 20px; } .cp-authenticated .cp-welcome { align-items: flex-start; } }
@media(max-width:480px) { .portal-page.cp-authenticated .portal-shell { padding: 22px 16px; } .cp-authenticated .cp-topbar { padding: 12px 16px; } .cp-authenticated .cp-welcome { flex-direction: column; gap: 16px; padding: 18px; } .cp-authenticated .cp-stats { gap: 12px; } .portal-page.cp-authenticated .cp-stat { padding: 16px 14px; gap: 5px; } .cp-authenticated .cp-stat > .cp-icon-tile { width: 28px; height: 28px; } .cp-authenticated .cp-stat .cp-icon-tile svg { width: 17px; height: 17px; } .portal-page.cp-authenticated .portal-card { padding: 18px; } .cp-authenticated .cp-heading-actions { gap: 8px; } .cp-authenticated .cp-heading-actions button { font-size: 12px; padding: 9px 11px; } }

/* Guided client questionnaire: one readable section at a time. */
.cp-questionnaire { max-width: 900px; margin: 24px auto 0; color: var(--heirlo-navy, #172033); }
.cp-questionnaire > h2 { font-size: 24px; margin: 0 0 8px; letter-spacing: -.4px; }
.cp-questionnaire .cq-intro { color: var(--heirlo-text-secondary, #475569); line-height: 1.6; max-width: 650px; }
.cp-questionnaire .cq-progress { font-size: 12px; font-weight: 600; color: var(--heirlo-primary, #a41f35); margin: 20px 0 12px; }
.cp-questionnaire .cq-step { border: 1px solid #dce3ee; border-radius: 12px; margin: 10px 0; background: #fff; overflow: hidden; }
.cp-questionnaire .cq-step > summary { display: flex; align-items: center; gap: 12px; padding: 18px 20px; cursor: pointer; font-size: 15px; font-weight: 650; list-style: none; }
.cp-questionnaire .cq-step > summary::-webkit-details-marker { display: none; }
.cp-questionnaire .cq-step > summary:focus-visible { outline: 2px solid var(--heirlo-primary, #a41f35); outline-offset: -3px; }
.cp-questionnaire .cq-step-number { display: grid; place-items: center; width: 30px; height: 30px; background: #f3f5f9; color: #63718a; border-radius: 8px; font-size: 12px; }
.cp-questionnaire .cq-step-toggle { margin-left: auto; color: #63718a; font-size: 20px; }
.cp-questionnaire .cq-step[open] { border-color: #bd8792; }
.cp-questionnaire .cq-step[open] .cq-step-number { background: #faedf0; color: var(--heirlo-primary, #a41f35); }
.cp-questionnaire .cq-step[open] .cq-step-toggle { transform: rotate(45deg); }
.cp-questionnaire .cq-step fieldset { border: 0; margin: 0; padding: 8px 22px 22px; border-radius: 0; }
.cp-questionnaire .cq-step fieldset > p { font-size: 13px; line-height: 1.6; color: var(--heirlo-text-secondary, #475569); margin: 0 0 18px; }
.cp-questionnaire .cq-field { grid-template-columns: minmax(0, 1fr) 145px; gap: 8px 14px; margin: 0 0 22px; }
.cp-questionnaire .cq-field > label { font-size: 14px; font-weight: 600; color: #233047; }
.cp-questionnaire .cq-field > select[aria-label] { padding: 5px 8px; min-height: 32px; font-size: 12px; color: var(--heirlo-text-secondary, #475569); background: #f7f8fb; border-color: #e3e8f0; }
.cp-questionnaire .cq-field > input, .cp-questionnaire .cq-field > textarea, .cp-questionnaire .cq-field > select:not([aria-label]) { grid-column: 1 / -1; width: 100%; min-height: 44px; padding: 10px 12px; font-size: 15px; background: #fff; border: 1px solid #cbd5e3; border-radius: 8px; }
.cp-questionnaire textarea { min-height: 84px; resize: vertical; }
.cp-questionnaire .cq-continue { display: block; width: auto; margin: 8px 0 0 auto; padding: 10px 18px; background: #fff; color: var(--heirlo-primary, #a41f35); border: 1px solid #dbb7bf; border-radius: 8px; font-size: 13px; font-weight: 650; }
.cp-questionnaire .cq-confirm { display: flex; align-items: flex-start; gap: 10px; line-height: 1.6; font-size: 14px; padding: 16px; background: #f7f8fb; border-radius: 8px; }
.cp-questionnaire .cq-confirm input { flex: 0 0 auto; margin-top: 5px; }
.cp-questionnaire > .portal-actions { display: flex; gap: 12px; padding-top: 18px; border-top: 1px solid #e3e8f0; margin-top: 22px; }
.cp-questionnaire > .portal-actions button { width: auto; padding: 12px 18px; border-radius: 9px; font-size: 14px; font-weight: 650; }
.cp-questionnaire > [role=status] { font-size: 12px; color: var(--heirlo-text-secondary, #475569); line-height: 1.5; }
@media (max-width: 600px) {
 .cp-questionnaire > h2 { font-size: 21px; }
 .cp-questionnaire .cq-step > summary { padding: 14px 12px; gap: 8px; }
 .cp-questionnaire .cq-step fieldset { padding: 8px 14px 18px; }
 .cp-questionnaire .cq-field { grid-template-columns: 1fr; }
 .cp-questionnaire .cq-field > select[aria-label] { width: 150px; justify-self: start; }
 .cp-questionnaire > .portal-actions { flex-direction: column; }
 .cp-questionnaire > .portal-actions button { width: fit-content; }
}
.portal-page .portal-entry form.cp-questionnaire { background: transparent; border: 0; padding: 0; margin-top: 24px; }
.portal-page .cp-questionnaire .cq-field > label { font-size: 14px; }
.portal-page .cp-skip:not(:focus) { clip-path: inset(50%); width: 1px; height: 1px; padding: 0; overflow: hidden; }
/* Upload feedback must not cover mobile navigation when scrolled. */
.portal-page.cp-authenticated .cp-notice:not(:empty) { position: relative; }
.portal-page #uploadProgress, .portal-page .cp-scan-progress progress { display: block; width: 100%; height: 8px; border: 0; border-radius: 6px; overflow: hidden; accent-color: var(--heirlo-primary, #a41f35); margin: 16px 0 10px; background: #eceff5; }
.portal-page progress::-webkit-progress-bar { background: #eceff5; border-radius: 6px; }
.portal-page progress::-webkit-progress-value { background: var(--heirlo-primary, #a41f35); border-radius: 6px; transition: width .2s; }
.portal-page .cp-scan-progress { margin: 14px 0; max-width: 420px; }
.portal-page .cp-scan-progress small { color: var(--heirlo-text-secondary, #475569); font-size: 12px; }
.portal-page .cp-scan-progress progress:indeterminate { background: linear-gradient(90deg, #eceff5 25%, var(--heirlo-primary, #a41f35) 50%, #eceff5 75%); background-size: 200% 100%; animation: cp-scanning 1.6s linear infinite; }
.portal-page .cp-scan-progress progress:indeterminate::-webkit-progress-bar { background: transparent; }
@keyframes cp-scanning { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .portal-page .cp-scan-progress progress:indeterminate { animation: none; } }
.portal-page .cp-scan-progress progress:indeterminate { appearance: none; -webkit-appearance: none; background-image: linear-gradient(90deg, #eceff5 0%, var(--heirlo-primary, #a41f35) 25%, #eceff5 50%); }
.portal-page .cp-file-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.portal-page .cp-file-actions button { border: 1px solid #d5deeb; background: #fff; border-radius: 9px; padding: 9px 14px; min-height: 42px; font-size: 13px; font-weight: 650; }
.portal-page .cp-file-actions button:first-child { color: var(--heirlo-primary, #a41f35); background: #fff7f9; border-color: #e6bdc5; }
.portal-page .cp-file-actions .cp-icon-tile { background: transparent; width: 18px; height: 18px; color: inherit; }
.portal-page .cp-file-actions svg { width: 18px; height: 18px; }
.portal-page .cp-file-security { font-size: 12px; color: var(--heirlo-text-secondary, #475569); }
.portal-page #fileViewer { width: min(1100px, 94vw); max-width: 94vw; height: 90vh; max-height: 90vh; padding: 0; border: 1px solid #dce3ee; border-radius: 16px; color: var(--heirlo-navy, #172033); background: #fff; box-shadow: 0 20px 80px #17203340; }
.portal-page #fileViewer::backdrop { background: #17203399; }
.portal-page #fileViewer header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-bottom: 1px solid #e3e8f0; }
.portal-page #fileViewer h2 { font-size: 17px; overflow-wrap: anywhere; margin: 0; }
.portal-page #fileViewerClose { flex-shrink: 0; padding: 8px 12px; width: auto; }
.portal-page #fileViewerBody { height: calc(100% - 78px); overflow: auto; padding: 16px; background: var(--heirlo-canvas, #f5f7fb); }
.portal-page #fileViewerBody iframe { width: 100%; height: 100%; border: 0; background: white; }
.portal-page #fileViewerBody img { display: block; max-width: 100%; height: auto; margin: auto; }
.portal-page #fileViewerBody pre { white-space: pre-wrap; overflow-wrap: anywhere; font: 14px/1.6 inherit; }
.portal-page .cp-pdf-toolbar { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; position: sticky; top: 0; background: #fff; padding: 10px; border: 1px solid #dde3ed; border-radius: 8px; margin-bottom: 12px; }
.portal-page .cp-pdf-toolbar button { width: auto; min-height: 36px; padding: 6px 12px; }
.portal-page .cp-pdf-toolbar span { font-size: 12px; }
.portal-page #fileViewerBody canvas { display: block; margin: auto; background: #fff; box-shadow: 0 2px 8px #17203320; }
.portal-page .hc-launcher { position: fixed; bottom: 22px; right: 24px; z-index: 60; width: auto; display: flex; gap: 10px; align-items: center; padding: 14px 20px; border: 0; border-radius: 28px; background: var(--heirlo-primary, #a41f35); color: #fff; box-shadow: 0 5px 20px #52162730; font-weight: 650; }
.portal-page .hc-launcher:hover { background: var(--heirlo-primary-hover, #801829); color: #fff; }
.hc-launcher #chatBadge { background: #fff; color: var(--heirlo-primary, #a41f35); border-radius: 12px; padding: 2px 7px; font-size: 11px; }
.hc-panel { position: fixed; bottom: 88px; right: 24px; z-index: 65; width: 390px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 110px); overflow: auto; background: #fff; border: 1px solid #dde3ee; border-radius: 16px; box-shadow: 0 12px 48px #17203335; }
.hc-panel header { padding: 16px; display: flex; justify-content: space-between; align-items: center; background: var(--heirlo-primary, #a41f35); color: #fff; }
.hc-panel header small { display: block; max-width: 280px; overflow-wrap: anywhere; font-size: 11px; }
.portal-page .hc-panel header button { width: 32px; padding: 4px; min-height: 32px; background: transparent; color: white; border: 1px solid #ffffff55; }
.hc-chat { padding: 14px; color: var(--heirlo-navy, #172033); }
.hc-log { height: 250px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 8px; background: #f6f7fb; border-radius: 10px; }
.hc-bubble { max-width: 90%; align-self: flex-start; padding: 10px 12px; background: #fff; border: 1px solid #e1e6ef; border-radius: 12px 12px 12px 2px; overflow-wrap: anywhere; }
.hc-bubble.hc-mine { align-self: flex-end; background: #faedf0; border-color: #ecd0d7; border-radius: 12px 12px 2px 12px; }
.hc-bubble small { font-size: 10px; color: var(--heirlo-text-secondary, #475569); }
.hc-bubble p { white-space: pre-wrap; margin: 5px 0 0; font-size: 14px; line-height: 1.5; }
.hc-status,.hc-empty,.hc-chat>small { color: var(--heirlo-text-secondary, #475569); font-size: 11px; line-height: 1.5; }
.hc-compose label { display: block; font-size: 12px; font-weight: 600; }
.hc-compose textarea { width: 100%; min-height: 72px; resize: vertical; padding: 10px; border: 1px solid #cbd5e3; border-radius: 8px; font: inherit; }
.hc-compose button { margin: 8px 0; width: auto; padding: 10px 18px; }
.hc-consent input { width: auto; margin-right: 8px; }
.hc-staff .hc-log { height: 350px; }
@media(max-width:600px){.hc-launcher{bottom:14px;right:12px;font-size:13px;}.hc-panel{right:12px;bottom:76px;}.hc-log{height:min(250px,32dvh);}}
.portal-page.cp-menu-open .hc-launcher, .portal-page.cp-menu-open .hc-panel { visibility: hidden; }

.portal-page .hc-launcher { max-width: min(420px, calc(100vw - 32px)); }
#chatLauncherLabel { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hc-panel header strong { display: block; overflow-wrap: anywhere; }
/* Keep an open questionnaire focused on its current section. */
.portal-page [data-panel="requests"] > .portal-card { max-width: 1040px; margin: 0 auto; }
.portal-page .cq-request.is-expanded { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 16px; padding-top: 0; }
.portal-page .cq-request.is-expanded > h3 { grid-column: 1; grid-row: 1; align-self: center; font-size: 20px; margin: 0; }
.portal-page .cq-request.is-expanded > p, .portal-page .cq-request.is-expanded > span { display: none; }
.portal-page .cq-request.is-expanded > button { grid-column: 2; grid-row: 1; width: auto; padding: 7px 12px; min-height: 34px; font-size: 12px; color: var(--heirlo-text-secondary, #475569); background: #fff; border: 1px solid #dce3ee; }
.portal-page .cq-request.is-expanded > div { grid-column: 1 / -1; }
.portal-page .cq-request .cp-questionnaire { max-width: none; margin: 12px 0 0; }
.portal-page .cq-request .cq-intro { font-size: 13px; margin: 0 0 16px; max-width: none; }
.portal-page .cq-request .cq-progress { margin: 0 0 12px; }
@media(max-width:600px){.portal-page .cq-request.is-expanded > h3{font-size:18px;}.portal-page .cq-request.is-expanded{gap:0 8px;}}

/* Client overview: compact actions and the firm's quiet card hierarchy. */
.portal-page.cp-authenticated .portal-shell { margin-top: 0; }
.cp-authenticated .cp-welcome { border: 0; border-radius: 0; background: transparent; padding: 4px 0 24px; margin: 0; }
.portal-page.cp-authenticated .cp-welcome h2 { font-size: 25px; letter-spacing: -.6px; margin-bottom: 6px; }
.cp-welcome-emblem { display: grid; place-items: center; width: 48px; height: 48px; flex-shrink: 0; border-radius: 14px; background: var(--heirlo-accent-soft, #eef0fa); color: var(--heirlo-accent-strong, #50588f); }
.cp-welcome-emblem svg { width: 23px; height: 23px; }
.cp-authenticated .cp-stats { gap: 14px; }
.portal-page.cp-authenticated .cp-stat { padding: 20px; transition: border-color .15s, box-shadow .15s; }
.portal-page.cp-authenticated .cp-stat:hover { box-shadow: 0 3px 12px #17203308; }
.cp-authenticated .cp-overview-grid { gap: 20px; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.cp-authenticated .cp-next-step { align-items: center; min-height: 66px; }
.cp-authenticated .cp-next-step > div { min-width: 0; }
.cp-authenticated .cp-next-step strong { overflow-wrap: anywhere; }
.cp-authenticated .cp-next-step button { flex-shrink: 0; border: 0; background: var(--heirlo-primary, #a41f35); color: #fff; min-height: 40px; padding: 9px 15px; }
.cp-authenticated .cp-next-step button:hover { background: #85172b; }
.portal-page.cp-authenticated button.cp-activity { display: flex; justify-content: flex-start; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 16px 0; border: 0; border-bottom: 1px solid #edf0f5; border-radius: 0; background: transparent; font-weight: 400; }
.portal-page.cp-authenticated button.cp-activity:last-child { border-bottom: 0; }
.portal-page.cp-authenticated button.cp-activity:hover { background: #f8f9fc; }
.cp-authenticated .cp-activity > span:last-child { min-width: 0; }
.cp-authenticated .cp-activity strong { display: block; overflow-wrap: anywhere; }
.cp-authenticated .cp-activity p { margin: 4px 0 0; color: var(--heirlo-muted, #5d6b82); }
.cp-authenticated .cp-activity .cp-icon-tile { flex-shrink: 0; }
.cp-authenticated .cp-empty { padding: 36px 12px; }
@media (max-width: 1100px) { .cp-authenticated .cp-overview-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) {
  .cp-authenticated .cp-welcome { flex-direction: row; align-items: center; padding: 0 0 22px; }
  .portal-page.cp-authenticated .cp-welcome h2 { font-size: 22px; }
  .cp-welcome-emblem { display: none; }
  .portal-page.cp-authenticated .cp-stat { padding: 16px; }
}
@media (max-width: 600px) {
  .portal-page .hc-launcher { width: 52px; height: 52px; padding: 0; justify-content: center; right: 16px; bottom: 16px; }
  .hc-launcher #chatLauncherLabel { display: none; }
  .hc-launcher #chatBadge { position: absolute; right: -4px; top: -8px; }
}
