[hidden] { display: none !important; }

.auth-form label {
  display: block;
  margin-top: 15px;
  color: #39424d;
  font-size: 13px;
  font-weight: 700;
}

.auth-form input,
.auth-form select,
.auth-form textarea,
.user-table-card select {
  display: block;
  width: 100%;
  margin-top: 7px;
  padding: 10px 11px;
  border: 1px solid #c8cdd3;
  border-radius: 3px;
  background: #fff;
  color: #151a22;
}
.auth-form textarea { min-height: 88px; resize: vertical; }

.auth-form .button { margin-top: 18px; }
.form-message { min-height: 22px; margin: 11px 0 0; color: #2a4365; font-size: 12px; }
.form-message.error { color: #8d3f2c; }

.account-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
  padding: 16px 18px;
  border-left: 4px solid #2a4365;
  background: #fff;
}
.account-summary strong,
.account-summary span { display: block; }
.account-summary span { margin-top: 3px; color: #626a75; font-size: 12px; }

.activation-card,
.bootstrap-card { max-width: 780px; margin-top: 20px; }
.admin-panel { margin-top: 34px; padding-top: 30px; border-top: 1px solid #d4d8de; }
.section-head.compact { align-items: center; }
.section-head.compact h2 { font-size: clamp(27px, 3vw, 36px); }
.security-list { margin: 17px 0 0; padding-left: 20px; color: #4d5662; line-height: 1.8; }
.invite-result { margin-top: 16px; padding: 14px; background: #eef2f6; }
.invite-result strong { display: block; margin-bottom: 8px; }
.invite-result .button { margin-top: 9px; }
.user-table-card { margin-top: 18px; }
.table-scroll { overflow-x: auto; }
.user-table-card table { min-width: 960px; }
.user-table-card td { vertical-align: middle; }
.user-table-card select { min-width: 135px; margin: 0; padding: 8px; }
.user-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; min-width: 260px; }
.user-actions .button { margin: 0; white-space: nowrap; }
.user-actions .danger-action { border-color: #c58b7b; color: #8d3f2c; }
.appointment-types-overview { margin-bottom: 18px; padding: clamp(20px, 3vw, 30px); }
.appointment-list-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 22px; margin-bottom: 20px; }
.appointment-list-head .eyebrow { margin-bottom: 7px; }
.appointment-list-head .muted { max-width: 680px; margin: 7px 0 0; }
.appointment-list-head .button { flex: 0 0 auto; margin: 0; }
.appointment-type-admin-list { border-top: 1px solid #e0e3e7; }
.appointment-admin-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .42fr) auto; align-items: center; gap: 22px; min-width: 0; padding: 20px 0; border-bottom: 1px solid #e0e3e7; }
.appointment-admin-card.is-inactive { opacity: .66; }
.appointment-admin-card.is-editing { margin: 0 -14px; padding-right: 14px; padding-left: 14px; background: #f3f6f9; box-shadow: inset 3px 0 #2a4365; }
.appointment-admin-heading { min-width: 0; }
.appointment-admin-heading h4 { margin: 5px 0 4px; color: #151a22; font-size: 18px; line-height: 1.25; letter-spacing: -.02em; }
.appointment-simple-status { display: inline-flex; align-items: center; gap: 6px; color: #3b664a; font-size: 11px; font-weight: 800; }
.appointment-simple-status::before { width: 7px; height: 7px; border-radius: 50%; background: #4e8a61; content: ''; }
.appointment-simple-status.inactive { color: #707780; }
.appointment-simple-status.inactive::before { background: #9ca2a9; }
.appointment-admin-heading .appointment-summary-meta { margin: 0; color: #536b83; font-size: 12px; font-weight: 700; }
.appointment-admin-heading .appointment-summary-description { margin: 7px 0 0; overflow: hidden; color: #626a75; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.appointment-assignment { display: grid; gap: 2px; min-width: 0; padding-left: 15px; border-left: 1px solid #d9dde2; }
.appointment-assignment span { color: #78818c; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.appointment-assignment strong { overflow: hidden; color: #29333f; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.appointment-assignment.missing strong { color: #976618; }
.appointment-admin-actions { display: flex; gap: 7px; }
.appointment-admin-actions .button { margin: 0; }
.danger-action { border-color: #c58b7b !important; color: #8d3f2c !important; }
.danger-button { border-color: #843c2d; background: #843c2d; }
.appointment-admin-empty { display: grid; gap: 4px; padding: 24px; border: 1px dashed #aeb6bf; background: #f6f7f8; color: #4c5661; }
.appointment-admin-empty strong { color: #151a22; }
.appointment-admin-empty.error { border-color: #c58b7b; color: #8d3f2c; }
.grid.two.scheduling-grid { grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); align-items: start; }
.scheduling-grid .auth-form { max-width: none; }
.form-intro { margin: 7px 0 0; color: #626a75; }
.appointment-basic-fields { margin-top: 14px; }
.staff-assignments { margin: 20px 0 0; padding: 15px; border: 1px solid #d4d8de; }
.staff-assignments legend { padding: 0 7px; color: #2a4365; font-size: 13px; font-weight: 800; }
#appointment-staff-options { display: grid; gap: 9px; }
#appointment-staff-options label,
.check-grid label { display: flex; align-items: center; gap: 9px; margin: 0; font-weight: 600; }
#appointment-staff-options input,
.check-grid input { width: auto; margin: 0; }
#appointment-staff-options label { padding: 9px 10px; border: 1px solid #e0e3e7; background: #fafbfc; }
#appointment-staff-options label > span { display: grid; gap: 1px; }
#appointment-staff-options label strong { color: #27313c; font-size: 12px; }
#appointment-staff-options label small { color: #737c86; font-size: 10px; font-weight: 500; }
.check-grid { display: flex; flex-wrap: wrap; gap: 13px 22px; margin-top: 18px; }
.appointment-availability { padding: 14px; background: #f5f7f9; }
.advanced-settings { margin-top: 18px; border: 1px solid #d4d8de; background: #fff; }
.advanced-settings summary { display: flex; flex-direction: column; gap: 2px; padding: 15px 17px; color: #2a4365; font-size: 13px; font-weight: 800; cursor: pointer; }
.advanced-settings summary small { color: #707984; font-size: 11px; font-weight: 500; }
.advanced-settings[open] summary { border-bottom: 1px solid #e1e4e7; background: #f7f8f9; }
.advanced-settings > .form-grid { margin: 0; padding: 4px 17px 19px; }
.advanced-settings label > small { display: block; margin-top: 5px; color: #737c86; font-size: 10px; font-weight: 500; }
.calendar-connections-card { margin: 0; }
.calendar-connections-card .eyebrow { margin-bottom: 7px; }
.calendar-sidebar { display: grid; gap: 16px; }
.calendar-connection-action { display: flex; align-items: flex-end; gap: 8px; flex-direction: column; }
.calendar-connection-action .button { margin: 0; white-space: nowrap; }
.availability-form { margin: 0; }
.availability-form > .muted { margin: 7px 0 15px; font-size: 12px; }
.availability-days { display: grid; gap: 7px; }
.availability-day { display: grid; grid-template-columns: minmax(105px, 1fr) 92px 92px; align-items: center; gap: 7px; padding: 8px 0; border-bottom: 1px solid #e4e7ea; }
.availability-day label { display: flex; align-items: center; gap: 7px; margin: 0; font-size: 12px; }
.availability-day label input { width: auto; margin: 0; }
.availability-day input[type="time"] { min-width: 0; margin: 0; padding: 8px 7px; font-size: 12px; }
.availability-day.disabled { color: #8b929a; }
.availability-form > .button { width: 100%; margin-top: 16px; }
.booking-availability-message { margin: 18px 0 4px; padding: 12px 14px; background: #eef2f6; color: #3c4e62; font-size: 13px; }
.booking-note { max-width: 720px; margin: 12px 0 0; font-size: 11px; }
.appointment-restriction { display: inline-flex; width: fit-content; margin-top: 13px; padding: 5px 8px; background: #eef2f6; color: #2a4365; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.confirm-dialog { width: min(520px, calc(100% - 32px)); padding: 0; border: 1px solid #aeb5bd; border-radius: 4px; color: #151a22; box-shadow: 0 24px 70px #0005; }
.confirm-dialog::backdrop { background: rgba(11, 15, 23, .58); }
.confirm-dialog-content { padding: clamp(24px, 5vw, 38px); }
.confirm-dialog-content .eyebrow { margin-bottom: 8px; }
.confirm-dialog-content > p:not(.eyebrow):not(.form-message) { color: #626a75; }
.confirm-dialog-content .form-actions { justify-content: flex-end; gap: 9px; }
.master-data-panel { scroll-margin-top: 24px; }
.master-tabs { display: flex; gap: 8px; margin: 8px 0 18px; padding: 0; border: 0; background: transparent; }
.master-tab { display: flex; flex: 1; align-items: center; justify-content: center; gap: 9px; min-height: 48px; padding: 10px 15px; border: 1px solid #d5d9de; background: #f4f6f8; color: #53606d; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.master-tab > span { color: #8a949e; font-size: 10px; letter-spacing: .08em; }
.master-tab:hover { background: #f8f9fa; color: #1e3249; }
.master-tab.active { border-color: #96a9bc; background: #fff; color: #1f3d60; box-shadow: inset 0 -3px #2a4365, 0 4px 14px #1a29370c; }
.master-tab:focus-visible { outline: 3px solid #9fb3c8; outline-offset: -2px; }
.master-pane { display: none; }
.master-pane.active { display: block; }
.master-layout { display: grid; grid-template-columns: minmax(330px, 390px) minmax(0, 1fr); gap: 18px; align-items: start; }
.master-layout.readonly { grid-template-columns: 1fr; }
.master-list-card { position: sticky; top: 18px; }
.master-list-card,
.master-form { min-width: 0; }
.master-list-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.master-list-head h3 { margin-bottom: 5px; }
.master-list-head .muted { margin: 0; font-size: 12px; }
.master-new-button { flex: 0 0 auto; margin: 0 !important; }
.master-search { display: block; margin: 18px 0 12px; color: #59636f; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.master-search input { display: block; width: 100%; margin-top: 7px; padding: 10px 11px; border: 1px solid #c8cdd3; border-radius: 3px; background: #fff; color: #151a22; font-size: 13px; font-weight: 500; text-transform: none; }
.master-record-list { display: grid; gap: 7px; max-height: 680px; overflow-y: auto; padding-right: 3px; }
.master-record { display: grid; gap: 3px; width: 100%; padding: 13px 14px; border: 1px solid #dde1e5; border-left: 3px solid transparent; background: #fafbfc; color: #1d2834; text-align: left; cursor: pointer; }
.master-record:hover { border-color: #bdc8d3; background: #f4f7f9; }
.master-record.selected { border-color: #9fb0c0; border-left-color: #2a4365; background: #eef3f7; }
.master-record strong { overflow-wrap: anywhere; font-size: 14px; }
.master-record span { color: #52677d; font-size: 11px; font-weight: 800; }
.master-record small { overflow-wrap: anywhere; color: #747d87; font-size: 11px; }
.master-empty { margin: 0; padding: 20px; border: 1px dashed #b8c0c8; color: #68727c; text-align: center; }
.master-form { scroll-margin-top: 18px; }
.record-form { padding: 0; overflow: clip; }
.record-form-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 24px 18px; border-bottom: 1px solid #dfe3e7; background: linear-gradient(180deg, #fff, #f8f9fa); }
.record-form-head h3 { margin: 4px 0 5px; }
.record-form-head .muted { margin: 0; }
.record-state { flex: 0 0 auto; padding: 6px 9px; border: 1px solid #c9d3dd; background: #edf2f6; color: #34516e; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.record-section { margin: 0; border: 0; border-bottom: 1px solid #e0e4e8; background: #fff; }
.record-section > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 24px; color: #243b53; cursor: pointer; list-style: none; }
.record-section > summary::-webkit-details-marker { display: none; }
.record-section > summary::after { color: #718096; font-size: 18px; content: '+'; }
.record-section[open] > summary::after { content: '−'; }
.record-section > summary span { display: grid; gap: 3px; }
.record-section > summary b { font-size: 14px; }
.record-section > summary small { color: #77818c; font-size: 11px; font-weight: 500; }
.record-section[open] > summary { background: #f7f9fb; }
.section-fields { padding: 4px 24px 24px; }
.record-section .form-grid.section-fields { margin: 0; }
.sticky-form-actions { position: sticky; bottom: 0; z-index: 2; margin: 0 !important; padding: 14px 24px 18px; border-top: 1px solid #d7dce1; background: rgba(255,255,255,.96); box-shadow: 0 -8px 22px #2134480d; backdrop-filter: blur(8px); }
.record-form > .form-message { margin: 0; padding: 0 24px 18px; }
.matter-title-editor { display: grid; gap: 8px; }
.matter-title-editor > label:first-child { margin: 0; }
.matter-title-editor input[readonly] { background: #f2f4f5; color: #33465a; cursor: default; }
.matter-title-mode { width: fit-content; margin: 0 !important; padding: 9px 12px; }
.matter-title-editor > small { color: #5d6b78; line-height: 1.5; }
.inline-check { display: flex !important; align-items: center; align-self: end; gap: 8px; min-height: 42px; padding: 10px 12px; border: 1px solid #d7dde3; background: #f8fafb; }
.inline-check input { width: auto; margin: 0; }
.repeatable-block { margin-top: 18px; }
.repeatable-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.repeatable-head b { color: #334e68; font-size: 12px; }
.repeatable-head .button { margin: 0; }
.repeatable-list { display: grid; gap: 8px; }
.repeat-row { display: grid; gap: 8px; align-items: center; padding: 10px; border: 1px solid #dbe1e6; background: #fafbfc; }
.repeat-row input,
.repeat-row select { min-width: 0; margin: 0; }
.email-row { grid-template-columns: minmax(0, 1fr) auto; }
.phone-row,
.fax-row { grid-template-columns: 150px minmax(0, 1fr) auto; }
.address-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.address-row > :nth-child(2),
.address-row > :nth-child(5) { grid-column: span 2; }
.address-row > .assignment-remove { justify-self: end; }
.bank-row { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
.bank-row > :nth-child(3),
.bank-row > :nth-child(4) { grid-column: span 1; }
.buyer-reference-row { grid-template-columns: minmax(150px, 1fr) 160px minmax(170px, 1.1fr) auto; }
.portal-access-block { margin-top: 20px; padding: 14px; border: 1px solid #d9dfe5; background: #f7f9fa; }
.portal-access-block > b { color: #334e68; font-size: 12px; }
.contact-booking-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #d9dfe5; }
.contact-booking-link > div { min-width: 0; display: grid; gap: 3px; }
.contact-booking-link span { color: #52616f; font-size: 13px; overflow-wrap: anywhere; }
.contact-booking-link .button { flex: 0 0 auto; min-height: 44px; }
.integration-reference { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; padding: 13px 14px; border-left: 3px solid #2a4365; background: #eef3f7; }
.integration-reference b { color: #2a4365; font-size: 12px; }
.integration-reference span { color: #66727d; font-size: 11px; }
.master-review-queue { margin: 18px 0 24px; padding: 20px; border: 1px solid #c9d5df; border-left: 4px solid #2a4365; background: #f6f9fb; }
.master-review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.master-review-head h3 { margin: 4px 0 6px; }
.master-review-head p { margin: 0; }
.review-count { padding: 6px 9px; background: #2a4365; color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.master-change-list { display: grid; gap: 12px; margin-top: 16px; }
.master-change-card { padding: 16px; border: 1px solid #d4dce3; background: #fff; }
.master-change-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.master-change-card-head > div { display: grid; gap: 3px; }
.master-change-card-head span { color: #6b7680; font-size: 11px; }
.master-change-card-head b { color: #9a6817; font-size: 10px; text-transform: uppercase; }
.change-values { display: grid; grid-template-columns: minmax(130px, .45fr) minmax(0, 1fr); gap: 0; margin: 14px 0; border-top: 1px solid #e2e6ea; }
.change-values dt,
.change-values dd { margin: 0; padding: 8px 4px; border-bottom: 1px solid #edf0f2; font-size: 11px; overflow-wrap: anywhere; }
.change-values dt { color: #536475; font-weight: 800; }
.change-values dd { color: #273746; }
.master-change-card textarea { min-height: 62px; margin: 0; }
.master-change-actions { display: flex; gap: 8px; justify-content: flex-end; }
.master-change-actions .button { margin-top: 10px; }
.profile-workspace { display: grid; grid-template-columns: minmax(260px, .58fr) minmax(0, 1.42fr); gap: 18px; align-items: start; }
.profile-record-card { position: sticky; top: 18px; }
.profile-record-select { display: block; margin-top: 18px; color: #4f5d6a; font-size: 12px; font-weight: 800; }
.profile-record-select select { display: block; width: 100%; margin-top: 7px; padding: 10px; border: 1px solid #c8cdd3; background: #fff; }
.approval-explainer { margin-top: 20px; padding: 15px; border-left: 3px solid #2a4365; background: #eef3f7; }
.approval-explainer strong { font-size: 12px; }
.approval-explainer ol { margin: 9px 0 0; padding-left: 20px; color: #586573; font-size: 11px; line-height: 1.8; }
.change-history { margin-top: 20px; }
.change-history h4 { margin: 0 0 9px; font-size: 13px; }
.change-history-item { display: grid; gap: 2px; margin-top: 7px; padding: 9px 10px; border-left: 3px solid #9ca8b3; background: #f4f6f8; }
.change-history-item strong { font-size: 11px; }
.change-history-item span,
.change-history-item small { color: #6e7882; font-size: 10px; }
.change-history-item.is-approved { border-left-color: #4e8a61; }
.change-history-item.is-pending { border-left-color: #b88123; }
.change-history-item.is-rejected { border-left-color: #9d4f3c; }
.profile-edit-form { padding: 0; overflow: clip; }
.master-account-note { margin: 6px 0 0; color: #68727c; font-size: 12px; }
.master-toggle { display: flex !important; align-items: center; gap: 9px; margin: 20px 0 0 !important; padding: 13px 14px; background: #eef2f6; }
.master-toggle input { width: auto; margin: 0; }
.master-subform { margin: 16px 0 0; padding: 7px 15px 18px; border: 1px solid #d4d9de; background: #f8f9fa; }
.master-subform legend { padding: 0 7px; color: #2a4365; font-size: 12px; font-weight: 800; }
.relation-editor,
.matter-assignment-list { display: grid; gap: 10px; margin: 12px 0; }
.assignment-row { display: grid; grid-template-columns: minmax(180px, 1.25fr) minmax(150px, .8fr) auto; gap: 9px; align-items: start; padding: 12px; border: 1px solid #d7dde3; background: #fff; }
.assignment-row select { width: 100%; min-width: 0; margin: 0; }
.predeadline-row { grid-template-columns: minmax(0, 1fr) auto; }
.predeadline-row input { width: 100%; min-width: 0; }
.predeadline-field-error { grid-column: 1 / -1; color: #8d3f2c; font-size: 12px; font-weight: 700; line-height: 1.45; }
.predeadline-row input[aria-invalid="true"] { border-color: #a84f38; box-shadow: 0 0 0 2px rgba(168, 79, 56, .12); }
.participant-row { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 14px; padding: 18px; border-radius: 8px; box-shadow: 0 8px 24px rgba(34, 53, 72, .06); }
.participant-row-child { margin: 10px 0 0 28px; border-left: 4px solid #6d8aaa; background: #f7f9fb; box-shadow: none; }
.participant-card-head { display: flex; grid-column: 1 / -1; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid #e0e4e8; }
.participant-card-head > div:first-child { display: grid; gap: 3px; min-width: 0; }
.participant-card-head strong { overflow: hidden; color: #1e3146; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.participant-card-kind { color: #607184; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.participant-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.participant-field { display: grid !important; gap: 6px; margin: 0 !important; color: #526174; font-size: 11px !important; font-weight: 800 !important; letter-spacing: .04em; }
.participant-field > span { text-transform: uppercase; }
.participant-field select,
.participant-field input { width: 100%; min-width: 0; margin: 0; }
.participant-field small { color: #6d7986; font-size: 11px; font-weight: 500; letter-spacing: 0; line-height: 1.4; }
.participant-children { display: grid; grid-column: 1 / -1; gap: 10px; width: 100%; padding-top: 4px; }
.participant-hierarchy-controls { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 10px 16px; align-items: end; padding-top: 12px; border-top: 1px solid #e0e4e8; }
.participant-hierarchy-controls > label:not([hidden]) { min-width: min(280px, 100%); }
.participant-hierarchy-controls label { margin: 0 !important; color: #536176; font-size: 10px !important; letter-spacing: .08em; text-transform: uppercase; }
.participant-hierarchy-controls .assignment-check { min-width: auto; text-transform: none; }
.participant-hierarchy-controls select { margin-top: 5px; }
.participant-safe-id { grid-column: 1 / -1; padding: 9px 11px; border-radius: 5px; background: #eef3f7; color: #4f6072; font-size: 11px; line-height: 1.4; overflow-wrap: break-word; }
.participant-exchange-fields { grid-column: 1 / -1; border-top: 1px solid #e0e4e8; padding-top: 10px; }
.participant-exchange-fields summary { cursor: pointer; color: #536176; font-size: 11px; font-weight: 800; }
.participant-exchange-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 12px; }
.legal-area-row,
.predeadline-row { grid-template-columns: minmax(220px, 1fr) auto; }
.participant-add-child { margin: 0 0 1px !important; white-space: nowrap; }
.team-row { grid-template-columns: minmax(180px, 1.15fr) minmax(170px, .85fr) auto; }
.team-row .assignment-rights { grid-column: 1 / -1; }
.assignment-rights { display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 7px; padding-top: 10px; border-top: 1px solid #e0e4e8; }
.assignment-rights label,
.assignment-check { display: flex !important; align-items: center; gap: 6px; margin: 0 !important; color: #425263; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
.assignment-rights input,
.assignment-check input { width: auto; margin: 0; }
.assignment-remove { margin: 0 !important; white-space: nowrap; }
.portal-user-line { margin: 7px 0; padding: 9px 11px; border-left: 3px solid #2a4365; background: #edf2f6; color: #364b61; font-size: 12px; }
#invite-master-record-label small { display: block; margin-top: 5px; color: #737d87; font-weight: 500; }
.master-form .form-actions { gap: 9px; flex-wrap: wrap; }
.master-form .form-actions .button { margin-top: 18px; }
.signature-fes-card { grid-column: 1 / -1; border-left: 4px solid #2a4365; }
.signature-fes-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.signature-fes-head h3 { margin-top: 4px; }
.signature-fes-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 20px 0; padding: 0; list-style: none; }
.signature-fes-steps li { padding: 11px 12px; border: 1px solid #d7dde3; background: #f5f7f9; color: #68727c; font-size: 11px; font-weight: 800; }
.signature-fes-steps li::before { display: inline-grid; width: 18px; height: 18px; margin-right: 7px; place-items: center; border: 1px solid #9ca6b0; border-radius: 50%; content: '–'; }
.signature-fes-steps li.complete { border-color: #a8c4b0; background: #f1f8f3; color: #315f3e; }
.signature-fes-steps li.complete::before { border-color: #4e8a61; background: #4e8a61; color: #fff; content: '✓'; }
.signature-fes-assignments { margin-top: 22px; padding-top: 18px; border-top: 1px solid #dce2e7; }
.signature-fes-assignments h4 { margin: 0 0 10px; color: #243b53; }
.signature-fes-assignment { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid #e3e7ea; }
.signature-fes-assignment > div { display: grid; gap: 3px; }
.signature-fes-assignment small { color: #6d7781; }
.signature-fes-assignment > div:last-child { display: flex; grid-auto-flow: column; gap: 8px; }
.signature-fes-assignment .button { margin: 0; }
.signature-fes-dialog { width: min(680px, calc(100% - 32px)); }
.signature-fes-consent-check { display: flex; align-items: flex-start; gap: 10px; margin: 20px 0; padding: 14px; border: 1px solid #c9d3dd; background: #f4f7f9; color: #34495e; font-size: 13px; font-weight: 700; line-height: 1.55; }
.signature-fes-consent-check input { width: auto; margin: 3px 0 0; }
.contact-role-fieldset { margin: 0; padding: 12px 14px 14px; border: 1px solid #d6dde4; background: #f8fafb; }
.contact-role-fieldset legend { padding: 0 6px; color: #263f5d; font-size: 12px; font-weight: 800; }
.contact-role-fieldset .muted { margin: 0 0 10px; font-size: 11px; }
.contact-role-grid { display: grid; grid-template-columns: repeat(3, minmax(140px, 1fr)); gap: 7px 12px; }
.contact-role-grid label { display: flex !important; align-items: center; gap: 7px; margin: 0 !important; color: #40566c; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
.contact-role-grid input { width: auto; margin: 0; }
.sensitive-record-section { border-left: 4px solid #8a6a32; }
.sensitive-record-section > summary { background: #fbf8f1; }
.staff-document-form { grid-column: 2; padding: 22px; border-left: 4px solid #2a4365; }
.staff-document-list { display: grid; gap: 8px; margin-top: 18px; }
.staff-document-item { display: grid; gap: 3px; padding: 11px 12px; border: 1px solid #d9dfe5; background: #f7f9fa; }
.staff-document-item strong { color: #243b53; font-size: 12px; }
.staff-document-item span { color: #687583; font-size: 10px; }
.booking-audience-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; border-left: 4px solid #607d9b; }
.booking-audience-card h3 { margin: 0; }
.booking-audience-card p:last-child { margin: 6px 0 0; }
.booking-audience-card.client-mode { border-left-color: #4f7f5d; background: #f8fbf8; }
.booking-audience-card.staff-mode { border-left-color: #8a6a32; background: #fbf8f1; }
.booking-completion { margin-top: 20px; }
.booking-completion-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid #e0e4e8; }
.booking-identity-panel { margin-top: 22px; padding: 18px; border: 1px solid #d8dfe6; background: #f8fafb; }
.booking-identity-panel h4 { margin: 0; color: #243b53; font-size: 15px; }
.booking-identity-panel > .muted { margin: 5px 0 0; font-size: 12px; }
.booking-client-identity { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.booking-client-identity span { display: grid; gap: 3px; padding: 12px; border: 1px solid #d7e0d9; background: #fff; }
.booking-client-identity small { color: #687583; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.booking-client-identity strong { overflow-wrap: anywhere; color: #243b53; font-size: 12px; }
.booking-privacy-check { display: flex; align-items: flex-start; gap: 10px; margin-top: 22px; padding: 14px; border: 1px solid #d7dde3; background: #f6f8fa; color: #394f64; font-size: 12px; font-weight: 700; }
.booking-privacy-check input { width: auto; margin: 3px 0 0; }
.booking-result { max-width: 960px; margin-top: 20px; border-left: 4px solid #4f7f5d; }
.booking-result dl { display: grid; grid-template-columns: 1fr 2fr; gap: 10px; margin: 20px 0; }
.booking-result dl div { padding: 12px; border: 1px solid #dce1e6; background: #f8fafb; }
.booking-result dt { color: #687583; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.booking-result dd { margin: 3px 0 0; color: #243b53; font-weight: 800; }
.booking-history { max-width: 960px; margin-top: 32px; padding-top: 24px; border-top: 1px solid #d8dde2; }
.booking-history-list { display: grid; gap: 10px; }
.booking-history-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; border: 1px solid #d9dfe5; background: #fff; }
.booking-history-item > div:first-child { display: grid; gap: 4px; }
.booking-history-item span { color: #687583; font-size: 11px; }
.booking-history-state { display: flex; align-items: center; gap: 10px; }
.booking-history-state b { color: #2a4365; font-size: 11px; }
.portal-dashboard { width: min(100%, 1160px); }
.portal-dashboard-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.portal-dashboard-hero h1 { max-width: 760px; font-size: clamp(38px, 5vw, 60px); }
.portal-dashboard-hero .lead { max-width: 760px; margin-bottom: 0; }
.portal-dashboard-hero .status { flex: 0 0 auto; margin-top: 5px; }
.portal-dashboard-next { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; margin-bottom: 20px; padding: clamp(24px, 4vw, 38px); overflow: hidden; border-radius: 24px; background: linear-gradient(135deg, #0b0f17 0%, #273b4f 100%); color: #fff; box-shadow: 0 18px 44px rgba(20, 35, 49, .15); }
.portal-dashboard-next .eyebrow { color: #b7c9d9; }
.portal-dashboard-next h2 { max-width: 720px; font-size: clamp(27px, 3.2vw, 38px); }
.portal-dashboard-next-context { display: grid; max-width: 760px; gap: 7px; margin: 15px 0 0; }
.portal-dashboard-next-context > div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 10px; }
.portal-dashboard-next-context dt { color: #b7c9d9; font-size: 11px; font-weight: 800; letter-spacing: .03em; }
.portal-dashboard-next-context dd { margin: 0; color: #eef3f7; font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.portal-dashboard-next .button { min-width: 210px; min-height: 48px; border-color: #fff; background: #fff; color: #0b0f17; }
.portal-dashboard-next .button:hover { border-color: #d9e2ea; background: #d9e2ea; }
.portal-dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.portal-dashboard-card { display: flex; min-width: 0; min-height: 260px; flex-direction: column; border-color: #dfe4e8; border-radius: 20px; box-shadow: 0 12px 30px rgba(31, 47, 65, .055); }
.portal-dashboard-card h2 { font-size: clamp(23px, 2.2vw, 30px); }
.portal-dashboard-card > p { margin: 18px 0 22px; }
.portal-dashboard-card > .button,
.portal-dashboard-card > .portal-dashboard-card-actions { margin-top: auto; }
.portal-dashboard-card > .button { width: fit-content; min-height: 44px; }
.portal-dashboard-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.portal-dashboard-count { display: grid; flex: 0 0 auto; min-width: 42px; height: 42px; place-items: center; padding: 0 10px; border-radius: 99px; background: #edf2f6; color: #405f79; font-size: 15px; font-weight: 800; }
.portal-dashboard-list { display: grid; gap: 10px; margin: 18px 0 22px; }
.portal-dashboard-list-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; padding: 14px; border: 1px solid #e1e6ea; border-radius: 14px; background: #f7f9fa; }
.portal-dashboard-list-item > div { display: grid; min-width: 0; gap: 3px; }
.portal-dashboard-list-item strong,
.portal-dashboard-list-item span,
.portal-dashboard-list-item small { overflow-wrap: anywhere; }
.portal-dashboard-list-item span { color: #5d6976; font-size: 12px; }
.portal-dashboard-list-item small { color: #405f79; font-size: 11px; font-weight: 800; }
.portal-dashboard-list-item .button { flex: 0 0 auto; min-height: 44px; }
.portal-dashboard-card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.portal-dashboard-card-actions .button { min-height: 44px; }
.portal-dashboard-card-actions .text-link { min-height: 44px; margin: 0; }
.portal-dashboard-feedback { min-height: 22px; margin: 16px 2px 0; color: #80591e; }
.portal-dashboard button:focus-visible { outline: 3px solid #91a8c0; outline-offset: 3px; }
.client-onboarding-request-list { display: grid; gap: 10px; margin: 14px 0 18px; }
.client-onboarding-request { display: grid; gap: 5px; padding: 14px; border-left: 4px solid #5b758e; border-radius: 12px; background: #f2f5f7; }
.client-onboarding-request p { margin: 0; }
.client-onboarding-request small { color: #526372; font-weight: 800; }
.client-onboarding-empty { align-self: stretch; border-style: dashed; }
.client-onboarding-empty h4 { margin-top: 0; }
.booking-management { margin-bottom: 18px; }
.booking-management-list { display: grid; gap: 10px; margin-top: 18px; }
.managed-booking { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 17px; border: 1px solid #d9dfe5; background: #f9fafb; }
.managed-booking-held { border-left: 4px solid #b48636; background: #fdfaf4; }
.managed-booking-confirmed { border-left: 4px solid #4f7f5d; }
.managed-booking-cancelled { opacity: .65; }
.managed-booking-main > div:first-child { display: flex; align-items: center; gap: 10px; }
.managed-booking h4 { margin: 0; color: #243b53; }
.managed-booking p { margin: 5px 0 0; font-size: 12px; }
.booking-origin { display: inline-flex; padding: 4px 7px; border-radius: 99px; background: #e9edf2; color: #40566d; font-size: 9px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.booking-origin-client { background: #e7f1e9; color: #315f3e; }
.managed-booking-side { display: grid; justify-items: end; gap: 8px; }
.managed-booking-status { color: #2a4365; font-size: 11px; }
.calendar-sync-warning { color: #8a5b18; font-size: 10px; font-weight: 800; }
.booking-calendar-file-status { display: grid; gap: 3px; max-width: 290px; text-align: right; font-size: 10px; }
.booking-calendar-file-status span { overflow-wrap: anywhere; }
.booking-calendar-file-sent { color: #2f6f4e; }
.booking-calendar-file-pending,.booking-calendar-file-none { color: #5d6875; }
.booking-calendar-file-failed { color: #8a5b18; font-weight: 800; }
.calendar-sync-pending { color: #526372; font-size: 10px; font-weight: 700; }
.managed-booking-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.managed-booking-actions .button { min-height: 44px; }
.appointment-audience-fields { margin: 18px 0 0; padding: 15px; border: 1px solid #d8dfe6; background: #f8fafb; }

@media (max-width: 760px) {
  .portal-dashboard-hero,
  .portal-dashboard-next { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
  .portal-dashboard-hero .status { width: fit-content; margin-top: 0; }
  .portal-dashboard-next { gap: 22px; border-radius: 20px; }
  .portal-dashboard-hero { margin-bottom: 16px; }
  .portal-dashboard-hero h1 { font-size: clamp(32px, 10vw, 42px); }
  .portal-dashboard-next { padding: 22px 18px; }
  .portal-dashboard-next h2 { font-size: 27px; }
  .portal-dashboard-next-context > div { grid-template-columns: 72px minmax(0, 1fr); }
  .portal-dashboard-next .button { width: 100%; min-width: 0; }
  .portal-dashboard-grid { grid-template-columns: 1fr; }
  .portal-dashboard-card { min-height: 0; border-radius: 18px; }
  .portal-dashboard-list-item { align-items: stretch; flex-direction: column; }
  .portal-dashboard-list-item .button,
  .portal-dashboard-card > .button,
  .portal-dashboard-card-actions .button { width: 100%; }
  .portal-dashboard-card-actions { align-items: stretch; flex-direction: column; }
  .account-summary { align-items: flex-start; flex-direction: column; }
  .section-head.compact { align-items: flex-start; }
  .calendar-connection-action { align-items: flex-start; }
  .appointment-list-head { flex-direction: column; }
  .grid.two.scheduling-grid { grid-template-columns: 1fr; }
  .appointment-admin-card { grid-template-columns: 1fr; gap: 13px; }
  .appointment-assignment { padding: 0; border-left: 0; }
  .appointment-admin-heading .appointment-summary-description,
  .appointment-assignment strong { white-space: normal; }
  .appointment-admin-actions { flex-wrap: wrap; }
  .availability-day { grid-template-columns: 1fr 88px 88px; }
  .master-tabs { align-items: stretch; flex-direction: column; }
  .master-tab { text-align: left; }
  .master-layout { grid-template-columns: 1fr; }
  .master-list-card,
  .profile-record-card { position: static; }
  .profile-workspace { grid-template-columns: 1fr; }
  .master-list-head { align-items: stretch; flex-direction: column; }
  .assignment-row,
  .participant-row,
  .team-row { grid-template-columns: 1fr; }
  .assignment-rights { grid-template-columns: 1fr; }
  .team-row .assignment-rights { grid-column: auto; }
  .participant-row-child { margin-left: 10px; }
  .participant-hierarchy-controls { grid-template-columns: 1fr; }
  .participant-card-head { align-items: stretch; flex-direction: column; }
  .participant-card-actions { justify-content: flex-start; }
  .participant-exchange-grid { grid-template-columns: 1fr; }
  .repeat-row,
  .phone-row,
  .fax-row,
  .address-row,
  .bank-row,
  .buyer-reference-row { grid-template-columns: 1fr; }
  .record-form-head,
  .master-review-head,
  .master-change-card-head { flex-direction: column; }
  .section-fields,
  .record-section > summary,
  .record-form-head { padding-right: 18px; padding-left: 18px; }
  .signature-fes-head { flex-direction: column; }
  .signature-fes-steps { grid-template-columns: 1fr; }
  .signature-fes-assignment { align-items: stretch; flex-direction: column; }
  .signature-fes-assignment > div:last-child { grid-auto-flow: row; }
  .contact-role-grid { grid-template-columns: 1fr; }
  .staff-document-form { grid-column: auto; }
  .booking-audience-card,
  .booking-completion-head,
  .booking-history-item { align-items: stretch; flex-direction: column; }
  .booking-client-identity,
  .booking-result dl,
  .managed-booking { grid-template-columns: 1fr; }
  .managed-booking-side { justify-items: start; }
  .booking-calendar-file-status { text-align: left; }
  .managed-booking-actions { justify-content: flex-start; }
  .contact-booking-link { align-items: stretch; flex-direction: column; }
  .contact-booking-link .button { width: 100%; }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .grid.two.scheduling-grid { grid-template-columns: 1fr; }
  .appointment-admin-card { grid-template-columns: minmax(0, 1fr) auto; }
  .appointment-assignment { grid-column: 1 / -1; padding: 0; border-left: 0; }
  .master-layout { grid-template-columns: 1fr; }
}
