.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; }
@media(max-width:760px){.portal-message-bubble{width:90%}.portal-message-composer{grid-template-columns:1fr}.client-chat-launcher{right:12px;bottom:12px}.portal-message-list{max-height:360px}}
