/* Ajustes visuales del portal: composición basada en las pantallas aprobadas de IPROTCIA. */
:root {
    --ip-blue: #054a7b;
    --ip-blue-deep: #054a7b;
    --ip-gold: #fdd038;
    --ip-line: #d9e4f4;
    --ink: #054a7b;
    --layout-max-width: 1760px;
    --layout-gutter: 31px;
    --layout-top-space: 14px;
}

/* Corrección selectiva de obra: el formulario rodea la réplica canónica sin
   alterar ninguna regla de composición, tipografía, caja o margen del libro. */
.participant-work-correction-modal {
    width: min(1340px, calc(100vw - 28px));
    max-width: none;
    height: min(900px, calc(100vh - 28px));
    max-height: none;
    padding: 0;
    overflow: hidden;
}

.registration-view-modal.participant-work-correction-modal .participant-work-correction-header {
    position: relative;
    z-index: 2;
    align-items: center;
    padding: 13px 20px 12px;
}

.participant-work-correction-header .registration-view-header-content {
    gap: 14px;
}

.participant-work-correction-header .registration-view-header-logo {
    width: 185px;
    max-height: 54px;
    padding-right: 15px;
}

.participant-work-correction-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #a97200;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.participant-work-correction-kicker i { color: #d89a00; }

.registration-view-modal.participant-work-correction-modal .participant-work-correction-header h2 {
    margin: 2px 0 0;
    font-family: inherit;
    font-size: 1.18rem;
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.25;
}

.registration-view-modal.participant-work-correction-modal .participant-work-correction-header p {
    margin-top: 2px;
    font-size: .68rem;
    line-height: 1.35;
}

.participant-work-correction-body {
    display: grid;
    grid-template-columns: minmax(350px, .92fr) minmax(540px, 1.08fr);
    gap: 14px;
    height: calc(100% - 88px);
    padding: 14px;
    overflow: hidden;
    background: #f7faff;
}

.participant-work-correction-editor,
.participant-work-correction-preview {
    min-width: 0;
    min-height: 0;
    border: 1px solid #c9daed;
    border-radius: 12px;
    background: #fff;
}

.participant-work-correction-editor {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    padding: 13px;
    overflow: hidden;
}

.participant-work-correction-message {
    display: flex;
    gap: 11px;
    margin-bottom: 10px;
    padding: 10px 11px;
    border-left: 4px solid #f2bd16;
    border-radius: 8px;
    background: #fff9e8;
    color: #16436b;
}

.participant-work-correction-message > i {
    margin-top: 3px;
    color: #c88d00;
}

.participant-work-correction-message b,
.participant-work-correction-message p {
    display: block;
    margin: 0;
}

.participant-work-correction-message p {
    margin-top: 4px;
    color: #4e6177;
    font-size: .84rem;
    line-height: 1.4;
}

.participant-work-correction-restart {
    margin: 0 0 11px;
    padding: 8px 10px;
    border: 1px solid #f1d38b;
    border-radius: 7px;
    background: #fffaf0;
    color: #7f5700;
    font-size: .83rem;
}

.participant-work-correction-form {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-height: 0;
}

.participant-work-correction-fields {
    display: grid;
    align-content: start;
    gap: 11px;
    min-height: 0;
    padding: 1px 2px 12px 0;
    overflow-y: auto;
}

.participant-work-correction-field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.participant-work-correction-field > label,
.participant-work-correction-field > legend {
    color: #0a4778;
    font-size: .82rem;
    font-weight: 800;
}

.participant-work-correction-field input,
.participant-work-correction-field select,
.participant-work-correction-field textarea {
    width: 100%;
    border: 1px solid #a9c5e4;
    border-radius: 7px;
    background: #fff;
    color: #133f68;
    font: inherit;
}

.participant-work-correction-field input,
.participant-work-correction-field select {
    min-height: 42px;
    padding: 8px 11px;
}

.participant-work-correction-field textarea {
    min-height: 94px;
    padding: 10px 11px;
    line-height: 1.5;
    resize: vertical;
}

.participant-work-correction-field input,
.participant-work-correction-field select,
.participant-work-correction-field textarea {
    font-size: 12.5px;
    line-height: 1.5;
}

.participant-work-correction-verse-editor {
    position: relative;
}

.participant-work-correction-verse-editor .participant-work-correction-content {
    position: relative;
    z-index: 1;
    display: block;
    box-sizing: border-box;
    min-height: 190px;
    height: clamp(190px, 27vh, 238px);
    max-height: none;
    padding-left: 43px;
    background: transparent;
    color: #214f7c;
    font-size: 12.5px;
    line-height: 1.5;
    resize: vertical;
}

.participant-work-correction-verse-editor:not(.has-verse-guide):not(.has-paragraph-guide) .participant-work-correction-content {
    padding-left: 12px;
}

.participant-work-correction-verse-editor:not(.has-verse-guide):not(.has-paragraph-guide) .verse-line-guide {
    display: none;
}

.participant-work-correction-writing-guidance {
    display: block;
    margin-top: 1px;
    color: #6b7e94;
    font-size: .68rem;
    line-height: 1.35;
}

.participant-work-correction-writing-guidance i {
    margin-right: 3px;
    color: #0a5a8d;
}

.participant-work-correction-field .participant-work-correction-status {
    font-size: 10px;
}

.participant-work-correction-keywords {
    padding: 0;
    border: 0;
}

.participant-work-correction-keyword-guidance {
    display: block;
    margin-top: 1px;
}

.participant-work-correction-counters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 7px;
}

.participant-work-correction-counters .counter {
    min-width: 0;
}

.participant-work-correction-book-layout-status {
    display: inline-flex;
}

.participant-work-correction-inline-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.participant-work-correction-inline-metrics span {
    padding: 5px 8px;
    border: 1px solid #a9d8bd;
    border-radius: 6px;
    background: #f0fbf5;
    color: #28714f;
    font-size: .73rem;
}

.participant-work-correction-inline-metrics.is-invalid span,
.participant-work-correction-field small.is-invalid {
    border-color: #edb9b1;
    color: #b53c2f;
}

.participant-work-correction-confirmation {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0;
    padding: 10px 11px;
    border: 1px solid #d7c17e;
    border-radius: 7px;
    background: #fff9e8;
    color: #6e5307;
    font-size: .78rem;
    line-height: 1.4;
}

.participant-work-correction-confirmation input {
    flex: 0 0 auto;
    margin-top: 2px;
}

.participant-work-correction-errors {
    padding: 10px 12px;
    border: 1px solid #e8aaa2;
    border-radius: 7px;
    background: #fff2f0;
    color: #a63529;
    font-size: .8rem;
}

.participant-work-correction-errors ul {
    margin: 0;
    padding-left: 18px;
}

.participant-work-correction-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin: 0 -13px -13px;
    padding: 12px 13px;
    border-top: 1px solid #d9e4f0;
    background: #fff;
}

.participant-work-correction-actions .is-loading {
    opacity: .65;
    pointer-events: none;
}

.participant-work-correction-draft-status {
    margin: 0 auto 0 0;
    color: #49709b;
    font-size: .76rem;
    line-height: 1.35;
}

.participant-work-correction-preview {
    display: flex;
    flex-direction: column;
    padding: 10px;
    overflow: auto;
}

.participant-work-correction-preview-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.participant-work-correction-preview-heading h3,
.participant-work-correction-preview-heading p {
    margin: 0;
}

.participant-work-correction-preview-heading h3 {
    color: #074d7e;
    font-size: 1.05rem;
}

.participant-work-correction-preview-heading p {
    margin-top: 4px;
    color: #6a7c90;
    font-size: .74rem;
}

.participant-work-correction-book {
    display: grid;
    flex: 1;
    min-height: 0;
    place-items: center;
    padding: 7px;
    border: 1px dashed #b8cce2;
    border-radius: 9px;
    background: #eef4fa;
}

.participant-work-correction-book > .book-spread-form-replica {
    width: min(88%, 900px);
    max-width: 88%;
    justify-self: center;
}

@media (max-width: 980px) {
    .participant-work-correction-modal {
        height: calc(100vh - 18px);
    }

    .participant-work-correction-body {
        grid-template-columns: 1fr;
        height: calc(100% - 100px);
        overflow-y: auto;
    }

    .participant-work-correction-editor {
        min-height: min(650px, calc(100vh - 138px));
        overflow: hidden;
    }

    .participant-work-correction-preview {
        overflow: visible;
    }

    .participant-work-correction-preview {
        min-height: 420px;
    }
}

@media (max-width: 620px) {
    .participant-work-correction-body {
        padding: 10px;
    }

    .participant-work-correction-counters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .participant-work-correction-preview-heading {
        display: grid;
    }
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #fff;
    color: var(--ip-blue);
    letter-spacing: -.015em;
}
body > main { flex: 1 0 auto; }

/* Títulos y denominaciones institucionales: azul canónico #054A7B. */
.portal-name strong,
.hero h1,
.section-title,
.content-hero h1,
.event-card h2,
.event-content h2,
.registration-card h2,
.dashboard-header h1,
.form-header h1,
.auth-card h1,
.form-card h1,
.admin-top h1,
.detail-section h2,
.table-heading { color: var(--ip-blue); }

.layout-shell {
    width: 100%;
    max-width: var(--layout-max-width);
    margin-inline: auto;
    padding-inline: var(--layout-gutter);
}

.site-header {
    display: block;
    min-height: 92px;
    padding: 0;
}

.site-header-inner {
    display: flex;
    min-height: 92px;
    align-items: center;
    gap: 18px;
    box-shadow: 0 1px 7px rgba(7, 44, 105, .035);
}

.brand { gap: 11px; }
.brand-logo {
    display: block;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}
img {
    -webkit-user-drag: none;
    user-select: none;
}
.brand-logo-header {
    width: 252px;
    height: 65px;
    object-fit: contain;
    object-position: left center;
}
.portal-name { min-width: 332px; padding-left: 29px; }
.portal-name strong { font-size: 17px; line-height: 1.15; letter-spacing: -.75px; }
.portal-name small { font-size: 12px; letter-spacing: 0; }
.main-nav { gap: 0; }
.main-nav a {
    width: 100px;
    min-width: 100px;
    padding: 11px 10px 8px;
    border-left: 1px solid #ecf1f8;
    font-size: 10.5px;
    line-height: 1.15;
}
.main-nav a:first-child { border-left: 0; }
.main-nav a i { font-size: 18px; margin-bottom: 1px; }
.header-account { min-width: 140px; }
.header-account .btn { min-height: 41px; white-space: nowrap; }

.page { max-width: var(--layout-max-width); padding: var(--layout-top-space) var(--layout-gutter) 0; }
.hero {
    min-height: 383px;
    border-radius: 13px;
    background: #e8f4fe;
    isolation: isolate;
    box-shadow: 0 9px 24px rgba(17, 64, 126, .07);
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,.99) 0%, rgba(255,255,255,.97) 27%, rgba(255,255,255,.82) 42%, rgba(255,255,255,.34) 58%, rgba(255,255,255,0) 75%);
}
.hero-photo,
.hero-photo.default-hero {
    inset: 0;
    z-index: 0;
    /* La portada del libro forma parte del arte del hero, no es un elemento superpuesto. */
    background: url('/images/juliaca-hero-integrated.png') center 54% / cover no-repeat;
}
.hero-photo.has-image { background-image: var(--hero-image); }
.event-card .event-art.default-art {
    background: url('/images/juliaca-hero-integrated.png') center 48% / cover no-repeat;
}
.hero-copy { z-index: 2; padding: 34px 0 25px 36px; max-width: 650px; }
.hero-stage { position: absolute; z-index: 2; top: 19px; right: 22px; width: 220px; min-height: 326px; padding: 15px; border: 1px solid rgba(255, 255, 255, .55); border-radius: 13px; background: rgba(5, 42, 94, .86); box-shadow: 0 12px 25px rgba(2, 27, 67, .24); backdrop-filter: blur(6px); color: #fff; }
.hero-stage-kicker { margin: 0; padding-bottom: 9px; border-bottom: 1px solid rgba(255, 255, 255, .42); color: #fff !important; font-size: 10.5px !important; font-weight: 800; letter-spacing: .08em; line-height: 1.2 !important; text-transform: uppercase; }
.hero-stage-current { display: flex; align-items: center; gap: 11px; margin-top: 16px; padding: 10px 11px; border-radius: 9px; background: rgba(255, 255, 255, .1); }
.hero-stage-current > i { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: var(--ip-gold); color: #583600; font-size: 15px; }
.hero-stage-current strong, .hero-stage-current span { display: block; }
.hero-stage-current strong { color: #fff; font-size: 15px; line-height: 1.1; }
.hero-stage-current span { margin-top: 3px; color: #fff; font-size: 10.5px; }
.hero-stage-current.stage-completed > i { background: #26b777; color: #fff; }
.hero-stage-list { display: grid; gap: 9px; margin: 16px 0 0; padding: 0; list-style: none; }
.hero-stage-list li { display: grid; grid-template-columns: 13px minmax(0, 1fr) auto; align-items: center; min-height: 22px; column-gap: 7px; color: #fff; font-size: 11.5px; line-height: 1.15; }
.hero-stage-list li > i { color: #fff; font-size: 10px; }
.hero-stage-list li small { min-width: 0; padding: 3px 5px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 5px; background: rgba(255, 255, 255, .11); color: #fff; font-size: 9.5px; line-height: 1.1; text-align: center; white-space: nowrap; }
.hero-stage-list .stage-completed { color: #b8f0d2; }
.hero-stage-list .stage-completed > i { color: #36c783; }
.hero-stage-list .stage-completed small { border-color: rgba(78, 208, 139, .27); background: rgba(39, 183, 119, .12); color: #b8f0d2; }
.hero-stage-list .stage-current { color: var(--ip-gold); font-weight: 800; }
.hero-stage-list .stage-current > i { color: var(--ip-gold); animation: stage-pulse 1.65s ease-in-out infinite; }
.hero-stage-list .stage-current small { border-color: rgba(253, 208, 56, .62); background: rgba(253, 208, 56, .16); color: var(--ip-gold); }
@keyframes stage-pulse { 50% { filter: drop-shadow(0 0 5px rgba(253, 208, 56, .95)); transform: scale(1.18); } }
.participant-stage-card { box-sizing: border-box; width: 100%; padding: 15px; border: 1px solid rgba(255, 255, 255, .55); border-radius: 11px; background: linear-gradient(145deg, #0b4f8c, #052a5e); box-shadow: 0 12px 25px rgba(2, 27, 67, .24); color: #fff; }
.participant-stage-kicker { margin: 0; padding-bottom: 9px; border-bottom: 1px solid rgba(255, 255, 255, .42); color: #fff; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.participant-stage-current { display: flex; align-items: center; gap: 10px; min-height: 54px; margin-top: 16px; padding: 10px; border-radius: 8px; background: rgba(255, 255, 255, .1); }
.participant-stage-current > i { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: var(--ip-gold); color: #684500; font-size: 14px; }
.participant-stage-current strong, .participant-stage-current span { display: block; }
.participant-stage-current strong { color: #fff; font-size: 14px; line-height: 1.1; }
.participant-stage-current span { margin-top: 3px; color: #fff; font-size: 10px; }
.participant-stage-current.stage-completed { background: rgba(38, 183, 119, .16); }
.participant-stage-current.stage-completed > i { background: #26b777; color: #fff; }
.participant-stage-list { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.participant-stage-list li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; align-items: center; min-height: 20px; column-gap: 7px; color: #fff; font-size: 11px; line-height: 1.15; }
.participant-stage-list li > i { color: #fff; font-size: 9px; }
.participant-stage-list li > span { min-width: 0; }
.participant-stage-list li small { justify-self: end; padding: 3px 5px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 5px; background: rgba(255, 255, 255, .11); color: #fff; font-size: 9px; line-height: 1.1; text-align: center; white-space: nowrap; }
.participant-stage-list .stage-completed { color: #b8f0d2; }
.participant-stage-list .stage-completed > i { color: #26b777; }
.participant-stage-list .stage-completed small { border-color: rgba(78, 208, 139, .27); background: rgba(39, 183, 119, .12); color: #b8f0d2; }
.participant-stage-list .stage-current { color: var(--ip-gold); font-weight: 800; }
.participant-stage-list .stage-current > i { color: var(--ip-gold); animation: stage-pulse 1.65s ease-in-out infinite; }
.participant-stage-list .stage-current small { border-color: rgba(253, 208, 56, .62); background: rgba(253, 208, 56, .16); color: var(--ip-gold); }
.activity-stage-extension { display: inline-flex; align-items: center; gap: 5px; margin-top: 10px; padding: 4px 7px; border: 1px solid rgba(253, 208, 56, .72); border-radius: 999px; background: rgba(253, 208, 56, .16); color: #ffe27a; font-size: 8.5px; font-weight: 900; letter-spacing: .06em; line-height: 1; text-transform: uppercase; }
.activity-stage-extension + .hero-stage-current,
.activity-stage-extension + .participant-stage-current { margin-top: 10px; }
.hero-stage-list li small,
.participant-stage-list li small { max-width: 94px; white-space: normal; }
.hero .eyebrow { font-size: 10px; padding: 3px 14px; }
.hero h1 { font-size: clamp(32px, 3.1vw, 40px); line-height: 1.18; letter-spacing: -1.85px; margin: 15px 0 11px; }
.hero p { font-size: 14px; line-height: 1.65; color: #264776; }
.organizers { margin: 22px 0 25px; gap: 27px; }
.organizer { font-size: 11.5px; line-height: 1.42; }
.organizer i { font-size: 21px; }
.hero-actions .btn { min-width: 154px; padding: 11px 18px; }
.info-grid { gap: 8px; margin-top: 9px; }
.info-grid.five-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.info-grid.four-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.info-card { --accent: #1a61bf; --soft: #f0f6ff; min-height: 143px; padding: 16px 17px; border-radius: 11px; border-top: 3px solid var(--accent); transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.info-card:nth-child(2) { --accent: #0e7490; --soft: #eefafd; }
.info-card:nth-child(3) { --accent: var(--ip-gold); --soft: #fffde1; }
.info-card:nth-child(4) { --accent: #0b8b69; --soft: #effaf6; }
.info-card:nth-child(5) { --accent: #7650b5; --soft: #f7f2ff; }
.info-card:hover { transform: translateY(-3px); border-color: var(--accent); background: var(--soft); box-shadow: 0 9px 18px rgba(7, 52, 119, .1); }
.info-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 25px; }
.info-card h3 { margin: 0; font-size: 11.5px; }
.info-card h3 i { color: var(--accent); font-size: 21px; transition: color .2s ease; }
.info-card strong { display: inline; margin-left: auto; color: #113d7b; font-size: 16px; line-height: 1.1; text-align: right; white-space: nowrap; }
.info-card:hover h3, .info-card:hover strong { color: var(--accent); }
.info-card:hover p { color: #36547f; }
.info-card p { margin: 10px 0 0; font-size: 12.25px; line-height: 1.42; }
.goal-card { padding-left: 20px; }
.goal-card strong { font-size: 21px; }
.participation-strip { display: flex; align-items: center; justify-content: space-between; gap: 26px; min-height: 68px; padding: 12px 25px; border-radius: 10px; background: #054a7b; color: #fff; }
.deadline-copy { display: flex; align-items: center; gap: 13px; }
.deadline-copy > i { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: rgba(253, 208, 56, .20); color: var(--ip-gold); font-size: 18px; }
.participation-strip h2 { margin: 0 0 3px; color: #fff; font-size: 16px; transition: color .18s ease; }
.participation-strip p { margin: 0; color: #fff; font-size: 11px; line-height: 1.4; }

.home-bottom { margin-top: 12px; grid-template-columns: minmax(0, 1fr) 282px; gap: 14px; }
.home-bottom .side-stack { align-content: start; }
.category-heading .section-title { margin: 19px 0 0; white-space: nowrap; font-size: 20px; }
.countdown { display: flex; align-items: stretch; gap: 0; color: var(--ip-blue); min-height: 43px; }
.countdown b { display: grid; min-width: 65px; padding: 0 10px; border-right: 1px solid #d8e3f0; text-align: center; font-size: 8px; line-height: 1.05; }
.countdown b span { font-size: 20px; line-height: 1.08; }
.participation-deadline .countdown { color: #fff; }
.participation-deadline .countdown b { border-right-color: rgba(225, 238, 255, .28); }
.participation-deadline .countdown b span { color: #fff; transition: color .18s ease; }
.participation-deadline.is-finished .countdown b span { color: #fff; }
.participation-deadline:hover h2 { color: var(--ip-gold); }
.participation-deadline:hover .countdown b span { color: var(--ip-gold); }
.deadline-registration { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 150px; min-height: 40px; padding: 9px 15px; border: 1px solid rgba(255, 255, 255, .86); border-radius: 7px; color: #fff; font-size: 12px; font-weight: 800; white-space: nowrap; transition: background-color .18s ease, border-color .18s ease, color .18s ease; }
.deadline-registration:hover, .deadline-registration:focus-visible { background: var(--ip-gold); border-color: var(--ip-gold); color: var(--ip-blue); }
.category-list { margin-top: 17px; }
.category-card { --accent: var(--ip-gold); --soft: #fffde1; min-height: 103px; padding: 13px; border-radius: 10px; transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.category-card:nth-child(2) { --accent: #1a62bb; --soft: #eff5ff; }
.category-card:nth-child(3) { --accent: #0b8c68; --soft: #eefaf5; }
.category-card:nth-child(4) { --accent: #704eb3; --soft: #f6f1ff; }
.category-card:hover { transform: translateY(-3px); border-color: var(--accent); background: var(--soft); box-shadow: 0 8px 18px rgba(7, 52, 119, .09); }
.category-card:hover .category-icon { background: var(--accent); color: #fff; transform: scale(1.04); }
.category-card:hover h3 { color: var(--accent); }
.category-card:hover p { color: #36547f; }
.category-icon { min-width: 51px; height: 51px; transition: transform .2s ease, background-color .2s ease, color .2s ease; }
.category-card h3 { font-size: 14px; }
.category-card p { font-size: 11.25px; }
.category-rule { margin: 9px 2px 0; color: #164787; font-size: 10.75px; }
.category-rule i { margin-right: 7px; font-size: 14px; }
.accepted-themes { margin-top: 25px; }
.accepted-themes .section-title { margin-bottom: 12px; }
.accepted-themes-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.accepted-theme-card { --theme-accent: #1766cf; --theme-soft: #eef5ff; display: flex; align-items: center; gap: 10px; min-height: 65px; padding: 11px 13px; border: 1px solid #bcd6f4; border-radius: 10px; background: linear-gradient(135deg, var(--theme-soft), #fff 72%); color: #124477; box-shadow: 0 4px 12px rgba(5, 74, 123, .045); transition: transform .18s ease, box-shadow .18s ease; }
.accepted-theme-card:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(5, 74, 123, .11); }
.accepted-theme-card i { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--theme-accent); color: #fff; font-size: 13px; }
.accepted-theme-card b { font-size: 11.5px; line-height: 1.32; }
.accepted-theme-card:nth-child(2) { --theme-accent: #0c8b87; --theme-soft: #edfafa; }
.accepted-theme-card:nth-child(3) { --theme-accent: #d39a00; --theme-soft: #fff8df; }
.accepted-theme-card:nth-child(4) { --theme-accent: #7856c6; --theme-soft: #f5f0ff; }
.accepted-theme-card:nth-child(5) { --theme-accent: #15835d; --theme-soft: #effbf5; }
.accepted-theme-card:nth-child(6) { --theme-accent: #bf5b31; --theme-soft: #fff3ec; }
.accepted-theme-card:nth-child(7) { --theme-accent: #b23c68; --theme-soft: #fff0f5; }
.accepted-theme-card:nth-child(8) { --theme-accent: #2868a5; --theme-soft: #eef6ff; }
.poetry-category-list { display: block; }
.poetry-showcase { display: grid; grid-template-columns: minmax(235px, 1.18fr) repeat(3, minmax(0, 1fr)); gap: 9px; column-gap: 24px; }
.poetry-showcase-intro { --poetry-accent: var(--ip-gold); --poetry-soft: #fff8df; position: relative; display: flex; align-items: center; gap: 14px; min-height: 118px; padding: 17px 18px; border: 1px solid #d6e2ef; border-radius: 10px; background: #fff; transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.poetry-showcase-intro::after { content: "\f061"; position: absolute; z-index: 2; top: calc(50% - 12px); right: -32px; display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #fff; color: var(--ip-gold); font-family: "Font Awesome 6 Free"; font-size: 12px; font-weight: 900; }
.poetry-showcase-intro .category-icon { flex: 0 0 51px; background: var(--poetry-soft); color: var(--ip-gold); }
.poetry-showcase-intro h3 { margin: 0 0 6px; color: #054a7b; font-size: 15.5px; line-height: 1.25; }
.poetry-showcase-intro p { margin: 0; color: #315989; font-size: 12px; line-height: 1.48; }
.poetry-mode-list { display: contents; }
.poetry-mode { --poetry-accent: #1a62bb; --poetry-soft: #eff5ff; display: flex; align-items: center; gap: 10px; min-height: 118px; padding: 17px 15px; border: 1px solid #d6e2ef; border-radius: 10px; background: #fff; transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.poetry-mode:nth-child(2) { --poetry-accent: #07816e; --poetry-soft: #eefaf5; }
.poetry-mode:nth-child(3) { --poetry-accent: #7654b8; --poetry-soft: #f6f1ff; }
.poetry-mode > i { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: var(--poetry-soft); color: var(--poetry-accent); font-size: 15px; transition: background-color .18s ease, color .18s ease; }
.poetry-mode b { display: block; margin: 2px 0 5px; color: #054a7b; font-size: 13px; line-height: 1.28; }
.poetry-mode span { color: #49698f; font-size: 11.5px; line-height: 1.45; }
.poetry-showcase-intro:hover, .poetry-mode:hover { background: var(--poetry-soft); box-shadow: 0 7px 16px rgba(5, 74, 123, .08); transform: translateY(-2px); }
.poetry-showcase-intro:hover .category-icon { background: var(--poetry-accent); color: var(--ip-blue); }
.poetry-mode:hover > i { background: var(--poetry-accent); color: #fff; }
.side-card { padding: 12px; }
.side-card h3 { font-size: 12px; color: var(--ip-blue); }
.faq-item { padding: 6px 0; }
.faq-item summary { font-size: 10.75px; color: #17447f; }
.convocation-goals { overflow: hidden; }
.convocation-goals h3 { margin-bottom: 11px; }
.convocation-goals h3 > i { color: var(--ip-gold); margin-right: 5px; }
.goal-progress-list { display: grid; gap: 9px; }
.goal-progress-item { --goal-color: #1766cf; position: relative; padding: 9px 10px 8px 13px; border: 1px solid #e1eaf4; border-left: 4px solid var(--goal-color); border-radius: 0 8px 8px 0; background: #fff; box-shadow: 0 3px 8px rgba(5, 74, 123, .055); transition: transform .18s ease, box-shadow .18s ease, border-left-width .18s ease; }
.goal-progress-item:nth-child(2) { --goal-color: #09896f; }
.goal-progress-item:nth-child(3) { --goal-color: #7954c2; }
.goal-progress-heading { display: grid; grid-template-columns: 23px minmax(0, 1fr) auto; align-items: center; gap: 6px; color: var(--ip-blue); }
.goal-progress-heading > i { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid var(--goal-color); border-radius: 5px; background: #fff; color: var(--goal-color); font-size: 10px; transition: transform .18s ease, background-color .18s ease, color .18s ease; }
.goal-progress-heading b { font-size: 10px; line-height: 1.25; }
.goal-progress-heading strong { color: var(--goal-color); font-size: 15px; line-height: 1; }
.goal-progress-heading strong small { color: #637d9e; font-size: 9px; font-weight: 700; }
.goal-progress-track { height: 5px; margin: 8px 0 4px; overflow: hidden; border-radius: 2px; background: repeating-linear-gradient(90deg, #e7edf5 0 10px, transparent 10px 13px); }
.goal-progress-track span { display: block; height: 100%; min-width: 3px; border-radius: 2px; background: var(--goal-color); transition: width .25s ease; }
.goal-progress-item > small { color: #50709a; font-size: 9px; }
@media (hover: hover) {
    .goal-progress-item:hover { transform: translateX(3px); border-left-width: 7px; box-shadow: 0 8px 17px rgba(5, 74, 123, .14); }
    .goal-progress-item:hover .goal-progress-track span { filter: brightness(1.12); }
}
@media (prefers-reduced-motion: reduce) {
    .goal-progress-item, .goal-progress-heading > i, .goal-progress-track span { transition: none; }
}
.event-requirements { margin: 0 0 20px; padding: 0; list-style: none; }
.event-requirements li { position: relative; padding: 6px 0 6px 19px; color: #1d4a82; font-size: 13px; line-height: 1.4; }
.event-requirements li::before { content: "\f00c"; position: absolute; left: 1px; color: #16965b; font-family: "Font Awesome 6 Free"; font-weight: 900; }
.additional-events { margin-top: 27px; padding-top: 23px; border-top: 1px solid #e1eaf6; }
.additional-events .section-title { margin-bottom: 0; }

.site-footer { margin-top: 9px; background: #054a7b; }
.footer-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
}
.brand-logo-footer {
    width: 235px;
    height: 56px;
    max-height: 56px;
    object-fit: contain;
    object-position: left center;
}
.footer-brand .socials {
    margin-top: 0;
}
.footer-grid { max-width: var(--layout-max-width); padding: 19px var(--layout-gutter); gap: 38px; }
.footer-grid p { font-size: 9.5px; }
.footer-bottom { display: block; padding: 0; }
.footer-bottom-inner { display: flex; justify-content: space-between; gap: 24px; padding-block: 10px; }

/* Formulario de participación */
.form-page { max-width: var(--layout-max-width); padding: var(--layout-top-space) var(--layout-gutter) 10px; grid-template-columns: minmax(0, 1fr) 355px; gap: 17px; }
.form-header { padding: 0 11px; }
.form-header h1 { font-size: 29px; line-height: 1.2; letter-spacing: -1.1px; }
.steps { max-width: 790px; margin-top: 12px; }
.form-main { padding: 17px; border-radius: 11px; }
.form-section + .form-section { margin-top: 15px; padding-top: 14px; }
.form-section h2 { margin-bottom: 12px; }
.document-flow-intro {
    margin: 0 0 14px;
    color: #496789;
    font-size: 12px;
    line-height: 1.45;
}
.field input, .field select, .field textarea { border-color: #afc2df; }
.field textarea { min-height: 86px; }
.work-grid { grid-template-columns: 190px 1fr; gap: 13px; }
.verse-editor { position: relative; }
.verse-editor #work-content { position: relative; z-index: 1; display: block; box-sizing: border-box; width: 100%; padding-left: 43px; background: transparent; line-height: 1.5; }
.verse-editor:not(.has-verse-guide):not(.has-paragraph-guide) #work-content { padding-left: 12px; }
.verse-editor:not(.has-verse-guide):not(.has-paragraph-guide) .verse-line-guide { display: none; }
.verse-line-guide {
    position: absolute;
    z-index: 0;
    inset: 1px;
    overflow: hidden;
    padding: var(--verse-guide-padding-top, 10px) var(--verse-guide-padding-right, 10px) var(--verse-guide-padding-bottom, 10px) var(--verse-guide-padding-left, 10px);
    border-radius: 5px;
    pointer-events: none;
}
.verse-line-guide-content { will-change: transform; }
.verse-line-guide-row {
    display: grid;
    grid-template-columns: var(--verse-guide-number-width, 28px) minmax(0, 1fr);
    column-gap: var(--verse-guide-column-gap, 5px);
    min-height: var(--verse-guide-line-height, 1.5em);
    color: #7c91ae;
    font-family: var(--verse-guide-font-family, inherit);
    font-size: var(--verse-guide-font-size, 12.5px);
    font-weight: var(--verse-guide-font-weight, 400);
    line-height: var(--verse-guide-line-height, 1.5);
    letter-spacing: var(--verse-guide-letter-spacing, normal);
    word-spacing: var(--verse-guide-word-spacing, normal);
}
.verse-line-number { padding-right: var(--verse-guide-number-padding, 5px); border-right: 1px solid #d8e3ef; text-align: right; font-variant-numeric: tabular-nums; }
.verse-editor.has-paragraph-guide .verse-line-number { color: #0b5f93; font-weight: 700; }
.verse-line-copy { visibility: hidden; min-width: 0; white-space: pre-wrap; overflow-wrap: break-word; }
.verse-limit-status { display: block; margin: 6px 0 -2px; color: #ad342e; font-size: 10px; line-height: 1.35; }
.verse-limit-status i { margin-right: 4px; }
.stanza-recommendation { color: #8a6209; }
.stanza-recommendation[hidden] { display: none; }
.stanza-recommendation i { color: var(--ip-gold); margin-right: 3px; }
.traditional-stanza-help { display: block; margin: 8px 0 2px; padding: 8px 10px; border: 1px solid #c9dff5; border-left: 4px solid var(--ip-blue); border-radius: 6px; background: #f5faff; color: #315f94; font-size: 10.5px; line-height: 1.45; }
.traditional-stanza-help[hidden] { display: none; }
.traditional-stanza-help i { margin-right: 4px; color: var(--ip-blue); }
.upload { min-height: 91px; }
.upload i { font-size: 22px; }
.counters { gap: 9px; }
.counter { min-height: 51px; padding: 7px 9px; }
.counter i { font-size: 15px; }
.packages { gap: 10px; }
.package { min-height: 81px; padding: 11px; }
.payment-info { padding: 0 0 4px; border: 0; border-radius: 0; background: transparent; }
.payment-info > b { display: flex; align-items: center; gap: 6px; padding: 0 0 8px; border-bottom: 2px solid var(--ip-gold); color: var(--ip-blue); font-size: 11px; }
.payment-info > b i { color: var(--ip-blue); }
.payment-info-intro { margin: 9px 0 11px; color: #49698f; line-height: 1.5; }
.payment-recipient { display: grid; grid-template-columns: max-content 1fr; gap: 4px 9px; margin: 0; padding: 0 0 10px; border-bottom: 1px solid #d5e1ef; }
.payment-recipient > div { display: contents; }
.payment-recipient dt { font-weight: 800; color: var(--ip-blue); }
.payment-recipient dd { margin: 0; color: #274e82; font-weight: 700; }
.payment-transfer-list { margin-top: 4px; }
.payment-transfer-row { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; padding: 8px 7px 8px 10px; border-bottom: 1px solid #d7e5f3; border-left: 3px solid transparent; color: #34598a; transition: background-color .18s ease, border-left-color .18s ease, color .18s ease; }
.payment-transfer-row > b { color: var(--ip-blue); }
.payment-transfer-row span { overflow-wrap: anywhere; }
.payment-transfer-row.is-selected { background: var(--ip-blue); border-left-color: var(--ip-gold); color: var(--ip-white); }
.payment-transfer-row.is-selected > b { color: var(--ip-white); }
.payment-transfer-row.is-selected strong { color: var(--ip-gold); }
.payment-transfer-row.is-selected .payment-separator { color: rgba(255, 255, 255, .62); }
.payment-separator { color: #91a8c7; padding: 0 2px; }
.payment-info-note { margin: 10px 0 0; padding-top: 8px; border-top: 1px solid #d5e1ef; color: #49698f; line-height: 1.5; }
.payment-info-note i { color: #15965b; margin-right: 3px; }
.preview-book { padding: 13px; border-radius: 11px; }
.preview-book h3 { color: var(--ip-blue); }
.page-preview { min-height: 340px; padding: 29px 29px; }
.page-preview h2 { font-size: 25px; }
.side-summary { margin-top: 10px; padding: 12px; }

/* Panel del participante */
.dashboard { max-width: var(--layout-max-width); padding: var(--layout-top-space) var(--layout-gutter) 0; }
.dashboard-header h1 { font-size: 35px; line-height: 1.25; letter-spacing: -1.6px; }
.dashboard-header p { font-size: 14px; }
.dashboard-layout { grid-template-columns: minmax(0, 1fr) 350px; gap: 23px; }
.stat-grid { gap: 14px; margin-bottom: 16px; }
.stat { min-height: 103px; padding: 15px 13px; }
.stat-icon { width: 60px; height: 60px; }
.stat b { font-size: 10px; }
.stat strong { font-size: 28px; }
.registration-card { min-height: 286px; grid-template-columns: 175px minmax(0, 1fr) 146px; padding: 18px 19px 13px; gap: 16px; }
.registration-card .mini-book { width: 123px; height: 181px; }
.registration-card h2 { font-size: 20px; }
.registration-card .organizers { margin: 12px 0; }
.timeline { margin: 24px 0 12px; }
.registration-actions { grid-column: 1 / -1; margin: -4px 0 0 23px; grid-template-columns: 202px repeat(2, 1fr); }
.registration-actions .btn { padding: 9px 12px; }
.dashboard-side { gap: 12px; }
.dashboard-side .side-card { border-radius: 11px; padding: 15px; }
.table-card { margin-top: 17px; }
.table-heading { font-size: 16px; }

/* Panel administrativo */
.admin-page { max-width: var(--layout-max-width); padding: var(--layout-top-space) var(--layout-gutter) 0; }
.admin-top { min-height: 90px; padding: 18px 20px; }
.admin-top h1 { font-size: 31px; letter-spacing: -1.4px; }
.admin-top select { width: 46%; min-height: 35px; font-size: 12px; }
.admin-stats { gap: 10px; margin: 14px 0 16px; }
.admin-stats .stat { min-height: 109px; padding: 15px 12px; }
.admin-stats .stat-icon { width: 48px; height: 48px; }
.admin-stats .stat strong { font-size: 28px; }
.admin-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.admin-actions .btn { min-height: 35px; padding: 8px; }
.admin-grid { grid-template-columns: 1.58fr 1.12fr 1fr; gap: 13px; }
.chart-card, .admin-side-card { padding: 14px 16px; }
.chart-card h2, .admin-side-card h2 { font-size: 14px; }
.fake-chart { height: 164px; }
.donut { width: 130px; height: 130px; min-width: 130px; }
.donut::after { inset: 31px; }
.metric-value { font-size: 24px; }
.admin-wide { min-height: 238px; }

/* Escala de lectura consistente en los contenidos públicos, formularios y paneles internos. */
body { font-size: 15px; }
.portal-name small { font-size: 12.5px; }
.account-menu summary { font-size: 12px; }
.account-menu .tiny { font-size: 9px; }
.btn-small { font-size: 12.5px; }
.status-chip { font-size: 10.75px; }

.participation-strip p { font-size: 12px; }
.countdown b { font-size: 10px; }
.faq-item p { font-size: 12px; line-height: 1.5; }
.side-card h3 { font-size: 13px; }
.event-requirements li { font-size: 13.5px; }
.footer-grid p { font-size: 11px; line-height: 1.55; }
.footer-grid a { font-size: 12px; }
.footer-grid h3 {
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.01em;
    transition: color .18s ease;
}
.footer-grid h3::after { content: ""; display: block; width: 28px; height: 2px; margin-top: 5px; background: var(--ip-gold); border-radius: 99px; }
.footer-grid p, .footer-grid a, .footer-bottom { color: #fff; }
.footer-grid section:hover h3 { color: var(--ip-gold); }
.footer-grid > section a:not(.footer-link):not(.social-icon) { transition: color .18s ease; }
.footer-grid > section a:not(.footer-link):not(.social-icon):hover, .footer-grid > section a:not(.footer-link):not(.social-icon):focus-visible { color: var(--ip-gold); }
.footer-bottom { font-size: 10.5px; }
.footer-address { display: flex; align-items: flex-start; gap: 6px; }
.footer-grid p > i { display: inline-block; width: 16px; color: var(--ip-gold); font-size: 13px; text-align: center; transition: transform .18s ease; }
.footer-address > i { margin-top: 3px; color: var(--ip-gold); font-size: 14px; }
.footer-address a { color: #fff; font-size: inherit; font-weight: 400; line-height: inherit; }
.footer-contact { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: center; column-gap: 8px; }
.footer-contact > i { width: auto !important; }
.footer-contact a { color: #fff; font-size: inherit; font-weight: 400; }
.footer-contact-numbers { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.footer-contact:hover > i, .footer-address:hover > i { transform: translateY(-1px) scale(1.08); }
.footer-contact:not(.footer-contact-phone):hover a, .footer-address:hover a { color: var(--ip-gold); }
.footer-contact-phone a:hover, .footer-contact-phone a:focus-visible { color: var(--ip-gold); }
.footer-link { border-color: rgba(255, 255, 255, .85); color: #fff; }
.footer-link:hover, .footer-link:focus-visible { background: var(--ip-gold); border-color: var(--ip-gold); color: var(--ip-blue); }
.socials { gap: 8px; margin-top: 10px; font-size: 15px; }
.footer-grid .social-icon { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(255, 255, 255, .78); border-radius: 50%; background: transparent; color: var(--ip-gold); font-size: 16px; text-decoration: none; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.footer-grid .social-icon:hover, .footer-grid .social-icon:focus-visible { background: var(--ip-gold); border-color: var(--ip-gold); color: var(--ip-blue); transform: translateY(-2px); outline: 2px solid rgba(255, 255, 255, .78); outline-offset: 2px; }
.footer-policies { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px 0; }
.footer-policies > * { color: #fff; font-size: 10.5px; line-height: 1.35; padding: 0 9px; border-left: 1px solid rgba(255, 255, 255, .48); }
.footer-policies > *:first-child { border-left: 0; }
.footer-policies a:hover, .footer-policies a:focus-visible { color: var(--ip-gold); text-decoration: underline; text-underline-offset: 3px; }

/* Registro y cuenta de participante */
.form-header p { font-size: 13px; }
.step { font-size: 11px; }
.field label { font-size: 11.25px; }
.field input, .field select, .field textarea { font-size: 12.5px; }
.upload small { font-size: 10.5px; }
.field-label { color: #21467f; font-size: 11.25px; font-weight: 800; }
.upload-trigger { position: relative; width: 100%; font: inherit; color: inherit; cursor: pointer; transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease; }
.upload-input { display: block !important; position: absolute; inset: 0; z-index: 2; width: 100% !important; height: 100% !important; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.upload-trigger:hover, .upload-trigger:focus-within, .upload-trigger.is-dragging { border-color: var(--ip-blue); background: #f2f8ff; transform: translateY(-1px); outline: 0; }
.upload-trigger.has-file { border-color: #15965b; background: #f0fbf5; color: #15794a; }
.upload-file-name { min-height: 16px; color: #52719a; font-size: 10.5px; line-height: 1.35; overflow-wrap: anywhere; }
.receipt-upload-field { align-content: start; }
.receipt-upload-field .upload { min-height: 132px; }
.photo-upload-specs { display: block; margin-top: 7px; color: #315f94; font-size: 10.5px; line-height: 1.45; }
.upload-file-name.is-error { color: #c23f2f; font-weight: 700; }
.preview-photo.has-upload { background-size: cover; background-position: center; }
.form-step { display: none; }
.form-step.is-active { display: block; animation: wizard-enter .2s ease-out; }
.steps .step { transition: color .18s ease; }
.steps .step.is-complete { color: var(--ip-blue); font-weight: 800; }
.steps .step.is-complete b { background: var(--ip-blue); border-color: var(--ip-blue); color: #fff; }
.wizard-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #dce6f4; }
.wizard-actions .btn { min-width: 175px; }
.wizard-actions-first { justify-content: flex-end; }
.preview-review p, .confirmation-review p { margin: 0; color: #52719a; font-size: 12px; }
.preview-review-grid, .confirmation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.preview-review-grid > div, .confirmation-grid > div { border: 1px solid #d7e3f3; border-radius: 8px; padding: 11px 13px; background: #f9fbff; }
.preview-review-grid span, .confirmation-grid span { display: block; margin-bottom: 3px; color: #59749c; font-size: 10.5px; }
.preview-review-grid b, .confirmation-grid b { color: var(--ip-blue); font-size: 12px; overflow-wrap: anywhere; }
.confirmation-summary-header { display: block; margin: -1px -1px 18px; padding: 13px 16px; color: #fff; background: var(--ip-blue); border-left: 4px solid var(--ip-blue); border-radius: 7px; }
.confirmation-eyebrow { display: block; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .1px; text-transform: uppercase; }
.confirmation-eyebrow i { margin-right: 5px; color: var(--ip-gold); }
.confirmation-summary-header b { display: block; margin: 4px 0 2px; color: #fff; font-size: 16px; letter-spacing: .15px; overflow-wrap: anywhere; }
.confirmation-summary-header small { display: block; max-width: 650px; color: #dceaf6; font-size: 10px; }
.confirmation-summary-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.confirmation-summary-block { padding: 14px; border: 1px solid #d7e3f3; border-radius: 8px; background: #fff; transition: border-color .18s ease; }
.confirmation-summary-block h3 { display: flex; align-items: center; gap: 7px; margin: 0; padding-bottom: 9px; color: var(--ip-blue); font-size: 13px; }
.confirmation-summary-block h3 i { color: var(--ip-blue); font-size: 12px; transition: color .18s ease; }
.confirmation-summary-block:focus-within { border-color: var(--ip-blue); }
.confirmation-summary-sections .confirmation-summary-block:focus-within h3 i { color: var(--ip-gold); }
.confirmation-detail-list { display: grid; gap: 0; margin-top: 12px; border-top: 1px solid #dce7f3; }
.confirmation-detail-list > div { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); align-items: baseline; gap: 12px; min-width: 0; padding: 9px 8px; border-bottom: 1px solid #dce7f3; color: #6680a3; font-size: 10.5px; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }
.confirmation-detail-list > div > span { margin: 0; color: inherit; font-size: inherit; }
.confirmation-detail-list > div > b { color: #054a7b; font-size: 11.5px; line-height: 1.42; overflow-wrap: anywhere; }
.confirmation-detail-list > div > span i { display: inline-block; width: 13px; margin-right: 3px; color: var(--ip-blue); font-size: 10px; text-align: center; }
.confirmation-detail-list .confirmation-grid-wide { grid-column: auto; }
.confirmation-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.confirmation-metrics span { display: flex; align-items: baseline; gap: 5px; min-width: 0; padding: 7px 8px; color: #58759c; border-left: 2px solid #d7e3f3; font-size: 10.5px; transition: border-color .18s ease, background-color .18s ease, transform .18s ease; }
.confirmation-metrics i { color: var(--ip-blue); }
.confirmation-metrics b { margin-left: auto; color: var(--ip-blue); font-size: 11px; white-space: nowrap; }
.confirmation-status-list { display: grid; gap: 0; margin-top: 12px; border-top: 1px solid #dce7f3; }
.confirmation-status-list > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 9px; border-bottom: 1px solid #e0eaf5; color: #58759c; font-size: 11px; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }
.confirmation-status-list > div[hidden] { display: none !important; }
.confirmation-status-list > div:last-child { border-bottom: 0; }
.confirmation-status-list span { min-width: 0; overflow-wrap: anywhere; }
.confirmation-status-list span i { margin-right: 5px; color: var(--ip-blue); }
.confirmation-status-list b, .confirmation-payment-status b { flex: 0 0 auto; font-size: 10.5px; }
.confirmation-status-list b.is-complete, .confirmation-payment-status b.is-complete { color: #137d4b; }
.confirmation-status-list b.is-pending, .confirmation-payment-status b.is-pending { color: #9b6b00; }
.confirmation-status-list > .confirmation-signed-documents { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; justify-content: initial; gap: 10px; padding: 10px 0; border-bottom: 0; }
.confirmation-signed-documents > div { min-width: 0; }
.confirmation-signed-documents > div > span { display: block; line-height: 1.38; }
.confirmation-signed-documents > div > b { display: block; margin-top: 4px; font-size: 10.5px; }
.confirmation-payment-status { display: flex; align-items: center; gap: 10px; margin-top: 0; padding: 8px 9px; color: #58759c; border-bottom: 1px solid #e0eaf5; font-size: 11px; transition: background-color .18s ease, border-color .18s ease, transform .18s ease; }
.confirmation-payment-status i { color: var(--ip-blue); }
.confirmation-payment-status b { margin-left: auto; }
.confirmation-final-note { display: flex; align-items: flex-start; gap: 7px; margin-top: 16px !important; padding: 10px 11px; color: #315f94 !important; border-top: 1px solid #dce7f3; font-size: 11px !important; }
.confirmation-final-note i { margin-top: 1px; color: var(--ip-gold); }
@media (hover: hover) {
    .confirmation-summary-block:hover { border-color: var(--ip-blue); }
    .confirmation-summary-sections .confirmation-summary-block:hover h3 i { color: var(--ip-gold); }
    .confirmation-detail-list > div:hover { border-radius: 5px; background: #f2f8ff; transform: translateX(2px); }
    .confirmation-detail-list > div:hover > span { color: var(--ip-blue); }
    .confirmation-metrics span:hover { border-color: var(--ip-blue); background: #f1f7fe; transform: translateX(2px); }
    .confirmation-status-list > div:hover, .confirmation-payment-status:hover { border-radius: 5px; background: #f2f8ff; transform: translateX(2px); }
}
@media (max-width: 700px) {
    .confirmation-summary-sections { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .confirmation-grid, .confirmation-metrics { grid-template-columns: 1fr; }
    .confirmation-detail-list > div { grid-template-columns: 1fr; gap: 3px; }
    .confirmation-status-list > .confirmation-signed-documents { grid-template-columns: 1fr; }
}
.book-stage { display: grid; place-items: center; min-height: 500px; margin-top: 18px; padding: 28px; border-radius: 12px; background: linear-gradient(135deg, #edf5ff, #f9fbff); overflow: hidden; }
.book-stage-page { position: relative; width: min(100%, 580px); min-height: 410px; padding: 48px 52px 38px; color: #4d3727; background: linear-gradient(105deg, #f7e5c0, #fff8e8 12%, #fff5dd); border: 1px solid #d8bd88; border-radius: 4px 13px 13px 4px; box-shadow: inset 10px 0 18px rgba(109, 73, 29, .13), 15px 16px 20px rgba(41, 65, 105, .2); }
.book-stage-page::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 21px; border-right: 1px solid rgba(142, 100, 46, .35); background: linear-gradient(90deg, rgba(122, 85, 39, .24), transparent); }
.book-stage-page .genre, .book-stage-page h3, .book-stage-page .author, .book-stage-page .preview-content, .book-stage-page .bio-preview { position: relative; z-index: 1; }
.book-stage-page .genre { font: italic 15px 'Playfair Display', Georgia, serif; }
.book-stage-page h3 { margin: 7px 0 5px; font: 700 34px/1.08 'Playfair Display', Georgia, serif; }
.book-stage-page .author { font: italic 13px 'Playfair Display', Georgia, serif; }
.book-stage-page .preview-photo { float: right; width: 95px; height: 118px; margin: 22px 0 10px 20px; border: 2px solid #b99b6e; border-radius: 3px; background: linear-gradient(135deg, #573f39, #e0b896); background-size: cover; background-position: center; }
.book-stage-page .preview-content { padding-top: 32px; font: 13px/1.75 Georgia, serif; white-space: pre-line; }
.book-stage-page .bio-preview { clear: both; margin-top: 23px; padding: 12px; border: 1px solid #bca37e; border-radius: 4px; font: 11px/1.55 Georgia, serif; }
@keyframes wizard-enter { from { opacity: .4; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.counter { font-size: 11px; }
.counter b { font-size: 12px; }
.check-list { font-size: 11.25px; }
.package h3 { font-size: 12px; }
.package p, .payment-info { font-size: 11.25px; }
.side-summary, .summary-grid { font-size: 11.25px; }
.auth-card > p { font-size: 13px; }
.auth-footer { font-size: 12px; }

.dashboard-header p { font-size: 15px; }
.stat b { font-size: 11.5px; }
.stat small { font-size: 11px; }
.timeline-step { font-size: 11px; }
.dashboard-side .side-card p[style],
.registration-card p[style],
.registration-detail p[style] { font-size: 12px !important; }
.reservation-mini small { font-size: 11px; }
.data-table th { font-size: 11px; }
.data-table td { font-size: 12px; }

/* Gestión administrativa */
.admin-top p { font-size: 14px; }
.admin-top select, .admin-actions .btn { font-size: 12px; }
.chart-card small, .admin-side-card small { font-size: 11px; }
.legend, .admin-side-card .alert-row, .task { font-size: 11px; }
.filterbar input, .filterbar select, .inline-form select, .inline-form textarea { font-size: 12px; }
.simple-list { font-size: 13px; }
.simple-list li { font-size: 13px; }
.detail-section .summary-grid { font-size: 12px; }
.form-main .eyebrow[style] { font-size: 9.5px !important; }
.auth-card label[style] { font-size: 12px !important; }
.dashboard p[style], .dashboard a[style*="font-size"] { font-size: 12px !important; }
.admin-page [style*="font-size:11px"],
.admin-page [style*="font-size:12px"] { font-size: 12px !important; }

/* Convocatorias: capa operativa complementaria al sitio institucional. */
.visitor-header {
    padding-bottom: 0;
}
.visitor-header .site-header-inner {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    grid-template-areas: "brand portal nav account";
    column-gap: 18px;
}
.visitor-header .site-header-inner .brand { grid-area: brand; }
.visitor-header .site-header-inner .portal-name { grid-area: portal; justify-self: start; }
.visitor-header .site-header-inner .header-account { grid-area: account; justify-self: end; }
.visitor-header .site-header-inner .public-nav {
    grid-area: nav;
    width: auto;
    margin: 0;
    align-self: stretch;
    justify-content: flex-end;
    border-top: 0;
}
.main-nav .public-nav-link {
    min-width: 100px;
    padding: 11px 10px 8px;
    font-size: 10.5px;
    letter-spacing: 0;
    flex-direction: column;
    gap: 0;
}
.main-nav .public-nav-link i { margin: 0 0 1px; font-size: 18px; }
.main-nav .public-nav-link span { font-size: inherit; }
/* Las páginas públicas de convocatoria comparten el mismo ancho exterior
   que el inicio, los paneles y el pie institucional. */
.convocation-page,
.convocation-detail-page { max-width: var(--layout-max-width); }
.activity-breadcrumb {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    color: #64809e;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.3;
}
.activity-breadcrumb a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; color: var(--ip-blue); }
.activity-breadcrumb > i { flex: 0 0 auto; color: #9bb0c5; font-size: 8px; }
.activity-breadcrumb span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.convocation-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    min-height: 118px;
    padding: 19px 29px;
    background: linear-gradient(115deg, #f8fbff 0%, #eef6ff 100%);
}
.convocation-intro h1 { margin: 7px 0 4px; color: var(--ip-blue); font-size: 28px; line-height: 1.2; }
.convocation-intro p { margin: 0; max-width: 700px; color: #496a9a; font-size: 13px; }
.convocation-intro-summary {
    display: grid;
    grid-template-columns: 37px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-width: 185px;
    padding: 11px 13px;
    border: 1px solid rgba(5, 74, 123, .18);
    border-radius: 10px;
    background: #fff;
    color: var(--ip-blue);
}
.convocation-intro-summary > i {
    display: grid;
    width: 37px;
    height: 37px;
    place-items: center;
    border-radius: 50%;
    background: rgba(253, 208, 56, .26);
    color: var(--ip-blue);
    font-size: 17px;
}
.convocation-intro-summary span { font-size: 11.5px; font-weight: 700; line-height: 1.3; }
.convocation-intro-summary strong { display: block; color: var(--ip-blue); font-size: 20px; line-height: 1; }
.convocation-list,
.active-call-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 15px;
    margin-top: 18px;
}
.active-call-card {
    overflow: hidden;
    border: 1px solid var(--ip-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(11, 55, 118, .055);
}
.active-call-art {
    min-height: 175px;
    background: url('/images/juliaca-hero-integrated.png') center / cover no-repeat;
}
.active-call-art.has-image { background-image: var(--event-image); }
.active-call-card-body { padding: 15px; }
.active-call-card-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.active-call-card-status small { color: #607a9f; font-size: 9.5px; font-weight: 700; text-align: right; }
.active-call-card h2 {
    min-height: 48px;
    margin: 0;
    color: var(--ip-blue);
    font-size: 17px;
    line-height: 1.35;
}
.active-call-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 13px;
}
.active-call-actions .btn { min-height: 38px; padding: 8px 10px; font-size: 11px; white-space: nowrap; }
.active-call-actions .active-call-admin-action { grid-column: 1 / -1; }
.btn-disabled {
    border-color: #cad4df;
    background: #eef2f6;
    color: #64768a;
    cursor: not-allowed;
    pointer-events: none;
    box-shadow: none;
}
.btn-disabled:hover { filter: none; transform: none; }
.convocation-group { margin-top: 24px; }
.convocation-group + .convocation-group { margin-top: 34px; padding-top: 28px; border-top: 1px solid #dbe6f3; }
.convocation-group-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.convocation-group-heading h2 { margin: 8px 0 0; color: var(--ip-blue); font-size: 21px; }
.convocation-group-heading > span { color: #58759e; font-size: 11px; font-weight: 800; }
.convocation-group .convocation-list { margin-top: 13px; }
.convocation-group-past .active-call-card { background: #fbfcfe; box-shadow: 0 5px 15px rgba(11, 55, 118, .035); }
.convocation-empty { margin-top: 22px; }
.panel-active-calls { margin-top: 4px; }
.panel-active-calls .section-title { margin: 0 0 12px; font-size: 17px; }
.active-call-grid-panel { margin-top: 0; grid-template-columns: 1fr; }
.active-call-card-panel {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    min-height: 156px;
}
.active-call-card-panel .active-call-art { min-height: 100%; }
.active-call-card-panel .active-call-card-body { display: grid; align-content: center; padding: 18px; }
.active-call-card-panel h2 { min-height: 0; font-size: 18px; }
.active-call-card-panel .active-call-actions { max-width: 390px; }

.convocation-detail-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 305px;
    gap: 35px;
    align-items: center;
    padding: 31px 34px;
    border: 1px solid var(--ip-line);
    border-radius: 14px;
    background: linear-gradient(110deg, #fbfdff 0%, #f2f8ff 70%, #edf5ff 100%);
}
.convocation-detail-header h1 { margin: 13px 0 9px; color: var(--ip-blue); font-size: clamp(29px, 3vw, 39px); line-height: 1.16; letter-spacing: -1.3px; }
.convocation-detail-header > div > p { max-width: 760px; margin: 0; color: #405f8b; font-size: 15px; line-height: 1.58; }
.convocation-detail-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 20px; }
.convocation-dates { padding: 18px; border: 1px solid #c9d9ef; border-radius: 11px; background: #fff; }
.convocation-dates h2, .detail-section h2 { margin: 0 0 12px; color: var(--ip-blue); font-size: 16px; }
.convocation-dates h2 i, .detail-section h2 i { margin-right: 7px; color: #1264db; }
.convocation-dates dl, .convocation-summary { margin: 0; }
.convocation-dates dl > div, .convocation-summary > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 9px 0; border-top: 1px solid #e0eaf6; }
.convocation-dates dt, .convocation-summary dt { color: #4d6d99; font-size: 11.5px; }
.convocation-dates dd, .convocation-summary dd { margin: 0; color: #143d79; font-size: 12.5px; font-weight: 800; text-align: right; }
.convocation-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 16px; margin-top: 16px; }
.convocation-main-content, .convocation-sidebar { display: grid; align-content: start; gap: 16px; }
.convocation-detail-page .detail-section { margin: 0; padding: 21px; }
.participation-guide ol { display: grid; gap: 9px; margin: 0; padding-left: 22px; color: #2c568c; font-size: 13px; }
.participation-guide li::marker { color: #e99a00; font-weight: 800; }
.convocation-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.convocation-categories section { padding: 13px 14px; border: 1px solid #dce7f4; border-radius: 9px; background: #fbfdff; }
.convocation-categories h3 { margin: 0 0 5px; color: #143d79; font-size: 14px; }
.convocation-categories p { margin: 0; color: #496789; font-size: 12px; line-height: 1.48; }
.convocation-categories small { display: block; margin-top: 8px; color: #2e5b93; font-size: 10.75px; line-height: 1.45; }
.convocation-summary > div { grid-template-columns: 94px 1fr; }
.convocation-summary dd { text-align: left; }
.call-timeline ol { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.call-timeline li { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 0 0 10px 17px; border-bottom: 1px solid #e1eaf5; color: #47668f; font-size: 12px; position: relative; }
.call-timeline li::before { content: ''; position: absolute; top: 4px; left: 1px; width: 8px; height: 8px; border-radius: 50%; background: #9bb7d9; }
.call-timeline li small { padding: 3px 5px; border-radius: 5px; background: #eef4fb; color: #3f628f; font-size: 10px; white-space: nowrap; }
.call-timeline .stage-current { color: #9a6300; font-weight: 800; }
.call-timeline .stage-current::before { background: var(--ip-gold); box-shadow: 0 0 0 3px #fffde1; }
.call-timeline .stage-current small { background: #fffde1; color: #665f00; }

/* Marcadores editoriales: reemplazan las cápsulas genéricas en vistas públicas e internas. */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 17px;
    padding: 0 0 0 9px;
    border: 0;
    border-left: 3px solid var(--ip-gold);
    border-radius: 0;
    color: var(--ip-blue);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.2;
    text-transform: uppercase;
}
.eyebrow i { color: var(--ip-gold); font-size: 11px; }
.hero .eyebrow { padding: 0 0 0 10px; font-size: 10.5px; }
.package-recommended {
    display: inline-block;
    margin-left: 6px;
    padding-left: 6px;
    border-left: 2px solid var(--ip-gold);
    color: var(--ip-blue);
    font-size: 9.5px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    vertical-align: middle;
}

/* Guía institucional: azul #054A7B, amarillo #FDD038 y texto blanco sobre azul. */
.progress span { background: var(--ip-gold); }
.package:has(input:checked) { border-color: var(--ip-gold); background: #fffde1; }
.timeline-step.current::before { background: var(--ip-gold); border-color: var(--ip-gold); }
.admin-top .admin-emblem { background: var(--ip-gold); color: var(--ip-blue); }
.call-timeline .stage-completed { color: #25815a; }
.call-timeline .stage-completed::before { background: #18a36a; }
.call-timeline .stage-completed small { background: #eaf8f0; color: #25815a; }
.call-faqs .faq-item:first-of-type { border-top: 0; }

@media (max-width: 1480px) {
    .portal-name { min-width: 280px; }
    .main-nav a { width: 86px; min-width: 86px; padding-inline: 7px; }
}

@media (max-width: 1320px) {
    .portal-name { min-width: 230px; }
    .main-nav a { width: 80px; min-width: 80px; }
    .countdown b { min-width: 57px; padding-inline: 7px; }
}

@media (max-width: 1180px) {
    .site-header-inner { padding-inline: 22px; }
    .main-nav a { width: 78px; min-width: 78px; }
    .participation-deadline { align-items: flex-start; flex-direction: column; gap: 7px; }
    .info-grid.five-cards, .info-grid.four-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .registration-actions { margin-left: 0; }
    .active-call-card-panel { grid-template-columns: 150px minmax(0, 1fr); }
}

@media (max-width: 1050px) {
    .site-header-inner { padding-inline: 16px; gap: 12px; flex-wrap: wrap; }
    .brand-logo-header { width: 205px; height: 54px; }
    .visitor-header .site-header-inner { display: flex; }
    .visitor-header .site-header-inner .public-nav { width: 100%; margin-left: 0; justify-content: space-around; }
    .main-nav a { flex: 1 1 0; width: auto; min-width: 0; }
    .page { padding-inline: 16px; }
    .footer-grid { padding-inline: 16px; }
    .footer-bottom-inner { display: grid; gap: 6px; }
    .hero::before { background: linear-gradient(180deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.8) 47%, rgba(255,255,255,.05) 76%); }
    .hero-photo { background-position: center; }
    .hero-copy { z-index: 2; }
    .hero-stage { position: relative; top: auto; right: auto; width: auto; min-height: 0; margin: 0 17px 17px; }
    .info-grid.five-cards, .info-grid.four-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .convocation-intro { grid-template-columns: 1fr; gap: 13px; }
    .convocation-intro-summary { width: fit-content; }
    .active-call-card-panel { grid-template-columns: 1fr; }
    .active-call-card-panel .active-call-art { min-height: 185px; }
    .convocation-detail-header, .convocation-detail-layout { grid-template-columns: 1fr; }
    .convocation-detail-header { gap: 20px; padding: 25px; }
    .form-page { padding-inline: 17px; }
    .dashboard { padding-inline: 17px; }
    .admin-page { padding-inline: 17px; }
    .registration-actions { grid-template-columns: repeat(2, 1fr); }
    .poetry-showcase { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 9px; row-gap: 24px; }
    .poetry-showcase-intro { grid-column: 1 / -1; }
    .poetry-showcase-intro::after { top: auto; right: calc(50% - 12px); bottom: -32px; transform: rotate(90deg); }
    .accepted-themes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-policies { justify-content: flex-start; }
}

@media (max-width: 520px) {
    .site-header-inner { gap: 8px; }
    .hero-actions .btn { min-width: 0; width: 100%; }
    .participation-strip { align-items: flex-start; padding: 14px 16px; }
    .countdown { flex-wrap: wrap; }
    .deadline-registration { width: 100%; }
    .info-grid.five-cards, .info-grid.four-cards { grid-template-columns: 1fr; }
    .registration-card { grid-template-columns: 1fr; }
    .registration-actions { grid-template-columns: 1fr; }
    .poetry-showcase { grid-template-columns: 1fr; }
    .poetry-showcase-intro { grid-column: auto; }
    .poetry-showcase-intro::after { display: none; }
    .accepted-themes-grid { grid-template-columns: 1fr; }
    .admin-actions { grid-template-columns: 1fr 1fr; }
    .main-nav .public-nav-link { padding-inline: 8px; font-size: 10.5px; }
    .main-nav .public-nav-link span { font-size: inherit; }
    .convocation-intro { min-height: 0; padding: 20px; }
    .convocation-intro h1 { font-size: 25px; }
    .convocation-list,
    .active-call-grid { grid-template-columns: 1fr; }
    .active-call-actions { grid-template-columns: 1fr; }
    .convocation-categories { grid-template-columns: 1fr; }
    .convocation-detail-actions { display: grid; }
    .convocation-detail-actions .btn { width: 100%; }
    .footer-policies { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 0; }
    .footer-policies > * { padding-left: 0; padding-right: 9px; border-left: 0; }
    .footer-policies > *:nth-child(even) { padding-left: 9px; border-left: 1px solid rgba(255, 255, 255, .48); }
}

/*
 * Regla cromática institucional transversal
 *
 * Superficies blancas: el azul guía la lectura y el amarillo solo acentúa.
 * Superficies azules: el blanco es el color de lectura; el amarillo aparece
 * únicamente en subrayados, iconos guía y estados hover. Los colores verde,
 * naranja y rojo se reservan para estados semánticos (validado, pendiente o
 * observado), nunca como decoración de los paneles.
 */
:root {
    --ip-white: #fff;
    --ip-blue-soft: rgba(5, 74, 123, .08);
    --ip-blue-line: rgba(5, 74, 123, .22);
    --ip-gold-soft: rgba(253, 208, 56, .18);
}

/* Navegación y acciones sobre superficies blancas. */
.main-nav a,
.main-nav a:hover,
.main-nav a.active { color: var(--ip-blue); }
.main-nav a:hover,
.main-nav a.active { border-bottom-color: var(--ip-gold); }
.btn { filter: none; }
.btn-navy { background: var(--ip-blue); color: var(--ip-white); }
.btn-navy:hover,
.btn-navy:focus-visible { background: var(--ip-gold); color: var(--ip-blue); }
.btn-gold { background: var(--ip-gold); color: var(--ip-blue); }
.btn-gold:hover,
.btn-gold:focus-visible { background: var(--ip-blue); color: var(--ip-white); }
.btn-outline,
.btn-white { border-color: var(--ip-blue-line); color: var(--ip-blue); }
.btn-outline:hover,
.btn-outline:focus-visible,
.btn-white:hover,
.btn-white:focus-visible { border-color: var(--ip-blue); background: var(--ip-blue); color: var(--ip-white); }
.btn:focus-visible,
.main-nav a:focus-visible { outline: 3px solid var(--ip-gold); outline-offset: 2px; }

/* Acciones del tablero: respuesta institucional uniforme al pasar el cursor. */
.admin-page .admin-actions .btn {
    border-color: var(--ip-blue-line);
    background: #fff;
    color: var(--ip-blue);
    text-decoration: none;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.admin-page .admin-actions .btn:hover,
.admin-page .admin-actions .btn:focus-visible {
    border-color: var(--ip-blue);
    background: var(--ip-blue);
    color: var(--ip-white);
    box-shadow: 0 5px 12px rgba(5, 74, 123, .16);
    text-decoration: none;
}
.admin-page .admin-actions .btn:hover i,
.admin-page .admin-actions .btn:focus-visible i { color: inherit; }

/* Formularios, enlaces de apoyo y tarjetas en zonas de fondo blanco. */
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--ip-blue); box-shadow: 0 0 0 3px var(--ip-blue-soft); }
.check-list input,
.package input { accent-color: var(--ip-blue); }
.form-section h2 i,
.detail-section h2 i,
.side-card h3 i,
.upload,
.upload i,
.payment-info,
.summary-grid b,
.icon-button,
.data-table td:first-child { color: var(--ip-blue); }
.icon-button { border-color: var(--ip-blue-line); }
.icon-button:hover,
.icon-button:focus-visible { background: var(--ip-blue); border-color: var(--ip-blue); color: var(--ip-white); }
.dashboard a:not(.btn):not(.icon-button),
.admin-page a:not(.btn):not(.icon-button),
.form-page a:not(.btn),
.auth-card a,
.convocation-detail-page a:not(.btn),
.convocation-page a:not(.btn) { color: var(--ip-blue); }
.dashboard a:not(.btn):not(.icon-button):hover,
.dashboard a:not(.btn):not(.icon-button):focus-visible,
.admin-page a:not(.btn):not(.icon-button):hover,
.admin-page a:not(.btn):not(.icon-button):focus-visible,
.form-page a:not(.btn):hover,
.form-page a:not(.btn):focus-visible,
.auth-card a:hover,
.auth-card a:focus-visible,
.convocation-detail-page a:not(.btn):hover,
.convocation-detail-page a:not(.btn):focus-visible,
.convocation-page a:not(.btn):hover,
.convocation-page a:not(.btn):focus-visible {
    color: var(--ip-blue);
    text-decoration: underline;
    text-decoration-color: var(--ip-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
/* La ruta de navegación conserva su aspecto limpio al pasar el cursor.
   Sigue siendo un enlace operativo, pero no adopta el subrayado de los
   vínculos informativos del detalle. */
.activity-breadcrumb a:hover {
    color: var(--ip-blue);
    text-decoration: none;
}

/* Datos, indicadores y gráficos internos: azul institucional, no colores decorativos. */
.dashboard .stat:nth-child(1) .stat-icon,
.dashboard .stat:nth-child(2) .stat-icon,
.dashboard .stat:nth-child(3) .stat-icon,
.dashboard .stat:nth-child(4) .stat-icon {
    background: var(--ip-blue-soft);
    color: var(--ip-blue);
}
.dashboard .stat:hover .stat-icon,
.admin-page .admin-stats .stat:hover .stat-icon { background: var(--ip-gold-soft); color: var(--ip-blue); }

/* Indicadores administrativos: misma lectura clara del panel del participante. */
.admin-page .admin-stats .stat {
    --admin-stat-color: var(--ip-blue);
    --admin-stat-soft: #edf4fc;
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 48px auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 11px;
    align-items: center;
    border: 1px solid #d6e2ef;
    border-left: 3px solid var(--admin-stat-color);
    background: #fff;
    box-shadow: none;
    transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.admin-page .admin-stats .stat--registrations { --admin-stat-color: #1766cf; --admin-stat-soft: #eaf2ff; }
.admin-page .admin-stats .stat--payments { --admin-stat-color: #cf8500; --admin-stat-soft: #fff5df; }
.admin-page .admin-stats .stat--review { --admin-stat-color: #0f8b8d; --admin-stat-soft: #eaf9f9; }
.admin-page .admin-stats .stat--accepted { --admin-stat-color: #099260; --admin-stat-soft: #e9f8f0; }
.admin-page .admin-stats .stat--books { --admin-stat-color: #7451c0; --admin-stat-soft: #f6f1ff; }
.admin-page .admin-stats .stat--revenue { --admin-stat-color: #7956c0; --admin-stat-soft: #f3efff; }
.admin-page .admin-stats .stat .stat-icon {
    grid-row: 1 / -1;
    float: none;
    margin: 0;
    width: 48px;
    min-width: 48px;
    height: 48px;
    background: #edf2f7;
    color: var(--admin-stat-color);
    transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.admin-page .admin-stats .stat b {
    grid-column: 2 / -1;
    grid-row: 1;
    align-self: end;
    color: var(--ip-blue);
    font-weight: 800;
}
.admin-page .admin-stats .stat strong {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    color: var(--admin-stat-color);
    font-weight: 800;
}
.admin-page .admin-stats .stat small {
    grid-column: 3;
    grid-row: 2;
    align-self: start;
    color: #567497;
}
.admin-page .admin-stats .stat::after { content: none; }
.admin-page .admin-stats .stat:hover,
.admin-page .admin-stats .stat:focus-within {
    border-color: var(--admin-stat-color);
    background: var(--admin-stat-soft);
    box-shadow: 0 8px 18px rgba(7, 52, 119, .09);
    transform: translateY(-3px);
}
.admin-page .admin-stats .stat:hover .stat-icon,
.admin-page .admin-stats .stat:focus-within .stat-icon {
    background: var(--admin-stat-color);
    color: #fff;
    transform: scale(1.04);
}
.admin-page .admin-stats .stat:hover b,
.admin-page .admin-stats .stat:focus-within b { color: var(--admin-stat-color); }

/* Resumen del participante: misma estructura visual que las categorías. */
.dashboard .stat-grid .stat {
    --stat-accent: #1a61bf;
    --stat-soft: #f0f6ff;
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr);
    align-items: center;
    gap: 13px;
    min-height: 112px;
    padding: 14px 13px;
    border-color: var(--ip-blue-line);
    border-left: 3px solid var(--stat-accent);
    background: #fff;
    transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.dashboard .stat-grid .stat:nth-child(2) { --stat-accent: #0b9a63; --stat-soft: #eefaf4; }
.dashboard .stat-grid .stat:nth-child(3) { --stat-accent: #e79a00; --stat-soft: #fff8e8; }
.dashboard .stat-grid .stat:nth-child(4) { --stat-accent: #7451c0; --stat-soft: #f6f1ff; }
.dashboard .stat-grid .stat-icon {
    width: 60px;
    min-width: 60px;
    height: 60px;
    background: var(--stat-soft);
    color: var(--stat-accent);
    transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.dashboard .stat-copy { min-width: 0; }
.dashboard .stat-title {
    display: flex;
    align-items: center;
    min-height: 29px;
    color: var(--ip-blue);
    font-size: 11px;
    line-height: 1.25;
}
.dashboard .stat-metric {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 9px;
}
.dashboard .stat-metric strong {
    display: block;
    color: var(--stat-accent);
    font-size: 28px;
    line-height: 1;
}
.dashboard .stat-metric small {
    display: block;
    color: #496a9a;
    font-size: 10.5px;
    line-height: 1.3;
}
.dashboard .stat-grid .stat:hover {
    transform: translateY(-3px);
    border-color: var(--stat-accent);
    background: var(--stat-soft);
    box-shadow: 0 8px 18px rgba(7, 52, 119, .09);
}
.dashboard .stat-grid .stat:hover .stat-icon {
    background: var(--stat-accent);
    color: #fff;
    transform: scale(1.04);
}
.dashboard .stat-grid .stat:hover .stat-title { color: var(--stat-accent); }

/* Tarjetas laterales del panel: iconos guía alineados y con el acento institucional. */
.dashboard-side .side-card h3 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 9px;
    line-height: 1.25;
}
.dashboard-side .side-card h3 i {
    display: inline-grid;
    width: 15px;
    min-width: 15px;
    place-items: center;
    color: var(--ip-gold);
    font-size: 14px;
}

/* Constancia disponible: tarjeta breve y clara dentro del panel del participante. */
.dashboard-side .participant-certificates-card { padding: 12px; }
.dashboard-side .participant-certificates-card h3 { margin-bottom: 7px; font-size: 12px; }
.participant-certificate-card {
    display: grid;
    gap: 6px;
    padding: 10px 11px;
    border: 1px solid #9bdab8;
    border-radius: 7px;
    background: #f3fff7;
}
.participant-certificate-title { color: #168145; font-size: 11.5px; line-height: 1.25; }
.participant-certificate-meta {
    margin: 0 !important;
    color: #27638d;
    font-size: 10px !important;
    line-height: 1.45;
}
.participant-certificate-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 1px;
}
.participant-certificate-actions .btn {
    min-height: 31px;
    padding: 6px 10px;
    font-size: 10.5px;
}

/* Ayuda rápida del panel: los canales institucionales son claros sin competir con el contenido principal. */
.dashboard-quick-help {
    display: grid;
    gap: 6px;
}
.dashboard-quick-help .dashboard-quick-help-intro {
    margin: 0;
    color: #55749a;
    font-size: 11px !important;
    line-height: 1.45;
}
.dashboard-quick-help-contact {
    display: flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    color: #1d578a;
    font-size: 11px;
    line-height: 1.4;
    text-decoration: none;
}
.dashboard-quick-help-contact > i {
    width: 13px;
    color: var(--ip-gold);
    text-align: center;
}
.dashboard-quick-help-contact strong {
    font-weight: 700;
}
.dashboard-quick-help .dashboard-quick-help-contact,
.dashboard-quick-help .dashboard-quick-help-contact:visited,
.dashboard-quick-help .dashboard-quick-help-contact a,
.dashboard-quick-help .dashboard-quick-help-contact a:visited,
.dashboard-quick-help .dashboard-quick-help-contact span,
.dashboard-quick-help .dashboard-quick-help-contact strong {
    color: inherit;
    text-decoration: none !important;
    text-decoration-line: none !important;
}
.dashboard-quick-help-contact:hover,
.dashboard-quick-help-contact:focus-within,
.dashboard-quick-help-contact a:hover,
.dashboard-quick-help-contact a:focus-visible {
    color: var(--ip-gold) !important;
    text-decoration: none !important;
    text-decoration-line: none !important;
}
.dashboard-quick-help-separator {
    margin: 0 5px;
    color: #9aafc6;
    font-weight: 400;
}
.admin-top .admin-emblem { background: var(--ip-gold); color: var(--ip-blue); }
.admin-page .fake-chart polyline:first-child { fill: rgba(5, 74, 123, .12) !important; }
.admin-page .fake-chart polyline:last-child { stroke: var(--ip-blue) !important; }
.admin-page .donut { background: conic-gradient(var(--ip-blue) 0 28%, var(--ip-gold) 28% 42%, #8fb6d1 42% 57%, #c5d8e6 57% 72%, #e7eef4 72%) !important; }
.admin-page .legend li i { background: var(--ip-blue) !important; }
.admin-page .legend li:nth-child(2) i { background: var(--ip-gold) !important; }
.admin-page .legend li:nth-child(3) i { background: #8fb6d1 !important; }
.admin-page .legend li:nth-child(4) i { background: #c5d8e6 !important; }
.admin-side-card h2 > i:not(.fa-bell) { color: var(--ip-blue) !important; }
.admin-side-card .progress span { background: var(--ip-gold) !important; }
.admin-side-card .alert-row > a { color: var(--ip-blue) !important; }
.admin-side-card .alert-row > a:hover,
.admin-side-card .alert-row > a:focus-visible {
    color: var(--ip-blue) !important;
    text-decoration: underline;
    text-decoration-color: var(--ip-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
.chart-card small { color: #496789 !important; }

/* Estados: marcadores editoriales, inspirados en un separador de libro. */
.status-chip {
    --status-color: var(--ip-blue);
    --status-background: #eef6ff;
    --status-border: #c7def8;
    display: inline-flex;
    position: relative;
    align-items: center;
    min-height: 27px;
    padding: 5px 10px 5px 23px;
    overflow: hidden;
    border: 1px solid var(--status-border);
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 2px 5px rgba(5, 74, 123, .06);
    color: var(--status-color);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .045em;
    line-height: 1;
    text-transform: uppercase;
    transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
}
.status-chip::before {
    content: '';
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 7px;
    width: 8px;
    background: var(--status-color);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - 4px), 0 100%);
    transform-origin: top center;
    transition: background-color .2s ease, transform .2s ease;
}
@media (hover: hover) {
    .status-chip:hover { transform: translateY(-2px); border-color: var(--status-color); background: var(--status-color); box-shadow: 0 7px 14px color-mix(in srgb, var(--status-color) 24%, transparent); color: #fff; }
    .status-chip:hover::before { background: var(--ip-gold); transform: translateY(2px); }
}
.status-chip.success { --status-color: #14824b; --status-background: #e9f9ef; --status-border: #bde7ce; }
.status-chip.warning { --status-color: #9a6700; --status-background: #fff4d8; --status-border: #f1d27e; }
.status-chip.danger { --status-color: #c3442b; --status-background: #fff0eb; --status-border: #f1bcaf; }
.status-chip.violet { --status-color: #694ab6; --status-background: #f2edff; --status-border: #d8caf9; }
.status-chip.neutral { --status-color: #607287; --status-background: #f2f5f7; --status-border: #cbd5df; background: var(--status-background); }
@media (hover: hover) {
    .status-chip.neutral:hover { border-color: #607287; background: #607287; box-shadow: 0 7px 14px rgba(96, 114, 135, .24); color: #fff; }
    .status-chip.neutral:hover::before { background: #dce4eb; }
}
.timeline-step.current::before { content: ""; background: var(--ip-gold); border-color: var(--ip-gold); color: var(--ip-blue); }
.package:has(input:checked) {
    border-color: var(--ip-blue);
    background: var(--ip-blue);
    box-shadow: inset 3px 0 0 var(--ip-gold);
    color: #fff;
}
.package:has(input:checked) input { accent-color: var(--ip-gold); }
.package:has(input:checked) h3,
.package:has(input:checked) strong { color: #fff; }
.package:has(input:checked) p { color: #dceaf6; }
.package:has(input:checked) .package-recommended {
    border-left-color: var(--ip-gold);
    color: var(--ip-gold);
}
.auth-link,
.inline-link { color: var(--ip-blue) !important; font-size: 12px; font-weight: 800; }
.auth-link:hover,
.auth-link:focus-visible,
.inline-link:hover,
.inline-link:focus-visible {
    color: var(--ip-blue) !important;
    text-decoration: underline;
    text-decoration-color: var(--ip-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}
button.inline-link[data-reservation-dialog-open] {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
}
.observation-note {
    margin-top: 12px;
    padding: 12px;
    border-left: 4px solid var(--ip-gold);
    background: #fffdf2;
    color: var(--ip-blue);
}
.certificate-art {
    display: grid;
    min-height: 150px;
    place-items: center;
    color: var(--ip-gold);
    font-size: 64px;
}

/* Acceso y creación de cuenta: compacto en escritorio, una columna en móvil. */
.auth-wrap {
    min-height: calc(100vh - 310px);
    padding: 28px 20px;
}
.auth-card {
    width: min(620px, 100%);
    min-height: 394px;
    padding: 27px 30px 24px;
}
.auth-card h1 { font-size: 26px; }
.auth-card > p { margin-bottom: 16px; }
.auth-card .field { margin-bottom: 10px; }
.auth-card .field input { min-height: 38px; }
.auth-card .btn-block { margin-top: 14px !important; }
.auth-remember {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
    font-size: 12px;
    color: var(--ip-blue);
}
.auth-remember input { accent-color: var(--ip-blue); }
.auth-footer { margin: 13px 0 0; }
.auth-session-options { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 2px; }
.auth-session-options .auth-remember { margin-top: 0; }
.auth-forgot { font-size: 11.5px; text-decoration: none; white-space: nowrap; }
.auth-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 12px;
}
.auth-card-register .btn-block { margin-top: 4px !important; }
.auth-card-register {
    padding-top: 24px;
    padding-bottom: 19px;
}
.auth-card-register > p {
    margin-bottom: 12px;
    font-size: 12.5px;
}
.auth-card-register .field {
    gap: 3px;
    margin-bottom: 4px;
}
.auth-card-register .field label { font-size: 10.5px; }
.auth-card-register .field input {
    min-height: 34px;
    padding: 6px 9px;
    font-size: 12px;
}
.auth-card-register .auth-footer {
    margin-top: 9px;
    font-size: 11.5px;
}
@media (max-width: 520px) {
    .auth-wrap { min-height: auto; padding: 22px 14px; }
    .auth-card { min-height: 0; padding: 24px 20px 21px; }
    .auth-session-options { gap: 8px; }
    .auth-session-options .auth-remember,
    .auth-session-options .auth-forgot { font-size: 10px; }
    .auth-fields-grid { grid-template-columns: 1fr; gap: 0; }
}

/* Los enlaces y datos del pie ya responden a la regla azul/blanco/amarillo. */

/* Tarjeta de seguimiento: una acción principal y enlaces secundarios, sin fila de botones genéricos. */
.registration-card-current {
    grid-template-columns: 138px minmax(0, 1fr) 198px;
    min-height: 278px;
    padding: 18px 20px 14px;
    gap: 17px;
    border-color: var(--ip-blue-line);
    box-shadow: 0 8px 21px rgba(5, 74, 123, .055);
}
.registration-card-current .mini-book {
    width: 106px;
    height: 158px;
    margin: 0 auto;
    padding-top: 25px;
}
.mini-book-cover {
    display: block;
    padding: 0 !important;
    background: transparent !important;
    color: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    object-fit: cover;
    object-position: center;
}
.registration-card-current h2 {
    margin: 5px 0 0;
    color: var(--ip-blue);
    font-size: 19px;
    line-height: 1.26;
}
.registration-card-current .organizers {
    gap: 18px;
    margin: 10px 0 8px;
}
.registration-card-current .registration-organizers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 18px;
}
.registration-card-current .organizer {
    max-width: none;
    font-size: 9.5px;
    line-height: 1.42;
}
.registration-card-current .organizer i { font-size: 16px; }
.registration-card-current .chips { min-height: 22px; }
.registration-card-current .timeline { margin: 18px 0 7px; }
.registration-process-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 12px 0 -3px;
    padding: 7px 9px;
    border-left: 3px solid var(--ip-gold);
    border-radius: 0 5px 5px 0;
    background: #fffaf0;
    color: #5b7190;
    font-size: 9.5px;
    line-height: 1.35;
}
.registration-process-note i { margin-top: 1px; color: #c98900; }
.registration-process-note span { display: grid; gap: 1px; }
.registration-process-note b { color: var(--ip-blue); font-size: 10px; }
.timeline-registration-progress { margin-top: 15px !important; }
.registration-card-current .timeline-step { min-width: 62px; padding-top: 16px; font-size: 10px; }
.registration-card-current .timeline-step::before { top: -11px; width: 19px; height: 19px; }
.registration-card-current .timeline-step > span,
.registration-card-current .timeline-step > small {
    display: block;
}
.registration-card-current .timeline-step > span {
    color: var(--ip-blue);
    font-weight: 700;
    line-height: 1.2;
}
.registration-card-current .timeline-step > small {
    min-height: 13px;
    margin-top: 3px;
    color: #6680a3;
    font-size: 8.5px;
    line-height: 1.2;
}
.registration-card-current .timeline-step.done > small,
.registration-card-current .timeline-step.current > small { color: #496a93; }
.registration-card-current .timeline-step.rejected::before {
    content: "×";
    display: grid;
    place-items: center;
    background: #c34444;
    border-color: #c34444;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
}
.registration-card-current .timeline-step.not-applicable > small { color: #7d93ae; }
.registration-card-current .timeline-step-action {
    margin: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}
.registration-card-current .timeline-step-action:hover > span { color: #0b6094; text-decoration: underline; }
.registration-card-current .timeline-step-action:focus-visible { outline: 3px solid rgba(5, 74, 123, .25); outline-offset: 3px; border-radius: 5px; }
.admin-committee-decision-notice {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 9px 0 0;
    color: #237856;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
}
.admin-committee-decision-notice[hidden] { display: none; }
.admin-committee-decision-notice i { margin-top: 2px; color: #15945f; }
.admin-committee-participant-message > small {
    display: block;
    margin-top: 5px;
    color: #5c7898;
    font-size: 9.5px;
    line-height: 1.35;
}

.registration-status {
    align-self: start;
    display: grid;
    gap: 8px;
    padding: 2px 0 0 14px;
    border-left: 1px solid #dce7f3;
}
.registration-status-label {
    color: #53729c;
    font-size: 10px;
    font-weight: 700;
}
.registration-status .status-chip {
    justify-self: start;
    padding: 5px 8px 5px 23px;
}
.registration-work-correction-notice {
    display: grid;
    grid-template-columns: 15px minmax(0, 1fr);
    gap: 6px;
    padding: 8px;
    border: 1px solid #efc35b;
    border-radius: 7px;
    background: #fff8e6;
    color: #765000;
}
.registration-work-correction-notice > i { padding-top: 1px; color: #c78b00; font-size: 11px; }
.registration-work-correction-notice span { display: grid; gap: 2px; }
.registration-work-correction-notice b { color: #8a5a00; font-size: 9px; line-height: 1.25; }
.registration-work-correction-notice small { color: #806633; font-size: 8.5px; line-height: 1.35; }
.registration-code {
    display: grid;
    gap: 2px;
    padding-top: 8px;
    border-top: 1px solid #dce7f3;
}
.registration-code span { color: #58749b; font-size: 10px; }
.registration-code b { color: var(--ip-blue); font-size: 12px; letter-spacing: .02em; white-space: nowrap; }

.registration-card-available .timeline-disabled { border-top-color: #d7e2ef; }
.registration-card-available .timeline-step::before {
    background: #fff;
    border-color: #c6d5e5;
}
.registration-card-available .timeline-step > span,
.registration-card-available .timeline-step > small { color: #7d93ae; }
.registration-status-available .status-chip {
    background: #f3f7fb;
    color: #6680a3;
}
.registration-status-available .registration-code {
    padding-top: 8px;
}
.registration-status-available .registration-code span {
    max-width: 126px;
    line-height: 1.35;
}

.registration-card-current .registration-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 11px 0 0;
    border-top: 1px solid #dce7f3;
}
.registration-action-button {
    flex: 0 0 auto;
    min-width: 150px;
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 11px;
    white-space: nowrap;
}
.registration-action-button i { font-size: 13px; }
.registration-action-button.is-disabled,
.registration-action-button:disabled {
    background: #f5f8fc;
    border-color: #d6e1ef;
    color: #8396af;
    cursor: not-allowed;
    filter: none;
    opacity: 1;
    transform: none;
}
.registration-action-button.is-disabled i,
.registration-action-button:disabled i { color: #9aabbe; }
.registration-action-button.is-disabled:hover,
.registration-action-button:disabled:hover { transform: none; filter: none; }

.correction-section > .detail-note { margin: -2px 0 16px; }
.correction-work { margin-top: 20px; padding-top: 17px; border-top: 1px solid #dce7f3; }
.correction-work h3 { margin: 0 0 10px; color: var(--ip-blue); font-size: 14px; }
.correction-work .observation-note { margin-bottom: 13px; }
.correction-section .field input[type="file"] { padding: 6px 8px; min-height: 38px; }

/* Ficha de inscripción: se consulta dentro del panel, sin abrir una página adicional. */
dialog.registration-view-modal:not([open]) {
    display: none;
}
dialog.registration-view-modal[open] {
    display: block;
}
.registration-view-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: min(1540px, calc(100vw - 48px));
    max-width: none;
    max-height: min(90vh, 900px);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #c7d9ee;
    border-radius: 12px;
    color: var(--ip-blue);
    background: #fff;
    box-shadow: 0 22px 70px rgba(3, 43, 83, .34);
    transform: translate(-50%, -50%);
}
.registration-view-modal::backdrop { background: rgba(2, 35, 67, .62); backdrop-filter: blur(2px); }
.registration-view-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 24px 18px;
    border-bottom: 1px solid #dbe7f4;
    background: linear-gradient(120deg, #f6faff, #fff);
}
.modal-kicker { display: inline-flex; align-items: center; gap: 7px; color: var(--ip-blue); font-size: 10px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.modal-kicker i { color: var(--ip-gold); }
.registration-view-modal-header h2 { margin: 4px 0; color: var(--ip-blue); font-size: 22px; line-height: 1.2; }
.registration-view-modal-header p { margin: 0; color: #54749c; font-size: 11px; }
.modal-close {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid #bfd2e8;
    border-radius: 6px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    transition: .18s ease;
}
.modal-close:hover, .modal-close:focus-visible { border-color: var(--ip-gold); background: var(--ip-gold); color: var(--ip-blue); }
.registration-view-modal-body { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(300px, .65fr); max-height: calc(min(90vh, 900px) - 103px); overflow: auto; }
.registration-view-main, .registration-view-side { display: grid; align-content: start; gap: 13px; padding: 19px 21px; }
.registration-view-side { border-left: 1px solid #dbe7f4; background: #fbfdff; }
.modal-panel { padding: 15px; border: 1px solid #d7e4f3; border-radius: 8px; background: #fff; }
.modal-panel h3 { margin: 0 0 11px; color: var(--ip-blue); font-size: 14px; }
.modal-panel h3 i { margin-right: 7px; color: var(--ip-gold); }
.modal-panel .confirmation-summary-block h3 i { color: var(--ip-blue); }
.modal-summary-grid { grid-template-columns: 102px 1fr; font-size: 11px; }
.modal-work-heading { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 12px; }
.modal-work-heading h3 { margin: 7px 0 0; }
.modal-book-preview { margin: 0 0 13px; text-align: center; }
.modal-book-preview .modal-book-page { min-height: 388px; overflow: auto; text-align: left; }
.modal-book-preview .modal-book-page .preview-photo { background-size: cover; background-position: center; }
.modal-book-preview > small { display: block; margin-top: 7px; color: #6e7f95; font-size: 10px; }
.modal-document-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.modal-file-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #e7edf5; padding: 8px 0; font-size: 10.5px; }
.modal-file-item:first-child { border-top: 0; padding-top: 0; }
.modal-file-item > span { display: grid; gap: 2px; color: var(--ip-blue); }
.modal-file-item > span i { color: var(--ip-yellow); }
.modal-file-item small { color: #72829a; font-size: 9.5px; overflow-wrap: anywhere; }
.modal-file-item > div, .modal-file-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; flex-shrink: 0; }
.modal-file-actions { margin-top: 4px; }
.modal-declarations { display: grid; gap: 6px; margin: 0 0 12px; }
.modal-declarations span { color: #8394a9; font-size: 10.5px; }
.modal-declarations span.is-confirmed { color: #177446; }
.modal-declarations i { display: inline-grid; width: 15px; color: #9aabba; text-align: center; }
.modal-declarations .is-confirmed i { color: #169455; }
.modal-event-meta { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; margin-top: 13px; padding-top: 12px; border-top: 1px solid #dce7f3; font-size: 11px; }
.modal-event-meta span { color: #6680a3; }
.modal-event-meta b { color: var(--ip-blue); text-align: right; }
.modal-payment-row + .modal-payment-row { margin-top: 12px; padding-top: 12px; border-top: 1px solid #dce7f3; }
.modal-payment-row { display: grid; gap: 5px; font-size: 11px; }
.modal-payment-row > b { color: var(--ip-blue); }
.modal-payment-row > span:not(.status-chip) { color: var(--ip-blue); font-size: 16px; font-weight: 800; }
.modal-payment-row small { color: #5d779c; }
.modal-payment-row .status-chip { justify-self: start; }
.modal-payment-row .inline-link { width: fit-content; }
.modal-notice { margin: 0; padding: 10px; border: 1px solid #b9e3c9; border-radius: 6px; background: #f2fcf5; color: #187447; font-size: 11px; line-height: 1.5; }
.modal-notice i { margin-right: 5px; }
.modal-request-status { margin: 0 0 9px; }
.modal-correction-panel { padding: 16px; }
.modal-correction-panel h3 { margin-bottom: 12px; font-size: 14px; line-height: 1.25; }
.modal-correction-panel .modal-request-status { margin: 0 0 14px; }
.modal-correction-panel .status-chip { font-size: 10px; letter-spacing: .02em; }
.modal-expedient-change-list { display: grid; gap: 6px; margin: 10px 0; }
.modal-expedient-change-group { display: grid; gap: 5px; }
.modal-expedient-change-group-heading { display: grid; grid-template-columns: auto 1fr; column-gap: 5px; margin: 0; color: #087b42; font-size: 10px; font-weight: 800; line-height: 1.25; }
.modal-expedient-change-group-heading > i { grid-row: span 2; margin-top: 1px; }
.modal-expedient-change-group-heading > span { font-weight: 850; }
.modal-expedient-change-group-heading > small { color: #4d8068; font-size: 8.5px; font-weight: 650; }
.modal-expedient-change-item { padding: 8px 9px; border: 1px solid #b9e3c9; border-left: 3px solid #179457; border-radius: 6px; background: #f3fcf6; }
.modal-expedient-change-item b { display: block; color: #087b42; font-size: 11px; line-height: 1.3; }
.modal-expedient-change-item p { margin: 3px 0 0; color: #3e7660; font-size: 10px; line-height: 1.35; }
.modal-expedient-change-group.is-team-required .modal-expedient-change-group-heading { color: #b54728; }
.modal-expedient-change-group.is-team-required .modal-expedient-change-group-heading > small { color: #9a624e; }
.modal-expedient-change-item.is-team-required { border-color: #f1b8aa; border-left-color: #d94f36; background: #fff7f5; }
.modal-expedient-change-item.is-team-required b { color: #a93f2b; }
.modal-expedient-change-item.is-team-required p { color: #8b594e; }
.modal-correction-panel .modal-expedient-change-list + .modal-correction-response { margin-top: 10px; }
.modal-correction-comment { color: #315d8a; }
.modal-correction-comment-label { display: block; margin-bottom: 4px; color: var(--ip-blue); font-size: 12px; font-weight: 800; line-height: 1.3; }
.modal-correction-comment p { margin: 0; color: #1f568d; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.modal-correction-response { margin-top: 12px; padding-top: 11px; border-top: 1px solid #dce7f3; }
.registration-view-side .observation-note { margin: 10px 0; }
.modal-correction-request { display: grid; gap: 7px; margin-top: 12px; }
.modal-correction-request label { color: var(--ip-blue); font-size: 11px; font-weight: 800; }
.modal-correction-request-options { display: grid; gap: 5px; margin: 0; padding: 8px; border: 1px solid #c9d9e8; border-radius: 7px; background: #f8fbff; }
.modal-correction-request-options legend { padding: 0 3px; color: #57769b; font-size: 10px; font-weight: 800; }
.modal-correction-request-options label { display: flex; align-items: center; gap: 6px; color: #28506f; cursor: pointer; font-size: 10px; line-height: 1.25; }
.modal-correction-request-options input { width: 14px; height: 14px; margin: 0; accent-color: var(--ip-blue); }
.modal-correction-request-options span { font-weight: 700; }
.modal-correction-request .modal-correction-select {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    min-height: 34px;
    padding: 7px 30px 7px 10px;
    border: 1px solid #b7cee7;
    border-radius: 7px;
    background-color: #f8fbff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23054a7b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
    background-size: 10px 6px;
    color: var(--ip-blue);
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
}
.modal-correction-request .modal-correction-select:hover { border-color: #7ea6cb; background-color: #fff; }
.modal-correction-request .modal-correction-select:focus { border-color: var(--ip-blue); box-shadow: 0 0 0 3px rgba(5, 74, 123, .12); outline: 0; }
.modal-correction-request .modal-correction-select option { background: #fff; color: var(--ip-blue); font-size: 11px; font-weight: 600; }
.modal-correction-request textarea { min-height: 92px; padding: 8px 10px; border: 1px solid #adc3df; border-radius: 6px; color: var(--ip-blue); font: inherit; font-size: 11px; resize: vertical; }
.modal-correction-request .btn { justify-self: start; }
.modal-administrative-change-panel,
.modal-editorial-change-panel { margin-top: 12px; }
.modal-correction-request select { width: 100%; min-height: 34px; padding: 7px 10px; border: 1px solid #b7cee7; border-radius: 7px; background: #f8fbff; color: var(--ip-blue); font: inherit; font-size: 11px; font-weight: 700; }
.modal-change-hub { display: grid; gap: 8px; }
.modal-change-hub > label { color: var(--ip-blue); font-size: 11px; font-weight: 800; }
/* La tarjeta de solicitud es breve: evita márgenes innecesarios alrededor de su explicación. */
.modal-change-hub > h3 { margin-bottom: 4px; }
.modal-change-hub > .detail-note { margin: 0; }
.modal-change-hub > .modal-correction-request { margin-top: 0; }
.modal-change-category-select { width: 100%; min-height: 35px; padding: 7px 10px; border: 1px solid #b7cee7; border-radius: 7px; background: #f8fbff; color: var(--ip-blue); font: inherit; font-size: 11px; font-weight: 700; }
.modal-change-category { display: grid; gap: 8px; padding: 9px; border: 1px solid #d7e5f2; border-radius: 7px; background: #f8fbff; }
.modal-change-category p { margin: 0; color: #537496; font-size: 10px; line-height: 1.45; }
.modal-change-request-summary { margin: 0; padding: 8px 9px; border: 1px solid #d7e5f2; border-radius: 7px; background: #fbfdff; }
.modal-change-request-summary summary { color: var(--ip-blue); cursor: pointer; font-size: 10px; font-weight: 800; line-height: 1.4; }
.modal-change-request-summary .status-chip { margin-right: 4px; }
.modal-change-request-summary p { margin: 7px 0 0; color: #537496; font-size: 10px; line-height: 1.4; }
.modal-change-request-history { margin-top: 10px; border-top: 1px solid #d9e6f1; padding-top: 8px; }
.modal-change-request-history summary { display: flex; align-items: center; gap: 5px; color: #456988; cursor: pointer; font-size: 10px; font-weight: 800; line-height: 1.35; }
.modal-change-request-history summary > span { display: inline-grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: #edf4fa; color: #2d618d; font-size: 9px; }
.modal-change-request-history-list { display: grid; gap: 6px; margin-top: 8px; }
.modal-change-request-history-item { padding: 7px 8px; border: 1px solid #d5e6dc; border-left: 3px solid #65ae83; border-radius: 6px; background: #f7fcf8; }
.modal-change-request-history-item > div { display: grid; gap: 1px; }
.modal-change-request-history-item b { color: #19683e; font-size: 10px; line-height: 1.3; }
.modal-change-request-history-item small { color: #5c826b; font-size: 8.5px; font-weight: 700; line-height: 1.3; }
.modal-change-request-history-item p { margin: 5px 0 0; color: #52745f; font-size: 9.5px; line-height: 1.35; }
.modal-change-request-history-item p b { color: #397050; font-size: inherit; }
.registration-change-overlay { position: absolute; z-index: 20; inset: 0; display: grid; place-items: center; padding: 20px; overflow: auto; background: rgba(4, 37, 68, .56); backdrop-filter: blur(2px); }
.registration-change-overlay[hidden] { display: none; }
.registration-change-window { width: min(620px, 100%); max-height: 100%; overflow: auto; border: 1px solid #b8d3e8; border-radius: 10px; background: #fff; box-shadow: 0 18px 46px rgba(2, 35, 67, .3); }
.registration-change-window > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 15px 17px; border-bottom: 1px solid #dce7f3; background: linear-gradient(120deg, #f6faff, #fff); }
.registration-change-window h3 { margin: 6px 0 3px; color: var(--ip-blue); font-size: 15px; }
.registration-change-window > header p { margin: 0; color: #58779c; font-size: 10px; line-height: 1.45; }
.registration-change-window-body { display: grid; gap: 10px; padding: 14px 17px 17px; }
.registration-change-submission-summary { padding: 9px 10px; border: 1px solid #b8dfc5; border-left: 3px solid #23945b; border-radius: 7px; background: #f4fcf7; }
.registration-change-submission-summary summary { display: flex; align-items: center; gap: 5px; color: #176b40; cursor: pointer; font-size: 10.5px; font-weight: 800; line-height: 1.35; }
.registration-change-submission-summary summary > span { display: inline-grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: #dff4e6; color: #167746; font-size: 9px; }
.registration-change-submission-summary p { margin: 7px 0 0; color: #4b7960; font-size: 9.5px; line-height: 1.35; }
.registration-change-submission-groups { display: grid; gap: 7px; margin-top: 8px; padding-top: 7px; border-top: 1px solid #d6eddc; }
.registration-change-submission-group { padding: 7px 8px; border: 1px solid #d5e8dc; border-radius: 6px; background: rgba(255, 255, 255, .64); }
.registration-change-submission-group h4 { margin: 0; color: #176b40; font-size: 10px; line-height: 1.35; }
.registration-change-submission-group h4 i { margin-right: 4px; color: #159055; }
.registration-change-submission-group > p { margin-top: 5px; }
.registration-change-submission-group dl { display: grid; gap: 3px; margin: 6px 0 0; }
.registration-change-submission-group dl > div { display: grid; grid-template-columns: minmax(92px, 34%) 1fr; gap: 7px; padding-top: 3px; border-top: 1px dashed #dbece1; }
.registration-change-submission-group dt { color: #648171; font-size: 8.5px; font-weight: 700; line-height: 1.35; }
.registration-change-submission-group dd { margin: 0; color: #2d6747; font-size: 9.5px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.registration-change-submission-group ul { display: grid; gap: 4px; margin: 6px 0 0; padding: 0; list-style: none; }
.registration-change-submission-group li { color: #286d48; font-size: 9.5px; line-height: 1.35; overflow-wrap: anywhere; }
.registration-change-submission-group li i { margin-right: 4px; color: #169056; font-size: 8px; }
.registration-change-submitted-photo { background: #fbfdfb; }
.registration-change-submitted-photo .book-spread-preview { margin-top: 7px; }
.registration-change-submission-payment { border-color: #f0d6b4; background: #fffdf8; }
.registration-change-submission-payment h4 { color: #986219; }
.registration-change-item { padding: 10px; border: 1px solid #c9ddec; border-radius: 7px; background: #f9fcff; }
.registration-change-item-source { display: block; margin-bottom: 4px; color: #187447; font-size: 8.5px; font-weight: 800; line-height: 1.25; }
.registration-change-item h4 { margin: 0; color: var(--ip-blue); font-size: 12px; }
.registration-change-item > p { margin: 4px 0 9px; color: #537496; font-size: 10px; line-height: 1.4; }
/* La solicitud del equipo se reconoce por su texto, sin convertir el bloque
   de edición en una alerta visual. */
.registration-change-item.is-team-required { border-color: #c9ddec; background: #f9fcff; }
.registration-change-item.is-team-required .registration-change-item-source { color: #55799c; }
.registration-change-item.is-team-required h4 { color: var(--ip-blue); }
.registration-change-item.is-team-required > p { color: #537496; }
.registration-change-documents { display: grid; gap: 8px; }
.registration-change-documents > p { margin-bottom: 1px; }
.registration-change-document-task { display: grid; gap: 6px; padding: 8px; border: 1px solid #ccddea; border-left: 3px solid #789abd; border-radius: 6px; background: #fff; }
.registration-change-document-task > b { color: var(--ip-blue); font-size: 10.5px; line-height: 1.3; }
.registration-change-document-task > p { margin: -2px 0 1px; color: #58779c; font-size: 9.5px; line-height: 1.35; }
.registration-change-document-task.is-team-required { border-color: #ccddea; border-left-color: #789abd; background: #fff; }
.registration-change-document-task.is-team-required > b { color: var(--ip-blue); }
.registration-change-document-task.is-team-required > p { color: #58779c; }
.registration-change-document-task.is-signature-required { border-color: #efd078; border-left-color: #d69b00; background: #fffdf5; }
.registration-change-document-task.is-signature-required > b { color: #8e6200; }
.registration-change-document-task.is-signature-presented { border-color: #98d9af; border-left-color: #0b9158; background: #f2fbf6; }
.registration-change-document-task.is-signature-presented > b { color: #087a42; }
.registration-change-document-task.is-signature-presented .registration-change-item-source { color: #9a6700; }
.registration-change-document-task .registration-change-item-source { margin: 0; }
.registration-change-document-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 1px; }
.registration-change-document-actions form { display: contents; }
.registration-change-document-task .registration-change-form { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.registration-change-document-task .registration-change-form .btn { margin-top: 0; }
.registration-change-document-submit { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; padding-top: 8px; border-top: 1px solid #c9dfd1; }
.registration-change-document-submit small { flex: 1 1 200px; color: #58779c; font-size: 9px; line-height: 1.35; }
.registration-change-document-submit .btn { margin: 0; }
.registration-document-hidden-input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.registration-correction-complete { border-color: #98d9af; background: #f2fbf6; }
.registration-correction-complete h4 { color: #087a42; }
.registration-correction-complete > p { margin-bottom: 3px; color: #287151; }
.registration-correction-complete small { color: #4d8068; font-size: 9px; line-height: 1.4; }
.registration-change-form { display: grid; gap: 6px; }
.registration-change-form label { color: var(--ip-blue); font-size: 10px; font-weight: 800; }
.registration-change-form input,
.registration-change-form textarea,
.registration-change-form select { box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid #adc3df; border-radius: 6px; color: var(--ip-blue); font: inherit; font-size: 11px; }
.registration-change-form input:not([type="file"]) { min-height: 34px; padding: 7px 9px; }
.registration-change-form select { min-height: 34px; padding: 7px 9px; background: #fff; }
.registration-change-form input[type="file"] { padding: 7px; background: #fff; }
.registration-change-form textarea { min-height: 90px; padding: 8px 9px; resize: vertical; }
.registration-change-form small { color: #6881a0; font-size: 9px; line-height: 1.35; }
.registration-correction-draft-status,
.registration-correction-draft-file-status { display: flex; align-items: center; gap: 4px; margin: 0; color: #55799d; font-size: 9px; font-weight: 700; line-height: 1.35; }
.registration-correction-draft-status i,
.registration-correction-draft-file-status i { color: #1f7ab6; }
.registration-correction-draft-status[data-state="saved"],
.registration-correction-draft-file-status { color: #21724b; }
.registration-correction-draft-status[data-state="saved"] i,
.registration-correction-draft-file-status i { color: #159055; }
.registration-correction-draft-status[data-state="error"] { color: #a46516; }
.registration-correction-draft-status[data-state="error"] i { color: #c68114; }
.registration-change-form .btn { justify-self: start; margin-top: 2px; }
.registration-change-form .btn[type="submit"] { justify-self: end; }
.modal-correction-awaiting-review { display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; border: 1px solid #ead18b; border-radius: 7px; background: #fffaf0; color: #805f18; }
.modal-correction-awaiting-review > i { margin-top: 1px; color: #c98b00; }
.modal-correction-awaiting-review > div { display: grid; gap: 3px; }
.modal-correction-awaiting-review b { font-size: 10px; line-height: 1.35; }
.modal-correction-awaiting-review p { margin: 0; color: #866d35; font-size: 9px; line-height: 1.4; }
.registration-consent-change-form { display: flex; align-items: center; gap: 10px; }
.registration-consent-change-form .admin-rectification-confirmation { flex: 1 1 250px; margin: 0; }
.registration-consent-change-form .btn[type="submit"] { flex: 0 0 auto; justify-self: auto; margin: 0; }
@media (max-width: 460px) {
    .registration-consent-change-form { align-items: flex-start; flex-wrap: wrap; }
    .registration-consent-change-form .btn[type="submit"] { margin-left: auto; }
}
.registration-work-keywords { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.registration-work-keywords input:last-child { grid-column: 1 / -1; }
.registration-change-overlay-photo .registration-change-window { width: min(960px, 100%); }
.registration-photo-change-layout { display: grid; grid-template-columns: minmax(190px, .75fr) minmax(320px, 1.25fr); gap: 13px; align-items: start; }
.registration-photo-change-fields { display: grid; gap: 6px; align-content: start; }
.registration-photo-preview-status { display: flex; align-items: flex-start; gap: 5px; margin: 2px 0 0; color: #57799c; font-size: 9px; font-weight: 700; line-height: 1.4; }
.registration-photo-preview-status i { margin-top: 1px; color: var(--ip-blue); }
.registration-photo-preview-status.is-selected { color: #08784c; }
.registration-photo-preview-status.is-selected i { color: #0b9158; }
.registration-photo-preview-status.is-warning { color: #9a6510; }
.registration-photo-preview-status.is-warning i { color: #c88710; }
.registration-photo-book-preview { padding: 9px; border: 1px solid #c8dced; border-radius: 8px; background: #f4f9fd; }
.registration-photo-book-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; color: var(--ip-blue); font-size: 10px; }
.registration-photo-book-preview-heading b { display: inline-flex; align-items: center; gap: 5px; }
.registration-photo-book-preview-heading i { color: var(--ip-gold); }
.registration-photo-book-preview-heading span { padding: 2px 5px; border: 1px solid #c8dced; border-radius: 4px; color: #67819d; background: #fff; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.registration-photo-book-preview .book-spread-preview { width: 100%; text-align: left; }
.registration-photo-book-preview-note { margin: 7px 0 0; color: #5f7e9c; font-size: 9px; line-height: 1.4; }
/* Una sola réplica canónica acompaña únicamente las correcciones que sí se
   publican en el libro. Estos estilos ordenan paneles externos; no alteran
   la composición, criterios ni bloques internos de la maqueta. */
.registration-change-overlay-book-preview .registration-change-window { width: min(1340px, 100%); }
.registration-change-overlay-book-preview .registration-change-window-body {
    grid-template-columns: minmax(320px, .88fr) minmax(500px, 1.12fr);
    align-items: start;
}
.registration-change-correction-controls { display: grid; grid-column: 1; grid-row: 1; gap: 10px; min-width: 0; }
.registration-change-book-preview { grid-column: 2; grid-row: 1; position: sticky; top: 0; align-self: start; min-height: 500px; }
/* El historial se muestra después de las tareas aún activas. Al enviar un
   bloque, éste desaparece del primer carril y el siguiente sube sin quedar
   separado por el resumen ya atendido. */
.registration-change-window-body > .registration-change-submission-summary { grid-column: 1; grid-row: 2; }
.registration-change-presentation { display: grid; gap: 10px; }
.registration-change-presentation .participant-work-correction-body {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
    padding: 0;
    overflow: visible;
    background: transparent;
}
.registration-change-presentation .participant-work-correction-editor { padding: 12px; overflow: visible; }
.registration-change-presentation .participant-work-correction-fields { overflow: visible; }
.participant-work-correction-photo { display: grid; gap: 6px; margin-bottom: 10px; padding: 10px; border: 1px solid #c9ddec; border-radius: 8px; background: #f8fbff; }
.participant-work-correction-photo > b { color: var(--ip-blue); font-size: 11px; }
.participant-work-correction-photo > p { margin: -2px 0 1px; color: #58779c; font-size: 9.5px; line-height: 1.4; }
.participant-work-correction-photo .registration-change-form { gap: 6px; }
.registration-change-book-preview .participant-work-correction-preview-heading span { padding: 2px 5px; border: 1px solid #c8dced; border-radius: 4px; color: #67819d; background: #fff; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.registration-change-book-preview .participant-work-correction-book { min-height: 430px; }
.registration-change-preview-linked-field,
.registration-change-verification-fields { display: grid; gap: 6px; padding: 9px; border: 1px solid #c9ddec; border-radius: 7px; background: #f8fbff; }
.registration-change-verification-fields { border-color: #d8e2eb; background: #fbfdff; }
.registration-change-field-group { display: inline-flex; align-items: center; gap: 5px; color: #176b40; font-size: 9px; font-weight: 800; line-height: 1.35; }
.registration-change-field-group i { color: #b78300; }
.registration-change-verification-fields .registration-change-field-group { color: #526f8d; }
.registration-change-verification-fields .registration-change-field-group i { color: #557da3; }
.registration-change-preview-linked-field > small,
.registration-change-verification-fields > small { color: #64809c; font-size: 9px; line-height: 1.35; }
@media (max-width: 980px) {
    .registration-change-overlay-book-preview .registration-change-window-body { grid-template-columns: 1fr; }
    .registration-change-correction-controls,
    .registration-change-book-preview { grid-column: 1; grid-row: auto; }
    .registration-change-book-preview { position: static; min-height: 420px; }
}
.admin-work-change-trigger { margin-left: 6px; padding: 2px 5px; border: 1px solid #b8d4ea; border-radius: 4px; color: var(--ip-blue); background: #fff; cursor: pointer; font: inherit; font-size: 8px; font-weight: 800; line-height: 1.2; }
.admin-work-change-trigger:hover { border-color: var(--ip-blue); background: #f1f7fc; }
.admin-work-change-review { display: grid; gap: 8px; margin-top: 11px; padding: 10px; border: 1px solid #c9ddec; border-left: 3px solid var(--ip-blue); border-radius: 7px; background: #f8fbff; }
.admin-work-change-review h4 { margin: 0; color: var(--ip-blue); font-size: 12px; }
.admin-work-change-review > p { margin: 0; color: #58789a; font-size: 10px; line-height: 1.45; }
.admin-work-change-scopes { display: grid; gap: 5px; margin: 0; padding: 8px; border: 1px solid #c9ddec; border-radius: 6px; background: #fff; }
.admin-work-change-scopes legend { padding: 0 3px; color: #58789a; font-size: 10px; font-weight: 800; }
.admin-work-change-scopes label { display: flex; align-items: center; gap: 6px; color: #315d8a; font-size: 10px; font-weight: 700; }
.admin-work-change-scopes input { width: 14px; height: 14px; margin: 0; accent-color: var(--ip-blue); }
.admin-work-change-actions { display: flex; flex-wrap: wrap; gap: 7px; }
@media (max-width: 720px) {
    .registration-photo-change-layout { grid-template-columns: 1fr; }
}
.admin-correction-request + .admin-correction-request { margin-top: 14px; padding-top: 14px; border-top: 1px solid #dce7f3; }
.admin-correction-request > p { font-size: 11px; line-height: 1.55; }

.supporting-documents { margin-top: 17px; padding-top: 16px; border-top: 1px solid #dce7f3; }
.supporting-documents h3 { margin: 0 0 4px; color: var(--ip-blue); font-size: 13px; }
.supporting-documents h3 i { margin-right: 7px; color: var(--ip-gold); }
.supporting-documents > p { margin: 0 0 11px; color: #58769b; font-size: 10.5px; }
.compact-upload { min-height: 102px; }

/* Parámetros editoriales de la convocatoria de libro. */
.field-help { color: #627da2; font-size: 10px; line-height: 1.4; }
.work-writing-guidance { display: block; margin-top: 7px; }
.work-writing-guidance i { margin-right: 4px; color: var(--ip-blue); }
.book-layout-status { margin-top: 6px !important; }
.field-help.counter-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    margin-top: 1px;
    padding: 3px 7px;
    border: 1px solid transparent;
    border-radius: 5px;
    font-weight: 700;
    line-height: 1.35;
}
.field-help.counter-status::before { font-family: "Font Awesome 6 Free"; font-weight: 900; }
.field-help.counter-status.is-empty,
.field-help.counter-status.is-error {
    color: #b63630;
    border-color: #f1b3ae;
    background: #fff5f4;
}
.field-help.counter-status.is-empty::before { content: "\f071"; }
.field-help.counter-status.is-error::before { content: "\f06a"; }
.field-help.counter-status.is-warning {
    color: #8a5c09;
    border-color: #e8c269;
    background: #fff9e9;
}
.field-help.counter-status.is-warning::before { content: "\f071"; }
.field-help.counter-status.is-checking {
    color: #285f91;
    border-color: #b6cee6;
    background: #f2f8fd;
}
.field-help.counter-status.is-checking::before { content: "\f110"; }
.field-help.counter-status.is-valid {
    color: #0d794c;
    border-color: #a9ddba;
    background: #f1fbf5;
}
.field-help.counter-status.is-valid::before { content: "\f058"; }
#participant-document-number.is-identity-conflict {
    border-color: #d69b1f;
    background: #fffaf0;
}
.counters { gap: 10px; }
.counter {
    min-height: 64px;
    padding: 10px 11px;
    border-width: 2px;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}
.counter b { font-size: 12px; }
.counter span { display: inline-block; margin-top: 4px; font-size: 12px; font-weight: 800; }
.counter.is-empty,
.counter.is-error,
.counter.exceeded {
    border-color: #ee9b94;
    background: #fff5f4;
    color: #b63630;
}
.counter.is-empty i,
.counter.is-error i,
.counter.exceeded i { color: #c7443d; }
.counter.is-valid {
    border-color: #8fd3aa;
    background: #effbf4;
    color: #116d46;
}
.counter.is-valid i { color: #11955b; }
.counter.is-not-applicable {
    border-color: #d4dde9;
    background: #f5f7fa;
    color: #7890ae;
}
.counter.is-not-applicable i { color: #8aa0ba; }
.form-main .fields > .field { align-content: start; min-width: 0; }
.form-main .fields > .field > input,
.form-main .fields > .field > select,
.form-main .fields > .field > textarea,
.form-main .fields > .field > .automatic-status { align-self: start; }
.poetry-work-information-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas:
        "category poetry-type stanza-type"
        "theme title title";
    align-items: start;
}
.poetry-work-information-fields .field:has(#category) { grid-area: category; }
.poetry-work-information-fields .field:has(#poetry-type) { grid-area: poetry-type; }
.poetry-work-information-fields .field:has(#stanza-type) { grid-area: stanza-type; }
.poetry-work-information-fields .field:has(#work-theme) { grid-area: theme; }
.poetry-work-information-fields .field:has(#work-title) { grid-area: title; }
.poetry-work-information-fields .field:has(#work-theme) > select { inline-size: 100%; max-inline-size: 100%; }
.poetry-work-information-fields .field:has(#biography) { grid-area: biography; }
.work-content-field { margin-top: 15px; }
.work-file-field { margin-top: 12px; }
.editorial-author-section .author-editorial-grid { margin-top: 2px; }
.editorial-author-section .author-editorial-grid > .field:has(#biography) { align-self: start; }
.editorial-author-section .motivation-keyword-field { margin-top: 15px; }
.preview-review { margin-top: 15px; padding-top: 14px; border-top: 1px solid #dce6f4; }

/* Ayuda del formulario: contactos institucionales y preguntas de la convocatoria. */
.form-page .side-help { display: grid; gap: 7px; }
.side-help h3 { margin-bottom: 0; color: var(--ip-blue); }
.side-help-intro { margin: 0; color: #5d7599; font-size: 10.5px; line-height: 1.4; }
.side-help-contacts { display: grid; gap: 5px; }
.side-help-contacts > a,
.side-help-phone { display: flex; align-items: flex-start; gap: 7px; color: #315f94; font-size: 10.5px; line-height: 1.35; }
.side-help-contacts a { color: #315f94; text-decoration: none; transition: color .18s ease; }
.side-help-contacts i { width: 12px; padding-top: 1px; color: var(--ip-gold); text-align: center; }
.side-help-contacts a:hover,
.side-help-contacts a:focus-visible { color: var(--ip-gold); text-decoration: none; }
.form-page .side-help-contacts a,
.form-page .side-help-contacts a:visited,
.form-page .side-help-contacts a:hover,
.form-page .side-help-contacts a:focus,
.form-page .side-help-contacts a:focus-visible,
.form-page .side-help-contacts a > i,
.form-page .side-help-contacts a > span { text-decoration: none !important; text-decoration-line: none !important; }
.form-page .side-help-contacts a:hover,
.form-page .side-help-contacts a:focus-visible { color: var(--ip-gold) !important; }
.side-help-faqs { margin: 0; padding: 12px; background: #fff; }
.side-help-faqs h3 { margin: 0 0 7px; color: var(--ip-blue); font-size: 13px; }
.side-help-faqs .faq-item { padding: 8px 1px; }
.side-help-faqs .faq-item summary { color: #17447f; font-size: 10.75px; }
.side-help-faqs .faq-item p,
.side-help-faq-empty { margin: 7px 0 0; color: #587297; font-size: 11px; line-height: 1.5; }

/* Estado de la inscripción: el color comunica avance, no errores prematuros. */
.side-registration-status { margin: 0; padding: 12px; }
.side-registration-status h3 { margin: 0 0 8px; color: var(--ip-blue); }
.participation-requirements-list { display: grid; margin: 0; padding: 0; list-style: none; }
.participation-requirements-list li { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; align-items: center; column-gap: 7px; padding: 7px 1px; border-top: 1px solid #dce6f4; color: #7285a0; font-size: 10.5px; line-height: 1.35; }
.participation-requirements-list li > i { width: 13px; color: #9aa9bb; text-align: center; }
.participation-requirements-list li > span { min-width: 0; }
.participation-requirements-list li > small { font-size: 9.5px; font-weight: 700; text-align: right; white-space: nowrap; }
.participation-requirements-list li.is-current { color: #9a6600; }
.participation-requirements-list li.is-current > i,
.participation-requirements-list li.is-current > small { color: #b57600; }
.participation-requirements-list li.is-complete { color: #267c55; }
.participation-requirements-list li.is-complete > i,
.participation-requirements-list li.is-complete > small { color: #15915b; }
.participation-requirements-list li.is-pending { color: #7a8ca7; }
/* Panel lateral de la inscripción: bloques independientes, sin sombras que se superpongan. */
.form-page > aside { display: grid; align-content: start; gap: 14px; }
.form-page > aside > .side-summary { margin-top: 0; }
.form-page > aside > .side-registration-status { order: 3; }
.form-page > aside > .side-help-faqs { order: 4; }
.form-page > aside > .side-help { order: 5; }
.form-page > aside > .book-spread-preview-compact,
.form-page > aside > .participant-stage-card,
.dashboard-side > .participant-stage-card { box-shadow: none; }
/* Los campos de pago de reserva mantienen el mismo ancho y línea de base. */
.reservation-fields > .field > input,
.reservation-payment .fields > .field > input,
.reservation-payment .fields > .field > select { width: 100%; }
@media (max-width: 820px) {
    .poetry-work-information-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
            "category poetry-type"
            "stanza-type theme"
            "title title";
    }
}
@media (max-width: 620px) {
    .poetry-work-information-fields {
        grid-template-columns: 1fr;
        grid-template-areas:
            "category"
            "poetry-type"
            "stanza-type"
            "theme"
            "title";
    }
}
.automatic-status { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 7px 10px; border: 1px solid #cbd9ea; border-radius: 6px; background: #f5f8fc; color: #6d84a4; cursor: default; }
.automatic-status > i { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #e1eaf5; color: #6c86a9; font-size: 10px; }
.automatic-status span { display: grid; gap: 1px; min-width: 0; }
.automatic-status b { color: #6a82a2; font-size: 11px; line-height: 1.2; }
.automatic-status small { color: #8094ae; font-size: 9px; line-height: 1.25; }
.automatic-status.is-calculated { background: #f2f7fd; border-color: #b8cce5; }
.automatic-status.is-calculated > i { background: #dbe9f8; color: var(--ip-blue); }
.automatic-status.is-calculated b { color: var(--ip-blue); }
.automatic-status.is-minor { border-color: #e9c66d; background: #fff8e5; }
.automatic-status.is-minor > i { background: #ffe5a2; color: #956000; }
.automatic-status.is-minor b { color: #8b5b00; }
.minor-document-guidance,
.minor-document-action-help { display: flex; align-items: flex-start; gap: 9px; margin: 10px 0 14px; padding: 10px 12px; border: 1px solid #efd185; border-left: 4px solid var(--ip-gold); border-radius: 7px; background: #fffaf0; color: #76581d; font-size: 11px; line-height: 1.4; }
.minor-document-guidance > i,
.minor-document-action-help > i { margin-top: 2px; color: #b98200; }
.minor-document-guidance > span,
.minor-document-action-help > span { display: grid; gap: 2px; flex: 1; }
.minor-document-guidance b,
.minor-document-action-help b { color: #805d10; font-size: 11px; }
.minor-document-guidance small,
.minor-document-action-help small { color: #806b3d; font-size: 10px; }
.minor-document-action-help { margin-top: 14px; margin-bottom: 0; }
.minor-document-action-help[hidden] { display: none !important; }
.minor-document-action-help.is-ready { border-color: #a9ddba; border-left-color: #15965b; background: #f2fcf5; }
.minor-document-action-help.is-ready > i { color: #15965b; }
.minor-document-action-help.is-ready b { color: #167a48; }
.minor-document-action-help.is-ready small { color: #46785d; }
.minor-documents-link { align-self: center; padding: 0; border: 0; background: transparent; color: var(--ip-blue); font-size: 10px; font-weight: 800; text-decoration: underline; cursor: pointer; }
.minor-document-action-help.is-ready .minor-documents-link { display: none; }
.format-guidance { display: flex; gap: 8px; align-items: flex-start; margin: 13px 0 0; padding: 10px 12px; border: 1px solid #d5e4f4; border-left: 4px solid var(--ip-gold); border-radius: 7px; background: #f8fbff; color: #42658f; font-size: 11px; line-height: 1.5; }
.format-guidance i { margin-top: 2px; color: var(--ip-blue); }
.poetry-structure-status { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 0; padding: 9px 12px; border: 1px solid #f0cb79; border-left: 4px solid var(--ip-gold); border-radius: 7px; background: #fffaf0; color: #815d16; font-size: 10.5px; line-height: 1.45; }
.poetry-structure-status i { margin-top: 2px; }
.poetry-structure-status.is-valid { border-color: #a8d9b8; border-left-color: #13a568; background: #f2fcf6; color: #147247; }
.poetry-structure-status.is-error { border-color: #f0aaa2; border-left-color: #d9463e; background: #fff6f5; color: #ad342e; }
.motivation-keyword-field { margin-top: 13px; }
.motivation-keyword-inputs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.motivation-keyword-inputs input { min-width: 0; }
.preview-book-note { margin: -4px 0 10px; color: #607b9f; font-size: 10px; line-height: 1.4; }

/* Doble página A5: obra a la izquierda y perfil del autor a la derecha. */
.book-spread-preview {
    --book-copy-size: 10px;
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    aspect-ratio: 2 / 1;
    overflow: hidden;
    padding: 6px;
    border: 1px solid #2c2a27;
    border-radius: 9px;
    background: linear-gradient(120deg, #25272a, #6e675d 6%, #25272a 10%, #171a1e 50%, #25272a 90%, #6e675d 94%, #25272a);
    box-shadow: 0 9px 18px rgba(50, 43, 33, .25);
    color: #34291f;
}
.book-spread-preview,
.book-spread-preview * {
    -webkit-user-select: none;
    user-select: none;
}
.book-spread-preview::after { content: ''; position: absolute; z-index: 3; top: 3px; bottom: 3px; left: 50%; width: 16px; transform: translateX(-50%); background: linear-gradient(90deg, rgba(45, 32, 20, .35), rgba(255,255,255,.55) 45%, rgba(65,48,32,.35)); filter: blur(1px); pointer-events: none; }
.book-page { position: relative; min-width: 0; overflow: hidden; padding: 7.5% 10%; background-color: #fbf2dd; background-image: radial-gradient(circle at 20% 15%, rgba(255,255,255,.85), transparent 36%), linear-gradient(110deg, rgba(105,80,45,.045), transparent 34%, rgba(105,80,45,.05)); }
.book-page-work { border-radius: 5px 2px 2px 5px; }
.book-page-author-profile { display: flex; flex-direction: column; align-items: center; border-radius: 2px 5px 5px 2px; text-align: center; }
.book-page-kicker { display: block; width: fit-content; padding-bottom: 5px; border-bottom: 1px solid #615446; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 1.05); font-style: italic; }
.book-page-kicker::after, .book-profile-rule::after { content: '◆'; display: block; color: #574a3f; font-size: calc(var(--book-copy-size) * .75); line-height: .5; text-align: center; }
.book-page-work h3 { margin: 8% 0 3%; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 2.45); font-weight: 600; line-height: 1.04; letter-spacing: -.035em; }
.book-page-author { margin: 0 0 9%; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 1.08); font-style: italic; }
.book-page-content { overflow: hidden; font-family: Georgia, 'Times New Roman', serif; font-size: var(--book-copy-size); line-height: 1.48; white-space: pre-line; }
.book-page-number { position: absolute; bottom: 5%; left: 50%; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 1.1); transform: translateX(-50%); }
.book-profile-rule { width: 52%; margin: 0 0 4%; border-top: 1px solid #514438; }
.book-profile-rule-small { margin: 5% 0 4%; }
.book-author-photo { position: relative; display: grid; width: 42%; aspect-ratio: 4 / 5; place-items: center; overflow: hidden; border: 2px solid #4b4036; border-radius: 7px; background: #e1dacb; box-shadow: 0 0 0 3px #f4ecd9, 0 0 0 4px #5b4e42; }
.book-author-photo i { color: #8b7a68; font-size: calc(var(--book-copy-size) * 3); }
.book-author-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.06); }
.book-author-photo.has-image i { display: none; }
.book-page-author-profile h4 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 1.48); font-weight: 600; line-height: 1.1; }
.book-author-city { margin: 2% 0 5%; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 1.02); font-style: italic; }
.book-biography-box { width: 86%; margin-top: auto; padding: 5% 6%; border: 1px solid #66574a; border-radius: 7px; text-align: left; }
.book-biography-box h5, .book-motivation h5 { margin: 0 0 4%; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * 1.2); font-weight: 600; text-align: center; }
.book-biography-box p { display: -webkit-box; margin: 0; overflow: hidden; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * .84); line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 6; }
.book-motivation { width: 100%; margin-top: 5%; }
.book-motivation h5 { margin-bottom: 2%; }
.book-motivation p { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: calc(var(--book-copy-size) * .85); font-style: italic; line-height: 1.3; }
.book-spread-preview-compact { --book-copy-size: 7px; }
.book-spread-preview-wide { --book-copy-size: 12px; width: min(940px, 100%); margin: 0 auto; }
.book-spread-preview-modal { --book-copy-size: 12px; width: 100%; }
.book-stage { margin-top: 15px; }
.modal-book-preview .book-spread-preview { text-align: left; }

@media (max-width: 820px) {
    .motivation-keyword-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .book-spread-preview-wide { --book-copy-size: 9px; }
    .book-spread-preview-modal { --book-copy-size: 10px; }
}

@media (max-width: 820px) {
    .registration-view-modal { width: min(96vw, 650px); max-height: 92vh; }
    .registration-view-modal-body { grid-template-columns: 1fr; max-height: calc(92vh - 103px); }
    .registration-view-side { border-top: 1px solid #dbe7f4; border-left: 0; }
}

@media (max-width: 520px) {
    .registration-view-modal { width: 100vw; max-height: 100vh; border: 0; border-radius: 0; }
    .registration-view-modal-body { max-height: calc(100vh - 103px); }
    .registration-view-modal-header { padding: 17px; }
    .registration-view-modal-header h2 { font-size: 18px; }
    .registration-view-main, .registration-view-side { padding: 14px; }
    .modal-work-heading { flex-direction: column; }
}

/* Maqueta editorial: marco de libro y contenido dinámico de la inscripción. */
.book-stage {
    display: grid;
    min-height: 0;
    place-items: center;
    margin-top: 15px;
    padding: 0;
    background: transparent;
}
.book-spread-preview {
    position: relative;
    display: block;
    isolation: isolate;
    aspect-ratio: 4 / 3;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 10px;
    background: #111823;
    box-shadow: 0 14px 28px rgba(20, 32, 48, .24);
    color: #2c2119;
    container-type: inline-size;
}
.book-spread-preview::after { display: none; }
.book-spread-frame {
    position: absolute;
    z-index: -1;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    user-select: none;
    pointer-events: none;
}
.book-page {
    position: absolute;
    z-index: 1;
    min-width: 0;
    height: auto;
    padding: 0;
    overflow: hidden;
    border-radius: 0;
    background: transparent;
}
.book-page-work {
    top: 5.7%;
    bottom: 6.5%;
    left: 10.4%;
    width: 30.3%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}
.book-page-kicker {
    display: block;
    width: fit-content;
    margin: 0;
    padding: 0 0 3.8%;
    border-bottom: 1px solid rgba(54, 41, 31, .7);
    color: #38291e;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(7px, 1.28cqw, 15px);
    font-style: italic;
    line-height: 1.1;
}
.book-page-kicker::after { content: '◆'; display: block; color: #584638; font-size: .65em; line-height: .3; text-align: center; }
.book-page-work h3 {
    margin: 6.3% 0 2.8%;
    color: #1f1711;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(13px, 3.35cqw, 42px);
    font-weight: 600;
    line-height: 1.03;
    letter-spacing: -.038em;
}
.book-page-author {
    margin: 0 0 4.8%;
    color: #392d23;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(7px, 1.34cqw, 16px);
    font-style: italic;
    line-height: 1.25;
}
.book-page-content {
    flex: 1;
    width: 100%;
    overflow: hidden;
    color: #2e241d;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(6px, 1.2cqw, 18px);
    line-height: 1.34;
    white-space: pre-line;
}
.book-page-number { display: none; }
.book-page-author-profile {
    top: 10%;
    bottom: 7%;
    left: 55.2%;
    width: 34.6%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.book-profile-rule { display: none; }
.book-author-photo {
    position: relative;
    display: grid;
    width: 53%;
    aspect-ratio: 4 / 5;
    flex: 0 0 auto;
    place-items: center;
    overflow: hidden;
    border: 1px solid #2f251d;
    border-radius: 5.5% 5.5% 5% 5%;
    outline: 2px solid rgba(253, 245, 225, .9);
    outline-offset: 3px;
    background: linear-gradient(135deg, #cfc4ae, #ece3d0);
    box-shadow: 0 0 0 5px rgba(72, 56, 40, .75), 0 2px 5px rgba(38, 27, 16, .35);
}
.book-author-photo::before,
.book-author-photo::after {
    position: absolute;
    z-index: 2;
    color: rgba(44, 34, 25, .78);
    font-family: Georgia, serif;
    font-size: clamp(6px, 1.2cqw, 15px);
    line-height: 1;
    pointer-events: none;
}
.book-author-photo::before { content: '❧'; top: 2px; left: 4px; }
.book-author-photo::after { content: '❧'; right: 4px; bottom: 2px; transform: rotate(180deg); }
.book-author-photo i { color: #897965; font-size: clamp(16px, 4cqw, 52px); }
.book-author-photo img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.06); }
.book-author-photo.has-image i { display: none; }
.book-page-author-profile h4 {
    max-width: 100%;
    margin: 6.5% 0 1.6%;
    color: #251b15;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(10px, 2.05cqw, 27px);
    font-weight: 600;
    line-height: 1.05;
}
.book-author-city {
    margin: 0 0 3.6%;
    color: #48362a;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(7px, 1.25cqw, 15px);
    font-style: italic;
    line-height: 1.15;
}
.book-biography-box {
    position: relative;
    width: 90%;
    margin-top: auto;
    padding: 5.4% 6.2%;
    border: 1px solid #5d4c3d;
    border-radius: 7px;
    background: rgba(255, 250, 235, .13);
    box-shadow: inset 0 0 0 2px rgba(249, 239, 216, .46);
    text-align: left;
}
.book-biography-box::before,
.book-biography-box::after {
    position: absolute;
    color: #4c3b2d;
    font-family: Georgia, serif;
    font-size: clamp(7px, 1.3cqw, 16px);
    line-height: 1;
}
.book-biography-box::before { content: '❧'; top: -5px; left: 7px; }
.book-biography-box::after { content: '❧'; right: 7px; bottom: -5px; transform: rotate(180deg); }
.book-biography-box h5,
.book-motivation h5 {
    margin: 0 0 4%;
    color: #2c2119;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(8px, 1.48cqw, 18px);
    font-weight: 600;
    line-height: 1.1;
    text-align: center;
}
.book-biography-box h5::before,
.book-biography-box h5::after,
.book-motivation h5::before,
.book-motivation h5::after { content: '❧'; margin: 0 .45em; color: #564231; font-size: .75em; }
.book-biography-box p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #34281f;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(5.5px, .94cqw, 11px);
    line-height: 1.38;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}
.book-motivation {
    width: 100%;
    margin-top: 4%;
    color: #38291f;
}
.book-motivation h5 { margin-bottom: 2.5%; }
.book-motivation p {
    margin: 0;
    overflow: hidden;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(5.5px, .96cqw, 12px);
    font-style: italic;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.book-spread-preview-compact { width: 100%; }
.book-spread-preview-wide { width: min(1050px, 100%); margin: 0 auto; }
.book-spread-preview-modal { width: 100%; }
.modal-book-preview .book-spread-preview { text-align: left; }

@media (max-width: 820px) {
    .book-page-work { left: 10.4%; width: 30.3%; }
    .book-page-author-profile { left: 55.2%; width: 34.6%; }
    .book-author-photo { width: 53%; }
}

/* Plantilla editorial establecida: los datos se colocan sobre sus zonas reales. */
.book-spread-template-established {
    aspect-ratio: 4 / 3;
}
.book-spread-template-established .book-page-work {
    top: 11.2%;
    bottom: 8.4%;
    left: 10.4%;
    /* Se aprovecha parte del margen editorial derecho para evitar cortes de una sola palabra. */
    width: 34%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}
/* Solo la prosa reserva un margen adicional antes del ornamento inferior.
   La altura reducida participa en la misma medición de desborde del formulario. */
.book-spread-template-established.book-spread-prose-safe-zone .book-page-work {
    bottom: 11%;
}
.book-spread-template-established .book-page-kicker { display: none; }
.book-spread-template-established .book-page-work h3 {
    margin: 0 0 clamp(2px, .51cqw, 6px);
    color: #18120d;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(8px, 3.43cqw, 36px);
    font-style: normal;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: 0;
}
.book-spread-template-established .book-page-author {
    margin: 0 0 clamp(5px, 1.35cqw, 14px);
    color: #34251a;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: min(1.62cqw, 17px);
    font-style: italic;
    font-weight: 500;
    line-height: 1.1;
}
.book-spread-template-established .book-page-content {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    overflow: hidden;
    color: #201812;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: min(1.20cqw, 12.6px);
    font-style: normal;
    font-weight: 400;
    line-height: 1.18;
    white-space: pre-wrap;
}
.book-spread-template-established .book-page-content .book-stanza {
    margin: 0;
    white-space: pre-wrap;
}
.book-spread-template-established .book-page-content .book-stanza + .book-stanza {
    margin-top: min(1.01cqw, 12px);
}
/* El formulario conserva el lienzo editorial aprobado en 870 x 652.5 px.
   La ventana o el zoom sólo reducen la pieza completa; nunca recomponen su contenido. */
.book-stage .book-form-canonical-canvas {
    --book-form-canonical-width: 870px;
    --book-form-canonical-height: 652.5px;
    --book-form-canonical-scale: 1;
    position: relative;
    width: 100%;
    min-width: 0;
    height: var(--book-form-canonical-height);
    overflow: hidden;
}
.book-stage .book-form-canonical-canvas > .book-spread-preview-wide {
    position: absolute;
    top: 0;
    left: 50%;
    width: var(--book-form-canonical-width) !important;
    max-width: none !important;
    margin: 0 !important;
    transform: translateX(-50%) scale(var(--book-form-canonical-scale));
    transform-origin: top center;
}
/* La miniatura del formulario no es una segunda maqueta. Renderiza el mismo
   libro amplio de la sección de edición y lo reduce como una sola pieza. */
.preview-book .book-form-preview-scale {
    --book-form-preview-source-width: 870px;
    --book-form-preview-scale: .35;
    position: relative;
    width: min(100%, 330px);
    margin-inline: auto;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
.preview-book .book-form-preview-scale > .book-spread-preview-wide {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--book-form-preview-source-width) !important;
    max-width: none !important;
    margin: 0 !important;
    transform: scale(var(--book-form-preview-scale));
    transform-origin: top left;
}
/* Réplica de la ficha: el formulario conserva su propio libro. Las vistas
   posteriores sólo escalan la misma maqueta fija; jamás vuelven a componer
   texto, márgenes ni tipografías dentro de una ventana más angosta. */
.book-spread-form-replica {
    /* Ancho real de la maqueta oficial que se muestra en el formulario.
       La réplica sólo la reduce como una pieza completa. */
    --book-form-replica-canvas-width: 870px;
    --book-form-replica-scale: 1;
    position: relative;
    width: 100%;
    min-width: 0;
    height: 652.5px;
}
.book-spread-form-replica > .book-spread-form-replica-canvas {
    position: absolute;
    top: 0;
    left: 50%;
    width: var(--book-form-replica-canvas-width) !important;
    max-width: none !important;
    margin: 0 !important;
    transform: translateX(-50%) scale(var(--book-form-replica-scale));
    transform-origin: top center;
}
/* Documento editorial aislado para las tres vistas posteriores al formulario.
   Ninguna regla del modal puede entrar al iframe y alterar la composición. */
.editorial-canonical-embed {
    --editorial-canonical-scale: 1;
    --editorial-canonical-offset-x: 0px;
    --editorial-canonical-canvas-width: 870px;
    --editorial-canonical-canvas-height: 652.5px;
    --editorial-canonical-viewport-width: 894px;
    --editorial-canonical-viewport-height: 676.5px;
    position: relative;
    width: 100%;
    min-width: 0;
    height: var(--editorial-canonical-viewport-height);
    overflow: hidden;
}
.editorial-canonical-embed-frame {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: var(--editorial-canonical-viewport-width);
    height: var(--editorial-canonical-viewport-height);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    transform: translateX(var(--editorial-canonical-offset-x)) scale(var(--editorial-canonical-scale));
    transform-origin: top left;
}
/* Esta capa reproduce los valores finales del formulario, únicamente sobre
   los libros posteriores. Evita que las reglas genéricas del modal vuelvan a
   desplazar el texto o recuperen el margen amplio del párrafo del autor. */
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-work {
    top: 11.2% !important;
    right: auto;
    bottom: 8.4% !important;
    left: 10.4% !important;
    width: 34% !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established.book-spread-prose-safe-zone .book-page-work {
    bottom: 11% !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-work h3 {
    margin: 0 0 clamp(2px, .51cqw, 6px) !important;
    color: #18120d !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: clamp(8px, 3.43cqw, 36px) !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-author {
    margin: 0 0 clamp(5px, 1.35cqw, 14px) !important;
    color: #34251a !important;
    font-family: 'EB Garamond', Georgia, serif !important;
    font-size: min(1.62cqw, 17px) !important;
    font-style: italic !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-content {
    display: block !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    overflow: hidden !important;
    color: #201812 !important;
    font-family: 'EB Garamond', Georgia, serif !important;
    font-size: min(1.20cqw, 12.6px) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 1.18 !important;
    text-align: left !important;
    text-align-last: left !important;
    white-space: pre-wrap !important;
    word-spacing: normal !important;
}
/* En la vista de cambio de fotografía el poema llega renderizado por Blade.
   La sangría HTML entre el contenedor y su primera estrofa no forma parte de
   la obra y no debe convertirse en una línea vacía. Cada estrofa conserva su
   propio pre-wrap para respetar exactamente los versos y saltos registrados. */
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established.book-spread-preview-photo-change .book-page-content {
    white-space: normal !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-content .book-stanza {
    margin: 0 !important;
    white-space: pre-wrap !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-content .book-stanza + .book-stanza {
    margin-top: min(1.01cqw, 12px) !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-author-profile {
    inset: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-photo {
    position: absolute !important;
    top: 10.9% !important;
    left: 64.05% !important;
    width: 18.1% !important;
    height: auto !important;
    aspect-ratio: 7 / 9 !important;
    display: block !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 4% !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-photo::before,
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-photo::after,
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-photo i {
    display: none !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-photo img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    filter: grayscale(1) contrast(1.06) !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-identification {
    position: absolute !important;
    top: 48.3% !important;
    left: 53.17% !important;
    width: 39.865% !important;
    text-align: center !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-page-author-profile h4 {
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
    color: #1f1711 !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: clamp(4px, 2.286cqw, 24px) !important;
    font-style: normal !important;
    font-weight: 600 !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-author-city {
    position: static !important;
    width: auto !important;
    margin: clamp(1px, .36cqw, 4px) 0 0 !important;
    color: #3d2c20 !important;
    font-family: 'EB Garamond', Georgia, serif !important;
    font-size: clamp(6px, 1.429cqw, 15px) !important;
    font-style: italic !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    overflow: visible !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-biography-box {
    position: absolute !important;
    top: 65% !important;
    left: 57.4% !important;
    width: 30.4% !important;
    height: 15.5% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-biography-box::before,
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-biography-box::after,
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-biography-box h5 {
    display: none !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-biography-box p {
    display: block !important;
    margin: 0 !important;
    overflow: hidden !important;
    color: #2a2018 !important;
    font-family: 'EB Garamond', Georgia, serif !important;
    font-size: clamp(3px, 1.238cqw, 13px) !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 1.32 !important;
    text-align: justify !important;
    text-align-last: left !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-motivation {
    position: absolute !important;
    top: 88.1% !important;
    left: 56.2% !important;
    width: 33.5% !important;
    margin: 0 !important;
    overflow: visible !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-motivation h5 {
    display: none !important;
}
.book-spread-form-replica > .book-spread-form-replica-canvas.book-spread-template-established .book-motivation p {
    margin: 0 !important;
    overflow: visible !important;
    color: #2c2119 !important;
    font-family: 'EB Garamond', Georgia, serif !important;
    font-size: clamp(3px, 1.267cqw, 13.3px) !important;
    font-style: italic !important;
    font-weight: 500 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}
/* La maqueta registrada no vuelve a calcular líneas: se escala como una página. */
.book-spread-template-established.book-spread-editorial-layout .book-page-work h3 { font-size: 3.43cqw; }
.book-spread-template-established.book-spread-editorial-layout .book-page-author { font-size: 1.62cqw; }
.book-spread-template-established.book-spread-editorial-layout .book-page-content { font-size: 1.20cqw; }
.book-spread-template-established.book-spread-editorial-layout .book-prose-visual-line,
.book-spread-template-established.book-spread-preview-compact.book-spread-prose-safe-zone .book-prose-visual-line {
    display: block;
    white-space: nowrap;
}
.book-spread-template-established .book-page-author-profile {
    inset: 0;
    display: block;
    width: auto;
    height: auto;
    overflow: visible;
}
.book-spread-template-established .book-author-photo {
    position: absolute;
    top: 10.9%;
    left: 64.05%;
    width: 18.1%;
    height: auto;
    aspect-ratio: 7 / 9;
    display: block;
    overflow: hidden;
    border: 0;
    border-radius: 4%;
    outline: 0;
    /* La textura real del libro debe ser el fondo del retrato. */
    background: transparent;
    box-shadow: none;
    /* Área de retrato tamaño pasaporte: 3.5 × 4.5 cm. */
}
.book-spread-template-established .book-author-photo::before,
.book-spread-template-established .book-author-photo::after,
.book-spread-template-established .book-author-photo i { display: none; }
.book-spread-template-established .book-author-photo img {
    position: static;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.06);
}
.book-spread-template-established .book-author-identification {
    position: absolute;
    top: 48.3%;
    left: 53.17%;
    width: 39.865%; /* 118 mm útiles: 148 - 16 mm interiores - 14 mm exteriores. */
    text-align: center;
}
.book-spread-template-established .book-page-author-profile h4 {
    position: static;
    width: 100%;
    margin: 0;
    color: #1f1711;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(4px, 2.286cqw, 24px);
    font-style: normal;
    font-weight: 600;
    line-height: 1.05;
    text-align: center;
}
.book-spread-template-established .book-author-city {
    position: static;
    width: auto;
    margin: clamp(1px, .36cqw, 4px) 0 0;
    color: #3d2c20;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: clamp(3px, 1.429cqw, 15px);
    font-style: italic;
    font-weight: 500;
    line-height: 1;
    text-align: center;
}
.book-spread-template-established .book-biography-box {
    position: absolute;
    top: 65%;
    left: 57.4%;
    width: 30.4%;
    height: 15.5%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.book-spread-template-established .book-biography-box::before,
.book-spread-template-established .book-biography-box::after,
.book-spread-template-established .book-biography-box h5 { display: none; }
.book-spread-template-established .book-biography-box p {
    display: block;
    margin: 0;
    overflow: hidden;
    color: #2a2018;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: clamp(3px, 1.238cqw, 13px);
    font-style: normal;
    font-weight: 400;
    line-height: 1.32;
    text-align: justify;
    text-align-last: left;
}
.book-spread-template-established .book-biography-box p .book-biography-line {
    display: block;
    text-align: justify;
    text-align-last: justify;
    white-space: nowrap;
}
.book-spread-template-established .book-biography-box p .book-biography-line:last-child {
    text-align-last: left;
}
.book-spread-template-established .book-motivation {
    position: absolute;
    top: 88.1%;
    left: 56.2%;
    width: 33.5%;
    margin: 0;
    overflow: visible;
}
.book-spread-template-established .book-motivation h5 { display: none; }
.book-spread-template-established .book-motivation p {
    margin: 0;
    overflow: visible;
    color: #2c2119;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: clamp(3px, 1.267cqw, 13.3px);
    font-style: italic;
    font-weight: 500;
    line-height: 1.15;
    text-align: center;
    text-overflow: clip;
    white-space: nowrap;
}
.registration-primary-action {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) 12px;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 7px 11px;
    border-left: 4px solid var(--ip-gold);
    background: var(--ip-blue);
    color: #fff !important;
    font-size: 12px;
    font-weight: 800;
    transition: background-color .18s ease, color .18s ease, transform .18s ease;
}
.registration-primary-action > i:first-child { color: var(--ip-gold); font-size: 15px; }
.registration-primary-action span { display: grid; gap: 1px; }
.registration-primary-action small { color: rgba(255, 255, 255, .76); font-size: 8.5px; font-weight: 700; letter-spacing: .035em; text-transform: uppercase; }
.registration-primary-action .registration-action-arrow { font-size: 11px; }
.registration-primary-action:hover,
.registration-primary-action:focus-visible {
    background: var(--ip-gold);
    color: var(--ip-blue) !important;
    transform: translateY(-1px);
    text-decoration: none !important;
}
.registration-primary-action:hover > i:first-child,
.registration-primary-action:focus-visible > i:first-child,
.registration-primary-action:hover small,
.registration-primary-action:focus-visible small { color: var(--ip-blue); }

.registration-secondary-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}
.registration-secondary-actions a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 15px;
    color: var(--ip-blue);
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    transition: color .18s ease;
}
.registration-secondary-actions a:first-child { padding-left: 0; }
.registration-secondary-actions a + a { border-left: 1px solid #cfdeed; }
.registration-secondary-actions i { color: var(--ip-gold); font-size: 14px; }
.registration-secondary-actions a:hover,
.registration-secondary-actions a:focus-visible {
    color: var(--ip-blue) !important;
    text-decoration: underline;
    text-decoration-color: var(--ip-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

/* Reemplazo del comprobante dentro del detalle de inscripción. */
.payment-observation,
.detail-note { color: #496789; font-size: 11px; line-height: 1.45; }
.payment-update-form {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #dce7f3;
}
.payment-update-form label { color: var(--ip-blue); font-size: 10px; font-weight: 800; }
.payment-update-form input {
    width: 100%;
    min-height: 33px;
    padding: 6px 8px;
    border: 1px solid var(--ip-blue-line);
    border-radius: 4px;
    color: var(--ip-blue);
    font-size: 11px;
}
.payment-update-form .btn { justify-self: start; }

/* Formulario independiente de reserva: no duplica ni mezcla el pago de inscripción. */
.reservation-page {
    display: grid;
    min-height: calc(100vh - 310px);
    place-items: center;
    padding: 28px 20px;
    background: linear-gradient(135deg, #f2f8ff, #fff);
}
.reservation-form-card {
    width: min(760px, 100%);
    padding: 27px 30px 24px;
    border: 1px solid var(--ip-blue-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(5, 74, 123, .07);
}
.reservation-form-heading h1 {
    margin: 7px 0 5px;
    color: var(--ip-blue);
    font-size: 27px;
    letter-spacing: -1px;
}
.reservation-form-heading > p { margin: 0; color: #53729c; font-size: 12.5px; }
.reservation-error {
    margin: 14px 0 0;
    padding: 8px 10px;
    border-left: 3px solid #d65c43;
    background: #fff5f1;
    color: #a7432c;
    font-size: 11px;
}
.reservation-event {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-top: 18px;
    padding: 12px 0;
    border-top: 1px solid #dce7f3;
    border-bottom: 1px solid #dce7f3;
}
.reservation-event > i {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    background: var(--ip-gold-soft);
    color: var(--ip-blue);
    font-size: 18px;
}
.reservation-event div { display: grid; gap: 2px; }
.reservation-event span,
.reservation-event small { color: #52709a; font-size: 10px; }
.reservation-event b { color: var(--ip-blue); font-size: 13px; }
.reservation-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: end;
    padding: 16px 0;
}
.reservation-price {
    display: grid;
    gap: 2px;
    padding: 8px 0 8px 13px;
    border-left: 3px solid var(--ip-gold);
}
.reservation-price span,
.reservation-price small { color: #52709a; font-size: 10px; }
.reservation-price strong { color: var(--ip-blue); font-size: 21px; line-height: 1.1; }
.reservation-payment {
    padding-top: 17px;
    border-top: 1px solid #dce7f3;
}
.reservation-payment h2 { margin: 0 0 4px; color: var(--ip-blue); font-size: 15px; }
.reservation-payment h2 i { color: var(--ip-gold); margin-right: 7px; }
.reservation-payment > p { margin: 0 0 13px; color: #52709a; font-size: 11px; }
.reservation-payment-correction {
    display: grid;
    gap: 8px;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid #dce7f3;
}
.reservation-payment-correction summary {
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 11px;
    font-weight: 800;
}
.reservation-payment-correction summary i { margin-right: 4px; color: var(--ip-gold); }
.reservation-payment-correction > p {
    margin: 0;
    color: #9d3b30;
    font-size: 10.5px;
    line-height: 1.45;
}
.reservation-payment-correction-form {
    display: grid;
    gap: 8px;
}
.reservation-payment-correction-form label {
    display: grid;
    gap: 4px;
    color: #57769b;
    font-size: 10px;
    font-weight: 800;
}
.reservation-payment-correction-form input,
.reservation-payment-correction-form select { width: 100%; min-width: 0; }
.reservation-payment-correction-form small { color: #6a82a0; font-size: 9.5px; line-height: 1.35; }
.reservation-payment-participant-notice {
    position: relative;
    display: grid;
    gap: 7px;
    margin-top: 10px;
    padding: 11px 12px;
    border: 1px solid #edd48d;
    border-left: 4px solid #d89a08;
    border-radius: 8px;
    background: #fffaf0;
}
.reservation-payment-participant-notice h4 {
    margin: 0;
    color: #825d0b;
    font-size: 11px;
    line-height: 1.3;
}
.reservation-payment-participant-notice h4 i { margin-right: 5px; color: #c78900; }
.reservation-payment-participant-notice p {
    margin: 0;
    color: #6e5a2e;
    font-size: 10px;
    line-height: 1.45;
}
.reservation-payment-participant-notice > small {
    color: #7d6b42;
    font-size: 9.5px;
    line-height: 1.35;
}
.reservation-payment-participant-notice.rejected {
    border-color: #e6aea5;
    border-left-color: #cc5141;
    background: #fff4f2;
}
.reservation-payment-participant-notice.rejected h4 { color: #9b3629; }
.reservation-payment-participant-notice.rejected h4 i { color: #c84636; }
.reservation-payment-participant-notice.rejected p { color: #79463f; }
.reservation-payment-participant-notice.rejected > small { color: #8b5b53; }
.modal-reservation-card .reservation-payment-participant-notice { margin-top: 9px; }
.sidebar-reservation-content .reservation-payment-participant-notice { margin-bottom: 2px; }
.reservation-delivery-unavailable {
    display: inline-flex;
    align-items: center;
    min-height: 19px;
    color: #667b91;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}
.reservation-payment-bottom {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 12px;
    margin-top: 12px;
}
.reservation-payment-bottom .upload { min-height: 94px; }
.reservation-payment-bottom .payment-info { min-height: 94px; }
.reservation-form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #dce7f3;
}

@media (max-width: 820px) {
    .registration-card-current { grid-template-columns: 105px minmax(0, 1fr); }
    .registration-status { grid-column: 1 / -1; grid-template-columns: auto auto 1fr; align-items: center; padding: 10px 0 0; border-top: 1px solid #dce7f3; border-left: 0; }
    .registration-work-correction-notice { grid-column: 1 / -1; max-width: 360px; }
    .registration-code { margin-left: auto; padding: 0 0 0 12px; border-top: 0; border-left: 1px solid #dce7f3; }
    .registration-card-current .registration-actions { display: flex; }
}
@media (max-width: 520px) {
    .registration-card-current { grid-template-columns: 1fr; }
    .registration-card-current .mini-book { margin: 0; }
    .registration-status { grid-column: auto; grid-template-columns: 1fr; }
    .registration-code { margin-left: 0; padding: 8px 0 0; border-top: 1px solid #dce7f3; border-left: 0; }
    .registration-card-current .registration-actions { display: flex; gap: 12px; }
    .registration-secondary-actions { align-items: flex-start; flex-direction: column; gap: 8px; }
    .registration-secondary-actions a,
    .registration-secondary-actions a:first-child { padding: 0; }
    .registration-secondary-actions a + a { border-left: 0; }
    .reservation-page { min-height: auto; padding: 22px 14px; }
    .reservation-form-card { padding: 23px 20px; }
    .reservation-fields,
    .reservation-payment-bottom { grid-template-columns: 1fr; }
    .reservation-form-actions { align-items: stretch; flex-direction: column-reverse; }
    .reservation-form-actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .info-card, .category-card, .category-icon { transition: none; }
    .info-card:hover, .category-card:hover { transform: none; }
    .status-chip, .status-chip::before { animation: none; transition: none; }
}

/* Vista interna de inscripción: expediente a los lados y doble página al centro. */
.registration-view-modal {
    width: min(1840px, calc(100vw - 30px));
    max-height: min(93vh, 1080px);
}
.registration-view-modal-header { align-items: center; }
.registration-view-header-content { display: flex; min-width: 0; align-items: center; gap: 20px; }
.registration-view-header-logo { width: 215px; max-height: 70px; object-fit: contain; padding-right: 20px; border-right: 1px solid #dbe7f4; }
.registration-view-modal-header h2 { margin: 0; font-family: 'Playfair Display', Georgia, serif; font-size: 20px; }
.registration-view-modal-header h2 span { color: var(--ip-navy); }
.registration-view-modal-header h2 b { margin: 0 5px; color: #6f86a7; }
.registration-view-modal-header p { margin-top: 4px; }
.registration-view-modal-body {
    grid-template-columns: minmax(205px, .54fr) minmax(0, 2.1fr) minmax(260px, .72fr);
    max-height: calc(min(93vh, 1080px) - 103px);
    overflow: auto;
}
.registration-view-documents,
.registration-view-main,
.registration-view-side {
    display: grid;
    align-content: start;
    gap: 13px;
    padding: 19px 17px;
}
.registration-view-documents {
    grid-column: 3;
    grid-row: 1;
    border-right: 0;
    border-left: 0;
    background: #fbfdff;
}
.registration-view-main { grid-column: 2; grid-row: 1; padding: 19px 24px 19px 32px; border: 0; background: #fff; box-shadow: none; }
.registration-view-side {
    grid-column: 1;
    grid-row: 1;
    border-top: 0;
    border-right: 0;
    border-left: 0;
    background: #fbfdff;
}
.modal-participant-profile { display: grid; justify-items: center; gap: 5px; padding: 2px 0 6px; text-align: center; }
.modal-participant-profile img,
.modal-participant-placeholder { display: grid; width: 112px; height: 112px; place-items: center; border: 3px solid #fff; border-radius: 50%; background: #e6effa; box-shadow: 0 2px 8px rgba(25, 64, 124, .16); color: var(--ip-blue); font-size: 37px; object-fit: cover; }
.modal-participant-profile strong { margin-top: 6px; color: var(--ip-navy); font-family: 'Playfair Display', Georgia, serif; font-size: 17px; line-height: 1.23; }
.modal-participant-profile span:not(.modal-participant-placeholder) { color: #54749c; font-size: 11px; }
.modal-participant-profile small { color: #6f86a7; font-size: 10px; }
.participant-contact-data-list { display: grid; gap: 0; margin: 0; }
.participant-contact-data-list > div {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.15fr);
    gap: 7px;
    padding: 8px 0;
    border-bottom: 1px solid #dce7f3;
    font-size: 10.5px;
    line-height: 1.38;
}
.participant-contact-data-list > div:last-child { border-bottom: 0; }
.participant-contact-data-list dt { color: #6680a2; }
.participant-contact-data-list dd { margin: 0; color: var(--ip-blue); font-weight: 700; overflow-wrap: anywhere; }
.modal-registration-status { display: grid; gap: 9px; }
.modal-registration-status h3 { margin-bottom: 1px; }
.modal-registration-status h3,
.modal-payment-panel h3,
.modal-reservation-panel h3 {
    font-size: 13px;
    letter-spacing: -.18px;
    white-space: nowrap;
}
.modal-registration-status .status-chip { justify-self: start; }
.modal-registration-status p { margin: 0; color: #44658f; font-size: 11px; line-height: 1.5; }
.modal-registration-status small { padding-top: 8px; border-top: 1px solid #dce7f3; color: #627da0; font-size: 10.5px; }
.modal-registration-status small i { margin-right: 5px; color: var(--ip-blue); }
.modal-registration-status small b { color: var(--ip-blue); }
.modal-payment-card { gap: 9px; padding: 0; border: 0; border-radius: 0; background: transparent; }
.modal-payment-card-heading { display: flex; justify-content: space-between; gap: 9px; align-items: baseline; }
.modal-payment-card-heading b { color: var(--ip-blue); }
.modal-payment-card-heading strong { color: var(--ip-navy); font-size: 17px; white-space: nowrap; }
.modal-payment-card-heading .modal-included-label {
    color: #2f6b59;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}
.modal-payment-inclusion {
    margin: -2px 0 0;
    color: #2f6b59;
    font-size: 10.5px;
    line-height: 1.45;
}
.modal-payment-inclusion i { color: #ffbd19; margin-right: 5px; }
.modal-payment-inclusion b { color: #19518b; }
.modal-payment-details { display: grid; gap: 5px; color: #5c779a; font-size: 10.5px; }
.modal-payment-details i { width: 15px; color: var(--ip-blue); text-align: center; }
.modal-payment-details b { color: #244f86; }
.modal-reservation-delivery { display: flex; align-items: center; gap: 6px; color: #5c779a; }
.modal-reservation-delivery .status-chip { min-height: 24px; padding-top: 4px; padding-bottom: 4px; }
.modal-included-payment-status,
.sidebar-reservation-payment-status {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}
.modal-included-payment-status {
    color: #5c779a;
    font-size: 10.5px;
    line-height: 1.35;
}
.modal-included-payment-status > i {
    width: 15px;
    color: var(--ip-blue);
    font-size: 10.5px;
    text-align: center;
}
.modal-included-payment-status .status-chip,
.sidebar-reservation-payment-status .status-chip {
    max-width: 100%;
    min-height: 24px;
    padding-top: 4px;
    padding-bottom: 4px;
    line-height: 1.3;
    white-space: normal;
}
.modal-payment-card .modal-file-actions { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 3px; }
.modal-payment-card .modal-file-actions .btn { padding: 7px 9px; font-size: 10px; }
.modal-payment-no-receipt { margin: 0; color: #9b6500; font-size: 10px; }
.modal-payment-no-receipt i { margin-right: 5px; }
.registration-view-main .modal-work-panel {
    padding: 0;
    border: 0;
    background: transparent;
}
.registration-view-main .modal-work-heading {
    align-items: center;
    margin: 0 0 10px;
    padding: 0 2px;
}
.registration-view-main .modal-work-heading h3 { margin: 5px 0 2px; font-size: 16px; }
.registration-view-main .modal-work-heading p { margin: 0; color: #54749c; font-size: 11px; }
.registration-view-main .modal-book-preview { margin-bottom: 7px; }
.registration-view-main .modal-book-preview .book-spread-preview { width: min(100%, 1120px); margin: 0 auto; }
.registration-view-main .modal-document-links { display: none; }
.modal-documents-in-right { display: none; }
.modal-file-list { display: grid; gap: 0; }
.modal-file-item-link {
    color: inherit;
    text-decoration: none;
}
.dashboard .registration-view-modal a.modal-file-item-link:hover,
.dashboard .registration-view-modal a.modal-file-item-link:focus-visible {
    color: var(--ip-blue);
    background: #f4f9ff;
    text-decoration: none !important;
    text-decoration-line: none !important;
}
.modal-file-item-link > i { color: var(--ip-gold); font-size: 11px; }
.registration-view-documents .modal-notice { margin-top: 11px; }
.registration-view-documents .modal-event-meta { grid-template-columns: 1fr; gap: 5px; }
.registration-view-documents .modal-event-meta b { padding-bottom: 7px; border-bottom: 1px solid #e2ebf5; }

@media (max-width: 1180px) {
    .registration-view-modal { width: min(96vw, 1180px); }
    .registration-view-modal-body { grid-template-columns: minmax(180px, .52fr) minmax(0, 1.7fr) minmax(220px, .68fr); }
    .registration-view-documents,
    .registration-view-main,
    .registration-view-side { padding: 16px 13px; }
    .registration-view-main { padding-left: 21px; }
}
@media (max-width: 820px) {
    .registration-view-modal-body { grid-template-columns: 1fr; }
    .registration-view-documents,
    .registration-view-main,
    .registration-view-side { grid-column: auto; grid-row: auto; border: 0; border-top: 1px solid #dbe7f4; }
    .registration-view-main { order: -1; padding-left: 13px; }
    .registration-view-header-content { gap: 12px; }
    .registration-view-header-logo { width: 150px; max-height: 54px; padding-right: 12px; }
}

/* Nombre: 18 pt, una sola fila dentro del ancho útil de la página derecha. */
.book-spread-template-established .book-page-author-profile h4 {
    display: block;
    min-height: 0;
    overflow: visible;
    font-size: clamp(4px, 2.286cqw, 24px);
    letter-spacing: 0;
    white-space: nowrap;
}
.book-spread-template-established .book-author-city {
    top: auto;
    font-size: clamp(6px, 1.429cqw, 15px);
    overflow: visible;
    text-overflow: clip;
    white-space: nowrap;
}
.book-spread-template-established .book-author-photo img[hidden] { display: none !important; }

.hero-copy h1 {
    max-width: 680px;
    font-size: clamp(24px, 1.8vw, 30px);
    line-height: 1.16;
    letter-spacing: -1.15px;
}
.hero-organizers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 22px; }

@media (max-width: 700px) {
    .hero-organizers { grid-template-columns: minmax(0, 1fr); }
    .hero-copy h1 { font-size: clamp(22px, 6.2vw, 28px); }
}

/*
 * Adaptación de ventana: conserva la maqueta de escritorio y reorganiza
 * columnas antes de que el texto llegue a comprimirse o superponerse.
 */
@media (max-width: 1180px) {
    .home-bottom,
    .dashboard-layout,
    .form-page,
    .convocation-detail-layout { grid-template-columns: minmax(0, 1fr); }

    .home-bottom .side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-layout { gap: 18px; }

    .admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-wide { grid-column: 1 / -1; }
    .admin-side { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admin-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admin-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }

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

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

    .registration-card-current {
        grid-template-columns: 126px minmax(0, 1fr);
        min-height: 0;
    }
    .registration-card-current .mini-book { width: 96px; height: 143px; }
    .registration-card-current .registration-status {
        grid-column: 1 / -1;
        grid-template-columns: auto auto minmax(0, 1fr);
        align-items: center;
        padding: 10px 0 0;
        border-top: 1px solid #dce7f3;
        border-left: 0;
    }
    .registration-card-current .registration-code {
        justify-self: end;
        padding-top: 0;
        border-top: 0;
        text-align: right;
    }
    .registration-card-current .registration-actions { gap: 8px; }
    .registration-card-current .registration-action-button { flex: 1 1 180px; }

    .convocation-detail-header { grid-template-columns: minmax(0, 1fr); }
    .convocation-dates { max-width: 560px; }
}

@media (max-width: 700px) {
    .home-bottom .side-stack,
    .admin-grid,
    .admin-side { grid-template-columns: minmax(0, 1fr); }
    .admin-wide,
    .admin-side { grid-column: auto; }
    .admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .registration-card-current { grid-template-columns: minmax(0, 1fr); }
    .registration-card-current .mini-book { margin: 0; }
    .registration-card-current .registration-status {
        grid-column: auto;
        grid-template-columns: auto minmax(0, 1fr);
    }
    .registration-card-current .registration-status-label { grid-column: 1 / -1; }
    .registration-card-current .registration-code { grid-column: 2; grid-row: 2; }
    .registration-card-current .timeline {
        min-width: max-content;
        padding-bottom: 3px;
    }
    .registration-card-current .registration-main { overflow-x: auto; }
    .registration-card-current .registration-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .registration-card-current .registration-action-button { width: 100%; min-width: 0; }
    .registration-card-current .registration-organizers { grid-template-columns: minmax(0, 1fr); }

    .convocation-categories,
    .accepted-themes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .dashboard-header h1 { font-size: 28px; }
    .stat-grid,
    .admin-stats,
    .registration-card-current .registration-actions,
    .convocation-categories,
    .accepted-themes-grid { grid-template-columns: minmax(0, 1fr); }

    .registration-card-current { padding: 16px; }
    .registration-card-current .registration-status { grid-template-columns: minmax(0, 1fr); }
    .registration-card-current .registration-code { justify-self: start; grid-column: auto; grid-row: auto; text-align: left; }
    .registration-card-current .registration-actions { display: grid; }
}

/* Resumen operativo de reservas en el panel lateral. */
.sidebar-reservation-summary {
    border-top: 1px solid #dce7f3;
}
.sidebar-reservation-summary:first-of-type { border-top: 0; }
.sidebar-reservation-summary summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 1px;
    color: var(--ip-blue);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}
.sidebar-reservation-summary summary::-webkit-details-marker { display: none; }
.sidebar-reservation-summary summary span:first-child i { color: #ffbd19; margin-right: 5px; }
.sidebar-reservation-summary summary::after { content: '⌄'; color: #6280a8; font-size: 16px; line-height: 1; }
.sidebar-reservation-summary[open] summary::after { transform: rotate(180deg); }
.sidebar-reservation-summary summary strong { margin-left: auto; color: var(--ip-blue); font-size: 16px; white-space: nowrap; }
.sidebar-reservation-summary summary .sidebar-reservation-included {
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}
.sidebar-reservation-content { display: grid; gap: 8px; padding: 1px 1px 12px; }
.sidebar-reservation-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #19518b;
    font-size: 11px;
}
.sidebar-reservation-heading.has-reservation-statuses { align-items: flex-start; }
.sidebar-reservation-heading.has-reservation-statuses > b { min-width: 0; }
.sidebar-reservation-statuses {
    display: grid;
    justify-items: end;
    gap: 4px;
    flex: 0 0 auto;
}
.sidebar-reservation-details { display: grid; gap: 5px; color: #5c779a; font-size: 10.5px; }
.sidebar-reservation-details i { width: 15px; color: var(--ip-blue); text-align: center; }
.sidebar-reservation-details b { color: #244f86; }
.sidebar-reservation-delivery { display: flex; align-items: center; gap: 5px; }
.sidebar-reservation-delivery .status-chip { min-height: 24px; padding-top: 4px; padding-bottom: 4px; }
.sidebar-reservation-included-details { gap: 7px; }
.sidebar-reservation-actions { margin-top: 8px; }
.sidebar-reservation-actions .btn { padding: 6px 8px; font-size: 10px; }
.sidebar-reservation-no-receipt { margin: 0; color: #9b6500; font-size: 10px !important; }

/* Expediente documental del participante. */
.document-code-overview {
    display: grid;
    gap: 8px;
    margin: 14px 0 10px;
}
.case-file-card {
    padding: 11px 13px;
    border: 1px solid #054a7b;
    border-left: 4px solid #054a7b;
    border-radius: 7px;
    background: #054a7b;
    color: #fff;
}
.case-file-card-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1px;
    text-transform: uppercase;
}
.case-file-card-heading span i { margin-right: 5px; color: #fdd038; }
.case-file-card b {
    display: block;
    margin: 4px 0 2px;
    color: #fff;
    font-size: 16px;
    letter-spacing: .15px;
    overflow-wrap: anywhere;
}
.case-file-card small {
    display: block;
    max-width: 530px;
    color: #dceaf6;
    font-size: 10px;
}
.document-code-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.document-code-grid.has-authorization { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.document-code-card {
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid #d5e1ec;
    border-radius: 7px;
    background: #fff;
}
.document-code-card > span {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    min-height: 25px;
    margin-bottom: 4px;
    color: #59749c;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.28;
}
.document-code-card > span i { color: #0b6094; margin-top: 1px; }
.document-code-card b {
    display: block;
    color: #054a7b;
    font-size: 11.5px;
    font-weight: 800;
    overflow-wrap: anywhere;
}
.document-code-card.is-signed {
    padding-left: 10px;
    border-color: #15965b;
    border-left: 3px solid #15965b;
    background: #15965b;
}
.document-code-card.is-signed > span,
.document-code-card.is-signed b { color: #fff; }
.document-code-card.is-signed > span i { color: #fdd038; }
.document-code-card.is-not-applicable {
    border-style: dashed;
    background: #fbfcfe;
    box-shadow: none;
}
.document-code-card.is-not-applicable > span,
.document-code-card.is-not-applicable b { color: #7890aa; }
.document-code-card.is-not-applicable > span i { color: #a4b3c3; }
.document-order {
    color: #054a7b;
    font-weight: 800;
}
.document-code-card.is-signed .document-order { color: #fdd038; }
.document-flow-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 13px 0;
    border-top: 1px solid #dce7f3;
    font-size: 11px;
}
.document-flow-row:first-of-type { border-top: 0; }
.document-flow-details { min-width: min(100%, 245px); flex: 1 1 245px; color: #164d86; }
.document-flow-row small { color: #6680a3; }
.document-flow-actions { display: flex; align-items: center; justify-content: flex-end; flex: 0 1 auto; flex-wrap: wrap; gap: 7px; }
.document-flow-actions .btn { min-height: 34px; padding: 7px 12px; white-space: nowrap; }
.document-flow-actions .status-chip { white-space: nowrap; }
.document-flow-delete-form { margin: 0; }
.document-uploaded-file { display: block; margin-top: 4px; color: #168052 !important; font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.document-uploaded-file i { margin-right: 3px; color: #14935a; }
.document-uploaded-file b { color: #087646; }
.document-sign-upload { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.document-sign-upload input { width: 155px; max-width: 100%; font-size: 10px; }
@media (max-width: 720px) {
    .document-code-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .case-file-card { padding: 13px 14px; }
    .case-file-card b { font-size: 15px; }
    .document-flow-row { align-items: flex-start; flex-direction: column; }
    .document-flow-actions { justify-content: flex-start; width: 100%; }
}
/* Comunicados institucionales: reemplazan los avisos nativos del navegador. */
.swal2-popup.portal-message-popup {
    width: min(430px, calc(100vw - 32px));
    padding: 22px 24px 20px;
    border: 1px solid #cbddec;
    border-radius: 9px;
    box-shadow: 0 14px 32px rgba(5, 74, 123, .18);
}
.portal-message-popup .swal2-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 12px;
    border-width: 2px;
}
.portal-message-popup .swal2-icon.swal2-warning { border-color: #d29c00; color: #c58e00; }
.portal-message-popup .swal2-icon.swal2-error { border-color: #c64b45; color: #c64b45; }
.portal-message-popup .swal2-icon.swal2-success {
    /* El éxito se compone de anillo, líneas y máscaras internas de SweetAlert.
       Se escala completo desde su medida nativa para mantener la marca centrada. */
    width: 80px;
    height: 80px;
    margin: 0 auto -20px;
    border-color: #15965b;
    color: #15965b;
    transform: scale(.6);
    transform-origin: top center;
}
.portal-message-popup .swal2-icon.swal2-info { border-color: #0b6094; color: #0b6094; }
.portal-message-popup .swal2-icon.swal2-error .swal2-x-mark {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}
.portal-message-popup .swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
    position: absolute;
    top: 21px;
    display: block;
    width: 30px;
    height: 3px;
    border-radius: 3px;
    background: #c64b45;
}
.portal-message-popup .swal2-icon.swal2-error .swal2-x-mark-line-left {
    left: 8px;
    transform: rotate(45deg);
}
.portal-message-popup .swal2-icon.swal2-error .swal2-x-mark-line-right {
    right: 8px;
    transform: rotate(-45deg);
}
.portal-message-popup .swal2-title,
.portal-message-popup .portal-message-title {
    padding: 0;
    color: #054a7b;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
}
.portal-message-popup .swal2-html-container,
.portal-message-popup .portal-message-body {
    margin: 8px 0 0;
    color: #536f8e;
    font-size: 13px;
    line-height: 1.5;
}
.portal-message-popup .portal-message-body strong {
    color: #054a7b;
    font-weight: 800;
}
.portal-message-popup .swal2-actions { gap: 8px; margin: 18px 0 0; }
.portal-message-popup .swal2-confirm,
.portal-message-popup .swal2-cancel {
    min-width: 104px;
    margin: 0 !important;
    padding: 9px 15px;
    border-radius: 6px;
    box-shadow: none !important;
    font-size: 13px;
    font-weight: 700;
}
.portal-message-popup .swal2-confirm:focus,
.portal-message-popup .swal2-cancel:focus { box-shadow: 0 0 0 3px rgba(5, 74, 123, .2) !important; }
.portal-message-popup .swal2-cancel { background: #fff !important; border: 1px solid #b9cce0; color: #315f8b !important; }
.registration-view-modal > .swal2-container {
    z-index: 10000;
    border-radius: inherit;
}

/* Reserva desde el panel: conserva el diálogo institucional sin llevar al participante a otra página. */
.reservation-create-modal { width: min(1120px, calc(100vw - 36px)); }
.reservation-create-modal .registration-view-modal-header { align-items: center; }
.reservation-create-modal-body {
    display: block;
    max-height: calc(min(93vh, 920px) - 103px);
    overflow: auto;
}
.reservation-create-main,
.reservation-create-side {
    display: grid;
    align-content: start;
    gap: 15px;
    padding: 22px 24px;
}
.reservation-create-side {
    border-left: 1px solid #dbe7f4;
    background: #fbfdff;
}
.reservation-modal-selection {
    display: grid;
    gap: 10px;
}
.reservation-modal-selection > h3 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--ip-blue);
    font-size: 14px;
}
.reservation-modal-selection > h3 i { color: var(--ip-blue); }
.reservation-modal-heading { padding: 0 1px 2px; }
.reservation-modal-heading h3 {
    margin: 6px 0 4px;
    color: var(--ip-blue);
    font-size: 21px;
    line-height: 1.16;
}
.reservation-modal-heading p {
    margin: 0;
    color: #53729c;
    font-size: 12px;
    line-height: 1.52;
}
.reservation-create-modal .reservation-error { margin: 0; }
.reservation-modal-event {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-top: 2px solid var(--ip-gold);
    border-bottom: 1px solid #dce7f3;
}
.reservation-modal-event > i {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 6px;
    background: #fef7df;
    color: var(--ip-blue);
    font-size: 18px;
}
.reservation-modal-event div { display: grid; gap: 3px; }
.reservation-modal-event span { color: #6882a3; font-size: 10px; }
.reservation-modal-event b { color: var(--ip-blue); font-size: 13px; line-height: 1.35; }
.reservation-modal-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(185px, .78fr);
    gap: 16px;
    align-items: end;
}
.reservation-modal-total {
    display: grid;
    gap: 2px;
    min-height: 72px;
    padding: 10px 0 9px 14px;
    border-left: 3px solid var(--ip-gold);
}
.reservation-modal-total span,
.reservation-modal-total small { color: #5e7a9d; font-size: 10px; }
.reservation-modal-total strong { color: var(--ip-blue); font-size: 22px; line-height: 1.1; }
.reservation-modal-total.is-highlighted {
    grid-template-columns: 25px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 82px;
    padding: 12px 14px;
    border: 1px solid var(--ip-blue);
    border-radius: 8px;
    box-shadow: inset 3px 0 0 var(--ip-gold);
    background: var(--ip-blue);
    color: #fff;
}
.reservation-modal-total.is-highlighted > i { color: var(--ip-gold); font-size: 15px; }
.reservation-modal-total.is-highlighted > div { display: grid; gap: 2px; }
.reservation-modal-total.is-highlighted b { color: #fff; font-size: 12px; }
.reservation-modal-total.is-highlighted strong { color: #fff; font-size: 20px; }
.reservation-modal-total.is-highlighted p { margin: 0; color: #dceaf6; font-size: 10.5px; line-height: 1.4; }
.reservation-calculation-link {
    width: fit-content;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ip-blue);
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.reservation-calculation-link:hover { color: #0a4e88; }
.reservation-calculation-link.is-on-highlight {
    align-self: center;
    color: #dceaf6;
    text-align: right;
    white-space: nowrap;
}
.reservation-calculation-link.is-on-highlight:hover { color: #fff; }
.reservation-credit-choice {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 2px;
    color: #315f8b;
    font-size: 13px;
    line-height: 1.35;
    cursor: pointer;
}
.reservation-credit-choice:hover { color: #0b6094; }
.reservation-credit-choice > input {
    appearance: none;
    display: grid;
    flex: 0 0 18px;
    place-items: center;
    width: 18px;
    height: 18px;
    margin: 0;
    border: 1px solid #6ebf90;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;
}
.reservation-credit-choice > input::after {
    content: '✓';
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    opacity: 0;
    transform: scale(.6);
    transition: .15s ease;
}
.reservation-credit-choice > input:checked { border-color: #15965b; background: #15965b; }
.reservation-credit-choice > input:checked::after { opacity: 1; transform: scale(1); }
.reservation-credit-choice > input:focus-visible { outline: 3px solid rgba(21, 150, 91, .2); outline-offset: 2px; }
.reservation-credit-choice-copy { min-width: 0; }
.reservation-credit-choice-copy b { color: #17643e; font-variant-numeric: tabular-nums; }

.reservation-calculation-popup {
    color: #3c6387;
    text-align: left;
}
.reservation-calculation-rate {
    margin: 0 0 12px;
    color: #07558c;
    font-size: .84rem;
    font-weight: 800;
    text-align: center;
}
.reservation-calculation-rows {
    display: grid;
    gap: 5px;
    padding: 11px 13px;
    border: 1px solid #d9e8f5;
    border-radius: 9px;
    background: #f8fbff;
}
.reservation-calculation-rows.is-money { margin-top: 9px; }
.reservation-calculation-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: baseline;
    font-size: .82rem;
    line-height: 1.25;
}
.reservation-calculation-row b {
    color: #064f86;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.reservation-calculation-row.is-emphasis {
    color: #063e6b;
    font-weight: 800;
}
.reservation-calculation-row.is-subtraction b { color: #b54729; }
.reservation-calculation-row.is-total {
    color: #034e83;
    font-size: .91rem;
    font-weight: 900;
}
.reservation-calculation-row.is-total b {
    color: #00558e;
    font-size: 1rem;
}
.reservation-calculation-credit {
    display: grid;
    gap: 6px;
    margin-top: 9px;
    padding: 10px 13px;
    border: 1px solid #a9ddbe;
    border-radius: 9px;
    background: #effbf3;
    color: #376f50;
    font-size: .78rem;
    line-height: 1.38;
}
.reservation-calculation-credit-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #177746;
    font-size: .82rem;
    font-weight: 850;
}
.reservation-calculation-credit-heading i { margin-right: 5px; color: #15965b; }
.reservation-calculation-credit-heading b { color: #177746; font-variant-numeric: tabular-nums; white-space: nowrap; }
.reservation-calculation-credit p { margin: 0; }
.reservation-calculation-credit p b { color: #17643e; font-variant-numeric: tabular-nums; }
.reservation-calculation-credit small { color: #4f8064; font-size: .73rem; }
.reservation-calculation-final { margin-top: 9px; }
.reservation-calculation-rule {
    height: 1px;
    margin: 2px 0;
    background: #aac7df;
}
.reservation-calculation-history {
    margin-top: 12px;
    padding: 10px 13px;
    border-radius: 8px;
    background: #f4f8fc;
    color: #416a8f;
    font-size: .78rem;
}
.reservation-calculation-history strong {
    display: block;
    margin-bottom: 5px;
    color: #07558c;
    font-size: .8rem;
}
.reservation-calculation-history div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: baseline;
    padding: 2px 0;
}
.reservation-calculation-history b {
    color: #07558c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.reservation-calculation-note {
    margin: 11px 3px 0;
    color: #5d7a97;
    font-size: .76rem;
    line-height: 1.35;
    text-align: center;
}
.swal2-popup .swal2-confirm.reservation-calculation-confirm {
    border-color: var(--ip-blue) !important;
    background: var(--ip-blue) !important;
    color: #fff !important;
}
.swal2-popup .swal2-confirm.reservation-calculation-confirm:hover,
.swal2-popup .swal2-confirm.reservation-calculation-confirm:focus-visible {
    border-color: #083f6a !important;
    background: #083f6a !important;
    color: #fff !important;
}
.reservation-calculation-popup-window .swal2-icon.swal2-info {
    display: grid;
    width: 52px;
    height: 52px;
    margin: 0 auto 13px;
    border: 0;
    border-radius: 13px;
    background: #fff5d7;
    color: #b67a00;
}
.reservation-calculation-popup-window .swal2-icon.swal2-info .swal2-icon-content {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    font-size: 21px;
}
.reservation-calculation-popup-window .swal2-title {
    color: var(--ip-blue);
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 22px;
    line-height: 1.2;
}
.reservation-modal-payment {
    display: grid;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #dce7f3;
}
.reservation-modal-payment h3 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    color: var(--ip-blue);
    font-size: 13px;
}
.reservation-modal-payment h3 i { color: var(--ip-blue); }
.reservation-modal-payment > p { margin: -3px 0 0; color: #49698f; font-size: 11px; line-height: 1.5; }
.reservation-modal-payment-fields { gap: 12px; }
.reservation-modal-payment-fields > .field > input,
.reservation-modal-payment-fields > .field > select { width: 100%; }
.reservation-operation-error {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
    margin: -5px 0 0;
    color: #bd3d36;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.35;
}
.reservation-operation-error i { color: #d64b45; font-size: 10px; }
.reservation-modal-payment-bottom {
    margin-top: 0;
    align-items: start;
}
.reservation-modal-upload {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    align-items: start;
}
.reservation-modal-upload .field-label { margin-bottom: 2px; }
.reservation-modal-upload .upload { min-height: 120px; }
.reservation-modal-upload .upload-file-name,
.reservation-modal-upload .field-help { align-self: start; }
.field-help.is-invalid { color: #bd3d36; }
.reservation-modal-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 3px;
    padding-top: 16px;
    border-top: 1px solid #dce7f3;
}
.reservation-modal-actions .btn { min-width: 134px; }
.reservation-register-action { display: grid; justify-items: end; gap: 5px; }
.reservation-blocked-action,
.reservation-blocked-action:hover {
    background: #dce5f0;
    border-color: #bdcbe0;
    color: #58708f;
    cursor: not-allowed;
    filter: none;
    opacity: 1;
    transform: none;
}
.reservation-blocked-hint {
    max-width: 280px;
    color: #a7432c;
    font-size: 10px;
    line-height: 1.3;
    text-align: right;
}
.reservation-blocked-hint i { margin-right: 3px; }
.reservation-modal-summary h3 { font-size: 13px; }
.reservation-modal-summary dl { display: grid; gap: 0; margin: 0; }
.reservation-modal-summary dl > div {
    display: grid;
    grid-template-columns: minmax(110px, .8fr) minmax(0, 1.2fr);
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid #dce7f3;
    font-size: 10.5px;
}
.reservation-modal-summary dl > div:first-child { border-top: 2px solid var(--ip-gold); }
.reservation-modal-summary dt { color: #6d85a3; }
.reservation-modal-summary dd { margin: 0; color: var(--ip-blue); font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.reservation-payment-info-title {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 0 8px;
    border-bottom: 2px solid var(--ip-gold);
    color: var(--ip-blue);
    font-size: 11px;
}
.reservation-payment-info-title i { color: var(--ip-blue); }
.reservation-modal-accounts .payment-info-intro { margin: 9px 0 11px; }
.reservation-modal-accounts .payment-recipient { font-size: 10.5px; }
.reservation-modal-account-list { margin-top: 4px; }
.reservation-modal-account {
    font-size: 10.5px;
}
.reservation-modal-account.is-selected { border-left-color: var(--ip-gold); }
.reservation-modal-note {
    display: flex;
    gap: 6px;
    margin: 10px 0 0 !important;
    color: #177746 !important;
}
.reservation-modal-note i { margin-top: 2px; color: #15965b; }
@media (max-width: 820px) {
    .reservation-create-modal { width: min(96vw, 650px); }
    .reservation-create-modal-body { grid-template-columns: 1fr; max-height: calc(92vh - 103px); }
    .reservation-create-side { border-top: 1px solid #dbe7f4; border-left: 0; }
    .reservation-create-main,
    .reservation-create-side { padding: 18px; }
}
@media (max-width: 560px) {
    .reservation-create-modal { width: 100vw; max-height: 100vh; border: 0; border-radius: 0; }
    .reservation-create-modal-body { max-height: calc(100vh - 103px); }
    .reservation-modal-fields,
    .reservation-modal-upload { grid-template-columns: 1fr; }
    .reservation-modal-upload .field-label { grid-column: auto; }
    .reservation-modal-actions { align-items: stretch; flex-direction: column-reverse; }
    .reservation-modal-actions .btn { width: 100%; }
}

/* Tablero administrativo: gráficos y metas con la misma lectura editorial del portal.
   Se reserva siempre el ancho de la barra vertical para que filtrar las filas de la
   tabla no cambie el ancho útil ni active otra distribución responsive. */
html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}
.admin-dashboard-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(290px, 340px);
    gap: 10px;
    align-items: start;
    margin-top: 14px;
}
.admin-dashboard-layout > .admin-dashboard-actions {
    grid-column: 1;
    grid-row: 1;
}
.admin-dashboard-layout > .admin-dashboard-main {
    grid-column: 1;
    grid-row: 2;
}
.admin-dashboard-layout > .admin-dashboard-side {
    grid-column: 2;
    grid-row: 1 / span 2;
}
.admin-dashboard-main,
.admin-dashboard-side {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.admin-dashboard-main {
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
}
.admin-dashboard-main > .admin-analytics-grid,
.admin-dashboard-main > .admin-recent-works {
    grid-column: 1;
    width: 100%;
}
.admin-dashboard-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
    padding: 7px;
    border: 1px solid #d7e4f2;
    border-radius: 8px;
    background: #fff;
}
.admin-dashboard-actions .btn {
    min-height: 34px;
    padding: 7px 9px;
    border-color: #b9cde4;
    color: var(--ip-blue);
    font-size: 11px;
    font-weight: 700;
    justify-content: center;
}
.admin-dashboard-actions .btn:hover,
.admin-dashboard-actions .btn:focus-visible {
    border-color: var(--ip-blue);
    background: var(--ip-blue);
    color: var(--ip-white);
    box-shadow: 0 5px 12px rgba(5, 74, 123, .16);
    text-decoration: none;
}
.admin-dashboard-actions .btn:hover i,
.admin-dashboard-actions .btn:focus-visible i { color: inherit; }

/* Inicio administrativo: se elige una actividad antes de abrir su tablero operativo. */
.admin-home-page { padding-bottom: 36px; }
.admin-home-header {
    align-items: center;
    margin-bottom: 18px;
}
.admin-home-header .eyebrow { margin-bottom: 5px; }
.admin-activity-catalog {
    border: 1px solid #d5e2f1;
    border-radius: 13px;
    padding: 18px;
    background: #f8fbff;
}
.admin-activity-catalog-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}
.admin-activity-catalog-heading h2 {
    margin: 0;
    color: var(--ip-blue);
    font-size: 21px;
}
.admin-activity-catalog-heading p { margin: 4px 0 0; color: #537294; }
.admin-activity-catalog-count {
    flex: 0 0 auto;
    border: 1px solid #c7d9eb;
    border-radius: 7px;
    padding: 6px 10px;
    color: #416584;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
}
.admin-activity-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}
.admin-activity-card {
    overflow: hidden;
    border: 1px solid #cfdeef;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 4px 11px rgba(5, 74, 123, .05);
}
.admin-activity-card-art {
    position: relative;
    min-height: 132px;
    background-color: #e7f1fb;
    background-image: linear-gradient(115deg, rgba(255, 255, 255, .82), rgba(224, 239, 251, .26));
    background-position: center;
    background-size: cover;
}
.admin-activity-card-art.has-image { background-image: linear-gradient(115deg, rgba(255, 255, 255, .36), rgba(5, 74, 123, .1)), var(--admin-activity-image); }
.admin-activity-card-art.default-art::before {
    content: '';
    position: absolute;
    inset: 22px 26px;
    border: 1px solid rgba(5, 74, 123, .17);
    border-radius: 9px;
    background: linear-gradient(135deg, rgba(255,255,255,.8), rgba(255,255,255,.2));
}
.admin-activity-card-art.default-art::after {
    content: '\f133';
    position: absolute;
    top: 50%;
    left: 50%;
    color: rgba(5, 74, 123, .5);
    font-family: "Font Awesome 6 Free";
    font-size: 36px;
    font-weight: 900;
    transform: translate(-50%, -50%);
}
.admin-activity-card-art .status-chip {
    position: absolute;
    z-index: 1;
    top: 12px;
    right: 12px;
}
.admin-activity-card-body { padding: 14px; }
.admin-activity-card-meta,
.admin-activity-card-period {
    margin: 0;
    color: #52728f;
    font-size: 12px;
    font-weight: 700;
}
.admin-activity-card-meta i { color: var(--ip-gold); }
.admin-activity-card-period { margin-top: 8px; font-weight: 600; }
.admin-activity-card-period i { margin-right: 4px; color: var(--ip-blue); }
.admin-activity-card h2 {
    display: -webkit-box;
    overflow: hidden;
    margin: 6px 0 0;
    color: var(--ip-blue);
    font-size: 18px;
    line-height: 1.28;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.admin-activity-card-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 13px;
    margin-top: 13px;
    color: #456886;
    font-size: 12px;
}
.admin-activity-card-metrics i { margin-right: 3px; color: var(--ip-blue); }
.admin-activity-card-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    margin-top: 14px;
}
.admin-activity-card-actions .btn { min-width: 0; justify-content: center; }
.admin-activity-public-unavailable {
    cursor: default;
    border-color: #d6e1ef;
    color: #7890a7;
    background: #f4f7fa;
}
.admin-activity-empty {
    grid-column: 1 / -1;
    padding: 36px 20px;
    text-align: center;
    color: #587492;
}
.admin-activity-empty > i { color: var(--ip-gold); font-size: 29px; }
.admin-activity-empty h2 { margin: 9px 0 3px; color: var(--ip-blue); }
.admin-activity-empty p { margin: 0 0 15px; }
.admin-activity-filter {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 13px;
}
.admin-activity-filter label { color: var(--ip-blue); font-weight: 800; }
.admin-activity-filter-select { position: relative; width: min(260px, 100%); }
.admin-activity-filter-select > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 36px;
    padding: 8px 11px;
    border: 1px solid #b7cee7;
    border-radius: 7px;
    background: #f8fbff;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    list-style: none;
}
.admin-activity-filter-select > summary::-webkit-details-marker { display: none; }
.admin-activity-filter-select > summary i { font-size: 10px; transition: transform .18s ease; }
.admin-activity-filter-select[open] > summary { border-color: var(--ip-blue); border-bottom-right-radius: 0; border-bottom-left-radius: 0; background: #fff; }
.admin-activity-filter-select[open] > summary i { transform: rotate(180deg); }
.admin-activity-filter-select > summary:hover { border-color: #7ea6cb; background: #fff; }
.admin-activity-filter-select > summary:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(5, 74, 123, .12); }
.admin-activity-filter-options {
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    width: 100%;
    overflow: hidden;
    border: 1px solid var(--ip-blue);
    border-top: 0;
    border-radius: 0 0 7px 7px;
    background: #fff;
    box-shadow: 0 8px 17px rgba(5, 74, 123, .16);
}
.admin-activity-filter-options button {
    display: block;
    width: 100%;
    padding: 9px 11px;
    border: 0;
    border-top: 1px solid #e4edf6;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    text-align: left;
}
.admin-activity-filter-options button:first-child { border-top: 0; }
.admin-activity-filter-options button:hover,
.admin-activity-filter-options button:focus-visible { background: #eaf3fc; color: #043e69; outline: 0; }
.admin-activity-filter-options button.is-selected { background: var(--ip-blue); color: #fff; font-weight: 800; }
.admin-payment-page { padding-bottom: 22px; }
.admin-payment-header { align-items: center; margin-bottom: 18px; }
.admin-payment-header .eyebrow { margin-bottom: 5px; }
.admin-payment-filters {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(205px, .9fr) minmax(250px, 1.35fr) auto;
    align-items: end;
    gap: 10px;
    margin-bottom: 15px;
    padding: 13px;
    border: 1px solid #d5e2f1;
    border-radius: 10px;
    background: #f8fbff;
}
.admin-payment-filter-field { display: grid; gap: 5px; min-width: 0; color: #41688c; font-size: 11px; font-weight: 800; }
.admin-payment-filter-select { width: 100%; }
.admin-payment-filter-search input { box-sizing: border-box; width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid #b7cee7; border-radius: 7px; background: #fff; color: var(--ip-blue); font: inherit; font-size: 12px; }
.admin-payment-filter-search input:focus { border-color: var(--ip-blue); box-shadow: 0 0 0 3px rgba(5, 74, 123, .12); outline: 0; }
.admin-payment-filters > .btn { min-height: 36px; }
.admin-payment-reconciliation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px 18px;
    margin: 0 0 15px;
    padding: 15px;
    border: 1px solid #f1cf78;
    border-radius: 10px;
    background: #fffaf0;
}
.admin-payment-reconciliation .eyebrow { margin-bottom: 5px; }
.admin-payment-reconciliation h2,
.admin-payment-table-heading h2 { margin: 0; color: var(--ip-blue); font-size: 18px; }
.admin-payment-reconciliation p,
.admin-payment-table-heading p { margin: 5px 0 0; color: #5e7897; font-size: 11px; line-height: 1.4; }
.admin-payment-reconciliation form { align-self: center; }
.admin-payment-unlinked-list { display: grid; grid-column: 1 / -1; gap: 6px; }
.admin-payment-unlinked-list article { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 13px; padding-top: 7px; border-top: 1px solid #f3dfac; color: #526d8c; font-size: 11px; }
.admin-payment-unlinked-list article b { color: var(--ip-blue); }
.admin-public-reservations-table-card { margin: 0 0 16px; }
.admin-public-reservations-table { min-width: 980px; }
.admin-public-reservations-table td { vertical-align: middle; }
.admin-public-reservations-table td > small .status-chip { margin-top: 2px; }
.admin-public-reservations-table .admin-payment-row-actions form { margin: 0; }
.admin-payment-table-card { overflow: visible; }
.admin-payment-table-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; padding: 15px 16px 12px; border-bottom: 1px solid #e0eaf4; }
.admin-payment-table-heading > span { flex: 0 0 auto; color: #58759e; font-size: 11px; font-weight: 800; }
.admin-payment-table td > b,
.admin-payment-table td > small { display: block; }
.admin-payment-table td > b { color: var(--ip-blue); font-size: 11px; }
.admin-payment-table td > small { margin-top: 3px; color: #637e9c; font-size: 9px; line-height: 1.3; }
.admin-payment-table th:last-child { text-align: right; }
.admin-payment-concept { display: inline-flex; align-items: center; gap: 5px; color: #315a82; font-size: 10px; font-weight: 800; white-space: nowrap; }
.admin-payment-concept.is-registration i { color: #1766cf; }
.admin-payment-concept.is-reservation i { color: #7954c2; }
.admin-payment-reservation-code { color: #1766cf !important; font-weight: 850; letter-spacing: .01em; }
.admin-payment-row-actions-cell { width: 1%; min-width: 164px; vertical-align: middle; white-space: nowrap; text-align: right; }
.admin-payment-row-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 5px; }
.admin-payment-row-actions .btn { min-height: 29px; padding: 5px 7px; font-size: 9px; }
.admin-payment-group-table { min-width: 930px; }
.admin-payment-group-summary-row > td { vertical-align: middle; background: #fff; }
.admin-payment-group-summary-row.is-expanded > td { background: #f4f9ff; border-bottom-color: transparent; }
.admin-payment-group-identity { display: flex; align-items: center; gap: 7px; min-width: 185px; }
.admin-payment-group-toggle {
    display: inline-grid;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    place-items: center;
    border: 1px solid #b8d0e8;
    border-radius: 6px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
}
.admin-payment-group-toggle:hover,
.admin-payment-group-toggle:focus-visible { border-color: var(--ip-blue); background: #eaf4fc; outline: 0; }
.admin-payment-group-toggle i { transition: transform .16s ease; }
.admin-payment-group-toggle[aria-expanded="true"] i { transform: rotate(90deg); }
.admin-payment-group-statuses { display: flex; flex-wrap: wrap; gap: 4px; min-width: 140px; }
.admin-payment-group-statuses .status-chip { white-space: nowrap; }
.admin-payment-group-details-row > td { padding: 0 !important; background: #f8fbfe; }
.admin-payment-group-details { padding: 11px 14px 14px 45px; border-top: 1px solid #d9e7f4; }
.admin-payment-group-details-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 8px; color: var(--ip-blue); font-size: 11px; }
.admin-payment-group-details-heading-copy { min-width: 0; }
.admin-payment-group-details-heading-copy > b,
.admin-payment-group-details-heading-copy > small { display: block; }
.admin-payment-group-details-heading small { color: #637e9c; font-size: 9px; }
.admin-payment-credit-context { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.admin-payment-credit-badge { display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border: 1px solid #a9ddbe; border-radius: 999px; background: #effbf3; color: #177746; font-size: 9px; font-weight: 850; line-height: 1.25; white-space: nowrap; }
.admin-payment-credit-badge i { color: #15965b; }
.admin-payment-credit-calculation { appearance: none; border: 0; padding: 3px 0; background: transparent; color: #1766cf; font: inherit; font-size: 9px; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.admin-payment-credit-calculation:hover,
.admin-payment-credit-calculation:focus-visible { color: #083f6a; outline: 0; }
.admin-payment-detail-table { width: 100%; border-collapse: collapse; border: 1px solid #d6e4f1; border-radius: 7px; overflow: hidden; background: #fff; }
.admin-payment-detail-table th { padding: 7px 8px; border-bottom: 1px solid #d6e4f1; background: #edf5fc; color: #41688c; font-size: 9px; font-weight: 800; text-align: left; }
.admin-payment-detail-table td { padding: 8px; border-bottom: 1px solid #e2ebf4; color: #315a82; font-size: 10px; vertical-align: middle; }
.admin-payment-detail-table th:last-child,
.admin-payment-detail-table td:last-child { width: 1%; white-space: nowrap; text-align: right; }
.admin-payment-detail-table tbody tr:last-child td { border-bottom: 0; }
.admin-payment-detail-table tr.is-filter-match td { background: #f5fbff; }
.admin-payment-detail-table tr.is-filter-match td:first-child { box-shadow: inset 3px 0 0 #1766cf; }
.admin-payment-detail-table td > b,
.admin-payment-detail-table td > small { display: block; }
.admin-payment-detail-table td > small { margin-top: 3px; color: #637e9c; font-size: 9px; line-height: 1.3; }
.admin-payment-detail-table .btn { min-height: 28px; padding: 5px 7px; font-size: 9px; white-space: nowrap; }
.admin-payment-reservation-delivery-cell { min-width: 126px; }
.admin-payment-reservation-delivery { display: grid; justify-items: start; gap: 4px; }
.admin-payment-reservation-delivery > b { color: #41688c; font-size: 9px; line-height: 1.25; }
.admin-reservation-delivery-menu { display: inline-block; }
.admin-reservation-delivery-menu > summary { list-style: none; cursor: pointer; }
.admin-reservation-delivery-menu > summary::-webkit-details-marker { display: none; }
.admin-reservation-delivery-menu > summary .status-chip { gap: 5px; transition: border-color .16s ease, background .16s ease; }
.admin-reservation-delivery-menu > summary:hover .status-chip,
.admin-reservation-delivery-menu > summary:focus-visible .status-chip,
.admin-reservation-delivery-menu[open] > summary .status-chip { border-color: #d49b1b; background: #fff5db; outline: 0; }
.admin-reservation-delivery-menu[open] > summary .fa-chevron-down { transform: rotate(180deg); }
.admin-reservation-delivery-menu .fa-chevron-down { transition: transform .16s ease; }
.admin-reservation-delivery-form { margin: 4px 0 0; }
.admin-reservation-delivery-form .btn { min-height: 25px; padding: 4px 6px; color: #177746; border-color: #a9ddbe; background: #f4fcf6; }
.admin-reservation-delivery-form .btn:hover,
.admin-reservation-delivery-form .btn:focus-visible { border-color: #168052; background: #e8f8ed; outline: 0; }
.admin-payment-receipt-modal:not([open]) { display: none; }
.admin-payment-receipt-modal[open] { display: flex; }
.admin-payment-receipt-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    width: min(1120px, calc(100vw - 32px));
    height: min(90vh, 900px);
    max-height: calc(100vh - 32px);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: #fff;
    color: var(--ip-blue);
    box-shadow: 0 22px 70px rgba(3, 43, 83, .34);
    transform: translate(-50%, -50%);
}
.admin-payment-receipt-modal::backdrop { background: rgba(2, 35, 67, .62); backdrop-filter: blur(2px); }
.admin-payment-receipt-modal-content { display: flex; width: 100%; min-height: 0; flex: 1 1 auto; flex-direction: column; }
.admin-payment-receipt-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 17px 20px 14px; border-bottom: 1px solid #dbe7f4; background: linear-gradient(120deg, #f6faff, #fff); }
.admin-payment-receipt-modal-header h2 { margin: 4px 0; color: var(--ip-blue); font-family: 'Playfair Display', Georgia, serif; font-size: 20px; line-height: 1.2; }
.admin-payment-receipt-modal-header p { margin: 0; color: #54749c; font-size: 11px; }
.admin-payment-receipt-modal-body { min-height: 0; flex: 1 1 auto; padding: 16px 20px 18px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.admin-payment-receipt-modal-body .admin-evidence-file { min-height: 100%; }
html.admin-payment-receipt-modal-open,
body.admin-payment-receipt-modal-open { overflow: hidden; overscroll-behavior: none; }
.admin-payment-credit-modal:not([open]) { display: none; }
.admin-payment-credit-modal[open] { display: flex; }
.admin-payment-credit-modal { position: fixed; top: 50%; left: 50%; box-sizing: border-box; width: min(540px, calc(100vw - 32px)); max-height: calc(100vh - 32px); margin: 0; padding: 0; overflow: hidden; border: 1px solid #d6e4f1; border-radius: 14px; background: #fff; color: var(--ip-blue); box-shadow: 0 22px 70px rgba(3, 43, 83, .34); transform: translate(-50%, -50%); }
.admin-payment-credit-modal::backdrop { background: rgba(2, 35, 67, .62); backdrop-filter: blur(2px); }
.admin-payment-credit-modal-content { width: 100%; overflow: auto; overscroll-behavior: contain; }
.admin-payment-credit-modal-header { position: relative; display: grid; justify-items: center; gap: 7px; padding: 20px 52px 16px; border-bottom: 1px solid #dbe7f4; background: linear-gradient(120deg, #f6faff, #fff); text-align: center; }
.admin-payment-credit-modal-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 12px; background: #fff5d7; color: #b67a00; font-size: 19px; }
.admin-payment-credit-modal-header h2 { margin: 0; color: var(--ip-blue); font-family: 'Playfair Display', Georgia, serif; font-size: 21px; line-height: 1.2; }
.admin-payment-credit-modal-header p { margin: 0; color: #54749c; font-size: 10px; line-height: 1.35; }
.admin-payment-credit-modal-header .modal-close { position: absolute; top: 14px; right: 14px; }
.admin-payment-credit-modal-body { padding: 16px 20px 18px; }
.admin-reservation-credit-summary .reservation-calculation-note { margin: 12px 1px 0; color: #54749c; font-size: .76rem; line-height: 1.4; text-align: center; }
html.admin-payment-credit-modal-open,
body.admin-payment-credit-modal-open { overflow: hidden; overscroll-behavior: none; }
.admin-activity-table-actions { display: flex; align-items: center; gap: 7px; }
.admin-activity-table-actions form { margin: 0; }
.admin-analytics-grid {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 320px;
    gap: 10px;
    align-items: stretch;
}
.admin-analytic-card,
.admin-recent-works,
.admin-alerts-panel {
    min-width: 0;
    border: 1px solid #d5e2f0;
    border-radius: 8px;
    background: #fff;
}
.admin-analytic-card,
.admin-recent-works { padding: 13px; }
.admin-analytic-card { height: 320px; }
.admin-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 24px;
    padding-bottom: 8px;
    border-bottom: 1px solid #dce7f3;
}
.admin-card-heading h2,
.admin-alerts-panel h2 {
    margin: 0;
    color: var(--ip-blue);
    font-size: 13px;
    line-height: 1.25;
}
.admin-card-heading > span {
    padding: 3px 7px;
    border: 1px solid #d5e2f0;
    border-radius: 4px;
    color: #617d9e;
    font-size: 9.5px;
    white-space: nowrap;
}
.admin-card-heading a {
    color: var(--ip-blue);
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
.admin-card-heading a:hover,
.admin-card-heading a:focus-visible { color: #a66a00; }
.admin-line-chart { position: relative; height: 158px; padding-top: 8px; }
.admin-line-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.admin-line-chart line { stroke: #e1eaf4; stroke-width: 1; }
.admin-line-chart .admin-line-area { fill: url(#adminDailyFill); stroke: none; }
.admin-line-chart .admin-line-path { fill: none; stroke: var(--ip-blue); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.admin-line-chart circle { fill: var(--ip-blue); stroke: #fff; stroke-width: 1.5; }
.admin-line-point { cursor: pointer; outline: none; }
.admin-line-point circle { transition: fill .18s ease, stroke-width .18s ease; }
.admin-line-point:hover circle,
.admin-line-point:focus circle { fill: #e4a600; stroke-width: 2.4; }
.admin-line-point.is-selected circle { fill: #e4a600; stroke: #8e5900; stroke-width: 2.8; }
.admin-line-zero-point { cursor: default; }
.admin-daily-popover {
    position: absolute;
    z-index: 10;
    max-width: calc(100% - 12px);
    padding: 7px 10px;
    transform: translateX(-50%);
    overflow: hidden;
    border: 1px solid rgba(5, 74, 123, .22);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(5, 54, 91, .16);
    color: var(--ip-blue);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.35;
    pointer-events: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-date-filter-result a {
  border: 0;
  padding: 0;
  background: transparent;
  color: #075283;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
}
.admin-date-filter-result a:hover,
.admin-date-filter-result a:focus-visible { color: #a66a00; outline: none; text-decoration: underline; }
.admin-chart-footer {
    display: flex;
    justify-content: space-between;
    padding: 0 3px;
    color: #7189a6;
    font-size: 9px;
}
.admin-analytic-card > small {
    display: block;
    margin-top: 8px;
    color: #5d789a;
    font-size: 10px;
}
.admin-category-layout {
    display: grid;
    grid-template-columns: minmax(118px, .68fr) minmax(0, 1.32fr);
    gap: 12px;
    align-items: center;
    min-height: 184px;
    padding-top: 10px;
}
.admin-distribution-filters {
    display: flex;
    gap: 6px;
    padding: 9px 0 0;
}
.admin-distribution-filter {
    min-height: 28px;
    padding: 5px 8px;
    border: 1px solid #c9d9ea;
    border-radius: 5px;
    background: #fff;
    color: #527194;
    cursor: pointer;
    font: inherit;
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1.15;
}
.admin-distribution-filter:hover,
.admin-distribution-filter:focus-visible {
    border-color: var(--ip-blue);
    color: var(--ip-blue);
    outline: none;
}
.admin-distribution-filter.is-active {
    border-color: var(--ip-blue);
    background: var(--ip-blue);
    color: #fff;
    box-shadow: inset 2px 0 0 var(--ip-gold);
}
.admin-distribution-card .admin-category-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    height: 212px;
    min-height: 212px;
    padding-top: 8px;
}
.admin-donut-interaction { position: relative; display: grid; place-items: center; }
.admin-distribution-popover {
    position: fixed;
    z-index: 1200;
    max-width: min(240px, calc(100vw - 24px));
    padding: 7px 10px;
    border: 1px solid rgba(5, 74, 123, .22);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(5, 54, 91, .16);
    color: var(--ip-blue);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.35;
    pointer-events: none;
}

.admin-distribution-card .admin-category-legend {
    width: 100%;
    height: 204px;
    min-height: 0;
    max-height: 204px;
    overflow-y: auto;
    overflow-x: hidden;
    align-content: start;
}
.admin-dynamic-donut {
    position: relative;
    display: grid;
    width: 130px;
    height: 130px;
    margin: auto;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--category-gradient));
    cursor: pointer;
}
.admin-dynamic-donut::before {
    content: "";
    position: absolute;
    inset: 31px;
    border-radius: 50%;
    background: #fff;
}
.admin-dynamic-donut > div {
    position: relative;
    display: grid;
    gap: 1px;
    text-align: center;
}
.admin-dynamic-donut strong { color: var(--ip-blue); font-size: 22px; line-height: 1; }
.admin-dynamic-donut span { color: #607d9e; font-size: 10px; font-weight: 700; }
.admin-category-legend {
    display: grid;
    gap: 4px;
    max-height: 176px;
    margin: 0;
    padding: 0;
    overflow: auto;
    list-style: none;
}
.admin-category-legend li {
    min-width: 0;
    min-height: 18px;
    color: #527194;
    font-size: 10px;
}
.admin-category-legend li > button {
    display: grid;
    width: 100%;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
    min-height: 22px;
    padding: 2px 4px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
}
.admin-category-legend li > button:hover,
.admin-category-legend li > button:focus-visible,
.admin-category-legend li > button.is-selected {
    background: #edf5fc;
    color: var(--ip-blue);
    outline: none;
}
.admin-category-legend li > button.is-selected { box-shadow: inset 2px 0 0 var(--ip-gold); }
.admin-category-legend li > button > i { display: block; width: 8px; height: 8px; border-radius: 50%; }
.admin-category-legend li > button > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-category-legend li > button > b { color: var(--ip-blue); font-size: 10px; }
.admin-category-legend .is-empty { color: #7189a6; }
.admin-category-legend .is-empty > button { cursor: default; }
.admin-category-legend .is-empty > button > b { color: #7189a6; font-weight: 600; }
.admin-distribution-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 9px 0 0;
    padding: 7px 9px;
    border-left: 3px solid var(--ip-gold);
    background: #f7fbff;
    color: #527194;
    font-size: 10px;
}
.admin-distribution-result button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ip-blue);
    cursor: pointer;
    font: inherit;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}
.admin-distribution-result button:hover,
.admin-distribution-result button:focus-visible { color: #a66a00; outline: none; text-decoration: none; }
.admin-date-filter-result { margin-bottom: 14px; }
.is-dashboard-row-hidden { display: none; }
.admin-goals-panel {
    padding: 12px;
    border: 1px solid #d5e2f0;
    border-radius: 8px;
    background: #fff;
}
.admin-goals-panel h3 { margin: 0 0 10px; }
.admin-goals-panel h3 i { color: var(--ip-blue); }
.admin-goals-panel .goal-progress-list { gap: 8px; }
.admin-goals-panel .goal-progress-item { padding: 9px 9px 8px 12px; }
.admin-goals-panel .goal-progress-heading { grid-template-columns: 22px minmax(0, 1fr) auto; }
.admin-goals-panel .goal-progress-heading b { font-size: 10px; }
.admin-goals-panel .goal-progress-heading strong { font-size: 13px; }
.admin-goals-panel .goal-progress-heading strong small { font-size: 9px; }
.admin-goals-panel .goal-progress-item > small { font-size: 9.5px; }
.admin-alerts-panel { padding: 12px; }
.admin-alerts-panel h2 {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 9px;
    border-bottom: 1px solid #dce7f3;
}
.admin-alerts-panel h2 i { color: #df4d43; }
.admin-alert-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #dce7f3;
    color: #496a90;
    font-size: 10px;
    text-decoration: none;
}
.admin-alert-row:last-child { padding-bottom: 1px; border-bottom: 0; }
.admin-alert-row > b { color: #d14b3e; font-size: 12px; }
.admin-alert-row > span { line-height: 1.35; }
.admin-alert-row > small { color: #c24a31; font-size: 9.5px; font-weight: 700; text-align: right; }
.admin-alert-row:hover,
.admin-alert-row:focus-visible {
    color: var(--ip-blue);
    background: #f6fbff;
    outline: none;
}
.admin-alert-row:hover > small,
.admin-alert-row:focus-visible > small { color: #9d6800; }
.admin-tasks-panel {
    min-width: 0;
    padding: 12px;
    border: 1px solid #d5e2f0;
    border-radius: 8px;
    background: #fff;
}
.admin-tasks-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 9px;
    border-bottom: 1px solid #dce7f3;
}
.admin-tasks-heading h2 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--ip-blue);
    font-size: 13px;
    line-height: 1.25;
}
.admin-tasks-heading h2 i { color: var(--ip-blue); }
.admin-tasks-heading a {
    color: var(--ip-blue);
    font-size: 9.5px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
.admin-tasks-heading a:hover,
.admin-tasks-heading a:focus-visible { color: #a66a00; }
.admin-task-row {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) max-content;
    gap: 8px;
    align-items: center;
    min-height: 43px;
    padding: 7px 0;
    border-bottom: 1px solid #e0e9f3;
    color: #48698e;
    text-decoration: none;
}
.admin-task-row:last-child { border-bottom: 0; padding-bottom: 1px; }
.admin-task-row > i {
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    color: #7490ae;
    font-size: 7px;
}
.admin-task-row > span { display: grid; min-width: 0; gap: 1px; }
.admin-task-row > span b { color: var(--ip-blue); font-size: 10px; line-height: 1.25; }
.admin-task-row > span small { color: #7089a6; font-size: 9.5px; line-height: 1.25; }
.admin-task-row > em {
    color: #55769a;
    font-size: 9.5px;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}
.admin-task-row--payment > i { color: #c98000; }
.admin-task-row--review > i { color: #2872b8; }
.admin-task-row--observed > i { color: #c85748; }
.admin-task-row:hover,
.admin-task-row:focus-visible { background: #f6fbff; outline: none; }
.admin-task-row:hover > em,
.admin-task-row:focus-visible > em { color: #9d6800; }

/* Las filas de alertas y tareas son controles completos: el efecto es el fondo,
   no subrayar el ícono ni el contenido cuando se pasa el cursor. */
.admin-alert-row,
.admin-alert-row:visited,
.admin-alert-row:hover,
.admin-alert-row:focus-visible,
.admin-alert-row *,
.admin-task-row,
.admin-task-row:visited,
.admin-task-row:hover,
.admin-task-row:focus-visible,
.admin-task-row * {
    text-decoration: none !important;
    text-decoration-line: none !important;
}
.admin-tasks-empty {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
    margin: 0;
    color: #55789b;
    font-size: 10px;
}
.admin-tasks-empty i { color: #159b68; }

/* Filas administrativas: indicador, detalle y acción siempre comparten la misma línea. */
.admin-page .admin-alert-row,
.admin-page .admin-side-card .alert-row,
.admin-page .task {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) max-content;
    align-items: center;
    column-gap: 9px;
    min-height: 38px;
}
.admin-page .admin-alert-row > b,
.admin-page .admin-side-card .alert-row > :first-child {
    grid-column: 1;
    justify-self: start;
}
.admin-page .admin-alert-row > span,
.admin-page .admin-side-card .alert-row > :nth-child(2) {
    grid-column: 2;
    min-width: 0;
}
.admin-page .admin-alert-row > small,
.admin-page .admin-side-card .alert-row > :last-child {
    grid-column: 3;
    justify-self: end;
    white-space: nowrap;
}
.admin-page .task {
    grid-template-columns: 16px minmax(0, 1fr) max-content;
    padding: 7px 0;
}
.admin-page .task::before {
    grid-column: 1;
    margin: 0;
}
.admin-page .task > :first-child {
    grid-column: 2;
    min-width: 0;
}
.admin-page .task > :last-child {
    grid-column: 3;
    justify-self: end;
    white-space: nowrap;
    text-align: right;
}
.admin-recent-works .admin-table-scroll { overflow-x: auto; }
.admin-recent-works .data-table { min-width: 680px; }

/* En paneles realmente estrechos, el lateral baja completo; en escritorio conserva
   su posición original a la derecha de acciones, gráficos y tabla. El límite queda
   separado de los anchos habituales de laptop para que un filtro no lo haga oscilar. */
@media (max-width: 1180px) {
    .admin-dashboard-layout { grid-template-columns: 1fr; }
    .admin-dashboard-layout > .admin-dashboard-actions,
    .admin-dashboard-layout > .admin-dashboard-main,
    .admin-dashboard-layout > .admin-dashboard-side {
        grid-column: auto;
        grid-row: auto;
    }
    .admin-dashboard-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-goals-panel { grid-column: 1 / -1; }
    .admin-goals-panel .goal-progress-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .admin-dashboard-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-payment-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-payment-filter-search { grid-column: 1 / -1; }
    .admin-payment-reconciliation { grid-template-columns: 1fr; }
    .admin-payment-reconciliation form { align-self: start; }
    .admin-payment-receipt-modal { width: min(96vw, 680px); height: min(92vh, 820px); max-height: calc(100vh - 20px); }
    .admin-payment-receipt-modal-body { padding: 13px; }
    .admin-payment-credit-modal { width: min(96vw, 540px); max-height: calc(100vh - 20px); }
    .admin-home-header,
    .admin-activity-catalog-heading { align-items: stretch; flex-direction: column; }
    .admin-activity-catalog-count { align-self: flex-start; }
    .admin-analytics-grid,
    .admin-dashboard-side,
    .admin-goals-panel .goal-progress-list { grid-template-columns: 1fr; }
    .admin-goals-panel { grid-column: auto; }
    .admin-analytics-grid { grid-auto-rows: auto; }
    .admin-analytic-card { height: auto; min-height: 320px; }
}
@media (max-width: 440px) {
    .admin-dashboard-actions { grid-template-columns: 1fr; }
    .admin-payment-filters { grid-template-columns: 1fr; }
    .admin-payment-filter-search { grid-column: auto; }
    .admin-payment-receipt-modal { width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; }
    .admin-payment-receipt-modal-header { padding: 14px; }
    .admin-payment-receipt-modal-header h2 { font-size: 18px; }
    .admin-payment-receipt-modal-body { padding: 10px; }
    .admin-payment-group-details { padding-left: 14px; }
    .admin-payment-group-details-heading { align-items: flex-start; flex-direction: column; }
    .admin-payment-credit-context { justify-content: flex-start; }
    .admin-payment-credit-modal { width: 100vw; max-height: 100vh; height: 100vh; border-radius: 0; }
    .admin-payment-credit-modal-header { padding: 18px 48px 14px; }
    .admin-payment-credit-modal-header h2 { font-size: 19px; }
    .admin-activity-card-actions { grid-template-columns: 1fr; }
    .admin-activity-filter { align-items: stretch; flex-direction: column; }
    .admin-activity-filter-select { width: 100%; }
    .admin-distribution-card .admin-category-layout {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
    }
    .admin-distribution-card .admin-category-legend {
        height: auto;
        max-height: 204px;
    }
}

/* Revisión administrativa: mismo expediente emergente del participante, con controles internos. */
dialog.admin-registration-view-modal:not([open]) {
    display: none;
}
dialog.admin-registration-view-modal[open] {
    display: flex;
}
.admin-registration-view-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    box-sizing: border-box;
    display: flex;
    width: min(1840px, calc(100vw - 30px));
    height: min(93vh, 1080px);
    max-height: calc(100vh - 30px);
    margin: 0;
    overscroll-behavior: none;
    transform: translate(-50%, -50%);
}
.admin-registration-view-modal > [data-admin-registration-modal-content] {
    display: flex;
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
}
.admin-registration-modal-body {
    min-height: 0;
    max-height: none;
    flex: 1 1 auto;
    grid-template-columns: minmax(245px, .72fr) minmax(0, 1.68fr) minmax(390px, 1.12fr);
    overflow: hidden;
    overscroll-behavior: contain;
}
.admin-registration-modal-body > .admin-registration-profile,
.admin-registration-modal-body > .admin-registration-main,
.admin-registration-modal-body > .admin-registration-actions {
    min-height: 0;
    max-height: calc(min(93vh, 1080px) - 103px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.admin-registration-modal-header h2 { font-size: 20px; }
.admin-registration-view-modal .modal-panel { min-width: 0; }
.admin-modal-loading,
.admin-modal-error {
    display: grid;
    min-height: 260px;
    place-content: center;
    gap: 10px;
    padding: 38px;
    color: #54749c;
    text-align: center;
}
.admin-modal-loading i,
.admin-modal-error i { color: var(--ip-blue); font-size: 24px; }
.admin-modal-error i { color: #c64b45; }
html.admin-registration-modal-open,
body.admin-registration-modal-open {
    overflow: hidden;
    overscroll-behavior: none;
}
.admin-modal-error p { max-width: 320px; margin: 0; line-height: 1.5; }
.admin-modal-data-panel,
.admin-modal-actions-panel,
.admin-modal-private-panel,
.admin-modal-expedient-panel,
.admin-modal-documents-panel,
.admin-modal-document-management-panel,
.admin-modal-evaluation-panel,
.admin-modal-payments-panel,
.admin-modal-corrections-panel,
.admin-modal-reservations-panel,
.admin-modal-certificates-panel,
.admin-modal-audits-panel { display: grid; gap: 10px; }
.admin-modal-validation-panel,
.admin-modal-committee-panel { display: grid; gap: 10px; }
.admin-modal-actions-panel > .status-chip {
    width: fit-content;
    max-width: 100%;
    justify-self: start;
    align-self: start;
}
.admin-modal-data-panel h3,
.admin-modal-actions-panel h3,
.admin-modal-private-panel h3,
.admin-modal-expedient-panel h3,
.admin-modal-documents-panel h3,
.admin-modal-document-management-panel h3,
.admin-modal-evaluation-panel h3,
.admin-modal-payments-panel h3,
.admin-modal-corrections-panel h3,
.admin-modal-reservations-panel h3,
.admin-modal-certificates-panel h3,
.admin-modal-audits-panel h3 { margin: 0; }
.admin-modal-validation-panel h3,
.admin-modal-committee-panel h3 { margin: 0; }
.admin-modal-data-list { display: grid; gap: 0; margin: 0; }
.admin-modal-data-list > div {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.15fr);
    gap: 7px;
    padding: 8px 0;
    border-bottom: 1px solid #dce7f3;
    font-size: 10.5px;
    line-height: 1.38;
}
.admin-modal-data-list > div:last-child { border-bottom: 0; }
.admin-modal-data-list dt { color: #6680a2; }
.admin-modal-data-list dd { margin: 0; color: var(--ip-blue); font-weight: 700; overflow-wrap: anywhere; }
.admin-participant-status-value {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding-right: 18px;
}
.modal-participant-profile .admin-participant-status-value { padding-left: 18px; text-align: center; }
.admin-participant-status-value > .admin-validation-indicator {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}
.admin-validation-indicator {
    display: inline-grid;
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
    place-items: center;
    color: #687b91;
    font-size: 10px;
    line-height: 1;
    vertical-align: middle;
}
.admin-validation-indicator[hidden] { display: none !important; }
.admin-validation-indicator[data-status="conform"] { color: #14824b; }
.admin-validation-indicator[data-status="observed"] { color: #c3442b; }
.admin-validation-indicator[data-status="not_applicable"] { color: #718397; }
.modal-participant-profile .admin-validation-indicator,
.modal-participant-profile span.admin-validation-indicator { color: #687b91; font-size: 10px; }
.modal-participant-profile .admin-validation-indicator[data-status="conform"] { color: #14824b; }
.modal-participant-profile .admin-validation-indicator[data-status="observed"] { color: #c3442b; }
.modal-participant-profile .admin-validation-indicator[data-status="not_applicable"] { color: #718397; }
.admin-modal-disclosure summary {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
    list-style: none;
}
.admin-modal-disclosure summary::-webkit-details-marker { display: none; }
.admin-modal-disclosure summary::after { margin-left: auto; color: #6f86a7; content: '+'; }
.admin-modal-disclosure[open] summary { margin-bottom: 10px; }
.admin-modal-disclosure[open] summary::after { content: '−'; }
.admin-modal-disclosure .detail-note { margin: 0 0 7px; }
.admin-modal-archive-action {
    justify-content: center;
    justify-self: stretch;
    margin-top: 18px;
    text-align: center;
}
.admin-expedient-payment-summary {
    display: grid;
    gap: 9px;
    margin-top: 6px;
    padding-top: 13px;
    border-top: 1px solid #dce7f3;
}
.admin-expedient-section-title {
    display: flex;
    gap: 6px;
    align-items: center;
    margin: 13px 0 7px;
    color: #315d8a;
    font-size: 11px;
}
.admin-expedient-section-title i { color: var(--ip-gold); }
.admin-data-change-history {
    margin-top: 10px;
    border-top: 1px solid #dce7f3;
}
.admin-data-change-history > summary {
    display: flex;
    align-items: center;
    gap: 5px;
    padding-top: 8px;
    color: #35618d;
    cursor: pointer;
    font-size: 9px;
    font-weight: 800;
    list-style: none;
}
.admin-data-change-history > summary::-webkit-details-marker { display: none; }
.admin-data-change-history > summary i { color: var(--ip-gold); }
.admin-data-change-history > summary small {
    display: inline-grid;
    min-width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 999px;
    background: #e8f0f8;
    color: #43698f;
    font-size: 8px;
}
.admin-data-change-history-list { display: grid; gap: 6px; padding-top: 7px; }
.admin-data-change-history-list > article { display: grid; gap: 5px; padding: 7px; border: 1px solid #d8e5f1; border-radius: 5px; background: #f9fcff; }
.admin-data-change-history-list > article > header { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.admin-data-change-history-list > article > header > small { color: #7289a3; font-size: 8px; }
.admin-data-change-history-list .status-chip { min-height: 17px; padding: 2px 5px; font-size: 7.5px; }
.admin-data-change-history-row { display: grid; gap: 2px; padding-top: 5px; border-top: 1px solid #e3edf6; }
.admin-data-change-history-row b { color: #41678d; font-size: 8.5px; }
.admin-data-change-history-row span { color: #285885; font-size: 8.5px; line-height: 1.35; overflow-wrap: anywhere; }
.admin-data-change-history-row em { display: inline-block; min-width: 40px; color: #7a90a8; font-size: 7.5px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.admin-expedient-payment-heading {
    display: grid;
    gap: 7px;
}
.admin-expedient-payment-heading h4 {
    display: flex;
    gap: 7px;
    align-items: center;
    margin: 0;
    color: var(--ip-blue);
    font-size: 11.5px;
}
.admin-expedient-payment-heading h4 i { color: var(--ip-blue); }
.admin-expedient-payment-heading .status-chip { justify-self: start; }
.admin-expedient-payment-data {
    display: grid;
    gap: 0;
    margin: 0;
}
.admin-expedient-payment-data > div {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.25fr);
    gap: 7px;
    padding: 5px 0;
    border-bottom: 1px solid #e7eef6;
    font-size: 9.5px;
    line-height: 1.35;
}
.admin-expedient-payment-data > div:last-child { border-bottom: 0; }
.admin-expedient-payment-data dt { color: #6882a1; }
.admin-expedient-payment-data dd { margin: 0; color: var(--ip-blue); font-weight: 750; overflow-wrap: anywhere; }
.admin-expedient-payment-actions { margin-top: 1px; }
.admin-expedient-payment-history { margin-top: 4px; border: 1px solid #d3e0ee; border-radius: 6px; background: #fbfdff; }
.admin-expedient-payment-history > summary { display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 7px 8px; color: var(--ip-blue); cursor: pointer; font-size: 9.5px; font-weight: 800; list-style: none; }
.admin-expedient-payment-history > summary::-webkit-details-marker { display: none; }
.admin-expedient-payment-history > summary i { color: #597c9e; font-size: 8px; transition: transform .18s ease; }
.admin-expedient-payment-history[open] > summary { border-bottom: 1px solid #dce7f2; background: #f3f8fd; }
.admin-expedient-payment-history[open] > summary i { transform: rotate(180deg); }
.admin-expedient-payment-history-list { display: grid; gap: 0; }
.admin-expedient-payment-history-item { display: grid; gap: 4px; padding: 7px 8px; border-top: 1px solid #e3ebf4; }
.admin-expedient-payment-history-item:first-child { border-top: 0; }
.admin-expedient-payment-history-item > header { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.admin-expedient-payment-history-item b { color: var(--ip-blue); font-size: 9px; }
.admin-expedient-payment-history-item p { margin: 0; color: #627d99; font-size: 8.5px; line-height: 1.35; }
.admin-expedient-payment-history-item a { width: max-content; color: #0a5791; font-size: 8.5px; font-weight: 800; text-decoration: none; }
.admin-expedient-payment-history-item a:hover { text-decoration: underline; }
.admin-expedient-payment-view {
    width: max-content;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.admin-expedient-reservations-summary {
    display: grid;
    gap: 9px;
    margin-top: 8px;
    padding-top: 13px;
    border-top: 1px solid #dce7f3;
}
.admin-expedient-reservations-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.admin-expedient-reservations-heading h4 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--ip-blue);
    font-size: 11.5px;
}
.admin-expedient-reservations-heading h4 i { color: var(--ip-blue); }
.admin-expedient-reservations-count {
    flex: 0 0 auto;
    padding: 4px 7px;
    border: 1px solid #cbddee;
    border-radius: 5px;
    background: #f8fbfe;
    color: #466887;
    font-size: 8.5px;
    font-weight: 800;
    text-transform: uppercase;
}
.admin-expedient-reservation-collection { display: grid; gap: 6px; }
.admin-expedient-reservation-item {
    margin: 0;
    border: 1px solid #d8e4f0;
    border-radius: 8px;
    background: #f8fbfe;
    overflow: hidden;
}
.admin-expedient-reservation-item[open] { background: #fff; border-color: #b8cfe5; }
.admin-expedient-reservation-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 7px;
    padding: 9px;
    cursor: pointer;
    list-style: none;
}
.admin-expedient-reservation-summary::-webkit-details-marker { display: none; }
.admin-expedient-reservation-summary:focus-visible { outline: 2px solid #4c87bf; outline-offset: -2px; }
.admin-expedient-reservation-summary-main { display: grid; min-width: 0; gap: 2px; }
.admin-expedient-reservation-summary-main b { color: var(--ip-blue); font-size: 10.5px; line-height: 1.3; overflow-wrap: anywhere; }
.admin-expedient-reservation-summary-main small { color: #607e9d; font-size: 8.5px; line-height: 1.3; }
.admin-expedient-reservation-summary-main small i { color: #50779e; }
.admin-expedient-reservation-summary > .status-chip { max-width: 112px; justify-self: end; text-align: center; }
.admin-expedient-reservation-chevron { color: #537898; font-size: 10px; transition: transform .18s ease; }
.admin-expedient-reservation-item[open] > .admin-expedient-reservation-summary { border-bottom: 1px solid #dce7f3; }
.admin-expedient-reservation-item[open] .admin-expedient-reservation-chevron { transform: rotate(180deg); }
.admin-expedient-reservation-details { display: grid; gap: 8px; padding: 9px; }
.admin-expedient-reservation-payment-heading {
    display: grid;
    gap: 6px;
}
.admin-expedient-reservation-payment-heading > b { color: var(--ip-blue); font-size: 10.5px; line-height: 1.35; }
.admin-expedient-reservation-payment-heading > .status-chip { justify-self: start; }
.admin-expedient-reservation-payment {
    display: grid;
    gap: 8px;
    padding: 9px;
    border: 1px solid #d8e4f0;
    border-radius: 7px;
    background: #f8fbfe;
}
.admin-expedient-reservation-validation {
    padding-top: 8px;
    border-top: 1px solid #dce7f3;
}
.admin-expedient-reservation-validation [hidden] { display: none !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-feedback] {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #e8c7bd;
    border-radius: 8px;
    background: #fff9f7;
}
.admin-reservation-payment-control-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 6px;
    align-items: center;
}
.admin-reservation-payment-control-row > select:only-child { grid-column: 1 / -1; }
.admin-reservation-payment-control-row .admin-expedient-payment-view {
    min-height: 33px;
    padding: 6px 9px;
    border: 1px solid #b7cee7;
    border-radius: 6px;
    background: #fff;
    color: var(--ip-blue);
    font-size: 10px;
    font-weight: 800;
}
.admin-reservation-payment-control-row .admin-expedient-payment-view:hover,
.admin-reservation-payment-control-row .admin-expedient-payment-view:focus-visible {
    background: #eef5fb;
    outline: 0;
}
.admin-reservation-payment-participant-action {
    color: #a03d32;
    font-size: 9px;
    font-weight: 800;
}
.admin-reservation-payment-reason-label {
    display: grid;
    gap: 5px;
    color: #934638;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.35;
}
.admin-reservation-payment-reason-label textarea {
    width: 100%;
    min-height: 72px;
    padding: 8px 9px;
    border: 1px solid #d8aaa0;
    border-radius: 6px;
    background: #fff;
    color: #334f6c;
    font: inherit;
    font-weight: 600;
    line-height: 1.4;
    resize: vertical;
}
.admin-reservation-payment-reason-label textarea::placeholder { color: #9e8782; font-weight: 500; }
.admin-reservation-payment-reason-label textarea:focus {
    border-color: #c66c5c;
    outline: 2px solid rgba(198, 108, 92, .16);
    outline-offset: 1px;
}
.admin-reservation-payment-correction-request {
    display: grid;
    gap: 6px;
    padding-top: 8px;
    border-top: 1px solid #f0d8d4;
}
.admin-reservation-payment-correction-request .btn { justify-self: start; min-height: 31px; padding: 5px 9px; }
.admin-reservation-payment-correction-request small { color: #98675d; font-size: 8.8px; line-height: 1.35; }
.admin-reservation-payment-validation-actions { display: flex; justify-content: flex-end; padding-top: 1px; }
.admin-reservation-payment-validation-actions .btn { min-height: 37px; }
.admin-reservation-payment-confirmed {
    margin: 0;
    color: #087246;
    font-weight: 700;
}
.admin-reservation-payment-rejected {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 0;
    padding: 9px;
    border: 1px solid #edbbb2;
    border-left: 3px solid #cc5141;
    border-radius: 7px;
    background: #fff6f4;
    color: #8d4035;
    font-size: 9.5px;
    line-height: 1.4;
}
.admin-reservation-payment-rejected > i { margin-top: 1px; color: #c84737; }
.admin-reservation-payment-rejected > span { display: grid; gap: 3px; }
.admin-reservation-payment-rejected > span > b { color: #94372a; }
.admin-reservation-payment-rejected small { color: #855d56; font-size: 8.8px; }
.admin-reservation-payment-history { margin: 0; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="pending"],
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="sent"] { border-color: #cbd5df !important; background-color: #f2f5f7 !important; color: #536579 !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="conform"],
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="validated"] { border-color: #a9ddbe !important; background-color: #e9f9ef !important; color: #116e40 !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="observed"] { border-color: #efb3a5 !important; background-color: #fff0eb !important; color: #a93824 !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="rejected"] { border-color: #de9588 !important; background-color: #ffe9e4 !important; color: #962d20 !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="pending"]:hover { background-color: #f2f5f7 !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="conform"]:hover,
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="validated"]:hover { background-color: #e9f9ef !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="observed"]:hover { background-color: #fff0eb !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select][data-status="rejected"]:hover { background-color: #ffe9e4 !important; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select] option[value="pending"] { color: #536579; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select] option[value="conform"] { color: #116e40; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select] option[value="observed"] { color: #a93824; }
.admin-expedient-reservation-validation [data-admin-reservation-payment-select] option[value="rejected"] { color: #962d20; }
.admin-modal-form { display: grid; gap: 7px; margin: 0; }
.admin-modal-form label { color: #57769b; font-size: 10px; font-weight: 800; }
.admin-modal-form select,
.admin-modal-form textarea { width: 100%; min-width: 0; }

.admin-public-reservation-modal-body {
    display: grid;
    grid-template-columns: minmax(205px, .75fr) minmax(260px, 1fr) minmax(340px, 1.3fr);
    align-items: start;
    gap: 14px;
    min-height: 0;
    max-height: calc(min(93vh, 1080px) - 103px);
    padding: 16px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
}
.admin-public-reservation-modal-body .modal-panel { display: grid; gap: 10px; min-width: 0; }
.admin-public-reservation-modal-body h3 { margin: 0; color: var(--ip-blue); font-size: 17px; line-height: 1.25; }
.admin-public-reservation-operation { display: grid; min-width: 0; gap: 14px; }
.admin-public-reservation-modal-body .admin-expedient-payment-data { display: grid; gap: 0; margin: 0; }
.admin-public-reservation-modal-body .admin-expedient-payment-data > div {
    display: grid;
    grid-template-columns: minmax(75px, .7fr) minmax(0, 1.3fr);
    gap: 8px;
    padding: 8px 0;
    border-top: 1px solid #dce7f3;
    font-size: 10.5px;
}
.admin-public-reservation-link-available { margin: 0; padding: 9px; border: 1px solid #efd178; border-radius: 7px; background: #fff9e9; color: #765a12; }
.admin-public-reservation-payment { border-color: #bfd4e8; }
.admin-public-reservation-preview { align-content: start; border-color: #bfd4e8; background: #fbfdff; }
.admin-public-reservation-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 8px; border-bottom: 1px solid #dce7f3; color: var(--ip-blue); }
.admin-public-reservation-preview-heading b { font-size: 12px; }
.admin-public-reservation-preview-heading b i { margin-right: 4px; color: #e5a800; }
.admin-public-reservation-preview-heading > span { color: #6b83a0; font-size: 10px; font-weight: 750; }
.admin-public-reservation-preview [data-admin-evidence-tab] { display: none !important; }
.admin-public-reservation-preview [data-admin-work-preview-panel][hidden] { display: none !important; }
.admin-public-reservation-preview-empty { display: grid; min-height: 385px; align-content: center; justify-items: center; gap: 9px; padding: 28px; border: 1px dashed #b8cde2; border-radius: 8px; background: #f5f9fd; color: #537395; text-align: center; }
.admin-public-reservation-preview-empty > i { color: #0b5790; font-size: 27px; }
.admin-public-reservation-preview-empty > b { color: var(--ip-blue); font-size: 12px; }
.admin-public-reservation-preview-empty > span { max-width: 250px; font-size: 10.5px; line-height: 1.45; }
.admin-public-reservation-preview-empty.is-unavailable { background: #fcfdff; color: #7288a0; }
.admin-public-reservation-evidence-viewer { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.admin-public-reservation-evidence-viewer > header { padding: 0 0 4px; }
.admin-public-reservation-evidence-viewer .admin-evidence-image-stage { min-height: 385px; max-height: min(58vh, 620px); padding: 12px; }
.admin-public-reservation-evidence-viewer .admin-evidence-image-canvas { min-height: 360px; }
.admin-public-reservation-evidence-viewer .admin-evidence-image-stage img { max-height: 570px; }
.admin-public-reservation-evidence-viewer .admin-evidence-pdf { min-height: 385px; }
.admin-public-reservation-evidence-viewer .admin-evidence-pdf-stage { min-height: 350px; max-height: min(54vh, 585px); }

.registration-public-reservation-status { display: grid; gap: 5px; }
.registration-public-reservation-status .status-chip { justify-self: start; max-width: 100%; white-space: normal; }
.registration-public-reservation-status small { color: #667f9c; font-size: 9px; }
.participant-public-reservations-card { display: grid; gap: 10px; }
.participant-public-reservations-list { display: grid; gap: 9px; }
.participant-public-reservation-item { display: grid; gap: 8px; padding: 10px; border: 1px solid #d7e4f1; border-radius: 8px; background: #f8fbfe; }
.participant-public-reservation-heading { display: grid; gap: 6px; }
.participant-public-reservation-heading > b { color: var(--ip-blue); font-size: 10.5px; overflow-wrap: anywhere; }
.participant-public-reservation-heading > .status-chip { justify-self: start; max-width: 100%; white-space: normal; }
.participant-public-reservation-item dl { display: grid; gap: 0; margin: 0; }
.participant-public-reservation-item dl > div { display: grid; grid-template-columns: minmax(70px, .7fr) minmax(0, 1.3fr); gap: 7px; padding: 6px 0; border-top: 1px solid #dce7f3; font-size: 9.5px; }
.participant-public-reservation-item dt { color: #65809e; }
.participant-public-reservation-item dd { margin: 0; color: var(--ip-blue); font-weight: 750; text-align: right; }
.participant-public-reservation-item dd .status-chip { max-width: 100%; white-space: normal; }
@media (max-width: 820px) {
    .admin-public-reservation-modal-body { grid-template-columns: 1fr; max-height: none; scrollbar-gutter: auto; }
    .admin-public-reservation-preview-empty { min-height: 260px; }
    .admin-public-reservation-evidence-viewer .admin-evidence-image-stage { min-height: 280px; }
    .admin-public-reservation-evidence-viewer .admin-evidence-image-canvas { min-height: 255px; }
    .admin-public-reservation-evidence-viewer .admin-evidence-pdf { min-height: 280px; }
    .admin-public-reservation-evidence-viewer .admin-evidence-pdf-stage { min-height: 245px; }
}
.admin-registration-view-modal .admin-modal-form select {
    -webkit-appearance: none;
    appearance: none;
    min-height: 34px;
    padding: 7px 30px 7px 10px;
    border: 1px solid #b7cee7;
    border-radius: 7px;
    background-color: #f8fbff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23054a7b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
    background-size: 10px 6px;
    box-shadow: none;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
}
.admin-registration-view-modal .admin-modal-form select:hover { border-color: #7ea6cb; background-color: #fff; }
.admin-registration-view-modal .admin-modal-form select:focus {
    border-color: var(--ip-blue);
    box-shadow: 0 0 0 3px rgba(5, 74, 123, .12);
    outline: 0;
}
.admin-registration-view-modal .admin-modal-form select option {
    background: #fff;
    color: var(--ip-blue);
    font-size: 11px;
    font-weight: 600;
}
.admin-modal-form textarea { min-height: 58px; resize: vertical; }
.admin-modal-form .btn { justify-self: start; }
.admin-modal-work-panel { display: grid !important; gap: 12px; }
.admin-work-preview-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding-bottom: 9px;
    border-bottom: 1px solid #dce7f3;
}
.admin-work-preview-tabs button {
    min-height: 31px;
    padding: 6px 10px;
    border: 1px solid #bfd2e6;
    border-radius: 6px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 10.5px;
    font-weight: 800;
}
.admin-work-preview-tabs button.is-active {
    border-color: var(--ip-blue);
    background: var(--ip-blue);
    color: #fff;
}
.admin-anonymous-work {
    display: grid;
    gap: 16px;
    min-height: 540px;
    padding: clamp(22px, 4vw, 54px);
    border: 1px solid #d5e1ee;
    border-radius: 8px;
    background: #fffdfa;
    color: #173f68;
}
.admin-anonymous-work[hidden],
.admin-registration-main [data-admin-work-preview-panel][hidden] { display: none !important; }
.admin-anonymous-work-heading { padding-bottom: 14px; border-bottom: 2px solid #e9bd28; }
.admin-anonymous-work-heading span { color: #6d82a0; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.admin-anonymous-work-heading h4 { margin: 7px 0 5px; color: var(--ip-blue); font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(25px, 2vw, 36px); line-height: 1.05; }
.admin-anonymous-work-heading p { margin: 0; color: #637c9c; font-size: 11px; }
.admin-technical-review {
    display: grid;
    gap: 9px;
    padding: 11px;
    border: 1px solid #d5e1ee;
    border-radius: 8px;
    background: #fff;
}
.admin-technical-review > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 9px;
}
.admin-technical-review > header > div { display: grid; gap: 2px; }
.admin-technical-review h5 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--ip-blue);
    font-size: 11px;
}
.admin-technical-review h5 i { color: var(--ip-blue); }
.admin-technical-review > header p { margin: 0; color: #6a809b; font-size: 9px; }
.admin-technical-review-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 7px;
}
.admin-technical-review-card {
    display: grid;
    min-width: 0;
    gap: 3px;
    padding: 8px 9px;
    border: 1px solid #cbd9e8;
    border-left-width: 3px;
    border-radius: 6px;
    background: #f7faff;
}
.admin-technical-review-card > span {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #5e7796;
    font-size: 8.5px;
    font-weight: 800;
    line-height: 1.2;
}
.admin-technical-review-card > span i { color: inherit; }
.admin-technical-review-card b {
    color: var(--ip-blue);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.admin-technical-review-card small { color: #71849b; font-size: 8px; line-height: 1.2; }
.admin-technical-review-card[data-status="conform"] { border-color: #a9ddbe; border-left-color: #14824b; background: #eef9f2; }
.admin-technical-review-card[data-status="conform"] > span,
.admin-technical-review-card[data-status="conform"] b { color: #116e40; }
.admin-technical-review-card[data-status="observed"] { border-color: #efb3a5; border-left-color: #c3442b; background: #fff3ef; }
.admin-technical-review-card[data-status="observed"] > span,
.admin-technical-review-card[data-status="observed"] b { color: #a93824; }
.admin-technical-review-card[data-status="informative"] { border-left-color: var(--ip-blue); }
.admin-technical-review-note {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin: 0;
    color: #637b98;
    font-size: 8.5px;
    line-height: 1.3;
}
.admin-technical-review-note i { margin-top: 1px; color: var(--ip-blue); }
.admin-anonymous-work-content {
    display: grid;
    gap: 0;
    max-width: 760px;
    padding-left: 26px;
    color: #201812;
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 14px;
    line-height: 1.34;
}
.admin-anonymous-work-content.is-prose {
    /* Se amplía solo la hoja anónima para reproducir la composición visible
       de la prosa editorial sin alterar el maquetado ni su escala. */
    max-width: calc(29.7em + 26px);
    line-height: 1.18;
}
.admin-anonymous-paragraph,
.admin-anonymous-stanza,
.admin-anonymous-verse { position: relative; }
.admin-anonymous-paragraph { margin: 0; }
.admin-anonymous-paragraph + .admin-anonymous-paragraph,
.admin-anonymous-stanza + .admin-anonymous-stanza { margin-top: 12px; }
.admin-anonymous-paragraph p { margin: 0; white-space: pre-wrap; }
.editorial-technical-pages {
    display: grid;
    gap: 14px;
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
}
.editorial-technical-page {
    width: max-content;
    max-width: none;
    padding: 10px 13px 12px;
    border: 1px solid #cbddeb;
    border-radius: 8px;
    background: #fffefd;
    box-shadow: 0 3px 8px rgba(26, 59, 89, .05);
}
.editorial-technical-page > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 9px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e3eaf2;
    color: #235980;
    font-family: inherit;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.editorial-technical-page > header i { margin-right: 4px; color: var(--ip-gold); }
.editorial-technical-page > header small { color: #7187a0; font-size: 8px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.editorial-technical-page-content { width: max-content; max-width: none; margin: 0; }
.editorial-technical-page-content .book-prose-visual-line { display: block; white-space: nowrap; }
.editorial-technical-page-form-replica { width: 409px; }
.editorial-technical-form-replica-content {
    width: 357px;
    max-width: none;
    margin-left: 26px;
    padding-left: 0;
    font-size: 12.6px;
    line-height: 1.18;
}
.editorial-technical-form-replica-content .admin-anonymous-paragraph + .admin-anonymous-paragraph {
    margin-top: 10.6px;
}
.editorial-technical-form-replica-content .admin-anonymous-paragraph p {
    text-align: left;
    text-align-last: left;
    word-spacing: normal;
}
.admin-anonymous-verse { min-height: 1.34em; white-space: normal; }
.admin-anonymous-verse > span:last-child { display: block; white-space: pre-wrap; }
.admin-anonymous-content-number {
    position: absolute;
    top: 0;
    right: calc(100% + 8px);
    width: 22px;
    color: #6d82a0;
    font-size: .78em;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    line-height: inherit;
    text-align: right;
}
.admin-anonymous-work > small { align-self: end; color: #6c829f; font-size: 10px; line-height: 1.4; }
.admin-registration-main .modal-book-preview { margin: 0; }
.admin-registration-main .modal-book-preview .book-spread-preview { width: min(100%, 1080px); }
.admin-editorial-version-context { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 6px; margin: 0 0 8px; padding: 7px 8px; border: 1px solid #d5e4f1; border-radius: 7px; background: #f8fbfe; text-align: left; }
.admin-editorial-version-context-item { display: inline-flex; align-items: center; gap: 4px; min-height: 23px; padding: 4px 7px; border: 1px solid #d2e2ef; border-radius: 5px; background: #fff; color: #456b8e; font-size: 8.5px; font-weight: 700; line-height: 1.2; }
.admin-editorial-version-context-item i { width: 11px; text-align: center; color: #3d719a; }
.admin-editorial-version-context-item b { color: #174f7d; }
.admin-editorial-version-context-item.is-presented { border-color: #b9d9ed; background: #f1f9fe; }
.admin-editorial-version-context-item.is-presented i { color: #1675a9; }
.admin-editorial-version-context-item.is-evaluable { border-color: #bfe4cd; background: #f1fbf5; color: #39745a; }
.admin-editorial-version-context-item.is-evaluable i,
.admin-editorial-version-context-item.is-evaluable b { color: #187245; }
.admin-modal-work-summary {
    display: grid;
    gap: 0;
    border-top: 1px solid #dce7f3;
    border-bottom: 1px solid #dce7f3;
}
.admin-modal-work-summary > div {
    padding: 8px 1px;
    border-bottom: 1px solid #edf2f8;
    color: #567399;
    font-size: 11px;
    line-height: 1.48;
}
.admin-modal-work-summary > div:last-child { border-bottom: 0; }
.admin-modal-work-summary b { color: var(--ip-blue); }
.admin-modal-work-content p { margin: 5px 0 0; white-space: pre-line; }
.admin-modal-downloads { display: flex; flex-wrap: wrap; gap: 7px; }
.admin-modal-work-form { grid-template-columns: 1fr; align-items: stretch; padding-top: 2px; }
.admin-modal-work-form label { grid-column: auto; }
.admin-modal-work-form textarea { min-height: 76px; }
.admin-modal-work-form .btn { align-self: start; }
.admin-review-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.admin-review-panel-heading > h3 { min-width: 0; }
.admin-review-panel-heading .status-chip { flex: 0 0 auto; }
.admin-review-panel-heading-actions {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 5px;
}
.admin-validation-collapse-toggle {
    display: inline-grid;
    width: 25px;
    height: 25px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 10px;
}
.admin-validation-collapse-toggle:hover,
.admin-validation-collapse-toggle:focus-visible {
    background: #fff8df;
    color: #8c6500;
    outline: 1px solid var(--ip-gold);
    outline-offset: -1px;
}
.admin-validation-compact-summary {
    display: none;
    gap: 3px;
    padding-top: 1px;
    color: #5d7593;
    line-height: 1.35;
}
.admin-validation-compact-summary b { color: var(--ip-blue); font-size: 10px; }
.admin-validation-compact-summary small { color: #6b8099; font-size: 9px; }
.admin-stage-compact-summary {
    display: grid;
    gap: 3px;
    padding-top: 1px;
    color: #5d7593;
    line-height: 1.35;
}
.admin-stage-compact-summary b { color: var(--ip-blue); font-size: 10px; }
.admin-stage-compact-summary small { color: #6b8099; font-size: 9px; }
.admin-modal-validation-panel[data-collapsed="true"] { gap: 7px; }
.admin-modal-validation-panel[data-collapsed="true"] [data-admin-validation-content] { display: none; }
.admin-modal-validation-panel[data-collapsed="true"] .admin-validation-compact-summary { display: grid; }
.admin-review-stage-panel[data-collapsed="true"] { gap: 7px; }
.admin-review-stage-panel[data-collapsed="true"] [data-admin-review-stage-content] { display: none; }
.admin-validation-list { display: grid; gap: 5px; padding-bottom: 8px; }
.admin-validation-group {
    display: grid;
    gap: 5px;
    padding: 7px;
    border: 1px solid #cdddeb;
    border-radius: 8px;
    background: #f8fbff;
}
.admin-validation-group.is-not-applicable { background: #f3f5f7; }
.admin-validation-group > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
    padding: 1px 1px 6px;
    border-bottom: 1px solid #dce7f3;
}
.admin-validation-group-title { display: flex; min-width: 0; align-items: center; gap: 9px; }
.admin-validation-group-icon {
    display: grid;
    flex: 0 0 17px;
    width: 17px;
    height: auto;
    place-items: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #054a7b;
    font-size: 12px;
}
.admin-validation-group-copy { display: grid; min-width: 0; gap: 2px; }
.admin-validation-group-copy b { color: var(--ip-blue); font-size: 10.5px; line-height: 1.2; }
.admin-validation-group-copy small { color: #6c82a0; font-size: 8.5px; line-height: 1.25; }
.admin-validation-group-items { display: grid; gap: 4px; }
.admin-validation-group-review {
    display: grid;
    flex: 0 0 31px;
    width: 31px;
    height: 31px;
    place-items: center;
    padding: 0;
    border: 1px solid #b8cee3;
    border-radius: 6px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 10.5px;
}
.admin-validation-group-review:hover,
.admin-validation-group-review:focus-visible { border-color: var(--ip-gold); background: #fff8df; color: #8c6500; outline: 0; }
.admin-validation-not-applicable { display: inline-flex !important; grid-auto-flow: column; align-items: center; gap: 4px !important; color: #687b91; font-size: 9px; font-weight: 800; white-space: nowrap; }
.admin-validation-other-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 2px 2px; color: #657e9d; font-size: 8.5px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.admin-validation-other-heading-review { color: #9a6700; font-size: 8px; font-weight: 800; letter-spacing: 0; text-align: right; text-transform: none; }
.admin-validation-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 108px;
    align-items: center;
    gap: 5px 6px;
    padding: 6px 7px;
    border: 1px solid #dce7f3;
    border-radius: 7px;
    background: #fbfdff;
}
.admin-validation-item.is-not-applicable { background: #f5f7fa; }
.admin-validation-item-label { min-width: 0; color: var(--ip-blue); font-size: 10px; line-height: 1.3; }
.admin-validation-item-label > span { color: #054a7b; }
.admin-validation-item.is-grouped { grid-template-columns: minmax(0, 1fr) 116px; column-gap: 14px; min-height: 39px; padding: 6px 8px; }
.admin-validation-item.is-grouped > select { grid-column: 2; }
.admin-validation-evidence-button {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 27px;
    padding: 4px 7px;
    border: 1px solid #bed2e7;
    border-radius: 5px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 9px;
    font-weight: 800;
    white-space: nowrap;
}
.admin-validation-evidence-button:hover,
.admin-validation-evidence-button:focus-visible { border-color: var(--ip-blue); background: #eef5fb; outline: 0; }
.admin-validation-evidence-button:disabled { border-color: #d8e1eb; background: #f2f4f7; color: #96a5b7; cursor: not-allowed; }
.admin-validation-item select {
    min-height: 29px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
    font-weight: 800;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.admin-validation-item[data-status="pending"] { box-shadow: inset 3px 0 #8795a5; }
.admin-validation-item[data-status="conform"] { box-shadow: inset 3px 0 #14824b; }
.admin-validation-item[data-status="observed"] { box-shadow: inset 3px 0 #c3442b; }
.admin-validation-item[data-status="not_applicable"] { box-shadow: inset 3px 0 #718397; }
[data-admin-validation-status][data-status="pending"] {
    border-color: #cbd5df !important;
    background-color: #f2f5f7 !important;
    color: #536579 !important;
}
[data-admin-validation-status][data-status="conform"] {
    border-color: #a9ddbe !important;
    background-color: #e9f9ef !important;
    color: #116e40 !important;
}
[data-admin-validation-status][data-status="observed"] {
    border-color: #efb3a5 !important;
    background-color: #fff0eb !important;
    color: #a93824 !important;
}
[data-admin-validation-status][data-status="not_applicable"] {
    border-color: #c7d1dc !important;
    background-color: #edf1f5 !important;
    color: #607287 !important;
}
[data-admin-validation-status] option[value="pending"] { color: #536579; }
[data-admin-validation-status] option[value="conform"] { color: #116e40; }
[data-admin-validation-status] option[value="observed"] { color: #a93824; }
[data-admin-validation-status] option[value="not_applicable"] { color: #607287; }
.admin-validation-actions { grid-column: 1 / -1; display: grid; gap: 5px; padding: 7px 8px; border: 1px solid #efb3a5; border-radius: 7px; background: #fff9f7; }
.admin-validation-actions[hidden] { display: none !important; }
.admin-validation-actions > span { color: #a93824; font-size: 9px; font-weight: 800; }
.admin-validation-actions > div { display: flex; flex-wrap: wrap; gap: 5px 9px; }
.admin-validation-actions label { display: inline-flex; align-items: center; gap: 4px; color: #354d66; font-size: 9px; font-weight: 700; cursor: pointer; }
.admin-validation-actions input { width: auto; margin: 0; accent-color: #054a7b; }
.admin-validation-correction-request { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 7px; padding-top: 2px; border-top: 1px solid #f2d6cf; }
.admin-validation-correction-request .btn { min-height: 27px; padding: 5px 8px; font-size: 9px; }
.admin-validation-correction-request small { color: #7c6a69; font-size: 8.5px; line-height: 1.25; }
.admin-validation-correction-sent { color: #14824b; font-size: 8.5px; font-weight: 800; }
.admin-validation-signature-note { grid-column: 1 / -1; color: #9b6a00; font-size: 8.5px; font-weight: 750; }
.admin-validation-item.is-pending-signature { background: #fffaf0; }
.admin-validation-item.is-correction-requested { background: #fff9f7; }
.admin-validation-item.is-correction-review { border-color: #ebca7b; background: #fffaf0; box-shadow: inset 3px 0 #d4960b; }
.admin-validation-item.is-correction-requested select:disabled { cursor: not-allowed; opacity: 1; }
.admin-validation-prior-observation { color: #8f4d3e; font-size: 8.5px; }
.admin-validation-pending-review-note { grid-column: 1 / -1; color: #9a6700; font-size: 8.5px; font-weight: 800; }
.admin-validation-save {
    position: static;
    z-index: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin: 4px 0 0;
    padding: 10px 0 1px;
    border-top: 1px solid #dce7f3;
    background: #fff;
}
.admin-validation-save-summary {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 6px;
}
.admin-validation-save-state { display: inline-flex; min-width: 0; align-items: center; gap: 4px; color: #607287; font-size: 8.5px; font-weight: 750; line-height: 1.2; }
.admin-validation-save-state[data-state="saved"] { color: #14824b; }
.admin-validation-save-state[data-state="pending"],
.admin-validation-save-state[data-state="saving"] { color: #536579; }
.admin-validation-save-state[data-state="warning"] { color: #a46a00; }
.admin-validation-save-state[data-state="error"] { color: #a93824; }
.admin-validation-pending-count {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 6px;
    border: 1px solid #f1cc75;
    border-radius: 4px;
    background: #fff8e7;
    color: #9a6400;
    font-size: 8.5px;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}
.admin-validation-pending-count[hidden] { display: none; }
.admin-validation-correction-dispatch-row {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    margin-top: -2px;
}
.admin-validation-save .admin-correction-bundle-dispatch {
    flex: 0 0 auto;
    min-height: 32px;
    padding: 6px 9px;
    font-size: 10px;
    line-height: 1.2;
    white-space: nowrap;
}
.admin-evidence-viewer {
    display: grid;
    gap: 13px;
    min-height: 540px;
    padding: clamp(15px, 2vw, 25px);
    border: 1px solid #d5e1ee;
    border-radius: 8px;
    background: #f8fbff;
}
.admin-evidence-viewer[hidden],
.admin-evidence-viewer [data-admin-evidence-panel][hidden] { display: none !important; }
.admin-evidence-viewer > header { padding-bottom: 2px; }
.admin-evidence-viewer > header span { color: #657e9d; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.admin-evidence-viewer > header h4 { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin: 5px 0 3px; color: var(--ip-blue); font-size: 18px; }
.admin-evidence-viewer > header h4 > span:first-child { color: inherit; font-size: inherit; font-weight: inherit; letter-spacing: normal; text-transform: none; }
.admin-evidence-viewer > header p { margin: 0; color: #6b82a0; font-size: 10px; }
.admin-evidence-viewer > section { display: grid; gap: 10px; }
.admin-evidence-history {
    border: 1px solid #d5e3ef;
    border-radius: 7px;
    background: #fff;
}
.admin-evidence-history > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 9px 10px;
    color: #285b8b;
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
    list-style: none;
}
.admin-evidence-history > summary::-webkit-details-marker { display: none; }
.admin-evidence-history > summary span { display: inline-flex; align-items: center; gap: 6px; }
.admin-evidence-history > summary i { color: var(--ip-gold); }
.admin-evidence-history > summary small {
    display: grid;
    min-width: 18px;
    height: 18px;
    place-items: center;
    border-radius: 999px;
    background: #e9f1f8;
    color: #3b668f;
    font-size: 8.5px;
}
.admin-evidence-history[open] > summary { border-bottom: 1px solid #e0ebf4; }
.admin-evidence-history-list { display: grid; gap: 0; padding: 0 10px 4px; }
.admin-evidence-history-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid #edf2f7;
}
.admin-evidence-history-row:first-child { border-top: 0; }
.admin-evidence-history-row > span { display: grid; min-width: 0; gap: 2px; }
.admin-evidence-history-row b { color: #365f88; font-size: 9.5px; line-height: 1.35; }
.admin-evidence-history-row small { color: #7188a1; font-size: 8.5px; line-height: 1.35; }
.admin-evidence-history-row .inline-link,
.admin-evidence-history-back {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: var(--ip-blue);
    cursor: pointer;
    font-weight: 800;
}
.admin-evidence-history-row .inline-link { font-size: 9px; }
.admin-evidence-history-back { width: max-content; padding: 0; font-size: 9px; }
.admin-evidence-viewer section h5 { margin: 0; color: var(--ip-blue); font-size: 14px; }
.admin-evidence-identity-layout { display: grid; grid-template-columns: minmax(205px, .68fr) minmax(0, 1.32fr); align-items: start; gap: 13px; }
.admin-evidence-identity-data,
.admin-evidence-identity-document { display: grid; min-width: 0; align-content: start; gap: 10px; }
.admin-evidence-identity-document-only { width: 100%; }
.admin-evidence-identity-data {
    padding: 13px;
    border: 1px solid #d5e1ee;
    border-radius: 7px;
    background: #fff;
}
.admin-evidence-identity-layout h6,
.admin-evidence-identity-document-only h6 { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding-bottom: 7px; border-bottom: 1px solid #dce7f3; color: var(--ip-blue); font-size: 11px; }
.admin-evidence-identity-list { display: grid; gap: 0; margin: 0; }
.admin-evidence-identity-list > div { display: grid; gap: 2px; padding: 7px 0; border-bottom: 1px solid #edf2f8; }
.admin-evidence-identity-list > div:last-child { border-bottom: 0; }
.admin-evidence-identity-list dt { color: #6a82a0; font-size: 8.5px; font-weight: 700; }
.admin-evidence-identity-list dd { margin: 0; color: var(--ip-blue); font-size: 10.5px; font-weight: 750; overflow-wrap: anywhere; }
.admin-evidence-guardian-authorization-row { display: flex; align-items: center; gap: 7px; }
.admin-evidence-file { display: grid; gap: 9px; min-width: 0; }
.admin-evidence-pdf { display: grid; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; width: 100%; min-height: 470px; border: 1px solid #cbdbea; border-radius: 7px; background: #28323c; }
.admin-evidence-pdf-toolbar { display: flex; align-items: center; min-height: 44px; gap: 9px; padding: 6px 9px; border-bottom: 1px solid rgba(255,255,255,.16); background: #303b46; color: #fff; }
.admin-evidence-pdf-toolbar button,
.admin-evidence-pdf-toolbar a { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; min-height: 28px; padding: 5px 7px; border: 0; border-radius: 4px; background: transparent; color: inherit; cursor: pointer; font-size: 10px; font-weight: 750; text-decoration: none; }
.admin-evidence-pdf-toolbar button:hover,
.admin-evidence-pdf-toolbar button:focus-visible,
.admin-evidence-pdf-toolbar a:hover,
.admin-evidence-pdf-toolbar a:focus-visible { background: rgba(255,255,255,.14); outline: 0; }
.admin-evidence-pdf-toolbar button:disabled { opacity: .34; cursor: default; }
.admin-evidence-pdf-pagination { display: inline-flex; align-items: center; gap: 4px; padding-left: 2px; border-left: 1px solid rgba(255,255,255,.2); color: #dfe7ef; font-size: 10px; }
.admin-evidence-pdf-pagination b { min-width: 18px; color: #fff; text-align: center; }
.admin-evidence-pdf-toolbar-actions { display: inline-flex; align-items: center; gap: 2px; margin-left: auto; }
.admin-evidence-pdf-stage { position: relative; display: grid; min-height: min(64vh, 720px); max-height: min(64vh, 720px); overflow: auto; scrollbar-gutter: stable both-edges; background: #242b33; overscroll-behavior: contain; touch-action: pan-x pan-y; }
.admin-evidence-pdf-canvas-wrap { display: grid; width: max-content; min-width: 100%; height: max-content; min-height: 100%; place-content: center; padding: 14px; }
.admin-evidence-pdf-canvas-wrap canvas { display: block; box-shadow: 0 3px 14px rgba(0,0,0,.28); background: #fff; }
.admin-evidence-pdf-canvas-wrap p { grid-area: 1 / 1; place-self: center; margin: 0; padding: 8px 10px; border-radius: 5px; background: rgba(36,43,51,.86); color: #fff; font-size: 10px; }
.admin-evidence-pdf-canvas-wrap p[hidden] { display: none; }
.admin-evidence-pdf-canvas-wrap [data-admin-evidence-pdf-error] { max-width: 300px; color: #ffcbc3; text-align: center; }
.admin-evidence-pdf.is-rendering [data-admin-evidence-pdf-canvas] { opacity: .68; }
.admin-evidence-pdf-pages { position: absolute; inset: 0 auto 0 0; z-index: 2; display: grid; align-content: start; gap: 8px; width: 144px; padding: 10px; overflow: auto; border-right: 1px solid rgba(255,255,255,.16); background: #202830; box-shadow: 5px 0 15px rgba(0,0,0,.22); }
.admin-evidence-pdf-pages[hidden] { display: none; }
.admin-evidence-pdf-pages button { display: grid; justify-items: center; gap: 4px; padding: 5px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #dfe7ef; cursor: pointer; font-size: 9px; }
.admin-evidence-pdf-pages button:hover,
.admin-evidence-pdf-pages button:focus-visible { border-color: #8fb6da; background: rgba(255,255,255,.1); outline: 0; }
.admin-evidence-pdf-pages canvas { max-width: 100%; height: auto !important; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.admin-evidence-pdf:fullscreen { box-sizing: border-box; width: 100vw; height: 100vh; min-height: 0; border: 0; border-radius: 0; background: #202a34; }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-toolbar { min-height: 52px; padding: 8px 18px; gap: 12px; box-shadow: 0 1px 0 rgba(255,255,255,.08); }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-toolbar button,
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-toolbar a { min-width: 34px; min-height: 34px; padding: 6px 8px; font-size: 11px; }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-pagination { gap: 6px; padding-left: 9px; font-size: 11px; }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-toolbar-actions { gap: 4px; }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-stage { min-height: 0; max-height: none; height: 100%; background: #1d252e; }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-canvas-wrap { padding: 24px 42px; }
.admin-evidence-pdf:fullscreen .admin-evidence-pdf-pages { width: 180px; padding: 14px; }
.admin-evidence-image-stage { display: block; min-height: 420px; max-height: min(64vh, 720px); overflow: auto; padding: 14px; border: 1px solid #cbdbea; border-radius: 7px; background: #eaf0f6; overscroll-behavior: contain; }
.admin-evidence-image-stage[data-pan-enabled="true"] { cursor: grab; touch-action: none; }
.admin-evidence-image-stage.is-dragging { cursor: grabbing; user-select: none; }
.admin-evidence-image-canvas { position: relative; min-width: 100%; min-height: 420px; }
.admin-evidence-image-stage img { position: absolute; top: 50%; left: 50%; display: block; max-width: 100%; max-height: 620px; object-fit: contain; transform: translate(-50%, -50%); transform-origin: center; transition: width .18s ease, height .18s ease, transform .18s ease; user-select: none; }
.admin-evidence-image-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.admin-evidence-image-controls button {
    min-height: 29px;
    padding: 5px 8px;
    border: 1px solid #bed2e7;
    border-radius: 5px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 9.5px;
    font-weight: 750;
}
.admin-evidence-image-controls button:hover,
.admin-evidence-image-controls button:focus-visible { border-color: var(--ip-blue); background: #eef5fb; outline: 0; }
.admin-evidence-file footer { display: flex; align-items: center; justify-content: space-between; gap: 9px; color: #58779c; font-size: 10px; overflow-wrap: anywhere; }
.admin-evidence-file footer > span { min-width: 0; }
.admin-evidence-empty { display: grid; min-height: 220px; place-content: center; gap: 8px; color: #7b8fa7; text-align: center; font-size: 11px; }
.admin-evidence-empty i { color: #b2bfcc; font-size: 24px; }
.admin-evidence-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.admin-evidence-data-grid > div { padding: 10px; border: 1px solid #dae6f2; border-radius: 7px; background: #fff; }
.admin-evidence-data-grid dt { color: #6c83a0; font-size: 9px; }
.admin-evidence-data-grid dd { margin: 3px 0 0; color: var(--ip-blue); font-size: 11px; font-weight: 750; overflow-wrap: anywhere; }
.admin-evidence-payment-data { margin-bottom: 3px; }
.admin-evidence-consents { display: grid; gap: 7px; }
.admin-evidence-consents span { padding: 9px 10px; border: 1px solid #ecd6d2; border-radius: 6px; background: #fff7f5; color: #9a4b43; font-size: 10px; font-weight: 700; }
.admin-evidence-consents span.is-confirmed { border-color: #b9dfcb; background: #f0fbf5; color: #19764d; }
.admin-consent-summary { display: grid; gap: 14px; }
.admin-consent-summary-sections > .confirmation-summary-block:hover,
.admin-consent-summary-sections > .confirmation-summary-block:focus-within { border-color: var(--ip-blue); }
.modal-panel .admin-consent-summary-sections > .confirmation-summary-block:hover h3 > i,
.modal-panel .admin-consent-summary-sections > .confirmation-summary-block:focus-within h3 > i { color: var(--ip-gold); }
.admin-consent-final-confirmation {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px 13px;
    border: 1px solid #e0bbb5;
    border-radius: 8px;
    background: #fff6f4;
    color: #a04439;
}
.admin-consent-final-confirmation.is-confirmed { border-color: #9bd7b7; background: #eefaf4; color: #087246; }
.admin-consent-final-confirmation > i { margin-top: 2px; font-size: 17px; }
.admin-consent-final-confirmation > span { display: grid; gap: 3px; }
.admin-consent-final-confirmation b { font-size: 11px; }
.admin-consent-final-confirmation small { color: inherit; font-size: 10px; line-height: 1.4; }
.admin-consent-final-confirmation em { color: #66809e; font-size: 9px; font-style: normal; }
.modal-file-actions .inline-link { border: 0; background: transparent; cursor: pointer; font: inherit; }
.admin-rubric-list { display: grid; gap: 4px; }
.admin-rubric-item {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 108px;
    align-items: center;
    gap: 6px;
    min-height: 39px;
    padding: 5px 7px;
    border: 1px solid #dce7f3;
    border-radius: 7px;
    background: #fbfdff;
    box-shadow: inset 3px 0 #8795a5;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.admin-rubric-item[data-score="1"] { border-color: #efb3a5; background: #fff8f6; box-shadow: inset 3px 0 #b83f2c; }
.admin-rubric-item[data-score="2"] { border-color: #e5b79c; background: #fff8f2; box-shadow: inset 3px 0 #ba5a2a; }
.admin-rubric-item[data-score="3"] { border-color: #efd36e; background: #fffbea; box-shadow: inset 3px 0 #fdd038; }
.admin-rubric-item[data-score="4"] { border-color: #bdcc91; background: #f6f9ed; box-shadow: inset 3px 0 #6b7d2d; }
.admin-rubric-item[data-score="5"] { border-color: #a9ddbe; background: #effaf4; box-shadow: inset 3px 0 #14824b; }
.admin-rubric-criterion {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
    color: var(--ip-blue);
    font-size: 9.5px;
    font-weight: 750;
    line-height: 1.25;
}
.admin-rubric-criterion > label { min-width: 0; cursor: default; }
.admin-rubric-help {
    position: relative;
    display: inline-flex;
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    align-items: center;
    justify-content: center;
    color: #054a7b;
    font-size: 10px;
    line-height: 1;
    cursor: help;
    outline: none;
}
.admin-rubric-tooltip {
    position: absolute;
    z-index: 80;
    top: calc(100% + 6px);
    left: 50%;
    box-sizing: border-box;
    width: max-content;
    max-width: min(270px, calc(100vw - 48px));
    padding: 7px 9px;
    border: 1px solid #fdd038;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 3px 9px rgba(5, 74, 123, .14);
    color: #054a7b;
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1.35;
    text-align: left;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -2px);
    transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s;
}
.admin-rubric-help:hover .admin-rubric-tooltip,
.admin-rubric-help:focus-visible .admin-rubric-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition-delay: 0s;
}
.admin-rubric-item .admin-rubric-tooltip {
    left: 0;
    transform: translate(0, -2px);
}
.admin-rubric-item .admin-rubric-help { position: static; }
.admin-rubric-item .admin-rubric-help:hover .admin-rubric-tooltip,
.admin-rubric-item .admin-rubric-help:focus-visible .admin-rubric-tooltip { transform: translate(0, 0); }
.admin-rubric-help:focus-visible {
    border-radius: 50%;
    outline: 1px solid #054a7b;
    outline-offset: 1px;
}
.admin-review-panel-heading h3 { display: inline-flex; align-items: center; }
.admin-review-panel-heading h3 > .admin-rubric-help { margin-left: 4px; }
.modal-panel .admin-review-panel-heading h3 > .admin-rubric-help > i { margin-right: 0; color: #054a7b; }
.admin-rubric-item select {
    box-sizing: border-box;
    height: 29px;
    min-height: 29px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    font-size: 10px !important;
    font-weight: 800 !important;
}
.admin-rubric-item[data-score="1"] select { border-color: #efb3a5 !important; background-color: #fff0eb !important; color: #a93824 !important; }
.admin-rubric-item[data-score="2"] select { border-color: #e5b79c !important; background-color: #fff2e8 !important; color: #a84e21 !important; }
.admin-rubric-item[data-score="3"] select { border-color: #efd36e !important; background-color: #fff8df !important; color: #765300 !important; }
.admin-rubric-item[data-score="4"] select { border-color: #bdcc91 !important; background-color: #f1f6e5 !important; color: #526522 !important; }
.admin-rubric-item[data-score="5"] select { border-color: #a9ddbe !important; background-color: #e9f9ef !important; color: #116e40 !important; }
.admin-rubric-item select option[value="1"] { color: #a93824; }
.admin-rubric-item select option[value="2"] { color: #a84e21; }
.admin-rubric-item select option[value="3"] { color: #765300; }
.admin-rubric-item select option[value="4"] { color: #526522; }
.admin-rubric-item select option[value="5"] { color: #116e40; }
.admin-rubric-total {
    padding: 9px 10px;
    border: 1px solid #edc249;
    border-radius: 7px;
    background: #fff8df;
    color: #765300;
    font-size: 11px;
}
.admin-rubric-total b { color: var(--ip-blue); font-size: 16px; }
.admin-literary-evaluation-form { gap: 5px; }
.admin-internal-evaluation-card { display: grid; gap: 6px; margin: 8px 0; padding: 9px; border: 1px solid #bcd4e7; border-left: 3px solid var(--ip-blue); border-radius: 7px; background: #f7fbff; }
.admin-internal-evaluation-card > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; }
.admin-internal-evaluation-card > header > div { min-width: 0; }
.admin-internal-evaluation-card > header .status-chip { justify-self: end; align-self: start; flex: 0 0 auto; white-space: nowrap; }
.admin-internal-evaluation-card h4 { margin: 0; color: var(--ip-blue); font-size: 11px; }
.admin-internal-evaluation-card h4 i { color: #d69d00; }
.admin-internal-evaluation-card header p { margin: 3px 0 0; color: #627d9b; font-size: 9px; line-height: 1.3; }
.admin-evaluation-cycle-history { margin: 8px 0; border: 1px solid #d7e0e9; border-left: 3px solid #8195aa; border-radius: 7px; background: #f7f9fb; }
.admin-evaluation-cycle-history-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 9px; cursor: pointer; list-style: none; }
.admin-evaluation-cycle-history-summary::-webkit-details-marker { display: none; }
.admin-evaluation-cycle-history-summary::marker { content: ''; }
.admin-evaluation-cycle-history-summary > div { min-width: 0; }
.admin-evaluation-cycle-history h4 { margin: 0; color: #49657d; font-size: 10.5px; }
.admin-evaluation-cycle-history h4 i { color: #71879d; }
.admin-evaluation-cycle-history-content { display: grid; gap: 6px; padding: 0 9px 9px; }
.admin-evaluation-cycle-history-content > p,
.admin-external-evaluator-assignments-content > p {
    margin: 0 !important;
    color: #627d9b;
    font-family: Manrope, Arial, sans-serif !important;
    font-size: 8.5px !important;
    font-weight: 500;
    line-height: 1.3 !important;
}
.admin-evaluation-cycle-summary-meta,
.admin-external-evaluator-summary-meta { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.admin-evaluation-cycle-summary-meta .status-chip { min-height: 23px; padding: 4px 7px 4px 19px; font-size: 8px; letter-spacing: .02em; white-space: nowrap; }
.admin-evaluation-cycle-toggle-icon,
.admin-external-evaluator-toggle-icon { color: #6380a3; font-size: 9px; transition: transform .16s ease; }
.admin-evaluation-cycle-history[open] .admin-evaluation-cycle-toggle-icon,
.admin-external-evaluator-assignments[open] .admin-external-evaluator-toggle-icon { transform: rotate(180deg); }
.admin-evaluation-cycle-history-list { display: grid; gap: 5px; }
.admin-evaluation-cycle-history-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 7px 8px; border: 1px solid #dfe7ee; border-radius: 6px; background: #fff; }
.admin-evaluation-cycle-history-row > div:first-child { min-width: 0; display: grid; gap: 2px; }
.admin-evaluation-cycle-history-row b { overflow: hidden; color: #536b80; font-size: 9.5px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.admin-evaluation-cycle-history-row small { color: #7c90a2; font-size: 8px; line-height: 1.2; }
.admin-evaluation-cycle-history-row > div:last-child { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.admin-evaluation-cycle-history-row .status-chip { min-height: 23px; padding: 4px 7px 4px 19px; font-size: 8px; letter-spacing: .02em; white-space: nowrap; }
.admin-evaluation-cycle-history-row strong { color: #49657d; font-size: 10px; white-space: nowrap; }
.admin-evaluation-cycle-audit { margin: 0; border-top: 1px solid #e2e9ef; }
.admin-evaluation-cycle-audit > summary { padding-top: 6px; color: #6c8297; cursor: pointer; font-size: 8px; font-weight: 700; list-style: none; }
.admin-evaluation-cycle-audit > summary::-webkit-details-marker { display: none; }
.admin-evaluation-cycle-audit > summary::before { content: '\f078'; margin-right: 4px; font-family: 'Font Awesome 6 Free'; font-size: 7px; font-weight: 900; }
.admin-evaluation-cycle-audit[open] > summary::before { content: '\f077'; }
.admin-evaluation-cycle-audit > p { margin: 4px 0 0; color: #71879d; font-family: Manrope, Arial, sans-serif; font-size: 8px; line-height: 1.3; }
.admin-external-evaluator-assignments { margin: 8px 0; border: 1px solid #c7dbea; border-left: 3px solid #3678ad; border-radius: 7px; background: #fbfdff; }
.admin-external-evaluator-assignments-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 9px; cursor: pointer; list-style: none; }
.admin-external-evaluator-assignments-summary::-webkit-details-marker { display: none; }
.admin-external-evaluator-assignments-summary::marker { content: ''; }
.admin-external-evaluator-assignments-summary > div { min-width: 0; }
.admin-external-evaluator-assignments h4 { margin: 0; color: var(--ip-blue); font-size: 10.5px; }
.admin-external-evaluator-assignments h4 i { color: #d69d00; }
.admin-external-evaluator-assignments-content { display: grid; gap: 6px; padding: 0 9px 9px; }
.admin-external-evaluator-summary-meta .status-chip,
.admin-external-evaluator-row .status-chip { min-height: 23px; padding: 4px 7px 4px 19px; font-size: 8px; letter-spacing: .02em; white-space: nowrap; }
.admin-external-evaluator-list { display: grid; gap: 5px; }
.admin-external-evaluator-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 7px 8px; border: 1px solid #d8e5f0; border-radius: 6px; background: #fff; }
.admin-external-evaluator-row > div:first-child { min-width: 0; display: grid; gap: 2px; }
.admin-external-evaluator-row b { overflow: hidden; color: #285a86; font-size: 9.5px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.admin-external-evaluator-row small { color: #6b829c; font-size: 8px; line-height: 1.2; }
.admin-external-evaluator-row-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 4px; }
.admin-external-evaluator-row-actions form { margin: 0; }
.admin-external-evaluator-row-actions .btn { min-height: 25px; padding: 4px 7px; font-size: 8.5px; line-height: 1.1; }
.admin-external-evaluator-add { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 4px 6px; margin-top: 1px; }
.admin-external-evaluator-add label { grid-column: 1 / -1; color: #426b91; font-size: 8.5px; font-weight: 800; }
.admin-external-evaluator-add select { box-sizing: border-box; min-width: 0; min-height: 29px; border: 1px solid #b9cfe4; border-radius: 5px; padding: 4px 6px; color: #295780; font: inherit; font-size: 9px; }
.admin-external-evaluator-add .btn { min-height: 29px; padding: 5px 8px; font-size: 9px; line-height: 1.1; }
.admin-external-evaluator-reassign { margin: 0; }
.admin-external-evaluator-reassign .btn { min-height: 28px; padding: 5px 8px; font-size: 8.5px; line-height: 1.1; }
.admin-external-evaluator-empty,
.admin-external-evaluator-limit { margin: 0; color: #6a819a; font-size: 8.5px; line-height: 1.3; }
.admin-external-evaluator-empty i { color: #8ba2b8; }
.admin-external-evaluator-limit { color: #2a784f; }
.admin-external-evaluator-limit i { color: #14824b; }
.admin-internal-evaluation-form { gap: 4px; margin-top: 0; }
.admin-internal-evaluation-form .admin-rubric-total { padding: 7px 8px; font-size: 9px; line-height: 1.2; }
.admin-internal-evaluation-form .admin-rubric-total b { font-size: 13px; }
.admin-internal-evaluation-form > label { display: grid; gap: 3px; margin-top: 0; color: var(--ip-blue); font-size: 9px !important; font-weight: 750; line-height: 1.2; }
.admin-internal-evaluation-form textarea { box-sizing: border-box; height: 42px; min-height: 42px; max-height: 88px; border: 1px solid #bed2e7; border-radius: 6px; padding: 5px 7px; color: var(--ip-blue); font: inherit; font-size: 10px !important; line-height: 1.3; resize: vertical; }
.admin-internal-evaluation-form textarea::placeholder { color: #71839a; opacity: 1; }
.admin-internal-evaluation-form .evaluator-rubric-actions { gap: 6px; margin-top: 0; }
.admin-internal-evaluation-form .admin-literary-draft-status { font-size: 8px; }
.admin-internal-evaluation-form .btn.btn-small { min-height: 32px; padding: 6px 10px; font-size: 10px; line-height: 1.2; }
.admin-internal-evaluation-registered { display: flex; align-items: flex-start; gap: 6px; margin: 8px 0; padding: 9px 10px; border: 1px solid #bcd4e7; border-left: 3px solid var(--ip-blue); border-radius: 6px; background: #f5faff; color: #426887; font-size: 9px; line-height: 1.35; }
.admin-internal-evaluation-registered i { margin-top: 1px; color: #d69d00; }
.admin-literary-submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 2px;
}
.admin-literary-draft-status {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
    color: #607287;
    font-size: 8.5px;
    font-weight: 750;
    line-height: 1.2;
}
.admin-literary-draft-status[data-state="saved"],
.admin-literary-draft-status[data-state="final"] { color: #14824b; }
.admin-literary-draft-status[data-state="pending"],
.admin-literary-draft-status[data-state="saving"] { color: #536579; }
.admin-literary-draft-status[data-state="warning"] { color: #a46a00; }
.admin-literary-draft-status[data-state="error"] { color: #a93824; }
.admin-literary-evaluation-form > label:not(.admin-rubric-item) {
    margin-top: 2px;
    font-size: 9px;
    line-height: 1.2;
}
.admin-registration-view-modal .admin-modal-form textarea.admin-review-comment {
    box-sizing: border-box;
    height: 48px;
    min-height: 48px;
    max-height: 110px;
    padding: 6px 8px;
    border: 1px solid #b7cee7;
    border-radius: 6px;
    background: #fff;
    color: var(--ip-blue);
    font-family: inherit;
    font-size: 10px;
    line-height: 1.35;
    resize: vertical;
}
.admin-registration-view-modal .admin-modal-form textarea.admin-review-comment::placeholder { color: #78889c; opacity: 1; }
.admin-registration-view-modal .admin-modal-form textarea.admin-review-comment:focus {
    border-color: var(--ip-blue);
    box-shadow: 0 0 0 2px rgba(5, 74, 123, .1);
    outline: 0;
}
.admin-evaluation-average { color: #58779c; font-size: 10px; white-space: nowrap; }
.admin-evaluation-average b { color: var(--ip-blue); }
.admin-review-blocked { padding: 10px; border: 1px solid #d9e3ee; border-radius: 7px; background: #f5f7fa; color: #697e98; font-size: 10px; line-height: 1.4; }
.admin-review-readonly { border-color: #a7d8be; background: #f1fbf5; color: #27734c; }
.admin-validation-readonly-list { margin-top: 8px; border: 1px solid #dbe8f2; border-radius: 7px; background: #fbfdff; padding: 7px 9px; }
.admin-validation-readonly-list summary { cursor: pointer; color: var(--ip-blue); font-size: 10px; font-weight: 800; }
.admin-validation-readonly-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 8px; padding: 6px 0; border-bottom: 1px solid #edf2f7; color: #6380a3; font-size: 9.5px; }
.admin-validation-readonly-list > div:last-child { border-bottom: 0; }
.admin-validation-readonly-list > div b { color: var(--ip-blue); }
.admin-validation-readonly-list > div span { color: #27734c; font-weight: 700; }
.admin-validation-readonly-list > div p { grid-column: 1 / -1; margin: 0; color: #a15424; }
.admin-validation-rectification { border-color: #c9d9e8; background: #f5faff; }
.admin-validation-rectification summary { color: var(--ip-blue); }
.admin-validation-rectification-options { display: grid; gap: 5px; margin: 0; padding: 7px; border: 1px solid #d7e2ee; border-radius: 5px; background: #fff; }
.admin-validation-rectification-options legend { padding: 0 3px; color: #57769b; font-size: 9px; font-weight: 850; }
.admin-validation-rectification-options label { display: flex; align-items: flex-start; gap: 6px; color: #28506f; font-size: 9px; font-weight: 700; cursor: pointer; }
.admin-validation-rectification-options input { margin: 2px 0 0; accent-color: var(--ip-blue); }
.admin-validation-rectification-options span { display: grid; gap: 1px; }
.admin-validation-rectification-options small { color: #71839a; font-size: 8px; font-weight: 600; line-height: 1.25; }
.admin-validation-rectification-criterion { display: grid; gap: 6px; }
.admin-validation-rectification-action-options {
    margin: 0 0 2px 20px;
}
.admin-validation-rectification-action-options > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border: 1px solid #caddea; border-radius: 5px; background: #f5faff; color: #315d87; cursor: pointer; font-size: 8.5px; font-weight: 850; list-style: none; }
.admin-validation-rectification-action-options > summary::-webkit-details-marker { display: none; }
.admin-validation-rectification-action-options > summary span { display: inline-flex; align-items: center; gap: 5px; }
.admin-validation-rectification-action-options > summary i { color: var(--ip-gold); }
.admin-validation-rectification-action-options > summary small { color: #66809b; font-size: 8px; white-space: nowrap; }
.admin-validation-rectification-action-options > summary small b { color: #315d87; }
.admin-validation-rectification-action-options > summary small em { font-style: normal; }
.admin-validation-rectification-action-options[open] > summary { border-bottom-right-radius: 0; border-bottom-left-radius: 0; }
.admin-validation-rectification-actions { display: grid; gap: 5px; padding: 7px 8px; border: 1px solid #caddea; border-top: 0; border-left: 3px solid #4f93cc; border-radius: 0 0 5px 5px; background: #f1f7fc; }
.admin-validation-rectification-actions > span { color: #476d94; font-size: 8px; font-weight: 800; }
.admin-validation-rectification-actions label { color: #315d87; }
.admin-validation-rectification-actions label small { color: #66809b; }
.admin-expedient-change-request-summary { display: grid; gap: 3px; padding: 8px 9px; border: 1px solid #b9d4e8; border-left: 3px solid var(--ip-blue); border-radius: 6px; background: #eef7fd; color: #325a7d; font-size: 9px; line-height: 1.35; }
.admin-expedient-change-request-summary b { color: var(--ip-blue); font-size: 9.5px; }
.admin-expedient-change-request-summary p { margin: 0; color: #315d8a; }
.admin-expedient-change-request-summary small { color: #637e99; font-size: 8.5px; }
.admin-editorial-version-review { display: grid; gap: 9px; margin-top: 8px; padding: 10px; border: 1px solid #b8d3e8; border-left: 3px solid var(--ip-blue); border-radius: 7px; background: linear-gradient(135deg, #f7fbff, #eef7fd); }
.admin-editorial-version-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.admin-editorial-version-review-heading > div { min-width: 0; }
.admin-editorial-version-review-heading b { color: var(--ip-blue); font-size: 10.5px; }
.admin-editorial-version-review-heading p { margin: 3px 0 0; color: #58789a; font-size: 9px; line-height: 1.4; }
.admin-editorial-version-review-state { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border: 1px solid #eccb80; border-radius: 4px; background: #fff8e8; color: #9a6700; font-size: 8.5px; font-weight: 800; white-space: nowrap; }
.admin-editorial-version-review-form { gap: 5px; padding-top: 8px; border-top: 1px solid #d5e4f0; }
.admin-editorial-version-review-form label { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; color: #315d87; font-size: 9px; }
.admin-editorial-version-review-form label small { color: #6b839d; font-size: 8px; font-weight: 600; text-align: right; }
.admin-registration-view-modal .admin-modal-form.admin-editorial-version-review-form textarea.admin-review-comment { height: 44px; min-height: 44px; max-height: 96px; padding: 6px 8px; }
.admin-editorial-version-review-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 2px; }
.admin-editorial-version-review-actions .admin-editorial-version-action { width: 100%; min-height: 30px; justify-self: stretch; padding: 6px 8px; font-size: 9.5px; line-height: 1.2; }
.admin-editorial-version-review-actions .admin-editorial-version-action.is-observe { border-color: #d79b37; background: #fff; color: #9a5d00; }
.admin-editorial-version-review-actions .admin-editorial-version-action.is-observe:hover { border-color: #b57612; background: #fff8e8; color: #814b00; }
.admin-editorial-version-history { display: grid; gap: 7px; margin-top: 10px; padding-top: 9px; border-top: 1px solid #d8e6f1; }
.admin-editorial-version-history > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #315d87; cursor: pointer; font-size: 9.5px; font-weight: 850; line-height: 1.25; list-style: none; }
.admin-editorial-version-history > summary::-webkit-details-marker { display: none; }
.admin-editorial-version-history > summary > span { display: inline-flex; align-items: center; gap: 6px; }
.admin-editorial-version-history > summary i { color: var(--ip-gold); }
.admin-editorial-version-history > summary > small { display: inline-grid; min-width: 18px; height: 18px; place-items: center; border-radius: 999px; background: #e8f0f8; color: #315d87; font-size: 8.5px; }
.admin-editorial-version-history-list { display: grid; gap: 8px; padding-top: 1px; }
.admin-editorial-version-history-list > article { display: grid; gap: 8px; padding: 10px 11px; border: 1px solid #d5e4ef; border-left: 3px solid #6f9ec6; border-radius: 7px; background: #fbfdff; box-shadow: 0 2px 6px rgba(36, 79, 134, .035); }
.admin-editorial-version-history-list > article[data-display-tone="success"] { border-left-color: #36a067; background: #f5fcf7; }
.admin-editorial-version-history-list > article[data-display-tone="danger"] { border-left-color: #d8894f; background: #fffaf6; }
.admin-editorial-version-history-list > article > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; }
.admin-editorial-version-history-heading { display: flex; align-items: center; min-width: 0; gap: 7px; }
.admin-editorial-version-history-heading > div { display: grid; min-width: 0; gap: 2px; }
.admin-editorial-version-history-icon { display: inline-grid; flex: 0 0 auto; width: 25px; height: 25px; place-items: center; border-radius: 7px; background: #eaf3fb; color: #376a95; font-size: 10px; }
.admin-editorial-version-history-list > article[data-display-tone="success"] .admin-editorial-version-history-icon { background: #e1f6e9; color: #16834c; }
.admin-editorial-version-history-list > article[data-display-tone="danger"] .admin-editorial-version-history-icon { background: #fff0e5; color: #b96525; }
.admin-editorial-version-history-list b { overflow-wrap: anywhere; color: #244f7d; font-size: 10px; line-height: 1.2; }
.admin-editorial-version-history-heading small { overflow-wrap: anywhere; color: #7289a3; font-size: 8px; line-height: 1.25; }
.admin-editorial-version-history-list .status-chip { min-height: 21px; padding: 3px 7px 3px 20px; border-radius: 4px; background: var(--status-background); font-size: 7.5px; letter-spacing: .03em; white-space: nowrap; }
.admin-editorial-version-history-list .status-chip::before { top: 3px; bottom: 3px; left: 6px; width: 7px; }
.admin-editorial-version-history-details { display: grid; gap: 5px; margin: 0; padding-top: 7px; border-top: 1px solid #dfebf3; }
.admin-editorial-version-history-details > div { display: grid; gap: 2px; text-align: left; }
.admin-editorial-version-history-details dt { color: #537796; font-size: 8.3px; font-weight: 800; line-height: 1.35; text-align: left; }
.admin-editorial-version-history-details dd { margin: 0; color: #315d87; font-size: 8.5px; font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; text-align: left; }
.admin-editorial-version-history-partials { display: grid; gap: 5px; padding-top: 7px; border-top: 1px dashed #cddfea; }
.admin-editorial-version-history-partials > summary { color: #315d87; cursor: pointer; font-size: 8.4px; font-weight: 800; list-style: none; }
.admin-editorial-version-history-partials > summary::-webkit-details-marker { display: none; }
.admin-editorial-version-history-partials > summary::before { content: '\f078'; display: inline-block; margin-right: 5px; color: #5d86a8; font-family: 'Font Awesome 6 Free'; font-weight: 900; transition: transform .15s ease; }
.admin-editorial-version-history-partials[open] > summary::before { transform: rotate(180deg); }
.admin-editorial-version-history-partials ul { display: grid; gap: 3px; margin: 0; padding: 6px 0 0 15px; color: #56748f; font-size: 8px; line-height: 1.35; }
.admin-editorial-version-history-partials li { padding-left: 1px; }
.admin-editorial-version-history-partials li b { font-size: inherit; }
.admin-editorial-version-history-partials li small { margin-left: 3px; color: #7890a6; font-size: inherit; }
.admin-editorial-version-history-reviewed { display: block; padding-top: 6px; border-top: 1px solid #dfebf3; color: #66819d; font-size: 8px; line-height: 1.25; }
@media (max-width: 560px) {
    .admin-editorial-version-review-heading { display: grid; gap: 6px; }
    .admin-editorial-version-review-state { justify-self: start; }
    .admin-editorial-version-review-form label { display: grid; gap: 2px; }
    .admin-editorial-version-review-form label small { text-align: left; }
    .admin-editorial-version-review-actions { grid-template-columns: 1fr; }
}
.admin-expedient-change-request-summary.is-correction-ready { border-color: #93d6ac; border-left-color: #16834c; background: #f1fbf5; }
.admin-expedient-change-request-summary.is-correction-ready b,
.admin-expedient-change-request-summary.is-correction-ready p { color: #187245; }
.admin-expedient-change-request-summary.is-correction-ready small { color: #4d8068; }
.admin-expedient-change-request-summary.is-correction-ready summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; list-style: none; }
.admin-expedient-change-request-summary.is-correction-ready summary::-webkit-details-marker { display: none; }
.admin-expedient-change-request-summary.is-correction-ready summary > span { color: #187245; font-size: 9.5px; font-weight: 800; }
.admin-expedient-change-request-summary.is-correction-pending-review { border-color: #ebca7b; border-left-color: #d4960b; background: #fffaf0; }
.admin-expedient-change-request-summary.is-correction-pending-review b,
.admin-expedient-change-request-summary.is-correction-pending-review p,
.admin-expedient-change-request-summary.is-correction-pending-review summary > span { color: #8e6200; }
.admin-expedient-change-request-summary.is-correction-pending-review small { color: #9a6700; }
.admin-expedient-change-request-summary.is-correction-pending-review .admin-correction-ready-detail { border-top-color: #eed9a6; }
.admin-correction-review-state { flex: 0 0 auto; color: #4d8068; font-size: 8.5px; font-weight: 800; white-space: nowrap; }
.admin-correction-review-state.is-pending { color: #9a6700; }
.admin-correction-review-state.is-ready { color: #075a94; }
.admin-correction-review-state.is-reviewed { color: #187245; }
.admin-correction-ready-detail { display: grid; gap: 3px; padding-top: 6px; border-top: 1px solid #c9ead6; }
.admin-correction-ready-detail p { margin: 0; }
.admin-correction-ready-confirmation { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 5px; padding-top: 6px; border-top: 1px solid #c9ead6; }
.admin-correction-ready-confirmation > div { display: grid; gap: 1px; }
.admin-correction-ready-confirmation b { font-size: 8.8px; }
.admin-correction-ready-confirmation small,
.admin-correction-confirmed-note { color: #4d8068; font-size: 8px; }
.admin-correction-confirmed-note { display: block; padding-top: 5px; border-top: 1px solid #c9ead6; }
.admin-validation-request-review { border-color: #b9d4e8; background: #f5faff; }
.admin-validation-request-review summary { color: var(--ip-blue); }
.admin-validation-request-review > .detail-note { margin-bottom: 8px; }
.admin-rectification-field-label { display: flex; align-items: baseline; gap: 4px; color: #57769b; font-size: 9px; font-weight: 800; }
.admin-rectification-field-label small { color: #7b8fa7; font-size: 8.5px; font-weight: 600; }
.admin-validation-request-review > .admin-modal-form .btn { justify-self: start; min-height: 30px; padding: 6px 10px; font-size: 10px; line-height: 1.2; }
.admin-validation-request-review .admin-correction-rejection-form { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 5px; margin: 8px 0 0; padding-top: 8px; border-top: 1px solid #dce7f3; }
.admin-validation-request-review .admin-correction-rejection-form label { display: flex; align-items: baseline; gap: 4px; color: #57769b; font-size: 9px; font-weight: 800; }
.admin-validation-request-review .admin-correction-rejection-form label small { color: #7b8fa7; font-size: 8.5px; font-weight: 600; }
.admin-validation-request-review .admin-correction-rejection-form textarea.admin-review-comment { box-sizing: border-box; width: 100%; min-width: 0 !important; height: 48px; min-height: 48px; padding: 7px 8px; border: 1px solid #adc3df; border-radius: 6px; font-size: 9.5px; line-height: 1.35; }
.admin-validation-request-review .admin-correction-rejection-form .btn { justify-self: start; min-height: 29px; padding: 5px 9px; font-size: 10px; line-height: 1.2; }
.admin-validation-revalidation-note { display: flex; align-items: flex-start; gap: 6px; margin: 7px 0; padding: 8px 9px; border: 1px solid #ecd49a; border-left: 3px solid #d69d00; border-radius: 7px; background: #fffaf0; color: #765b22; font-size: 9.5px; line-height: 1.35; }
.admin-validation-revalidation-note i { margin-top: 1px; color: #b77a00; }
.admin-decision-locked { padding: 10px; border: 1px solid #a7d8be; border-radius: 7px; background: #f1fbf5; color: #27734c; font-size: 10px; line-height: 1.45; }
.admin-decision-locked b { display: block; color: #087b42; font-size: 10.5px; }
.admin-decision-locked p { margin: 5px 0 3px; }
.admin-decision-locked small { color: #63806e; }
.admin-decision-locked .admin-decision-rectification-trace { display: block; margin-top: 3px; }
.admin-decision-rectification { margin-top: 10px; border: 1px solid #ecd49a; border-radius: 7px; background: #fffaf0; padding: 8px 10px; }
.admin-decision-rectification summary { cursor: pointer; color: #9b6510; font-size: 10px; font-weight: 800; }
.admin-decision-rectification .admin-modal-form { margin-top: 9px; }
.admin-rectification-confirmation { display: flex; align-items: flex-start; gap: 6px; color: #755b25; font-size: 9.5px; line-height: 1.35; }
.admin-rectification-confirmation input { width: auto; margin-top: 1px; }
.admin-internal-only-exception { display: grid; gap: 6px; margin: 8px 0; padding: 9px 10px; border: 1px solid #ecd49a; border-left: 3px solid #d69d00; border-radius: 7px; background: #fffaf0; color: #765d27; font-size: 10px; line-height: 1.4; }
.admin-internal-only-exception b { color: #9b6510; font-size: 10.5px; }
.admin-internal-only-exception p { margin: 0; }
.admin-internal-only-exception small { color: #806a3e; }
.admin-internal-only-exception .admin-modal-form { margin-top: 2px; }
.admin-internal-only-exception-authorized { border-color: #a7d8be; border-left-color: #1a9b58; background: #f1fbf5; color: #347452; }
.admin-internal-only-exception-authorized b { color: #087b42; }
.admin-internal-only-exception-authorized small { color: #4f7c62; }
.admin-evaluation-history summary { color: var(--ip-blue); cursor: pointer; font-size: 10px; font-weight: 800; }
.admin-evaluation-history > div { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px solid #e7eef6; color: #6380a3; font-size: 9.5px; }
.admin-evaluation-history > div b { color: var(--ip-blue); }
.admin-evaluator-proposals { display: grid; gap: 7px; margin-top: 9px; padding: 9px; border: 1px solid #c8dbea; border-left: 3px solid #d69d00; border-radius: 7px; background: #fffdf7; }
.admin-evaluator-proposals > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; }
.admin-evaluator-proposals > header h4 { margin: 0; color: var(--ip-blue); font-size: 10.5px; }
.admin-evaluator-proposals > header h4 i { color: #b77a00; }
.admin-evaluator-proposals > header p { margin: 3px 0 0; color: #6f7f91; font-size: 8.5px; line-height: 1.35; }
.admin-evaluator-proposal-list { display: grid; gap: 7px; }
.admin-evaluator-proposal { border: 1px solid #d7e3ed; border-radius: 6px; background: #fff; }
.admin-evaluator-proposal.is-pending { border-left: 3px solid #d69d00; }
.admin-evaluator-proposal.is-resolved { border-left: 3px solid #1a9b58; }
.admin-evaluator-proposal-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 8px; cursor: pointer; list-style: none; }
.admin-evaluator-proposal-summary::-webkit-details-marker { display: none; }
.admin-evaluator-proposal-summary::marker { content: ''; }
.admin-evaluator-proposal-toggle-icon { color: #6380a3; font-size: 9px; transition: transform .16s ease; }
.admin-evaluator-proposal[open] .admin-evaluator-proposal-toggle-icon { transform: rotate(180deg); }
.admin-evaluator-proposal-content { display: grid; gap: 6px; padding: 0 8px 8px; }
.admin-evaluator-proposal-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 7px; }
.admin-evaluator-proposal-heading > div { display: grid; gap: 2px; min-width: 0; }
.admin-evaluator-proposal-heading b { color: #285a86; font-size: 9.5px; }
.admin-evaluator-proposal-heading small { color: #75879a; font-size: 8px; }
.admin-evaluator-proposal-text,
.admin-evaluator-proposal-resolution { margin: 0; color: #365e7f; font-size: 9px; line-height: 1.4; }
.admin-evaluator-proposal-text { padding: 7px 8px; border-radius: 5px; background: #f4f8fc; }
.admin-evaluator-proposal-decisions { display: grid; gap: 5px; }
.admin-evaluator-proposal-decisions > details { border: 1px solid #d7e3ed; border-radius: 6px; background: #fbfdff; }
.admin-evaluator-proposal-decisions > .admin-evaluator-proposal-form { border: 1px solid #d7e3ed; border-radius: 6px; background: #fbfdff; }
.admin-evaluator-proposal-decisions > details > summary { padding: 7px 8px; color: #285a86; cursor: pointer; font-size: 9px; font-weight: 850; list-style: none; }
.admin-evaluator-proposal-decisions > details > summary::-webkit-details-marker { display: none; }
.admin-evaluator-proposal-decisions > details > summary i { width: 15px; color: #b77a00; }
.admin-evaluator-proposal-form { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 6px !important; padding: 8px; border-top: 1px solid #d7e3ed; }
.admin-evaluator-proposal-form > label { display: grid; gap: 3px; color: #426b91; font-size: 8.5px; font-weight: 800; }
.admin-evaluator-proposal-form fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 7px; margin: 0; padding: 7px; border: 1px solid #d7e3ed; border-radius: 5px; }
.admin-evaluator-proposal-form .admin-evaluator-proposal-options { grid-template-columns: minmax(0, 1fr); }
.admin-evaluator-proposal-form legend { padding: 0 3px; color: #426b91; font-size: 8.5px; font-weight: 850; }
.admin-evaluator-proposal-form legend small { color: #73859a; font-weight: 650; }
.admin-evaluator-proposal-form fieldset label { display: flex; align-items: flex-start; gap: 5px; color: #315d87; font-size: 8.5px; font-weight: 700; }
.admin-evaluator-proposal-form fieldset label span { display: grid; gap: 1px; }
.admin-evaluator-proposal-form fieldset label small { color: #6c8196; font-weight: 650; line-height: 1.25; }
.admin-evaluator-proposal-form [data-evaluator-proposal-decision-panel] { display: grid; gap: 6px; }
.admin-evaluator-proposal-form [data-evaluator-proposal-decision-panel][hidden],
.admin-evaluator-proposal-actions[hidden] { display: none !important; }
.admin-evaluator-proposal-actions { display: flex; justify-content: flex-end; padding-top: 2px; }
.admin-evaluator-proposal-actions .btn.btn-small { min-height: 32px; padding: 6px 10px; font-size: 10px; line-height: 1.2; }
.admin-evaluator-proposal-form fieldset input,
.admin-evaluator-proposal-form .admin-rectification-confirmation input { width: auto; margin: 1px 0 0; accent-color: var(--ip-blue); }
.admin-evaluator-proposal-form .admin-rectification-confirmation.is-required { padding: 7px 8px; border: 1px solid #e3b74c; border-radius: 6px; background: #fff8df; color: #73551c; }
.admin-evaluator-proposal-form .admin-rectification-confirmation.is-required span::after { content: ' · Obligatorio'; color: #a86500; font-weight: 850; }
.admin-evaluator-proposal-form .has-validation-error { border-color: #d85742 !important; box-shadow: 0 0 0 2px rgba(216, 87, 66, .12); }
.admin-evaluator-proposal-form .btn { justify-self: start; }
.admin-evaluator-proposal-availability { margin: 0; padding: 6px 8px; border: 1px solid #d9e3ed; border-radius: 5px; background: #f5f7fa; color: #708196; font-size: 8.5px; }
.admin-evaluator-adjustment-audit { display: grid; gap: 4px; margin: 0; }
.admin-evaluator-adjustment-audit > div { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 6px; padding: 5px 7px; border-radius: 5px; background: #f3f9f6; color: #376a50; font-size: 8.5px; line-height: 1.35; }
.admin-evaluator-adjustment-audit dt { font-weight: 850; }
.admin-evaluator-adjustment-audit dd { margin: 0; }
.admin-editorial-advance { padding-top: 9px; border-top: 1px solid #e2ebf4; }
.admin-modal-document-row,
.admin-modal-payment-row,
.admin-modal-correction-row,
.admin-modal-reservation-row {
    display: grid;
    gap: 7px;
    padding: 10px 0;
    border-bottom: 1px solid #dce7f3;
}
.admin-modal-document-row:last-child,
.admin-modal-payment-row:last-child,
.admin-modal-correction-row:last-child,
.admin-modal-reservation-row:last-child { border-bottom: 0; }
.admin-modal-document-row > div:first-child { display: grid; gap: 2px; }
.admin-modal-document-row b { color: var(--ip-blue); font-size: 11px; line-height: 1.35; }
.admin-modal-document-row small,
.admin-modal-reservation-row span,
.admin-modal-reservation-row small { color: #6380a3; font-size: 10px; line-height: 1.4; }
.document-order { color: var(--ip-gold); }
.admin-modal-document-actions { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.admin-modal-document-actions form { margin: 0; }
.admin-modal-document-actions > .inline-link,
.admin-modal-document-actions > form > .inline-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 21px;
    padding: 2px 4px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: var(--ip-blue) !important;
    font-size: 10px !important;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
}
.admin-modal-document-actions > .inline-link:hover,
.admin-modal-document-actions > .inline-link:focus-visible,
.admin-modal-document-actions > form > .inline-link:hover,
.admin-modal-document-actions > form > .inline-link:focus-visible {
    background: #eef5fb;
    color: var(--ip-blue) !important;
    outline: 0;
    text-decoration: none !important;
}
.admin-modal-expedient-panel .admin-modal-document-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: 4px;
    align-items: start;
}
.admin-modal-expedient-panel .admin-modal-document-row > div:first-child {
    min-width: 0;
    grid-column: 1;
    grid-row: 1;
}
.admin-modal-expedient-panel .admin-modal-document-row > .admin-modal-document-actions { display: contents; }
.admin-modal-expedient-panel .admin-modal-document-row > .admin-modal-document-actions > .inline-link {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
}
.admin-modal-document-reset-form { display: contents; }
.admin-modal-expedient-panel .admin-modal-document-row .admin-modal-document-reset-button {
    grid-column: 3;
    grid-row: 1;
}
.admin-modal-document-reset-button {
    display: grid;
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    place-items: center;
    padding: 0;
    border: 1px solid #c9d9ea;
    border-radius: 5px;
    background: #fff;
    color: var(--ip-blue);
    cursor: pointer;
    font-size: 11px;
}
.admin-modal-document-reset-button[hidden] { display: none; }
.admin-modal-document-reset-button:hover,
.admin-modal-document-reset-button:focus-visible {
    border-color: var(--ip-blue);
    background: #eef5fb;
    outline: 0;
}
.admin-modal-document-reset-confirmation {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    flex: 1 0 100%;
    gap: 7px;
    margin-top: 3px;
    padding: 8px 9px;
    border: 1px solid #efc65d;
    border-radius: 6px;
    background: #fff8e4;
    color: #775200;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.35;
}
.admin-modal-document-reset-confirmation[hidden] { display: none; }
.admin-modal-document-reset-confirmation-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.admin-modal-document-reset-cancel,
.admin-modal-document-reset-confirm {
    min-height: 27px;
    padding: 5px 8px;
    border-radius: 5px;
    cursor: pointer;
    font: inherit;
}
.admin-modal-document-reset-cancel {
    border: 1px solid #b9cce0;
    background: #fff;
    color: var(--ip-blue);
}
.admin-modal-document-reset-confirm {
    border: 1px solid var(--ip-blue);
    background: var(--ip-blue);
    color: #fff;
}
.admin-modal-document-reset-cancel:hover,
.admin-modal-document-reset-cancel:focus-visible { border-color: var(--ip-blue); background: #eef5fb; outline: 0; }
.admin-modal-document-reset-confirm:hover,
.admin-modal-document-reset-confirm:focus-visible { background: #083c61; outline: 2px solid #efc65d; outline-offset: 1px; }
.admin-modal-danger-link { border: 0; padding: 0; background: transparent; color: #b54b40; cursor: pointer; font: inherit; font-weight: 700; }
.admin-modal-document-actions > form > .admin-modal-danger-link { color: #ae473f !important; }
.admin-modal-danger-link:hover,
.admin-modal-danger-link:focus-visible { background: #fff4f2; color: #8e2c26; text-decoration: none; }
.admin-modal-payment-row { gap: 8px; }
.admin-modal-payment-row p,
.admin-modal-correction-row p,
.admin-modal-audits-panel p { margin: 0; color: #54749c; font-size: 10.5px; line-height: 1.5; }
.admin-modal-payment-row > .inline-link { justify-self: start; }
.admin-modal-payment-row .admin-modal-form { grid-template-columns: minmax(120px, .7fr) minmax(0, 1fr); }
.admin-modal-payment-row .admin-modal-form .btn { grid-column: 1 / -1; }
.admin-modal-correction-row .admin-modal-form { grid-template-columns: 1fr; }
.admin-modal-reservation-row b { color: var(--ip-blue); font-size: 11px; }
.admin-reservation-payment-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 8px;
    align-items: center;
    margin-top: 2px;
    padding: 9px;
    border: 1px solid #d8e4f0;
    border-radius: 7px;
    background: #f8fbfe;
}
.admin-reservation-payment-summary > small,
.admin-reservation-payment-summary > a { grid-column: 1 / -1; }
.admin-reservation-payment-form {
    grid-template-columns: minmax(120px, .72fr) minmax(0, 1fr);
    margin-top: 2px;
}
.admin-reservation-payment-form .btn { grid-column: 1 / -1; }
.admin-reservation-registration-payment-note { margin: 0; }
.admin-modal-audits-panel p + p { padding-top: 7px; border-top: 1px solid #edf2f8; }

@media (max-width: 1180px) {
    .admin-registration-modal-body { grid-template-columns: minmax(205px, .62fr) minmax(0, 1.45fr) minmax(360px, 1fr); }
}
@media (max-width: 820px) {
    .admin-registration-modal-body {
        grid-template-columns: 1fr;
        overflow-x: hidden;
        overflow-y: auto;
    }
    .admin-registration-modal-body > .admin-registration-profile,
    .admin-registration-modal-body > .admin-registration-main,
    .admin-registration-modal-body > .admin-registration-actions {
        max-height: none;
        overflow: visible;
        scrollbar-gutter: auto;
    }
    .admin-registration-modal-body .admin-registration-main { order: -2; }
    .admin-registration-modal-body .admin-registration-actions { order: -1; }
    .admin-modal-work-form,
    .admin-modal-payment-row .admin-modal-form { grid-template-columns: 1fr; }
    .admin-reservation-payment-form { grid-template-columns: 1fr; }
    .admin-validation-item,
    .admin-rubric-item { grid-template-columns: 1fr; }
    .admin-evaluation-cycle-history-row,
    .admin-external-evaluator-row,
    .admin-external-evaluator-add { grid-template-columns: 1fr; }
    .admin-external-evaluator-row-actions { justify-content: flex-start; }
    .admin-external-evaluator-add label { grid-column: 1; }
    .admin-literary-submit-row { align-items: stretch; flex-direction: column; }
    .admin-literary-submit-row .btn { align-self: flex-start; }
    .admin-validation-evidence-button { justify-self: start; }
    .admin-validation-item select,
    .admin-validation-actions { grid-column: 1; }
    .admin-validation-item.is-grouped > select { grid-column: 1; width: 100%; }
    .admin-validation-group > header { align-items: center; flex-direction: row; }
    .admin-evidence-identity-layout { grid-template-columns: 1fr; }
    .admin-evidence-data-grid { grid-template-columns: 1fr; }
    .admin-modal-payment-row .admin-modal-form .btn { grid-column: auto; }
    .admin-reservation-payment-form .btn { grid-column: auto; }
}

/* El progreso financiero ya muestra el monto y su meta; los indicadores superiores quedan en cinco. */
.admin-page .admin-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }

@media (max-width: 1180px) {
    .admin-page .admin-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .admin-page .admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@font-face {
    font-family: 'Cormorant Garamond';
    src: url('../fonts/editorial/CormorantGaramond-SemiBold.ttf') format('truetype');
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: 'EB Garamond';
    src: url('../fonts/editorial/EBGaramond-Regular.ttf') format('truetype');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'EB Garamond';
    src: url('../fonts/editorial/EBGaramond-Medium.ttf') format('truetype');
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: 'EB Garamond';
    src: url('../fonts/editorial/EBGaramond-Italic.ttf') format('truetype');
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'EB Garamond';
    src: url('../fonts/editorial/EBGaramond-MediumItalic.ttf') format('truetype');
    font-style: italic;
    font-weight: 500;
    font-display: swap;
}
/* Beneficio exclusivo por participación acreditada en un evento anterior. */
.invited-poet-recognition {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    margin-top: 14px;
    padding: 15px 17px;
    overflow: hidden;
    border: 1px solid #e4bd57;
    border-left: 4px solid #c88e00;
    border-radius: 10px;
    background:
        radial-gradient(circle at 100% 0%, rgba(255, 255, 255, .98) 0, rgba(255, 255, 255, 0) 31%),
        linear-gradient(112deg, #fffdf3 0%, #fff7d7 52%, #fff1bd 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .92), 0 8px 18px rgba(180, 126, 8, .12);
    color: #6c4b05;
}

.invited-poet-recognition::after {
    position: absolute;
    top: -45px;
    right: 34px;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, .72), rgba(255, 255, 255, 0) 68%);
    content: '';
    pointer-events: none;
}

.invited-poet-recognition-icon {
    position: relative;
    z-index: 1;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid #e3ba4a;
    border-radius: 50%;
    background: linear-gradient(145deg, #fffdf5, #ffe9a0);
    box-shadow: 0 3px 8px rgba(168, 112, 0, .15);
    color: #a56e00;
    font-size: 17px;
}

.invited-poet-recognition-copy {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 3px;
}

.invited-poet-recognition-eyebrow {
    color: #996300;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.invited-poet-recognition b {
    color: #6c4700;
    font-size: 14px;
}

.invited-poet-recognition-message {
    color: #705d2b;
    line-height: 1.45;
}

.invited-poet-payment-note.invited-poet-recognition { margin-bottom: 14px; }

/* Esta variante permanece para notas compactas fuera del formulario. */
.invited-poet-payment-note:not(.invited-poet-recognition) {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid #9fd8bc;
    border-radius: 10px;
    background: #eefaf4;
    color: #075f3d;
}

.invited-poet-recognition[hidden],
.invited-poet-payment-note[hidden],
#registration-payment-inputs[hidden],
.package-invited-benefit[hidden] {
    display: none !important;
}

.invited-poet-payment-note:not(.invited-poet-recognition) > i {
    margin-top: 2px;
    color: #0b8f5c;
    font-size: 18px;
}

.invited-poet-payment-note:not(.invited-poet-recognition) span {
    display: grid;
    gap: 4px;
}

.invited-poet-payment-note:not(.invited-poet-recognition) b {
    color: #075f3d;
    font-size: 14px;
}

.invited-poet-payment-note:not(.invited-poet-recognition) small {
    color: #326c58;
    line-height: 1.45;
}

.package-invited-benefit {
    display: inline-block;
    margin-top: 4px;
    color: #087a50;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.admin-evidence-exemption {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 14px;
    border: 1px solid #9fd8bc;
    border-radius: 9px;
    background: #eefaf4;
    color: #075f3d;
}

.admin-evidence-exemption > i { margin-top: 2px; color: #0b8f5c; }
.admin-evidence-exemption span { display: grid; gap: 3px; }
.admin-evidence-exemption small { color: #326c58; line-height: 1.4; }
.admin-payment-exemption-summary { margin-bottom: 12px; }

.admin-invited-poets-card { grid-column: 1 / -1; }
.admin-activity-schedule-card { grid-column: 1 / -1; }
.admin-activity-schedule-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.admin-activity-schedule-heading h2 { display: flex; align-items: center; gap: 9px; margin-bottom: 4px; color: var(--ip-navy); }
.admin-activity-schedule-heading h2 i { color: var(--ip-gold); }
.admin-activity-schedule-heading .detail-note { margin: 0; }
.admin-activity-schedule-layout { display: grid; grid-template-columns: minmax(260px, 330px) minmax(0, 1fr); gap: 20px; align-items: start; }
.admin-activity-schedule-preview .participant-stage-card { box-shadow: none; }
.admin-activity-schedule-control { padding: 17px; border: 1px solid #d7e2f0; border-radius: 10px; background: #f8fbff; }
.admin-activity-schedule-control h3 { margin: 0 0 10px; color: var(--ip-navy); font-size: 14px; }
.admin-activity-schedule-control dl { display: grid; gap: 7px; margin: 0; }
.admin-activity-schedule-control dl > div { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 7px; border-bottom: 1px solid #dce6f2; font-size: 11px; }
.admin-activity-schedule-control dt { color: #557096; }
.admin-activity-schedule-control dd { margin: 0; color: var(--ip-navy); font-weight: 800; }
.admin-activity-schedule-control > p { margin: 12px 0; color: #4c668b; font-size: 10.5px; line-height: 1.5; }
.admin-activity-extension-form { display: flex; align-items: end; gap: 10px; margin-bottom: 10px; }
.admin-activity-extension-form .field { flex: 0 1 190px; }
.admin-activity-extension-form .btn { min-height: 35px; }
.admin-activity-schedule-history { display: block; margin-top: 12px; color: #60799d; }
@media (max-width: 760px) {
    .admin-activity-schedule-heading { display: grid; }
    .admin-activity-schedule-layout { grid-template-columns: 1fr; }
    .admin-activity-extension-form { align-items: stretch; flex-direction: column; }
    .admin-activity-extension-form .field { flex-basis: auto; }
}
.admin-invited-poet-create { margin-bottom: 16px; }
.admin-invited-poets-list > summary {
    cursor: pointer;
    padding: 11px 12px;
    border: 1px solid #c9d9eb;
    border-radius: 8px;
    color: #054a7b;
    font-weight: 800;
}
.admin-invited-poet-row {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) 150px 130px minmax(220px, 1.4fr) auto auto;
    gap: 8px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #e2eaf3;
}
.admin-invited-poet-row input,
.admin-invited-poet-row select { min-width: 0; }
.admin-invited-poet-row > small { grid-column: 1 / -1; color: #657d99; }
.admin-invited-poet-active { white-space: nowrap; font-size: 11px; font-weight: 800; color: #054a7b; }

@media (max-width: 1050px) {
    .admin-invited-poet-row { grid-template-columns: 1fr 1fr; }
    .admin-invited-poet-row > small { grid-column: 1 / -1; }
}
/* Trazabilidad compacta del expediente, evaluación y decisión. */
.admin-process-cell {
    min-width: 205px;
    vertical-align: middle;
}

.admin-registration-payment-heading,
.admin-registration-payment-cell {
    min-width: 170px;
}

.admin-registration-payment-cell {
    vertical-align: middle;
}

.admin-registration-payment-cell .status-chip {
    margin-bottom: 4px;
}

/* Flujo de Constancia Simple de Aceptación */
.admin-certificate-workflow-card {
    display: grid;
    gap: 9px;
    padding: 11px;
    border: 1px solid #c8d8e7;
    border-left: 3px solid var(--ip-blue);
    border-radius: 8px;
    background: #f9fbfd;
}
.admin-certificate-workflow-card.status-issued { border-left-color: #14824b; background: #f2fbf6; }
.admin-certificate-workflow-card.status-annulled { border-left-color: #ba3939; background: #fff5f5; }
.admin-certificate-workflow-card.status-pending_signature,
.admin-certificate-workflow-card.status-signed_pending_confirmation { border-left-color: #d99b00; background: #fffaf0; }
.admin-certificate-workflow-heading,
.admin-certificate-actions,
.admin-certificate-public-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}
.admin-certificate-workflow-heading > div { display: grid; gap: 2px; min-width: 0; }
.admin-certificate-workflow-heading b { color: var(--ip-blue); font-size: 11px; }
.admin-certificate-workflow-heading small,
.admin-certificate-code { margin: 0; color: #657d98; font-size: 9px; }
.admin-certificate-actions { justify-content: flex-start; }
.admin-certificate-actions form { margin: 0; }
.admin-certificate-inline-upload { margin: 0; }
.admin-certificate-primary-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 7px;
}
.admin-certificate-primary-actions > .btn,
.admin-certificate-primary-actions > form,
.admin-certificate-primary-actions > form .btn {
    min-width: 0;
    width: 100%;
}
.admin-certificate-primary-actions .btn {
    justify-content: center;
    min-height: 34px;
    padding: 7px 6px;
    font-size: 10px;
    white-space: nowrap;
}
.admin-certificate-signed-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 7px;
}
.admin-certificate-signed-actions > .btn,
.admin-certificate-signed-actions > form,
.admin-certificate-signed-actions > form .btn {
    min-width: 0;
    width: 100%;
}
.admin-certificate-signed-actions .btn {
    justify-content: center;
    min-height: 34px;
    padding: 7px 6px;
    font-size: 10px;
    white-space: nowrap;
}
.admin-certificate-upload-form { display: grid; gap: 6px; padding-top: 8px; border-top: 1px solid #d7e2ed; }
.admin-certificate-upload-form label { color: var(--ip-blue); font-size: 9px; font-weight: 700; }
.admin-certificate-upload-form input[type="file"],
.admin-certificate-batch-upload input[type="file"] {
    width: 100%;
    padding: 6px;
    border: 1px solid #b9cce0;
    border-radius: 6px;
    background: #fff;
    color: #39536f;
    font-size: 9px;
}
.admin-certificate-previous-documents { margin-top: 9px; border-top: 1px solid #d8e3ed; padding-top: 7px; }
.admin-certificate-previous-documents summary { color: var(--ip-blue); cursor: pointer; font-size: 9px; font-weight: 700; }
.admin-certificate-previous-documents > div { display: flex; align-items: center; gap: 6px; padding: 5px 0; border-bottom: 1px solid #e5edf4; font-size: 8px; }
.admin-certificate-previous-documents > div a { margin-left: auto; }
.admin-certificate-public-actions { justify-content: flex-start; margin-top: 7px; }

.admin-certificate-batch-card {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto minmax(300px, .9fr);
    gap: 14px;
    align-items: center;
    margin-bottom: 13px;
    padding: 14px;
    border: 1px solid #c8d8e7;
    border-radius: 10px;
    background: #fff;
}
.admin-certificate-batch-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.admin-certificate-batch-heading h2 { margin: 0 0 3px; color: var(--ip-blue); font-size: 14px; }
.admin-certificate-batch-heading h2 i { margin-right: 6px; color: #f0b800; }
.admin-certificate-batch-heading p { margin: 0; color: #607994; font-size: 9px; }
.admin-certificate-batch-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.admin-certificate-batch-upload { display: grid; grid-template-columns: minmax(150px, 1fr) auto; gap: 6px; align-items: end; }
.admin-certificate-batch-upload label { grid-column: 1 / -1; color: var(--ip-blue); font-size: 8px; font-weight: 700; }
.admin-certificate-batch-warning {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 12px;
    padding: 11px 13px;
    border: 1px solid #efc359;
    border-left: 4px solid #d99b00;
    border-radius: 8px;
    background: #fff9e8;
    color: #6e5200;
    font-size: 9px;
}
.admin-certificate-batch-warning.danger { border-color: #e7a6a6; border-left-color: #ba3939; background: #fff3f3; color: #8b2929; }
.admin-certificate-batch-warning p { margin: 2px 0; }
.admin-certificate-select-column { width: 34px; text-align: center; }
.admin-certificate-select-column input { accent-color: var(--ip-blue); }

.admin-editorial-batch-card {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) minmax(220px, auto) auto;
    gap: 14px;
    align-items: center;
    margin: 12px 0 13px;
    padding: 13px 14px;
    border: 1px solid #bed7ea;
    border-left: 4px solid #0c5a92;
    border-radius: 10px;
    background: #f8fcff;
}
.admin-editorial-batch-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.admin-editorial-batch-heading h2 { margin: 0 0 3px; color: var(--ip-blue); font-size: 14px; }
.admin-editorial-batch-heading h2 i { margin-right: 6px; color: #e4a800; }
.admin-editorial-batch-heading p { margin: 0; color: #607994; font-size: 9px; }
.admin-editorial-batch-selection { display: grid; gap: 7px; }
.admin-editorial-batch-selection > strong { color: #174d78; font-size: 11px; }
.admin-editorial-batch-selection-actions,
.admin-editorial-batch-action { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.admin-editorial-batch-action { justify-content: flex-end; }
.admin-editorial-batch-action .btn:disabled { cursor: not-allowed; opacity: .58; }

.admin-registration-export-actions,
.admin-registration-batch-downloads {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}
.admin-registration-export-actions {
    justify-content: flex-end;
}
.admin-registration-batch-downloads {
    margin-left: auto;
    padding-right: 10px;
    border-right: 1px solid #d6e1ec;
}
.admin-registration-export-actions > .admin-registration-batch-downloads:only-child {
    padding-right: 0;
    border-right: 0;
}
.admin-registration-batch-downloads .btn {
    min-height: 34px;
    padding: 7px 11px;
    white-space: nowrap;
}
.admin-registration-batch-count {
    color: #5a718d;
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 1050px) {
    .admin-registration-export-actions {
        justify-content: flex-start;
    }
    .admin-registration-batch-downloads {
        width: 100%;
        margin-left: 0;
        padding: 0;
        border-top: 1px solid #d6e1ec;
        border-right: 0;
    }
}

.certificate-verification-page { width: min(900px, calc(100% - 30px)); margin: 28px auto 50px; }
.certificate-verification-card { padding: 24px; border: 1px solid #c8d8e7; border-top: 4px solid var(--ip-blue); border-radius: 12px; background: #fff; }
.certificate-verification-card.status-issued { border-top-color: #14824b; }
.certificate-verification-card.status-annulled { border-top-color: #ba3939; }
.certificate-verification-card.status-pending_signature,
.certificate-verification-card.status-signed_pending_confirmation { border-top-color: #d99b00; }
.certificate-verification-heading { display: flex; align-items: center; gap: 15px; margin-bottom: 18px; }
.certificate-verification-heading h1 { margin: 7px 0 2px; color: var(--ip-blue); font-size: 23px; }
.certificate-verification-heading p { margin: 0; color: #627994; }
.certificate-verification-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 10px; background: #edf4fa; color: var(--ip-blue); font-size: 23px; }
.certificate-verification-icon.success { background: #eaf8f0; color: #14824b; }
.certificate-verification-icon.warning { background: #fff6da; color: #ad7900; }
.certificate-verification-icon.danger { background: #ffeded; color: #ba3939; }
.certificate-verification-notice { display: grid; gap: 3px; margin-bottom: 18px; padding: 12px 14px; border-radius: 7px; font-size: 11px; }
.certificate-verification-notice.success { background: #eaf8f0; color: #116e40; }
.certificate-verification-notice.warning { background: #fff6da; color: #795700; }
.certificate-verification-notice.danger { background: #ffeded; color: #8f2c2c; }
.certificate-verification-grid { display: grid; grid-template-columns: 190px minmax(0, 1fr); border: 1px solid #d3e0eb; border-radius: 8px; overflow: hidden; }
.certificate-verification-grid > * { margin: 0; padding: 9px 11px; border-bottom: 1px solid #dbe5ee; }
.certificate-verification-grid > :nth-last-child(-n + 2) { border-bottom: 0; }
.certificate-verification-grid b { background: #eef5f9; color: var(--ip-blue); font-size: 10px; }
.certificate-verification-grid span { color: #304f6e; font-size: 10px; }
.certificate-verification-footnote { margin: 14px 0 0; color: #6c8198; font-size: 9px; }

/* Verificación desde el panel: se consulta en una ventana, sin abandonar el avance del participante. */
.certificate-verification-modal { width: min(720px, calc(100vw - 36px)); max-height: min(86vh, 760px); }
.certificate-verification-modal-header { padding: 15px 17px; }
.certificate-verification-modal-header-content { display: flex; align-items: center; min-width: 0; gap: 11px; }
.certificate-verification-modal-icon { display: grid; width: 37px; height: 37px; flex: 0 0 37px; place-items: center; border-radius: 7px; background: #eaf8f0; color: #14824b; font-size: 16px; }
.certificate-verification-modal-header h2 { margin: 4px 0 2px; color: var(--ip-blue); font-family: inherit; font-size: 17px; line-height: 1.2; }
.certificate-verification-modal-header p { margin: 0; color: #627994; font-size: 10px; line-height: 1.35; }
.certificate-verification-modal-body { max-height: calc(min(86vh, 760px) - 69px); overflow: auto; padding: 16px 17px 17px; }
.certificate-verification-modal .certificate-verification-notice { margin: 0 0 12px; padding: 10px 11px; font-size: 10px; }
.certificate-verification-modal .certificate-verification-grid { grid-template-columns: 165px minmax(0, 1fr); }
.certificate-verification-modal .certificate-verification-grid > * { padding: 8px 10px; }
.certificate-verification-modal .certificate-verification-footnote { margin-top: 11px; font-size: 8.5px; }

@media (max-width: 1050px) {
    .admin-certificate-batch-card { grid-template-columns: 1fr; }
    .admin-editorial-batch-card { grid-template-columns: 1fr; }
    .admin-editorial-batch-action { justify-content: flex-start; }
}
@media (max-width: 640px) {
    .certificate-verification-card { padding: 17px; }
    .certificate-verification-grid { grid-template-columns: 1fr; }
    .certificate-verification-grid > :nth-last-child(-n + 2) { border-bottom: 1px solid #dbe5ee; }
    .certificate-verification-grid > :last-child { border-bottom: 0; }
    .certificate-verification-modal { width: min(96vw, 620px); }
    .certificate-verification-modal .certificate-verification-grid { grid-template-columns: 1fr; }
}

.admin-payment-date {
    color: #617a97;
    display: block;
    font-size: 8.5px;
    line-height: 1.3;
    margin-top: 2px;
    white-space: nowrap;
}

.admin-payment-date b {
    color: #054a7b;
    font-weight: 700;
}

.admin-payment-empty {
    color: #7186a0;
}

.admin-process-cell .status-chip {
    margin-bottom: 4px;
}

.admin-process-stages {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 4px;
    margin: 1px 0 0;
}

.admin-process-stage {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #8090a3;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
}

.admin-process-stage i { font-size: 9px; }
.admin-process-stage.is-completed { color: #14824b; }
.admin-process-stage.is-current { color: #ae7600; }
.admin-process-stage.is-upcoming { color: #8a99aa; font-weight: 600; }
.admin-process-stage.is-issue { color: #bd4242; }
.admin-process-stage-separator { color: #bdc9d5; font-size: 11px; line-height: 1; }

.admin-process-line,
.admin-process-updated,
.admin-process-state-line,
.admin-process-state-date {
    display: block;
}

.admin-process-line {
    color: #054a7b;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.25;
}

.admin-process-updated,
.admin-process-state-date {
    color: #7186a0;
    font-size: 8.5px;
    line-height: 1.25;
    margin-top: 2px;
}

.admin-process-state-line {
    color: #054a7b;
    font-size: 10px;
    margin-top: 8px;
}

.admin-stage-heading-meta {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    text-align: right;
}

.admin-stage-heading-meta small {
    color: #7186a0;
    font-size: 8.5px;
    line-height: 1.2;
}

.admin-process-history-panel details,
.participant-process-history details {
    display: block;
}

.admin-process-history-panel summary,
.participant-process-history summary {
    align-items: center;
    color: #054a7b;
    cursor: pointer;
    display: flex;
    font-weight: 700;
    justify-content: space-between;
    list-style: none;
}

.admin-process-history-panel summary::-webkit-details-marker,
.participant-process-history summary::-webkit-details-marker {
    display: none;
}

.admin-process-history-panel summary span,
.participant-process-history summary span {
    align-items: center;
    display: inline-flex;
    gap: 8px;
}

.admin-process-history-panel summary small,
.participant-process-history summary small {
    color: #7186a0;
    font-size: 8.5px;
    font-weight: 600;
}

.admin-process-history-list,
.participant-process-history-list {
    display: grid;
    gap: 0;
    margin-top: 12px;
    position: relative;
}

.admin-process-history-list::before,
.participant-process-history-list::before {
    background: #d8e5f2;
    bottom: 10px;
    content: "";
    left: 5px;
    position: absolute;
    top: 10px;
    width: 1px;
}

.admin-process-history-item,
.participant-process-history-item {
    display: grid;
    gap: 9px;
    grid-template-columns: 11px minmax(0, 1fr);
    padding: 7px 0;
    position: relative;
}

.admin-process-history-dot,
.participant-process-history-item > span {
    background: #054a7b;
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #b9cee3;
    height: 9px;
    margin-top: 3px;
    position: relative;
    width: 9px;
    z-index: 1;
}

.admin-process-history-item.status-validated .admin-process-history-dot,
.admin-process-history-item.status-completed .admin-process-history-dot,
.admin-process-history-item.status-accepted .admin-process-history-dot,
.admin-process-history-item.status-published .admin-process-history-dot,
.participant-process-history-item.status-validated > span,
.participant-process-history-item.status-completed > span,
.participant-process-history-item.status-accepted > span,
.participant-process-history-item.status-published > span {
    background: #13885f;
}

.admin-process-history-item.status-observed .admin-process-history-dot,
.admin-process-history-item.status-rejected .admin-process-history-dot,
.admin-process-history-item.status-not_selected .admin-process-history-dot,
.participant-process-history-item.status-observed > span,
.participant-process-history-item.status-rejected > span,
.participant-process-history-item.status-not_selected > span {
    background: #bd3d35;
}

.admin-process-history-item b,
.participant-process-history-item b {
    color: #054a7b;
    display: block;
    font-size: 9.5px;
    line-height: 1.25;
}

.admin-process-history-item small,
.participant-process-history-item small {
    color: #7186a0;
    display: block;
    font-size: 8px;
    margin-top: 2px;
}

.admin-process-history-item p,
.participant-process-history-item p {
    color: #526d8c;
    font-size: 8.5px;
    line-height: 1.3;
    margin: 3px 0 0;
}

/* Historial del participante: control propio, compacto y legible en la columna lateral. */
.participant-process-history {
    overflow: hidden;
    padding: 0;
    border-color: #d5e3f2;
    box-shadow: 0 1px 0 rgba(5, 74, 123, .04);
}

.participant-process-history .participant-process-history-disclosure {
    display: block;
}

.participant-process-history .participant-process-history-disclosure > summary {
    min-height: 48px;
    gap: 10px;
    padding: 11px 12px;
    border-bottom: 1px solid transparent;
    background: linear-gradient(135deg, #f9fcff, #f2f8ff);
    transition: background .18s ease, border-color .18s ease;
}

.participant-process-history .participant-process-history-disclosure > summary::marker {
    content: "";
}

.participant-process-history .participant-process-history-disclosure > summary:hover,
.participant-process-history .participant-process-history-disclosure > summary:focus-visible {
    background: #edf6ff;
}

.participant-process-history .participant-process-history-disclosure > summary:focus-visible {
    outline: 2px solid #76a9dd;
    outline-offset: -3px;
}

.participant-process-history .participant-process-history-disclosure[open] > summary {
    border-bottom-color: #dce8f5;
}

.participant-process-history .participant-process-history-title {
    min-width: 0;
    flex: 1 1 auto;
    gap: 7px;
    color: #054a7b;
    font-size: 11px;
    line-height: 1.25;
}

.participant-process-history .participant-process-history-title i {
    color: #1469ad;
    font-size: 12px;
}

.participant-process-history .participant-process-history-summary-meta {
    display: inline-flex;
    min-width: 0;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
}

.participant-process-history .participant-process-history-summary-meta small {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    padding: 3px 6px;
    border: 1px solid #c8dcef;
    border-radius: 999px;
    color: #476d94;
    background: #fff;
    font-size: 8px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.participant-process-history .participant-process-history-summary-meta > i {
    display: grid;
    width: 17px;
    height: 17px;
    place-items: center;
    border-radius: 50%;
    color: #49759f;
    background: #e4eff9;
    font-size: 7px;
    transition: transform .18s ease, background .18s ease;
}

.participant-process-history .participant-process-history-disclosure[open] .participant-process-history-summary-meta > i {
    transform: rotate(180deg);
    color: #054a7b;
    background: #d6e8f8;
}

.participant-process-history .participant-process-history-list {
    max-height: 292px;
    gap: 0;
    margin: 0;
    padding: 3px 12px 9px;
    overflow: auto;
    scrollbar-gutter: stable;
}

.participant-process-history .participant-process-history-list::before {
    top: 17px;
    bottom: 17px;
    left: 17px;
    background: #d8e7f5;
}

.participant-process-history .participant-process-history-item {
    grid-template-columns: 13px minmax(0, 1fr);
    gap: 9px;
    padding: 10px 0;
}

.participant-process-history .participant-process-history-item:not(:last-child)::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 22px;
    height: 1px;
    background: #edf2f7;
    content: "";
}

.participant-process-history .participant-process-history-item > span {
    width: 9px;
    height: 9px;
    margin-top: 4px;
}

.participant-process-history .participant-process-history-content {
    min-width: 0;
}

.participant-process-history .participant-process-history-item b {
    color: #174f81;
    font-size: 9.5px;
    line-height: 1.3;
}

.participant-process-history .participant-process-history-item small {
    margin-top: 3px;
    color: #6a829c;
    font-size: 8px;
    line-height: 1.25;
}

.participant-process-history .participant-process-history-item p {
    margin-top: 4px;
    color: #58728f;
    font-size: 8.5px;
    line-height: 1.35;
}

@media (max-width: 820px) {
    .admin-process-cell { min-width: 180px; }
    .admin-stage-heading-meta { align-items: flex-start; text-align: left; }
    .evaluator-search-form { grid-template-columns: 1fr; }
}

/* Panel aislado de evaluadores */
.evaluator-admin-grid {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.5fr);
    gap: 18px;
    align-items: start;
}
.evaluator-account-card,
.evaluator-list-card,
.evaluator-assignment-card { margin-top: 0; }
.evaluator-card-heading,
.evaluator-account-row,
.evaluator-account-actions,
.evaluator-work-card-heading,
.evaluator-rubric-heading,
.evaluator-rubric-actions { display: flex; align-items: center; gap: 10px; }
.evaluator-card-heading,
.evaluator-account-row,
.evaluator-rubric-heading { justify-content: space-between; }
.evaluator-card-heading h2,
.evaluator-account-card h2 { margin: 0 0 4px; color: #054a7b; font-size: 1rem; }
.evaluator-account-card > .detail-note { margin: 0; }
.evaluator-account-form { display: grid; gap: 11px; margin-top: 16px; }
.evaluator-account-form > label { display: grid; gap: 5px; color: #245b88; font-size: .78rem; font-weight: 750; line-height: 1.25; }
.evaluator-account-form > label small { color: #7087a1; font-size: .7rem; font-weight: 600; }
.evaluator-account-form > label input { box-sizing: border-box; width: 100%; min-height: 38px; border: 1px solid #b8cfe5; border-radius: 8px; padding: 8px 10px; outline: 0; background: #fbfdff; color: #174b77; font: inherit; font-size: .84rem; line-height: 1.2; transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease; }
.evaluator-account-form > label input:hover { border-color: #8fb6d9; background: #fff; }
.evaluator-account-form > label input:focus { border-color: #0b619b; background: #fff; box-shadow: 0 0 0 3px rgba(5, 74, 123, .12); }
.evaluator-account-form > label input::placeholder { color: #8499ad; opacity: 1; }
.evaluator-account-form > .btn { justify-self: start; min-height: 40px; margin-top: 3px; padding: 8px 14px; }
.evaluator-search-form { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.evaluator-candidate-list { display: grid; gap: 8px; margin-top: 12px; }
.evaluator-candidate-list .evaluator-account-row { border: 1px solid #d3e1ee; border-radius: 10px; background: #fbfdff; }
.evaluator-account-list,
.evaluator-work-list { display: grid; gap: 9px; margin-top: 14px; }
.evaluator-account-row,
.evaluator-work-option { border: 1px solid #d6e3ef; border-radius: 10px; padding: 10px 12px; background: #fff; }
.evaluator-account-row.is-selected { border-color: #0d8b5d; box-shadow: inset 3px 0 #0d8b5d; }
.evaluator-account-row b,
.evaluator-work-option b,
.evaluator-account-row small,
.evaluator-work-option small { display: block; }
.evaluator-account-row b,
.evaluator-work-option b { color: #064b7a; font-size: .86rem; }
.evaluator-account-row small,
.evaluator-work-option small { color: #54718e; font-size: .75rem; margin-top: 3px; }
.evaluator-account-actions { justify-content: flex-end; flex-wrap: wrap; }
.evaluator-account-actions form { margin: 0; }
.evaluator-assignment-card { margin-top: 18px; }
.evaluator-work-option { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.evaluator-work-option input { margin-top: 4px; }
.evaluator-assignment-form > .btn { margin-top: 14px; }
.evaluator-page { padding-top: 28px; padding-bottom: 46px; max-width: 1280px; }
.evaluator-review-page { padding-top: 28px; padding-bottom: 46px; max-width: 1320px; }
.evaluator-page-header,
.evaluator-review-heading { border: 1px solid #c9ddec; border-radius: 14px; padding: 22px; background: linear-gradient(135deg, #f7fbff, #fff); margin-bottom: 18px; }
.evaluator-page-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 390px); align-items: center; gap: 22px; }
.evaluator-page-heading { display: flex; align-items: flex-start; gap: 13px; min-width: 0; }
.evaluator-page-heading-icon { display: inline-grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border: 1px solid #bad6ec; border-radius: 11px; background: #edf7ff; color: #07588b; font-size: 1.05rem; }
.evaluator-page-header h1,
.evaluator-review-heading h1 { color: #054a7b; margin: 0 0 4px; font-size: 1.35rem; }
.evaluator-page-header p,
.evaluator-review-heading p { color: #53718e; max-width: 760px; margin: 0; font-size: .87rem; }
.evaluator-anonymous-note { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; color: #17805a; font-size: .76rem; font-weight: 800; }
.evaluator-anonymous-note i { font-size: .7rem; }
.evaluator-activity-context { display: grid; align-content: center; gap: 5px; min-height: 92px; padding: 13px 15px; border: 1px solid #c8deec; border-left: 4px solid #0c956a; border-radius: 10px; background: #fff; box-shadow: 0 4px 12px rgba(14, 68, 110, .05); }
.evaluator-activity-context > span,
.evaluator-activity-picker label { color: #17805a; font-size: .7rem; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; }
.evaluator-activity-context strong { display: -webkit-box; overflow: hidden; color: #075080; font-size: .9rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.evaluator-activity-context small { color: #53718e; font-size: .76rem; }
.evaluator-activity-context small i { color: #d59a00; }
.evaluator-activity-picker { margin: 0; }
.evaluator-activity-picker select { width: 100%; min-height: 38px; border: 1px solid #b8d0e5; border-radius: 7px; padding: 8px 34px 8px 10px; background-color: #fff; color: #174d7a; font: inherit; font-size: .82rem; }
.evaluator-activity-picker .btn { justify-self: start; }
.evaluator-activity-empty-state { max-width: 620px; margin: 0 auto; }
.evaluator-review-heading > span,
.evaluator-work-card-heading > span:first-child { color: #0b7f5a; font-size: .74rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.evaluator-assignment-table-card { overflow: hidden; box-shadow: 0 4px 14px rgba(12, 65, 108, .05); }
.evaluator-assignment-table-scroll { overflow-x: auto; }
.evaluator-assignment-table { min-width: 900px; margin: 0; }
.evaluator-assignment-table th { white-space: nowrap; }
.evaluator-assignment-table td { vertical-align: middle; }
.evaluator-assignment-code,
.evaluator-assignment-work,
.evaluator-assignment-score { color: #054a7b; }
.evaluator-assignment-code { white-space: nowrap; font-size: .82rem; }
.evaluator-assignment-work { display: block; min-width: 165px; font-size: .88rem; }
.evaluator-assignment-modality { min-width: 205px; color: #4d6c88; font-size: .8rem; line-height: 1.45; }
.evaluator-assignment-score { display: block; min-width: 48px; text-align: center; }
.evaluator-assignment-table td:last-child { width: 1%; white-space: nowrap; }
.evaluator-assignment-table .btn { white-space: nowrap; }
.evaluator-work-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 14px; }
.evaluator-work-card,
.evaluator-empty-state,
.evaluator-poem,
.evaluator-rubric-card { border: 1px solid #c9ddec; border-radius: 12px; background: #fff; }
.evaluator-work-card { padding: 16px; box-shadow: 0 4px 14px rgba(12, 65, 108, .05); }
.evaluator-work-card h2 { color: #054a7b; font-size: 1rem; margin: 14px 0 5px; }
.evaluator-work-card p,
.evaluator-work-card small { color: #58738d; font-size: .78rem; }
.evaluator-work-card .btn { margin-top: 14px; }
.evaluator-empty-state { grid-column: 1 / -1; padding: 36px; text-align: center; color: #58738d; }
.evaluator-empty-state i { color: #d59a00; font-size: 1.6rem; }
.evaluator-empty-state h2 { color: #054a7b; font-size: 1rem; }
.evaluator-back-link { margin-bottom: 14px; }
@media (max-width: 640px) {
    .evaluator-page-header { grid-template-columns: 1fr; gap: 14px; padding: 17px; }
    .evaluator-page-heading-icon { flex-basis: 38px; width: 38px; height: 38px; }
    .evaluator-activity-picker { align-items: stretch; }
    .evaluator-activity-picker select { width: 100%; }
}
.evaluator-review-grid { display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(335px, .8fr); align-items: stretch; gap: 14px; }
.evaluator-work-pane { display: grid; min-width: 0; align-content: start; gap: 14px; }
.evaluator-work-view-switcher { min-width: 0; }
.evaluator-work-view-option { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.evaluator-work-view-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 31px;
    margin: 0 5px 10px 0;
    padding: 6px 10px;
    border: 1px solid #bfd2e6;
    border-radius: 6px;
    background: #fff;
    color: #295780;
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
}
.evaluator-work-view-label:hover { border-color: #7fa6ca; background: #f4f9fd; }
.evaluator-work-view-option:focus-visible + .evaluator-work-view-label { outline: 2px solid rgba(5, 74, 123, .35); outline-offset: 2px; }
.evaluator-work-view-option:checked + .evaluator-work-view-label { border-color: var(--ip-blue); background: var(--ip-blue); color: #fff; }
.evaluator-work-view-panels { min-width: 0; border-top: 1px solid #dbe6f1; padding-top: 12px; }
.evaluator-work-view-panels > [data-evaluator-work-view] { display: none; }
.evaluator-work-view-option--editorial:checked ~ .evaluator-work-view-panels > [data-evaluator-work-view="editorial"],
.evaluator-work-view-option--reading:checked ~ .evaluator-work-view-panels > [data-evaluator-work-view="reading"] { display: grid; }
.evaluator-editorial-preview { gap: 8px; }
.evaluator-book-spread { width: 100%; margin: 0; }
.evaluator-book-author-reserved > span:first-child { display: inline-block; filter: blur(3px); user-select: none; }
.evaluator-book-reserved-page { pointer-events: none; }
.evaluator-book-reserved-veil {
    position: absolute;
    top: 9%;
    bottom: 8%;
    left: 53%;
    width: 38%;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 7px;
    border: 1px dashed rgba(67, 52, 40, .5);
    background: rgba(247, 238, 217, .36);
    backdrop-filter: blur(5px);
    color: #4b3a2c;
    text-align: center;
}
.evaluator-book-reserved-veil i { font-size: clamp(16px, 3.5cqw, 34px); opacity: .72; }
.evaluator-book-reserved-veil b { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(8px, 1.5cqw, 17px); line-height: 1.1; }
.evaluator-book-reserved-veil span { font-family: 'EB Garamond', Georgia, serif; font-size: clamp(6px, 1.05cqw, 12px); font-style: italic; }
.evaluator-editorial-preview-note { display: flex; align-items: flex-start; gap: 5px; margin: 0; color: #607b99; font-size: 9px; line-height: 1.35; }
.evaluator-editorial-preview-note i { margin-top: 1px; color: var(--ip-blue); }
.evaluator-private-evaluation-card { margin: 0; padding-right: 15px; }

/* Administración de usuarios: acciones de acceso seguras y compactas. */
.account-menu:has(.account-menu-access-link) > div { width: 188px; }
.account-menu .account-menu-access-link { display: flex; align-items: center; gap: 7px; }
.user-access-heading h1 { display: flex; align-items: center; gap: 10px; }
.user-access-heading h1 i { color: var(--ip-gold); font-size: .8em; }
.user-access-intro { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid #b9d7c4; border-radius: 9px; background: #f2fbf5; color: #2f6d51; }
.user-access-intro > i { margin-top: 2px; color: #0d8a58; }
.user-access-intro p { margin: 0; font-size: 11px; line-height: 1.45; }
.user-access-filter { align-items: center; }
.user-access-filter > label { color: var(--ip-blue); font-size: 10px; font-weight: 800; }
.user-access-filter > input { min-width: min(320px, 100%); }
.user-access-filter .status-chip { margin-left: auto; }
.user-access-error { display: flex; align-items: center; gap: 7px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid #f0a89a; border-radius: 8px; background: #fff7f5; color: #bd492f; font-size: 11px; font-weight: 700; }
.user-access-table-card { margin-top: 0; }
.user-access-table-card .table-heading small { align-self: center; color: #6682a2; font-size: 10px; font-weight: 600; }
.user-access-table td:first-child { min-width: 220px; }
.user-access-table td > small,
.user-access-audit small,
.user-access-required { display: block; margin-top: 3px; color: #6380a3; font-size: 9.5px; line-height: 1.35; }
.user-access-required { color: #a66b00; font-weight: 700; }
.user-access-audit b { display: block; color: var(--ip-blue); font-size: 10px; }
.user-access-audit > span { color: #7186a1; font-size: 10px; }
.user-role { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 5px; background: #eff5fc; color: #426687; font-size: 9.5px; font-weight: 800; }
.user-role-admin { background: #e7f0ff; color: #175da7; }
.user-role-coordinator { background: #f2edff; color: #6652ad; }
.user-role-reviewer { background: #e6f7ef; color: #177a54; }
.user-role-participant { background: #f3f6f9; color: #5d718a; }
.user-access-actions { min-width: 236px; }
.user-access-actions > form { display: inline-block; vertical-align: top; }
.user-access-reset { display: inline-block; margin-left: 4px; vertical-align: top; }
.user-access-reset > summary { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 8px 10px; border: 1px solid #9ab6d4; border-radius: 7px; background: #f8fbff; color: var(--ip-blue); cursor: pointer; font-size: 10px; font-weight: 800; list-style: none; }
.user-access-reset > summary::-webkit-details-marker { display: none; }
.user-access-reset[open] > summary { border-color: var(--ip-blue); background: var(--ip-blue); color: #fff; border-radius: 7px 7px 0 0; }
.user-access-reset-form { display: grid; gap: 7px; width: min(278px, calc(100vw - 46px)); margin-top: 0; padding: 10px; border: 1px solid #9ab6d4; border-radius: 0 7px 7px 7px; background: #fff; box-shadow: 0 10px 24px rgba(23, 65, 112, .15); }
.user-access-reset-form p { margin: 0; color: #617c9b; font-size: 9.5px; line-height: 1.35; }
.user-access-reset-form label { display: grid; gap: 3px; color: var(--ip-blue); font-size: 9.5px; font-weight: 800; }
.user-access-reset-form input { width: 100%; min-height: 32px; padding: 6px 8px; border: 1px solid #aec5df; border-radius: 5px; color: var(--ip-blue); font-size: 11px; }
.user-access-reset-form input:focus { outline: 2px solid rgba(5, 74, 123, .18); border-color: var(--ip-blue); }
.user-access-reset-form .btn { justify-self: start; margin-top: 2px; }
.evaluator-poem { padding: 24px clamp(18px, 4vw, 48px); color: #213f5b; font-family: 'Playfair Display', Georgia, serif; font-size: 1.03rem; line-height: 1.88; white-space: normal; margin-bottom: 18px; }
.evaluator-work-pane .evaluator-poem { margin-bottom: 0; }
.evaluator-poem.is-prose { font-family: Manrope, sans-serif; font-size: .96rem; line-height: 1.82; }
.evaluator-rubric-card { padding: 20px; }
.evaluator-rubric-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.evaluator-rubric-copy { min-width: 0; }
.evaluator-rubric-heading > .status-chip { justify-self: end; align-self: start; flex: 0 0 auto; white-space: nowrap; }
.evaluator-rubric-heading h2 { color: #054a7b; margin: 0 0 4px; font-size: 1.05rem; }
.evaluator-rubric-heading p { color: #58738d; font-size: .8rem; margin: 0; max-width: 620px; }
.evaluator-literary-evaluation-form { display: grid; gap: 4px; margin-top: 10px; }
.evaluator-literary-evaluation-form > label {
    display: grid;
    gap: 3px;
    margin-top: 0;
    color: var(--ip-blue);
    font-size: 9px !important;
    font-weight: 750;
    line-height: 1.2;
}
.evaluator-literary-evaluation-form > label[data-evaluator-proposal-editor][hidden] {
    display: none !important;
}
.evaluator-literary-evaluation-form textarea {
    box-sizing: border-box;
    height: 42px;
    min-height: 42px;
    max-height: 88px;
    border: 1px solid #bed2e7;
    border-radius: 6px;
    padding: 5px 7px;
    color: var(--ip-blue);
    font: inherit;
    font-size: 10px !important;
    line-height: 1.3;
    resize: vertical;
}
.evaluator-literary-evaluation-form textarea::placeholder { color: #71839a; opacity: 1; }
.evaluator-proposal-helper { display: flex; align-items: flex-start; gap: 4px; color: #637b91; font-size: 8px; font-weight: 650; line-height: 1.3; }
.evaluator-proposal-helper i { margin-top: 1px; color: #14824b; }
.evaluator-proposal-toggle { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 6px; padding: 5px 0; color: #315d87; cursor: pointer; }
.evaluator-proposal-toggle input { width: auto; margin: 2px 0 0; accent-color: var(--ip-blue); }
.evaluator-proposal-toggle span { display: grid; gap: 2px; }
.evaluator-proposal-toggle small { color: #637b91; font-size: 8px; font-weight: 650; line-height: 1.3; }
.evaluator-literary-evaluation-form--readonly .admin-rubric-item select:disabled,
.evaluator-literary-evaluation-form--readonly textarea[readonly] {
    background-color: #f4f8fc;
    border-color: #c9d9e9;
    color: #355b7d;
    cursor: default;
    opacity: 1;
}
.modal-minor-editorial-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; margin-bottom: 8px; padding: 9px; border: 1px solid #b7dcca; border-left: 3px solid #1a9b58; border-radius: 7px; background: #f1fbf5; color: #2b6d4b; }
.modal-minor-editorial-note > i { margin-top: 2px; color: #14824b; }
.modal-minor-editorial-note > div { display: grid; gap: 2px; }
.modal-minor-editorial-note b { color: #087b42; font-size: 10px; }
.modal-minor-editorial-note p { margin: 0; font-size: 9px; line-height: 1.4; }
.modal-minor-editorial-note small { color: #537d68; font-size: 8px; }
.evaluator-rubric-actions { justify-content: space-between; flex-wrap: wrap; gap: 6px; margin-top: 0; }
.evaluator-rubric-actions .admin-literary-draft-status { font-size: 8px; }
dialog.evaluator-review-modal:not([open]) { display: none; }
dialog.evaluator-review-modal[open] { display: flex; }
.evaluator-review-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    width: min(1120px, calc(100vw - 32px));
    height: min(91vh, 980px);
    max-height: calc(100vh - 32px);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #c7d9ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(3, 43, 83, .34);
    transform: translate(-50%, -50%);
}
.evaluator-review-modal::backdrop { background: rgba(2, 35, 67, .62); backdrop-filter: blur(2px); }
.evaluator-review-modal-shell { display: flex; width: 100%; min-height: 0; flex: 1 1 auto; flex-direction: column; }
.evaluator-review-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 17px 21px 15px; border-bottom: 1px solid #dbe7f4; background: linear-gradient(120deg, #f6faff, #fff); }
.evaluator-review-modal-header h2 { margin: 4px 0 2px; color: var(--ip-blue); font-size: 1.1rem; }
.evaluator-review-modal-header p { margin: 0; color: #54749c; font-size: .76rem; }
.evaluator-review-modal-body { display: flex; min-height: 0; flex: 1 1 auto; overflow: hidden; overscroll-behavior: contain; padding: 18px 22px 26px; }
.evaluator-review-modal .evaluator-review-content { display: flex; width: 100%; min-height: 0; flex: 1 1 auto; }
.evaluator-review-modal .evaluator-review-grid { min-height: 0; flex: 1 1 auto; overflow: hidden; }
.evaluator-review-modal .evaluator-work-pane,
.evaluator-review-modal .evaluator-rubric-card,
.evaluator-review-modal .evaluator-private-evaluation-card { min-height: 0; max-height: none; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.evaluator-review-modal .evaluator-review-heading { margin-bottom: 14px; padding: 17px 19px; }
.evaluator-review-modal .evaluator-review-heading h1 { font-size: 1.22rem; }
.evaluator-review-modal .evaluator-technical-review,
.evaluator-review-modal .evaluator-poem { margin-bottom: 14px; }
.evaluator-review-modal .evaluator-poem { padding: 20px clamp(16px, 3vw, 38px); }
.evaluator-review-modal .evaluator-anonymous-reading-stage {
    display: grid;
    min-width: 0;
}
.evaluator-review-modal .evaluator-anonymous-reading-stage > .admin-anonymous-work-content,
.evaluator-review-modal .evaluator-anonymous-reading-stage > .editorial-technical-pages {
    justify-self: center;
}
.evaluator-review-modal .evaluator-rubric-card { padding: 17px; }
.evaluator-review-modal-loading { display: grid; min-height: 240px; place-content: center; gap: 9px; color: #54749c; font-size: .85rem; text-align: center; }
.evaluator-review-modal-loading i { color: var(--ip-gold); font-size: 1.35rem; }

@media (max-width: 900px) {
    .evaluator-review-grid { grid-template-columns: 1fr; }
    .evaluator-review-modal .evaluator-review-modal-body { overflow-y: auto; }
    .evaluator-review-modal .evaluator-review-content { display: block; }
    .evaluator-review-modal .evaluator-review-grid { overflow: visible; }
    .evaluator-review-modal .evaluator-work-pane,
    .evaluator-review-modal .evaluator-rubric-card,
    .evaluator-review-modal .evaluator-private-evaluation-card { max-height: none; overflow: visible; scrollbar-gutter: auto; }
    .evaluator-book-reserved-veil { gap: 4px; }
}

@media (max-width: 760px) {
    .evaluator-admin-grid { grid-template-columns: 1fr; }
    .evaluator-card-heading,
    .evaluator-account-row,
    .evaluator-rubric-heading { align-items: flex-start; flex-direction: column; }
    .evaluator-rubric-heading { grid-template-columns: 1fr; }
    .evaluator-rubric-heading > .status-chip { justify-self: start; }
    .evaluator-account-actions { justify-content: flex-start; }
    .evaluator-review-modal { width: min(100vw - 18px, 1120px); height: calc(100vh - 18px); max-height: calc(100vh - 18px); }
    .evaluator-review-modal-header { padding: 14px 15px 12px; }
    .evaluator-review-modal-body { padding: 13px 14px 20px; }
}

/* Edición de actividad: una sola página con secciones claras y gestión operativa contenida. */
.admin-activity-editor {
    width: min(1120px, calc(100% - 36px));
    margin: 24px auto 38px;
}
.admin-activity-editor-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}
.admin-activity-editor-heading { min-width: 0; }
.admin-activity-editor-kicker,
.admin-activity-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #8c6100;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.admin-activity-editor-kicker i,
.admin-activity-section-kicker i { color: var(--ip-gold); }
.admin-activity-editor-heading h1 {
    margin: 5px 0 4px;
    color: var(--ip-navy);
    font-size: clamp(27px, 3.1vw, 37px);
    letter-spacing: -.035em;
}
.admin-activity-editor-heading p { max-width: 670px; margin: 0; color: #587493; font-size: 14px; line-height: 1.5; }
.admin-activity-editor-error { display: flex; width: fit-content; margin: 0 0 13px; }
.admin-activity-editor-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 0 14px;
    padding: 7px;
    border: 1px solid #d5e2f0;
    border-radius: 12px;
    background: #f6f9fd;
}
.admin-activity-editor-tabs button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #557394;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.admin-activity-editor-tabs button:hover { border-color: #c2d5e9; background: #fff; color: var(--ip-blue); }
.admin-activity-editor-tabs button.is-active {
    border-color: #0d5791;
    background: #edf6ff !important;
    color: #054a7b !important;
    box-shadow: 0 3px 9px rgba(5, 64, 111, .11);
}
.admin-activity-editor-tabs button b { min-width: 18px; padding: 1px 5px; border-radius: 10px; background: rgba(5,74,123,.1); color: inherit; font-size: 9px; text-align: center; }
.admin-activity-configuration-form,
.admin-activity-aux-panel { margin: 0; }
.admin-activity-configuration-form[hidden],
.admin-activity-aux-panel[hidden],
.admin-activity-form-actions[hidden] { display: none !important; }
.admin-activity-editor-panel { padding: 2px 0; }
.admin-activity-configuration-form .fields > .field { align-content: start; }
.admin-activity-section-heading {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 0 0 18px;
    padding-bottom: 15px;
    border-bottom: 1px solid #d9e6f3;
}
.admin-activity-section-heading.compact { margin-bottom: 13px; padding-bottom: 12px; }
.admin-activity-section-heading h2 { margin: 1px 0 3px; color: var(--ip-navy); font-size: 19px; }
.admin-activity-section-heading p { margin: 0; color: #637e9d; font-size: 11px; line-height: 1.45; }
.admin-activity-section-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid #bdd7ef;
    border-radius: 9px;
    background: #edf6ff;
    color: var(--ip-blue);
    font-size: 14px;
}
.admin-activity-section-icon.is-gold { border-color: #f0d58c; background: #fff8e8; color: #b47800; }
.admin-activity-section-icon.is-violet { border-color: #d8c5fc; background: #f7f2ff; color: #7051b4; }
.admin-activity-section-icon.is-green { border-color: #a8dfc4; background: #effaf4; color: #098052; }
.admin-activity-date-grid,
.admin-activity-file-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
.admin-activity-date-grid > .field,
.admin-activity-file-grid > .field { align-content: start; }
.admin-activity-date-grid .admin-activity-capacity-field { grid-column: 1 / -1; max-width: calc(50% - 8px); }
.admin-results-publication-field {
    grid-column: 1 / -1;
    display: grid;
    gap: 7px;
    max-width: 560px;
    padding: 14px;
    border: 1px solid #d4e4f3;
    border-radius: 10px;
    background: linear-gradient(135deg, #f7fbff, #fff);
}
.admin-results-publication-field > label:first-child { color: var(--ip-blue); font-size: 10px; font-weight: 800; }
.admin-results-publication-upload { min-height: 90px; }
.admin-results-publication-selected { color: #617d9d; font-size: 9.5px; line-height: 1.4; }
.admin-results-publication-current { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.admin-results-publication-remove { display: inline-flex; align-items: center; gap: 7px; color: #934337; font-size: 10px; font-weight: 700; cursor: pointer; }
.admin-results-publication-remove input { accent-color: #c64d3c; }
.admin-activity-configuration-form .field select {
    box-sizing: border-box;
    display: block;
    width: 100%;
    height: 38px;
    min-height: 38px;
    margin: 0 !important;
    padding: 8px 35px 8px 10px !important;
    -webkit-appearance: none;
    appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23054a7b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8'/%3E%3C/svg%3E");
    background-position: right 11px center;
    background-repeat: no-repeat;
    background-size: 14px;
    line-height: 1.2;
}
.admin-activity-contact-grid { margin-bottom: 16px; }
.admin-activity-file-field { display: grid; gap: 6px; }
.admin-activity-file-field .field-label { color: var(--ip-blue); font-size: 10px; font-weight: 800; }
.admin-activity-file-field > small { color: #7086a2; font-size: 9.5px; }
.admin-activity-upload {
    display: grid;
    min-height: 104px;
    place-content: center;
    justify-items: center;
    gap: 5px;
    padding: 13px;
    border: 1px dashed #8db7df;
    border-radius: 9px;
    background: #fbfdff;
    color: var(--ip-blue);
    cursor: pointer;
    text-align: center;
    transition: border-color .16s ease, background-color .16s ease;
}
.admin-activity-upload:hover { border-color: var(--ip-blue); background: #f1f8ff; }
.admin-activity-upload input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.admin-activity-upload i { color: var(--ip-gold); font-size: 17px; }
.admin-activity-upload b { font-size: 11px; }
.admin-activity-upload small { color: #6681a0; font-size: 9.5px; }
.admin-activity-payment-grid { margin-bottom: 16px; }
.admin-activity-toggle {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: fit-content;
    max-width: 100%;
    padding: 11px 13px;
    border: 1px solid #cbdced;
    border-radius: 9px;
    background: #f8fbff;
    color: var(--ip-navy);
    cursor: pointer;
}
.admin-activity-toggle.compact { margin: 12px 0; padding: 8px 10px; }
.admin-activity-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.admin-activity-toggle > span:first-of-type { position: relative; width: 32px; height: 18px; flex: 0 0 32px; margin-top: 2px; border-radius: 12px; background: #a9bacc; transition: background-color .16s ease; }
.admin-activity-toggle > span:first-of-type::after { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(4,39,73,.25); content: ''; transition: transform .16s ease; }
.admin-activity-toggle input:checked + span { background: #15945f; }
.admin-activity-toggle input:checked + span::after { transform: translateX(14px); }
.admin-activity-toggle input:focus-visible + span { outline: 3px solid rgba(5,74,123,.2); outline-offset: 2px; }
.admin-activity-toggle > span:last-child { display: grid; gap: 2px; font-size: 11px; }
.admin-activity-toggle small { color: #617c9a; font-size: 9.5px; line-height: 1.35; }
.admin-activity-form-actions { margin-top: 20px; padding-top: 16px; border-top: 1px solid #dce7f3; }
.admin-activity-schedule-card,
.admin-activity-management-card,
.admin-invited-poets-card { margin-top: 0; }
.admin-activity-schedule-card { padding: 20px; }
.admin-activity-schedule-heading { margin-bottom: 17px; }
.admin-activity-schedule-heading h2 { font-size: 20px; }
.admin-activity-schedule-control { background: linear-gradient(145deg, #f7fbff, #fff); }
.admin-activity-summary-list { display: grid; gap: 7px; margin: 0 0 14px; }
.admin-activity-summary-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 10px 12px; border: 1px solid #dce7f3; border-radius: 7px; background: #fbfdff; color: var(--ip-navy); }
.admin-activity-summary-list small { grid-column: 1 / -1; color: #617b9a; font-size: 10px; }
.admin-activity-inline-create { padding-top: 14px; border-top: 1px solid #dce7f3; }
.admin-activity-inline-create .btn { margin-top: 11px; }
.admin-invited-poets-card { padding: 20px; }
.admin-invited-poets-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.admin-invited-poets-heading h2 { margin: 4px 0 4px; color: var(--ip-navy); font-size: 21px; }
.admin-invited-poets-heading .detail-note { max-width: 680px; margin: 0; }
.admin-invited-poets-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.admin-invited-poets-search { display: flex; align-items: center; gap: 9px; width: min(440px, 100%); padding: 0 11px; border: 1px solid #c7d8ea; border-radius: 7px; background: #fff; color: #6682a0; }
.admin-invited-poets-search:focus-within { border-color: var(--ip-blue); box-shadow: 0 0 0 3px rgba(5,74,123,.11); }
.admin-invited-poets-search input { width: 100%; min-width: 0; height: 37px; border: 0; outline: 0; background: transparent; color: var(--ip-navy); font: inherit; font-size: 11px; }
.admin-invited-poets-count { color: #5e7896; font-size: 10px; white-space: nowrap; }
.admin-invited-poets-count b { color: var(--ip-blue); }
.admin-invited-poets-table-wrap { overflow: hidden; border: 1px solid #d6e3f0; border-radius: 9px; background: #fff; }
.admin-invited-poets-table { width: 100%; border-collapse: collapse; }
.admin-invited-poets-table th { padding: 10px 12px; border-bottom: 1px solid #d6e3f0; background: #f3f8fd; color: #4d6d90; font-size: 9px; font-weight: 850; letter-spacing: .035em; text-align: left; text-transform: uppercase; }
.admin-invited-poets-table td { padding: 11px 12px; border-bottom: 1px solid #e3edf6; color: #345878; font-size: 10.5px; vertical-align: middle; }
.admin-invited-poets-table tbody tr:last-child td { border-bottom: 0; }
.admin-invited-poets-table td:first-child { min-width: 190px; color: var(--ip-navy); }
.admin-invited-poets-table td > b { display: block; }
.admin-invited-poets-table td small { display: block; margin-top: 4px; color: #65809f; font-size: 9px; }
.admin-invited-poet-document { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.admin-invited-poet-document i { color: #4f7da9; }
.admin-invited-poet-status { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid; border-radius: 5px; font-size: 9px; font-weight: 850; white-space: nowrap; }
.admin-invited-poet-status.is-active { border-color: #a9ddc1; background: #edfbf3; color: #08774c; }
.admin-invited-poet-status.is-inactive { border-color: #d4deea; background: #f4f7fa; color: #657b94; }
.admin-invited-poets-empty { display: grid; min-height: 160px; place-content: center; gap: 6px; padding: 22px; color: #66809e; text-align: center; }
.admin-invited-poets-empty i { color: var(--ip-gold); font-size: 21px; }
.admin-invited-poets-empty b { color: var(--ip-navy); font-size: 12px; }
.admin-invited-poets-empty span { font-size: 10px; }
.admin-invited-poets-no-results { padding: 22px; color: #647d9b; font-size: 11px; text-align: center; }
dialog.admin-invited-poet-modal:not([open]) { display: none; }
dialog.admin-invited-poet-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    width: min(620px, calc(100vw - 28px));
    max-height: min(680px, calc(100vh - 28px));
    margin: 0;
    padding: 0;
    overflow: auto;
    border: 1px solid #c9d9ea;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(3,43,83,.35);
    transform: translate(-50%, -50%);
}
dialog.admin-invited-poet-modal::backdrop { background: rgba(2,35,67,.58); backdrop-filter: blur(2px); }
.admin-invited-poet-modal form { display: grid; }
.admin-invited-poet-modal header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding: 18px 20px 15px; border-bottom: 1px solid #dae6f2; background: linear-gradient(120deg, #f7fbff, #fff); }
.admin-invited-poet-modal h2 { margin: 4px 0 4px; color: var(--ip-navy); font-size: 20px; }
.admin-invited-poet-modal header p { margin: 0; color: #617c9b; font-size: 10.5px; line-height: 1.45; }
.admin-invited-poet-modal-body { display: grid; gap: 16px; padding: 19px 20px; }
.admin-invited-poet-modal footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid #dae6f2; background: #fbfdff; }
.admin-invited-poet-modal .modal-close { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border: 1px solid #bdd1e6; border-radius: 7px; background: #fff; color: var(--ip-blue); cursor: pointer; font-size: 15px; }
.admin-invited-poet-modal .modal-close:hover { border-color: var(--ip-blue); background: #f1f8ff; }
.admin-activity-editor .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

dialog.results-publication-popup:not([open]) { display: none; }
dialog.results-publication-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    display: grid;
    width: fit-content;
    max-width: calc(100vw - 28px);
    max-height: calc(100vh - 28px);
    margin: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 14px;
    background: transparent;
    box-shadow: none;
    transform: translate(-50%, -50%);
}
dialog.results-publication-popup::backdrop { background: rgba(1, 33, 66, .68); backdrop-filter: blur(3px); }
.results-publication-popup img {
    display: block;
    width: auto;
    max-width: calc(100vw - 42px);
    height: auto;
    max-height: calc(100vh - 42px);
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 20, 51, .46);
    object-fit: contain;
}
.results-publication-popup-close {
    position: absolute;
    z-index: 1;
    top: 10px;
    right: 10px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .85);
    border-radius: 50%;
    background: rgba(5, 52, 97, .9);
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    box-shadow: 0 4px 14px rgba(0, 20, 51, .28);
}
.results-publication-popup-close:hover,
.results-publication-popup-close:focus-visible { background: #054a7b; outline: 3px solid rgba(255, 208, 54, .7); outline-offset: 2px; }

@media (max-width: 760px) {
    .admin-activity-editor { width: min(100% - 22px, 1120px); margin-top: 16px; }
    .admin-activity-editor-header,
    .admin-invited-poets-heading,
    .admin-invited-poets-toolbar { align-items: stretch; flex-direction: column; }
    .admin-activity-editor-header .btn { align-self: flex-start; }
    .admin-activity-editor-tabs { flex-wrap: nowrap; overflow-x: auto; }
    .admin-activity-editor-tabs button { flex: 0 0 auto; }
    .admin-activity-date-grid,
    .admin-activity-file-grid { grid-template-columns: 1fr; }
    .admin-activity-date-grid .admin-activity-capacity-field { grid-column: auto; max-width: none; }
    .admin-results-publication-field { max-width: none; }
    .admin-invited-poets-table-wrap { overflow-x: auto; }
    .admin-invited-poets-table { min-width: 690px; }
    .admin-invited-poets-heading .btn { align-self: flex-start; }
    .admin-invited-poets-search { width: 100%; }
    .admin-invited-poet-modal header,
    .admin-invited-poet-modal footer { padding-right: 15px; padding-left: 15px; }
    .admin-invited-poet-modal-body { padding: 16px 15px; }
}

@media (max-width: 1050px) {
    .visitor-header .site-header-inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "brand account"
            "nav nav";
        min-height: 0;
        padding-top: 8px;
        gap: 5px 12px;
    }

    .visitor-header .site-header-inner .brand {
        grid-area: brand;
        min-width: 0;
    }

    .visitor-header .site-header-inner .header-account {
        grid-area: account;
        min-width: 0;
        margin-left: 0;
        justify-self: end;
    }

    .visitor-header .site-header-inner .public-nav {
        display: grid;
        grid-area: nav;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
        margin: 0;
        border-top: 1px solid #e7edf6;
    }

    .visitor-header .main-nav .public-nav-link {
        width: 100%;
        min-width: 0;
        min-height: 58px;
        padding: 8px 6px 7px;
    }
}

@media (max-width: 520px) {
    .visitor-header .brand-logo-header {
        width: 168px;
        height: 46px;
    }

    .visitor-header .site-header-inner {
        padding-inline: 12px;
        column-gap: 8px;
    }
}