.portal-stage[data-portal-view="profile"] {
  width: min(1380px, 100%);
  display: block;
  padding: clamp(12px, 2vw, 24px);
}

.portal-stage[data-portal-view="profile"] .hero { display: none; }

.portal-stage[data-portal-view="profile"] .portal-card {
  width: 100%;
  min-height: 0;
  padding: clamp(24px, 4vw, 52px);
  border: 1px solid rgba(137, 220, 187, .18);
  border-radius: 23px;
  background:
    radial-gradient(circle at 90% 0%, rgba(56, 143, 111, .16), transparent 32%),
    linear-gradient(145deg, rgba(8, 40, 30, .98), rgba(4, 25, 19, .99));
}

.client-dashboard {
  display: grid;
  gap: 24px;
  width: 100%;
  color: #edf8f3;
}

.client-preview-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 18px;
  border: 1px solid rgba(121, 229, 191, .3);
  border-radius: 14px;
  background: rgba(121, 229, 191, .08);
  color: #d9fff1;
}

.client-preview-banner span { color: #a9c5ba; }

.client-dashboard-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 28px;
  padding: 6px 2px 24px;
  border-bottom: 1px solid rgba(176, 218, 202, .14);
}

.client-dashboard-head .eyebrow,
.client-panel .eyebrow { color: #83e5bd; }

.client-dashboard-head h2 {
  margin: 5px 0 7px;
  color: #fff;
  font: 750 clamp(36px, 4.5vw, 60px)/1.02 Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing: -.045em;
}

.client-dashboard-head p:last-child { margin: 0; color: #a9bbb4; font-size: 15px; }
.client-dashboard-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.client-dashboard-actions a { text-decoration: none; }

.client-benefits {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr);
  gap: clamp(24px, 4vw, 54px);
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(152, 239, 205, .28);
  border-radius: 20px;
  background:
    radial-gradient(circle at 9% 10%, rgba(147, 239, 202, .2), transparent 31%),
    radial-gradient(circle at 96% 100%, rgba(58, 148, 113, .24), transparent 35%),
    linear-gradient(118deg, rgba(20, 76, 58, .92), rgba(7, 43, 32, .96));
  box-shadow: inset 0 1px rgba(255,255,255,.12), 0 18px 50px rgba(0, 12, 8, .2);
}

.client-benefits::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0 auto auto -12%;
  width: 68%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(222,255,241,.8), transparent);
  transform: rotate(-8deg);
  box-shadow: 0 38px 70px 20px rgba(170, 247, 216, .07);
}

.client-benefits-copy { align-self: center; }
.client-benefits-copy .eyebrow { margin: 0 0 10px; color: #8ce9c3; }
.client-benefits-copy h3 { margin: 0; color: #fff; font-size: clamp(27px, 3vw, 40px); line-height: 1; letter-spacing: -.04em; }
.client-benefits-copy > p:last-child { max-width: 370px; margin: 15px 0 0; color: #b7cec5; line-height: 1.55; }
.client-benefits-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.client-benefits-grid article { display: grid; grid-template-columns: auto 1fr; gap: 12px; min-width: 0; padding: 16px; border: 1px solid rgba(184, 237, 216, .14); border-radius: 14px; background: linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); box-shadow: inset 0 1px rgba(255,255,255,.08); }
.client-benefits-grid article > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: rgba(143, 236, 199, .13); color: #9aebca; font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.client-benefits-grid strong { display: block; margin: 1px 0 5px; color: #fff; font-size: 14px; }
.client-benefits-grid small { display: block; color: #a9c0b7; font-size: 12px; line-height: 1.45; }

.client-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(360px, .78fr) minmax(520px, 1.22fr);
  gap: 20px;
  align-items: start;
}

.client-panel {
  min-width: 0;
  padding: clamp(20px, 2.2vw, 30px);
  display: grid;
  gap: 18px;
  border: 1px solid rgba(151, 213, 187, .16);
  border-radius: 18px;
  background: rgba(3, 28, 20, .72);
  box-shadow: inset 0 1px rgba(255, 255, 255, .018);
  color: #edf8f3;
}

.client-panel h3 { margin: 3px 0 0; color: #fff; font: 720 25px/1.15 Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.025em; }
.client-panel > p,
.history-list > p,
.receipt-list > p { color: #9fb5ac; }

.profile-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
[data-profile-form] { display: grid; gap: 17px; }
.profile-fields .wide { grid-column: 1 / -1; }
.portal-card .client-panel label { color: #c4d7cf; font-size: 12px; }
.portal-card .client-panel input,
.portal-card .client-panel select,
.portal-card .client-panel textarea {
  min-height: 47px;
  padding: 12px 13px;
  border: 1px solid rgba(153, 205, 184, .22);
  border-radius: 11px;
  background: rgba(1, 18, 13, .72);
  color: #f3faf7;
  -webkit-text-fill-color: #f3faf7;
  opacity: 1;
}

.client-dashboard :disabled { cursor: default; opacity: 1; }
.client-dashboard button:disabled { color: #9fbcb1; background: rgba(137, 220, 187, .08); box-shadow: none; }

.upcoming-card {
  display: grid;
  grid-template-columns: minmax(210px, .75fr) minmax(260px, 1.25fr);
  gap: 18px 24px;
  padding: 22px;
  border: 1px solid rgba(151, 213, 187, .12);
  border-radius: 15px;
  background: rgba(12, 54, 41, .52);
}

.upcoming-card h4 { margin: 12px 0 0; color: #fff; font-size: 20px; line-height: 1.25; }
.appointment-meta { display: grid; align-content: start; gap: 7px; color: #b5c8c0; font-size: 14px; line-height: 1.5; }
.therapist-notes { grid-column: 1 / -1; display: grid; gap: 9px; padding-top: 4px; }
.therapist-notes textarea { width: 100%; min-height: 104px; resize: vertical; font: inherit; }
.privacy-note { margin: 0; color: #8da69c; font-size: 12px; line-height: 1.5; }

.client-dashboard-lower { display: grid; grid-template-columns: 1.2fr .8fr; gap: 20px; }
.history-list, .receipt-list { display: grid; gap: 0; }
.history-row, .receipt-row { display: flex; justify-content: space-between; align-items: start; gap: 18px; padding: 15px 0; border-bottom: 1px solid rgba(176, 218, 202, .12); color: #eaf5f0; }
.receipt-row > div:last-child { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.receipt-row [data-pay-invoice] { padding: 8px 12px; }
.history-row:last-child, .receipt-row:last-child { border-bottom: 0; }
.history-row small, .receipt-row small { color: #91a89e; line-height: 1.5; }
.status-pill { display: inline-flex; width: fit-content; border-radius: 999px; padding: 6px 10px; background: rgba(131, 229, 189, .12); color: #9aebca; font-size: 10px; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; }
.save-status { min-height: 18px; color: #91a89e; font-size: 12px; }

@media (max-width: 1050px) {
  .client-dashboard-grid { grid-template-columns: 1fr; }
  .upcoming-card { grid-template-columns: minmax(200px, .7fr) minmax(280px, 1.3fr); }
  .client-benefits { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .portal-stage[data-portal-view="profile"] { padding: 8px; border-radius: 22px; }
  .portal-stage[data-portal-view="profile"] .portal-card { padding: 22px 16px 26px; border-radius: 16px; }
  .client-preview-banner, .client-dashboard-head { align-items: flex-start; flex-direction: column; }
  .client-dashboard-actions { width: 100%; }
  .client-dashboard-actions a, .client-dashboard-actions button { flex: 1; text-align: center; }
  .profile-fields, .client-dashboard-lower, .upcoming-card, .client-benefits-grid { grid-template-columns: 1fr; }
  .profile-fields .wide, .therapist-notes { grid-column: auto; }
  .client-panel { padding: 20px 16px; }
}

.portal-message-panel { display:grid; gap:16px; }
.portal-message-panel>header { display:flex; align-items:end; justify-content:space-between; gap:16px; }
.portal-message-panel h3,.portal-message-panel p { margin:0; }
.portal-message-panel header small { color:#91a89e; }
.portal-message-list { display:flex; flex-direction:column; gap:10px; max-height:440px; overflow:auto; padding:16px; border:1px solid rgba(137,178,162,.22); border-radius:16px; background:rgba(3,24,19,.3); }
.portal-message-bubble { width:min(78%,680px); padding:12px 14px; border-radius:16px 16px 16px 4px; background:rgba(255,255,255,.09); }
.portal-message-bubble.staff { align-self:flex-end; border-radius:16px 16px 4px 16px; background:#176f5d; color:#fff; }
.portal-message-bubble p { line-height:1.55; white-space:pre-wrap; }
.portal-message-bubble small { display:block; margin-top:6px; color:#a9c1b8; font-size:11px; }
.portal-message-bubble.staff small { color:#d8eee7; }
.portal-message-empty { padding:28px; text-align:center; color:#91a89e; }
.portal-message-composer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; }
.portal-message-composer textarea { min-height:74px; resize:vertical; }
.client-chat-launcher { position:fixed; right:24px; bottom:24px; z-index:80; display:grid; gap:2px; min-width:190px; padding:14px 18px; border:1px solid rgba(160,221,197,.45); border-radius:18px 18px 4px 18px; color:#fff; background:#126b58; box-shadow:0 14px 36px rgba(0,0,0,.28); text-align:left; cursor:pointer; }
.client-chat-launcher strong { font-size:15px; }.client-chat-launcher span { color:#d3eee5; font-size:12px; }
.guest-chat-dialog { width:min(460px,calc(100% - 24px)); padding:0; border:1px solid rgba(231,188,86,.42); border-radius:20px; color:#f8f1df; background:#08271f; box-shadow:0 28px 80px rgba(0,0,0,.5); }
.guest-chat-dialog::backdrop { background:rgba(0,0,0,.62); }
.guest-chat-shell { display:grid; grid-template-rows:auto minmax(160px,380px) auto; max-height:min(720px,calc(100dvh - 32px)); }
.guest-chat-head { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:18px; border-bottom:1px solid rgba(255,255,255,.12); }
.guest-chat-head p,.guest-chat-head h2 { margin:0; }.guest-chat-head p { color:#b7cabf; font-size:12px; }
.guest-chat-close { width:34px; height:34px; border:0; border-radius:50%; color:#fff; background:rgba(255,255,255,.1); cursor:pointer; }
.guest-chat-messages { display:flex; flex-direction:column; gap:9px; overflow:auto; padding:16px; }
.guest-chat-bubble { max-width:84%; padding:10px 12px; border-radius:14px 14px 14px 4px; background:rgba(255,255,255,.1); }
.guest-chat-bubble.inbound { align-self:flex-end; border-radius:14px 14px 4px 14px; background:#176f5d; }.guest-chat-bubble p{margin:0;white-space:pre-wrap}.guest-chat-bubble small{display:block;margin-top:5px;color:#c5d8d1;font-size:10px}
.guest-chat-form { display:grid; gap:10px; padding:16px; border-top:1px solid rgba(255,255,255,.12); }.guest-chat-identity{display:grid;grid-template-columns:1fr 1fr;gap:8px}.guest-chat-form input,.guest-chat-form textarea{width:100%;padding:11px 12px;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;background:rgba(0,0,0,.2);font:inherit}.guest-chat-form textarea{min-height:74px;resize:vertical}.guest-chat-form button.primary{justify-self:end}.guest-chat-status{min-height:16px;margin:0;color:#f2c96d;font-size:12px}
@media(max-width:760px){.portal-message-bubble{width:90%}.portal-message-composer{grid-template-columns:1fr}.portal-header nav .client-chat-launcher{position:static;min-width:0;padding:9px 12px;border-radius:999px;box-shadow:none}.client-chat-launcher span{display:none}.client-chat-launcher strong{font-size:13px}.portal-message-list{max-height:360px}.guest-chat-dialog{width:calc(100% - 16px)}.guest-chat-identity{grid-template-columns:1fr}}
.public-signing-mode{background:#eef2f4}.public-signing-mode>.portal-header,.public-signing-mode main .hero,.public-signing-mode>footer{display:none}.public-signing-mode main{min-height:100vh}.public-signing-mode .portal-stage{display:block!important;width:100%;max-width:none!important;padding:0!important}.public-signing-mode .portal-card{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}.public-signing-shell{min-height:100vh;padding:24px}.public-signing-shell>header,.public-signing-form,.public-signing-complete{max-width:900px;margin:0 auto 18px}.public-signing-shell h1{margin:4px 0;font:700 clamp(25px,3vw,38px)/1.1 Georgia,serif}.public-signing-shell>header span{color:#60706a}.public-signing-form{display:grid;gap:18px}.public-signing-document{position:relative;width:100%;aspect-ratio:8.5/11;overflow:hidden;border:1px solid #ccd6da;background:#fff;box-shadow:0 12px 35px rgba(26,46,52,.12)}.public-signing-document canvas{display:block;width:100%;height:100%;background:#fff}.public-signing-overlay{position:absolute;inset:0}.public-document-field{position:absolute;display:block;margin:0}.public-document-field input,.public-document-field textarea,.public-document-field select{width:100%;height:100%;min-height:0;box-sizing:border-box;padding:clamp(2px,.55vw,7px);border:1px solid #9a7a2d;border-radius:3px;color:#17201d;background:rgba(255,253,242,.94);font:600 clamp(8px,1.25vw,14px)/1.15 Arial,sans-serif;resize:none}.public-document-field input[readonly]{color:#49534f;background:rgba(241,244,242,.94)}.public-document-field.field-signature input{font-family:Georgia,serif;font-style:italic}.public-signing-actions,.public-signing-complete{display:grid;gap:14px;padding:20px;border:1px solid #d5dfe2;border-radius:12px;background:#fff;box-shadow:0 12px 35px rgba(26,46,52,.08)}.public-signing-fields{display:grid;gap:14px}.public-signing-fields textarea{min-height:72px;padding:11px 12px;border:1px solid #d2dcdf;border-radius:9px;font:inherit;resize:vertical}.public-signing-fields input[readonly]{color:#5d6965;background:#f2f5f4}.public-signing-fields .signature-field{margin-top:8px;padding-top:18px;border-top:1px solid #e2e8e9}.public-signing-date{margin:0;color:#687874;font-size:13px}.public-signing-form .primary{width:100%}@media(max-width:900px){.public-signing-shell{padding:12px}.public-signing-shell>header{margin-bottom:12px}.public-signing-actions{padding:16px}}
.public-signing-overlay{z-index:2}
.public-document-field input,.public-document-field textarea,.public-document-field select{border:1px solid #4a5350!important;color:#111!important;-webkit-text-fill-color:#111!important;background:#fff!important;opacity:1!important;color-scheme:light}.public-document-field input::placeholder,.public-document-field textarea::placeholder{color:#65706c!important;-webkit-text-fill-color:#65706c!important;opacity:1}.public-document-field.field-signature,.public-document-field.field-initial{display:block}.public-document-field.field-signature button,.public-document-field.field-initial button{width:100%;height:100%;padding:2px 7px;border:1px solid #b67a00;border-radius:3px;color:#fff;background:#e0a900;font:800 clamp(8px,1.1vw,13px)/1.05 Arial,sans-serif;cursor:pointer}.public-document-field.field-signature button.applied,.public-document-field.field-initial button.applied{font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(12px,2vw,22px)}.public-signature-adoption{display:grid;gap:8px;padding:14px;border:1px solid #d5dfe2;border-radius:9px;background:#f8faf9}.public-signature-adoption label{display:grid;gap:5px;color:#24342f;font-weight:800}.public-signature-adoption input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #596763;border-radius:7px;color:#111;background:#fff;font:inherit;color-scheme:light}.public-signature-preview{min-height:38px;padding:8px 12px;border-bottom:2px solid #66736f;color:#6d7874;background:#fff;font:italic 20px/1.1 "Brush Script MT","Segoe Script",cursive}.public-signature-preview.ready{color:#111}.public-signature-adoption small{color:#60706a}
.public-signing-mode,.public-signing-shell{color:#000;background:#fff}.public-signing-shell>header .eyebrow,.public-signing-shell>header h1,.public-signing-shell>header span,.public-signing-actions,.public-signing-actions label,.public-signing-actions p,.public-signing-actions small,.public-signing-complete{color:#000!important;-webkit-text-fill-color:#000}.public-signing-actions input:not([type="checkbox"]),.public-signing-fields input,.public-signing-fields textarea,.public-signing-fields select{color:#000!important;-webkit-text-fill-color:#000!important;background:#fff!important;opacity:1!important;color-scheme:light}.public-signing-actions input::placeholder,.public-signing-fields input::placeholder,.public-signing-fields textarea::placeholder{color:#3f3f3f!important;opacity:1}.public-signature-adoption,.public-signature-preview{color:#000;background:#fff}.public-signing-actions .checkbox-line{display:flex;align-items:flex-start;gap:10px;color:#000!important}.public-signing-actions .checkbox-line input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:#111}
.public-signing-commands{display:flex;justify-content:flex-end;gap:10px}.public-signing-commands .primary{width:auto}.public-signing-reject{min-height:44px;padding:0 16px;border:1px solid #bd5963;border-radius:6px;background:#fff;color:#963744;font:inherit;font-weight:800;cursor:pointer}.public-signing-reject:disabled{opacity:.5;cursor:not-allowed}.public-rejection-panel{display:grid;gap:12px;padding:16px;border:1px solid #e3b8bd;border-radius:8px;background:#fff7f8}.public-rejection-panel label{display:grid;gap:7px;color:#653238;font-weight:800}.public-rejection-panel textarea{min-height:100px;padding:10px;border:1px solid #d5a7ad;border-radius:6px;font:inherit;resize:vertical}.public-rejection-panel>div{display:flex;justify-content:flex-end;gap:8px}.public-rejection-panel>div>button:not(.public-signing-reject){padding:0 14px;border:1px solid #ccd6d3;border-radius:6px;background:#fff;color:#435751;font:inherit;font-weight:750}@media(max-width:700px){.public-signing-commands{display:grid;grid-template-columns:1fr}.public-signing-commands button{width:100%}}
.public-signing-pages{display:grid;gap:18px}.public-signing-page{display:grid;gap:7px;min-width:0}.public-signing-page-label{margin:0;color:#52615c;font-size:13px;font-weight:800}.public-signing-document-viewport{width:100%;overflow:hidden}.public-signing-actions{padding-bottom:max(20px,env(safe-area-inset-bottom))}
@media(max-width:700px){.public-signing-shell{padding:12px 0 0}.public-signing-shell>header,.public-signing-actions,.public-signing-complete{margin-right:12px;margin-left:12px}.public-signing-shell h1{font-size:25px}.public-signing-document-viewport{width:100%;overflow:visible;border-block:1px solid #ccd6da;background:#e8edef;box-shadow:0 10px 28px rgba(26,46,52,.12)}.public-signing-document{width:100%;max-width:none;border:0;box-shadow:none}.public-document-field input,.public-document-field textarea,.public-document-field select{padding:2px 3px;font-size:9px}.public-document-field.field-signature button,.public-document-field.field-initial button{font-size:9px}.public-document-field.field-signature button.applied,.public-document-field.field-initial button.applied{font-size:14px}.public-signing-actions{padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 16px))}}
