:root {
    --anpe-navy: #12358c;
    --anpe-blue: #12aee2;
    --anpe-ink: #1b2433;
    --anpe-muted: #6f7175;
    --anpe-bg: #f5f8fc;
    --anpe-line: #dce5f2;
    --anpe-danger: #b42318;
    --radius: 14px;
}

/* Searchable selects keep the original select as the submitted value. */
.searchable-select__native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    padding: 0 !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}

.searchable-select {
    position: relative;
    width: 100%;
    min-width: 0;
}

.searchable-select::after {
    position: absolute;
    top: 50%;
    right: .75rem;
    width: .5rem;
    height: .5rem;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    content: "";
    pointer-events: none;
    transform: translateY(-70%) rotate(45deg);
    transition: transform .16s ease;
}

.searchable-select.is-open::after {
    transform: translateY(-25%) rotate(225deg);
}

.searchable-select__input {
    padding-right: 2.2rem !important;
    cursor: text;
}

.searchable-select__input:disabled {
    cursor: not-allowed;
}

.searchable-select__list {
    position: fixed;
    z-index: 4000;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--anpe-line);
    border-radius: 10px;
    padding: .3rem;
    background: #fff;
    box-shadow: 0 16px 36px rgba(15, 35, 75, .16);
    scrollbar-width: thin;
}

.searchable-select__list--floating {
    isolation: isolate;
}

.searchable-select__option {
    border-radius: 7px;
    padding: .52rem .62rem;
    color: var(--anpe-ink);
    cursor: pointer;
    line-height: 1.35;
}

.searchable-select__option:hover,
.searchable-select__option.is-active {
    background: #eaf7fd;
    color: var(--anpe-navy);
}

.searchable-select__option[aria-selected="true"] {
    font-weight: 800;
}

.searchable-select__empty {
    margin: 0;
    padding: .65rem;
    color: var(--anpe-muted);
    text-align: center;
}

.field.is-invalid > .searchable-select .searchable-select__input,
select.is-invalid + .searchable-select .searchable-select__input {
    border-color: var(--anpe-danger);
    background: #fffafa;
}

@media (max-width: 640px) {
    .searchable-select__list {
        max-height: 210px;
    }
}

* {
    box-sizing: border-box;
}

[hidden] {
    display: none !important;
}

body {
    margin: 0;
    min-height: 100vh;
    background: var(--anpe-bg);
    color: var(--anpe-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

a {
    color: inherit;
    text-decoration: none;
}

.public-shell {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 0%, rgba(255, 255, 255, .12), transparent 36%),
        linear-gradient(145deg, #12bde9 0%, #08b3e2 58%, #05a9da 100%);
}

.public-nav,
.topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.public-nav {
    padding: 1rem 3rem;
    color: #fff;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    font-size: .96rem;
    font-weight: 800;
}

.brand-mark {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 10px;
    background: #fff;
    color: var(--anpe-navy);
    font-weight: 900;
    overflow: hidden;
}

.brand-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 4px;
}

.public-nav-links {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.public-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 1.25rem;
    align-items: center;
    min-height: calc(100vh - 82px);
    padding: 3rem;
    color: #fff;
}

.public-main {
    padding: 0 3rem 3rem;
}

.public-hero--compact {
    min-height: auto;
    padding: .35rem 0 0;
}

.public-carousel {
    position: relative;
    width: min(1600px, calc(100% - 6rem));
    margin: 0 auto 1.25rem;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(255, 255, 255, .12);
    box-shadow: 0 22px 55px rgba(7, 22, 64, .22);
}

.public-header + .public-carousel {
    margin-top: .75rem;
}

.public-carousel-track {
    position: relative;
    aspect-ratio: 8 / 3;
    min-height: 190px;
    max-height: 320px;
}

.public-carousel--compact .public-carousel-track {
    aspect-ratio: 4 / 1;
    height: 150px;
    min-height: 0;
    max-height: 150px;
}

.public-carousel--compact {
    width: min(760px, calc(100% - 2rem));
    margin-bottom: .75rem;
}

.public-main--offers {
    padding-top: 0;
}

.public-main--home {
    padding-bottom: 2rem;
}

.public-header + .public-carousel:has(+ .public-main--home) {
    margin-bottom: .35rem;
}

.public-carousel-slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transition: opacity .55s ease;
}

.public-carousel-slide.is-active {
    opacity: 1;
}

.public-carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.public-carousel-slide figcaption {
    position: absolute;
    left: 1.25rem;
    bottom: 1.25rem;
    max-width: min(680px, calc(100% - 2rem));
    border-radius: 999px;
    padding: .55rem .9rem;
    background: rgba(7, 22, 64, .72);
    color: #fff;
    font-weight: 800;
}

.public-carousel-control {
    position: absolute;
    top: 50%;
    width: 42px;
    min-height: 42px;
    border: 1px solid rgba(255, 255, 255, .5);
    padding: 0;
    background: rgba(7, 22, 64, .6);
    transform: translateY(-50%);
    font-size: 1.45rem;
}

.public-carousel-control--prev {
    left: .85rem;
}

.public-carousel-control--next {
    right: .85rem;
}

.public-carousel-dots {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: flex;
    gap: .35rem;
}

.public-carousel-dots span {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .48);
}

.public-carousel-dots span.is-active {
    width: 22px;
    background: #fff;
}

.hero-title {
    max-width: 850px;
    margin: 0 0 .55rem;
    font-size: 2.45rem;
    line-height: 1.04;
}

.hero-copy {
    max-width: 720px;
    margin: 0;
    color: rgba(255, 255, 255, .86);
    font-size: .95rem;
}

.home-logo-kicker {
    display: inline-grid;
    width: 58px;
    height: 42px;
    place-items: center;
    margin-bottom: .5rem;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(7, 22, 64, .2);
}

.home-logo-kicker img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: .45rem;
}

.floating-offers-button {
    position: fixed;
    right: 1rem;
    bottom: 1.6rem;
    z-index: 20;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border-radius: 999px;
    padding: .65rem .95rem;
    background: #fff;
    color: var(--anpe-navy);
    font-size: .9rem;
    font-weight: 850;
    box-shadow: 0 18px 45px rgba(7, 22, 64, .28);
}

.floating-offers-button::before {
    content: "";
    width: 8px;
    height: 8px;
    margin-right: .55rem;
    border-radius: 999px;
    background: var(--anpe-blue);
    box-shadow: 0 0 0 6px rgba(18, 174, 226, .16);
}

.green-number {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    margin-left: .35rem;
    border-radius: 999px;
    padding: .25rem .85rem;
    background: #fff;
    color: #0f7a49;
    font-size: 1.12rem;
    font-weight: 950;
    letter-spacing: .04em;
    box-shadow: 0 12px 28px rgba(7, 22, 64, .18);
}

.public-kicker {
    display: inline-flex;
    margin-bottom: .55rem;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 999px;
    padding: .24rem .58rem;
    color: #fff;
    font-size: .74rem;
    font-weight: 850;
    text-transform: uppercase;
}

.public-main--offers .public-kicker {
    margin-bottom: .38rem;
}

.public-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
}

.public-info-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .6rem;
    align-self: stretch;
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: 12px;
    padding: .75rem;
    background: rgba(255, 255, 255, .14);
    color: #fff;
}

.public-info-panel p {
    grid-column: 1 / -1;
    margin: .15rem 0 0;
    color: rgba(255, 255, 255, .88);
    font-size: .9rem;
}

.public-offers-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: end;
    margin-bottom: .65rem;
    color: #fff;
}

.public-offers-header h1 {
    margin: 0;
    font-size: 1.72rem;
    line-height: 1.08;
}

.public-offers-header p {
    max-width: 860px;
    margin: .35rem 0 0;
    color: rgba(255, 255, 255, .88);
    font-size: .96rem;
}

.public-offers-count {
    min-width: 140px;
    border-radius: 12px;
    padding: .7rem .8rem;
    background: #fff;
    color: var(--anpe-ink);
    text-align: center;
}

.public-offers-count strong {
    display: block;
    color: var(--anpe-navy);
    font-size: 1.45rem;
    line-height: 1;
}

.public-offers-count span {
    color: var(--anpe-muted);
    font-weight: 750;
}

.public-offer-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.public-deadline {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .8rem;
    border-radius: 999px;
    padding: .45rem .75rem;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    font-weight: 750;
}

.public-deadline--home {
    margin-top: .75rem;
    padding: .36rem .62rem;
    font-size: .86rem;
}

.public-countdown {
    border-radius: 999px;
    padding: .18rem .55rem;
    background: rgba(255, 255, 255, .22);
    font-weight: 900;
}

.public-deadline.is-closed {
    background: rgba(180, 35, 24, .22);
}

.public-main--offers .public-deadline {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    grid-template-areas:
        "icon label countdown"
        "icon date countdown";
    align-items: center;
    gap: .12rem .7rem;
    width: fit-content;
    max-width: 100%;
    margin-top: .85rem;
    padding: .7rem .85rem;
    border: 1px solid #f0cf82;
    border-left: 5px solid #e6a817;
    border-radius: 8px;
    background: #fff7df;
    color: var(--anpe-ink);
    box-shadow: 0 10px 28px rgba(7, 22, 64, .2);
}

.public-main--offers .public-deadline .nav-icon {
    grid-area: icon;
    width: 25px;
    height: 25px;
    color: #b97800;
}

.public-deadline__label {
    grid-area: label;
    color: var(--anpe-muted);
    font-size: .76rem;
    font-weight: 850;
    text-transform: uppercase;
}

.public-deadline__date {
    grid-area: date;
    color: var(--anpe-navy);
    font-size: 1.22rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.public-main--offers .public-countdown {
    grid-area: countdown;
    margin-left: .35rem;
    padding: .4rem .65rem;
    background: #ffe9ad;
    color: #744a00;
}

.public-main--offers .public-deadline.is-closed {
    border-left-color: var(--anpe-danger);
    border-color: #efb8b3;
    background: #fff0ee;
}

.public-offer-list {
    display: grid;
    gap: .75rem;
}

.public-offer-filters {
    margin: 0 0 .75rem;
    border: 1px solid #a9cce9;
    border-radius: 12px;
    background: #eaf4ff;
    box-shadow: 0 16px 38px rgba(7, 22, 64, .12);
    overflow: hidden;
}

.public-offer-filters summary {
    cursor: pointer;
    padding: .68rem .85rem;
    color: var(--anpe-navy);
    font-weight: 900;
    list-style: none;
}

.public-offer-filters[open] summary {
    border-bottom: 1px solid #c7ddf1;
    background: #dceeff;
}

.public-offer-filters summary::-webkit-details-marker {
    display: none;
}

.public-offer-filters summary::after {
    content: '+';
    float: right;
    color: var(--anpe-blue);
    font-weight: 900;
}

.public-offer-filters[open] summary::after {
    content: '-';
}

.public-offer-filter-form {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    padding: 0 .85rem .85rem;
    background: #eaf4ff;
}

.public-offer-filter-form .field {
    margin: 0;
}

.public-offer-filter-form label {
    color: var(--anpe-muted);
    font-size: .78rem;
    font-weight: 850;
    text-transform: uppercase;
}

.public-offer-filter-form input,
.public-offer-filter-form select {
    min-height: 38px;
    border: 1px solid var(--anpe-line);
    border-radius: 10px;
    padding: .55rem .7rem;
    background: #fff;
    color: var(--anpe-ink);
    font: inherit;
}

.public-offer-filter-actions {
    display: flex;
    align-items: end;
    gap: .65rem;
    flex-wrap: wrap;
}

.public-offer-group {
    border: 1px solid #b9dcca;
    border-radius: 12px;
    overflow: hidden;
    background: #f2faf6;
    box-shadow: 0 18px 45px rgba(7, 22, 64, .12);
}

.public-offer-group__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border-bottom: 1px solid #cde5d8;
    background: #e5f5ec;
}

.public-offer-group__header h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.35rem;
    line-height: 1.2;
}

.public-offer-group__domain {
    font-weight: 900;
}

.public-offer-group__location {
    margin: .2rem 0 0;
    color: var(--anpe-muted);
    font-weight: 800;
}

.public-offer-group__meta {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-left: auto;
}

.public-offer-lines {
    display: grid;
}

.public-offer-line {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.4fr);
    gap: 1rem;
    align-items: center;
    padding: .9rem 1rem;
}

.public-offer-line + .public-offer-line {
    border-top: 1px solid #d6eade;
}

.public-offer-label {
    display: block;
    color: var(--anpe-muted);
    font-size: .76rem;
    font-weight: 850;
    text-transform: uppercase;
}

.public-offer-line strong {
    color: var(--anpe-ink);
}

.public-offer-action {
    display: flex;
    justify-content: flex-end;
    padding: 0 1rem 1rem;
}

.public-offer-card,
.public-empty-offers {
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(7, 22, 64, .12);
}

.public-offer-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    min-height: 280px;
    padding: 1rem;
}

.public-offer-card h2 {
    margin: .75rem 0;
    color: var(--anpe-navy);
    font-size: 1.2rem;
    line-height: 1.2;
}

.public-offer-card dl {
    display: grid;
    gap: .65rem;
    margin: 0;
}

.public-offer-card dl div {
    display: grid;
    gap: .15rem;
}

.public-offer-card dt {
    color: var(--anpe-muted);
    font-size: .78rem;
    font-weight: 850;
    text-transform: uppercase;
}

.public-offer-card dd {
    margin: 0;
    color: var(--anpe-ink);
    font-weight: 700;
}

.public-offer-card .button {
    width: 100%;
}

.button.disabled {
    pointer-events: none;
    opacity: .55;
    background: var(--anpe-muted);
}

.public-empty-offers {
    grid-column: 1 / -1;
    padding: 2rem;
    text-align: center;
}

.public-empty-offers__summary {
    margin: .65rem 0 0;
    padding-top: .65rem;
    border-top: 1px solid var(--anpe-line);
    color: var(--anpe-navy);
    font-weight: 800;
}

.public-application {
    padding-bottom: 4rem;
}

.public-application-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    color: #fff;
}

.public-application-header h1 {
    margin: 0;
    font-size: 2.15rem;
    line-height: 1.08;
}

.public-application-header p {
    max-width: 920px;
    margin: .6rem 0 0;
    color: rgba(255, 255, 255, .9);
    font-size: .96rem;
    font-weight: 650;
}

.public-application-form {
    display: grid;
    gap: 1rem;
    width: min(1180px, 100%);
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 14px;
    padding: 1rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 28px 70px rgba(7, 22, 64, .22);
}

.public-form-section {
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: 1rem;
    background: #fff;
}

.public-form-section h2 {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 1rem;
    color: var(--anpe-navy);
    font-size: 1.05rem;
    text-transform: uppercase;
}

.public-form-section h2::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: var(--anpe-blue);
    box-shadow: 0 0 0 5px rgba(18, 174, 226, .13);
}

.public-application-form .form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-application-form .field {
    margin-bottom: 0;
    scroll-margin-top: 96px;
}

.public-application-form .field-wide {
    grid-column: 1 / -1;
}

.public-application-form label {
    color: #4f5b6b;
    font-size: .88rem;
}

.public-application-form input,
.public-application-form select,
.public-application-form textarea {
    min-height: 48px;
    border-color: #d7e2f2;
    border-radius: 9px;
    background: #fbfdff;
}

.public-application-form input:focus,
.public-application-form select:focus,
.public-application-form textarea:focus {
    outline: 3px solid rgba(18, 174, 226, .2);
    border-color: var(--anpe-blue);
    background: #fff;
}

.public-application-form input[type="file"] {
    padding: .55rem;
    background: #fff;
}

.public-form-alert {
    border: 1px solid #f7c56b;
    border-left: 5px solid #f59e0b;
    border-radius: 10px;
    padding: .95rem 1rem;
    background: #fff8e8;
    color: #5b3412;
}

.public-form-alert strong {
    display: block;
    margin-bottom: .25rem;
    color: #78350f;
}

.public-form-alert p {
    margin: 0;
}

.public-form-alert ul {
    margin: .55rem 0 0;
    padding-left: 1.2rem;
}

.offer-choice-list {
    display: grid;
    gap: .55rem;
}

.offer-choice-panel {
    border: 1px solid #d7e2f2;
    border-radius: 10px;
    background: #fff;
}

.offer-choice-panel summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .8rem .9rem;
    color: var(--anpe-navy);
    font-weight: 850;
    cursor: pointer;
}

.offer-choice-panel[open] summary {
    border-bottom: 1px solid #e5edf8;
}

.offer-choice-count {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: .2rem .55rem;
    background: #eef6ff;
    color: var(--anpe-blue);
    font-size: .78rem;
    font-weight: 850;
}

.offer-choice-tools {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(140px, 1fr));
    gap: .7rem;
    padding: .9rem;
    background: #f8fbff;
}

.offer-choice-items {
    display: grid;
    max-height: 360px;
    overflow: auto;
    gap: .55rem;
    padding: .9rem;
}

.offer-choice-empty {
    margin: 0;
    padding: 0 .9rem .9rem;
    color: var(--anpe-muted);
    font-weight: 700;
}

.stacked-list {
    display: grid;
    gap: .35rem;
}

.stacked-list span {
    display: grid;
    gap: .1rem;
}

.offer-choice {
    display: flex;
    align-items: center;
    gap: .65rem;
    border: 1px solid #d7e2f2;
    border-radius: 9px;
    padding: .7rem .8rem;
    background: #fbfdff;
    color: var(--anpe-ink);
    font-weight: 750;
}

.offer-choice.is-primary {
    border-color: rgba(18, 174, 226, .45);
    background: #eefaff;
}

.offer-choice input {
    width: auto;
    min-height: auto;
}

.public-application-form .field.is-invalid input,
.public-application-form .field.is-invalid select,
.public-application-form .field.is-invalid textarea {
    border-color: var(--anpe-danger);
    background: #fffafa;
}

.public-form-actions {
    display: flex;
    justify-content: flex-end;
    padding: .25rem;
}

.public-form-actions button {
    min-height: 48px;
    padding-inline: 1.35rem;
}

.commune-choice-group {
    min-width: 0;
    margin: 0;
    border: 0;
    padding: 0;
}

.commune-choice-group legend {
    margin-bottom: .35rem;
    font-weight: 700;
}

.commune-choice-header {
    display: flex;
    justify-content: flex-end;
    margin: .5rem 0;
}

.commune-choice-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .4rem;
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid var(--anpe-line);
    border-radius: 8px;
    padding: .6rem;
    background: #fff;
}

.commune-choice {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    padding: .55rem;
    cursor: pointer;
}

.commune-choice:hover,
.commune-choice:has(input:checked) {
    border-color: var(--anpe-blue);
    background: #eaf6ff;
}

.commune-choice:has(input:disabled) {
    opacity: .55;
    cursor: not-allowed;
}

.commune-choice input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
}

.commune-choice span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.draft-save-guidance {
    align-self: center;
    max-width: 260px;
}

.public-success-card {
    display: grid;
    gap: .85rem;
    width: min(720px, 100%);
    margin: 2rem auto;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 14px;
    padding: clamp(1.25rem, 4vw, 2.5rem);
    background: #fff;
    box-shadow: 0 28px 70px rgba(7, 22, 64, .22);
    text-align: center;
}

.public-success-card h1 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: clamp(1.65rem, 4vw, 2.55rem);
    line-height: 1.05;
}

.public-success-card p {
    margin: 0 auto;
    max-width: 560px;
    color: var(--anpe-muted);
    font-size: .96rem;
}

.public-success-card .button {
    justify-self: center;
    margin-top: .45rem;
}

.error-page {
    display: grid;
    min-height: calc(100vh - 96px);
    place-items: center;
    padding-block: 2rem;
}

.error-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
    width: min(860px, 100%);
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 16px;
    padding: 1.25rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 24px 60px rgba(7, 22, 64, .22);
}

.error-code {
    display: grid;
    min-width: 120px;
    min-height: 120px;
    place-items: center;
    border-radius: 14px;
    background: var(--anpe-navy);
    color: #fff;
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1;
}

.error-content .public-kicker {
    margin-bottom: .45rem;
    background: var(--anpe-navy);
}

.error-content h1 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.65rem;
    line-height: 1.15;
}

.error-content p {
    max-width: 620px;
    margin: .55rem 0 0;
    color: var(--anpe-muted);
    font-size: .96rem;
}

.error-actions {
    display: flex;
    gap: .65rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.hero-panel,
.card,
.table-card,
.form-panel {
    border: 1px solid var(--anpe-line);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: 0 18px 45px rgba(18, 53, 140, .08);
}

.hero-panel {
    padding: clamp(1rem, 3vw, 2rem);
    color: var(--anpe-ink);
}

.hero-panel h2,
.page-title h1,
.card h3 {
    margin: 0;
}

.button,
button,
input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    gap: .45rem;
    border: 0;
    border-radius: 999px;
    padding: .55rem .85rem;
    background: var(--anpe-navy);
    color: #fff;
    font-size: .92rem;
    font-weight: 700;
    cursor: pointer;
}

.button.secondary {
    background: #fff;
    color: var(--anpe-navy);
}

.button.light {
    border: 1px solid var(--anpe-line);
    background: #fff;
    color: var(--anpe-navy);
}

.button.danger,
button.danger {
    background: var(--anpe-danger);
}

.button.ghost {
    border: 1px solid rgba(255, 255, 255, .45);
    background: transparent;
    color: #fff;
}

.dashboard-shell {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    min-height: 100vh;
}

.dashboard-shell.sidebar-collapsed {
    grid-template-columns: minmax(0, 1fr);
}

.dashboard-shell.sidebar-collapsed .sidebar {
    display: none;
}

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 1rem;
    background: #0f2d77;
    color: #fff;
    overflow-y: auto;
    scrollbar-color: rgba(255, 255, 255, .35) transparent;
}

.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sidebar-toggle {
    display: none;
    width: 38px;
    min-height: 38px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 10px;
    padding: 0;
    background: rgba(255, 255, 255, .1);
}

.sidebar-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
}

.sidebar-toggle span + span {
    margin-top: 4px;
}

.sidebar-nav {
    display: grid;
    gap: .12rem;
    margin-top: .9rem;
    padding-bottom: 1rem;
}

.sidebar-nav a {
    display: flex;
    align-items: center;
    gap: .58rem;
    min-height: 36px;
    border-radius: 10px;
    padding: .5rem .68rem;
    color: rgba(255, 255, 255, .84);
    font-size: .92rem;
}

.sidebar-group {
    border-radius: 10px;
    margin-bottom: .45rem;
}

.sidebar-group summary {
    display: flex;
    align-items: center;
    gap: .58rem;
    border-radius: 10px;
    padding: .5rem .68rem;
    color: rgba(255, 255, 255, .9);
    font-size: .92rem;
    font-weight: 750;
    cursor: pointer;
    list-style: none;
}

.sidebar-group summary::-webkit-details-marker {
    display: none;
}

.sidebar-group summary::after {
    content: "+";
    margin-left: auto;
    opacity: .8;
}

.sidebar-group[open] summary {
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.sidebar-group[open] summary::after {
    content: "-";
}

.sidebar-subnav {
    display: grid;
    gap: .1rem;
    margin: .18rem 0 .35rem .65rem;
    padding-left: .55rem;
    border-left: 1px solid rgba(255, 255, 255, .22);
}

.sidebar-subnav a {
    min-height: 32px;
    padding: .42rem .62rem;
    font-size: .84rem;
}

.nav-icon {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    opacity: .9;
}

.sidebar-subnav .nav-icon {
    flex-basis: 15px;
    width: 15px;
    height: 15px;
    opacity: .72;
}

.sidebar-section-title {
    margin: .72rem .68rem .22rem;
    color: rgba(255, 255, 255, .56);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: 0;
    text-transform: uppercase;
}

.sidebar-nav a:hover,
.sidebar-nav a.active {
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.sidebar-group summary:hover {
    background: rgba(255, 255, 255, .12);
}

.main {
    min-width: 0;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 3;
    min-height: 62px;
    padding: .78rem clamp(.9rem, 2.5vw, 1.55rem);
    border-bottom: 1px solid var(--anpe-line);
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(14px);
}

.topbar-main {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
}

.sidebar-collapse-button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: .45rem .68rem;
}

.sidebar-collapse-button .nav-icon {
    flex-basis: 18px;
    width: 18px;
    height: 18px;
}

.content {
    padding: clamp(.85rem, 2.4vw, 1.55rem);
}

.page-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.page-title h1 {
    color: var(--anpe-ink);
    font-size: 1.65rem;
    line-height: 1.15;
    font-weight: 820;
}

.page-title p {
    margin: .35rem 0 0;
    font-size: .95rem;
}

.muted {
    color: var(--anpe-muted);
}

.stats-grid,
.cards-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.card {
    padding: .85rem;
}

.card h3 {
    color: var(--anpe-navy);
    font-size: 1rem;
    line-height: 1.25;
}

.stat-value {
    margin-top: .4rem;
    font-size: 1.55rem;
    font-weight: 850;
    color: var(--anpe-navy);
}

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.kpi-tile {
    position: relative;
    display: flex;
    align-items: center;
    gap: .9rem;
    overflow: hidden;
    padding: 1.05rem 1.15rem;
    border: 1px solid var(--anpe-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(18, 53, 140, .07);
    transition: transform .18s ease, box-shadow .18s ease;
}

.kpi-tile::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: var(--kpi-accent, var(--anpe-navy));
    opacity: .9;
}

.kpi-tile:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(18, 53, 140, .13);
}

.kpi-tile__icon {
    display: grid;
    flex: none;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: var(--kpi-accent-soft, #eaf6ff);
    color: var(--kpi-accent, var(--anpe-navy));
}

.kpi-tile__icon .nav-icon {
    width: 22px;
    height: 22px;
}

.kpi-tile__body {
    display: grid;
    min-width: 0;
    gap: .2rem;
}

.kpi-tile__label {
    overflow: hidden;
    color: var(--anpe-muted);
    font-size: .74rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kpi-tile__value {
    color: var(--anpe-ink);
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}

.kpi-tile--brand { --kpi-accent: var(--anpe-navy); --kpi-accent-soft: #eaf6ff; }
.kpi-tile--success { --kpi-accent: #1f8a5f; --kpi-accent-soft: #e8f8f1; }
.kpi-tile--warning { --kpi-accent: #c9720a; --kpi-accent-soft: #fdf1e3; }
.kpi-tile--info { --kpi-accent: #0f8b8d; --kpi-accent-soft: #e6f6f6; }
.kpi-tile--accent { --kpi-accent: #7c5cc4; --kpi-accent-soft: #f1edfb; }

.stat-summary-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: 1.25rem;
}

.stat-summary-card {
    display: grid;
    gap: .45rem;
    min-height: 88px;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: .85rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(18, 53, 140, .06);
}

.stat-summary-card span {
    color: var(--anpe-muted);
    font-size: .8rem;
    font-weight: 750;
}

.stat-summary-card strong {
    color: var(--anpe-navy);
    font-size: clamp(1.3rem, 2.4vw, 1.75rem);
    line-height: 1;
}

.dashboard-chart-section {
    display: grid;
    gap: 1rem;
    margin-top: 1.35rem;
}

.dashboard-chart-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.dashboard-chart-heading h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.02rem;
}

.dashboard-chart-heading p {
    margin: .22rem 0 0;
}

.stats-chart-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.35rem;
}

.preselection-summary {
    display: grid;
    gap: .85rem;
    margin-bottom: 1rem;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: 1rem;
    background: #f8fbff;
}

.preselection-summary-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.preselection-summary-heading h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1rem;
}

.preselection-summary-heading p {
    margin: .15rem 0 0;
}

.preselection-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.preselection-summary-card {
    min-height: 96px;
}

.preselection-summary-card--eligible {
    border-left: 3px solid #31a36b;
}

.preselection-summary-card--warning {
    border-left: 3px solid #f5a524;
}

.stats-chart {
    min-width: 0;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: 1rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(18, 53, 140, .06);
}

.stats-chart-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.stats-chart-header h2 {
    margin: 0;
    color: var(--anpe-ink);
    font-size: .98rem;
}

.stats-chart-header p {
    margin: .2rem 0 0;
}

.stats-chart-header strong {
    color: var(--anpe-navy);
    font-size: 1.35rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.stats-chart-header .stats-chart-total--context {
    display: grid;
    flex: 0 0 auto;
    gap: .25rem;
    text-align: right;
}

.stats-chart-header .stats-chart-total--context small {
    color: var(--anpe-muted);
    font-size: .68rem;
    font-weight: 600;
    line-height: 1.15;
    white-space: nowrap;
}

.stats-chart-header__aside {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: .55rem;
}

.stats-chart-mode-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border: 1px solid rgba(18, 53, 140, .16);
    border-radius: 999px;
    padding: .15rem .55rem;
    background: linear-gradient(135deg, rgba(18, 53, 140, .09), rgba(18, 174, 226, .13));
    color: var(--anpe-navy);
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.stats-chart-visual {
    min-width: 0;
}

.stats-chart3d {
    height: clamp(270px, 25vw, 330px);
    border-radius: 10px;
    background: radial-gradient(circle at 50% 30%, rgba(229, 243, 252, .5), rgba(255, 255, 255, 0) 68%);
    cursor: grab;
    touch-action: pan-y;
}

.stats-chart3d:active {
    cursor: grabbing;
}

.stats-chart-interaction-hint {
    margin: -.15rem 0 .6rem;
    color: #768296;
    font-size: .68rem;
    text-align: center;
}

.stats-chart-fallback {
    padding: .7rem .25rem .35rem 0;
}

.stats-prism-list {
    display: grid;
    gap: .9rem;
}

.stats-prism-row {
    display: grid;
    gap: .28rem;
}

.stats-prism-row__label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    color: #5d6879;
    font-size: .78rem;
    font-weight: 780;
}

.stats-prism-row__label span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stats-prism-row__label strong {
    flex: 0 0 auto;
    color: var(--anpe-ink);
    font-variant-numeric: tabular-nums;
}

.stats-prism-stage {
    position: relative;
    height: 25px;
    margin-right: 1px;
    border-bottom: 1px solid #d9e4f1;
    background: linear-gradient(180deg, rgba(237, 244, 252, 0) 15%, rgba(237, 244, 252, .72) 100%);
    perspective: 650px;
}

.stats-prism-stage::after {
    position: absolute;
    right: 0;
    bottom: -3px;
    left: 4px;
    height: 5px;
    border-radius: 50%;
    background: rgba(18, 53, 140, .1);
    content: "";
    filter: blur(3px);
}

.stats-prism-bar {
    --prism-color: #12aee2;
    position: absolute;
    z-index: 1;
    bottom: 3px;
    left: 0;
    display: block;
    min-width: 4px;
    height: 14px;
    border-radius: 2px 1px 1px 2px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--prism-color), white 18%), var(--prism-color));
    box-shadow: inset 0 -3px 5px rgba(0, 0, 0, .12), 0 5px 10px rgba(18, 53, 140, .14);
}

.stats-prism-bar::before,
.stats-prism-bar::after {
    position: absolute;
    content: "";
}

.stats-prism-bar::before {
    top: -7px;
    right: -1px;
    left: 7px;
    height: 7px;
    background: color-mix(in srgb, var(--prism-color), white 36%);
    clip-path: polygon(7px 0, 100% 0, calc(100% - 7px) 100%, 0 100%);
}

.stats-prism-bar::after {
    top: -7px;
    right: -8px;
    width: 8px;
    height: 21px;
    background: color-mix(in srgb, var(--prism-color), black 26%);
    clip-path: polygon(0 7px, 100% 0, 100% 14px, 0 100%);
}

.stats-prism-bar.is-zero {
    min-width: 0;
}

.stats-prism-bar.is-zero::before,
.stats-prism-bar.is-zero::after {
    display: none;
}

.stats-chart-fallback--sequential .stats-prism-tone-0 { --prism-color: #0c6f94; }
.stats-chart-fallback--sequential .stats-prism-tone-1 { --prism-color: #12aee2; }
.stats-chart-fallback--sequential .stats-prism-tone-2 { --prism-color: #7dd4f2; }
.stats-chart-fallback--status .stats-prism-tone-0 { --prism-color: #31a36b; }
.stats-chart-fallback--status .stats-prism-tone-1 { --prism-color: #c9720a; }
.stats-chart-fallback--categorical .stats-prism-tone-0 { --prism-color: #12358c; }
.stats-chart-fallback--categorical .stats-prism-tone-1 { --prism-color: #12aee2; }
.stats-chart-fallback--categorical .stats-prism-tone-2 { --prism-color: #31a36b; }
.stats-chart-fallback--categorical .stats-prism-tone-3 { --prism-color: #e1a018; }
.stats-chart-fallback--categorical .stats-prism-tone-4 { --prism-color: #7b61c9; }
.stats-chart-fallback--categorical .stats-prism-tone-5 { --prism-color: #d85b76; }
}

.stats-bars {
    display: grid;
    gap: .8rem;
}

.stats-bar-row {
    display: grid;
    gap: .35rem;
}

.stats-bar-row__label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    color: var(--anpe-muted);
    font-size: .82rem;
    font-weight: 750;
}

.stats-bar-row__label span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.stats-bar-row__label strong {
    color: var(--anpe-ink);
    font-variant-numeric: tabular-nums;
}

.stats-bar-track,
.stats-meter {
    height: .7rem;
    overflow: hidden;
    border-radius: 999px;
    background: #edf3fb;
}

.stats-bar-fill,
.stats-meter-segment {
    display: block;
    height: 100%;
}

.stats-bar-fill {
    border-radius: inherit;
}

.stats-meter {
    display: flex;
    margin-bottom: .85rem;
}

.stats-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .85rem;
    color: var(--anpe-muted);
    font-size: .82rem;
    font-weight: 750;
}

.stats-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.stats-chart-legend i {
    width: .65rem;
    height: .65rem;
    border-radius: 999px;
}

.stats-tone-0 {
    background: var(--anpe-blue);
}

.stats-tone-1 {
    background: #f5a524;
}

.stats-tone-2 {
    background: #31a36b;
}

.stats-tone-3 {
    background: #7c5cc4;
}

.stats-sections {
    display: grid;
    gap: 1.25rem;
}

.stats-section {
    display: grid;
    gap: .9rem;
    border-top: 1px solid var(--anpe-line);
    padding-top: 1.25rem;
}

.stats-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.stats-section-heading h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: .98rem;
    text-transform: uppercase;
}

.stats-section-heading span {
    color: var(--anpe-muted);
    font-weight: 750;
}

.stats-matrix-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.stats-matrix {
    min-width: 0;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(18, 53, 140, .06);
    overflow: hidden;
}

.stats-matrix-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border-bottom: 1px solid var(--anpe-line);
}

.stats-matrix-header h3 {
    margin: 0;
    color: var(--anpe-ink);
    font-size: .92rem;
}

.stats-matrix-header p {
    margin: .2rem 0 0;
}

.stats-matrix-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .5rem;
}

.discreet-export-button {
    width: 30px;
    min-width: 30px;
    min-height: 30px;
    padding: 0;
    color: var(--anpe-muted);
    opacity: .78;
}

.discreet-export-button:hover,
.discreet-export-button:focus-visible {
    color: var(--anpe-navy);
    opacity: 1;
}

.stats-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.stats-table {
    min-width: 520px;
}

.stats-table th,
.stats-table td {
    padding: .58rem .7rem;
    font-size: .84rem;
}

.stats-table tbody th {
    color: var(--anpe-ink);
    text-transform: none;
}

.table-card {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

table {
    width: 100%;
    min-width: max-content;
    border-collapse: collapse;
    background: #fff;
}

th,
td {
    padding: .62rem .78rem;
    border-bottom: 1px solid var(--anpe-line);
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

th {
    color: var(--anpe-muted);
    font-size: .72rem;
    font-weight: 780;
    text-transform: uppercase;
    white-space: nowrap;
}

.table-card th:last-child,
.table-card td:last-child {
    position: sticky;
    right: 0;
    z-index: 1;
    min-width: 118px;
    background: #fff;
    box-shadow: -12px 0 18px rgba(18, 53, 140, .08);
}

.table-card th:last-child {
    z-index: 2;
}

.table-check {
    width: auto;
    min-height: auto;
}

.carousel-thumb {
    width: 160px;
    aspect-ratio: 8 / 3;
    border-radius: 8px;
    object-fit: cover;
    display: block;
}

.carousel-form-preview {
    width: min(100%, 520px);
    aspect-ratio: 8 / 3;
    border-radius: 10px;
    object-fit: cover;
    display: block;
}

.badge {
    display: inline-flex;
    border-radius: 999px;
    padding: .2rem .52rem;
    background: #e8f7fd;
    color: var(--anpe-navy);
    font-size: .74rem;
    font-weight: 750;
}

.badge.success {
    background: #e8f8f2;
    color: #0f6b4b;
}

.badge.light {
    background: #f1f5f9;
    color: var(--anpe-muted);
}

.badge.warning {
    background: #fff4df;
    color: #8a4b00;
}

/* Offer workflow states: prominent and quickly scannable in wide admin tables. */
.offer-status-column {
    min-width: 154px;
}

.offer-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 29px;
    gap: .42rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: .32rem .66rem;
    font-size: .78rem;
    font-weight: 820;
    line-height: 1.15;
    white-space: nowrap;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .42);
}

.offer-status-badge__dot {
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .72);
}

.offer-status-badge--neutral {
    border-color: #94a3b8;
    background: #f1f5f9;
    color: #475569;
}

.offer-status-badge--info {
    border-color: #77a9df;
    background: #e7f1ff;
    color: #0b4a8b;
}

.offer-status-badge--progress {
    border-color: #aa8bd2;
    background: #f1eaff;
    color: #6236a0;
}

.offer-status-badge--success {
    border-color: #77c5a5;
    background: #e4f7ef;
    color: #0b6847;
}

.offer-status-badge--published {
    border-color: #58b884;
    background: #dff8ea;
    color: #075b37;
}

.offer-status-badge--warning {
    border-color: #e7ad4f;
    background: #fff2d6;
    color: #7a4300;
}

.offer-status-badge--danger {
    border-color: #e08d8d;
    background: #fde8e8;
    color: #932525;
}

.offer-status-badge--cancelled {
    border-color: #aeb4bf;
    background: #eceff3;
    color: #555d69;
}

.section-title {
    margin: 1rem 0 .65rem;
    color: var(--anpe-navy);
    font-size: .88rem;
    text-transform: uppercase;
}

.detail-list {
    display: grid;
    grid-template-columns: minmax(130px, .45fr) minmax(0, 1fr);
    gap: .42rem .7rem;
    margin: .68rem 0 0;
    font-size: .92rem;
}

.detail-list dt {
    color: var(--anpe-muted);
    font-weight: 800;
}

.detail-list dd {
    margin: 0;
    color: var(--anpe-ink);
    overflow-wrap: anywhere;
}

.role-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.check-card {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 38px;
    border: 1px solid var(--anpe-line);
    border-radius: 10px;
    padding: .52rem .62rem;
    background: #fff;
}

.check-card input {
    width: auto;
    min-height: auto;
}

.form-panel {
    max-width: 520px;
    padding: 1rem;
}

.field {
    display: grid;
    gap: .28rem;
    margin-bottom: .78rem;
}

.field-error {
    color: var(--anpe-danger);
    font-size: .78rem;
    font-weight: 700;
}

.required-fields-note {
    margin: 0 0 1rem;
    color: var(--muted, #5f6673);
    font-size: 0.9rem;
}

.required-marker {
    color: #b42318;
    font-weight: 800;
}

.field > label:not(:has(.required-marker)):has(+ input[required], + select[required], + textarea[required])::after {
    color: #b42318;
    content: " *";
    font-weight: 800;
}

.field-help {
    color: var(--anpe-muted);
    font-size: .76rem;
    line-height: 1.35;
}

.public-application-form select[multiple] {
    min-height: 190px;
    padding: .45rem;
}

label {
    color: var(--anpe-muted);
    font-size: .86rem;
    font-weight: 700;
}

input,
select,
textarea {
    width: 100%;
    min-height: 36px;
    border: 1px solid var(--anpe-line);
    border-radius: 10px;
    padding: .52rem .68rem;
    color: var(--anpe-ink);
    font: inherit;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .78rem;
}

.form-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1.3fr) repeat(3, minmax(160px, 1fr)) auto;
    gap: .7rem;
    align-items: end;
    margin-bottom: .85rem;
    border: 1px solid var(--anpe-line);
    border-radius: var(--radius);
    padding: .78rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(18, 53, 140, .06);
}

.filter-search,
.compact-field {
    display: grid;
    gap: .35rem;
}

.compact-field {
    margin-bottom: 0;
}

.filter-actions {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.actions {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
    min-width: max-content;
}

.actions .button,
.actions button {
    min-height: 32px;
    padding: .42rem .62rem;
    white-space: nowrap;
}

.cnss-export-actions {
    margin: 1rem 0;
}

.cnss-treatment > summary {
    list-style: none;
    cursor: pointer;
}

.cnss-treatment > summary::-webkit-details-marker {
    display: none;
}

.cnss-treatment-form {
    display: grid;
    gap: .65rem;
    min-width: 280px;
    margin-top: .75rem;
    padding: .75rem;
    border: 1px solid var(--anpe-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(18, 53, 140, .1);
}

.cnss-treatment-form label {
    display: grid;
    gap: .3rem;
    color: var(--anpe-muted);
    font-size: .78rem;
    font-weight: 700;
}

.cnss-treatment-form textarea {
    resize: vertical;
}

.payment-account-correction {
    margin-top: .5rem;
}

.payment-account-correction summary {
    color: var(--anpe-muted);
    font-size: .8rem;
    cursor: pointer;
}

.payment-account-correction form {
    min-width: 260px;
    margin-top: .5rem;
    padding: .65rem;
    border: 1px solid var(--anpe-line);
    border-radius: 10px;
    background: var(--anpe-soft);
}

.payment-account-correction textarea {
    min-height: 70px;
    resize: vertical;
}

.payment-wave-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

.payment-wave-summary article {
    display: grid;
    gap: .3rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(18, 53, 140, .06);
}

.payment-wave-summary span,
.payment-bank-group__metrics small {
    color: var(--anpe-muted);
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.payment-wave-summary strong {
    color: var(--anpe-navy);
    font-size: 1.15rem;
}

.payment-bank-groups {
    display: grid;
    gap: 1.15rem;
}

.payment-bank-group {
    overflow: hidden;
    border: 1px solid var(--anpe-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(18, 53, 140, .07);
}

.payment-bank-group__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--anpe-line);
    background: linear-gradient(135deg, #f5f9ff, #fff);
}

.payment-bank-group__header h2,
.payment-bank-group__header p {
    margin: 0;
}

.payment-bank-group__header h2 {
    color: var(--anpe-navy);
    font-size: 1.15rem;
}

.payment-bank-group__header p {
    margin-top: .25rem;
    color: var(--anpe-muted);
    font-size: .85rem;
}

.payment-bank-group__code {
    color: var(--anpe-blue);
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
}

.payment-bank-group__metrics {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .8rem;
    flex-wrap: wrap;
}

.payment-bank-group__metrics > span {
    display: grid;
    gap: .1rem;
    min-width: 105px;
}

.payment-bank-group__metrics strong {
    color: var(--anpe-navy);
}

.payment-bank-group .table-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

@media (max-width: 1100px) {
    .payment-wave-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .payment-wave-summary {
        grid-template-columns: 1fr;
    }

    .payment-bank-group__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .payment-bank-group__metrics {
        justify-content: flex-start;
    }
}

.icon-button {
    width: 34px;
    min-width: 34px;
    min-height: 34px;
    padding: 0;
}

.icon-button .nav-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
}

.inline-form {
    display: inline-flex;
}

.empty-state {
    padding: 2rem;
    text-align: center;
}

.pagination {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.page-link,
.page-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    border: 1px solid var(--anpe-line);
    border-radius: 10px;
    padding: .45rem .7rem;
    background: #fff;
    color: var(--anpe-navy);
    font-weight: 750;
}

.page-link.active {
    border-color: var(--anpe-navy);
    background: var(--anpe-navy);
    color: #fff;
}

.page-link.disabled {
    pointer-events: none;
    opacity: .45;
}

.pagination-summary {
    margin: .75rem 0 0;
    color: var(--anpe-muted);
    text-align: right;
}

.public-main--offers .pagination-summary {
    width: fit-content;
    margin: 1rem 0 1.5rem auto;
    padding: .55rem .85rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 8px;
    background: rgba(255, 255, 255, .96);
    color: var(--anpe-navy);
    font-weight: 750;
    box-shadow: 0 6px 18px rgba(7, 22, 64, .1);
}

.confirm-dialog {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.confirm-dialog.is-open {
    display: flex;
}

.confirm-dialog__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 31, 62, .48);
}

.confirm-dialog__panel {
    position: relative;
    width: min(460px, 100%);
    border: 1px solid var(--anpe-line);
    border-radius: var(--radius);
    padding: 1.25rem;
    background: #fff;
    box-shadow: 0 24px 70px rgba(18, 53, 140, .22);
}

.confirm-dialog__panel h2 {
    margin: 0 0 .45rem;
    color: var(--anpe-ink);
    font-size: 1.15rem;
}

.confirm-dialog__panel p {
    margin: 0;
    color: var(--anpe-muted);
}

.confirm-dialog__actions {
    display: flex;
    justify-content: flex-end;
    gap: .7rem;
    flex-wrap: wrap;
    margin-top: 1.2rem;
}

@media (max-width: 980px) {
    .public-hero,
    .dashboard-shell {
        grid-template-columns: 1fr;
    }

    .public-nav,
    .public-main {
        padding-inline: 1.5rem;
    }

    .public-carousel {
        width: calc(100% - 3rem);
    }

    .public-carousel--compact {
        width: min(800px, calc(100% - 3rem));
    }

    .hero-title {
        font-size: 2.1rem;
    }

    .hero-copy,
    .public-offers-header p {
        font-size: .94rem;
    }

    .public-offers-header {
        grid-template-columns: 1fr;
    }

    .public-offers-count {
        width: min(100%, 240px);
        text-align: left;
    }

    .public-offer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-offer-line {
        grid-template-columns: minmax(160px, .8fr) minmax(220px, 1.2fr);
        gap: .75rem;
    }

    .public-application-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-application-header h1 {
        font-size: 1.9rem;
    }

    .public-application-form .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-shell.sidebar-collapsed {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: sticky;
        height: auto;
        z-index: 5;
        padding: .85rem 1rem;
        overflow: visible;
    }

    .sidebar-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
    }

    .sidebar-nav {
        display: none;
        max-height: calc(100vh - 80px);
        overflow-y: auto;
        padding-bottom: .4rem;
    }

    .sidebar.is-open .sidebar-nav {
        display: grid;
    }

    .stats-grid,
    .cards-grid,
    .kpi-grid,
    .stat-summary-grid,
    .stats-chart-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stats-matrix-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .public-nav,
    .page-title,
    .dashboard-chart-heading,
    .topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .topbar-main {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-nav,
    .public-main {
        padding-inline: 1rem;
    }

    .public-main {
        padding-bottom: 1.5rem;
    }

    .public-hero--compact {
        padding-top: .25rem;
    }

    .hero-title {
        font-size: 1.85rem;
        line-height: 1.08;
    }

    .public-offers-header h1 {
        font-size: 1.65rem;
    }

    .public-info-panel {
        grid-template-columns: 1fr;
    }

    .public-offer-grid {
        grid-template-columns: 1fr;
    }

    .public-main--offers {
        padding-inline: .65rem;
    }

    .public-main--offers .public-deadline {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "icon label"
            "icon date"
            "countdown countdown";
        width: 100%;
    }

    .public-main--offers .public-countdown {
        margin: .45rem 0 0;
        text-align: center;
    }

    .public-offer-filters {
        border-radius: 10px;
        margin-bottom: .75rem;
    }

    .public-offer-filters summary {
        padding: .75rem .85rem;
        font-size: .88rem;
    }

    .public-offer-filter-form {
        grid-template-columns: 1fr;
        gap: .65rem;
        padding: 0 .85rem .85rem;
    }

    .public-offer-filter-form input,
    .public-offer-filter-form select {
        min-height: 42px;
        padding: .65rem .75rem;
    }

    .public-offer-list {
        gap: .75rem;
    }

    .public-offer-group {
        border-radius: 10px;
        box-shadow: 0 10px 28px rgba(7, 22, 64, .1);
    }

    .public-offer-group__header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .5rem;
        padding: .75rem .85rem;
    }

    .public-offer-group__header h2 {
        font-size: 1.08rem;
    }

    .public-offer-group__header p {
        font-size: .84rem;
    }

    .public-offer-group__header .badge {
        width: fit-content;
        padding: .28rem .6rem;
        font-size: .8rem;
    }

    .public-offer-group__meta {
        grid-column: 1 / -1;
        margin-left: 0;
    }

    .public-offer-line {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: .65rem .8rem;
        align-items: start;
        padding: .75rem .85rem;
    }

    .public-offer-label {
        font-size: .68rem;
        line-height: 1.2;
    }

    .public-offer-line strong {
        display: block;
        margin-top: .15rem;
        font-size: .88rem;
        line-height: 1.25;
    }

    .public-offer-action {
        grid-column: 1 / -1;
        justify-content: stretch;
        padding: 0 .85rem .85rem;
    }

    .public-offer-action .button {
        width: 100%;
        min-height: 42px;
        padding: .65rem 1rem;
        font-size: .88rem;
    }

    .public-application-header h1 {
        font-size: 1.55rem;
    }

    .public-application-form {
        border-radius: 12px;
        padding: .75rem;
    }

    .public-form-section {
        padding: .85rem;
    }

    .public-application-form .form-grid {
        grid-template-columns: 1fr;
    }

    .public-form-actions {
        justify-content: stretch;
    }

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

    .error-page {
        min-height: auto;
        padding-block: 1rem;
    }

    .error-panel {
        grid-template-columns: 1fr;
        gap: .9rem;
        padding: 1rem;
    }

    .error-code {
        min-width: 0;
        min-height: 82px;
        font-size: 1.85rem;
    }

    .error-content h1 {
        font-size: 1.35rem;
    }

    .error-actions .button {
        width: 100%;
    }

    .stats-grid,
    .cards-grid,
    .kpi-grid,
    .stat-summary-grid,
    .stats-chart-grid,
    .preselection-summary-grid,
    .form-grid,
    .role-list,
    .filter-bar {
        grid-template-columns: 1fr;
    }

    th,
    td {
        padding: .58rem .65rem;
    }

    .public-carousel {
        width: calc(100% - 2rem);
    }

    .public-carousel-track {
        min-height: 150px;
    }

    .public-carousel--compact .public-carousel-track {
        height: 160px;
        min-height: 0;
        max-height: 160px;
    }

    .public-carousel-slide figcaption {
        max-width: calc(100% - 5rem);
        border-radius: 10px;
        font-size: .82rem;
    }

    .pagination,
    .pagination-summary {
        justify-content: flex-start;
        text-align: left;
    }

    .floating-offers-button {
        right: 1rem;
        bottom: 1.8rem;
        left: 1rem;
        width: auto;
    }
}

/* =========================================================================
   PUBLIC UI REFRESH — header, footer, mobile menu, home, cards, auth
   ========================================================================= */

:root {
    --shadow-sm: 0 6px 18px rgba(7, 22, 64, .08);
    --shadow-md: 0 16px 40px rgba(7, 22, 64, .14);
    --shadow-lg: 0 28px 70px rgba(7, 22, 64, .22);
    --ease: .18s ease;
}

/* Layered, less flat brand background + sticky footer layout */
.public-shell {
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(900px 520px at 92% -8%, rgba(255, 255, 255, .11), transparent 60%),
        radial-gradient(760px 520px at -6% 110%, rgba(0, 119, 174, .12), transparent 55%),
        linear-gradient(145deg, #12bde9 0%, #08b3e2 58%, #05a9da 100%);
    background-attachment: fixed;
}

.public-main {
    flex: 1 0 auto;
    width: 100%;
}

/* Smooth micro-interactions */
.button,
button,
input[type="submit"] {
    transition: transform var(--ease), box-shadow var(--ease), background-color var(--ease), color var(--ease), opacity var(--ease);
}

.button:not(.disabled):hover,
button:not(:disabled):hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.button:active {
    transform: translateY(0);
}

/* Carousel arrows are vertically centered via transform — keep it on hover */
.public-carousel-control:hover {
    transform: translateY(-50%);
}

.button.secondary:hover,
.button.light:hover {
    background: #eef6ff;
}

.button.ghost:hover {
    background: rgba(255, 255, 255, .14);
    box-shadow: none;
}

/* Inline icons inside buttons / pills / labels */
.button .nav-icon,
button .nav-icon {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
}

.public-kicker {
    align-items: center;
    gap: .4rem;
}

.public-kicker .nav-icon {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
}

.public-deadline .nav-icon {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
}

/* -------------------------------------------------------------------------
   Header
   ------------------------------------------------------------------------- */
.public-header {
    position: sticky;
    top: 0;
    z-index: 30;
    color: #fff;
    background: rgba(10, 28, 74, .55);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.public-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: min(1280px, 100%);
    margin: 0 auto;
    padding: .7rem clamp(1rem, 3vw, 2.4rem);
}

.brand-text {
    display: grid;
    line-height: 1.1;
}

.brand-text strong {
    font-size: .98rem;
    font-weight: 850;
}

.brand-text small {
    color: rgba(255, 255, 255, .72);
    font-size: .72rem;
    font-weight: 650;
}

.public-menu {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.public-menu-link {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: .45rem .8rem;
    border-radius: 999px;
    color: rgba(255, 255, 255, .86);
    font-size: .92rem;
    font-weight: 700;
    transition: background-color var(--ease), color var(--ease);
}

.public-menu-link:hover {
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.public-menu-link.is-active {
    background: #fff;
    color: var(--anpe-navy);
}

.public-menu-phone {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 38px;
    margin-left: .25rem;
    padding: .4rem .75rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .28);
    color: #fff;
    font-size: .85rem;
}

.public-menu-phone .nav-icon {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
}

.public-menu-phone strong {
    letter-spacing: .03em;
}

.public-menu-cta {
    margin-left: .3rem;
}

.public-menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .26);
    color: #fff;
    box-shadow: none;
}

.public-menu-toggle .nav-icon {
    width: 22px;
    height: 22px;
}

/* -------------------------------------------------------------------------
   Home — hero refinements, stats, features, CTA
   ------------------------------------------------------------------------- */
.public-hero-copy .public-actions {
    margin-top: 1.1rem;
}

.public-hero-copy {
    --home-column-gap: clamp(1rem, 2vw, 1.5rem);
    min-width: 0;
}

.home-deadline-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--home-column-gap);
    align-items: stretch;
    margin-top: 1rem;
}

.home-deadline-row > :only-child {
    grid-column: 1 / -1;
}

.home-deadline-row .public-deadline--home {
    width: 100%;
    min-width: 0;
    min-height: 100%;
    margin: 0;
    border: 2px solid rgba(255, 255, 255, .5);
    border-radius: 16px;
    padding: .9rem 1.1rem;
    background: linear-gradient(135deg, rgba(18, 53, 140, .92), rgba(14, 91, 163, .82));
    box-shadow: 0 14px 34px rgba(7, 51, 104, .32);
    font-size: 1.05rem;
}

.home-deadline-row .public-deadline--home.is-closed {
    background: linear-gradient(135deg, rgba(149, 35, 30, .9), rgba(190, 63, 46, .8));
}

.home-deadline-row .public-deadline__text {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .35rem;
    min-height: 42px;
    padding: .3rem .85rem;
    border-radius: 999px;
    background: #fff;
    color: var(--anpe-navy);
    font-weight: 950;
    letter-spacing: .03em;
    box-shadow: 0 12px 28px rgba(7, 22, 64, .28);
}

.home-deadline-row .public-deadline--home.is-closed .public-deadline__text {
    color: var(--anpe-danger);
}

.home-deadline-row .public-deadline--home strong {
    font-size: 1.2rem;
}

.home-deadline-row .public-deadline--home .nav-icon {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
}

.home-deadline-row .public-countdown {
    margin-left: .15rem;
    padding: .3rem .8rem;
    font-size: 1.05rem;
    background: #ffd542;
    color: #5a3d00;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
}

.home-deadline-row .public-deadline--home.is-closed .public-countdown {
    background: rgba(255, 255, 255, .85);
    color: #7a221b;
}

.home-entry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--home-column-gap);
    margin-top: 1.35rem;
}

.home-entry-card {
    --entry-accent: #34c3ef;
    --entry-overlay-start: rgba(7, 31, 91, .98);
    --entry-overlay-mid: rgba(14, 66, 143, .78);
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-start;
    min-height: clamp(270px, 24vw, 360px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .48);
    border-radius: 22px;
    padding: clamp(1.25rem, 2.4vw, 2rem);
    color: #fff;
    box-shadow: 0 22px 52px rgba(7, 22, 64, .28), inset 0 -5px 0 var(--entry-accent);
    transition: transform var(--ease), border-color var(--ease), box-shadow var(--ease);
}

.home-entry-card::before,
.home-entry-card::after {
    position: absolute;
    inset: 0;
    content: "";
}

.home-entry-card::before {
    z-index: -2;
    background-image: var(--entry-image);
    background-position: center;
    background-size: cover;
    transition: transform .55s ease;
}

.home-entry-card::after {
    z-index: -1;
    background:
        radial-gradient(circle at 92% 12%, rgba(255, 255, 255, .22) 0 2px, transparent 3px 100%),
        linear-gradient(98deg, var(--entry-overlay-start) 0%, var(--entry-overlay-mid) 51%, rgba(6, 24, 71, .18) 100%);
}

.home-entry-card--enterprise {
    --entry-accent: #35c8f4;
}

.home-entry-card--student {
    --entry-accent: #7ee2b8;
    --entry-overlay-start: rgba(4, 72, 75, .98);
    --entry-overlay-mid: rgba(5, 139, 145, .74);
    min-height: clamp(410px, 30vw, 460px);
}

.home-entry-card--student .home-entry-card__content {
    position: absolute;
    top: clamp(1.25rem, 2.4vw, 2rem);
    left: clamp(1.25rem, 2.4vw, 2rem);
    bottom: clamp(4.5rem, 7vw, 5.25rem);
    width: min(78%, 460px);
}

.home-entry-card--student .home-student-documents {
    margin-top: auto;
}

.home-student-documents {
    display: grid;
    width: 100%;
    gap: .55rem;
    margin-top: .25rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 15px;
    padding: .75rem .85rem;
    background: linear-gradient(135deg, rgba(248, 251, 255, .84), rgba(235, 247, 252, .76));
    color: #5c6980;
    box-shadow: 0 14px 32px rgba(3, 33, 68, .2);
    backdrop-filter: blur(8px);
}

.home-student-documents__title {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--anpe-navy);
    font-size: .86rem;
    line-height: 1.2;
}

.home-student-documents__title .nav-icon {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    color: var(--anpe-blue);
}

.home-student-documents__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .3rem .8rem;
}

.home-student-documents__list > span {
    position: relative;
    padding-left: .85rem;
    font-size: .7rem;
    font-weight: 650;
    line-height: 1.35;
}

.home-student-documents__list > span::before {
    position: absolute;
    top: .42em;
    left: 0;
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: var(--anpe-blue);
    content: "";
}

.home-student-documents__meta {
    border-top: 1px solid rgba(18, 53, 140, .12);
    padding-top: .45rem;
    color: #758095;
    font-size: .64rem;
    font-weight: 650;
    line-height: 1.35;
}

.home-entry-card:hover,
.home-entry-card:focus-visible {
    transform: translateY(-6px);
    border-color: #fff;
    box-shadow: 0 30px 64px rgba(7, 22, 64, .36), inset 0 -5px 0 var(--entry-accent);
}

.home-entry-card:hover::before,
.home-entry-card:focus-visible::before {
    transform: scale(1.045);
}

.home-entry-card__icon {
    position: absolute;
    top: clamp(1rem, 2vw, 1.5rem);
    right: clamp(1rem, 2vw, 1.5rem);
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 999px;
    background: rgba(255, 255, 255, .16);
    box-shadow: 0 12px 30px rgba(7, 22, 64, .2);
    backdrop-filter: blur(10px);
}

.home-entry-card__icon .nav-icon {
    width: 27px;
    height: 27px;
}

.home-entry-card__content {
    display: flex;
    width: min(78%, 460px);
    flex-direction: column;
    gap: .55rem;
    padding-right: 1rem;
}

.home-entry-card__content strong {
    max-width: 440px;
    font-size: clamp(1.65rem, 2.5vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: 1.02;
    text-wrap: balance;
}

.home-entry-card__eyebrow {
    display: inline-flex;
    width: max-content;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 999px;
    padding: .3rem .65rem;
    background: rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .96);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.home-entry-card__description {
    max-width: 360px;
    color: rgba(255, 255, 255, .88);
    font-size: clamp(.88rem, 1.2vw, 1rem);
    font-weight: 600;
    line-height: 1.5;
}

.home-entry-card__arrow {
    position: absolute;
    left: clamp(1.25rem, 2.4vw, 2rem);
    bottom: clamp(1.25rem, 2.4vw, 2rem);
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: .6rem;
    border-radius: 999px;
    padding: .55rem .85rem .55rem 1rem;
    background: #fff;
    color: var(--anpe-navy);
    font-size: .82rem;
    font-weight: 900;
    box-shadow: 0 12px 28px rgba(7, 22, 64, .22);
}

.home-entry-card__arrow .nav-icon {
    width: 18px;
    height: 18px;
    transition: transform var(--ease);
}

.home-entry-card--student .home-entry-card__arrow {
    min-height: 48px;
    border: 2px solid rgba(255, 255, 255, .96);
    padding: .65rem 1rem .65rem 1.1rem;
    font-size: 1rem;
    font-weight: 950;
    letter-spacing: -.01em;
    box-shadow: 0 16px 34px rgba(3, 31, 76, .34);
}

.home-entry-card--student .home-entry-card__arrow strong {
    font-weight: 950;
}

.home-entry-card:hover .home-entry-card__arrow .nav-icon,
.home-entry-card:focus-visible .home-entry-card__arrow .nav-icon {
    transform: translateX(3px);
}

.public-info-panel--home-notice {
    display: flex;
    align-items: center;
    align-self: stretch;
    width: auto;
    min-height: 0;
    border-color: rgba(18, 53, 140, .18);
    padding: .8rem 1rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, .94), rgba(229, 247, 255, .9));
    color: var(--anpe-navy);
    box-shadow: 0 14px 34px rgba(7, 51, 104, .14);
}

.public-info-panel--home-notice p {
    margin: 0;
    color: #27466f;
    line-height: 1.6;
}

.public-info-panel--home-notice .green-number {
    min-height: 34px;
    margin-left: .25rem;
    padding: .12rem .7rem;
    border: 1px solid rgba(15, 122, 73, .18);
    background: #e9fff4;
    font-size: 1rem;
    vertical-align: middle;
    box-shadow: none;
}

@media (min-width: 981px) {
    .public-main--home .public-hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.25rem;
    }

    .public-info-panel--home-notice {
        justify-self: stretch;
        max-width: none;
        padding: .75rem 1rem;
    }
}

.home-features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.75rem;
}

.feature-card {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: 1.15rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, .97);
    border: 1px solid rgba(255, 255, 255, .6);
    box-shadow: var(--shadow-md);
    transition: transform var(--ease), box-shadow var(--ease);
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.feature-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--anpe-navy), var(--anpe-blue));
    color: #fff;
}

.feature-icon .nav-icon {
    width: 23px;
    height: 23px;
}

.feature-card h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.02rem;
}

.feature-card p {
    margin: 0;
    color: var(--anpe-muted);
    font-size: .9rem;
    line-height: 1.5;
}

.home-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-top: 1.75rem;
    padding: 1.5rem clamp(1.25rem, 3vw, 2.25rem);
    border-radius: 18px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .26);
}

.home-cta h2 {
    margin: 0;
    color: #fff;
    font-size: 1.4rem;
}

.home-cta p {
    margin: .3rem 0 0;
    color: rgba(255, 255, 255, .85);
}

.home-cta .button {
    background: #fff;
    color: var(--anpe-navy);
}

/* -------------------------------------------------------------------------
   Offers — hover affordances + icons
   ------------------------------------------------------------------------- */
.public-offer-group {
    transition: transform var(--ease), box-shadow var(--ease);
}

.public-offer-group__header:hover {
    background: #e5f5ec;
}

.public-offer-group__header h2 {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.public-offer-group__header h2 .nav-icon {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    color: var(--anpe-blue);
}

.public-offer-heading-separator {
    color: #8a98ad;
    font-weight: 500;
}

.public-offer-group__header p {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.public-offer-group__header p .nav-icon {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
}

.public-offer-line {
    transition: background-color var(--ease);
}

.public-offer-line:hover {
    background: #eaf7f0;
}

.public-offer-label {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}

.public-offer-label .nav-icon {
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
    color: var(--anpe-blue);
    opacity: .85;
}

.public-empty-offers {
    display: grid;
    justify-items: center;
    gap: .35rem;
}

.public-empty-icon {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    margin-bottom: .4rem;
    border-radius: 16px;
    background: #eaf4ff;
    color: var(--anpe-navy);
}

.public-empty-icon .nav-icon {
    width: 28px;
    height: 28px;
}

/* -------------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------------- */
.public-footer {
    flex-shrink: 0;
    margin-top: 2.5rem;
    color: rgba(255, 255, 255, .82);
    background: rgba(7, 18, 48, .55);
    border-top: 1px solid rgba(255, 255, 255, .12);
    backdrop-filter: blur(8px);
}

.public-footer__top {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1.2fr;
    gap: 1.75rem;
    width: min(1280px, 100%);
    margin: 0 auto;
    padding: 2.25rem clamp(1rem, 3vw, 2.4rem) 1.5rem;
}

.public-footer__brand {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
}

.public-footer__brand .brand-mark {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
}

.public-footer__brand strong {
    display: block;
    color: #fff;
    font-size: 1.02rem;
}

.public-footer__brand p {
    margin: .4rem 0 0;
    font-size: .88rem;
    line-height: 1.55;
    max-width: 40ch;
}

.public-footer__col {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.public-footer__col h3 {
    margin: 0 0 .3rem;
    color: #fff;
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.public-footer__col a,
.public-footer__note {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: rgba(255, 255, 255, .82);
    font-size: .9rem;
    transition: color var(--ease);
}

.public-footer__col a:hover {
    color: #fff;
}

.public-footer__col .nav-icon,
.public-footer__note .nav-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: var(--anpe-blue);
}

.public-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    width: min(1280px, 100%);
    margin: 0 auto;
    padding: 1rem clamp(1rem, 3vw, 2.4rem);
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: .82rem;
    color: rgba(255, 255, 255, .65);
}

/* -------------------------------------------------------------------------
   Auth pages (login / forgot / reset)
   ------------------------------------------------------------------------- */
.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 2rem 1rem;
    background:
        radial-gradient(800px 480px at 90% -10%, rgba(18, 174, 226, .5), transparent 60%),
        linear-gradient(150deg, #0e2d77 0%, #12358c 45%, #1372b8 100%);
    background-attachment: fixed;
}

.auth-panel {
    width: min(440px, 100%);
    max-width: 440px;
    display: grid;
    gap: .85rem;
    padding: clamp(1.5rem, 4vw, 2.25rem);
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 18px;
    box-shadow: var(--shadow-lg);
}

.auth-brand {
    color: var(--anpe-ink);
}

.auth-brand .brand-mark {
    background: var(--anpe-bg);
}

.auth-brand .brand-text small {
    color: var(--anpe-muted);
}

.auth-intro h1 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.5rem;
}

.auth-intro p {
    margin: .25rem 0 0;
}

.auth-alert {
    margin: 0;
    padding: .7rem .85rem;
    border-radius: 10px;
    border: 1px solid #f4c4bf;
    background: #fff1f0;
    color: var(--anpe-danger);
    font-size: .88rem;
    font-weight: 650;
    display: flex;
    align-items: center;
    gap: .5rem;
}

.auth-alert .nav-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
}

.auth-forgot {
    text-align: right;
    font-size: .88rem;
}

.auth-forgot a {
    color: var(--anpe-blue);
    font-weight: 700;
}

.auth-panel button[type="submit"] {
    width: 100%;
    min-height: 46px;
    margin-top: .2rem;
}

.reset-password-form .field {
    margin-bottom: .2rem;
}

.reset-password-form .field.has-error > label {
    color: #9f2435;
}

.reset-password-form input[aria-invalid="true"] {
    border-color: #c9364d;
    background: #fffafb;
    box-shadow: 0 0 0 3px rgba(201, 54, 77, .1);
}

.auth-validation-summary {
    padding: .85rem 1rem;
    border: 1px solid #e5a5af;
    border-left: 4px solid #b4233b;
    border-radius: 11px;
    background: #fff6f7;
    color: #7f1d2c;
    font-size: .84rem;
    line-height: 1.4;
}

.auth-validation-summary:focus {
    outline: 3px solid rgba(180, 35, 59, .16);
    outline-offset: 2px;
}

.auth-validation-summary strong,
.auth-validation-summary span {
    display: block;
}

.auth-validation-summary ul {
    margin: .45rem 0 0;
    padding-left: 1.1rem;
}

.auth-validation-summary a {
    color: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.field-error-list {
    display: grid;
    gap: .25rem;
}

.reset-password-form .field-error {
    font-size: .82rem;
    line-height: 1.35;
}

.password-requirements {
    display: grid;
    gap: .25rem;
    margin: .15rem 0 0;
    padding: 0;
    color: var(--anpe-muted);
    font-size: .76rem;
    line-height: 1.35;
    list-style: none;
}

.password-requirements li::before,
.password-confirmation-status::before {
    content: "○";
    margin-right: .4rem;
    font-weight: 900;
}

.password-requirements .is-valid,
.password-confirmation-status.is-valid {
    color: #08775e;
    font-weight: 700;
}

.password-requirements .is-valid::before,
.password-confirmation-status.is-valid::before {
    content: "✓";
}

.password-requirements .is-invalid,
.password-confirmation-status.is-invalid {
    color: #a6263a;
    font-weight: 700;
}

.password-requirements .is-invalid::before,
.password-confirmation-status.is-invalid::before {
    content: "×";
}

.password-confirmation-status {
    color: var(--anpe-muted);
    font-size: .76rem;
    line-height: 1.35;
}

.auth-back {
    margin-top: .15rem;
    color: var(--anpe-muted);
    font-size: .86rem;
    font-weight: 650;
    text-align: center;
}

.auth-back:hover {
    color: var(--anpe-navy);
}

/* -------------------------------------------------------------------------
   Responsive — public header / footer / home
   ------------------------------------------------------------------------- */
@media (max-width: 900px) {
    .home-deadline-row,
    .home-entry-grid {
        grid-template-columns: 1fr;
    }

    .home-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-footer__top {
        grid-template-columns: 1fr 1fr;
    }

    .public-footer__brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 720px) {
    .home-deadline-row > * {
        min-width: 0;
    }

    .public-info-panel--home-notice p {
        line-height: 1.5;
    }
}

@media (max-width: 860px) {
    .public-menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .public-menu {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: .35rem;
        padding: .85rem clamp(1rem, 3vw, 2.4rem) 1.1rem;
        background: rgba(10, 28, 74, .96);
        border-bottom: 1px solid rgba(255, 255, 255, .14);
        box-shadow: var(--shadow-lg);
        transform: translateY(-8px);
        opacity: 0;
        pointer-events: none;
        transition: opacity var(--ease), transform var(--ease);
    }

    .public-header.is-open .public-menu {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    .public-menu-link,
    .public-menu-phone,
    .public-menu-cta {
        width: 100%;
        margin-left: 0;
        justify-content: center;
        min-height: 46px;
    }

    .public-menu-cta {
        margin-top: .15rem;
    }

    .public-header__inner {
        position: relative;
    }
}

@media (max-width: 640px) {
    .home-entry-grid {
        gap: .9rem;
        margin-top: 1rem;
    }

    .public-hero-copy .public-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: .7rem;
    }

    .public-hero-copy .public-actions .button {
        width: 100%;
        justify-content: center;
    }

    .home-entry-card {
        min-height: 250px;
        border-radius: 18px;
        padding: 1.15rem;
    }

    .home-entry-card--student {
        min-height: 470px;
    }

    .home-entry-card::before {
        background-position: 62% center;
    }

    .home-entry-card::after {
        background: linear-gradient(100deg, var(--entry-overlay-start) 0%, var(--entry-overlay-mid) 65%, rgba(6, 24, 71, .25) 100%);
    }

    .home-entry-card__content {
        width: calc(100% - 2.8rem);
        gap: .42rem;
        padding-right: .5rem;
    }

    .home-entry-card__content strong {
        font-size: clamp(1.45rem, 7vw, 1.9rem);
    }

    .home-entry-card__description {
        max-width: 280px;
        font-size: .84rem;
    }

    .home-entry-card__icon {
        top: 1rem;
        right: 1rem;
        width: 44px;
        height: 44px;
    }

    .home-entry-card__icon .nav-icon {
        width: 22px;
        height: 22px;
    }

    .home-entry-card__arrow {
        left: 1.15rem;
        bottom: 1.15rem;
        min-height: 38px;
        padding: .45rem .75rem .45rem .85rem;
        font-size: .75rem;
    }

    .home-entry-card--student .home-entry-card__content {
        top: 1.15rem;
        left: 1.15rem;
        bottom: 3.75rem;
        width: calc(100% - 2.8rem);
    }

    .home-student-documents {
        padding: .7rem .75rem;
    }

    .home-features {
        grid-template-columns: 1fr;
    }

    .home-cta {
        flex-direction: column;
        align-items: flex-start;
    }

    .home-cta .button {
        width: 100%;
    }

    .public-footer__top {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .public-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: .35rem;
    }

    .brand-text small {
        display: none;
    }
}

@media (max-width: 480px) {
    .home-entry-card--student {
        min-height: 500px;
    }

    .home-student-documents__list {
        grid-template-columns: 1fr;
        gap: .24rem;
    }
}

/* =========================================================================
   BACK OFFICE UI REFRESH — sidebar, topbar, cards, tables, filters
   ========================================================================= */

/* Sidebar — depth, accent active state, smoother hover */
.sidebar {
    background: linear-gradient(185deg, #143a93 0%, #0f2d77 55%, #0b2056 100%);
    border-right: 1px solid rgba(255, 255, 255, .06);
}

.sidebar-header {
    padding-bottom: .85rem;
    margin-bottom: .35rem;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.sidebar-nav a,
.sidebar-group summary {
    position: relative;
    transition: background-color var(--ease), color var(--ease), padding-left var(--ease);
}

.sidebar-nav a:hover {
    padding-left: .85rem;
}

.sidebar-nav a.active {
    background: rgba(255, 255, 255, .14);
}

.sidebar-nav a.active::before {
    content: "";
    position: absolute;
    left: -.12rem;
    top: 50%;
    width: 3px;
    height: 60%;
    transform: translateY(-50%);
    border-radius: 999px;
    background: var(--anpe-blue);
}

.sidebar-section-title {
    color: rgba(255, 255, 255, .5);
    letter-spacing: .06em;
}

.sidebar-nav .nav-icon {
    transition: opacity var(--ease);
}

.sidebar-nav a:hover .nav-icon,
.sidebar-nav a.active .nav-icon {
    opacity: 1;
}

/* Topbar — clearer hierarchy + user chip */
.topbar {
    box-shadow: 0 1px 0 rgba(18, 53, 140, .04), 0 10px 30px rgba(18, 53, 140, .05);
}

.topbar-main > div strong {
    color: var(--anpe-ink);
    font-weight: 820;
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.topbar-user__id {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
}

.topbar-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--anpe-navy), var(--anpe-blue));
    color: #fff;
    font-weight: 850;
    text-transform: uppercase;
}

.topbar-user__meta {
    display: grid;
    line-height: 1.15;
    min-width: 0;
}

.topbar-user__meta strong {
    color: var(--anpe-ink);
    font-size: .9rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 200px;
}

.topbar-user__meta span {
    font-size: .76rem;
}

/* Page heading — light divider for structure */
.page-title {
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--anpe-line);
}

/* Stat / KPI cards — accent, depth, hover */
.stats-grid .card,
.cards-grid .card {
    position: relative;
    overflow: hidden;
    border-left: 3px solid var(--anpe-blue);
    transition: transform var(--ease), box-shadow var(--ease);
}

.stats-grid .card:hover,
.cards-grid .card:hover,
.stat-summary-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
}

.stat-summary-card {
    border-top: 3px solid var(--anpe-blue);
    transition: transform var(--ease), box-shadow var(--ease);
}

.stat-value {
    background: linear-gradient(135deg, var(--anpe-navy), var(--anpe-blue));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-variant-numeric: tabular-nums;
}

/* Tables — zebra + row hover + header tint */
.table-card {
    border-radius: var(--radius);
}

thead th {
    background: #f4f8ff;
}

tbody tr {
    transition: background-color var(--ease);
}

tbody tr:nth-child(even) td {
    background: #fbfdff;
}

tbody tr:hover td {
    background: #eef6ff;
}

/* keep the sticky last-column cell in sync with row striping/hover */
.table-card tbody tr:nth-child(even) td:last-child {
    background: #fbfdff;
}

.table-card tbody tr:hover td:last-child {
    background: #eef6ff;
}

/* Filter bar — subtle lift + focus ring already global */
.filter-bar {
    box-shadow: var(--shadow-sm);
}

/* Stats matrices — hover affordance */
.stats-matrix {
    transition: transform var(--ease), box-shadow var(--ease);
}

.stats-matrix:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Empty states inside cards */
.empty-state {
    color: var(--anpe-muted);
}

/* Global input focus polish (applies to admin forms & filters) */
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid rgba(18, 174, 226, .18);
    border-color: var(--anpe-blue);
}

@media (max-width: 640px) {
    .topbar-user__meta {
        display: none;
    }
}

/* =========================================================================
   CANDIDATURE FORM REFRESH — numbered steps, dropzones, sticky submit
   ========================================================================= */

.public-application-header .public-kicker {
    align-items: center;
    gap: .4rem;
}

.public-application-header p {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.public-application-header p .nav-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    opacity: .9;
}

/* Auto-numbered sections (1..n) */
.public-application-form {
    counter-reset: formsec;
}

.public-form-section {
    counter-increment: formsec;
    border-radius: 14px;
    transition: border-color var(--ease), box-shadow var(--ease);
}

.public-form-section:focus-within {
    border-color: rgba(18, 174, 226, .5);
    box-shadow: 0 0 0 4px rgba(18, 174, 226, .1);
}

.public-form-section h2 {
    gap: .65rem;
    margin-bottom: 1.1rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--anpe-line);
    color: var(--anpe-navy);
    font-size: 1.08rem;
    text-transform: none;
}

/* Turn the small dot marker into a numbered step badge */
.public-form-section h2::before {
    counter-reset: none;
    content: "";
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--anpe-navy), var(--anpe-blue));
    color: #fff;
    font-size: .82rem;
    font-weight: 850;
    box-shadow: 0 6px 14px rgba(18, 53, 140, .25);
}

.public-form-section[data-form-step="1"] h2::before { content: "1"; }
.public-form-section[data-form-step="2"] h2::before { content: "2"; }
.public-form-section[data-form-step="3"] h2::before { content: "3"; }
.public-form-section[data-form-step="4"] h2::before { content: "4"; }
.public-form-section[data-form-step="5"] h2::before { content: "5"; }

.application-stepper {
    display: grid;
    gap: .75rem;
    position: sticky;
    top: .75rem;
    z-index: 6;
    border: 1px solid var(--anpe-line);
    border-radius: 8px;
    padding: .75rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: var(--shadow-sm);
    backdrop-filter: blur(8px);
}

.application-stepper ol {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.application-stepper button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 42px;
    gap: .4rem;
    border: 0;
    border-radius: 6px;
    padding: .45rem;
    background: transparent;
    color: var(--anpe-muted);
    font-size: .8rem;
}

.application-stepper button span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border: 1px solid #c8d7eb;
    border-radius: 50%;
    background: #fff;
    color: var(--anpe-navy);
    font-weight: 850;
}

.application-stepper button.is-active {
    background: #eaf6ff;
    color: var(--anpe-navy);
}

.application-stepper button.is-active span,
.application-stepper button.is-complete span {
    border-color: var(--anpe-blue);
    background: var(--anpe-blue);
    color: #fff;
}

.application-stepper button:disabled {
    cursor: not-allowed;
    opacity: .52;
}

.application-progress {
    height: 5px;
    overflow: hidden;
    border-radius: 5px;
    background: #e5edf8;
}

.application-progress span {
    display: block;
    width: 20%;
    height: 100%;
    background: var(--anpe-blue);
    transition: width .2s ease;
}

.upload-help {
    display: block;
    margin-top: .35rem;
}

.application-review {
    border: 1px solid var(--anpe-line);
    border-radius: 8px;
    padding: 1rem;
    background: #f8fbff;
}

.application-review h2 {
    margin: 0 0 .35rem;
    color: var(--anpe-navy);
    font-size: 1.05rem;
}

.application-review p {
    margin: 0 0 .9rem;
    color: var(--anpe-muted);
}

.application-review dl {
    display: grid;
    grid-template-columns: minmax(130px, .35fr) 1fr;
    margin: 0;
    border-top: 1px solid var(--anpe-line);
}

.application-review dt,
.application-review dd {
    margin: 0;
    border-bottom: 1px solid var(--anpe-line);
    padding: .55rem .35rem;
}

.application-review dt {
    color: var(--anpe-muted);
    font-weight: 750;
}

.application-review dd {
    overflow-wrap: anywhere;
    color: var(--anpe-ink);
    font-weight: 700;
}

.application-step-status {
    margin-right: auto;
    color: var(--anpe-muted);
    font-size: .86rem;
    font-weight: 750;
}

.public-application-form[aria-busy="true"] {
    cursor: wait;
}

@media (max-width: 980px) {
    .offer-choice-tools {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .offer-choice-tools .field:first-child {
        grid-column: 1 / -1;
    }
}

/* File inputs as friendly dropzones */
.public-application-form input[type="file"] {
    width: 100%;
    border: 1px dashed #b9cce8;
    border-radius: 10px;
    padding: .7rem;
    background: #f6faff;
    cursor: pointer;
    transition: border-color var(--ease), background-color var(--ease);
}

.public-application-form input[type="file"]:hover {
    border-color: var(--anpe-blue);
    background: #eef6ff;
}

/* Offer choices — clearer selection state */
.offer-choice {
    cursor: pointer;
    transition: border-color var(--ease), background-color var(--ease), box-shadow var(--ease);
}

.offer-choice:hover {
    border-color: var(--anpe-blue);
    box-shadow: var(--shadow-sm);
}

.offer-choice:has(input:checked) {
    border-color: var(--anpe-blue);
    background: #eaf6ff;
}

/* Sticky floating submit bar for the long form */
.public-form-actions {
    position: sticky;
    bottom: .75rem;
    z-index: 5;
    margin-top: .25rem;
    padding: .75rem;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: var(--shadow-md);
}

@media (max-width: 640px) {
    .public-form-section h2 {
        font-size: 1rem;
    }

    .offer-choice-panel summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .offer-choice-tools {
        grid-template-columns: 1fr;
    }

    .public-form-actions {
        position: static;
        bottom: auto;
    }

    .application-stepper {
        top: .4rem;
        overflow-x: auto;
    }

    .application-stepper ol {
        grid-template-columns: repeat(6, minmax(108px, 1fr));
    }

    .application-stepper button {
        justify-content: flex-start;
    }

    .application-review dl {
        grid-template-columns: 1fr;
    }

    .application-review dt {
        border-bottom: 0;
        padding-bottom: 0;
    }

    .public-form-actions {
        flex-wrap: wrap;
    }

    .application-step-status {
        order: -1;
        width: 100%;
    }

    .draft-save-guidance {
        width: 100%;
        max-width: none;
    }

    .commune-choice-list {
        grid-template-columns: 1fr;
        max-height: 340px;
    }
}

/* =========================================================================
   STATISTICS PAGE REFRESH — KPI icons, heatmap matrices, totals
   ========================================================================= */

/* Small gradient icon badge, reused by KPI cards and section headings */
.stat-ico {
    display: grid;
    place-items: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--anpe-navy), var(--anpe-blue));
    color: #fff;
}

.stat-ico .nav-icon {
    width: 16px;
    height: 16px;
}

/* KPI summary cards */
.stat-summary-card__top {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.stat-summary-card__label {
    color: var(--anpe-muted);
    font-size: .8rem;
    font-weight: 750;
}

.stat-summary-card strong {
    background: linear-gradient(135deg, var(--anpe-navy), var(--anpe-blue));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-variant-numeric: tabular-nums;
}

/* Section headings */
.stats-section-heading h2 {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

/* Matrices as light heatmaps */
.stats-table tbody tr td {
    background: #fff;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.stats-table thead th,
.stats-table tfoot th,
.stats-table tfoot td {
    text-align: right;
}

.stats-table thead th:first-child,
.stats-table tbody th,
.stats-table tfoot th {
    text-align: left;
}

.stat-cell {
    transition: background-color var(--ease);
}

.stats-table .stat-cell.is-zero {
    background: #fafbfd;
    color: #c2cad6;
}

.stats-table .stat-cell-total {
    background: #f4f8ff;
    color: var(--anpe-navy);
}

/* Sticky row-label column for wide matrices */
.stats-table tbody th {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #fff;
}

.stats-table thead th:first-child,
.stats-table tfoot th {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #f4f8ff;
}

/* Column totals footer */
.stats-table tfoot td,
.stats-table tfoot th {
    background: #f4f8ff;
    font-weight: 800;
    color: var(--anpe-navy);
    border-top: 2px solid var(--anpe-line);
}

/* =========================================================================
   ADMIN FORMS — sectioned cards, toggle chips, sticky actions
   ========================================================================= */

.admin-form {
    display: grid;
    gap: 1.1rem;
    width: min(1000px, 100%);
}

.admin-form-section {
    border: 1px solid var(--anpe-line);
    border-radius: 14px;
    padding: 1.1rem;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.admin-form-section__head {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: 1rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--anpe-line);
}

.admin-form-section__head h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.05rem;
}

.admin-form-section__head p {
    margin: .15rem 0 0;
}

.field-wide {
    grid-column: 1 / -1;
}

/* Checkbox cards */
.check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
    margin-bottom: 1rem;
}

.check-item {
    display: grid;
    gap: .3rem;
}

.check-card {
    cursor: pointer;
    transition: border-color var(--ease), background-color var(--ease), box-shadow var(--ease);
}

.check-card span {
    font-weight: 700;
    color: var(--anpe-ink);
}

.check-card:hover {
    border-color: var(--anpe-blue);
    box-shadow: var(--shadow-sm);
}

.check-card:has(input:checked) {
    border-color: var(--anpe-blue);
    background: #eaf6ff;
}

/* Academic sub-groups */
.admin-subgroup {
    border: 1px dashed #c5d4ea;
    border-radius: 12px;
    padding: .9rem;
    background: #fbfdff;
}

.admin-subgroup + .admin-subgroup {
    margin-top: .85rem;
}

.admin-subgroup__toggle {
    background: #fff;
}

.admin-subgroup .form-grid {
    margin-top: .8rem;
}

/* Sticky action bar */
.admin-form-actions {
    position: sticky;
    bottom: .75rem;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .8rem;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: var(--shadow-md);
}

@media (max-width: 640px) {
    .check-grid {
        grid-template-columns: 1fr;
    }

    .admin-form-actions {
        bottom: .5rem;
    }

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

/* Candidate edit page */
.candidate-edit-title {
    gap: 1rem;
}

.candidate-edit-title__actions {
    display: flex;
    gap: .65rem;
    flex-wrap: wrap;
}

.candidate-profile-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-bottom: 1rem;
}

.candidate-mini-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: .85rem;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.candidate-mini-card > span {
    display: grid;
    place-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #eaf6ff;
    color: var(--anpe-navy);
}

.candidate-mini-card small {
    display: block;
    color: var(--anpe-muted);
    font-size: .74rem;
    font-weight: 800;
    text-transform: uppercase;
}

.candidate-mini-card strong {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--anpe-ink);
    font-size: .94rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.candidate-edit-form {
    width: min(1180px, 100%);
}

.form-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-form-alert {
    display: flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid #ffd6a6;
    border-radius: 12px;
    padding: .8rem .9rem;
    background: #fff8eb;
    color: #8a4b00;
    font-weight: 800;
    margin-bottom: 1rem;
}

.admin-form-alert.success {
    border-color: #a9dfc1;
    background: #effaf3;
    color: #17683a;
}

.journal-data pre {
    margin: 0;
    padding: 1rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-size: .85rem;
    line-height: 1.55;
}

.admin-form-alert .nav-icon {
    flex: 0 0 auto;
}

.candidate-check-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.candidate-check-card {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 54px;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: .75rem;
    background: #fff;
}

.candidate-check-card input {
    width: auto;
    min-height: auto;
}

@media (max-width: 980px) {
    .candidate-profile-strip,
    .form-grid--three,
    .candidate-check-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .candidate-profile-strip,
    .form-grid--three,
    .candidate-check-grid {
        grid-template-columns: 1fr;
    }
}

/* Candidate edit aligned with public application form */
.candidate-edit-form.public-application-form {
    width: min(1180px, 100%);
    max-width: none;
}

.candidate-edit-form .public-form-section {
    margin-bottom: 1rem;
}

.candidate-boolean-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .7rem;
    margin-bottom: 1rem;
}

.candidate-toggle-card {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 54px;
    border: 1px solid var(--anpe-line);
    border-radius: 12px;
    padding: .75rem;
    background: #fff;
    color: var(--anpe-ink);
    font-weight: 800;
    cursor: pointer;
    transition: border-color var(--ease), background-color var(--ease), box-shadow var(--ease);
}

.candidate-toggle-card input {
    width: auto;
    min-height: auto;
}

.candidate-toggle-card:hover,
.candidate-toggle-card:has(input:checked) {
    border-color: var(--anpe-blue);
    background: #eaf6ff;
    box-shadow: var(--shadow-sm);
}

.candidate-form-actions {
    justify-content: flex-end;
}

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

@media (max-width: 640px) {
    .candidate-boolean-grid {
        grid-template-columns: 1fr;
    }

    .candidate-form-actions {
        justify-content: stretch;
    }
}

/* Application page — compact offer context and desktop summary */
.public-application-header {
    align-items: center;
    margin-bottom: .8rem;
}

.public-application-header h1 {
    margin-top: .35rem;
    font-size: clamp(1.8rem, 4vw, 2.35rem);
}

.public-application-header p {
    margin-top: .3rem;
    font-size: .92rem;
}

.application-offer-summary {
    display: grid;
    grid-template-columns: minmax(210px, .7fr) minmax(0, 2fr);
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 14px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 14px 36px rgba(7, 22, 64, .14);
}

.application-offer-summary__heading {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.application-offer-summary__heading > span {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #eaf6ff;
    color: var(--anpe-navy);
}

.application-offer-summary__heading .nav-icon { width: 20px; height: 20px; }
.application-offer-summary__heading small { color: var(--anpe-blue); font-size: .68rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.application-offer-summary__heading h2 { margin: .15rem 0 0; color: var(--anpe-navy); font-size: 1rem; }

.application-offer-summary dl {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .7rem;
    margin: 0;
}

.application-offer-summary dl div { min-width: 0; padding-left: .7rem; border-left: 1px solid var(--anpe-line); }
.application-offer-summary dt { color: var(--anpe-muted); font-size: .67rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.application-offer-summary dd { margin: .18rem 0 0; overflow-wrap: anywhere; color: var(--anpe-ink); font-size: .8rem; font-weight: 750; line-height: 1.35; }
.application-offer-summary dd > strong { color: var(--anpe-navy); font-size: 1rem; }

.application-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 1rem;
    align-items: start;
    width: min(1480px, 100%);
}

.application-workspace .public-application-form { width: 100%; min-width: 0; }

.application-summary {
    position: sticky;
    top: 1rem;
    display: grid;
    gap: .75rem;
}

.application-summary__card {
    padding: .9rem;
    border: 1px solid rgba(255, 255, 255, .4);
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 12px 30px rgba(7, 22, 64, .12);
}

.application-summary__eyebrow { color: var(--anpe-blue); font-size: .67rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.application-summary h2 { margin: .25rem 0 .65rem; color: var(--anpe-navy); font-size: .98rem; line-height: 1.35; }
.application-summary h3 { display: flex; align-items: center; gap: .4rem; margin: 0 0 .55rem; color: var(--anpe-navy); font-size: .85rem; }
.application-summary h3 .nav-icon { width: 15px; height: 15px; color: var(--anpe-blue); }
.application-summary ul { display: grid; gap: .35rem; margin: 0; padding-left: 1rem; color: #59667a; font-size: .74rem; line-height: 1.4; }
.application-summary small { display: block; margin-top: .65rem; color: var(--anpe-muted); font-size: .68rem; line-height: 1.4; }
.application-summary__progress { height: 6px; overflow: hidden; border-radius: 999px; background: #e5edf8; }
.application-summary__progress span { display: block; width: 20%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--anpe-navy), var(--anpe-blue)); transition: width .2s ease; }
.application-summary__offers { list-style: none; padding-left: 0 !important; }
.application-summary__offers li { padding: .45rem .5rem; border-radius: 8px; background: #f2f7fd; color: var(--anpe-ink); font-weight: 700; }
.application-summary__help { display: flex; align-items: center; gap: .65rem; padding: .8rem .9rem; border-radius: 12px; background: #087847; color: #fff; box-shadow: 0 10px 24px rgba(8, 120, 71, .2); }
.application-summary__help .nav-icon { width: 20px; height: 20px; }
.application-summary__help span { display: grid; font-size: .7rem; }
.application-summary__help strong { font-size: .9rem; }

.offer-choice-card {
    align-items: flex-start;
    padding: .85rem;
}

.offer-choice-card > input { flex: 0 0 auto; margin-top: .22rem; }
.offer-choice-card__content { display: grid; flex: 1; min-width: 0; gap: .65rem; }
.offer-choice-card__top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.offer-choice-card__top > strong { color: var(--anpe-navy); font-size: .78rem; }
.offer-choice-card.is-recommended {
    border-color: #45a675;
    background: #f0fbf5;
    box-shadow: inset 4px 0 0 #168455;
}
.offer-choice-card.is-recommended .offer-choice-card__top > strong { color: #087847; }
.offer-choice-card.is-local-match {
    border-color: #d6b75d;
    background: #fffaf0;
    box-shadow: inset 4px 0 0 #c79b22;
}
.offer-choice-card.is-local-match .offer-choice-card__top > strong { color: #765812; }
.offer-choice-card.is-outside-domain .offer-choice-card__top > strong { color: #7a5a12; }
.offer-recommendation-notice {
    margin: .8rem 0;
    padding: .75rem .9rem;
    border-left: 4px solid #168455;
    border-radius: 8px;
    background: #f0fbf5;
    color: #185f43;
    font-size: .82rem;
    font-weight: 750;
}
.offer-outside-domain-toggle {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin: 0 0 .9rem;
    padding: .75rem .9rem;
    border: 1px solid #e3d5b1;
    border-radius: 9px;
    background: #fffaf0;
    cursor: pointer;
}
.offer-outside-domain-toggle input { margin-top: .2rem; }
.offer-outside-domain-toggle span { display: grid; gap: .18rem; }
.offer-outside-domain-toggle strong { color: #6e5112; font-size: .8rem; }
.offer-outside-domain-toggle small { color: var(--anpe-muted); font-size: .7rem; line-height: 1.4; }
.offer-limit-dialog__panel { text-align: center; }
.offer-limit-dialog__icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    margin: 0 auto .85rem;
    border-radius: 50%;
    background: #fff3cd;
    color: #8a5b00;
    font-size: 1.5rem;
    font-weight: 950;
}
.offer-limit-dialog__panel .confirm-dialog__actions { justify-content: center; }
.offer-choice-card__top em { padding: .18rem .48rem; border-radius: 999px; background: #e7f7ef; color: #087847; font-size: .68rem; font-style: normal; font-weight: 850; }
.offer-choice-card__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; }

.public-application-header .application-duration-estimate {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    width: fit-content;
    margin-top: .65rem;
    padding: .48rem .72rem;
    border: 1px solid #c9ddf5;
    border-radius: 999px;
    background: #f2f7fd;
    color: var(--anpe-navy);
    font-size: .78rem;
    line-height: 1.2;
}

.public-application-header .application-duration-estimate .nav-icon {
    width: 17px;
    height: 17px;
    color: var(--anpe-blue);
}

.public-application-header .application-duration-estimate span {
    color: var(--anpe-muted);
}
.offer-choice-card__grid > span { display: grid; min-width: 0; gap: .12rem; padding: .55rem; border-radius: 8px; background: rgba(238, 246, 255, .65); }
.offer-choice-card__grid small { color: var(--anpe-muted); font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.offer-choice-card__grid strong { overflow-wrap: anywhere; color: var(--anpe-ink); font-size: .73rem; line-height: 1.35; }

.application-draft-email {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .7fr);
    gap: 1rem;
    align-items: center;
    margin-top: 1rem;
    padding: .9rem;
    border: 1px solid #cfe1f4;
    border-radius: 11px;
    background: #f3f8fe;
}

.application-draft-email__intro {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.application-draft-email__intro > span {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #fff;
    color: var(--anpe-navy);
    box-shadow: var(--shadow-sm);
}

.application-draft-email__intro .nav-icon { width: 18px; height: 18px; }
.application-draft-email__intro strong { color: var(--anpe-navy); font-size: .85rem; }
.application-draft-email__intro p { margin: .15rem 0 0; color: var(--anpe-muted); font-size: .75rem; line-height: 1.4; }
.application-draft-email .field { margin: 0; }

@media (max-width: 1180px) {
    .application-workspace { grid-template-columns: 1fr; }
    .application-summary { display: none; }
    .application-offer-summary { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
    .application-offer-summary dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .offer-choice-card__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .application-draft-email { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .application-offer-summary { padding: .85rem; }
    .application-offer-summary dl { grid-template-columns: 1fr; gap: .45rem; }
    .application-offer-summary dl div { padding: .4rem .5rem; border: 0; border-radius: 8px; background: #f7faff; }
    .offer-choice-card__grid { grid-template-columns: 1fr; }
    .offer-choice-card__top { align-items: flex-start; flex-direction: column; gap: .35rem; }
}

/* =========================================================================
   LOGIN — two-column split (project info + form)
   ========================================================================= */

.enterprise-duplicate-warning {
    display: grid;
    gap: .9rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid #efc36d;
    border-left: 5px solid #d99000;
    border-radius: 12px;
    background: #fff8e6;
}

.enterprise-duplicate-warning__title {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}

.enterprise-duplicate-warning__title > span {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #d99000;
    color: #fff;
    font-weight: 900;
}

.enterprise-duplicate-warning h2,
.enterprise-duplicate-warning h3 { margin: 0; color: #684200; }
.enterprise-duplicate-warning h2 { font-size: 1.05rem; }
.enterprise-duplicate-warning__title p { margin: .2rem 0 0; color: #765821; font-size: .84rem; }

.enterprise-duplicate-card {
    overflow: hidden;
    border: 1px solid #ead8ad;
    border-radius: 10px;
    background: #fff;
}

.enterprise-duplicate-card__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem;
    border-bottom: 1px solid #eee1c2;
    background: #fffcf4;
}

.enterprise-duplicate-card__heading small { color: #927026; font-weight: 800; text-transform: uppercase; }
.enterprise-duplicate-card__heading h3 { margin-top: .15rem; font-size: 1rem; }
.enterprise-duplicate-card dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.enterprise-duplicate-card dl div { min-width: 0; padding: .7rem .8rem; border-right: 1px solid #f0e7d1; border-bottom: 1px solid #f0e7d1; }
.enterprise-duplicate-card dt { color: var(--anpe-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.enterprise-duplicate-card dd { margin: .18rem 0 0; overflow-wrap: anywhere; color: var(--anpe-ink); font-size: .82rem; font-weight: 700; }

.enterprise-duplicate-comparison {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    padding: .75rem;
    border-radius: 9px;
    background: #fff;
    color: #5d4a22;
    font-size: .8rem;
}

.enterprise-duplicate-comparison span { padding: .22rem .5rem; border-radius: 999px; background: #f5ead0; }
.enterprise-duplicate-confirmation { display: flex; align-items: flex-start; gap: .6rem; color: #5d4310; font-weight: 750; }
.enterprise-duplicate-confirmation input { flex: 0 0 auto; width: auto; min-height: auto; margin-top: .2rem; }
.enterprise-duplicate-warning textarea { width: 100%; resize: vertical; }

.enterprise-interzone-request {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .7fr) auto;
    gap: .65rem;
    align-items: end;
    padding: .8rem;
    border-top: 1px solid #eee1c2;
    background: #fff8e6;
}

.enterprise-interzone-request p { grid-column: 1 / -1; margin: 0; color: #765821; font-size: .8rem; }
.enterprise-interzone-request label { color: #684200; font-size: .78rem; font-weight: 800; }
.enterprise-interzone-request input { min-height: 42px; }
.enterprise-duplicate-blocked { margin: 0; padding: .7rem .8rem; border-radius: 8px; background: #fce4e1; color: #8f241a; font-weight: 750; }
.enterprise-access-actions { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; min-width: 320px; }
.enterprise-access-actions input { min-height: 38px; flex: 1; }

@media (max-width: 760px) {
    .enterprise-duplicate-card__heading { align-items: flex-start; flex-direction: column; }
    .enterprise-duplicate-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .enterprise-interzone-request { grid-template-columns: 1fr; }
}

@media (max-width: 460px) {
    .enterprise-duplicate-card dl { grid-template-columns: 1fr; }
}

.auth-split {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    width: min(940px, 100%);
    border-radius: 20px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-lg);
}

/* Left: branded project panel */
.auth-aside {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: clamp(1.5rem, 4vw, 2.6rem);
    color: #fff;
    background:
        radial-gradient(700px 420px at 110% -10%, rgba(18, 174, 226, .55), transparent 60%),
        linear-gradient(160deg, #0e2d77 0%, #143b8f 50%, #1372b8 100%);
}

.auth-aside__brand {
    color: #fff;
}

.auth-aside__brand .brand-mark {
    background: #fff;
}

.auth-aside__brand .brand-text small {
    color: rgba(255, 255, 255, .75);
}

.auth-aside__body {
    flex: 1 0 auto;
}

.auth-aside__body .public-kicker {
    align-items: center;
    gap: .4rem;
    margin-bottom: .85rem;
}

.auth-aside__body h2 {
    margin: 0 0 .55rem;
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    line-height: 1.1;
}

.auth-aside__body p {
    margin: 0;
    color: rgba(255, 255, 255, .85);
    font-size: .95rem;
    line-height: 1.55;
}

.auth-features {
    display: grid;
    gap: .7rem;
    margin: 1.4rem 0 0;
    padding: 0;
    list-style: none;
}

.auth-features li {
    display: flex;
    align-items: center;
    gap: .65rem;
    font-size: .92rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .92);
}

.auth-features .nav-icon {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    color: #bfe3ff;
}

.auth-aside__foot {
    display: grid;
    gap: .7rem;
}

.auth-greenline {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: rgba(255, 255, 255, .9);
    font-size: .9rem;
}

.auth-greenline strong {
    margin-left: .15rem;
    padding: .1rem .5rem;
    border-radius: 999px;
    background: #fff;
    color: #0f7a49;
    font-weight: 900;
    letter-spacing: .03em;
}

.auth-greenline .nav-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
}

/* Right: the form panel sits flush inside the split card */
.auth-split .auth-panel {
    width: auto;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.auth-brand--mobile {
    display: none;
}

@media (max-width: 780px) {
    .auth-split {
        grid-template-columns: 1fr;
        width: min(460px, 100%);
    }

    /* On mobile, condense the project panel and show the form's own brand */
    .auth-aside {
        gap: 1rem;
        padding: 1.4rem 1.4rem 1.5rem;
    }

    .auth-aside__brand {
        display: none;
    }

    .auth-features {
        display: none;
    }

    .auth-brand--mobile {
        display: inline-flex;
    }
}

/* =========================================================================
   ANALYTICS COCKPIT — dashboard and statistics
   ========================================================================= */

.analytics-page {
    --analytics-border: #d9e5f3;
    --analytics-surface: rgba(255, 255, 255, .94);
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.analytics-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 116px;
    gap: 1.4rem;
    overflow: hidden;
    border: 1px solid rgba(18, 53, 140, .12);
    border-radius: 22px;
    padding: 1.2rem 1.35rem;
    background:
        radial-gradient(circle at 82% 12%, rgba(18, 174, 226, .19), transparent 28%),
        linear-gradient(125deg, #ffffff 0%, #f6faff 55%, #edf7ff 100%);
    box-shadow: 0 18px 45px rgba(18, 53, 140, .09);
}

.analytics-hero::before,
.analytics-hero::after {
    position: absolute;
    border-radius: 999px;
    content: "";
    pointer-events: none;
}

.analytics-hero::before {
    top: -58px;
    right: 10%;
    width: 150px;
    height: 150px;
    border: 25px solid rgba(18, 174, 226, .055);
}

.analytics-hero::after {
    right: -42px;
    bottom: -74px;
    width: 190px;
    height: 190px;
    background: rgba(18, 53, 140, .035);
}

.analytics-hero__identity,
.analytics-hero__meta {
    position: relative;
    z-index: 1;
}

.analytics-hero__identity {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 1rem;
}

.analytics-hero__icon {
    display: grid;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 17px;
    background: linear-gradient(145deg, var(--anpe-navy), #1678c7 72%, var(--anpe-blue));
    color: #fff;
    box-shadow: 0 13px 28px rgba(18, 53, 140, .22), inset 0 1px 0 rgba(255, 255, 255, .28);
}

.analytics-hero__icon .nav-icon {
    width: 27px;
    height: 27px;
}

.analytics-kicker,
.analytics-section-heading__eyebrow,
.stats-matrix-kicker {
    color: #0c77a1;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .085em;
    text-transform: uppercase;
}

.analytics-hero h1 {
    margin: .18rem 0 .22rem;
    color: #15294b;
    font-size: clamp(1.4rem, 2vw, 1.82rem);
    font-weight: 860;
    letter-spacing: -.025em;
    line-height: 1.08;
}

.analytics-hero p {
    max-width: 760px;
    margin: 0;
    color: #647187;
    font-size: .86rem;
}

.analytics-hero__meta {
    display: flex;
    align-items: flex-end;
    flex: 0 0 auto;
    flex-direction: column;
    gap: .72rem;
}

.analytics-live-dot {
    display: inline-flex;
    align-items: center;
    gap: .48rem;
    color: #3f526c;
    font-size: .72rem;
    font-weight: 760;
}

.analytics-live-dot i {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #27a76f;
    box-shadow: 0 0 0 5px rgba(39, 167, 111, .12);
    animation: analytics-pulse 2.4s ease-in-out infinite;
}

@keyframes analytics-pulse {
    50% { box-shadow: 0 0 0 8px rgba(39, 167, 111, 0); }
}

.button.analytics-hero__action {
    min-height: 39px;
    border: 0;
    border-radius: 12px;
    padding: .55rem .82rem;
    background: linear-gradient(135deg, var(--anpe-navy), #176fbd);
    color: #fff;
    box-shadow: 0 9px 22px rgba(18, 53, 140, .2);
    font-size: .76rem;
}

.button.analytics-hero__action:hover,
.button.analytics-hero__action:focus-visible {
    background: linear-gradient(135deg, #0e2d7c, #118fc4);
    color: #fff;
    transform: translateY(-1px);
}

.analytics-block {
    min-width: 0;
    border: 1px solid var(--analytics-border);
    border-radius: 20px;
    padding: 1.05rem;
    background: var(--analytics-surface);
    box-shadow: 0 12px 34px rgba(18, 53, 140, .055);
}

.analytics-block--charts {
    background:
        linear-gradient(180deg, rgba(246, 250, 255, .78), rgba(255, 255, 255, .96) 115px),
        #fff;
}

.analytics-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .9rem;
}

.analytics-section-heading h2 {
    margin: .12rem 0 0;
    color: #1a2b48;
    font-size: 1.03rem;
    font-weight: 830;
    letter-spacing: -.01em;
}

.analytics-section-heading p {
    margin: .2rem 0 0;
    color: #748095;
    font-size: .78rem;
}

.analytics-section-count {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border: 1px solid #dae5f1;
    border-radius: 999px;
    padding: .25rem .65rem;
    background: #f7faff;
    color: #596980;
    font-size: .69rem;
    font-weight: 800;
    white-space: nowrap;
}

.analytics-section-count--accent {
    border-color: rgba(18, 174, 226, .24);
    background: rgba(18, 174, 226, .09);
    color: #0b7197;
}

.analytics-page .kpi-grid {
    gap: .8rem;
    margin: 0;
}

.analytics-page .kpi-tile {
    min-height: 104px;
    border-color: #dce6f2;
    border-radius: 17px;
    padding: .9rem 1rem;
    background:
        radial-gradient(circle at 100% 0, var(--kpi-accent-soft, #eef7ff), transparent 45%),
        #fff;
    box-shadow: 0 8px 24px rgba(18, 53, 140, .065);
}

.analytics-page .kpi-tile::before {
    inset: 14px auto 14px 0;
    width: 3px;
    height: auto;
    border-radius: 0 999px 999px 0;
}

.analytics-page .kpi-tile::after {
    position: absolute;
    top: -26px;
    right: -24px;
    width: 75px;
    height: 75px;
    border: 13px solid var(--kpi-accent-soft, #eef7ff);
    border-radius: 999px;
    content: "";
    opacity: .62;
}

.analytics-page .kpi-tile__icon,
.analytics-page .kpi-tile__body {
    position: relative;
    z-index: 1;
}

.analytics-page .kpi-tile__icon {
    width: 43px;
    height: 43px;
    border: 1px solid color-mix(in srgb, var(--kpi-accent, var(--anpe-navy)), transparent 82%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7);
}

.analytics-page .kpi-tile__value {
    font-size: 1.7rem;
    letter-spacing: -.03em;
}

.kpi-tile__caption {
    color: #929caf;
    font-size: .62rem;
    font-weight: 650;
}

.analytics-page .stat-summary-grid {
    grid-template-columns: repeat(auto-fit, minmax(142px, 1fr));
    gap: .72rem;
    margin: 0;
}

.analytics-page .stat-summary-card {
    --summary-accent: #12358c;
    --summary-soft: #edf3ff;
    position: relative;
    min-height: 112px;
    gap: .42rem;
    overflow: hidden;
    border: 1px solid #dce6f2;
    border-top: 0;
    border-radius: 16px;
    padding: .82rem .88rem;
    background: linear-gradient(145deg, #fff 55%, var(--summary-soft));
    box-shadow: 0 8px 24px rgba(18, 53, 140, .06);
}

.analytics-page .stat-summary-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    border-radius: 0 999px 999px 0;
    background: var(--summary-accent);
    content: "";
}

.analytics-page .stat-summary-card::after {
    position: absolute;
    right: -22px;
    bottom: -30px;
    width: 76px;
    height: 76px;
    border-radius: 999px;
    background: var(--summary-accent);
    content: "";
    opacity: .045;
}

.stat-summary-card--tone-1 { --summary-accent: #0d92bc; --summary-soft: #ecfaff; }
.stat-summary-card--tone-2 { --summary-accent: #7b61c9; --summary-soft: #f3f0ff; }
.stat-summary-card--tone-3 { --summary-accent: #2778bd; --summary-soft: #edf7ff; }
.stat-summary-card--tone-4 { --summary-accent: #269466; --summary-soft: #edfaf4; }
.stat-summary-card--tone-5 { --summary-accent: #c87912; --summary-soft: #fff7e9; }
.stat-summary-card--tone-6 { --summary-accent: #c64f67; --summary-soft: #fff1f4; }

.analytics-page .stat-summary-card__top,
.analytics-page .stat-summary-card > strong,
.analytics-page .stat-summary-card > small {
    position: relative;
    z-index: 1;
}

.analytics-page .stat-summary-card .stat-ico {
    border-color: color-mix(in srgb, var(--summary-accent), transparent 82%);
    background: var(--summary-soft);
    color: var(--summary-accent);
}

.analytics-page .stat-summary-card strong {
    background: none;
    color: var(--summary-accent);
    font-size: 1.7rem;
    -webkit-text-fill-color: currentColor;
}

.analytics-page .stat-summary-card > small {
    color: #929caf;
    font-size: .61rem;
    font-weight: 650;
}

.analytics-page .dashboard-chart-section {
    gap: 0;
    margin-top: 0;
}

.analytics-page .stats-chart-grid {
    gap: .85rem;
    margin: 0;
}

.analytics-page .stats-chart {
    position: relative;
    overflow: hidden;
    border-color: #dce6f2;
    border-radius: 17px;
    padding: 1rem;
    background: linear-gradient(150deg, #fff 60%, #f5faff);
    box-shadow: 0 9px 26px rgba(18, 53, 140, .065);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.analytics-page .stats-chart:hover {
    border-color: #bfd6ec;
    box-shadow: 0 14px 34px rgba(18, 53, 140, .1);
    transform: translateY(-2px);
}

.analytics-page .stats-chart-header {
    margin-bottom: .72rem;
}

.analytics-page .stats-chart-header h2 {
    color: #1c2d49;
    font-size: .9rem;
    font-weight: 820;
}

.analytics-page .stats-chart-header p {
    font-size: .73rem;
}

.analytics-page .stats-chart-mode-badge {
    border-color: rgba(18, 174, 226, .22);
    background: rgba(18, 174, 226, .08);
    color: #0a7199;
}

.stats-section-nav {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    margin: 0 0 1rem;
    padding: .1rem .05rem .45rem;
    scrollbar-width: thin;
}

.stats-section-nav a {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: 37px;
    gap: .42rem;
    border: 1px solid #dbe6f2;
    border-radius: 11px;
    padding: .42rem .58rem;
    background: #fff;
    color: #526178;
    font-size: .7rem;
    font-weight: 760;
    box-shadow: 0 4px 12px rgba(18, 53, 140, .04);
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}

.stats-section-nav a:hover,
.stats-section-nav a:focus-visible {
    border-color: #93cce3;
    color: var(--anpe-navy);
    transform: translateY(-1px);
}

.stats-section-nav a > span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 7px;
    background: #edf6ff;
    color: #0e77a1;
}

.stats-section-nav .nav-icon {
    width: 14px;
    height: 14px;
}

.stats-section-nav small {
    display: grid;
    min-width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 999px;
    background: #eef2f8;
    color: #68758a;
    font-size: .61rem;
}

.analytics-page .stats-sections {
    gap: 1rem;
}

.analytics-page .stats-section {
    scroll-margin-top: 90px;
    gap: .75rem;
    border: 1px solid #dbe6f2;
    border-top: 1px solid #dbe6f2;
    border-radius: 17px;
    padding: .88rem;
    background: #f7faff;
}

.analytics-page .stats-section-heading {
    align-items: center;
    padding: 0 .1rem;
}

.analytics-page .stats-section-heading > div {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.stats-section-heading__index {
    display: grid;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--anpe-navy), #157bb9);
    color: #fff;
    font-size: .7rem;
    font-weight: 850;
    box-shadow: 0 7px 15px rgba(18, 53, 140, .16);
}

.analytics-page .stats-section-heading h2 {
    color: #1d3151;
    font-size: .98rem;
    font-weight: 830;
    letter-spacing: 0;
    text-transform: none;
}

.analytics-page .stats-section-heading > span:last-child {
    border: 1px solid #d8e4f0;
    border-radius: 999px;
    padding: .25rem .58rem;
    background: #fff;
    color: #66758b;
    font-size: .67rem;
}

.analytics-page .stats-matrix-grid {
    gap: .78rem;
}

.analytics-page .stats-matrix {
    border-color: #dbe6f2;
    border-radius: 15px;
    box-shadow: 0 7px 20px rgba(18, 53, 140, .05);
}

.analytics-page .stats-matrix:hover {
    box-shadow: 0 11px 27px rgba(18, 53, 140, .085);
    transform: translateY(-1px);
}

.analytics-page .stats-matrix-header {
    align-items: center;
    min-height: 86px;
    padding: .78rem .85rem;
    background: linear-gradient(135deg, #fff, #f5f9ff);
}

.analytics-page .stats-matrix-header h3 {
    margin-top: .1rem;
    color: #213250;
    font-size: .82rem;
    font-weight: 820;
}

.analytics-page .stats-matrix-header p {
    font-size: .67rem;
}

.stats-matrix-total {
    display: grid;
    min-width: 54px;
    gap: .05rem;
    border-radius: 10px;
    padding: .34rem .52rem;
    background: #edf5ff;
    color: var(--anpe-navy);
    font-size: .9rem;
    font-weight: 850;
    line-height: 1.1;
    text-align: right;
}

.stats-matrix-total small {
    color: #738299;
    font-size: .55rem;
    font-weight: 720;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.analytics-page .discreet-export-button {
    border-color: #d7e3ef;
    background: #fff;
    color: #60708a;
    opacity: 1;
}

.analytics-page .stats-table {
    border-collapse: separate;
    border-spacing: 0;
}

.analytics-page .stats-table th,
.analytics-page .stats-table td {
    border-bottom: 1px solid #edf1f6;
    padding: .55rem .62rem;
    font-size: .74rem;
}

.analytics-page .stats-table thead th {
    background: #edf4fc;
    color: #526179;
    font-size: .64rem;
    letter-spacing: .035em;
}

.analytics-page .stats-table tbody th {
    color: #3b4a62;
    font-weight: 720;
}

.analytics-page .stats-table tbody tr:hover td,
.analytics-page .stats-table tbody tr:hover th {
    filter: brightness(.97);
}

@media (max-width: 1180px) {
    .analytics-page .kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .analytics-page .stats-matrix-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    .analytics-hero,
    .analytics-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .analytics-hero__meta {
        align-items: flex-start;
        width: 100%;
    }

    .analytics-page .stats-chart-grid {
        grid-template-columns: 1fr;
    }

    .analytics-section-heading .button,
    .button.analytics-hero__action {
        justify-content: center;
        width: 100%;
    }
}

@media (max-width: 520px) {
    .analytics-hero {
        padding: 1rem;
    }

    .analytics-hero__identity {
        align-items: flex-start;
    }

    .analytics-hero__icon {
        flex-basis: 46px;
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }

    .analytics-page .kpi-grid,
    .analytics-page .stat-summary-grid {
        grid-template-columns: 1fr;
    }

    .analytics-block {
        border-radius: 16px;
        padding: .82rem;
    }

    .analytics-page .stats-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .analytics-page .stats-matrix-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .analytics-page .stats-matrix-actions {
        justify-content: space-between;
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .analytics-live-dot i {
        animation: none;
    }

    .analytics-page .kpi-tile,
    .analytics-page .stat-summary-card,
    .analytics-page .stats-chart,
    .analytics-page .stats-matrix,
    .stats-section-nav a {
        transition: none;
    }
}

@media (max-width: 420px) {
    .auth-aside__foot .button {
        width: 100%;
        justify-content: center;
    }
}

/* Login page — isolated layout to avoid legacy auth-panel collisions */
.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 2rem);
    background:
        radial-gradient(circle at 8% 8%, rgba(18, 174, 226, .2), transparent 28rem),
        radial-gradient(circle at 92% 92%, rgba(39, 174, 96, .13), transparent 24rem),
        #eef4fb;
}

.login-shell {
    width: min(1060px, 100%);
    min-height: min(700px, calc(100vh - 2rem));
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(390px, .94fr);
    overflow: hidden;
    border: 1px solid rgba(18, 53, 140, .1);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 45, 119, .16);
}

.login-story {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    padding: clamp(1.8rem, 4vw, 3.4rem);
    overflow: hidden;
    color: #fff;
    background: linear-gradient(150deg, #0b255f 0%, #12358c 55%, #087eb4 100%);
}

.login-story::after {
    content: "VAE";
    position: absolute;
    z-index: -1;
    right: -1.2rem;
    bottom: 2rem;
    color: rgba(255, 255, 255, .035);
    font-size: clamp(7rem, 18vw, 12rem);
    font-weight: 950;
    letter-spacing: -.08em;
    line-height: .7;
}

.login-story__glow {
    position: absolute;
    z-index: -1;
    top: -12rem;
    right: -10rem;
    width: 32rem;
    height: 32rem;
    border-radius: 50%;
    background: rgba(18, 174, 226, .34);
    filter: blur(12px);
}

.login-brand { color: #fff; }
.login-brand .brand-mark { width: 52px; height: 52px; border-radius: 14px; }
.login-brand .brand-text { display: grid; }
.login-brand .brand-text strong { font-size: 1.05rem; }
.login-brand .brand-text small { color: rgba(255, 255, 255, .68); font-weight: 500; }

.login-story__content {
    display: grid;
    align-content: center;
    flex: 1;
    padding: 2rem 0;
}

.login-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: max-content;
    padding: .45rem .7rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.login-eyebrow .nav-icon { width: 15px; height: 15px; }
.login-story h1 { margin: 1rem 0 .8rem; font-size: clamp(2.15rem, 5vw, 3.4rem); line-height: 1.02; letter-spacing: -.045em; }
.login-story__content > p { max-width: 34rem; margin: 0; color: rgba(255, 255, 255, .78); font-size: 1rem; line-height: 1.7; }

.login-benefits { display: grid; gap: .7rem; margin-top: 1.6rem; }
.login-benefit { display: flex; align-items: center; gap: .8rem; padding: .75rem .85rem; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; background: rgba(255,255,255,.07); }
.login-benefit > span { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; background: rgba(255,255,255,.12); color: #9ee3ff; }
.login-benefit .nav-icon { width: 17px; height: 17px; }
.login-benefit div { display: grid; line-height: 1.3; }
.login-benefit strong { font-size: .88rem; }
.login-benefit small { margin-top: .16rem; color: rgba(255,255,255,.66); font-size: .76rem; }

.login-story__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.login-offers-link, .login-phone { display: inline-flex; align-items: center; gap: .45rem; font-size: .82rem; font-weight: 750; }
.login-offers-link { padding-bottom: .2rem; border-bottom: 1px solid rgba(255,255,255,.45); }
.login-phone { color: rgba(255,255,255,.78); }
.login-phone strong { padding: .2rem .5rem; border-radius: 999px; background: #fff; color: #087847; }
.login-story__actions .nav-icon { width: 16px; height: 16px; }

.login-access { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4.1rem); background: #fff; }
.login-mobile-brand { display: none; margin-bottom: 2rem; }
.login-access__heading { display: flex; align-items: center; gap: .85rem; }
.login-access__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: #eaf6ff; color: var(--anpe-navy); }
.login-access__icon .nav-icon { width: 21px; height: 21px; }
.login-access__heading p { margin: 0 0 .15rem; color: var(--anpe-blue); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.login-access__heading h2 { margin: 0; color: var(--anpe-navy); font-size: 2rem; line-height: 1; }
.login-access__lead { margin: 1rem 0 1.5rem; color: var(--anpe-muted); }

.login-form { display: grid; gap: 1rem; }
.login-form .field { gap: .42rem; }
.login-label-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.login-label-row a { color: var(--anpe-navy); font-size: .78rem; font-weight: 750; }
.login-input { position: relative; }
.login-input > span { position: absolute; top: 50%; left: .9rem; display: grid; color: #8291aa; transform: translateY(-50%); pointer-events: none; }
.login-input .nav-icon { width: 18px; height: 18px; }
.login-input input { width: 100%; min-height: 50px; padding-left: 2.75rem; border-color: #d7e1ef; border-radius: 12px; background: #f9fbfe; }
.login-input input:focus { background: #fff; }
.login-submit { display: flex; align-items: center; justify-content: center; gap: .65rem; width: 100%; min-height: 50px; margin-top: .2rem; border-radius: 12px; box-shadow: 0 10px 24px rgba(18,53,140,.18); }
.login-submit .nav-icon { width: 18px; height: 18px; }

.login-enterprise-signup {
    display: grid;
    gap: .72rem;
    margin-top: 1rem;
}

.login-enterprise-signup__separator {
    display: flex;
    align-items: center;
    gap: .7rem;
    color: #8390a4;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.login-enterprise-signup__separator::before,
.login-enterprise-signup__separator::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #dfe7f1;
}

.login-enterprise-signup p {
    margin: 0;
    color: #52647b;
    font-size: .82rem;
    text-align: center;
}

.login-enterprise-signup__button {
    margin-top: 0;
    background: var(--anpe-navy);
    color: #fff;
    font-weight: 800;
}

.login-enterprise-signup__button:hover,
.login-enterprise-signup__button:focus-visible {
    background: #0d2c79;
    color: #fff;
}

.login-audiences { margin-top: 1.4rem; padding: .85rem 1rem; border: 1px solid #e1e9f4; border-radius: 12px; background: #f7faff; }
.login-audiences span { color: var(--anpe-navy); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.login-audiences p { margin: .25rem 0 0; color: #66738a; font-size: .76rem; line-height: 1.45; }
.login-security { display: flex; gap: .5rem; margin: .9rem 0 0; color: #7a8496; font-size: .72rem; line-height: 1.45; }
.login-security .nav-icon { flex: 0 0 15px; width: 15px; height: 15px; margin-top: .1rem; color: #0b8754; }
.login-back { margin-top: 1.25rem; color: var(--anpe-navy); font-size: .8rem; font-weight: 750; text-align: center; }

@media (max-width: 820px) {
    .login-page { place-items: start center; padding: 0; background: #fff; }
    .login-shell { min-height: 100vh; grid-template-columns: 1fr; border: 0; border-radius: 0; box-shadow: none; }
    .login-story { min-height: 0; padding: 1rem 1.2rem; }
    .login-story::after { right: -.35rem; bottom: .7rem; font-size: clamp(5.5rem, 26vw, 8rem); }
    .login-story__glow { top: -17rem; right: -15rem; }
    .login-story__content { padding: .65rem 0 .75rem; }
    .login-eyebrow,
    .login-story__content > p { display: none; }
    .login-story h1 { max-width: 14ch; margin: 0; font-size: clamp(1.75rem, 7.5vw, 2.25rem); line-height: 1.04; }
    .login-benefits { display: none; }
    .login-story__actions { display: grid; justify-content: stretch; gap: .25rem; margin-top: 0; }
    .login-offers-link,
    .login-phone { width: fit-content; min-height: 30px; font-size: .76rem; }
    .login-phone strong { padding: .12rem .42rem; }
    .login-brand { display: none; }
    .login-access { padding: 1.5rem clamp(1.1rem, 6vw, 2.5rem) 2rem; }
    .login-mobile-brand { display: inline-flex; margin-bottom: 1.25rem; }
}

@media (max-width: 420px) {
    .login-story { padding: .85rem 1rem; }
    .login-story__content { padding: .55rem 0 .65rem; }
    .login-story h1 { font-size: clamp(1.65rem, 8vw, 1.95rem); }
    .login-story__actions { align-items: flex-start; }
    .login-access__heading h2 { font-size: 1.7rem; }
    .login-label-row { align-items: flex-start; flex-direction: column; gap: .2rem; }
}

/* Gestion dynamique des accès */
.security-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.security-summary .card { display: grid; gap: .25rem; }
.security-summary strong { color: var(--anpe-navy); font-size: 1.25rem; }
.security-summary span { color: var(--anpe-muted); font-size: .82rem; }
.security-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.security-profile-card { display: flex; flex-direction: column; gap: 1rem; }
.security-profile-card__head { display: flex; justify-content: space-between; gap: 1rem; }
.security-profile-card__head h2 { margin: .55rem 0 .2rem; }
.security-profile-card__badges { display: flex; gap: .4rem; flex-wrap: wrap; }
.security-permission-count { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: #eef5ff; color: var(--anpe-navy); font-size: 1.2rem; }
.security-profile-meta { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; margin: 0; }
.security-profile-meta div { padding: .7rem; border-radius: 10px; background: #f7f9fc; }
.security-profile-meta dt { color: var(--anpe-muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.security-profile-meta dd { margin: .25rem 0 0; font-size: .82rem; font-weight: 700; }
.security-profile-form { max-width: 1120px; }
.form-grid-span-2 { grid-column: 1 / -1; }
.security-permission-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin: 2rem 0 1rem; }
.security-permission-heading h2 { margin: 0; }
.security-permission-matrix { overflow-x: auto; border: 1px solid #dfe7f1; border-radius: 14px; background: #fff; }
.security-permission-matrix:focus { outline: 3px solid rgba(18, 83, 160, .18); outline-offset: 2px; }
.security-permission-matrix table { width: 100%; min-width: 1280px; border-collapse: collapse; table-layout: fixed; }
.security-permission-matrix .security-module-col { width: 180px; }
.security-permission-matrix .security-action-col { width: 157px; }
.security-permission-matrix th,
.security-permission-matrix td { box-sizing: border-box; padding: .72rem .55rem; border-bottom: 1px solid #e8edf4; text-align: center; vertical-align: middle; overflow: hidden; white-space: normal; overflow-wrap: anywhere; }
.security-permission-matrix thead th { position: sticky; top: 0; z-index: 2; background: #f2f6fb; color: var(--anpe-navy); font-size: .72rem; font-weight: 850; line-height: 1.25; }
.security-permission-matrix tbody th { color: #25324a; font-size: .82rem; font-weight: 800; text-align: left; }
.security-permission-matrix tbody tr:last-child > * { border-bottom: 0; }
.security-permission-matrix tbody tr:hover > * { background: #f9fbfe; }
.security-permission-matrix .security-module-column { position: sticky; left: 0; z-index: 1; width: 180px; min-width: 180px; background: #fff; text-align: left; }
.security-permission-matrix thead .security-module-column { z-index: 3; background: #f2f6fb; }
.security-permission-cell { display: flex; align-items: center; justify-content: center; min-height: 24px; }
.security-permission-cell.has-multiple { display: block; min-width: 0; text-align: left; }
.security-permission-toggle { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-width: 0; margin: 0; padding: .2rem; color: #45536a; font-size: .68rem; line-height: 1.25; cursor: pointer; }
.security-permission-toggle.is-single { position: relative; }
.security-permission-label { display: block; min-width: 0; max-width: 100%; white-space: normal !important; overflow-wrap: anywhere; word-break: normal; hyphens: auto; text-align: left; line-height: 1.35; }
.security-permission-empty { color: #a8b2c1; }
.security-sensitive-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: #dc5a4f; }
.security-permission-toggle.is-single .security-sensitive-dot { position: absolute; right: -5px; top: -3px; border: 1px solid #fff; }
.security-permission-options { width: 100%; }
.security-permission-options summary { display: flex; align-items: center; justify-content: center; gap: .3rem; min-height: 30px; padding: .3rem .45rem; border: 1px solid #d7e2ef; border-radius: 8px; background: #f7faff; color: #536176; font-size: .67rem; font-weight: 800; cursor: pointer; list-style: none; }
.security-permission-options summary::-webkit-details-marker { display: none; }
.security-permission-options summary::after { color: #7f8ca0; content: "▾"; font-size: .65rem; transition: transform .15s ease; }
.security-permission-options[open] summary::after { transform: rotate(180deg); }
.security-permission-ratio { display: inline-grid; place-items: center; min-width: 28px; min-height: 20px; padding: 0 .25rem; border-radius: 999px; background: #e6f0ff; color: #075cb8; }
.security-permission-options__list { display: grid; gap: .25rem; margin-top: .4rem; padding: .45rem; border: 1px solid #dce5f0; border-radius: 8px; background: #fff; }
.security-permission-options__list .security-permission-toggle { display: grid; grid-template-columns: 20px minmax(0, 1fr) 7px; align-items: start; justify-content: stretch; width: 100%; max-width: 100%; }
.security-visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.security-permission-section { margin-top: 1.5rem; }
.security-decision-list { overflow: hidden; border: 1px solid #dfe7f1; border-radius: 14px; }
.security-decision-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(280px, auto) auto auto; align-items: center; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid #e8edf4; }
.security-decision-row:last-child { border-bottom: 0; }
.security-decision-row > div:first-child { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.security-decision-options { display: flex; gap: .75rem; }
.security-decision-options label { white-space: nowrap; font-size: .8rem; }
.security-validity { display: flex; gap: .4rem; }
.security-validity label { display: grid; gap: .15rem; color: var(--anpe-muted); font-size: .68rem; }
.security-validity input { width: 126px; padding: .35rem .45rem; font-size: .72rem; }
.legacy-security-fields { margin: 1.25rem 0; padding: 1rem; border: 1px dashed #cad5e3; border-radius: 12px; }
.legacy-security-fields summary { cursor: pointer; color: var(--anpe-muted); font-size: .8rem; font-weight: 750; }
@media (max-width: 850px) {
    .security-summary, .security-profile-grid { grid-template-columns: 1fr; }
    .security-decision-row { grid-template-columns: 1fr; }
    .security-permission-matrix table { min-width: 1240px; }
}
.button.application-primary-cta,
.application-primary-cta {
    border-color: #d79b12;
    background: linear-gradient(135deg, #f6c94c 0%, #e3a51a 100%);
    color: #352400;
    box-shadow: 0 10px 24px rgba(193, 132, 0, .28);
    font-weight: 850;
}

.public-menu .public-menu-apply {
    min-height: 42px;
    padding: .62rem 1rem;
    border: 2px solid #ffe18a;
    background: linear-gradient(135deg, #ffd968 0%, #e3a51a 100%);
    color: #302000;
    box-shadow: 0 8px 20px rgba(50, 31, 0, .3);
}

.button.application-primary-cta:hover,
.button.application-primary-cta:focus-visible,
.application-primary-cta:hover,
.application-primary-cta:focus-visible {
    border-color: #bd7f00;
    background: linear-gradient(135deg, #ffd968 0%, #d99508 100%);
    color: #241800;
    box-shadow: 0 13px 28px rgba(193, 132, 0, .38);
}

/* Placement candidates — detailed decision cards */
.placement-candidate-filters {
    grid-template-columns: minmax(280px, 1fr) minmax(130px, .25fr) auto;
    align-items: end;
}

.placement-candidate-results {
    display: grid;
    gap: 1rem;
}

.placement-candidate-results__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .15rem .1rem;
}

.placement-candidate-card {
    overflow: hidden;
    border: 1px solid #d8e2ef;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(19, 53, 108, .08);
}

.placement-candidate-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid #dfe7f2;
    background: linear-gradient(135deg, #edf5ff 0%, #f8fbff 70%);
}

.placement-candidate-identity {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .85rem;
}

.placement-candidate-avatar {
    display: grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--anpe-navy), #2078cc);
    color: #fff;
    font-size: .95rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.placement-candidate-name-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem;
}

.placement-candidate-name-line h2 {
    margin: 0;
    color: var(--anpe-navy);
    font-size: 1.05rem;
}

.placement-candidate-identity p {
    margin: .2rem 0 0;
    color: var(--anpe-muted);
    font-size: .73rem;
}

.placement-candidate-card__body {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
    padding: 1rem;
}

.placement-info-panel {
    min-width: 0;
    padding: .85rem;
    border: 1px solid #e1e8f1;
    border-radius: 12px;
    background: #fbfdff;
}

.placement-info-panel h3 {
    margin: 0 0 .7rem;
    color: var(--anpe-navy);
    font-size: .82rem;
}

.placement-info-panel__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
}

.placement-preference-panel {
    grid-column: 1 / -1;
    border-color: #b9ddca;
    background: #f2fbf6;
}

.placement-preference-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.placement-preference-item {
    display: grid;
    min-width: 0;
    gap: .35rem;
    padding: .7rem;
    border: 1px solid #d7e2ee;
    border-radius: 10px;
    background: #fff;
}

.placement-preference-item.is-managed {
    border-color: #9fd5b8;
    box-shadow: inset 3px 0 0 #23965b;
}

.placement-preference-item.is-outside {
    background: #fffaf0;
    box-shadow: inset 3px 0 0 #d99919;
}

.placement-preference-item__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .35rem;
}

.placement-preference-item > strong {
    color: var(--anpe-navy);
    font-size: .78rem;
}

.placement-preference-item > span:not(.badge) {
    color: #435169;
    font-size: .7rem;
    line-height: 1.35;
}

.placement-preference-item > small {
    color: var(--anpe-muted);
    font-size: .63rem;
}

.placement-preference-summary {
    margin: .7rem 0 0;
    color: #35516d;
    font-size: .72rem;
}

.placement-info-list {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.placement-info-list > div {
    min-width: 0;
    padding-bottom: .45rem;
    border-bottom: 1px dashed #dfe6ef;
}

.placement-info-list > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.placement-info-list dt {
    margin: 0 0 .1rem;
    color: #758094;
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.placement-info-list dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: #26344a;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.4;
}

.placement-mobility-choices {
    display: grid;
    gap: .35rem;
}

.placement-mobility-choice {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .3rem;
}

.placement-candidate-card__action {
    padding: 0 1rem 1rem;
}

.placement-form-panel {
    overflow: hidden;
    border: 1px solid #cbd9ea;
    border-radius: 12px;
    background: #f8fbff;
}

.placement-form-panel > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem .9rem;
    cursor: pointer;
    list-style: none;
}

.placement-form-panel > summary::-webkit-details-marker {
    display: none;
}

.placement-form-panel > summary > span:first-child {
    display: grid;
    gap: .12rem;
}

.placement-form-panel > summary strong {
    color: var(--anpe-navy);
    font-size: .82rem;
}

.placement-form-panel > summary small {
    color: var(--anpe-muted);
    font-size: .68rem;
}

.placement-form-panel[open] > summary {
    border-bottom: 1px solid #cbd9ea;
    background: #edf5ff;
}

.placement-create-form {
    display: grid;
    gap: .85rem;
    padding: 1rem;
}

.placement-offer-field select {
    width: 100%;
}

.placement-form-grid {
    display: grid;
    grid-template-columns: minmax(180px, .35fr) minmax(260px, 1fr);
    gap: .8rem;
}

.placement-override-box {
    display: grid;
    grid-template-columns: minmax(260px, .65fr) minmax(300px, 1fr);
    gap: .85rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid #edd39d;
    border-radius: 10px;
    background: #fffaf0;
}

.placement-override-box.is-required {
    border-color: #d99919;
    box-shadow: 0 0 0 2px rgba(217, 153, 25, .12);
}

.placement-override-box[hidden] {
    display: none;
}

.placement-override-check {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    cursor: pointer;
}

.placement-override-check input {
    width: auto;
    min-height: auto;
    margin-top: .22rem;
}

.placement-override-check span {
    display: grid;
    gap: .1rem;
}

.placement-override-check strong {
    color: #765812;
    font-size: .78rem;
}

.placement-override-check small {
    color: #7a6b49;
    font-size: .66rem;
}

.placement-create-form__actions {
    display: flex;
    justify-content: flex-end;
}

.placement-unavailable {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .75rem .85rem;
    border-radius: 10px;
    background: #fff8e8;
}

@media (max-width: 1350px) {
    .placement-candidate-card__body {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .placement-preference-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .placement-candidate-filters,
    .placement-candidate-card__body,
    .placement-preference-list,
    .placement-form-grid,
    .placement-override-box {
        grid-template-columns: 1fr;
    }

    .placement-candidate-card__header,
    .placement-candidate-results__heading,
    .placement-form-panel > summary {
        align-items: flex-start;
        flex-direction: column;
    }
}
