/* Client-only luxury layer. Internal dashboard and saving styles are untouched. */
@font-face{font-family:Inter;src:url('fonts/inter-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('fonts/inter-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('fonts/inter-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Inter;src:url('fonts/inter-700.ttf') format('truetype');font-weight:700;font-display:swap}
.portal-body{--text:#30241c;--muted:#786454;--line:#e6d8c6;--surface:#fffcf7;background:radial-gradient(ellipse at top left,#f9f1e4,transparent 65%),#f4eee5;color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6}
.portal-body [hidden]{display:none!important}
.portal-shell{max-width:1340px;margin:auto;padding:32px 42px 64px;min-width:0}
.portal-brand-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 4px 22px;color:#856b50;font-size:.69rem;letter-spacing:.18em;text-transform:uppercase}
.portal-brand-row img{width:145px;height:76px;object-fit:contain;filter:brightness(0);display:block}
.portal-shell>.topbar{position:relative;isolation:isolate;overflow:hidden;padding:36px;border:1px solid #65503b;border-radius:24px;background:linear-gradient(120deg,#483525,#241c16);box-shadow:0 16px 35px #39281b16,inset 0 0 0 6px #ffffff04;gap:24px;align-items:center}
.portal-shell>.topbar:after{content:"";position:absolute;z-index:-1;right:9%;top:-25px;width:290px;height:210px;background:url('logo-transparent.png') center/contain no-repeat;filter:brightness(0) invert(1);opacity:.04;pointer-events:none}
.portal-body .page-title{color:#fff4e2;font:400 clamp(1.8rem,4vw,2.8rem)/1.15 Georgia,serif;letter-spacing:-.03em;overflow-wrap:anywhere;margin:10px 0}
.portal-body .page-kicker{color:#d5b78f;letter-spacing:.21em;font-size:.66rem}
.portal-body .page-subtitle{color:#e2ceb3;font-size:.83rem;line-height:1.7}
.portal-body .btn{min-height:44px;padding:.8rem 1.1rem;border-radius:11px;font-size:.8rem;font-weight:600;white-space:normal;text-align:center;line-height:1.4}
.portal-body .btn.btn-primary{color:#342516;background:linear-gradient(135deg,#ebd2aa,#cdaa75);border:1px solid #c2a071;box-shadow:0 5px 14px #5a3a1912}
.portal-body .btn.btn-primary:hover,.portal-body .btn.btn-primary:focus-visible{color:#342516;background:#efd9b6;border-color:#a98450}
.portal-body .btn.btn-secondary{color:#60472d;background:#fffcf7;border:1px solid #d6c2a6}
.portal-shell>.topbar .btn-secondary{background:#ffffff09;color:#f4e5ce;border-color:#8b7357}
.portal-body .btn:disabled{opacity:.58;cursor:wait}
.portal-body :focus-visible{outline:3px solid #947041;outline-offset:3px}
.portal-body .portal-section-card,.portal-body .portal-summary-card,.portal-body .portal-hero-card{border:1px solid #e3d2bb;border-radius:22px;background:#fffcf7;box-shadow:0 9px 26px #50351d06}
.portal-body .portal-section-card{padding:26px}
.portal-body .portal-inline-kicker,.portal-body .portal-hero-kicker{color:#85623c;font-size:.66rem;letter-spacing:.19em}
.portal-body h2{font-family:Georgia,serif;font-size:1.6rem;font-weight:400;color:#463323;line-height:1.25}
.portal-body .portal-hero{gap:22px}
.portal-body .portal-question-band{background:linear-gradient(125deg,#fffcf7,#f8f0e4)}
.portal-body .portal-summary-card{background:#eee3d2;padding:24px}
.portal-body .portal-summary-stat{background:#fffcf7b5;border-color:#dac7ab;border-radius:13px;min-width:0}
.portal-body .portal-summary-stat strong{font-family:Georgia,serif;font-weight:400;font-size:1.25rem;color:#503821;overflow-wrap:anywhere}
.portal-body .portal-readonly-field{background:#fffdfa;border:1px solid #eadfce;border-radius:12px;min-width:0;overflow-wrap:anywhere}
.portal-body .portal-readonly-field span{color:#866a48;font-size:.63rem;letter-spacing:.09em}
.portal-body input:not([type=checkbox]),.portal-body textarea{background:#fffefa;border:1px solid #d9c8b3;border-radius:10px;color:#30241c;min-width:0;max-width:100%;font-size:16px;line-height:1.5}
.portal-body textarea{resize:vertical}
.portal-body label{color:#70543a;font-size:.78rem;line-height:1.6}
.portal-body .portal-tab-bar{background:#eae0d2;border:1px solid #dfceb7;border-radius:15px;padding:6px;gap:5px;display:flex;margin:24px 0 18px}
.portal-body .portal-tab-btn{flex:1;min-height:47px;padding:10px 14px;color:#755b3e;border-radius:10px;font-size:.8rem}
.portal-body .portal-tab-btn.active{background:linear-gradient(120deg,#483525,#2b2119);color:#f8e8cd;box-shadow:0 3px 8px #36231218}
.portal-body .portal-lock-note{border:1px solid #e2cfae;background:#f7efdf;color:#6d5435;border-radius:12px;padding:15px;font-size:.81rem}
.portal-status{position:sticky;top:10px;z-index:20;margin:14px 0;padding:13px 18px;border-radius:12px;border:1px solid #bdc5a8;background:#f2f5e9;color:#3e542e;box-shadow:0 7px 20px #30241c12;font-size:.83rem}
.portal-status[data-error=true]{background:#fff2e8;color:#883e2e;border-color:#d7a78e}
.portal-body .signature-pad{display:block;width:100%;max-width:520px;height:auto;aspect-ratio:26/9;touch-action:none;background:#fffefa;border:1px dashed #b29470;border-radius:12px}
.portal-consent{display:flex;align-items:flex-start;gap:10px;margin:18px 0;max-width:560px}
.portal-consent input{width:20px;height:20px;flex:0 0 20px;accent-color:#654a2e}
.portal-body .portal-signature-preview{max-width:100%;height:130px;object-fit:contain;background:#fffdfa;border-radius:10px}
.portal-body .portal-signature-panel{background:#f6eee1;border-color:#dfcbb0}
.portal-body .portal-upload-item,.portal-body .portal-question-item{overflow-wrap:anywhere}
.portal-body .portal-pdf-overlay-panel{border:1px solid #c5ac88;border-radius:18px;background:#fbf5ec}
.portal-body .portal-pdf-overlay-bar{background:#f8f0e3;border-bottom:1px solid #dfcdb2}
.portal-body .portal-pdf-frame{background:#efe7dd;min-width:0}
.portal-login-page main{background:radial-gradient(ellipse at top,#6a5033 0,#35271c 45%,#211a14 100%)}
.portal-login-page .portal-hero-card{padding:42px 38px!important;background:linear-gradient(150deg,#fffdf7,#f2e6d3);border-color:#b79a71;box-shadow:0 25px 80px #0003,inset 0 0 0 6px #ffffff55}
.portal-login-page .portal-hero-title{font-family:Georgia,serif;font-weight:400;color:#402d1e;line-height:1.15}
.portal-login-page .portal-hero-subtitle{font-size:.86rem;color:#7b6045;line-height:1.8}
.portal-login-page .actions,.portal-login-page .actions button{width:100%}
@media(max-width:760px){.portal-shell{padding:18px 16px 40px}.portal-brand-row{padding-bottom:14px}.portal-brand-row img{width:115px;height:64px}.portal-brand-row span{font-size:.55rem;max-width:125px;text-align:right}.portal-shell>.topbar{padding:25px 22px;align-items:flex-start;flex-direction:column;gap:16px}.portal-body .portal-hero{grid-template-columns:1fr}.portal-body .portal-summary-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-body .portal-summary-card{padding:15px}.portal-body .portal-section-card{padding:20px}.portal-body .portal-summary-document-head{flex-direction:column;align-items:stretch;gap:15px}.portal-body .portal-tab-bar{display:grid;grid-template-columns:1fr 1fr}.portal-body .portal-tab-btn{padding:10px 6px}.portal-body .portal-readonly-grid,.portal-body .portal-signature-grid{grid-template-columns:1fr}.portal-body #portalProgress{grid-template-columns:1fr 1fr}.portal-body .portal-pdf-overlay-bar{flex-wrap:wrap;gap:10px}.portal-body .portal-pdf-overlay-panel{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.portal-body .portal-pdf-overlay-actions{flex-wrap:wrap}.portal-login-page .portal-hero-card{padding:30px 22px!important}.portal-body .actions{flex-wrap:wrap}.portal-body .portal-summary-stat strong{font-size:1.08rem}}
@media(prefers-reduced-motion:reduce){.portal-body *{scroll-behavior:auto}}
@media print{.portal-body{background:#fff}.portal-brand-row,.portal-tab-bar,.portal-status{display:none}}

.portal-table-scroll{overflow:auto;margin:18px 0}.portal-table-scroll table{width:100%;border-collapse:collapse;font-size:.8rem}.portal-table-scroll th,.portal-table-scroll td{padding:12px;border:1px solid #e3d2bb;text-align:left;overflow-wrap:anywhere}.portal-table-scroll th{background:#eee3d2}

/* Refined client actions and a single-column correspondence desk. */
.portal-body .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:13px 22px;border-radius:12px;font:600 .81rem/1.45 Inter,Arial,sans-serif;letter-spacing:.015em;text-decoration:none;transition:background .18s ease,box-shadow .18s ease,transform .18s ease,border-color .18s ease}
.portal-body .btn.btn-primary{color:#fff5e5;background:linear-gradient(135deg,#59412f,#34251c);border:1px solid #634a35;box-shadow:inset 0 1px 0 #ffffff18,0 4px 10px #39281b12}
.portal-body .btn.btn-primary:hover:not(:disabled),.portal-body .btn.btn-primary:focus-visible{color:#fff5e5;background:linear-gradient(135deg,#6b5039,#443023);border-color:#8b6948;box-shadow:0 6px 16px #39281b22}
.portal-body .btn.btn-primary:hover:not(:disabled){transform:translateY(-1px)}
.portal-body .btn.btn-secondary{color:#503a28;background:#f7eddd;border:1px solid #cfb996;box-shadow:inset 0 1px 0 #fff9}
.portal-body .btn.btn-secondary:hover:not(:disabled){background:#eedfc8;border-color:#ad8a5e;transform:translateY(-1px)}
.portal-body .btn:focus-visible,.portal-body .portal-tab-btn:focus-visible{outline:3px solid #957045;outline-offset:4px}
.portal-body .btn:active:not(:disabled){transform:translateY(0);box-shadow:inset 0 2px 4px #21160e18}
.portal-body .btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.portal-body .btn[aria-busy=true]{cursor:wait}
.portal-body .portal-shell>.topbar .btn-secondary{color:#f8e8cf;background:#ffffff0c;border-color:#a58b69;box-shadow:none}
.portal-body .portal-shell>.topbar .btn-secondary:hover{background:#ffffff1c}
.portal-body .portal-hero{align-items:start}
.portal-body .portal-summary-stack{align-content:start}
.portal-body .portal-question-band{display:flex;flex-direction:column;gap:24px;align-items:stretch;background:#fffcf7;padding:30px}
.portal-body .portal-question-band,.portal-body .portal-question-band>*{min-width:0}
.portal-body .portal-question-band::before{display:none}
.portal-body .portal-question-band>div:first-child{max-width:620px}
.portal-body .portal-question-band h2{margin:5px 0 10px}
.portal-body .portal-question-band>div:first-child>p:last-child{margin:0;color:#786454;font-size:.85rem;line-height:1.75}
.portal-body .portal-question-form{gap:12px;padding:0;margin:0}
.portal-body .portal-question-form-field{display:grid;gap:10px;color:#503a28;font-size:.8rem;font-weight:600}
.portal-body .portal-question-form-field textarea{box-sizing:border-box;width:100%;min-height:132px;resize:vertical;border:1px solid #d9c7ae;border-radius:14px;padding:16px 18px;background:#fffefa;box-shadow:inset 0 2px 5px #50351d04;font:400 .9rem/1.7 Inter,Arial,sans-serif;color:#30241c}
.portal-body .portal-question-form-field textarea:focus-visible{outline:2px solid #957045;outline-offset:3px;border-color:#957045}
.portal-body .portal-question-form .actions{margin:0;justify-content:flex-end}
.portal-body .portal-question-thread-head{margin:4px 0 -8px;padding-top:22px;border-top:1px solid #e8dccb}
.portal-body .portal-question-thread-head strong{font-size:.72rem;letter-spacing:.14em;color:#786454}
.portal-body .portal-question-thread{display:grid;gap:22px;max-height:none;overflow:visible;padding:0}
.portal-body .portal-question-item{display:grid;gap:10px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.portal-body .portal-question-question,.portal-body .portal-question-answer{padding:16px 18px;border:1px solid #e7d9c5;border-radius:14px;background:#f6efe4}
.portal-body .portal-question-question{margin-left:32px;border-bottom-right-radius:4px}
.portal-body .portal-question-answer{margin-right:32px;border-bottom-left-radius:4px;background:#fffefa;border-left:3px solid #bc9b6b}
.portal-body .portal-question-item-head,.portal-body .portal-question-answer-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 14px;justify-content:space-between}
.portal-body .portal-question-item strong{color:#503a28;font-size:.76rem}
.portal-body .portal-question-meta{color:#786454;font-size:.69rem}
.portal-body .portal-question-item p{white-space:pre-wrap;margin:9px 0 0;font-size:.85rem;line-height:1.8;color:#49392e}
.portal-body .portal-question-thread .empty{padding:20px;border:1px dashed #ddccb5;border-radius:12px;background:transparent;color:#786454;font-size:.83rem;text-align:center}
@media(max-width:760px){.portal-body .portal-question-band{padding:22px 20px;gap:20px}.portal-body .portal-question-form .btn{width:100%}.portal-body .portal-question-question{margin-left:12px}.portal-body .portal-question-answer{margin-right:12px}.portal-body .portal-question-question,.portal-body .portal-question-answer{padding:14px}.portal-body .btn{max-width:100%;padding:12px 18px}.portal-body .portal-question-form-field textarea{font-size:16px}.portal-body .portal-question-thread{gap:18px}}
@media(prefers-reduced-motion:reduce){.portal-body .btn{transition:none}.portal-body .btn:hover:not(:disabled){transform:none}}

/* Private password setup/change, separate from dossier forms and drafts. */
.portal-session-gate{padding-top:70px;text-align:center;color:#70543a}
.portal-password-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:36px 20px}
.portal-password-card{width:min(100%,560px);text-align:center}
.portal-password-logo{width:150px;display:block;margin:0 auto 12px;filter:brightness(0)}
.portal-password-card .portal-hero-kicker{margin:0 0 22px}
.portal-password-emblem{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 20px;border:1px solid #d8c09c;border-radius:18px;background:#eee1cb;color:#795632;box-shadow:inset 0 1px 0 #fff9}
.portal-password-emblem svg{width:30px;height:30px}
.portal-password-card .portal-hero-title{margin:0 0 14px;font-size:clamp(1.9rem,5vw,2.3rem)}
.portal-password-card .portal-hero-subtitle{margin:0 auto 24px;max-width:400px}
.portal-password-card .portal-password-form{gap:21px;text-align:left}
.portal-password-card .portal-password-field{display:grid;gap:8px;min-width:0}
.portal-password-field label{margin:0;font-weight:600}
.portal-password-input{position:relative;min-width:0}
.portal-password-page .portal-password-input input{box-sizing:border-box;min-height:52px;padding:13px 83px 13px 14px}
.portal-password-toggle{position:absolute;top:4px;right:4px;min-width:66px;min-height:44px;padding:6px 9px;border:0;border-radius:7px;background:transparent;color:#654a2e;font:600 .74rem/1.4 Inter,Arial,sans-serif;cursor:pointer}
.portal-password-toggle:hover{background:#efe3d0}
.portal-password-toggle:disabled{opacity:.6;cursor:wait}
.portal-password-field small{color:#786454;font-size:.73rem;line-height:1.65}
.portal-password-error{margin:0;padding:13px 15px;border:1px solid #d7a78e;border-radius:10px;background:#fff2e8;color:#883e2e;font-size:.8rem;line-height:1.7;overflow-wrap:anywhere}
.portal-password-error:empty{display:none}
.portal-password-input input[aria-invalid=true]{border-color:#a24d3b}
.portal-password-card .portal-password-note{margin:-8px 0 0;text-align:center;font-size:.72rem;color:#786454}
.portal-password-status{font-size:.83rem;color:#70543a}
.portal-password-status[data-error=true]{color:#883e2e}
.portal-password-footer{display:flex;justify-content:center;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid #dfceb7}
.portal-password-footer a,.portal-text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 0;border:0;background:none;color:#70543a;font:500 .76rem/1.5 Inter,Arial,sans-serif;text-underline-offset:4px;cursor:pointer}
.portal-text-button{text-decoration:underline}
.portal-text-button:disabled,.portal-password-footer [aria-disabled=true]{opacity:.55;cursor:wait}
.portal-password-success{padding:20px 0 4px;border-top:1px solid #dfceb7}
.portal-password-success h2{font-size:1.55rem;margin:0 0 15px}
.portal-password-success p{font-size:.84rem;color:#70543a;line-height:1.8;margin:0 0 24px}
.portal-password-success .btn{width:100%}
@media(max-width:540px){.portal-password-shell{padding:20px 12px}.portal-password-card.portal-hero-card{padding:28px 20px!important}.portal-password-logo{width:130px}.portal-password-card .portal-hero-kicker{font-size:.59rem;letter-spacing:.13em}.portal-password-emblem{margin-bottom:16px}.portal-password-card .portal-hero-subtitle{font-size:.81rem}}
