@font-face {
  font-family: "DM Sans";
  src: url("../general,%20reusable%20UI%20assets%20for%20pragtical/DMSans-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
}

:root {
  --client-portal-progress-track: #ddd;
  --client-portal-progress-fill: #ccfad1;
  --client-portal-progress-accent: #afeab7;
  --client-portal-border: #e1e5ea;
  --client-portal-border-strong: #d2d8df;
  --client-portal-soft-surface: #f5f5f7;
  color: #0c0c0c;
  background: #fff;
  font-family: "DM Sans", Arial, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html, body, #app { min-width: 320px; min-height: 100%; margin: 0; }
body { min-height: 100vh; background: #fff; }
button, input { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only, .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* Defaults must not override shared component icons (folder labels, selection brackets). */
:where(.icon) { display: block; width: 1em; height: 1em; object-fit: contain; }

.client-portal-shell { display: flex; min-height: 100vh; background: #fff; }
.client-portal-sidebar { position: relative; z-index: 2; flex: 0 0 125px; width: 125px; min-height: 100vh; padding: 11px 0 24px; color: #fff; background: #5d5d5c; }
.client-portal-brand { display: flex; align-items: center; gap: 7px; min-height: 32px; padding: 0 11px; color: #fff; font-size: 11px; text-decoration: none; white-space: nowrap; }
.client-portal-brand .icon { width: 17px; height: 17px; }
.client-portal-main-site-link { display: flex; align-items: center; justify-content: center; width: 103px; min-height: 24px; margin: 4px 11px 0; padding: 4px 6px; border: 1px solid #bdbdbd; border-radius: 8px; color: #fff; font-size: 10px; line-height: 14px; text-decoration: none; white-space: nowrap; }
.client-portal-main-site-link:hover { background: #70706f; border-color: #fff; }
.client-portal-main-site-link:focus-visible { outline: 2px solid #d1e9ff; outline-offset: 2px; }
.client-portal-sidebar-divider { height: 2px; margin: 10px 11px; background: rgba(255, 255, 255, .74); }
.client-portal-sidebar nav { display: grid; gap: 2px; margin-top: 0; padding-left: 11px; }
.client-portal-sidebar nav a { width: max-content; max-width: 108px; padding: 5px 7px; border: 1px solid transparent; border-radius: 8px; color: #fff; font-size: 10px; line-height: 1.25; text-decoration: none; }
.client-portal-sidebar nav a.is-active { border-color: #fff; }
.client-portal-sidebar-tab { position: absolute; right: -8px; width: 8px; height: 10px; border-radius: 0 5px 5px 0; }
.client-portal-sidebar-tab--blue { top: 96px; right: -14px; width: 14px; height: 20px; border-radius: 0 6px 6px 0; background: #d1e9ff; }
.client-portal-sidebar-tab--yellow { top: 127px; background: #f3d52b; }
.client-portal-sidebar-tab--green { top: 153px; background: #a8e2ae; }

.client-portal-main { flex: 1; min-width: 0; padding: 34px 21px 36px 56px; overflow-x: hidden; overflow-y: auto; }
.client-portal-page-heading { display: flex; align-items: center; gap: 10px; min-height: 24px; margin: 0 0 17px; transform: translateX(-5px); }
.client-portal-page-heading h1 { margin: 0; font-size: 16px; font-weight: 500; line-height: 1.2; }
.client-portal-count { display: inline-flex; align-items: stretch; min-width: 61px; height: 15px; padding-right: 12px; overflow: hidden; border-radius: 8px; background: #d1e9ff; color: #0c0c0c; font-size: 9px; line-height: 15px; white-space: nowrap; }
.client-portal-count > span { width: 8px; margin-right: 8px; background: #050505; }
.client-portal-count--page { align-items: center; justify-content: center; min-width: 88px; min-height: 22px; height: 22px; margin-left: 5px; padding: 0 9px; overflow: visible; font-size: 10px; line-height: normal; background: #d1e9ff; border: 1px solid #c5dce9; border-radius: 5px; box-shadow: -8px 0 0 #050505; }
.client-portal-dashboard { display: grid; grid-template-columns: 540px minmax(650px, 1fr); gap: 20px; align-items: start; }
.client-portal-dashboard__column { display: grid; min-width: 0; align-content: start; }
.client-portal-dashboard__column--primary { gap: 10px; }
.client-portal-dashboard__column--secondary { gap: 20px; }
.client-portal-panel { display: grid; grid-template-rows: 26px minmax(0, 1fr); min-width: 0; overflow: hidden; border: 1px solid var(--client-portal-border); border-radius: 12px; background: #fff; box-shadow: 0 1px 3px rgb(32 43 54 / 5%); }
.client-portal-panel--tasks { height: 360px; }
.client-portal-panel--calendar { height: 440px; margin-top: -25px; }
.client-portal-panel--payments { width: calc(100% - 42px); height: 394px; margin-left: 13px; }
.client-portal-panel--enrollments { height: 173px; margin-top: -8px; }
.client-portal-panel--enrollments.has-expanded-enrollment { height: 360px; }
.client-portal-panel__title { display: grid; min-height: 0; place-items: center; border-bottom: 1px solid var(--client-portal-border); background: #fafbfc; }
.client-portal-panel__title h2 { margin: 0; font-size: 11px; font-weight: 400; }
.client-portal-panel__body { position: relative; min-width: 0; min-height: 0; }
.client-portal-panel-scrollbar { position: absolute; top: 16px; right: 7px; width: 5px; height: 39px; object-fit: fill; }

.client-portal-tasks-body { padding-top: 31px; overflow: hidden; }
.client-portal-tasks-scroll { width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; scrollbar-width: none; overscroll-behavior: contain; }
.client-portal-tasks-scroll::-webkit-scrollbar { display: none; }
.client-portal-tasks-scroll:focus-visible { outline: 1px solid #1676a6; outline-offset: -2px; }
.client-portal-tasks-scroll-spacer { display: block; width: 1px; pointer-events: none; }
.client-portal-tasks-body[data-client-portal-task-view="board"] .client-portal-tasks-scroll-spacer { min-height: 12px; }
.client-portal-hide-completed { position: absolute; top: 9px; left: 30px; z-index: 4; display: inline-flex; height: 19px; align-items: center; gap: 6px; color: #263140; font-size: 8px; }
.client-portal-hide-completed .contact-list-switch { cursor: pointer; }
.client-portal-hide-completed .contact-list-switch:focus-visible { outline: 2px solid #1676a6; outline-offset: 2px; box-shadow: none; }
.client-portal-view-options { position: absolute; top: 10px; right: 28px; z-index: 4; width: 87px; }
.client-portal-view-options-select { position: relative; width: 100%; margin: 0; }
.client-portal-view-options .import-data-select__toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; height: 17px; padding: 0 4px; border: .5px solid var(--client-portal-border-strong); border-radius: 4px; background: #fff; font: inherit; font-size: 8px; text-align: left; }
.client-portal-view-options [data-import-select-summary] { min-width: 0; overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-view-options .contact-create-multiselect__caret { width: 7.2px; height: 4.8px; flex: 0 0 auto; transition: transform 120ms ease; }
.client-portal-view-options .is-open .contact-create-multiselect__caret { transform: rotate(180deg); }
.client-portal-view-options .import-data-select__menu { position: absolute; z-index: 30; top: calc(100% + 4px); right: 0; left: 0; display: grid; gap: 2px; max-height: 154px; padding: 3px; overflow-y: auto; border: .5px solid var(--client-portal-border-strong); border-radius: 5px; background: #fff; box-shadow: 0 8px 20px rgb(32 43 54 / 10%); scrollbar-width: none; }
.client-portal-view-options .import-data-select__menu[hidden] { display: none; }
.client-portal-view-options .import-data-select__menu::-webkit-scrollbar { display: none; }
.client-portal-view-options .import-data-select__menu [role="option"] { display: flex; align-items: center; justify-content: space-between; gap: 5px; width: 100%; min-height: 19px; padding: 2px 4px; color: #111; border: 0; border-radius: 2px; background: #fff; font: inherit; font-size: 8px; line-height: 1.2; text-align: left; }
.client-portal-view-options .contact-create-single-select__check { width: 6px; height: 5px; flex: 0 0 6px; opacity: 0; }
.client-portal-view-options .import-data-select__menu [role="option"][aria-selected="true"] { background: #fbffe8; }
.client-portal-view-options .import-data-select__menu [role="option"][aria-selected="true"] .contact-create-single-select__check { opacity: 1; }
.client-portal-view-options .import-data-select__menu [role="option"]:hover,
.client-portal-view-options .import-data-select__menu [role="option"]:focus-visible { background: #d9eefb; outline: none; box-shadow: none; }
.client-portal-task-group { padding: 0 21px; }
.client-portal-task-group:first-of-type > header { padding-left: 9px; }
.client-portal-task-group + .client-portal-task-group { margin-top: 2px; padding-top: 9px; border-top: 1px solid var(--client-portal-border); }
.client-portal-task-group header { display: flex; align-items: center; gap: 8px; height: 19px; }
.client-portal-task-group h3 { margin: 0; font-size: 11px; font-weight: 500; }
.client-portal-task-strip { position: relative; margin-top: 7px; }
.client-portal-task-viewport { overflow: hidden; scrollbar-width: none; }
.client-portal-task-viewport::-webkit-scrollbar { display: none; }
.client-portal-task-viewport:focus-visible { outline: 1px solid #1676a6; outline-offset: -1px; }
.client-portal-task-list { display: flex; width: max-content; gap: 10px; padding-bottom: 6px; }
.client-portal-task-strip.has-arrows { width: var(--task-carousel-width, 448px); margin-inline: auto; padding: 0 32px; }
.client-portal-task-strip.has-arrows .client-portal-task-viewport { width: calc(100% + 17.2px); max-width: none; margin-left: -8.6px; padding-inline: 8.6px; scroll-behavior: smooth; }
.client-portal-task { flex: 0 0 68.8px; width: 68.8px; min-width: 0; text-align: center; }
.client-portal-tasks-body.is-hiding-completed .client-portal-task.is-complete { display: none; }
.client-portal-task.is-action { border-radius: 7px; cursor: pointer; }
.client-portal-task.is-action:focus-visible { outline: 2px solid #1676a6; outline-offset: 3px; }
.client-portal-task__tile { position: relative; display: grid; width: 68.8px; height: 61.6px; margin-inline: auto; place-items: center; border: .5px solid #c7c9cc; border-radius: 9px; background: #fbffe8; }
.client-portal-task:hover .client-portal-task__tile { background: #d1e9ff; }
.client-portal-task__icon { width: 22px; height: 22px; }
.client-portal-task__urgency { --task-urgency-color: #e58a1f; position: absolute; top: 7px; right: 7px; z-index: 1; width: 7px; height: 7px; border-radius: 50%; background: var(--task-urgency-color); }
.client-portal-task__urgency::after { position: absolute; inset: 0; border-radius: inherit; background: var(--task-urgency-color); content: ""; animation: client-portal-task-urgency-ping 1.8s cubic-bezier(0, 0, .2, 1) infinite; }
.client-portal-task__urgency--urgent { --task-urgency-color: #d94b4b; }
.client-portal-task__urgency--soon { --task-urgency-color: #e58a1f; }
.client-portal-task__urgency--not-due-soon { --task-urgency-color: #4d9d64; }
.client-portal-task__complete { position: absolute; bottom: 4px; left: 50%; padding: 1px 5px; border-radius: 4px; background: #dfe3e8; color: #4b5563; font-size: 6px; font-weight: 700; line-height: 1.4; white-space: nowrap; transform: translateX(-50%); }
.client-portal-task.is-complete .client-portal-task__tile { border-color: #bfc2c6; background: #eef0f2; }
.client-portal-task.is-complete .client-portal-task__icon { opacity: .48; filter: grayscale(1); }
.client-portal-task.is-complete h4 { color: #737c87; }
.client-portal-task.is-complete .client-portal-task__urgency { display: none; }
@keyframes client-portal-task-urgency-ping { 70%, 100% { opacity: 0; transform: scale(2.2); } }
.client-portal-task h4 { display: -webkit-box; width: 100%; height: 18.4px; min-height: 18.4px; margin: 7px 0 0; overflow: hidden; overflow-wrap: anywhere; font-size: 8px; font-weight: 500; line-height: 1.15; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.client-portal-task__list-progress,
.client-portal-task__list-status { display: none; }
.client-portal-task__review-state { display: block; margin-top: 4px; color: #687386; font-size: 8px; line-height: 1.15; }
.client-portal-task[data-client-portal-task-status="needs_corrections"] .client-portal-task__review-state { color: #936029; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__review-state { display: none; }
.client-portal-task-group + .client-portal-task-group .client-portal-task-strip { margin-top: 17px; }
.client-portal-task-arrow { position: absolute; top: 20px; z-index: 1; display: grid; width: 22px; height: 22px; place-items: center; padding: 0; border: 1px solid var(--client-portal-border-strong); background: #f1f3f5; }
.client-portal-task-arrow--previous { left: 0; border-radius: 11px 0 0 11px; }
.client-portal-task-arrow--next { right: 0; border-radius: 0 11px 11px 0; }
.client-portal-task-arrow__icon { width: 10px; height: 10px; }
.client-portal-task-arrow--previous .client-portal-task-arrow__icon { transform: rotate(90deg); }
.client-portal-task-arrow--next .client-portal-task-arrow__icon { transform: rotate(-90deg); }
.client-portal-panel--tasks .client-portal-panel-scrollbar { --scrollbar-handle-offset: 0px; position: absolute; top: 12px; right: 0; bottom: 12px; display: block; width: 20px; height: auto; max-width: none; cursor: grab; touch-action: none; user-select: none; }
.client-portal-panel--tasks .client-portal-panel-scrollbar[hidden] { display: none; }
.client-portal-panel--tasks .client-portal-panel-scrollbar.is-dragging { cursor: grabbing; }
.client-portal-panel--tasks .client-portal-panel-scrollbar:focus-visible { outline: none; }
.client-portal-panel--tasks .client-portal-panel-scrollbar:focus-visible .scrollbar-ui__handle { border-radius: 3px; outline: 2px solid #1676a6; outline-offset: 2px; }
.client-portal-panel--tasks .client-portal-panel-scrollbar .scrollbar-ui__handle { position: absolute; top: 0; right: 7px; display: block; width: 5px; height: 39px; max-width: none; object-fit: fill; transform: translateY(var(--scrollbar-handle-offset)); will-change: transform; pointer-events: none; user-select: none; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-group { padding-inline: 30px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-group:first-of-type > header { padding-left: 0; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-group + .client-portal-task-group { margin-top: 7px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-strip,
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-group + .client-portal-task-group .client-portal-task-strip { margin-top: 4px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-strip.has-arrows { width: auto; margin-inline: 0; padding: 0; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-viewport { width: auto; margin: 0; padding: 0; overflow: visible; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-list { display: grid; grid-template-columns: 1fr; width: 100%; gap: 2px; max-width: none; padding-bottom: 0; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task { display: grid; grid-template-columns: 27px minmax(140px, 1fr) minmax(130px, 1fr) 68px; align-items: center; gap: 8px; width: 100%; min-height: 31px; padding: 3px 8px 3px 6px; border: 1px solid #ddd; border-radius: 4px; text-align: left; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task:hover { background: #d1e9ff; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task.is-complete { border-color: #d5d9de; background: #f1f2f4; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__tile { width: 22px; height: 22px; margin: 0; border: 0; border-radius: 0; background: transparent; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task:hover .client-portal-task__tile { background: transparent; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__urgency { display: none; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__complete { display: none; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__icon { width: 15px; height: 15px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task h4 { display: block; min-width: 0; width: auto; height: auto; min-height: 0; margin: 0; overflow: hidden; font-size: 0; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; -webkit-line-clamp: unset; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task h4::after { content: attr(data-client-portal-list-label); font-size: 9px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task h4 br { display: none; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__list-progress { display: block; padding: 0; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__list-progress .client-portal-progress { height: 9px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__list-progress :is(.client-portal-progress__current, .client-portal-progress__total) { display: none; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__list-status { display: block; color: #687386; font-size: 8px; text-align: right; white-space: nowrap; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task.is-complete .client-portal-task__list-status { color: #737c87; font-weight: 650; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task-arrow { display: none; }

@media (prefers-reduced-motion: reduce) {
  .client-portal-task__urgency::after { animation: none; }
}

.client-portal-calendar-body { padding: 5px 16px 6px; }
.client-portal-calendar-canvas { position: relative; height: 100%; padding: 10px 16px; border: 1px solid var(--client-portal-border); border-radius: 8px; overflow: hidden; }
.client-portal-calendar-heading { font-size: 10px; font-weight: 600; }
.client-portal-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
.client-portal-calendar-filters, .client-portal-calendar-actions { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.client-portal-calendar-filters { position: relative; z-index: 120; }
.client-portal-calendar-actions { position: absolute; top: 8px; right: 16px; }
.client-portal-calendar-filters > button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 59px; height: 19px; min-height: 19px; padding: 2.4px 4.4px; border: 1px solid var(--client-portal-border-strong); border-radius: 5px; background: #fff; font-size: 9px; }
.client-portal-calendar-filters > button .icon { width: 7px; height: 7px; }
.client-portal-manage-calendar { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: auto; height: 19px; min-height: 19px; padding: 2.4px 6px; border: 1px solid var(--client-portal-border-strong); border-radius: 5px; background: #f7f8f9; font-size: 9px; }
.client-portal-manage-calendar:hover, .client-portal-manage-calendar:focus-visible { background: #d1e9ff; outline: none; }
.client-portal-manage-calendar .icon { width: 7px; height: 7px; }
.client-portal-manage-calendar > span { font-size: 8px; line-height: 1; }
.client-portal-calendar-filters > span { margin-left: 6px; font-size: 8px; }
.client-portal-calendar-select { position: relative; width: 59px; margin: 0; }
.client-portal-calendar-select.is-open { z-index: 1; }
.client-portal-calendar-select .import-data-select__toggle { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; height: 19px; min-height: 19px; padding: 2.4px 4.4px; border: 1px solid var(--client-portal-border-strong); border-radius: 5px; background: #fff; font: inherit; font-size: 9px; text-align: left; }
.client-portal-calendar-select [data-import-select-summary] { font-size: 8px; text-overflow: clip; }
.client-portal-calendar-select .contact-create-multiselect__caret { width: 5px; height: 5px; flex: 0 0 auto; transition: transform 120ms ease; }
.client-portal-calendar-select.is-open .contact-create-multiselect__caret { transform: rotate(180deg); }
.client-portal-calendar-select .import-data-select__menu { position: absolute; z-index: 2; top: calc(100% + 2px); left: 0; display: grid; min-width: 100%; padding: 3px; border: 1px solid var(--client-portal-border-strong); border-radius: 5px; background: #fff; box-shadow: 0 8px 20px rgb(32 43 54 / 10%); }
.client-portal-calendar-select .import-data-select__menu[hidden] { display: none; }
.client-portal-calendar-select .import-data-select__menu [role="option"] { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: max-content; width: 100%; min-height: 23px; padding: 3px 6px; border: 0; border-radius: 2px; background: #fff; font: inherit; font-size: 9px; text-align: left; }
.client-portal-calendar-select .import-data-select__menu [role="option"]:hover,
.client-portal-calendar-select .import-data-select__menu [role="option"]:focus-visible { background: #d1e9ff; outline: none; }
.client-portal-calendar-select .import-data-select__menu [role="option"][aria-selected="true"] { background: #fbffe8; }
.client-portal-calendar-select .contact-create-single-select__check { width: 7px; height: 6px; opacity: 0; }
.client-portal-calendar-select [role="option"][aria-selected="true"] .contact-create-single-select__check { opacity: 1; }
.client-portal-calendar-chip-strip { display: flex; align-items: center; gap: 5px; }
.client-portal-calendar-chip-strip[hidden] { display: none; }
.client-portal-calendar-chip-strip .filter-chip { display: inline-flex; align-items: center; height: 18px; padding: 0; overflow: hidden; border: 0; border-radius: 9px; background: #ddd; font-size: 7px; }
.client-portal-calendar-chip-strip .filter-chip__toggle { display: inline-flex; align-items: center; gap: 5px; height: 18px; padding: 0 2px 0 6px; border: 0; background: transparent; font: inherit; white-space: nowrap; }
.client-portal-calendar-chip-strip .filter-chip strong { min-width: 17px; padding: 1px 3px; border-radius: 5px; background: #e8ff92; font-size: 7px; font-weight: 500; line-height: 1; }
.client-portal-calendar-chip-strip .filter-chip__remove { display: grid; width: 15px; height: 18px; place-items: center; padding: 0 2px 1px 0; border: 0; background: transparent; font-size: 10px; line-height: 1; }
.client-portal-calendar-chip-strip :is(.filter-chip__toggle,.filter-chip__remove):focus-visible { outline: 1px solid #111; outline-offset: -1px; }
.client-portal-calendar-actions .toolbar-icon-button { display: inline-flex; flex: 0 0 23px; align-items: center; justify-content: center; width: 23px; height: 23px; margin: 0; padding: 0; color: #111; white-space: nowrap; background: #d9eefb; border: 1px solid #9ab5c4; border-radius: 2px; outline: none; box-shadow: none; }
.client-portal-calendar-actions .business-calendars-filter-toggle.toolbar-icon-button:hover,
.client-portal-calendar-actions .business-calendars-filter-toggle.toolbar-icon-button:focus,
.client-portal-calendar-actions .business-calendars-filter-toggle.toolbar-icon-button:focus-visible,
.client-portal-calendar-actions .business-calendars-filter-toggle.toolbar-icon-button[aria-expanded="true"] { border: 1px solid #9ab5c4; outline: none; outline-offset: 0; box-shadow: none; }
.client-portal-calendar-actions .toolbar-icon-button .icon { width: 13px; height: 13px; }
.client-portal-calendar-actions .data-values-page-action { display: inline-flex; align-items: stretch; height: 24px; padding: 0; color: #111; font: inherit; white-space: nowrap; background: transparent; border: 0; border-radius: 3px; }
.client-portal-calendar-actions .contact-create-menu__label,
.client-portal-calendar-actions .contact-create-menu__icon { display: inline-flex; align-items: center; justify-content: center; height: 100%; color: #111; font-size: 9px; background: #fbffe8; border: 1px solid #aeb49d; }
.client-portal-calendar-actions .contact-create-menu__label { min-width: 125px; padding: 2px 8px; border-radius: 3px 0 0 3px; }
.client-portal-calendar-actions .contact-create-menu__icon { width: 24px; border-left: 0; border-radius: 0 3px 3px 0; }
.client-portal-calendar-actions .contact-create-menu__icon .icon { width: 9px; height: 9px; }
.client-portal-calendar-actions .data-values-page-action:hover > span,
.client-portal-calendar-actions .data-values-page-action:focus-visible > span { background: #eff6ce; }
.client-portal-calendar-actions .data-values-page-action:focus-visible { outline: 2px solid #1676a6; outline-offset: 2px; }
.client-portal-calendar-search-row { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; margin-top: 3px; }
.client-portal-calendar-search-row label { display: flex; align-items: center; width: 190px; height: 24px; padding: 0 8px; border: 1px solid var(--client-portal-border-strong); border-radius: 12px; }
.client-portal-calendar-search-row .icon { width: 11px; height: 11px; }
.client-portal-calendar-search-row input { min-width: 0; width: 100%; height: 20px; padding: 0 6px; border: 0; outline: 0; background: transparent; font-size: 8px; }
.client-portal-calendar-paging { display: flex; justify-content: flex-end; margin: 6px 1px 2px; }
.client-portal-calendar-paging button { display: grid; width: 30px; height: 18px; padding: 0; place-items: center; border: 1px solid var(--client-portal-border-strong); background: #fff; }
.client-portal-calendar-paging__icon { width: 7px; height: 7px; }
.client-portal-calendar-paging__icon--previous { transform: rotate(90deg); }
.client-portal-calendar-paging__icon--next { transform: rotate(-90deg); }
.client-portal-calendar-scroll-shell { position: relative; width: 100%; height: 266px; }
.client-portal-calendar-scroll { width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; scrollbar-width: none; overscroll-behavior: contain; }
.client-portal-calendar-scroll::-webkit-scrollbar { display: none; }
.client-portal-calendar-scroll:focus-visible { outline: 1px solid #1676a6; outline-offset: -2px; }
.client-portal-calendar-grid { width: 100%; min-height: 100%; --business-calendar-cell-scale: 1; --business-calendar-cell-width-scale: 1; }
.client-portal-calendar-grid > :is(.business-calendars-week-scroll, .business-calendars-day-scroll, .business-calendars-month-scroll) { width: 100%; height: auto; overflow: visible; }
.client-portal-calendar-grid :is(.business-calendars-week-table, .business-calendars-day-table) { min-width: 100%; }
.client-portal-calendar-grid .business-calendars-week-table__time { width: 54px; min-width: 54px; padding-right: 10px !important; font-size: 8px; }
.client-portal-calendar-grid .business-calendars-day-table__time { width: 54px; min-width: 54px; padding-right: 10px !important; font-size: 8px; }
.client-portal-calendar-grid :is(.business-calendars-week-table, .business-calendars-day-table) thead th:not(.business-calendars-week-table__time, .business-calendars-day-table__time) { height: 38px; }
.client-portal-calendar-grid :is(.business-calendars-week-table, .business-calendars-day-table) tbody td { cursor: pointer; }
.client-portal-calendar-grid :is(.business-calendars-week-table, .business-calendars-day-table) tbody td:hover:not(:has(.business-calendars-task-card:hover)) { background-color: #d1e9ff !important; }
.client-portal-calendar-grid .business-calendars-task-card[data-business-calendars-week-card]:not([data-business-calendars-stacked]) { right: 6px; width: auto; }
.client-portal-calendar-grid .business-calendars-task-card[data-business-calendars-week-card] { cursor: pointer; transition: transform 160ms ease-out, background-color 120ms ease-out; }
.client-portal-calendar-grid .business-calendars-task-card[data-business-calendars-week-card]:is(:hover, :focus-visible, :focus-within) { z-index: 105; right: auto; width: 160px; max-width: none; transform: translateY(-8px); background-color: #fff; box-shadow: none; }
.client-portal-calendar-grid :is(.business-calendars-week-table, .business-calendars-day-table) tbody td:nth-last-child(-n + 2) .business-calendars-task-card[data-business-calendars-week-card]:is(:hover, :focus-visible, :focus-within) { right: 6px; left: auto; }
.client-portal-calendar-grid .business-calendars-task-card[data-business-calendars-week-card]:is(:hover, :focus-visible, :focus-within) :is(strong, time, .business-calendars-task-card__contact, .business-calendars-task-card__assigned, button) { max-width: none; overflow: visible; text-overflow: clip; white-space: normal; }
.client-portal-calendar-grid .business-calendars-task-card__date { margin-bottom: 1px; color: #444; font-size: 8px; }
.client-portal-calendar-grid .business-calendars-holiday-label { display: none; }
.client-portal-calendar-grid .business-calendars-hour-expand { display: none; }
.client-portal-panel--calendar .client-portal-calendar-scrollbar { --scrollbar-handle-offset: 0px; position: absolute; top: 0; right: -17px; bottom: 0; display: block; width: 20px; height: auto; max-width: none; cursor: grab; touch-action: none; user-select: none; }
.client-portal-panel--calendar .client-portal-calendar-scrollbar[hidden] { display: none; }
.client-portal-panel--calendar .client-portal-calendar-scrollbar.is-dragging { cursor: grabbing; }
.client-portal-panel--calendar .client-portal-calendar-scrollbar:focus-visible { outline: none; }
.client-portal-panel--calendar .client-portal-calendar-scrollbar:focus-visible .scrollbar-ui__handle { border-radius: 3px; outline: 2px solid #1676a6; outline-offset: 2px; }
.client-portal-panel--calendar .client-portal-calendar-scrollbar .scrollbar-ui__handle { position: absolute; top: 0; right: 7px; display: block; width: 5px; height: 39px; max-width: none; object-fit: fill; transform: translateY(var(--scrollbar-handle-offset)); will-change: transform; pointer-events: none; user-select: none; }
.client-portal-calendar-event-details-host { position: absolute; z-index: 160; inset: 0; display: grid; place-items: center; overflow: hidden; background: transparent; pointer-events: none; }
.client-portal-calendar-event-details-host.is-open { background: rgb(255 255 255 / 58%); pointer-events: auto; }
.client-portal-calendar-event-details-host .calendar-event-details-dialog { position: absolute; inset: 12px; width: min(400px, calc(100% - 24px)); height: min(340px, calc(100% - 24px)); max-width: calc(100% - 24px); max-height: calc(100% - 24px); margin: auto; transform: none; pointer-events: auto; }
.client-portal-calendar-event-details-host .calendar-event-details-dialog::backdrop { background: transparent; }
.client-portal-calendar-event-details-host .calendar-event-details-modal { background: rgb(255 255 255 / 96%); }
.client-portal-page .calendar-event-details__actions { display: none; }

.client-portal-payments-body { padding: 12px; }
.client-portal-payment-plan-card { height: 100%; padding: 11px 12px 12px; border-radius: 14px; background: var(--client-portal-soft-surface); }
.client-portal-payment-plan-card__header { display: grid; grid-template-columns: 36px 1fr 24px; align-items: center; gap: 8px; }
.client-portal-payment-plan-card__mark { display: grid; width: 36px; height: 36px; overflow: hidden; place-items: center; padding: 4px; border: 0; border-radius: 50%; background: #111820; }
.client-portal-payment-plan-card__mark img { display: block; width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.client-portal-payment-plan-card__header h3, .client-portal-payment-plan-card__header p { margin: 0; }
.client-portal-payment-plan-card__header h3 { font-size: 11px; font-weight: 650; }
.client-portal-payment-plan-card__header p { margin-top: 1px; color: #6b7280; font-size: 8px; }
.client-portal-payment-plan-card__header button { width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: #fff; font-size: 10px; letter-spacing: 1px; }
.client-portal-payment-plan-card__hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, 1.25fr); gap: 10px; margin-top: 10px; }
.client-portal-payment-plan-card__balance { display: flex; min-width: 0; align-items: center; gap: 5px; margin: 0; padding: 5px 2px; white-space: nowrap; }
.client-portal-payment-plan-card__balance > span { color: #1f2732; font-size: 8px; font-weight: 550; letter-spacing: 0; }
.client-portal-next-payment__copy > small { color: #6b7280; font-size: 7px; font-weight: 650; letter-spacing: .08em; }
.client-portal-payment-plan-card__balance > b { color: #596372; font-size: 17px; font-weight: 500; line-height: 1; }
.client-portal-payment-plan-card__balance > strong { padding: 4px 7px; border-radius: 8px; background: #e8e9eb; font-size: 16px; font-weight: 500; line-height: 1.05; }
.client-portal-next-payment { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 9px; min-height: 60px; padding: 8px; border-radius: 11px; background: #fff; }
.client-portal-next-payment__date { display: grid; width: 42px; height: 44px; place-content: center; border-radius: 9px; background: #f8ffdf; text-align: center; }
.client-portal-next-payment__date small { font-size: 7px; font-weight: 650; }
.client-portal-next-payment__date strong { font-size: 15px; line-height: 1; }
.client-portal-next-payment__copy { display: grid; min-width: 0; }
.client-portal-next-payment__copy > strong { margin-top: 1px; font-size: 14px; font-weight: 650; }
.client-portal-next-payment__copy > span { color: #6b7280; font-size: 8px; }
.client-portal-payment-plan-card__pay { width: 100%; min-height: 29px; margin-top: 9px; border: .5px solid #9fa4aa; border-radius: 16px; background: #fff; font-size: 10px; font-weight: 600; }
.client-portal-payment-plan-card__pay:hover, .client-portal-payment-plan-card__pay:focus-visible { background: #f8ffdf; outline: none; }
.client-portal-payment-plan-card__totals { display: flex; align-items: end; justify-content: space-between; margin-top: 9px; }
.client-portal-payment-plan-card__totals > span { display: grid; }
.client-portal-payment-plan-card__totals > span:last-child { text-align: right; }
.client-portal-payment-plan-card__totals strong { font-size: 11px; font-weight: 650; }
.client-portal-payment-plan-card__totals small { color: #6b7280; font-size: 8px; }
.client-portal-payment-plan__progress { position: relative; width: calc(100% - 34px); height: 13px; margin-top: 5px; border-radius: 7px; background: var(--client-portal-progress-track); }
.client-portal-payment-plan__progress > span { position: relative; display: block; height: 100%; border-radius: inherit; background: var(--client-portal-progress-fill); transition: width 220ms ease-out; }
.client-portal-payment-plan__progress > span::after { position: absolute; inset: 3px 5px; border-radius: 4px; background: var(--client-portal-progress-accent); content: ""; }
.client-portal-payment-plan__progress > b { position: absolute; top: 1px; right: -34px; width: 28px; color: #46515e; font-size: 8px; font-weight: 600; text-align: right; }
.client-portal-upcoming { display: flex; align-items: center; gap: 9px; margin-top: 10px; font-size: 10px; font-weight: 550; }
.client-portal-upcoming .client-portal-count { min-width: 67px; }
.client-portal-payment-list { display: grid; gap: 7px; margin-top: 7px; }
.client-portal-payment { display: grid; grid-template-columns: 38px minmax(0, 1fr) 76px; align-items: center; width: 100%; min-height: 46px; padding: 0; overflow: hidden; border: 1px solid var(--client-portal-border); border-radius: 10px; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.client-portal-payment:hover { background: #fafbfc; }
.client-portal-payment:focus-visible { border-color: #6d7885; outline: 2px solid #d1e9ff; outline-offset: 1px; }
.client-portal-payment > img { width: 27px; max-height: 27px; margin: auto; object-fit: contain; }
.client-portal-payment > span { display: grid; min-width: 0; }
.client-portal-payment strong { overflow: hidden; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-payment small { overflow: hidden; color: #596372; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-payment > b { padding-right: 12px; color: #111820; font-size: 12px; font-weight: 650; text-align: right; white-space: nowrap; }

.client-portal-enrollments-body { padding: 20px 10px; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
.client-portal-enrollment { overflow: hidden; border: 1px solid var(--client-portal-border); border-radius: 9px; background: #fff; }
.client-portal-enrollment + .client-portal-enrollment { margin-top: 11px; }
.client-portal-enrollment h3 { margin: 0; font-size: 11px; font-weight: 400; }
.client-portal-enrollment__summary { display: grid; grid-template-columns: 156px minmax(0, 423px) 1fr; align-items: center; width: 100%; height: 50px; padding: 0 14px 0 15px; border: 0; background: #fff; text-align: left; cursor: pointer; }
.client-portal-enrollment__summary:hover { background: #fbffe8; }
.client-portal-enrollment__summary:focus-visible { outline: 2px solid #1676a6; outline-offset: -2px; }
.client-portal-progress-wrap { position: relative; padding-bottom: 12px; }
.client-portal-progress { position: relative; height: 13px; overflow: hidden; border: 0; border-radius: 7px; background: var(--client-portal-progress-track); }
.client-portal-progress > span { position: relative; display: block; height: 100%; border: 0; border-radius: 7px; background: var(--client-portal-progress-fill); transition: width 220ms ease-out; }
.client-portal-progress > span::after { position: absolute; inset: 3px 5px; content: ""; border-radius: 4px; background: var(--client-portal-progress-accent); }
.client-portal-progress__current { position: absolute; top: 1px; transform: translateX(3px); font-size: 8px; }
.client-portal-progress__total { position: absolute; right: 0; bottom: 0; font-size: 8px; }
.client-portal-enrollment__chevron { width: 7px; height: 5px; margin-left: auto; transition: transform 140ms ease; }
.client-portal-enrollment__summary[aria-expanded="true"] .client-portal-enrollment__chevron { transform: rotate(180deg); }
.client-portal-enrollment__details { padding: 0 15px 14px; border-top: 1px solid var(--client-portal-border); }
.client-portal-enrollment__details[hidden] { display: none; }
.client-portal-enrollment-task-group { padding-top: 12px; }
.client-portal-enrollment-task-group + .client-portal-enrollment-task-group { margin-top: 4px; border-top: 1px solid #e5e5e5; }
.client-portal-enrollment-task-group h4 { margin: 0 0 7px; color: #394656; font-size: 9px; font-weight: 650; letter-spacing: .02em; }
.client-portal-enrollment-task-group ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.client-portal-enrollment-task { display: grid; grid-template-columns: minmax(145px, 1fr) minmax(160px, 1.6fr) 62px; align-items: center; gap: 10px; min-height: 27px; padding: 4px 6px; border-radius: 5px; background: #fafafa; }
.client-portal-enrollment-task.is-complete { background: #f8ffdf; }
.client-portal-enrollment-task__label { min-width: 0; font-size: 9px; line-height: 1.25; }
.client-portal-enrollment-task__progress { padding: 0; }
.client-portal-enrollment-task__progress .client-portal-progress { height: 9px; }
.client-portal-enrollment-task__progress :is(.client-portal-progress__current, .client-portal-progress__total) { display: none; }
.client-portal-enrollment-task__status { color: #687386; font-size: 8px; text-align: right; white-space: nowrap; }
.client-portal-enrollment-task.is-complete .client-portal-enrollment-task__status { color: #315d3d; font-weight: 650; }

.client-portal-enrollment-task[data-client-task-open] { cursor: pointer; }
.client-portal-enrollment-task[data-client-task-open]:focus-visible { outline: 2px solid #1676a6; outline-offset: 2px; }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task { grid-template-columns: 27px minmax(115px, 1fr) minmax(75px, 1fr) minmax(92px, 125px); }
.client-portal-tasks-body[data-client-portal-task-view="list"] .client-portal-task__list-status,
.client-portal-enrollment-task__status { white-space: normal; }
.client-portal-enrollment-task { grid-template-columns: minmax(145px, 1fr) minmax(130px, 1.6fr) minmax(75px, 110px); }
.client-task-detail.task-manager-dialog { inset: 0; width: min(980px, calc(100vw - 24px)); height: min(700px, calc(100dvh - 20px)); margin: auto; font: inherit; font-size: 11px; line-height: normal; }
.client-task-detail[open] { display: flex; flex-direction: column; }
.client-task-detail::backdrop { background: rgb(245 245 245 / 70%); }
.client-task-detail__titlebar { flex: 0 0 31px; min-height: 31px; padding-inline: 12px; background: #fafafa; }
.client-task-detail__workspace { flex: 1 1 auto; }
.client-task-detail__submission { min-width: 0; font-size: 11px; line-height: 1.5; }
.client-task-detail__submission h3 { margin: 14px 0 8px; font-size: 12px; font-weight: 600; }
.client-task-detail__feedback { margin: 0 0 14px; padding: 10px 14px; color: var(--ink); border: 0; border-radius: 8px; background: #fffbed; font-size: 11px; line-height: 1.5; }
.client-task-detail__feedback h3 { margin: 0 0 5px; font-size: 12px; font-weight: 600; }
.client-task-detail__feedback p { margin: 0; white-space: pre-wrap; }
.client-task-detail__feedback small { display: block; margin-top: 6px; color: #687386; font-size: 10px; }
.client-task-detail__feedback .client-task-detail__button { margin-top: 10px; }
.client-task-detail__button { text-decoration: none; }
.client-task-detail__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.client-task-detail__hint { margin: 8px 0; color: #687386; font-size: 10px; line-height: 1.5; }
.client-task-detail__history { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin: 0 0 14px; }
.client-task-detail__history > span { color: #687386; font-size: 10px; }
.client-task-detail__draft > label { display: grid; gap: 6px; font-size: 10px; }
.client-task-detail__submission :is(select, textarea) { min-width: 0; max-width: 100%; min-height: 31px; padding: 7px 9px; border: .75px solid #aaa; border-radius: 5px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.client-task-detail__submission textarea { width: 100%; min-height: 72px; resize: vertical; line-height: 1.45; }
.client-task-detail__draft { display: grid; gap: 10px; margin-bottom: 14px; }
.client-task-detail__draft > .client-task-detail__hint { margin: 0; }
.client-task-detail__upload-groups { display: grid; gap: 10px; }
.client-task-detail__upload-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 14px; padding: 12px; border: .75px solid #d4d8dc; border-radius: 7px; background: #fff; }
.client-task-detail__upload-item h3 { margin: 0; font-size: 11px; font-weight: 600; }
.client-task-detail__upload-item > div > small { display: block; margin-top: 3px; color: #687386; font-size: 9px; }
.client-task-detail__upload-item > .client-task-detail__button { position: relative; overflow: hidden; }
.client-task-detail__upload-item > .client-task-detail__button input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.client-task-detail__upload-item > .client-task-detail__button:focus-within { outline: 2px solid #1676a6; outline-offset: 2px; }
.client-task-detail__upload-item > :is(.client-task-detail__files, .client-task-detail__empty-file) { grid-column: 1 / -1; }
/* Typed answers need the full card width, including provider evidence notices. */
[data-chapter7-requirement] { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 12px; }
[data-chapter7-requirement] > * { min-width: 0; margin: 0; }
[data-chapter7-requirement] :is(h3, p, strong) { overflow-wrap: anywhere; }
[data-chapter7-requirement] .sce-field { display: grid; gap: 6px; min-width: 0; margin: 0; }
[data-chapter7-requirement] :is(textarea, select) { box-sizing: border-box; min-width: 0; width: 100%; max-width: 100%; }
[data-chapter7-requirement] .client-task-detail__actions { justify-content: flex-start; margin: 0; }
[data-chapter7-requirement] [data-chapter7-provider] { display: grid; justify-items: start; gap: 12px; }
[data-chapter7-requirement] [data-chapter7-provider] > p { margin: 0; }
[data-chapter7-requirement] .client-task-detail__files > li { min-width: 0; flex-wrap: wrap; }
/* Schedule controls stay in reading order rather than the upload action grid. */
[data-chapter7-lifecycle] { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 12px; }
[data-chapter7-lifecycle] > * { min-width: 0; margin: 0; }
[data-chapter7-lifecycle] dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
[data-chapter7-lifecycle] :is(dt, dd) { margin: 0; overflow-wrap: anywhere; }
[data-chapter7-lifecycle] dt { margin-bottom: 4px; color: #526172; }
[data-chapter7-lifecycle] h4 { margin: 0 0 8px; }
[data-chapter7-lifecycle] details { padding-top: 12px; border-top: 1px solid #d4d8dc; }
[data-chapter7-lifecycle] summary { width: fit-content; padding-block: 4px; font-weight: 600; cursor: pointer; }
[data-chapter7-lifecycle] form { display: grid; gap: 12px; margin-top: 12px; }
[data-chapter7-lifecycle] .client-intake-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
[data-chapter7-lifecycle] .sce-field { display: grid; align-content: start; gap: 6px; min-width: 0; margin: 0; }
[data-chapter7-lifecycle] input:is([type="date"], [type="number"]) { box-sizing: border-box; min-width: 0; width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid #a5b1bf; border-radius: 5px; background: #fff; color: #111; font: inherit; }
[data-chapter7-lifecycle] .task-manager-button { justify-self: start; }
.client-task-detail__empty-file { margin: 0; padding: 9px 10px; color: #687386; border-radius: 5px; background: #f6f7f8; font-size: 10px; }
.client-task-detail__upload { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }
.client-task-detail__upload > .client-task-detail__select { flex: 1; }
.client-task-detail__select { min-width: 0; width: min(100%, 360px); margin: 0; }
.client-task-detail__select label { font-size: 10px; }
.client-task-detail__select .import-data-select__toggle { min-height: 31px; height: auto; font-size: 11px; }
.client-task-detail__select .import-data-select__menu { z-index: 40; }
.client-task-detail__select .import-data-select__menu button { min-height: 30px; font-size: 11px; }
.client-task-detail__upload .client-task-detail__button { position: relative; overflow: hidden; }
.client-task-detail__upload input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.client-task-detail__upload .client-task-detail__button:focus-within { outline: 2px solid #1676a6; outline-offset: 2px; }
.client-task-detail__files { margin: 0; padding: 0; list-style: none; }
.client-task-detail__files li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: .5px solid #e4e6e8; }
.client-task-detail__files li > span { min-width: 0; overflow-wrap: anywhere; }
.client-task-detail__files small { display: block; margin-top: 3px; color: #687386; font-size: 10px; }
.client-task-detail__files button { flex: 0 0 auto; padding: 4px 8px; border: .75px solid #b3b8bb; border-radius: 5px; background: #fff; font: inherit; font-size: 11px; cursor: pointer; }
.client-task-detail__files a { flex: 0 0 auto; color: #1f5f85; font-size: 10px; }
.client-task-detail__submitted-files > p { white-space: pre-wrap; }
.client-task-detail__footer { display: grid; flex: 0 0 auto; gap: 7px; padding: 10px 16px; border-top: .5px solid #d1d3d5; background: #fafafa; }
.client-task-detail__footer > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.client-task-detail__message { margin: 0; color: #315d3d; font-size: 11px; }
.client-task-detail__message:empty { display: none; }
.client-task-detail__message.is-error { color: #aa342d; }
.client-task-detail__footer > small { color: #72797f; font-size: 9px; line-height: 1.4; }
.client-task-detail__published-history article { padding: 10px 0; border-top: 1px solid #e4e6e8; }
.client-task-detail__published-history article > span { display: block; margin-top: 4px; color: #687386; font-size: 10px; }
.client-task-detail :is(.task-evidence__response, .task-evidence__answers) { font-size: 11px; }
@media (max-width: 600px) {
  .client-task-detail.task-manager-dialog { width: calc(100vw - 16px); height: calc(100dvh - 16px); }
  .client-task-detail__footer { padding: 10px 12px; }
  .client-task-detail__upload-item { grid-template-columns: minmax(0, 1fr); }
  .client-task-detail__upload-item > .client-task-detail__button { justify-self: start; }
  [data-chapter7-lifecycle] :is(dl, .client-intake-grid) { grid-template-columns: minmax(0, 1fr); }
  .client-task-detail__upload > .client-task-detail__select { flex-basis: 100%; width: 100%; }
}

.client-portal-meeting-dialog header { display: flex; align-items: center; justify-content: space-between; min-height: 34px; padding: 0 10px; border-bottom: 1px solid var(--client-portal-border); background: #fafbfc; }
.client-portal-meeting-dialog h2 { margin: 0; font-size: 12px; font-weight: 500; }
.client-portal-meeting-dialog header button { width: 24px; height: 24px; padding: 0; border: 0; background: transparent; font-size: 18px; }

.client-portal-meeting-dialog { width: min(360px, calc(100vw - 24px)); padding: 0; border: 1px solid var(--client-portal-border-strong); border-radius: 12px; background: #fff; color: #0c0c0c; box-shadow: 0 18px 60px rgb(25 34 44 / 18%); }
.client-portal-meeting-dialog::backdrop { background: rgb(0 0 0 / 25%); }
.client-portal-meeting-dialog form { display: grid; }
.client-portal-meeting-dialog__body { display: grid; gap: 12px; padding: 16px; }
.client-portal-meeting-dialog label { display: grid; gap: 5px; font-size: 11px; }
.client-portal-meeting-dialog :is(input,textarea) { width: 100%; min-height: 32px; padding: 6px 8px; border: 1px solid var(--client-portal-border-strong); border-radius: 7px; background: #fff; font-size: 12px; }
.client-portal-meeting-dialog textarea { resize: vertical; }
.client-portal-meeting-dialog footer { display: flex; justify-content: flex-end; gap: 8px; padding: 10px 16px; border-top: 1px solid var(--client-portal-border); }
.client-portal-meeting-dialog footer button { min-height: 30px; padding: 4px 12px; border: 1px solid #999; border-radius: 5px; background: #fff; font-size: 11px; }
.client-portal-meeting-dialog footer button[type="submit"] { border-color: #9dae75; background: #e8ff92; }

.client-portal-payment-options .client-portal-payment-options__body { gap: 3px; }
.client-portal-payment-options .client-portal-payment-choice > span { display: grid; flex: 1 1 auto; min-width: 0; }
.client-portal-payment-options .client-portal-payment-choice strong { font-size: 10.8px; font-weight: 600; }
.client-portal-payment-options .client-portal-payment-choice small { margin-top: 1px; overflow: hidden; color: var(--muted); font-size: 9px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.client-portal-payment-options .client-portal-payment-choice > b { flex: 0 0 auto; font-size: 10.8px; font-weight: 600; white-space: nowrap; }
.client-portal-payment-options .client-portal-payment-choice:has(input:checked) { background: var(--pale-lime); }
.client-portal-payment-options .data-types-action-dialog__actions { margin-top: auto; }

.client-portal-payment-checkout { width: min(520px, calc(100vw - 28px)); padding: 0; overflow: hidden; border: 1px solid var(--client-portal-border-strong); border-radius: 18px; background: #fff; color: #1f2732; box-shadow: 0 24px 70px rgb(25 34 44 / 24%); }
.client-portal-payment-checkout::backdrop { background: rgb(31 39 50 / 38%); backdrop-filter: blur(2px); }
.client-portal-payment-checkout form { display: grid; padding: 0 20px 18px; }
.client-portal-payment-checkout__handle { display: block; width: 46px; height: 5px; margin: 10px auto 2px; border-radius: 3px; background: #e2e5e9; }
.client-portal-payment-checkout header { display: flex; align-items: center; justify-content: space-between; min-height: 70px; }
.client-portal-payment-checkout header > .client-portal-payment-checkout__close { flex-basis: 32px; width: 32px; height: 32px; min-width: 32px; min-height: 32px; padding: 0; border: 0; border-radius: 50%; background: #f4f5f6; font-size: 22px; line-height: 1; }
.client-portal-payment-checkout__brand { display: flex; align-items: center; gap: 10px; }
.client-portal-payment-checkout__brand > div { display: grid; }
.client-portal-payment-checkout__brand > div > span { color: #6b7280; font-size: 8px; font-weight: 650; letter-spacing: .08em; }
.client-portal-payment-checkout h2 { margin: 2px 0 0; font-size: 18px; font-weight: 650; }
.client-portal-payment-checkout__logo { display: grid; width: 38px; height: 38px; place-items: center; padding: 4px; border-radius: 50%; background: #111820; }
.client-portal-payment-checkout__logo img { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.client-portal-payment-checkout__summary { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 14px; color: #596372; font-size: 12px; }
.client-portal-payment-checkout__summary strong { color: #1f2732; font-size: 18px; font-weight: 650; }
.client-portal-payment-checkout fieldset { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.client-portal-payment-checkout legend { margin-bottom: 8px; font-size: 11px; font-weight: 650; }
.client-portal-payment-method { display: grid; grid-template-columns: 18px 54px 1fr; align-items: center; gap: 12px; min-height: 78px; padding: 12px 14px; border-radius: 14px; background: var(--client-portal-soft-surface); cursor: pointer; }
.client-portal-payment-method input { width: 16px; height: 16px; margin: 0; accent-color: #111820; }
.client-portal-payment-method__card { display: grid; width: 54px; height: 34px; place-items: end; padding: 4px; border-radius: 5px; background: linear-gradient(135deg, #cbd5ff, #7187d8); color: #fff; font-size: 7px; font-style: italic; font-weight: 750; }
.client-portal-payment-method > span:last-child { display: grid; }
.client-portal-payment-method strong { font-size: 14px; font-weight: 650; }
.client-portal-payment-method small { margin-top: 2px; color: #6b7280; font-size: 11px; }
.client-portal-payment-checkout__button { width: auto; margin-top: 0; cursor: pointer; transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease; }
.client-portal-payment-checkout__button:hover { background: #d1e9ff; }
.client-portal-payment-checkout__button:active { transform: translateY(1px); }
.client-portal-payment-checkout__add { width: 100%; min-height: 42px; border: 0; border-radius: 21px; background: #e8e9ed; font-size: 12px; }
.client-portal-payment-checkout footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.client-portal-payment-checkout footer .client-portal-payment-checkout__button { min-height: 38px; padding: 7px 18px; border: 1px solid var(--client-portal-border-strong); border-radius: 20px; background: #fff; font-size: 12px; }
.client-portal-payment-checkout footer .client-portal-payment-checkout__submit { min-width: 180px; border-color: #111820; background: #111820; color: #fff; }
.client-portal-payment-checkout footer .client-portal-payment-checkout__submit:hover { border-color: #9dae75; background: #e8ff92; color: #111820; }
.client-portal-payment-checkout header > .client-portal-payment-checkout__close:hover,
.client-portal-payment-checkout header > .client-portal-payment-checkout__close:focus-visible { background: #d1e9ff; }
.client-portal-payment-checkout :is(button,label):focus-within, .client-portal-payment-checkout button:focus-visible { outline: 2px solid #1676a6; outline-offset: 2px; }

.client-portal-intake-prompt { width: min(340px, calc(100vw - 24px)); padding: 0; overflow: hidden; color: #111; background: #fff; border: 1px solid var(--client-portal-border-strong); border-radius: 12px 12px 8px 8px; box-shadow: 0 12px 34px rgb(0 0 0 / 18%); }
.client-portal-intake-prompt::backdrop { background: rgb(0 0 0 / 22%); }
.client-portal-intake-prompt > section { display: grid; }
.client-portal-intake-prompt header { min-height: 38px; padding: 0 14px; border-bottom: 1px solid var(--client-portal-border); background: #fafbfc; }
.client-portal-intake-prompt h2 { margin: 0; font-size: 13px; font-weight: 550; }
.client-portal-intake-prompt p { margin: 0; padding: 18px 18px 16px; font-size: 13px; line-height: 1.45; }
.client-portal-intake-prompt footer { display: flex; justify-content: flex-end; gap: 8px; padding: 10px 14px; border-top: 1px solid #ddd; }
.client-portal-intake-prompt footer button { min-width: 64px; min-height: 30px; padding: 4px 12px; border: 1px solid #999; border-radius: 6px; background: #fff; font-size: 12px; }
.client-portal-intake-prompt footer button:hover, .client-portal-intake-prompt footer button:focus-visible { background: #d1e9ff; outline: none; }
.client-portal-intake-prompt [data-client-portal-intake-yes] { border-color: #9dae75; background: #f8ffdf; }
.client-portal-intake-prompt [data-client-portal-intake-yes]:hover, .client-portal-intake-prompt [data-client-portal-intake-yes]:focus-visible { background: #e8ff92; }

@media (max-width: 1408px) {
  .client-portal-dashboard { grid-template-columns: 1fr; }
  .client-portal-panel--calendar, .client-portal-panel--payments, .client-portal-panel--enrollments { width: 100%; margin: 0; }
  .client-portal-main { padding-right: 10px; overflow: visible; }
}

@media (max-width: 640px) {
  .client-portal-shell { display: block; }
  .client-portal-sidebar { width: 100%; min-height: 0; padding: 8px 12px 10px; }
  .client-portal-brand { padding: 0; }
  .client-portal-main-site-link { margin-left: 0; margin-right: 0; }
  .client-portal-sidebar-divider { margin-inline: 0; }
  .client-portal-sidebar nav { display: flex; gap: 4px; margin-top: 0; padding: 0; overflow-x: auto; }
  .client-portal-sidebar nav a { flex: 0 0 auto; }
  .client-portal-sidebar-tab { display: none; }
  .client-portal-main { padding: 22px 12px 30px; }
  .client-portal-page-heading { flex-wrap: wrap; transform: none; }
  .client-portal-dashboard { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .client-portal-panel--tasks, .client-portal-panel--calendar { height: auto; }
  .client-portal-tasks-body { height: auto; padding-bottom: 18px; }
  .client-portal-task-strip.has-arrows { width: 100%; margin-inline: 0; }
  .client-portal-task-list { overflow-x: auto; scrollbar-width: none; }
  .client-portal-task-list::-webkit-scrollbar { display: none; }
  .client-portal-calendar-body { height: 390px; padding-inline: 6px; overflow-x: auto; }
  .client-portal-calendar-body { scrollbar-width: none; }
  .client-portal-calendar-body::-webkit-scrollbar { display: none; }
  .client-portal-calendar-canvas { min-width: 590px; }
  .client-portal-panel--payments { height: auto; min-height: 480px; }
  .client-portal-payment-plan-card__hero { grid-template-columns: 1fr; }
  .client-portal-payment { grid-template-columns: 36px minmax(0, 1fr) 70px; }
  .client-portal-payment-options .data-types-action-dialog__actions { flex-direction: column-reverse; }
  .client-portal-payment-options .data-types-action-dialog__actions button { width: 100%; }
  .client-portal-payment-checkout { width: 100vw; max-width: none; margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .client-portal-payment-checkout form { min-height: min(560px, 82dvh); }
  .client-portal-payment-checkout footer { align-self: end; flex-direction: column-reverse; }
  .client-portal-payment-checkout footer button, .client-portal-payment-checkout footer button[type="submit"] { width: 100%; }
  .client-portal-enrollment__summary { grid-template-columns: 1fr 22px; gap: 8px; height: auto; min-height: 64px; padding: 10px; }
  .client-portal-enrollment__summary h3 { grid-column: 1 / -1; }
  .client-portal-enrollment__summary .client-portal-progress-wrap { grid-column: 1; }
  .client-portal-enrollment-task { grid-template-columns: 1fr; gap: 5px; }
  .client-portal-enrollment-task__status { text-align: left; }
}
