.insurance-fields { margin: 16px 0; padding: 16px; border: 1px solid var(--border-color, #8885); border-radius: 12px; min-width: 0; color: inherit; }
.insurance-fields legend { padding: 0 6px; font-weight: 650; font-size: .95rem; }
.insurance-fields small { display: block; line-height: 1.5; opacity: .8; margin: 8px 0; }
.insurance-fields__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 12px; margin-top: 12px; }
.insurance-fields__grid label { display: flex; flex-direction: column; gap: 7px; font-size: .85rem; min-width: 0; }
.insurance-fields input:not([type=checkbox]), .insurance-fields select, .insurance-fields textarea { box-sizing: border-box; width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid var(--border-color, #8887); border-radius: 8px; background: var(--surface-1, transparent); color: inherit; font: inherit; min-height: 42px; }
.insurance-fields select option { background: var(--surface-1, #fff); color: var(--text-primary, #222); }
.insurance-fields__check { display: flex; gap: 8px; align-items: center; font-size: .9rem; line-height: 1.5; }
.insurance-fields__check input { width: 18px; height: 18px; flex-shrink: 0; }
.insurance-fields__provider { border-top: 1px solid var(--border-color, #8885); padding: 10px 0; margin-top: 12px; }
.insurance-fields__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-top: 12px; }
.insurance-fields button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--border-color, #8887); background: transparent; color: inherit; border-radius: 8px; padding: 9px 12px; min-height: 40px; cursor: pointer; font: inherit; }
.insurance-fields button:disabled { opacity: .5; cursor: default; }
.insurance-fields__price { margin: 12px 0 0; line-height: 1.5; }
.insurance-fields__error { color: var(--error, #c13434); }
.insurance-summary { display: flex; flex-wrap: wrap; gap: 6px 16px; line-height: 1.5; font-size: .82rem; margin: 8px 0; overflow-wrap: anywhere; }
.insurance-fields :is(button, input, select, textarea):focus-visible { outline: 2px solid var(--primary, #d95629); outline-offset: 3px; }

.appointment-records { padding: clamp(14px, 2vw, 26px); background: var(--surface-1, transparent); color: var(--text-primary, inherit); border: 1px solid var(--border-color, #8884); border-radius: 16px; min-width: 0; }
.appointment-records__heading, .appointment-records__toolbar, .appointment-records__dates, .appointment-records__periods, .appointment-records__pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.appointment-records__heading { justify-content: space-between; margin-bottom: 18px; }
.appointment-records__heading h2 { font-size: 1.2rem; margin: 0 0 6px; }
.appointment-records__heading p, .appointment-records__person p { margin: 4px 0; font-size: .85rem; opacity: .85; overflow-wrap: anywhere; }
.appointment-records button { border: 1px solid var(--border-color, #8886); background: transparent; border-radius: 8px; color: inherit; font: inherit; font-size: .85rem; padding: 9px 12px; min-height: 40px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.appointment-records button[aria-pressed=true] { background: var(--primary, #e35e37); color: #171717; border-color: transparent; font-weight: 650; }
.appointment-records button:disabled { opacity: .45; cursor: default; }
.appointment-records__toolbar > label, .appointment-records__dates label { display: flex; flex-direction: column; gap: 6px; font-size: .8rem; min-width: 0; }
.appointment-records :is(input, select) { border: 1px solid var(--border-color, #8886); background: var(--surface-1, transparent); color: inherit; border-radius: 8px; padding: 10px; font: inherit; min-height: 42px; box-sizing: border-box; max-width: 100%; }
.appointment-records select option { background: var(--surface-1, #fff); color: var(--text-primary, #222); }
.appointment-records__toolbar > .appointment-records__search { flex-direction: row; align-items: center; flex: 1 1 280px; position: relative; }
.appointment-records__search svg { position: absolute; left: 12px; pointer-events: none; }
.appointment-records__search input { width: 100%; padding-left: 38px; }
.appointment-records__dates { flex-wrap: nowrap; align-items: flex-end; }
.appointment-records__range { font-size: .8rem; opacity: .75; margin-top: 14px; }
.appointment-records__rows { margin-top: 18px; }
.appointment-records__row { display: grid; grid-template-columns: 105px minmax(0, 1fr) minmax(140px, 220px); gap: 18px; border-top: 1px solid var(--border-color, #8884); padding: 18px 0; }
.appointment-records__date, .appointment-records__row-actions { display: flex; flex-wrap: wrap; gap: 8px; align-content: start; align-items: start; }
.appointment-records__date { flex-direction: column; font-size: .85rem; }
.appointment-records__person { min-width: 0; }
.appointment-records__person h3 { font-size: 1rem; margin: 0 0 8px; overflow-wrap: anywhere; }
.appointment-records__badge { display: inline-block; border-radius: 6px; background: var(--surface-2, #8882); padding: 6px 9px; font-size: .8rem; }
.appointment-records__pagination { justify-content: center; margin-top: 20px; font-size: .85rem; }
.appointment-records__empty { padding: 36px 0; text-align: center; }
.appointment-records__error { padding: 12px; margin: 16px 0; border: 1px solid var(--error, #c13434); border-radius: 8px; }
.appointment-records__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.appointment-records :is(button, input, select):focus-visible { outline: 2px solid var(--primary, #e35e37); outline-offset: 3px; }
@media (max-width: 720px) { .appointment-records__row { grid-template-columns: 1fr; gap: 10px; } .appointment-records__date { flex-direction: row; } .appointment-records__row-actions { max-width: 100%; } .appointment-records__toolbar > label { flex: 1 1 160px; } .appointment-records__dates { width: 100%; justify-content: space-between; } }

.insurance-panel__notice { font-size: .86rem; line-height: 1.6; opacity: .8; margin-bottom: 20px; }
.insurance-panel__totals { display: flex; flex-wrap: wrap; gap: 14px; margin: 18px 0; }
.insurance-panel__totals > div { flex: 1 1 220px; display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--border-color, #8885); border-radius: 12px; padding: 16px; font-size: .85rem; }
.insurance-panel__notes { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.insurance-panel__history { margin: 16px 0; font-size: .85rem; }
.insurance-panel__history li { margin: 12px 0; line-height: 1.6; overflow-wrap: anywhere; }
