:root{--ink:#2f2730;--muted:#756c74;--paper:#fffdfa;--panel:#fff;--line:#eadfe3;--accent:#8a5668;--accent2:#f5e9ed;--control-hover-border:var(--accent);--control-focus-ring:color-mix(in srgb,var(--accent) 26%,transparent);--control-hover-bg:var(--accent2);--ok:#2f7658;--warn:#8a6321;--danger:#9b3d45;--shadow:0 18px 55px rgba(67,45,55,.08)}*{box-sizing:border-box}body{margin:0;font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f8f9fc}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.topbar{min-height:70px;padding:10px clamp(18px,4vw,60px);display:flex;gap:26px;align-items:center;background:rgba(255,253,250,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font-weight:750;white-space:nowrap}.brand:hover{text-decoration:none}.brand small{display:block;color:var(--muted);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.mark,.auth-logo{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--accent);color:white;font:700 20px Georgia,serif}.topbar nav{display:flex;gap:14px;flex:1;flex-wrap:wrap}.topbar nav a{color:#5a4f55;font-size:14px}.account{display:flex;align-items:center;gap:10px;font-size:13px}.linkbtn{border:0;background:none;color:var(--accent);padding:0}.shell{max-width:1220px;margin:0 auto;padding:36px 24px 70px}.auth-shell{max-width:460px;min-height:78vh;display:grid;place-items:center}.auth-card{width:100%;background:var(--panel);padding:36px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.auth-logo{width:52px;height:52px;margin-bottom:22px}h1{font-size:clamp(28px,4vw,42px);line-height:1.08;margin:.2em 0}h2{font-size:18px;margin:0 0 15px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:var(--accent);margin:0}.muted,.hint{color:var(--muted)}.tiny,.hint{font-size:12px}.prewrap{white-space:pre-wrap}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:20px;box-shadow:0 8px 26px rgba(70,47,57,.04)}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{font-size:34px}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:680px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #efe6e9;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}tfoot th,tfoot td{border-bottom:0;border-top:1px solid var(--line)}.small{font-size:12px}.empty{color:var(--muted);text-align:center;padding:25px}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f0ebed;font-size:11px;text-transform:capitalize}.badge.paid,.badge.ready{background:#e4f3eb;color:var(--ok)}.badge.part_paid,.badge.incomplete{background:#fff2d9;color:var(--warn)}.badge.cancelled,.badge.failed{background:#f9e3e5;color:var(--danger)}form{margin:0}label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:13px}input,select,textarea,button,.button{font:inherit}input,select,textarea{width:100%;border:1px solid #d9cdd2;border-radius:10px;background:#fff;padding:10px 11px;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid var(--control-focus-ring,var(--accent2));border-color:var(--accent)}button,.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d9cdd2;border-radius:10px;background:#fff;color:var(--ink);padding:9px 13px;font-weight:700;cursor:pointer;text-decoration:none}button:hover,.button:hover{text-decoration:none;border-color:var(--accent)}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.danger{background:#fff4f4;border-color:#e6b6ba;color:var(--danger)}.dangertext{color:var(--danger)}.stack{display:grid;gap:14px}.formgrid,.filtergrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.filtergrid{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:end}.wide{grid-column:1/-1}.inlineform,.filterbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.filterbar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:20px}.filterbar label{min-width:180px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions.compact{gap:6px}.callout{border-left:4px solid var(--accent)}.dangerzone{border-color:#edc9cc}.record{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #efe6e9}.record:last-child{border-bottom:0}.mini{display:flex;gap:6px;align-items:end}.mini input{max-width:190px}.twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.capgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.check{display:flex;flex-direction:row;align-items:center;font-weight:500}.check input{width:auto}.flash{padding:13px 15px;border-radius:12px;margin-bottom:16px;background:#edf2f7}.flash.success{background:#e7f5ed;color:#275f49}.flash.warning{background:#fff3dc;color:#76551e}.flash.error{background:#fde9eb;color:#8c343c}.note{background:#f7f2f4;border-radius:12px;padding:12px;color:var(--muted);font-size:13px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips span{font-size:12px;background:#f4edef;border-radius:999px;padding:5px 9px}.metricrow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #efe6e9}.metricrow strong{font-size:20px}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}footer{border-top:1px solid var(--line);padding:8px clamp(18px,4vw,60px);display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:11px;line-height:1.3;background:#fff}
@media(max-width:900px){.topbar{position:static;align-items:flex-start;flex-wrap:wrap}.topbar nav{order:3;width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.account{margin-left:auto}.filtergrid{grid-template-columns:1fr 1fr}.twocol,.stats{grid-template-columns:1fr}.capgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.shell{padding:24px 14px 60px}.pagehead{align-items:flex-start;flex-direction:column}.formgrid,.filtergrid,.capgrid{grid-template-columns:1fr}.wide{grid-column:auto}.card{padding:16px;border-radius:14px}.auth-card{padding:24px}.account span{display:none}footer{flex-direction:column}.lineitems{min-width:850px}}

/* Invoice entry workflow */
.client-preview{display:grid;grid-template-columns:2fr 2fr 1fr;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbf7f8}.client-preview>div{display:flex;flex-direction:column;gap:2px}.preview-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:750}.invoice-entry-table{min-width:1080px}.invoice-entry-table th:nth-child(1){width:28%}.invoice-entry-table th:nth-child(2){width:22%}.invoice-entry-table th:nth-child(3){width:11%}.invoice-entry-table th:nth-child(4){width:18%}.invoice-entry-table th:nth-child(5){width:21%}.service-picker{display:grid;gap:6px;min-width:240px}.service-picker .service-filter{padding:7px 9px;font-size:13px}.service-picker .service-select{padding:8px 9px}.service-hint{display:block;min-height:1.2em}.session-details{min-width:180px}.money-compact{width:92px;min-width:92px;padding:8px 9px}.discount-control{display:flex;align-items:center;gap:7px;min-width:170px}.discount-value{width:78px;min-width:78px;padding:8px 9px}.discount-toggle{display:inline-flex;border:1px solid #d9cdd2;border-radius:9px;overflow:hidden;background:#fff;flex:0 0 auto}.discount-toggle input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.discount-toggle label{display:block;padding:7px 8px;min-width:34px;text-align:center;cursor:pointer;font-size:11px;font-weight:750;border-right:1px solid #e6dce0}.discount-toggle label:last-of-type{border-right:0}.discount-toggle input:checked+label{background:var(--accent);color:#fff}.discount-toggle input:focus-visible+label{outline:3px solid var(--control-focus-ring,var(--accent2));outline-offset:-3px}.tax-checks{display:flex;gap:8px;flex-wrap:wrap;min-width:180px}.tax-check{display:inline-flex;flex-direction:row;align-items:center;gap:5px;padding:6px 8px;border:1px solid #dfd3d8;border-radius:9px;background:#fff;font-weight:650;font-size:12px;white-space:nowrap;cursor:pointer}.tax-check input{width:auto;margin:0}.tax-check:has(input:checked){border-color:var(--accent);background:var(--accent2);color:var(--accent)}.invoice-entry-table td{vertical-align:middle}
@media(max-width:700px){.client-preview{grid-template-columns:1fr}.discount-control{align-items:flex-start;flex-direction:column}.invoice-entry-table{min-width:980px}}

/* Invoice entry refinements: dropdown-only service selection and compact line subtotal. */
.invoice-entry-table{min-width:1120px}
.invoice-entry-table th:nth-child(1){width:24%}
.invoice-entry-table th:nth-child(2){width:22%}
.invoice-entry-table th:nth-child(3){width:10%}
.invoice-entry-table th:nth-child(4){width:17%}
.invoice-entry-table th:nth-child(5){width:17%}
.invoice-entry-table th:nth-child(6){width:10%}
.service-picker{min-width:210px}
.service-picker .service-select{padding:8px 9px}
.line-subtotal-cell{white-space:nowrap;text-align:right}
.line-subtotal{display:block;font-weight:800;font-size:14px}
.service-price[readonly],.discount-value[readonly]{background:#f6f1f3;color:#675d63}
@media(max-width:700px){.invoice-entry-table{min-width:1040px}}
.checklist{display:grid;gap:10px}.client-access-sections .card{height:fit-content}
.client-name-with-counter{display:flex;align-items:center;gap:8px;min-height:24px}.unpaid-invoice-counter{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#fff2d9;color:var(--warn);border:1px solid #eed59d;font-size:11px;font-weight:800;line-height:1;box-shadow:0 2px 8px rgba(138,99,33,.08)}

/* Numeric alignment and compact action refinements. */
input[type="number"],
input[inputmode="decimal"],
input[inputmode="numeric"],
.numeric-input {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.numeric-head,
.numeric-cell,
.numeric-value,
.amount-display output,
.line-subtotal,
.pre-discount-subtotal,
.configured-price {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.numeric-head,
.numeric-cell {
    white-space: nowrap;
}

.numeric-value {
    display: inline-block;
}

.metricrow .numeric-value,
.stat .numeric-value {
    margin-left: auto;
}

/* Payment summary on the first row, reversal controls beneath it. */
.payment-record {
    display: block;
}

.payment-record-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    width: 100%;
}

.payment-record-details {
    min-width: 0;
}

.payment-record-amount {
    justify-self: end;
    font-size: 1rem;
}

.payment-reversal-row {
    display: flex;
    align-items: end;
    gap: 8px;
    width: 100%;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #efe6e9;
}

.payment-reversal-reason {
    flex: 1 1 auto;
    min-width: 0;
}

.payment-reversal-reason input {
    width: 100%;
    max-width: none;
}

/* Icon-only document actions with accessible text retained for screen readers. */
.document-icon-actions {
    flex: 0 0 auto;
    align-items: center;
}

.icon-button {
    width: 38px;
    height: 38px;
    min-width: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

.icon-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Branded icon actions: enabled controls have an accent outline at rest.
   Keep disabled, destructive, and dialog-dismiss buttons visually distinct. */
.icon-button:not(:disabled):not([aria-disabled="true"]):not(.disabled):not(.danger):not(.danger-outline):not(.button-danger):not(.destructive):not(.provider-remove-icon):not(.dialog-close) {
    border-color: var(--accent);
    color: var(--accent);
    background-color: var(--panel, #fff);
}
.icon-button:not(:disabled):not([aria-disabled="true"]):not(.disabled):not(.danger):not(.danger-outline):not(.button-danger):not(.destructive):not(.provider-remove-icon):not(.dialog-close):hover {
    border-color: var(--accent);
    color: var(--accent);
    background-color: var(--accent2);
}
.icon-button:disabled,
.icon-button[aria-disabled="true"],
.icon-button.disabled {
    border-color: var(--surface-border, #d8dee7);
    color: var(--muted);
}

.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 620px) {
    .payment-record-summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .payment-reversal-row {
        align-items: stretch;
        flex-direction: column;
    }

    .payment-reversal-row button {
        width: 100%;
    }
}


/* Collapsible client administration sections. */
.collapsible-section {
    padding: 0;
    overflow: hidden;
}

.collapsible-section__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 18px 22px;
    cursor: pointer;
    user-select: none;
    list-style: none;
}

.collapsible-section__summary::-webkit-details-marker {
    display: none;
}

.collapsible-section__summary > span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.collapsible-section__summary strong {
    font-size: 18px;
    line-height: 1.3;
}

.collapsible-section__summary small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
}

.collapsible-section__summary::after {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .18s ease;
    flex: 0 0 auto;
    margin-right: 3px;
    color: var(--accent);
}

.collapsible-section[open] .collapsible-section__summary::after {
    transform: rotate(225deg);
    margin-top: 5px;
}

.collapsible-section__summary:hover {
    background: var(--control-hover-bg,var(--accent2));
}

.collapsible-section__summary:focus-visible {
    outline: 3px solid var(--control-focus-ring,var(--accent2));
    outline-offset: -3px;
}

.collapsible-section__body {
    padding: 18px 22px 22px;
    border-top: 1px solid var(--line);
}

.collapsible-section__body > :first-child {
    margin-top: 0;
}


/* Client show title with compact inline edit action. */
.client-show-title {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.client-show-title h1 {
    margin-right: 0;
}

.client-show-title .icon-button {
    width: 32px;
    height: 32px;
    min-width: 32px;
    flex: 0 0 auto;
}

/* Compact inline edit icon beside client names, when used on client lists. */
.client-name-with-action {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.client-name-link {
    font-weight: 600;
}

.client-name-with-action .icon-button {
    width: 30px;
    height: 30px;
    min-width: 30px;
    flex: 0 0 auto;
}

@media (max-width: 620px) {
    .collapsible-section__summary {
        padding: 15px 16px;
    }

    .collapsible-section__body {
        padding: 15px 16px 18px;
    }
}


/* Compact client header contact/status treatment. */
.client-pagehead {
    padding: 12px 14px;
    border: 1px solid transparent;
    border-radius: 16px;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.client-pagehead--inactive {
    background: #f2eff0;
    border-color: #ddd4d8;
}

.client-pagehead--inactive .client-show-title h1,
.client-pagehead--inactive .client-contact,
.client-pagehead--inactive .eyebrow {
    color: #81777c;
}

.client-contact {
    display: flex;
    flex-direction: column;
    gap: .08rem;
    margin-top: .25rem;
    line-height: 1.35;
}

/* Physical paper-form number: quiet metadata immediately above Client status. */
.client-form-number {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    width: min(100%, 260px);
    min-height: 30px;
    margin-top: .55rem;
    padding-top: .5rem;
    border-top: 1px solid rgba(117, 108, 116, .16);
}
.client-form-number__label {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.client-form-number__value {
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
    overflow-wrap: anywhere;
    text-align: right;
}
.client-form-number__value.is-unassigned {
    color: var(--muted);
    font-weight: 400;
}
.client-form-number + .client-status-inline {
    margin-top: .1rem;
}
.client-form-number-help {
    display: block;
    margin-top: 5px;
    font-size: 11px;
    color: var(--muted);
}

.client-status-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: min(100%, 260px);
    margin-top: .55rem;
    padding-top: .5rem;
    border-top: 1px solid rgba(117, 108, 116, .16);
}

.client-status-inline__label {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.client-status-switch {
    position: relative;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    width: 44px;
    height: 24px;
    min-width: 44px;
    cursor: pointer;
}

.client-status-switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    opacity: 0;
    overflow: hidden;
}

.client-status-switch__track {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: #c8c0c4;
    box-shadow: inset 0 0 0 1px rgba(47, 39, 48, .08);
    transition: background-color .18s ease, box-shadow .18s ease;
}

.client-status-switch__track::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(47, 39, 48, .22);
    transition: transform .18s ease;
}

.client-status-switch input:checked + .client-status-switch__track {
    background: var(--ok);
}

.client-status-switch input:checked + .client-status-switch__track::after {
    transform: translateX(20px);
}

.client-status-switch input:focus-visible + .client-status-switch__track {
    outline: 3px solid var(--control-focus-ring,var(--accent2));
    outline-offset: 3px;
}

.client-status-switch:hover .client-status-switch__track {
    box-shadow: inset 0 0 0 1px var(--control-hover-border,var(--accent)), 0 0 0 3px var(--control-focus-ring,var(--accent2));
}

@media (max-width: 620px) {
    .client-pagehead {
        width: 100%;
    }

    .client-status-inline,
    .client-form-number {
        width: 100%;
        max-width: 300px;
    }
}

/* Client history: timestamped invoices, polished status pills and compact document types. */
.client-history-table td,
.client-documents-table td {
    vertical-align: middle;
}

.invoice-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 26px;
    padding: 4px 9px;
    border: 1px solid #e5dde0;
    border-radius: 999px;
    background: #f5f1f3;
    color: #625960;
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
}

.invoice-status-pill__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    opacity: .8;
}

.invoice-status-pill--paid {
    border-color: #cce4d8;
    background: #e8f5ee;
    color: var(--ok);
}

.invoice-status-pill--part_paid {
    border-color: #ecd69f;
    background: #fff4dd;
    color: var(--warn);
}

.invoice-status-pill--finalized {
    border-color: #d7ddea;
    background: #eef1f8;
    color: #52627f;
}

.invoice-status-pill--cancelled {
    border-color: #ebc8cc;
    background: #fae9eb;
    color: var(--danger);
}

.invoice-status-pill--draft {
    border-color: #e3dde0;
    background: #f4f1f2;
    color: #756c74;
}

.document-type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid #ddcfd5;
    border-radius: 9px;
    background: var(--accent2);
    color: var(--accent);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
}

.document-reference {
    font-variant-numeric: tabular-nums;
}

.document-actions-head,
.document-actions-cell {
    width: 54px;
    text-align: right;
    white-space: nowrap;
}

.document-actions-cell .icon-button,
.document-actions-cell .document-state-icon {
    margin-left: auto;
}

.document-state-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    color: #81777c;
    background: #f4f1f2;
    border: 1px solid #e3dde0;
}

.document-state-icon svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.document-state-icon--pending {
    color: var(--warn);
    background: #fff4dd;
    border-color: #ecd69f;
}

.document-state-icon--failed {
    color: var(--danger);
    background: #fae9eb;
    border-color: #ebc8cc;
}

/* Global form-control alignment and select styling.
   Keep text-like inputs and dropdowns level with one another across browsers. */
input:not([type]),
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
select {
    min-height: 44px;
    line-height: 1.25;
}

select {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    padding: 10px 40px 10px 12px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23756c74' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px 16px;
}

select:hover:not(:disabled) {
    border-color: var(--control-hover-border,var(--accent));
}

select:disabled {
    cursor: not-allowed;
    background-color: #f6f1f3;
    color: var(--muted);
}

/* Native multi-select/list boxes should not show the single-select chevron. */
select[multiple],
select[size]:not([size="1"]) {
    height: auto;
    min-height: 96px;
    padding-right: 11px;
    background-image: none;
    cursor: default;
}

/* Keep compact controls compact horizontally while matching neighbouring height. */
.money-compact,
.discount-value,
.service-picker .service-select {
    min-height: 44px;
}

/* Sectioned client create/edit form: Option B.
   Scoped to the client form so boxed controls elsewhere in the portal are unchanged. */
.client-form-pagehead {
    align-items: flex-start;
    margin-bottom: 22px;
}

.client-form-intro {
    max-width: 690px;
    margin: 8px 0 0;
    font-size: 13px;
}

.client-profile-form {
    display: grid;
    gap: 18px;
    max-width: 980px;
}

.client-form-section {
    position: relative;
    overflow: hidden;
    padding: 24px 26px 26px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(70, 47, 57, .04);
}

.client-form-section__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f0e8eb;
}

.client-form-section__heading h2 {
    margin: 2px 0 3px;
    font-size: 18px;
    line-height: 1.25;
    letter-spacing: -.01em;
}

.client-form-section__heading p:not(.client-form-section__eyebrow) {
    max-width: 620px;
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
}

.client-form-section__eyebrow {
    margin: 0;
    color: var(--accent);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.client-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 38px;
    row-gap: 25px;
}

.client-form-span-2 {
    grid-column: 1 / -1;
}

.underline-field {
    display: block;
    min-width: 0;
    gap: 0;
}

.underline-field__label {
    display: block;
    margin-bottom: 3px;
    color: #665a61;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .02em;
}

.required-mark {
    color: var(--accent);
    font-size: 12px;
}

.client-profile-form .underline-field input,
.client-profile-form .underline-field select,
.client-profile-form .underline-field textarea {
    width: 100%;
    margin: 0;
    padding: 8px 30px 8px 0;
    border: 0;
    border-bottom: 1px solid #cfc1c7;
    border-radius: 0;
    outline: 0;
    background-color: transparent;
    color: var(--ink);
    box-shadow: none;
    font-size: 15px;
    font-weight: 500;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.client-profile-form .underline-field input,
.client-profile-form .underline-field select {
    min-height: 42px;
}

.client-profile-form .underline-field textarea {
    min-height: 100px;
    padding-top: 10px;
    padding-right: 0;
    resize: vertical;
    line-height: 1.55;
}

.client-profile-form .underline-field input:hover,
.client-profile-form .underline-field select:hover,
.client-profile-form .underline-field textarea:hover {
    border-bottom-color: var(--control-hover-border,var(--accent));
}

.client-profile-form .underline-field input:focus,
.client-profile-form .underline-field select:focus,
.client-profile-form .underline-field textarea:focus {
    border-bottom-color: var(--accent);
    box-shadow: 0 1px 0 var(--accent);
    outline: 0;
}

.client-profile-form .underline-field input::placeholder,
.client-profile-form .underline-field textarea::placeholder {
    color: #a59ba0;
}

.client-profile-form .underline-field select {
    background-color: transparent;
    background-position: right 4px center;
}

.client-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 4px 0 2px;
}

.client-form-actions .button,
.client-form-actions button {
    min-height: 42px;
    padding-inline: 17px;
}

@media (max-width: 720px) {
    .client-form-section {
        padding: 20px 18px 22px;
        border-radius: 15px;
    }

    .client-form-grid {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 22px;
    }

    .client-form-span-2 {
        grid-column: auto;
    }

    .client-form-section__heading {
        margin-bottom: 20px;
    }
}

@media (max-width: 480px) {
    .client-profile-form {
        gap: 14px;
    }

    .client-form-section {
        padding: 18px 15px 20px;
    }

    .client-form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .client-form-actions .button,
    .client-form-actions button {
        width: 100%;
    }
}

/* Audit history — human-readable activity presentation */
.audit-pagehead{align-items:center}.audit-result-count{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.audit-result-count strong{font-size:24px;font-variant-numeric:tabular-nums}.audit-result-count span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.audit-filterbar{display:grid;grid-template-columns:minmax(220px,2fr) minmax(175px,1fr) minmax(155px,.8fr) minmax(155px,.8fr) auto auto;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;margin-bottom:20px}.audit-filterbar label{min-width:0}.audit-filterbar input,.audit-filterbar select{min-height:42px}.audit-card{padding:0;overflow:hidden}.audit-table{min-width:1020px}.audit-table th{padding-top:14px;padding-bottom:14px;background:#fcf9fa}.audit-table td{padding-top:15px;padding-bottom:15px;vertical-align:top}.audit-table th:first-child,.audit-table td:first-child{padding-left:18px}.audit-table th:last-child,.audit-table td:last-child{padding-right:18px}.audit-time-cell{width:170px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#574e53}.audit-person{font-weight:700}.audit-action{display:inline-flex;align-items:center;gap:8px;font-weight:720;line-height:1.3}.audit-action__icon{width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:#f2edef;color:#665b61;flex:0 0 auto}.audit-action__icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.audit-action--create .audit-action__icon,.audit-action--payment .audit-action__icon{background:#e8f4ed;color:#2f7658}.audit-action--invoice .audit-action__icon,.audit-action--document .audit-action__icon{background:#edf1f8;color:#486187}.audit-action--update .audit-action__icon,.audit-action--settings .audit-action__icon{background:#f5e9ed;color:#7b4d5e}.audit-action--status .audit-action__icon,.audit-action--backup .audit-action__icon{background:#fff3dc;color:#806020}.audit-action--email .audit-action__icon{background:#efeafd;color:#675393}.audit-action--danger .audit-action__icon{background:#f9e3e5;color:var(--danger)}.audit-entity-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:2px}.audit-entity-reference{display:block;font-weight:700;max-width:230px;overflow-wrap:anywhere}.audit-summary-cell{min-width:310px}.audit-summary{color:#4f454b;line-height:1.5}.audit-disclosure{margin-top:7px}.audit-disclosure>summary,.audit-technical>summary{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:12px;font-weight:750;cursor:pointer;list-style:none}.audit-disclosure>summary::-webkit-details-marker,.audit-technical>summary::-webkit-details-marker{display:none}.audit-disclosure>summary::before,.audit-technical>summary::before{content:'›';display:inline-block;font-size:16px;line-height:1;transition:transform .15s ease}.audit-disclosure[open]>summary::before,.audit-technical[open]>summary::before{transform:rotate(90deg)}.audit-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:13px 0 5px;padding:13px 14px;border:1px solid #eee4e8;border-radius:12px;background:#fdfafb}.audit-detail-grid>div,.audit-technical-grid>div{min-width:0}.audit-detail-grid dt,.audit-technical-grid dt{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800;margin-bottom:2px}.audit-detail-grid dd,.audit-technical-grid dd{margin:0;font-size:13px;font-weight:650;overflow-wrap:anywhere}.audit-technical{margin-top:10px;padding-top:10px;border-top:1px dashed #dfd4d8}.audit-technical>summary{color:#746970;font-weight:700}.audit-technical-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;margin:12px 0}.audit-technical-grid code{font-size:11px}.audit-json-label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:800;margin:12px 0 5px}.audit-json{margin:0;max-height:240px;overflow:auto;padding:12px;border-radius:10px;background:#2f2930;color:#f7eef1;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.audit-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:54px 20px;color:var(--muted)}.audit-empty strong{color:var(--ink);font-size:17px;margin-bottom:4px}.audit-retention-note{margin:-6px 4px 20px;color:var(--muted);font-size:12px}.audit-row:has(.audit-disclosure[open]){background:#fffdfd}
@media(max-width:1000px){.audit-filterbar{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-search-field{grid-column:1/-1}.audit-filterbar button,.audit-filterbar>.button{min-height:42px}}
@media(max-width:620px){.audit-pagehead{gap:12px}.audit-result-count{align-items:flex-start}.audit-filterbar{grid-template-columns:1fr}.audit-search-field{grid-column:auto}.audit-filterbar button,.audit-filterbar>.button{width:100%}.audit-card{margin-left:-2px;margin-right:-2px}.audit-detail-grid,.audit-technical-grid{grid-template-columns:1fr}}

/* Client invoice history: merge invoice + final document into one operational table. */
.client-invoices-section__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.client-invoices-section__header h2 {
    margin-bottom: 3px;
}

.client-invoices-section__header p {
    margin: 0;
}

.client-invoice-download-all {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    white-space: nowrap;
}

.client-invoice-download-all svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.button.is-disabled,
.client-invoice-download-all.is-disabled {
    opacity: .55;
    cursor: not-allowed;
    pointer-events: none;
}

.client-invoice-document-table {
    min-width: 920px;
}

.client-history-primary {
    min-width: 185px;
}

.client-history-primary > a,
.client-history-primary > .document-reference {
    display: inline-block;
    color: var(--text);
    font-weight: 720;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
}

.client-history-primary > a:hover {
    color: var(--accent);
}

.client-history-primary small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 520;
    line-height: 1.35;
    white-space: nowrap;
}

.client-history-document {
    min-width: 210px;
}

.client-history-unavailable {
    color: #9a9095;
    font-weight: 700;
}

.client-history-balance {
    font-weight: 700;
}

.client-history-balance--open {
    color: #8a5f1f;
}

.client-invoice-actions {
    width: 104px;
    min-width: 104px;
    text-align: right;
}

.client-invoice-actions .icon-button,
.client-invoice-actions .client-invoice-email-form {
    display: inline-flex;
    vertical-align: middle;
    margin-left: 5px;
}

.client-invoice-actions .icon-button {
    margin-right: 0;
}

.client-invoice-email-form {
    margin: 0;
}

.client-invoice-email-form button {
    margin: 0;
}

.client-history-no-actions {
    display: inline-block;
    min-width: 38px;
    text-align: center;
}

.client-history-empty {
    padding: 28px 18px !important;
    text-align: center;
}

@media (max-width: 760px) {
    .client-invoices-section__header {
        align-items: stretch;
        flex-direction: column;
    }

    .client-invoice-download-all {
        width: 100%;
    }
}

/* Client DOB/category and invoice-action refinements. */
.client-dob-field{display:flex;gap:12px;align-items:end;min-width:0}
.client-dob-field>.underline-field{flex:1;min-width:0}
.client-age-pill{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-width:65px;border:1px solid var(--line);border-radius:999px;padding:6px 9px;margin-bottom:5px;font-size:11px;font-weight:800;letter-spacing:.04em;background:#f0ebed;color:#70636a}
.client-age-pill.is-adult{background:#e4f3eb;color:var(--ok);border-color:#d1e7d9}
.client-age-pill.is-child{background:#fff2d9;color:var(--warn);border-color:#eedeb9}
.client-dob-display{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.client-dob-display .client-age-pill{margin:0}
.client-invoice-filter{display:flex;align-items:flex-end;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.client-invoice-filter label{display:flex;flex-direction:column;min-width:170px;max-width:290px;flex:0 1 250px}
.client-invoice-filter button{height:42px;white-space:nowrap}
.client-service-actions{display:inline-flex;gap:6px;align-items:center;flex-wrap:nowrap}
.client-service-actions .icon-button{width:34px;height:34px;min-width:34px;border-radius:9px}
.client-service-actions .icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:520px){.client-invoice-filter label{flex:1 1 100%;max-width:none}.client-dob-field{flex-wrap:wrap}}
