:root {
    /* Shared readable type and spacing; preserve the user's root font preference. */
    --font-caption: .875rem;
    --font-label: .9375rem;
    --font-body: 1rem;
    --font-lead: 1.125rem;
    --font-section: 1.25rem;
    --font-title-small: 1.5rem;
    --font-title: 1.75rem;
    --font-title-large: 2rem;
    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-12: 3rem;
    --bg: #edf2f8;
    --bg-strong: #dde8f6;
    --surface: #ffffff;
    --surface-soft: #f7f9fc;
    --surface-strong: #0f172a;
    --surface-tint: #f3f7ff;
    --text: #172033;
    --text-strong: #0f172a;
    --muted: #52627a;
    --text-muted: var(--muted);
    --ink-800: #23324a;
    --line: #d7e0ed;
    --line-strong: #c4d1e4;
    --accent: #1f5eff;
    --accent-strong: #174ac9;
    --accent-soft: #e7efff;
    --accent-ink: #1744b3;
    --accent-soft-strong: rgba(31, 94, 255, 0.16);
    --warning: #f59e0b;
    --warning-soft: rgba(245, 158, 11, 0.18);
    --danger: #dc2626;
    --danger-soft: rgba(220, 38, 38, 0.16);
    --success: #059669;
    --success-soft: rgba(5, 150, 105, 0.18);
    --shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
    --shadow-soft: 0 4px 16px rgba(15, 23, 42, 0.05);
    --radius: 16px;
    --sidebar-width: 264px;
    --sidebar-width-mobile: min(86vw, 320px);
    --content-max: 1520px;
    --font-sans: "Aptos", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
    --font-display: "Aptos Display", "Aptos", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;
    color-scheme: light;
    font-family: var(--font-sans);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-size: var(--font-body);
    line-height: 1.5;
}

small {
    font-size: var(--font-caption);
}

button,
input,
select,
textarea {
    font-family: inherit;
}

.auth-body button {
    min-width: 44px;
    min-height: 44px;
    font-size: var(--font-label);
}

.auth-body :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
    min-width: 0;
    min-height: 44px;
    max-width: 100%;
    font-size: var(--font-body);
    line-height: 1.5;
}

summary {
    min-height: 44px;
    padding-block: var(--space-2);
    cursor: pointer;
}

:where(h1, h2, h3) {
    line-height: 1.25;
    overflow-wrap: anywhere;
}

:where(p, dd, li, label, button, a) {
    overflow-wrap: anywhere;
}

.auth-body :focus-visible {
    outline: 3px solid var(--accent-strong);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Insured IBAN photo recognition */
.auth-body[data-route="collection/link"] .fp-iban-field {
    gap: 10px;
}

.auth-body[data-route="collection/link"] .fp-iban-field-heading {
    display: grid;
    gap: 4px;
}

.auth-body[data-route="collection/link"] .fp-iban-field-heading > span {
    color: #10223f;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-iban-field-heading p {
    margin: 0;
    color: #42536c;
    font-size: var(--font-body);
    font-weight: 600;
    line-height: 1.45;
}

.auth-body[data-route="collection/link"] .fp-iban-photo-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    min-height: 46px;
    border: 2px solid #1f6feb;
    border-radius: 11px;
    background: #fff;
    color: #1559bd;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    cursor: pointer;
}

.auth-body[data-route="collection/link"] .fp-iban-photo-open svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

.auth-body[data-route="collection/link"] .fp-iban-photo-open:hover {
    background: #f0f6ff;
}

.auth-body[data-route="collection/link"] .fp-iban-photo-open:focus-visible,
.auth-body[data-route="collection/link"] .fp-iban-photo-dialog button:focus-visible,
.auth-body[data-route="collection/link"] .fp-iban-photo-dialog input:focus-visible {
    outline: 3px solid rgba(31, 111, 235, 0.24);
    outline-offset: 2px;
}

.auth-body[data-route="collection/link"] .fp-iban-divider {
    display: grid;
    grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr);
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.auth-body[data-route="collection/link"] .fp-iban-divider::before,
.auth-body[data-route="collection/link"] .fp-iban-divider::after {
    height: 1px;
    background: #d6e0eb;
    content: "";
}

.auth-body[data-route="collection/link"] .fp-iban-photo-privacy {
    padding-left: 21px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%235f7189' d='M12 2a5 5 0 0 0-5 5v2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-2V7a5 5 0 0 0-5-5Zm-3 7V7a3 3 0 0 1 6 0v2H9Zm3 4a2 2 0 0 1 1 3.73V19h-2v-2.27A2 2 0 0 1 12 13Z'/%3E%3C/svg%3E") no-repeat left 1px / 15px 15px;
}

.fp-iban-photo-modal[hidden],
.fp-iban-photo-modal [hidden] {
    display: none !important;
}

.fp-iban-photo-modal {
    position: fixed;
    z-index: 1200;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 12px;
}

.fp-iban-photo-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(8, 25, 50, 0.62);
}

.fp-iban-photo-dialog {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    max-height: calc(100dvh - 24px);
    overflow: auto;
    border: 1px solid #d8e2ee;
    border-radius: 22px;
    background: #f8fbff;
    box-shadow: 0 26px 70px rgba(6, 27, 55, 0.28);
}

.fp-iban-photo-dialog-head {
    position: sticky;
    z-index: 3;
    top: 0;
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    align-items: center;
    min-height: 66px;
    padding: 8px 14px;
    border-bottom: 1px solid #dce5ef;
    background: rgba(255, 255, 255, 0.96);
}

.fp-iban-photo-dialog-head h2 {
    grid-column: 2;
    margin: 0;
    color: #0a1d3b;
    font-size: var(--font-section);
    font-weight: 700;
    text-align: center;
}

.fp-iban-photo-close {
    grid-column: 1;
    grid-row: 1;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #d6e0eb;
    border-radius: 50%;
    background: #fff;
    color: #17365f;
    cursor: pointer;
}

.fp-iban-photo-close svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.fp-iban-photo-camera,
.fp-iban-photo-review {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.fp-iban-photo-camera > strong {
    color: #10223f;
    font-size: var(--font-body);
    font-weight: 700;
    text-align: center;
}

.fp-iban-camera-stage {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 17px;
    background: linear-gradient(145deg, #e7ebef, #cfd7df);
}

.fp-iban-camera-stage video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fp-iban-camera-placeholder {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #65758b;
}

.fp-iban-camera-placeholder svg {
    width: 62px;
    height: 62px;
    fill: currentColor;
    opacity: 0.62;
}

.fp-iban-camera-guide {
    position: absolute;
    inset: 34% 5%;
    display: flex;
    align-items: flex-start;
    border: 3px solid rgba(255, 255, 255, 0.96);
    border-radius: 14px;
    box-shadow: 0 0 0 999px rgba(11, 30, 54, 0.14), 0 4px 18px rgba(0, 0, 0, 0.18);
}

.fp-iban-camera-guide span {
    margin: 7px 9px;
    padding: 3px 7px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.92);
    color: #17365f;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-iban-camera-loading {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: grid;
    place-content: center;
    gap: 9px;
    padding: 24px;
    background: rgba(248, 251, 255, 0.94);
    color: #10223f;
    text-align: center;
}

.fp-iban-camera-loading .fp-loader {
    justify-self: center;
}

.fp-iban-camera-loading small {
    color: #5f6f84;
    line-height: 1.45;
}

.fp-iban-photo-camera > p {
    margin: 0;
    color: #4c5e76;
    font-size: var(--font-body);
    font-weight: 650;
    line-height: 1.45;
    text-align: center;
}

.fp-iban-camera-status[data-state="error"] {
    color: #a1281d;
    font-weight: 700;
}

.fp-iban-shutter {
    display: grid;
    place-items: center;
    justify-self: center;
    width: 78px;
    height: 78px;
    border: 4px solid #fff;
    border-radius: 50%;
    background: #1f6feb;
    color: #fff;
    box-shadow: 0 0 0 2px #1f6feb, 0 8px 20px rgba(31, 111, 235, 0.24);
    cursor: pointer;
}

.fp-iban-shutter:disabled {
    opacity: 0.45;
    cursor: wait;
}

.fp-iban-shutter svg {
    width: 34px;
    height: 34px;
    fill: currentColor;
}

.fp-iban-gallery-action {
    width: 100%;
}

.fp-iban-photo-camera > input.fp-file-native {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.fp-iban-success {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid #b9e2c0;
    border-radius: 999px;
    background: #eefbf0;
    color: #17722c;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-iban-success svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.fp-iban-review-preview {
    aspect-ratio: 3 / 1;
    overflow: hidden;
    border: 1px solid #d5dfe9;
    border-radius: 14px;
    background: #edf2f7;
}

.fp-iban-review-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fp-iban-photo-review .fp-field {
    margin: 0;
    padding: 14px;
    border: 1px solid #dce5ef;
    border-radius: 15px;
    background: #fff;
}

.fp-iban-photo-review input {
    letter-spacing: 0.02em;
}

.fp-iban-review-error {
    margin: -4px 0 0;
    color: #a1281d;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-iban-photo-retention-note {
    color: #5f6f84;
    font-size: var(--font-caption);
    font-weight: 650;
    text-align: center;
}

body.fp-iban-modal-open {
    overflow: hidden;
}

@media (max-width: 520px) {
    .fp-iban-photo-modal {
        padding: 0;
    }

    .fp-iban-photo-dialog {
        width: 100%;
        min-height: 100dvh;
        max-height: 100dvh;
        border: 0;
        border-radius: 0;
    }

    .fp-iban-photo-camera,
    .fp-iban-photo-review {
        padding: 18px;
    }
}



/* Notification center v1 */
.ce-account-mobile-notifications {
    position: relative;
    display: inline-grid !important;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border: 1px solid #cbd8ea;
    border-radius: 12px;
    background: #f4f7fc;
    color: #174b99 !important;
}
.ce-account-mobile-notifications strong {
    position: absolute;
    top: -5px;
    right: -5px;
    display: grid;
    min-width: 20px;
    height: 20px;
    place-items: center;
    border: 2px solid #fff;
    border-radius: 999px;
    padding: 0 4px;
    background: #d92d20;
    color: #fff;
    font-size: var(--font-caption);
    line-height: 1.2;
}
.ce-notifications {
    display: grid;
    width: min(1080px, 100%);
    gap: 22px;
    margin: 0 auto;
}
.ce-notifications-hero {
    position: relative;
    display: flex;
    overflow: hidden;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    border: 1px solid #dbe5f2;
    border-radius: 24px;
    padding: clamp(24px, 4vw, 40px);
    background:
        radial-gradient(circle at 92% 8%, rgba(99, 149, 255, .2), transparent 34%),
        linear-gradient(135deg, #f8fbff 0%, #edf4ff 100%);
    box-shadow: 0 20px 46px rgba(28, 55, 96, .09);
}
.ce-notifications-hero > div {
    position: relative;
    max-width: 680px;
}
.ce-notifications-hero h1 {
    margin: 8px 0 10px;
    color: #10213e;
    font-size: clamp(30px, 5vw, 48px);
    letter-spacing: -.045em;
    line-height: 1.2;
}
.ce-notifications-hero p {
    max-width: 620px;
    margin: 0;
    color: #596b84;
    font-size: var(--font-body);
    line-height: 1.65;
}
.ce-notifications-read-all,
.ce-notification-open,
.ce-notification-read {
    min-height: 42px;
    border-radius: 12px;
    padding: 10px 16px;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    cursor: pointer;
    transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}
.ce-notifications-read-all,
.ce-notification-open {
    border: 1px solid #1d5bb9;
    background: #1d5bb9;
    color: #fff;
    box-shadow: 0 9px 20px rgba(29, 91, 185, .2);
}
.ce-notifications-read-all:hover,
.ce-notifications-read-all:focus-visible,
.ce-notification-open:hover,
.ce-notification-open:focus-visible {
    background: #154a99;
    transform: translateY(-1px);
}
.ce-notifications-filters {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    border: 1px solid #dbe5f2;
    border-radius: 18px;
    padding: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(28, 55, 96, .06);
}
.ce-notifications-filter {
    display: flex;
    min-width: 0;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-radius: 12px;
    padding: 10px 12px;
    color: #596b84;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}
.ce-notifications-filter strong {
    display: grid;
    min-width: 25px;
    height: 25px;
    place-items: center;
    border-radius: 999px;
    padding: 0 6px;
    background: #edf2f8;
    color: #42526b;
    font-size: var(--font-caption);
}
.ce-notifications-filter:hover,
.ce-notifications-filter:focus-visible {
    background: #f2f6fc;
    color: #174b99;
}
.ce-notifications-filter.is-active {
    background: #e9f1ff;
    color: #164a9a;
}
.ce-notifications-filter.is-active strong {
    background: #1d5bb9;
    color: #fff;
}
.ce-notifications-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.ce-notification-card {
    position: relative;
    display: grid;
    grid-template-columns: 5px minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #dbe5f2;
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow-soft);
}
.ce-notification-card.is-unread {
    border-color: #aac7f3;
    box-shadow: var(--shadow-soft);
}
.ce-notification-card.is-actionable { background: linear-gradient(90deg, #fffaf0 0, #fff 22%); }
.ce-notification-card.is-resolved {
    opacity: .76;
}
.ce-notification-marker {
    background: #7890ad;
}
.ce-notification-card.is-attention .ce-notification-marker {
    background: #f79009;
}
.ce-notification-card.is-urgent .ce-notification-marker {
    background: #d92d20;
}
.ce-notification-card.is-info .ce-notification-marker {
    background: #2e72d2;
}
.ce-notification-content {
    min-width: 0;
    padding: 20px 22px;
}
.ce-notification-group-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.ce-notification-group-head > strong { margin-right: auto; color: #43556f; font-size: var(--font-caption); }
.ce-notification-state { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: var(--font-caption); font-weight: 700; }
.ce-notification-state.is-unread { background: #e8f0ff; color: #174ea6; }
.ce-notification-state.is-actionable { background: #fff0dc; color: #8a4b00; }
.ce-notification-events { display: grid; }
.ce-notifications-reading-hint { max-width: 860px; margin: 0; padding: 0 0 4px; color: #4c5c70; font-size: 14px; line-height: 1.55; }
.ce-notifications-reading-hint strong { color: #263e5d; }
.ce-notification-reading { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 9px; font-size: 12px; font-weight: 650; line-height: 1.5; }
.ce-notification-reading .is-unread { color: #194e92; }
.ce-notification-reading .is-read, .ce-notification-reading .is-archived { color: #546173; }
.ce-notification-reading .is-archived { border-left: 1px solid #b7c2cf; padding-left: 12px; }
.ce-notification-event { min-width: 0; border-top: 1px solid #e5ebf3; padding: 18px 0; }
.ce-notification-event:first-child { border-top: 0; }
.ce-notification-event.is-unread { position: relative; }
.ce-notification-event.is-unread::before { position: absolute; top: 22px; left: -13px; width: 6px; height: 6px; border-radius: 50%; background: #175cd3; content: ''; }
.ce-notification-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    color: #77869c;
    font-size: var(--font-caption);
    font-weight: 700;
}
.ce-notification-meta time {
    margin-left: auto;
}
.ce-notification-kind {
    border-radius: 999px;
    padding: 5px 9px;
    background: #eef2f7;
    color: #4d6079;
    font-weight: 700;
}
.ce-notification-kind.is-action {
    background: #fff0dc;
    color: #9b4a00;
}
.ce-notification-kind.is-deadline {
    background: #fee4e2;
    color: #b42318;
}
.ce-notification-kind.is-update {
    background: #e8f0ff;
    color: #174ea6;
}
.ce-notification-content h2 {
    margin: 14px 0 6px;
    color: #10213e;
    font-size: var(--font-lead);
    letter-spacing: -.015em;
    line-height: 1.3;
}
.ce-notification-event > p {
    max-width: 780px;
    margin: 0;
    color: #5e6e84;
    font-size: var(--font-body);
    line-height: 1.6;
}
.ce-notification-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 16px;
}
.ce-notification-actions form {
    margin: 0;
}
.ce-notification-read {
    border: 1px solid #ccd8e8;
    background: #fff;
    color: #40516a;
}
.ce-notification-read:hover,
.ce-notification-read:focus-visible {
    border-color: #91acd0;
    background: #f4f7fc;
}
.ce-notifications-empty {
    display: grid;
    min-height: 300px;
    place-items: center;
    align-content: center;
    border: 1px dashed #c7d5e7;
    border-radius: 22px;
    padding: 38px 22px;
    background: #f9fbfe;
    text-align: center;
}
.ce-notifications-empty-icon {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border-radius: 18px;
    background: #e9f1ff;
    color: #1d5bb9;
}
.ce-notifications-empty-icon svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}
.ce-notifications-empty h2 {
    margin: 18px 0 6px;
    color: #10213e;
    font-size: var(--font-section);
}
.ce-notifications-empty p {
    max-width: 520px;
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}
@media (max-width: 980px) {
    .ce-account-mobilebar {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }
    .ce-notifications-filters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 680px) {
    .ce-account-mobilebar > span {
        display: none;
    }
    .ce-account-mobilebar {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .ce-notifications {
        gap: 16px;
    }
    .ce-notifications-hero {
        align-items: flex-start;
        flex-direction: column;
        border-radius: 19px;
    }
    .ce-notifications-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ce-notification-content {
        padding: 18px 16px;
    }
    .ce-notification-meta time {
        width: 100%;
        margin-left: 0;
    }
    .ce-notification-actions,
    .ce-notification-actions form,
    .ce-notification-actions button {
        width: 100%;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ce-notifications-read-all,
    .ce-notification-open,
    .ce-notification-read {
        transition: none;
    }
}

/* Claim Evidence billing: public studio-buyer onboarding and administrator invitation */
.auth-body[data-route="billing/studio"],
.auth-body[data-route="billing/checkout"],
.auth-body[data-route="billing/checkout-result"],
.auth-body[data-route="billing/admin-invitation"] {
    display: block;
    padding: 0;
    background: #eef3f9;
    color: #071333;
}

.auth-body[data-route="billing/studio"] .auth-shell,
.auth-body[data-route="billing/checkout"] .auth-shell,
.auth-body[data-route="billing/checkout-result"] .auth-shell,
.auth-body[data-route="billing/admin-invitation"] .auth-shell {
    width: 100%;
}

.auth-body[data-route="billing/studio"] .site-footer,
.auth-body[data-route="billing/checkout"] .site-footer,
.auth-body[data-route="billing/checkout-result"] .site-footer,
.auth-body[data-route="billing/admin-invitation"] .site-footer {
    display: none;
}

.ce-billing-shell {
    --ce-blue: #123d8d;
    --ce-blue-dark: #09265e;
    --ce-ink: #071333;
    --ce-muted: #5c6b82;
    --ce-line: #d7e1ee;
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 0%, rgba(53, 112, 223, 0.18), transparent 31rem),
        radial-gradient(circle at 96% 22%, rgba(31, 186, 146, 0.12), transparent 27rem),
        linear-gradient(145deg, #f9fbfe 0%, #edf3fa 58%, #e8eef7 100%);
    color: var(--ce-ink);
    font-family: var(--font-sans);
}

.ce-billing-shell * {
    box-sizing: border-box;
}

.ce-billing-topbar {
    display: flex;
    min-height: 74px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0 clamp(20px, 5vw, 72px);
    border-bottom: 1px solid rgba(178, 194, 216, 0.68);
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(18px);
}

.ce-billing-brand {
    display: inline-flex;
    align-items: center;
    color: var(--ce-blue-dark);
    text-decoration: none;
}

.ce-billing-brand img {
    width: 176px;
    height: auto;
    background: transparent;
    object-fit: contain;
}

.ce-billing-login {
    color: var(--ce-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.ce-billing-login:hover,
.ce-billing-login:focus-visible {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.ce-billing-main {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    gap: clamp(32px, 6vw, 88px);
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: clamp(48px, 7vw, 92px) 0 72px;
    align-items: center;
}

.ce-billing-intro {
    display: grid;
    gap: 22px;
}

.ce-billing-eyebrow {
    width: max-content;
    max-width: 100%;
    border: 1px solid rgba(18, 61, 141, 0.14);
    border-radius: 999px;
    padding: 8px 13px;
    background: rgba(231, 239, 255, 0.9);
    color: var(--ce-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ce-billing-intro h1,
.ce-billing-result-card h1 {
    margin: 0;
    color: var(--ce-blue-dark);
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1.2;
    letter-spacing: -0.045em;
}

.ce-billing-intro > p,
.ce-billing-result-card > p {
    margin: 0;
    color: var(--ce-muted);
    font-size: clamp(16px, 1.7vw, 19px);
    line-height: 1.68;
}

.ce-billing-benefits {
    display: grid;
    gap: 13px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.ce-billing-benefits li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    color: #2d3c55;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.5;
}

.ce-billing-benefits li span {
    display: grid;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 999px;
    background: #dff7ed;
    color: #087856;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-billing-mode {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    align-items: center;
    gap: 9px;
    border: 1px solid #f0dca5;
    border-radius: 10px;
    padding: 10px 13px;
    background: #fff9e9;
    color: #75550b;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-billing-mode span {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #d99b14;
    box-shadow: 0 0 0 4px rgba(217, 155, 20, 0.14);
}

.ce-billing-card,
.ce-billing-result-card {
    border: 1px solid rgba(196, 210, 229, 0.9);
    border-radius: 22px;
    padding: clamp(24px, 4vw, 38px);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow-soft);
}

.ce-billing-card-head {
    display: grid;
    gap: 10px;
    margin-bottom: 24px;
}

.ce-billing-card-head h2,
.ce-billing-unavailable h2 {
    margin: 0;
    color: var(--ce-blue-dark);
    font-size: 25px;
    letter-spacing: -0.025em;
}

.ce-billing-card-head p,
.ce-billing-unavailable p {
    margin: 0;
    color: var(--ce-muted);
    font-size: var(--font-body);
    line-height: 1.55;
}

.ce-billing-form {
    display: grid;
    gap: 20px;
}

.ce-billing-plans {
    margin: 0;
    border: 0;
    padding: 0;
}

.ce-billing-plans legend {
    margin-bottom: 10px;
    color: #34445e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-billing-plan-grid,
.ce-billing-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ce-billing-plan {
    position: relative;
    cursor: pointer;
}

.ce-billing-plan input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.ce-billing-plan > span {
    display: grid;
    min-height: 108px;
    align-content: center;
    gap: 7px;
    border: 1px solid #cad7e9;
    border-radius: 14px;
    padding: 16px;
    background: #fbfdff;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, background 160ms ease;
}

.ce-billing-plan strong {
    color: var(--ce-blue-dark);
    font-size: var(--font-label);
}

.ce-billing-plan small {
    color: var(--ce-muted);
    font-size: var(--font-caption);
    line-height: 1.45;
}

.ce-billing-plan input:checked + span {
    border-color: var(--ce-blue);
    background: #f1f6ff;
    box-shadow: 0 0 0 3px rgba(18, 61, 141, 0.12);
}

.ce-billing-plan input:focus-visible + span {
    outline: 3px solid rgba(18, 61, 141, 0.23);
    outline-offset: 3px;
}

.ce-billing-plan:hover > span {
    transform: translateY(-1px);
    border-color: #8eaddb;
}

.ce-billing-field {
    display: grid;
    gap: 8px;
    color: #34445e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-billing-field input {
    width: 100%;
    min-width: 0;
    height: 49px;
    border: 1px solid #cad7e9;
    border-radius: 11px;
    padding: 0 14px;
    background: #fbfdff;
    color: var(--ce-ink);
    font: inherit;
    font-weight: 650;
    outline: none;
}

.ce-billing-field input:focus {
    border-color: var(--ce-blue);
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(18, 61, 141, 0.11);
}

.ce-billing-field small,
.ce-billing-note {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 650;
    line-height: 1.5;
}

.ce-billing-country input {
    width: 96px;
    text-transform: uppercase;
}

.ce-billing-submit,
.ce-billing-secondary {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 11px;
    padding: 0 18px;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.ce-billing-submit {
    border: 0;
    background: linear-gradient(135deg, var(--ce-blue), #2464d5);
    color: #ffffff;
    box-shadow: 0 16px 30px rgba(18, 61, 141, 0.22);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.ce-billing-submit:hover,
.ce-billing-submit:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 19px 34px rgba(18, 61, 141, 0.28);
}

.ce-billing-submit:focus-visible,
.ce-billing-secondary:focus-visible {
    outline: 3px solid rgba(18, 61, 141, 0.22);
    outline-offset: 3px;
}

.ce-billing-secondary {
    border: 1px solid #b9c9df;
    background: #f7faff;
    color: var(--ce-blue);
}

.ce-billing-note {
    margin: -6px 0 0;
    text-align: center;
}

.ce-billing-error,
.ce-billing-unavailable {
    border: 1px solid #f0c7cc;
    border-radius: 13px;
    padding: 14px 16px;
    background: #fff5f6;
    color: #9f2031;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.5;
}

.ce-billing-unavailable {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 18px;
    padding: 18px;
}

.ce-billing-unavailable > span {
    display: grid;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: #ffe3e7;
    font-weight: 700;
}

.ce-billing-unavailable h2 {
    margin-bottom: 6px;
    font-size: var(--font-section);
}

.ce-billing-result-shell {
    display: grid;
    grid-template-rows: auto 1fr;
}

.ce-billing-result {
    display: grid;
    width: min(720px, calc(100% - 40px));
    margin: 0 auto;
    padding: 64px 0;
    place-items: center;
}

.ce-billing-result-card {
    display: grid;
    gap: 18px;
    text-align: center;
}

.ce-billing-result-card .ce-billing-eyebrow {
    margin: 0 auto;
}

.ce-billing-result-card h1 {
    font-size: clamp(32px, 6vw, 48px);
}

.ce-billing-result-icon {
    display: grid;
    width: 58px;
    height: 58px;
    margin: 0 auto 4px;
    place-items: center;
    border-radius: 999px;
    background: #dff7ed;
    color: #087856;
    font-size: 25px;
    font-weight: 700;
}

.ce-billing-result-card[data-result-state="cancelled"] .ce-billing-result-icon {
    background: #fff3d8;
    color: #9a6200;
}

.ce-billing-result-card[data-result-state="unknown"] .ce-billing-result-icon {
    background: #ffe7ea;
    color: #a51f33;
}

.ce-billing-result-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 6px;
}

.ce-billing-invitation-form {
    width: min(100%, 460px);
    margin: 4px auto 0;
    text-align: left;
}

@media (max-width: 900px) {
    .ce-billing-main {
        grid-template-columns: 1fr;
        width: min(680px, calc(100% - 36px));
        padding-top: 44px;
    }

    .ce-billing-intro h1 {
        max-width: 620px;
    }
}

/* Keep the insured estimate outcome above the receipt and visually unmistakable. */
.auth-body[data-route="collection/link"] .fp-estimate-result-region {
    display: grid;
    gap: 0;
}

.auth-body[data-route="collection/link"] .fp-estimate-result-card {
    display: grid;
    gap: 12px;
    overflow: hidden;
    border: 2px solid #8eb8f4;
    border-radius: 18px;
    padding: 20px;
    background: linear-gradient(145deg, #f7fbff 0%, #eaf3ff 100%);
    box-shadow: var(--shadow-soft);
}

.auth-body[data-route="collection/link"] [data-fp-estimate-retry-failed][hidden],
.auth-body[data-route="collection/link"] .fp-estimate-result-card[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-estimate-result-card .fp-screen-eyebrow {
    color: #1558b8;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-estimate-result-card h2 {
    margin: 0;
    color: #102d57;
    font-size: clamp(22px, 6vw, 30px);
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-estimate-result-card > p,
.auth-body[data-route="collection/link"] .fp-estimate-result-card > p[data-fp-estimate-proposal-text] {
    color: #243d62;
    font-size: var(--font-body);
    font-weight: 650;
    line-height: 1.55;
}

.auth-body[data-route="collection/link"] .fp-estimate-result-card.is-consultation {
    border-color: #4f91ed;
    background: linear-gradient(145deg, #f4f9ff 0%, #dfedff 100%);
    box-shadow: var(--shadow-soft);
}

.auth-body[data-route="collection/link"] .fp-estimate-result-card.is-consultation > p {
    border-left: 4px solid #1e67ca;
    padding-left: 13px;
    color: #102d57;
    font-size: 17px;
    font-weight: 700;
}

@media (max-width: 420px) {
    .auth-body[data-route="collection/link"] .fp-estimate-result-card {
        border-radius: 16px;
        padding: 17px;
    }
}

@media (max-width: 600px) {
    .ce-billing-topbar {
        min-height: 66px;
        padding: 0 16px;
    }

    .ce-billing-brand {
        font-size: var(--font-lead);
    }

    .ce-billing-brand img {
        width: 150px;
        height: auto;
    }

    .ce-billing-login {
        max-width: 145px;
        text-align: right;
    }

    .ce-billing-main {
        width: min(100% - 24px, 680px);
        gap: 30px;
        padding: 34px 0 44px;
    }

    .ce-billing-intro {
        gap: 17px;
        padding: 0 4px;
    }

    .ce-billing-intro h1 {
        font-size: 38px;
    }

    .ce-billing-card {
        border-radius: 18px;
        padding: 22px 18px;
    }

    .ce-billing-plan-grid,
    .ce-billing-field-grid,
    .ce-billing-result-actions {
        grid-template-columns: 1fr;
    }

    .ce-billing-plan > span {
        min-height: 92px;
    }

    .ce-billing-result {
        width: min(100% - 24px, 680px);
        padding: 36px 0;
    }

    .ce-billing-result-card {
        padding: 26px 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ce-billing-plan > span,
    .ce-billing-submit {
        transition: none;
    }
}

/* Claim Evidence unified login: desktop workspace presentation with mobile continuity. */
.fp-login-desktop-panel {
    display: none;
}

@media (min-width: 901px) {
    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow {
        display: flex;
        min-height: 100vh;
        align-items: center;
        justify-content: center;
        padding: 48px;
        background:
            radial-gradient(circle at 12% 12%, rgba(27, 104, 255, 0.16), transparent 34%),
            radial-gradient(circle at 88% 88%, rgba(84, 122, 255, 0.12), transparent 32%),
            #edf3fa;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-grid {
        display: grid;
        width: min(1120px, 100%);
        min-height: 650px;
        grid-template-columns: minmax(0, 1.2fr) minmax(410px, 0.8fr);
        align-items: stretch;
        gap: 0;
        overflow: hidden;
        margin: 0;
        border: 1px solid #cbd8ea;
        border-radius: 24px;
        background: #ffffff;
        box-shadow: 0 32px 80px rgba(12, 32, 72, 0.16);
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-panel {
        position: relative;
        display: flex;
        min-width: 0;
        flex-direction: column;
        justify-content: space-between;
        overflow: hidden;
        padding: 48px;
        background:
            radial-gradient(circle at 92% 8%, rgba(52, 119, 255, 0.50), transparent 34%),
            linear-gradient(145deg, #071a43 0%, #0b2f78 58%, #1258df 100%);
        color: #ffffff;
        isolation: isolate;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-panel::before,
    .auth-body[data-route="collection/login"] .fp-login-desktop-panel::after {
        content: "";
        position: absolute;
        z-index: -1;
        border: 1px solid rgba(255, 255, 255, 0.13);
        border-radius: 999px;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-panel::before {
        width: 380px;
        height: 380px;
        right: -190px;
        bottom: -220px;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-panel::after {
        width: 230px;
        height: 230px;
        right: -112px;
        bottom: -144px;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-logo {
        display: block;
        width: 248px;
        height: auto;
        object-fit: contain;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-copy {
        max-width: 570px;
        margin: 64px 0;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-eyebrow {
        display: inline-flex;
        min-height: 30px;
        align-items: center;
        border: 1px solid rgba(255, 255, 255, 0.22);
        border-radius: 999px;
        padding: 5px 12px;
        background: rgba(255, 255, 255, 0.10);
        color: #dce9ff;
        font-size: var(--font-caption);
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-copy h2 {
        margin: 22px 0 16px;
        color: #ffffff;
        font-size: clamp(36px, 3.2vw, 48px);
        line-height: 1.2;
        letter-spacing: -0.035em;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-copy > p {
        max-width: 520px;
        margin: 0;
        color: #d8e5ff;
        font-size: var(--font-body);
        line-height: 1.65;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-benefits {
        display: grid;
        gap: 14px;
        margin: 28px 0 0;
        padding: 0;
        list-style: none;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-benefits li {
        position: relative;
        padding-left: 32px;
        color: #fff;
        font-size: var(--font-caption);
        font-weight: 700;
        line-height: 1.45;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-benefits li::before {
        content: "";
        position: absolute;
        left: 0;
        top: 1px;
        width: 20px;
        height: 20px;
        border-radius: 999px;
        background:
            linear-gradient(135deg, transparent 42%, #0c3 42% 52%, transparent 52%) 5px 8px / 7px 5px no-repeat,
            rgba(255, 255, 255, 0.96);
        box-shadow: 0 5px 16px rgba(2, 15, 47, 0.22);
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-trust {
        display: flex;
        max-width: 500px;
        align-items: center;
        gap: 14px;
        border-top: 1px solid rgba(255, 255, 255, 0.18);
        padding-top: 22px;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-trust > span {
        display: grid;
        width: 42px;
        height: 42px;
        flex: 0 0 auto;
        place-items: center;
        border: 1px solid rgba(255, 255, 255, 0.20);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.10);
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-trust svg {
        width: 22px;
        height: 22px;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-trust div {
        display: grid;
        gap: 3px;
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-trust strong {
        color: #ffffff;
        font-size: var(--font-caption);
    }

    .auth-body[data-route="collection/login"] .fp-login-desktop-trust small {
        color: #cddcff;
        font-size: var(--font-caption);
        line-height: 1.4;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-card {
        min-width: 0;
        align-content: center;
        border: 0;
        border-radius: 0;
        padding: 44px;
        box-shadow: none;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-form {
        gap: 15px;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-card h1 {
        font-size: var(--font-title-large);
        letter-spacing: -0.025em;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-card > .fp-login-form > p {
        font-size: var(--font-body);
        line-height: 1.55;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-field {
        gap: 7px;
        font-size: var(--font-label);
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-field input {
        height: 48px;
        border-radius: 10px;
        padding: 0 14px;
        font-size: var(--font-body);
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-submit,
    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-secondary-cta {
        min-height: 48px;
        border-radius: 10px;
        padding: 0 18px;
        font-size: var(--font-caption);
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-actions {
        gap: 10px;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-disclosure {
        border-radius: 10px;
    }

    .auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-disclosure > summary {
        min-height: 46px;
        padding: 0 14px;
        font-size: var(--font-caption);
    }
}

.fp-practice-create-panel {
    overflow: hidden;
    border-color: #d8e5f4;
    background:
        radial-gradient(circle at 92% 8%, rgba(26, 117, 209, 0.1), transparent 31%),
        linear-gradient(150deg, #ffffff 0%, #f7fbff 100%);
}

.fp-practice-create-main {
    max-width: 1220px;
}

.fp-practice-create-page-head {
    align-items: flex-end;
}

.fp-review-back-link,
.fp-practice-secondary-link {
    display: inline-flex;
    align-items: center;
    color: var(--fp-review-blue, #003b95);
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.fp-review-back-link {
    margin-bottom: 8px;
}

.fp-review-back-link::before {
    content: "\2190";
    margin-right: 7px;
}

.fp-review-back-link:hover,
.fp-practice-secondary-link:hover {
    text-decoration: underline;
}

.fp-practice-create-head > div {
    max-width: 760px;
}

.fp-practice-create-head span {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: var(--font-caption);
    line-height: 1.5;
}

.fp-practice-create-form {
    display: grid;
    gap: 18px;
    margin-top: 18px;
}

.fp-practice-create-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.fp-practice-create-fields label,
.fp-practice-custom-requirement label {
    display: grid;
    gap: 6px;
    color: var(--text);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-practice-create-fields label.is-wide {
    grid-column: span 2;
}

.fp-practice-create-fields input,
.fp-practice-create-fields select,
.fp-practice-custom-requirement input,
.fp-practice-custom-requirement textarea,
.fp-practice-link-value input {
    width: 100%;
    min-height: 42px;
    border: 1px solid #cfdbea;
    border-radius: 9px;
    padding: 9px 11px;
    background: #ffffff;
    color: var(--text);
    font: inherit;
    font-size: var(--font-body);
}

.fp-practice-create-fields input:focus,
.fp-practice-create-fields select:focus,
.fp-practice-custom-requirement input:focus,
.fp-practice-custom-requirement textarea:focus,
.fp-practice-link-value input:focus {
    border-color: #397fc4;
    outline: 3px solid rgba(35, 119, 204, 0.14);
}

.fp-practice-create-fields select:disabled {
    background: #f0f4f8;
    color: #5f6f82;
}

.fp-practice-denuncia {
    display: grid;
    grid-template-columns: minmax(220px, 0.7fr) minmax(300px, 1.3fr);
    align-items: center;
    gap: 18px;
    padding: 16px;
    border: 1px solid #cfe1f3;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(235, 245, 255, 0.9), rgba(255, 255, 255, 0.96));
}

.fp-practice-denuncia h2,
.fp-practice-denuncia p {
    margin: 0;
}

.fp-practice-denuncia h2 {
    color: var(--text);
    font-size: var(--font-body);
}

.fp-practice-denuncia p,
.fp-practice-denuncia-picker small {
    margin-top: 5px;
    color: var(--muted);
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-practice-denuncia-picker {
    position: relative;
    display: grid;
    gap: 6px;
    color: var(--text);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-practice-requirements {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid #d8e5f2;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.84);
}

.fp-practice-requirements-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.fp-practice-requirements-head h3 {
    margin: 0;
    font-size: var(--font-body);
}

.fp-practice-requirements-head span {
    color: #48647f;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-practice-template-slots {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.fp-practice-template-slot {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-height: 78px;
    padding: 12px;
    border: 1px solid #dfe8f2;
    border-radius: 10px;
    background: #ffffff;
}

.fp-practice-template-slot > div {
    display: grid;
    gap: 4px;
}

.fp-practice-template-slot strong {
    color: var(--text);
    font-size: var(--font-caption);
}

.fp-practice-template-slot span {
    color: var(--muted);
    font-size: var(--font-caption);
    line-height: 1.4;
}

.fp-practice-template-slot small,
.fp-practice-custom-requirement legend {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 4px 8px;
    background: #e9f2ff;
    color: #185d9f;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.fp-practice-template-slot small.is-system {
    background: #e8f7ef;
    color: #177047;
}

.fp-practice-custom-slots {
    display: grid;
    gap: 10px;
}

.fp-practice-custom-requirement {
    display: grid;
    grid-template-columns: minmax(160px, 0.7fr) minmax(240px, 1.3fr) auto auto;
    align-items: end;
    gap: 10px;
    min-width: 0;
    margin: 0;
    border: 1px solid #d9e4ef;
    border-radius: 10px;
    padding: 12px;
    background: #f9fbfd;
}

.fp-practice-custom-requirement legend {
    padding-inline: 9px;
    background: #f1ebff;
    color: #6743a6;
}

.fp-practice-required-toggle {
    display: flex !important;
    align-items: center;
    min-height: 42px;
    padding: 9px 10px;
    border: 1px solid #d7e1ec;
    border-radius: 9px;
    background: #ffffff;
    white-space: nowrap;
}

.fp-practice-required-toggle input {
    width: 17px;
    min-height: 17px;
    height: 17px;
    margin: 0;
}

.fp-practice-add-requirement,
.fp-practice-custom-requirement button,
.fp-practice-link-value button {
    width: fit-content;
    min-height: 38px;
    border: 1px solid #bed1e5;
    border-radius: 8px;
    padding: 8px 12px;
    background: #ffffff;
    color: #185d9f;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-practice-add-requirement:disabled,
.fp-practice-custom-requirement button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.fp-practice-freeze-note {
    margin: 0;
    border-left: 3px solid #efad3c;
    padding: 8px 11px;
    background: #fff9ee;
    color: #6f5224;
    font-size: var(--font-caption);
    line-height: 1.45;
}

.fp-practice-create-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.fp-practice-created-actions:not([hidden]) {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.fp-practice-create-actions .fp-practice-secondary-link {
    min-height: 42px;
    padding: 0 4px;
}

.fp-practice-create-actions .fp-review-action-button,
.fp-practice-link-result > .fp-review-action-button {
    min-height: 42px;
    border: 1px solid #165d9f;
    border-radius: 9px;
    padding: 9px 16px;
    background: #176cb8;
    color: #ffffff;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-practice-create-actions a.fp-review-action-button {
    justify-content: center;
    border-color: #b8c9df;
    background: #ffffff;
    color: #174f9c;
    text-decoration: none;
}

.fp-practice-create-actions .fp-review-action-button:disabled,
.fp-practice-link-result > .fp-review-action-button:disabled {
    cursor: wait;
    opacity: 0.65;
}

.fp-practice-create-actions [data-fp-practice-create-status] {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-practice-create-actions [data-state="success"] {
    color: #177047;
}

.fp-practice-create-actions [data-state="error"] {
    color: #a82b32;
}

.fp-practice-link-result:not([hidden]) {
    display: grid;
    grid-template-columns: minmax(160px, 0.7fr) auto minmax(260px, 1.3fr);
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    border-top: 1px solid #dce6f0;
    padding-top: 16px;
}

.fp-practice-link-result > div:first-child {
    display: grid;
    gap: 3px;
}

.fp-practice-link-result > div:first-child strong {
    font-size: var(--font-label);
}

.fp-practice-link-result > div:first-child span {
    color: var(--muted);
    font-size: var(--font-caption);
}

.fp-practice-link-value:not([hidden]) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

@media (max-width: 980px) {
    .fp-practice-create-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-practice-custom-requirement {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-practice-link-result:not([hidden]) {
        grid-template-columns: 1fr auto;
    }

    .fp-practice-link-value:not([hidden]) {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .fp-practice-create-fields,
    .fp-practice-denuncia,
    .fp-practice-template-slots,
    .fp-practice-custom-requirement,
    .fp-practice-link-result:not([hidden]) {
        grid-template-columns: minmax(0, 1fr);
    }

    .fp-practice-create-fields label.is-wide,
    .fp-practice-link-value:not([hidden]) {
        grid-column: auto;
    }

    .fp-practice-requirements {
        padding: 13px;
    }

    .fp-practice-requirements-head,
    .fp-practice-create-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .fp-practice-created-actions:not([hidden]) {
        display: grid;
        width: 100%;
    }

    .fp-practice-create-actions .fp-review-action-button,
    .fp-practice-create-actions .fp-practice-secondary-link {
        justify-content: center;
        width: 100%;
    }

    .fp-practice-link-result > .fp-review-action-button {
        width: 100%;
    }
}


.skip-link {
    position: fixed;
    top: 10px;
    left: 12px;
    z-index: 1000;
    transform: translateY(-160%);
    border-radius: 7px;
    padding: 9px 13px;
    background: #ffffff;
    color: #003399;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.skip-link:focus {
    transform: translateY(0);
    outline: 3px solid rgba(0, 51, 153, 0.28);
    outline-offset: 2px;
}

.flash-stack-overlay {
    position: fixed;
    top: max(18px, env(safe-area-inset-top));
    right: max(18px, env(safe-area-inset-right));
    z-index: 1400;
    display: grid;
    width: min(430px, calc(100vw - 36px));
    margin: 0;
    gap: 10px;
    pointer-events: none;
    animation: system-toast-enter 180ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.flash-stack-overlay.is-leaving {
    animation: system-toast-leave 180ms ease-in both;
}

.flash-message {
    position: relative;
    display: flex;
    min-height: 56px;
    align-items: center;
    overflow-wrap: anywhere;
    padding: 14px 18px 14px 46px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.98);
    color: var(--text-strong);
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.4;
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.2);
    backdrop-filter: blur(14px);
}

.flash-message::before {
    position: absolute;
    left: 20px;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--accent);
    box-shadow: 0 0 0 5px var(--accent-soft);
    content: "";
}

.flash-success {
    border-color: rgba(5, 150, 105, 0.28);
}

.flash-success::before {
    background: var(--success);
    box-shadow: 0 0 0 5px var(--success-soft);
}

.flash-warning {
    border-color: rgba(245, 158, 11, 0.32);
}

.flash-warning::before {
    background: var(--warning);
    box-shadow: 0 0 0 5px var(--warning-soft);
}

.flash-error {
    border-color: rgba(220, 38, 38, 0.3);
}

.flash-error::before {
    background: var(--danger);
    box-shadow: 0 0 0 5px var(--danger-soft);
}

@keyframes system-toast-enter {
    from {
        opacity: 0;
        transform: translate3d(0, -12px, 0) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes system-toast-leave {
    from {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }

    to {
        opacity: 0;
        transform: translate3d(0, -8px, 0) scale(0.98);
    }
}

@media (max-width: 600px) {
    .flash-stack-overlay {
        top: max(12px, env(safe-area-inset-top));
        right: 16px;
        left: 16px;
        width: auto;
    }

    .flash-message {
        min-height: 54px;
        padding: 13px 16px 13px 44px;
        font-size: var(--font-body);
    }

    .flash-message::before {
        left: 18px;
    }
}

/* Fotoperizia RDO demo visual alignment */
.auth-body[data-route="collection/link"],
.auth-body[data-route="collection/status"],
.auth-body[data-route="collection/login"],
.auth-body[data-route="collection/register"],
.auth-body[data-route="collection/confirm-email"],
.auth-body[data-route="studio/practices"],
.auth-body[data-route="studio/practice"],
.auth-body[data-route="platform/access"],
.auth-body[data-route="studio/login"] {
    display: block;
    place-items: initial;
    padding: 0;
    background: #edf3fa;
    color: #071333;
}

.auth-body[data-route="collection/link"] .auth-shell,
.auth-body[data-route="collection/status"] .auth-shell,
.auth-body[data-route="collection/login"] .auth-shell,
.auth-body[data-route="collection/register"] .auth-shell,
.auth-body[data-route="collection/confirm-email"] .auth-shell,
.auth-body[data-route="studio/practices"] .auth-shell,
.auth-body[data-route="studio/practice"] .auth-shell,
.auth-body[data-route="platform/access"] .auth-shell,
.auth-body[data-route="studio/login"] .auth-shell {
    width: 100%;
}

.auth-body[data-route="collection/link"] .site-footer,
.auth-body[data-route="collection/status"] .site-footer,
.auth-body[data-route="collection/login"] .site-footer,
.auth-body[data-route="collection/register"] .site-footer,
.auth-body[data-route="collection/confirm-email"] .site-footer,
.auth-body[data-route="studio/practices"] .site-footer,
.auth-body[data-route="studio/practice"] .site-footer,
.auth-body[data-route="platform/access"] .site-footer,
.auth-body[data-route="studio/login"] .site-footer {
    display: none;
}

.fp-customer-shell,
.fp-welcome-shell,
.fp-app,
.fp-login {
    --fotoperizia-blue: #003399;
    --fotoperizia-blue-dark: #001f6f;
    --fotoperizia-blue-900: #001a56;
    --fotoperizia-red: #ff172f;
    --fotoperizia-text: #071333;
    --fotoperizia-muted: #66728a;
    --fotoperizia-line: #d9e2ef;
    --fotoperizia-soft: #f5f8fc;
    --fotoperizia-green: #148a45;
    --fotoperizia-orange: #f97316;
    --fotoperizia-purple: #7c3cff;
    --fotoperizia-radius: 12px;
    font-family: var(--font-sans);
    letter-spacing: 0;
}

.fp-customer-shell *,
.fp-welcome-shell *,
.fp-app *,
.fp-login * {
    box-sizing: border-box;
}

.fp-customer-shell svg,
.fp-welcome-shell svg,
.fp-app svg,
.fp-login svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
}

.fp-logo-mark {
    display: block;
    flex: 0 0 auto;
    width: 190px;
    height: auto;
    background: transparent;
    object-fit: contain;
}

.fp-brand-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fp-login {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 0, rgba(0, 51, 153, 0.12), transparent 32%),
        linear-gradient(135deg, #f8fbff 0%, #edf3fa 52%, #e8eef8 100%);
    color: var(--fotoperizia-text);
}

.fp-login-topbar {
    display: flex;
    min-height: 68px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0 32px;
    border-bottom: 1px solid var(--fotoperizia-line);
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(16px);
}

.fp-login-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--fotoperizia-blue-900);
    font-size: 22px;
    font-weight: 700;
    text-decoration: none;
}

.fp-login-brand i {
    display: block;
    width: 10px;
    height: 34px;
    transform: skew(-28deg);
    background: var(--fotoperizia-red);
}

.fp-login-customer {
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.fp-login-grid {
    display: grid;
    grid-template-columns: minmax(360px, 460px) minmax(360px, 500px);
    gap: 28px;
    width: min(1020px, calc(100% - 48px));
    margin: 42px auto;
    align-items: start;
}

.fp-login.is-operator-auth .fp-login-grid,
.fp-login.is-customer-auth-flow .fp-login-grid {
    grid-template-columns: minmax(320px, 460px);
    width: min(460px, calc(100% - 48px));
}

.fp-login-card,
.fp-login-preview {
    border: 1px solid var(--fotoperizia-line);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-login-card {
    --fotoperizia-blue: #003399;
    --fotoperizia-blue-900: #001a56;
    --fotoperizia-line: #d9e2ef;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 32px;
}

.fp-login-kicker {
    width: max-content;
    border-radius: 999px;
    padding: 7px 12px;
    background: #e8efff;
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-login-card h1 {
    margin: 0;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-title-large);
    line-height: 1.2;
}

.fp-login-card p {
    margin: 0 0 4px;
    color: #4c5a72;
    font-size: var(--font-body);
    line-height: 1.55;
}

.fp-login-field {
    display: grid;
    gap: 8px;
    color: #36445d;
    font-size: var(--font-label);
    font-weight: 700;
}

.fp-login-field input {
    width: 100%;
    height: 48px;
    border: 1px solid #cbd7e8;
    border-radius: 10px;
    padding: 0 14px;
    color: var(--fotoperizia-text);
    font: inherit;
    font-weight: 650;
    outline: none;
    background: #fbfdff;
}

.fp-login-field input:focus {
    border-color: var(--fotoperizia-blue);
    box-shadow: 0 0 0 4px rgba(0, 51, 153, 0.12);
    background: #ffffff;
}

.fp-login-error {
    border: 1px solid #fecaca;
    border-radius: 10px;
    padding: 12px 14px;
    background: #fff1f2;
    color: #a31227;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-login-notice {
    border: 1px solid rgba(20, 138, 69, 0.24);
    border-radius: 10px;
    padding: 12px 14px;
    background: #eefaf2;
    color: #0f6a36;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-login-submit {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 10px;
    padding: 0 18px;
    background: linear-gradient(135deg, var(--fotoperizia-blue), #0f4ce8);
    color: #ffffff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 14px 28px rgba(0, 51, 153, 0.22);
}

.fp-login-submit svg {
    width: 19px;
    height: 19px;
}

.fp-login-secondary-cta {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid #b8c8e6;
    border-radius: 10px;
    padding: 0 18px;
    background: #f7faff;
    color: var(--fotoperizia-blue);
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.fp-login-secondary-cta:hover {
    border-color: var(--fotoperizia-blue);
    background: #eef4ff;
}

.fp-login-secondary-cta:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.20);
    outline-offset: 2px;
}

.fp-login-secondary-cta:active {
    transform: translateY(1px);
}

.fp-login-meta {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-login-meta.is-centered {
    justify-content: center;
}

.fp-login-meta a {
    color: var(--fotoperizia-blue);
    text-decoration: none;
}

.fp-register-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.fp-resend-form {
    display: grid;
    gap: 12px;
    margin-top: 4px;
}

.fp-resend-form .fp-secondary {
    min-height: 44px;
    border-radius: 8px;
    font: inherit;
    font-weight: 700;
}

.fp-login-disclosure {
    display: grid;
    gap: 10px;
    margin-top: 8px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    background: #ffffff;
}

.fp-login-disclosure > summary {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 12px;
    color: #0a2a66;
    cursor: pointer;
    font-size: var(--font-caption);
    font-weight: 700;
    list-style: none;
}

.fp-login-disclosure > summary::-webkit-details-marker {
    display: none;
}

.fp-login-disclosure > summary::after {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform 160ms ease;
}

.fp-login-disclosure[open] > summary::after {
    transform: rotate(225deg) translate(-2px, -2px);
}

.fp-login-disclosure > summary:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.18);
    outline-offset: 2px;
}

.fp-login-disclosure .fp-resend-form {
    margin: 0;
    padding: 0 12px 12px;
}

.fp-login-preview {
    position: relative;
    display: grid;
    align-content: center;
    gap: 14px;
    overflow: hidden;
    padding: 32px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 255, 0.96)),
        #ffffff;
}

.fp-login-preview::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 116px;
    background: linear-gradient(180deg, var(--fotoperizia-blue), #00215f);
}

.fp-login-preview > * {
    position: relative;
    margin-left: 126px;
}

.fp-login.is-customer-auth-flow .fp-login-preview {
    justify-items: center;
}

.fp-login.is-customer-auth-flow .fp-login-preview::before {
    display: none;
}

.fp-login.is-customer-auth-flow .fp-login-preview > * {
    width: min(100%, 300px);
    margin-left: 0;
}

.fp-login-preview-head,
.fp-login-preview-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fp-login-preview-head span {
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-title-small);
    font-weight: 700;
}

.fp-login-preview-head strong {
    position: relative;
    display: grid;
    width: 70px;
    height: 70px;
    place-items: center;
    border-radius: 999px;
    background: conic-gradient(var(--fotoperizia-blue) 78%, #dce6f5 0);
    color: var(--fotoperizia-blue-900);
    font-size: 19px;
    isolation: isolate;
}

.fp-login-preview-head strong::before {
    content: "";
    position: absolute;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: #ffffff;
}

.fp-login-preview-head strong {
    color: transparent;
}

.fp-login-preview-head strong::after {
    content: "78%";
    position: absolute;
    color: var(--fotoperizia-blue-900);
    font-size: 19px;
    font-weight: 700;
}

.fp-login-preview-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}

.fp-login-preview-kpis div,
.fp-login-preview-panel {
    border: 1px solid var(--fotoperizia-line);
    border-radius: 12px;
    background: #ffffff;
}

.fp-login-preview-kpis div {
    padding: 14px;
}

.fp-login-preview-kpis span,
.fp-login-preview-panel span {
    display: block;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-login-preview-kpis strong,
.fp-login-preview-panel strong {
    display: block;
    margin-top: 8px;
    color: var(--fotoperizia-blue-900);
    font-size: 25px;
}

.fp-login-preview-panel {
    padding: 16px;
}

.fp-login-preview-panel em {
    border-radius: 8px;
    padding: 7px 10px;
    background: #dff7e8;
    color: var(--fotoperizia-green);
    font-size: var(--font-caption);
    font-style: normal;
    font-weight: 700;
}

.fp-login-preview-photos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 0;
}

.fp-login-preview-photos span {
    min-height: 96px;
    border-radius: 10px;
    background-image: var(--fotoperizia-photo-sheet, url("../img/fotoperizia-demo/property-evidence-sheet-weather.png"));
    background-repeat: no-repeat;
    background-size: 300% 200%;
    box-shadow: inset 0 -32px 28px rgba(7, 19, 51, 0.20);
}

.fp-login-preview-photos span:nth-child(1) {
    background-position: 0 0;
}

.fp-login-preview-photos span:nth-child(2) {
    background-position: 50% 0;
}

.fp-login-preview-photos span:nth-child(3) {
    background-position: 100% 0;
}

.fp-login-preview-photos span:nth-child(4) {
    background-position: 0 100%;
}

.fp-login-preview-chart {
    border: 1px solid var(--fotoperizia-line);
    border-radius: 12px;
    padding: 18px;
    background: #ffffff;
}

.fp-login-preview-chart svg {
    display: block;
    width: 100%;
    height: 90px;
}

.fp-login-preview-chart path {
    fill: none;
    stroke: #7c68ff;
    stroke-width: 5;
}

.fp-customer-shell {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 12px;
    background:
        radial-gradient(circle at top left, rgba(0, 51, 153, 0.10), transparent 36%),
        #edf3fa;
}

.fp-customer-phone {
    width: min(390px, 100%);
    min-height: calc(100vh - 24px);
    overflow: hidden;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(7, 19, 51, 0.12);
}

.fp-customer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fp-customer-head {
    position: sticky;
    top: 0;
    z-index: 20;
    min-height: 58px;
    padding: 0 22px;
    border-bottom: 1px solid var(--fotoperizia-line);
    background: #ffffff;
}

.fp-customer-head a {
    min-width: 0;
    overflow: hidden;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-section);
    font-weight: 700;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fp-customer-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
}

.fp-customer-head .fp-logo-mark {
    width: 170px;
    height: auto;
}

.fp-head-actions {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fp-customer-head button,
.fp-mobile-menu,
.fp-icon-button,
.fp-operator-button {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
}

.fp-voice-button {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    gap: 6px;
    border: 1px solid #cbd7e8;
    border-radius: 999px;
    padding: 0 9px;
    background: #ffffff;
    color: var(--fotoperizia-blue);
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-voice-button svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.fp-voice-button[aria-busy="true"] {
    border-color: rgba(0, 51, 153, 0.34);
    background: #edf4ff;
}

.fp-voice-button:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.22);
    outline-offset: 2px;
}

.fp-voice-dock {
    padding: 10px 0 0;
}

.fp-voice-dock[hidden] {
    display: none;
}

.fp-customer-phone > .fp-voice-dock {
    padding: 0 22px 22px;
}

.fp-voice-dock .fp-voice-button {
    width: 100%;
    min-height: 44px;
    justify-content: center;
    border-radius: 10px;
    background: #f3f7ff;
}

.fp-mobile-menu span {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}

.fp-customer-reset-form {
    margin: 0;
}

.fp-photo-toast {
    position: fixed;
    z-index: 80;
    top: max(14px, env(safe-area-inset-top));
    left: 50%;
    width: min(calc(100vw - 28px), 340px);
    transform: translate(-50%, -8px);
    border: 1px solid #b8dfcf;
    border-radius: 12px;
    padding: 12px 14px;
    background: #f0fbf6;
    box-shadow: 0 16px 34px rgba(7, 19, 51, 0.14);
    color: #0f5132;
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease, transform 180ms ease;
}

.fp-photo-toast[hidden] {
    display: none;
}

.fp-photo-toast.is-visible {
    transform: translate(-50%, 0);
    opacity: 1;
}

.fp-photo-toast strong,
.fp-photo-toast span {
    display: block;
}

.fp-photo-toast strong {
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-photo-toast span {
    margin-top: 3px;
    color: #2f6b4f;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-ai-wait-modal {
    --fp-visual-viewport-height: 100dvh;
    --fp-visual-viewport-offset-top: 0px;
    position: fixed;
    top: var(--fp-visual-viewport-offset-top);
    right: 0;
    bottom: auto;
    left: 0;
    z-index: 90;
    display: grid;
    height: 100vh;
    height: var(--fp-visual-viewport-height);
    max-height: 100vh;
    max-height: var(--fp-visual-viewport-height);
    box-sizing: border-box;
    place-items: center;
    padding: 22px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.fp-ai-wait-modal[hidden] {
    display: none;
}

.fp-ai-wait-modal.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.fp-ai-wait-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 19, 51, 0.42);
    backdrop-filter: blur(4px);
}

.fp-ai-wait-dialog {
    position: relative;
    display: grid;
    width: min(100%, 358px);
    max-height: calc(100% - 38px);
    min-height: 0;
    gap: 13px;
    border: 1px solid rgba(181, 191, 210, 0.82);
    border-radius: 12px;
    padding: 18px;
    background: #ffffff;
    box-shadow: 0 24px 58px rgba(7, 19, 51, 0.24);
    color: #071333;
    outline: none;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

.fp-ai-wait-close {
    position: absolute;
    top: 10px;
    right: 10px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #eef3fa;
    color: #263653;
    cursor: pointer;
    font-size: var(--font-title-small);
    font-weight: 700;
    line-height: 1.2;
    transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.fp-ai-wait-close:hover {
    background: #dfe9f7;
    color: var(--fotoperizia-blue);
}

.fp-ai-wait-close:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.24);
    outline-offset: 2px;
}

.fp-ai-wait-close:active {
    transform: scale(0.96);
}

.fp-ai-wait-close[hidden] {
    display: none !important;
}

.fp-ai-wait-icon {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 999px;
    background: #edf5ff;
}

.fp-ai-wait-icon::before {
    content: "";
    width: 16px;
    height: 16px;
    border: 2px solid rgba(0, 51, 153, 0.24);
    border-top-color: var(--fotoperizia-blue);
    border-radius: 999px;
    animation: fp-spin 800ms linear infinite;
}

.fp-ai-wait-modal[data-state="success"] .fp-ai-wait-icon {
    background: #eaf8f0;
}

.fp-ai-wait-modal[data-state="success"] .fp-ai-wait-icon::before {
    width: 15px;
    height: 9px;
    border: 0;
    border-bottom: 3px solid var(--fotoperizia-green);
    border-left: 3px solid var(--fotoperizia-green);
    border-radius: 0;
    animation: none;
    transform: rotate(-45deg) translate(1px, -1px);
}

.fp-ai-wait-copy {
    display: grid;
    gap: 6px;
}

.fp-ai-wait-copy strong {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
}

.fp-ai-wait-copy p,
.fp-ai-wait-copy small {
    margin: 0;
    color: #526078;
    line-height: 1.42;
}

.fp-ai-wait-copy p {
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-ai-wait-copy small {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-ai-wait-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fp-ai-wait-actions [hidden] {
    display: none !important;
}

.fp-ai-wait-dialog [hidden] {
    display: none !important;
}

.fp-ai-wait-actions .fp-primary,
.fp-ai-wait-actions .fp-secondary {
    flex: 1 1 130px;
    min-height: 42px;
    justify-content: center;
}

.fp-final-transmission-list[hidden] {
    display: none !important;
}

.fp-ai-wait-dialog .fp-final-transmission-list {
    margin: 2px 0 0;
}

.fp-screen {
    padding: 18px 22px 26px;
}

.fp-screen[hidden],
.fp-photo-step[hidden] {
    display: none !important;
}

.fp-customer-copy h1,
.fp-photo-step h2,
.fp-done-card h1 {
    margin: 0;
    color: #071333;
    font-size: var(--font-lead);
    line-height: 1.22;
    font-weight: 700;
}

.fp-customer-copy p,
.fp-photo-step p,
.fp-done-card p {
    margin: 8px 0 0;
    color: #394765;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-claim-summary-card,
.fp-customer-info-card,
.fp-photo-step,
.fp-done-card {
    margin-top: 16px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-claim-summary-card {
    padding: 14px 16px;
}

.fp-claim-summary-card > span,
.fp-customer-info-card > strong,
.fp-preview-block > span {
    display: block;
    color: #4d5a75;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-claim-summary-card > strong {
    display: block;
    margin-top: 8px;
    color: #071333;
    font-size: var(--font-lead);
    font-weight: 700;
}

.fp-claim-summary-card dl,
.fp-customer-info-card dl,
.fp-done-card dl {
    display: grid;
    gap: 14px;
    margin: 18px 0 0;
}

.fp-claim-summary-card dt,
.fp-customer-info-card dt {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 3px;
    color: #4d5a75;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-claim-summary-card dd,
.fp-customer-info-card dd,
.fp-done-card dd {
    margin: 0;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-package-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.fp-package-summary div {
    min-width: 0;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px;
    background: #f8fbff;
}

.fp-package-summary strong {
    display: block;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-label);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.fp-package-summary span {
    display: block;
    margin-top: 3px;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-stepper {
    position: relative;
    display: grid;
    grid-template-columns: repeat(7, minmax(36px, 1fr));
    gap: 2px;
    margin: 16px 0 20px;
    padding: 0;
    list-style: none;
}

.fp-stepper::before {
    content: "";
    position: absolute;
    top: 12px;
    right: 32px;
    left: 32px;
    height: 2px;
    background: #d7deea;
}

.fp-stepper li {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 7px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

.fp-stepper strong {
    z-index: 1;
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 999px;
    background: #aab3c2;
    color: #ffffff;
    font-size: var(--font-caption);
    line-height: 1.2;
}

.fp-stepper .is-complete strong {
    background: var(--fotoperizia-green);
}

.fp-stepper .is-active strong {
    background: var(--fotoperizia-blue);
}

.fp-stepper .is-active {
    color: var(--fotoperizia-blue-900);
}

.fp-upload-drop {
    display: grid;
    justify-items: center;
    gap: 7px;
    margin-top: 12px;
    padding: 20px 12px;
    border: 1.5px dashed #aeb9c9;
    border-radius: 10px;
    color: #071333;
    text-align: center;
}

.fp-upload-drop svg {
    width: 30px;
    height: 30px;
    color: #657087;
}

.fp-upload-drop strong {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-upload-drop span {
    color: #536179;
    font-size: var(--font-caption);
}

.fp-screen-note {
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-preview-block {
    margin-top: 12px;
}

.fp-evidence-photo {
    position: relative;
    overflow: hidden;
    margin: 0;
    border-radius: 8px;
    background-image: var(--fotoperizia-photo-sheet);
    background-repeat: no-repeat;
    background-size: 300% 200%;
    box-shadow: inset 0 0 0 1px rgba(7, 19, 51, 0.06);
}

.fp-preview-block .fp-evidence-photo {
    width: 145px;
    height: 98px;
    margin-top: 8px;
}

.fp-evidence-photo.is-room,
.fp-evidence-photo.is-1,
.fp-preview[data-fp-photo-preview="room_overview"] .fp-preview-visual {
    background-position: 0% 0%;
}

.fp-evidence-photo.is-2,
.fp-preview[data-fp-photo-preview="main_damage_detail"] .fp-preview-visual {
    background-position: 50% 0%;
}

.fp-evidence-photo.is-3,
.fp-preview[data-fp-photo-preview="origin_point"] .fp-preview-visual {
    background-position: 100% 0%;
}

.fp-evidence-photo.is-4,
.fp-preview[data-fp-photo-preview="affected_surfaces"] .fp-preview-visual {
    background-position: 0% 100%;
}

.fp-evidence-photo.is-5,
.fp-preview[data-fp-photo-preview="damaged_goods"] .fp-preview-visual {
    background-position: 50% 100%;
}

.fp-evidence-photo button {
    position: absolute;
    top: 6px;
    right: 6px;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #1b2540;
    color: #ffffff;
    font-size: var(--font-label);
    line-height: 1.2;
}

.fp-customer-info-card {
    padding: 14px;
}

.fp-primary-cta,
.fp-primary,
.fp-secondary,
.fp-upload-actions label,
.fp-upload-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 10px;
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.fp-primary-cta {
    width: 100%;
    gap: 12px;
    margin-top: 14px;
    border: 0;
    background: linear-gradient(135deg, #0b4bdb 0%, #002baf 100%);
    color: #ffffff;
    box-shadow: 0 12px 22px rgba(0, 51, 153, 0.22);
}

.fp-primary-cta svg {
    margin-left: auto;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.fp-reset-cta {
    margin-top: 0;
    background: linear-gradient(135deg, #f08a24 0%, #d65f12 100%);
    box-shadow: 0 12px 22px rgba(214, 95, 18, 0.22);
}

.fp-reset-cta:focus-visible {
    outline: 3px solid rgba(214, 95, 18, 0.26);
    outline-offset: 2px;
}

.fp-welcome-shell {
    --fotoperizia-blue: #003399;
    --fotoperizia-blue-dark: #001f6f;
    --fotoperizia-red: #ff172f;
    --fotoperizia-text: #071333;
    --fotoperizia-muted: #66728a;
    --fotoperizia-line: #d9e2ef;
    min-height: min(760px, calc(100vh - 40px));
    display: grid;
    place-items: center;
    padding: 28px 16px;
    background:
        linear-gradient(135deg, rgba(0, 51, 153, 0.08), rgba(255, 23, 47, 0.06)),
        #f6f8fc;
}

.fp-welcome-panel {
    width: min(100%, 520px);
    display: grid;
    gap: 22px;
    justify-items: center;
    border: 1px solid rgba(0, 51, 153, 0.12);
    border-radius: 8px;
    padding: clamp(28px, 6vw, 44px);
    background: #ffffff;
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.fp-welcome-brand {
    width: 118px;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
}

.fp-welcome-logo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.fp-welcome-copy h1 {
    margin: 0;
    color: var(--fotoperizia-blue-dark);
    font-size: clamp(24px, 4vw, 34px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.fp-welcome-user {
    margin: 10px 0 0;
    color: var(--fotoperizia-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-welcome-actions {
    width: 100%;
    display: grid;
    gap: 10px;
}

.fp-welcome-actions .fp-primary-cta {
    margin-top: 0;
}

.fp-welcome-actions .fp-primary-cta:disabled {
    cursor: not-allowed;
    background: #9aa9c2;
    box-shadow: none;
}

.fp-welcome-actions[hidden] {
    display: none !important;
}

.fp-welcome-counter,
.fp-welcome-status,
.fp-session-link-panel small {
    margin: 0;
    color: var(--fotoperizia-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.45;
}

.fp-welcome-status {
    width: 100%;
    border: 1px solid rgba(0, 51, 153, 0.12);
    border-radius: 8px;
    padding: 10px 12px;
    background: #f3f7ff;
    color: var(--fotoperizia-blue-dark);
}

.fp-welcome-status[hidden] {
    display: none !important;
}

.fp-welcome-status[data-state="success"] {
    border-color: rgba(20, 138, 69, 0.24);
    background: #eefaf2;
    color: #0f6a36;
}

.fp-welcome-status[data-state="warning"],
.fp-welcome-status[data-state="error"] {
    border-color: rgba(249, 115, 22, 0.28);
    background: #fff7ed;
    color: #9a3412;
}

.fp-welcome-status[data-state="loading"] {
    border-color: rgba(0, 51, 153, 0.24);
    background: #edf4ff;
    color: var(--fotoperizia-blue);
}

.fp-session-link-panel {
    width: 100%;
    display: grid;
    gap: 12px;
    border-top: 1px solid var(--fotoperizia-line);
    padding-top: 18px;
}

.fp-session-link-panel[hidden] {
    display: none !important;
}

.fp-session-link-field {
    display: grid;
    gap: 8px;
    color: var(--fotoperizia-text);
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: left;
}

.fp-session-link-field input {
    width: 100%;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 8px;
    padding: 12px;
    background: #f8fbff;
    color: var(--fotoperizia-text);
    font: inherit;
    font-weight: 700;
}

.fp-session-link-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.fp-welcome-secondary-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    border-top: 1px solid var(--fotoperizia-line);
    padding-top: 16px;
}

.fp-primary {
    border: 0;
    padding: 0 18px;
    background: var(--fotoperizia-blue);
    color: #ffffff;
}

.fp-primary:disabled {
    cursor: not-allowed;
    background: #9fb0cc;
    color: #edf3ff;
    box-shadow: none;
}

.fp-secondary {
    border: 1px solid #cbd7e8;
    padding: 0 18px;
    background: #f3f7ff;
    color: var(--fotoperizia-blue);
}

.fp-sync-state {
    margin: 8px 0 0;
    color: #536179;
    font-size: var(--font-caption);
    text-align: center;
}

.fp-sync-state[data-state="saving"] {
    color: var(--fotoperizia-blue);
}

.fp-sync-state[data-state="saved"] {
    color: var(--fotoperizia-green);
}

.fp-sync-state[data-state="warning"],
.fp-sync-state[data-state="error"],
.fp-sync-state[data-state="fallback"] {
    color: var(--fotoperizia-orange);
}

.fp-field {
    position: relative;
    display: grid;
    gap: 7px;
    margin-top: 14px;
    color: #1d2a44;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-field small {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 600;
    line-height: 1.35;
}

.fp-field input,
.fp-field select,
.fp-field textarea {
    width: 100%;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 11px 12px;
    background: #ffffff;
    color: #071333;
    font: inherit;
    font-weight: 600;
}

.fp-field input.fp-file-native {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.fp-file-picker-ui {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 9px 10px;
    background: #ffffff;
    color: #071333;
    cursor: pointer;
}

.fp-file-picker-ui > span {
    border-radius: 8px;
    padding: 8px 10px;
    background: #edf4ff;
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    white-space: nowrap;
}

.fp-file-picker-ui > strong {
    min-width: 0;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fp-field:focus-within .fp-file-picker-ui {
    border-color: rgba(0, 51, 153, 0.45);
    box-shadow: 0 0 0 3px rgba(0, 51, 153, 0.12);
}

.fp-type-grid {
    display: grid;
    gap: 9px;
    margin-top: 16px;
}

.fp-type-grid button {
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 12px;
    background: #ffffff;
    color: #071333;
    font-weight: 700;
    text-align: left;
}

.fp-type-grid button.is-selected {
    border-color: rgba(0, 51, 153, 0.35);
    background: #edf4ff;
    color: var(--fotoperizia-blue);
}

.fp-button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.fp-button-row > * {
    flex: 1 1 130px;
}

.fp-button-row [hidden] {
    display: none !important;
}

.fp-button-row .fp-voice-dock {
    flex: 1 1 100%;
    padding: 0;
}

.fp-button-row .fp-customer-reset-form {
    flex: 1 1 100%;
    width: 100%;
}

.fp-button-row .fp-customer-reset-form .fp-reset-cta {
    width: 100%;
}

.fp-intro-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 8px 10px;
}

.fp-intro-actions .fp-primary-cta {
    order: 1;
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    min-height: 44px;
    height: 44px;
    margin-top: 0;
}

.fp-intro-actions .fp-intro-reset-form {
    order: 3;
    grid-column: 1 / -1;
    grid-row: 3;
    flex: none;
    width: 100%;
}

.fp-intro-actions .fp-intro-reset-form .fp-reset-cta {
    width: 100%;
    min-height: 44px;
    height: 44px;
}

.fp-intro-actions .fp-voice-dock {
    order: 2;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    padding: 0;
}

.fp-intro-actions .fp-voice-button {
    width: 100%;
    min-height: 44px;
    height: 44px;
    padding-right: 8px;
    padding-left: 8px;
}

.fp-consent-panel,
.fp-gps-panel,
.fp-denuncia-card,
.fp-safety-card,
.fp-ai-placeholder,
.fp-progress-card {
    margin-top: 16px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    background: #ffffff;
    padding: 14px;
    box-shadow: var(--shadow-soft);
}

.fp-consent-panel {
    display: grid;
    gap: 8px;
}

.fp-disclosure {
    min-width: 0;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    background: #f8fbff;
}

.fp-disclosure > summary {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 12px;
    color: #173a5e;
    cursor: pointer;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    list-style: none;
}

.fp-disclosure > summary::-webkit-details-marker {
    display: none;
}

.fp-disclosure > summary::after {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform 160ms ease;
}

.fp-disclosure[open] > summary {
    border-bottom: 1px solid rgba(219, 229, 244, 0.9);
}

.fp-disclosure[open] > summary::after {
    transform: rotate(225deg) translate(-2px, -2px);
}

.fp-disclosure > summary:focus-visible {
    border-radius: 9px;
    outline: 3px solid rgba(0, 51, 153, 0.18);
    outline-offset: 2px;
}

.fp-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 9px;
    border: 1px solid #e3ebf7;
    border-radius: 10px;
    background: #f9fbff;
}

.fp-consent-copy {
    display: grid;
    min-width: 0;
    gap: 6px;
}

.fp-consent-copy label {
    cursor: pointer;
}

.fp-consent-details {
    background: #ffffff;
}

.fp-consent-details > summary {
    min-height: 34px;
    padding: 0 9px;
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
}

.fp-consent-details small {
    margin: 0;
    padding: 8px 9px 9px;
}

.fp-consent-email-field {
    margin-top: 2px;
    padding: 10px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    background: #ffffff;
}

.fp-consent-email-field input[aria-invalid="true"] {
    border-color: #d92d20;
    box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.10);
}

.fp-consent-email-field [data-fp-privacy-email-error] {
    color: #b42318;
    font-weight: 700;
}

.fp-consent input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--fotoperizia-blue);
}

.fp-consent strong,
.fp-denuncia-card strong,
.fp-ai-placeholder strong {
    display: block;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-consent small,
.fp-denuncia-card p,
.fp-ai-placeholder span {
    display: block;
    margin-top: 5px;
    color: #536179;
    font-size: var(--font-body);
    line-height: 1.35;
}

.fp-safety-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    border-color: #f1d1a6;
    background: linear-gradient(180deg, #fffaf0 0%, #ffffff 100%);
}

.fp-safety-card strong {
    color: #7a4e14;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

[data-fp-screen="safety"] .fp-customer-copy p {
    margin-top: 10px;
    color: #263656;
    font-size: 16.5px;
    line-height: 1.52;
}

[data-fp-screen="safety"] .fp-safety-card strong {
    font-size: 15.5px;
    line-height: 1.45;
}

.fp-safety-icon {
    position: relative;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 999px;
    background: #fff2c8;
    box-shadow: inset 0 0 0 1px rgba(212, 135, 30, 0.18);
}

.fp-safety-icon::before {
    content: "!";
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 999px;
    background: #f08a24;
    color: #ffffff;
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.2;
}

.fp-consent-panel p {
    margin: 0;
    color: #66728a;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-consent-panel p[data-state="ok"] {
    color: var(--fotoperizia-green);
}

.fp-consent-panel p[data-state="error"] {
    color: #b42318;
}

.fp-gps-panel {
    display: grid;
    gap: 12px;
}

.fp-gps-map {
    position: relative;
    overflow: hidden;
    min-height: 196px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    background: #eef4fb;
}

.fp-gps-map-tiles,
.fp-gps-map-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.fp-gps-map-tiles {
    background: #dce8f4;
}

.fp-gps-map-tile {
    position: absolute;
    width: 256px;
    height: 256px;
    pointer-events: none;
    user-select: none;
}

.fp-gps-map-overlay {
    pointer-events: none;
}

.fp-gps-map-provider {
    position: absolute;
    right: 6px;
    bottom: 4px;
    z-index: 2;
    padding: 1px 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.68);
    color: rgba(7, 19, 51, 0.58);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
    pointer-events: none;
}

.fp-gps-radius,
.fp-gps-pin {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.fp-gps-radius {
    width: 78px;
    height: 78px;
    border: 1px solid rgba(0, 51, 153, 0.26);
    border-radius: 999px;
    background: rgba(0, 51, 153, 0.08);
}

.fp-gps-pin {
    display: block;
    width: 24px;
    height: 24px;
    border: 3px solid #ffffff;
    border-radius: 999px 999px 999px 0;
    background: var(--fotoperizia-red);
    box-shadow: 0 10px 20px rgba(7, 19, 51, 0.22);
    transform: translate(-50%, -64%) rotate(-45deg);
}

.fp-gps-pin::after {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 999px;
    background: #ffffff;
}

.fp-gps-reference {
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px 12px;
    background: #ffffff;
}

.fp-gps-reference span,
.fp-gps-reference small {
    display: block;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.3;
}

.fp-gps-reference strong {
    display: block;
    margin: 4px 0;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.fp-gps-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fp-gps-meta-grid div {
    min-width: 0;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px;
    background: #f8fbff;
}

.fp-gps-meta-grid span {
    display: block;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-gps-meta-grid strong {
    display: block;
    margin-top: 4px;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.fp-gps-details .fp-gps-meta-grid {
    padding: 10px;
}

.fp-gps-details[open] {
    background: #ffffff;
}

.fp-gps-status {
    margin: 0;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f8fbff;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.4;
}

.fp-gps-status[data-state="loading"] {
    border-color: #cfe1ff;
    background: #f3f8ff;
    color: var(--fotoperizia-blue);
}

.fp-gps-status[data-state="success"] {
    border-color: #bfe8ce;
    background: #eefbf3;
    color: #14633a;
}

.fp-gps-status[data-state="warning"] {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.fp-gps-status[data-state="error"] {
    border-color: #fecaca;
    background: #fff5f5;
    color: #b42318;
}

.fp-gps-recovery {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.fp-gps-recovery[hidden],
.fp-gps-help[hidden] {
    display: none;
}

.fp-gps-recovery-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fp-gps-recovery-actions .fp-text-action {
    grid-column: 1 / -1;
    min-height: 40px;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    padding: 9px 12px;
    background: #fff7ed;
    color: #9a3412;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    cursor: pointer;
}

.fp-gps-help {
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 12px;
    background: #f8fbff;
    color: #536179;
    font-size: var(--font-caption);
    line-height: 1.45;
}

.fp-gps-help strong {
    display: block;
    margin-bottom: 4px;
    color: #071333;
    font-size: var(--font-caption);
}

.fp-gps-help p,
.fp-gps-help ul {
    margin: 0;
}

.fp-gps-help ul {
    display: grid;
    gap: 5px;
    margin-top: 8px;
    padding-left: 18px;
}

.fp-device-checks {
    display: grid;
    gap: 9px;
    margin-top: 14px;
}

.fp-device-checks div {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 2px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px;
    background: #f8fbff;
}

.fp-device-checks div > span {
    grid-row: 1 / 3;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    border-radius: 999px;
    background: var(--fotoperizia-green);
    box-shadow: inset 0 0 0 4px #dff7e9;
}

.fp-device-checks strong {
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-device-checks small {
    color: #66728a;
    font-size: var(--font-caption);
}

.fp-denuncia-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    background: #f8fbff;
}

.fp-denuncia-card > div {
    min-width: 0;
}

.fp-denuncia-card span {
    display: block;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-denuncia-card em {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 6px 9px;
    background: #eef2ff;
    color: #3630a3;
    font-size: var(--font-caption);
    font-style: normal;
    font-weight: 700;
}

.fp-manual-denuncia-field textarea {
    min-height: 118px;
    resize: vertical;
    line-height: 1.45;
}

.fp-denuncia-preloaded {
    display: grid;
    gap: 4px;
    margin-top: 14px;
    border: 1px solid #b9dfca;
    border-radius: 12px;
    padding: 12px;
    background: #eefbf3;
}

.fp-denuncia-method[hidden],
[data-fp-analyze-denuncia][hidden],
.fp-denuncia-preloaded[hidden],
.fp-denuncia-recovery[hidden] {
    display: none !important;
}

.fp-denuncia-preloaded span {
    color: #14633a;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fp-denuncia-preloaded strong {
    overflow: hidden;
    color: #071333;
    font-size: var(--font-caption);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fp-denuncia-preloaded small {
    color: #466055;
    font-size: var(--font-caption);
    line-height: 1.4;
}

.fp-denuncia-recovery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

@media (max-width: 520px) {
    .fp-denuncia-recovery {
        grid-template-columns: 1fr;
    }
}

.fp-wide-action {
    width: 100%;
    margin-top: 14px;
}

.fp-denuncia-state {
    display: grid;
    gap: 4px;
    margin-top: 12px;
    border: 1px solid #dbe5f4;
    border-radius: 12px;
    padding: 12px;
    background: #ffffff;
    color: var(--fotoperizia-blue-900);
    box-shadow: 0 8px 20px rgba(7, 19, 51, 0.04);
}

.fp-denuncia-state span {
    width: max-content;
    max-width: 100%;
    border-radius: 999px;
    padding: 4px 9px;
    background: #edf2fb;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.fp-denuncia-state strong,
.fp-denuncia-state small {
    display: block;
}

.fp-denuncia-state strong {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-denuncia-state small {
    color: #5d6b85;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.4;
}

.fp-denuncia-state[data-state="loading"] {
    border-color: #bfd6ff;
    background: #f3f8ff;
}

.fp-denuncia-state[data-state="loading"] span {
    background: #dbeafe;
    color: var(--fotoperizia-blue);
}

.fp-denuncia-state[data-state="ready"],
.fp-denuncia-state[data-state="success"] {
    border-color: #bfe8ce;
    background: #eefbf3;
}

.fp-denuncia-state[data-state="ready"] span,
.fp-denuncia-state[data-state="success"] span {
    background: #d9f8e5;
    color: #14633a;
}

.fp-denuncia-state[data-state="error"] {
    border-color: #fecaca;
    background: #fff5f5;
}

.fp-denuncia-state[data-state="error"] span {
    background: #fee2e2;
    color: #b42318;
}

.fp-denuncia-processing {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    border: 1px solid #bfd6ff;
    border-radius: 12px;
    padding: 12px;
    background: #f3f8ff;
    color: var(--fotoperizia-blue-900);
}

.fp-denuncia-processing[hidden] {
    display: none;
}

.fp-denuncia-processing strong,
.fp-denuncia-processing small {
    display: block;
}

.fp-denuncia-processing strong {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-denuncia-processing small {
    margin-top: 3px;
    color: #5d6b85;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-processing-icon {
    position: relative;
    display: inline-flex;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    flex: 0 0 auto;
    width: 42px;
    height: 30px;
    border-radius: 8px;
    padding: 4px 7px;
}

.fp-processing-icon i {
    display: block;
    width: 6px;
    height: 14px;
    border-radius: 999px;
    background: var(--fotoperizia-blue);
    transform-origin: center bottom;
    animation: fp-processing-bar 780ms ease-in-out infinite;
}

.fp-processing-icon i:nth-child(2) {
    height: 23px;
    background: #5b8fe8;
    animation-delay: 120ms;
}

.fp-processing-icon i:nth-child(3) {
    height: 17px;
    background: #f08a24;
    animation-delay: 240ms;
}

@keyframes fp-processing-bar {
    0%,
    100% {
        opacity: 0.56;
        transform: scaleY(0.55);
    }

    50% {
        opacity: 1;
        transform: scaleY(1);
    }
}

@keyframes fp-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes fp-work-pulse {
    0%,
    100% {
        opacity: 0.58;
        transform: translateY(0);
    }

    50% {
        opacity: 1;
        transform: translateY(-2px);
    }
}

.fp-denuncia-status {
    margin-top: 12px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f8fbff;
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.4;
}

.fp-denuncia-status[data-state="loading"] {
    border-color: #cfe1ff;
    background: #f3f8ff;
    color: var(--fotoperizia-blue);
}

.fp-denuncia-status[data-state="ready"] {
    border-color: #dbeafe;
    background: #eff6ff;
    color: #184f90;
}

.fp-denuncia-status[data-state="success"] {
    border-color: #bfe8ce;
    background: #eefbf3;
    color: #14633a;
}

.fp-denuncia-status[data-state="error"] {
    border-color: #fecaca;
    background: #fff5f5;
    color: #b42318;
}

.fp-denuncia-summary {
    display: grid;
    gap: 10px;
    margin-top: 14px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    padding: 14px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(7, 19, 51, 0.04);
}

.fp-denuncia-summary[hidden] {
    display: none;
}

.fp-denuncia-summary > div {
    display: grid;
    gap: 3px;
}

.fp-denuncia-summary span {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-denuncia-summary strong,
.fp-denuncia-summary p {
    margin: 0;
    color: #071333;
    font-size: var(--font-body);
    font-weight: 700;
    line-height: 1.35;
}

.fp-denuncia-summary small {
    border-radius: 8px;
    padding: 8px 10px;
    background: #fff8e8;
    color: #7a4d00;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-denuncia-confirm-actions,
.fp-correction-panel {
    margin-top: 14px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    padding: 14px;
    background: #ffffff;
}

.fp-denuncia-confirm-actions[hidden],
.fp-correction-panel[hidden] {
    display: none;
}

.fp-denuncia-confirm-actions {
    display: grid;
    gap: 12px;
}

.fp-denuncia-confirm-actions > strong {
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-denuncia-confirm-actions > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.fp-correction-panel {
    background: #f8fbff;
}

.fp-correction-panel .fp-field {
    margin-top: 0;
}

.fp-correction-panel button {
    width: 100%;
    margin-top: 12px;
}

.fp-ai-placeholder {
    background: #f6fbff;
    border-color: #cfe1ff;
}

.fp-progress-card {
    display: grid;
    gap: 10px;
    background: #f8fbff;
}

.fp-progress-card div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.fp-progress-card span {
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-progress-card strong {
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-guidance-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 12px;
}

.fp-photo-guidance-grid div {
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 9px;
    background: #f8fbff;
}

.fp-photo-guidance-grid span {
    display: block;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-photo-guidance-grid strong {
    display: block;
    margin-top: 3px;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
}

.fp-meter {
    overflow: hidden;
    height: 8px;
    border-radius: 999px;
    background: #dbe5f4;
}

.fp-meter i {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--fotoperizia-blue);
    transition: width 180ms ease;
}

.fp-photo-ai-summary {
    display: grid;
    gap: 4px;
    margin-top: 12px;
    border: 1px solid #dbe5f3;
    border-radius: 10px;
    padding: 11px 12px;
    background: #f8fbff;
    color: #5b6980;
    font-size: var(--font-caption);
    line-height: 1.4;
}

.fp-photo-ai-summary strong {
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
}

.fp-photo-ai-summary span {
    color: #66728a;
}

.fp-photo-ai-summary small {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-work-indicator {
    display: inline-grid;
    grid-template-columns: repeat(3, 8px);
    gap: 5px;
    align-items: end;
    width: max-content;
    height: 22px;
    margin-top: 4px;
    opacity: 0.5;
}

.fp-work-indicator i {
    display: block;
    width: 8px;
    height: 14px;
    border-radius: 4px;
    background: #9aa8bc;
    transform-origin: center bottom;
    transform: scaleY(0.72);
}

.fp-work-indicator i:nth-child(2) {
    height: 21px;
    background: #a6b3c3;
}

.fp-work-indicator i:nth-child(3) {
    height: 16px;
    background: #b2bdca;
}

@keyframes fp-work-bar {
    0%,
    100% {
        transform: scaleY(0.55);
        opacity: 0.55;
    }

    50% {
        transform: scaleY(1);
        opacity: 1;
    }
}

.fp-photo-ai-summary[data-state="processing"] {
    border-color: #bfd4f5;
    background: #f0f6ff;
}

.fp-photo-ai-summary[data-state="processing"] .fp-work-indicator {
    opacity: 1;
}

.fp-ai-wait-modal[data-state="waiting"] .fp-work-indicator,
.fp-ai-wait-modal[data-state="estimate-waiting"] .fp-work-indicator,
.fp-ai-wait-modal[data-state="success"] .fp-work-indicator {
    opacity: 1;
}

.fp-photo-ai-summary[data-state="processing"] .fp-work-indicator i,
.fp-ai-wait-modal[data-state="waiting"] .fp-work-indicator i,
.fp-ai-wait-modal[data-state="estimate-waiting"] .fp-work-indicator i {
    background: var(--fotoperizia-blue, #003399);
    animation: fp-work-bar 880ms ease-in-out infinite;
}

.fp-photo-ai-summary[data-state="processing"] .fp-work-indicator i:nth-child(2),
.fp-ai-wait-modal[data-state="waiting"] .fp-work-indicator i:nth-child(2),
.fp-ai-wait-modal[data-state="estimate-waiting"] .fp-work-indicator i:nth-child(2) {
    background: #5b8fe8;
    animation-delay: 120ms;
}

.fp-photo-ai-summary[data-state="processing"] .fp-work-indicator i:nth-child(3),
.fp-ai-wait-modal[data-state="waiting"] .fp-work-indicator i:nth-child(3),
.fp-ai-wait-modal[data-state="estimate-waiting"] .fp-work-indicator i:nth-child(3) {
    background: #f08a24;
    animation-delay: 240ms;
}

.fp-photo-ai-summary[data-state="ready"] {
    border-color: #b8dfcf;
    background: #f0fbf6;
}

.fp-photo-ai-summary[data-state="ready"] .fp-work-indicator i,
.fp-ai-wait-modal[data-state="success"] .fp-work-indicator i {
    background: #20a166;
    animation: none;
    transform: scaleY(1);
    opacity: 1;
}

.fp-photo-ai-summary[data-state="warning"],
.fp-photo-ai-summary[data-state="error"] {
    border-color: #f1d1a6;
    background: #fff8ed;
}

.fp-photo-ai-summary[data-state="warning"] .fp-work-indicator i,
.fp-photo-ai-summary[data-state="error"] .fp-work-indicator i {
    background: #d4871e;
}

.fp-photo-ai-summary-final {
    margin-bottom: 14px;
}

.fp-photo-count,
.fp-photo-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.fp-photo-count {
    margin-top: 16px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #edf3ff;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-step {
    padding: 14px;
}

.fp-required-hint {
    display: none;
    margin: 10px 0 0;
    border-radius: 9px;
    padding: 9px 10px;
    background: #fff7ed;
    color: #9a3412;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-step.is-missing-required .fp-required-hint {
    display: block;
}

.fp-photo-heading span {
    border-radius: 999px;
    padding: 5px 10px;
    background: #fff2c8;
    color: #9a4b00;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-heading small {
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
}

.fp-upload-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.fp-upload-actions label,
.fp-upload-actions button {
    flex: 1 1 130px;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border: 1px solid #cbd7e8;
    padding: 0 12px;
    background: #edf4ff;
    color: var(--fotoperizia-blue);
    line-height: 1.2;
    text-align: center;
}

.fp-upload-actions label span {
    display: inline-flex;
    min-height: 100%;
    align-items: center;
    justify-content: center;
}

.fp-upload-actions button {
    background: #ffffff;
}

.fp-upload-actions .fp-photo-action-camera {
    border-color: var(--fotoperizia-blue);
    background: var(--fotoperizia-blue);
    color: #ffffff;
}

.fp-upload-actions .fp-photo-action-gallery {
    background: #edf4ff;
    color: var(--fotoperizia-blue);
}

.fp-upload-actions .fp-unavailable-action {
    flex-basis: 100%;
    width: 100%;
    border-color: #f1d1a6;
    background: #fff8ed;
    color: #7a4e14;
}

.fp-upload-actions input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.fp-preview {
    display: grid;
    min-height: 118px;
    margin-top: 14px;
    place-items: center;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    background: #f8fafc;
    color: #66728a;
    text-align: center;
}

.fp-preview.has-photo {
    padding: 10px;
}

.fp-preview.is-photo-rejected {
    border-color: #f1d1a6;
    background: #fff8ed;
}

.fp-preview.is-photo-rejected strong {
    color: #7a4e14;
}

.fp-preview.is-photo-unavailable {
    border-style: solid;
    border-color: #b8dfcf;
    background: #f0fbf6;
}

.fp-unavailable-icon {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 999px;
    background: #20a166;
}

.fp-unavailable-icon::before {
    content: "";
    width: 16px;
    height: 9px;
    border: solid #ffffff;
    border-width: 0 0 3px 3px;
    transform: rotate(-45deg) translate(1px, -1px);
}

.fp-preview-visual {
    display: block;
    width: 100%;
    height: 118px;
    border-radius: 8px;
    background-image: var(--fotoperizia-photo-sheet);
    background-repeat: no-repeat;
    background-size: 300% 200%;
}

.fp-preview strong,
.fp-preview small {
    display: block;
}

.fp-preview strong {
    margin-top: 8px;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
}

.fp-preview small {
    margin-top: 4px;
    color: #66728a;
    font-size: var(--font-caption);
}

.fp-photo-ai-feedback {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    border: 1px solid #dbe5f3;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f8fbff;
    color: #5b6980;
    font-size: var(--font-caption);
    line-height: 1.35;
}

.fp-photo-ai-feedback::before {
    content: "";
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    margin-top: 4px;
    border-radius: 999px;
    background: #8aa0bc;
}

.fp-photo-ai-feedback strong,
.fp-photo-ai-feedback span {
    display: block;
}

.fp-photo-ai-feedback > div {
    flex: 1 1 auto;
    min-width: 0;
}

.fp-photo-ai-feedback strong {
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
}

.fp-photo-ai-feedback small {
    display: block;
    margin-top: 3px;
    color: #66728a;
}

.fp-photo-ai-retry {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    margin-top: 9px;
    padding: 7px 11px;
    border: 1px solid #d9a55f;
    border-radius: 8px;
    background: #ffffff;
    color: #7a4e14;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}

.fp-photo-ai-retry:hover,
.fp-photo-ai-retry:focus-visible {
    border-color: #b86f12;
    color: #5c390d;
}

.fp-photo-ai-retry:disabled {
    cursor: wait;
    opacity: 0.68;
}

.fp-photo-delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    margin-top: 9px;
    border: 1px solid #efb3a4;
    border-radius: 8px;
    padding: 7px 11px;
    background: #ffffff;
    color: #9a3412;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}

.fp-photo-delete:hover,
.fp-photo-delete:focus-visible {
    border-color: #d36b52;
    color: #7c2d12;
}

.fp-photo-delete:disabled {
    cursor: wait;
    opacity: 0.68;
}

.fp-upload-progress {
    display: block;
    overflow: hidden;
    width: min(220px, 100%);
    height: 5px;
    margin-top: 8px;
    border-radius: 999px;
    background: rgba(0, 51, 160, 0.12);
}

.fp-upload-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--fotoperizia-blue), #f08a24);
    transition: width 180ms ease;
}

.fp-photo-ai-feedback.is-loading::before {
    flex-basis: 28px;
    width: 28px;
    height: 18px;
    border-radius: 5px;
    background:
        linear-gradient(var(--fotoperizia-blue), var(--fotoperizia-blue)) 4px 50% / 5px 10px no-repeat,
        linear-gradient(#5b8fe8, #5b8fe8) 12px 50% / 5px 16px no-repeat,
        linear-gradient(#f08a24, #f08a24) 20px 50% / 5px 12px no-repeat;
    animation: fp-work-pulse 900ms ease-in-out infinite;
}

.fp-photo-ai-feedback.is-green {
    border-color: #b8dfcf;
    background: #f0fbf6;
    color: #275244;
}

.fp-photo-ai-feedback.is-green::before {
    background: #20a166;
    animation: none;
    transform: none;
}

.fp-photo-ai-feedback.is-orange {
    border-color: #f1d1a6;
    background: #fff8ed;
    color: #7a4e14;
}

.fp-photo-ai-feedback.is-orange::before,
.fp-photo-ai-feedback.is-error::before {
    background: #d4871e;
}

.fp-photo-ai-feedback.is-blue {
    border-color: #bfd4f5;
    background: #f0f6ff;
    color: #285b9c;
}

.fp-photo-ai-feedback.is-blue::before {
    background: var(--fotoperizia-blue);
}

.fp-unavailable-panel {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid rgba(245, 158, 11, 0.28);
    border-radius: 14px;
    background: #fff8e8;
}

.fp-unavailable-panel[hidden] {
    display: none;
}

.fp-unavailable-panel p {
    margin: 0;
    color: #7a5505;
    line-height: 1.5;
}

.fp-unavailable-panel label {
    display: grid;
    gap: 6px;
    color: #071333;
    font-weight: 700;
}

.fp-unavailable-panel textarea {
    width: 100%;
    min-height: 88px;
    resize: vertical;
    border: 1px solid #d8e1ef;
    border-radius: 12px;
    padding: 10px 12px;
    color: #071333;
    font: inherit;
}

.fp-unavailable-panel small {
    color: #b45309;
    font-weight: 700;
}

.fp-unavailable-panel-actions {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 8px;
}

.fp-file-status {
    display: block;
    margin: 8px 0 0;
    color: #1f6b4b;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.fp-file-status[hidden] {
    display: none;
}

.fp-final-gallery {
    display: grid;
    gap: 12px;
}

.fp-final-gallery-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.fp-final-gallery-head div {
    display: grid;
    gap: 4px;
}

.fp-final-gallery-head span {
    color: #071333;
    font-weight: 700;
}

.fp-final-gallery-head small {
    color: var(--fotoperizia-muted);
    line-height: 1.4;
}

.fp-final-gallery-head strong {
    min-width: 58px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: #071333;
    color: #fff;
    font-size: var(--font-caption);
    white-space: nowrap;
}

.fp-final-gallery-upload {
    display: grid;
    gap: 8px;
}

.fp-final-gallery-upload input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.fp-final-gallery-selection {
    display: grid;
    gap: 10px;
    margin: 0;
}

.fp-final-gallery-select-bar,
.fp-final-gallery-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fp-final-gallery-select-bar[hidden],
.fp-final-gallery-footer[hidden] {
    display: none;
}

.fp-final-gallery-select-bar span {
    color: var(--fotoperizia-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-final-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin: 2px 0 0;
    padding: 0;
}

.fp-final-gallery-empty {
    grid-column: 1 / -1;
    padding: 14px;
    border: 1px dashed #c9d5e6;
    border-radius: 14px;
    background: #f8fbff;
    color: #6b7890;
    font-weight: 700;
    text-align: center;
}

.fp-final-gallery-tile {
    position: relative;
    display: grid;
    gap: 6px;
    min-width: 0;
}

.fp-final-gallery-frame {
    position: relative;
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 8px;
    background: #dfe7f3;
    color: #fff;
    text-decoration: none;
}

.fp-final-gallery-frame img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.fp-final-gallery-frame.is-document {
    display: grid;
    place-items: center;
    border: 1px solid #cbd8ea;
    background: linear-gradient(180deg, #f9fbff, #e8eef8);
    color: #071333;
}

.fp-final-gallery-frame::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 48%;
    background: linear-gradient(180deg, rgba(7, 19, 51, 0), rgba(7, 19, 51, 0.72));
    pointer-events: none;
}

.fp-final-gallery-frame.is-document::after {
    height: 58%;
    background: linear-gradient(180deg, rgba(7, 19, 51, 0), rgba(7, 19, 51, 0.74));
}

.fp-final-gallery-document-icon {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 56px;
    border: 1px solid #d5dfef;
    border-radius: 8px;
    background: #fff;
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0;
    box-shadow: 0 8px 18px rgba(7, 19, 51, 0.1);
}

.fp-final-gallery-frame strong {
    position: absolute;
    z-index: 1;
    left: 7px;
    right: 7px;
    bottom: 7px;
    overflow: hidden;
    color: #fff;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fp-final-gallery-checkbox {
    position: absolute;
    inset: 8px auto auto 8px;
    z-index: 2;
    width: 24px;
    height: 24px;
    opacity: 0;
}

.fp-final-gallery-check {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    width: 24px;
    height: 24px;
    border: 2px solid rgba(255, 255, 255, 0.96);
    border-radius: 999px;
    background: rgba(7, 19, 51, 0.38);
    cursor: pointer;
}

.fp-final-gallery-checkbox:focus-visible ~ .fp-final-gallery-frame,
.fp-final-gallery-checkbox:checked ~ .fp-final-gallery-frame {
    outline: 3px solid var(--fotoperizia-blue);
    outline-offset: -3px;
}

.fp-final-gallery-checkbox:checked ~ .fp-final-gallery-check {
    border-color: var(--fotoperizia-blue);
    background: var(--fotoperizia-blue);
}

.fp-final-gallery-checkbox:checked ~ .fp-final-gallery-check::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 4px;
    width: 6px;
    height: 12px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.fp-final-gallery-tile > small {
    min-width: 0;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[data-fp-document-hint][data-state="error"] {
    color: #b45309;
}

[data-fp-document-hint][data-state="ok"] {
    color: #08764a;
}

[data-fp-document-hint][data-state="saving"] {
    color: #285b9c;
}

.fp-package-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-customer-review-gallery {
    display: grid;
    gap: 10px;
    margin-top: 10px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px;
    background: #f8fbff;
}

.fp-customer-review-gallery > summary {
    margin: -10px -10px 0;
    padding: 0 12px;
}

.fp-customer-review-gallery-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fp-customer-review-gallery-head span {
    display: block;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-customer-review-gallery-head small {
    display: block;
    margin-top: 2px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-customer-review-gallery-head button {
    flex: 0 0 auto;
    min-height: 36px;
}

.fp-customer-review-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.fp-customer-review-photo-empty {
    grid-column: 1 / -1;
    border: 1px dashed #c9d5e6;
    border-radius: 10px;
    padding: 12px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.fp-transmission-list {
    display: grid;
    gap: 12px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.fp-transmission-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 14px;
    color: #536179;
    font-size: var(--font-caption);
}

.fp-transmission-list li span {
    display: block;
    width: 22px;
    height: 22px;
    border: 2px solid #b9c5d7;
    border-radius: 999px;
}

.fp-transmission-list li.is-active span {
    border-color: var(--fotoperizia-blue);
    border-top-color: transparent;
    animation: fp-spin 0.8s linear infinite;
}

.fp-transmission-list li.is-complete span {
    border-color: var(--fotoperizia-green);
    background: var(--fotoperizia-green);
}

.fp-done-card {
    padding: 20px;
    background: #effdf6;
    border-color: #bcebd4;
}

.fp-done-card > span {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 999px;
    background: #008a4c;
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-done-card > span[data-state="warning"],
.fp-done-card > span[data-state="error"] {
    background: #c45a09;
}

.fp-done-card h1 {
    margin-top: 18px;
    color: #005c3a;
    font-size: var(--font-title-small);
}

.fp-done-card dt {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-done-card .fp-estimate-prompt {
    font-size: 19.6px;
}

.fp-done-card .fp-choice-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.fp-done-card .fp-choice-row .fp-primary,
.fp-done-card .fp-choice-row .fp-secondary {
    min-height: 46px;
    justify-content: center;
    font-weight: 700;
}

.fp-notes-disclosure {
    margin-top: 10px;
    background: #ffffff;
}

.fp-notes-disclosure .fp-field {
    margin: 0;
    padding: 10px;
}

.fp-final-message,
.fp-estimate-proposal {
    display: grid;
    gap: 10px;
}

.fp-final-message[hidden],
.fp-estimate-proposal[hidden] {
    display: none !important;
}

.fp-final-message p,
.fp-estimate-proposal p {
    margin: 0;
    color: #173a2d;
    font-size: var(--font-body);
    line-height: 1.5;
    font-weight: 700;
}

.fp-estimate-proposal p {
    color: #071333;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-estimate-proposal > p[data-fp-estimate-proposal-text] {
    border: 1px solid #bfe8ce;
    border-radius: 10px;
    padding: 12px;
    background: #f0fbf6;
    line-height: 1.55;
}

.fp-estimate-sources {
    display: grid;
    gap: 8px;
    margin-top: 6px;
    border-color: rgba(0, 138, 76, 0.18);
    background: #ffffff;
}

.fp-estimate-sources[hidden] {
    display: none !important;
}

.fp-estimate-sources > span {
    color: #285745;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-estimate-sources p {
    padding: 0 12px;
    color: #285745;
    font-size: var(--font-body);
    font-weight: 700;
    line-height: 1.4;
}

.fp-estimate-sources ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0 12px 12px;
    list-style: none;
}

.fp-estimate-sources li {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.fp-estimate-sources a {
    overflow-wrap: anywhere;
    color: #003399;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.fp-estimate-sources small {
    color: #526078;
    font-size: var(--font-caption);
    line-height: 1.35;
}

.fp-done-meta {
    border-top: 1px solid rgba(0, 138, 76, 0.16);
    padding-top: 12px;
}

.fp-estimate-question-form {
    display: grid;
    gap: 12px;
    border: 1px solid #dbe5f3;
    border-radius: 10px;
    padding: 12px;
    background: #f8fbff;
}

.fp-estimate-question-list {
    display: grid;
    gap: 8px;
}

.fp-estimate-question-card {
    display: grid;
    gap: 6px;
    margin: 0;
}

.fp-estimate-question-card p {
    margin: 0;
    color: #394765;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-estimate-question-card strong {
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-estimate-question-form .fp-field {
    margin: 0;
}

.fp-estimate-question-form textarea {
    min-height: 96px;
    resize: vertical;
}

.fp-estimate-question-form small {
    min-height: 16px;
    color: #a94b13;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-ai-wait-modal[data-state="estimate-question"] .fp-ai-wait-icon {
    background: #eef5ff;
}

.fp-ai-wait-modal[data-state="estimate-question"] .fp-ai-wait-icon::before {
    content: "?";
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border: 0;
    color: var(--fotoperizia-blue);
    font-size: 17px;
    font-weight: 700;
    animation: none;
}

.fp-app {
    min-height: 100vh;
    background: #f5f8fc;
}

.fp-appbar {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    height: 66px;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--fotoperizia-line);
    padding: 0 18px 0 30px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(14px);
}

.fp-appbrand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-section);
    font-weight: 700;
    text-decoration: none;
}

.fp-appbrand i {
    display: block;
    width: 9px;
    height: 25px;
    background: var(--fotoperizia-red);
    transform: skew(-28deg);
}

.fp-app-actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

.fp-toplink {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    border: 1px solid #d8e4f4;
    border-radius: 999px;
    padding: 0 12px;
    background: #f8fbff;
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.fp-icon-button {
    position: relative;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: #071333;
}

.fp-icon-button span {
    position: absolute;
    top: 2px;
    right: 2px;
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 999px;
    background: #ef233c;
    color: #ffffff;
    font-size: var(--font-label);
    font-weight: 700;
}

.fp-operator-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #071333;
    font-size: var(--font-label);
    font-weight: 700;
}

.fp-avatar {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 999px;
    background: #e8edf5;
    color: #111b36;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-workspace {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    min-height: calc(100vh - 66px);
}

.fp-side-nav {
    display: flex;
    min-height: calc(100vh - 66px);
    flex-direction: column;
    justify-content: space-between;
    padding: 22px 10px 26px;
    background: linear-gradient(180deg, #073aa4 0%, #00235f 46%, #001b4d 100%);
    color: #ffffff;
}

.fp-side-nav nav {
    display: grid;
    gap: 10px;
}

.fp-side-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 38px;
    border-radius: 7px;
    padding: 0 10px;
    color: rgba(255, 255, 255, 0.92);
    font-size: var(--font-caption);
    font-weight: 650;
    text-decoration: none;
}

.fp-side-nav a.is-active {
    background: #0b51de;
    box-shadow: 0 10px 18px rgba(0, 16, 68, 0.22);
}

.fp-side-nav svg {
    width: 16px;
    height: 16px;
}

.fp-logout {
    margin-top: 24px;
}

.fp-main {
    min-width: 0;
    padding: 22px 26px;
}

.fp-mobile-menu {
    display: none;
}

.fp-page-head h1 {
    margin: 0;
    color: #111b36;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}

.fp-page-head p {
    margin: 5px 0 0;
    color: #4d5a75;
    font-size: var(--font-body);
}

.fp-page-head-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.fp-source-note {
    display: inline-block;
    margin-top: 8px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-reset-form {
    flex: 0 0 auto;
}

.fp-page-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 10px;
}

.fp-primary-action {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    padding: 0 15px;
    background: var(--fotoperizia-blue);
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 12px 22px rgba(0, 51, 153, 0.16);
}

.fp-reset-button {
    min-height: 40px;
    border: 1px solid #f3b7a7;
    border-radius: 9px;
    padding: 0 14px;
    background: #fff5f1;
    color: #a13d16;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-operator-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.6fr);
    gap: 14px;
    align-items: start;
    margin-top: 20px;
}

.fp-operator-brief,
.fp-action-panel,
.fp-alert-card {
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-operator-brief {
    padding: 20px;
}

.fp-brief-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.fp-brief-topline > span:last-child {
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-operator-brief h2 {
    margin: 0;
    color: #071333;
    font-size: var(--font-title-small);
    font-weight: 700;
    line-height: 1.2;
}

.fp-operator-brief p,
.fp-action-panel p {
    margin: 10px 0 0;
    color: #4d5a75;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-progress-line {
    height: 8px;
    overflow: hidden;
    margin-top: 18px;
    border-radius: 999px;
    background: #e6edf7;
}

.fp-progress-line span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--fotoperizia-blue), #148a45);
}

.fp-brief-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.fp-brief-meta span {
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 10px;
    background: #f8fbff;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-brief-meta strong {
    display: block;
    margin-top: 4px;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.fp-action-panel {
    padding: 14px;
}

.fp-action-list {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}

.fp-action-card {
    display: grid;
    gap: 3px;
    width: 100%;
    border: 1px solid #dce6f5;
    border-radius: 10px;
    padding: 9px 10px;
    background: #f8fbff;
    color: #071333;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.fp-action-card strong {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-action-card span {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 650;
    line-height: 1.28;
}

.fp-action-card.is-primary {
    border-color: var(--fotoperizia-blue);
    background: var(--fotoperizia-blue);
    color: #ffffff;
}

.fp-action-card.is-primary span {
    color: rgba(255, 255, 255, 0.82);
}

.fp-action-card.is-danger {
    border-color: #f3b7a7;
    background: #fff5f1;
    color: #a13d16;
}

.fp-action-card.is-disabled {
    cursor: not-allowed;
    opacity: 0.62;
}

.fp-alert-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.fp-alert-card {
    display: grid;
    gap: 6px;
    padding: 13px;
    color: #071333;
    text-decoration: none;
}

.fp-alert-card span,
.fp-alert-card em {
    color: #66728a;
    font-size: var(--font-caption);
    font-style: normal;
    font-weight: 700;
}

.fp-alert-card strong {
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-alert-card em {
    color: var(--fotoperizia-blue);
}

.fp-alert-card.is-orange {
    border-color: #ffd5b3;
    background: #fff8f1;
}

.fp-alert-card.is-green {
    border-color: #bfe9cf;
    background: #f2fbf6;
}

.fp-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

.fp-stat,
.fp-panel {
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-stat {
    display: flex;
    min-height: 108px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    color: inherit;
    text-decoration: none;
}

.fp-stat-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 8px;
}

.fp-stat-icon.is-blue {
    background: #e8f0ff;
    color: var(--fotoperizia-blue);
}

.fp-stat-icon.is-green {
    background: #e9f8ef;
    color: var(--fotoperizia-green);
}

.fp-stat-icon.is-orange {
    background: #fff1e8;
    color: var(--fotoperizia-orange);
}

.fp-stat span,
.fp-stat small,
.fp-panel-head a,
.fp-selected dt,
.fp-ai-box span,
.fp-ai-box small,
.fp-backtesting-grid span {
    color: #4d5a75;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-stat strong {
    display: block;
    margin-top: 8px;
    color: #071333;
    font-size: var(--font-title);
    font-weight: 700;
}

.fp-ring {
    width: 54px;
    height: 54px;
    border-radius: 999px;
    background: conic-gradient(var(--fotoperizia-blue) var(--fotoperizia-ring-value, 78%), #e6edf7 0);
    -webkit-mask: radial-gradient(farthest-side, transparent 64%, #000 66%);
    mask: radial-gradient(farthest-side, transparent 64%, #000 66%);
}

.fp-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    gap: 14px;
    margin-top: 14px;
}

.fp-panel {
    padding: 16px;
}

.fp-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.fp-panel-head h2 {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    color: #071333;
    font-size: var(--font-label);
    font-weight: 700;
}

.fp-panel-head a {
    color: var(--fotoperizia-blue);
    text-decoration: none;
}

.fp-table-wrap {
    overflow-x: auto;
}

.fp-table-wrap table {
    width: 100%;
    min-width: 520px;
    border-collapse: collapse;
    overflow: hidden;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    font-size: var(--font-caption);
}

.fp-table-wrap th,
.fp-table-wrap td {
    padding: 12px 10px;
    border-bottom: 1px solid #e8eef6;
    text-align: left;
    vertical-align: middle;
}

.fp-table-wrap th {
    color: #26334d;
    font-weight: 700;
}

.fp-table-wrap td {
    color: #071333;
    font-weight: 600;
}

.fp-table-wrap tr.is-selected td {
    background: #f6f9ff;
}

.fp-table-wrap td a {
    color: var(--fotoperizia-blue);
    font-weight: 700;
    text-decoration: none;
}

.fp-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border-radius: 7px;
    padding: 0 9px;
    font-size: var(--font-caption);
    font-weight: 700;
    white-space: nowrap;
}

.fp-status.is-blue {
    background: #dce9ff;
    color: var(--fotoperizia-blue);
}

.fp-status.is-orange {
    background: #fff0df;
    color: #c45200;
}

.fp-status.is-green {
    background: #dbf5e6;
    color: #0c7438;
}

.fp-mini-meter {
    display: inline-flex;
    width: 54px;
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: #e6edf7;
    vertical-align: middle;
}

.fp-mini-meter span {
    display: block;
    border-radius: inherit;
    background: var(--fotoperizia-blue);
}

.fp-table-wrap td:nth-child(5) small {
    display: inline-block;
    margin-left: 7px;
    color: #26334d;
}

.fp-table-wrap td strong {
    display: block;
    font-size: var(--font-caption);
}

.fp-table-wrap td small {
    display: block;
    margin-top: 3px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-selected > strong {
    display: block;
    margin: 4px 0 14px;
    color: var(--fotoperizia-blue);
    font-size: var(--font-lead);
    font-weight: 700;
}

.fp-selected dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
    margin: 0;
}

.fp-selected dt {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.fp-selected dd {
    margin: 0;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(64px, 1fr));
    gap: 12px;
}

.fp-photo-strip .fp-evidence-photo {
    aspect-ratio: 1 / 1.2;
}

.fp-photo-strip .fp-evidence-photo span {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 26px 6px 7px;
    background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.46));
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-strip .fp-evidence-photo span small {
    display: block;
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-photo-strip .fp-evidence-photo figcaption {
    position: absolute;
    z-index: 1;
    top: 7px;
    right: 7px;
    left: 7px;
    display: grid;
    gap: 2px;
    justify-items: start;
    margin: 0;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-photo-strip .fp-evidence-photo figcaption strong {
    border-radius: 999px;
    padding: 4px 7px;
    background: rgba(255, 255, 255, 0.88);
    color: #071333;
    font-size: var(--font-caption);
}

.fp-photo-strip .fp-evidence-photo figcaption small {
    border-radius: 999px;
    padding: 3px 6px;
    background: rgba(7, 19, 51, 0.64);
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-empty-state {
    grid-column: 1 / -1;
    border: 1px dashed #cbd7e8;
    border-radius: 10px;
    padding: 14px;
    background: #f8fafc;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-ai-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 16px;
}

.fp-ai-box strong {
    display: block;
    margin: 6px 0 14px;
    color: #071333;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-ai-box strong.is-orange {
    color: var(--fotoperizia-orange);
    font-size: var(--font-lead);
}

.fp-ai-box ul {
    margin: 5px 0 0;
    padding-left: 17px;
    color: #071333;
    font-size: var(--font-caption);
}

.fp-ai-meta,
.fp-ai-detail-grid {
    display: grid;
    gap: 10px;
}

.fp-ai-meta {
    grid-template-columns: repeat(4, minmax(0, max-content));
    align-items: center;
    margin-bottom: 12px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-analysis-note {
    margin: 14px 0 0;
    border-left: 3px solid var(--fotoperizia-blue);
    padding: 0 0 0 12px;
    color: #405070;
    font-size: var(--font-caption);
    line-height: 1.5;
}

.fp-ai-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 14px;
}

.fp-ai-detail-grid > div,
.fp-ai-extracted {
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 14px;
    background: #f8fafc;
}

.fp-ai-detail-grid span,
.fp-ai-extracted dt {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-ai-detail-grid p,
.fp-ai-detail-grid ul {
    margin: 8px 0 0;
    color: #071333;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-ai-detail-grid ul {
    padding-left: 17px;
}

.fp-ai-extracted {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 0;
}

.fp-ai-extracted dd {
    margin: 4px 0 0;
    color: #071333;
    font-size: var(--font-caption);
    line-height: 1.4;
}

.fp-purple-meter {
    width: 100%;
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: #e9edf5;
}

.fp-purple-meter span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--fotoperizia-purple);
}

.fp-transmission-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
}

.fp-transmission-row svg,
.fp-compliance li span {
    color: var(--fotoperizia-green);
}

.fp-transmission-row p {
    margin: 0;
    color: #071333;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-transmission-row p span,
.fp-transmission-row strong span {
    color: #66728a;
    font-weight: 600;
}

.fp-transmission-row strong {
    border-radius: 7px;
    padding: 6px 10px;
    background: #dbf5e6;
    color: #0c7438;
    font-size: var(--font-caption);
    text-align: center;
}

.fp-compliance ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-document-list,
.fp-checklist-list,
.fp-event-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-document-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
    gap: 14px;
    align-items: start;
    margin-bottom: 12px;
    border: 1px solid #dce6f5;
    border-radius: 12px;
    padding: 12px;
    background: #f6f9ff;
}

.fp-document-summary p {
    margin: 8px 0 0;
    color: #4d5a75;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-document-summary dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.fp-document-summary dt,
.fp-document-fields dt {
    margin: 0;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-document-summary dd,
.fp-document-fields dd {
    margin: 2px 0 0;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-document-parser {
    display: grid;
    gap: 12px;
    margin-top: 12px;
    border-top: 1px solid #e8eef6;
    padding-top: 12px;
}

.fp-document-parser-head,
.fp-document-fields,
.fp-document-lines {
    display: grid;
    gap: 10px;
}

.fp-document-parser-head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
}

.fp-document-parser-head span,
.fp-document-footnote,
.fp-document-lines span {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-document-parser-head strong {
    display: block;
    margin-top: 4px;
    color: #071333;
    font-size: var(--font-lead);
    font-weight: 700;
}

.fp-document-fields {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fp-document-lines {
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-document-lines li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 10px 12px;
    background: #fbfdff;
}

.fp-document-lines strong {
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-document-footnote {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    line-height: 1.45;
}

.fp-document-footnote span {
    border-radius: 999px;
    padding: 3px 7px;
    background: #f1f5fb;
    color: #405070;
}

.fp-document-list li,
.fp-checklist-list li,
.fp-event-list li {
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 12px;
    background: #fbfdff;
}

.fp-document-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.fp-validation-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 12px;
    border: 1px solid #dce6f5;
    border-radius: 12px;
    padding: 12px;
    background: #f6f9ff;
}

.fp-validation-summary > div:first-child {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.fp-validation-summary strong {
    color: #071333;
    font-size: var(--font-caption);
    line-height: 1.35;
}

.fp-validation-summary p {
    margin: 0;
    color: #4d5a75;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-validation-summary dl {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 8px 12px;
    margin: 0;
    text-align: right;
}

.fp-validation-summary dt {
    margin: 0;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-validation-summary dd {
    margin: 2px 0 0;
    color: var(--fotoperizia-blue-900);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-document-list span,
.fp-checklist-list strong,
.fp-event-list strong {
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-document-list strong,
.fp-checklist-list small,
.fp-event-list span {
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-checklist-list li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
}

.fp-checklist-list li > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.fp-checklist-list small {
    display: block;
    line-height: 1.35;
}

.fp-denuncia p {
    margin: 0;
    color: #26334d;
    font-size: var(--font-body);
    line-height: 1.55;
}

.fp-denuncia dl {
    display: grid;
    gap: 10px;
    margin: 14px 0 0;
}

.fp-denuncia dt {
    margin: 0 0 3px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-denuncia dd {
    margin: 0;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-event-list li {
    display: grid;
    gap: 5px;
}

.fp-timeline li {
    position: relative;
    padding-left: 34px;
}

.fp-timeline li::before {
    content: "";
    position: absolute;
    top: 15px;
    left: 12px;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--fotoperizia-blue);
}

.fp-timeline li.is-green::before {
    background: var(--fotoperizia-green);
}

.fp-timeline li.is-orange::before {
    background: var(--fotoperizia-orange);
}

.fp-timeline li > span {
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-timeline li em {
    color: #66728a;
    font-size: var(--font-caption);
    font-style: normal;
    font-weight: 650;
}

.fp-event-list p {
    margin: 0;
    color: #4d5a75;
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-compliance li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    color: #071333;
    font-size: var(--font-caption);
}

.fp-compliance li span {
    display: block;
    width: 14px;
    height: 14px;
    border: 1.5px solid currentColor;
    border-radius: 999px;
}

.fp-compliance li strong {
    display: block;
    font-weight: 700;
}

.fp-compliance li small {
    display: block;
    margin-top: 3px;
    color: #66728a;
    font-size: var(--font-caption);
    line-height: 1.35;
}

.fp-journey-steps {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-journey-steps li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border: 1px solid #e8eef6;
    border-radius: 10px;
    padding: 11px;
    background: #fbfdff;
}

.fp-journey-steps li > span {
    display: block;
    width: 13px;
    height: 13px;
    border-radius: 999px;
    background: #cbd7e8;
}

.fp-journey-steps li.is-done > span {
    background: var(--fotoperizia-green);
}

.fp-journey-steps li.is-current > span {
    background: var(--fotoperizia-blue);
    box-shadow: 0 0 0 4px rgba(0, 51, 153, 0.12);
}

.fp-journey-steps li.is-attention > span {
    background: var(--fotoperizia-orange);
    box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.14);
}

.fp-journey-steps strong {
    display: block;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-journey-steps small,
.fp-journey-steps em {
    color: #66728a;
    font-size: var(--font-caption);
    font-style: normal;
    font-weight: 650;
}

.fp-journey-steps em {
    white-space: nowrap;
}

.fp-backtesting {
    margin-top: 14px;
}

.fp-backtesting-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(90px, 120px)) minmax(280px, 1fr);
    gap: 18px;
    align-items: end;
}

.fp-backtesting-grid strong {
    display: block;
    margin-top: 8px;
    color: var(--fotoperizia-blue);
    font-size: 22px;
    font-weight: 700;
}

.fp-backtesting-grid strong.is-purple {
    color: var(--fotoperizia-purple);
}

.fp-backtesting-grid strong.is-green {
    color: var(--fotoperizia-green);
}

.fp-backtesting-grid svg {
    width: 100%;
    height: 95px;
}

.fp-backtesting-grid svg path {
    stroke: #e4eaf3;
    stroke-width: 1;
}

.fp-backtesting-grid svg polyline {
    fill: none;
    stroke: #806dff;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 3;
}

.fp-backtesting-table {
    margin-top: 16px;
}

@keyframes fp-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 1180px) {
    .fp-kpis,
    .fp-dashboard-grid,
    .fp-alert-board {
        grid-template-columns: 1fr 1fr;
    }

    .fp-operator-hero {
        grid-template-columns: 1fr;
    }

    .fp-brief-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-backtesting-grid {
        grid-template-columns: repeat(2, minmax(90px, 1fr));
    }

    .fp-backtesting-grid svg {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .fp-customer-shell {
        display: block;
        padding: 0;
        background: #edf3fa;
    }

    .fp-customer-phone {
        width: 100%;
        min-height: 100vh;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .fp-appbar {
        height: auto;
        min-height: 74px;
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        padding: 14px 16px;
    }

    .fp-appbrand,
    .fp-login-brand {
        font-size: 17px;
    }

    .fp-appbrand .fp-logo-mark,
    .fp-login-brand .fp-logo-mark {
        width: 158px;
        height: auto;
    }

    .fp-customer-head {
        padding: 0 16px;
    }

    .fp-customer-head a {
        gap: 10px;
        font-size: 17px;
    }

    .fp-customer-head .fp-logo-mark {
        width: 148px;
        height: auto;
    }

    .fp-app-actions {
        display: none;
    }

    .fp-workspace {
        display: block;
    }

    .fp-side-nav {
        display: none;
    }

    .fp-main {
        padding: 18px 16px 28px;
    }

    .fp-page-head-row {
        display: grid;
    }

    .fp-reset-form,
    .fp-reset-button,
    .fp-page-actions,
    .fp-primary-action {
        width: 100%;
    }

    .fp-page-actions {
        display: grid;
    }

    .fp-mobile-menu {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 18px;
        border-radius: 999px;
        padding: 12px 16px;
        background: #ffffff;
        box-shadow: 0 8px 18px rgba(7, 19, 51, 0.08);
        color: #1d2a44;
        font-size: var(--font-label);
        font-weight: 700;
    }

    .fp-mobile-menu span {
        width: 16px;
        height: 2px;
    }

    .fp-page-head h1 {
        font-size: 23px;
    }

    .fp-kpis,
    .fp-dashboard-grid,
    .fp-alert-board,
    .fp-operator-hero,
    .fp-brief-meta,
    .fp-selected dl,
    .fp-ai-box,
    .fp-ai-meta,
    .fp-ai-detail-grid,
    .fp-ai-extracted,
    .fp-backtesting-grid {
        grid-template-columns: 1fr;
    }

    .fp-operator-brief h2 {
        font-size: var(--font-section);
    }

    .fp-stat {
        min-height: 118px;
    }

    .fp-photo-strip {
        grid-template-columns: repeat(3, minmax(76px, 1fr));
    }

    .fp-photo-guidance-grid {
        grid-template-columns: 1fr;
    }

    .fp-transmission-row {
        grid-template-columns: auto 1fr;
    }

    .fp-transmission-row strong {
        grid-column: 1 / -1;
    }

    .fp-validation-summary {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .fp-document-summary,
    .fp-document-parser-head,
    .fp-document-fields {
        grid-template-columns: 1fr;
    }

    .fp-validation-summary dl {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        text-align: left;
    }

    .fp-checklist-list li,
    .fp-document-list li,
    .fp-journey-steps li {
        display: grid;
        grid-template-columns: 1fr;
        align-items: start;
    }

    .fp-journey-steps em {
        white-space: normal;
    }
}


.fp-public {
    --fotoperizia-blue: #001f7a;
    --fotoperizia-blue-2: #0033a0;
    --fotoperizia-red: #f21b2d;
    --fotoperizia-ink: #071536;
    --fotoperizia-muted: #64708b;
    --fotoperizia-line: #d8e0ef;
    --fotoperizia-soft: #f5f7fb;
    width: min(1180px, calc(100vw - 28px));
    margin: 0 auto;
    padding: 24px 0 32px;
    color: var(--fotoperizia-ink);
}

.fp-public-head,
.fp-dashboard-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

.fp-public-head {
    margin-bottom: 22px;
}

.fp-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--fotoperizia-blue);
    font-weight: 700;
    font-size: 1.08rem;
}

.fp-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(0, 31, 122, 0.18);
    border-radius: 999px;
    background: #eef4ff;
    color: var(--fotoperizia-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0;
}

.fp-head-nav,
.fp-dashboard-actions,
.fp-nav-stack,
.button-row.fp-dashboard-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.fp-head-nav a,
.fp-nav-stack a {
    color: var(--fotoperizia-blue);
    font-weight: 700;
    font-size: 0.9rem;
}

.fp-public-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 420px);
    align-items: start;
    gap: 28px;
}

.fp-story-panel {
    display: grid;
    gap: 18px;
    padding: 36px 0;
}

.fp-demo-label {
    display: inline-flex;
    width: fit-content;
    padding: 6px 10px;
    border: 1px solid rgba(0, 31, 122, 0.16);
    border-radius: 999px;
    color: var(--fotoperizia-blue);
    background: rgba(255, 255, 255, 0.78);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.fp-story-panel h1,
.fp-dashboard-hero h2 {
    margin: 0;
    color: var(--fotoperizia-blue);
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.2;
}

.fp-story-panel p,
.fp-dashboard-hero p {
    max-width: 640px;
    margin: 0;
    color: var(--fotoperizia-muted);
    font-size: 1.02rem;
    line-height: 1.7;
}

.fp-link-card,
.fp-phone,
.fp-card,
.fp-kpi-card {
    border: 1px solid rgba(216, 224, 239, 0.92);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-soft);
}

.fp-link-card {
    display: grid;
    gap: 6px;
    max-width: 420px;
    padding: 18px;
    border-radius: 18px;
}

.fp-link-card span,
.fp-link-card small {
    color: var(--fotoperizia-muted);
}

.fp-link-card strong {
    color: var(--fotoperizia-ink);
    font-size: 1.18rem;
}

.fp-nav-stack {
    align-items: stretch;
    flex-direction: column;
}

.fp-nav-stack a {
    display: flex;
    justify-content: space-between;
    padding: 12px 14px;
    border: 1px solid rgba(0, 31, 122, 0.12);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.78);
}

.fp-phone {
    overflow: hidden;
    border-radius: 28px;
    min-height: 720px;
}

.fp-phone-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 20px 20px 14px;
    border-bottom: 1px solid var(--fotoperizia-line);
}

.fp-phone-top > div {
    display: grid;
    gap: 3px;
}

.fp-phone-brand {
    color: var(--fotoperizia-blue);
    font-weight: 700;
}

.fp-lock {
    padding: 6px 10px;
    border-radius: 999px;
    background: #eaf8f0;
    color: #087443;
    font-weight: 700;
    font-size: var(--font-caption);
}

.fp-progress {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    margin: 0;
    padding: 14px 18px 4px;
    list-style: none;
}

.fp-progress li {
    display: grid;
    justify-items: center;
    gap: 6px;
    color: var(--fotoperizia-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-progress li::before {
    content: "";
    display: block;
    width: 24px;
    height: 6px;
    border-radius: 999px;
    background: #ccd5e6;
}

.fp-progress li.is-active {
    color: var(--fotoperizia-blue);
}

.fp-progress li.is-active::before {
    background: linear-gradient(90deg, var(--fotoperizia-blue), var(--fotoperizia-blue-2));
}

.fp-screen {
    display: grid;
    gap: 18px;
    padding: 20px;
}

.fp-screen[hidden],
.fp-photo-step[hidden] {
    display: none;
}

.fp-screen-copy {
    display: grid;
    gap: 8px;
}

.fp-screen-copy h2,
.fp-photo-step h3,
.fp-card h2 {
    margin: 0;
    color: var(--fotoperizia-ink);
    line-height: 1.2;
}

.fp-screen-copy p,
.fp-photo-step p,
.fp-ai-note p {
    margin: 0;
    color: var(--fotoperizia-muted);
    line-height: 1.58;
}

.fp-claim-card {
    padding: 16px;
    border-radius: 18px;
    background: var(--fotoperizia-soft);
    border: 1px solid var(--fotoperizia-line);
}

.fp-claim-card dl,
.fp-success-card dl,
.fp-detail-list,
.fp-info-list {
    display: grid;
    gap: 12px;
    margin: 0;
}

.fp-claim-card dl div,
.fp-success-card dl div,
.fp-detail-list div,
.fp-info-list div {
    display: grid;
    gap: 3px;
}

.fp-claim-card dt,
.fp-success-card dt,
.fp-detail-list dt,
.fp-info-list dt {
    color: var(--fotoperizia-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-claim-card dd,
.fp-success-card dd,
.fp-detail-list dd,
.fp-info-list dd {
    margin: 0;
    color: var(--fotoperizia-ink);
    font-weight: 700;
}

.fp-security-note,
.fp-ai-note {
    display: grid;
    gap: 5px;
    padding: 14px 16px;
    border-radius: 16px;
    background: #fff8e8;
    border: 1px solid rgba(245, 158, 11, 0.28);
}

.fp-security-note span,
.fp-ai-note small {
    color: #7a5505;
}

.fp-wide-button {
    justify-content: center;
    min-height: 52px;
}

.fp-field-card {
    padding: 14px;
}

.fp-category-grid {
    display: grid;
    gap: 10px;
}

.fp-category-chip {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 14px;
    background: #fff;
    color: var(--fotoperizia-ink);
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.fp-category-chip.is-selected {
    color: var(--fotoperizia-blue);
    border-color: rgba(0, 51, 160, 0.34);
    background: #eff4ff;
}

.fp-photo-counter,
.fp-photo-step-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.fp-photo-counter {
    padding: 10px 12px;
    border-radius: 14px;
    background: #f1f5ff;
    color: var(--fotoperizia-blue);
    font-weight: 700;
}

.fp-photo-step {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 18px;
    background: #fff;
}

.fp-photo-step.is-missing-required {
    border-color: rgba(242, 27, 45, 0.72);
    box-shadow: 0 0 0 4px rgba(242, 27, 45, 0.12);
}

.fp-upload-zone {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.fp-file-button {
    position: relative;
    overflow: hidden;
    justify-content: center;
}

.fp-file-button input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.fp-preview {
    display: grid;
    place-items: center;
    min-height: 190px;
    gap: 8px;
    padding: 16px;
    border: 1px dashed #afbbd0;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8fafc 0%, #eef3ff 100%);
    color: var(--fotoperizia-muted);
    text-align: center;
}

.fp-preview.has-photo {
    border-style: solid;
    background: #fff;
}

.fp-preview.is-photo-rejected {
    border-color: #f1d1a6;
    background: #fff8ed;
}

.fp-preview.is-photo-unavailable {
    border-style: solid;
    border-color: #b8dfcf;
    background: #f0fbf6;
}

.fp-preview img {
    width: 100%;
    max-height: 210px;
    object-fit: cover;
    border-radius: 14px;
}

.fp-preview.is-generating-photo {
    border-style: solid;
    border-color: rgba(0, 51, 160, 0.22);
    background: #f8fbff;
}

.fp-preview-loader {
    display: inline-block;
    box-sizing: border-box;
    width: 32px;
    height: 32px;
    border: 4px solid rgba(0, 51, 160, 0.16);
    border-top-color: var(--fotoperizia-blue);
    border-right-color: #f08a24;
    border-radius: 999px;
    background: transparent;
    animation: fp-spin 720ms linear infinite;
}

.fp-preview-visual,
.fp-photo-thumb span {
    display: block;
    width: 100%;
    border-radius: 14px;
    background:
        linear-gradient(135deg, rgba(0, 31, 122, 0.2), transparent 42%),
        linear-gradient(160deg, #f4f0e9 0%, #d9c8ad 44%, #8f7657 45%, #cbb89a 100%);
}

.fp-preview-visual {
    min-height: 150px;
}

.fp-choice-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 16px;
    background: #fff;
}

.fp-choice-row label:not(.field-label) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fotoperizia-ink);
    font-weight: 700;
}

.fp-info-form {
    display: grid;
    gap: 12px;
}

.fp-transmission-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-transmission-list li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 16px;
    background: #fff;
    color: var(--fotoperizia-muted);
}

.fp-transmission-list li span {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    border: 2px solid #b8c3d7;
}

.fp-transmission-list li.is-active {
    color: var(--fotoperizia-blue);
    border-color: rgba(0, 51, 160, 0.34);
}

.fp-transmission-list li.is-active span {
    border-color: var(--fotoperizia-blue);
    border-top-color: transparent;
    animation: fp-spin 0.8s linear infinite;
}

.fp-transmission-list li.is-complete {
    color: #087443;
    background: #ecfdf5;
    border-color: rgba(8, 116, 67, 0.2);
}

.fp-transmission-list li.is-complete span {
    border-color: #087443;
    background: #087443;
}

.fp-success-card {
    display: grid;
    gap: 16px;
    padding: 20px;
    border-radius: 22px;
    background: linear-gradient(180deg, #ecfdf5 0%, #ffffff 100%);
    border: 1px solid rgba(8, 116, 67, 0.22);
}

.fp-success-icon {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #087443;
    color: #fff;
    font-weight: 700;
}

.fp-success-card h2 {
    margin: 0;
    color: #075536;
}

.fp-dashboard {
    display: grid;
    gap: 20px;
}

.fp-dashboard-hero {
    padding: 24px;
    border: 1px solid rgba(216, 224, 239, 0.9);
    border-radius: 22px;
    background: linear-gradient(135deg, #ffffff 0%, #f3f6ff 100%);
}

.fp-dashboard-hero > div:first-child {
    display: grid;
    gap: 10px;
}

.fp-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.fp-kpi-card {
    display: grid;
    gap: 6px;
    padding: 18px;
    border-radius: 18px;
    color: var(--text);
}

.fp-kpi-card span,
.fp-kpi-card small {
    color: var(--muted);
}

.fp-kpi-card strong {
    font-size: var(--font-title-large);
    color: #001f7a;
    line-height: 1.2;
}

.fp-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.8fr);
    gap: 18px;
    align-items: start;
}

.fp-dashboard-grid-detail {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.fp-card {
    border-radius: 22px;
}

.fp-table-shell table {
    min-width: 720px;
}

.fp-table-shell tr.is-selected td {
    background: #f3f6ff;
}

.fp-meter {
    width: 100%;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #e3e9f5;
}

.fp-meter span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #001f7a, #0b56d8);
}

.fp-meter-ai span {
    background: linear-gradient(90deg, #6d5dfc, #a855f7);
}

.fp-detail-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-detail-list div:nth-child(1),
.fp-detail-list div:nth-child(5),
.fp-detail-list div:nth-child(6) {
    grid-column: 1 / -1;
}

.fp-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.fp-photo-thumb {
    display: grid;
    gap: 8px;
    margin: 0;
}

.fp-photo-thumb span {
    min-height: 132px;
}

.fp-photo-thumb figcaption {
    color: var(--ink-800);
    font-weight: 700;
    font-size: var(--font-caption);
}

.fp-photo-tone-damage span {
    background:
        linear-gradient(145deg, rgba(94, 58, 28, 0.64), transparent 38%),
        linear-gradient(160deg, #ede8df 0%, #c4b095 52%, #6f543a 53%, #ded2c2 100%);
}

.fp-photo-tone-origin span {
    background:
        linear-gradient(110deg, transparent 0 45%, rgba(0, 31, 122, 0.25) 46% 52%, transparent 53%),
        linear-gradient(135deg, #f6f1e9, #b7a081);
}

.fp-photo-tone-ceiling span {
    background:
        radial-gradient(circle at 55% 34%, rgba(112, 83, 55, 0.58), transparent 22%),
        linear-gradient(180deg, #f5f2ed, #d8cbb9);
}

.fp-photo-tone-goods span {
    background:
        linear-gradient(90deg, rgba(0, 31, 122, 0.2), transparent 30%),
        linear-gradient(135deg, #d6e2f3, #9e8768);
}

.fp-photo-tone-document span {
    background:
        linear-gradient(90deg, transparent 0 12%, rgba(0, 31, 122, 0.12) 13% 14%, transparent 15% 100%),
        linear-gradient(180deg, #ffffff, #e7edf8);
}

.fp-photo-tone-weather span {
    background:
        linear-gradient(135deg, rgba(0, 31, 122, 0.36), transparent 50%),
        linear-gradient(180deg, #b9c8de, #7589a7);
}

.fp-info-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-info-list div:nth-child(n+6) {
    grid-column: 1 / -1;
}

.fp-ai-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.fp-ai-grid > div {
    display: grid;
    gap: 8px;
    padding: 14px;
    border-radius: 16px;
    background: #f7f9fc;
    border: 1px solid rgba(216, 224, 239, 0.78);
}

.fp-ai-grid span {
    color: var(--muted);
    font-weight: 700;
    font-size: var(--font-caption);
}

.fp-ai-grid strong {
    color: #001f7a;
    font-size: 1.28rem;
}

.fp-compliance-list {
    display: grid;
    gap: 10px;
}

.fp-compliance-list div {
    display: grid;
    gap: 4px;
    padding: 12px;
    border-radius: 14px;
    background: #f7f9fc;
    border: 1px solid rgba(216, 224, 239, 0.74);
}

.fp-compliance-list strong {
    color: var(--text-strong);
}

.fp-compliance-list span {
    color: var(--muted);
    font-size: 0.9rem;
}

@keyframes fp-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 1180px) {
    .fp-kpi-grid,
    .fp-dashboard-grid,
    .fp-dashboard-grid-detail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .fp-public-head,
    .fp-dashboard-hero {
        flex-direction: column;
    }

    .fp-public-grid,
    .fp-dashboard-grid,
    .fp-dashboard-grid-detail,
    .fp-kpi-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .fp-story-panel {
        padding: 10px 0;
        order: 2;
    }

    .fp-phone {
        min-height: 0;
        order: 1;
    }
}

@media (max-width: 640px) {
    .fp-public {
        width: min(100vw - 16px, 480px);
        padding-top: 8px;
    }

    .fp-public-head {
        margin-bottom: 10px;
    }

    .fp-head-nav,
    .fp-dashboard-actions {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .fp-head-nav {
        display: none;
    }

    .fp-dashboard-actions > *,
    .fp-head-nav a {
        width: 100%;
        justify-content: center;
    }

    .fp-story-panel h1,
    .fp-dashboard-hero h2 {
        font-size: var(--font-title-large);
    }

    .fp-screen,
    .fp-phone-top {
        padding-left: 14px;
        padding-right: 14px;
    }

    .fp-screen {
        gap: 14px;
        padding-top: 16px;
        padding-bottom: 16px;
    }

    .fp-phone-top {
        padding-top: 16px;
        padding-bottom: 10px;
    }

    .fp-progress {
        gap: 5px;
        padding: 10px 10px 2px;
    }

    .fp-screen-copy {
        gap: 6px;
    }

    .fp-screen-copy h2 {
        font-size: 1.35rem;
    }

    .fp-screen-copy p {
        line-height: 1.48;
    }

    .fp-claim-card {
        padding: 12px;
    }

    .fp-claim-card dl {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .fp-claim-card dl div:first-child dd {
        font-size: 0.9rem;
        white-space: nowrap;
    }

    .fp-security-note {
        padding: 12px;
    }

    .fp-upload-zone,
    .fp-choice-row,
    .fp-detail-list,
    .fp-info-list,
    .fp-ai-grid,
    .fp-photo-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .fp-choice-row .field-label {
        margin-bottom: 2px;
    }

    .fp-kpi-card strong {
        font-size: 1.65rem;
    }

    .fp-dashboard-hero,
    .fp-card {
        border-radius: 18px;
    }
}

@media (max-width: 720px) {
    .fp-feedback-action-list article > div,
    .fotoperizia-feedback-action-list article > div {
        align-items: stretch;
        flex-direction: column;
    }

}

@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .fp-preview-loader {
        animation-duration: 720ms !important;
        animation-iteration-count: infinite !important;
    }
}

@media print {
    body {
        background: #fff;
    }

    .print-toolbar {
        display: none;
    }

    .print-page {
        padding: 0;
        max-width: 100%;
    }

    .page-break {
        page-break-before: always;
    }

    .table-shell {
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .table-shell .data-table {
        min-width: 0;
        width: 100%;
    }

    .print-intro-card,
    .print-note-card,
    .print-highlight-card,
    .print-signoff-note,
    .print-signoff-box,
    .liquidation-card,
    .print-block,
    .matrix-chapter-total {
        break-inside: avoid;
    }
}

/* Final Fotoperizia demo overrides: keep the mockup-aligned customer flow ahead of base Fotoperizia styles. */
.auth-body[data-route="collection/link"] .fp-screen {
    display: block;
    padding: 18px 22px 26px;
}

.auth-body[data-route="collection/link"] .fp-screen[hidden],
.auth-body[data-route="collection/link"] .fp-photo-step[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-photo-step {
    display: block;
    padding: 14px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: var(--fotoperizia-radius);
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(7, 19, 51, 0.04);
}

.auth-body[data-route="collection/link"] .fp-preview {
    display: grid;
    min-height: 118px;
    margin-top: 14px;
    place-items: center;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    background: #f8fafc;
    color: #66728a;
    text-align: center;
}

.auth-body[data-route="collection/link"] .fp-preview.has-photo {
    padding: 10px;
    border-color: var(--fotoperizia-line);
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-preview.has-multiple-photos {
    align-items: stretch;
    justify-items: stretch;
}

.auth-body[data-route="collection/link"] .fp-preview.is-photo-rejected {
    border-color: #f1d1a6;
    background: #fff8ed;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-grid {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile {
    display: grid;
    min-width: 0;
    gap: 5px;
    align-content: start;
    padding: 7px;
    border: 1px solid #d8e1ee;
    border-radius: 8px;
    background: #f8fafc;
    text-align: left;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile.is-accepted {
    border-color: #bbdbc6;
    background: #f2fbf5;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile.is-invalid {
    border-color: #f1d1a6;
    background: #fff8ed;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile img,
.auth-body[data-route="collection/link"] .fp-preview > img {
    width: 100%;
    height: 118px;
    object-fit: cover;
    border-radius: 8px;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile strong,
.auth-body[data-route="collection/link"] .fp-preview > strong {
    overflow-wrap: anywhere;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile small,
.auth-body[data-route="collection/link"] .fp-preview > small {
    color: #5f6d84;
    font-size: var(--font-caption);
    line-height: 1.25;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-tile .fp-photo-delete {
    width: 100%;
    min-height: 32px;
}

.auth-body[data-route="collection/link"] .fp-slot-photo-count {
    display: block;
    margin-top: 8px;
    text-align: left;
}

.auth-body[data-route="collection/link"] .fp-preview-visual {
    display: block;
    width: 100%;
    height: 118px;
    border-radius: 8px;
    background-image: var(--fotoperizia-photo-sheet);
    background-repeat: no-repeat;
    background-size: 300% 200%;
}

.auth-body[data-route="collection/link"] .fp-transmission-list {
    display: grid;
    gap: 12px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.auth-body[data-route="collection/link"] .fp-transmission-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--fotoperizia-line);
    border-radius: 10px;
    padding: 14px;
    color: #536179;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-transmission-list li span {
    display: block;
    width: 22px;
    height: 22px;
    border: 2px solid #b9c5d7;
    border-radius: 999px;
}

.auth-body[data-route="collection/link"] .fp-transmission-list li.is-active span {
    border-color: var(--fotoperizia-blue);
    border-top-color: transparent;
}

.auth-body[data-route="collection/link"] .fp-transmission-list li.is-complete span {
    border-color: var(--fotoperizia-green);
    background: var(--fotoperizia-green);
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog .fp-final-transmission-list {
    gap: 8px;
    margin: 2px 0 0;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog .fp-final-transmission-list li {
    min-height: 44px;
    padding: 10px 11px;
    border-radius: 10px;
    background: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog .fp-final-transmission-list li span {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog .fp-final-transmission-list li.is-active {
    color: var(--fotoperizia-blue);
    border-color: rgba(0, 51, 153, 0.32);
    background: #f7fbff;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog .fp-final-transmission-list li.is-active span {
    animation: fp-spin 0.8s linear infinite;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog .fp-final-transmission-list li.is-complete {
    color: #087443;
    border-color: rgba(8, 116, 67, 0.22);
    background: #ecfdf5;
}

.auth-body[data-route="collection/link"] .fp-customer-head {
    min-height: 52px;
}

.auth-body[data-route="collection/link"] .fp-screen {
    padding: 15px 22px 18px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card {
    margin-top: 12px;
    padding: 12px 16px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card > strong {
    margin-top: 6px;
    font-size: 17px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dl,
.auth-body[data-route="collection/link"] .fp-customer-info-card dl {
    gap: 10px;
    margin-top: 13px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dt,
.auth-body[data-route="collection/link"] .fp-customer-info-card dt {
    gap: 8px;
    margin-bottom: 2px;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dd,
.auth-body[data-route="collection/link"] .fp-customer-info-card dd {
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-stepper {
    margin: 12px 0 17px;
}

.auth-body[data-route="collection/link"] .fp-stepper li {
    gap: 5px;
}

.auth-body[data-route="collection/link"] .fp-upload-drop {
    margin-top: 10px;
    padding: 16px 12px;
}

.auth-body[data-route="collection/link"] .fp-preview-block {
    margin-top: 9px;
}

.auth-body[data-route="collection/link"] .fp-preview-block .fp-evidence-photo {
    width: 140px;
    height: 92px;
}

.auth-body[data-route="collection/link"] .fp-customer-info-card {
    margin-top: 12px;
    padding: 12px;
}

.auth-body[data-route="collection/link"] .fp-primary-cta {
    margin-top: 12px;
}

.auth-body[data-route="collection/link"] .fp-intro-actions {
    margin-top: 8px;
}

.auth-body[data-route="collection/link"] .fp-intro-actions .fp-primary-cta {
    margin-top: 0;
}

.auth-body[data-route="collection/link"] .fp-voice-dock {
    padding-top: 8px;
}

.auth-body[data-route="collection/link"] .fp-intro-actions .fp-voice-dock {
    padding-top: 0;
}

.fp-stat {
    justify-content: flex-start;
}

.fp-ring {
    margin-left: auto;
}

.fp-photo-strip .fp-evidence-photo {
    height: 122px;
    aspect-ratio: auto;
}

.auth-body[data-route="collection/link"] .fp-customer-copy h1 {
    font-size: 17px;
}

.auth-body[data-route="collection/link"] .fp-customer-copy p {
    margin-top: 6px;
    line-height: 1.36;
}

.auth-body[data-route="collection/link"] .fp-upload-drop {
    padding: 13px 12px;
}

.auth-body[data-route="collection/link"] .fp-upload-drop svg {
    width: 25px;
    height: 25px;
}

.auth-body[data-route="collection/link"] .fp-preview-block .fp-evidence-photo {
    width: 132px;
    height: 82px;
}

.auth-body[data-route="collection/link"] .fp-customer-info-card dl {
    gap: 7px;
    margin-top: 9px;
}

.auth-body[data-route="collection/link"] .fp-customer-info-card {
    padding: 10px 12px;
}

.auth-body[data-route="studio/practices"] .fp-main {
    padding: 20px 26px;
}

.auth-body[data-route="studio/practices"] .fp-kpis {
    gap: 18px;
    margin-top: 18px;
}

.auth-body[data-route="studio/practices"] .fp-stat {
    min-height: 112px;
    padding: 16px;
}

.auth-body[data-route="studio/practices"] .fp-dashboard-grid {
    gap: 12px;
    margin-top: 12px;
}

.auth-body[data-route="studio/practices"] .fp-panel {
    padding: 14px;
}

.auth-body[data-route="studio/practices"] .fp-table-wrap th,
.auth-body[data-route="studio/practices"] .fp-table-wrap td {
    padding: 10px;
}

.auth-body[data-route="studio/practices"] .fp-photo-strip .fp-evidence-photo {
    height: 106px;
}

.auth-body[data-route="studio/practices"] .fp-backtesting {
    margin-top: 12px;
}

@media (max-width: 900px) {
    .fp-register-grid,
    .fp-welcome-secondary-actions {
        grid-template-columns: 1fr;
    }

    .auth-body[data-route="studio/login"] .flash-stack {
        width: calc(100% - 32px);
        margin: 14px auto 0;
    }

    .fp-login-topbar {
        min-height: 56px;
        padding: 0 18px;
    }

    .fp-login-brand {
        gap: 10px;
        font-size: 17px;
    }

    .fp-login-brand .fp-logo-mark {
        width: 150px;
        height: auto;
    }

    .fp-login-brand i {
        width: 8px;
        height: 26px;
    }

    .fp-login-customer {
        font-size: var(--font-caption);
    }

    .fp-login-grid {
        display: block;
        width: calc(100% - 32px);
        margin: 22px auto;
    }

    .fp-login-card {
        padding: 22px;
        border-radius: 14px;
    }

    .fp-login-card h1 {
        font-size: 25px;
    }

    .fp-login-preview {
        margin-top: 16px;
        padding: 18px;
    }

    .fp-login-preview::before {
        display: none;
    }

    .fp-login-preview > * {
        margin-left: 0;
    }

    .fp-login-preview-head span {
        font-size: 19px;
    }

    .fp-login-preview-kpis {
        grid-template-columns: 1fr;
    }

    .fp-login-preview-head,
    .fp-login-preview-kpis,
    .fp-login-preview-photos,
    .fp-login-preview-chart {
        display: none;
    }

    .fp-login-preview-photos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

/* Fotoperizia control dashboard: lean operator review surface. */
.fp-review-app {
    --fp-review-blue: #003399;
    --fp-review-red: #b42318;
    --fp-review-ink: #101828;
    --fp-review-muted: var(--muted);
    --fp-review-line: #d7deea;
    --fp-review-soft: #f6f8fb;
    --fp-review-green: #0b703d;
    --fp-review-orange: #9b4a00;
    --fp-review-purple: #6941c6;
    --fp-review-teal: #0e9384;
    min-height: 100vh;
    background: #f3f6fa;
    color: var(--fp-review-ink);
    font-family: var(--font-sans);
    letter-spacing: 0;
}

.fp-review-app *,
.fp-review-app *::before,
.fp-review-app *::after {
    box-sizing: border-box;
}

.fp-review-topbar {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    min-height: 64px;
    padding: 0 28px;
    border-bottom: 1px solid var(--fp-review-line);
    background: #ffffff;
}

.fp-review-brand,
.fp-review-actions,
.fp-review-actions a,
.fp-review-actions form,
.fp-review-actions button {
    display: inline-flex;
    align-items: center;
}

.fp-review-brand {
    gap: 10px;
    color: var(--fp-review-blue);
    font-size: var(--font-label);
    font-weight: 700;
    text-decoration: none;
}

.fp-review-brand img {
    width: 34px;
    height: 34px;
    border-radius: 7px;
}

.fp-review-actions {
    gap: 10px;
    flex-wrap: wrap;
}

.fp-review-actions a,
.fp-review-actions button,
.fp-review-form-actions a,
.fp-review-document-list a {
    min-height: 34px;
    padding: 8px 11px;
    border: 1px solid var(--fp-review-line);
    border-radius: 7px;
    background: #ffffff;
    color: var(--fp-review-blue);
    font-size: var(--font-label);
    font-weight: 700;
    text-decoration: none;
}

.fp-review-actions form {
    margin: 0;
}

.fp-review-actions button {
    cursor: pointer;
    font-family: inherit;
}

.fp-review-main {
    width: min(1360px, calc(100% - 36px));
    margin: 0 auto;
    padding: 26px 0 42px;
}

.fp-review-page-head,
.fp-review-section-head,
.fp-review-form-actions {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.fp-review-page-head {
    margin-bottom: 18px;
}

.fp-review-page-head-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.fp-review-page-head-actions > span {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 16px;
    border: 1px solid var(--fp-review-blue);
    border-radius: 9px;
    background: var(--fp-review-blue);
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
    transition: background-color 160ms ease, transform 160ms ease;
}

.fp-review-primary-action:hover {
    background: #002a80;
    transform: translateY(-1px);
}

.fp-review-form-actions {
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.fp-review-page-head h1,
.fp-review-section-head h2,
.fp-review-section-head h3 {
    margin: 0;
    color: var(--fp-review-ink);
    line-height: 1.2;
}

.fp-review-page-head h1 {
    font-size: var(--font-title);
    font-weight: 700;
}

.ce-practice-heading {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 12px;
    min-width: 0;
}

.ce-practice-insured-name {
    display: inline-flex;
    align-items: baseline;
    min-width: 0;
    color: #334155;
    font-size: var(--font-caption);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.ce-practice-insured-name::before {
    margin-right: 12px;
    color: #94a3b8;
    content: "\00b7";
    font-weight: 700;
}

.ce-practice-event-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.fp-review-page-head p,
.fp-review-page-head > span,
.fp-review-section-head > span,
.fp-review-empty,
.fp-review-ai-grid small,
.fp-review-photo-card span,
.fp-review-document-list span {
    color: var(--fp-review-muted);
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-review-page-head p {
    margin: 6px 0 0;
}

.fp-review-kpi-panel {
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid var(--fp-review-line);
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-kpi-panel.fp-review-accordion {
    overflow: hidden;
    padding: 0;
}

.fp-review-kpi-panel .fp-review-accordion-summary {
    min-height: 0;
    padding: 14px;
}

.fp-review-kpi-panel .fp-review-accordion-body {
    padding: 14px;
}

.fp-review-kpi-groups {
    display: grid;
    gap: 8px;
}

.fp-review-kpi-group {
    --damage-accent: var(--fp-review-blue);
    --damage-bg: #eef3ff;
    --damage-border: #d9e4ff;
    display: grid;
    grid-template-columns: minmax(220px, 0.42fr) minmax(0, 1fr);
    gap: 0;
    align-items: center;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--damage-border);
    border-left: 5px solid var(--damage-accent);
    border-radius: 8px;
    background: linear-gradient(90deg, var(--damage-bg) 0%, #ffffff 44%);
}

.fp-review-kpi-group.is-tone-red,
.fp-review-damage-pill.is-tone-red {
    --damage-accent: var(--fp-review-red);
    --damage-bg: #fff0f3;
    --damage-border: #ffd6df;
}

.fp-review-kpi-group.is-tone-green,
.fp-review-damage-pill.is-tone-green {
    --damage-accent: var(--fp-review-green);
    --damage-bg: #ecfdf3;
    --damage-border: #c9f2db;
}

.fp-review-kpi-group.is-tone-purple,
.fp-review-damage-pill.is-tone-purple {
    --damage-accent: var(--fp-review-purple);
    --damage-bg: #f3efff;
    --damage-border: #ded3ff;
}

.fp-review-kpi-group.is-tone-orange,
.fp-review-damage-pill.is-tone-orange {
    --damage-accent: var(--fp-review-orange);
    --damage-bg: #fff6ed;
    --damage-border: #fedfc2;
}

.fp-review-kpi-group.is-tone-teal,
.fp-review-damage-pill.is-tone-teal {
    --damage-accent: var(--fp-review-teal);
    --damage-bg: #edfbf8;
    --damage-border: #c7eee7;
}

.fp-review-kpi-group.is-tone-blue,
.fp-review-damage-pill.is-tone-blue {
    --damage-accent: var(--fp-review-blue);
    --damage-bg: #eef3ff;
    --damage-border: #d9e4ff;
}

.fp-review-damage-pill.is-tone-neutral {
    --damage-accent: #475467;
    --damage-bg: #f2f4f7;
    --damage-border: #e4e7ec;
}

.fp-review-kpi-type {
    display: flex;
    gap: 10px;
    align-items: center;
    min-width: 0;
    min-height: 62px;
    padding: 11px 14px;
    color: var(--damage-accent);
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.fp-review-damage-dot {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--damage-accent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--damage-accent) 14%, transparent);
}

.fp-review-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    border-left: 1px solid var(--damage-border);
}

.fp-review-panel {
    border: 1px solid var(--fp-review-line);
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-kpis > div {
    display: grid;
    gap: 5px;
    min-height: 62px;
    padding: 10px 12px;
    border-left: 1px solid #e8edf5;
    background: rgba(255, 255, 255, 0.72);
}

.fp-review-kpis > div:first-child {
    border-left: 0;
}

.fp-review-kpis span,
.fp-review-summary-grid dt,
.fp-review-ai-grid span,
.fp-review-feedback label > span,
.fp-review-field > span,
.fp-review-feedback-summary span {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-kpis strong {
    overflow-wrap: anywhere;
    font-size: 19px;
    line-height: 1.2;
}

.fp-review-panel {
    margin-top: 14px;
    padding: 18px;
}

.fp-feedback-interpretation,
.fotoperizia-feedback-interpretation {
    border-color: #cbd9f2;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.fp-feedback-interpretation .fp-review-section-head p,
.fotoperizia-feedback-interpretation .fp-review-section-head p {
    max-width: 720px;
    margin: 5px 0 0;
    color: var(--fp-review-muted);
    font-size: var(--font-body);
    line-height: 1.45;
}

.fp-feedback-interpretation-summary,
.fotoperizia-feedback-interpretation-summary {
    display: grid;
    gap: 5px;
    padding: 14px;
    border: 1px solid #dbe5f6;
    border-radius: 8px;
    background: #ffffff;
}

.fp-feedback-interpretation-summary span,
.fotoperizia-feedback-interpretation-summary span {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fp-feedback-interpretation-summary strong,
.fotoperizia-feedback-interpretation-summary strong {
    font-size: var(--font-label);
    line-height: 1.5;
}

.fp-feedback-domain-list,
.fotoperizia-feedback-domain-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.fp-feedback-domain-list span,
.fotoperizia-feedback-domain-list span {
    padding: 6px 9px;
    border: 1px solid #c8d9f8;
    border-radius: 999px;
    background: #eef4ff;
    color: var(--fp-review-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-feedback-action-list,
.fotoperizia-feedback-action-list {
    display: grid;
    gap: 9px;
    margin-top: 12px;
}

.fp-feedback-action-list article,
.fotoperizia-feedback-action-list article {
    display: grid;
    gap: 5px;
    padding: 12px 14px;
    border-left: 4px solid var(--fp-review-blue);
    border-radius: 7px;
    background: #ffffff;
    box-shadow: inset 0 0 0 1px #e1e7f0;
}

.fp-feedback-action-list article > div,
.fotoperizia-feedback-action-list article > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
}

.fp-feedback-action-list article span,
.fotoperizia-feedback-action-list article span,
.fp-feedback-action-list article p,
.fotoperizia-feedback-action-list article p {
    color: var(--fp-review-muted);
    font-size: var(--font-body);
}

.fp-feedback-action-list article p,
.fotoperizia-feedback-action-list article p {
    margin: 0;
    line-height: 1.45;
}

.fp-feedback-action-list article b,
.fotoperizia-feedback-action-list article b {
    font-size: var(--font-caption);
}

.fp-feedback-warning,
.fotoperizia-feedback-warning {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    background: #fff7ed;
    color: #9a3412;
    font-size: var(--font-caption);
}

.fp-feedback-warning ul,
.fotoperizia-feedback-warning ul {
    margin: 6px 0 0;
    padding-left: 18px;
}

.fp-feedback-interpretation-audit,
.fotoperizia-feedback-interpretation-audit {
    margin: 0;
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    line-height: 1.45;
}

.fp-feedback-interpretation-audit,
.fotoperizia-feedback-interpretation-audit {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #dbe5f6;
}

.fp-review-section-head {
    align-items: center;
    margin-bottom: 14px;
}

.fp-review-section-head.is-compact {
    margin-bottom: 10px;
}

.fp-review-section-head h2 {
    font-size: var(--font-lead);
    font-weight: 700;
}

.fp-review-section-head h3 {
    font-size: var(--font-label);
    font-weight: 700;
}

.fp-review-section-head button,
.fp-review-form-actions button,
.fp-review-line-item button {
    min-height: 34px;
    border: 1px solid var(--fp-review-blue);
    border-radius: 7px;
    background: var(--fp-review-blue);
    color: #ffffff;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-review-section-head button,
.fp-review-line-item button {
    padding: 7px 10px;
}

.fp-review-form-actions button {
    padding: 9px 14px;
}

.fp-review-form-actions .fp-review-action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    min-width: 116px;
    padding: 9px 14px;
    font-family: inherit;
    white-space: nowrap;
}

.fp-review-form-actions .fp-review-action-button.is-secondary {
    border-color: #cfd8e7;
    background: #ffffff;
    color: var(--fp-review-blue);
}

.fp-review-form-actions .fp-review-action-button.is-approve {
    border-color: var(--fp-review-green);
    background: var(--fp-review-green);
    color: #ffffff;
}

.fp-review-form-actions .fp-review-action-button.is-estimate {
    border-color: #b7cffc;
    background: #eef5ff;
    color: var(--fp-review-blue);
}

.fp-review-form-actions .fp-review-action-button.is-primary {
    border-color: var(--fp-review-blue);
    background: var(--fp-review-blue);
    color: #ffffff;
}

.fp-review-form-actions .fp-review-action-button.is-danger {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #be123c;
}

.fp-review-form-actions .fp-review-action-button.is-secondary:hover {
    background: #f5f8ff;
}

.fp-review-form-actions .fp-review-action-button.is-approve:hover {
    background: #0c783f;
}

.fp-review-form-actions .fp-review-action-button.is-estimate:hover {
    background: #dbeafe;
    border-color: #93c5fd;
}

.fp-review-form-actions .fp-review-action-button.is-primary:hover {
    background: #002a80;
}

.fp-review-form-actions .fp-review-action-button.is-danger:hover {
    background: #ffe4e6;
    border-color: #fda4af;
}

.fp-review-form-actions button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.fp-review-session-filters {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(132px, 0.82fr)) auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 10px;
    padding: 12px;
    border: 1px solid #e3e9f3;
    border-radius: 8px;
    background: #f8fbff;
}

.fp-review-session-filters label {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.fp-review-session-filters span,
.fp-review-session-filter-state {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
}

.fp-review-session-filters input,
.fp-review-session-filters select {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #cfd8e7;
    border-radius: 7px;
    background: #ffffff;
    color: var(--fp-review-ink);
    font: inherit;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-review-session-filters input:focus,
.fp-review-session-filters select:focus {
    border-color: #9db7fd;
    outline: 3px solid rgba(38, 103, 255, 0.14);
    outline-offset: 0;
}

.fp-review-session-filters button {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #cfd8e7;
    border-radius: 7px;
    background: #ffffff;
    color: var(--fp-review-blue);
    font-family: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-review-session-filters button:hover,
.fp-review-session-filters button:focus-visible {
    background: #eef4ff;
    border-color: #b7cffc;
}

.fp-review-session-filters button:focus-visible {
    outline: 3px solid rgba(38, 103, 255, 0.16);
    outline-offset: 2px;
}

.fp-review-session-filter-state {
    margin: 2px 0 10px;
}

.fp-review-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid #e3e9f3;
    border-radius: 8px;
    background: #f8fbff;
}

.fp-review-pagination[hidden] {
    display: none;
}

.fp-review-pagination-meta,
.fp-review-pagination-controls,
.fp-review-pagination-pages,
.fp-review-pagination-meta label {
    display: flex;
    align-items: center;
}

.fp-review-pagination-meta {
    gap: 16px;
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-pagination-meta label {
    gap: 8px;
}

.fp-review-pagination-meta select {
    min-height: 36px;
    padding: 6px 28px 6px 9px;
    border: 1px solid #cfd8e7;
    border-radius: 7px;
    background: #ffffff;
    color: var(--fp-review-ink);
    font: inherit;
    font-weight: 700;
}

.fp-review-pagination-controls,
.fp-review-pagination-pages {
    gap: 6px;
}

.fp-review-pagination button {
    min-width: 36px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #cfd8e7;
    border-radius: 7px;
    background: #ffffff;
    color: var(--fp-review-blue);
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-review-pagination button:hover:not(:disabled),
.fp-review-pagination button:focus-visible,
.fp-review-pagination-meta select:focus {
    border-color: #9db7fd;
    background: #eef4ff;
    outline: 3px solid rgba(38, 103, 255, 0.14);
    outline-offset: 1px;
}

.fp-review-pagination button.is-current {
    border-color: var(--fp-review-blue);
    background: var(--fp-review-blue);
    color: #ffffff;
}

.fp-review-pagination button:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

.fp-review-pagination-ellipsis {
    min-width: 20px;
    color: var(--fp-review-muted);
    text-align: center;
}

.fp-review-table-wrap {
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
    border: 1px solid #e5ebf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: inset -16px 0 18px -20px rgba(15, 23, 42, 0.38);
}

.fp-review-table-wrap:focus-visible {
    outline: 3px solid rgba(38, 103, 255, 0.2);
    outline-offset: 3px;
}

.fp-review-table-wrap::-webkit-scrollbar {
    height: 11px;
}

.fp-review-table-wrap::-webkit-scrollbar-track {
    background: #edf2f8;
}

.fp-review-table-wrap::-webkit-scrollbar-thumb {
    border: 3px solid #edf2f8;
    border-radius: 999px;
    background: #9aa9bd;
}

.fp-review-table {
    width: 100%;
    min-width: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: var(--font-caption);
    table-layout: fixed;
}

.fp-review-table th,
.fp-review-table td {
    min-width: 0;
    padding: 11px 10px;
    border-bottom: 1px solid #e8edf5;
    text-align: left;
    vertical-align: middle;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.fp-review-table th {
    background: #f8fafc;
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
    white-space: normal;
}

.fp-review-sort-button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 8px;
    align-items: center;
    justify-content: flex-start;
    column-gap: 6px;
    width: 100%;
    min-height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}

.fp-review-sort-label {
    min-width: 0;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
}

.fp-review-sort-button:focus-visible {
    outline: 3px solid rgba(38, 103, 255, 0.18);
    outline-offset: 3px;
}

.fp-review-sort-indicator {
    display: inline-flex;
    flex: 0 0 8px;
    width: 8px;
    height: 10px;
    opacity: 0.35;
}

.fp-review-sort-indicator::before {
    content: "";
    align-self: center;
    width: 0;
    height: 0;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    border-top: 5px solid currentColor;
}

.fp-review-table th[aria-sort="ascending"] .fp-review-sort-indicator,
.fp-review-table th[aria-sort="descending"] .fp-review-sort-indicator {
    opacity: 1;
}

.fp-review-table th[aria-sort="ascending"] .fp-review-sort-indicator::before {
    border-top: 0;
    border-bottom: 5px solid currentColor;
}

.fp-review-table td {
    color: var(--fp-review-ink);
    font-weight: 650;
    line-height: 1.25;
}

.fp-review-table th:nth-child(1),
.fp-review-table td:nth-child(1) {
    width: 12%;
}

.fp-review-table th:nth-child(2),
.fp-review-table td:nth-child(2) {
    width: 10%;
}

.fp-review-table th:nth-child(3),
.fp-review-table td:nth-child(3) {
    width: 13%;
}

.fp-review-table th:nth-child(4),
.fp-review-table td:nth-child(4) {
    width: 11%;
}

.fp-review-table th:nth-child(5),
.fp-review-table td:nth-child(5) {
    width: 9%;
}

.fp-review-table th:nth-child(6),
.fp-review-table td:nth-child(6) {
    width: 12%;
}

.fp-review-table th:nth-child(7),
.fp-review-table td:nth-child(7) {
    width: 9%;
}

.fp-review-table th:nth-child(8),
.fp-review-table td:nth-child(8) {
    width: 11%;
}

.fp-review-table th:nth-child(9),
.fp-review-table td:nth-child(9) {
    width: 13%;
    position: sticky;
    right: 0;
    z-index: 1;
    background: #ffffff;
    box-shadow: -10px 0 18px -18px rgba(15, 23, 42, 0.42);
}

.fp-review-table th:nth-child(9) {
    z-index: 2;
    background: #f8fafc;
}

.fp-review-table tbody tr {
    transition: background-color 160ms ease;
}

.fp-review-table [data-fp-session-row][hidden] {
    display: none !important;
}

.fp-review-table tbody tr:hover {
    background: #f8fbff;
}

.fp-review-table tr:last-child td {
    border-bottom: 0;
}

.fp-review-table a {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    color: var(--fp-review-blue);
    font-weight: 700;
    text-decoration: none;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.fp-review-table th:nth-child(2),
.fp-review-table th:nth-child(5),
.fp-review-table th:nth-child(6),
.fp-review-table th:nth-child(7),
.fp-review-table th:nth-child(8),
.fp-review-table td:nth-child(2),
.fp-review-table td:nth-child(5),
.fp-review-table td:nth-child(6),
.fp-review-table td:nth-child(7),
.fp-review-table td:nth-child(8) {
    white-space: nowrap;
}

.fp-review-table th:nth-child(3),
.fp-review-table th:nth-child(4),
.fp-review-table td:nth-child(3),
.fp-review-table td:nth-child(4) {
    overflow-wrap: normal;
}

.fp-review-table small {
    display: block;
    margin-top: 6px;
    max-width: 220px;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 650;
    line-height: 1.35;
}

.fp-review-money {
    white-space: normal;
    font-variant-numeric: tabular-nums;
}

.fp-review-reestimate-cell {
    min-width: 0;
}

.fp-review-table-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    min-width: 0;
}

.fp-review-table-actions button {
    font-family: inherit;
}

.fp-review-list-approve-form,
.fp-review-list-suspend-form,
.fp-review-list-delete-form {
    display: flex;
    width: 100%;
    max-width: 138px;
    margin: 0;
}

.fp-review-list-approve-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 32px;
    padding: 7px 10px;
    border: 1px solid #b7e4c7;
    border-radius: 7px;
    background: #e8f7ee;
    color: var(--fp-review-green);
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.2;
    white-space: normal;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.fp-review-list-approve-button:hover,
.fp-review-list-approve-button:focus-visible {
    background: #d9f1e2;
    border-color: #95d4ad;
}

.fp-review-list-suspend-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 32px;
    padding: 7px 10px;
    border: 1px solid #f4c56f;
    border-radius: 7px;
    background: #fff8e8;
    color: #8a4b00;
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.2;
    white-space: normal;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.fp-review-list-suspend-button:hover,
.fp-review-list-suspend-button:focus-visible {
    border-color: #e5a83b;
    background: #ffefc8;
}

.fp-review-list-suspend-button:focus-visible {
    outline: 3px solid rgba(201, 118, 0, 0.18);
    outline-offset: 2px;
}

.fp-review-list-approve-button:focus-visible {
    outline: 3px solid rgba(22, 128, 72, 0.2);
    outline-offset: 2px;
}

.fp-review-list-delete-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 32px;
    padding: 7px 10px;
    border: 1px solid #fecdd3;
    border-radius: 7px;
    background: #fff1f2;
    color: #be123c;
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.2;
    white-space: normal;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.fp-review-list-delete-button:hover,
.fp-review-list-delete-button:focus-visible {
    background: #ffe4e6;
    border-color: #fda4af;
}

.fp-review-list-delete-button:focus-visible {
    outline: 3px solid rgba(190, 18, 60, 0.18);
    outline-offset: 2px;
}

.fp-review-reestimate-form {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    width: 100%;
    min-width: 0;
}

.fp-review-reestimate-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    max-width: 138px;
    min-width: 0;
    min-height: 32px;
    padding: 7px 10px;
    border: 1px solid #c7d7fe;
    border-radius: 7px;
    background: #eef4ff;
    color: var(--fp-review-blue);
    font-size: var(--font-label);
    font-weight: 700;
    line-height: 1.2;
    white-space: normal;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.fp-review-reestimate-button:hover {
    background: #dfeaff;
    border-color: #9db7fd;
}

.fp-review-reestimate-button:focus-visible {
    outline: 3px solid rgba(38, 103, 255, 0.2);
    outline-offset: 2px;
}

.fp-review-reestimate-button:disabled {
    cursor: wait;
    opacity: 0.82;
}

.fp-review-reestimate-button.is-processing {
    background: #fff7ed;
    border-color: #fed7aa;
    color: var(--fp-review-orange);
}

.fp-review-reestimate-button.is-complete {
    background: #e8f7ee;
    border-color: #b7e4c7;
    color: var(--fp-review-green);
}

.fp-review-reestimate-button.is-error {
    background: #fff1f2;
    border-color: #fecdd3;
    color: var(--fp-review-red);
}

.fp-review-reestimate-spinner,
.fp-review-reestimate-check {
    display: none;
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
}

.fp-review-reestimate-button.is-processing .fp-review-reestimate-spinner {
    display: inline-block;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 999px;
    animation: fp-review-reestimate-spin 760ms linear infinite;
}

.fp-review-reestimate-button.is-complete .fp-review-reestimate-check {
    display: inline-block;
    position: relative;
    border-radius: 999px;
    background: var(--fp-review-green);
}

.fp-review-reestimate-button.is-complete .fp-review-reestimate-check::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 2px;
    width: 4px;
    height: 8px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

@keyframes fp-review-reestimate-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 420px) {
    .auth-body .fp-login.is-customer-auth-flow {
        padding: 18px 10px;
    }

    .auth-body .fp-login.is-customer-auth-flow .fp-login-grid {
        width: min(100%, 360px);
        min-height: 0;
        border-radius: 8px;
    }

    .auth-body .fp-login.is-customer-auth-flow .fp-login-card {
        min-height: 0;
        border: 1px solid #cfdbea;
        border-radius: 8px;
        box-shadow: var(--shadow-soft);
    }
}

@media (max-width: 420px) {
    .auth-body[data-route="collection/link"] .fp-customer-shell {
        padding: 18px 10px;
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone {
        width: min(100%, 360px);
        min-height: calc(100vh - 36px);
        border: 1px solid #cfdbea;
        border-radius: 8px;
        box-shadow: 0 12px 28px rgba(15, 31, 55, 0.10);
    }
}

.fp-review-damage-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    min-height: 26px;
    padding: 4px 9px;
    border: 1px solid var(--damage-border);
    border-radius: 999px;
    background: var(--damage-bg);
    color: var(--damage-accent);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
}

.fp-review-damage-pill::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--damage-accent);
}

.fp-review-status {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 4px 9px;
    border-radius: 7px;
    background: #e9f0ff;
    color: var(--fp-review-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
}

.fp-review-status.is-green {
    background: #e8f7ee;
    color: var(--fp-review-green);
}

.fp-review-status.is-orange {
    background: #fff2e6;
    color: var(--fp-review-orange);
}

.fp-review-status.is-red {
    background: #fff1f0;
    color: #b42318;
}

.fp-review-status.is-blue {
    background: #e9f0ff;
    color: var(--fp-review-blue);
}

.fp-review-status.is-muted {
    background: #eef2f6;
    color: #475467;
}

.fp-review-learning-monitor .fp-review-section-head > div {
    display: grid;
    gap: 4px;
}

.fp-review-learning-monitor .fp-review-section-head > span {
    align-self: flex-start;
    border: 1px solid #d8e2ef;
    border-radius: 999px;
    padding: 5px 9px;
    background: #f6f8fb;
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.fp-review-learning-head {
    gap: 14px;
}

.fp-review-learning-activity {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    overflow: hidden;
    margin-bottom: 12px;
    padding: 12px 14px;
    border: 1px solid #bee9f5;
    border-radius: 8px;
    background:
        linear-gradient(90deg, rgba(14, 165, 233, 0.09), rgba(16, 185, 129, 0.08)),
        #fbfeff;
}

.fp-review-learning-error {
    display: grid;
    gap: 3px;
    margin-bottom: 12px;
    padding: 12px 14px;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fff7f7;
    color: #991b1b;
}

.fp-review-learning-activity::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, 0.68) 38%, transparent 64%);
    pointer-events: none;
    transform: translateX(-120%);
    animation: fotoperizia-learning-sheen 2.8s ease-in-out infinite;
}

.fp-review-learning-core {
    position: relative;
    width: 48px;
    height: 48px;
    border-radius: 999px;
    background: radial-gradient(circle at 50% 50%, #ffffff 0 18%, #67e8f9 19% 33%, #2563eb 34% 55%, #0f172a 56% 100%);
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.22), 0 12px 26px rgba(37, 99, 235, 0.24);
    animation: fotoperizia-learning-core-pulse 1.05s ease-in-out infinite;
    will-change: transform, filter, box-shadow;
}

.fp-review-learning-core::before,
.fp-review-learning-core::after {
    content: "";
    position: absolute;
    inset: -8px;
    border: 3px solid rgba(37, 99, 235, 0.3);
    border-top-color: #06b6d4;
    border-right-color: #12b76a;
    border-bottom-color: transparent;
    border-left-color: #2563eb;
    border-radius: 999px;
    box-shadow: 0 0 10px rgba(14, 165, 233, 0.26);
    animation: fotoperizia-learning-spin 0.85s linear infinite;
    will-change: transform;
}

.fp-review-learning-core::after {
    inset: 6px;
    border-color: rgba(255, 255, 255, 0.92);
    border-top-color: transparent;
    border-right-color: #67e8f9;
    border-bottom-color: transparent;
    animation-duration: 0.65s;
    animation-direction: reverse;
}

.fp-review-learning-activity strong,
.fp-review-learning-activity span {
    position: relative;
    z-index: 1;
    display: block;
}

.fp-review-learning-activity > div:nth-child(2) strong {
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.25;
}

.fp-review-learning-activity > div:nth-child(2) span {
    margin-top: 3px;
    color: #405169;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-review-learning-monitor.is-refreshing {
    border-color: #c9e8f4;
}

.fp-review-learning-health-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}

.fp-review-learning-health-card {
    min-width: 0;
    display: grid;
    gap: 6px;
    min-height: 84px;
    align-content: start;
    padding: 11px 12px;
    border: 1px solid #e3e9f3;
    border-left: 4px solid #d0d5dd;
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-learning-health-card.is-green {
    border-left-color: #12b76a;
}

.fp-review-learning-health-card.is-blue {
    border-left-color: var(--fp-review-blue);
}

.fp-review-learning-health-card.is-orange {
    border-left-color: #f79009;
}

.fp-review-learning-health-card.is-red {
    border-left-color: var(--fp-review-red);
}

.fp-review-learning-health-card span,
.fp-review-learning-health-card small {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-review-learning-health-card span {
    text-transform: uppercase;
}

.fp-review-learning-health-card strong {
    color: var(--fp-review-ink);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.fp-review-learning-domain-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.fp-review-learning-domain,
.fp-review-learning-candidate {
    min-width: 0;
    border: 1px solid #e3e9f3;
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-learning-domain {
    display: grid;
    gap: 10px;
    padding: 13px;
    background: #ffffff;
}

.fp-review-learning-domain header {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.fp-review-learning-domain header > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.fp-review-learning-domain header > .fp-review-status {
    flex: 0 1 auto;
    justify-content: center;
    text-align: center;
}

.fp-review-learning-domain span,
.fp-review-learning-candidate header span,
.fp-review-learning-domain dt,
.fp-review-learning-candidate dt,
.fp-review-learning-note {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-review-learning-domain strong,
.fp-review-learning-candidate header strong {
    color: var(--fp-review-ink);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.fp-review-learning-domain dl,
.fp-review-learning-candidate dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.fp-review-learning-domain dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-top: 10px;
    border-top: 1px solid #edf1f7;
}

.fp-review-learning-domain dl div,
.fp-review-learning-candidate dl div {
    min-width: 0;
}

.fp-review-learning-domain dt,
.fp-review-learning-candidate dt {
    margin-bottom: 3px;
}

.fp-review-learning-domain dd,
.fp-review-learning-candidate dd {
    margin: 0;
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.fp-review-learning-candidates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.fp-review-learning-candidate {
    display: grid;
    gap: 12px;
    padding: 13px;
}

.fp-review-learning-candidate header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.fp-review-learning-candidate header > div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.fp-review-learning-candidate dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-top: 10px;
    border-top: 1px solid #edf1f7;
}

.fp-review-learning-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #edf1f7;
}

.fp-review-learning-actions form {
    margin: 0;
}

.fp-review-learning-actions button {
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--fp-review-blue);
    border-radius: 7px;
    background: var(--fp-review-blue);
    color: #ffffff;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-review-learning-actions button.is-danger {
    border-color: var(--fp-review-red);
    background: #ffffff;
    color: var(--fp-review-red);
}

.fp-review-learning-note {
    margin: 0;
    padding-top: 10px;
    border-top: 1px solid #edf1f7;
}

.fp-review-learning-scope-note {
    margin: 12px 0 0;
    padding: 10px 12px;
    border: 1px solid #dcebf3;
    border-radius: 8px;
    background: #f7fbfd;
    color: #475467;
    font-size: var(--font-caption);
    font-weight: 680;
    line-height: 1.45;
}

.fp-review-learning-scope-note strong {
    color: var(--fp-review-ink);
    font-weight: 700;
}

@keyframes fotoperizia-learning-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes fotoperizia-learning-core-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.22), 0 10px 22px rgba(37, 99, 235, 0.2);
        filter: brightness(0.9);
        transform: scale(0.92);
    }

    50% {
        box-shadow: 0 0 0 6px rgba(14, 165, 233, 0.24), 0 16px 34px rgba(37, 99, 235, 0.42);
        filter: brightness(1.22);
        transform: scale(1.08);
    }
}

@keyframes fotoperizia-learning-sheen {
    0%,
    22% {
        transform: translateX(-120%);
    }

    65%,
    100% {
        transform: translateX(120%);
    }
}

.fp-review-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
}

.fp-review-summary-grid.is-practice-detail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fp-review-summary-grid div {
    min-width: 0;
    padding: 12px;
    border: 1px solid #e7edf6;
    border-radius: 8px;
    background: var(--fp-review-soft);
}

.fp-review-summary-grid dd {
    margin: 5px 0 0;
    overflow-wrap: anywhere;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-summary-grid .fp-review-summary-iban {
    grid-column: 1 / -1;
    padding: 16px 18px;
    border-color: #9bbcf5;
    border-left: 5px solid var(--fp-review-blue);
    background: linear-gradient(100deg, #edf4ff 0%, #f8fbff 72%, #ffffff 100%);
    box-shadow: 0 8px 22px rgba(0, 51, 153, 0.08);
}

.fp-review-summary-grid .fp-review-summary-iban dt {
    color: var(--fp-review-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fp-review-summary-grid .fp-review-summary-iban dd {
    color: #09245a;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: clamp(16px, 1.45vw, 20px);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.035em;
    line-height: 1.35;
    word-break: break-word;
}

.fp-review-summary-status dd {
    display: grid;
    gap: 6px;
}

.fp-review-summary-status small {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 650;
    line-height: 1.35;
}

.fp-review-panel.fp-review-accordion {
    overflow: hidden;
    padding: 0;
}

.fp-review-accordion-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 60px;
    padding: 18px;
    cursor: pointer;
    list-style: none;
    transition: background-color 160ms ease;
}

.fp-review-accordion-summary::-webkit-details-marker {
    display: none;
}

.fp-review-accordion-summary:hover {
    background: #f8fbff;
}

.fp-review-accordion-summary:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.2);
    outline-offset: -3px;
}

.fp-review-accordion-summary h2 {
    min-width: 0;
    margin: 0;
    color: var(--fp-review-ink);
    font-size: var(--font-lead);
    font-weight: 700;
    line-height: 1.2;
}

.fp-review-accordion-title {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.fp-review-accordion-title p {
    margin: 0;
    color: var(--fp-review-muted);
    font-size: var(--font-body);
    font-weight: 650;
    line-height: 1.35;
}

.fp-review-accordion-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    min-height: 24px;
    margin-left: auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: #edf2f8;
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-accordion-meta {
    flex: 0 0 auto;
    margin-left: auto;
}

.fp-review-accordion-summary::after {
    content: "";
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    margin: 0 3px 4px 2px;
    border-right: 2px solid var(--fp-review-blue);
    border-bottom: 2px solid var(--fp-review-blue);
    transform: rotate(45deg);
    transition: transform 160ms ease, margin 160ms ease;
}

.fp-review-accordion[open] > .fp-review-accordion-summary {
    border-bottom: 1px solid #e4eaf3;
    background: #fbfdff;
}

.fp-review-accordion[open] > .fp-review-accordion-summary::after {
    margin-top: 5px;
    margin-bottom: 0;
    transform: rotate(225deg);
}

.fp-review-accordion-body {
    padding: 18px;
}

/* Per-practice watermark preference, next to the GPS evidence. */
.ce-watermark-preference {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ce-border, #dce4ec);
}
.ce-watermark-preference > div { flex: 1 1 280px; min-width: 0; }
.ce-watermark-preference-label { display: flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; cursor: pointer; }
.ce-watermark-preference-label input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 20px; margin: 0; }
.ce-watermark-preference p { margin: 4px 0 0; font-size: 0.875rem; line-height: 1.5; }

.fp-review-gps-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
    gap: 16px;
    align-items: stretch;
}

.fp-review-gps-map {
    min-height: 300px;
    border-color: #cbd8ea;
    border-radius: 12px;
    background: #eaf1f8;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
}

.fp-review-gps-map .fp-gps-pin {
    background: var(--fp-review-red);
}

.fp-review-gps-map[data-map-state="empty"] .fp-gps-map-tiles {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.55) 25%, transparent 25%) 0 0 / 28px 28px,
        linear-gradient(315deg, rgba(255, 255, 255, 0.55) 25%, transparent 25%) 0 0 / 28px 28px,
        #e7eef6;
}

.fp-review-gps-map-empty {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 7px;
    padding: 24px;
    color: #52647d;
    text-align: center;
}

.fp-review-gps-map-empty > span {
    position: relative;
    width: 38px;
    height: 38px;
    border: 2px solid #8da4bf;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
}

.fp-review-gps-map-empty > span::after {
    content: "";
    position: absolute;
    inset: 10px;
    border: 2px solid #8da4bf;
    border-radius: 50%;
}

.fp-review-gps-map-empty strong {
    color: #243a59;
    font-size: var(--font-label);
}

.fp-review-gps-map-empty small {
    max-width: 360px;
    font-size: var(--font-caption);
    font-weight: 650;
    line-height: 1.45;
}

.fp-review-gps-information {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
}

.fp-review-gps-state {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-gps-status {
    display: grid;
    gap: 4px;
    padding: 13px 14px;
    border: 1px solid #d7e0ed;
    border-radius: 10px;
    background: #f7f9fc;
}

.fp-review-gps-status span,
.fp-review-gps-meta-grid dt {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-gps-status strong {
    color: var(--fp-review-ink);
    font-size: var(--font-label);
}

.fp-review-gps-state.is-success,
.fp-review-gps-status.is-success {
    border-color: #bfe5cf;
    background: #eefaf3;
    color: #17663b;
}

.fp-review-gps-state.is-warning,
.fp-review-gps-status.is-warning {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.fp-review-gps-state.is-error,
.fp-review-gps-status.is-error {
    border-color: #f3b4b4;
    background: #fff1f1;
    color: #991b1b;
}

.fp-review-gps-state.is-muted,
.fp-review-gps-status.is-muted {
    border-color: #d8e0eb;
    background: #f3f6fa;
    color: #52647d;
}

.fp-review-gps-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin: 0;
}

.fp-review-gps-meta-grid > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #e1e7f0;
    border-radius: 9px;
    background: var(--fp-review-soft);
}

.fp-review-gps-meta-grid > .is-wide {
    grid-column: 1 / -1;
}

.fp-review-gps-meta-grid dd {
    margin: 5px 0 0;
    overflow-wrap: anywhere;
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.35;
}

.fp-review-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.fp-review-photo-card {
    display: grid;
    align-content: start;
    gap: 8px;
    min-width: 0;
    padding: 10px;
    border: 1px solid #dfe7f1;
    border-top: 3px solid #a9b9cc;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-photo-review-card[data-fraud-state="completed"] {
    border-top-color: #35a46f;
}

.fp-photo-review-card[hidden] {
    display: none;
}

.fp-photo-review-card[data-fraud-state="needs_review"] {
    border-top-color: #c18c16;
}

.fp-photo-review-card[data-fraud-state="possible_fraud"] {
    border-top-color: #dc4a4a;
}

.fp-review-photo-card > .fp-photo-review-media,
.fp-review-photo-placeholder {
    width: 100%;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    border: 1px solid var(--fp-review-line);
    border-radius: 8px;
    background: #eef3f9;
}

.fp-review-photo-card > .fp-photo-review-media {
    padding: 0;
    cursor: zoom-in;
}

.fp-photo-review-media {
    position: relative;
}

.fp-photo-review-media::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, transparent 55%, rgba(7, 20, 40, 0.16));
    pointer-events: none;
}

.fp-photo-review-expand {
    position: absolute;
    z-index: 1;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    border: 1px solid rgba(208, 219, 234, 0.95);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 4px 10px rgba(18, 42, 73, 0.14);
}

.fp-photo-review-expand::before,
.fp-photo-review-expand::after {
    position: absolute;
    width: 7px;
    height: 7px;
    content: "";
}

.fp-photo-review-expand::before {
    top: 6px;
    right: 6px;
    border-top: 2px solid var(--fp-review-blue);
    border-right: 2px solid var(--fp-review-blue);
}

.fp-photo-review-expand::after {
    bottom: 6px;
    left: 6px;
    border-bottom: 2px solid var(--fp-review-blue);
    border-left: 2px solid var(--fp-review-blue);
}

.fp-review-photo-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fp-photo-review-meta {
    display: grid;
    gap: 2px;
}

.fp-photo-review-meta span {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.3;
}

.fp-photo-review-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    padding: 9px 10px;
    border: 1px solid #e0e8f2;
    border-radius: 9px;
    background: #f8fafd;
}

.fp-photo-review-toolbar > strong {
    flex: 0 0 auto;
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
}

.fp-photo-review-counts,
.fp-photo-review-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.fp-photo-review-counts span {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    padding: 4px 9px;
    border-radius: 7px;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-photo-review-counts .is-clear {
    background: #e7f6ee;
    color: #176b4a;
}

.fp-photo-review-counts .is-risk {
    background: #fdeaea;
    color: #a22727;
}

.fp-photo-review-counts .is-idle {
    background: #e9eef5;
    color: #50627a;
}

.fp-photo-review-filters {
    margin-left: auto;
}

.fp-photo-review-filters button {
    min-height: 32px;
    padding: 6px 12px;
    border: 1px solid #c4d1e2;
    border-radius: 7px;
    background: #ffffff;
    color: #31445f;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-photo-review-filters button:hover,
.fp-photo-review-filters button.is-active {
    border-color: var(--fp-review-blue);
    background: #edf4ff;
    color: var(--fp-review-blue);
}

.fp-photo-review-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fp-photo-review-fields label {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.fp-photo-review-fields label.is-wide {
    grid-column: 1 / -1;
}

.fp-photo-review-fields label > span {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-photo-review-fields input,
.fp-photo-review-fields select {
    width: 100%;
    min-width: 0;
    min-height: 34px;
    border: 1px solid var(--fp-review-line);
    border-radius: 7px;
    padding: 6px 8px;
    background: #ffffff;
    color: var(--fp-review-ink);
    font: inherit;
    font-size: var(--font-body);
}

.fp-photo-review-fields input:focus-visible,
.fp-photo-review-fields select:focus-visible,
.fp-photo-review-filters button:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.18);
    outline-offset: 1px;
}

.fp-photo-review-save-note {
    display: flex;
    gap: 9px;
    align-items: center;
    margin: 12px 0 0;
    padding: 9px 11px;
    border-radius: 8px;
    background: #f2f6ff;
    color: #344b6b;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-photo-review-save-note span {
    display: inline-grid;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    place-items: center;
    border: 1px solid #7097e8;
    border-radius: 50%;
    color: var(--fp-review-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-photo-placeholder {
    display: grid;
    place-items: center;
    padding: 12px;
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.fp-review-photo-card strong,
.fp-review-document-list strong,
.fp-review-cost-list strong {
    display: block;
    overflow-wrap: anywhere;
    font-size: var(--font-caption);
}

.fp-review-document-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-review-document-list li,
.fp-review-cost-list div,
.fp-review-photo-review-list div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid #e7edf6;
    border-radius: 8px;
    background: var(--fp-review-soft);
}

.fp-review-ai-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, 0.6fr);
    gap: 14px;
}

.fp-review-ai-grid article {
    min-width: 0;
    padding: 14px;
    border: 1px solid #e7edf6;
    border-radius: 8px;
    background: var(--fp-review-soft);
}

.fp-review-ai-grid p {
    margin: 7px 0 0;
    line-height: 1.55;
}

.fp-review-ai-grid strong {
    display: block;
    margin-top: 6px;
    font-size: 23px;
}

.fp-review-estimate-clarifications {
    grid-column: 1 / -1;
}

.fp-review-estimate-clarifications > ol {
    display: grid;
    gap: 10px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.fp-review-estimate-clarifications > ol > li {
    padding: 12px;
    border: 1px solid #dce6f2;
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-estimate-clarifications > ol > li > div {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
}

.fp-review-estimate-clarifications > ol > li > div small {
    border-radius: 999px;
    padding: 3px 8px;
    background: rgba(0, 51, 153, 0.1);
    color: var(--fp-review-blue);
    font-weight: 700;
}

.fp-review-estimate-clarifications > ol > li > p + span {
    display: block;
    margin-top: 12px;
}

.fp-review-cost-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.fp-visual-damage {
    margin-top: 14px;
    padding: 16px;
    border: 1px solid #d8e4f3;
    border-radius: 10px;
    background: linear-gradient(145deg, #f8fbff 0%, #ffffff 58%, #f5f9ff 100%);
}

.fp-visual-damage-head,
.fp-visual-damage-card-head {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    justify-content: space-between;
}

.fp-visual-damage-head h3 {
    margin: 0;
    font-size: 17px;
}

.fp-visual-damage-head p {
    max-width: 760px;
    margin: 6px 0 0;
    color: var(--fp-review-muted);
    font-size: var(--font-body);
    line-height: 1.5;
}

.fp-visual-damage-status {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    background: #edf1f7;
    color: #4b5870;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-visual-damage-status.is-sufficient {
    background: #e3f7ec;
    color: #17643b;
}

.fp-visual-damage-status.is-partial {
    background: #fff1d8;
    color: #875000;
}

.fp-visual-damage-status.is-undetermined {
    background: #fde8e8;
    color: #982f2f;
}

.fp-visual-damage-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.fp-visual-damage-kpis > div {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid #e2eaf5;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.86);
}

.fp-visual-damage-kpis span,
.fp-visual-damage dl dt {
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-visual-damage-kpis strong {
    font-size: 17px;
}

.fp-visual-damage-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr));
    gap: 10px;
    margin-top: 12px;
}

.fp-visual-damage-grid > article {
    min-width: 0;
    padding: 13px;
    border: 1px solid #dce6f2;
    border-radius: 9px;
    background: #ffffff;
}

.fp-visual-damage-card-head > div {
    min-width: 0;
}

.fp-visual-damage-card-head strong,
.fp-visual-damage-card-head small {
    display: block;
    overflow-wrap: anywhere;
}

.fp-visual-damage-card-head > span {
    flex: 0 0 auto;
    color: var(--fp-review-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-visual-damage dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin: 12px 0 0;
}

.fp-visual-damage dl > div {
    padding: 8px;
    border-radius: 7px;
    background: var(--fp-review-soft);
}

.fp-visual-damage dl dd {
    margin: 3px 0 0;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-visual-damage-grid article > p,
.fp-visual-damage-empty p {
    margin: 10px 0 0;
    font-size: var(--font-body);
    line-height: 1.5;
}

.fp-visual-damage-grid article > p.is-limitation {
    color: #875000;
}

.fp-visual-damage-photos {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 11px;
}

.fp-visual-damage-photos button,
.fp-visual-damage-photos a {
    display: inline-flex;
    max-width: 150px;
    gap: 7px;
    align-items: center;
    border: 1px solid #d5e1f0;
    border-radius: 7px;
    padding: 5px 8px 5px 5px;
    background: #f8fbff;
    color: var(--fp-review-blue);
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.fp-visual-damage-photos img {
    width: 34px;
    height: 34px;
    border-radius: 5px;
    object-fit: cover;
}

.fp-visual-damage-photos span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fp-visual-damage-empty {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #f1cccc;
    border-radius: 8px;
    background: #fff8f8;
    color: #7e2929;
}

@media (max-width: 680px) {
    .fp-visual-damage-head {
        align-items: stretch;
        flex-direction: column;
    }

    .fp-visual-damage-status {
        align-self: flex-start;
    }

    .fp-visual-damage-kpis {
        grid-template-columns: 1fr;
    }
}

.fp-review-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.fp-review-form-grid-third {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fp-review-feedback-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.fp-review-feedback-summary > div {
    display: grid;
    gap: 5px;
    min-height: 62px;
    padding: 12px;
    border: 1px solid #e7edf6;
    border-radius: 8px;
    background: var(--fp-review-soft);
}

.fp-review-feedback-summary strong {
    overflow-wrap: anywhere;
    font-size: var(--font-lead);
    line-height: 1.2;
}

.fp-review-feedback label,
.fp-review-field,
.fp-review-wide-field {
    display: grid;
    gap: 6px;
}

.fp-review-feedback input,
.fp-review-feedback select,
.fp-review-feedback textarea {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--fp-review-line);
    border-radius: 7px;
    padding: 8px 10px;
    background: #ffffff;
    color: var(--fp-review-ink);
    font: inherit;
    font-size: var(--font-body);
}

.fp-review-feedback textarea {
    resize: vertical;
}

.fp-review-severity-options {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}

.fp-review-severity-options label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px;
    border: 1px solid var(--fp-review-line);
    border-radius: 7px;
    background: #ffffff;
    cursor: pointer;
    text-align: center;
}

.fp-review-severity-options input {
    width: 1px;
    min-height: 0;
    height: 1px;
    margin: 0;
    padding: 0;
    opacity: 0;
    pointer-events: none;
}

.fp-review-severity-options label > span {
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-review-severity-options label:has(input:checked) {
    border-color: rgba(0, 75, 156, 0.34);
    background: #edf4ff;
    color: var(--fp-review-blue);
}

.fp-review-wide-field,
.fp-review-feedback-block,
.fp-review-learning-group,
.fp-review-form-actions {
    margin-top: 14px;
}

.fp-review-photo-review-list,
.fp-review-line-items {
    display: grid;
    gap: 8px;
}

.fp-review-photo-review-list div {
    grid-template-columns: minmax(150px, 0.75fr) minmax(145px, 0.6fr) minmax(155px, 0.65fr) minmax(210px, 1fr);
}

.fp-photo-review-card .fp-photo-fraud-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    align-items: center;
    min-width: 0;
    padding: 7px 8px;
    border: 1px solid #dfe8f2;
    border-radius: 8px;
    background: #f8fbfa;
}

.fp-photo-review-card[data-fraud-state="possible_fraud"] .fp-photo-fraud-row {
    border-color: #f3c9c9;
    background: #fff7f7;
}

.fp-photo-fraud-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.fp-photo-fraud-row button {
    width: auto;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid #b7c8dc;
    border-radius: 7px;
    background: #ffffff;
    color: var(--accent);
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.fp-photo-fraud-row button:hover:not(:disabled) {
    border-color: var(--accent);
    background: #edf4ff;
}

.fp-photo-fraud-row button:disabled {
    cursor: wait;
    opacity: 0.65;
}

.fp-photo-fraud-state {
    display: inline-flex;
    justify-self: start;
    border-radius: 6px;
    padding: 3px 7px;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.fp-photo-fraud-state.is-idle {
    background: #e9eef5;
    color: #50627a;
}

.fp-photo-fraud-state.is-clear {
    background: #e3f4ec;
    color: #176b4a;
}

.fp-photo-fraud-state.is-risk {
    background: #fde8e8;
    color: #a22727;
}

.fp-photo-fraud-state.is-review,
.fp-photo-review-counts .is-review {
    background: #fff1c2;
    color: #765100;
}

.fp-photo-review-card[data-fraud-state="needs_review"] .fp-photo-fraud-row {
    border-color: #e5cd80;
    background: #fffdf5;
}

.fp-photo-fraud-details {
    grid-column: 1 / -1;
    min-width: 0;
    border-top: 1px solid #dce3ed;
    padding-top: 10px;
    font-size: var(--font-caption);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.fp-photo-fraud-details[hidden] { display: none; }
.fp-photo-fraud-details p { margin: 0 0 8px; }
.fp-photo-fraud-details ul { margin: 6px 0 10px; padding-left: 18px; }
.fp-photo-fraud-details li + li { margin-top: 5px; }
.fp-photo-fraud-limits { color: var(--muted); }

.fp-photo-fraud-row small {
    min-width: 0;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.fp-photo-fraud-risk {
    color: #30445f;
    font-size: var(--font-caption);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .fp-photo-review-card .fp-photo-fraud-row {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .fp-photo-fraud-row button {
        min-height: 40px;
        grid-column: 1 / -1;
    }
}

@media (max-width: 400px) {
    .fp-photo-review-card .fp-photo-fraud-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .fp-photo-fraud-risk {
        justify-self: start;
        white-space: normal;
    }
}

.fp-review-line-item {
    display: grid;
    grid-template-columns: minmax(120px, 0.6fr) minmax(220px, 1.25fr) minmax(108px, 0.45fr) minmax(120px, 0.55fr) minmax(155px, 0.7fr) minmax(150px, 0.8fr) auto;
    align-items: center;
    gap: 8px;
    padding: 12px;
    border: 1px solid #e7edf6;
    border-radius: 8px;
    background: var(--fp-review-soft);
}

.fp-review-line-item button {
    border-color: #cfd8e7;
    background: #ffffff;
    color: var(--fp-review-muted);
}

.fp-review-line-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 0.35fr);
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #d8e1ef;
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-line-total span {
    display: block;
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-line-total strong {
    display: block;
    margin-top: 3px;
    color: var(--fp-review-ink);
    font-size: var(--font-lead);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.fp-review-line-total input {
    font-weight: 700;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.fp-review-learning-group {
    display: grid;
    grid-template-columns: minmax(220px, 0.6fr) minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid #d8e1ef;
    border-radius: 8px;
    background: #ffffff;
}

.fp-review-learning-group strong,
.fp-review-learning-group small {
    display: block;
}

.fp-review-learning-group strong {
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-learning-group small {
    margin-top: 3px;
    color: var(--fp-review-muted);
    font-size: var(--font-caption);
    line-height: 1.4;
}

.fp-review-learning-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.fp-review-learning-options label {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #d8e1ef;
    border-radius: 7px;
    background: var(--fp-review-soft);
    color: var(--fp-review-ink);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-review-learning-options input {
    width: 18px;
    min-height: 18px;
    accent-color: var(--fp-review-blue);
}

.fp-review-empty {
    padding: 14px;
    border: 1px dashed var(--fp-review-line);
    border-radius: 8px;
    background: var(--fp-review-soft);
}

.fp-review-empty.is-compact {
    padding: 10px 12px;
}

.ce-photo-viewer{margin:auto;border:1px solid #526780;border-radius:12px;padding:0;background:#111e30;color:#fff;width:min(1140px,calc(100vw - 40px));height:calc(100dvh - 40px);max-height:920px;max-width:none;overflow:hidden}
.ce-photo-viewer[open]{display:flex;flex-direction:column}.ce-photo-viewer::backdrop{background:#0a1526cf}
.ce-photo-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid #39495d;flex:none}
.ce-photo-viewer-head > div > span{font-size:12px;letter-spacing:.03em;color:#bdcadb}.ce-photo-viewer-head h2{font:600 19px/1.35 system-ui;color:white;margin:5px 0 0}
.ce-photo-viewer button{font:600 14px/1.35 system-ui;color:white;background:#25384e;border:1px solid #637b97;border-radius:7px;padding:10px 16px;min-height:44px;cursor:pointer}
.ce-photo-viewer-head button{white-space:nowrap}.ce-photo-viewer button:hover:not(:disabled){background:#355477}.ce-photo-viewer button:disabled{opacity:.4;cursor:default}.ce-photo-viewer button:focus-visible{outline:3px solid #9dccff;outline-offset:3px}
.ce-photo-viewer-image{display:flex;align-items:center;justify-content:center;min-height:0;flex:1;padding:16px;background:#0b1523;overflow:hidden}
.ce-photo-viewer-image img{width:100%;height:100%;min-height:0;object-fit:contain}.ce-photo-viewer-image [hidden]{display:none}.ce-photo-viewer-image p{color:#e2eaf4;text-align:center;max-width:400px}
.ce-photo-viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-top:1px solid #39495d;flex:none}.ce-photo-viewer-footer span{font-size:14px;font-weight:600;text-align:center;white-space:nowrap}
.ce-photo-viewer-thumbnails{display:flex;gap:10px;justify-content:center;padding:10px 20px;overflow-x:auto;flex:none}.ce-photo-viewer-thumbnails button{position:relative;flex:0 0 72px;padding:3px;border:2px solid transparent;background:transparent}.ce-photo-viewer-thumbnails button[aria-current=true]{border-color:#9ac9ff;background:#294c74}.ce-photo-viewer-thumbnails img{width:62px;height:48px;object-fit:cover;border-radius:3px}.ce-photo-viewer-thumbnails span{display:block;font-size:11px;line-height:1.3}
@media(max-width:680px){.ce-photo-viewer{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}.ce-photo-viewer-head{padding:12px;gap:10px}.ce-photo-viewer-head h2{font-size:17px}.ce-photo-viewer-head button{padding:10px}.ce-photo-viewer-image{padding:8px}.ce-photo-viewer-footer{padding:12px 8px;gap:6px}.ce-photo-viewer-footer button{font-size:12px;padding:10px 8px}.ce-photo-viewer-footer span{font-size:12px}.ce-photo-viewer-thumbnails{padding:8px;gap:6px}.ce-photo-viewer-thumbnails button{flex-basis:60px}.ce-photo-viewer-thumbnails img{width:50px;height:40px}}

.ce-photo-viewer-image { position:relative; }
.ce-photo-viewer-head > div { min-width:0; overflow-wrap:anywhere; }
.ce-photo-viewer-head button { flex-shrink:0; }
.ce-photo-viewer-image [data-ce-photo-viewer-media] { display:flex; justify-content:center; align-items:center; width:100%; height:100%; min-height:0; }
.ce-photo-viewer-image p { position:absolute; max-width:80%; }
.ce-photo-viewer [hidden] { display:none !important; }
.ce-photo-viewer-thumbnails { justify-content:flex-start; position:relative; }
.ce-photo-viewer-thumbnails button:first-child { margin-left:auto; }
.ce-photo-viewer-thumbnails button:last-child { margin-right:auto; }

@media (max-width: 980px) {
    .fp-review-session-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-review-session-search,
    .fp-review-session-filters button {
        grid-column: 1 / -1;
    }

    .fp-review-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .fp-review-pagination-meta,
    .fp-review-pagination-controls {
        justify-content: space-between;
    }

    .fp-review-summary-grid,
    .fp-review-photo-grid,
    .fp-review-ai-grid,
    .fp-review-form-grid,
    .fp-review-learning-health-grid,
    .fp-review-learning-candidates {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-review-summary-grid.is-practice-detail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-review-gps-layout {
        grid-template-columns: 1fr;
    }

    .fp-photo-review-toolbar {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .fp-photo-review-filters {
        margin-left: 0;
    }

    .fp-review-kpi-group {
        grid-template-columns: minmax(180px, 0.42fr) minmax(0, 1fr);
    }

    .fp-review-kpi-type {
        min-height: 0;
    }

    .fp-review-kpis {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .fp-review-line-item {
        grid-template-columns: minmax(140px, 0.8fr) minmax(220px, 1.4fr) minmax(120px, 0.7fr) auto;
    }

    .fp-review-severity-options {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    .fp-review-table {
        min-width: 0;
        font-size: var(--font-caption);
    }

    .fp-review-table th,
    .fp-review-table td {
        padding-right: 8px;
        padding-left: 8px;
    }

    .fp-review-table th:nth-child(1),
    .fp-review-table td:nth-child(1) {
        width: 12.5%;
    }

    .fp-review-table th:nth-child(2),
    .fp-review-table td:nth-child(2) {
        width: 10%;
    }

    .fp-review-table th:nth-child(3),
    .fp-review-table td:nth-child(3) {
        width: 14%;
    }

    .fp-review-table th:nth-child(4),
    .fp-review-table td:nth-child(4) {
        width: 10.5%;
    }

    .fp-review-table th:nth-child(5),
    .fp-review-table td:nth-child(5) {
        width: 9.5%;
    }

    .fp-review-table th:nth-child(6),
    .fp-review-table td:nth-child(6) {
        width: 11.5%;
    }

    .fp-review-table th:nth-child(7),
    .fp-review-table td:nth-child(7) {
        width: 8%;
    }

    .fp-review-table th:nth-child(8),
    .fp-review-table td:nth-child(8) {
        width: 11%;
    }

    .fp-review-table th:nth-child(9),
    .fp-review-table td:nth-child(9) {
        width: 13%;
    }

    .fp-review-table-actions {
        width: 100%;
    }

    .fp-review-table td:nth-child(2) {
        white-space: normal;
    }

    .fp-review-list-approve-form,
    .fp-review-list-delete-form,
    .fp-review-reestimate-form {
        max-width: 126px;
    }

    .fp-review-list-approve-button,
    .fp-review-list-suspend-button,
    .fp-review-list-delete-button,
    .fp-review-reestimate-button {
        padding-right: 8px;
        padding-left: 8px;
    }
}

@media (min-width: 681px) and (max-width: 980px) {
    .fp-review-table {
        min-width: 1120px;
    }

    .fp-review-table th:nth-child(9),
    .fp-review-table td:nth-child(9) {
        position: static;
        right: auto;
        z-index: auto;
        box-shadow: none;
    }

    .fp-review-table td:nth-child(2) {
        white-space: normal;
    }
}

@media (max-width: 680px) {
    .fp-photo-review-toolbar {
        display: grid;
        gap: 8px;
    }

    .fp-photo-review-counts,
    .fp-photo-review-filters {
        width: 100%;
    }

    .fp-photo-review-filters button {
        flex: 1 1 0;
    }

    .fp-photo-review-card {
        padding: 9px;
    }

    .fp-review-topbar,
    .fp-review-page-head,
    .fp-review-section-head,
    .fp-review-form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .fp-review-form-actions {
        align-items: stretch;
        flex-direction: row;
        justify-content: flex-end;
        gap: 8px;
    }

    .fp-review-form-actions .fp-review-action-button {
        flex: 1 1 128px;
        min-width: 0;
    }

    .fp-review-main {
        width: calc(100% - 24px);
        padding-top: 18px;
    }

    .fp-review-table-wrap {
        overflow: visible;
        scrollbar-gutter: auto;
        box-shadow: none;
    }

    .fp-review-table {
        min-width: 0;
        border-collapse: separate;
        border-spacing: 0 10px;
        table-layout: auto;
    }

    .fp-review-table thead {
        display: none;
    }

    .fp-review-table,
    .fp-review-table tbody,
    .fp-review-table tr,
    .fp-review-table td {
        display: block;
        width: 100%;
    }

    .fp-review-table tr {
        padding: 12px;
        border: 1px solid var(--fp-review-line);
        border-radius: 8px;
        background: #fff;
    }

    .fp-review-table th:nth-child(n),
    .fp-review-table td:nth-child(n) {
        width: 100%;
    }

    .fp-review-table td {
        display: grid;
        grid-template-columns: minmax(88px, 34%) minmax(0, 1fr);
        align-items: flex-start;
        column-gap: 12px;
        padding: 8px 0;
        border-bottom: 1px solid #edf1f7;
        white-space: normal;
        overflow-wrap: normal;
    }

    .fp-review-table th:nth-child(9),
    .fp-review-table td:nth-child(9) {
        position: static;
        right: auto;
        z-index: auto;
        background: transparent;
        box-shadow: none;
    }

    .fp-review-table td:nth-child(2),
    .fp-review-table td:nth-child(5),
    .fp-review-table td:nth-child(6),
    .fp-review-table td:nth-child(7),
    .fp-review-table td:nth-child(8) {
        white-space: normal;
    }

    .fp-review-table td:last-child {
        border-bottom: 0;
    }

    .fp-review-table td::before {
        min-width: 0;
        color: var(--fp-review-muted);
        font-size: var(--font-caption);
        font-weight: 700;
        line-height: 1.3;
    }

    .fp-review-table td:nth-child(1)::before {
        content: attr(data-label);
    }

    .fp-review-table td:nth-child(2)::before {
        content: "Data raccolta";
    }

    .fp-review-table td:nth-child(3)::before {
        content: "Tipo danno";
    }

    .fp-review-table td:nth-child(4)::before {
        content: "Stato";
    }

    .fp-review-table td:nth-child(5)::before {
        content: "Importo indicativo";
    }

    .fp-review-table td:nth-child(6)::before {
        content: "Importo corretto";
    }

    .fp-review-table td:nth-child(7)::before {
        content: "% accuratezza";
    }

    .fp-review-table td:nth-child(8)::before {
        content: "Accettazione stima";
    }

    .fp-review-table td:nth-child(9)::before {
        content: "Azioni";
    }

    .fp-review-table a,
    .fp-review-table .fp-review-status,
    .fp-review-table .fp-review-money,
    .fp-review-table .fp-review-table-actions,
    .fp-review-table .fp-review-reestimate-form {
        min-width: 0;
        max-width: 100%;
        justify-self: end;
        text-align: right;
    }

    .fp-review-table a {
        justify-content: flex-end;
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .fp-review-table .fp-review-status {
        justify-content: flex-end;
        white-space: normal;
        overflow-wrap: normal;
        word-break: normal;
    }

    .fp-review-table .fp-review-money {
        white-space: normal;
    }

    .fp-review-table .fp-review-reestimate-form {
        align-items: flex-end;
    }

    .fp-review-session-filters {
        grid-template-columns: 1fr;
        padding: 10px;
    }

    .fp-review-pagination-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .fp-review-pagination-controls {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .fp-review-pagination-controls > button {
        flex: 1 1 132px;
    }

    .fp-review-pagination-pages {
        flex: 1 0 100%;
        justify-content: center;
        order: -1;
    }

    .fp-review-table .fp-review-table-actions {
        align-items: flex-end;
    }

    .fp-review-table .fp-review-table-actions .fp-review-list-approve-form,
    .fp-review-table .fp-review-table-actions .fp-review-list-delete-form,
    .fp-review-table .fp-review-table-actions .fp-review-reestimate-form {
        width: 100%;
        max-width: 138px;
    }

    .fp-review-summary-grid,
    .fp-review-photo-grid,
    .fp-review-ai-grid,
    .fp-review-feedback-summary,
    .fp-review-form-grid,
    .fp-review-form-grid-third,
    .fp-review-photo-review-list div,
    .fp-review-line-item,
    .fp-review-line-total,
    .fp-review-learning-group,
    .fp-review-learning-options,
    .fp-review-learning-health-grid,
    .fp-review-learning-domain-grid,
    .fp-review-learning-candidates,
    .fp-review-learning-domain dl,
    .fp-review-learning-candidate dl {
        grid-template-columns: 1fr;
    }

    .fp-review-summary-grid.is-practice-detail,
    .fp-review-gps-meta-grid {
        grid-template-columns: 1fr;
    }

    .fp-review-gps-meta-grid > .is-wide {
        grid-column: auto;
    }

    .fp-review-summary-grid .fp-review-summary-iban,
    .fp-review-accordion-summary,
    .fp-review-accordion-body {
        padding-right: 14px;
        padding-left: 14px;
    }

    .fp-review-accordion-summary {
        align-items: flex-start;
    }

    .fp-review-accordion-meta {
        max-width: 46%;
        white-space: normal;
        text-align: right;
    }

    .fp-review-gps-map {
        min-height: 240px;
    }

    .fp-review-severity-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-review-learning-candidate header,
    .fp-review-learning-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .fp-review-learning-activity {
        grid-template-columns: 1fr;
    }

    .fp-review-learning-actions form,
    .fp-review-learning-actions button {
        width: 100%;
    }

    .fp-review-line-total input {
        text-align: left;
    }

    .fp-review-learning-core {
        width: 46px;
        height: 46px;
    }

    .fp-review-kpi-panel {
        padding: 12px;
        overflow: hidden;
    }

    .fp-review-kpi-groups {
        overflow-x: visible;
        padding-bottom: 2px;
    }

    .fp-review-kpi-group {
        min-width: 0;
        grid-template-columns: 1fr;
        background: linear-gradient(180deg, var(--damage-bg) 0%, #ffffff 48%);
    }

    .fp-review-kpi-type {
        min-height: 52px;
        padding: 9px 11px;
        font-size: var(--font-caption);
        border-bottom: 1px solid var(--damage-border);
    }

    .fp-review-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        border-top: 0;
        border-left: 0;
    }

    .fp-review-kpis > div {
        min-width: 0;
        min-height: 52px;
        padding: 8px 10px;
        border-top: 1px solid #e8edf5;
    }

    .fp-review-kpis > div:nth-child(odd) {
        border-left: 0;
    }

    .fp-review-kpis strong {
        font-size: var(--font-body);
    }

}

@media (prefers-reduced-motion: reduce) {
    .fp-review-accordion-summary,
    .fp-review-accordion-summary::after {
        transition: none;
    }
}

/* Fotoperizia customer flow vertical-density pass from 05.07 observations. */
.auth-body[data-route="collection/link"] .fp-customer-shell {
    padding: 8px;
}

.auth-body[data-route="collection/link"] .fp-customer-phone {
    width: min(390px, 100%);
    min-height: auto;
    overflow: visible;
}

.auth-body[data-route="collection/link"] .fp-customer-head {
    min-height: 50px;
    padding: 0 18px;
    border-radius: 22px 22px 0 0;
}

.auth-body[data-route="collection/link"] .fp-customer-phone > .fp-voice-dock {
    padding: 0 18px 16px;
}

.auth-body[data-route="collection/link"] .fp-screen {
    padding: 13px 18px 15px;
}

.auth-body[data-route="collection/link"] .fp-customer-copy h1,
.auth-body[data-route="collection/link"] .fp-photo-step h2 {
    font-size: 17px;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-customer-copy p,
.auth-body[data-route="collection/link"] .fp-photo-step p {
    margin-top: 5px;
    font-size: var(--font-body);
    line-height: 1.34;
}

.auth-body[data-route="collection/link"] .fp-field {
    gap: 6px;
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-field input,
.auth-body[data-route="collection/link"] .fp-field select,
.auth-body[data-route="collection/link"] .fp-field textarea {
    min-height: 42px;
    padding: 9px 10px;
}

.auth-body[data-route="collection/link"] .fp-field input.fp-file-native {
    position: absolute;
    width: 1px;
    min-height: 0;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.auth-body[data-route="collection/link"] .fp-field textarea[data-fp-auto-grow] {
    min-height: 58px;
    resize: none;
    overflow: hidden;
}

.auth-body[data-route="collection/link"] .fp-field span em {
    margin-left: 4px;
    color: #8a5b00;
    font-size: var(--font-caption);
    font-style: normal;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] #fp-iban-help[data-state="warning"] {
    color: #9a4b00;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-button-row {
    gap: 8px;
    margin-top: 12px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-card,
.auth-body[data-route="collection/link"] .fp-denuncia-state,
.auth-body[data-route="collection/link"] .fp-denuncia-status,
.auth-body[data-route="collection/link"] .fp-denuncia-summary,
.auth-body[data-route="collection/link"] .fp-correction-panel {
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-card {
    align-items: center;
    padding: 9px 10px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-card strong {
    margin-top: 2px;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-denuncia-card em {
    padding: 5px 8px;
}

.auth-body[data-route="collection/link"] .fp-manual-denuncia-field textarea {
    min-height: 92px;
}

.auth-body[data-route="collection/link"] .fp-file-status {
    margin-top: 6px;
}

.auth-body[data-route="collection/link"] .fp-wide-action {
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-state,
.auth-body[data-route="collection/link"] .fp-denuncia-processing,
.auth-body[data-route="collection/link"] .fp-denuncia-status {
    padding: 9px 10px;
    border-radius: 10px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary {
    gap: 7px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary > div {
    padding: 8px 9px;
}

.auth-body[data-route="collection/link"] .fp-photo-progress {
    display: grid;
    gap: 7px;
    margin-top: 10px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 9px 10px;
    background: #f8fbff;
}

.auth-body[data-route="collection/link"] .fp-photo-progress .fp-photo-count {
    margin: 0;
    padding: 0;
    background: transparent;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-photo-progress small {
    color: #536179;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-photo-progress small strong {
    color: #071333;
}

.auth-body[data-route="collection/link"] .fp-photo-step {
    margin-top: 10px;
    padding: 11px;
}

.auth-body[data-route="collection/link"] .fp-photo-guidance-grid {
    margin-top: 8px;
}

.auth-body[data-route="collection/link"] .fp-upload-actions {
    gap: 8px;
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-upload-actions label,
.auth-body[data-route="collection/link"] .fp-upload-actions button {
    min-height: 42px;
}

.auth-body[data-route="collection/link"] .fp-disclosure > summary {
    min-height: 38px;
    padding: 0 10px;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-consent {
    padding: 8px;
}

.auth-body[data-route="collection/link"] .fp-consent-copy {
    gap: 5px;
}

.auth-body[data-route="collection/link"] .fp-consent-details > summary {
    min-height: 32px;
}

.auth-body[data-route="collection/link"] .fp-consent-details small {
    padding: 7px 8px 8px;
}

.auth-body[data-route="collection/link"] .fp-gps-details .fp-gps-meta-grid {
    padding: 8px;
}

.auth-body[data-route="collection/link"] .fp-notes-disclosure .fp-field {
    padding: 8px;
}

.auth-body[data-route="collection/link"] .fp-estimate-proposal > p[data-fp-estimate-proposal-text] {
    padding: 10px;
    font-size: var(--font-body);
    line-height: 1.48;
}

.auth-body[data-route="collection/link"] .fp-preview {
    min-height: 100px;
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-preview-visual {
    height: 100px;
}

.auth-body[data-route="collection/link"] .fp-unavailable-panel {
    gap: 8px;
    margin-top: 10px;
    padding: 10px;
    border-radius: 10px;
}

.auth-body[data-route="collection/link"] .fp-unavailable-panel p {
    font-size: var(--font-body);
    line-height: 1.35;
}

.auth-body[data-route="collection/link"] .fp-unavailable-panel textarea {
    min-height: 66px;
}

.auth-body[data-route="collection/link"] .fp-unavailable-reason {
    width: 100%;
    margin: 8px 0 0;
    border-radius: 8px;
    padding: 8px;
    background: rgba(32, 161, 102, 0.08);
    color: #165f3d;
    font-size: var(--font-caption);
    line-height: 1.35;
    text-align: left;
}

.auth-body[data-route="collection/link"] .fp-unavailable-reason span {
    display: inline;
    color: #0f5132;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-final-gallery {
    gap: 9px;
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-final-gallery-head {
    align-items: center;
}

.auth-body[data-route="collection/link"] .fp-final-gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.auth-body[data-route="collection/link"] .fp-package-summary {
    gap: 8px;
    margin-top: 10px;
}

.auth-body[data-route="collection/link"] .fp-package-summary div {
    padding: 9px 10px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery {
    display: grid;
    gap: 10px;
    margin-top: 10px;
    border: 1px solid #dbe5f4;
    border-radius: 10px;
    padding: 10px;
    background: #f8fbff;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head span {
    display: block;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head small {
    display: block;
    margin-top: 2px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head button {
    flex: 0 0 auto;
    min-height: 36px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-empty {
    grid-column: 1 / -1;
    border: 1px dashed #c9d5e6;
    border-radius: 10px;
    padding: 12px;
    color: #66728a;
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-tile {
    display: grid;
    gap: 5px;
    min-width: 0;
    border: 1px solid #cdd9eb;
    border-radius: 8px;
    padding: 5px;
    background: #ffffff;
    color: #071333;
    font: inherit;
    cursor: pointer;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-tile.is-selected {
    border-color: var(--fotoperizia-blue);
    box-shadow: 0 0 0 2px rgba(0, 51, 153, 0.14);
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb {
    display: grid;
    min-height: 74px;
    aspect-ratio: 1;
    place-items: center;
    overflow: hidden;
    border-radius: 6px;
    background: #eef3fb;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb img,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb .fp-preview-visual {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb strong,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb small,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb .fp-unavailable-reason {
    display: none;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-name {
    overflow: hidden;
    color: #394765;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal {
    position: fixed;
    inset: 0;
    z-index: 95;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgba(7, 19, 51, 0.46);
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-card {
    position: relative;
    display: grid;
    width: min(100%, 370px);
    gap: 10px;
    border-radius: 12px;
    padding: 14px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-card img {
    width: 100%;
    max-height: 68vh;
    border-radius: 9px;
    object-fit: contain;
    background: #eef3fb;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-preview {
    display: grid;
    min-height: 220px;
    place-items: center;
    border-radius: 9px;
    padding: 16px;
    background: #eef3fb;
    text-align: center;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-preview[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-preview .fp-preview-visual,
.auth-body[data-route="collection/link"] .fp-customer-review-modal-preview img {
    width: 100%;
    min-height: 220px;
    border-radius: 8px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-card strong {
    color: #071333;
    font-size: var(--font-label);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-card p {
    margin: 3px 0 0;
    color: #526078;
    font-size: var(--font-body);
    line-height: 1.35;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-close {
    position: absolute;
    top: 8px;
    right: 8px;
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(7, 19, 51, 0.78);
    color: #ffffff;
    font-size: var(--font-section);
    line-height: 1.2;
    cursor: pointer;
}

.auth-body[data-route="collection/link"] .fp-scroll-hint {
    position: fixed;
    z-index: 70;
    left: calc(50% + min(245px, 42vw));
    bottom: max(14px, env(safe-area-inset-bottom));
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #071333;
    box-shadow: 0 14px 30px rgba(7, 19, 51, 0.24);
    transform: translateX(-50%);
    cursor: pointer;
    animation: fotoperizia-scroll-hint-pulse 1.1s ease-in-out infinite;
}

.auth-body[data-route="collection/link"] .fp-scroll-hint[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-scroll-hint span {
    width: 12px;
    height: 12px;
    border-right: 3px solid #ffffff;
    border-bottom: 3px solid #ffffff;
    transform: translateY(-2px) rotate(45deg);
}

@keyframes fotoperizia-scroll-hint-pulse {
    0%,
    100% {
        transform: translateX(-50%) translateY(0);
        opacity: 0.82;
    }

    50% {
        transform: translateX(-50%) translateY(7px);
        opacity: 1;
    }
}

@keyframes fotoperizia-scroll-hint-mobile-pulse {
    0%,
    100% {
        transform: translateY(0);
        opacity: 0.82;
    }

    50% {
        transform: translateY(6px);
        opacity: 1;
    }
}

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

.fp-access-admin {
    --fp-access-blue: #003399;
    --fp-access-blue-strong: #002b85;
    --fp-access-ink: #111827;
    --fp-access-muted: var(--muted);
    --fp-access-line: #d9e0ec;
    --fp-access-soft: #f6f8fb;
    --fp-access-green: #0b703d;
    --fp-access-orange: #c85f0d;
    --fp-access-red: #df1b2f;
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr);
    min-height: 100vh;
    background: #ffffff;
    color: var(--fp-access-ink);
}

.fp-access-admin *,
.fp-access-admin *::before,
.fp-access-admin *::after {
    box-sizing: border-box;
}

.fp-access-sidebar {
    position: sticky;
    top: 0;
    display: grid;
    min-height: 100vh;
    grid-template-rows: auto 1fr auto;
    gap: 24px;
    padding: 28px 18px;
    background: linear-gradient(180deg, #003399 0%, #002676 100%);
    color: #ffffff;
}

.fp-access-brand {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    color: #ffffff;
    text-decoration: none;
}

.fp-access-brand img {
    width: 190px;
    height: auto;
    background: transparent;
    object-fit: contain;
}

.fp-access-nav {
    display: grid;
    align-content: start;
    gap: 10px;
    padding-top: 22px;
}

.fp-access-nav a,
.fp-access-topbar-actions a,
.fp-access-row-action {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0;
    text-decoration: none;
}

.fp-access-nav a {
    flex-shrink: 0;
    min-height: 48px;
    border-radius: 8px;
    padding: 0 14px;
    color: #dfe8ff;
}

.fp-access-nav a.is-active,
.fp-access-nav a:hover {
    background: #ffffff;
    color: var(--fp-access-blue);
}

.fp-access-nav svg,
.fp-access-topbar-actions svg,
.fp-access-kpi-icon svg,
.fp-access-search svg,
.fp-access-avatar svg,
.fp-access-modal-close svg {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.fp-access-sidebar-user {
    display: grid;
    gap: 3px;
    border-top: 1px solid rgba(255, 255, 255, 0.24);
    padding-top: 18px;
}

.fp-access-sidebar-user span {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-sidebar-user small {
    color: #c7d7ff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-workspace {
    display: grid;
    min-width: 0;
    grid-template-rows: auto 1fr;
    background: #ffffff;
}

.fp-access-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    border-bottom: 1px solid var(--fp-access-line);
    padding: 0 32px;
}

.fp-access-topbar h1 {
    margin: 0;
    color: #101532;
    font-size: var(--font-title);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.fp-access-topbar-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #2f3b56;
}

.fp-access-topbar-actions span {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-topbar-actions a {
    border-left: 1px solid var(--fp-access-line);
    padding-left: 14px;
}

.fp-access-main {
    display: grid;
    align-content: start;
    gap: 16px;
    padding: 16px 28px 28px;
}

.fp-access-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.fp-access-kpis article,
.fp-access-panel,
.fp-access-detail {
    min-width: 0;
    border: 1px solid var(--fp-access-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-access-panel,
.fp-access-detail {
    max-width: 100%;
    overflow: hidden;
}

.fp-access-kpis article {
    display: flex;
    min-height: 104px;
    align-items: center;
    gap: 18px;
    padding: 18px 20px;
}

.fp-access-kpi-icon {
    display: grid;
    width: 58px;
    height: 58px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 999px;
    background: #edf2ff;
    color: var(--fp-access-blue);
}

.fp-access-kpi-icon.is-red {
    background: #fff0f2;
    color: var(--fp-access-red);
}

.fp-access-kpis span,
.fp-access-detail p,
.fp-access-detail-list dt,
.fp-access-timeline small,
.fp-access-table small {
    color: var(--fp-access-muted);
}

.fp-access-kpis article > div {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.fp-access-kpis article > div > span {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-kpis strong {
    color: #101532;
    font-size: clamp(24px, 2.5vw, 34px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.fp-access-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.fp-access-left {
    display: grid;
    min-width: 0;
    gap: 10px;
}

.fp-access-filters {
    display: grid;
    grid-template-columns: minmax(220px, 1.45fr) repeat(3, minmax(126px, 0.7fr)) auto auto;
    gap: 12px;
    align-items: end;
    border-bottom: 1px solid var(--fp-access-line);
    padding: 14px;
}

.fp-access-filters label {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.fp-access-filters label > span {
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-filters input,
.fp-access-filters select {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--fp-access-line);
    border-radius: 7px;
    padding: 0 12px;
    background: #ffffff;
    color: var(--fp-access-ink);
    font: inherit;
    font-size: var(--font-body);
}

.fp-access-search {
    position: relative;
}

.fp-access-search svg {
    position: absolute;
    left: 12px;
    bottom: 11px;
    width: 18px;
    height: 18px;
    color: #7a869c;
}

.fp-access-search input {
    padding-left: 38px;
}

.fp-access-filters button,
.fp-access-reset,
.fp-access-actions button,
.fp-access-actions a,
.fp-access-audit-user-form button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    padding: 0 18px;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    letter-spacing: 0;
    text-decoration: none;
    cursor: pointer;
}

.fp-access-filters button,
.fp-access-actions .is-primary,
.fp-access-audit-user-form button {
    border: 1px solid var(--fp-access-blue);
    background: var(--fp-access-blue);
    color: #ffffff;
}

.fp-access-reset {
    border: 1px solid var(--fp-access-line);
    background: #ffffff;
    color: #344054;
}

.fp-access-actions .is-outline {
    border: 1px solid var(--fp-access-blue);
    background: #ffffff;
    color: var(--fp-access-blue);
}

.fp-access-table-wrap {
    overflow-x: auto;
}

.fp-access-table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
}

.fp-access-table th,
.fp-access-table td {
    border-bottom: 1px solid #e6ebf3;
    padding: 12px 14px;
    text-align: left;
    vertical-align: middle;
}

.fp-access-table th {
    background: #f8fafd;
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-table td {
    color: #1d2939;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-access-table tbody tr.is-selected {
    box-shadow: inset 4px 0 0 var(--fp-access-blue);
}

.fp-access-table tbody tr.is-selected td {
    background: #eef4ff;
}

.fp-access-table tbody tr:hover td {
    background: #f8fbff;
}

.fp-access-table td:first-child a {
    display: block;
    color: #1d2939;
    font-weight: 700;
    text-decoration: none;
}

.fp-access-table small {
    display: block;
    margin-top: 3px;
    font-size: var(--font-caption);
    font-weight: 650;
}

.fp-access-status {
    display: inline-flex;
    min-width: 80px;
    justify-content: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 4px 10px;
    background: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-status.is-green,
.fp-access-dot.is-green {
    color: var(--fp-access-green);
}

.fp-access-status.is-orange,
.fp-access-dot.is-orange {
    color: var(--fp-access-orange);
}

.fp-access-status.is-red,
.fp-access-dot.is-red {
    color: var(--fp-access-red);
}

.fp-access-status.is-muted,
.fp-access-dot.is-muted {
    color: var(--muted);
}

.fp-access-row-action {
    color: var(--fp-access-blue);
}

.fp-access-admin-flag-form {
    margin: 0;
}

.fp-access-admin-flag {
    display: inline-flex;
    min-width: 76px;
    min-height: 34px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border: 1px solid #cfd8ea;
    border-radius: 7px;
    padding: 0 8px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0;
    cursor: pointer;
}

.fp-access-admin-flag-track {
    display: inline-flex;
    width: 36px;
    height: 20px;
    flex: 0 0 auto;
    align-items: center;
    border-radius: 999px;
    padding: 2px;
    background: #cfd8ea;
}

.fp-access-admin-flag-track span {
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(16, 24, 40, 0.18);
    transform: translateX(0);
    transition: transform 0.16s ease;
}

.fp-access-admin-flag.is-on {
    border-color: #b9c9f4;
    background: #eef4ff;
    color: var(--fp-access-blue);
}

.fp-access-admin-flag.is-on .fp-access-admin-flag-track {
    background: var(--fp-access-blue);
}

.fp-access-admin-flag.is-on .fp-access-admin-flag-track span {
    transform: translateX(16px);
}

.fp-access-admin-flag.is-table {
    min-width: 54px;
    justify-content: center;
    padding: 0 6px;
}

.fp-access-admin-flag.is-table .fp-access-admin-flag-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.fp-access-admin-flag.is-locked {
    cursor: not-allowed;
    opacity: 0.72;
}

.fp-access-admin-flag:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.22);
    outline-offset: 2px;
}

.fp-access-admin-flag-text {
    min-width: 22px;
    text-align: left;
}

.fp-access-admin-flag-panel {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(112px, auto);
    gap: 12px;
    align-items: center;
    border: 1px solid #e2e8f4;
    border-radius: 8px;
    padding: 10px 12px;
    background: #f8fafd;
}

.fp-access-admin-flag-panel > span {
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-table-footer {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid var(--fp-access-line);
    padding: 12px 14px;
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-detail {
    display: grid;
    gap: 16px;
    padding: 24px 20px;
}

.fp-access-avatar {
    display: grid;
    width: 74px;
    height: 74px;
    place-items: center;
    border-radius: 999px;
    background: #edf2ff;
    color: var(--fp-access-blue);
}

.fp-access-avatar svg {
    width: 42px;
    height: 42px;
}

.fp-access-detail h2,
.fp-access-section-head h2 {
    margin: 0;
    color: #101532;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.fp-access-section-head h2 {
    font-size: var(--font-body);
}

.fp-access-detail p {
    margin: -10px 0 0;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-access-detail-list {
    display: grid;
    gap: 0;
    margin: 4px 0 0;
    border-top: 1px solid var(--fp-access-line);
    padding-top: 8px;
}

.fp-access-detail-list div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    min-height: 42px;
}

.fp-access-detail-list dt {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-detail-list dd {
    margin: 0;
    color: #1d2939;
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: right;
}

.fp-access-detail-list.is-compact {
    gap: 6px;
}

.fp-access-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 8px;
    border-radius: 999px;
    background: currentColor;
}

.fp-access-detail-block {
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--fp-access-line);
    padding-top: 16px;
}

.fp-access-detail-block h3 {
    margin: 0;
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-module-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.fp-access-module-list span {
    border-radius: 999px;
    padding: 7px 11px;
    background: #edf2ff;
    color: var(--fp-access-blue);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-reason {
    display: grid;
    gap: 4px;
    border: 1px solid #ffe2b7;
    border-radius: 8px;
    padding: 10px 12px;
    background: #fff8ee;
    color: #9a4d0a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-reason strong {
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    border-top: 1px solid var(--fp-access-line);
    padding-top: 16px;
}

.fp-access-actions form,
.fp-access-actions button,
.fp-access-actions a {
    min-width: 0;
    width: 100%;
}

.fp-access-actions > form:not(.fp-access-role-form) {
    display: grid;
}

.fp-access-actions > form:not(.fp-access-role-form) > button {
    height: 100%;
}

.fp-access-actions .is-outline-danger {
    border: 1px solid var(--fp-access-red);
    background: #ffffff;
    color: var(--fp-access-red);
}

.fp-access-actions .is-danger {
    border: 1px solid var(--fp-access-red);
    background: var(--fp-access-red);
    color: #ffffff;
}

.fp-access-actions .is-success {
    border: 1px solid #168a53;
    background: linear-gradient(135deg, #1fa765 0%, #168a53 100%);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(22, 138, 83, 0.2);
}

.fp-access-actions .is-success:hover:not(:disabled) {
    background: linear-gradient(135deg, #168f57 0%, #117344 100%);
}

.fp-access-actions .is-success:focus-visible {
    outline: 3px solid rgba(31, 167, 101, 0.24);
    outline-offset: 2px;
}

.fp-access-actions .is-success:disabled {
    cursor: not-allowed;
    opacity: 0.58;
    box-shadow: none;
}

.fp-access-role-form {
    grid-column: 1 / -1;
}

.fp-access-identity-form {
    display: grid;
    gap: 12px;
    border: 1px solid #d8e2f1;
    border-radius: 8px;
    padding: 14px;
    background: #f8fafd;
}

.fp-access-identity-head {
    display: grid;
    gap: 4px;
}

.fp-access-identity-head strong,
.fp-access-identity-form label > span {
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-identity-head span,
.fp-access-identity-form small {
    color: var(--fp-access-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.45;
}

.fp-access-identity-form label {
    display: grid;
    gap: 7px;
}

.fp-access-identity-form input {
    width: 100%;
    min-height: 44px;
    border: 1px solid #b8c7dc;
    border-radius: 7px;
    padding: 0 12px;
    background: #ffffff;
    color: #17213d;
    font: inherit;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-access-identity-form input:focus-visible {
    border-color: var(--fp-access-blue);
    outline: 3px solid rgba(0, 51, 153, 0.16);
    outline-offset: 1px;
}

.fp-access-identity-form .is-success {
    min-height: 44px;
    border: 1px solid #168a53;
    border-radius: 7px;
    background: linear-gradient(135deg, #1fa765 0%, #168a53 100%);
    color: #ffffff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.fp-access-identity-form .is-success:hover {
    background: linear-gradient(135deg, #168f57 0%, #117344 100%);
}

.fp-access-identity-form .is-success:focus-visible {
    outline: 3px solid rgba(31, 167, 101, 0.24);
    outline-offset: 2px;
}

.fp-access-role-panel {
    display: grid;
    gap: 8px;
    border: 1px solid #d8e2f1;
    border-radius: 8px;
    padding: 12px;
    background: #f8fafd;
}

.fp-access-role-panel > span {
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-role-panel select {
    width: 100%;
    min-height: 44px;
    border: 1px solid #b8c7dc;
    border-radius: 7px;
    padding: 0 38px 0 12px;
    background-color: #ffffff;
    color: #17213d;
    font: inherit;
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-access-role-panel select:focus-visible {
    border-color: var(--fp-access-blue);
    outline: 3px solid rgba(0, 51, 153, 0.16);
    outline-offset: 1px;
}

.fp-access-role-panel select:disabled {
    cursor: not-allowed;
    background: #edf1f7;
    color: var(--muted);
}

.fp-access-role-panel small {
    color: var(--fp-access-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.4;
}

.fp-access-audit {
    padding: 0;
}

.fp-access-audit-page {
    min-height: 360px;
}

.fp-access-section-head {
    border-bottom: 1px solid var(--fp-access-line);
    padding: 12px 16px;
}

.fp-access-users-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 1px solid var(--fp-access-line);
    padding: 18px;
}

.fp-access-users-head > div {
    display: grid;
    gap: 4px;
}

.fp-access-users-head > div > span,
.fp-access-invite-modal-head > div > span {
    color: var(--fp-access-blue);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fp-access-users-head h2,
.fp-access-invite-modal-head h2 {
    margin: 0;
    color: #101532;
    font-size: var(--font-section);
    font-weight: 700;
    line-height: 1.2;
}

.fp-access-users-head p,
.fp-access-invite-modal-head p {
    margin: 0;
    color: var(--fp-access-muted);
    font-size: var(--font-body);
    font-weight: 700;
    line-height: 1.5;
}

.fp-access-create-user {
    display: inline-flex;
    min-height: 44px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid var(--fp-access-blue);
    border-radius: 8px;
    padding: 0 16px;
    background: var(--fp-access-blue);
    color: #ffffff;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 10px 22px rgba(0, 51, 153, 0.18);
}

.fp-access-create-user svg,
.fp-access-invite-modal-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.fp-access-create-user:hover,
.fp-access-create-user:focus-visible {
    background: var(--fp-access-blue-strong);
}

.fp-access-create-user:focus-visible {
    outline: 3px solid rgba(0, 51, 153, 0.22);
    outline-offset: 3px;
}

.fp-access-audit-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.fp-access-audit-head p {
    margin: 5px 0 0;
    color: var(--fp-access-muted);
    font-size: var(--font-body);
    font-weight: 700;
}

.fp-access-audit-user-form {
    display: flex;
    align-items: end;
    gap: 10px;
}

.fp-access-audit-user-form label {
    display: grid;
    gap: 6px;
}

.fp-access-audit-user-form label span {
    color: #344054;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-audit-user-form select {
    min-width: 240px;
    min-height: 42px;
    border: 1px solid var(--fp-access-line);
    border-radius: 7px;
    padding: 0 12px;
    background: #ffffff;
    color: var(--fp-access-ink);
    font: inherit;
    font-size: var(--font-body);
}

.fp-access-timeline {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fp-access-timeline li {
    display: grid;
    grid-template-columns: 14px 164px minmax(130px, 1fr) minmax(120px, 0.8fr) 70px;
    gap: 12px;
    align-items: center;
    min-height: 36px;
    border-bottom: 1px solid #eef2f7;
    padding: 0 16px;
    color: #1d2939;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-access-timeline li:last-child {
    border-bottom: 0;
}

.fp-access-timeline li > span[aria-hidden="true"] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--fp-access-blue);
}

.fp-access-timeline time,
.fp-access-timeline em {
    color: #344054;
    font-style: normal;
}

.fp-access-empty {
    padding: 26px;
    color: var(--fp-access-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.fp-access-empty.is-compact {
    padding: 16px;
}

.fp-access-modal {
    position: fixed;
    z-index: 80;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
}

.fp-access-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 18, 45, 0.46);
    backdrop-filter: blur(2px);
}

.fp-access-modal-card {
    position: relative;
    z-index: 1;
    width: min(430px, calc(100vw - 32px));
    max-height: min(820px, calc(100vh - 40px));
    overflow: auto;
    border: 1px solid var(--fp-access-line);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-access-modal-card .fp-access-detail {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.fp-access-modal-close {
    position: absolute;
    z-index: 2;
    top: 14px;
    right: 14px;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid var(--fp-access-line);
    border-radius: 999px;
    background: #ffffff;
    color: #344054;
}

.fp-access-invite-modal[hidden] {
    display: none;
}

.fp-access-invite-modal .fp-access-modal-backdrop {
    border: 0;
    padding: 0;
    cursor: default;
}

.fp-access-invite-modal-card {
    width: min(540px, calc(100vw - 32px));
    border-radius: 16px;
    padding: 26px;
}

.fp-access-invite-modal-head {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding-right: 38px;
}

.fp-access-invite-modal-head > div {
    display: grid;
    gap: 6px;
}

.fp-access-invite-modal-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 14px;
    background: #edf3ff;
    color: var(--fp-access-blue);
}

body.fp-modal-open {
    overflow: hidden;
}

@media (max-width: 1180px) {
    .fp-access-admin {
        grid-template-columns: 1fr;
    }

    .fp-access-sidebar {
        position: static;
        min-height: auto;
        grid-template-columns: auto 1fr auto;
        grid-template-rows: auto;
        align-items: center;
        padding: 16px 18px;
    }

    .fp-access-brand {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
    }

    .fp-access-brand img {
        width: 160px;
        height: auto;
    }

    .fp-access-nav {
        display: flex;
        justify-content: center;
        gap: 8px;
        padding: 0;
    }

    .fp-access-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .fp-access-topbar,
    .fp-access-sidebar {
        align-items: stretch;
        flex-direction: column;
    }

    .fp-access-sidebar {
        grid-template-columns: 1fr;
    }

    .fp-access-nav {
        justify-content: flex-start;
        overflow-x: auto;
    }

    .fp-access-kpis,
    .fp-access-filters {
        grid-template-columns: 1fr 1fr;
    }

    .fp-access-filters .fp-access-search,
    .fp-access-filters button,
    .fp-access-reset {
        grid-column: 1 / -1;
    }

    .fp-access-timeline li {
        grid-template-columns: 12px minmax(0, 1fr);
        gap: 8px;
        padding: 10px 14px;
    }

    .fp-access-timeline li time,
    .fp-access-timeline li strong,
    .fp-access-timeline li em,
    .fp-access-timeline li small {
        grid-column: 2;
    }

    .fp-access-audit-head,
    .fp-access-audit-user-form {
        display: grid;
        align-items: stretch;
    }

    .fp-access-audit-user-form select {
        min-width: 0;
        width: 100%;
    }
}

@media (max-width: 620px) {
    .fp-access-topbar {
        display: grid;
        gap: 12px;
        min-height: auto;
        padding: 18px;
    }

    .fp-access-main {
        padding: 12px;
    }

    .fp-access-users-head {
        display: grid;
        align-items: stretch;
    }

    .fp-access-create-user {
        width: 100%;
    }

    .fp-access-invite-modal {
        align-items: end;
        padding: 10px;
    }

    .fp-access-invite-modal-card {
        width: 100%;
        max-height: calc(100vh - 20px);
        border-radius: 18px;
        padding: 22px 18px max(22px, env(safe-area-inset-bottom));
    }

    .fp-access-invite-modal-head {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 11px;
        padding-right: 34px;
    }

    .fp-access-invite-modal-icon {
        width: 42px;
        height: 42px;
        border-radius: 12px;
    }

    .fp-access-kpis,
    .fp-access-filters,
    .fp-access-actions {
        grid-template-columns: 1fr;
    }

    .fp-access-modal-card .fp-access-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-access-kpis article {
        min-height: 86px;
    }

    .fp-access-detail-list div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .fp-access-detail-list dd {
        text-align: left;
    }

    .fp-access-modal-card .fp-access-detail-list div {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        min-height: 32px;
    }

    .fp-access-modal-card .fp-access-detail-list dd {
        text-align: right;
    }

    .fp-access-modal-card .fp-access-detail {
        gap: 12px;
        padding: 20px;
    }

    .fp-access-modal-card .fp-access-avatar {
        width: 58px;
        height: 58px;
    }

    .fp-access-modal-card .fp-access-avatar svg {
        width: 32px;
        height: 32px;
    }

    .fp-access-modal-card .fp-access-detail-block,
    .fp-access-modal-card .fp-access-actions {
        padding-top: 12px;
    }

    .fp-access-modal-card .fp-access-actions {
        gap: 8px;
    }

    .fp-access-modal-card .fp-access-actions button,
    .fp-access-modal-card .fp-access-actions a {
        min-height: 40px;
    }
}

@media (max-width: 420px) {
    .auth-body[data-route="collection/link"] .fp-scroll-hint {
        right: max(12px, env(safe-area-inset-right));
        left: auto;
        bottom: max(12px, env(safe-area-inset-bottom));
        width: 36px;
        height: 36px;
        transform: none;
        animation-name: fotoperizia-scroll-hint-mobile-pulse;
    }

    .auth-body[data-route="collection/link"] .fp-scroll-hint span {
        width: 10px;
        height: 10px;
        border-right-width: 2px;
        border-bottom-width: 2px;
    }

    .auth-body[data-route="collection/link"] .fp-customer-shell {
        padding: 0;
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone {
        width: 100%;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
    }

    .auth-body[data-route="collection/link"] .fp-customer-head {
        border-radius: 0;
    }

    .auth-body[data-route="collection/link"] .fp-customer-review-photo-grid,
    .auth-body[data-route="collection/link"] .fp-final-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 420px) {
    .auth-body .fp-login.is-customer-auth-flow .fp-login-card,
    .auth-body .fp-login.is-customer-auth-flow .fp-login-grid {
        min-height: 0;
    }
}

/* Claim Evidence authenticated account workspace */
.auth-body.ce-account-body {
    display: block;
    margin: 0;
    min-width: 0;
    min-height: 100vh;
    padding: 0;
    background: #eef3f9;
    color: #10203b;
}

.auth-body.ce-account-nav-open {
    overflow: hidden;
}

.ce-account-shell {
    --ce-account-nav-width: 286px;
    --ce-account-nav-collapsed: 86px;
    --ce-account-navy: #071d49;
    --ce-account-blue: #175cd3;
    --ce-account-line: #dbe4f0;
    display: grid;
    grid-template-columns: var(--ce-account-nav-width) minmax(0, 1fr);
    min-height: 100vh;
    background:
        radial-gradient(circle at 92% -10%, rgba(63, 126, 232, 0.13), transparent 30rem),
        #eef3f9;
    transition: grid-template-columns 180ms ease;
}

.ce-account-shell *,
.ce-account-shell *::before,
.ce-account-shell *::after {
    box-sizing: border-box;
}

.ce-account-shell.is-nav-collapsed {
    grid-template-columns: var(--ce-account-nav-collapsed) minmax(0, 1fr);
}

.ce-account-sidebar {
    position: sticky;
    z-index: 30;
    top: 0;
    display: grid;
    width: 100%;
    height: 100vh;
    min-height: 0;
    grid-template-rows: auto minmax(0, 1fr) auto;
    overflow: hidden;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    background:
        radial-gradient(circle at 10% 0%, rgba(75, 130, 230, 0.32), transparent 19rem),
        linear-gradient(180deg, #0c2b66 0%, var(--ce-account-navy) 54%, #061735 100%);
    color: #ffffff;
    box-shadow: 20px 0 48px rgba(7, 29, 73, 0.08);
}

.ce-account-sidebar-head {
    display: flex;
    min-width: 0;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    padding: 16px 12px 16px 18px;
}

.ce-account-brand {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    gap: 12px;
    color: #ffffff;
    text-decoration: none;
}

.ce-account-brand img {
    flex: 0 0 auto;
    background: transparent;
    object-fit: contain;
}

.ce-account-client-brand {
    display: grid;
    width: 148px;
    height: 56px;
    min-width: 0;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 10px;
    padding: 4px 8px;
    background: rgba(255, 255, 255, 0.96);
}

.ce-account-client-brand img {
    display: block;
    width: 100%;
    max-width: 132px;
    height: 44px;
    object-fit: contain;
}

.ce-account-collapse,
.ce-account-menu-toggle,
.ce-account-menu-close {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    cursor: pointer;
}

.ce-account-sidebar-head > .ce-account-collapse {
    margin-left: auto;
}

.ce-account-collapse svg,
.ce-account-menu-toggle svg,
.ce-account-menu-close svg,
.ce-account-nav-icon svg,
.ce-account-logout svg,
.ce-account-mobilebar svg,
.ce-account-kpi-icon svg,
.ce-account-action-grid svg,
.ce-account-practice-list article > a svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
}

.ce-account-collapse:hover,
.ce-account-collapse:focus-visible,
.ce-account-menu-close:hover,
.ce-account-menu-close:focus-visible {
    border-color: rgba(255, 255, 255, 0.42);
    background: rgba(255, 255, 255, 0.16);
}

.ce-account-menu-close {
    display: none;
}

.ce-account-navigation {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 18px 12px 24px;
    scrollbar-color: rgba(255, 255, 255, 0.24) transparent;
    scrollbar-width: thin;
}

.ce-account-nav-group + .ce-account-nav-group {
    margin-top: 22px;
}

.ce-account-nav-group h2 {
    margin: 0 10px 8px;
    color: rgba(222, 232, 255, 0.62);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
}

.ce-account-nav-group ul {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ce-account-nav-link {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    min-width: 0;
    min-height: 44px;
    align-items: center;
    gap: 12px;
    border: 1px solid transparent;
    border-radius: 11px;
    padding: 9px 11px;
    color: rgba(237, 243, 255, 0.87);
    font-size: var(--font-label);
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition:
        background-color 150ms ease,
        border-color 150ms ease,
        color 150ms ease,
        transform 150ms ease;
}

a.ce-account-nav-link:hover,
a.ce-account-nav-link:focus-visible {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    transform: translateX(2px);
}

.ce-account-nav-link.is-active {
    border-color: rgba(132, 177, 255, 0.35);
    background: linear-gradient(135deg, rgba(58, 121, 230, 0.92), rgba(39, 93, 188, 0.92));
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(1, 13, 42, 0.22);
}

.ce-account-nav-link.is-disabled {
    color: rgba(219, 229, 250, 0.45);
    cursor: not-allowed;
}

.ce-account-nav-icon {
    display: grid;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    place-items: center;
}

.ce-account-nav-text {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.ce-account-nav-link small {
    grid-column: 2;
    justify-self: start;
    max-width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    padding: 3px 6px;
    color: inherit;
    font-size: var(--font-caption);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: normal;
}

.ce-account-subnav {
    margin: 4px 0 4px 21px !important;
    border-left: 1px solid rgba(255, 255, 255, 0.16);
    padding-left: 13px !important;
}

.ce-account-nav-link.is-child {
    min-height: 36px;
    border-radius: 9px;
    padding-top: 7px;
    padding-bottom: 7px;
    font-size: var(--font-label);
}

.ce-account-nav-link.is-child .ce-account-nav-icon,
.ce-account-nav-link.is-child .ce-account-nav-icon svg {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
}

.ce-account-session {
    display: grid;
    gap: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    padding: 14px;
    background: rgba(2, 12, 34, 0.2);
}

.ce-account-user {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.ce-account-avatar {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.13);
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-user-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.ce-account-user-copy strong,
.ce-account-user-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ce-account-user-copy strong {
    color: #ffffff;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-user-copy small {
    color: rgba(220, 231, 252, 0.65);
    font-size: var(--font-caption);
    font-weight: 650;
}

.ce-account-logout {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 8px 11px;
    background: rgba(255, 255, 255, 0.05);
    color: rgba(244, 247, 255, 0.88);
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.ce-account-logout:hover,
.ce-account-logout:focus-visible {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.ce-account-shell.is-nav-collapsed .ce-account-sidebar-head {
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding-right: 8px;
    padding-left: 8px;
}

.ce-account-shell.is-nav-collapsed .ce-account-nav-link {
    grid-template-columns: 1fr;
    justify-items: center;
}

.ce-account-shell.is-nav-collapsed .ce-account-nav-group h2,
.ce-account-shell.is-nav-collapsed .ce-account-nav-text,
.ce-account-shell.is-nav-collapsed .ce-account-nav-link small,
.ce-account-shell.is-nav-collapsed .ce-account-user-copy {
    display: none;
}

.ce-account-shell.is-nav-collapsed .ce-account-brand {
    flex: 0 0 auto;
}

.ce-account-shell.is-nav-collapsed .ce-account-client-brand {
    width: 44px;
    height: 44px;
    padding: 4px;
}

.ce-account-shell.is-nav-collapsed .ce-account-client-brand img {
    max-width: 36px;
    height: 34px;
}

.ce-account-shell.is-nav-collapsed .ce-account-collapse {
    position: static;
    width: 38px;
    height: 38px;
    margin-left: 0;
    border-radius: 10px;
    background: #1d4f9f;
    box-shadow: 0 8px 18px rgba(2, 12, 34, 0.28);
}

.ce-account-shell.is-nav-collapsed .ce-account-collapse svg {
    width: 16px;
    height: 16px;
    transform: rotate(180deg);
}

.ce-account-shell.is-nav-collapsed .ce-account-navigation {
    padding-right: 10px;
    padding-left: 10px;
}

.ce-account-shell.is-nav-collapsed .ce-account-nav-group + .ce-account-nav-group {
    margin-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    padding-top: 12px;
}

.ce-account-shell.is-nav-collapsed .ce-account-nav-link,
.ce-account-shell.is-nav-collapsed .ce-account-logout {
    justify-content: center;
    gap: 0;
    padding-right: 8px;
    padding-left: 8px;
}

.ce-account-shell.is-nav-collapsed .ce-account-subnav {
    margin-left: 0 !important;
    border-left: 0;
    padding-left: 0 !important;
}

.ce-account-shell.is-nav-collapsed .ce-account-nav-link.is-child {
    min-height: 34px;
    opacity: 0.78;
}

.ce-account-shell.is-nav-collapsed .ce-account-session {
    justify-items: center;
    padding-right: 10px;
    padding-left: 10px;
}

.ce-account-workspace {
    min-width: 0;
}

.ce-account-content {
    width: 100%;
    min-width: 0;
}

.ce-account-content > .site-footer {
    display: none;
}

.ce-account-mobilebar,
.ce-account-overlay {
    display: none;
}

.ce-confirm-open {
    overflow: hidden;
}

.ce-confirm-layer:not([hidden]) {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 20px;
}

.ce-confirm-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(3, 13, 32, 0.66);
    backdrop-filter: blur(5px);
}

.ce-confirm-card {
    position: relative;
    z-index: 1;
    width: min(100%, 470px);
    border: 1px solid #d9e3f1;
    border-radius: 20px;
    padding: 26px;
    background: #ffffff;
    color: #14233c;
    box-shadow: var(--shadow-soft);
}

.ce-confirm-card:focus {
    outline: 3px solid rgba(40, 120, 227, 0.3);
    outline-offset: 3px;
}

.ce-confirm-eyebrow {
    color: #1d65c1;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ce-confirm-card h2 {
    margin: 8px 0 10px;
    font-size: var(--font-title-small);
    letter-spacing: -0.025em;
}

.ce-confirm-card p {
    margin: 0;
    color: #5e6f86;
    line-height: 1.6;
}

.ce-confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

.ce-confirm-actions .ce-ui-button {
    min-height: 44px;
}

.ce-confirm-actions .is-danger {
    border-color: #b42318;
    background: #b42318;
    color: #ffffff;
}

.ce-account-dashboard {
    width: min(1500px, calc(100% - 48px));
    margin: 0 auto;
    padding: 34px 0 52px;
    color: #10203b;
    font-family: var(--font-sans);
}

.ce-account-hero {
    position: relative;
    display: flex;
    min-height: 190px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    overflow: hidden;
    border: 1px solid rgba(59, 110, 197, 0.17);
    border-radius: 24px;
    padding: clamp(28px, 4vw, 48px);
    background:
        radial-gradient(circle at 90% 8%, rgba(86, 150, 255, 0.42), transparent 18rem),
        linear-gradient(135deg, #071d49 0%, #0d3478 58%, #185ec1 100%);
    color: #ffffff;
    box-shadow: 0 24px 56px rgba(9, 37, 88, 0.16);
}

.ce-account-hero::after {
    position: absolute;
    top: -90px;
    right: -55px;
    width: 260px;
    height: 260px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    content: "";
}

.ce-account-hero > * {
    position: relative;
    z-index: 1;
}

.ce-account-eyebrow {
    display: inline-flex;
    margin-bottom: 13px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    padding: 7px 11px;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(246, 249, 255, 0.88);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ce-account-hero h1 {
    margin: 0;
    color: #ffffff;
    font-family: var(--font-display);
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.2;
}

.ce-account-hero p {
    max-width: 720px;
    margin: 14px 0 0;
    color: rgba(233, 241, 255, 0.78);
    font-size: var(--font-body);
    line-height: 1.6;
}

.ce-account-hero-identity {
    display: grid;
    min-width: 210px;
    gap: 6px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 16px;
    padding: 15px 17px;
    background: rgba(4, 20, 55, 0.24);
    backdrop-filter: blur(12px);
}

.ce-account-hero-identity span {
    color: rgba(234, 241, 255, 0.72);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ce-account-hero-identity strong {
    color: #ffffff;
    font-size: var(--font-caption);
}

.ce-account-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 20px;
}

.ce-account-kpis article,
.ce-account-kpis > a {
    display: flex;
    min-width: 0;
    min-height: 112px;
    align-items: center;
    gap: 14px;
    border: 1px solid var(--ce-account-line);
    border-radius: 17px;
    padding: 20px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 14px 34px rgba(15, 38, 76, 0.05);
}

.ce-account-kpis > a {
    color: inherit;
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.ce-account-kpis > a:hover,
.ce-account-kpis > a:focus-visible {
    border-color: #9bb8e2;
    box-shadow: 0 16px 36px rgba(23, 78, 166, 0.12);
    transform: translateY(-1px);
}

.ce-account-kpi-icon,
.ce-account-action-grid > a > span {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    place-items: center;
    border-radius: 14px;
}

.ce-account-kpi-icon.is-blue,
.ce-account-action-grid span.is-blue {
    background: #e8f0ff;
    color: #175cd3;
}

.ce-account-kpi-icon.is-green,
.ce-account-action-grid span.is-green {
    background: #e5f7ef;
    color: #066c4d;
}

.ce-account-kpi-icon.is-orange,
.ce-account-action-grid span.is-orange {
    background: #fff0df;
    color: #c05000;
}

.ce-account-kpi-icon.is-purple,
.ce-account-action-grid span.is-purple {
    background: #f1ebff;
    color: #6941c6;
}

.ce-account-kpis article > div,
.ce-account-kpis > a > div {
    display: grid;
    min-width: 0;
    gap: 5px;
}

.ce-account-kpis article span:not(.ce-account-kpi-icon),
.ce-account-kpis > a span:not(.ce-account-kpi-icon) {
    overflow: hidden;
    color: #687792;
    font-size: var(--font-caption);
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ce-account-kpis article strong,
.ce-account-kpis > a strong {
    color: #0c1d3a;
    font-size: 29px;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.ce-account-dashboard-grid,
.ce-account-management-grid {
    display: grid;
    gap: 18px;
    margin-top: 18px;
}

.ce-account-dashboard-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.65fr);
    align-items: start;
}

.ce-account-dashboard-grid--overview {
    align-items: stretch;
}

.ce-account-management-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ce-account-panel {
    min-width: 0;
    border: 1px solid var(--ce-account-line);
    border-radius: 18px;
    padding: 22px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow-soft);
}

.ce-account-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.ce-account-panel-head h2 {
    margin: 0;
    color: #0d1e3b;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.ce-account-panel-head p {
    margin: 5px 0 0;
    color: #74829a;
    font-size: var(--font-body);
    line-height: 1.5;
}

.ce-account-panel-head > a,
.ce-account-secondary-action {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid #cbd9ed;
    border-radius: 10px;
    padding: 8px 11px;
    background: #f8fbff;
    color: #1752ad;
    font-family: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.ce-account-panel-head > a:hover,
.ce-account-panel-head > a:focus-visible,
.ce-account-secondary-action:hover,
.ce-account-secondary-action:focus-visible {
    border-color: #9bb8e2;
    background: #edf4ff;
}

.ce-account-practice-list {
    display: grid;
    margin-top: 16px;
}

.ce-account-practice-list article {
    display: grid;
    min-width: 0;
    grid-template-columns: 32px minmax(0, 1fr) auto 36px;
    gap: 12px;
    align-items: center;
    border-top: 1px solid #e7edf5;
    padding: 14px 0;
}

.ce-account-practice-list article:first-child {
    border-top: 0;
}

.ce-account-practice-list article.is-unassigned {
    margin-inline: -10px;
    border: 1px solid #f3cf98;
    border-radius: 12px;
    padding-inline: 10px;
    background: #fffaf1;
}

.ce-account-unassigned-badge {
    display: inline-flex;
    width: max-content;
    border-radius: 999px;
    padding: 3px 7px;
    background: #fff0d6;
    color: #8a4b00 !important;
    font-size: var(--font-caption) !important;
    font-weight: 700;
}

.ce-account-practice-mark {
    justify-self: center;
    width: 7px;
    height: 32px;
    border-radius: 999px;
    background: linear-gradient(180deg, #3478de, #0c3d93);
}

.ce-account-practice-list .ce-collection-mode-icon {
    margin-right: 0;
}

.ce-account-practice-list article > div {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.ce-account-practice-list strong,
.ce-account-practice-list article > div span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ce-account-practice-parties {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: 3px 12px;
}

.ce-account-practice-parties > span {
    min-width: 0;
}

.ce-account-practice-parties b {
    color: #4f607a;
    font-weight: 700;
}

.ce-account-practice-list strong {
    color: #10213e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-practice-list article > div span {
    color: var(--muted);
    font-size: var(--font-caption);
    line-height: 1.4;
}

.ce-account-status,
.ce-account-badge {
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    align-items: center;
    border-radius: 999px;
    padding: 6px 9px;
    background: #eef2f7;
    color: #59677e;
    font-size: var(--font-caption);
    font-weight: 700;
    white-space: nowrap;
}

.ce-account-status.is-green,
.ce-account-badge.is-success {
    background: #e6f6ee;
    color: #066c4d;
}

.ce-account-status.is-orange {
    background: #fff0df;
    color: #b54708;
}

.ce-account-status.is-red {
    background: #ffebee;
    color: #c91c31;
}

.ce-account-status.is-blue {
    background: #e9f1ff;
    color: #175cd3;
}

.ce-account-badge.is-neutral {
    background: #edf1f6;
    color: var(--muted);
}

.ce-account-practice-list article > a {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid #d7e1ee;
    border-radius: 10px;
    color: #1a56ad;
}

.ce-account-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.ce-account-action-grid > a {
    display: grid;
    min-width: 0;
    gap: 7px;
    border: 1px solid #e0e7f1;
    border-radius: 14px;
    padding: 14px;
    background: #fbfdff;
    color: inherit;
    text-decoration: none;
    transition:
        border-color 150ms ease,
        transform 150ms ease,
        box-shadow 150ms ease;
}

.ce-account-action-grid > a:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.ce-account-action-grid > a:hover,
.ce-account-action-grid > a:focus-visible {
    border-color: #b8cbea;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(15, 57, 119, 0.08);
}

.ce-account-action-grid > a > span {
    width: 38px;
    height: 38px;
}

.ce-account-action-grid strong {
    color: #10213e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-action-grid small {
    color: #7a879c;
    font-size: var(--font-caption);
    line-height: 1.5;
}

.ce-account-empty {
    margin-top: 16px;
    border: 1px dashed #cfdae9;
    border-radius: 14px;
    padding: 28px 18px;
    background: #f8fafc;
    color: var(--muted);
    font-size: var(--font-caption);
    text-align: center;
}

.ce-account-details {
    display: grid;
    gap: 0;
    margin: 14px 0 0;
}

.ce-account-details div {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 10px;
    border-top: 1px solid #e8edf4;
    padding: 10px 0;
}

.ce-account-details div:first-child {
    border-top: 0;
}

.ce-account-details dt,
.ce-account-details dd {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ce-account-details dt {
    color: #7a879c;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-details dd {
    color: #182946;
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.ce-account-panel-note {
    margin: 16px 0;
    color: #68768d;
    font-size: var(--font-caption);
    line-height: 1.55;
}

.ce-account-panel form {
    margin: 14px 0 0;
}

.ce-account-form {
    display: grid;
    gap: 15px;
    margin: 14px 0 0;
}

.ce-account-panel .ce-team-invite-form + .ce-account-secondary-action {
    max-width: 100%;
    min-height: 40px;
    margin-top: 12px;
    padding: 9px 12px;
    font-size: var(--font-caption);
    line-height: 1.35;
    text-align: center;
}

.ce-account-field {
    display: grid;
    min-width: 0;
    gap: 7px;
    color: #253858;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-field input,
.ce-account-field select {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    border: 1px solid #c8d6e8;
    border-radius: 10px;
    padding: 0 13px;
    background-color: #fbfdff;
    color: #13233f;
    font: inherit;
    font-size: var(--font-body);
    font-weight: 650;
    outline: none;
    transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.ce-account-field select {
    appearance: none;
    padding-right: 42px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231d4f91' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 13px center;
    background-size: 18px;
    cursor: pointer;
}

.ce-account-field input:hover,
.ce-account-field select:hover {
    border-color: #9eb5d5;
    background-color: #ffffff;
}

.ce-account-field input:focus,
.ce-account-field select:focus {
    border-color: #175cd3;
    background-color: #ffffff;
    box-shadow: 0 0 0 4px rgba(23, 92, 211, 0.13);
}

.ce-account-field small {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 650;
    line-height: 1.45;
}

.ce-account-options {
    gap: 9px;
    margin: 0;
    padding: 13px 15px 15px;
    border: 1px solid #d7e1ef;
    border-radius: 12px;
    background: #fbfdff;
}

.ce-account-options legend {
    padding: 0 6px;
    color: #253858;
    font-weight: 700;
}

.ce-account-options label,
.ce-account-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    color: #253858;
    font-size: var(--font-caption);
    font-weight: 700;
    cursor: pointer;
}

.ce-account-options input[type="checkbox"],
.ce-account-toggle input[type="checkbox"] {
    width: 19px;
    min-width: 19px;
    height: 19px;
    min-height: 19px;
    margin: 0;
    padding: 0;
    border-radius: 5px;
    accent-color: #175cd3;
    box-shadow: none;
}

.ce-account-submit {
    display: inline-flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid #0f4fc5;
    border-radius: 10px;
    padding: 0 18px;
    background: linear-gradient(135deg, #174fb8 0%, #1262f2 100%);
    color: #ffffff;
    font: inherit;
    font-size: var(--font-caption);
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 13px 26px rgba(16, 78, 180, 0.22);
    transition: transform 150ms ease, box-shadow 150ms ease, filter 150ms ease;
}

.ce-account-submit svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.ce-account-submit:hover {
    filter: brightness(1.04);
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgba(16, 78, 180, 0.27);
}

.ce-account-submit:focus-visible {
    outline: 3px solid rgba(23, 92, 211, 0.24);
    outline-offset: 3px;
}

.ce-account-profile-save {
    width: auto;
    min-height: 40px;
    flex: 0 0 auto;
    padding: 0 16px;
}

.ce-account-calendar-action {
    margin-top: 18px;
}

.ce-organization-logo-editor {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    margin: 20px 0 24px;
    border: 1px solid #d9e5f5;
    border-radius: 16px;
    padding: 18px;
    background: linear-gradient(135deg, #f8fbff 0%, #f1f6fd 100%);
}

.ce-organization-logo-preview {
    display: grid;
    width: 180px;
    height: 86px;
    place-items: center;
    overflow: hidden;
    border: 1px dashed #aebfd6;
    border-radius: 13px;
    padding: 10px;
    background: #ffffff;
}

.ce-organization-logo-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ce-organization-logo-preview span {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.ce-organization-logo-copy h3 {
    margin: 0;
    color: #10213e;
    font-size: var(--font-label);
}

.ce-organization-logo-copy > p {
    margin: 6px 0 0;
    color: #66758c;
    font-size: var(--font-body);
    line-height: 1.5;
}

.ce-account-panel .ce-organization-logo-form {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

.ce-organization-logo-file {
    display: grid;
    gap: 6px;
    color: #253858;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-organization-logo-file input {
    width: 100%;
    border: 1px solid #c8d6e8;
    border-radius: 10px;
    padding: 9px 10px;
    background: #ffffff;
    color: #253858;
    font: inherit;
}

.ce-organization-logo-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ce-organization-logo-actions .ce-account-submit,
.ce-organization-logo-actions .ce-account-secondary-action {
    width: auto;
    min-height: 40px;
}

.ce-account-secondary-action.is-danger {
    border-color: #efb4ae;
    background: #fffafa;
    color: #b42318;
}

.ce-account-client-section {
    margin-top: 18px;
    scroll-margin-top: 82px;
}

.ce-account-client-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
    gap: 22px;
    align-items: start;
    margin-top: 18px;
}

.ce-account-client-list {
    display: grid;
    gap: 10px;
}

.ce-account-client-list .ce-account-empty {
    margin-top: 0;
}

.ce-account-client-list article {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid #dce6f3;
    border-radius: 14px;
    padding: 15px 16px;
    background: linear-gradient(135deg, #fbfdff 0%, #f5f9ff 100%);
}

.ce-account-client-list article > div {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.ce-account-client-list article > div > span {
    color: #1752ad;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ce-account-client-list strong,
.ce-account-client-list small {
    overflow-wrap: anywhere;
}

.ce-account-client-list strong {
    color: #10213e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-client-list small {
    color: #74829a;
    font-size: var(--font-caption);
}

.ce-account-client-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid #d9e5f5;
    border-radius: 15px;
    padding: 17px;
    background: #f7faff;
}

.ce-account-client-form .ce-account-submit {
    grid-column: 1 / -1;
}

/* Existing authenticated modules now share the account navigation shell. */
.ce-account-shell .fp-review-app,
.ce-account-shell .policy-app,
.ce-account-shell .ce-agenda-app,
.ce-account-shell .ce-studio-calendar,
.ce-account-shell .fp-access-admin {
    min-height: auto;
    background: transparent;
}

.ce-account-shell .fp-review-main {
    width: min(1460px, calc(100% - 48px));
    padding-top: 34px;
}

.ce-account-shell .fp-review-line-item {
    grid-template-columns: minmax(140px, 0.8fr) minmax(220px, 1.4fr) minmax(120px, 0.7fr) auto;
}

.ce-account-shell .fp-review-line-item > * {
    min-width: 0;
}

.ce-account-shell .fp-access-sidebar {
    display: none;
}

.ce-account-shell .fp-access-topbar {
    position: static;
    width: min(1460px, calc(100% - 48px));
    margin: 0 auto;
    border-bottom: 1px solid #dbe4f0;
    background: transparent;
}

.ce-account-shell .policy-main,
.ce-account-shell .ce-agenda-main {
    width: min(1460px, calc(100% - 48px));
    padding-top: 34px;
}

.ce-account-shell .ce-studio-calendar {
    grid-template-columns: minmax(0, 1fr);
    margin-inline: auto;
    min-width: 0;
    width: min(1460px, calc(100% - 48px));
}

.ce-account-shell .ce-studio-calendar > * {
    min-width: 0;
}

.ce-account-shell .ce-studio-calendar-management {
    grid-template-columns: minmax(0, 1fr);
}

.ce-account-shell .ce-studio-calendar-management > * {
    min-width: 0;
}

.ce-account-shell .fp-access-admin {
    display: block;
}

.ce-account-shell .fp-access-workspace {
    display: block;
    background: transparent;
}

.ce-account-shell .fp-access-main {
    width: min(1460px, calc(100% - 48px));
    margin: 0 auto;
    padding: 34px 0 40px;
}

.ce-account-shell :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid rgba(74, 139, 240, 0.42);
    outline-offset: 2px;
}

@media (max-width: 1280px) {
    .ce-account-management-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-account-dashboard-grid {
        grid-template-columns: minmax(0, 1.1fr) minmax(330px, 0.9fr);
    }

    .ce-account-shell .ce-studio-calendar-head {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-account-shell .ce-studio-calendar-filter {
        min-width: 0;
    }

    .ce-account-shell .ce-studio-calendar-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-account-shell .ce-studio-appointment-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-account-shell .ce-studio-appointment-form h3,
    .ce-account-shell .ce-studio-appointment-form p {
        grid-column: 1 / -1;
    }
}

@media (max-width: 1024px) {
    .ce-account-shell,
    .ce-account-shell.is-nav-collapsed {
        display: block;
    }

    .ce-account-sidebar {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        width: min(86vw, 326px);
        height: 100dvh;
        transform: translateX(-105%);
        transition: transform 180ms ease;
    }

    .ce-account-shell.is-nav-open .ce-account-sidebar {
        transform: translateX(0);
    }

    .ce-account-shell.is-nav-open .ce-account-overlay {
        position: fixed;
        z-index: 20;
        inset: 0;
        display: block;
        border: 0;
        background: rgba(3, 13, 32, 0.58);
        backdrop-filter: blur(3px);
    }

    .ce-account-collapse {
        display: none;
    }

    .ce-account-menu-close {
        display: grid;
    }

    .ce-account-mobilebar {
        position: sticky;
        z-index: 15;
        top: 0;
        display: grid;
        min-height: 64px;
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 12px;
        align-items: center;
        border-bottom: 1px solid #d6e0ee;
        padding: 10px 16px;
        background: rgba(255, 255, 255, 0.94);
        backdrop-filter: blur(16px);
        box-shadow: 0 8px 24px rgba(16, 36, 70, 0.06);
    }

    .ce-account-menu-toggle {
        border-color: #cbd8ea;
        background: #eef4fd;
        color: #174b99;
    }

    .ce-account-mobile-context {
        display: flex;
        min-width: 0;
        align-items: center;
        gap: 10px;
        color: #10213e;
    }

    .ce-account-mobile-context > a {
        display: flex;
        min-width: 0;
        align-items: center;
        text-decoration: none;
    }

    .ce-account-mobilebar .ce-account-mobile-client-logo {
        width: 112px;
        height: 40px;
        object-fit: contain;
    }

    .ce-account-mobile-context > span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .ce-account-mobile-context > span {
        max-width: 160px;
        color: #52627d;
        font-size: var(--font-caption);
        font-weight: 700;
        text-align: left;
    }

    .ce-account-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .ce-account-client-layout {
        grid-template-columns: 1fr;
    }

    .ce-account-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-account-shell.is-nav-collapsed .ce-account-nav-group h2,
    .ce-account-shell.is-nav-collapsed .ce-account-nav-text,
    .ce-account-shell.is-nav-collapsed .ce-account-nav-link small,
    .ce-account-shell.is-nav-collapsed .ce-account-user-copy {
        display: initial;
    }

    .ce-account-shell.is-nav-collapsed .ce-account-brand {
        flex: 1 1 auto;
    }

    .ce-account-shell.is-nav-collapsed .ce-account-client-brand {
        display: grid;
        width: 148px;
        height: 56px;
        padding: 4px 8px;
    }

    .ce-account-shell.is-nav-collapsed .ce-account-client-brand img {
        max-width: 132px;
        height: 44px;
    }

    .ce-account-shell.is-nav-collapsed .ce-account-nav-link,
    .ce-account-shell.is-nav-collapsed .ce-account-logout {
        justify-content: flex-start;
        gap: 12px;
        padding-right: 11px;
        padding-left: 11px;
    }

    .ce-account-shell.is-nav-collapsed .ce-account-subnav {
        margin-left: 21px !important;
        border-left: 1px solid rgba(255, 255, 255, 0.16);
        padding-left: 13px !important;
    }

    .ce-account-shell.is-nav-collapsed .ce-account-session {
        justify-items: stretch;
    }
}

@media (max-width: 720px) {
    .ce-account-dashboard,
    .ce-account-shell .fp-review-main,
    .ce-account-shell .policy-main,
    .ce-account-shell .ce-agenda-main,
    .ce-account-shell .ce-studio-calendar,
    .ce-account-shell .fp-access-main {
        width: min(100% - 28px, 1500px);
    }

    .ce-account-shell .fp-review-line-item {
        grid-template-columns: 1fr;
    }

    .ce-account-shell .ce-studio-appointment-form {
        grid-template-columns: 1fr;
    }

    .ce-account-shell .ce-studio-appointment-form h3,
    .ce-account-shell .ce-studio-appointment-form p {
        grid-column: auto;
    }

    .ce-account-dashboard {
        padding-top: 18px;
    }

    .ce-account-hero {
        min-height: 0;
        align-items: flex-start;
        flex-direction: column;
        padding: 26px 22px;
    }

    .ce-account-hero h1 {
        font-size: clamp(29px, 9vw, 40px);
    }

    .ce-account-hero p {
        font-size: var(--font-body);
    }

    .ce-account-hero-identity {
        width: 100%;
        min-width: 0;
    }

    .ce-account-kpis,
    .ce-account-management-grid {
        grid-template-columns: 1fr;
    }

    .ce-account-kpis article,
    .ce-account-kpis > a {
        min-height: 92px;
        padding: 16px;
    }

    .ce-account-panel {
        padding: 18px;
    }

    .ce-account-client-form {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .ce-account-practice-list article {
        grid-template-columns: 32px minmax(0, 1fr) 34px;
    }

    .ce-account-practice-list .ce-account-status {
        grid-column: 2;
        grid-row: 2;
    }

    .ce-account-practice-list article > a {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .ce-account-action-grid {
        grid-template-columns: 1fr;
    }

    .ce-account-shell .fp-access-main {
        padding-top: 18px;
    }
}

@media (max-width: 480px) {
    .ce-account-mobilebar {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .ce-account-mobile-context > span {
        display: none;
    }

    .ce-account-mobilebar .ce-account-mobile-client-logo {
        width: min(92px, 30vw);
        height: 34px;
    }

    .ce-confirm-card {
        border-radius: 16px;
        padding: 21px;
    }

    .ce-confirm-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-account-panel-head {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-account-panel-head > a,
    .ce-account-badge {
        align-self: flex-start;
    }

    .ce-account-details div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .ce-account-details dd {
        text-align: left;
    }

    .ce-organization-logo-editor {
        grid-template-columns: 1fr;
    }

    .ce-organization-logo-preview {
        width: 100%;
    }
}

/* Studio UX release 3: governance, integrations, KPI and audit clarity. */
.policy-page-index {
    position: sticky;
    top: 10px;
    z-index: 8;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin: 0 0 18px;
    border: 1px solid #dfe7f0;
    border-radius: 14px;
    padding: 8px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 28px rgba(25, 48, 78, 0.08);
    scrollbar-width: thin;
}

.policy-page-index a {
    min-height: 44px;
    flex: 0 0 auto;
    align-content: center;
    border-radius: 10px;
    padding: 0 13px;
    color: #294866;
    font-size: var(--font-caption);
    font-weight: 700;
    text-decoration: none;
}

.policy-page-index a:hover,
.policy-page-index a:focus-visible { background: #eef5ff; color: #145bb8; }

.policy-stage-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}

.policy-stage-track li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 2px 9px; align-items: center; border: 1px solid #dfe7f0; border-radius: 14px; padding: 11px; background: #fff; }
.policy-stage-track li > span { grid-row: 1 / span 2; display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #edf2f7; color: #61748a; font-weight: 700; }
.policy-stage-track strong { color: #1f3c5c; font-size: var(--font-caption); }
.policy-stage-track small { color: var(--muted); font-size: var(--font-caption); }
.policy-stage-track .is-complete { border-color: #bde5d8; background: #f2fbf8; }
.policy-stage-track .is-complete > span { background: #15876f; color: #fff; }
.policy-stage-track .is-current { border-color: #9ec5f7; box-shadow: inset 0 0 0 1px #9ec5f7; }
.policy-stage-track .is-current > span { background: #2878e3; color: #fff; }

.policy-essential-section > summary { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.policy-essential-section > summary::-webkit-details-marker { display: none; }
.policy-essential-section > summary h3 { margin: 0; }
.policy-essential-section > summary span { color: #60738a; font-size: var(--font-caption); font-weight: 700; }
.policy-essential-section:not([open]) { padding-bottom: 0; }
.policy-essential-section:not([open]) .policy-essential-facts { display: none; }
.policy-version-overflow { position: relative; }
.policy-version-overflow > summary { display: grid; min-width: 44px; min-height: 44px; place-items: center; cursor: pointer; border: 1px solid #d8e2ee; border-radius: 10px; color: #425b75; font-size: var(--font-lead); list-style: none; }
.policy-version-overflow > summary::-webkit-details-marker { display: none; }
.policy-version-overflow form { position: absolute; top: calc(100% + 6px); right: 0; z-index: 5; min-width: 190px; border: 1px solid #ead8d8; border-radius: 12px; padding: 8px; background: #fff; box-shadow: 0 14px 32px rgba(29, 45, 66, 0.16); }
.policy-delete-overflow { margin-top: 18px; border: 1px solid #e2e8f0; border-radius: 12px; padding: 10px 14px; }
.policy-delete-overflow > summary { min-height: 44px; align-content: center; cursor: pointer; color: #5f7084; font-weight: 700; }

.ce-account-team-handoff { display: grid; gap: 12px; }
.ce-account-team-handoff p { margin: 0; color: #60748a; }
.ce-account-team-handoff .ce-account-submit,
.ce-account-team-handoff .ce-account-secondary-action { justify-content: center; text-align: center; text-decoration: none; }
.ce-account-mobile-save { display: none; }
.ce-account-technical-disclosure { padding: 0; }
.ce-account-technical-disclosure > summary { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; padding: 18px 22px; list-style: none; }
.ce-account-technical-disclosure > summary::-webkit-details-marker { display: none; }
.ce-account-technical-disclosure > summary span:first-child { display: grid; gap: 5px; }
.ce-account-technical-disclosure > summary strong { color: #173758; font-size: var(--font-lead); }
.ce-account-technical-disclosure > summary small { color: #65778b; font-weight: 500; }
.ce-account-technical-disclosure[open] > summary > span:last-child { transform: rotate(180deg); }
.ce-account-technical-disclosure .ce-account-details { margin: 0; border-top: 1px solid #e4eaf1; padding: 20px 22px; }

body.ce-integration-drawer-open { overflow: hidden; }
.ce-integration-path-panel { position: fixed; inset: 0; z-index: 100; display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, 720px); padding: 0; background: transparent; }
.ce-integration-path-panel[hidden] { display: none !important; }
.ce-integration-drawer-backdrop { grid-column: 1; width: 100%; height: 100%; border: 0; background: rgba(12, 28, 47, 0.48); backdrop-filter: blur(2px); }
.ce-integration-drawer-card { grid-column: 2; overflow-y: auto; overscroll-behavior: contain; padding: 28px; background: #fff; box-shadow: var(--shadow-soft); }
.ce-integration-path-head { position: sticky; top: -28px; z-index: 2; margin: -28px -28px 20px; border-bottom: 1px solid #e5eaf1; padding: 24px 28px 18px; background: rgba(255, 255, 255, 0.97); }
.ce-developer-tools .ce-account-secondary-action { width: max-content; text-decoration: none; }

.ce-kpi-metric-card > em { color: var(--muted); font-size: var(--font-caption); font-style: normal; font-weight: 650; }
.ce-kpi-activity-breakdown { display: grid; gap: 3px; margin: 7px 0 0; padding: 0; color: #607187; font-size: var(--font-caption); list-style: none; }
.ce-kpi-activity-breakdown li { display: flex; justify-content: space-between; gap: 10px; }
.ce-kpi-activity-breakdown b { color: #2b4663; }

.fp-access-audit-user-form { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)) auto; gap: 10px; align-items: end; width: 100%; }
.fp-access-audit-user-form input,
.fp-access-audit-user-form select { width: 100%; min-height: 44px; }
.fp-access-audit-routes { grid-column: 3 / -1; color: #526a83; font-size: var(--font-caption); }

@media (max-width: 900px) {
    .policy-stage-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-integration-path-panel { grid-template-columns: minmax(0, 1fr); padding-top: max(24px, env(safe-area-inset-top)); }
    .ce-integration-drawer-backdrop { position: absolute; inset: 0; grid-column: 1; }
    .ce-integration-drawer-card { position: relative; grid-column: 1; max-height: calc(100dvh - max(24px, env(safe-area-inset-top))); border-radius: 20px 20px 0 0; padding: 20px; }
    .ce-integration-path-head { top: -20px; margin: -20px -20px 18px; padding: 20px; }
    .fp-access-audit-user-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .policy-stage-track { grid-template-columns: minmax(0, 1fr); }
    .policy-page-index { top: 4px; margin-inline: -4px; }
    .ce-account-profile-save { display: none; }
    .ce-account-mobile-save { position: sticky; bottom: max(8px, env(safe-area-inset-bottom)); z-index: 7; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-2); margin: 18px 0 0; border: 1px solid #cddbea; border-radius: 14px; padding: var(--space-3); background: #fff; box-shadow: var(--shadow-soft); }
    .ce-account-mobile-save span { color: #64758a; font-size: var(--font-caption); }
    .ce-account-mobile-save .ce-account-submit { flex: 0 0 auto; }
    .fp-access-audit-user-form { grid-template-columns: minmax(0, 1fr); }
    .fp-access-audit-routes { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
    .ce-account-shell,
    .ce-account-sidebar,
    .ce-account-nav-link,
    .ce-account-action-grid > a {
        scroll-behavior: auto;
        transition: none;
    }
}

/* Keep the approved mockup card proportions even on narrow phones. */
@media (max-width: 420px) {
    .auth-body[data-route="collection/link"] .fp-customer-shell,
    .auth-body[data-route="collection/login"] .fp-login,
    .auth-body[data-route="collection/register"] .fp-login,
    .auth-body .fp-login.is-customer-auth-flow,
    .fp-welcome-shell {
        padding: 18px 10px;
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone,
    .auth-body[data-route="collection/login"] .fp-login-grid,
    .auth-body[data-route="collection/register"] .fp-login-grid,
    .auth-body .fp-login.is-customer-auth-flow .fp-login-grid,
    .fp-welcome-panel {
        width: min(100%, 360px);
        border-radius: 8px;
    }

    .auth-body[data-route="collection/login"] .fp-login-card,
    .auth-body[data-route="collection/register"] .fp-login-card,
    .auth-body .fp-login.is-customer-auth-flow .fp-login-card,
    .fp-welcome-panel {
        min-height: 0;
        border: 1px solid #cfdbea;
        border-radius: 8px;
        box-shadow: var(--shadow-soft);
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone {
        border: 1px solid #cfdbea;
    }
}

/* Route aliases used by the collection controllers after redirects. */
.auth-body .site-footer {
    display: none;
}

.auth-body .fp-login.is-customer-auth-flow {
    display: grid;
    min-height: 100vh;
    place-items: start center;
    padding: 22px 14px;
    background: #eaf1f7;
}

.auth-body .fp-login.is-customer-auth-flow .fp-login-topbar {
    display: none;
}

.auth-body .fp-login.is-customer-auth-flow .fp-login-grid {
    display: grid;
    width: min(100%, 360px);
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0;
}

.auth-body .fp-login.is-customer-auth-flow .fp-login-card {
    display: grid;
    gap: 12px;
    border: 1px solid #cfdbea;
    border-radius: 8px;
    padding: 16px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.auth-body .fp-login.is-customer-auth-flow .fp-login-form,
.auth-body .fp-login.is-customer-auth-flow .fp-register-card {
    display: grid;
    gap: 11px;
}

@media (max-width: 420px) {
    .auth-body .fp-login.is-customer-auth-flow {
        padding: 0;
    }

    .auth-body .fp-login.is-customer-auth-flow .fp-login-grid,
    .auth-body .fp-login.is-customer-auth-flow .fp-login-card {
        width: 100%;
        min-height: 100vh;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
        box-shadow: none;
    }
}

/* Customer photo collection approved mobile mockups, July 2026. */
.auth-body[data-route="collection/login"],
.auth-body[data-route="collection/register"],
.auth-body[data-route="collection/link"] {
    background: #eaf1f7;
}

.auth-body[data-route="collection/login"] .fp-login,
.auth-body[data-route="collection/register"] .fp-login {
    display: grid;
    min-height: 100vh;
    place-items: start center;
    padding: 22px 14px;
    background: #eaf1f7;
}

.auth-body[data-route="collection/login"] .fp-login-topbar,
.auth-body[data-route="collection/register"] .fp-login-topbar {
    display: none;
}

.auth-body[data-route="collection/login"] .fp-login-grid,
.auth-body[data-route="collection/register"] .fp-login-grid {
    display: grid;
    width: min(100%, 360px);
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0;
}

.auth-body[data-route="collection/login"] .fp-login-card,
.auth-body[data-route="collection/register"] .fp-login-card,
.fp-welcome-panel {
    display: grid;
    gap: 12px;
    border: 1px solid #cfdbea;
    border-radius: 8px;
    padding: 16px;
    background: #ffffff;
    box-shadow: var(--shadow-soft);
}

.fp-login-form,
.auth-body[data-route="collection/register"] .fp-register-card {
    display: grid;
    gap: 11px;
}

.fp-auth-card-head {
    display: flex;
    min-height: 40px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #071333;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-auth-card-head span {
    border-radius: 999px;
    padding: 5px 8px;
    background: #eef3f8;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-auth-card-head .fp-auth-card-brand {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

.fp-auth-card-head .fp-auth-card-brand .fp-logo-mark {
    width: 160px;
    height: auto;
    flex: 0 0 auto;
}

.auth-body .fp-login.is-customer-auth-flow .fp-auth-card-head .fp-auth-card-brand span {
    overflow: hidden;
    padding: 0;
    background: transparent;
    color: #071333;
    font-size: var(--font-lead) !important;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.auth-body[data-route="collection/login"] .fp-login-card h1,
.auth-body[data-route="collection/register"] .fp-login-card h1,
.fp-welcome-copy h1 {
    margin: 0;
    color: #101b2e;
    font-size: 22px;
    line-height: 1.2;
}

.auth-body[data-route="collection/login"] .fp-login-card p,
.auth-body[data-route="collection/register"] .fp-login-card p,
.fp-welcome-copy p {
    margin: 0;
    color: #5b6980;
    font-size: var(--font-body);
    line-height: 1.42;
}

.auth-body[data-route="collection/login"] .fp-login-field,
.auth-body[data-route="collection/register"] .fp-login-field,
.fp-session-link-field {
    gap: 5px;
    color: #26344b;
    font-size: var(--font-label);
    font-weight: 700;
}

.auth-body[data-route="collection/login"] .fp-login-field input,
.auth-body[data-route="collection/register"] .fp-login-field input,
.fp-session-link-field input {
    height: 42px;
    border-radius: 7px;
    padding: 0 10px;
    background: #ffffff;
    font-size: var(--font-body);
}

.fp-login-actions,
.fp-session-link-actions {
    display: grid;
    gap: 8px;
}

.fp-login-actions {
    grid-template-columns: minmax(0, 1fr) max-content;
}

.fp-session-link-actions {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}

.auth-body[data-route="collection/login"] .fp-login-submit,
.auth-body[data-route="collection/login"] .fp-login-secondary-cta,
.auth-body[data-route="collection/register"] .fp-login-submit,
.auth-body[data-route="collection/register"] .fp-login-secondary-cta,
.fp-session-link-actions > *,
.fp-welcome-secondary-actions > *,
.fp-welcome-actions .fp-primary-cta {
    min-height: 42px;
    border-radius: 7px;
    box-shadow: none;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/login"] .fp-login-submit,
.auth-body[data-route="collection/register"] .fp-login-submit,
.fp-welcome-actions .fp-primary-cta,
.fp-session-link-actions .fp-primary {
    background: #1262f2;
}

.auth-body[data-route="collection/login"] .fp-login-secondary-cta,
.auth-body[data-route="collection/register"] .fp-login-secondary-cta,
.fp-session-link-actions .fp-secondary,
.fp-welcome-secondary-actions .fp-secondary {
    border-color: #d8e2ef;
    background: #edf3fa;
    color: #0d2442;
}

.auth-body[data-route="collection/login"] .fp-login-secondary-cta {
    white-space: nowrap;
}

.auth-body[data-route="collection/login"] .fp-login-disclosure {
    margin: 0;
    background: #ffffff;
}

.auth-body[data-route="collection/login"] .fp-login-disclosure .fp-resend-form {
    gap: 9px;
    padding: 0 10px 10px;
}

.auth-body[data-route="collection/register"] .fp-register-grid {
    gap: 8px;
}

.fp-welcome-shell {
    display: grid;
    min-height: 100vh;
    place-items: start center;
    padding: 22px 14px;
    background: #eaf1f7;
}

.fp-welcome-panel {
    width: min(100%, 360px);
}

.fp-welcome-brand {
    display: none;
}

.fp-welcome-copy {
    display: grid;
    gap: 8px;
}

.fp-welcome-user,
.fp-welcome-status,
.fp-welcome-counter {
    display: grid;
    gap: 3px;
    margin: 0;
    border: 1px solid #e0e8f2;
    border-radius: 8px;
    padding: 10px;
    background: #f8fbff;
    color: #5b6980;
    font-size: var(--font-caption);
    font-weight: 700;
}

.fp-welcome-user strong {
    color: #101b2e;
    font-size: var(--font-caption);
}

.fp-session-link-panel {
    display: grid;
    gap: 10px;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    padding: 12px;
    background: #ffffff;
}

.fp-session-link-panel[hidden] {
    display: none !important;
}

.is-session-link-ready .fp-welcome-panel > .fp-auth-card-head,
.is-session-link-ready .fp-welcome-panel > .fp-welcome-copy,
.is-session-link-ready .fp-welcome-panel > .fp-welcome-actions,
.is-session-link-ready .fp-welcome-panel > .fp-welcome-status,
.is-session-link-ready .fp-welcome-panel > .fp-welcome-secondary-actions {
    display: none !important;
}

.fp-welcome-secondary-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fp-welcome-secondary-actions.is-single {
    grid-template-columns: minmax(0, 1fr);
}

.auth-body[data-route="collection/link"] .fp-customer-shell {
    min-height: 100vh;
    padding: 18px 10px;
    background: #eaf1f7;
}

.auth-body[data-route="collection/link"] .fp-customer-phone {
    width: min(100%, 360px);
    min-height: calc(100vh - 36px);
    border-color: #cfdbea;
    border-radius: 8px;
    background: #f8fafc;
    box-shadow: 0 12px 28px rgba(15, 31, 55, 0.10);
}

.auth-body[data-route="collection/link"] .fp-customer-head {
    position: static;
    min-height: 46px;
    border-radius: 8px 8px 0 0;
    padding: 0 14px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-customer-brand {
    gap: 8px;
}

.auth-body[data-route="collection/link"] .fp-customer-head .fp-logo-mark {
    width: 120px;
    height: auto;
}

.auth-body[data-route="collection/link"] .fp-customer-head a {
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-screen {
    position: relative;
    display: grid;
    gap: 10px;
    padding: 14px;
    background: #f8fafc;
}

.auth-body[data-route="collection/link"] .fp-screen[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-screen[data-fp-step-label]::before {
    content: attr(data-fp-step-label);
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 1;
    border-radius: 999px;
    padding: 5px 8px;
    background: #eef3f8;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-customer-copy {
    display: grid;
    gap: 6px;
    min-height: 92px;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    padding: 14px 72px 14px 14px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-customer-copy h1,
.auth-body[data-route="collection/link"] .fp-photo-step h2 {
    margin: 0;
    color: #101b2e;
    font-size: 22px;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-customer-copy p,
.auth-body[data-route="collection/link"] .fp-photo-step p {
    margin: 0;
    color: #5b6980;
    font-size: var(--font-body);
    line-height: 1.55;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card,
.auth-body[data-route="collection/link"] .fp-gps-panel,
.auth-body[data-route="collection/link"] .fp-denuncia-state,
.auth-body[data-route="collection/link"] .fp-denuncia-status,
.auth-body[data-route="collection/link"] .fp-denuncia-summary,
.auth-body[data-route="collection/link"] .fp-correction-panel,
.auth-body[data-route="collection/link"] .fp-safety-card,
.auth-body[data-route="collection/link"] .fp-final-gallery,
.auth-body[data-route="collection/link"] .fp-package-summary,
.auth-body[data-route="collection/link"] .fp-photo-ai-summary,
.auth-body[data-route="collection/link"] .fp-done-card {
    margin-top: 0;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card,
.auth-body[data-route="collection/link"] .fp-denuncia-summary,
.auth-body[data-route="collection/link"] .fp-final-gallery,
.auth-body[data-route="collection/link"] .fp-done-card {
    padding: 12px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card > span,
.auth-body[data-route="collection/link"] .fp-final-gallery-head span,
.auth-body[data-route="collection/link"] .fp-package-summary span,
.auth-body[data-route="collection/link"] .fp-denuncia-summary span {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card strong {
    margin-top: 3px;
    color: #101b2e;
    font-size: var(--font-label);
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dl,
.auth-body[data-route="collection/link"] .fp-intro-details dl {
    display: grid;
    gap: 8px;
    margin: 10px 0 0;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dl div,
.auth-body[data-route="collection/link"] .fp-intro-details dl div,
.auth-body[data-route="collection/link"] .fp-privacy-detail-list div {
    display: grid;
    gap: 4px;
    border: 1px solid #e1e9f3;
    border-radius: 7px;
    padding: 9px;
    background: #f8fbff;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card svg {
    display: none;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dt,
.auth-body[data-route="collection/link"] .fp-intro-details dt {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dd,
.auth-body[data-route="collection/link"] .fp-intro-details dd {
    margin: 0;
    color: #101b2e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-disclosure {
    border-color: #d8e2ef;
    border-radius: 8px;
    background: #ffffff;
}

.auth-body .fp-login-disclosure:not([open]) > :not(summary),
.auth-body[data-route="collection/link"] .fp-disclosure:not([open]) > :not(summary) {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-disclosure > summary {
    min-height: 40px;
    padding: 0 10px;
    color: #101b2e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-consent-panel {
    display: grid;
    gap: 8px;
    margin-top: 0;
    border: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-consent {
    align-items: center;
    min-height: 40px;
    border-color: #d8e2ef;
    border-radius: 8px;
    padding: 9px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-consent input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.auth-body[data-route="collection/link"] .fp-consent-copy {
    gap: 0;
}

.auth-body[data-route="collection/link"] .fp-consent strong {
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-consent-email-field,
.auth-body[data-route="collection/link"] .fp-field {
    margin-top: 0;
    gap: 5px;
}

.auth-body[data-route="collection/link"] .fp-field input,
.auth-body[data-route="collection/link"] .fp-field select,
.auth-body[data-route="collection/link"] .fp-field textarea {
    min-height: 42px;
    border-radius: 7px;
    padding: 9px 10px;
    font-size: var(--font-body);
}

.auth-body[data-route="collection/link"] .fp-field span,
.auth-body[data-route="collection/link"] .fp-unavailable-panel label span {
    color: #26344b;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-field small,
.auth-body[data-route="collection/link"] .fp-consent-panel p,
.auth-body[data-route="collection/link"] .fp-final-gallery-head small,
.auth-body[data-route="collection/link"] [data-fp-document-hint] {
    color: var(--muted);
    font-size: var(--font-body);
    line-height: 1.35;
}

.auth-body[data-route="collection/link"] .fp-consent-panel p[data-state="ok"] {
    color: var(--fotoperizia-green);
}

.auth-body[data-route="collection/link"] .fp-consent-panel p[data-state="error"] {
    color: #b42318;
}

.auth-body[data-route="collection/link"] .fp-privacy-detail-list {
    display: grid;
    gap: 7px;
    padding: 10px;
}

.auth-body[data-route="collection/link"] .fp-privacy-detail-list strong {
    color: #101b2e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-privacy-detail-list p {
    margin: 0;
    color: #5b6980;
    font-size: var(--font-body);
    line-height: 1.35;
}

.auth-body[data-route="collection/link"] .fp-denuncia-method {
    display: grid;
    gap: 8px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 8px;
    background: #e9f0f7;
    padding: 2px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-tabs.has-voice {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.auth-body[data-route="collection/link"] .fp-denuncia-tabs button {
    min-height: 36px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #26344b;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-denuncia-tabs button.is-active {
    background: #ffffff;
    color: #1262f2;
    box-shadow: 0 1px 4px rgba(15, 31, 55, 0.10);
}

.auth-body[data-route="collection/link"] .fp-denuncia-tab-panel {
    display: grid;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    padding: 10px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-denuncia-tab-panel[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-denuncia-panel {
    min-height: 270px;
    overflow: hidden;
    border-color: #ccdcf0;
    background:
        radial-gradient(circle at 50% 0%, rgba(18, 98, 242, 0.09), transparent 46%),
        #ffffff;
}

.auth-body[data-route="collection/link"] .fp-voice-denuncia-panel[data-state="review"],
.auth-body[data-route="collection/link"] .fp-voice-denuncia-panel[data-state="ready"],
.auth-body[data-route="collection/link"] .fp-voice-denuncia-panel[data-state="error"] {
    min-height: 0;
}

.auth-body[data-route="collection/link"] .fp-voice-state {
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 9px;
    width: 100%;
    min-width: 0;
    padding: 12px 10px;
    text-align: center;
}

.auth-body[data-route="collection/link"] .fp-voice-state[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-state > strong {
    color: #0d2442;
    font-size: 17px;
    line-height: 1.25;
}

.auth-body[data-route="collection/link"] .fp-voice-state > p,
.auth-body[data-route="collection/link"] .fp-voice-review-head p,
.auth-body[data-route="collection/link"] .fp-voice-state-ready p {
    max-width: 440px;
    margin: 0;
    color: #5b6980;
    font-size: var(--font-body);
    line-height: 1.5;
}

.auth-body[data-route="collection/link"] .fp-voice-state > small {
    color: #66758a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-voice-mic {
    display: grid;
    width: 68px;
    height: 68px;
    place-items: center;
    border: 8px solid #e8f1ff;
    border-radius: 50%;
    background: #1262f2;
    box-shadow: 0 12px 28px rgba(18, 98, 242, 0.25);
}

.auth-body[data-route="collection/link"] .fp-voice-mic svg {
    width: 27px;
    height: 27px;
    fill: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-voice-eyebrow {
    color: #1262f2;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-voice-start {
    min-width: min(100%, 220px);
}

.auth-body[data-route="collection/link"] .fp-voice-privacy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #65738a !important;
    font-size: var(--font-caption) !important;
}

.auth-body[data-route="collection/link"] .fp-voice-recording-dot {
    width: 76px;
    height: 76px;
    border: 20px solid #ffe9e7;
    border-radius: 50%;
    background: #d92d20;
    box-shadow: 0 0 0 8px rgba(217, 45, 32, 0.08);
    animation: fp-voice-pulse 1.6s ease-in-out infinite;
}

@keyframes fp-voice-pulse {
    0%, 100% { transform: scale(0.94); box-shadow: 0 0 0 5px rgba(217, 45, 32, 0.06); }
    50% { transform: scale(1); box-shadow: 0 0 0 12px rgba(217, 45, 32, 0.12); }
}

.auth-body[data-route="collection/link"] .fp-voice-timer {
    color: #0d2442;
    font-variant-numeric: tabular-nums;
    font-size: var(--font-title-small);
    font-weight: 700;
    letter-spacing: 0.02em;
}

.auth-body[data-route="collection/link"] .fp-voice-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: min(100%, 390px);
}

.auth-body[data-route="collection/link"] .fp-voice-actions > button {
    min-height: 42px;
}

.auth-body[data-route="collection/link"] .fp-voice-stop {
    background: #d92d20;
    box-shadow: 0 8px 18px rgba(217, 45, 32, 0.18);
}

.auth-body[data-route="collection/link"] .fp-voice-spinner {
    width: 58px;
    height: 58px;
    border: 5px solid #dce8f8;
    border-top-color: #1262f2;
    border-radius: 50%;
    animation: fp-spin 0.85s linear infinite;
}

.auth-body[data-route="collection/link"] .fp-voice-state-review {
    justify-items: stretch;
    align-content: start;
    padding: 6px 2px 2px;
    text-align: left;
}

.auth-body[data-route="collection/link"] .fp-voice-review-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.auth-body[data-route="collection/link"] .fp-voice-review-head strong {
    display: block;
    color: #0d2442;
    font-size: var(--font-body);
}

.auth-body[data-route="collection/link"] .fp-voice-review-head > span {
    flex: 0 0 auto;
    color: #66758a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-voice-review-head > span.is-over-limit {
    color: #b42318;
}

.auth-body[data-route="collection/link"] .fp-voice-transcript-field textarea {
    min-height: 132px;
    resize: vertical;
    border-color: #bfd1e7;
    background: #fbfdff;
    line-height: 1.5;
}

.auth-body[data-route="collection/link"] .fp-voice-transcript-field textarea:focus {
    border-color: #1262f2;
    box-shadow: 0 0 0 3px rgba(18, 98, 242, 0.12);
}

.auth-body[data-route="collection/link"] .fp-voice-validation {
    min-height: 16px;
    margin: 0;
    color: #b42318;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-voice-state-ready {
    grid-template-columns: auto minmax(0, 1fr) auto;
    justify-items: start;
    text-align: left;
    border: 1px solid #b7e3cc;
    border-radius: 9px;
    background: #f0fbf5;
    padding: 14px;
}

.auth-body[data-route="collection/link"] .fp-voice-ready-mark,
.auth-body[data-route="collection/link"] .fp-voice-error-mark {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border-radius: 50%;
    background: #087a4b;
    color: #ffffff;
    font-size: var(--font-section);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-voice-error-mark {
    background: #b42318;
}

.auth-body[data-route="collection/link"] .fp-voice-state-error {
    border: 1px solid #f4c7c3;
    border-radius: 9px;
    background: #fff7f6;
}

@media (prefers-reduced-motion: reduce) {
    .auth-body[data-route="collection/link"] .fp-voice-recording-dot,
    .auth-body[data-route="collection/link"] .fp-voice-spinner {
        animation: none;
    }
}

.auth-body[data-route="collection/link"] .fp-file-picker-ui {
    grid-template-columns: auto minmax(0, 1fr);
    border-radius: 7px;
    padding: 8px;
}

.auth-body[data-route="collection/link"] .fp-file-picker-ui > span {
    border-radius: 6px;
    padding: 7px 9px;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-wide-action,
.auth-body[data-route="collection/link"] .fp-primary,
.auth-body[data-route="collection/link"] .fp-secondary,
.auth-body[data-route="collection/link"] .fp-primary-cta {
    min-height: 42px;
    border-radius: 7px;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-primary,
.auth-body[data-route="collection/link"] .fp-primary-cta {
    background: #1262f2;
    box-shadow: 0 10px 18px rgba(18, 98, 242, 0.18);
}

.auth-body[data-route="collection/link"] .fp-secondary {
    border-color: #d8e2ef;
    background: #edf3fa;
    color: #0d2442;
}

.auth-body[data-route="collection/link"] .fp-primary:disabled,
.auth-body[data-route="collection/link"] .fp-primary-cta:disabled {
    background: #9fb0cc;
    color: #edf3ff;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-button-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 0;
}

.auth-body[data-route="collection/link"] .fp-button-row > * {
    min-width: 0;
}

.auth-body[data-route="collection/link"] .fp-intro-actions {
    grid-template-columns: minmax(0, 1fr);
}

.auth-body[data-route="collection/link"] .fp-intro-actions .fp-primary-cta {
    grid-column: auto;
}

.auth-body[data-route="collection/link"] .fp-intro-reset-form[hidden],
.auth-body[data-route="collection/link"] .fp-customer-reset-form,
.auth-body[data-route="collection/link"] .fp-scroll-hint {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-dock {
    display: grid !important;
    grid-column: 1 / -1;
    gap: 5px;
    position: static;
    width: 100%;
    min-width: 0;
    margin-top: 8px;
    border: 1px solid #b7cff8;
    border-radius: 9px;
    padding: 9px;
    background: #eef5ff;
    box-sizing: border-box;
}

.auth-body[data-route="collection/link"] .fp-voice-dock[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-dock small {
    color: #29466f;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.35;
}

.auth-body[data-route="collection/link"] .fp-voice-button {
    min-height: 44px;
    border: 1px solid #1262f2;
    border-radius: 7px;
    background: #1262f2;
    color: #fff;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-consent-email-field {
    border: 2px solid #1262f2;
    border-radius: 9px;
    padding: 12px;
    background: #eef5ff;
    box-shadow: 0 8px 20px rgba(18, 98, 242, 0.12);
}

.auth-body[data-route="collection/link"] .fp-consent-email-field > span {
    color: #0d3d86;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-consent-email-field em,
.auth-body[data-route="collection/link"] .fp-field em {
    color: #b42318;
    font-style: normal;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-consent-email-field input,
.auth-body[data-route="collection/link"] [data-fp-iban] {
    border-width: 2px;
    border-color: #6b9ae9;
    background: #fff;
    font-size: var(--font-body);
}

.auth-body[data-route="collection/link"] .fp-denuncia-state,
.auth-body[data-route="collection/link"] .fp-denuncia-status,
.auth-body[data-route="collection/link"] .fp-photo-ai-feedback,
.auth-body[data-route="collection/link"] .fp-photo-ai-summary,
.auth-body[data-route="collection/link"] .fp-sync-state,
.auth-body[data-route="collection/link"] [data-fp-consent-hint] {
    border: 2px solid #8cb4ef;
    border-radius: 9px;
    padding: 12px;
    background: #eef5ff;
    color: #102c53;
    font-size: var(--font-caption);
    font-weight: 700;
    line-height: 1.45;
}

.auth-body[data-route="collection/link"] .fp-photo-ai-feedback:not([data-state]),
.auth-body[data-route="collection/link"] .fp-photo-ai-feedback[data-state="idle"] {
    display: block;
}

.auth-body[data-route="collection/link"] .fp-estimate-human-notice {
    border-left: 4px solid #1262f2;
    padding: 10px 12px;
    background: #eef5ff;
    color: #18365f;
    line-height: 1.5;
}

.fp-estimate-response-page {
    display: grid;
    min-height: 70vh;
    place-items: center;
    padding: 32px 16px;
}

.fp-estimate-response-card {
    display: grid;
    gap: 18px;
    width: min(100%, 620px);
    border: 1px solid #d8e2ef;
    border-radius: 16px;
    padding: clamp(22px, 5vw, 40px);
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.fp-estimate-response-card h1,
.fp-estimate-response-card h2,
.fp-estimate-response-card p {
    margin: 0;
}

.fp-estimate-response-eyebrow {
    color: #1262f2;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.fp-estimate-response-amount,
.fp-estimate-response-success,
.fp-estimate-response-error {
    display: grid;
    gap: 8px;
    border-radius: 10px;
    padding: 18px;
}

.fp-estimate-response-amount,
.fp-estimate-response-success {
    border: 1px solid #a9c8f6;
    background: #eef5ff;
}

.fp-estimate-response-error {
    border: 1px solid #efb3ab;
    background: #fff1ef;
    color: #8f1c12;
}

.fp-estimate-response-amount strong {
    color: #0d4fb8;
    font-size: clamp(26px, 7vw, 38px);
}

.fp-estimate-response-card form {
    display: grid;
    gap: 16px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-state,
.auth-body[data-route="collection/link"] .fp-denuncia-status,
.auth-body[data-route="collection/link"] .fp-denuncia-processing {
    padding: 10px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary {
    gap: 0;
    overflow: hidden;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary > div {
    padding: 10px 0;
    border-bottom: 1px solid #edf1f6;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary > div:first-child {
    margin: -4px -4px 6px;
    border: 0;
    border-radius: 7px;
    padding: 10px;
    background: #e7f8ee;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary > div:last-child {
    border-bottom: 0;
}

.auth-body[data-route="collection/link"] .fp-denuncia-summary strong,
.auth-body[data-route="collection/link"] .fp-denuncia-summary p {
    font-size: var(--font-body);
    line-height: 1.3;
}

.auth-body[data-route="collection/link"] .fp-denuncia-confirm-actions {
    border: 0;
    padding: 0;
    background: transparent;
}

.auth-body[data-route="collection/link"] .fp-denuncia-confirm-actions > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.auth-body[data-route="collection/link"] .is-denuncia-summary-ready [data-fp-screen="denuncia"] .fp-denuncia-method,
.auth-body[data-route="collection/link"] .is-denuncia-summary-ready [data-fp-screen="denuncia"] [data-fp-analyze-denuncia],
.auth-body[data-route="collection/link"] .is-denuncia-summary-ready [data-fp-screen="denuncia"] .fp-denuncia-state,
.auth-body[data-route="collection/link"] .is-denuncia-summary-ready [data-fp-screen="denuncia"] .fp-denuncia-status {
    display: none;
}

.auth-body[data-route="collection/link"] .fp-gps-panel {
    gap: 8px;
    padding: 0;
    border: 0;
    background: transparent;
}

.auth-body[data-route="collection/link"] .fp-gps-map {
    min-height: 210px;
    border-radius: 8px;
    background: #e7f0f8;
}

.auth-body[data-route="collection/link"] .fp-gps-pin {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #1262f2;
    transform: translate(-50%, -50%);
}

.auth-body[data-route="collection/link"] .fp-gps-pin::after {
    inset: 7px;
}

.auth-body[data-route="collection/link"] .fp-gps-reference,
.auth-body[data-route="collection/link"] .fp-gps-status {
    border-radius: 8px;
}

.auth-body[data-route="collection/link"] .fp-gps-status {
    background: #e7f8ee;
    color: #137346;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-gps-status[data-state="loading"] {
    border-color: #cfe1ff;
    background: #f3f8ff;
    color: var(--fotoperizia-blue);
}

.auth-body[data-route="collection/link"] .fp-gps-status[data-state="warning"] {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.auth-body[data-route="collection/link"] .fp-gps-status[data-state="error"] {
    border-color: #fecaca;
    background: #fff5f5;
    color: #b42318;
}

.auth-body[data-route="collection/link"] .fp-gps-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.auth-body[data-route="collection/link"] .fp-safety-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    border-color: #d8e2ef;
    padding: 12px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-safety-icon {
    display: none;
}

.auth-body[data-route="collection/link"] .fp-safety-card strong {
    color: #101b2e;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-photo-progress {
    display: grid;
    gap: 7px;
    margin: 0;
    border: 0;
    padding: 0;
    background: transparent;
}

.auth-body[data-route="collection/link"] .fp-photo-progress .fp-photo-count {
    display: flex;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    background: transparent;
    color: #5b6980;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-photo-progress small {
    display: none;
}

.auth-body[data-route="collection/link"] .fp-meter {
    height: 6px;
}

.auth-body[data-route="collection/link"] .fp-photo-step {
    display: grid;
    gap: 9px;
    margin-top: 0;
    border-radius: 8px;
    padding: 12px;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-photo-step[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-photo-heading span {
    border-radius: 0;
    padding: 0;
    background: transparent;
    color: var(--muted);
    font-size: var(--font-caption);
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-photo-step h2 {
    font-size: var(--font-body);
}

.auth-body[data-route="collection/link"] .fp-photo-step p[data-fp-photo-slot-instruction] {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
}

.auth-body[data-route="collection/link"] .fp-photo-guidance-grid div {
    border: 0;
    border-radius: 7px;
    background: #e7f8ee;
}

.auth-body[data-route="collection/link"] .fp-upload-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 0;
}

.auth-body[data-route="collection/link"] .fp-upload-actions label,
.auth-body[data-route="collection/link"] .fp-upload-actions button {
    min-height: 42px;
    border-radius: 7px;
    font-size: var(--font-label);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-upload-actions .fp-unavailable-action {
    grid-column: 1 / -1;
    border-color: #f3bf73;
    background: #fff4dd;
    color: #9a5d00;
}

.auth-body[data-route="collection/link"] .fp-preview {
    min-height: 116px;
    margin-top: 0;
    border-style: dashed;
    border-radius: 8px;
    background: #ffffff;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-photo-ai-feedback:not([data-state]),
.auth-body[data-route="collection/link"] .fp-photo-ai-feedback[data-state="idle"] {
    display: block;
}

.auth-body[data-route="collection/link"] .fp-unavailable-panel {
    gap: 9px;
    border-radius: 8px;
    padding: 10px;
    background: #fffaf0;
}

.auth-body[data-route="collection/link"] .fp-unavailable-slot {
    display: grid;
    gap: 5px;
    border: 1px solid #f3bf73;
    border-radius: 7px;
    padding: 10px;
    background: #fff4dd;
}

.auth-body[data-route="collection/link"] .fp-unavailable-slot span {
    color: #9a5d00;
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-unavailable-slot strong {
    color: #101b2e;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-unavailable-slot small {
    color: #6c5200;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-final-gallery-upload {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.auth-body[data-route="collection/link"] .fp-final-gallery-grid,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.auth-body[data-route="collection/link"] .fp-final-gallery-empty,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-empty {
    min-height: 96px;
    border-radius: 8px;
}

.auth-body[data-route="collection/link"] .fp-package-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 12px;
}

.auth-body[data-route="collection/link"] .fp-package-summary div {
    display: grid;
    gap: 4px;
    border: 0;
    border-bottom: 1px solid #edf1f6;
    border-radius: 0;
    padding: 9px 0;
    background: transparent;
}

.auth-body[data-route="collection/link"] .fp-package-summary div:last-child {
    border-bottom: 0;
}

.auth-body[data-route="collection/link"] .fp-package-summary strong {
    color: #101b2e;
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-ready-pill {
    border-radius: 7px;
    padding: 10px 12px;
    background: #e7f8ee;
    color: #137346;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery {
    display: grid;
    gap: 9px;
    margin-top: 0;
    border-radius: 8px;
    padding: 0;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery > summary {
    margin: 0;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head {
    display: grid;
    gap: 8px;
    padding: 0 10px 10px;
}

.auth-body[data-route="collection/link"] .fp-photo-ai-summary {
    padding: 10px;
}

.auth-body[data-route="collection/link"] .fp-done-card {
    display: grid;
    gap: 12px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-done-card .fp-estimate-prompt {
    margin: 12px 0 0;
    color: #101b2e;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-done-card .fp-choice-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
    border: 0;
    padding: 0;
}

.auth-body[data-route="collection/link"] .fp-done-meta {
    display: grid;
    gap: 0;
    border: 1px solid #d8e2ef;
    border-radius: 8px;
    padding: 8px 10px;
    background: #ffffff;
}

.auth-body[data-route="collection/link"] .fp-done-meta div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    border-bottom: 1px solid #edf1f6;
    padding: 6px 0;
}

.auth-body[data-route="collection/link"] .fp-done-meta div:last-child {
    border-bottom: 0;
}

.auth-body[data-route="collection/link"] .fp-done-meta dt {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] .fp-done-meta dd {
    margin: 0;
    color: #101b2e;
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: right;
}

.auth-body[data-route="collection/link"] .fp-estimate-proposal {
    gap: 10px;
}

.auth-body[data-route="collection/link"] .fp-estimate-proposal > p[data-fp-estimate-proposal-text] {
    border-color: #d8e2ef;
    border-radius: 8px;
    background: #ffffff;
    color: #101b2e;
    font-size: var(--font-body);
    line-height: 1.45;
}

.auth-body[data-route="collection/link"] .fp-estimate-sources {
    border-radius: 8px;
}

@media (max-width: 420px) {
    .auth-body[data-route="collection/link"] .fp-customer-shell,
    .auth-body[data-route="collection/login"] .fp-login,
    .auth-body[data-route="collection/register"] .fp-login {
        padding: 0;
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone,
    .auth-body[data-route="collection/login"] .fp-login-grid,
    .auth-body[data-route="collection/register"] .fp-login-grid {
        width: 100%;
        border-radius: 0;
    }

    .auth-body[data-route="collection/login"] .fp-login-card,
    .auth-body[data-route="collection/register"] .fp-login-card {
        min-height: 100vh;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
        box-shadow: none;
    }
}

@media (max-width: 420px) {
    .auth-body .fp-login.is-customer-auth-flow {
        padding: 18px 10px;
    }

    .auth-body .fp-login.is-customer-auth-flow .fp-login-grid {
        width: min(100%, 360px);
        min-height: 0;
        border-radius: 8px;
    }

    .auth-body .fp-login.is-customer-auth-flow .fp-login-card {
        min-height: 0;
        border: 1px solid #cfdbea;
        border-radius: 8px;
        box-shadow: var(--shadow-soft);
    }
}

@media (max-width: 600px) {
    .auth-body[data-route="collection/link"] .fp-voice-denuncia-panel {
        min-height: 300px;
        padding: 9px;
    }

    .auth-body[data-route="collection/link"] .fp-voice-denuncia-panel[data-state="review"],
    .auth-body[data-route="collection/link"] .fp-voice-denuncia-panel[data-state="ready"],
    .auth-body[data-route="collection/link"] .fp-voice-denuncia-panel[data-state="error"] {
        min-height: 0;
    }

    .auth-body[data-route="collection/link"] .fp-voice-state {
        padding: 14px 4px;
    }

    .auth-body[data-route="collection/link"] .fp-voice-state > strong,
    .auth-body[data-route="collection/link"] .fp-voice-review-head strong {
        font-size: var(--font-lead);
    }

    .auth-body[data-route="collection/link"] .fp-voice-state > p,
    .auth-body[data-route="collection/link"] .fp-voice-review-head p,
    .auth-body[data-route="collection/link"] .fp-voice-state-ready p,
    .auth-body[data-route="collection/link"] .fp-voice-state > small,
    .auth-body[data-route="collection/link"] .fp-voice-privacy,
    .auth-body[data-route="collection/link"] .fp-voice-review-head > span,
    .auth-body[data-route="collection/link"] .fp-voice-validation {
        font-size: var(--font-body) !important;
    }

    .auth-body[data-route="collection/link"] .fp-voice-transcript-field textarea {
        min-height: 190px;
        font-size: var(--font-body);
    }

    .auth-body[data-route="collection/link"] .fp-voice-state-ready {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .auth-body[data-route="collection/link"] .fp-voice-state-ready > button {
        grid-column: 1 / -1;
        width: 100%;
    }

    .auth-body[data-route="collection/link"] .fp-ai-wait-modal {
        padding: 12px;
        overscroll-behavior: contain;
    }

    .auth-body[data-route="collection/link"] .fp-ai-wait-dialog {
        width: min(100%, 358px);
        max-height: calc(100% - 38px);
    }

    .auth-body[data-route="collection/link"] .fp-done-meta div {
        grid-template-columns: minmax(92px, 42%) minmax(0, 1fr);
        align-items: start;
    }

    .auth-body[data-route="collection/link"] .fp-done-meta dt,
    .auth-body[data-route="collection/link"] .fp-done-meta dd {
        min-width: 0;
    }

    .auth-body[data-route="collection/link"] .fp-done-meta dd {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .auth-body[data-route="collection/link"] .fp-customer-head a,
    .auth-body[data-route="collection/link"] .fp-consent strong,
    .auth-body[data-route="collection/link"] .fp-disclosure > summary,
    .auth-body[data-route="collection/link"] .fp-denuncia-tabs button,
    .auth-body[data-route="collection/link"] .fp-file-picker-ui > span,
    .auth-body[data-route="collection/link"] .fp-wide-action,
    .auth-body[data-route="collection/link"] .fp-primary,
    .auth-body[data-route="collection/link"] .fp-secondary,
    .auth-body[data-route="collection/link"] .fp-primary-cta,
    .auth-body[data-route="collection/link"] .fp-upload-actions label,
    .auth-body[data-route="collection/link"] .fp-upload-actions button {
        font-size: var(--font-body);
    }

    .auth-body[data-route="collection/link"] .fp-wide-action,
    .auth-body[data-route="collection/link"] .fp-primary,
    .auth-body[data-route="collection/link"] .fp-secondary,
    .auth-body[data-route="collection/link"] .fp-primary-cta,
    .auth-body[data-route="collection/link"] .fp-upload-actions label,
    .auth-body[data-route="collection/link"] .fp-upload-actions button {
        min-height: 48px;
    }

    .auth-body[data-route="collection/link"] .fp-field input,
    .auth-body[data-route="collection/link"] .fp-field select,
    .auth-body[data-route="collection/link"] .fp-field textarea,
    .auth-body[data-route="collection/link"] .fp-claim-summary-card dd,
    .auth-body[data-route="collection/link"] .fp-intro-details dd,
    .auth-body[data-route="collection/link"] .fp-privacy-detail-list strong,
    .auth-body[data-route="collection/link"] .fp-photo-guidance-grid strong,
    .auth-body[data-route="collection/link"] .fp-safety-card strong,
    .auth-body[data-route="collection/link"] .fp-unavailable-slot strong,
    .auth-body[data-route="collection/link"] .fp-package-summary strong {
        font-size: var(--font-body);
        line-height: 1.4;
    }

    .auth-body[data-route="collection/link"] .fp-field span,
    .auth-body[data-route="collection/link"] .fp-unavailable-panel label span,
    .auth-body[data-route="collection/link"] .fp-field small,
    .auth-body[data-route="collection/link"] .fp-consent-panel p,
    .auth-body[data-route="collection/link"] .fp-final-gallery-head small,
    .auth-body[data-route="collection/link"] [data-fp-document-hint],
    .auth-body[data-route="collection/link"] .fp-privacy-detail-list p,
    .auth-body[data-route="collection/link"] .fp-unavailable-slot small,
    .auth-body[data-route="collection/link"] .fp-done-meta dd,
    .auth-body[data-route="collection/link"] .fp-preview {
        font-size: var(--font-body);
        line-height: 1.5;
    }

    .auth-body[data-route="collection/link"] .fp-screen[data-fp-step-label]::before,
    .auth-body[data-route="collection/link"] .fp-claim-summary-card > span,
    .auth-body[data-route="collection/link"] .fp-final-gallery-head span,
    .auth-body[data-route="collection/link"] .fp-package-summary span,
    .auth-body[data-route="collection/link"] .fp-denuncia-summary span,
    .auth-body[data-route="collection/link"] .fp-claim-summary-card dt,
    .auth-body[data-route="collection/link"] .fp-intro-details dt,
    .auth-body[data-route="collection/link"] .fp-photo-heading span,
    .auth-body[data-route="collection/link"] .fp-photo-guidance-grid span,
    .auth-body[data-route="collection/link"] .fp-unavailable-slot span,
    .auth-body[data-route="collection/link"] .fp-done-meta dt {
        font-size: var(--font-caption);
        line-height: 1.35;
    }

    .auth-body[data-route="collection/link"] .fp-claim-summary-card > strong {
        font-size: var(--font-lead);
    }

    .auth-body[data-route="collection/link"] .fp-photo-step h2 {
        font-size: var(--font-section);
    }

    .auth-body[data-route="collection/link"] .fp-photo-progress .fp-photo-count {
        font-size: var(--font-caption);
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone :where(
        p,
        li,
        label,
        button,
        input,
        select,
        textarea,
        summary,
        dt,
        dd,
        em,
        small,
        strong,
        a,
        span,
        div
    ),
        .auth-body .fp-login.is-customer-auth-flow :where(
        p,
        li,
        label,
        button,
        input,
        select,
        textarea,
        summary,
        dt,
        dd,
        em,
        small,
        strong,
        a,
        span,
        div
    ),
        .auth-body .fp-welcome-panel :where(
        p,
        li,
        label,
        button,
        input,
        select,
        textarea,
        summary,
        dt,
        dd,
        em,
        small,
        strong,
        a,
        span,
        div
    ) {
        font-size: max(16px, 1em) !important;
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone :where(
        p,
        li,
        label,
        dt,
        dd,
        small
    ),
        .auth-body .fp-login.is-customer-auth-flow :where(
        p,
        li,
        label,
        dt,
        dd,
        small
    ),
        .auth-body .fp-welcome-panel :where(
        p,
        li,
        label,
        dt,
        dd,
        small
    ) {
        line-height: 1.5;
    }

    .auth-body[data-route="collection/link"] .fp-screen[data-fp-step-label]::before {
        font-size: var(--font-body) !important;
        line-height: 1.2;
        white-space: nowrap;
    }
}

.fp-denuncia-processing:not([hidden]) .fp-processing-icon i,
.fp-denuncia-processing.is-active .fp-processing-icon i {
    animation: fp-processing-bar 780ms ease-in-out infinite !important;
    animation-play-state: running !important;
}

.fp-ai-wait-modal[data-state="waiting"] .fp-ai-wait-icon::before,
.fp-ai-wait-modal[data-state="estimate-waiting"] .fp-ai-wait-icon::before,
.fp-ai-wait-modal[data-state="sending"] .fp-ai-wait-icon::before {
    content: "";
    width: 16px;
    height: 16px;
    border: 2px solid rgba(0, 51, 153, 0.24);
    border-top-color: var(--fotoperizia-blue);
    border-radius: 999px;
    animation: fp-spin 800ms linear infinite !important;
    animation-play-state: running !important;
}

.fp-ai-wait-modal[data-state="success"] .fp-ai-wait-icon::before,
.fp-photo-ai-summary[data-state="ready"] .fp-work-indicator i,
.fp-ai-wait-modal[data-state="success"] .fp-work-indicator i {
    animation: none !important;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
    overflow: hidden;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-tile,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb > *,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-name {
    min-width: 0;
    max-width: 100%;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb {
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 0.78;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb img,
.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb .fp-preview-visual,
.auth-body[data-route="collection/link"] .fp-customer-review-modal-card img {
    display: block;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head {
    grid-template-columns: minmax(0, 1fr);
}

@media (prefers-reduced-motion: reduce) {
    .flash-stack-overlay,
    .flash-stack-overlay.is-leaving {
        animation-duration: 1ms;
    }

    .fp-review-learning-activity::after {
        animation: none;
    }

    .fp-review-learning-core {
        animation-duration: 1.4s !important;
        animation-iteration-count: infinite !important;
    }

    .fp-review-learning-core::before {
        animation-duration: 1.1s !important;
        animation-iteration-count: infinite !important;
    }

    .fp-review-learning-core::after {
        animation-duration: 0.8s !important;
        animation-iteration-count: infinite !important;
    }

    .fp-denuncia-processing:not([hidden]) .fp-processing-icon i,
    .fp-denuncia-processing.is-active .fp-processing-icon i {
        animation-duration: 780ms !important;
        animation-iteration-count: infinite !important;
    }

    .fp-ai-wait-modal[data-state="waiting"] .fp-ai-wait-icon::before,
    .fp-ai-wait-modal[data-state="estimate-waiting"] .fp-ai-wait-icon::before,
    .fp-ai-wait-modal[data-state="sending"] .fp-ai-wait-icon::before {
        animation-duration: 800ms !important;
        animation-iteration-count: infinite !important;
    }
}
.ce-denuncia-modal-dialog {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    max-width: 1120px;
    overflow: hidden;
}

.ce-denuncia-modal-toolbar {
    align-items: center;
    background: #f6f8fc;
    border-bottom: 1px solid #e2e8f1;
    border-top: 1px solid #e2e8f1;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.8rem 1.5rem;
}

.ce-denuncia-modal-toolbar > span {
    color: #45546c;
    font-size: 0.9rem;
    font-weight: 700;
}

.ce-denuncia-modal-viewer {
    background: #e9eef6;
    min-height: min(68vh, 760px);
    padding: 1rem;
}

.ce-denuncia-modal-viewer iframe {
    background: #fff;
    border: 1px solid #cfd9e8;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(18, 38, 72, 0.1);
    display: block;
    height: min(68vh, 760px);
    width: 100%;
}

@media (max-width: 720px) {
    .ce-denuncia-modal {
        padding: 0.6rem;
    }

    .ce-denuncia-modal-dialog {
        max-height: calc(100vh - 1.2rem);
    }

    .ce-denuncia-modal-toolbar {
        align-items: stretch;
        flex-direction: column;
        padding: 0.75rem 1rem;
    }

    .ce-denuncia-modal-toolbar .ce-secondary-button {
        justify-content: center;
        width: 100%;
    }

    .ce-denuncia-modal-viewer {
        min-height: 54vh;
        padding: 0.55rem;
    }

    .ce-denuncia-modal-viewer iframe {
        height: 54vh;
    }

    .ce-denuncia-modal .ce-modal-footer {
        display: flex;
    }

    .ce-denuncia-modal .ce-modal-footer .ce-secondary-button {
        justify-content: center;
        width: 100%;
    }
}
/* Onsite inspection: authenticated, mobile-first evidence collection. */
.ce-onsite-app {
    --onsite-ink: #13291f;
    --onsite-muted: #637168;
    --onsite-line: #dce6df;
    --onsite-surface: #ffffff;
    --onsite-soft: #f2f7f3;
    --onsite-accent: #176b45;
    --onsite-accent-dark: #0d5032;
    width: min(100%, 920px);
    margin: 0 auto;
    padding: clamp(1rem, 3vw, 2rem);
    color: var(--onsite-ink);
}

.ce-onsite-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.ce-onsite-hero h1 {
    margin: .25rem 0 .15rem;
    font-size: clamp(1.65rem, 5vw, 2.5rem);
    line-height: 1.2;
    letter-spacing: -.035em;
}

.ce-onsite-hero p,
.ce-onsite-panel > p {
    color: var(--onsite-muted);
}

.ce-onsite-connectivity {
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border: 1px solid #dce7df;
    border-radius: .9rem;
    background: #f6faf7;
    color: #4f6256;
    font-size: .88rem;
}

.ce-onsite-global-status {
    min-height: 1.35rem;
    margin: 0 0 .5rem;
    color: var(--onsite-accent-dark);
    font-weight: 650;
}

.ce-onsite-global-status.is-error,
.ce-onsite-inline-status.is-error {
    color: #a62f2f;
}

.ce-onsite-panel {
    margin: 0 0 1rem;
    padding: clamp(1rem, 3vw, 1.4rem);
    border: 1px solid var(--onsite-line);
    border-radius: 1.25rem;
    background: var(--onsite-surface);
    box-shadow: var(--shadow-soft);
}

.ce-onsite-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    margin-bottom: .9rem;
}

.ce-onsite-section-head > div {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.ce-onsite-section-head > div > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: var(--onsite-soft);
    color: var(--onsite-accent);
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-onsite-section-head h2,
.ce-onsite-takeover h2 {
    margin: 0;
    font-size: clamp(1.05rem, 3.5vw, 1.35rem);
    letter-spacing: -.018em;
}

.ce-onsite-state-pill,
.ce-onsite-check {
    padding: .38rem .7rem;
    border-radius: 999px;
    background: #e6f4eb;
    color: var(--onsite-accent-dark);
    font-size: var(--font-caption);
    white-space: nowrap;
}

.ce-onsite-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 0;
}

.ce-onsite-summary-grid > div {
    min-width: 0;
    padding: .8rem;
    border-radius: .9rem;
    background: var(--onsite-soft);
}

.ce-onsite-summary-grid dt {
    margin-bottom: .25rem;
    color: var(--onsite-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.ce-onsite-summary-grid dd {
    margin: 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.ce-onsite-takeover {
    border-color: #edcd80;
    background: #fffaf0;
}

.ce-onsite-transition-warning {
    border-color: #e7bd63;
    background: #fff9ea;
}

.ce-onsite-transition-warning h2 {
    margin-top: 0;
}

.ce-onsite-attestation {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: 1rem;
    border: 1px solid var(--onsite-line);
    border-radius: 1rem;
    background: var(--onsite-soft);
    cursor: pointer;
}

.ce-onsite-attestation input {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .1rem;
    accent-color: var(--onsite-accent);
    flex: 0 0 auto;
}

.ce-onsite-location-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .8rem;
    padding: 1rem;
    border: 1px dashed #b9cbc0;
    border-radius: 1rem;
}

.ce-onsite-location-card div {
    display: grid;
    gap: .2rem;
}

.ce-onsite-location-card small {
    color: var(--onsite-muted);
}

.ce-onsite-inline-status {
    min-height: 1.3rem;
    margin: .65rem 0 0;
    font-size: .9rem;
}

.ce-onsite-inline-status.is-warning {
    padding: .65rem .8rem;
    border-radius: .8rem;
    background: #fff3d7;
    color: #76510c;
}

.ce-onsite-slot-list {
    display: grid;
    gap: .85rem;
}

.ce-onsite-slot-card {
    padding: 1rem;
    border: 1px solid var(--onsite-line);
    border-radius: 1rem;
    background: #fcfdfc;
}

.ce-onsite-slot-card.is-covered {
    border-color: #aad0b8;
    background: #fbfefc;
}

.ce-onsite-slot-card > header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: flex-start;
}

.ce-onsite-slot-card > header > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: .65rem;
    background: var(--onsite-ink);
    color: white;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-onsite-slot-card h3 {
    margin: 0 0 .25rem;
    font-size: var(--font-body);
}

.ce-onsite-slot-card header p {
    margin: 0;
    color: var(--onsite-muted);
    font-size: var(--font-body);
}

.ce-onsite-slot-card header strong {
    color: var(--onsite-accent-dark);
    font-size: var(--font-caption);
}

.ce-onsite-slot-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .8rem;
}

.ce-onsite-file-action {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.ce-onsite-file-action input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.ce-onsite-file-action:has(input:disabled) {
    opacity: .48;
    pointer-events: none;
}

.ce-onsite-asset-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: .65rem;
    margin-top: .8rem;
}

.ce-onsite-asset-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--onsite-line);
    border-radius: .85rem;
    background: white;
}

.ce-onsite-asset-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: var(--onsite-soft);
}

.ce-onsite-asset-card > div {
    display: grid;
    gap: .15rem;
    padding: .65rem;
}

.ce-onsite-asset-card strong {
    overflow: hidden;
    font-size: var(--font-caption);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ce-onsite-asset-card small {
    color: var(--onsite-muted);
    font-size: var(--font-caption);
}

.ce-onsite-document-link {
    display: grid;
    min-height: 6.5rem;
    padding: 1rem;
    place-items: center;
    color: var(--onsite-accent-dark);
    background: var(--onsite-soft);
    font-weight: 700;
    text-align: center;
    overflow-wrap: anywhere;
}

.ce-onsite-text-button {
    padding: .45rem .65rem;
    border: 0;
    background: transparent;
    color: #9b3434;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.ce-onsite-exception {
    grid-column: 1 / -1;
    padding: .8rem;
    border: 1px solid #e9c77b;
    border-radius: .85rem;
    background: #fff9ea;
}

.ce-onsite-exception p {
    margin: 0;
    color: #6f5011;
}

.ce-onsite-upload-row,
.ce-onsite-document-list .ce-onsite-asset-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .65rem;
    padding: .75rem;
    border: 1px solid var(--onsite-line);
    border-radius: .85rem;
    background: white;
}

.ce-onsite-upload-row > div {
    display: grid;
    min-width: 0;
}

.ce-onsite-upload-row.is-error {
    border-color: #e0a2a2;
    background: #fff7f7;
}

.ce-onsite-completion-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.ce-onsite-completion-grid > div {
    display: grid;
    gap: .2rem;
    padding: .85rem;
    border-radius: .9rem;
    background: var(--onsite-soft);
}

.ce-onsite-completion-grid strong {
    font-size: var(--font-section);
}

.ce-onsite-completion-grid span {
    color: var(--onsite-muted);
    font-size: var(--font-caption);
}

.ce-onsite-complete-action {
    width: 100%;
    margin-top: 1rem;
    min-height: 3.25rem;
}

@media (max-width: 720px) {
    .ce-onsite-app {
        padding: .8rem;
    }

    .ce-onsite-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-onsite-hero .ce-secondary-button {
        align-self: flex-start;
    }

    .ce-onsite-summary-grid,
    .ce-onsite-completion-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-onsite-location-card {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-onsite-location-card .ce-primary-button {
        width: 100%;
    }
}

@media (max-width: 430px) {
    .ce-onsite-panel {
        padding: .9rem;
        border-radius: 1rem;
    }

    .ce-onsite-slot-card > header {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .ce-onsite-slot-card header > strong {
        grid-column: 2;
    }

    .ce-onsite-slot-actions > * {
        width: 100%;
        justify-content: center;
    }

    .ce-onsite-asset-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.ce-collection-mode-icon {
    align-items: center;
    border-radius: 0.65rem;
    color: #fff;
    display: inline-flex;
    flex: 0 0 2rem;
    height: 2rem;
    justify-content: center;
    margin-right: 0.5rem;
    vertical-align: middle;
    width: 2rem;
}

.ce-collection-mode-icon svg {
    fill: currentColor;
    height: 1.05rem;
    width: 1.05rem;
}

.ce-collection-mode-icon.is-automatic-ai {
    background: linear-gradient(135deg, #7c3aed, #a855f7);
}

.ce-collection-mode-icon.is-assisted-live {
    background: linear-gradient(135deg, #0369a1, #0ea5e9);
}

.ce-collection-mode-icon.is-instant-live {
    background: linear-gradient(135deg, #ea580c, #f59e0b);
}

.ce-collection-mode-icon.is-onsite {
    background: linear-gradient(135deg, #047857, #10b981);
}

.ce-practice-heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
}

.fp-review-table td:first-child > a {
    align-items: center;
    display: inline-flex;
}

.ce-practice-preference {
    align-items: end;
    background: linear-gradient(135deg, #f8fafc, #eef6ff);
    border: 1px solid #cbdcf2;
    border-radius: 1rem;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 28rem);
    margin-bottom: 1rem;
    padding: 1rem 1.15rem;
}

.ce-practice-preference h2,
.ce-practice-preference p {
    margin: 0;
}

.ce-practice-preference p,
.ce-practice-preference small {
    color: #52637b;
    display: block;
    margin-top: 0.35rem;
}

.ce-practice-preference form {
    align-items: end;
    display: grid;
    gap: 0.7rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.ce-practice-preference label {
    display: grid;
    gap: 0.3rem;
}

.ce-practice-preference select {
    background: #fff;
    border: 1px solid #b9c8dc;
    border-radius: 0.65rem;
    min-height: 2.75rem;
    padding: 0 0.75rem;
}

.fp-review-estimate-action .fp-review-section-head {
    align-items: center;
}

@media (max-width: 760px) {
    .ce-practice-preference,
    .ce-practice-preference form {
        grid-template-columns: 1fr;
    }

    .ce-practice-preference form .ce-secondary-button {
        width: 100%;
    }
}
.ce-integrations-page {
    --ce-integration-blue: #155eef;
    --ce-integration-ink: #102a4c;
    --ce-integration-muted: #5d7089;
    --ce-integration-line: #d9e3ef;
    --ce-integration-soft: #f6f9fd;
}

.ce-integration-choice-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ce-integration-choice {
    align-items: start;
    background: linear-gradient(145deg, #fff 0%, #f5f9ff 100%);
    border: 1px solid #cddbec;
    border-radius: 1rem;
    color: var(--ce-integration-ink);
    cursor: pointer;
    display: grid;
    gap: .55rem;
    min-height: 13.5rem;
    padding: 1.35rem;
    text-align: left;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ce-integration-choice:hover,
.ce-integration-choice:focus-visible,
.ce-integration-choice.is-active {
    border-color: #78a6f5;
    box-shadow: 0 16px 34px rgba(20, 77, 154, .12);
    outline: none;
    transform: translateY(-2px);
}

.ce-integration-choice strong {
    font-size: 1.05rem;
    line-height: 1.3;
}

.ce-integration-choice small {
    color: var(--ce-integration-muted);
    line-height: 1.55;
}

.ce-integration-choice > span:last-child {
    align-self: end;
    color: var(--ce-integration-blue);
    font-weight: 700;
}

.ce-integration-choice-icon {
    align-items: center;
    background: #e8f0ff;
    border-radius: .75rem;
    color: var(--ce-integration-blue);
    display: inline-flex;
    font-size: 1.2rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}

.ce-integration-path-panel {
    border-top: 1px solid var(--ce-integration-line);
    margin-top: 1.5rem;
    padding-top: 1.5rem;
}

.ce-integration-path-head,
.ce-integration-section > header,
.ce-pull-panel-head,
.ce-pull-footer-actions,
.ce-pull-discovery-bar,
.ce-secret-copy {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.ce-integration-path-head h3,
.ce-integration-section h3,
.ce-pull-panel-head h3,
.ce-pull-value-map-grid h4 {
    color: var(--ce-integration-ink);
    margin: .25rem 0;
}

.ce-integration-path-head p,
.ce-integration-section header p,
.ce-pull-panel-head p,
.ce-pull-value-map-grid p {
    color: var(--ce-integration-muted);
    margin: 0;
}

.ce-secret-copy {
    align-items: end;
}

.ce-secret-copy .ce-account-field {
    flex: 1 1 auto;
}

.ce-secret-copy .ce-account-submit {
    flex: 0 0 auto;
    min-width: 10rem;
    width: auto;
}

.ce-integration-path-head .ce-account-eyebrow,
.ce-pull-panel-head .ce-account-eyebrow {
    background: #e8f0ff;
    border-color: #c9dcff;
    color: #245399;
}

.ce-pull-panel-head {
    display: block;
}

.ce-scope-fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

.ce-scope-fieldset legend {
    color: var(--ce-integration-ink);
    font-weight: 700;
    margin-bottom: .65rem;
}

.ce-scope-grid {
    display: grid;
    gap: .7rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ce-scope-option {
    align-items: flex-start;
    background: #fff;
    border: 1px solid var(--ce-integration-line);
    border-radius: .75rem;
    cursor: pointer;
    display: flex;
    gap: .7rem;
    padding: .8rem;
}

.ce-scope-option:has(input:checked) {
    background: #f1f6ff;
    border-color: #78a6f5;
}

.ce-scope-option input[type="checkbox"] {
    flex: 0 0 auto;
    width: 19px;
    min-width: 19px;
    height: 19px;
    min-height: 19px;
    margin-top: .18rem;
    padding: 0;
    border-radius: 5px;
    accent-color: #175cd3;
}

.ce-scope-option > span {
    flex: 1 1 auto;
    min-width: 0;
}

.ce-scope-option span,
.ce-scope-option small {
    display: block;
}

.ce-scope-option small {
    color: var(--ce-integration-muted);
    line-height: 1.45;
    margin-top: .18rem;
}

.ce-advanced-settings {
    border: 1px solid var(--ce-integration-line);
    border-radius: .8rem;
    background: var(--ce-integration-soft);
}

.ce-advanced-settings > summary {
    color: #294a70;
    cursor: pointer;
    font-weight: 700;
    padding: .85rem 1rem;
}

.ce-advanced-settings-body {
    border-top: 1px solid var(--ce-integration-line);
    padding: 1rem;
}

.ce-integration-list {
    display: grid;
    gap: .85rem;
}

.ce-integration-card {
    background: #fff;
    border: 1px solid var(--ce-integration-line);
    border-radius: 1rem;
    overflow: clip;
}

.ce-integration-card > summary,
.ce-integration-subsection > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    list-style: none;
}

.ce-integration-card > summary {
    min-height: 5.3rem;
    padding: 1rem 1.15rem;
}

.ce-integration-card > summary::-webkit-details-marker,
.ce-integration-subsection > summary::-webkit-details-marker {
    display: none;
}

.ce-integration-card > summary::after,
.ce-integration-subsection > summary::after {
    color: #54708f;
    content: '+';
    font-size: 1.3rem;
    font-weight: 600;
    margin-left: .25rem;
}

.ce-integration-card[open] > summary::after,
.ce-integration-subsection[open] > summary::after {
    content: '−';
}

.ce-integration-summary-main,
.ce-integration-summary-main small,
.ce-integration-subsection summary > span:first-child,
.ce-integration-subsection summary small {
    display: block;
}

.ce-integration-summary-main {
    flex: 1 1 auto;
}

.ce-integration-summary-main strong {
    color: var(--ce-integration-ink);
    font-size: var(--font-body);
}

.ce-integration-summary-main small,
.ce-integration-subsection summary small {
    color: var(--ce-integration-muted);
    margin-top: .2rem;
}

.ce-integration-capabilities,
.ce-selected-scopes {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.ce-integration-capabilities span,
.ce-selected-scopes span {
    background: #edf4ff;
    border-radius: 999px;
    color: #245399;
    font-size: var(--font-caption);
    font-weight: 700;
    padding: .35rem .6rem;
}

.ce-integration-card-body {
    background: #fbfdff;
    border-top: 1px solid var(--ce-integration-line);
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.ce-integration-section,
.ce-integration-subsection {
    background: #fff;
    border: 1px solid var(--ce-integration-line);
    border-radius: .85rem;
}

.ce-integration-section {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.ce-integration-subsection > summary {
    padding: 1rem;
}

.ce-integration-subsection > summary > span:first-child {
    flex: 1 1 auto;
}

.ce-integration-subsection-body {
    border-top: 1px solid var(--ce-integration-line);
    padding: 1rem;
}

.ce-pull-wizard {
    min-width: 0;
}

.ce-pull-progress {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
}

.ce-pull-progress li {
    align-items: center;
    color: #6b7d93;
    display: flex;
    font-size: var(--font-caption);
    font-weight: 700;
    gap: .45rem;
    min-width: 0;
}

.ce-pull-progress li::after {
    background: #dbe4ef;
    content: '';
    flex: 1 1 auto;
    height: 2px;
}

.ce-pull-progress li:last-child::after {
    display: none;
}

.ce-pull-progress li span {
    align-items: center;
    background: #e8eef6;
    border-radius: 999px;
    display: inline-flex;
    height: 1.7rem;
    justify-content: center;
    width: 1.7rem;
}

.ce-pull-progress li.is-current {
    color: var(--ce-integration-blue);
}

.ce-pull-progress li.is-current span {
    background: var(--ce-integration-blue);
    color: #fff;
}

.ce-pull-progress li.is-complete,
.ce-pull-progress li.is-complete span {
    color: #087a55;
}

.ce-pull-progress li.is-complete span {
    background: #dff7ec;
}

.ce-pull-progress li.is-complete::after {
    background: #58bb95;
}

.ce-pull-panel {
    background: #fbfdff;
    border: 1px solid var(--ce-integration-line);
    border-radius: .9rem;
    padding: 1.1rem;
}

.ce-pull-panel > form,
.ce-pull-panel-head + form {
    margin-top: 1rem;
}

.ce-pull-context-fields,
.ce-pull-pagination-fields,
.ce-pull-value-map-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ce-pull-pagination-fields {
    margin-top: .75rem;
}

.ce-pull-discovery-bar {
    align-items: center;
    background: #eef5ff;
    border-radius: .75rem;
    margin: 1rem 0;
    padding: .8rem;
}

.ce-pull-discovery-bar small {
    color: var(--ce-integration-muted);
    display: block;
    margin-top: .15rem;
}

.ce-pull-records-path {
    margin-bottom: 1rem;
}

.ce-pull-map-table {
    display: grid;
    gap: .65rem;
    margin: 0;
}

.ce-pull-map-row {
    align-items: center;
    background: #fff;
    border: 1px solid var(--ce-integration-line);
    border-radius: .75rem;
    display: grid;
    gap: .7rem;
    grid-template-columns: minmax(12rem, .9fr) minmax(10rem, .65fr) minmax(14rem, 1fr);
    padding: .8rem;
}

.ce-pull-map-label,
.ce-pull-map-label small {
    display: block;
}

.ce-pull-map-label small {
    color: var(--ce-integration-muted);
    line-height: 1.35;
    margin-top: .18rem;
}

.ce-pull-map-row input,
.ce-pull-map-row select,
.ce-pull-panel select,
.ce-pull-panel input {
    background: #fff;
    border: 1px solid #c9d6e7;
    border-radius: .6rem;
    color: #152c4a;
    min-width: 0;
    padding: .68rem .72rem;
    width: 100%;
}

.ce-pull-suggestion {
    background: #e7f7ef;
    border-radius: 999px;
    color: #087a55;
    display: inline-block;
    font-size: var(--font-caption);
    font-weight: 700;
    margin-top: .4rem;
    padding: .22rem .48rem;
}

.ce-pull-optional-fields,
.ce-pull-value-maps,
.ce-pull-schedule {
    margin-top: 1rem;
}

.ce-pull-optional-fields > .ce-pull-map-table,
.ce-pull-value-maps > .ce-pull-value-map-grid {
    border-top: 1px solid var(--ce-integration-line);
    padding: 1rem;
}

.ce-pull-value-map-grid > section {
    min-width: 0;
}

.ce-pull-value-map-row {
    display: grid;
    gap: .45rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    margin: .55rem 0;
}

.ce-pull-value-map-row button {
    background: #fff;
    border: 1px solid #e3b7b3;
    border-radius: .55rem;
    color: #a22a24;
    cursor: pointer;
    min-width: 2.5rem;
}

.ce-pull-footer-actions {
    align-items: center;
    margin-top: 1rem;
}

.ce-pull-preview,
.ce-pull-runs {
    margin: 1rem 0;
    max-height: 24rem;
    overflow: auto;
}

.ce-pull-preview-summary {
    background: #eef8f4;
    border: 1px solid #bfe6d6;
    border-radius: .75rem;
    color: #176c50;
    font-weight: 700;
    padding: .85rem;
}

.ce-integration-path-panel[hidden],
.ce-pull-panel[hidden],
[data-pull-auth-fields][hidden],
.ce-pull-pagination-fields[hidden],
[data-pagination-for][hidden],
[data-map-fixed][hidden],
[data-map-path][hidden],
.ce-pull-suggestion[hidden],
[data-webhook-fields][hidden] {
    display: none !important;
}

@media (max-width: 900px) {
    .ce-pull-map-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .ce-integration-choice-grid,
    .ce-scope-grid,
    .ce-pull-context-fields,
    .ce-pull-pagination-fields,
    .ce-pull-value-map-grid {
        grid-template-columns: 1fr;
    }

    .ce-integration-choice {
        min-height: 0;
    }

    .ce-integration-path-head,
    .ce-integration-section > header,
    .ce-pull-panel-head,
    .ce-pull-footer-actions,
    .ce-pull-discovery-bar,
    .ce-secret-copy {
        align-items: stretch;
        flex-direction: column;
    }

    .ce-pull-progress {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: .8rem;
    }

    .ce-pull-progress li:nth-child(2)::after,
    .ce-pull-progress li:last-child::after {
        display: none;
    }

    .ce-integration-card > summary {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .ce-integration-capabilities {
        order: 3;
        width: 100%;
    }

    .ce-integration-subsection > summary {
        align-items: flex-start;
    }

    .ce-pull-footer-actions button,
    .ce-secret-copy button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ce-integration-choice {
        transition: none;
    }
}

.ce-pull-closed,
.ce-pull-message {
    background: #fff8e8;
    border: 1px solid #f4d38a;
    border-radius: .75rem;
    color: #724b00;
    margin: 1rem 0;
    padding: .85rem 1rem;
}

.ce-pull-message:empty {
    display: none;
}

.ce-pull-message.is-error {
    background: #fff1f0;
    border-color: #f2b8b5;
    color: #9d1c18;
}

.ce-pull-preview details {
    background: #fff;
    border: 1px solid var(--ce-integration-line);
    border-radius: .65rem;
    margin: .5rem 0;
    padding: .65rem;
}

.ce-pull-preview pre {
    font-size: var(--font-caption);
    max-width: 100%;
    overflow: auto;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.ce-pull-runs p {
    color: var(--ce-integration-muted);
    font-size: var(--font-body);
    margin: .45rem 0;
    overflow-wrap: anywhere;
}

/* Phase 0 selected UX contracts: shared controls and operational states. */
.ce-ui-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid #cbd7e7;
    border-radius: 10px;
    padding: .65rem .95rem;
    background: #fff;
    color: #17345f;
    font: inherit;
    font-size: var(--font-label);
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.ce-ui-button.is-primary { border-color: #174ea6; background: #174ea6; color: #fff; }
.ce-ui-button.is-secondary { background: #f8fafc; }
.ce-ui-button.is-success { border-color: #087f5b; background: #087f5b; color: #fff; }
.ce-ui-button.is-danger { border-color: #b42318; background: #b42318; color: #fff; }
.ce-ui-button.is-success:hover { border-color: #066c4d; background: #066c4d; }
.ce-ui-button:disabled,
.ce-ui-button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.ce-ui-badge { display: inline-flex; width: max-content; align-items: center; border-radius: 999px; padding: .3rem .62rem; background: #edf2f7; color: #405168; font-size: var(--font-caption); font-weight: 700; }
.ce-ui-badge.is-info { background: #e8f0ff; color: #174ea6; }
.ce-ui-badge.is-success { background: #e3f7ed; color: #066c4d; }
.ce-ui-badge.is-warning { background: #fff0dc; color: #9b4a00; }
.ce-ui-badge.is-danger { background: #fee4e2; color: #b42318; }
.ce-ui-badge.is-muted { background: #edf1f5; color: var(--muted); }
.ce-ui-notice { border: 1px solid #b9d1f7; border-radius: 12px; padding: .85rem 1rem; background: #f1f6ff; color: #27476f; }
.ce-ui-notice.is-warning { border-color: #f1c87c; background: #fff8e8; color: #754500; }
.ce-ui-notice p,
.ce-ui-notice ul { margin: .35rem 0 0; }
.ce-ui-empty { display: grid; gap: .25rem; border: 1px dashed #cbd7e7; border-radius: 12px; padding: 1.25rem; color: var(--muted); text-align: center; }
.ce-ui-empty strong { color: #243b60; }
.ce-ui-progress { width: 100%; height: 8px; overflow: hidden; border-radius: 999px; background: #e8edf4; }
.ce-ui-progress > span { display: block; height: 100%; border-radius: inherit; background: #1d6fc2; }

.ce-ui-button:focus-visible,
.ce-ui-badge:focus-visible,
.fp-login input:focus-visible,
.fp-login button:focus-visible,
.fp-login a:focus-visible,
.fp-review-app input:focus-visible,
.fp-review-app select:focus-visible,
.fp-review-app textarea:focus-visible,
.fp-review-app button:focus-visible,
.fp-review-app a:focus-visible,
.fp-customer-shell button:focus-visible,
.fp-customer-shell a:focus-visible,
.fp-customer-shell summary:focus-visible {
    outline: 3px solid #8cbcff;
    outline-offset: 3px;
}

.fp-login.is-operator-auth .fp-login-grid {
    grid-template-columns: minmax(340px, 1fr) minmax(360px, 460px);
    width: min(980px, calc(100% - 48px));
}

.fp-login-secondary-cta.is-disabled { display: inline-flex; align-items: center; gap: .45rem; color: var(--muted); text-decoration: none; cursor: not-allowed; }
.fp-login-secondary-cta.is-disabled small { border-radius: 999px; padding: .15rem .42rem; background: #edf1f5; font-size: var(--font-caption); font-weight: 700; }

.ce-account-priority { margin-top: 18px; }
.ce-account-priority-mobile-more { display: none; }
.ce-task-list { display: grid; gap: 10px; }
.ce-task-row { display: grid; grid-template-columns: minmax(130px, auto) minmax(220px, 1fr) minmax(220px, .75fr) auto; align-items: center; gap: 14px; border: 1px solid #e1e7f0; border-left: 4px solid #80aee8; border-radius: 13px; padding: 13px 14px; background: #fff; }
.ce-task-row.is-decision { border-left-color: #d92d20; }
.ce-task-row.is-blocked { border-left-color: #f79009; }
.ce-task-row.is-due { border-left-color: #6941c6; }
.ce-task-row > div { display: grid; gap: .2rem; }
.ce-task-row > div span { color: var(--muted); font-size: var(--font-caption); }
.ce-task-row dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.ce-task-row dl div { display: grid; gap: .15rem; }
.ce-task-row dt { color: #7b8798; font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-task-row dd { margin: 0; color: #243b60; font-size: var(--font-caption); font-weight: 700; }
.ce-account-operational-context { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: 14px 2px 0; color: #61708a; font-size: var(--font-caption); }
.ce-account-operational-context b { color: #17345f; }

.ce-practice-workspace-head { align-items: center; margin-bottom: 16px; }
.ce-practice-workspace-head > div { display: grid; gap: .28rem; }
.ce-practice-workspace-head > div > small { color: var(--muted); font-size: var(--font-caption); }
.ce-practice-workspace-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: .55rem; }
.ce-practice-workspace-title h2 { margin: 0; }
.ce-practice-workspace-title > span { color: var(--muted); font-size: var(--font-caption); }
.ce-practice-workspace-title > span strong { color: #17345f; }
.ce-practice-filter-shell { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; border: 1px solid #dfe6ef; border-radius: 14px; padding: 12px; background: #f9fbfd; }
.ce-practice-filter-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) max-content minmax(230px, .56fr); align-items: end; gap: 10px; }
.ce-practice-filter-toolbar label,
.ce-practice-filter-panel label { display: grid; gap: .35rem; min-width: 0; }
.ce-practice-filter-toolbar label > span,
.ce-practice-filter-panel label > span { color: var(--muted); font-size: var(--font-caption); font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.ce-practice-filter-toolbar input,
.ce-practice-filter-toolbar select,
.ce-practice-filter-panel select { width: 100%; min-height: 42px; margin: 0; border: 1px solid #ccd7e5; border-radius: 9px; background: #fff; color: #243b60; }
.ce-practice-filter-toggle { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: .5rem; border: 1px solid #bdcbe0; border-radius: 9px; padding: .55rem .85rem; background: #fff; color: #29486f; font: inherit; font-size: var(--font-caption); font-weight: 700; cursor: pointer; }
.ce-practice-filter-toggle > span { position: relative; width: 14px; height: 14px; }
.ce-practice-filter-toggle > span::before,
.ce-practice-filter-toggle > span::after { content: ""; position: absolute; left: 2px; right: 2px; top: 6px; height: 2px; border-radius: 2px; background: currentColor; }
.ce-practice-filter-toggle > span::after { transform: rotate(90deg); transition: transform .18s ease; }
.ce-practice-filter-toggle[aria-expanded="true"] { border-color: #174ea6; background: #edf4ff; color: #174ea6; }
.ce-practice-filter-toggle[aria-expanded="true"] > span::after { transform: rotate(0); }
.ce-practice-filter-panel { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) max-content; align-items: end; gap: 10px; border-top: 1px solid #e0e7f0; padding-top: 12px; }
.ce-practice-filter-panel[hidden] { display: none; }
.ce-practice-filter-actions { display: flex; align-items: center; gap: .45rem; }
.ce-practice-filter-actions button { min-height: 42px; border: 1px solid #c7d3e2; border-radius: 9px; padding: .55rem .72rem; background: #fff; color: #405168; font: inherit; font-size: var(--font-label); font-weight: 700; cursor: pointer; }
.ce-practice-filter-actions button.is-secondary { border-color: #174ea6; color: #174ea6; }
.ce-practice-view-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 13px 0 9px; }
.ce-practice-view-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.ce-practice-view-chips button { min-height: 36px; border: 1px solid #d5deea; border-radius: 999px; padding: .4rem .74rem; background: #fff; color: #405168; font: inherit; font-size: var(--font-label); font-weight: 700; cursor: pointer; }
.ce-practice-view-chips button.is-active { border-color: #174ea6; background: #e8f0ff; color: #174ea6; }
.ce-practice-view-state { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem .7rem; color: var(--muted); font-size: var(--font-caption); text-align: right; }
.ce-practice-view-state [role="status"] { color: #066c4d; }
.ce-estimate-request-summary { display: grid; grid-template-columns: minmax(190px, .72fr) minmax(0, 1.65fr); align-items: stretch; gap: 10px; margin: 0 0 12px; border: 1px solid #dbe4ef; border-radius: 13px; padding: 10px; background: linear-gradient(135deg, #f9fbfe 0%, #f4f8fd 100%); }
.ce-estimate-request-summary-title { display: grid; align-content: center; gap: .22rem; padding: .35rem .45rem; }
.ce-estimate-request-summary-title > span { color: #52647d; font-size: var(--font-caption); font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.ce-estimate-request-summary-title > strong { color: #17345f; font-size: .88rem; }
.ce-estimate-request-summary-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ce-estimate-request-summary-counts > div { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: .55rem; border: 1px solid #dfe6ef; border-radius: 10px; padding: .62rem .72rem; background: #fff; }
.ce-estimate-request-summary-counts span { color: #52647d; font-size: var(--font-caption); font-weight: 700; line-height: 1.25; }
.ce-estimate-request-summary-counts strong { min-width: 1.8rem; color: #17345f; font-size: 1.02rem; text-align: right; }
.ce-estimate-request-summary-counts .is-requested { border-color: #a9d9c7; background: #f2fbf7; }
.ce-estimate-request-summary-counts .is-requested strong { color: #066c4d; }
.ce-estimate-request-summary-counts .is-skipped { border-color: #d5dde8; background: #f8fafc; }
.ce-estimate-request-summary-counts .is-skipped strong { color: #52647d; }
.ce-estimate-request-summary-counts .is-pending { border-color: #f3cf91; background: #fffaf0; }
.ce-estimate-request-summary-counts .is-pending strong { color: #9a5b00; }
.ce-practice-workspace-table { --ce-practice-actions-column-width: 120px; min-width: 1320px; }
.ce-practice-workspace-table th,
.ce-practice-workspace-table td { vertical-align: middle; }
.ce-practice-workspace-table tbody td { padding-top: 6px; padding-bottom: 6px; }
.ce-practice-workspace-table tbody tr { background: #fff; }
.ce-practice-workspace-table tbody tr.is-unassigned { background: #fffaf1; }
.ce-practice-workspace-table tbody tr:hover { background: #f6f9fe; }
.ce-practice-drag-hint { display: grid; grid-template-columns: 24px minmax(0, 1fr) max-content; align-items: center; gap: 10px; margin: 0 0 8px; border: 1px solid #d9e5f5; border-radius: 10px; padding: 7px 10px; background: #f6f9fe; color: #304b70; }
.ce-practice-drag-hint[hidden] { display: none; }
.ce-practice-drag-hint > svg { width: 20px; height: 20px; fill: none; stroke: #2764ad; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ce-practice-drag-hint > div { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; }
.ce-practice-drag-hint strong { color: #17345f; font-size: var(--font-caption); }
.ce-practice-drag-hint > div span { color: #52647d; font-size: var(--font-caption); }
.ce-practice-drag-state { border-radius: 999px; padding: 4px 8px; background: #e6eef9; color: #405168; font-size: var(--font-caption); font-weight: 700; white-space: nowrap; }
.ce-practice-drag-state[data-state="active"] { background: #d8e8ff; color: #174ea6; }
.fp-review-table-wrap.is-drag-scrollable { touch-action: pan-y; }
.fp-review-table-wrap.is-drag-scrollable .ce-practice-workspace-table tbody tr { cursor: grab; }
.fp-review-table-wrap.is-drag-scrollable .ce-practice-workspace-table tbody tr :is(a, button, input, select, textarea, summary, label) { cursor: pointer; }
.fp-review-table-wrap.is-dragging { cursor: grabbing; user-select: none; }
.fp-review-table-wrap.is-dragging .ce-practice-workspace-table tbody tr.is-dragging { cursor: grabbing; background: #edf4ff; }
.ce-practice-workspace-table th:nth-child(1),
.ce-practice-workspace-table td:nth-child(1) { width: 20%; }
.ce-practice-workspace-table th:nth-child(2),
.ce-practice-workspace-table td:nth-child(2) { width: 11%; white-space: normal; }
.ce-practice-workspace-table th:nth-child(3),
.ce-practice-workspace-table td:nth-child(3) { width: 13%; }
.ce-practice-workspace-table th:nth-child(4),
.ce-practice-workspace-table td:nth-child(4) { width: 10%; white-space: normal; }
.ce-practice-workspace-table th:nth-child(5),
.ce-practice-workspace-table td:nth-child(5) { width: 12%; white-space: normal; }
.ce-practice-workspace-table th:nth-child(6),
.ce-practice-workspace-table td:nth-child(6) { width: 17%; white-space: normal; }
.ce-practice-workspace-table th:nth-child(7),
.ce-practice-workspace-table td:nth-child(7) { width: 160px; }
.ce-practice-workspace-table th:nth-child(8),
.ce-practice-workspace-table td:nth-child(8) { width: var(--ce-practice-actions-column-width); }
.ce-practice-outcome-cell { box-sizing: border-box; padding-right: 20px; }
.ce-practice-outcome-cell .fp-review-status { display: inline-flex; max-width: 100%; min-height: 32px; align-items: center; justify-content: center; box-sizing: border-box; padding: 6px 10px; border-radius: 6px; line-height: 1.4; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.ce-practice-identity { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: .65rem; }
.ce-practice-identity-icons { display: grid; width: 36px; justify-items: center; align-content: center; gap: 6px; }
.ce-practice-identity-icons .ce-collection-mode-icon { margin-right: 0; }
.ce-practice-archive-status-icon { display: grid; width: 26px; height: 26px; align-items: center; justify-content: center; box-sizing: border-box; place-items: center; border: 1px solid #c7d3e2; border-radius: 8px; background: #f8fafc; color: #66758c; text-decoration: none; }
.ce-practice-workspace-table .ce-practice-archive-status-icon { align-items: center; justify-content: center; }
.ce-practice-archive-status-icon:is(a):hover { border-color: #174ea6; background: #edf4ff; color: #174ea6; transform: translateY(-1px); }
.ce-practice-archive-status-icon:is(a):focus-visible { outline: 3px solid rgba(23, 78, 166, .22); outline-offset: 2px; }
.ce-practice-archive-status-icon.is-downloaded:is(a):hover { border-color: #034d35; background: #056343; color: #fff; }
.ce-practice-archive-status-icon svg { display: block; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ce-practice-archive-status-icon.is-downloaded { border: 2px solid #056343; background: #07875d; color: #fff; box-shadow: 0 0 0 2px #d7f3e7, 0 2px 5px rgba(6, 115, 79, .22); }
.ce-practice-archive-status-icon.is-downloaded svg { width: 16px; height: 16px; stroke-width: 2.4; transform: translateY(-.5px); }
.ce-practice-identity > div { display: grid; min-width: 0; gap: .12rem; }
.ce-practice-number { width: fit-content; color: #174ea6; font-size: var(--font-caption); font-weight: 700; line-height: 1.3; text-decoration: underline; text-decoration-color: rgba(23, 78, 166, .38); text-underline-offset: 2px; overflow-wrap: anywhere; }
.ce-practice-number:hover { color: #0d3b82; text-decoration-color: currentColor; }
.ce-practice-number:focus-visible { border-radius: 3px; outline: 3px solid rgba(23, 78, 166, .2); outline-offset: 2px; }
.ce-practice-identity span { color: #243b60; font-size: var(--font-caption); font-weight: 700; }
.ce-practice-identity small,
.ce-practice-progress-cell small,
.ce-practice-next-action small,
.fp-review-table td > small { display: block; color: var(--muted); font-size: var(--font-caption); line-height: 1.35; }
.ce-practice-owner-cell > div { display: grid; gap: .16rem; }
.ce-practice-owner-cell strong { color: #243b60; font-size: var(--font-caption); }
.ce-practice-assignee-you { display: inline-flex; width: max-content; border-radius: 999px; padding: .1rem .36rem; background: #e8f0ff; color: #174ea6 !important; font-size: var(--font-caption); font-weight: 700; }
.ce-practice-unassigned-badge { display: inline-flex; width: max-content; border-radius: 999px; padding: .14rem .4rem; background: #fff0d6; color: #8a4b00 !important; font-size: var(--font-caption); font-weight: 700; }
.ce-practice-progress-cell { min-width: 130px; }
.ce-practice-progress-line { display: grid; grid-template-columns: minmax(70px, 1fr) max-content; align-items: center; gap: .45rem; }
.ce-practice-progress-line strong { color: #17345f; font-size: var(--font-caption); }
.ce-practice-progress-cell small { margin-top: .3rem; }
.ce-practice-progress-copy { display: block; margin-top: .34rem; color: #304b70; font-size: var(--font-caption); font-weight: 700; line-height: 1.35; }
.ce-practice-estimate-cell { min-width: 0; }
.ce-practice-estimate-cell strong { display: inline-block; max-width: 100%; color: #405168; font-size: var(--font-caption); line-height: 1.3; overflow-wrap: anywhere; white-space: normal; }
.ce-practice-estimate-cell strong.is-available { color: #066c4d; font-size: var(--font-caption); white-space: nowrap; }
.ce-practice-estimate-cell strong.is-expert-required { border-radius: 999px; padding: .18rem .46rem; background: #fff0d6; color: #8a4b00; font-weight: 700; }
.ce-practice-estimate-cell strong.is-failed { color: #b42318; font-weight: 700; }
.ce-practice-estimate-cell strong.is-pending { color: #405168; font-weight: 700; }
.ce-practice-estimate-request-cell .fp-review-status { display: inline-flex; max-width: 100%; justify-content: center; line-height: 1.25; text-align: center; white-space: normal; }
.ce-practice-not-applicable { display: block; color: #98a2b3; font-weight: 700; text-align: center; }
.ce-practice-next-action > * { margin: 0 0 .24rem; }
.ce-practice-next-action .ce-ui-badge { max-width: 100%; white-space: normal; }
.ce-practice-update-age { display: block; margin-top: .38rem; color: var(--muted); font-size: var(--font-caption); line-height: 1.35; }
.ce-practice-update-age strong { color: #405168; }
.ce-practice-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: .38rem; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] { border-color: #aeb5bf; background: #eceff2; box-shadow: none; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] > td { border-color: #cbd0d7; background: #eceff2; color: #344054; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"]:hover > td,
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"].is-dragging > td { background: #e2e6ea; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] :is(a, strong, span, small, time) { color: #3f4752 !important; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] > td::before { color: #59636f; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] :is(.ce-ui-badge, .fp-review-status, .ce-practice-assignee-you, .ce-practice-unassigned-badge, .ce-practice-estimate-cell strong.is-expert-required) { border-color: #abb2bc !important; background: #d7dbe0 !important; box-shadow: none !important; color: #343b45 !important; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] .ce-ui-progress { background: #c4c9d0; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] .ce-ui-progress > span { background: #646d79; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] :is(.ce-collection-mode-icon, .ce-practice-archive-status-icon) { border-color: #59636f !important; background: #68727e !important; box-shadow: none !important; color: #fff !important; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] :is(.ce-practice-open-action, .fp-review-list-approve-button, .ce-practice-actions-menu > summary) { border-color: #8e97a3 !important; background: #f4f5f6 !important; color: #343b45 !important; }
.ce-practice-workspace-table tr[data-lifecycle-status="suspended"] :is(.ce-practice-open-action, .fp-review-list-approve-button, .ce-practice-actions-menu > summary):hover { border-color: #59636f !important; background: #dde1e5 !important; }
.ce-practice-suspended-notice { border-color: #f2c86f; background: #fffaf0; }
.ce-practice-open-action { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; border: 1px solid #9dbce7; border-radius: 8px; padding: .38rem .65rem; background: #fff; color: #174ea6; font-size: var(--font-caption); font-weight: 700; text-decoration: none; }
.ce-practice-open-action:hover { border-color: #174ea6; background: #edf4ff; }
.ce-practice-actions-menu { position: relative; }
.ce-practice-actions-menu > summary { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #c7d3e2; border-radius: 8px; background: #fff; color: #405168; cursor: pointer; list-style: none; }
.ce-practice-actions-menu > summary::-webkit-details-marker { display: none; }
.ce-practice-actions-menu > summary > span,
.ce-practice-actions-menu > summary > span::before,
.ce-practice-actions-menu > summary > span::after { width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
.ce-practice-actions-menu > summary > span { position: relative; }
.ce-practice-actions-menu > summary > span::before,
.ce-practice-actions-menu > summary > span::after { content: ""; position: absolute; left: 0; }
.ce-practice-actions-menu > summary > span::before { top: -6px; }
.ce-practice-actions-menu > summary > span::after { top: 6px; }
.ce-practice-actions-menu[open] > summary { border-color: #174ea6; color: #174ea6; }
.ce-practice-actions-menu > div { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; display: grid; width: 172px; gap: .4rem; border: 1px solid #d8e1ec; border-radius: 10px; padding: 8px; background: #fff; box-shadow: 0 14px 32px rgba(23,52,95,.16); }
.ce-practice-workspace-table tr:nth-last-child(-n+2) .ce-practice-actions-menu > div { top: auto; bottom: calc(100% + 6px); }
.ce-practice-actions-menu form,
.ce-practice-actions-menu button { width: 100%; max-width: none; }
.ce-practice-actions-menu button { min-height: 36px; margin: 0; white-space: normal; }
.ce-practice-actions-cell .fp-review-list-approve-form { width: auto; }

.ce-create-stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 18px; padding: 0; list-style: none; }
.ce-create-stepper li { display: flex; align-items: center; gap: .55rem; color: var(--muted); font-size: var(--font-caption); }
.ce-create-stepper li > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #edf1f5; font-weight: 700; }
.ce-create-stepper li.is-active { color: #174ea6; }
.ce-create-stepper li.is-active > span { background: #174ea6; color: #fff; }
.ce-create-source,
.ce-create-details { margin-bottom: 18px; border: 1px solid #dfe6ef; border-radius: 16px; padding: 18px; background: #fff; }
.ce-create-source > div:first-child p,
.ce-create-section-head p,
.fp-practice-requirements-head p { margin: .25rem 0 0; color: var(--muted); }
.ce-create-step-label { color: #174ea6; font-size: var(--font-caption); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ce-create-mode-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 1rem 0; }
.ce-create-mode-options label { display: flex; min-height: 104px; gap: .65rem; border: 1px solid #ccd8e7; border-radius: 13px; padding: 13px; cursor: pointer; }
.ce-create-mode-options label:has(input:checked) { border-color: #174ea6; box-shadow: 0 0 0 2px #dbe8ff; }
.ce-create-mode-options label.is-disabled { background: #f7f8fa; opacity: .68; cursor: not-allowed; }
.ce-create-mode-options label span { display: grid; align-content: start; gap: .25rem; }
.ce-create-mode-options small { color: var(--muted); line-height: 1.4; }
.ce-create-source .fp-practice-denuncia { margin-top: 12px; }
[data-fp-practice-analyze-status] { display: block; margin-top: .55rem; font-size: var(--font-caption); }
[data-fp-practice-analyze-status][data-state="error"] { color: #b42318; }
[data-fp-practice-analyze-status][data-state="success"] { color: #066c4d; }
.ce-create-ai-draft { margin-top: 14px; border: 1px solid #b9d1f7; border-radius: 14px; padding: 16px; background: #f7faff; }
.ce-create-ai-draft header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.ce-create-ai-draft h3 { margin: .4rem 0 0; }
.ce-create-ai-draft dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.ce-create-ai-draft dl div { border-radius: 10px; padding: .7rem; background: #fff; }
.ce-create-ai-draft dl .is-wide { grid-column: 1 / -1; }
.ce-create-ai-draft dt { color: var(--muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-create-ai-draft dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.ce-create-confirm,
.ce-create-final-confirm { display: flex; align-items: flex-start; gap: .65rem; }
.ce-create-final-confirm { margin: 18px 0 8px; border: 1px solid #b9d1f7; border-radius: 13px; padding: 14px; background: #f7faff; }
.ce-create-confirm input,
.ce-create-final-confirm input { width: 19px; height: 19px; flex: 0 0 auto; }

.ce-cockpit-nav { position: sticky; top: 8px; z-index: 12; display: flex; gap: .25rem; overflow-x: auto; margin: 0 0 12px; border: 1px solid #dfe6ef; border-radius: 12px; padding: 6px; background: rgba(255,255,255,.95); box-shadow: 0 8px 24px rgba(22,48,84,.08); }
.ce-cockpit-nav a { min-height: 40px; display: inline-flex; align-items: center; border-radius: 8px; padding: .5rem .8rem; color: #405168; font-size: var(--font-caption); font-weight: 700; text-decoration: none; white-space: nowrap; }
.ce-cockpit-nav a:hover { background: #edf4ff; color: #174ea6; }
.ce-decision-cockpit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, 300px); gap: 16px; margin-bottom: 16px; }
.ce-cockpit-overview,
.ce-cockpit-actions { border: 1px solid #dfe6ef; border-radius: 17px; background: #fff; box-shadow: 0 12px 30px rgba(22,48,84,.05); }
.ce-cockpit-overview { min-width: 0; padding: 18px; }
.ce-cockpit-overview .ce-account-eyebrow { color: var(--muted); }
.ce-cockpit-overview > header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.ce-cockpit-overview .ce-ui-badge { max-width: 100%; white-space: normal; }
.ce-cockpit-overview h2 { margin: .25rem 0 0; }
.ce-cockpit-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 15px 0; }
.ce-cockpit-metrics article { display: grid; gap: .25rem; border: 1px solid #e3e9f2; border-radius: 12px; padding: 12px; background: #fafcff; }
.ce-cockpit-metrics span,
.ce-cockpit-metrics small { color: var(--muted); font-size: var(--font-caption); }
.ce-cockpit-metrics strong { color: #17345f; font-size: var(--font-body); }
.ce-cockpit-actions { position: sticky; top: 68px; align-self: start; display: grid; gap: .35rem; padding: 17px; }
.ce-cockpit-actions > span { margin-top: .35rem; color: var(--muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-cockpit-actions > strong { margin-bottom: .4rem; color: #17345f; }
.ce-cockpit-approve-form,
.ce-cockpit-approve-form .ce-ui-button { width: 100%; }
.ce-decision-panel { scroll-margin-top: 76px; }
.ce-practice-timeline { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.ce-practice-timeline li { display: grid; grid-template-columns: 13px minmax(0, 1fr); gap: .7rem; }
.ce-practice-timeline li > span { width: 10px; height: 10px; margin-top: .28rem; border-radius: 50%; background: #4a82cc; box-shadow: 0 0 0 4px #e8f0ff; }
.ce-practice-timeline p { margin: .2rem 0; color: var(--muted); }
.ce-practice-timeline small { color: #7b8798; }

.ce-receipt-eyebrow { display: inline-flex; margin-bottom: .35rem; color: #066c4d; font-size: var(--font-caption); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ce-receipt-summary { margin-bottom: 18px; border: 1px solid #b7ddcc; border-radius: 16px; padding: 17px; background: #f7fdf9; }
.ce-receipt-summary > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.ce-receipt-summary > header span:first-child { color: var(--muted); font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-receipt-summary h2 { margin: .25rem 0 0; color: #0b6549; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: var(--font-section); letter-spacing: .04em; }
.ce-receipt-tracker { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 18px 0; padding: 0; list-style: none; }
.ce-receipt-tracker li { display: flex; min-width: 0; gap: .55rem; border-top: 3px solid #d5dde8; padding-top: 10px; color: var(--muted); }
.ce-receipt-tracker li > span { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 50%; background: #edf1f5; font-size: var(--font-caption); font-weight: 700; }
.ce-receipt-tracker li div { display: grid; gap: .2rem; }
.ce-receipt-tracker li small { line-height: 1.35; }
.ce-receipt-tracker li.is-complete { border-color: #12a36f; color: #066c4d; }
.ce-receipt-tracker li.is-complete > span { background: #12a36f; color: #fff; }
.ce-receipt-tracker li.is-active { border-color: #2d6fbe; color: #174ea6; }
.ce-receipt-tracker li.is-active > span { background: #2d6fbe; color: #fff; }
.ce-receipt-explainer { margin-top: 14px; }
.ce-receipt-close { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: .75rem; margin-top: 14px; border-top: 1px solid #e1e7f0; padding-top: 14px; }
.ce-receipt-close small { color: var(--muted); }

@media (max-width: 980px) {
    .ce-task-row { grid-template-columns: minmax(130px, auto) minmax(0, 1fr) auto; }
    .ce-task-row dl { grid-column: 2 / 3; }
    .ce-practice-filter-toolbar { grid-template-columns: minmax(230px, 1fr) max-content; }
    .ce-practice-sort-control { grid-column: 1 / -1; }
    .ce-practice-filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-practice-filter-actions { grid-column: 1 / -1; justify-content: flex-end; }
    .ce-cockpit-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .fp-login.is-operator-auth .fp-login-grid { grid-template-columns: minmax(0, 1fr); width: min(460px, calc(100% - 28px)); }
    .fp-login.is-operator-auth .fp-login-desktop-panel { display: none; }
    .fp-login .fp-login-actions { grid-template-columns: minmax(0, 1fr); }
    .fp-login .fp-login-actions > * { width: 100%; min-width: 0; }
    .ce-account-task-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-account-task-kpis > a { min-height: 94px; padding: 14px; }
    .ce-account-task-kpis > a span:not(.ce-account-kpi-icon) {
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
    }
    .ce-task-row { grid-template-columns: 1fr; align-items: start; }
    .ce-task-row dl { grid-column: auto; }
    .ce-task-row .ce-ui-button { width: 100%; }
    .ce-account-priority .ce-task-row:nth-of-type(n + 4) { display: none; }
    .ce-account-priority-mobile-more {
        display: inline-flex;
        min-height: 44px;
        align-items: center;
        justify-content: center;
        margin-top: 10px;
        border: 1px solid #b9cbe4;
        border-radius: 10px;
        color: #174ea6;
        font-size: var(--font-caption);
        font-weight: 700;
        text-decoration: none;
    }
    .ce-practice-workspace-head { align-items: flex-start; }
    .ce-practice-view-bar { align-items: flex-start; flex-direction: column; }
    .ce-practice-view-state { justify-content: flex-start; text-align: left; }
    .ce-estimate-request-summary { grid-template-columns: minmax(0, 1fr); }
    .ce-practice-workspace-table td:nth-child(8) { position: static; right: auto; z-index: auto; background: transparent; box-shadow: none; }
    .ce-create-stepper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-create-mode-options { grid-template-columns: 1fr; }
    .ce-create-ai-draft dl { grid-template-columns: 1fr; }
    .ce-create-ai-draft dl .is-wide { grid-column: auto; }
    .ce-decision-cockpit { grid-template-columns: 1fr; }
    .fp-review-detail { padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
    .ce-cockpit-actions {
        position: fixed;
        z-index: 24;
        right: max(10px, env(safe-area-inset-right));
        bottom: max(8px, env(safe-area-inset-bottom));
        left: max(10px, env(safe-area-inset-left));
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: .4rem;
        border-color: #cbd9ea;
        padding: 8px;
        box-shadow: 0 -10px 32px rgba(7, 29, 73, .18);
    }
    .ce-cockpit-actions > span,
    .ce-cockpit-actions > strong { display: none; }
    .ce-cockpit-actions .ce-ui-button { min-width: 0; min-height: 48px; padding-inline: .45rem; font-size: var(--font-label); }
    .ce-receipt-tracker { grid-template-columns: 1fr; }
    .ce-receipt-close { grid-template-columns: 1fr; }
    .ce-receipt-close .ce-ui-button { width: 100%; }
}

@media (max-width: 680px) {
    .ce-practice-workspace-head { gap: 12px; }
    .ce-practice-workspace-head .fp-review-primary-action { width: 100%; justify-content: center; }
    .ce-practice-filter-toolbar,
    .ce-practice-filter-panel { grid-template-columns: minmax(0, 1fr); }
    .ce-practice-sort-control,
    .ce-practice-filter-actions { grid-column: auto; }
    .ce-practice-filter-toggle { width: 100%; }
    .ce-practice-filter-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-practice-view-chips { flex-wrap: nowrap; width: 100%; overflow-x: auto; padding-bottom: 4px; }
    .ce-practice-view-chips button { flex: 0 0 auto; }
    .ce-estimate-request-summary-counts { grid-template-columns: minmax(0, 1fr); }
    .ce-practice-drag-hint { display: none; }
    .ce-practice-workspace-table { min-width: 0; }
    .ce-practice-workspace-table td:nth-child(n) {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: .3rem;
        width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .ce-practice-workspace-table td::before {
        content: attr(data-label) !important;
        display: block;
    }
    .ce-practice-workspace-table td > *,
    .ce-practice-workspace-table td > a,
    .ce-practice-workspace-table .fp-review-table-actions {
        width: 100%;
        max-width: 100%;
        justify-self: stretch;
        text-align: left;
    }
    .ce-practice-workspace-table .ce-practice-row-actions { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; }
    .ce-practice-workspace-table .ce-practice-open-action { width: 100%; }
    .ce-practice-workspace-table .ce-practice-actions-menu { width: auto; justify-self: end; }
    .ce-practice-actions-menu > div,
    .ce-practice-workspace-table tr:nth-last-child(-n+2) .ce-practice-actions-menu > div { top: auto; right: 0; bottom: calc(100% + 6px); }
    .ce-practice-workspace-table .fp-review-list-approve-form { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .ce-account-kpis > a,
    .ce-cockpit-nav,
    .ce-task-row,
    .ce-ui-button { scroll-behavior: auto; transition: none; }
}

/* AI photo collection integrity controls */
.auth-body[data-route="collection/link"] .fp-customer-head {
    justify-content: space-between;
}

.auth-body[data-route="collection/link"] .fp-customer-studio-brand {
    display: flex;
    min-width: 0;
    max-width: 46%;
    align-items: center;
}

.auth-body[data-route="collection/link"] .fp-customer-studio-brand img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 34px;
    object-fit: contain;
    object-position: left center;
}

.auth-body[data-route="collection/link"] .fp-customer-studio-name {
    color: #0b2347;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.2;
    max-width: min(72%, 230px);
    overflow-wrap: anywhere;
}

.auth-body[data-route="collection/link"] .fp-customer-brand.is-platform-brand {
    justify-content: flex-end;
    margin-left: auto;
}

/* Insured post-submission status */
.ce-status-recovery {
    width: calc(100% - 32px);
    max-width: 680px;
    margin: 48px auto;
    padding: 32px;
    gap: 24px;
    text-align: left;
}
.ce-status-recovery .fp-login-kicker {
    border-radius: 6px;
    background: #edf2f8;
    color: #425e7e;
    font-size: .8125rem;
}
.ce-status-recovery .hero-copy { display: grid; gap: 12px; }
.ce-status-recovery h1 { font-size: 1.85rem; line-height: 1.2; }
.ce-status-recovery h2 { font-size: 1rem; line-height: 1.4; margin: 0 0 5px; color: #10264a; }
.ce-status-recovery-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.ce-status-recovery-steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; }
.ce-status-recovery-number {
    display: grid;
    place-items: center;
    height: 28px;
    width: 28px;
    background: #eaf1fd;
    border-radius: 50%;
    color: #174f9a;
    font-weight: 700;
    font-size: .8125rem;
}
.ce-status-recovery-message { border-top: 1px solid #d9e2ef; padding-top: 23px; display: grid; gap: 10px; }
.ce-status-recovery-message label { font-size: .875rem; font-weight: 700; color: #233e63; }
.ce-status-recovery-message textarea {
    width: 100%;
    resize: vertical;
    /* Override the shared control minimum so the complete message remains readable. */
    min-height: 114px !important;
    border: 1px solid #c8d5e6;
    border-radius: 8px;
    background: #f8faff;
    padding: 13px;
    font: inherit;
    font-size: .9375rem;
    line-height: 1.55;
    color: #354c68;
}
.ce-status-recovery-message button {
    justify-self: start;
    min-height: 44px;
    padding: 11px 18px;
    border: 0;
    border-radius: 8px;
    background: #145ee8;
    color: white;
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}
.ce-status-recovery-message [hidden] { display: none !important; }
.ce-status-recovery-message .ce-status-recovery-note { font-size: .8125rem; line-height: 1.5; color: #52647a; }
.ce-status-recovery-message [role="status"] { color: #174f6e; font-size: .875rem; }
.ce-status-recovery textarea:focus-visible,
.ce-status-recovery button:focus-visible { outline: 3px solid #145ee8; outline-offset: 3px; }
@media (max-width: 600px) {
    .ce-status-recovery { width: calc(100% - 24px); margin: 24px auto; padding: 24px 20px; gap: 22px; }
    .ce-status-recovery h1 { font-size: 1.6rem; }
    .ce-status-recovery-message textarea { min-height: 175px !important; }
    .ce-status-recovery-message button { width: 100%; }
}

.auth-body[data-route="collection/status"] {
    --ce-status-navy: #071737;
    --ce-status-blue: #145ee8;
    --ce-status-teal: #148a78;
    --ce-status-muted: #65718a;
    --ce-status-border: #dce3ec;
    min-height: 100vh;
    background: #edf4fb;
}

.auth-body[data-route="collection/status"] .auth-shell {
    max-width: none;
    min-height: 100vh;
    padding: 0;
}

.ce-customer-status {
    min-height: 100vh;
    color: var(--ce-status-navy);
}

.ce-customer-status-header {
    align-items: center;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    min-height: 78px;
    padding: 0.8rem max(1rem, calc((100vw - 1080px) / 2));
    background: #fff;
    border-bottom: 1px solid var(--ce-status-border);
}

.ce-customer-status-brand {
    align-items: center;
    display: flex;
    min-width: 0;
}

.ce-customer-status-brand img {
    display: block;
    height: 44px;
    max-width: 220px;
    object-fit: contain;
    object-position: left center;
    width: auto;
}

.ce-customer-status-brand strong {
    font-size: var(--font-body);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.ce-customer-status-update {
    display: grid;
    flex: 0 0 auto;
    gap: 0.12rem;
    text-align: right;
}

.ce-customer-status-update span {
    color: var(--ce-status-muted);
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-customer-status-update strong {
    font-size: var(--font-caption);
}

.ce-customer-status-main {
    padding: clamp(1.25rem, 3vw, 2.75rem) 1rem 4rem;
}

.ce-customer-status-card {
    display: grid;
    gap: 1.3rem;
    margin: 0 auto;
    max-width: 880px;
    padding: clamp(1.4rem, 4vw, 2.6rem);
    background: #fff;
    border: 1px solid var(--ce-status-border);
    border-radius: 24px;
    box-shadow: var(--shadow-soft);
}

.ce-customer-status-success {
    align-items: center;
    align-self: center;
    background: #e6f7f1;
    border-radius: 999px;
    color: var(--ce-status-teal);
    display: flex;
    font-size: var(--font-title-large);
    font-weight: 700;
    height: 64px;
    justify-content: center;
    justify-self: center;
    width: 64px;
}

.ce-customer-status-intro {
    display: grid;
    gap: 0.5rem;
    text-align: center;
}

.ce-customer-status-intro > span {
    color: #0845b7;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ce-customer-status-intro h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    letter-spacing: -0.035em;
    line-height: 1.2;
    margin: 0;
}

.ce-customer-status-intro p {
    color: var(--ce-status-muted);
    font-size: var(--font-body);
    line-height: 1.55;
    margin: 0 auto;
    max-width: 650px;
}

.ce-customer-status-tracker {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.ce-customer-status-tracker li {
    align-content: start;
    display: grid;
    gap: 0.5rem;
    min-width: 0;
    position: relative;
    text-align: center;
}

.ce-customer-status-tracker li::before,
.ce-customer-status-tracker li::after {
    background: #d9e0ea;
    content: "";
    height: 3px;
    position: absolute;
    top: 7px;
    width: 50%;
}

.ce-customer-status-tracker li::before { left: 0; }
.ce-customer-status-tracker li::after { right: 0; }
.ce-customer-status-tracker li:first-child::before,
.ce-customer-status-tracker li:last-child::after { display: none; }

.ce-customer-status-tracker li.is-complete::before,
.ce-customer-status-tracker li.is-complete::after,
.ce-customer-status-tracker li.is-active::before {
    background: var(--ce-status-teal);
}

.ce-customer-status-tracker li > span {
    background: #d9e0ea;
    border: 3px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px #d9e0ea;
    height: 14px;
    justify-self: center;
    position: relative;
    width: 14px;
    z-index: 1;
}

.ce-customer-status-tracker li.is-complete > span,
.ce-customer-status-tracker li.is-active > span {
    background: var(--ce-status-teal);
    box-shadow: 0 0 0 1px var(--ce-status-teal);
}

.ce-customer-status-tracker li.is-active > span {
    background: var(--ce-status-blue);
    box-shadow: 0 0 0 3px #d5e9f8;
}

.ce-customer-status-phase {
    color: #284d78;
    display: block;
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 700;
    margin-top: 5px;
}

.ce-customer-status-outcome {
    border-bottom: 1px solid var(--ce-status-border);
    border-top: 1px solid var(--ce-status-border);
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 18px 0;
}

.ce-customer-status-outcome > span {
    color: var(--ce-status-blue);
    font-size: 24px;
    line-height: 1.2;
}

.ce-customer-status-outcome h2 {
    font-size: var(--font-body);
    line-height: 1.4;
    margin: 0 0 5px;
}

.ce-customer-status-outcome p {
    color: #52647b;
    font-size: var(--font-label);
    line-height: 1.55;
    margin: 0;
}

.ce-customer-status-tracker li > div {
    display: grid;
    gap: 0.18rem;
    padding: 0 0.35rem;
}

.ce-customer-status-tracker strong {
    font-size: var(--font-caption);
}

.ce-customer-status-tracker small {
    color: var(--ce-status-muted);
    font-size: var(--font-caption);
    line-height: 1.35;
}

.ce-customer-status-now {
    align-items: flex-start;
    background: #f0f4f8;
    border-radius: 14px;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 1rem;
}

.ce-customer-status-now > span {
    align-items: center;
    border: 1px solid #c8d3e1;
    border-radius: 999px;
    color: #46617f;
    display: flex;
    font-family: Georgia, serif;
    font-size: var(--font-caption);
    font-weight: 700;
    height: 22px;
    justify-content: center;
    width: 22px;
}

.ce-customer-status-now div {
    display: grid;
    gap: 0.25rem;
    text-align: center;
}

.ce-customer-status-now strong { font-size: var(--font-caption); }
.ce-customer-status-now p {
    color: #4e5c72;
    font-size: var(--font-body);
    line-height: 1.45;
    margin: 0;
}

.ce-customer-status-facts {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ce-customer-status-facts section {
    align-content: start;
    background: #fff;
    border: 1px solid var(--ce-status-border);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(28, 51, 84, 0.07);
    display: grid;
    gap: 0.45rem;
    min-height: 132px;
    padding: 1.25rem;
}

.ce-customer-status-facts section > span {
    font-size: 1.15rem;
    font-weight: 700;
}

.ce-customer-status-facts section > strong {
    font-size: 1.08rem;
    overflow-wrap: anywhere;
}

.ce-customer-status-facts p {
    color: var(--ce-status-muted);
    line-height: 1.45;
    margin: 0;
}

.ce-customer-status-reopen,
.ce-customer-status-print,
.ce-customer-status-close {
    align-items: center;
    border-radius: 11px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-weight: 700;
    justify-content: center;
    min-height: 44px;
    padding: 0.68rem 1rem;
    text-decoration: none;
}

.ce-customer-status-reopen,
.ce-customer-status-close {
    background: var(--ce-status-blue);
    border: 1px solid var(--ce-status-blue);
    color: #fff;
}

.ce-customer-status-reopen {
    justify-self: start;
    margin-top: 0.35rem;
}

.ce-customer-status-actions {
    align-items: center;
    border-top: 1px solid var(--ce-status-border);
    display: flex;
    gap: 0.8rem;
    justify-content: space-between;
    padding-top: 1.1rem;
}

.ce-customer-status-print {
    background: #fff;
    border: 1px solid #cbd5e2;
    color: var(--ce-status-navy);
}

.ce-customer-status-reopen:hover,
.ce-customer-status-reopen:focus-visible,
.ce-customer-status-close:hover,
.ce-customer-status-close:focus-visible {
    background: #0b4fc9;
}

.ce-customer-status-print:hover,
.ce-customer-status-print:focus-visible {
    background: #f4f7fb;
    border-color: #8da2bd;
}

@media (max-width: 680px) {
    .ce-customer-status-header {
        min-height: 72px;
        padding: 0.75rem 1rem;
    }

    .ce-customer-status-brand img {
        height: 38px;
        max-width: 190px;
    }

    .ce-customer-status-main {
        padding: 0.8rem 0.6rem 2rem;
    }

    .ce-customer-status-card {
        border-radius: 18px;
        gap: 1.15rem;
        padding: 1.25rem 1rem;
    }

    .ce-customer-status-intro h1 {
        font-size: 1.8rem;
    }

    .ce-customer-status-tracker {
        gap: 0;
        grid-template-columns: 1fr;
        padding-left: 0.2rem;
    }

    .ce-customer-status-tracker li {
        gap: 0.8rem;
        grid-template-columns: 18px minmax(0, 1fr);
        min-height: 64px;
        padding-bottom: 12px;
        text-align: left;
    }

    .ce-customer-status-outcome {
        padding: 15px 0;
    }

    .ce-customer-status-tracker li::before,
    .ce-customer-status-tracker li::after {
        height: 50%;
        left: 7px;
        right: auto;
        top: auto;
        width: 3px;
    }

    .ce-customer-status-tracker li::before { top: 0; }
    .ce-customer-status-tracker li::after { bottom: 0; }
    .ce-customer-status-tracker li:first-child::before,
    .ce-customer-status-tracker li:last-child::after { display: none; }

    .ce-customer-status-tracker li > span {
        grid-column: 1;
        grid-row: 1;
        margin-top: 1px;
    }

    .ce-customer-status-tracker li > div {
        gap: 0.2rem;
        grid-column: 2;
        grid-row: 1;
        padding: 0 0 0.9rem;
    }

    .ce-customer-status-tracker strong { font-size: var(--font-caption); }
    .ce-customer-status-tracker small { font-size: var(--font-caption); }

    .ce-customer-status-facts {
        grid-template-columns: 1fr;
    }

    .ce-customer-status-actions {
        align-items: stretch;
        display: grid;
        grid-template-columns: 1fr;
    }

    .ce-customer-status-print { order: 2; }
    .ce-customer-status-close { order: 1; }
}

@media print {
    .auth-body[data-route="collection/status"] { background: #fff; }
    .ce-customer-status-main { padding: 1rem 0; }
    .ce-customer-status-card { border: 0; box-shadow: none; }
    .ce-customer-status-actions { display: none; }
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-modal {
    position: fixed;
    inset: 0;
    z-index: 10030;
    display: grid;
    place-items: center;
    overflow: auto;
    margin: 0;
    padding: 18px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease, visibility .18s ease;
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-modal[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-modal.is-visible {
    opacity: 1;
    visibility: visible;
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 18, 35, .62);
    backdrop-filter: blur(5px);
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-dialog {
    position: relative;
    display: grid;
    width: min(100%, 430px);
    max-height: calc(100dvh - 36px);
    gap: 16px;
    overflow: auto;
    border: 1px solid #dce5ef;
    border-radius: 20px;
    padding: 24px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(8, 22, 43, .3);
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-dialog h2 {
    margin: 0;
    color: #132238;
    font-size: 27px;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-list li {
    border: 1px solid #d7e5fb;
    border-radius: 13px;
    padding: 14px;
    background: #eef5ff;
    color: #18345e;
    font-size: var(--font-label);
    line-height: 1.48;
}

.auth-body[data-route="collection/link"] .fp-gps-instructions-dialog .fp-primary {
    width: 100%;
    min-height: 52px;
}

.auth-body[data-route="collection/link"] .fp-scroll-controls {
    position: fixed;
    z-index: 70;
    right: max(12px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    display: grid;
    gap: 8px;
}

.auth-body[data-route="collection/link"] .fp-scroll-controls[hidden],
.auth-body[data-route="collection/link"] .fp-scroll-controls button[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-scroll-controls button {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    background: #071333;
    box-shadow: 0 10px 24px rgba(7, 19, 51, 0.24);
    cursor: pointer;
}

.auth-body[data-route="collection/link"] .fp-scroll-controls button span {
    width: 10px;
    height: 10px;
    border-right: 3px solid #ffffff;
    border-bottom: 3px solid #ffffff;
}

.auth-body[data-route="collection/link"] .fp-scroll-controls [data-fp-scroll-down] span {
    transform: translateY(-2px) rotate(45deg);
}

.auth-body[data-route="collection/link"] .fp-scroll-controls [data-fp-scroll-up] span {
    transform: translateY(2px) rotate(225deg);
}

.fp-review-photo-placeholder.is-unavailable {
    align-content: center;
    gap: 8px;
    border-style: dashed;
    background: #f7f8fb;
}

.fp-review-photo-placeholder.is-unavailable > span {
    display: block;
    width: 42px;
    height: 34px;
    border: 2px solid #7b8799;
    border-radius: 6px;
    background: linear-gradient(145deg, transparent 48%, #aeb8c6 49%, #aeb8c6 58%, transparent 59%);
}

.fp-photo-unavailable-reason {
    margin: 4px 0 0;
    padding: 8px;
    border-radius: 6px;
    background: #fff4df;
    color: #6f4511;
    font-size: var(--font-caption);
    line-height: 1.4;
}

/* Studio KPI analytics */
.ce-kpi-page {
    --kpi-ink: #10233f;
    --kpi-muted: #617188;
    --kpi-blue: #1d65c4;
    --kpi-teal: #12a89d;
    width: min(1500px, calc(100% - 48px));
    margin: 0 auto;
    padding: 34px 0 56px;
    color: var(--kpi-ink);
    font-family: var(--font-sans);
}

.ce-kpi-hero {
    position: relative;
    display: flex;
    min-height: 176px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 36px;
    overflow: hidden;
    border: 1px solid rgba(45, 113, 209, 0.18);
    border-radius: 24px;
    padding: clamp(28px, 4vw, 46px);
    background:
        radial-gradient(circle at 88% 12%, rgba(61, 139, 248, 0.34), transparent 19rem),
        linear-gradient(135deg, #0c2342 0%, #103b69 58%, #176487 100%);
    box-shadow: 0 20px 44px rgba(17, 49, 86, 0.14);
    color: #fff;
}

.ce-kpi-hero::after {
    position: absolute;
    top: -90px;
    right: 22%;
    width: 220px;
    height: 220px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 50%;
    content: "";
}

.ce-kpi-hero > * { position: relative; z-index: 1; }
.ce-kpi-eyebrow { display: block; margin-bottom: 12px; color: #86e2dc; font-size: var(--font-caption); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.ce-kpi-hero h1 { margin: 0; color: #fff; font-size: clamp(34px, 4vw, 52px); letter-spacing: -0.04em; line-height: 1.2; }
.ce-kpi-hero p { max-width: 760px; margin: 16px 0 0; color: rgba(255, 255, 255, 0.78); font-size: var(--font-body); line-height: 1.55; }
.ce-kpi-freshness { display: grid; flex: 0 0 min(340px, 34%); gap: 6px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 16px; padding: 16px 18px; background: rgba(4, 25, 50, 0.28); backdrop-filter: blur(8px); }
.ce-kpi-freshness strong { font-size: var(--font-caption); }
.ce-kpi-freshness span { color: rgba(255, 255, 255, 0.68); font-size: var(--font-caption); line-height: 1.45; }

.ce-kpi-tabs { display: flex; gap: 8px; margin-top: 24px; border-bottom: 1px solid #dbe3ed; }
.ce-kpi-tabs a { position: relative; padding: 14px 20px; color: var(--muted); font-size: var(--font-caption); font-weight: 700; text-decoration: none; }
.ce-kpi-tabs a::after { position: absolute; right: 18px; bottom: -2px; left: 18px; height: 3px; border-radius: 4px 4px 0 0; background: transparent; content: ""; }
.ce-kpi-tabs a:hover { color: var(--kpi-blue); }
.ce-kpi-tabs a.is-active { color: var(--kpi-ink); }
.ce-kpi-tabs a.is-active::after { background: var(--kpi-blue); }

.ce-kpi-filters { display: flex; align-items: flex-end; gap: 12px; margin: 20px 0; border: 1px solid #dfe6ef; border-radius: 16px; padding: 14px; background: #fff; box-shadow: 0 8px 24px rgba(31, 57, 88, 0.05); }
.ce-kpi-filters label { display: grid; gap: 6px; min-width: 190px; }
.ce-kpi-filters label span { color: #62748d; font-size: var(--font-caption); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.ce-kpi-filters select,
.ce-kpi-target-grid input { min-height: 42px; border: 1px solid #cfd9e6; border-radius: 10px; padding: 0 12px; background: #fff; color: var(--kpi-ink); font: inherit; }
.ce-kpi-filters button,
.ce-kpi-target-grid button { min-height: 42px; border: 0; border-radius: 10px; padding: 0 18px; background: var(--kpi-blue); color: #fff; font: inherit; font-size: var(--font-label); font-weight: 700; cursor: pointer; }
.ce-kpi-filters button:hover,
.ce-kpi-target-grid button:hover { background: #155ebd; }
.ce-kpi-filters p { margin: 0 0 9px auto; color: var(--kpi-muted); font-size: var(--font-body); }

.ce-kpi-metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin: 20px 0; }
.ce-kpi-metric-card { position: relative; display: grid; min-height: 138px; align-content: space-between; gap: 10px; overflow: hidden; border: 1px solid #e0e7f0; border-radius: 18px; padding: 20px; background: #fff; box-shadow: var(--shadow-soft); }
.ce-kpi-metric-card::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--kpi-blue), var(--kpi-teal)); content: ""; opacity: 0.32; }
.ce-kpi-metric-card.is-primary { border-color: rgba(40, 120, 227, 0.3); background: linear-gradient(145deg, #eff6ff, #fff); }
.ce-kpi-metric-card > span { color: var(--kpi-muted); font-size: var(--font-caption); font-weight: 700; line-height: 1.35; text-transform: uppercase; }
.ce-kpi-metric-card > strong { color: #122d51; font-size: clamp(25px, 2.3vw, 34px); letter-spacing: -0.04em; }
.ce-kpi-metric-card small { width: max-content; border-radius: 999px; padding: 4px 8px; background: #eef2f7; color: var(--muted); font-weight: 700; }
.ce-kpi-metric-card small.is-positive { background: #e8f8f3; color: #087d66; }
.ce-kpi-metric-card small.is-negative { background: #fff0ef; color: #b4433c; }

.ce-kpi-panel { border: 1px solid #e0e7f0; border-radius: 18px; background: #fff; box-shadow: var(--shadow-soft); }
.ce-kpi-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 21px 22px 0; }
.ce-kpi-panel h2 { margin: 0; color: var(--kpi-ink); font-size: 17px; letter-spacing: -0.015em; }
.ce-kpi-panel header p { margin: 5px 0 0; color: var(--kpi-muted); font-size: var(--font-body); }
.ce-kpi-chart-panel { min-width: 0; overflow: hidden; padding-bottom: 8px; }
.ce-kpi-line-chart { display: block; width: 100%; height: auto; min-height: 220px; padding: 4px 12px 0; }
.ce-kpi-line-chart line { stroke: #e7edf4; stroke-width: 1; }
.ce-kpi-line-chart text { fill: #8090a5; font-size: var(--font-caption); font-weight: 600; }
.ce-kpi-line-chart polyline { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.ce-kpi-line-chart polyline.is-blue { stroke: var(--kpi-blue); }
.ce-kpi-line-chart polyline.is-teal { stroke: var(--kpi-teal); }
.ce-kpi-legend { display: flex; flex-wrap: wrap; gap: 15px; color: var(--kpi-muted); font-size: var(--font-caption); font-weight: 700; }
.ce-kpi-legend span { display: inline-flex; align-items: center; gap: 6px; }
.ce-kpi-legend span::before { width: 9px; height: 9px; border-radius: 50%; background: var(--kpi-blue); content: ""; }
.ce-kpi-legend span.is-teal::before { background: var(--kpi-teal); }

.ce-kpi-analysis-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.ce-kpi-analysis-grid.is-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ce-kpi-distribution { min-width: 0; padding-bottom: 20px; }
.ce-kpi-distribution header { min-height: 67px; }
.ce-kpi-distribution header > span { border-radius: 999px; padding: 5px 8px; background: #f0f5fb; color: #5e7189; font-size: var(--font-caption); font-weight: 700; white-space: nowrap; }
.ce-kpi-bars { display: grid; gap: 15px; padding: 17px 22px 2px; }
.ce-kpi-bar-row > div { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; color: #42546d; font-size: var(--font-caption); }
.ce-kpi-bar-row > div span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-kpi-bar-track { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: #edf2f7; }
.ce-kpi-bar-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--kpi-blue), var(--kpi-teal)); }
.ce-kpi-empty { padding: 18px 22px; color: var(--kpi-muted); font-size: var(--font-caption); }
.ce-kpi-privacy-note { margin: 14px 0 0; border-left: 3px solid var(--kpi-teal); padding: 10px 14px; color: #586a80; font-size: var(--font-caption); }

.ce-kpi-user-visuals { display: grid; grid-template-columns: minmax(0, 2fr) minmax(270px, 0.8fr); gap: 14px; }
.ce-kpi-module-panel { min-width: 0; }
.ce-kpi-modules { display: grid; gap: 16px; padding: 24px 22px; }
.ce-kpi-modules > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ce-kpi-modules span { display: flex; min-width: 0; align-items: center; gap: 9px; color: #53657c; font-size: var(--font-caption); }
.ce-kpi-modules span i { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 3px; background: linear-gradient(135deg, var(--kpi-blue) var(--module-share), #dce6f1 var(--module-share)); }
.ce-kpi-modules strong { color: #17365d; font-size: var(--font-caption); white-space: nowrap; }

.ce-kpi-table-panel { margin-top: 14px; overflow: hidden; }
.ce-kpi-table-scroll { overflow-x: auto; padding-top: 14px; }
.ce-kpi-table-panel table { width: 100%; border-collapse: collapse; min-width: 900px; }
.ce-kpi-table-panel th { border-top: 1px solid #edf1f6; border-bottom: 1px solid #e3e9f1; padding: 11px 16px; background: #f8fafc; color: var(--muted); font-size: var(--font-caption); letter-spacing: 0.06em; text-align: left; text-transform: uppercase; }
.ce-kpi-table-panel td { border-bottom: 1px solid #edf1f6; padding: 13px 16px; color: #405169; font-size: var(--font-caption); vertical-align: middle; }
.ce-kpi-table-panel tr:last-child td { border-bottom: 0; }
.ce-kpi-table-panel td:first-child strong,
.ce-kpi-table-panel td:first-child small { display: block; }
.ce-kpi-table-panel td:first-child strong { color: #1d3455; font-size: var(--font-caption); }
.ce-kpi-table-panel td small { margin-top: 3px; color: var(--muted); }
.ce-kpi-table-panel td em { display: inline-block; margin-top: 5px; border-radius: 999px; padding: 2px 6px; background: #f2f4f7; color: var(--muted); font-size: var(--font-caption); font-style: normal; font-weight: 700; }
.ce-kpi-role { display: inline-block; border-radius: 999px; padding: 5px 8px; background: #edf4ff; color: #2464b9; font-size: var(--font-caption); font-weight: 700; white-space: nowrap; }
.ce-kpi-score { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 50%; background: radial-gradient(circle, #fff 57%, transparent 59%), conic-gradient(var(--kpi-teal) var(--score), #e8eef4 var(--score)); color: #1b4960; font-size: var(--font-caption); font-weight: 700; }

.ce-kpi-score-explainer { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); gap: 14px; margin-top: 14px; }
.ce-kpi-score-explainer > article,
.ce-kpi-score-explainer > details { border: 1px solid #dce5ef; border-radius: 18px; padding: 22px; background: #f8fbff; }
.ce-kpi-score-explainer > article { display: flex; align-items: center; gap: 18px; }
.ce-kpi-score-explainer > article > span { display: grid; width: 76px; height: 76px; flex: 0 0 auto; place-items: center; border-radius: 22px; background: linear-gradient(145deg, #236fcf, #10a99e); box-shadow: 0 9px 22px rgba(32, 112, 173, 0.2); color: #fff; font-size: 22px; font-weight: 700; }
.ce-kpi-score-explainer h2 { margin: 0 0 7px; font-size: 17px; }
.ce-kpi-score-explainer p { margin: 0; color: #5c6e84; font-size: var(--font-body); line-height: 1.55; }
.ce-kpi-score-explainer article strong { display: block; margin-top: 8px; color: #285c84; font-size: var(--font-caption); }
.ce-kpi-score-explainer summary { cursor: pointer; color: #17365d; font-size: var(--font-caption); font-weight: 700; }
.ce-kpi-target-grid { display: grid; gap: 12px; margin-top: 16px; }
.ce-kpi-target-grid form { display: grid; grid-template-columns: minmax(120px, 1fr) repeat(2, minmax(110px, 0.9fr)) auto; align-items: end; gap: 10px; border-top: 1px solid #e0e7ef; padding-top: 12px; }
.ce-kpi-target-grid header { align-self: center; }
.ce-kpi-target-grid header strong,
.ce-kpi-target-grid header span { display: block; }
.ce-kpi-target-grid header span { margin-top: 3px; color: #7a8798; font-size: var(--font-caption); font-weight: 700; text-transform: uppercase; }
.ce-kpi-target-grid label { display: grid; gap: 5px; color: #68798e; font-size: var(--font-caption); font-weight: 700; }
.ce-kpi-target-grid input { width: 100%; min-width: 0; }
.ce-kpi-target-grid button { padding: 0 12px; }
.ce-kpi-footnote { display: flex; justify-content: space-between; gap: 20px; margin-top: 18px; color: var(--muted); font-size: var(--font-caption); }

.ce-create-analytics-fields { margin-top: 18px; border: 1px solid #dfe6ef; border-radius: 13px; background: #f9fbfd; }
.ce-create-analytics-fields > summary { display: grid; gap: 3px; cursor: pointer; padding: 15px 17px; color: #1b385d; }
.ce-create-analytics-fields > summary span { color: var(--muted); font-size: var(--font-caption); font-weight: 400; }
.ce-create-analytics-fields > .fp-practice-create-fields { border-top: 1px solid #e4eaf1; padding: 17px; }

@media (max-width: 1180px) {
    .ce-kpi-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ce-kpi-analysis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-kpi-score-explainer { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .ce-kpi-page { width: min(100% - 28px, 1500px); padding-top: 20px; }
    .ce-kpi-hero { min-height: 0; align-items: flex-start; flex-direction: column; border-radius: 19px; padding: 28px; }
    .ce-kpi-freshness { width: 100%; flex-basis: auto; }
    .ce-kpi-filters { align-items: stretch; flex-wrap: wrap; }
    .ce-kpi-filters label { flex: 1 1 180px; }
    .ce-kpi-filters p { width: 100%; margin: 2px 0 0; }
    .ce-kpi-user-visuals { grid-template-columns: 1fr; }
    .ce-kpi-target-grid form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ce-kpi-target-grid form header,
    .ce-kpi-target-grid form button { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
    .ce-kpi-page { width: min(100% - 20px, 1500px); padding-bottom: 34px; }
    .ce-kpi-hero { padding: 23px 20px; }
    .ce-kpi-hero h1 { font-size: 35px; }
    .ce-kpi-tabs a { flex: 1; padding: 13px 8px; text-align: center; }
    .ce-kpi-filters { display: grid; }
    .ce-kpi-filters label,
    .ce-kpi-filters button { width: 100%; }
    .ce-kpi-metric-grid,
    .ce-kpi-analysis-grid,
    .ce-kpi-analysis-grid.is-compact { grid-template-columns: 1fr; }
    .ce-kpi-metric-card { min-height: 118px; }
    .ce-kpi-panel > header { align-items: flex-start; flex-direction: column; }
    .ce-kpi-line-chart { min-width: 610px; }
    .ce-kpi-chart-panel { overflow-x: auto; }
    .ce-kpi-score-explainer > article { align-items: flex-start; flex-direction: column; }
    .ce-kpi-target-grid form { grid-template-columns: 1fr; }
    .ce-kpi-target-grid form > * { grid-column: 1 !important; }
    .ce-kpi-footnote { flex-direction: column; }
}

/* Insured Automatic AI collection: approved low-density journey (2026-08-26). */
.auth-body[data-route="collection/link"] [data-fp-customer-demo] :where(button, input, select, textarea) {
    font-family: var(--font-sans) !important;
}

.auth-body[data-route="collection/link"] .fp-customer-shell {
    padding: 24px 12px;
    background: #eef3f8;
}

.auth-body[data-route="collection/link"] .fp-customer-phone {
    width: min(100%, 420px);
    overflow: hidden;
    border: 1px solid #d6e0eb;
    border-radius: 22px;
    background: #f8fafc;
    box-shadow: 0 24px 70px rgba(18, 38, 63, .14);
}

.auth-body[data-route="collection/link"] .fp-customer-head {
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    min-height: 66px;
    gap: 10px;
    justify-content: space-between;
    border-bottom: 1px solid #e1e8f0;
    border-radius: 22px 22px 0 0;
    padding: 10px 18px;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(16px);
}

.auth-body[data-route="collection/link"] .fp-customer-brand {
    min-width: 0;
}

.auth-body[data-route="collection/link"] .fp-customer-head .fp-logo-mark {
    width: 126px;
}

.auth-body[data-route="collection/link"] .fp-voice-replay {
    display: inline-flex;
    width: auto;
    min-width: 0;
    min-height: 38px;
    gap: 6px;
    border: 1px solid #c7d8f5;
    border-radius: 999px;
    padding: 7px 11px;
    background: #eef5ff;
    color: #1158c7;
    box-shadow: none;
    font-size: var(--font-caption);
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-voice-replay[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-replay svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    stroke: none;
}

.auth-body[data-route="collection/link"] .fp-screen {
    gap: 16px;
    padding: 22px 20px 28px;
    background: #f8fafc;
}

.auth-body[data-route="collection/link"] .fp-screen[data-fp-step-label]::before {
    top: 22px;
    right: 20px;
    padding: 6px 10px;
    background: #eaf0f6;
    color: var(--muted);
    font-size: var(--font-caption);
}

.auth-body[data-route="collection/link"] .fp-customer-copy {
    min-height: 0;
    gap: 8px;
    border: 0;
    border-radius: 0;
    padding: 0 72px 0 0;
    background: transparent;
}

.auth-body[data-route="collection/link"] .fp-customer-copy h1,
.auth-body[data-route="collection/link"] .fp-photo-step h2 {
    font-size: clamp(25px, 7vw, 31px);
    letter-spacing: -.025em;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-customer-copy p,
.auth-body[data-route="collection/link"] .fp-photo-step p[data-fp-photo-slot-instruction] {
    color: #5b687b;
    font-size: var(--font-body);
    line-height: 1.48;
}

.auth-body[data-route="collection/link"] .fp-screen-eyebrow,
.auth-body[data-route="collection/link"] .fp-modal-eyebrow,
.auth-body[data-route="collection/link"] .fp-ai-wait-eyebrow {
    color: #1762d0;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.auth-body[data-route="collection/link"] :is(
    .fp-claim-summary-card,
    .fp-consent,
    .fp-denuncia-tab-panel,
    .fp-gps-reference,
    .fp-gps-status,
    .fp-photo-progress,
    .fp-photo-step,
    .fp-final-gallery,
    .fp-package-summary,
    .fp-customer-review-gallery,
    .fp-photo-ai-summary,
    .fp-done-card,
    .fp-disclosure
) {
    border-color: #dce5ef;
    border-radius: 15px;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card {
    padding: 18px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.auth-body[data-route="collection/link"] .fp-claim-summary-card dl div,
.auth-body[data-route="collection/link"] .fp-intro-details dl div,
.auth-body[data-route="collection/link"] .fp-privacy-detail-list div {
    border: 0;
    border-radius: 10px;
    padding: 11px;
    background: #f3f7fb;
}

.auth-body[data-route="collection/link"] .fp-button-row,
.auth-body[data-route="collection/link"] .fp-intro-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
}

.auth-body[data-route="collection/link"] .fp-button-row > :is(.fp-primary, .fp-primary-cta) {
    order: -1;
}

.auth-body[data-route="collection/link"] :is(.fp-primary, .fp-secondary, .fp-primary-cta, .fp-text-action) {
    min-height: 50px;
    border-radius: 12px;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-primary,
.auth-body[data-route="collection/link"] .fp-primary-cta {
    background: #1769e8;
    box-shadow: 0 9px 20px rgba(23, 105, 232, .2);
}

.auth-body[data-route="collection/link"] .fp-secondary {
    border-color: #d5dfeb;
    background: #fff;
}

.auth-body[data-route="collection/link"] .fp-customer-reset-form {
    display: block !important;
}

.auth-body[data-route="collection/link"] .fp-intro-reset-form .fp-reset-cta {
    border: 0;
    background: transparent;
    color: #536176;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-consent-panel {
    gap: 10px;
}

.auth-body[data-route="collection/link"] .fp-consent {
    min-height: 52px;
    padding: 12px;
}

.auth-body[data-route="collection/link"] .fp-consent-email-field {
    border: 2px solid #9fc2ff;
    border-radius: 15px;
    padding: 15px;
    background: #eef5ff;
    box-shadow: none;
}

.auth-body[data-route="collection/link"] .fp-denuncia-tabs {
    border-radius: 13px;
    padding: 4px;
}

.auth-body[data-route="collection/link"] .fp-denuncia-tabs button {
    min-height: 44px;
    border-radius: 10px;
}

.auth-body[data-route="collection/link"] .fp-gps-map {
    min-height: 240px;
    border-radius: 15px;
}

.auth-body[data-route="collection/link"] .fp-safety-card {
    display: grid;
    gap: 0;
    padding: 5px 16px;
}

.auth-body[data-route="collection/link"] .fp-safety-rule {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    border-bottom: 1px solid #e6ecf3;
    padding: 14px 0;
}

.auth-body[data-route="collection/link"] .fp-safety-rule:last-child {
    border-bottom: 0;
}

.auth-body[data-route="collection/link"] .fp-safety-rule > span {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 999px;
    background: #fff1dd;
    color: #a65300;
    font-weight: 700;
}

.auth-body[data-route="collection/link"] .fp-safety-rule div {
    display: grid;
    gap: 3px;
}

.auth-body[data-route="collection/link"] .fp-safety-rule small {
    color: #687589;
    line-height: 1.4;
}

.auth-body[data-route="collection/link"] .fp-photo-progress {
    padding: 14px;
    background: #eef5ff;
}

.auth-body[data-route="collection/link"] .fp-photo-step {
    padding: 18px;
}

.auth-body[data-route="collection/link"] .fp-photo-guidance-grid div {
    border: 0;
    border-radius: 11px;
    padding: 13px;
    background: #eef5ff;
}

.auth-body[data-route="collection/link"] .fp-upload-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
}

.auth-body[data-route="collection/link"] .fp-upload-actions .fp-photo-action {
    min-height: 50px;
    border-radius: 12px;
}

.auth-body[data-route="collection/link"] .fp-final-gallery {
    padding: 16px;
}

.auth-body[data-route="collection/link"] .fp-final-gallery-upload {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.auth-body[data-route="collection/link"] .fp-info-form {
    gap: 12px;
}

.auth-body[data-route="collection/link"] .fp-info-form > .fp-field,
.auth-body[data-route="collection/link"] .fp-info-form > .fp-disclosure {
    border: 1px solid #dce5ef;
    border-radius: 15px;
    padding: 14px;
    background: #fff;
}

.auth-body[data-route="collection/link"] .fp-notes-disclosure > .fp-field {
    padding: 12px 14px 14px;
}

.auth-body[data-route="collection/link"] .fp-package-summary {
    padding: 6px 16px;
}

.auth-body[data-route="collection/link"] .fp-package-summary div {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    padding: 12px 0;
}

.auth-body[data-route="collection/link"] .fp-ready-pill {
    border: 1px solid #b9e2ca;
    border-radius: 13px;
    padding: 13px 15px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery {
    border: 1px solid #dce5ef;
    padding: 15px;
    background: #fff;
}

.auth-body[data-route="collection/link"] .fp-customer-review-gallery-head {
    padding: 0;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-tile {
    border-radius: 12px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-photo-thumb {
    aspect-ratio: 1.18 / 1;
    border-radius: 10px;
}

.auth-body[data-route="collection/link"] .fp-done-card {
    padding: 0;
    border: 0;
    background: transparent;
}

.auth-body[data-route="collection/link"] .fp-done-card > [hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-final-message p {
    color: #33445f;
    font-weight: 500;
    line-height: 1.58;
}

.auth-body[data-route="collection/link"] .ce-receipt-summary {
    border-radius: 16px;
}

.auth-body[data-route="collection/link"] .fp-estimate-proposal {
    gap: 12px;
    border: 1px solid #dce5ef;
    border-radius: 16px;
    padding: 18px;
    background: #fff;
}

.auth-body[data-route="collection/link"] .fp-estimate-proposal h2 {
    margin: 0;
    color: #132238;
    font-size: var(--font-title-small);
}

.auth-body[data-route="collection/link"] .fp-estimate-proposal .fp-choice-row,
.auth-body[data-route="collection/link"] .fp-estimate-choice-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
}

.auth-body[data-route="collection/link"] .fp-estimate-choice-actions[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-dock {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: grid !important;
    width: auto;
    margin: 0;
    place-items: center;
    overflow: auto;
    border: 0;
    border-radius: 0;
    padding: 18px;
    background: transparent;
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease, visibility .18s ease;
}

.auth-body[data-route="collection/link"] .fp-voice-dock[hidden] {
    display: none !important;
}

.auth-body[data-route="collection/link"] .fp-voice-dock.is-visible {
    opacity: 1;
    visibility: visible;
}

.auth-body[data-route="collection/link"] .fp-voice-choice-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 18, 35, .58);
    backdrop-filter: blur(5px);
}

.auth-body[data-route="collection/link"] .fp-voice-choice-dialog {
    position: relative;
    display: grid;
    width: min(100%, 390px);
    gap: 12px;
    border: 1px solid #dce5ef;
    border-radius: 20px;
    padding: 24px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(8, 22, 43, .28);
}

.auth-body[data-route="collection/link"] .fp-voice-choice-dialog h2,
.auth-body[data-route="collection/link"] .fp-voice-choice-dialog p {
    margin: 0;
}

.auth-body[data-route="collection/link"] .fp-voice-choice-dialog h2 {
    color: #132238;
    font-size: 27px;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-voice-choice-dialog p {
    color: #5d6a7e;
    line-height: 1.5;
}

.auth-body[data-route="collection/link"] .fp-voice-iphone-note {
    display: grid;
    gap: 5px;
    border-radius: 13px;
    padding: 13px;
    background: #eef5ff;
    color: #173b70;
}

.auth-body[data-route="collection/link"] .fp-voice-iphone-note small {
    line-height: 1.45;
}

.auth-body[data-route="collection/link"] .fp-voice-choice-actions,
.auth-body[data-route="collection/link"] .fp-ai-wait-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-dialog {
    width: min(100%, 410px);
    gap: 14px;
    border-radius: 20px;
    padding: 24px;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-copy {
    gap: 8px;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-copy > strong {
    font-size: 25px;
    line-height: 1.2;
}

.auth-body[data-route="collection/link"] .fp-ai-wait-modal[data-state="estimate-choice"] .fp-ai-wait-icon,
.auth-body[data-route="collection/link"] .fp-ai-wait-modal[data-state="send-confirm"] .fp-ai-wait-icon,
.auth-body[data-route="collection/link"] .fp-ai-wait-modal[data-state="estimate-question"] .fp-ai-wait-icon {
    display: none;
}

.auth-body[data-route="collection/link"] .fp-estimate-question-list > * {
    border-radius: 12px;
    background: #eef5ff;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal {
    padding: 16px;
    background: rgba(7, 18, 35, .72);
    backdrop-filter: blur(5px);
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-card {
    width: min(100%, 430px);
    max-height: calc(100dvh - 32px);
    overflow: auto;
    border-radius: 20px;
    padding: 18px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-card > img,
.auth-body[data-route="collection/link"] .fp-customer-review-modal-preview {
    min-height: 320px;
    border-radius: 14px;
}

.auth-body[data-route="collection/link"] .fp-customer-review-modal-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

@media (max-width: 600px) {
    .auth-body[data-route="collection/link"] .fp-customer-shell {
        padding: 0;
    }

    .auth-body[data-route="collection/link"] .fp-customer-phone {
        width: 100%;
        min-height: 100vh;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .auth-body[data-route="collection/link"] .fp-customer-head {
        border-radius: 0;
        padding-right: 14px;
        padding-left: 14px;
    }

    .auth-body[data-route="collection/link"] .fp-screen {
        padding-right: 18px;
        padding-left: 18px;
    }

    .auth-body[data-route="collection/link"] .fp-screen[data-fp-step-label]::before {
        right: 18px;
        font-size: var(--font-caption) !important;
    }

    .auth-body[data-route="collection/link"] .fp-customer-copy h1 {
        font-size: 29px !important;
    }

    .auth-body[data-route="collection/link"] .fp-final-gallery-upload,
    .auth-body[data-route="collection/link"] .fp-customer-review-modal-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .auth-body[data-route="collection/link"] .fp-voice-choice-dialog,
    .auth-body[data-route="collection/link"] .fp-ai-wait-dialog {
        max-height: calc(100dvh - 32px);
        overflow: auto;
    }
}

/* Studio lean-and-clean pass: compact hierarchy, progressive disclosure and mobile clarity. */
.ce-account-shell {
    grid-template-columns: 264px minmax(0, 1fr);
    background: #f5f7fa;
}

.ce-account-shell.is-nav-collapsed {
    grid-template-columns: 76px minmax(0, 1fr);
}

.ce-account-sidebar {
    width: 100%;
    background: #12233f;
    box-shadow: none;
}

.ce-account-sidebar-head {
    min-height: 72px;
    padding: 12px 15px;
}

.ce-account-navigation {
    gap: 18px;
    padding: 14px 12px;
    scrollbar-width: thin;
    scrollbar-color: #53647f transparent;
}

.ce-account-nav-group + .ce-account-nav-group {
    margin-top: 0;
}

.ce-account-nav-group h2 {
    margin: 0 10px 6px;
    font-size: var(--font-caption);
    font-weight: 500;
    color: #b6c4d9;
    letter-spacing: 0;
    text-transform: none;
}

.ce-account-nav-group ul {
    gap: 3px;
}

.ce-account-nav-link {
    grid-template-columns: 20px minmax(0, 1fr) auto;
    min-height: 44px;
    gap: 10px;
    border-radius: 9px;
    padding: 7px 10px;
    font-size: var(--font-label);
    font-weight: 500;
    line-height: 1.4;
    color: #e5ebf5;
}

.ce-account-nav-link small {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    min-width: 26px;
    padding: 2px 6px;
    border: 0;
    border-radius: 6px;
    background: #304767;
    color: #fff;
    text-align: center;
    line-height: 1.4;
    letter-spacing: 0;
    white-space: nowrap;
}

.ce-account-nav-link.is-active {
    border-color: transparent;
    background: #25476f;
    box-shadow: inset 3px 0 #86b7ff;
    font-weight: 600;
}

a.ce-account-nav-link:hover,
a.ce-account-nav-link:focus-visible {
    transform: none;
    background: #203858;
}

.ce-account-nav-text { overflow-wrap: normal; }

.ce-account-shell .ce-account-nav-link {
    min-height: 44px;
    font-size: var(--font-label);
}

.ce-account-shell .ce-account-nav-link.is-child {
    font-size: var(--font-label);
}

.ce-account-nav-icon,
.ce-account-nav-icon svg {
    width: 18px;
    height: 18px;
}

.ce-account-session {
    grid-template-columns: minmax(0, 1fr) 40px;
    align-items: center;
    gap: 8px;
    padding: 12px;
    background: #0e1c33;
}

.ce-account-user { gap: 8px; }
.ce-account-user-copy strong { font-size: var(--font-label); font-weight: 600; }
.ce-account-user-copy small { white-space: normal; color: #b6c4d9; font-weight: 400; line-height: 1.4; }
.ce-account-session .ce-account-logout { width: 40px; min-height: 40px; padding: 0; justify-content: center; }
.ce-account-session .ce-account-logout .ce-account-nav-text { display: none; }
.ce-account-shell.is-nav-collapsed .ce-account-session { grid-template-columns: 1fr; }

.ce-account-dashboard,
.ce-account-shell .fp-review-main,
.ce-account-shell .policy-main,
.ce-account-shell .ce-agenda-main,
.ce-account-shell .ce-studio-calendar,
.ce-account-shell .fp-access-topbar,
.ce-account-shell .fp-access-main,
.ce-kpi-page {
    width: min(1320px, calc(100% - 40px));
}

.ce-account-dashboard,
.ce-account-shell .fp-review-main,
.ce-account-shell .policy-main,
.ce-account-shell .ce-agenda-main,
.ce-account-shell .fp-access-main,
.ce-kpi-page {
    padding-top: 24px;
}

.ce-account-hero {
    min-height: 136px;
    gap: 24px;
    border-radius: 18px;
    padding: 26px 30px;
    box-shadow: 0 14px 34px rgba(16, 53, 99, 0.12);
}

.ce-account-hero h1 {
    font-size: clamp(31px, 3.2vw, 40px);
    line-height: 1.2;
}

.ce-account-hero p {
    max-width: 680px;
    margin-top: 9px;
    font-size: var(--font-body);
    line-height: 1.48;
}

.ce-account-hero-identity {
    min-width: 220px;
    gap: 3px;
    border-radius: 13px;
    padding: 12px 15px;
}

.ce-account-kpis {
    gap: 12px;
    margin: 14px 0;
}

.ce-account-kpis article,
.ce-account-kpis > a {
    min-height: 82px;
    gap: 12px;
    border-radius: 13px;
    padding: 14px 16px;
    box-shadow: 0 7px 20px rgba(19, 47, 84, 0.045);
}

.ce-account-kpis article strong,
.ce-account-kpis > a strong {
    font-size: 23px;
}

.ce-account-dashboard-grid,
.ce-account-management-grid {
    gap: 14px;
}

.ce-account-panel {
    border-radius: 14px;
    padding: 18px;
    box-shadow: var(--shadow-soft);
}

.ce-account-panel-head h2 {
    font-size: 17px;
}

.ce-account-panel-head p {
    max-width: 62ch;
    line-height: 1.45;
}

.ce-account-management,
.ce-kpi-insights {
    margin-top: 14px;
    overflow: hidden;
    border: 1px solid #dbe4ef;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(19, 47, 84, 0.045);
}

.ce-account-management > summary,
.ce-kpi-insights > summary {
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 17px;
    color: #17365d;
    cursor: pointer;
    list-style: none;
}

.ce-account-management > summary::-webkit-details-marker,
.ce-kpi-insights > summary::-webkit-details-marker,
.fp-review-learning-monitor > summary::-webkit-details-marker {
    display: none;
}

.ce-account-management > summary > span:first-child,
.ce-kpi-insights > summary > span:first-child {
    display: grid;
    gap: 3px;
}

.ce-account-management > summary strong,
.ce-kpi-insights > summary strong {
    font-size: var(--font-caption);
}

.ce-account-management > summary small,
.ce-kpi-insights > summary small {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 500;
}

.ce-account-management-summary-state,
.ce-kpi-insights > summary > span:last-child,
.fp-review-learning-toggle {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    background: #edf4ff;
    color: #175cb8;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-account-management[open] > summary,
.ce-kpi-insights[open] > summary,
.fp-review-learning-monitor[open] > summary {
    border-bottom: 1px solid #e3e9f1;
}

.ce-account-management > .ce-account-management-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 14px;
}

.ce-notifications-hero {
    min-height: 132px;
    border-radius: 18px;
    padding: 25px 28px;
}

.ce-notifications-hero h1 {
    font-size: clamp(30px, 3.3vw, 40px);
}

.ce-notifications-hero p {
    max-width: 680px;
    margin-top: 9px;
    font-size: var(--font-body);
    line-height: 1.48;
}

.ce-notifications-filters {
    gap: 8px;
    margin: 14px 0;
}

.ce-notifications-filter {
    min-height: 38px;
    padding: 0 12px;
}

.ce-notifications-empty {
    min-height: 260px;
    border-radius: 14px;
    padding: 34px 22px;
}

.is-progressive [data-ce-create-step][hidden] {
    display: none !important;
}

.ce-create-stepper {
    gap: 7px;
    margin-bottom: 14px;
}

.ce-create-stepper li {
    min-width: 0;
    gap: 7px;
    border-top: 2px solid #dfe6ef;
    padding-top: 9px;
    font-size: var(--font-caption);
}

.ce-create-stepper li > span {
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    font-size: var(--font-caption);
}

.ce-create-stepper li.is-active,
.ce-create-stepper li.is-complete {
    border-color: #2878e3;
}

.ce-create-stepper li.is-complete {
    color: #2464b9;
}

.ce-create-stepper li.is-complete > span {
    background: #e5f0ff;
    color: #175cb8;
}

.ce-create-source,
.ce-create-details,
.ce-create-requirements-step,
.ce-create-confirm-step {
    margin-bottom: 14px;
    border: 1px solid #dfe6ef;
    border-radius: 14px;
    padding: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(19, 47, 84, 0.04);
}

.ce-create-requirements-step .fp-practice-requirements {
    margin: 0;
}

.ce-create-review {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.ce-create-review article {
    overflow: hidden;
    border: 1px solid #dfe7f2;
    border-radius: 13px;
    background: #f9fbfe;
}

.ce-create-review article > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #e4eaf2;
    padding: 12px 15px;
    background: #ffffff;
}

.ce-create-review h3 {
    margin: 0;
    color: #18365c;
    font-size: var(--font-caption);
}

.ce-create-review button {
    min-width: 72px;
    min-height: 44px;
    border: 1px solid #bfd0e6;
    border-radius: 10px;
    padding: 0 12px;
    background: #eef5ff;
    color: #175cb8;
    font-size: var(--font-label);
    font-weight: 700;
    cursor: pointer;
}

.ce-create-review dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
}

.ce-create-review dl > div {
    min-width: 0;
    padding: 12px 15px;
}

.ce-create-review dl > div.is-wide {
    grid-column: 1 / -1;
}

.ce-create-review dt {
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ce-create-review dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
    color: #182b47;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-create-step-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 18px;
    border-top: 1px solid #e8edf3;
    padding-top: 14px;
}

.ce-create-step-actions.is-forward {
    justify-content: flex-end;
}

.ce-create-step-actions .ce-ui-button,
.ce-create-confirm-step .fp-practice-create-actions > :where(button, a) {
    min-height: 44px;
}

.fp-review-learning-monitor {
    padding: 0;
}

.fp-review-learning-monitor > summary {
    min-height: 64px;
    align-items: center;
    padding: 13px 17px;
    cursor: pointer;
    list-style: none;
}

.fp-review-learning-monitor > summary > div {
    min-width: 0;
}

.fp-review-learning-monitor > summary h2 {
    font-size: var(--font-label);
}

.fp-review-learning-monitor > summary span:not(.fp-review-learning-toggle) {
    margin-top: 3px;
    font-size: var(--font-caption);
}

.fp-review-learning-body {
    padding: 16px;
}

.ce-kpi-page {
    padding-bottom: 42px;
}

.ce-kpi-hero {
    min-height: 140px;
    align-items: center;
    border-radius: 18px;
    padding: 26px 30px;
    box-shadow: 0 14px 34px rgba(17, 49, 86, 0.12);
}

.ce-kpi-eyebrow {
    margin-bottom: 8px;
    font-size: var(--font-caption);
}

.ce-kpi-hero h1 {
    font-size: clamp(32px, 3.3vw, 42px);
}

.ce-kpi-hero p {
    margin-top: 9px;
    font-size: var(--font-body);
    line-height: 1.45;
}

.ce-kpi-freshness {
    flex-basis: min(300px, 32%);
    border-radius: 13px;
    padding: 12px 14px;
}

.ce-kpi-tabs {
    margin-top: 16px;
}

.ce-kpi-tabs a {
    padding: 12px 16px;
}

.ce-kpi-filters {
    margin: 14px 0;
    border-radius: 14px;
    padding: 12px;
}

.ce-kpi-metric-grid {
    gap: 10px;
    margin: 14px 0;
}

.ce-kpi-metric-card {
    min-height: 104px;
    gap: 7px;
    border-radius: 14px;
    padding: 15px;
    box-shadow: var(--shadow-soft);
}

.ce-kpi-metric-card > strong {
    font-size: clamp(23px, 2vw, 29px);
}

.ce-kpi-panel {
    border-radius: 14px;
    box-shadow: var(--shadow-soft);
}

.ce-kpi-panel > header {
    padding: 17px 18px 0;
}

.ce-kpi-line-chart {
    min-height: 190px;
}

.ce-kpi-insights-body {
    padding: 0 14px 14px;
}

.ce-kpi-insights .ce-kpi-analysis-grid {
    margin-top: 14px;
}

.ce-account-shell .fp-access-topbar {
    min-height: 62px;
    padding: 0;
}

.fp-access-topbar h1 {
    font-size: var(--font-title-small);
}

.ce-account-shell .fp-access-main {
    gap: 12px;
    padding-bottom: 36px;
}

.fp-access-kpis {
    gap: 10px;
}

.fp-access-kpis article {
    min-height: 86px;
    gap: 12px;
    border-radius: 12px;
    padding: 13px 15px;
}

.fp-access-kpi-icon {
    width: 42px;
    height: 42px;
}

.fp-access-filters {
    gap: 10px;
    padding: 12px;
}

.fp-access-table {
    min-width: 0;
}

.fp-access-table th,
.fp-access-table td {
    padding: 11px 12px;
}

.fp-access-activity strong,
.fp-access-activity small {
    display: block;
}

.fp-access-activity strong {
    color: #263a59;
    font-size: var(--font-caption);
}

.fp-access-activity small {
    margin-top: 4px;
    color: var(--muted);
    line-height: 1.35;
}

@media (max-width: 1280px) {
    .ce-account-management > .ce-account-management-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 1024px) {
    .ce-account-sidebar {
        width: min(84vw, 300px);
    }

    .ce-account-navigation {
        overflow-y: auto;
    }
}

@media (max-width: 720px) {
    .ce-account-dashboard,
    .ce-account-shell .fp-review-main,
    .ce-account-shell .policy-main,
    .ce-account-shell .ce-agenda-main,
    .ce-account-shell .ce-studio-calendar,
    .ce-account-shell .fp-access-topbar,
    .ce-account-shell .fp-access-main,
    .ce-kpi-page {
        width: min(100% - 24px, 1320px);
    }

    .ce-account-mobilebar {
        min-height: 58px;
        padding: 8px 12px;
    }

    .ce-account-hero,
    .ce-notifications-hero,
    .ce-kpi-hero {
        gap: 15px;
        border-radius: 15px;
        padding: 21px 19px;
    }

    .ce-account-hero h1,
    .ce-notifications-hero h1,
    .ce-kpi-hero h1 {
        font-size: clamp(28px, 8vw, 34px);
    }

    .ce-account-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-account-kpis article,
    .ce-account-kpis > a {
        min-height: 86px;
    }

    .ce-account-panel,
    .ce-create-source,
    .ce-create-details,
    .ce-create-requirements-step,
    .ce-create-confirm-step {
        padding: 15px;
    }

    .ce-create-stepper {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ce-create-stepper li {
        display: grid;
        justify-items: center;
        gap: 5px;
        text-align: center;
    }

    .ce-create-stepper li strong {
        overflow: hidden;
        font-size: var(--font-caption);
        line-height: 1.2;
        text-overflow: ellipsis;
    }

    .ce-create-review dl {
        grid-template-columns: 1fr;
    }

    .ce-create-review dl > div.is-wide {
        grid-column: auto;
    }

    .ce-create-step-actions,
    .ce-create-confirm-step .fp-practice-create-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-create-step-actions.is-forward > *,
    .ce-create-confirm-step .fp-practice-create-actions > [data-fp-practice-create-status],
    .ce-create-confirm-step .fp-practice-created-actions {
        grid-column: 1 / -1;
    }

    .ce-create-step-actions .ce-ui-button,
    .ce-create-confirm-step .fp-practice-create-actions > :where(button, a) {
        width: 100%;
        justify-content: center;
    }

    .ce-kpi-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ce-kpi-metric-card {
        min-height: 96px;
    }

    .ce-kpi-line-chart {
        min-width: 0;
        min-height: 170px;
    }

    .ce-kpi-chart-panel {
        overflow: hidden;
    }

    .fp-access-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-access-kpis article {
        min-height: 82px;
    }

    .fp-access-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fp-access-filters .fp-access-search {
        grid-column: 1 / -1;
    }

    .fp-access-table-wrap {
        overflow: visible;
    }

    .fp-access-table,
    .fp-access-table tbody,
    .fp-access-table tr,
    .fp-access-table td {
        display: block;
        width: 100%;
    }

    .fp-access-table thead {
        display: none;
    }

    .fp-access-table tbody {
        display: grid;
        gap: 10px;
        padding: 10px;
    }

    .fp-access-table tr {
        overflow: hidden;
        border: 1px solid #dce4ef;
        border-radius: 12px;
        background: #fff;
    }

    .fp-access-table td {
        display: grid;
        min-height: 42px;
        grid-template-columns: minmax(88px, 0.7fr) minmax(0, 1.3fr);
        gap: 12px;
        align-items: center;
        border-bottom: 1px solid #edf1f6;
        padding: 9px 11px;
        text-align: right;
    }

    .fp-access-table td:last-child {
        border-bottom: 0;
    }

    .fp-access-table td::before {
        color: #6e7d91;
        content: attr(data-label);
        font-size: var(--font-caption);
        font-weight: 700;
        letter-spacing: 0.05em;
        text-align: left;
        text-transform: uppercase;
    }

    .fp-access-table td:first-child a,
    .fp-access-table td:first-child small,
    .fp-access-activity strong,
    .fp-access-activity small {
        text-align: right;
    }
}

@media (max-width: 480px) {
    .ce-account-management > summary,
    .ce-kpi-insights > summary,
    .fp-review-learning-monitor > summary {
        align-items: flex-start;
    }

    .ce-account-management-summary-state,
    .ce-kpi-insights > summary > span:last-child,
    .fp-review-learning-toggle {
        min-height: 28px;
        padding-inline: 8px;
    }

    .ce-kpi-metric-card > span {
        font-size: var(--font-caption);
    }

    .fp-access-topbar {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        padding-block: 12px !important;
    }

    .fp-access-filters {
        grid-template-columns: minmax(0, 1fr);
    }

.fp-access-filters .fp-access-search {
        grid-column: auto;
    }
}

/* Keep integration drawers above legacy inline-panel rules. */
.ce-new-connection > .ce-integration-path-panel {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, 720px);
    margin: 0;
    border: 0;
    padding: 0;
    background: transparent;
}

.ce-new-connection > .ce-integration-path-panel[hidden] { display: none !important; }

@media (max-width: 900px) {
    .ce-new-connection > .ce-integration-path-panel {
        grid-template-columns: minmax(0, 1fr);
        padding-top: max(24px, env(safe-area-inset-top));
    }
}

/* Studio KPI: Automatic AI journey funnel. */
.ce-kpi-method-chip {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    background: #edf4ff;
    color: #175cb8;
    font-size: var(--font-caption);
    font-weight: 700;
    text-align: center;
}

.ce-kpi-vp-funnel-panel,
.ce-kpi-vp-outcomes-panel,
.ce-kpi-vp-trend-panel {
    margin-top: 14px;
    overflow: hidden;
}

.ce-kpi-vp-funnel {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 16px 18px 20px;
    list-style: none;
}

.ce-kpi-vp-funnel li {
    display: grid;
    grid-template-columns: 38px minmax(190px, .9fr) minmax(240px, 1.5fr) minmax(210px, 1fr);
    gap: 12px;
    align-items: center;
    border-bottom: 1px solid #edf1f6;
    padding: 14px 4px;
}

.ce-kpi-vp-funnel li:last-child { border-bottom: 0; }
.ce-kpi-vp-step { display: grid; width: 31px; height: 31px; place-items: center; border: 1px solid #bad0ed; border-radius: 10px; background: #eff6ff; color: #175cb8; font-size: var(--font-caption); font-weight: 700; }
.ce-kpi-vp-stage-copy { display: grid; gap: 3px; }
.ce-kpi-vp-stage-copy strong { color: #17365d; font-size: var(--font-caption); }
.ce-kpi-vp-stage-copy small { color: var(--muted); font-size: var(--font-caption); font-weight: 700; }
.ce-kpi-vp-stage-track { display: block; height: 12px; overflow: hidden; border: 1px solid #dce6f1; border-radius: 999px; background: #f1f5f9; }
.ce-kpi-vp-stage-track i { display: block; min-width: 0; height: 100%; border-radius: inherit; background: #2878e3; box-shadow: inset 0 0 0 1px rgba(14, 60, 117, .12); }
.ce-kpi-vp-funnel li:nth-child(2n) .ce-kpi-vp-stage-track i { background: #139d96; }
.ce-kpi-vp-stage-rates { display: flex; flex-wrap: wrap; gap: 5px 9px; color: #65758b; font-size: var(--font-caption); font-weight: 700; }
.ce-kpi-vp-stage-rates span:first-child { color: #245f9f; font-weight: 700; }

.ce-kpi-vp-summary-grid,
.ce-kpi-vp-segments {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.ce-kpi-vp-timings,
.ce-kpi-vp-rates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 16px 18px 20px;
}

.ce-kpi-vp-timings > div,
.ce-kpi-vp-rates > div {
    display: grid;
    min-height: 104px;
    align-content: space-between;
    gap: 7px;
    border: 1px solid #e1e8f1;
    border-radius: 13px;
    padding: 14px;
    background: #f9fbfe;
}

.ce-kpi-vp-timings dt,
.ce-kpi-vp-rates dt { color: #65758b; font-size: var(--font-caption); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ce-kpi-vp-timings dd,
.ce-kpi-vp-rates dd { margin: 0; color: #15365e; font-size: 25px; font-weight: 700; letter-spacing: -.035em; }
.ce-kpi-vp-timings small,
.ce-kpi-vp-rates small { display: block; margin-top: 7px; color: var(--muted); font-size: var(--font-caption); font-weight: 400; letter-spacing: normal; line-height: 1.35; }

.ce-kpi-vp-outcomes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 16px 18px 20px;
}

.ce-kpi-vp-outcomes article { border: 1px solid #e0e8f2; border-radius: 14px; padding: 16px; background: #fbfcfe; }
.ce-kpi-vp-outcomes h3 { min-height: 36px; margin: 0; color: #19395f; font-size: var(--font-caption); line-height: 1.35; }
.ce-kpi-vp-outcomes dl { display: grid; gap: 8px; margin: 14px 0 0; }
.ce-kpi-vp-outcomes dl div { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #e8edf4; padding-top: 8px; }
.ce-kpi-vp-outcomes dt { color: #66768b; font-size: var(--font-caption); }
.ce-kpi-vp-outcomes dd { margin: 0; color: #17365d; font-size: var(--font-label); font-weight: 700; }

.ce-kpi-line-chart polyline.is-dashed { stroke-dasharray: 9 6; }
.ce-kpi-line-chart polyline.is-dotted { stroke-dasharray: 2 6; }
.ce-kpi-line-chart polyline.is-gold { stroke: #c67a12; }
.ce-kpi-legend span.is-gold::before { border-radius: 2px; background: #c67a12; }
.ce-kpi-legend span.is-dashed::before { height: 3px; border-radius: 0; }
.ce-kpi-legend span.is-dotted::before { width: 8px; height: 8px; border: 2px solid #c67a12; background: transparent; }

.ce-kpi-vp-segment-panel { min-width: 0; overflow: hidden; }
.ce-kpi-vp-segment-list { display: grid; padding: 14px 18px 18px; }
.ce-kpi-vp-segment-list > div { display: grid; grid-template-columns: minmax(150px, 1.6fr) repeat(3, minmax(74px, .6fr)); gap: 10px; align-items: center; border-bottom: 1px solid #edf1f6; padding: 10px 4px; color: #4f6178; font-size: var(--font-caption); text-align: right; }
.ce-kpi-vp-segment-list > div:last-child { border-bottom: 0; }
.ce-kpi-vp-segment-list > div > :first-child { min-width: 0; overflow: hidden; color: #223c5f; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.ce-kpi-vp-segment-list .is-heading { color: var(--muted); font-size: var(--font-caption); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ce-kpi-vp-segment-list .is-heading > :first-child { color: var(--muted); }
.ce-kpi-vp-methodology-body { display: grid; gap: 9px; padding: 15px 18px 18px; }
.ce-kpi-vp-methodology-body p { margin: 0; color: #586a80; font-size: var(--font-body); line-height: 1.55; }

@media (max-width: 980px) {
    .ce-kpi-vp-funnel li { grid-template-columns: 38px minmax(180px, 1fr) minmax(210px, 1.4fr); }
    .ce-kpi-vp-stage-rates { grid-column: 2 / -1; }
    .ce-kpi-vp-outcomes { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .ce-kpi-vp-summary-grid,
    .ce-kpi-vp-segments { grid-template-columns: 1fr; }
    .ce-kpi-vp-funnel li { grid-template-columns: 36px minmax(0, 1fr); }
    .ce-kpi-vp-stage-track,
    .ce-kpi-vp-stage-rates { grid-column: 2; }
    .ce-kpi-vp-funnel-panel > header .ce-kpi-method-chip { align-self: flex-start; }
}

@media (max-width: 560px) {
    .ce-kpi-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
    .ce-kpi-tabs a { min-width: 0; padding-inline: 5px; font-size: var(--font-caption); }
    [data-qa="studio-kpi-vp"] .ce-kpi-metric-grid,
    .ce-kpi-vp-timings,
    .ce-kpi-vp-rates { grid-template-columns: 1fr; }
    .ce-kpi-vp-funnel { padding-inline: 12px; }
    .ce-kpi-vp-segment-list { padding-inline: 12px; }
    .ce-kpi-vp-segment-list > div { grid-template-columns: minmax(0, 1fr) repeat(3, 54px); gap: 5px; min-width: 0; font-size: var(--font-caption); }
    .ce-kpi-vp-segment-list .is-heading { font-size: var(--font-caption); letter-spacing: 0; }
}
/* Practice intake and channeling */
.ce-button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.45rem;border:1px solid transparent;border-radius:.75rem;padding:.68rem 1rem;font:inherit;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.ce-button:hover{transform:translateY(-1px)}.ce-button-primary{border-color:#245de0;background:linear-gradient(135deg,#356ff5,#2459d8);color:#fff;box-shadow:0 10px 24px rgba(42,95,224,.22)}.ce-button-ghost{border-color:#ccd7e8;background:#fff;color:#27446e}.ce-button-ghost:hover{background:#f3f7fd}.ce-inline-actions form{margin:0}
.ce-intake-page{display:grid;width:min(1320px,calc(100% - 40px));margin:0 auto;padding:24px 0 36px;gap:1.25rem}.ce-intake-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.ce-intake-metric{position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;min-height:7rem;padding:1.15rem 1.25rem;border:1px solid rgba(43,67,102,.12);border-radius:1.25rem;background:linear-gradient(145deg,#fff,#f4f8ff);box-shadow:0 18px 45px rgba(34,54,87,.08)}.ce-intake-metric:before{content:"";position:absolute;inset:auto -2rem -3rem auto;width:8rem;height:8rem;border-radius:50%;background:rgba(46,103,248,.08)}.ce-intake-metric span{max-width:9rem;color:#5d6b82;font-size:var(--font-caption);font-weight:700}.ce-intake-metric strong{font-size:2.25rem;line-height:1.2;color:#17233b}.ce-intake-filters,.ce-form-split,.ce-inline-actions{display:flex;align-items:flex-end;gap:.85rem;flex-wrap:wrap}.ce-intake-filters label{flex:1 1 13rem}.ce-intake-filter-panel{padding:1rem 1.15rem}.ce-intake-table td:first-child strong,.ce-intake-table td:first-child small,.ce-rule-set td strong,.ce-rule-set td small{display:block}.ce-intake-table td:first-child small,.ce-rule-set td small{margin-top:.2rem;color:var(--muted)}.ce-status-pill{display:inline-flex;align-items:center;width:max-content;padding:.35rem .65rem;border-radius:999px;background:#eef2f7;color:#41506a;font-size:var(--font-caption);font-weight:700;letter-spacing:.02em}.ce-status-pill.is-success,.ce-status-pill.is-channeled,.ce-status-pill.is-published{background:#e4f8ee;color:#12623f}.ce-status-pill.is-warning,.ce-status-pill.is-missing_data,.ce-status-pill.is-manual_decision,.ce-status-pill.is-draft{background:#fff3d9;color:#855710}.ce-status-pill.is-review_required{background:#f0e9ff;color:#6541a4}.ce-status-pill.is-technical_error{background:#ffe8e6;color:#9a322a}.ce-intake-admin-grid,.ce-intake-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.ce-form-stack{display:grid;gap:.95rem}.ce-form-stack label{display:grid;gap:.42rem;color:#344159;font-weight:700}.ce-form-stack input,.ce-form-stack select,.ce-form-stack textarea,.ce-task-row input{width:100%;padding:.75rem .85rem;border:1px solid #cdd6e4;border-radius:.75rem;background:#fff;color:#17233b;font:inherit}.ce-form-stack textarea{resize:vertical}.ce-form-stack .ce-check,.ce-check{display:flex;grid-template-columns:none;align-items:flex-start;gap:.65rem;font-weight:600}.ce-check input{width:auto;margin-top:.2rem}.ce-compact-list,.ce-check-list{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}.ce-compact-list li{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid #e9edf3}.ce-check-list li{position:relative;padding:.7rem .8rem .7rem 2.2rem;border-radius:.75rem;background:#f6f8fb}.ce-check-list li:before{content:"";position:absolute;left:.85rem;top:1rem;width:.55rem;height:.55rem;border-radius:50%;background:#d99b27}.ce-check-list.is-warning li:before{background:#7952c7}.ce-intake-summary-card{display:grid;align-content:start;gap:1rem}.ce-intake-summary-card dl{display:grid;gap:.1rem;margin:0}.ce-intake-summary-card dl div{display:grid;grid-template-columns:minmax(7rem,.7fr) 1.4fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid #e9edf3}.ce-intake-summary-card dt{color:var(--muted)}.ce-intake-summary-card dd{margin:0;font-weight:700}.ce-callout{display:grid;gap:.25rem;margin-top:1rem;padding:1rem;border-radius:.9rem}.ce-callout.is-success{background:#e8f8ef;color:#155d40}.ce-task-list{display:grid;gap:.75rem}.ce-task-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #e3e9f2;border-radius:1rem;background:#fbfcfe}.ce-task-row>div,.ce-task-row>div span{display:grid;gap:.2rem}.ce-task-row>div span{color:#66738a;font-size:var(--font-caption)}.ce-task-row form{display:flex;gap:.6rem;align-items:center}.ce-treatment-diary{position:relative;display:grid;gap:0;margin:0;padding:0;list-style:none}.ce-treatment-diary:before{content:"";position:absolute;left:8.45rem;top:.8rem;bottom:.8rem;width:2px;background:#e3e8f1}.ce-treatment-diary li{position:relative;display:grid;grid-template-columns:7.4rem 1fr;gap:2rem;padding:.9rem 0}.ce-treatment-diary li:before{content:"";position:absolute;left:8.12rem;top:1.25rem;width:.7rem;height:.7rem;border:3px solid #fff;border-radius:50%;background:#2e67f8;box-shadow:0 0 0 1px #cad5e7}.ce-treatment-diary time{color:#718097;font-size:var(--font-caption)}.ce-treatment-diary p{margin:.3rem 0;color:#536078}.ce-treatment-diary small{color:#7a879a}.ce-rule-set-list{display:grid;gap:1.25rem}.ce-rule-set code{display:block;max-width:34rem;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--font-caption)}.ce-publish-rule-form{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e4eaf2}.ce-public-completion{min-height:100vh;padding:clamp(1rem,4vw,4rem);background:radial-gradient(circle at 20% 0,#e9f1ff 0,transparent 38%),linear-gradient(145deg,#f7f9fc,#eef3f9);color:#17233b}.ce-public-completion-card{width:min(48rem,100%);margin:0 auto;padding:clamp(1.35rem,4vw,3rem);border:1px solid rgba(44,70,108,.12);border-radius:1.5rem;background:rgba(255,255,255,.96);box-shadow:var(--shadow-soft)}.ce-public-completion-card h1{margin:.55rem 0 .7rem;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.2}.ce-public-completion-card .ce-form-stack{margin-top:1.5rem}.ce-privacy-note{margin:1.2rem 0 0;color:#69768a;font-size:var(--font-caption);text-align:center}
@media(max-width:900px){.ce-intake-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ce-intake-admin-grid,.ce-intake-detail-grid{grid-template-columns:1fr}.ce-publish-rule-form{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.ce-intake-metrics{grid-template-columns:1fr 1fr;gap:.65rem}.ce-intake-metric{min-height:5.8rem;padding:.85rem}.ce-intake-metric strong{font-size:1.7rem}.ce-intake-filters,.ce-form-split{display:grid;grid-template-columns:1fr;width:100%}.ce-intake-filters label{width:100%}.ce-task-row,.ce-task-row form{align-items:stretch;flex-direction:column}.ce-treatment-diary:before{left:.35rem}.ce-treatment-diary li{grid-template-columns:1fr;gap:.35rem;padding-left:1.5rem}.ce-treatment-diary li:before{left:0;top:1.2rem}.ce-treatment-diary time{order:2}.ce-public-completion{padding:.65rem}.ce-public-completion-card{padding:1.2rem;border-radius:1rem}}
.ce-rule-condition-builder,.ce-rule-requirements{display:grid;gap:.75rem;margin:0;border:1px solid #dde5f0;border-radius:1rem;padding:1rem}.ce-rule-condition-builder legend,.ce-rule-requirements legend{padding:0 .4rem;color:#263651;font-weight:700}.ce-rule-condition-row{display:grid;grid-template-columns:1.15fr 1.15fr 1.7fr;gap:.7rem;padding:.8rem;border-radius:.8rem;background:#f7f9fc}.ce-rule-requirements{grid-template-columns:repeat(2,minmax(0,1fr))}.ce-rule-requirements legend{grid-column:1/-1}.ce-form-stack label small{color:var(--muted);font-size:var(--font-caption);font-weight:500}@media(max-width:720px){.ce-rule-condition-row,.ce-rule-requirements{grid-template-columns:1fr}}
.ce-intake-filters label{display:grid;gap:.4rem;color:#344159;font-weight:700}.ce-intake-filters input,.ce-intake-filters select{width:100%;min-height:2.75rem;border:1px solid #cdd6e4;border-radius:.75rem;padding:.65rem .8rem;background:#fff;color:#17233b;font:inherit}
@media(max-width:720px){.ce-intake-page{width:min(1320px,calc(100% - 24px));padding-top:12px}}

/* Account dashboard command center */
body[data-route="studio/dashboard"] .ce-account-workspace { position: relative; }
.ce-account-dashboard { display: grid; width: min(1680px, calc(100% - 48px)); gap: 18px; padding-top: 26px; }
.ce-account-dashboard .ce-account-hero { display: block; min-height: 0; padding: 0 90px 4px 2px; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #10213e; }
.ce-account-dashboard .ce-account-hero::after { display: none; }
.ce-account-dashboard .ce-account-hero-copy { display: grid; justify-items: start; gap: 5px; margin: 0; padding: 0; }
.ce-account-dashboard .ce-account-eyebrow { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #17345e; font-size: var(--font-label); font-weight: 700; letter-spacing: 0; line-height: 1.2; text-transform: none; }
.ce-account-dashboard .ce-account-hero h1 { margin: 0; color: #10213e; font-size: var(--font-title); line-height: 1.2; }
.ce-account-dashboard .ce-account-hero p { display: none; }
.ce-account-dashboard .ce-account-hero-identity { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #4c5e79; font-size: var(--font-label); line-height: 1.4; }
.ce-account-dashboard .ce-account-hero-identity span,
.ce-account-dashboard .ce-account-hero-identity strong { display: inline; color: inherit; font-size: inherit; font-weight: 400; letter-spacing: 0; text-transform: none; }
.ce-account-dashboard .ce-account-hero-identity strong::before { content: "·"; margin-right: 6px; }
.ce-dashboard-notifications { position: absolute; z-index: 2; top: 26px; right: 24px; display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; border: 1px solid #dce4ef; border-radius: 12px; background: #fff; color: #073c91; }
.ce-dashboard-notifications svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ce-dashboard-notifications strong { position: absolute; top: -5px; right: -4px; border-radius: 20px; padding: 3px 5px; background: #cf2017; color: #fff; font-size: var(--font-caption); line-height: 1.2; }
@media (max-width: 1024px) {
    .ce-dashboard-notifications { display: none; }
}
.ce-account-dashboard .ce-account-task-kpis { overflow: visible; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.ce-account-dashboard .ce-account-task-kpis > a { position: relative; min-width: 0; min-height: 92px; gap: 14px; padding: 16px 32px 16px 16px; border: 1px solid #dce4ef; border-radius: 12px; background: #fff; box-shadow: none; }
.ce-account-dashboard .ce-account-task-kpis > a:hover { background: #f8faff; border-color: #b8cbea; transform: translateY(-1px); }
.ce-account-dashboard .ce-account-task-kpis > a::after,
.ce-account-dashboard .ce-account-action-grid > a::after { position: absolute; right: 18px; top: 50%; width: 7px; height: 7px; border-top: 1.5px solid #496180; border-right: 1.5px solid #496180; transform: rotate(45deg); content: ""; }
.ce-account-dashboard .ce-account-task-kpis > a > div { min-width: 0; gap: 6px; }
.ce-account-dashboard .ce-account-task-kpis > a > div > span { color: #52627d; font-size: var(--font-label); line-height: 1.3; }
.ce-account-dashboard .ce-account-task-kpis > a strong { color: #10213e; font-size: 29px; line-height: 1.2; }
.ce-account-dashboard .ce-account-kpi-icon { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 13px; }
.ce-account-dashboard .ce-account-dashboard-grid--overview { grid-template-columns: minmax(0, 2fr) minmax(360px, 1fr); align-items: stretch; gap: 18px; margin: 0; }
.ce-account-dashboard .ce-account-panel { min-width: 0; border-color: #dce4ef; border-radius: 13px; background: #fff; box-shadow: none; }
.ce-account-dashboard .ce-account-priority { overflow: visible; margin: 0; padding: 0 16px; }
.ce-account-dashboard .ce-account-priority > .ce-account-panel-head { min-height: 82px; margin: 0; padding: 14px 0; border: 0; }
.ce-account-dashboard .ce-account-panel-head h2 { font-size: var(--font-section); line-height: 1.25; }
.ce-account-dashboard .ce-account-panel-head p { margin-top: 6px; color: #5e6f87; font-size: var(--font-body); line-height: 1.4; }
.ce-account-dashboard .ce-account-panel-head > a { flex: 0 0 auto; display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px 11px; font-size: var(--font-caption); white-space: nowrap; }
.ce-account-dashboard .ce-account-panel-head > .ce-account-priority-all-mobile { display: none; }
.ce-account-priority-all { gap: 4px; }
.ce-account-priority-footer { display: flex; min-height: 56px; align-items: center; justify-content: center; gap: 8px; padding: 10px 12px; border-top: 1px solid #e7edf5; color: #073c91; font-size: var(--font-label); font-weight: 600; line-height: 1.4; text-decoration: none; }
.ce-account-priority-footer > svg { display: block; flex: 0 0 18px; width: 18px; height: 18px; }
.ce-account-priority-footer:hover { background: #f5f8fc; }
.ce-dashboard-task-head,
.ce-account-dashboard .ce-dashboard-task-row { display: grid; grid-template-columns: minmax(156px, 1.05fr) minmax(126px, 1.4fr) minmax(115px, 1.25fr) minmax(94px, 1fr) minmax(104px, .85fr) 64px; align-items: center; gap: 10px; }
.ce-dashboard-task-head { min-height: 42px; padding: 9px 0; border-block: 1px solid #e7edf5; background: #fff; color: #405573; font-size: var(--font-caption); font-weight: 600; letter-spacing: 0; text-transform: none; }
.ce-account-dashboard .ce-dashboard-task-list { gap: 0; }
.ce-account-dashboard .ce-dashboard-task-row { position: relative; min-height: 78px; padding: 13px 0; border: 0; border-bottom: 1px solid #e7edf5; border-radius: 0; background: #fff; }
.ce-account-dashboard .ce-dashboard-task-row:last-child { border-bottom: 0; }
.ce-account-dashboard .ce-dashboard-task-row > .ce-ui-badge { display: inline-flex; align-items: center; gap: 7px; width: fit-content; max-width: 100%; min-height: 32px; margin: 0; padding: 6px 9px; border-radius: 6px; font-size: var(--font-caption); line-height: 1.4; white-space: normal; }
.ce-account-dashboard .ce-dashboard-task-row > .ce-ui-badge::before { content: ""; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: #2c91e8; }
.ce-account-dashboard .ce-dashboard-task-row.is-decision > .ce-ui-badge::before { background: #d92d20; }
.ce-account-dashboard .ce-dashboard-task-row.is-blocked > .ce-ui-badge::before { background: #f79009; }
.ce-account-dashboard .ce-dashboard-task-practice,
.ce-account-dashboard .ce-dashboard-task-action { min-width: 0; }
.ce-account-dashboard .ce-dashboard-task-practice strong { color: #10213e; font-size: var(--font-label); }
.ce-account-dashboard .ce-dashboard-task-practice { display: block; font-size: var(--font-caption); line-height: 1.45; }
.ce-account-dashboard .ce-dashboard-task-practice strong,
.ce-account-dashboard .ce-dashboard-task-practice span { display: inline; overflow: visible; white-space: normal; overflow-wrap: anywhere; }
.ce-account-dashboard .ce-dashboard-task-practice span { color: #10213e; font-size: var(--font-caption); font-weight: 600; }
.ce-account-dashboard .ce-dashboard-task-practice span::before { content: " · "; }
.ce-account-dashboard .ce-dashboard-task-action strong { display: block; overflow: visible; color: #52627d; font-size: var(--font-caption); font-weight: 400; line-height: 1.45; white-space: normal; overflow-wrap: anywhere; }
.ce-account-dashboard .ce-dashboard-task-row dl { display: contents; }
.ce-account-dashboard .ce-dashboard-task-row dl > div { min-width: 0; }
.ce-account-dashboard .ce-dashboard-task-row dt { display: none; }
.ce-account-dashboard .ce-dashboard-task-row dd { margin: 0; color: #10213e; font-size: var(--font-caption); font-weight: 600; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
.ce-account-dashboard .ce-dashboard-task-row.is-decision dl > div:last-child dd { color: #c52419; }
.ce-account-dashboard .ce-dashboard-task-row > .ce-ui-button { width: 64px; min-height: 44px; padding: 8px; border-radius: 8px; background: #083980; font-size: var(--font-label); }
.ce-account-dashboard-rail { display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 18px; min-width: 0; }
.ce-account-dashboard-rail .ce-account-recent,
.ce-account-dashboard-rail .ce-account-quick-actions { padding: 16px; }
.ce-account-dashboard-rail .ce-account-panel-head { align-items: center; margin: 0 0 12px; }
.ce-account-dashboard-rail .ce-account-recent .ce-account-panel-head p { display: none; }
/* Reset inherited unassigned margins and mobile grid placement explicitly.
   All recent-row children have named areas; actions cannot spill outside the row. */
.ce-account-dashboard-rail .ce-account-practice-list { display: grid; gap: 0; margin: 0; border: 1px solid #e1e7f0; border-radius: 12px; overflow: hidden; }
.ce-account-dashboard-rail .ce-account-practice-list article,
.ce-account-dashboard-rail .ce-account-practice-list article.is-unassigned { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto 28px; grid-template-areas: "mode details status open"; min-width: 0; min-height: 92px; align-items: center; gap: 8px; margin: 0; padding: 12px 8px; border: 0; border-top: 1px solid #e7edf5; border-radius: 0; background: #fff; }
.ce-account-dashboard-rail .ce-account-practice-list article:first-child { border-top: 0; }
.ce-account-dashboard-rail .ce-account-practice-list article > .ce-collection-mode-icon,
.ce-account-dashboard-rail .ce-account-practice-list article > .ce-account-practice-mark { grid-area: mode; width: 8px; height: 8px; min-width: 0; margin: 0; border: 0; border-radius: 50%; background: #8652e8; box-shadow: none; }
.ce-account-dashboard-rail .ce-account-practice-list .ce-collection-mode-icon > svg { display: none; }
.ce-account-dashboard-rail .ce-account-practice-list article > div { grid-area: details; display: grid; min-width: 0; gap: 3px; }
.ce-account-dashboard-rail .ce-account-practice-list article > div > strong { overflow: visible; color: #10213e; font-size: var(--font-caption); line-height: 1.35; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.ce-account-dashboard-rail .ce-account-practice-list article > div span { overflow: visible; color: #53637d; font-size: var(--font-caption); line-height: 1.4; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.ce-account-dashboard-rail .ce-account-practice-list .ce-account-practice-parties { display: grid; gap: 2px; }
.ce-account-dashboard-rail .ce-account-practice-parties b { color: #293e60; font-weight: 600; }
.ce-account-dashboard-rail .ce-account-practice-parties > span + span { display: none; }
.ce-account-dashboard-rail .ce-account-unassigned-badge { display: none; }
.ce-account-dashboard-rail .ce-account-practice-list .ce-account-status { grid-area: status; max-width: 104px; width: fit-content; padding: 5px 7px; font-size: var(--font-caption); line-height: 1.3; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.ce-account-dashboard-rail .ce-account-practice-list article > a { grid-area: open; width: 28px; min-width: 0; height: 44px; border: 0; border-radius: 6px; background: transparent; }
.ce-account-dashboard-rail .ce-account-practice-list article > a:hover { background: #edf3ff; }
.ce-account-dashboard-rail .ce-account-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 0; }
.ce-account-dashboard-rail .ce-account-action-grid > a,
.ce-account-dashboard-rail .ce-account-action-grid > a:last-child:nth-child(odd) { position: relative; grid-template-columns: minmax(0, 1fr); grid-column: auto; align-content: start; min-height: 138px; gap: 7px; padding: 13px 24px 13px 13px; border-radius: 12px; background: #fff; }
.ce-account-dashboard-rail .ce-account-action-grid > a > span { grid-row: auto; width: 36px; height: 36px; }
.ce-account-dashboard-rail .ce-account-action-grid strong { font-size: var(--font-caption); line-height: 1.35; }
.ce-account-dashboard-rail .ce-account-action-grid small { overflow: visible; color: #52627d; font-size: var(--font-caption); line-height: 1.4; overflow-wrap: anywhere; white-space: normal; }
.ce-account-dashboard .ce-account-action-grid > a::after { right: 13px; }
.ce-account-dashboard .ce-account-operational-context { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 18px 36px; min-height: 58px; margin: 0; padding: 12px 22px; border: 1px solid #dce4ef; border-radius: 12px; background: #fff; box-shadow: none; }
.ce-account-dashboard .ce-account-operational-context span { color: #52627d; font-size: var(--font-caption); }
.ce-account-dashboard .ce-account-operational-context b { color: #10213e; font-size: var(--font-body); }

@media (min-width: 981px) {
    body[data-route="studio/dashboard"] .ce-account-shell:not(.is-nav-collapsed) { grid-template-columns: 264px minmax(0, 1fr); }
    body[data-route="studio/dashboard"] .ce-account-shell:not(.is-nav-collapsed) .ce-account-sidebar { width: 264px; }
    body[data-route="studio/dashboard"] .ce-account-shell .ce-account-nav-link { font-size: var(--font-label); }
}
@media (max-width: 1535px) and (min-width: 721px) {
    .ce-account-dashboard .ce-account-dashboard-grid--overview { grid-template-columns: 1fr; }
    .ce-account-dashboard-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 981px) and (max-width: 1199px) {
    .ce-dashboard-task-head,
    .ce-account-dashboard .ce-dashboard-task-row { grid-template-columns: minmax(156px, 1fr) minmax(0, 1.4fr) minmax(94px, 1fr) 104px 64px; }
    .ce-dashboard-task-head > :nth-child(3),
    .ce-account-dashboard .ce-dashboard-task-action { display: none; }
}
@media (max-width: 980px) and (min-width: 721px) {
    .ce-account-dashboard-rail { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    body[data-route="studio/dashboard"] .ce-account-mobile-context > span { display: block; max-width: 150px; color: #29436a; font-size: var(--font-label); font-weight: 500; }
    .ce-account-dashboard { width: calc(100% - 24px); gap: 18px; padding-top: 0; }
    .ce-account-dashboard .ce-account-hero { position: relative; width: calc(100% + 24px); min-height: 104px; margin-inline: -12px; padding: 24px 18px; background: linear-gradient(110deg, #0c2249, #2058ac); color: #fff; }
    .ce-account-dashboard .ce-account-hero::after { display: block; position: absolute; width: 170px; height: 170px; top: -90px; right: -45px; border: 1px solid #ffffff26; border-radius: 50%; background: transparent; content: ""; }
    .ce-account-dashboard .ce-account-hero-copy { position: relative; z-index: 1; gap: 9px; }
    .ce-account-dashboard .ce-account-eyebrow { display: none; }
    .ce-account-dashboard .ce-account-hero h1 { color: #fff; font-size: 25px; }
    .ce-account-dashboard .ce-account-hero-identity { color: #fff; font-size: var(--font-caption); }
    .ce-account-dashboard .ce-account-task-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; overflow: hidden; border: 1px solid #dce4ef; border-radius: 12px; background: #fff; }
    .ce-account-dashboard .ce-account-task-kpis > a { min-height: 84px; gap: 12px; padding: 14px 12px; border: 0; border-radius: 0; }
    .ce-account-dashboard .ce-account-task-kpis > a::after { display: none; }
    .ce-account-dashboard .ce-account-task-kpis > a:nth-child(even) { border-left: 1px solid #e7edf5; }
    .ce-account-dashboard .ce-account-task-kpis > a:nth-child(n + 3) { border-top: 1px solid #e7edf5; }
    .ce-account-dashboard .ce-account-kpi-icon { width: 38px; height: 38px; flex-basis: 38px; }
    .ce-account-dashboard .ce-account-task-kpis > a > div > span { font-size: var(--font-caption); }
    .ce-account-dashboard .ce-account-task-kpis > a strong { font-size: 26px; }
    .ce-account-dashboard .ce-account-dashboard-grid--overview,
    .ce-account-dashboard-rail { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .ce-account-dashboard .ce-account-priority,
    .ce-account-dashboard-rail .ce-account-recent,
    .ce-account-dashboard-rail .ce-account-quick-actions { padding: 0; border: 0; border-radius: 0; background: transparent; }
    .ce-account-dashboard .ce-account-priority > .ce-account-panel-head,
    .ce-account-dashboard-rail .ce-account-panel-head { display: flex; flex-direction: row; align-items: center; justify-content: space-between; min-height: 44px; margin: 0 0 8px; padding: 0; }
    .ce-account-dashboard .ce-account-panel-head h2 { font-size: 19px; }
    .ce-account-dashboard .ce-account-priority > .ce-account-panel-head p,
    .ce-account-priority-all-desktop,
    .ce-account-priority-workspace,
    .ce-account-priority-footer,
    .ce-dashboard-task-head { display: none !important; }
    .ce-account-dashboard .ce-account-panel-head > .ce-account-priority-all-mobile { display: inline-flex; }
    .ce-account-priority-all-mobile > span { display: inline; }
    .ce-account-dashboard .ce-account-panel-head > a { border: 0; padding: 6px 0 6px 8px; background: transparent; font-size: var(--font-caption); }
    .ce-account-dashboard .ce-dashboard-task-list { gap: 10px; }
    .ce-account-dashboard .ce-dashboard-task-row { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 48px; grid-template-areas: "badge meta open" "practice meta open" "note meta open"; align-content: center; min-height: 142px; gap: 8px 10px; padding: 14px 10px 14px 13px; border: 1px solid #dce4ef; border-left-color: #4890df; border-radius: 12px; }
    .ce-account-dashboard .ce-dashboard-task-row:last-child { border-bottom: 1px solid #dce4ef; }
    .ce-account-dashboard .ce-dashboard-task-row.is-decision { border-left-color: #d92d20; }
    .ce-account-dashboard .ce-dashboard-task-row.is-blocked { border-left-color: #f79009; }
    .ce-account-dashboard .ce-dashboard-task-row > .ce-ui-badge { grid-area: badge; margin: 0; max-width: 100%; padding: 4px 7px; font-size: var(--font-caption); }
    .ce-account-dashboard .ce-dashboard-task-row > .ce-ui-badge::before { display: none; }
    .ce-account-dashboard .ce-dashboard-task-practice { grid-area: practice; }
    .ce-account-dashboard .ce-dashboard-task-practice strong { font-size: var(--font-label); }
    .ce-account-dashboard .ce-dashboard-task-practice span { font-size: var(--font-caption); }
    .ce-account-dashboard .ce-dashboard-task-action { grid-area: note; }
    .ce-account-dashboard .ce-dashboard-task-action strong { font-size: var(--font-caption); }
    .ce-account-dashboard .ce-dashboard-task-row dl { grid-area: meta; display: grid; grid-template-columns: minmax(0, 1fr); align-self: stretch; align-content: center; gap: 14px; margin: 0; }
    .ce-account-dashboard .ce-dashboard-task-row dt { display: block; margin: 0 0 4px; color: #64728b; font-size: var(--font-caption); font-weight: 500; line-height: 1.35; text-transform: none; overflow-wrap: anywhere; }
    .ce-account-dashboard .ce-dashboard-task-row dd,
    .ce-account-dashboard .ce-dashboard-task-row.is-decision dl > div:last-child dd { color: #10213e; font-size: var(--font-caption); font-weight: 400; }
    .ce-account-dashboard .ce-dashboard-task-row > .ce-ui-button { grid-area: open; width: 48px; min-height: 54px; padding: 8px 4px; border: 0; border-radius: 10px; background: #eff4ff; color: #06449c; font-size: var(--font-label); }
    .ce-account-dashboard .ce-account-priority .ce-dashboard-task-row:nth-of-type(n + 4),
    .ce-account-dashboard-rail .ce-account-practice-list article:nth-child(n + 4) { display: none; }
    .ce-account-dashboard-rail .ce-account-practice-list article,
    .ce-account-dashboard-rail .ce-account-practice-list article.is-unassigned { grid-template-columns: 28px minmax(0, 1fr) auto 24px; grid-template-areas: "mode details status open"; gap: 7px; padding: 12px 7px; }
    .ce-account-dashboard-rail .ce-account-practice-list article > .ce-collection-mode-icon,
    .ce-account-dashboard-rail .ce-account-practice-list article > .ce-account-practice-mark { width: 28px; height: 28px; border-radius: 8px; }
    .ce-account-dashboard-rail .ce-account-practice-list .ce-collection-mode-icon > svg { display: block; width: 19px; height: 19px; }
    .ce-account-dashboard-rail .ce-account-practice-list article > div > strong { font-size: var(--font-caption); }
    .ce-account-dashboard-rail .ce-account-practice-parties > span + span { display: block; }
    .ce-account-dashboard-rail .ce-account-practice-list .ce-account-status { max-width: 82px; font-size: var(--font-caption); }
    .ce-account-dashboard-rail .ce-account-practice-list article > a { width: 24px; height: 44px; }
    .ce-account-dashboard-rail .ce-account-quick-actions .ce-account-panel-head,
    .ce-account-dashboard-rail .ce-account-action-grid > a:not(.ce-account-new-practice) { display: none; }
    .ce-account-dashboard-rail .ce-account-action-grid { grid-template-columns: minmax(0, 1fr); }
    .ce-account-dashboard-rail .ce-account-action-grid > a.ce-account-new-practice { display: flex; align-items: center; justify-content: center; min-height: 64px; gap: 12px; padding: 12px; background: #1954ad; color: #fff; }
    .ce-account-dashboard-rail .ce-account-new-practice > span { background: #ffffff20; color: #fff; }
    .ce-account-dashboard-rail .ce-account-new-practice strong { color: #fff; font-size: var(--font-lead); }
    .ce-account-dashboard-rail .ce-account-new-practice small,
    .ce-account-dashboard .ce-account-new-practice::after { display: none; }
    .ce-account-dashboard .ce-account-operational-context { gap: 12px; padding: 12px; }
}


/* Practice intake and channeling — Phase 2 presentation layer */
.ce-intake-page {
    --ce-intake-ink: #17223a;
    --ce-intake-muted: #64718a;
    --ce-intake-line: #dfe6f0;
    --ce-intake-soft: #f5f8fc;
    --ce-intake-blue: #245cda;
    gap: 1.5rem;
}

.ce-intake-page .ce-panel {
    border-color: rgba(39, 63, 99, 0.13);
    border-radius: 1.25rem;
    box-shadow: var(--shadow-soft);
}

.ce-intake-page h2,
.ce-intake-page h3,
.ce-intake-page p {
    text-wrap: pretty;
}

.ce-intake-page h2,
.ce-intake-page h3 {
    color: var(--ce-intake-ink);
}

.ce-intake-page h3 {
    margin: 0;
    font-size: 1.08rem;
}

.ce-intake-section-heading,
.ce-intake-filter-heading,
.ce-intake-detail-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem;
}

.ce-intake-section-heading h2,
.ce-intake-filter-heading h2,
.ce-intake-detail-hero h2 {
    margin: 0.18rem 0 0;
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    letter-spacing: -0.02em;
}

.ce-intake-section-heading > p,
.ce-intake-filter-heading > p,
.ce-intake-detail-hero p {
    max-width: 34rem;
    margin: 0;
    color: var(--ce-intake-muted);
    font-size: var(--font-body);
}

.ce-intake-overview,
.ce-intake-settings,
.ce-rule-workspace,
.ce-rule-set-list {
    display: grid;
    gap: 0.85rem;
}

.ce-intake-metrics {
    gap: 0.8rem;
}

.ce-intake-metric {
    min-height: 7.3rem;
    align-items: center;
    border-radius: 1.1rem;
    color: inherit;
    text-decoration: none;
    isolation: isolate;
}

.ce-intake-metric::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #d29922;
}

.ce-intake-metric.is-review_required::after { background: #7452bd; }
.ce-intake-metric.is-manual_decision::after { background: #c16a2d; }
.ce-intake-metric.is-channeled::after { background: #1b8b61; }

.ce-intake-metric::before {
    z-index: -1;
}

.ce-intake-metric:hover {
    border-color: rgba(36, 92, 218, 0.3);
    box-shadow: 0 20px 48px rgba(31, 49, 78, 0.12);
    transform: translateY(-2px);
}

.ce-intake-metric.is-active {
    border-color: rgba(36, 92, 218, 0.55);
    box-shadow: 0 0 0 3px rgba(36, 92, 218, 0.1), 0 18px 45px rgba(31, 49, 78, 0.1);
}

.ce-intake-metric-copy {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.ce-intake-metric-copy small {
    color: var(--ce-intake-muted);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.02em;
}

.ce-intake-metric-copy strong {
    max-width: 11rem;
    color: var(--ce-intake-ink);
    font-size: 0.93rem;
    line-height: 1.25;
}

.ce-intake-metric-value {
    color: var(--ce-intake-ink);
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    font-weight: 700;
    line-height: 1.2;
}

.ce-intake-filter-panel {
    display: grid;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
}

.ce-intake-filter-heading h2 {
    font-size: 1.05rem;
}

.ce-intake-filters {
    display: grid;
    grid-template-columns: minmax(15rem, 1.6fr) repeat(2, minmax(11rem, 1fr)) auto;
    align-items: end;
    gap: 0.75rem;
}

.ce-intake-filters label {
    min-width: 0;
    color: #344159;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-intake-filters input,
.ce-intake-filters select,
.ce-form-stack input,
.ce-form-stack select,
.ce-form-stack textarea,
.ce-task-row input {
    min-height: 2.85rem;
    border-color: #c8d3e3;
    border-radius: 0.72rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.ce-intake-filters input:focus,
.ce-intake-filters select:focus,
.ce-form-stack input:focus,
.ce-form-stack select:focus,
.ce-form-stack textarea:focus,
.ce-task-row input:focus {
    border-color: var(--ce-intake-blue);
    box-shadow: 0 0 0 3px rgba(36, 92, 218, 0.14);
    outline: none;
}

.ce-intake-filters input:focus-visible,
.ce-intake-filters select:focus-visible,
.ce-form-stack input:focus-visible,
.ce-form-stack select:focus-visible,
.ce-form-stack textarea:focus-visible,
.ce-task-row input:focus-visible {
    outline: 3px solid rgba(36, 92, 218, 0.46);
    outline-offset: 2px;
}

.ce-input-shell {
    display: flex;
    align-items: center;
    min-height: 2.85rem;
    border: 1px solid #c8d3e3;
    border-radius: 0.72rem;
    background: #fff;
    color: #728098;
}

.ce-input-shell:focus-within {
    border-color: var(--ce-intake-blue);
    box-shadow: 0 0 0 3px rgba(36, 92, 218, 0.14);
}

.ce-input-shell > span {
    padding-left: 0.78rem;
    font-size: 1.2rem;
}

.ce-input-shell input {
    min-width: 0;
    border: 0;
    box-shadow: none !important;
}

.ce-button {
    min-height: 2.85rem;
    border-radius: 0.72rem;
}

.ce-button-quiet {
    border-color: transparent;
    background: transparent;
    color: #315587;
    box-shadow: none;
}

.ce-button-quiet:hover {
    background: #edf3fc;
}

.ce-button:focus-visible,
.ce-intake-metric:focus-visible,
.ce-intake-action-disclosure > summary:focus-visible,
.ce-table-scroll:focus-visible {
    outline: 3px solid rgba(36, 92, 218, 0.42);
    outline-offset: 3px;
}

.ce-button[disabled] {
    cursor: not-allowed;
    filter: grayscale(0.35);
    opacity: 0.52;
    transform: none;
}

.ce-button[aria-busy="true"] {
    cursor: wait;
}

.ce-button[aria-busy="true"]::before {
    content: "";
    width: 0.9rem;
    height: 0.9rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: ce-intake-spin 0.7s linear infinite;
}

@keyframes ce-intake-spin { to { transform: rotate(360deg); } }

.ce-intake-queue {
    overflow: hidden;
    padding: 0;
}

.ce-intake-queue-heading,
.ce-rule-set-heading {
    align-items: flex-start;
    padding: 1.25rem 1.35rem 1rem;
}

.ce-intake-queue-heading h2,
.ce-rule-set-heading h3 {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0.18rem 0 0;
}

.ce-intake-queue-heading p {
    margin: 0.3rem 0 0;
}

.ce-heading-count {
    display: inline-grid;
    min-width: 1.65rem;
    height: 1.65rem;
    place-items: center;
    border-radius: 999px;
    background: #edf2f8;
    color: #52617a;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-status-pill {
    gap: 0.45rem;
    line-height: 1.25;
}

.ce-status-pill.is-neutral {
    background: #eef2f7;
    color: #4c5a70;
}

.ce-status-dot {
    width: 0.42rem;
    height: 0.42rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: currentColor;
}

.ce-intake-queue .ce-table-scroll,
.ce-rule-set .ce-table-scroll {
    border-top: 1px solid var(--ce-intake-line);
}

.ce-intake-table,
.ce-rule-table {
    border-collapse: collapse;
}

.ce-intake-table th,
.ce-rule-table th {
    padding: 0.75rem 1rem;
    background: #f7f9fc;
    color: var(--muted);
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ce-intake-table td,
.ce-rule-table td {
    padding: 0.95rem 1rem;
    border-top: 1px solid #e9edf3;
    vertical-align: middle;
}

.ce-intake-table tbody tr {
    box-shadow: inset 3px 0 transparent;
}

.ce-intake-table tbody tr.is-technical_error { box-shadow: inset 3px 0 #c4493d; }
.ce-intake-table tbody tr.is-missing_data { box-shadow: inset 3px 0 #d29922; }
.ce-intake-table tbody tr.is-review_required { box-shadow: inset 3px 0 #7452bd; }
.ce-intake-table tbody tr.is-manual_decision { box-shadow: inset 3px 0 #c16a2d; }

.ce-intake-table tbody tr:hover,
.ce-rule-table tbody tr:hover {
    background: #f9fbfe;
}

.ce-intake-row-action {
    text-align: right;
}

.ce-intake-row-action .ce-button {
    white-space: nowrap;
}

.ce-intake-empty,
.ce-rule-empty {
    min-height: 15rem;
    padding: 2.2rem 1.25rem;
}

.ce-empty-state-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    margin-bottom: 0.35rem;
    border-radius: 1rem;
    background: #e9f5ef;
    color: #16704d;
    font-size: 1.45rem;
    font-weight: 700;
}

.ce-empty-state .ce-button {
    margin-top: 0.65rem;
}

.ce-intake-settings {
    padding-top: 0.35rem;
}

.ce-intake-admin-grid {
    align-items: start;
}

.ce-intake-admin-grid > .ce-panel {
    padding: 1.3rem;
}

.ce-intake-page .ce-panel-heading h2,
.ce-intake-page .ce-panel-heading h3 {
    margin: 0.18rem 0 0;
}

.ce-intake-page .ce-form-stack {
    gap: 1rem;
}

.ce-form-stack label,
.ce-rule-condition-row label {
    font-size: var(--font-caption);
}

.ce-check {
    min-height: 2.75rem;
    align-items: flex-start;
    border-radius: 0.75rem;
    line-height: 1.35;
}

.ce-check input {
    min-width: 1.15rem;
    width: 1.15rem;
    min-height: 1.15rem;
    height: 1.15rem;
    margin: 0.08rem 0 0;
    accent-color: var(--ce-intake-blue);
}

.ce-intake-connector-actions {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--ce-intake-line);
}

.ce-inline-empty,
.ce-inline-notice {
    display: grid;
    gap: 0.2rem;
    margin-top: 1rem;
    padding: 0.9rem 1rem;
    border: 1px dashed #cfdae9;
    border-radius: 0.85rem;
    background: #f8fafd;
    color: var(--ce-intake-muted);
    font-size: var(--font-caption);
}

.ce-inline-empty strong,
.ce-inline-notice strong {
    color: #344159;
}

.ce-rule-governance {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(31rem, 1fr);
    align-items: center;
    gap: 2rem;
    padding: 1.4rem;
    background: linear-gradient(135deg, #f8faff 0%, #fff 60%);
}

.ce-rule-governance-copy h2 {
    margin: 0.22rem 0 0.65rem;
}

.ce-rule-governance-copy p {
    margin: 0;
    color: #536178;
    line-height: 1.65;
}

.ce-rule-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ce-rule-flow li {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 0.55rem;
    min-width: 0;
    padding: 0 0.55rem;
    text-align: center;
}

.ce-rule-flow li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 1rem;
    left: calc(50% + 1.1rem);
    right: calc(-50% + 1.1rem);
    height: 1px;
    background: #ccd8ea;
}

.ce-rule-flow li > span {
    z-index: 1;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid #bdd0ef;
    border-radius: 50%;
    background: #edf4ff;
    color: #2456bb;
    font-weight: 700;
}

.ce-rule-flow li div {
    display: grid;
    gap: 0.2rem;
}

.ce-rule-flow small {
    color: var(--ce-intake-muted);
    font-size: var(--font-caption);
    line-height: 1.35;
}

.ce-rule-editor-grid {
    grid-template-columns: minmax(17rem, 0.62fr) minmax(0, 1.38fr);
}

.ce-rule-create-card {
    position: sticky;
    top: 1rem;
}

.ce-step-label {
    display: inline-flex;
    width: max-content;
    margin-bottom: 0.45rem;
    border-radius: 999px;
    padding: 0.3rem 0.55rem;
    background: #edf3fc;
    color: #315c9d;
    font-size: var(--font-caption);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ce-rule-builder-card > h3,
.ce-rule-create-card > h3 {
    margin-bottom: 0;
}

.ce-rule-builder-card > .ce-form-stack,
.ce-rule-create-card > .ce-form-stack {
    margin-top: 1.1rem;
}

.ce-rule-condition-builder,
.ce-rule-requirements {
    border-color: #d8e1ee;
    background: #fbfcfe;
}

.ce-rule-condition-builder legend,
.ce-rule-requirements legend {
    color: #24334d;
}

.ce-rule-condition-builder legend small {
    margin-left: 0.35rem;
    color: var(--ce-intake-muted);
    font-size: var(--font-caption);
    font-weight: 600;
}

.ce-rule-condition-row {
    grid-template-columns: 2rem minmax(8rem, 1.05fr) minmax(9rem, 1.05fr) minmax(10rem, 1.35fr);
    align-items: end;
    gap: 0.65rem;
    padding: 0.75rem;
    border: 1px solid #e5eaf2;
    background: #fff;
}

.ce-rule-row-number {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    align-self: center;
    border-radius: 0.55rem;
    background: #eef3fa;
    color: #53637c;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-rule-requirement-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.ce-rule-requirements {
    grid-template-columns: 1fr;
    align-content: start;
}

.ce-rule-requirements .ce-muted {
    margin: -0.15rem 0 0.25rem;
    font-size: var(--font-caption);
}

.ce-form-submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 0.25rem;
}

.ce-form-submit-row > span {
    color: var(--ce-intake-muted);
    font-size: var(--font-caption);
}

.ce-rule-set-list {
    gap: 1rem;
}

.ce-rule-set {
    overflow: hidden;
    padding: 0;
}

.ce-rule-set-description {
    margin: 0;
    padding: 0 1.35rem 1rem;
    color: var(--ce-intake-muted);
}

.ce-rule-set > .ce-inline-empty {
    margin: 0 1.35rem 1.35rem;
}

.ce-priority-badge {
    display: inline-grid;
    min-width: 2.6rem;
    min-height: 2rem;
    place-items: center;
    border-radius: 0.65rem;
    background: #edf3fc;
    color: #214d97;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-rule-condition-summary {
    display: grid;
    gap: 0.42rem;
    min-width: 15rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ce-rule-condition-summary li {
    color: #56647a;
    font-size: var(--font-caption);
    line-height: 1.4;
}

.ce-rule-condition-summary li strong,
.ce-rule-condition-summary li span {
    color: #25344d;
}

.ce-route-label {
    color: #254f90;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-rule-requirement-summary small {
    display: grid;
    gap: 0.1rem;
    line-height: 1.4;
}

.ce-rule-requirement-summary small + small {
    margin-top: 0.55rem;
}

.ce-rule-requirement-summary small strong {
    color: #35445d;
    font-size: var(--font-caption);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ce-publish-rule-form {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(16rem, 1.1fr) auto;
    align-items: center;
    margin: 0;
    padding: 1rem 1.35rem;
    border-top: 1px solid #eadfca;
    background: #fffbf3;
}

.ce-publish-rule-form > div {
    display: grid;
    gap: 0.18rem;
}

.ce-publish-rule-form > div .ce-step-label {
    margin-bottom: 0.1rem;
}

.ce-publish-rule-form > div small {
    color: #75684f;
}

.ce-intake-back {
    margin-bottom: -0.6rem;
}

.ce-intake-detail-hero {
    align-items: center;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(39, 63, 99, 0.13);
    border-radius: 1.15rem;
    background: linear-gradient(135deg, #f5f8fd, #fff);
}

.ce-intake-detail-hero h2 {
    font-size: clamp(1.45rem, 3vw, 2rem);
}

.ce-intake-summary-card,
.ce-intake-gate-card {
    padding: 1.3rem;
}

.ce-intake-summary-card > form > .ce-button {
    width: 100%;
}

.ce-intake-action-disclosure {
    border-top: 1px solid var(--ce-intake-line);
    padding-top: 0.25rem;
}

.ce-intake-action-disclosure > summary {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: space-between;
    border-radius: 0.7rem;
    padding: 0.55rem 0.7rem;
    color: #315587;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.ce-intake-action-disclosure > summary::-webkit-details-marker { display: none; }
.ce-intake-action-disclosure > summary:hover { background: #f1f5fb; }
.ce-intake-action-disclosure[open] > summary span { transform: rotate(180deg); }
.ce-intake-action-disclosure .ce-form-stack { margin-top: 0.75rem; }

.ce-confidence-value {
    color: var(--ce-intake-blue);
    font-size: var(--font-title-small);
}

.ce-confidence-meter {
    display: grid;
    gap: 0.65rem;
    padding: 0.95rem;
    border-radius: 0.9rem;
    background: #f6f8fc;
}

.ce-confidence-meter > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #344159;
    font-size: var(--font-caption);
    font-weight: 700;
}

.ce-confidence-meter small {
    color: var(--ce-intake-muted);
    font-weight: 600;
}

.ce-confidence-meter progress {
    width: 100%;
    height: 0.55rem;
    overflow: hidden;
    border: 0;
    border-radius: 999px;
    background: #dfe6f0;
}

.ce-confidence-meter progress::-webkit-progress-bar { background: #dfe6f0; }
.ce-confidence-meter progress::-webkit-progress-value { background: linear-gradient(90deg, #356ff5, #22a06b); }
.ce-confidence-meter progress::-moz-progress-bar { background: linear-gradient(90deg, #356ff5, #22a06b); }

.ce-callout.is-warning {
    background: #fff7e6;
    color: #795418;
}

.ce-gate-lists {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 1rem;
}

.ce-gate-lists h3 {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.9rem;
}

.ce-gate-lists h3 span {
    display: grid;
    min-width: 1.45rem;
    height: 1.45rem;
    place-items: center;
    border-radius: 999px;
    background: #eef2f7;
    color: #5d6b82;
    font-size: var(--font-caption);
}

.ce-gate-lists .ce-check-list {
    margin-top: 0.55rem;
}

.ce-intake-tasks,
.ce-intake-diary {
    padding: 1.3rem;
}

.ce-task-row {
    background: #fff;
}

.ce-task-row form {
    min-width: min(28rem, 52%);
}

.ce-treatment-diary li > div {
    min-width: 0;
}

@media (max-width: 1120px) {
    .ce-intake-filters {
        grid-template-columns: minmax(14rem, 1.4fr) repeat(2, minmax(10rem, 1fr));
    }
    .ce-intake-filters > .ce-button {
        grid-column: 1 / -1;
        justify-self: end;
    }
    .ce-rule-governance {
        grid-template-columns: 1fr;
    }
    .ce-rule-editor-grid {
        grid-template-columns: 1fr;
    }
    .ce-rule-create-card {
        position: static;
    }
    .ce-publish-rule-form {
        grid-template-columns: 1fr auto;
    }
    .ce-publish-rule-form > div {
        grid-column: 1 / -1;
    }
}

@media (max-width: 820px) {
    .ce-intake-section-heading,
    .ce-intake-filter-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.5rem;
    }
    .ce-intake-filters {
        grid-template-columns: 1fr 1fr;
    }
    .ce-intake-search {
        grid-column: 1 / -1;
    }
    .ce-intake-filters > .ce-button {
        grid-column: 1 / -1;
        width: 100%;
    }
    .ce-rule-condition-row {
        grid-template-columns: 2rem 1fr 1fr;
    }
    .ce-rule-condition-row label:last-child {
        grid-column: 2 / -1;
    }
    .ce-rule-requirement-grid,
    .ce-gate-lists {
        grid-template-columns: 1fr;
    }
    .ce-rule-table thead,
    .ce-intake-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }
    .ce-rule-table,
    .ce-rule-table tbody,
    .ce-rule-table tr,
    .ce-rule-table td,
    .ce-intake-table,
    .ce-intake-table tbody,
    .ce-intake-table tr,
    .ce-intake-table td {
        display: block;
        width: 100%;
    }
    .ce-rule-table tbody,
    .ce-intake-table tbody {
        display: grid;
        gap: 0.75rem;
        padding: 0.85rem;
    }
    .ce-rule-table tr,
    .ce-intake-table tr {
        overflow: hidden;
        border: 1px solid #dfe6f0;
        border-radius: 0.9rem;
        background: #fff;
        box-shadow: 0 8px 24px rgba(32, 50, 78, 0.05);
    }
    .ce-rule-table td,
    .ce-intake-table td {
        display: grid;
        grid-template-columns: minmax(6.5rem, 0.75fr) minmax(0, 1.35fr);
        gap: 0.8rem;
        padding: 0.65rem 0.8rem;
        border-top: 1px solid #edf0f5;
        text-align: left;
    }
    .ce-rule-table td:first-child,
    .ce-intake-table td:first-child {
        border-top: 0;
    }
    .ce-rule-table td::before,
    .ce-intake-table td::before {
        content: attr(data-label);
        color: #718097;
        font-size: var(--font-caption);
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }
    .ce-intake-row-action .ce-button {
        width: 100%;
    }
    .ce-rule-condition-summary {
        min-width: 0;
    }
    .ce-publish-rule-form {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .ce-publish-rule-form .ce-button {
        width: 100%;
    }
}

@media (max-width: 620px) {
    .ce-intake-page {
        gap: 1rem;
    }
    .ce-intake-metrics {
        grid-template-columns: 1fr;
    }
    .ce-intake-metric {
        min-height: 5.8rem;
    }
    .ce-intake-filters {
        grid-template-columns: 1fr;
    }
    .ce-intake-search,
    .ce-intake-filters > .ce-button {
        grid-column: auto;
    }
    .ce-intake-queue-heading,
    .ce-rule-set-heading,
    .ce-intake-detail-hero {
        align-items: flex-start;
        flex-direction: column;
    }
    .ce-intake-queue-heading .ce-status-pill,
    .ce-intake-detail-hero .ce-status-pill {
        width: 100%;
    }
    .ce-rule-flow {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
    .ce-rule-flow li {
        grid-template-columns: 2rem 1fr;
        justify-items: start;
        align-items: center;
        text-align: left;
    }
    .ce-rule-flow li:not(:last-child)::after {
        top: 2.1rem;
        bottom: -0.75rem;
        left: 1rem;
        right: auto;
        width: 1px;
        height: auto;
    }
    .ce-rule-condition-row {
        grid-template-columns: 1fr;
    }
    .ce-rule-condition-row label:last-child {
        grid-column: auto;
    }
    .ce-rule-row-number {
        justify-self: start;
    }
    .ce-form-submit-row,
    .ce-confidence-meter > div {
        align-items: flex-start;
        flex-direction: column;
    }
    .ce-form-submit-row .ce-button {
        width: 100%;
    }
    .ce-rule-table td,
    .ce-intake-table td {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    .ce-intake-summary-card dl div {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    .ce-task-row form {
        min-width: 0;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ce-intake-page *,
    .ce-intake-page *::before,
    .ce-intake-page *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Shared presentation for the account security surfaces. */
.fp-dashboard-section {
    width: min(760px, calc(100% - 32px));
    margin: 32px auto;
    padding: clamp(20px, 4vw, 32px);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--text);
    box-shadow: var(--shadow-soft);
}
.fp-dashboard-section h1 { margin: 8px 0 16px; font-size: var(--font-title); }
.fp-dashboard-section h2 { font-size: var(--font-section); }
.fp-dashboard-section p { color: var(--muted); }
.fp-dashboard-section :is(form, details) { margin-top: var(--space-6); }
.fp-dashboard-section form { display: grid; gap: var(--space-4); }
.fp-dashboard-section .fp-eyebrow { color: var(--accent-ink); font-size: var(--font-caption); font-weight: 600; }
.fp-dashboard-section :is(code, pre) { display: block; max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; }
.fp-dashboard-section .fp-primary { justify-self: start; background: var(--accent-strong); color: #fff; }
.auth-body[data-route="collection/login"] .fp-login.is-customer-auth-flow .fp-login-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
}
.auth-body[data-route="collection/login"] .fp-login-actions > * { width: 100%; min-width: 0; }
[data-qa="billing-account-page"] { margin: 24px auto; }
[data-qa="billing-account-page"] .ce-account-dashboard-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-6);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}
[data-qa="billing-account-page"] .ce-account-eyebrow { color: var(--muted); }
[data-qa="billing-account-page"] h1 { font-size: var(--font-title); }
@media (max-width: 720px) {
    [data-qa="billing-account-page"] .ce-account-dashboard-head { grid-template-columns: minmax(0, 1fr); }
}

/* Approved practice review: section colors describe content, never workflow state. */
.ce-practice-review { padding-bottom: 24px; }
.ce-theme-blue { --ce-section-accent: #3979c8; --ce-section-tint: #f1f6fd; }
.ce-theme-violet { --ce-section-accent: #8270bd; --ce-section-tint: #f6f3fc; }
.ce-theme-teal { --ce-section-accent: #27877e; --ce-section-tint: #eef8f6; }
.ce-theme-amber { --ce-section-accent: #b8882d; --ce-section-tint: #fcf7ec; }
.ce-theme-slate { --ce-section-accent: #77879d; --ce-section-tint: #f4f6f9; }
.ce-practice-review .fp-review-page-head { gap: 20px; align-items: flex-start; margin-bottom: 20px; }
.ce-practice-review .fp-review-page-head .ce-account-eyebrow { display: block; width: auto; margin: 12px 0 8px; padding: 0; color: #52627b; background: none; border: 0; letter-spacing: .04em; }
.ce-practice-review .ce-practice-heading { font-size: clamp(1.5rem, 2vw, 1.875rem); gap: 10px; }
.ce-practice-review .ce-practice-insured-name { font-size: 1.125rem; font-weight: 500; }
.ce-practice-review .ce-collection-head-actions { max-width: 100%; gap: 8px; }
.ce-practice-review .ce-decision-cockpit { display: block; margin-bottom: 20px; }
.ce-practice-review .ce-cockpit-overview { padding: 20px; border-radius: 12px; box-shadow: none; }
.ce-practice-review .ce-cockpit-overview h2 { font-size: 1.25rem; }
.ce-practice-review .ce-cockpit-overview .ce-account-eyebrow { display: block; padding: 0; margin: 0 0 4px; background: none; font-weight: 500; }
.ce-practice-review .ce-cockpit-metrics { margin: 20px 0 0; gap: 20px; }
.ce-practice-review .ce-cockpit-metrics article { border: 0; border-left: 1px solid var(--line); border-radius: 0; padding: 0 0 0 16px; background: transparent; }
.ce-practice-review .ce-cockpit-metrics article:first-child { padding-left: 0; border-left: 0; }
.ce-practice-review .ce-cockpit-metrics strong { font-size: 1.25rem; line-height: 1.35; overflow-wrap: anywhere; }
.ce-practice-review .ce-cockpit-metrics small { font-weight: 400; line-height: 1.5; }
.ce-practice-review .ce-cockpit-overview .ce-ui-notice { margin-top: 20px; }
.ce-practice-section-nav { margin-bottom: 20px; border-radius: 10px; box-shadow: none; gap: 4px; background: #fff; }
.ce-practice-section-nav { top: var(--ce-practice-nav-offset, 0px); scrollbar-width: none; }
.ce-practice-section-nav::-webkit-scrollbar { display: none; }
.ce-practice-section-nav a { gap: 8px; font-size: 0.9375rem; font-weight: 500; min-height: 44px; }
.ce-practice-section-nav a::before { content: ""; flex: 0 0 7px; height: 7px; border-radius: 50%; background: var(--ce-section-accent); }
.ce-practice-section-nav a[aria-current="location"] { color: #17345f; background: var(--ce-section-tint); box-shadow: inset 0 -2px var(--ce-section-accent); }
.ce-practice-review .ce-practice-section,
.ce-practice-review #photo-gallery,
.ce-practice-review #gps-evidence,
.ce-practice-review #documents,
.ce-practice-review #decision-panel { scroll-margin-top: var(--ce-practice-scroll-offset, 144px); }
.ce-practice-review .fp-review-action-button { min-height: 44px; }
.ce-practice-layout { display: grid; grid-template-columns: minmax(0, 1fr) 264px; gap: 24px; align-items: start; }
.ce-practice-content { display: grid; gap: 24px; min-width: 0; }
.ce-practice-review .ce-practice-section { min-width: 0; margin: 0; padding: 0; border: 1px solid #dce3ec; border-top: 3px solid var(--ce-section-accent); border-radius: 12px; box-shadow: none; background: #fff; scroll-margin-top: var(--ce-practice-scroll-offset, 144px); }
.ce-practice-section > .fp-review-section-head,
.ce-practice-section > .fp-review-accordion-summary,
.ce-practice-section[open] > .fp-review-accordion-summary { margin: 0; padding: 18px 20px; background: var(--ce-section-tint); border-bottom: 1px solid #e2e7ee; border-radius: 9px 9px 0 0; gap: 12px; }
.ce-practice-section > .fp-review-section-head h2,
.ce-practice-section > .fp-review-accordion-summary h2 { margin: 0; font-size: 1.1875rem; line-height: 1.4; font-weight: 650; }
.ce-practice-section > .fp-review-section-head p,
.ce-practice-section > .fp-review-accordion-summary p { margin: 4px 0 0; font-size: 0.875rem; font-weight: 400; line-height: 1.5; color: #52627b; }
.ce-practice-section > .fp-review-section-head > span { font-size: 0.875rem; max-width: 100%; overflow-wrap: anywhere; }
.ce-practice-section > .fp-review-summary-grid { padding: 20px; gap: 20px 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ce-practice-section .fp-review-summary-grid > div { border: 0; border-radius: 0; background: none; box-shadow: none; padding: 0; }
.ce-practice-section .fp-review-summary-grid dt { color: #52627b; text-transform: none; font-size: 0.875rem; font-weight: 400; letter-spacing: 0; }
.ce-practice-section .fp-review-summary-grid dd { margin-top: 5px; font-size: 0.9375rem; font-weight: 600; line-height: 1.5; }
.ce-practice-section .fp-review-summary-grid .fp-review-summary-iban { grid-column: 1 / -1; border-block: 1px solid #e7ecf2; padding-block: 16px; }
.ce-practice-section .fp-review-summary-iban dd { font-size: 1rem; letter-spacing: .02em; }
.ce-practice-section .fp-review-summary-status { grid-column: 1 / -1; border-top: 1px solid #e7ecf2; padding-top: 16px; }
.ce-practice-section .fp-review-summary-status dd { justify-items: start; }
.ce-practice-section .fp-review-summary-status small { font-weight: 400; }
.ce-practice-section .fp-review-status { width: fit-content; min-height: 28px; padding: 5px 8px; border-radius: 6px; line-height: 1.4; white-space: normal; }
.ce-evidence-tabs { display: flex; gap: 4px; padding: 8px 16px 0; border-bottom: 1px solid #dce6e7; overflow-x: auto; }
.ce-evidence-tabs[hidden], [data-ce-evidence-panel][hidden] { display: none; }
.ce-evidence-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: 0 0 auto; min-height: 46px; margin: 0; padding: 10px 12px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: #52627b; font: inherit; font-size: 0.9375rem; font-weight: 500; cursor: pointer; }
.ce-evidence-tabs button[aria-selected="true"] { border-bottom-color: #207b72; color: #15635b; }
.ce-evidence-tabs button:hover { background: #f2f8f7; }
.ce-evidence-tabs button span { font-size: 0.875rem; min-width: 22px; padding: 1px 5px; border-radius: 4px; background: #edf2f4; color: #40566a; }
.ce-practice-review [data-ce-evidence-panel] > .fp-review-panel { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.ce-practice-review [data-ce-evidence-panel] .fp-review-accordion-body,
.ce-practice-review #documents { padding: 20px; }
.ce-practice-review .fp-review-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ce-practice-review .fp-photo-review-fields { grid-template-columns: minmax(0, 1fr); }
.ce-practice-review .fp-photo-review-fields label > span { font-weight: 500; }
.ce-practice-review .fp-review-gps-layout { grid-template-columns: minmax(0, 1fr); }
.ce-practice-review .fp-review-gps-map { min-width: 0; width: 100%; }
.ce-practice-assessment > .fp-review-panel { margin: 0; padding: 20px; border: 0; border-radius: 0; box-shadow: none; }
.ce-practice-assessment > .ce-decision-panel { padding: 0; border-top: 1px solid #e3e8ef; }
.ce-practice-assessment .ce-decision-panel > summary { background: #fffcf6; padding: 18px 20px; }
.ce-practice-assessment .fp-review-ai-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ce-practice-assessment .fp-review-ai-grid > article:first-child { grid-column: 1 / -1; }
.ce-practice-assessment .fp-review-ai-grid > article { min-width: 0; background: #f8fafc; border: 0; border-radius: 8px; padding: 16px; }
.ce-practice-assessment .fp-review-ai-grid p { font-size: 0.9375rem; line-height: 1.6; font-weight: 400; }
.ce-practice-assessment .fp-review-section-head { flex-wrap: wrap; }
.ce-practice-assessment .fp-review-section-head h2 { font-size: 1.1875rem; }
.ce-practice-review .fp-review-line-item { min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 14px 12px; }
.ce-practice-review .ce-cost-field { display: grid; gap: 6px; min-width: 0; }
.ce-practice-review .ce-cost-field > span { font-size: .875rem; line-height: 1.4; color: #52627b; font-weight: 500; }
.ce-practice-review .fp-review-line-item > button { grid-column: 3; justify-self: end; min-height: 44px; }
.ce-practice-review .fp-review-severity-options { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
.ce-practice-review .fp-review-form-grid { align-items: start; }
.ce-practice-review .fp-review-severity-options label { min-height: 44px; }
.ce-practice-review .fp-review-severity-options label > span { overflow-wrap: normal; word-break: normal; font-weight: 500; line-height: 1.4; }
.ce-practice-review .ce-practice-context { display: grid; min-width: 0; gap: 20px; }
.ce-practice-review .ce-practice-context > section,
.ce-practice-review .ce-practice-context > .ce-context-disclosure > section { position: static; display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; margin: 0; padding: 20px; border: 1px solid #dce3ec; border-radius: 12px; box-shadow: none; background: #fff; }
.ce-practice-review .ce-practice-context h2 { margin: 0 0 12px; font-size: 1.0625rem; line-height: 1.4; }
.ce-practice-review .ce-practice-context p { font-size: 0.875rem; line-height: 1.6; font-weight: 400; color: #52627b; }
.ce-practice-review .ce-practice-context form,
.ce-practice-review .ce-practice-context label { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-width: 0; width: 100%; }
.ce-practice-review .ce-practice-context select { max-width: 100%; width: 100%; min-width: 0; font-size: 1rem; }
.ce-practice-review .ce-practice-context .ce-ui-button { min-height: 44px; padding: 10px 12px; }
.ce-practice-review .ce-practice-context-actions > span { display: block; font-size: 0.875rem; text-transform: none; font-weight: 400; color: #52627b; }
.ce-practice-review .ce-practice-context-actions > strong { display: block; font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
.ce-practice-context-facts dl { display: grid; gap: 16px; margin: 16px 0 0; }
.ce-practice-context-facts dt { font-size: 0.875rem; color: #52627b; }
.ce-practice-context-facts dd { margin: 4px 0 0; font-size: 0.9375rem; overflow-wrap: anywhere; }
.ce-practice-review .ce-practice-timeline small { color: #52627b; }
@media (max-width: 1359px) {
    .ce-practice-layout { grid-template-columns: minmax(0, 1fr); }
    .ce-practice-review .ce-practice-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .ce-practice-review .fp-review-page-head { flex-direction: column; }
    .ce-practice-review .ce-cockpit-overview { padding: 16px; }
    .ce-practice-review .ce-cockpit-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
    .ce-practice-review .ce-cockpit-metrics article { padding: 0; border: 0; }
    .ce-practice-review .ce-cockpit-metrics strong { font-size: 1.125rem; }
    .ce-practice-section-nav a { padding-inline: 10px; }
    .ce-evidence-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding-inline: 8px; }
    .ce-evidence-tabs button { min-width: 0; padding-inline: 5px; gap: 4px; font-size: .875rem; line-height: 1.4; white-space: normal; }
    .ce-practice-content { gap: 20px; }
    .ce-practice-section > .fp-review-section-head,
    .ce-practice-section > .fp-review-accordion-summary { padding: 16px; flex-wrap: wrap; }
    .ce-practice-section > .fp-review-accordion-summary::after { margin-left: auto; }
    .ce-practice-section > .fp-review-accordion-summary > .fp-review-accordion-meta { margin-left: 0; }
    .ce-practice-section > .fp-review-summary-grid { padding: 16px; gap: 18px; grid-template-columns: minmax(0, 1fr); }
    .ce-practice-review .ce-practice-context,
    .ce-practice-assessment .fp-review-ai-grid,
    .ce-practice-review .fp-review-photo-grid { grid-template-columns: minmax(0, 1fr); }
    .ce-practice-assessment > .fp-review-panel,
    .ce-practice-review [data-ce-evidence-panel] .fp-review-accordion-body,
    .ce-practice-review #documents { padding: 16px; }
    .ce-practice-assessment > .ce-decision-panel { padding: 0; }
    .ce-practice-review .fp-review-line-item { grid-template-columns: minmax(0, 1fr); }
    .ce-practice-review .fp-review-line-item > button { grid-column: 1; }
}
@media print {
    .ce-practice-section-nav, .ce-evidence-tabs, .ce-practice-context { display: none; }
    [data-ce-evidence-panel][hidden] { display: block; }
    .ce-practice-layout { display: block; }
}

.ce-practice-workspace-table .ce-practice-actions-menu > div[popover]:popover-open {
    position: fixed; inset: auto; z-index: auto; margin: 0; box-sizing: border-box;
    width: 180px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px);
    overflow-y: auto; color: #17345f; text-align: left;
}
.ce-practice-actions-menu > div[popover]:not(:popover-open) { display: none; }
.ce-practice-actions-menu.is-inline > div,
.ce-practice-actions-menu:not([data-actions-ready]) > div { position: static; width: 100%; margin-top: 8px; padding: 4px; box-sizing: border-box; }
.ce-practice-actions-menu > div button { min-height: 44px; }
.ce-practice-review [data-ce-evidence-panel] > details > summary { margin: 0; padding: 16px 20px; }
.ce-practice-review [data-ce-evidence-panel] > details > summary p { font-size: .875rem; font-weight: 400; line-height: 1.5; }
.ce-practice-section > summary > .fp-review-accordion-title { flex: 1; }
.ce-practice-identity .ce-practice-created { display: block; margin-top: 6px; font-size: .875rem; font-weight: 400; line-height: 1.4; color: #52627b; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ce-practice-identity .ce-practice-created time { font: inherit; color: inherit; }
.ce-practice-identity .ce-practice-created.is-unavailable { white-space: normal; }

/* Duration is part of the timestamp, not an auto-placed grid cell. */
.fp-access-audit-page .fp-access-audit-head { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px; }
.fp-access-audit-page .fp-access-audit-user-form { grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); }
.fp-access-audit-page .fp-access-audit-user-form :is(label, input, select) { min-width: 0; max-width: 100%; }
.fp-access-audit-page .fp-access-audit-user-form input { border: 1px solid var(--fp-access-line); border-radius: 7px; padding: 0 12px; background: #fff; color: var(--fp-access-ink); font: inherit; }
.fp-access-audit-page .fp-access-audit-user-form button { grid-column: -2 / -1; min-width: max-content; min-height: 44px; padding: 10px 16px; white-space: nowrap; align-self: end; }
.fp-access-audit-page .fp-access-timeline li {
    grid-template-columns: 10px max-content minmax(0, 1fr) minmax(140px, .65fr);
    grid-template-areas: "marker when activity actor" "marker when routes routes";
    align-items: start; gap: 4px 14px; padding: 12px 16px; line-height: 1.4;
}
.fp-access-audit-page .fp-access-timeline li > span[aria-hidden="true"] { grid-area: marker; margin-top: 5px; }
.fp-access-audit-when { grid-area: when; display: grid; gap: 3px; font-variant-numeric: tabular-nums; }
.fp-access-audit-page .fp-access-audit-when :is(time, small) { grid-column: 1; white-space: nowrap; line-height: 1.4; }
.fp-access-audit-when small { font-weight: 400; }
.fp-access-audit-page .fp-access-timeline li > strong { grid-area: activity; }
.fp-access-audit-page .fp-access-timeline li > em { grid-area: actor; font-weight: 400; }
.fp-access-audit-page .fp-access-audit-routes { grid-area: routes; font-weight: 400; }
@media (max-width: 980px) {
    .fp-access-audit-page .fp-access-timeline li {
        grid-template-columns: 10px max-content minmax(0, 1fr);
        grid-template-areas: "marker when activity" "marker when actor" "marker when routes";
    }
}
@media (max-width: 680px) {
    .fp-access-kpis { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); }
    .fp-access-audit-page .fp-access-timeline li {
        grid-template-columns: 10px minmax(0, 1fr);
        grid-template-areas: "marker when" ". activity" ". actor" ". routes";
        padding: 12px;
    }
}


/* Supplied Claim Evidence wordmark: preserve the source PNG unchanged.
   Blend its paper background into each surface; dark surfaces use a CSS
   negative so both presentations keep exactly the same artwork. */
img[src*="/img/claim-evidence/logo-wordmark.png"] {
    object-fit: contain;
    mix-blend-mode: multiply;
}
.auth-body img.fp-logo-mark[src*="/img/claim-evidence/logo-wordmark.png"] {
    width: min(280px, 100%);
    height: 48px;
    object-fit: cover;
}
.auth-body .fp-login-desktop-logo[src*="/img/claim-evidence/logo-wordmark.png"] {
    width: min(100%, 440px);
    height: 64px;
    object-fit: cover;
}
.fp-login-desktop-logo[src*="/img/claim-evidence/logo-wordmark.png"],
.fp-access-brand img[src*="/img/claim-evidence/logo-wordmark.png"] {
    filter: invert(1);
    mix-blend-mode: screen;
}
@media (max-width: 600px) {
    .auth-body img.fp-logo-mark[src*="/img/claim-evidence/logo-wordmark.png"] {
        width: min(260px, 100%);
        height: 44px;
    }
}

/* Approved step 01: compact mobile context on incoming-practice detail only. */
.ce-intake-detail-mobile-header {
    display: none;
}
@media (max-width: 620px) {
    .ce-intake-detail-page > .ce-intake-hero {
        display: none;
    }
    .ce-intake-detail-mobile-header {
        display: block;
        border-radius: 16px;
        padding: 16px 18px 10px;
        background: linear-gradient(120deg, #0f2347, #235396);
        color: #fff;
        box-shadow: none;
        overflow-wrap: anywhere;
    }
    .ce-intake-detail-mobile-heading > span {
        display: block;
        margin-bottom: 4px;
        font-size: 14px;
        line-height: 1.4;
        color: #e0eaff;
    }
    .ce-intake-detail-mobile-heading h1 {
        margin: 0;
        font-size: 23px;
        line-height: 1.25;
        font-weight: 700;
        letter-spacing: -.35px;
    }
    .ce-intake-detail-mobile-context {
        margin-top: 8px;
        border-top: 1px solid #ffffff30;
    }
    .ce-intake-detail-mobile-context summary {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 8px;
        min-height: 44px;
        cursor: pointer;
        font-size: 14px;
        font-weight: 600;
        list-style: none;
    }
    .ce-intake-detail-mobile-context summary::-webkit-details-marker {
        display: none;
    }
    .ce-intake-detail-mobile-context summary:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 2px;
        border-radius: 4px;
    }
    .ce-intake-detail-mobile-context[open] summary > span {
        transform: rotate(180deg);
    }
    .ce-intake-detail-mobile-context > div {
        display: grid;
        gap: 5px;
        padding: 3px 0 10px;
        font-size: 14px;
        line-height: 1.45;
    }
    .ce-intake-detail-mobile-context strong {
        font-weight: 600;
    }
    .ce-intake-detail-mobile-context p {
        margin: 3px 0 0;
        color: #e0eaff;
        font-size: 14px;
    }
}

/* Approved UX step 06: no practices available to the current account. */
.ce-account-empty-start {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin: 6px 0 0;
    padding: 34px 30px 38px;
    border: 1px solid #dce5f1;
    border-radius: 12px;
    background: #f7faff;
}
.ce-account-empty-start-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    margin-bottom: 18px;
    border-radius: 12px;
    background: #e6effb;
    color: #1d5398;
}
.ce-account-empty-start h3 {
    margin: 0 0 10px;
    color: #17375e;
    font-size: 23px;
    line-height: 1.25;
    letter-spacing: -.4px;
}
.ce-account-empty-start p {
    max-width: 430px;
    margin: 0;
    color: #50617a;
    font-size: 15px;
    line-height: 1.65;
}
.ce-account-empty-start-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    min-height: 46px;
    margin-top: 25px;
    padding: 12px 20px;
    border-radius: 8px;
    background: #1b4c8f;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}
.ce-account-empty-start-action:hover { background: #153e77; color: #fff; }
.ce-account-empty-start-action:focus-visible { outline: 3px solid #4095ee; outline-offset: 3px; }
.ce-account-empty-start .ce-account-empty-start-helper { margin-top: 12px; font-size: 13px; }
@media (max-width: 600px) {
    .ce-account-empty-start { padding: 24px 20px; }
    .ce-account-empty-start h3 { font-size: 21px; }
    .ce-account-empty-start-action { width: 100%; justify-content: center; gap: 20px; }
}

/* Approved creation terminology and current mobile product wordmark. */
.ce-create-details .fp-practice-create-fields { align-items: start; }
.ce-create-details .fp-practice-create-fields > label { align-content: start; }
.ce-create-details .ce-create-field-help {
    display: block;
    margin: 0;
    color: #50617a;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
}
.ce-account-mobile-context > .ce-account-mobile-product-logo { flex: 0 1 180px; }
.ce-account-mobile-product-logo img { display: block; width: 180px; max-width: 100%; height: 36px; object-fit: contain; }

/* Creation-only unsaved data feedback and exit confirmation. */
.ce-create-unsaved-notice { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; margin: 0 0 18px; border: 1px solid #e4d4a9; border-radius: 10px; background: #fffaf0; color: #51421f; }
.ce-create-unsaved-notice[hidden] { display: none; }
.ce-create-unsaved-notice > span { font-size: 18px; line-height: 1.4; }
.ce-create-unsaved-notice strong { display: block; font-size: 14px; }
.ce-create-unsaved-notice p { margin: 4px 0 0; font-size: 13px; line-height: 1.5; }
.ce-create-exit-dialog { width: min(480px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 28px; border: 1px solid #dce3ed; border-radius: 16px; color: #172940; background: #fff; box-shadow: 0 20px 70px #0f244338; }
.ce-create-exit-dialog::backdrop { background: #11233b80; }
.ce-create-exit-dialog h2 { margin: 0 0 12px; font-size: 24px; line-height: 1.25; letter-spacing: -.025em; }
.ce-create-exit-dialog p { margin: 0; color: #52647a; line-height: 1.6; font-size: 15px; }
.ce-create-exit-actions { display: grid; gap: 10px; margin-top: 24px; }
.ce-create-exit-actions button { min-height: 46px; padding: 12px 16px; border: 1px solid #b9c8dd; border-radius: 8px; background: #fff; color: #243e61; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; cursor: pointer; }
.ce-create-exit-actions button:first-child { background: #174e92; color: #fff; border-color: #174e92; }
.ce-create-exit-actions button:focus-visible { outline: 3px solid #3280cc; outline-offset: 3px; }
@media (max-width: 500px) {
    .ce-create-exit-dialog { padding: 23px; }
    .ce-create-exit-dialog h2 { font-size: 22px; }
    .ce-create-unsaved-notice { padding: 12px; gap: 9px; }
}

/* Approved practice-list recovery when no rows match. */
.ce-practice-no-results { padding: 30px; border: 1px solid #dce5f1; border-radius: 12px; background: #f7faff; margin: 18px 0; color: #17375e; }
.ce-practice-no-results[hidden] { display: none !important; }
.ce-practice-no-results-icon { display: flex; align-items: center; justify-content: center; background: #e6effb; border-radius: 11px; width: 48px; height: 48px; margin-bottom: 16px; }
.ce-practice-no-results h3 { font-size: 22px; line-height: 1.3; margin: 0 0 10px; letter-spacing: -.3px; }
.ce-practice-no-results p { max-width: 650px; font-size: 15px; line-height: 1.6; color: #53647b; margin: 0; }
.ce-practice-no-results-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ce-practice-no-results button { min-height: 44px; padding: 11px 18px; border-radius: 7px; border: 1px solid #204f90; background: #204f90; color: #fff; font: 600 14px/1.5 system-ui; cursor: pointer; }
.ce-practice-no-results button.is-secondary { color: #234c82; border-color: #c8d4e5; background: white; }
.ce-practice-no-results button:focus-visible { outline: 3px solid #438fec; outline-offset: 3px; }
[data-fp-session-list].has-no-results [data-fp-estimate-request-summary],
[data-fp-session-list].has-no-results [data-fp-practice-scroll],
[data-fp-session-list].has-no-results [data-fp-practice-drag-hint],
[data-fp-session-list].has-no-results [data-fp-session-pagination] { display: none !important; }
@media (max-width: 600px) {
    .ce-practice-no-results { padding: 24px 20px; }
    .ce-practice-no-results h3 { font-size: 21px; }
    .ce-practice-no-results-actions { flex-direction: column; }
    .ce-practice-no-results-actions button { width: 100%; }
}

/* Approved intake detail: evidence first, analysis on demand. */
.ce-intake-analysis-details { border-top: 1px solid #dce4ef; margin-top: 18px; padding-top: 8px; }
.ce-intake-analysis-details summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; color: #315587; font-weight: 700; cursor: pointer; list-style: none; }
.ce-intake-analysis-details summary::-webkit-details-marker { display: none; }
.ce-intake-analysis-details summary:focus-visible { outline: 3px solid #438fec; outline-offset: 3px; border-radius: 6px; }
.ce-intake-analysis-details[open] summary > span { transform: rotate(180deg); }
.ce-intake-analysis-details p { font-size: 13px; line-height: 1.6; color: #53647b; margin: 10px 0; }
.ce-intake-analysis-details .ce-confidence-meter > div { flex-wrap: wrap; }
.ce-intake-detail-page .ce-gate-lists { border-top: 0; padding-top: 0; margin-top: 0; }
.ce-intake-detail-page .ce-task-row > div { max-width: 560px; }
.ce-intake-detail-page .ce-task-row form { flex-wrap: wrap; }
.ce-intake-detail-page .ce-intake-summary-card dl div { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
@media (max-width: 900px) {
    .ce-intake-detail-page .ce-intake-gate-card { order: -1; }
}
@media (max-width: 620px) {
    .ce-intake-analysis-details p { font-size: 14px; }
    .ce-intake-detail-page .ce-task-row { align-items: stretch; }
    .ce-intake-detail-page .ce-task-row form { width: 100%; }
    .ce-intake-detail-page .ce-task-row input { min-width: 0; width: 100%; }
}

/* Autonomous collection KPI reading guide and responsive summaries */
.ce-kpi-vp-orientation{font-size:14px;line-height:1.55;color:#4c5c70;margin:0 0 12px}.ce-kpi-vp-methodology{margin:0 0 24px}.ce-kpi-vp-methodology>summary{min-height:56px}.ce-kpi-vp-methodology>summary:focus-visible{outline:3px solid #367ee6;outline-offset:3px}.ce-kpi-vp-methodology-body p{max-width:950px}
[data-qa="studio-kpi-vp"] .ce-kpi-metric-card > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
[data-qa="studio-kpi-vp"] .ce-kpi-metric-card small { width: fit-content; white-space: normal; }
[data-qa="studio-kpi-vp"] .ce-kpi-vp-segment-list { overflow-x: auto; }
[data-qa="studio-kpi-vp"] .ce-kpi-vp-segment-list > div { min-width: 430px; grid-template-columns: minmax(150px,1.6fr) repeat(3,minmax(74px,.6fr)); gap: 10px; }
[data-qa="studio-kpi-vp"] .ce-kpi-vp-segment-list > div > :first-child { white-space: normal; overflow-wrap: anywhere; }
[data-qa="studio-kpi-vp"] .ce-kpi-vp-segment-list:focus-visible { outline: 3px solid #2878e3; outline-offset: -3px; }

/* Collection introduction preparation */
.fp-collection-prep{margin:4px 0 8px;border:1px solid #dce4ed;border-radius:16px;padding:18px 20px;background:#fff;color:#233b54;text-align:left}
.fp-collection-prep h2{margin:0 0 12px;font-size:18px;line-height:1.3;letter-spacing:0}
.fp-collection-prep-list{display:grid;gap:12px;list-style:none;margin:0;padding:0}
.fp-collection-prep-list li{display:grid;gap:3px;line-height:1.45;font-size:14px}
.fp-collection-prep-list strong{font-size:14px;color:#223b56}
.fp-collection-prep-list span,.fp-collection-prep-permissions p{color:#536579}
.fp-collection-prep-permissions{margin-top:14px;border-top:1px solid #e5eaf1;padding-top:4px}
.fp-collection-prep summary{cursor:pointer;min-height:44px;padding:12px 0;color:#204d7e;font-weight:700;line-height:1.45;font-size:14px}
.fp-collection-prep summary:focus-visible{outline:3px solid #367ee6;outline-offset:3px;border-radius:4px}
.fp-collection-prep-permissions p{font-size:14px;line-height:1.55;margin:6px 0 12px}
@media(max-width:480px){.fp-collection-prep{padding-inline:16px}.fp-collection-prep-list{gap:12px}}

/* Optional photo capture guidance */
.fp-photo-capture-help{margin:4px 0 16px;border-bottom:1px solid #dce4ed;text-align:left}
.fp-photo-capture-help>summary{cursor:pointer;min-height:44px;padding:12px 0;color:#204d7e;font-size:14px;font-weight:700;line-height:1.45}
.fp-photo-capture-help>summary:focus-visible{outline:3px solid #367ee6;outline-offset:3px;border-radius:4px}
.fp-photo-capture-help dl{display:grid;gap:12px;margin:4px 0 12px}.fp-photo-capture-help dl>div{display:block}.fp-photo-capture-help dt{font-size:14px;font-weight:700;color:#233b54}.fp-photo-capture-help dd{margin:3px 0 0;font-size:14px;line-height:1.5;color:#536579}
.fp-photo-capture-help>p{font-size:14px;line-height:1.5;margin:8px 0 16px;color:#536579}

/* Named practice-list views, local to the account and Studio. */
.ce-saved-views {
    padding:16px 18px;
    margin:16px 0;
    background:#f5f8fc;
    border:1px solid #d8e3ef;
    border-radius:12px;
    color:#16304e;
    text-align:left
}
.ce-saved-toolbar {
    display:flex;
    align-items:end;
    gap:12px;
    flex-wrap:wrap
}
.ce-saved-toolbar>label {
    flex:1;
    min-width:180px
}
.ce-saved-views label {
    display:grid;
    gap:5px;
    font-size:13px;
    font-weight:700
}
.ce-saved-views select,.ce-saved-views input {
    min-height:44px;
    min-width:0;
    width:100%;
    border:1px solid #bdcbdc;
    border-radius:7px;
    padding:10px;
    font:inherit;
    color:#16304e;
    background:white
}
.ce-saved-views button,.ce-saved-views summary {
    min-height:44px;
    border:1px solid #bdcbdc;
    border-radius:7px;
    padding:10px 13px;
    background:white;
    color:#204875;
    font:600 14px/1.5 system-ui;
    cursor:pointer
}
.ce-saved-views button:disabled {
    opacity:.5;
    cursor:default
}
.ce-saved-views [data-ce-view-new],.ce-saved-views [data-ce-view-create] {
    background:#16458b;
    border-color:#16458b;
    color:white
}
.ce-saved-note,.ce-saved-feedback {
    font-size:13px!important;
    line-height:1.5!important;
    margin:9px 0 0!important;
    color:#52657a
}
.ce-saved-feedback {
    color:#26486c
}
.ce-saved-manage,.ce-saved-editor {
    padding:14px 0 0;
    max-width:620px
}
.ce-saved-actions {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:10px 0
}
.ce-saved-views small {
    display:block;
    color:#53677d;
    font-size:12px;
    line-height:1.5
}
.ce-saved-views details[open] {
    flex-basis:100%
}
.ce-saved-views :is(button,input,select,summary):focus-visible {
    outline:3px solid #367fe1;
    outline-offset:3px
}
.ce-saved-views [hidden] {
    display:none!important
}
.ce-saved-views [data-ce-view-undo] {
    margin-top:10px
}
@media(max-width:600px) {
    .ce-saved-views {
        padding:14px
    }
    .ce-saved-toolbar>label {
        flex-basis:100%
    }
    .ce-saved-toolbar>button {
        flex:1
    }
    .ce-saved-toolbar details {
        width:100%
    }
    .ce-saved-actions>button {
        flex:1
    }
    .ce-saved-toolbar>div {
        width:100%
    }
}
@media(max-width:600px) {
    .ce-saved-actions>button {
        flex:1 1 140px
    }
}

/* Temporary list return context and keyboard location. */
.ce-practice-return-context {
    margin: 12px 0;
    padding: 12px 14px;
    background: #eef5ff;
    border-left: 3px solid #245bab;
    color: #24486e;
    font-size: 14px;
    line-height: 1.5;
}
.ce-practice-return-notice { margin: 12px 0; color: #254a72; font-size: 14px; line-height: 1.5; }
.ce-practice-return-row { outline: 3px solid #2866b8; outline-offset: -3px; background: #edf5ff !important; }
.ce-practice-return-row a:focus-visible { outline: 3px solid #2866b8; outline-offset: 3px; }
.ce-practice-return-context[hidden], .ce-practice-return-notice[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
    .ce-practice-return-row { animation: ce-practice-return-fade 3s ease-out forwards; }
    @keyframes ce-practice-return-fade { 0%, 70% { outline-color: #2866b8; } 100% { outline-color: transparent; } }
}
/* Evidence narratives share the existing Studio spacing and typography. */
.ce-photo-analysis { margin: .8rem 0; border-top: 1px solid #dce3eb; }
.ce-photo-analysis summary,.ce-evidence-report>summary { padding: .8rem 0; cursor:pointer; font-weight:700; color:#203854; }
.ce-photo-analysis summary small { display:block; padding-top:.25rem; font-weight:400; color:#52627b; }
.ce-photo-analysis-body { padding:0 .15rem .65rem; }
.ce-photo-analysis-body p,.ce-evidence-report p,.ce-evidence-narrative p { white-space:pre-wrap; overflow-wrap:anywhere; }
.ce-photo-analysis-body h4 { margin:.7rem 0; }
.ce-photo-analysis-body time { display:block; margin:.5rem 0; color:#52627b; font-size:var(--font-caption); }
.ce-evidence-report { margin-top:1.25rem; border-top:1px solid #dce3eb; padding-top:.4rem; }
.ce-evidence-brief { margin-top:1.25rem; padding:1rem 1.2rem; border:1px solid #dce3eb; border-radius:12px; background:#f8fafc; overflow-wrap:anywhere; }
.ce-evidence-brief h3 { margin:0 0 .65rem; font-size:1rem; color:#203854; }
.ce-evidence-brief p:last-child { margin-bottom:0; }
.ce-evidence-brief li { margin:.3rem 0; }
.ce-evidence-report>summary { font-size:1.12rem; }
.ce-evidence-report section { padding:1rem 0; border-top:1px solid #e3e8ef; }
.ce-evidence-report h3 { margin:0 0 .7rem; font-size:1rem; }
.ce-evidence-help { color:#52627b; font-size:var(--font-caption); }
.ce-evidence-warning { padding:.8rem 1rem; border-left:3px solid #a56b13; background:#fff6e5; color:#68430c; }
.ce-damage-element { padding:.7rem 0; }
.ce-damage-element dl,.ce-evidence-cost dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem 1rem; margin:.75rem 0; }
.ce-damage-element dt,.ce-evidence-cost dt { color:#52627b; font-size:var(--font-caption); }
.ce-damage-element dd,.ce-evidence-cost dd { margin:.2rem 0 0; overflow-wrap:anywhere; }
.ce-evidence-cost { padding:.6rem 0 1rem; border-bottom:1px solid #e3e8ef; }
.ce-evidence-cost h4 { margin:.5rem 0; }
.ce-evidence-links { display:flex; flex-wrap:wrap; gap:.6rem 1rem; padding:.4rem 0; }
.ce-evidence-links a,.ce-diary-pagination a { color:#215f9c; text-decoration:underline; text-underline-offset:.2em; padding:.4rem 0; }
.ce-photo-analysis summary:focus-visible,.ce-evidence-report summary:focus-visible,.ce-evidence-links a:focus-visible { outline:2px solid #215f9c; outline-offset:3px; }
.ce-diary-history-search { display:grid; gap:.7rem; margin:1rem 0; }
.ce-diary-technical { display:flex; align-items:center; gap:.6rem; }
.ce-diary-technical input { width:auto; }
.ce-diary-pagination { display:flex; justify-content:space-between; gap:1rem; margin-top:1rem; }
.ce-practice-timeline [data-note-body] { white-space:pre-wrap; overflow-wrap:anywhere; }
.ce-practice-timeline [data-note-meta] { display:block; margin-top:.35rem; }
[id^="ce-photo-"] { scroll-margin-top:5rem; }
@media(max-width:540px) { .ce-damage-element dl,.ce-evidence-cost dl { grid-template-columns:1fr; } }

/* Practice diary: manual notes, search and revision history. */
#diario-trattazione {
    scroll-margin-top: 90px;
}
.ce-diary-toolbar {
    margin: 0 0 24px;
}
.ce-diary-toolbar label {
    display: block;
    font-size: 14px;
    font-weight: 650;
    color: #243650;
    margin-bottom: 8px;
}
.ce-diary-search-row {
    display: flex;
    gap: 10px;
    align-items: center;
}
.ce-diary-search-row input {
    min-width: 0;
    flex: 1;
    width: 100%;
    min-height: 46px;
    border: 1px solid #a9bacf;
    border-radius: 7px;
    background: white;
    padding: 10px 12px;
    font: inherit;
    color: #20354e;
}
.ce-diary-search-row button {
    min-height: 46px;
    border: 1px solid #c3d0e0;
    border-radius: 7px;
    background: #f7f9fc;
    color: #234875;
    padding: 10px 14px;
    font: 600 14px system-ui;
    white-space: nowrap;
    cursor: pointer;
}
.ce-diary-search-row button:disabled {
    opacity: .45;
    cursor: default;
}
.ce-diary-toolbar [role=status] {
    color: #52627b;
    margin: 9px 0 0;
    font-size: 13px;
}
.ce-diary-search-row :focus-visible {
    outline: 3px solid #84b8fc;
    outline-offset: 3px;
}
.ce-diary-day {
    margin: 0 0 26px;
}
.ce-diary-day h3 {
    font: 650 14px system-ui;
    color: #233e61;
    margin: 0 0 15px;
    padding: 0 0 9px;
    border-bottom: 1px solid #dce5f0;
}
#diario-trattazione [hidden] {
    display: none!important;
}
#diario-trattazione li {
    overflow-wrap: anywhere;
}
@media(max-width:600px) {
    .ce-diary-search-row {
        flex-direction: column;
        align-items: stretch;
    }
    .ce-diary-search-row button {
        align-self: flex-start;
    }
    .ce-diary-toolbar {
        margin-bottom: 20px;
    }
}
.ce-diary-composer {
    margin-bottom: 26px;
    padding: 18px;
    background: #f6f9fd;
    border: 1px solid #d7e2ef;
    border-radius: 8px;
}
.ce-diary-composer h3 {
    margin: 0 0 5px;
    font-size: 17px;
    color: #203d60;
}
.ce-diary-help {
    font-size: 13px;
    color: #52627b;
    margin: 0 0 14px;
}
.ce-diary-composer label {
    display: block;
    margin-bottom: 7px;
    font-weight: 650;
    font-size: 14px;
}
.ce-diary-composer textarea {
    display: block;
    width: 100%;
    resize: vertical;
    min-height: 110px;
    box-sizing: border-box;
    font: inherit;
    padding: 12px;
    color: #20354e;
    border: 1px solid #a9bacf;
    border-radius: 6px;
    background: white;
}
.ce-diary-compose-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 10px;
}
.ce-diary-compose-actions button,.ce-diary-edit {
    min-height: 44px;
    font: 600 14px system-ui;
    border: 1px solid #becfe2;
    border-radius: 6px;
    background: white;
    color: #214675;
    padding: 10px 14px;
    cursor: pointer;
}
.ce-diary-compose-actions [data-ce-diary-save] {
    background: #173f82;
    color: white;
    border-color: #173f82;
}
.ce-diary-compose-actions button:disabled {
    opacity: .45;
    cursor: default;
}
.ce-diary-compose-actions small {
    margin-left: auto;
    color: #52627b;
}
.ce-diary-composer [data-ce-diary-message] {
    font-size: 13px;
    margin: 8px 0 0;
    color: #24503d;
}
.ce-diary-composer :focus-visible,.ce-diary-edit:focus-visible {
    outline: 3px solid #84b8fc;
    outline-offset: 3px;
}
.ce-diary-note>span {
    background: #17796f!important;
    box-shadow: 0 0 0 4px #e3f4f0!important;
}
.ce-diary-note p {
    white-space: pre-wrap;
}
.ce-diary-note small {
    display: block;
}
.ce-diary-edit {
    display: block;
    margin: 8px 0 0;
    padding: 7px 12px;
}
.ce-diary-note details {
    margin-top: 10px;
    font-size: 13px;
}
.ce-diary-note summary {
    cursor: pointer;
    min-height: 32px;
}
.ce-diary-note details p {
    padding: 10px;
    background: #f5f8fc;
}
@media(max-width:680px) {
    #diario-trattazione {
        scroll-margin-top: 140px;
    }
}
.ce-diary-history>div {
    border-left: 2px solid #dce5f0;
    padding-left: 12px;
    margin: 10px 0;
}
.ce-diary-composer [data-ce-create-unsaved] {
    margin-top: 12px;
}
.ce-diary-composer [data-ce-create-unsaved] span {
    display: block;
}
.ce-diary-composer [data-ce-diary-message][data-kind="error"] {
    color: #9d2b33;
}

/* Practice location correction: keep original GPS evidence visible on demand. */
.ce-location-editor, .ce-location-current { margin: 16px 0; padding: 16px; border: 1px solid var(--fp-border, #d6deea); border-radius: 12px; }
.ce-location-editor > summary, .ce-location-original > summary { cursor: pointer; padding: 10px 0; font-weight: 650; }
.ce-location-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 16px 0; }
.ce-location-field { display: grid; gap: 7px; min-width: 0; }
.ce-location-fields .is-wide { grid-column: 1 / -1; }
.ce-location-fields input, .ce-location-fields textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 12px; border: 1px solid #aab8cc; border-radius: 8px; font: inherit; color: inherit; background: #fff; }
.ce-location-fields textarea { resize: vertical; }
.ce-location-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.ce-location-editor .ce-ui-button { min-height: 44px; white-space: normal; }
.ce-location-current p, .ce-location-current small, .ce-location-suggestion { overflow-wrap: anywhere; }
.ce-location-suggestion { padding: 14px; background: #f2f6fc; border-radius: 8px; }
.ce-location-suggestion[hidden] { display: none; }
.fp-review-gps-map[data-map-state="empty"] .fp-gps-map-overlay, .fp-review-gps-map[data-map-state="empty"] .fp-gps-map-provider,
.fp-review-gps-map[data-map-state="position"] .fp-review-gps-map-empty { display: none; }
@media (max-width: 600px) { .ce-location-fields { grid-template-columns: minmax(0, 1fr); } }

.ce-photo-origin{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;color:#52647d}
.ce-insured-fields{border:0;padding:0;margin:0;min-width:0}.ce-insured-fields:disabled{opacity:.75}


/* Dormant AI collection branding: retain the voice control without an empty masthead. */
.auth-body[data-route="collection/link"] [data-fp-unbranded-header] {
    justify-content: flex-end;
}
.auth-body[data-route="collection/link"] [data-fp-unbranded-header]:has([data-fp-voice-control][hidden]) {
    display: none;
}
.auth-body[data-route="collection/link"] .fp-ai-transparency {
    margin: 16px 20px 0;
}
