:root {
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --navy: #061d45;
    --blue: #0758c7;
    --azure: #0d8ef0;
    --sky: #45b9fb;
    --ink: #102342;
    --muted: #60718c;
    --line: #dfe8f4;
    --surface: #ffffff;
}

* { box-sizing: border-box; }
html { min-width: 320px; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: #f3f8ff; }
button, input { font: inherit; }
button { cursor: pointer; }

/* Landlord */
.landlord-page { min-height: 100vh; background: #f3f7fc; }
.landlord-shell { min-height: 100vh; }
.landlord-topbar { min-height: 5rem; padding: .75rem clamp(1rem, 4vw, 3.5rem); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid #e1e9f3; background: #fff; }
.landlord-topbar-actions { display: flex; align-items: center; gap: 1rem; }
.landlord-topbar-actions > span { display: grid; text-align: right; }
.landlord-topbar-actions small { color: var(--muted); font-size: .68rem; }
.landlord-topbar-actions strong { color: var(--navy); font-size: .82rem; }
.landlord-navigation { display: flex; align-items: center; gap: .35rem; padding: .3rem; border: 1px solid #e1e9f3; border-radius: .8rem; background: #f7faff; }
.landlord-navigation a { padding: .55rem .8rem; border-radius: .6rem; color: #52637c; font-size: .78rem; font-weight: 800; text-decoration: none; }
.landlord-navigation a:hover { color: var(--blue); background: #eaf5ff; }
.landlord-navigation a.active { background: var(--blue); color: #fff; box-shadow: 0 .35rem .8rem rgb(7 88 199 / 18%); }
.landlord-main { width: min(100%, 92rem); margin: 0 auto; padding: clamp(1.25rem, 4vw, 3rem); }
.landlord-page-heading { margin-bottom: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.landlord-page-heading .section-label { margin: 0 0 .3rem; color: var(--blue); }
.landlord-page-heading h1 { margin: 0; color: var(--navy); font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.04em; }
.landlord-page-heading p:last-child { margin: .45rem 0 0; color: var(--muted); }
.landlord-page-heading .primary-button { text-decoration: none; }
.landlord-panel, .landlord-form, .provisioning-history { border: 1px solid var(--line); border-radius: 1.15rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(6 29 69 / 6%); }
.landlord-table-wrap { overflow-x: auto; }
.landlord-table { width: 100%; border-collapse: collapse; }
.landlord-table th, .landlord-table td { padding: .9rem 1rem; border-bottom: 1px solid #e8eef5; text-align: left; vertical-align: middle; }
.landlord-table th { color: #60718c; background: #f8fbff; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.landlord-table td { color: #33445f; font-size: .8rem; }
.landlord-table td:first-child { min-width: 13rem; }
.landlord-table td > strong, .landlord-table td > small { display: block; }
.landlord-table td > small { margin-top: .15rem; color: #7b8aa0; }
.landlord-table a { color: #0758a9; }
.landlord-table code { padding: .25rem .4rem; border-radius: .35rem; background: #edf3f9; color: #33445f; }
.status-pill { display: inline-flex; padding: .32rem .55rem; border-radius: 999px; font-size: .65rem; font-weight: 850; letter-spacing: .03em; }
.status-completed { background: #e5f8ee; color: #167146; }
.status-running, .status-pending { background: #e2f2ff; color: #075eaa; }
.status-failed { background: #ffe8e7; color: #a52a23; }
.status-legacy { background: #edf1f5; color: #5e6d80; }
.landlord-pagination { padding: 1rem; }
.landlord-pagination .pagination-link { min-width: 2.5rem; }
.landlord-pagination .pagination-link.current { border-color: var(--blue); background: var(--blue); color: #fff; cursor: default; }
.release-summary-grid { margin-bottom: 1.25rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.release-summary-card { padding: 1.2rem; display: grid; gap: .35rem; border: 1px solid #dce6f1; border-radius: 1rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(6 29 69 / 6%); }
.release-summary-card span { color: #60718c; font-size: .72rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.release-summary-card strong { color: var(--navy); font-size: 1.35rem; }
.release-summary-card small { color: #718198; overflow-wrap: anywhere; }
.release-summary-card.beta { border-top: .3rem solid var(--azure); }
.release-summary-card.production { border-top: .3rem solid #21a56d; }
.release-publish-panel { margin-bottom: 1.25rem; padding: 1.25rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, .8fr); gap: 2rem; }
.release-publish-panel h2, .release-history h2 { margin: 0; color: var(--navy); }
.release-publish-panel p { color: #52637c; line-height: 1.6; }
.release-publish-panel code { padding: .15rem .35rem; border-radius: .35rem; background: #edf3f9; overflow-wrap: anywhere; }
.release-publish-form { display: grid; gap: .9rem; }
.release-publish-form textarea { min-height: 6rem; padding: .75rem; border: 1px solid #d6e1ef; border-radius: .75rem; font: inherit; resize: vertical; }
.release-confirmation { display: flex; align-items: flex-start; gap: .55rem; color: #40516b; font-size: .78rem; font-weight: 750; line-height: 1.45; }
.release-confirmation input { margin-top: .15rem; accent-color: var(--blue); }
.release-history > header { padding: 1.15rem 1rem; border-bottom: 1px solid #e8eef5; }
.release-history p { margin: 0 0 .35rem; }
.release-history td:nth-child(4) code, .release-history td:nth-child(4) small, .release-attempt { display: block; }
.release-history td:nth-child(4) code { max-width: 23rem; overflow-wrap: anywhere; white-space: normal; }
.release-attempt { margin-top: .3rem; padding-left: .55rem; border-left: 3px solid #c7d6e7; }
.release-attempt.completed { border-color: #21a56d; }
.release-attempt.failed { border-color: #c83d32; color: #8f241d; }
.status-badge { display: inline-flex; padding: .28rem .55rem; border-radius: 999px; font-size: .7rem; font-weight: 850; }
.status-badge.beta { background: #e7f5ff; color: #0758a9; }
.status-badge.released { background: #e7f8f0; color: #176846; }
.landlord-form { padding: clamp(1rem, 3vw, 2rem); display: grid; gap: 1.25rem; }
.landlord-form fieldset { margin: 0; padding: 1.2rem; border: 1px solid #dbe6f1; border-radius: .95rem; }
.landlord-form legend { padding: 0 .45rem; color: var(--navy); font-size: .9rem; font-weight: 850; }
.landlord-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.landlord-form .field > input, .landlord-form .field > select, .landlord-form .field > textarea, .domain-input { width: 100%; min-height: 2.9rem; padding: .7rem .8rem; border: 1px solid #d6e1ef; border-radius: .75rem; background: #fff; color: var(--ink); font: inherit; }
.landlord-form .field > textarea { min-height: 5rem; resize: vertical; }
.landlord-form .field > input:focus, .landlord-form .field > select:focus, .landlord-form .field > textarea:focus, .domain-input:focus-within { outline: 0; border-color: var(--azure); box-shadow: 0 0 0 .2rem rgb(13 142 240 / 11%); }
.landlord-form .span-2 { grid-column: 1 / -1; }
.check-field { min-height: 2.9rem; display: flex; align-items: center; gap: .55rem; color: #40516b; font-size: .82rem; font-weight: 750; }
.check-field input { width: 1.1rem; height: 1.1rem; accent-color: var(--blue); }
.domain-input { padding: 0 .8rem; display: flex; align-items: center; }
.domain-input input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; }
.domain-input em { color: #718198; font-size: .78rem; font-style: normal; white-space: nowrap; }
.landlord-form-actions { display: flex; justify-content: flex-end; }
.secondary-button, .secondary-link { display: inline-flex; align-items: center; justify-content: center; padding: .68rem .9rem; border: 1px solid #b9d9f5; border-radius: .7rem; background: #eef8ff; color: #0758a9; font: inherit; font-size: .78rem; font-weight: 800; text-decoration: none; }
.provisioning-history { margin-bottom: 1.25rem; padding: 1.25rem; }
.provisioning-history h2 { margin: 0 0 .8rem; color: var(--navy); font-size: 1rem; }
.provisioning-history article { padding: .75rem 0; display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: start; gap: .75rem; border-top: 1px solid #e8eef5; }
.provisioning-history time { color: #718198; font-size: .75rem; }
.provisioning-history p { margin: 0; color: #52637c; font-size: .78rem; overflow-wrap: anywhere; }
.provisioning-history form { margin-top: .75rem; }
.provisioning-retry-form details { margin-bottom: .75rem; padding: .75rem; border: 1px solid #dbe6f1; border-radius: .75rem; }
.provisioning-retry-form summary { cursor: pointer; color: #40516b; font-size: .78rem; font-weight: 800; }
.provisioning-retry-form details .landlord-form-grid { margin-top: .8rem; }
@media (max-width: 720px) {
    .landlord-topbar .topbar-wordmark-image { display: none; }
    .landlord-topbar-actions > span { display: none; }
    .landlord-page-heading { align-items: flex-start; flex-direction: column; }
    .landlord-topbar { flex-wrap: wrap; }
    .landlord-navigation { order: 3; width: 100%; }
    .landlord-navigation a { flex: 1; text-align: center; }
    .release-summary-grid, .release-publish-panel { grid-template-columns: 1fr; }
    .landlord-form-grid { grid-template-columns: 1fr; }
    .landlord-form .span-2 { grid-column: auto; }
    .provisioning-history article { grid-template-columns: auto 1fr; }
    .provisioning-history p { grid-column: 1 / -1; }
}

.auth-page {
    padding: clamp(1rem, 3vw, 2.5rem);
    display: grid;
    place-items: center;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 8% 10%, rgb(69 185 251 / 24%), transparent 28rem),
        radial-gradient(circle at 94% 90%, rgb(7 88 199 / 18%), transparent 32rem),
        #f3f8ff;
}

.auth-shell {
    width: min(100%, 74rem);
    min-height: min(44rem, calc(100vh - 5rem));
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(22rem, .92fr);
    overflow: hidden;
    border: 1px solid rgb(7 88 199 / 12%);
    border-radius: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--surface);
    box-shadow: 0 2rem 5rem rgb(6 29 69 / 15%);
}

.auth-brand {
    position: relative;
    isolation: isolate;
    padding: clamp(2rem, 5vw, 4.5rem);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(145deg, var(--navy) 0%, var(--blue) 46%, var(--azure) 76%, var(--sky) 100%);
}

.auth-brand::before,
.auth-brand::after {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    content: "";
}

.auth-brand::before { top: -12rem; right: -10rem; width: 34rem; height: 34rem; border: 5rem solid rgb(255 255 255 / 8%); }
.auth-brand::after { right: -9rem; bottom: -14rem; width: 28rem; height: 28rem; background: rgb(255 255 255 / 9%); box-shadow: -16rem -3rem 0 -7rem rgb(255 255 255 / 8%); }
.auth-logo { width: min(100%, 29rem); padding: clamp(.7rem, 2vw, 1.15rem); border: 1px solid rgb(255 255 255 / 55%); border-radius: 1.4rem; background: #fff; box-shadow: 0 1.25rem 3.5rem rgb(0 31 91 / 26%); }
.auth-logo img { display: block; width: 100%; height: auto; }
.auth-brand-copy { margin-top: clamp(3rem, 8vw, 6rem); }
.eyebrow, .section-label { margin: 0 0 .8rem; font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow { color: rgb(255 255 255 / 76%); }
.auth-brand h1 { margin: 0; font-size: clamp(2.5rem, 5vw, 4.15rem); line-height: .98; letter-spacing: -.055em; }
.auth-brand-copy > p:last-child { max-width: 34rem; margin: 1.4rem 0 0; color: rgb(255 255 255 / 82%); line-height: 1.7; }

.auth-content { padding: clamp(2rem, 5vw, 4.5rem); display: grid; align-items: center; background: linear-gradient(180deg, #fff, #fbfdff); }
.auth-content-inner { width: min(100%, 25rem); margin-inline: auto; }
.environment-badge, .attention-badge { display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .72rem; border-radius: 999px; font-size: .75rem; font-weight: 800; }
.environment-badge { border: 1px solid #c8eadc; background: #ecfaf4; color: #146746; }
.environment-badge span { width: .5rem; height: .5rem; border-radius: 50%; background: #1fa66d; box-shadow: 0 0 0 .22rem rgb(31 166 109 / 13%); }
.attention-badge { border: 1px solid #f0d5a0; background: #fff8e8; color: #815819; }
.auth-content .section-label { margin-top: 2rem; color: var(--blue); }
.auth-content h2 { margin: 0; color: var(--navy); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.05; letter-spacing: -.045em; }
.section-intro { margin: .9rem 0 0; color: var(--muted); line-height: 1.65; }
.auth-form { display: grid; gap: 1.15rem; margin-top: 2rem; }
.auth-fallback-toggle { padding: .35rem; border: 0; background: transparent; color: #0758a9; cursor: pointer; font: inherit; font-size: .78rem; font-weight: 800; text-decoration: underline; text-underline-offset: .2rem; }
.password-fallback { padding: 1rem; display: grid; gap: 1rem; border: 1px solid #d7e3ef; border-radius: .9rem; background: #f7faff; }
.password-fallback[hidden] { display: none; }
.password-fallback p { margin: 0; color: #5f7088; font-size: .78rem; line-height: 1.5; }
.password-fallback .secondary-button { width: 100%; }
.security-notice { margin-top: 1rem; padding: .8rem .9rem; border: 1px solid #b9d9f5; border-radius: .8rem; background: #eef8ff; color: #24557f; font-size: .78rem; font-weight: 700; line-height: 1.5; }
.landlord-security-page { min-height: 100vh; background: radial-gradient(circle at top left, #edf7ff 0, #f5f8fc 38%, #eef3f9 100%); }
.landlord-security-shell { min-height: 100vh; padding: clamp(1.25rem, 5vw, 4rem); display: grid; place-items: center; }
.landlord-security-card { width: min(100%, 64rem); padding: clamp(1.4rem, 4vw, 2.8rem); border: 1px solid #d8e4f0; border-radius: 1.4rem; background: #fff; box-shadow: 0 1.4rem 4rem rgb(16 35 66 / 12%); }
.landlord-security-card.compact { width: min(100%, 38rem); }
.landlord-security-card > .section-label { margin: 0 0 .45rem; color: var(--blue); }
.landlord-security-card h1 { margin: 0; color: var(--navy); font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.04em; }
.landlord-security-card > p:not(.section-label) { color: #5d6e85; line-height: 1.65; }
.landlord-mfa-methods { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.landlord-mfa-methods article { padding: 1.25rem; border: 1px solid #d9e5f1; border-radius: 1rem; background: #f8fbff; }
.landlord-mfa-methods article.complete { border-color: #94d5bb; background: #f1fbf6; }
.landlord-mfa-methods h2 { margin: .65rem 0 .4rem; color: var(--navy); font-size: 1.05rem; }
.landlord-mfa-methods p { min-height: 3.2rem; color: #5f7088; font-size: .82rem; line-height: 1.55; }
.mfa-status { display: inline-flex; padding: .28rem .55rem; border-radius: 999px; background: #e8f2fb; color: #31597e; font-size: .68rem; font-weight: 850; }
.complete .mfa-status { background: #d8f2e6; color: #176247; }
.landlord-mfa-steps { padding-left: 1.25rem; color: #485d77; line-height: 1.7; }
.landlord-totp-qr { margin: 1.25rem 0; display: grid; justify-items: center; gap: .65rem; }
.landlord-totp-qr img { width: min(17.5rem, 100%); height: auto; padding: .7rem; border: 1px solid #d8e4f0; border-radius: 1rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(16 35 66 / 9%); }
.landlord-totp-qr span { color: #60748b; font-size: .75rem; font-weight: 800; }
.landlord-totp-secret { margin: 1rem 0; padding: 1rem; display: grid; gap: .4rem; border: 1px dashed #8fb8db; border-radius: .8rem; background: #f2f8fe; }
.landlord-totp-secret span { color: #60748b; font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.landlord-totp-secret code { overflow-wrap: anywhere; color: #123f70; font-size: 1.05rem; font-weight: 850; letter-spacing: .08em; }
.recovery-access { margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid #e1e9f2; }
.recovery-access summary { color: #0758a9; cursor: pointer; font-size: .8rem; font-weight: 800; }
.recovery-code-list { margin: 1.25rem 0; padding: 1rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; border: 1px solid #d8e4f0; border-radius: .9rem; background: #f7faff; list-style: none; }
.recovery-code-list li { text-align: center; }
.recovery-code-list code { color: #123f70; font-size: .95rem; font-weight: 850; letter-spacing: .05em; }
.field { display: grid; gap: .48rem; color: #33445f; font-size: .84rem; font-weight: 750; }
.input-wrap { min-height: 3.35rem; display: flex; align-items: center; gap: .8rem; padding: 0 1rem; border: 1px solid #d6e1ef; border-radius: .9rem; background: #fff; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.input-wrap:hover { border-color: #8dc9f7; background: #f8fbff; box-shadow: 0 .35rem 1rem rgb(13 142 240 / 7%); }
.input-wrap:focus-within { border-color: var(--azure); box-shadow: 0 0 0 .25rem rgb(13 142 240 / 11%); }
.input-wrap svg, .security-note svg { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: #6f86a5; }
.input-wrap input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); }
.field-error { color: #b42318; font-size: .78rem; font-weight: 650; }
.primary-button { min-height: 3.35rem; padding: .85rem 1.2rem; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; border: 0; border-radius: .9rem; background: linear-gradient(120deg, var(--blue), var(--azure)); box-shadow: 0 .8rem 1.5rem rgb(7 88 199 / 19%); color: #fff; cursor: pointer; font: inherit; font-weight: 800; transition: transform .15s, box-shadow .15s; }
.primary-button:hover { transform: translateY(-1px); box-shadow: 0 1rem 1.8rem rgb(7 88 199 / 24%); }
.primary-button:focus-visible, .logout-button:focus-visible, .text-button:focus-visible { outline: 3px solid rgb(13 142 240 / 30%); outline-offset: 3px; }
.primary-button svg { width: 1.1rem; height: 1.1rem; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.security-note { margin: 1.8rem 0 0; display: flex; gap: .65rem; color: #8290a3; font-size: .76rem; line-height: 1.55; }
.password-rules { margin: -.2rem 0 .1rem; padding-left: 1.15rem; color: #718198; font-size: .76rem; line-height: 1.7; }
.logout-link-form { margin-top: 1.2rem; text-align: center; }
.text-button { border: 0; background: transparent; color: #60718c; font-size: .8rem; text-decoration: underline; text-underline-offset: .2rem; }

.app-page { height: 100dvh; overflow: hidden; background: #f3f7fc; }
.app-shell { height: 100%; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.topbar { position: relative; z-index: 10; min-height: 5rem; padding: .75rem clamp(1rem, 4vw, 3.5rem); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid #e1e9f3; background: rgb(255 255 255 / 94%); }
.topbar-brand { min-width: 0; display: inline-flex; align-items: center; gap: .7rem; color: var(--navy); text-decoration: none; }
.topbar-brand > img:first-child { flex: 0 0 auto; display: block; width: 3.25rem; height: 3.25rem; object-fit: contain; border-radius: .65rem; }
.topbar-wordmark-image { width: 12rem; height: auto; max-height: 2.25rem; padding-top: .625rem; object-fit: contain; object-position: left center; }
.topbar-actions, .operator-summary, .topbar-tenant { display: flex; align-items: center; gap: .9rem; }
.topbar-actions { min-width: 0; }
.topbar-tenant { min-width: 0; max-width: min(22rem, 28vw); padding-right: .9rem; border-right: 1px solid #dce5ef; }
.topbar-tenant-icon { width: 2.65rem; height: 2.65rem; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #cfe3f5; border-radius: .8rem; background: linear-gradient(145deg, #e7f5ff, #dcecff); color: var(--blue); }
.topbar-tenant-icon svg { width: 1.25rem; height: 1.25rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.topbar-tenant-copy { min-width: 0; display: grid; gap: .1rem; }
.topbar-tenant small { color: #718198; font-size: .7rem; }
.topbar-tenant strong { overflow: hidden; color: var(--navy); font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.operator-summary { border-radius: .8rem; color: inherit; text-decoration: none; }
.operator-summary:hover { color: var(--blue); }
.operator-summary:focus-visible { outline: 3px solid rgb(13 142 240 / 30%); outline-offset: 3px; }
.operator-avatar { width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: .8rem; background: linear-gradient(145deg, var(--blue), var(--sky)); color: #fff; font-weight: 850; }
.operator-summary > span:last-child { display: grid; gap: .1rem; }
.operator-summary strong { font-size: .84rem; }
.operator-summary small { color: #718198; font-size: .7rem; }
.logout-button { padding: .65rem .9rem; border: 1px solid #d9e3ef; border-radius: .7rem; background: #fff; color: #40516b; font-size: .78rem; font-weight: 750; }
.logout-button svg { display: none; width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.operator-management-link { padding: .65rem .9rem; border: 1px solid #b9d9f5; border-radius: .7rem; background: #eef8ff; color: #0758a9; font-size: .78rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.operator-management-link:hover { border-color: #8dc9f7; background: #e0f2ff; }
.operator-management-link:focus-visible { outline: 3px solid rgb(13 142 240 / 30%); outline-offset: 3px; }
.sidebar-toggle { position: sticky; bottom: 0; flex: 0 0 auto; width: 100%; min-height: 2.65rem; margin-top: 1rem; padding: .65rem .8rem; display: flex; align-items: center; justify-content: flex-start; gap: .7rem; border: 1px solid rgb(255 255 255 / 16%); border-radius: .75rem; background: rgb(255 255 255 / 8%); box-shadow: 0 -.55rem 1rem rgb(4 22 49 / 35%); color: rgb(255 255 255 / 76%); font-size: .76rem; font-weight: 800; transition: border-color .15s, background-color .15s, color .15s, width .2s ease; }
.sidebar-toggle:hover { border-color: rgb(69 185 251 / 55%); background: rgb(69 185 251 / 14%); color: #fff; }
.sidebar-toggle:focus-visible { outline: 3px solid rgb(13 142 240 / 25%); outline-offset: 2px; }
.sidebar-toggle svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
[data-sidebar-compact] .sidebar-toggle svg path:last-child { transform: rotate(180deg); transform-origin: center; }
.mobile-sidebar-trigger { display: none; }
.profile-security-card .detail-card-heading { align-items: center; }
.profile-security-card .secondary-link { margin-left: auto; }
.operator-active-check { min-height: 2.7rem; display: inline-flex; align-items: center; gap: .55rem; font-size: .82rem; font-weight: 700; }
.operator-permissions { margin-top: 1rem; padding: 1rem; border: 1px solid #d6e1ef; border-radius: .85rem; }
.operator-permissions legend { padding: 0 .4rem; color: #52637c; font-size: .78rem; font-weight: 800; }
.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.choice-grid label { display: flex; align-items: center; gap: .45rem; color: #40516b; font-size: .8rem; font-weight: 700; }
.app-workspace { width: 100%; min-height: 0; display: grid; grid-template-columns: 17rem minmax(0, 1fr); overflow: hidden; }
.app-sidebar { min-height: 0; padding: 2rem 1.15rem; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; border-right: 1px solid rgb(255 255 255 / 10%); background: linear-gradient(180deg, #082b5c 0%, #061d45 68%, #041631 100%); color: #fff; }
.module-navigation { flex: 1 0 auto; display: grid; align-content: start; gap: .45rem; }
.module-link { position: relative; min-width: 0; padding: .85rem; display: flex; align-items: center; gap: .8rem; border: 1px solid transparent; border-radius: .9rem; color: rgb(255 255 255 / 82%); text-decoration: none; transition: background .15s, border-color .15s, color .15s; }
.module-link:hover { border-color: rgb(255 255 255 / 14%); background: rgb(255 255 255 / 9%); color: #fff; }
.module-link.active { border-color: rgb(69 185 251 / 26%); background: linear-gradient(100deg, rgb(13 142 240 / 48%), rgb(13 142 240 / 26%)); box-shadow: 0 .55rem 1.3rem rgb(0 0 0 / 15%); color: #fff; }
.module-icon { flex: 0 0 auto; width: 2.35rem; height: 2.35rem; display: grid; place-items: center; border-radius: .75rem; background: rgb(69 185 251 / 14%); color: #71caff; }
.module-link.active .module-icon { background: rgb(255 255 255 / 14%); color: #fff; }
.module-icon svg { width: 1.15rem; height: 1.15rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.module-link > span:nth-child(2) { min-width: 0; display: grid; gap: .12rem; }
.module-link strong { font-size: .84rem; }
.module-link small { overflow: hidden; color: rgb(255 255 255 / 52%); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.module-group { min-width: 0; border: 1px solid transparent; border-radius: .9rem; }
.module-group[open] { border-color: rgb(255 255 255 / 13%); background: rgb(255 255 255 / 7%); }
.module-group summary { position: relative; padding: .85rem; display: flex; align-items: center; gap: .8rem; cursor: pointer; color: rgb(255 255 255 / 82%); list-style: none; }
.module-group summary::-webkit-details-marker { display: none; }
.module-group summary:hover, .module-group[open] summary { color: #fff; }
.module-group summary > span:nth-child(2) { min-width: 0; display: grid; gap: .12rem; }
.module-group summary strong { font-size: .84rem; }
.module-group summary small { overflow: hidden; color: rgb(255 255 255 / 52%); font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.module-group-chevron { margin-left: auto; font-size: 1.1rem; transition: transform .15s ease; }
.module-group[open] .module-group-chevron { transform: rotate(180deg); }
.module-group-items { padding: 0 .75rem .75rem 3.85rem; display: grid; gap: .2rem; }
.module-child-link { padding: .5rem .55rem; display: flex; align-items: center; gap: .5rem; border-radius: .55rem; color: rgb(255 255 255 / 68%); font-size: .78rem; font-weight: 700; text-decoration: none; }
.module-child-icon { width: 1rem; height: 1rem; display: grid; place-items: center; }
.module-child-icon svg { width: 1rem; height: 1rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.module-child-link:hover { background: rgb(255 255 255 / 9%); color: #fff; }
.module-child-link.active { background: rgb(13 142 240 / 34%); color: #fff; }
.module-description-tooltip { display: none; }
@media (hover: hover) and (min-width: 701px) {
    .module-description-tooltip { position: absolute; z-index: 30; left: 3.8rem; bottom: -.35rem; display: block; max-width: min(24rem, calc(100vw - 5rem)); padding: .55rem .7rem; transform: translateY(100%); border-radius: .55rem; background: #172b4d; box-shadow: 0 .65rem 1.35rem rgb(6 29 69 / 20%); color: #fff; font-size: .72rem; font-weight: 650; line-height: 1.35; opacity: 0; pointer-events: none; transition: opacity .15s ease, transform .15s ease; visibility: hidden; }
    .module-link:is(:hover, :focus-visible) .module-description-tooltip, .module-group summary:is(:hover, :focus-visible) .module-description-tooltip { transform: translateY(calc(100% + .2rem)); opacity: 1; visibility: visible; transition-delay: 2s; }
}
.app-workspace, .app-sidebar { transition: grid-template-columns .2s ease, width .2s ease, padding .2s ease; }
[data-sidebar-compact] .app-workspace { grid-template-columns: 5.25rem minmax(0, 1fr); }
[data-sidebar-compact] .app-sidebar { padding-inline: .7rem; overflow-x: hidden; }
[data-sidebar-compact] .module-link > span:nth-child(2),
[data-sidebar-compact] .module-group summary > span:nth-child(2),
[data-sidebar-compact] .module-group-chevron,
[data-sidebar-compact] .module-group-items { display: none; }
[data-sidebar-compact] .module-link,
[data-sidebar-compact] .module-group summary { justify-content: center; padding-inline: .7rem; }
[data-sidebar-compact] .sidebar-toggle { width: 2.65rem; padding-inline: 0; align-self: center; justify-content: center; }
[data-sidebar-compact] .sidebar-toggle span { display: none; }
[data-sidebar-compact] .module-group[open] { background: transparent; }
@media (hover: hover) and (min-width: 801px) {
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-workspace:has(.app-sidebar:is(:hover, :focus-within)) { grid-template-columns: 17rem minmax(0, 1fr); }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) { padding-inline: 1.15rem; overflow-x: visible; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-link > span:nth-child(2),
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-group summary > span:nth-child(2) { display: grid; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-group-chevron { display: inline; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-group-items { display: grid; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-link,
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-group summary { justify-content: flex-start; padding-inline: .85rem; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .sidebar-toggle { width: 100%; padding-inline: .8rem; align-self: stretch; justify-content: flex-start; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .sidebar-toggle span { display: inline; }
    [data-sidebar-compact]:not([data-sidebar-hover-suspended]) .app-sidebar:is(:hover, :focus-within) .module-group[open] { background: rgb(255 255 255 / 7%); }
}
.app-main { min-width: 0; width: 100%; min-height: 0; padding: clamp(2rem, 4vw, 3.5rem); overflow: auto; overscroll-behavior: contain; }
.success-alert { margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid #bfe6d4; border-radius: .9rem; background: #eaf9f2; color: #176846; font-weight: 700; }
.error-alert { margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid #f1c0bd; border-radius: .9rem; background: #fff2f1; color: #8f241d; font-weight: 700; }
.welcome-card { position: relative; isolation: isolate; padding: clamp(2rem, 5vw, 3.5rem); display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; overflow: hidden; border-radius: 1.8rem; color: #fff; background: linear-gradient(130deg, var(--navy), var(--blue) 58%, var(--azure)); box-shadow: 0 1.4rem 3rem rgb(6 29 69 / 16%); }
.welcome-card::after { position: absolute; z-index: -1; width: 22rem; height: 22rem; right: -9rem; top: -11rem; border: 3.5rem solid rgb(255 255 255 / 8%); border-radius: 50%; content: ""; }
.dark-eyebrow { color: rgb(255 255 255 / 68%); }
.welcome-card h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1; letter-spacing: -.05em; }
.welcome-card p:last-child { max-width: 40rem; margin: 1.15rem 0 0; color: rgb(255 255 255 / 78%); line-height: 1.7; }
.welcome-card .environment-badge { flex: 0 0 auto; border-color: rgb(255 255 255 / 26%); background: rgb(255 255 255 / 13%); color: #fff; }
.monthly-draft-dashboard { margin-top: 1.4rem; padding: 1.35rem 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; border: 1px solid #b9d9f5; border-radius: 1.2rem; background: #eef8ff; color: var(--navy); }.monthly-draft-dashboard[hidden] { display: none !important; }.monthly-draft-dashboard .section-label { margin: 0; color: var(--blue); }.monthly-draft-dashboard h2 { margin: .2rem 0; font-size: 1.1rem; }.monthly-draft-dashboard p:last-child { margin: 0; color: #42536c; }.monthly-draft-dashboard .primary-button { flex: 0 0 auto; }
.dashboard-grid { margin-top: 1.4rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.info-card { min-width: 0; padding: 1.25rem; display: flex; align-items: center; gap: 1rem; border: 1px solid var(--line); border-radius: 1.1rem; background: #fff; box-shadow: 0 .75rem 1.8rem rgb(6 29 69 / 5%); }
.card-icon { flex: 0 0 auto; width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border-radius: .85rem; background: linear-gradient(145deg, #e7f5ff, #dcecff); color: var(--blue); }
.card-icon svg { width: 1.25rem; height: 1.25rem; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.info-card div { min-width: 0; display: grid; gap: .2rem; }
.info-card small { color: #7b8aa0; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.info-card strong { overflow-wrap: anywhere; font-size: .9rem; }
.permissions-card { margin-top: 1.4rem; padding: 1.5rem; display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; border: 1px solid var(--line); border-radius: 1.2rem; background: #fff; }
.permissions-card > div { width: 100%; }
.permissions-card .section-label { color: var(--blue); }
.permissions-card h2 { margin: 0; font-size: 1.35rem; }
.permission-chip { padding: .5rem .7rem; border-radius: .65rem; background: #ebf5ff; color: #0758a9; font-size: .78rem; font-weight: 750; }
.empty-state { margin: 0; color: #718198; font-size: .9rem; }
.dashboard-page { width: 100%; }
.dashboard-welcome { padding-block: clamp(1.65rem, 3vw, 2.5rem); align-items: center; }
.dashboard-welcome h1 { font-size: clamp(2rem, 4vw, 3.25rem); }
.dashboard-welcome p:last-child { margin-top: .65rem; }
.dashboard-hero-action { flex: 0 0 auto; min-height: 3rem; padding: .75rem 1rem; display: inline-flex; align-items: center; gap: .55rem; border: 1px solid rgb(255 255 255 / 18%); border-radius: .8rem; background: rgb(13 142 240 / 82%); box-shadow: 0 .7rem 1.4rem rgb(0 29 72 / 20%); color: #fff; font-size: .8rem; font-weight: 800; text-decoration: none; }
.dashboard-hero-action:hover { background: #0878d2; }
.dashboard-hero-action span { font-size: 1.35rem; font-weight: 400; line-height: 1; }
.dashboard-kpis { margin-top: 1.25rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr)); gap: .9rem; }
.dashboard-kpi { min-width: 0; padding: 1.15rem; display: flex; align-items: center; gap: .9rem; border: 1px solid var(--line); border-radius: 1rem; background: #fff; box-shadow: 0 .7rem 1.6rem rgb(6 29 69 / 5%); color: inherit; text-decoration: none; transition: transform .15s, border-color .15s, box-shadow .15s; }
.dashboard-kpi:hover { transform: translateY(-2px); border-color: #bddbf6; box-shadow: 0 1rem 2rem rgb(6 29 69 / 9%); }
.dashboard-card-icon, .dashboard-task-icon, .dashboard-action-icon { flex: 0 0 auto; display: grid; place-items: center; }
.dashboard-card-icon { width: 3rem; height: 3rem; border-radius: .8rem; }
.dashboard-card-icon svg, .dashboard-task-icon svg, .dashboard-action-icon svg { width: 1.35rem; height: 1.35rem; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.dashboard-kpi > span:last-child { min-width: 0; display: grid; gap: .1rem; }
.dashboard-kpi small { color: #60718c; font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.dashboard-kpi strong { overflow-wrap: anywhere; color: var(--navy); font-size: clamp(1.55rem, 2.5vw, 2rem); line-height: 1.1; }
.dashboard-kpi em { overflow-wrap: anywhere; color: #52637c; font-size: .76rem; font-style: normal; }
.dashboard-tone-danger .dashboard-card-icon, .dashboard-tone-danger .dashboard-task-icon { background: #ffe9ea; color: #d9343b; }
.dashboard-tone-warning .dashboard-card-icon, .dashboard-tone-warning .dashboard-task-icon { background: #fff2d8; color: #df8500; }
.dashboard-tone-info .dashboard-card-icon, .dashboard-tone-info .dashboard-task-icon { background: #e4f3ff; color: #0878d2; }
.dashboard-tone-success .dashboard-card-icon, .dashboard-tone-success .dashboard-task-icon { background: #e2f7e9; color: #159352; }
.dashboard-tone-neutral .dashboard-card-icon, .dashboard-tone-neutral .dashboard-task-icon { background: #eaf0f7; color: #5d718c; }
.dashboard-primary-grid, .dashboard-secondary-grid { margin-top: 1.25rem; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(19rem, .95fr); gap: 1.1rem; }
.dashboard-panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 1.05rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(6 29 69 / 5%); }
.dashboard-panel > header { min-height: 3.75rem; padding: 1rem 1.15rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.dashboard-panel h2 { margin: 0; color: var(--navy); font-size: 1.1rem; }
.dashboard-task { min-height: 3.55rem; padding: .7rem 1rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; border-top: 1px solid #e9eff6; color: inherit; text-decoration: none; }
.dashboard-task:first-of-type { border-top: 0; }
.dashboard-task:hover { background: #f8fbff; }
.dashboard-task-icon { width: 2rem; height: 2rem; border-radius: .58rem; }
.dashboard-task-icon svg { width: 1.05rem; height: 1.05rem; }
.dashboard-task > strong { min-width: 0; overflow-wrap: anywhere; font-size: .8rem; }
.dashboard-task-badge { padding: .35rem .65rem; border-radius: 999px; font-size: .66rem; font-weight: 800; white-space: nowrap; }
.dashboard-tone-danger .dashboard-task-badge { background: #ffe3e5; color: #bc242d; }
.dashboard-tone-warning .dashboard-task-badge { background: #ffefcc; color: #a95f00; }
.dashboard-tone-info .dashboard-task-badge { background: #dff1ff; color: #075eaa; }
.dashboard-tone-neutral .dashboard-task-badge { background: #e8eef5; color: #52637c; }
.dashboard-chevron { color: #1a67ae; font-size: 1.35rem; line-height: 1; }
.dashboard-action-grid { padding: .85rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.dashboard-action-grid a { min-height: 4.5rem; padding: .8rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .65rem; border: 1px solid #d7e3ef; border-radius: .8rem; color: var(--ink); text-decoration: none; }
.dashboard-action-grid a:hover { border-color: #98ccef; background: #f5faff; }
.dashboard-action-grid strong { overflow-wrap: anywhere; font-size: .77rem; }
.dashboard-action-icon { width: 2.25rem; height: 2.25rem; border-radius: .65rem; background: #e7f4ff; color: #0873c9; }
.dashboard-action-grid a > span:last-child { color: #1a67ae; font-size: 1.2rem; }
.dashboard-empty { padding: 1.5rem; text-align: center; }
.dashboard-empty strong { color: var(--navy); }
.dashboard-empty p { margin: .4rem auto 0; max-width: 30rem; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.dashboard-chart > header { align-items: center; }
.dashboard-chart-legend { display: flex; gap: .8rem; color: #52637c; font-size: .68rem; font-weight: 700; }
.dashboard-chart-legend span { display: flex; align-items: center; gap: .3rem; }
.dashboard-chart-legend i { width: .6rem; height: .6rem; border-radius: 50%; }
.dashboard-chart-legend .registered, .dashboard-bars .registered { background: #0967b9; }
.dashboard-chart-legend .liquidated, .dashboard-bars .liquidated { background: #2faff4; }
.dashboard-bars { height: 14.5rem; padding: 1.4rem 1.15rem 1rem; display: grid; grid-template-columns: repeat(6, minmax(2.5rem, 1fr)); align-items: end; gap: .7rem; background: repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), #edf2f7 calc(25% - 1px), #edf2f7 25%); }
.dashboard-bar-group { height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: .55rem; align-items: end; }
.dashboard-bar-pair { height: 100%; display: flex; align-items: end; justify-content: center; gap: .22rem; }
.dashboard-bar-pair span { width: min(1.5rem, 40%); min-height: 2px; border-radius: .2rem .2rem 0 0; }
.dashboard-bar-group small { color: #52637c; font-size: .68rem; font-weight: 700; text-align: center; }
.dashboard-availability { padding-bottom: .5rem; }
.dashboard-availability > header small { color: var(--muted); font-size: .68rem; }
.dashboard-progress-row { padding: .9rem 1.15rem; border-top: 1px solid #edf2f7; }
.dashboard-progress-row:first-of-type { border-top: 0; }
.dashboard-progress-row > div:first-child { display: flex; justify-content: space-between; gap: 1rem; font-size: .77rem; }
.dashboard-progress-row > div:first-child span { color: var(--navy); font-weight: 850; }
.dashboard-progress { height: .62rem; margin-top: .55rem; overflow: hidden; border-radius: 999px; background: #e7eef6; }
.dashboard-progress span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #0871c6, #28a9ef); }
.dashboard-progress-row > small { margin-top: .4rem; display: block; color: #73839a; font-size: .64rem; }
.dashboard-recent { margin-top: 1.25rem; }
.dashboard-recent > header .section-label { margin-bottom: .15rem; color: var(--blue); font-size: .64rem; }
.dashboard-recent > header a { color: var(--blue); font-size: .75rem; font-weight: 800; text-decoration: none; }
.dashboard-recent-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.dashboard-recent-list article { min-width: 0; padding: 1rem 1.15rem; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; border-right: 1px solid #edf2f7; }
.dashboard-recent-list time { padding: .3rem .45rem; align-self: start; border-radius: .5rem; background: #edf6ff; color: #0766b5; font-size: .65rem; font-weight: 800; }
.dashboard-recent-list article div { min-width: 0; display: grid; gap: .2rem; }
.dashboard-recent-list strong, .dashboard-recent-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-recent-list strong { font-size: .76rem; }
.dashboard-recent-list small { color: var(--muted); font-size: .65rem; }
.dashboard-permissions { display: block; }
.dashboard-permissions summary { width: 100%; cursor: pointer; color: var(--blue); font-size: .8rem; font-weight: 800; }
.dashboard-permissions[open] summary { margin-bottom: 1rem; }
.page-heading { margin-bottom: 1.4rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.page-heading .section-label { color: var(--blue); }
.page-heading h1 { margin: 0; color: var(--navy); font-size: clamp(2.2rem, 5vw, 3.5rem); line-height: 1; letter-spacing: -.05em; }
.page-heading p:last-child { margin: .75rem 0 0; color: var(--muted); }
.record-count { flex: 0 0 auto; padding: .55rem .8rem; border: 1px solid #cfe4f8; border-radius: 999px; background: #eaf5ff; color: #0758a9; font-size: .77rem; font-weight: 800; }
.page-heading-actions, .detail-heading-actions { display: flex; align-items: center; gap: .65rem; }
.primary-link, .secondary-link { min-height: 2.65rem; padding: .65rem .9rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .72rem; font-size: .76rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.primary-link { background: linear-gradient(120deg, var(--blue), var(--azure)); color: #fff; box-shadow: 0 .5rem 1.2rem rgb(7 88 199 / 15%); }
.secondary-link { border: 1px solid #d6e1ef; background: #fff; color: #52637c; }
.data-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 1.2rem; background: #fff; box-shadow: 0 1rem 2.5rem rgb(6 29 69 / 5%); }
.data-toolbar { padding: 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--line); }
.data-toolbar h2 { margin: 0; font-size: 1.15rem; }
.data-toolbar p { margin: .3rem 0 0; color: var(--muted); font-size: .78rem; }
.search-form { display: flex; align-items: center; gap: .55rem; }
.search-field { min-width: min(20rem, 38vw); min-height: 2.75rem; padding: 0 .85rem; display: flex; align-items: center; gap: .6rem; border: 1px solid #d6e1ef; border-radius: .8rem; background: #fff; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.search-field:hover { border-color: #8dc9f7; background: #f8fbff; box-shadow: 0 .35rem 1rem rgb(13 142 240 / 7%); }
.search-field:focus-within { border-color: var(--azure); box-shadow: 0 0 0 .2rem rgb(13 142 240 / 10%); }
.search-field svg { flex: 0 0 auto; width: 1rem; height: 1rem; stroke: #6f86a5; stroke-width: 2; stroke-linecap: round; }
.search-field input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: var(--ink); }
.search-button, .pagination-link { min-height: 2.75rem; padding: .65rem .85rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--blue); border-radius: .75rem; background: var(--blue); color: #fff; font-size: .76rem; font-weight: 800; text-decoration: none; }
.clear-search { color: #60718c; font-size: .75rem; font-weight: 700; text-decoration: underline; text-underline-offset: .2rem; }
.responsive-table { width: 100%; overflow-x: auto; }
.responsive-table table { width: 100%; border-collapse: collapse; font-size: .79rem; }
.archive-index-page { height: calc(100dvh - 5rem - clamp(4rem, 8vw, 7rem)); min-height: 28rem; display: flex; flex-direction: column; overflow: hidden; }
.archive-index-page > .page-heading, .archive-index-page > .archive-tabs { flex: 0 0 auto; }
.archive-list-panel { min-height: 0; display: flex; flex: 1 1 auto; flex-direction: column; }
.archive-list-panel > .data-toolbar, .archive-list-panel > .pagination { flex: 0 0 auto; }
.agenda-filter-panel { flex: 0 0 auto; overflow: visible; }
.agenda-activities-panel { margin-top: 1.25rem; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.agenda-activities-panel > .data-toolbar { position: sticky; top: 0; z-index: 2; background: #fff; }
.agenda-filter-form { padding: 1rem 1.25rem 1.2rem; display: grid; grid-template-columns: 10.5rem 10.5rem minmax(14rem, 1fr) auto auto auto; align-items: end; gap: .8rem; }
.agenda-filter-form .form-field { gap: .35rem; }
.agenda-filter-form .form-field input { min-height: 2.6rem; padding: .55rem .7rem; }
.agenda-checkbox { min-height: 2.6rem; padding: .55rem .75rem; display: inline-flex; align-items: center; gap: .55rem; border: 1px solid #d6e1ef; border-radius: .75rem; background: #f8fbff; color: #42536c; font-size: .74rem; font-weight: 800; white-space: nowrap; cursor: pointer; }
.agenda-checkbox:hover { border-color: #8dc9f7; background: #edf7ff; }
.agenda-checkbox input { width: 1.05rem; height: 1.05rem; margin: 0; accent-color: var(--blue); }
.agenda-filter-form .search-button { min-height: 2.6rem; }
.agenda-activities-panel .relation-record { flex: 0 0 auto; margin-inline: 1rem; }
.agenda-activities-panel .relation-record:first-of-type { margin-top: 1rem; }
.agenda-activities-panel .relation-record:last-of-type { margin-bottom: 1rem; }
.archive-scroll-table { min-height: 0; flex: 1 1 auto; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.archive-scroll-table thead th { position: sticky; top: 0; z-index: 3; box-shadow: 0 1px 0 var(--line); }
.beneficiaries-table { min-width: 96rem; }
.responsive-table tbody tr:not(.funding-group-row) { transition: background-color .18s ease, box-shadow .18s ease; }
.responsive-table tbody tr:not(.funding-group-row):nth-child(even) { background: #f3f8ff; }
.responsive-table tbody tr:not(.funding-group-row):hover { background: #e3f1ff; box-shadow: inset .2rem 0 0 var(--azure); }
.responsive-table th { padding: .8rem 1rem; background: #f7faff; color: #718198; font-size: .65rem; letter-spacing: .065em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.responsive-table td { padding: 1rem; border-top: 1px solid #edf2f7; color: #40516b; vertical-align: middle; }
.beneficiaries-table td:first-child { min-width: 12rem; }
.beneficiaries-table td:nth-child(5) { min-width: 13rem; }
.beneficiaries-table td:nth-child(n+7) { min-width: 11rem; vertical-align: top; }
.responsive-table td strong { display: block; color: var(--ink); font-size: .84rem; }
.responsive-table td small { display: block; margin-top: .2rem; color: #8996a8; font-size: .67rem; }
.commitment-filters, .commitment-entry { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; padding: 0 1rem 1rem; }
.commitment-filters input, .commitment-filters select, .commitment-entry input { min-height: 2.5rem; border: 1px solid var(--line); border-radius: .55rem; padding: .45rem .6rem; background: #fff; color: var(--ink); }
.commitment-filters input { min-width: 16rem; flex: 1 1 18rem; }
.commitment-entry { margin: 0 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.commitment-entry label { display: grid; gap: .3rem; color: var(--muted); font-size: .72rem; font-weight: 700; }
.commitment-entry div { display: grid; gap: .5rem; }
.fiscal-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .74rem; }
.status-badge { display: inline-flex; padding: .4rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 800; white-space: nowrap; }
.status-badge.active { background: #eaf9f2; color: #176846; }
.status-badge.inactive { background: #f1f3f6; color: #657287; }
.cig-count-tooltip { position: relative; display: inline-flex; }
.cig-count-tooltip .status-badge { min-width: 2rem; justify-content: center; text-decoration: none; }
.cig-tooltip-content { position: fixed; z-index: 30; width: max-content; max-width: min(18rem, calc(100vw - 1.25rem)); padding: .7rem .8rem; display: grid; gap: .45rem; border: 1px solid #bfd8ef; border-radius: .7rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(6 29 69 / 18%); color: var(--ink); font-size: .7rem; }
.cig-tooltip-content[hidden] { display: none; }
.cig-tooltip-content > strong { font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.cig-tooltip-list { display: flex; flex-wrap: wrap; gap: .3rem; }
.cig-tooltip-list span { padding: .28rem .42rem; border-radius: .45rem; background: #edf7ff; color: #0758a9; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .66rem; font-weight: 800; }
.value-list { display: grid; gap: .28rem; }
.value-list span:not(:only-child) { position: relative; padding-left: .65rem; }
.value-list span:not(:only-child)::before { position: absolute; left: 0; color: var(--azure); content: "•"; }
.row-actions { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.row-actions form { margin: 0; display: inline-flex; }
.row-action { min-height: 2.35rem; padding: .55rem .7rem; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: .65rem; background: linear-gradient(120deg, var(--blue), var(--azure)); color: #fff; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 800; line-height: 1; text-decoration: none; white-space: nowrap; }
.row-action.secondary { border: 1px solid #cfe0f1; background: #fff; color: #0758a9; }
.operator-log-page { height: calc(100dvh - 5rem - clamp(4rem, 8vw, 7rem)); min-height: 32rem; display: flex; flex-direction: column; overflow: hidden; }
.operator-log-page > .page-heading, .operator-log-filter-panel { flex: 0 0 auto; }
.operator-log-filter-panel { margin-bottom: 1rem; overflow: visible; }
.operator-log-filters { padding: 1rem 1.25rem; display: grid; grid-template-columns: minmax(13rem, 1.1fr) minmax(16rem, 1.5fr) 10.5rem 10.5rem auto auto; align-items: end; gap: .8rem; }
.operator-log-filters .form-field { gap: .35rem; }
.operator-log-filters input, .operator-log-filters select { min-height: 2.6rem; padding: .55rem .7rem; border: 1px solid #d6e1ef; border-radius: .75rem; background: #fff; color: var(--ink); }
.operator-log-filters .search-button { min-height: 2.6rem; }
.operator-log-filters .clear-search { align-self: center; white-space: nowrap; }
.operator-log-errors { margin: 0 1.25rem 1rem; }
.operator-log-results { min-height: 0; }
.operator-log-table { min-width: 86rem; }
.operator-log-table td:first-child { width: 11rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.operator-log-table td:nth-child(2) { width: 17rem; }
.operator-log-table td:nth-child(4) { width: 10rem; }
.operator-log-table td:nth-child(5) { width: 25rem; }
.operator-log-ip { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; }
.operator-log-user-agent { max-width: 25rem; display: block; overflow: hidden; color: #60718c; font-size: .7rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.pagination { padding: 1rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); color: #718198; font-size: .75rem; }
.pagination > div { display: flex; gap: .5rem; }
.pagination-link { min-height: 2.4rem; background: #fff; color: var(--blue); }
.pagination-link.disabled { border-color: #dfe7f0; color: #a1adbc; }
.empty-results { padding: 4rem 1rem; text-align: center; }
.empty-results strong { color: var(--navy); }
.empty-results p { margin: .4rem 0 0; color: var(--muted); font-size: .83rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.detail-heading { margin-bottom: 1.5rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.back-link { margin-bottom: 1.25rem; display: inline-flex; color: var(--blue); font-size: .8rem; font-weight: 800; text-decoration: none; }
.detail-heading .section-label { color: var(--blue); }
.detail-heading h1 { margin: 0; color: var(--navy); font-size: clamp(2.15rem, 4.5vw, 3.7rem); line-height: 1; letter-spacing: -.05em; }
.detail-heading p:last-child { margin: .65rem 0 0; color: var(--muted); }
.detail-tabs { margin-bottom: 1.25rem; padding: .35rem; display: flex; gap: .3rem; overflow-x: auto; border: 1px solid var(--line); border-radius: 1rem; background: #eaf1f9; }
.archive-tabs { margin: -1rem 0 1.25rem; padding: .35rem; display: flex; gap: .3rem; overflow-x: auto; border: 1px solid var(--line); border-radius: 1rem; background: #eaf1f9; }
.archive-split-layout { display: grid; grid-template-columns: minmax(20rem, .75fr) minmax(32rem, 1.25fr); align-items: start; gap: 1.25rem; }
.archive-tab { flex: 0 0 auto; min-height: 2.65rem; padding: .65rem 1rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: .75rem; color: #5d6d84; font-size: .76rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.archive-tab:hover { color: var(--blue); }
.archive-tab.active { border-color: #d3e2f2; background: #fff; box-shadow: 0 .4rem 1rem rgb(6 29 69 / 7%); color: var(--blue); }
.detail-tab { flex: 0 0 auto; min-height: 2.8rem; padding: .7rem 1rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: .75rem; color: #5d6d84; font-size: .78rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.detail-tab:hover { color: var(--blue); }
.detail-tab.active { border-color: #d3e2f2; background: #fff; box-shadow: 0 .4rem 1rem rgb(6 29 69 / 7%); color: var(--blue); }
.detail-tab:focus-visible { outline: 3px solid rgb(13 142 240 / 25%); outline-offset: 2px; }
.embedded-profile-page { min-height: 100vh; padding: 1.1rem; background: #f7faff; }
.embedded-profile-page main { min-width: 0; }
.embedded-profile-page .detail-tabs { margin-top: 0; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.detail-card { min-width: 0; padding: 1.35rem; border: 1px solid var(--line); border-radius: 1.15rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(6 29 69 / 4%); }
.detail-card-wide { grid-column: 1 / -1; }
.detail-card-heading { margin-bottom: 1.2rem; display: flex; align-items: center; gap: .85rem; }
.detail-card-heading .section-label { margin-bottom: .2rem; color: var(--blue); font-size: .62rem; }
.detail-card-heading h2 { margin: 0; font-size: 1.08rem; }
.detail-card-icon { flex: 0 0 auto; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .75rem; background: linear-gradient(145deg, #e7f5ff, #dcecff); color: var(--blue); font-size: .66rem; font-weight: 900; }
.detail-list { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.detail-list.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.detail-list > div { min-width: 0; padding: .85rem; border-radius: .8rem; background: #f7faff; }
.detail-list dt { margin-bottom: .28rem; color: #7b8aa0; font-size: .64rem; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }
.detail-list dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: .84rem; font-weight: 700; }
.detail-chips { display: flex; flex-wrap: wrap; gap: .55rem; }
.detail-chips > span { padding: .55rem .7rem; border-radius: .65rem; background: #eaf5ff; color: #0758a9; font-size: .75rem; font-weight: 800; }
.detail-empty { margin: 0; color: var(--muted); font-size: .83rem; }
.services-heading .record-count { margin-left: auto; }
.detail-services-table { max-height: clamp(20rem, calc(100vh - 22rem), 48rem); overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; border: 1px solid var(--line); border-radius: .85rem; }
.detail-services-table table { min-width: 88rem; }
.detail-services-table thead th { position: sticky; top: 0; z-index: 4; box-shadow: 0 1px 0 var(--line); }
.funding-group-row td { padding: .85rem 1rem; border-top: .8rem solid #f3f7fc; background: #eaf5ff; }
.funding-group-row:first-child td { border-top: 0; }
.funding-group-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.funding-group-summary > div:first-child { min-width: 0; display: grid; gap: .15rem; }
.funding-group-summary > div:first-child > span { color: var(--blue); font-size: .65rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.funding-group-summary strong { color: var(--navy); font-size: .94rem; }
.funding-group-summary small { overflow: hidden; color: #6f819a; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
.funding-group-stats { flex: 0 0 auto; display: flex; align-items: center; gap: .45rem; }
.funding-group-stats span { padding: .42rem .58rem; border: 1px solid #c9e1f6; border-radius: 999px; background: #fff; color: #49627e; font-size: .68rem; font-weight: 800; white-space: nowrap; }
.funding-actions { display: flex !important; align-items: center; gap: .45rem; }
.funding-actions form { margin: 0; }
.danger-link { min-height: 2.35rem; padding: .55rem .7rem; border: 1px solid #efc2be; border-radius: .65rem; background: #fff5f4; color: #a82e24; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 800; }
.danger-link:hover { border-color: #dc837b; background: #ffe8e5; }
.locked-record { display: inline-flex; padding: .45rem .6rem; border-radius: .65rem; background: #f0f3f7; color: #657287; font-size: .69rem; font-weight: 800; white-space: nowrap; }
.detail-notes { margin: 0; padding: 1rem; border-radius: .85rem; background: #f7faff; color: #40516b; font-size: .85rem; line-height: 1.65; white-space: pre-wrap; }
.tab-placeholder { min-height: 18rem; display: flex; align-items: center; justify-content: center; gap: 1rem; text-align: left; }
.tab-placeholder .section-label { margin-bottom: .35rem; color: var(--blue); }
.tab-placeholder h2 { margin: 0; font-size: 1.25rem; }
.tab-placeholder p:last-child { max-width: 35rem; margin: .65rem 0 0; color: var(--muted); font-size: .84rem; line-height: 1.6; }
.form-heading { margin-bottom: 1.5rem; }
.form-heading .section-label { color: var(--blue); }
.form-heading h1 { margin: 0; color: var(--navy); font-size: clamp(2.1rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.05em; }
.form-heading p:last-child { margin: .7rem 0 0; color: var(--muted); }
.validation-summary { margin-bottom: 1.2rem; padding: 1rem 1.15rem; border: 1px solid #f1c0bd; border-radius: .9rem; background: #fff2f1; color: #8f241d; font-size: .82rem; }
.validation-summary ul { margin: .55rem 0 0; padding-left: 1.2rem; line-height: 1.6; }
.beneficiary-form { display: grid; gap: 1rem; }
.form-card { min-width: 0; padding: 1.35rem; border: 1px solid var(--line); border-radius: 1.15rem; background: #fff; box-shadow: 0 .8rem 2rem rgb(6 29 69 / 4%); }
.form-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-grid { display: grid; gap: 1rem; }
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-grid.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.identity-code-row { max-width: 48rem; margin-bottom: 1rem; }
.registry-search-control { display: flex; align-items: stretch; gap: .6rem; }
.registry-search-control input { flex: 1 1 auto; }
.registry-search-button { flex: 0 0 auto; min-height: 2.85rem; padding: .65rem 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border: 0; border-radius: .75rem; background: linear-gradient(120deg, var(--blue), var(--azure)); color: #fff; cursor: pointer; font: inherit; font-weight: 800; box-shadow: 0 .55rem 1.1rem rgb(7 88 199 / 16%); transition: transform .15s, box-shadow .15s, opacity .15s; }
.registry-search-button:hover { transform: translateY(-1px); box-shadow: 0 .75rem 1.35rem rgb(7 88 199 / 22%); }
.registry-search-button:focus-visible { outline: 3px solid rgb(13 142 240 / 25%); outline-offset: 2px; }
.registry-search-button:disabled { cursor: wait; opacity: .65; transform: none; }
.registry-search-button svg { width: 1.05rem; height: 1.05rem; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.registry-search-status:empty { display: none; }
.registry-search-status.is-success { color: #087443; }
.funding-definition-grid { margin-top: .85rem; display: grid; grid-template-columns: minmax(0, 2fr) minmax(12rem, 1fr); gap: 1rem; }
.funding-period-grid { margin-top: 1rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.form-field { min-width: 0; display: grid; align-content: start; gap: .4rem; color: #42536c; font-size: .75rem; font-weight: 800; }
.form-field-wide { grid-column: span 2; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-width: 0; min-height: 2.85rem; padding: .68rem .8rem; border: 1px solid #d6e1ef; border-radius: .75rem; outline: 0; background: #fff; color: var(--ink); font: inherit; font-weight: 600; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: #8dc9f7; background: #f8fbff; box-shadow: 0 .35rem 1rem rgb(13 142 240 / 7%); }
.form-field textarea { resize: vertical; line-height: 1.55; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--azure); box-shadow: 0 0 0 .22rem rgb(13 142 240 / 10%); }
.form-field small, .form-error { color: #b42318; font-size: .68rem; }
.form-field .field-help { color: #7b8da5; font-weight: 600; }
.percentage-field[hidden], .form-field option[hidden] { display: none; }
.funding-preview { margin-top: 1rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.funding-preview > div { min-width: 0; padding: .85rem 1rem; display: grid; gap: .25rem; border: 1px solid #dce9f6; border-radius: .85rem; background: #f6faff; }
.funding-preview span { color: #7b8aa0; font-size: .65rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.funding-preview strong { color: var(--navy); font-size: .95rem; }
.uppercase-input { text-transform: uppercase; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.choice-field { min-width: 0; padding: .7rem; display: flex; align-items: flex-start; gap: .55rem; border: 1px solid #e2eaf4; border-radius: .75rem; background: #f9fbfe; color: #465873; font-size: .75rem; font-weight: 700; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.choice-field:hover { border-color: #8dc9f7; background: #edf7ff; box-shadow: 0 .35rem 1rem rgb(13 142 240 / 7%); }
.choice-field input { flex: 0 0 auto; margin-top: .1rem; accent-color: var(--blue); }
.health-form { display: grid; gap: 1.25rem; }
.health-evaluation-grid { margin-top: .25rem; }
.health-subsection { padding-top: 1.1rem; display: grid; gap: 1rem; border-top: 1px solid var(--line); }
.health-subsection h3 { margin: .1rem 0 .25rem; color: var(--navy); font-size: 1rem; }
.health-subsection p { margin: 0; color: var(--muted); font-size: .76rem; }
.health-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.health-code-search { max-width: 34rem; }
.health-service-list { max-height: 26rem; padding: .55rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; overflow-y: auto; border: 1px solid var(--line); border-radius: .9rem; background: #f8fbff; }
.health-service-list [data-service-code][hidden], .health-service-list [data-service-code-empty][hidden] { display: none; }
.health-service-list .detail-empty { grid-column: 1 / -1; }
.health-form-actions { margin-top: .25rem; }
.relation-create-card, .relation-history-card { display: grid; gap: 1.1rem; }
.relation-form { display: grid; gap: 1rem; }
.relation-form-submit { display: flex; justify-content: flex-end; }
.relation-record { border: 1px solid var(--line); border-radius: .9rem; background: #fff; overflow: hidden; }
.relation-record + .relation-record { margin-top: .7rem; }
.relation-record summary { padding: .9rem 1rem; display: grid; grid-template-columns: 7rem minmax(0, 1fr) auto; align-items: center; gap: .8rem; cursor: pointer; list-style: none; transition: background-color .15s; }
.relation-record summary::-webkit-details-marker { display: none; }
.relation-record summary:hover { background: #f2f8ff; }
.relation-date { color: var(--blue); font-size: .75rem; font-weight: 850; }
.relation-title { min-width: 0; display: grid; gap: .2rem; }
.relation-title strong { color: var(--navy); font-size: .82rem; overflow-wrap: anywhere; }
.relation-title small { color: var(--muted); font-size: .68rem; }
.relation-open { color: var(--blue); font-size: .72rem; font-weight: 800; }
.relation-content { padding: 1rem; display: grid; gap: 1rem; border-top: 1px solid var(--line); background: #fbfdff; }
.record-details { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.record-details div { padding: .7rem .8rem; border: 1px solid #dce6f1; border-radius: .65rem; background: #fff; }
.record-details dt { color: #718198; font-size: .67rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.record-details dd { margin: .2rem 0 0; color: #263d5b; font-size: .84rem; font-weight: 700; }
.relation-text { color: #344760; font-size: .8rem; line-height: 1.65; white-space: normal; }
.relation-documents { padding: .9rem; display: grid; gap: .75rem; border: 1px solid #dce9f6; border-radius: .8rem; background: #fff; }
.relation-documents h3 { margin: 0; color: var(--navy); font-size: .85rem; }
.attachment-list { margin: 0; padding: 0; display: grid; gap: .45rem; list-style: none; }
.attachment-list li { padding: .65rem .75rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-radius: .65rem; background: #f4f8fd; }
.agenda-attachment { padding: .65rem .75rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-radius: .65rem; background: #f4f8fd; }
.agenda-attachment + .agenda-attachment { margin-top: .45rem; }
.agenda-attachment a { min-width: 0; display: grid; gap: .15rem; color: var(--blue); text-decoration: none; overflow-wrap: anywhere; }
.agenda-attachment a small { color: var(--muted); font-size: .65rem; }
.agenda-attachment form { margin: 0; flex: 0 0 auto; }
.attachment-list a { min-width: 0; display: grid; gap: .15rem; color: var(--blue); text-decoration: none; overflow-wrap: anywhere; }
.attachment-list a small { color: var(--muted); font-size: .65rem; }
.attachment-upload { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .75rem; }
.relation-delete { display: flex; justify-content: flex-end; }
.modules-card { display: grid; gap: 1.1rem; }
.module-catalog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.module-item { min-width: 0; padding: 1rem; display: grid; align-content: start; gap: .8rem; border: 1px solid var(--line); border-radius: .95rem; background: #fff; transition: border-color .15s, box-shadow .15s, transform .15s; }
.module-item:hover { border-color: #8dc9f7; box-shadow: 0 .65rem 1.5rem rgb(13 142 240 / 8%); transform: translateY(-1px); }
.module-item-heading { display: flex; align-items: flex-start; gap: .75rem; }
.module-pdf-icon { width: 2.5rem; height: 2.5rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: .7rem; background: linear-gradient(145deg, #0d8ef0, #0758c7); color: #fff; font-size: .62rem; font-weight: 900; }
.module-item h3 { margin: 0; color: var(--navy); font-size: .88rem; }
.module-item p { margin: .25rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.module-item details { border-top: 1px solid var(--line); }
.module-item summary { padding-top: .75rem; color: var(--blue); cursor: pointer; font-size: .75rem; font-weight: 850; }
.module-form { padding-top: .9rem; display: grid; gap: .85rem; }
.module-claimant-fields[hidden] { display: none; }
.module-family-list { display: grid; gap: .7rem; }
.module-modal-button { width: 100%; min-height: 2.65rem; padding: .7rem .9rem; border: 1px solid #b9dafa; border-radius: .75rem; background: #edf7ff; color: var(--blue); cursor: pointer; font: inherit; font-size: .75rem; font-weight: 850; transition: border-color .15s, box-shadow .15s, background-color .15s, transform .15s; }
.module-modal-button:hover { border-color: var(--azure); background: #e0f2ff; box-shadow: 0 .5rem 1.2rem rgb(13 142 240 / 10%); transform: translateY(-1px); }
.app-modal { width: min(94vw, 78rem); max-width: none; height: min(92vh, 58rem); max-height: none; padding: 0; overflow: hidden; border: 0; border-radius: 1.15rem; background: #fff; box-shadow: 0 2rem 5rem rgb(3 22 55 / 28%); }
.app-modal::backdrop { background: rgb(3 17 39 / 58%); backdrop-filter: blur(3px); }
.app-modal > form { height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.app-modal-header { padding: 1.15rem 1.3rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, #f5faff, #fff); }
.app-modal-header h2 { margin: .15rem 0 .3rem; color: var(--navy); font-size: 1.35rem; }
.app-modal-header p { margin: 0; color: var(--muted); font-size: .76rem; }
.app-modal-header .section-label { color: var(--blue); font-size: .65rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.modal-close { width: 2.45rem; height: 2.45rem; flex: 0 0 auto; display: grid; place-items: center; border: 0; border-radius: .7rem; background: #eaf3fc; color: #46617e; cursor: pointer; font-size: 1.5rem; line-height: 1; transition: background-color .15s, color .15s, transform .15s; }
.modal-close:hover { background: #dceeff; color: var(--blue); transform: rotate(3deg); }
.app-modal-body { padding: 1.2rem 1.3rem 2rem; overflow: auto; overscroll-behavior: contain; background: #f7faff; }
.app-modal-footer { padding: .9rem 1.3rem; display: flex; align-items: center; justify-content: flex-end; gap: .7rem; border-top: 1px solid var(--line); background: #fff; }
.commitment-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.commitment-funding-button, .commitment-submit-button { min-height: 2.5rem; padding: .55rem .85rem; border: 0; cursor: pointer; font: inherit; font-size: .76rem; font-weight: 800; }
.commitment-funding-modal { display: none; grid-template-rows: auto minmax(0, 1fr); }
.commitment-funding-modal[open] { display: grid; }
.commitment-funding-body { min-height: 0; padding: 0; }
.commitment-funding-body .funding-detail { min-height: 100%; }
.embedded-page { min-height: 100%; background: #f3f8ff; }
.funding-detail { padding: 1rem; display: grid; gap: .85rem; background: #f3f8ff; }
.funding-detail-card { padding: 1rem; border: 1px solid #dce8f5; border-radius: .9rem; background: #fff; }
.funding-detail-card h1 { margin: .2rem 0; color: var(--navy); font-size: 1.1rem; }
.funding-detail-subtitle, .funding-detail-note { margin: .25rem 0 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.funding-detail-grid { margin: .85rem 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1rem; }
.funding-detail-grid div { min-width: 0; }
.funding-detail-grid dt { color: var(--muted); font-size: .67rem; font-weight: 750; }
.funding-detail-grid dd { margin: .2rem 0 0; color: var(--ink); font-size: .78rem; font-weight: 750; overflow-wrap: anywhere; }
.mass-funding-page { height: calc(100dvh - 5rem - clamp(4rem, 8vw, 7rem)); min-height: 28rem; display: flex; flex-direction: column; gap: 1rem; overflow: hidden; }
.mass-funding-page > .page-heading, .mass-funding-page > .mass-funding-filter, .mass-funding-page > .mass-funding-intro, .mass-funding-page > .empty-results { flex: 0 0 auto; }
.mass-funding-page > form[data-mass-funding-form], .mass-funding-page > form[data-mass-edit-form] { min-height: 0; display: flex; flex: 1 1 auto; flex-direction: column; }
.mass-funding-page > form > .mass-funding-tools { flex: 0 0 auto; }
.mass-funding-filter, .mass-funding-intro, .mass-funding-tools { padding: 1rem; }
.mass-funding-filter { position: relative; z-index: 2; overflow: visible; }
.mass-funding-filter .family-suggestions { z-index: 20; }
.mass-funding-filter .form-grid { grid-template-columns: minmax(0, 1.3fr) minmax(11rem, .7fr) auto; align-items: end; gap: .7rem; }
.mass-funding-filter .mass-edit-filter-grid { grid-template-columns: minmax(0, 1.3fr) minmax(9rem, .55fr) minmax(9rem, .55fr) auto; }
.mass-funding-filter .form-actions { position: static; margin: 0; padding: 0; display: flex; align-items: center; justify-content: flex-end; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
.mass-funding-filter .form-actions .primary-button { min-height: 2.65rem; white-space: nowrap; }
.mass-funding-intro { display: grid; gap: .25rem; }
.mass-funding-intro strong { color: var(--navy); }
.mass-funding-intro span, .mass-funding-intro p, .mass-funding-tools span { margin: 0; color: var(--muted); font-size: .75rem; }
.mass-funding-tools { margin-bottom: 1rem; display: grid; gap: .85rem; }
.mass-funding-tools-heading { display: grid; gap: .2rem; }
.mass-funding-tools-footer { padding-top: .85rem; display: flex; align-items: end; flex-wrap: wrap; gap: .7rem; border-top: 1px solid var(--line); }
.mass-funding-tools label { display: grid; gap: .3rem; color: var(--muted); font-size: .7rem; font-weight: 750; }
.mass-funding-tools input, .mass-funding-tools select { min-height: 2.45rem; padding: .45rem .6rem; border: 1px solid #cbd9e7; border-radius: .65rem; background: #fff; }
.mass-funding-list { min-height: 0; display: grid; flex: 1 1 auto; align-content: start; gap: .8rem; padding: .8rem; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.mass-funding-row { padding: .95rem; border: 1px solid #dce8f5; border-radius: .9rem; background: #fbfdff; }
.mass-funding-row:nth-child(even) { background: #f4f8fd; }
.mass-funding-row.is-excluded { border-color: #d7dde5; background: #edf0f3; }
.mass-funding-row.is-excluded > :not(header) { opacity: .7; }
.mass-funding-row.is-excluded .form-field > span, .mass-funding-row.is-excluded header strong { color: #708095; }
.sisar-mapping-form { display: grid; gap: 1rem; padding: 1rem; }
.sisar-mapping-form > .mass-funding-tools-heading { padding-bottom: .85rem; border-bottom: 1px solid var(--line); }
.sisar-mappings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.sisar-mapping { min-width: 0; margin: 0; border: 1px solid var(--line); border-radius: .8rem; padding: .75rem; display: grid; grid-template-columns: minmax(0, 1fr) 10rem; align-items: end; gap: .65rem; background: #f9fbfe; }
.sisar-mapping legend { padding: 0 4px; color: var(--ink); font-size: 12px; font-weight: 800; }
.sisar-mapping .form-field { min-width: 0; }
.sisar-mapping .form-field > span { min-height: 1rem; }
.sisar-fund-autocomplete { position: relative; z-index: 1; }
.sisar-fund-autocomplete:focus-within { z-index: 5; }
.sisar-fund-autocomplete .family-suggestions { z-index: 20; max-height: 14rem; overflow: auto; }
.sisar-fund-autocomplete .family-suggestions [data-sisar-fund-option][hidden], .sisar-fund-autocomplete .family-empty[hidden] { display: none !important; }
.funding-autocomplete .family-suggestions button[role=option] { display: grid; grid-template-columns: minmax(0, 1fr); gap: .2rem; }
.funding-autocomplete .family-suggestions button[role=option][hidden] { display: none !important; }
.funding-autocomplete .family-suggestions .fund-option-details { width: 100%; display: flex; align-items: center; justify-content: flex-start; gap: .2rem; }
.funding-autocomplete .fund-option-details span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.funding-autocomplete .fund-option-details span:last-child { flex: 0 0 auto; }
.sisar-service-code { grid-column: 1 / -1; margin: -.1rem 0 0; color: #5a6e87; font-size: .7rem; line-height: 1.4; }
.sisar-service-code strong { color: var(--navy); }
.sisar-upload { display: grid; gap: .4rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.sisar-upload input[type=file] { width: 100%; min-height: 2.5rem; padding: .4rem .55rem; border: 1px solid #cbd9e7; border-radius: .65rem; background: #fff; }
.sisar-upload p, .sisar-preview-intro p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.sisar-preview-intro { display: grid; gap: 3px; }
.sisar-preview-list { display: flex; max-height: calc(100vh - 310px); overflow: auto; flex-direction: column; padding: 8px; }
.sisar-row { border: 1px solid var(--line); border-radius: 10px; padding: 13px; background: #fff; }
.sisar-row:nth-child(even) { background: #f8fbff; }
.sisar-row + .sisar-row { margin-top: 8px; }
.sisar-row header { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.sisar-row header div { display: grid; gap: 2px; }
.sisar-row header small { color: var(--muted); font-size: 11px; }
.sisar-row header .sisar-row-summary { display: grid; gap: 2px; margin: 0 0 0 14px; padding-left: 18px; border-left: 1px solid var(--line); color: var(--text); font-size: 13px; line-height: 1.35; }
.sisar-row-summary span { color: var(--muted); font-weight: 600; }
.sisar-amount-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sisar-row.is-excluded { background: #edf1f5; border-color: #d8e0e9; opacity: .82; }
.sisar-row.is-excluded .form-field { color: #7a8798; }
.mass-funding-row > header { margin-bottom: .9rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: .65rem; }
.mass-funding-row header div { display: grid; gap: .15rem; }
.mass-funding-row header strong { color: var(--navy); font-size: .85rem; }
.mass-funding-row header small, .mass-funding-row header p { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.4; }
.mass-include { display: inline-flex; align-items: center; gap: .35rem; color: var(--blue); font-size: .72rem; font-weight: 800; white-space: nowrap; }
.secondary-button { min-height: 2.65rem; padding: .65rem 1rem; border: 1px solid #cbd9e7; border-radius: .72rem; background: #fff; color: #425a76; cursor: pointer; font: inherit; font-size: .75rem; font-weight: 800; transition: border-color .15s, background-color .15s, color .15s; }
.secondary-button:hover { border-color: #8dc9f7; background: #edf7ff; color: var(--blue); }
.modal-version-note { margin: 0 0 1rem; padding: .75rem .9rem; border: 1px solid #bfe4d1; border-radius: .75rem; background: #effbf5; color: #17603d; font-size: .73rem; font-weight: 700; }
.allegato-c-section { padding: 1.1rem; display: grid; gap: 1rem; border: 1px solid #dce9f6; border-radius: 1rem; background: #fff; }
.allegato-c-section + .allegato-c-section { margin-top: 1rem; }
.allegato-c-section-heading { display: flex; align-items: flex-start; gap: .75rem; }
.allegato-c-section-heading > span { width: 2.2rem; height: 2.2rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: .65rem; background: linear-gradient(145deg, var(--azure), var(--blue)); color: #fff; font-size: .65rem; font-weight: 900; }
.allegato-c-section-heading h3 { margin: 0; color: var(--navy); font-size: 1rem; }
.allegato-c-section-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .72rem; }
.inline-choice-group { margin: 0; padding: .8rem .9rem; display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1.2rem; border: 1px solid #dce7f3; border-radius: .8rem; background: #f8fbff; color: #465873; }
.inline-choice-group legend { padding: 0 .35rem; color: var(--navy); font-size: .75rem; font-weight: 800; }
.inline-choice-group label { display: inline-flex; align-items: center; gap: .4rem; font-size: .75rem; font-weight: 700; }
.inline-choice-group input { accent-color: var(--blue); }
.allegato-c-table-wrap { max-width: 100%; overflow: auto; border: 1px solid #dce7f3; border-radius: .85rem; }
.allegato-c-table { width: 100%; min-width: 47rem; border-collapse: collapse; background: #fff; }
.allegato-c-table th, .allegato-c-table td { padding: .6rem; border-bottom: 1px solid #e6edf5; text-align: left; vertical-align: middle; }
.allegato-c-table thead th { position: sticky; top: 0; z-index: 1; background: #eaf5ff; color: #274c78; font-size: .66rem; letter-spacing: .03em; text-transform: uppercase; }
.allegato-c-table tbody th { width: 35%; color: #405572; font-size: .72rem; font-weight: 750; }
.allegato-c-table tbody tr:nth-child(even) { background: #f8fbff; }
.allegato-c-table tbody tr:hover { background: #edf7ff; }
.allegato-c-table input { width: 100%; min-width: 6.5rem; min-height: 2.4rem; padding: .55rem .65rem; border: 1px solid #d4e1ef; border-radius: .6rem; background: #fff; color: var(--ink); font: inherit; font-size: .72rem; font-weight: 600; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.allegato-c-table input:hover { border-color: #8dc9f7; background: #f8fbff; box-shadow: 0 .3rem .8rem rgb(13 142 240 / 7%); }
.allegato-c-table input:focus { border-color: var(--azure); outline: 0; box-shadow: 0 0 0 .2rem rgb(13 142 240 / 10%); }
.allegato-c-family-table { min-width: 58rem; }
.allegato-c-cost { max-width: 22rem; }
.family-autocomplete-box { position: relative; }
.family-create-button { margin-left: auto; }
.family-create-dialog { width: min(94vw, 48rem); max-height: calc(100dvh - 2rem); margin: auto; padding: 0; overflow: hidden; border: 0; border-radius: 1.1rem; background: #fff; box-shadow: 0 1.5rem 4rem rgb(16 35 60 / 30%); }
.family-create-dialog::backdrop { background: rgb(3 17 39 / 58%); backdrop-filter: blur(3px); }
.family-create-dialog-content { max-height: calc(100dvh - 2rem); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.family-create-dialog .app-modal-body { overflow-y: auto; }
.family-autocomplete-control { position: relative; }
.family-autocomplete-control input { padding-right: 3rem; }
.family-clear { position: absolute; top: 50%; right: .55rem; width: 2rem; height: 2rem; display: grid; place-items: center; transform: translateY(-50%); border: 0; border-radius: .55rem; background: transparent; color: #718198; cursor: pointer; font-size: 1.35rem; line-height: 1; }
.family-clear[hidden], .family-suggestions[hidden], [data-family-option][hidden], [data-fund-option][hidden], .family-empty[hidden] { display: none; }
.family-clear:hover, .family-clear:focus-visible { background: #e5f2ff; color: var(--blue); outline: 0; }
.family-suggestions { position: absolute; top: calc(100% + .35rem); right: 0; left: 0; z-index: 10; max-height: 18rem; padding: .4rem; overflow-y: auto; border: 1px solid #c9dced; border-radius: .85rem; background: #fff; box-shadow: 0 1rem 2.5rem rgb(6 29 69 / 14%); }
.app-select-control{display:block;min-width:0;flex:1 1 auto}.form-field .app-select-control{width:100%}.commitment-filters .app-select-control{flex:1 1 10rem;min-width:10rem}.app-select-trigger{width:100%;min-height:2.85rem;padding:.68rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left}.app-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-select-trigger:hover{border-color:#8dc9f7;background:#f8fbff}.app-select-trigger:focus-visible{outline:0;border-color:var(--azure);box-shadow:0 0 0 .22rem rgb(13 142 240 / 10%)}.app-select-trigger:disabled{opacity:.55;cursor:not-allowed}.app-select-trigger i{width:.52rem;height:.52rem;flex:none;border-right:2px solid #246aa7;border-bottom:2px solid #246aa7;transform:rotate(45deg) translateY(-.18rem)}select[data-app-select]{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;opacity:0!important;pointer-events:none!important}.app-select-options{position:fixed;z-index:1000;max-height:min(19rem,60vh);padding:.35rem;border-color:#d6e1ef;border-radius:.75rem;box-shadow:0 .7rem 1.6rem rgb(32 87 137 / 14%)}.app-select-options [role="option"]{width:100%;min-height:2.85rem;padding:.7rem .8rem;display:block;border:0;border-radius:.6rem;background:transparent;color:#253c59;font:inherit;font-size:.87rem;font-weight:700;cursor:pointer;text-align:left}.app-select-options [role="option"]:hover,.app-select-options [role="option"]:focus-visible{background:#edf7ff;color:#0758a9;outline:0}.app-select-options [role="option"]:disabled{color:#9aa8b8;cursor:not-allowed}.app-select-options .app-select-group{padding:.6rem .8rem .3rem;color:#60748b;font-size:.72rem;font-weight:800}
.family-suggestions [data-family-option], .family-suggestions [data-fund-option] { width: 100%; padding: .7rem .8rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 0; border-radius: .65rem; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
.family-suggestions [data-family-option][hidden], .family-suggestions [data-fund-option][hidden] { display: none; }
.family-suggestions [data-family-option]:hover, .family-suggestions [data-family-option].active, .family-suggestions [data-fund-option]:hover, .family-suggestions [data-fund-option].active { background: #edf7ff; color: var(--blue); }
.family-suggestions [data-family-option] strong, .family-suggestions [data-fund-option] strong { font-size: .78rem; }
.family-suggestions [data-family-option] small, .family-suggestions [data-fund-option] small { flex: 0 0 auto; color: #7b8da5; font-size: .68rem; }
.agenda-autocomplete { position: relative; z-index: 1; }
.agenda-autocomplete:focus-within { z-index: 12; }
.agenda-autocomplete .family-suggestions { z-index: 20; }
.monthly-funding-cards { display: grid; gap: .75rem; }
.monthly-funding-card { padding: 1rem; display: grid; grid-template-columns: auto minmax(12rem, 1.5fr) repeat(3, minmax(8rem, 1fr)); align-items: center; gap: 1rem; border: 1px solid #d4e1ef; border-radius: .85rem; background: #f8fbff; cursor: pointer; }
.monthly-funding-card:has(input:checked) { border-color: var(--azure); background: #edf7ff; box-shadow: 0 0 0 .2rem rgb(13 142 240 / 10%); }
.monthly-funding-card span { display: grid; gap: .2rem; }
.monthly-funding-card small { color: #718198; font-size: .7rem; }
.monthly-funding-card strong { font-size: .78rem; }
.monthly-funding-card em { grid-column: 2 / -1; color: #9b5b00; font-size: .72rem; font-style: normal; font-weight: 700; }
.monthly-funding-card.is-unavailable { cursor: not-allowed; opacity: .68; }
.monthly-page { display: grid; gap: 1.25rem; }
.monthly-legacy-grid { display: grid; gap: 1.25rem; }
.monthly-top-grid { margin-bottom: 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.monthly-bottom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.monthly-box { overflow: visible; }
.monthly-box-body { min-height: 14rem; padding: 1.25rem; display: grid; align-content: start; gap: 1rem; }
.monthly-autocomplete { position: relative; z-index: 12; }.monthly-autocomplete .family-autocomplete-box { width: 100%; }.monthly-autocomplete .family-autocomplete-control input { width: 100%; }
.monthly-funding-table-wrap { overflow-x: auto; }.monthly-funding-table { width: 100%; min-width: 46rem; border-collapse: collapse; }.monthly-funding-table th,.monthly-funding-table td { padding: .5rem; border: 1px solid #d6e1ef; text-align: left; vertical-align: top; }.monthly-funding-table th { background: #f4f8fc; font-size: .68rem; }.monthly-funding-table tbody tr { cursor: pointer; transition: background-color .15s; }.monthly-funding-table tbody tr:nth-child(even) { background: #f7faff; }.monthly-funding-table tbody tr:hover { background: #eaf5ff; }.monthly-funding-table tbody tr.is-selected { background: #dcefff; }.monthly-funding-table tbody tr.is-selected td:first-child { box-shadow: inset .2rem 0 0 var(--azure); }.monthly-funding-table td { font-size: .7rem; }.monthly-funding-table input { accent-color: var(--azure); }
.monthly-summary { margin: 0; }.monthly-box-body textarea { width: 100%; max-width: none; }.monthly-check { display: flex !important; align-items: center; gap: .5rem; font-size: .78rem; }.monthly-warning { color: #a65000; font-weight: 700; }.monthly-actions { position: sticky; isolation: isolate; z-index: 30; top: calc(.2rem - clamp(2rem, 4vw, 3.5rem)); margin: 0 0 1.25rem; padding: .75rem 1rem; display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; border: 1px solid #c9d9ec; border-radius: 1rem; background: #fff; box-shadow: 0 .65rem 1rem rgb(27 55 92 / 10%); }.monthly-save { min-height: 2.75rem; justify-self: start; }.monthly-save:disabled { opacity: .55; cursor: not-allowed; }.monthly-due-summary { min-height: 2.75rem; min-width: 10.5rem; padding: .45rem .8rem; border-color: #d3e0ed; background: #f8fbff !important; font-size: .78rem; }.monthly-due-summary strong { font-size: 1rem; }
.monthly-field-with-check { display: grid; align-content: start; gap: .5rem; }
.monthly-field-with-check[hidden] { display: none !important; }
[data-hours-field][hidden] { display: none !important; }
[data-rate-field][hidden] { display: none !important; }
.monthly-calculation { display: grid; gap: 1rem; }.monthly-calculation-meta { display: flex; flex-wrap: wrap; gap: .65rem 1rem; color: var(--muted); font-size: .78rem; }.monthly-calculation-meta strong { color: var(--ink); }.monthly-readonly { min-height: 2.85rem; padding: .68rem .8rem; display: grid; align-content: center; gap: .16rem; border: 1px solid #d6e1ef; border-radius: .75rem; background: #f8fbff; color: #42536c; font-size: .75rem; font-weight: 800; }.monthly-readonly strong { color: var(--ink); }.monthly-sector-allowance-value { display: block; margin: 0 0 .2rem; color: var(--muted); font-size: .68rem; font-weight: 600; }.monthly-sector-allowance-value strong { margin-left: .25rem; color: var(--ink); font-size: .72rem; }.monthly-calculation-note { margin: 0; color: #8a5a11; font-size: .76rem; line-height: 1.45; }.monthly-sector-calculation { display: grid; gap: .75rem; align-content: start; }.monthly-sector-calculation h3 { margin: 0; font-size: 1rem; }.monthly-sector-calculation p { margin: 0; color: var(--muted); line-height: 1.5; }.monthly-commitment-summary { grid-column: 1 / -1; padding: .85rem 1rem; border: 1px solid #d6e1ef; border-radius: .75rem; background: #f8fbff; color: #42536c; font-size: .8rem; }.monthly-commitment-summary strong { color: var(--ink); }.monthly-commitment-summary ul { margin: .55rem 0; padding-left: 1.15rem; }.monthly-commitment-summary li { margin: .28rem 0; }.monthly-commitment-summary p { margin: .5rem 0 0; }
.monthly-calculation[hidden], .monthly-sector-calculation[hidden] { display: none !important; }
.monthly-sector-calculation [hidden] { display: none !important; }
[data-funding-options][hidden], [data-commitments-field][hidden], [data-iban-field][hidden], [data-commitment-summary][hidden], [data-benefits-warning][hidden] { display: none !important; }
.monthly-availability-table-wrap { overflow-x: auto; display: grid; gap: .55rem; }
[data-availability] { display: grid; gap: 1.25rem; }
.monthly-availability-table { width: 100%; min-width: 35rem; border-collapse: collapse; font-size: .72rem; }
.monthly-availability-table th, .monthly-availability-table td { padding: .5rem; border: 1px solid #d6e1ef; text-align: left; vertical-align: top; }
.monthly-availability-table th { background: #f4f8fc; color: #53647a; font-size: .66rem; }
.monthly-availability-total td { background: #f8fbff; font-weight: 800; }
.monthly-available-amount { margin: 0; padding: .8rem .9rem; border: 1px solid #d6e1ef; border-radius: .75rem; background: #f8fbff; font-size: .78rem; line-height: 1.55; }
.monthly-availability-action { min-height: 2rem; margin-left: .45rem; padding: .4rem .65rem; border-radius: .65rem; font-size: .68rem; vertical-align: middle; }
.monthly-availability-totals { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.monthly-availability-totals div { padding: .7rem; border: 1px solid #d6e1ef; border-radius: .7rem; background: #fff; }
.monthly-availability-totals dt { color: #718198; font-size: .65rem; font-weight: 800; }
.monthly-availability-totals dd { margin: .25rem 0 0; color: var(--ink); font-size: .82rem; font-weight: 800; }

@media (max-width: 1050px) { .archive-split-layout { grid-template-columns: 1fr; } }
@media (max-width: 1120px) { .dashboard-primary-grid, .dashboard-secondary-grid { grid-template-columns: 1fr; } }
@media (max-width: 650px) { .dashboard-action-grid { grid-template-columns: 1fr; } .dashboard-task { grid-template-columns: auto minmax(0, 1fr) auto; } .dashboard-task-badge { display: none; } .dashboard-bars { gap: .3rem; padding-inline: .75rem; } }
@media (max-width: 1050px) { .monthly-top-grid,.monthly-bottom-grid { grid-template-columns: 1fr; } .monthly-actions { top: calc(.2rem - 1.5rem); } }
@media (max-width: 1050px) { .monthly-funding-card { grid-template-columns: auto minmax(12rem, 1fr) repeat(2, minmax(8rem, 1fr)); } .monthly-availability-totals { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .monthly-actions { top: calc(.2rem - 1.5rem); padding: .65rem; gap: .65rem; } .monthly-save { flex: 1 1 12rem; } .monthly-due-summary { flex: 1 1 9rem; min-width: 0; } }
.family-empty { margin: 0; padding: .85rem; color: var(--muted); font-size: .76rem; text-align: center; }
.family-help { color: #7b8da5 !important; font-weight: 600; }
.form-actions { position: sticky; bottom: 0; z-index: 2; margin-top: 1rem; padding: 1.15rem 1.25rem; display: flex; align-items: center; justify-content: flex-end; gap: .65rem; border: 1px solid var(--line); border-radius: 1rem; background: rgb(255 255 255 / 94%); box-shadow: 0 -1rem 2.5rem rgb(6 29 69 / 8%); backdrop-filter: blur(12px); }
.mass-funding-page > form > .form-actions { position: static; z-index: auto; flex: 0 0 auto; }
.form-actions .primary-button:not(.commitment-submit-button) { min-height: 2.75rem; }

@media (max-width: 800px) {
    .app-page, .app-shell { width: 100%; max-width: 100vw; }
    .app-shell { overflow: hidden; }
    .auth-page { display: block; padding: 0; background: #fff; }
    .auth-shell { min-height: 100vh; grid-template-columns: 1fr; border: 0; border-radius: 0; box-shadow: none; }
    .auth-brand { min-height: 27rem; padding: 1.75rem 1.3rem 2.4rem; }
    .auth-logo { width: min(100%, 23rem); }
    .auth-brand-copy { margin-top: 3.5rem; }
    .auth-brand h1 { font-size: clamp(2.65rem, 13vw, 3.6rem); }
    .auth-content { padding: 2.75rem 1.3rem 3rem; }
    .auth-content-inner { width: 100%; }
    .topbar { width: 100%; min-width: 0; padding-inline: 1rem; align-items: center; gap: .75rem; overflow: hidden; }
    .topbar-actions { flex: 0 0 auto; gap: .45rem; }
    .topbar-tenant, .operator-management-link { display: none; }
    .topbar-actions form { margin: 0; display: block; }
    .operator-summary { display: flex; }
    .operator-summary > span:last-child { display: none; }
    .operator-avatar { display: grid; }
    .logout-button { width: 2.65rem; height: 2.65rem; padding: 0; display: grid; place-items: center; border-radius: .8rem; color: #52637c; }
    .logout-button svg { display: block; }
    .logout-button span { display: none; }
    .topbar-brand > img:first-child { width: 2.9rem; height: 2.9rem; }
    .topbar-wordmark-image { width: 6.5rem; max-height: 1.9rem; padding-top: .4rem; }
    .app-workspace { width: 100%; display: flex; flex-direction: column; overflow: hidden; }
    .mobile-sidebar-trigger { flex: 0 0 auto; width: fit-content; min-height: 2.65rem; margin: .75rem 1rem 0; padding: .6rem .85rem; display: inline-flex; align-items: center; gap: .55rem; border: 1px solid #cbdced; border-radius: .75rem; background: #fff; box-shadow: 0 .4rem 1rem rgb(6 29 69 / 7%); color: var(--blue); font-size: .78rem; font-weight: 800; }
    .mobile-sidebar-trigger:hover { border-color: #8dc9f7; background: #eef8ff; }
    .mobile-sidebar-trigger:focus-visible { outline: 3px solid rgb(13 142 240 / 25%); outline-offset: 2px; }
    .mobile-sidebar-trigger svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
    .app-sidebar { flex: 0 0 auto; width: 100%; max-height: 36vh; padding: .75rem 1rem; display: none; overflow: auto; border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 10%); background: linear-gradient(180deg, #082b5c 0%, #061d45 68%, #041631 100%); }
    .module-navigation { display: grid; gap: .4rem; }
    .module-link { padding: .6rem .7rem; }
    .module-link small { display: none; }
    .module-group summary { padding: .6rem .7rem; }
    .module-group summary small { display: none; }
    .module-group-items { padding-left: 3.25rem; }
    .module-icon { width: 2rem; height: 2rem; }
    .sidebar-toggle { display: none; }
    .app-main { flex: 1 1 auto; width: 100%; margin: 0; padding: 1.5rem 1rem 3rem; }
    .welcome-card { display: block; }
    .welcome-card .environment-badge { margin-top: 1.5rem; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .page-heading { align-items: flex-start; }
    .commitment-heading { align-items: flex-start; flex-direction: column; }
    .data-toolbar { align-items: stretch; flex-direction: column; }
    .search-field { min-width: 0; flex: 1 1 auto; }
    .responsive-table { overflow: visible; }
    .archive-index-page { height: auto; min-height: 0; overflow: visible; }
    .mass-funding-page { height: auto; min-height: 0; overflow: visible; }
    .mass-funding-page > form[data-mass-funding-form], .mass-funding-page > form[data-mass-edit-form] { display: block; }
    .archive-list-panel { max-height: min(42rem, calc(100dvh - 12rem)); }
    .archive-scroll-table { min-height: 12rem; overflow: auto; }
    .mass-funding-list { max-height: min(42rem, calc(100dvh - 12rem)); min-height: 12rem; flex: none; }
    .archive-scroll-table thead th { position: static; box-shadow: none; }
    .detail-services-table { max-height: none; overflow: visible; overscroll-behavior: auto; scrollbar-gutter: auto; }
    .detail-services-table thead th { position: static; box-shadow: none; }
    .responsive-table table, .responsive-table tbody { min-width: 0; display: block; }
    .responsive-table thead { display: none; }
    .responsive-table tr { padding: .8rem 1rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1rem; border-top: 1px solid var(--line); }
    .responsive-table tr:first-child { border-top: 0; }
    .responsive-table td { min-width: 0 !important; padding: 0; display: grid; gap: .25rem; border: 0; overflow-wrap: anywhere; }
    .responsive-table td::before { color: #8996a8; content: attr(data-label); font-size: .62rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
    .responsive-table .funding-group-row { padding: 0; display: block; }
    .responsive-table .funding-group-row td { padding: .85rem; display: block; border-top: .7rem solid #f3f7fc; }
    .responsive-table .funding-group-row td::before { display: none; }
    .funding-group-summary { align-items: flex-start; flex-direction: column; }
    .funding-group-stats { flex-wrap: wrap; }
    .detail-grid { grid-template-columns: 1fr; }
    .detail-card-wide { grid-column: auto; }
    .detail-list.four-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .detail-tabs { border-radius: .85rem; }
    .form-grid.four-columns, .form-grid.three-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mass-funding-filter .form-grid { grid-template-columns: minmax(0, 1fr) minmax(10rem, .7fr) auto; }
    .mass-funding-filter .mass-edit-filter-grid { grid-template-columns: minmax(0, 1fr) minmax(8rem, .6fr) minmax(8rem, .6fr) auto; }
    .funding-definition-grid { grid-template-columns: minmax(0, 1.5fr) minmax(8rem, 1fr); }
    .funding-preview { grid-template-columns: 1fr; }
    .form-card-grid { grid-template-columns: 1fr; }
    .health-service-list { grid-template-columns: 1fr; }
    .module-catalog { grid-template-columns: 1fr; }
    .app-modal { width: calc(100vw - 1rem); height: calc(100vh - 1rem); border-radius: .9rem; }
    .app-modal-header, .app-modal-body, .app-modal-footer { padding-inline: .9rem; }
    .allegato-c-section { padding: .85rem; }
    .relation-record summary { grid-template-columns: 1fr auto; }
    .relation-date { grid-column: 1 / -1; }
    .record-details { grid-template-columns: 1fr; }
    .agenda-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .agenda-user-filter { grid-column: 1 / -1; }
    .agenda-filter-form .search-button, .agenda-filter-form .clear-search { justify-self: start; }
    .monthly-funding-card { grid-template-columns: auto 1fr; }
    .monthly-funding-card span { grid-column: 2; }
    [data-sidebar-mobile-open] .app-sidebar { display: flex; }
}

@media (max-width: 420px) {
    .topbar { gap: .65rem; }
    .topbar-wordmark-image { width: 6.5rem; max-height: 1.55rem; padding-top: .3rem; }
    .operator-avatar { display: grid; }
    .mobile-sidebar-trigger { margin-inline: .625rem; }
    .app-sidebar { padding-inline: .625rem; }
    .app-main { width: 100%; padding-inline: .625rem; }
    .page-heading { display: block; }
    .record-count { margin-top: 1rem; display: inline-flex; }
    .search-form { align-items: stretch; flex-wrap: wrap; }
    .search-field { flex-basis: 100%; }
    .search-button { flex: 1 1 auto; }
    .agenda-filter-form { grid-template-columns: 1fr; }
    .agenda-user-filter { grid-column: auto; }
    .agenda-filter-form .search-button, .agenda-filter-form .clear-search { width: 100%; justify-self: stretch; }
    .agenda-checkbox { white-space: normal; }
    .responsive-table tr { grid-template-columns: 1fr; }
    .pagination { align-items: stretch; flex-direction: column; }
    .pagination > div, .pagination-link { flex: 1 1 0; }
    .detail-heading { align-items: flex-start; flex-direction: column; }
    .detail-list, .detail-list.four-columns { grid-template-columns: 1fr; }
    .services-heading { align-items: flex-start; flex-wrap: wrap; }
    .services-heading .record-count { margin-left: 0; }
    .page-heading-actions, .detail-heading-actions { align-items: flex-start; flex-direction: column; }
    .form-grid.two-columns, .form-grid.four-columns, .form-grid.three-columns { grid-template-columns: 1fr; }
    .mass-funding-filter .form-grid { grid-template-columns: 1fr; }
    .mass-funding-filter .form-actions { justify-content: stretch; }
    .mass-funding-filter .form-actions .primary-button { width: 100%; }
    .registry-search-control { align-items: stretch; flex-direction: column; }
    .funding-definition-grid, .funding-period-grid { gap: .6rem; }
    .funding-period-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-end-date-field { grid-column: 1 / -1; }
    .form-field-wide { grid-column: auto; }
    .choice-grid { grid-template-columns: 1fr; }
    .form-actions { align-items: stretch; flex-direction: column-reverse; }
    .attachment-upload { grid-template-columns: 1fr; }
    .attachment-list li { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 900px) {
    .operator-log-page { height: auto; min-height: 0; overflow: visible; }
    .operator-log-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .operator-log-action-filter { grid-column: 1 / -1; }
    .sisar-mappings { grid-template-columns: 1fr; }
    .sisar-mapping { grid-template-columns: 1fr; }
    .sisar-preview-list { max-height: none; overflow: visible; }
    .sisar-amount-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sisar-row header { flex-wrap: wrap; }
    .sisar-row header .sisar-row-summary { width: 100%; margin-left: 0; padding: 9px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}

.monthly-reduction-check { grid-column: 1 / -1; margin-top: -.5rem; }
.monthly-trip-static { margin: 0; color: var(--text-muted, #52606d); }
.monthly-sector-calculation [data-sector-trips] { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
.monthly-trip { position: relative; min-inline-size: 0; margin: 0; padding: 1.15rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem 1rem; border: 1px solid #d6e1ef; border-radius: .95rem; background: #f8fbff; box-shadow: 0 .45rem 1.2rem rgb(6 29 69 / 4%); }
.monthly-trip:nth-child(even) { background: #eef6f4; border-color: #cce2dc; }
.monthly-trip legend { padding: 0 .45rem; color: #16466d; font-size: .85rem; font-weight: 800; }
.monthly-trip-remove { position: absolute; top: .65rem; right: .75rem; width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid #c9dced; border-radius: .55rem; background: #fff; color: #52606d; cursor: pointer; font-size: 1.2rem; line-height: 1; }
.monthly-trip-remove:hover, .monthly-trip-remove:focus-visible { border-color: #b94141; background: #fff1f1; color: #a32929; outline: 0; }
.monthly-trip > label { min-width: 0; }
.monthly-trip > label:nth-of-type(2) { grid-column: span 2; }
.monthly-trip .monthly-trip-static { min-height: 2.7rem; padding: .65rem .75rem; display: grid; align-content: center; gap: .15rem; border: 1px solid #d6e1ef; border-radius: .7rem; background: rgb(255 255 255 / 72%); font-size: .75rem; }
.monthly-trip:nth-child(even) .monthly-trip-static { border-color: #cce2dc; }
.monthly-trip .monthly-trip-departure, .monthly-trip .monthly-trip-distance { color: #42536c; }
.monthly-trip-km-label { color: #42536c; font-size: .72rem; font-weight: 800; }
.monthly-trip .monthly-trip-destination { grid-column: span 2; position: relative; z-index: 2; }
.monthly-trip .monthly-destination-autocomplete { width: 100%; display: block; }
.monthly-trip .monthly-destination-autocomplete input { width: 100%; }
.monthly-trip .monthly-destination-autocomplete .family-suggestions { max-height: 13rem; }
.monthly-trip .monthly-destination-autocomplete .family-empty { display: block; padding: .7rem .8rem; color: #718198; font-size: .78rem; }
.monthly-draft-modal { width: min(94vw, 38rem); height: fit-content; min-height: 0; max-height: calc(100dvh - 2rem); margin: auto; }
.monthly-draft-modal-content { display: block; }
.monthly-draft-modal .app-modal-body { padding-bottom: 1.2rem; }
.monthly-draft-modal .app-modal-body p { margin: 0; color: #42536c; font-size: .9rem; line-height: 1.55; }
.monthly-draft-modal .app-modal-body p + p { margin-top: .8rem; }

@media (max-width: 420px) {
    .operator-log-filters { grid-template-columns: 1fr; }
    .operator-log-action-filter { grid-column: auto; }
    .monthly-reduction-check { grid-column: auto; }
    .monthly-trip { grid-template-columns: 1fr; padding: .9rem; }
    .monthly-trip > label:nth-of-type(2) { grid-column: auto; }
    .monthly-trip .monthly-trip-destination { grid-column: auto; }
}

@media (max-width: 900px) and (min-width: 421px) {
    .monthly-trip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .monthly-trip > label:nth-of-type(2) { grid-column: auto; }
    .monthly-trip .monthly-trip-destination { grid-column: span 2; }
}

/* Gestione mensile massiva */
.mass-monthly-accounting-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.mass-monthly-accounting-fields select[multiple]{min-height:5.5rem}.mass-monthly-accounting-fields label small{color:var(--muted);font-weight:600}
.mass-monthly-benefits-field{min-width:0}.mass-monthly-benefit-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin-top:.4rem}.mass-monthly-benefit-actions .secondary-button{min-width:0;min-height:2.15rem;padding:.35rem .45rem}.mass-monthly-history-button{display:grid;place-items:center}.mass-monthly-history-dialog{width:min(94vw,70rem);height:min(92vh,52rem)}.mass-monthly-history-content{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.mass-monthly-history-body{display:grid;align-content:start;gap:1.25rem}
.module-child-link.nav-icon-monthly-user .module-child-icon svg,.module-child-link.nav-icon-monthly-mass .module-child-icon svg{width:23px;height:23px}.mass-monthly-filter-panel label,.mass-monthly-fields label:not(.mass-monthly-check),.mass-monthly-payment-panel label{min-width:0;display:grid;align-content:start;gap:.4rem;color:#42536c;font-size:.75rem;font-weight:800}.mass-monthly-filter-panel .mass-monthly-optional-label>span{display:flex;align-items:baseline;gap:.35rem}.mass-monthly-filter-panel input,.mass-monthly-filter-panel select,.mass-monthly-fields input:not([type=checkbox]),.mass-monthly-fields select,.mass-monthly-payment-panel input,.mass-monthly-payment-panel textarea{width:100%;min-width:0;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;outline:0;background:#fff;color:var(--ink);font:inherit;font-weight:600}.mass-monthly-fields .checkbox-label{display:flex;align-items:center;align-self:end;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#fff}.mass-monthly-fields .checkbox-label input{width:18px;height:18px;accent-color:var(--blue)}.mass-monthly-filter-panel label small{font-weight:600;color:var(--muted)}
.module-child-link.nav-icon-monthly-user .module-child-icon,.module-child-link.nav-icon-monthly-mass .module-child-icon{width:23px;height:23px;flex:0 0 23px}.module-child-link.nav-icon-monthly-user,.module-child-link.nav-icon-monthly-mass{gap:.7rem}
.mass-monthly-filters{grid-template-columns:minmax(180px,.75fr) minmax(280px,1.4fr) minmax(220px,1fr) auto;align-items:end}.mass-monthly-filters .search-button{min-height:46px}.mass-monthly-sticky-toolbar{position:sticky;z-index:12;top:12px;margin:1rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border:1px solid #c9d9ec;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(27,55,92,.13);backdrop-filter:blur(10px)}.mass-monthly-sticky-toolbar>div:first-child{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}.mass-monthly-sticky-toolbar strong{font-size:1.4rem;color:#143f70}.mass-monthly-sticky-toolbar small,.mass-monthly-sticky-toolbar span{color:#597087}.mass-monthly-toolbar-actions{display:flex;gap:.65rem}.mass-monthly-bulk-actions{display:flex;justify-content:flex-end;gap:1rem;padding:0 0 1rem}.mass-monthly-rows{display:grid;gap:.8rem}.mass-monthly-row{border:1px solid #dbe4ef;border-radius:16px;background:#fff;overflow:hidden;transition:border-color .2s,box-shadow .2s}.mass-monthly-row.is-enabled{border-color:#5d92ce;box-shadow:0 5px 18px rgba(34,92,151,.1)}.mass-monthly-row>header{display:grid;grid-template-columns:42px minmax(190px,1.5fr) minmax(150px,1fr) minmax(95px,.6fr) minmax(95px,.6fr) 42px;align-items:center;gap:.8rem;padding:1rem}.mass-monthly-row header small{display:block;color:#667d92;font-size:.76rem;margin-bottom:.15rem}.mass-monthly-person,.mass-monthly-supplier,.mass-monthly-balance,.mass-monthly-row-total{min-width:0}.mass-monthly-person strong,.mass-monthly-supplier strong{display:block;overflow:hidden;text-overflow:ellipsis}.mass-monthly-row-total strong{color:#185f49}.mass-monthly-check{display:grid;place-items:center}.mass-monthly-check input{width:21px;height:21px;accent-color:#246aa7}.mass-monthly-expand{width:36px;height:36px;border:0;border-radius:50%;background:#edf4fb;color:#285f92;font-size:1.25rem;cursor:pointer;transition:transform .2s}.mass-monthly-row.is-open .mass-monthly-expand{transform:rotate(180deg)}.mass-monthly-existing{margin:0 1rem .8rem 4.25rem;padding:.55rem .75rem;border-radius:10px;background:#fff4d8;color:#805710;font-size:.85rem}.mass-monthly-fields{padding:1.1rem 1.25rem 1.35rem;border-top:1px solid #e5edf5;background:#f8fbfe}.mass-monthly-funding-summary{display:flex;flex-wrap:wrap;gap:1.3rem;margin-bottom:1rem}.mass-monthly-funding-summary span{display:grid;gap:.2rem}.mass-monthly-funding-summary small{color:#6a8094}.mass-monthly-standard-grid{grid-template-columns:repeat(5,minmax(135px,1fr))}.mass-monthly-sector-grid{grid-template-columns:repeat(4,minmax(145px,1fr))}.mass-monthly-trip-grid{grid-template-columns:2fr repeat(3,1fr)}.mass-monthly-trips{display:grid;gap:.7rem;margin-top:1rem}.mass-monthly-trips fieldset{border:1px solid #d7e3ee;border-radius:12px;padding:.8rem}.mass-monthly-trips legend{padding:0 .35rem;color:#315d88;font-weight:750}.mass-monthly-iban{display:grid;gap:.35rem;margin-top:1rem;max-width:620px}.mass-monthly-payment-grid{grid-template-columns:repeat(4,minmax(160px,1fr))}.mass-monthly-payment-grid .full-width{grid-column:1/-1}.duplicate-list{max-height:240px;overflow:auto;text-align:left;padding-left:1.2rem}.duplicate-list li+li{margin-top:.45rem}.text-button{border:0;background:none;color:#1f65a0;font-weight:700;cursor:pointer}.mass-monthly-row [hidden],.mass-monthly-fields[hidden]{display:none!important}
.mass-monthly-filter-panel{padding:1rem 1.2rem;overflow:visible}.mass-monthly-filter-panel:focus-within{position:relative;z-index:31}.mass-monthly-filters{column-gap:1.15rem;row-gap:.85rem}.mass-monthly-filter-panel label{gap:.45rem}.mass-monthly-filters .search-button{min-width:8.5rem;padding-inline:1rem;align-self:end}.mass-monthly-filters [data-mass-monthly-fund-autocomplete],.mass-monthly-filters [data-mass-monthly-supplier-autocomplete]{position:relative;z-index:20}.mass-monthly-filters .family-suggestions{z-index:30}.mass-monthly-filters [data-mass-monthly-fund-option][hidden],.mass-monthly-filters [data-mass-monthly-supplier-option][hidden],.mass-monthly-filters .family-empty[hidden]{display:none!important}.mass-monthly-commitment-summary{display:grid;gap:.8rem;margin:-.2rem 0 1rem;padding:1rem 1.2rem;border:1px solid #c9d9ec;border-radius:16px;background:#f8fbff}.mass-monthly-commitment-summary h2{margin:0;color:var(--ink);font-size:1rem}.mass-monthly-commitment-summary p{margin:.2rem 0 0;color:#597087;font-size:.82rem}.mass-monthly-commitment-summary ul{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.mass-monthly-commitment-summary li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.6rem .75rem;border-radius:10px;background:#fff;color:#42536c;font-size:.82rem}.mass-monthly-commitment-summary li strong{flex:none;color:#185f49;white-space:nowrap}.mass-monthly-commitment-summary .mass-monthly-commitment-warning{padding:.65rem .75rem;border-radius:10px;background:#fff4d8;color:#805710;font-weight:750}.mass-monthly-commitment-summary[hidden]{display:none!important}
.mass-monthly-list-panel .mass-monthly-rows{padding:0 .7rem .7rem}.mass-monthly-list-panel .mass-monthly-row:nth-child(odd){background:#fff}.mass-monthly-list-panel .mass-monthly-row:nth-child(even){background:#edf6ff;border-color:#c9dff4}.mass-monthly-list-panel .mass-monthly-row:nth-child(even) .mass-monthly-fields{background:#e7f3ff}
.mass-monthly-payment-panel{margin-top:1rem;padding-bottom:1.25rem}.mass-monthly-payment-panel>.data-toolbar{padding:1.1rem 1.25rem .9rem}.mass-monthly-payment-grid{padding:1rem 1.25rem 0;gap:.9rem 1rem}
@media(max-width:1100px){.mass-monthly-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.mass-monthly-standard-grid,.mass-monthly-sector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mass-monthly-trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mass-monthly-row>header{grid-template-columns:36px minmax(180px,1fr) minmax(110px,.8fr) minmax(90px,.55fr) 40px}.mass-monthly-supplier{display:none}.mass-monthly-payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.mass-monthly-filters{grid-template-columns:1fr}.mass-monthly-sticky-toolbar{position:static;align-items:stretch;flex-direction:column}.mass-monthly-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.mass-monthly-row>header{grid-template-columns:34px 1fr 38px;gap:.55rem}.mass-monthly-balance,.mass-monthly-row-total{grid-column:2}.mass-monthly-row-total{justify-self:start}.mass-monthly-existing{margin-left:1rem}.mass-monthly-fields{padding:1rem}.mass-monthly-standard-grid,.mass-monthly-sector-grid,.mass-monthly-trip-grid,.mass-monthly-payment-grid{grid-template-columns:1fr}.mass-monthly-payment-grid .full-width{grid-column:auto}.mass-monthly-funding-summary{display:grid;grid-template-columns:1fr 1fr}.mass-monthly-bulk-actions{justify-content:flex-start;flex-wrap:wrap}.mass-monthly-commitment-summary li{align-items:flex-start;flex-direction:column;gap:.25rem}}
.ssc-print-brand{display:none}@media print{@page{margin:10mm}.ssc-print-brand{display:block;width:22mm;margin:0 0 3mm}.ssc-print-brand img{display:block;width:100%;height:auto}.topbar,.app-sidebar,.mass-monthly-filter-panel,.mass-monthly-heading,.mass-monthly-bulk-actions,.mass-monthly-toolbar-actions,.mass-monthly-payment-panel,.success-alert,.error-alert{display:none!important}.app-workspace,.app-main{display:block!important;margin:0!important;padding:0!important}.mass-monthly-sticky-toolbar{position:static;box-shadow:none;border:0;padding:0 0 10mm}.mass-monthly-row:not(.is-enabled){display:none}.mass-monthly-row{break-inside:avoid;box-shadow:none}.mass-monthly-fields{display:none!important}.mass-monthly-list-panel{box-shadow:none;border:0;padding:0}.mass-monthly-row>header{grid-template-columns:1fr 1fr 1fr}.mass-monthly-check,.mass-monthly-expand,.mass-monthly-supplier{display:none}.mass-monthly-balance,.mass-monthly-row-total{display:block}.mass-monthly-existing{display:none}}
.mass-monthly-row .mass-monthly-commitment-summary{width:calc((100% - 3.5rem)/2);margin:0 1.25rem 1.25rem auto;padding:.85rem 1rem;background:#fff}.mass-monthly-add-trip{margin-top:1rem;justify-self:start}.mass-monthly-trips fieldset{position:relative}.mass-monthly-trips legend{padding-right:2.6rem}.mass-monthly-trips .monthly-trip-remove{top:.45rem;right:.55rem}.mass-monthly-filters input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
@media(max-width:700px){.mass-monthly-accounting-fields{grid-template-columns:1fr}.mass-monthly-row .mass-monthly-commitment-summary{width:auto;margin:0 1rem 1rem}}

/* Barra di azione Gestione mensile massiva: aderisce alla topbar. */
.mass-monthly-sticky-toolbar{position:sticky;isolation:isolate;z-index:30;top:calc(.2rem - clamp(2rem,4vw,3.5rem));background:#fff}
@media(max-width:1100px){.mass-monthly-sticky-toolbar{top:calc(.2rem - 1.5rem)}}
@media(max-width:700px){.mass-monthly-sticky-toolbar{position:sticky;top:calc(.2rem - 1.5rem)}}

/* Elenco liquidazioni */
.financial-summary-filter-panel{padding:1.15rem 1.2rem}.financial-summary-filters{display:grid;grid-template-columns:repeat(3,minmax(130px,.6fr)) minmax(210px,1.25fr) repeat(3,minmax(150px,.8fr)) minmax(220px,1.2fr) auto auto;align-items:end;gap:.9rem 1rem}.financial-summary-filters .form-field{min-width:0}.financial-summary-filters .form-field span{display:block;margin-bottom:.42rem;color:#42536c;font-size:.75rem;font-weight:800}.financial-summary-filters input,.financial-summary-filters select{width:100%;min-width:0;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit;font-weight:600}.financial-summary-check{display:flex;align-items:center;gap:.5rem;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#f8fbff;color:#42536c;font-size:.75rem;font-weight:800;white-space:nowrap}.financial-summary-check input{width:18px;height:18px;accent-color:var(--blue)}.financial-summary-actions{display:flex;align-items:center;gap:.65rem}.financial-summary-actions .primary-button,.financial-summary-actions .secondary-button{min-height:2.85rem;white-space:nowrap}.financial-summary-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.financial-summary-totals>div{display:grid;gap:.35rem;padding:1rem 1.1rem;border:1px solid #cbddeb;border-radius:1rem;background:linear-gradient(135deg,#fff,#f2f8ff);box-shadow:0 .45rem 1.2rem rgb(32 87 137 / 7%)}.financial-summary-totals span{color:#60748b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.financial-summary-totals strong{color:#173f6a;font-size:1.2rem}.financial-summary-table table{min-width:1450px}.financial-summary-table td small{display:block;margin-top:.25rem;color:#60748b;line-height:1.4}.financial-summary-table td:last-child{min-width:14rem;white-space:pre-line}
.financial-summary-filters select{appearance:none;padding-right:2.75rem;background-image:linear-gradient(45deg,transparent 50%,#246aa7 50%),linear-gradient(135deg,#246aa7 50%,transparent 50%);background-position:calc(100% - 1.15rem) 1.15rem,calc(100% - .82rem) 1.15rem;background-size:.38rem .38rem,.38rem .38rem;background-repeat:no-repeat;cursor:pointer}.financial-summary-filters select:hover{border-color:#8dc9f7;background-color:#f8fbff}.financial-summary-filters select:focus{border-color:var(--azure);box-shadow:0 0 0 .22rem rgb(13 142 240 / 10%)}.financial-summary-filters select option{background:#fff;color:#253c59;font:600 .9rem inherit}.financial-summary-filters select option:checked{background:#0758a9;color:#fff;font-weight:800}
.financial-summary-filter-panel:has(.sector-beneficiary-autocomplete){position:relative;z-index:2;overflow:visible}.financial-summary-filters:has(.sector-beneficiary-autocomplete){grid-template-columns:minmax(110px,.45fr) minmax(165px,.7fr) minmax(340px,1.7fr) minmax(220px,1fr) auto}.sector-beneficiary-autocomplete{position:relative;z-index:1}.sector-beneficiary-autocomplete:focus-within{z-index:12}.sector-beneficiary-autocomplete .family-autocomplete-box{width:100%}.sector-beneficiary-autocomplete .family-autocomplete-control input{width:100%;min-height:3.2rem;padding:.8rem 3rem .8rem .95rem;font-size:.95rem}.sector-beneficiary-autocomplete .family-autocomplete-control input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}.sector-beneficiary-autocomplete .family-suggestions{z-index:30;max-height:19rem;padding:.35rem;border-color:#d6e1ef;border-radius:.75rem;background:#fff;box-shadow:0 .7rem 1.6rem rgb(32 87 137 / 14%)}.sector-beneficiary-autocomplete .family-suggestions [data-family-option]{min-height:2.85rem;padding:.7rem .8rem;border-radius:.6rem;color:#253c59;font:600 .9rem inherit}.sector-beneficiary-autocomplete .family-suggestions [data-family-option] strong{font-size:.87rem}.sector-beneficiary-autocomplete .family-suggestions [data-family-option] small{font-size:.75rem;color:#60748b}.sector-beneficiary-autocomplete .family-suggestions [data-family-option]:hover,.sector-beneficiary-autocomplete .family-suggestions [data-family-option]:focus-visible{background:#edf7ff;color:#0758a9;outline:0}.financial-summary-filters:has(.sector-beneficiary-autocomplete) .financial-summary-actions{align-self:end}
.sector-filter-select{position:relative;z-index:1}.sector-filter-select:focus-within{z-index:1}.sector-select-trigger{width:100%;min-height:2.85rem;padding:.68rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid #d6e1ef;border-radius:.75rem;outline:0;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left}.sector-select-trigger:hover{border-color:#8dc9f7;background:#f8fbff}.sector-select-trigger:focus-visible{border-color:var(--azure);box-shadow:0 0 0 .22rem rgb(13 142 240 / 10%)}.sector-select-trigger i{width:.52rem;height:.52rem;flex:0 0 auto;border-right:2px solid #246aa7;border-bottom:2px solid #246aa7;transform:rotate(45deg) translateY(-.18rem)}.sector-filter-select .family-suggestions{z-index:1;max-height:19rem;padding:.35rem;border-color:#d6e1ef;border-radius:.75rem;background:#fff;box-shadow:0 .7rem 1.6rem rgb(32 87 137 / 14%)}.sector-filter-select .family-suggestions [data-sector-filter-option]{width:100%;min-height:2.85rem;padding:.7rem .8rem;display:flex;align-items:center;border:0;border-radius:.6rem;background:transparent;color:#253c59;font:600 .9rem inherit;cursor:pointer;text-align:left}.sector-filter-select .family-suggestions [data-sector-filter-option]:hover,.sector-filter-select .family-suggestions [data-sector-filter-option]:focus-visible{background:#edf7ff;color:#0758a9;outline:0}.sector-filter-select .family-suggestions [data-sector-filter-option] strong{font-size:.87rem}
.financial-summary-table{flex:none;overflow-x:auto;overflow-y:visible;overscroll-behavior:auto}.financial-summary-detail-button{min-height:2.35rem;padding:.45rem .7rem;font-size:.7rem}.financial-summary-table tbody tr.is-detail-open td{background:#f1f8fe;border-top-color:#b7dcf6;box-shadow:inset 0 2px 0 #6faedf}.financial-summary-detail-row[hidden]{display:none!important}.financial-summary-detail-row>td{padding:0!important;border-top:0!important;background:#f7fbff;box-shadow:inset 0 -2px 0 #6faedf,inset 0 0 0 2px #b7dcf6}.financial-summary-detail-content{padding:1rem 1.15rem}.financial-summary-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;color:#214b75}.financial-summary-detail-heading span{color:#60748b;font-size:.72rem;font-weight:700}.financial-summary-detail-table{overflow-x:auto}.financial-summary-detail-table table{width:100%;min-width:900px;border-collapse:collapse;font-size:.75rem}.financial-summary-detail-table th{padding:.65rem .75rem;background:#edf7ff;color:#58758d;font-size:.62rem;letter-spacing:.05em;text-align:left;text-transform:uppercase}.financial-summary-detail-table td{padding:.7rem .75rem!important;border-top:1px solid #dbeaf5;color:#40516b;vertical-align:top;white-space:normal!important}.financial-summary-detail-table td small{display:block}.financial-summary-detail-loading,.financial-summary-detail-empty,.financial-summary-detail-error{margin:0;padding:.65rem .75rem;border-radius:.65rem;background:#fff;color:#52677e}.financial-summary-detail-error{background:#fff0f0;color:#a23535}
.financial-sector-detail{margin-top:.7rem}.financial-sector-detail summary{width:max-content;max-width:100%;padding:.38rem .55rem;border:1px solid #bfdcf3;border-radius:.55rem;background:#f4faff;color:#236598;font-size:.68rem;font-weight:800;cursor:pointer}.financial-sector-detail[open] summary{margin-bottom:.65rem;background:#eaf6ff}.financial-sector-detail-table{overflow-x:auto}.financial-sector-detail-table table{width:100%;min-width:970px;border-collapse:collapse;font-size:.7rem}.financial-sector-detail-table th{padding:.55rem .6rem;background:#f0f8fe;color:#638096;font-size:.58rem;letter-spacing:.045em;text-align:left;text-transform:uppercase}.financial-sector-detail-table td{padding:.58rem .6rem!important;border-top:1px solid #e1edf6;color:#49627a;vertical-align:top}.financial-sector-detail-table td small{display:block;margin-top:.18rem;color:#71879a;font-size:.63rem}
.family-report-filter-panel{padding:1.15rem 1.2rem;position:relative;z-index:2;overflow:visible}.family-report-filters{display:grid;grid-template-columns:minmax(240px,1.35fr) minmax(105px,.42fr) repeat(3,minmax(165px,.8fr)) auto;align-items:end;gap:.9rem 1rem}.family-report-filters .form-field{min-width:0}.family-report-filters .form-field>span{display:block;margin-bottom:.42rem;color:#42536c;font-size:.75rem;font-weight:800}.family-report-filters input,.family-report-filters select{width:100%;min-width:0;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit;font-weight:600}.family-report-family-autocomplete{position:relative;z-index:1}.family-report-family-autocomplete:focus-within{z-index:12}.family-report-family-autocomplete .family-suggestions{z-index:30}.family-report-family-autocomplete [data-family-report-option][hidden],.family-report-family-autocomplete .family-empty[hidden]{display:none!important}.family-report-family-autocomplete [data-family-report-option]{width:100%;padding:.7rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:0;border-radius:.65rem;background:transparent;color:var(--ink);cursor:pointer;text-align:left}.family-report-family-autocomplete [data-family-report-option]:hover,.family-report-family-autocomplete [data-family-report-option]:focus-visible{background:#edf7ff;color:var(--blue);outline:0}.family-report-family-autocomplete [data-family-report-option] strong{font-size:.78rem}.family-report-family-autocomplete [data-family-report-option] small{flex:0 0 auto;color:#7b8da5;font-size:.68rem}.family-report-actions{display:flex;align-items:center;gap:.65rem}.family-report-actions .primary-button,.family-report-actions .secondary-button{min-height:2.85rem;white-space:nowrap}.family-report-table{flex:none;overflow-x:auto;overflow-y:visible;overscroll-behavior:auto}.family-report-table table{min-width:1100px}.family-report-table td:nth-child(2){min-width:13rem}.family-report-table td:nth-child(3){min-width:12rem}.family-report-table td:nth-child(4){min-width:10rem}
.family-report-filter-panel{z-index:10}
.session-expiry-dialog{width:min(92vw,28rem);margin:auto;padding:0;border:0;border-radius:1rem;box-shadow:0 1.5rem 4rem rgb(16 35 60 / 30%)}.session-expiry-dialog::backdrop{background:rgb(3 17 39 / 58%);backdrop-filter:blur(3px)}.session-expiry-dialog-content{padding:1.4rem 1.5rem;background:#fff}.session-expiry-dialog-content .section-label{margin:0 0 .25rem}.session-expiry-dialog-content h2{margin:.1rem 0 .65rem;color:var(--navy);font-size:1.25rem}.session-expiry-dialog-content p:not(.section-label){margin:0;color:#52677e;line-height:1.55}.session-expiry-dialog-content strong{color:#143f70}.session-expiry-dialog-actions{display:flex;justify-content:flex-end;margin-top:1.2rem}
.family-report-filters{grid-template-columns:minmax(220px,1.2fr) minmax(76px,.28fr) minmax(280px,1.55fr) repeat(2,minmax(165px,.8fr)) auto}
.family-report-expense-autocomplete,.family-report-option-select{position:relative;z-index:1}.family-report-expense-autocomplete:focus-within,.family-report-option-select:focus-within{z-index:20}.family-report-expense-autocomplete .family-suggestions,.family-report-option-select .family-suggestions{z-index:30;max-height:19rem;padding:.35rem;border-color:#d6e1ef;border-radius:.75rem;background:#fff;box-shadow:0 .7rem 1.6rem rgb(32 87 137 / 14%)}.family-report-expense-autocomplete [data-family-report-expense-option][hidden]{display:none!important}.family-report-expense-autocomplete [data-family-report-expense-option],.family-report-option-select [data-family-report-select-option]{width:100%;min-height:2.85rem;padding:.7rem .8rem;display:flex;align-items:center;border:0;border-radius:.6rem;background:transparent;color:#253c59;font:600 .9rem inherit;cursor:pointer;text-align:left}.family-report-expense-autocomplete [data-family-report-expense-option]:hover,.family-report-expense-autocomplete [data-family-report-expense-option]:focus-visible,.family-report-option-select [data-family-report-select-option]:hover,.family-report-option-select [data-family-report-select-option]:focus-visible{background:#edf7ff;color:#0758a9;outline:0}.family-report-expense-autocomplete [data-family-report-expense-option] strong{font-size:.87rem}.family-report-option-trigger{width:100%;min-height:2.85rem;padding:.68rem .8rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid #d6e1ef;border-radius:.75rem;outline:0;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left}.family-report-option-trigger:hover{border-color:#8dc9f7;background:#f8fbff}.family-report-option-trigger:focus-visible{border-color:var(--azure);box-shadow:0 0 0 .22rem rgb(13 142 240 / 10%)}.family-report-option-trigger i{width:.52rem;height:.52rem;flex:0 0 auto;border-right:2px solid #246aa7;border-bottom:2px solid #246aa7;transform:rotate(45deg) translateY(-.18rem)}.family-report-option-select [data-family-report-option-list][hidden]{display:none!important}
.siuss-filter-panel{padding:1.15rem 1.2rem}.siuss-filters{display:grid;grid-template-columns:repeat(3,minmax(125px,.55fr)) minmax(230px,1.25fr) minmax(145px,.65fr) minmax(200px,1fr) auto;align-items:end;gap:.9rem 1rem}.siuss-filters .form-field{min-width:0}.siuss-filters .form-field span{display:block;margin-bottom:.42rem;color:#42536c;font-size:.75rem;font-weight:800}.siuss-filters input,.siuss-filters select{width:100%;min-width:0;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit;font-weight:600}.siuss-actions{display:flex;align-items:center;gap:.65rem}.siuss-actions .primary-button,.siuss-actions .secondary-button{min-height:2.85rem;white-space:nowrap}.siuss-warning{margin:1rem 1.2rem;padding:.75rem .9rem;border:1px solid #f1d597;border-radius:.75rem;background:#fff9e9;color:#74541a;font-size:.78rem;font-weight:700}.siuss-table{flex:none;overflow-x:auto;overflow-y:visible;overscroll-behavior:auto}.siuss-table table{min-width:1780px}.siuss-table td:nth-child(1){min-width:13rem}.siuss-table td:nth-child(7){min-width:15rem}.siuss-missing-typology td{background:#fff5f5!important;color:#9b3131}
.supplier-dues-filter-panel{padding:1.15rem 1.2rem;overflow:visible}.supplier-dues-filters{display:grid;grid-template-columns:minmax(250px,1.55fr) repeat(2,minmax(130px,.6fr)) minmax(175px,.85fr) auto;align-items:end;gap:.9rem 1rem}.supplier-dues-filters .form-field,.supplier-dues-supplier-autocomplete{min-width:0;display:grid;gap:.42rem;color:#42536c;font-size:.75rem;font-weight:800}.supplier-dues-filters input,.supplier-dues-filters select{width:100%;min-width:0;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;outline:0;background:#fff;color:var(--ink);font:inherit;font-weight:600;transition:border-color .15s,box-shadow .15s,background-color .15s}.supplier-dues-filters input:hover,.supplier-dues-filters select:hover{border-color:#8dc9f7;background:#f8fbff;box-shadow:0 .35rem 1rem rgb(13 142 240 / 7%)}.supplier-dues-filters input:focus,.supplier-dues-filters select:focus{border-color:var(--azure);box-shadow:0 0 0 .22rem rgb(13 142 240 / 10%)}.supplier-dues-supplier-autocomplete{position:relative;z-index:20}.supplier-dues-supplier-autocomplete .family-suggestions{z-index:30;max-height:16rem}.supplier-dues-supplier-autocomplete [data-supplier-dues-option][hidden],.supplier-dues-supplier-autocomplete .family-empty[hidden]{display:none!important}.supplier-dues-filter-actions{display:flex;align-items:center;gap:.65rem;min-height:2.85rem}.supplier-dues-filter-actions .primary-button,.supplier-dues-filter-actions .secondary-button{min-height:2.85rem;white-space:nowrap}
.liquidation-filter-panel{padding-bottom:1.15rem}.liquidation-filters{display:grid;grid-template-columns:minmax(210px,1.35fr) repeat(2,minmax(110px,.55fr)) minmax(190px,1fr) minmax(145px,.7fr) auto;align-items:end;gap:.85rem 1rem;padding:.55rem 1.2rem 0}.liquidation-filters label{min-width:0;display:grid;gap:.4rem;color:#42536c;font-size:.75rem;font-weight:800}.liquidation-filters input,.liquidation-filters select{width:100%;min-width:0;min-height:2.85rem;padding:.68rem .8rem;border:1px solid #d6e1ef;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit;font-weight:600}.liquidation-filter-actions{display:flex;align-items:center;gap:.7rem}.liquidation-selection-toolbar{position:sticky;z-index:12;top:.75rem;margin:1rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;border:1px solid #c9d9ec;border-radius:1rem;background:rgba(255,255,255,.97);box-shadow:0 .7rem 1.8rem rgba(27,55,92,.12);backdrop-filter:blur(10px)}.liquidation-selection-toolbar>div{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.liquidation-selection-toolbar strong{color:#143f70}.liquidation-actions{justify-content:flex-end}.danger-button{min-height:2.6rem;padding:.65rem .9rem;border:1px solid #bd4545;border-radius:.72rem;background:#fff1f1;color:#9c2929;font:inherit;font-weight:800;cursor:pointer}.danger-button:hover,.danger-button:focus-visible{background:#a83232;color:#fff}.danger-button:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}.liquidation-table{overflow:auto}.liquidation-table table{min-width:1180px}.liquidation-table th,.liquidation-table td{vertical-align:top}.liquidation-table td small{display:block;margin-top:.3rem;color:#60748b;line-height:1.45}.liquidation-table tbody tr.is-paid{background:#f4faf7}.selection-cell{width:2.4rem;text-align:center}.selection-cell input{width:19px;height:19px;accent-color:#246aa7}.multiline-value{white-space:pre-line}.status-pill{display:inline-flex;padding:.22rem .5rem;border-radius:999px;font-size:.7rem;font-weight:850}.status-pill.success{background:#dcf3e9;color:#176247}.status-pill.warning{background:#fff1cd;color:#825a0b}.liquidation-notes{margin-top:.35rem}.liquidation-notes summary{color:#246aa7;font-size:.75rem;font-weight:800;cursor:pointer}.liquidation-notes p{max-width:18rem;margin:.35rem 0 0;white-space:pre-wrap;color:#52677e;font-size:.75rem}.liquidation-dialog{width:min(92vw,48rem);max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:1.1rem;box-shadow:0 1.5rem 4rem rgba(16,35,60,.3)}.liquidation-dialog::backdrop,.income-dialog::backdrop{background:rgba(15,31,52,.58)}.liquidation-dialog-header,.liquidation-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid #e0e8f1}.liquidation-dialog-header h2{margin:.15rem 0 0}.liquidation-dialog-header>button{width:2.2rem;height:2.2rem;border:0;border-radius:50%;background:#edf3f8;color:#3e5871;font-size:1.45rem;cursor:pointer}.liquidation-dialog-body{padding:1.2rem}.liquidation-bulk-note{margin:0 0 1rem;padding:.7rem .85rem;border-radius:.7rem;background:#fff5d9;color:#76520e;font-size:.82rem}.liquidation-dialog-footer{justify-content:flex-end;border-top:1px solid #e0e8f1;border-bottom:0}.income-dialog{width:min(96vw,90rem);height:min(92dvh,68rem);max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:1.1rem;box-shadow:0 1.5rem 4rem rgba(16,35,60,.3)}.income-dialog-content{height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);background:#fff}.income-dialog-actions{display:flex;justify-content:flex-start;padding:.8rem 1.2rem;border-bottom:1px solid #e0e8f1;background:#fff}.income-dialog-form{max-height:38dvh;overflow-y:auto;padding:1rem 1.2rem;border-bottom:1px solid #e0e8f1;background:#f8fbfe}.income-dialog-form-heading,.income-dialog-history-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.income-dialog-form-heading h3,.income-dialog-history-heading h3{margin:0}.income-dialog-history{min-height:0;overflow-y:auto;padding:1rem 1.2rem;background:#fff}.income-dialog-history-heading{margin-bottom:.8rem}.income-dialog-history-heading span{color:#60748b;font-size:.75rem;font-weight:800}.income-dialog-history .responsive-table{overflow-x:auto}.income-dialog-history table{width:100%;min-width:48rem}.income-dialog-history td small{display:block;margin-top:.25rem;color:#60748b}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.liquidation-table tbody tr{cursor:pointer;transition:background-color .15s,box-shadow .15s}.responsive-table.liquidation-table tbody tr.is-selected,.responsive-table.liquidation-table tbody tr.is-selected:hover{background:#c6e6fb;box-shadow:inset .3rem 0 #0f5f9f}.liquidation-table tbody tr:focus-visible{outline:.18rem solid #2471b7;outline-offset:-.18rem}.liquidation-table tbody tr.is-selected td{border-color:#9ecae9}
.liquidation-pdf-dialog{width:min(96vw,86rem);height:min(92dvh,64rem)}.liquidation-pdf-dialog-content{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.liquidation-pdf-dialog-body{min-height:0;padding:0;background:#eef3f8}.liquidation-pdf-dialog-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}.liquidation-pdf-dialog-body p{margin:1rem;padding:.8rem 1rem;border-radius:.75rem;background:#fff1f1;color:#9c2929;font-weight:750}.iban-dialog{width:min(96vw,90rem);height:min(92dvh,68rem);max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:1.1rem;box-shadow:0 1.5rem 4rem rgba(16,35,60,.3)}.iban-dialog::backdrop{background:rgba(15,31,52,.58)}.iban-dialog-content{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#fff}.iban-dialog-form{max-height:38dvh;overflow-y:auto;padding:1rem 1.2rem;border-bottom:1px solid #e0e8f1;background:#f8fbfe}.iban-dialog-history{min-height:0;overflow-y:auto;padding:1rem 1.2rem;background:#fff}.iban-record-list{display:grid;gap:.7rem}.iban-record{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid #dce6f0;border-radius:.8rem;background:#f8fbfe}.iban-record>div{min-width:0}.iban-record strong,.iban-record small{display:block;overflow-wrap:anywhere}.iban-record small{margin-top:.22rem;color:#60748b;font-size:.75rem;line-height:1.4}.iban-record .secondary-button{flex:0 0 auto}.income-dialog-form .form-actions{position:static;z-index:auto;margin-top:1rem;padding:0;justify-content:flex-end;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.liquidation-confirm-dialog{position:fixed;inset:0;width:min(94vw,36rem);height:fit-content!important;min-height:0;max-height:calc(100dvh - 2rem);margin:auto}.liquidation-confirm-dialog-content{display:block}.liquidation-confirm-dialog .app-modal-body{padding-bottom:1.25rem}.liquidation-confirm-dialog .app-modal-body p{margin:0;color:#42536c;line-height:1.55}.liquidation-confirm-dialog .app-modal-body p+p{margin-top:.75rem}.iban-tab-management{display:grid;gap:1.25rem;margin-top:1.25rem}.iban-tab-management .iban-dialog-form{max-height:none;overflow:visible;padding:1rem 1.15rem;border:1px solid #dce6f0;border-radius:.9rem;background:#f8fbfe}.iban-tab-management .iban-dialog-history{height:min(46dvh,34rem);min-height:14rem;padding:1rem 1.15rem;overflow-y:auto;border:1px solid #dce6f0;border-radius:.9rem;background:#fff}.iban-primary-fields{align-items:start}.iban-delegate-details{margin-top:1rem;border:1px solid #d8e5f0;border-radius:.8rem;background:#fff}.iban-delegate-details summary{padding:.8rem .95rem;color:#245782;font-size:.8rem;font-weight:800;cursor:pointer}.iban-delegate-details[open] summary{border-bottom:1px solid #d8e5f0;background:#eef7fd}.iban-delegate-details>div{padding:1rem}.iban-use-fieldset{margin:1rem 0 0;padding:1rem;border:1px solid #d8e5f0;border-radius:.8rem;background:#fff}.iban-use-fieldset legend{padding:0 .3rem;color:#42536c;font-size:.75rem;font-weight:800}.iban-dialog-form .form-actions{position:static;z-index:auto;margin-top:1rem;padding:0;justify-content:flex-end;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.liquidation-details-dialog{width:min(94vw,62rem);height:min(92dvh,58rem);max-height:calc(100dvh - 2rem);padding:0}.liquidation-details-dialog-content{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.liquidation-details-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.liquidation-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:0}.liquidation-details-grid>div{min-width:0;padding:.8rem .9rem;border:1px solid #dce6f0;border-radius:.75rem;background:#f8fbfe}.liquidation-details-grid dt{margin-bottom:.3rem;color:#60748b;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}.liquidation-details-grid dd{margin:0;color:#1f3853;font-weight:700;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.liquidation-details-grid .liquidation-detail-wide{grid-column:1/-1}
.liquidation-monthly-details{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid #dce6f0}.liquidation-monthly-heading{margin-bottom:.85rem}.liquidation-monthly-heading h3{margin:.15rem 0 0;color:#173f6a}.liquidation-sector-records{display:grid;gap:1rem}.liquidation-sector-records article{padding:1rem;border:1px solid #cbddeb;border-radius:.9rem;background:#fff}.liquidation-sector-records h4{margin:0 0 .8rem;color:#173f6a}
@media(max-width:1150px){.financial-summary-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.financial-summary-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.supplier-dues-filters,.liquidation-filters,.family-report-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.liquidation-filter-actions{grid-column:span 1}}
@media(max-width:760px){.financial-summary-filters,.supplier-dues-filters,.liquidation-filters,.family-report-filters{grid-template-columns:1fr}.financial-summary-actions,.family-report-actions{display:grid;grid-template-columns:1fr 1fr}.financial-summary-actions .primary-button,.financial-summary-actions .secondary-button,.family-report-actions .primary-button,.family-report-actions .secondary-button{width:100%;justify-content:center}.financial-summary-totals{grid-template-columns:1fr}.financial-summary-table table,.family-report-table table{min-width:0}.financial-summary-detail-row{display:block!important;padding:0!important}.financial-summary-detail-row>td{display:block!important;padding:0!important}.financial-summary-detail-row>td::before{display:none}.financial-summary-detail-content{padding:.85rem}.financial-summary-detail-table{overflow:visible}.financial-summary-detail-table table,.financial-summary-detail-table tbody{display:block;min-width:0}.financial-summary-detail-table thead{display:none}.financial-summary-detail-table tr{display:grid;grid-template-columns:1fr;gap:.65rem;padding:.75rem 0;border-top:1px solid #dce8f2}.financial-summary-detail-table tr:first-child{border-top:0}.financial-summary-detail-table td{display:grid!important;gap:.2rem;padding:0!important;border:0!important}.financial-summary-detail-table td::before{content:attr(data-label);color:#8996a8;font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.supplier-dues-filter-actions,.liquidation-filter-actions{grid-column:auto}.supplier-dues-filter-actions{display:grid;grid-template-columns:1fr 1fr}.supplier-dues-filter-actions .primary-button,.supplier-dues-filter-actions .secondary-button{width:100%;justify-content:center}.liquidation-selection-toolbar{position:static;align-items:stretch;flex-direction:column}.liquidation-actions{display:grid!important;grid-template-columns:1fr 1fr}.liquidation-table{overflow:visible}.liquidation-table table{min-width:0}.liquidation-table tr{grid-template-columns:2.5rem 1fr}.liquidation-table td:not(.selection-cell){grid-column:2}.liquidation-table td[data-label]::before{min-width:7.4rem}.liquidation-dialog-footer{align-items:stretch;flex-direction:column-reverse}.liquidation-dialog-footer button{width:100%}.liquidation-details-grid{grid-template-columns:1fr}.liquidation-details-grid .liquidation-detail-wide{grid-column:auto}}
@media(max-width:700px){.landlord-mfa-methods,.recovery-code-list{grid-template-columns:1fr}.landlord-mfa-methods p{min-height:0}}
/* Barra selezioni elenco liquidazioni: aderisce alla topbar. */
.liquidation-selection-toolbar{position:sticky;isolation:isolate;z-index:30;top:calc(.2rem - clamp(2rem,4vw,3.5rem));background:#fff}
@media(max-width:1050px){.liquidation-selection-toolbar{top:calc(.2rem - 1.5rem)}}
@media(max-width:760px){.liquidation-selection-toolbar{position:sticky;top:calc(.2rem - 1.5rem)}}
/* Creazione finanziamenti massiva: un solo scroll di pagina, azione sempre disponibile. */
.mass-funding-create-page{height:auto;min-height:0;overflow:visible}
.mass-funding-create-page>form[data-mass-funding-form]{display:block;min-height:0}
.mass-funding-create-page .mass-funding-list{min-height:0;display:grid;flex:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
.mass-funding-create-page>form>.form-actions{position:sticky;z-index:30;bottom:0;margin-top:1rem;background:#fff}
/* Filtro annualità della scheda finanziamenti utente. */
.services-year-filter{display:flex;justify-content:flex-end;margin:-.35rem 0 1rem}.services-year-filter label{display:flex;align-items:center;gap:.55rem;color:#53647a;font-size:.78rem;font-weight:800}.services-year-filter select{min-height:2.35rem;padding:.45rem .65rem;border:1px solid #cbd9e7;border-radius:.65rem;background:#fff;color:var(--ink);font:inherit;font-weight:700}
@media(max-width:700px){.services-year-filter{justify-content:flex-start}.services-year-filter label{align-items:flex-start;flex-direction:column}.services-year-filter select{width:100%}}
/* Comandi finanziamenti: filtro, conteggio e nuova assegnazione sulla stessa riga. */
.services-heading .services-year-filter{margin:0 0 0 auto}.services-heading .record-count{margin-left:0}
@media(max-width:700px){.services-heading .services-year-filter{margin-left:0}}
/* Inserimento massivo impegni: un solo scroll di pagina, registrazione sempre disponibile. */
.mass-commitment-page{height:auto;min-height:0;overflow:visible}
.mass-commitment-page>form[data-mass-edit-form]{display:block;min-height:0}
.mass-commitment-page .mass-funding-list{min-height:0;display:grid;flex:none;max-height:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}
.mass-commitment-page>form>.form-actions{position:sticky;z-index:30;bottom:0;margin-top:1rem;background:#fff}
/* Filtri Rendicontazioni: le opzioni devono sovrapporsi al contenuto della pagina. */
.financial-summary-filter-panel:has(.sector-filter-select){position:relative;z-index:20;overflow:visible}
.sector-filter-select:focus-within{z-index:30}
.sector-filter-select .family-suggestions{z-index:40}
/* Riquadri riepilogativi Rendicontazioni: stessa spaziatura su tutti i report. */
.report-summary-panel>.financial-summary-totals{grid-template-columns:repeat(5,minmax(0,1fr));margin:1rem 1.2rem}
@media(max-width:1150px){.report-summary-panel>.financial-summary-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.report-summary-panel>.financial-summary-totals{grid-template-columns:1fr;margin:.85rem}}

/* Campi più compatti nei moduli e nei filtri, compresi i menu personalizzati. */
.form-field input:not([type=checkbox]):not([type=radio]):not([type=file]),
.form-field select:not([multiple]),
.financial-summary-filters input:not([type=checkbox]),
.financial-summary-filters select:not([multiple]),
.family-report-filters input:not([type=checkbox]),
.family-report-filters select:not([multiple]),
.siuss-filters input:not([type=checkbox]),
.siuss-filters select:not([multiple]),
.supplier-dues-filters input:not([type=checkbox]),
.supplier-dues-filters select:not([multiple]),
.mass-monthly-filter-panel input:not([type=checkbox]),
.mass-monthly-fields input:not([type=checkbox]),
.mass-monthly-payment-panel input:not([type=checkbox]),
.app-select-trigger,
.sector-select-trigger,
.family-report-option-trigger {
    min-height: 2.6rem;
    padding-top: .52rem;
    padding-bottom: .52rem;
}
.services-year-filter .app-select-trigger { min-height: 2.35rem; padding-top: .45rem; padding-bottom: .45rem; }
.auth-form .input-wrap { min-height: 3.1rem; }
.search-field, .search-button, .pagination-link, .registry-search-button { min-height: 2.6rem; }
.mass-monthly-fields .checkbox-label { min-height: 2.6rem; padding-top: .52rem; padding-bottom: .52rem; }
.form-field input[type=checkbox], .form-field input[type=radio] {
    width: 1.15rem;
    height: 1.15rem;
    min-width: 1.15rem;
    min-height: 1.15rem;
    padding: 0;
    accent-color: var(--blue);
    vertical-align: middle;
}
.income-dialog-form-buttons{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}
