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

html {
    color-scheme: light
}

body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    color: #27304a;
    background: #f3f5f9
}

button,
input,
textarea,
select {
    font: inherit
}

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

button {
    cursor: pointer
}

.admin-app {
    min-height: 100vh
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 258px;
    background: #111b3f;
    color: #d7ddf1;
    padding: 25px 17px;
    overflow-y: auto;
    z-index: 80
}

.sidebar-brand {
    padding: 5px 16px 28px;
    display: flex;
    flex-direction: column
}

.sidebar-brand span {
    font-size: 10px;
    letter-spacing: .25em;
    color: #ffcc1d
}

.sidebar-brand strong {
    font-size: 22px;
    color: #fff
}

.sidebar nav p {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: #67739c;
    margin: 25px 14px 8px
}

.sidebar nav a {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 11px 14px;
    border-radius: 9px;
    margin: 2px 0;
    font-size: 13px;
    font-weight: 600;
    transition: .15s
}

.sidebar nav a:hover {
    background: #ffffff12;
    color: #fff
}

.admin-main {
    margin-left: 258px;
    min-height: 100vh
}

.admin-header {
    height: 76px;
    background: #fff;
    border-bottom: 1px solid #e5e8f0;
    display: flex;
    align-items: center;
    padding: 0 28px;
    position: sticky;
    top: 0;
    z-index: 40
}

.admin-header>div:first-of-type {
    display: flex;
    flex-direction: column
}

.admin-header small {
    font-size: 10px;
    color: #9198ac;
    text-transform: uppercase;
    letter-spacing: .08em
}

.admin-header strong {
    font-size: 14px;
    color: #1b2340
}

.admin-user {
    margin-left: auto;
    display: flex !important;
    align-items: center;
    gap: 10px
}

.admin-user>span,
.avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #e8ebf7;
    color: #23316d;
    display: grid;
    place-items: center;
    font-weight: 800;
    flex: none
}

.admin-user>div {
    display: flex;
    flex-direction: column
}

.link-button {
    border: 0;
    background: none;
    color: #d32037;
    font-size: 12px;
    font-weight: 700
}

.sidebar-toggle {
    display: none;
    border: 0;
    background: none;
    font-size: 25px;
    margin-right: 12px
}

.admin-content {
    padding: 28px;
    max-width: 1540px;
    margin: auto
}

.page-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 25px;
    margin: 0 0 24px
}

.page-intro>div>span,
.panel-heading span {
    font-size: 10px;
    letter-spacing: .16em;
    color: #d31630;
    font-weight: 800
}

.page-intro h1 {
    margin: 5px 0 6px;
    font-size: 30px;
    letter-spacing: -.03em;
    color: #17203f
}

.page-intro p {
    margin: 0;
    color: #7a8297;
    font-size: 14px
}

.admin-button,
.secondary-button,
.danger-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 7px;
    font-weight: 800;
    font-size: 11px;
    letter-spacing: .04em;
    padding: 0 20px;
    min-height: 44px;
    text-transform: uppercase
}

.admin-button {
    background: #d31630;
    color: #fff;
    box-shadow: 0 8px 18px #d3163025
}

.secondary-button {
    background: #1f2d6b;
    color: #fff
}

.danger-button {
    background: #fff0f1;
    color: #cc2037;
    min-height: 34px;
    padding: 0 12px
}

.panel {
    background: #fff;
    border: 1px solid #e7e9f0;
    border-radius: 13px;
    box-shadow: 0 5px 18px #17213d08
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
    margin-bottom: 22px
}

.stat-grid article {
    background: #fff;
    border: 1px solid #e7e9f0;
    border-radius: 12px;
    padding: 18px;
    display: flex;
    flex-direction: column
}

.stat-grid span {
    font-size: 11px;
    color: #7c8498;
    font-weight: 700
}

.stat-grid strong {
    font-size: 29px;
    color: #15204a;
    margin: 8px 0 2px
}

.stat-grid small {
    font-size: 10px;
    color: #a0a6b6
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 20px
}

.panel-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #eceef3;
    padding: 20px 22px
}

.panel-heading h2 {
    font-size: 17px;
    margin: 3px 0 0;
    color: #182142
}

.panel-heading>a {
    font-size: 11px;
    color: #d31630;
    font-weight: 700
}

.quick-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    padding: 20px
}

.quick-grid a {
    background: #f7f8fb;
    border: 1px solid #eceef4;
    border-radius: 10px;
    padding: 18px;
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 2px 10px;
    align-items: center;
    color: #1e2d6c
}

.quick-grid a>strong,
.quick-grid a>small {
    grid-column: 2
}

.quick-grid a>strong {
    font-size: 13px
}

.quick-grid a>small {
    color: #9298a8;
    font-size: 11px
}

.compact-list {
    padding: 12px 20px
}

.compact-list>div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #eff0f4
}

.compact-list>div>div {
    display: flex;
    flex-direction: column
}

.compact-list strong {
    font-size: 12px
}

.compact-list small {
    font-size: 10px;
    color: #969cac
}

.compact-list em {
    margin-left: auto;
    font-size: 9px;
    font-style: normal;
    text-transform: uppercase;
    color: #25835a;
    background: #ecfbf4;
    padding: 5px 7px;
    border-radius: 20px
}

.muted {
    color: #9298aa;
    font-size: 13px
}

.admin-form label {
    display: grid;
    gap: 7px;
    font-size: 12px;
    font-weight: 700;
    color: #414a63
}

.admin-form input,
.admin-form textarea,
.admin-form select,
.filter-bar input,
.filter-bar select {
    width: 100%;
    border: 1px solid #dfe2ea;
    background: #fff;
    border-radius: 7px;
    padding: 11px 12px;
    color: #252d47;
    outline: 0
}

.admin-form input:focus,
.admin-form textarea:focus,
.admin-form select:focus,
.filter-bar input:focus,
.filter-bar select:focus {
    border-color: #283b86;
    box-shadow: 0 0 0 3px #283b8612
}

.admin-form textarea {
    resize: vertical;
    line-height: 1.5
}

.form-section {
    padding: 24px;
    margin-bottom: 20px
}

.form-section>.panel-heading {
    margin: -24px -24px 23px
}

.field-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px
}

.field-grid .span-2 {
    grid-column: 1/-1
}

.color-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px
}

.color-grid label span {
    display: flex;
    gap: 7px
}

.color-grid input[type=color] {
    width: 48px;
    height: 44px;
    padding: 3px
}

.switch {
    display: flex !important;
    grid-template-columns: auto !important;
    align-items: center;
    gap: 9px !important;
    align-self: center
}

.switch input {
    position: absolute;
    opacity: 0;
    width: 1px !important
}

.switch>span {
    width: 36px;
    height: 20px;
    border-radius: 20px;
    background: #cfd3df;
    position: relative;
    transition: .2s
}

.switch>span::after {
    content: "";
    position: absolute;
    width: 14px;
    height: 14px;
    left: 3px;
    top: 3px;
    background: #fff;
    border-radius: 50%;
    transition: .2s
}

.switch input:checked+span {
    background: #d31630
}

.switch input:checked+span::after {
    left: 19px
}

.sticky-save {
    position: sticky;
    bottom: 14px;
    display: flex;
    justify-content: flex-end;
    padding: 12px;
    background: #ffffffee;
    border: 1px solid #e7e9f0;
    border-radius: 10px;
    box-shadow: 0 10px 35px #16203d16;
    z-index: 20;
    margin-top: 15px
}

.banner-mode {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 25px
}

.banner-mode>label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px;
    border: 1px solid #dfe2ea;
    border-radius: 10px
}

.banner-mode input {
    width: auto;
    margin-top: 4px
}

.banner-mode span {
    display: flex;
    flex-direction: column;
    gap: 5px
}

.banner-mode small {
    font-weight: 400;
    color: #8790a4
}

.upload-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 24px
}

.upload-box {
    min-height: 180px;
    border: 1px dashed #c7ccda !important;
    border-radius: 10px;
    padding: 15px !important;
    text-align: center;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fafbfc
}

.upload-box input {
    position: absolute;
    opacity: 0;
    width: 1px
}

.upload-box>span {
    background: #e9ecf5;
    color: #26346e;
    border-radius: 6px;
    padding: 10px 14px;
    margin: 8px;
    font-size: 10px
}

.upload-box small {
    color: #9298a8;
    font-weight: 400
}

.upload-box img {
    margin-top: 12px;
    width: 100%;
    max-height: 240px;
    object-fit: cover;
    border-radius: 7px
}

.upload-box img.mobile-preview {
    max-width: 180px;
    object-fit: contain
}

.split-admin {
    display: grid;
    grid-template-columns: minmax(300px, .72fr) minmax(420px, 1.28fr);
    gap: 20px;
    align-items: start
}

.split-admin .admin-form {
    display: grid;
    gap: 15px
}

.item-list {
    padding: 10px 20px
}

.item-list article {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px 0;
    border-bottom: 1px solid #eef0f4
}

.item-list article>div {
    flex: 1
}

.item-list p {
    margin: 4px 0;
    color: #777f93;
    font-size: 12px
}

.item-list small {
    color: #9ca2b2
}

.empty-admin {
    padding: 40px;
    text-align: center;
    color: #9097a9
}

.create-panel {
    margin-bottom: 20px
}

.create-panel summary {
    padding: 18px 22px;
    font-weight: 800;
    color: #1c2b68;
    cursor: pointer
}

.admin-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px
}

.admin-media-card {
    background: #fff;
    border: 1px solid #e7e9f0;
    border-radius: 11px;
    overflow: hidden
}

.admin-media-card>img,
.file-icon {
    width: 100%;
    height: 180px;
    object-fit: cover;
    background: #182455;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 32px;
    font-weight: 900
}

.admin-media-card>div:last-child {
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px
}

.admin-media-card small {
    color: #8c93a6
}

.admin-media-card code {
    max-width: 100%;
    overflow-wrap: anywhere;
    font-size: 10px
}

.status {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 20px;
    font-size: 9px;
    text-transform: uppercase;
    font-weight: 800
}

.status.active {
    background: #eaf9f1;
    color: #198254
}

.status.inactive {
    background: #fff0f1;
    color: #cb263d
}

.table-panel {
    padding: 20px;
    margin-top: 20px
}

.responsive-table {
    overflow: auto
}

table {
    border-collapse: collapse;
    width: 100%;
    min-width: 650px
}

th,
td {
    text-align: left;
    padding: 13px;
    border-bottom: 1px solid #eceef3;
    font-size: 12px
}

th {
    font-size: 10px;
    text-transform: uppercase;
    color: #8990a4
}

.filter-bar {
    display: grid;
    grid-template-columns: 1fr 210px auto;
    gap: 10px;
    margin-bottom: 18px
}

.supporter-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px
}

.supporter-card {
    padding: 18px
}

.supporter-head {
    display: flex;
    align-items: center;
    gap: 12px
}

.supporter-head h2 {
    font-size: 15px;
    margin: 0
}

.supporter-head small {
    font-size: 10px;
    color: #939aac
}

.supporter-card dl {
    font-size: 11px
}

.supporter-card dl>div {
    display: flex;
    justify-content: space-between;
    padding: 7px 0;
    border-bottom: 1px solid #f0f1f4;
    gap: 15px
}

.supporter-card dt {
    color: #9198a9
}

.supporter-card dd {
    margin: 0;
    text-align: right
}

.supporter-card form {
    display: grid;
    gap: 10px
}

.social-form>div,
.section-order>div {
    display: grid;
    grid-template-columns: 150px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid #eceef3
}

.section-order>div {
    grid-template-columns: 30px 1fr 120px 120px
}

.drag-handle {
    color: #9299aa;
    font-size: 20px
}

.upload-inline {
    display: flex;
    align-items: end;
    gap: 15px;
    padding: 20px;
    margin-bottom: 20px
}

.upload-inline label {
    display: grid;
    gap: 7px;
    flex: 1;
    font-size: 12px;
    font-weight: 700
}

.upload-inline input {
    border: 1px solid #dfe2ea;
    border-radius: 7px;
    padding: 10px;
    width: 100%
}

.security-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 20px
}

.security-cards article {
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 7px
}

.security-cards strong {
    color: #1b2a66
}

.security-cards span {
    font-size: 12px;
    color: #8990a4
}

.backup-guide {
    padding: 30px;
    max-width: 800px
}

.backup-guide li {
    margin: 15px 0;
    line-height: 1.5
}

.warning-box {
    background: #fff6db;
    color: #725810;
    padding: 15px;
    border-radius: 8px
}

.narrow-form {
    max-width: 680px;
    display: grid;
    gap: 17px
}

.forbidden {
    text-align: center;
    padding: 70px 30px
}

.forbidden>span {
    color: #d31630;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .15em
}

.forbidden h1 {
    font-size: 34px;
    color: #17203f
}

.auth-body {
    min-height: 100vh;
    background: radial-gradient(circle at 70% 20%, #33478f, #111b3f 55%, #08102a);
    display: grid;
    place-items: center;
    padding: 25px
}

.auth-shell {
    width: min(100%, 480px)
}

.auth-card {
    background: #fff;
    border-radius: 16px;
    padding: 38px;
    box-shadow: 0 35px 80px #0004
}

.auth-mark {
    font-size: 10px;
    font-weight: 900;
    color: #d31630;
    letter-spacing: .16em
}

.auth-card h1 {
    font-size: 28px;
    color: #17203f;
    margin: 8px 0
}

.auth-card>p {
    color: #7f879a;
    font-size: 13px;
    line-height: 1.5
}

.auth-card form {
    display: grid;
    gap: 16px;
    margin-top: 22px
}

.auth-card label {
    display: grid;
    gap: 7px;
    font-size: 12px;
    font-weight: 700
}

.auth-card input {
    width: 100%;
    height: 47px;
    border: 1px solid #dfe2ea;
    border-radius: 7px;
    padding: 0 12px
}

.auth-card .admin-button {
    width: 100%;
    margin-top: 6px
}

.login-symbol {
    width: 60px;
    height: 60px;
    border-radius: 14px;
    background: #d31630;
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 13px;
    font-weight: 900;
    margin-bottom: 20px;
    box-shadow: 0 12px 25px #d3163040
}

.password-field {
    position: relative
}

.password-field button {
    position: absolute;
    right: 8px;
    top: 6px;
    width: 35px;
    height: 35px;
    border: 0;
    background: #f0f2f7;
    border-radius: 6px
}

.auth-back {
    display: block;
    text-align: center;
    font-size: 12px;
    color: #66708a;
    margin-top: 20px
}

.toast {
    padding: 13px 15px;
    border-radius: 8px;
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 700
}

.toast.success {
    background: #e9f9f0;
    color: #147647
}

.toast.error {
    background: #fff0f2;
    color: #bf1e35
}

.setup-steps {
    margin-top: 20px;
    padding: 18px;
    background: #f6f7fa;
    border-radius: 9px;
    font-size: 13px;
    line-height: 1.7
}

.sidebar-backdrop {
    display: none
}

@media(max-width:1200px) {
    .stat-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    .supporter-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .admin-card-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:900px) {
    .sidebar {
        transform: translateX(-100%);
        transition: .2s
    }

    .sidebar.is-open {
        transform: none
    }

    .admin-main {
        margin-left: 0
    }

    .sidebar-toggle {
        display: block
    }

    .sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: #0006;
        z-index: 70;
        opacity: 0;
        pointer-events: none;
        transition: .2s
    }

    .sidebar-backdrop.is-open {
        opacity: 1;
        pointer-events: auto
    }

    .admin-user>div {
        display: none
    }

    .dashboard-grid,
    .split-admin {
        grid-template-columns: 1fr
    }

    .color-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:620px) {
    .admin-content {
        padding: 18px 14px 95px
    }

    .admin-header {
        padding: 0 14px
    }

    .page-intro {
        flex-direction: column
    }

    .page-intro .admin-button,
    .page-intro .secondary-button {
        width: 100%
    }

    .stat-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .dashboard-grid {
        grid-template-columns: 1fr
    }

    .quick-grid {
        grid-template-columns: 1fr
    }

    .field-grid,
    .upload-grid,
    .banner-mode {
        grid-template-columns: 1fr
    }

    .field-grid .span-2 {
        grid-column: auto
    }

    .color-grid {
        grid-template-columns: 1fr
    }

    .supporter-grid,
    .admin-card-grid {
        grid-template-columns: 1fr
    }

    .filter-bar {
        grid-template-columns: 1fr
    }

    .social-form>div {
        grid-template-columns: 1fr
    }

    .section-order>div {
        grid-template-columns: 25px 1fr
    }

    .section-order>div label {
        grid-column: 2
    }

    .sticky-save {
        position: fixed;
        left: 10px;
        right: 10px;
        bottom: 10px
    }

    .sticky-save .admin-button {
        width: 100%
    }

    .auth-card {
        padding: 28px 22px
    }

    .admin-user form {
        display: none
    }

    .upload-inline {
        flex-direction: column;
        align-items: stretch
    }

    .security-cards {
        grid-template-columns: 1fr
    }

    .stat-grid article {
        padding: 14px
    }

    .stat-grid strong {
        font-size: 25px
    }
}

.biography-admin-list,
.album-admin-list {
    display: grid;
    gap: 18px
}

.biography-admin-card,
.album-admin-card {
    overflow: hidden
}

.biography-admin-summary,
.album-admin-summary {
    display: grid;
    grid-template-columns: 110px 1fr auto;
    align-items: center;
    gap: 20px;
    padding: 18px
}

.biography-admin-summary>img,
.album-admin-summary>img,
.admin-photo-empty {
    width: 110px;
    height: 86px;
    object-fit: cover;
    border-radius: 8px;
    background: #edf0f5
}

.biography-admin-summary>img {
    object-fit: contain;
    object-position: center bottom
}

.admin-photo-empty {
    display: grid;
    place-items: center;
    font-size: 9px;
    font-weight: 800;
    color: #8992a6
}

.biography-admin-summary h2,
.album-admin-summary h2 {
    font-size: 19px;
    color: #17234c;
    margin: 3px 0
}

.biography-admin-summary p,
.album-admin-summary p {
    font-size: 11px;
    color: #7d8598;
    margin: 3px 0 7px
}

.biography-admin-summary small,
.album-admin-summary small {
    font-size: 9px;
    color: #d31630;
    font-weight: 800
}

.biography-admin-edit,
.album-admin-edit {
    border-top: 1px solid #e8eaf0;
    padding: 24px;
    background: #fafbfc
}

.bio-admin-layout,
.album-admin-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 24px;
    align-items: start;
    margin-bottom: 22px
}

.bio-admin-layout .upload-box,
.album-admin-layout .upload-box {
    margin: 0;
    min-height: 320px
}

.bio-admin-layout .upload-box img {
    object-fit: contain;
    background: #f1f4f8
}

.multi-upload {
    background: #f3f5fa;
    border: 1px dashed #c8cedd;
    border-radius: 8px;
    padding: 15px
}

.multi-upload small {
    font-weight: 400;
    color: #8790a4
}

.delete-row {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #e5e8ef
}

.inline-cover-preview {
    display: block;
    width: 100%;
    height: 120px;
    object-fit: cover;
    margin-top: 8px;
    border-radius: 7px
}

.album-photo-manager {
    margin-top: 26px;
    padding-top: 6px;
    border-top: 1px solid #e3e6ed
}

.album-photo-manager>.panel-heading {
    margin: 0 0 18px;
    padding-left: 0;
    padding-right: 0
}

.album-photo-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px
}

.album-photo-item {
    border: 1px solid #e2e5ec;
    background: #fff;
    border-radius: 9px;
    padding: 9px
}

.album-photo-item>a {
    display: block;
    aspect-ratio: 1/1;
    overflow: hidden;
    border-radius: 6px;
    background: #eef0f4
}

.album-photo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.album-photo-item label {
    margin-top: 9px
}

.album-photo-item input {
    padding: 7px
}

.photo-actions {
    display: grid;
    gap: 6px;
    margin-top: 8px
}

.photo-actions .secondary-button,
.photo-actions .danger-button {
    width: 100%;
    padding: 0 7px;
    font-size: 8px;
    min-height: 34px
}

@media(max-width:1100px) {

    .bio-admin-layout,
    .album-admin-layout {
        grid-template-columns: 240px 1fr
    }

    .album-photo-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }
}

@media(max-width:760px) {

    .bio-admin-layout,
    .album-admin-layout {
        grid-template-columns: 1fr
    }

    .biography-admin-summary,
    .album-admin-summary {
        grid-template-columns: 74px 1fr
    }

    .biography-admin-summary>img,
    .album-admin-summary>img,
    .admin-photo-empty {
        width: 74px;
        height: 70px
    }

    .biography-admin-summary>.secondary-button,
    .album-admin-summary>.secondary-button {
        grid-column: 1/-1;
        width: 100%
    }

    .album-photo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .biography-admin-edit,
    .album-admin-edit {
        padding: 18px 13px
    }

    .bio-admin-layout .upload-box,
    .album-admin-layout .upload-box {
        min-height: 220px
    }
}

.photo-variant-editors {
    display: grid;
    gap: 15px;
    margin-top: 22px
}

.photo-variant-editor {
    border: 1px solid #dfe3ec;
    border-radius: 10px;
    background: #fff;
    overflow: hidden
}

.photo-variant-editor>.panel-heading {
    padding: 16px 18px
}

.photo-variant-editor>.admin-form {
    padding: 20px
}

.photo-variant-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: start
}

.photo-variant-grid>article {
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 0
}

.photo-variant-grid>article>span {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    color: #172b69
}

.variant-preview {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 8px;
    background: linear-gradient(145deg, #172b69, #07133f);
    display: flex;
    align-items: center;
    justify-content: center
}

.variant-preview.original {
    aspect-ratio: 4/3
}

.variant-preview.story {
    aspect-ratio: 9/16;
    max-height: 330px
}

.variant-preview.feed {
    aspect-ratio: 4/5;
    max-height: 330px
}

.variant-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain
}

.variant-preview small {
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: #ffce13;
    color: #10205f;
    padding: 5px 7px;
    border-radius: 4px;
    font-size: 8px;
    font-weight: 900
}

.variant-upload-button,
.variant-remove-button {
    min-height: 39px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 6px;
    padding: 0 10px !important;
    cursor: pointer;
    text-align: center;
    font-size: 9px !important;
    font-weight: 900 !important
}

.variant-upload-button {
    background: #1f2d6b;
    color: #fff !important
}

.variant-remove-button {
    background: #fff0f1;
    color: #bd2138 !important
}

.variant-upload-button input {
    position: absolute !important;
    opacity: 0 !important;
    width: 1px !important;
    height: 1px !important
}

.variant-remove-button input {
    width: auto !important
}

.variant-help {
    font-size: 11px;
    color: #747d91;
    line-height: 1.5;
    margin: 18px 0
}

.photo-actions {
    grid-template-columns: 1fr
}

.photo-actions .secondary-button,
.photo-actions .danger-button {
    white-space: normal
}

@media(max-width:900px) {
    .photo-variant-grid {
        grid-template-columns: 1fr 1fr
    }

    .photo-variant-grid>article:first-child {
        grid-column: 1/-1
    }

    .variant-preview.original {
        max-height: 300px
    }
}

@media(max-width:560px) {
    .photo-variant-grid {
        grid-template-columns: 1fr
    }

    .photo-variant-grid>article:first-child {
        grid-column: auto
    }

    .variant-preview.story,
    .variant-preview.feed {
        max-height: 420px
    }
}

.album-admin-list-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex-wrap: wrap
}

.album-admin-list-actions .secondary-button,
.album-admin-list-actions .danger-button {
    min-height: 38px;
    padding: 0 13px
}

.existing-bulk-uploader {
    margin: 24px 0;
    padding: 20px;
    border: 1px solid #e1e5ee;
    border-radius: 10px;
    background: #fff
}

.existing-bulk-uploader>.panel-heading {
    padding: 0 0 17px;
    margin-bottom: 17px
}

.bulk-upload-zone {
    min-height: 260px;
    border: 2px dashed #bdc5d8;
    border-radius: 12px;
    background: #f8f9fc;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 28px;
    text-align: center;
    transition: border-color .2s, background .2s, transform .2s
}

.bulk-upload-zone.is-dragging {
    border-color: #d31630;
    background: #fff2f4;
    transform: scale(1.005)
}

.bulk-upload-zone>input {
    position: absolute;
    opacity: 0;
    width: 1px !important;
    height: 1px !important
}

.bulk-upload-icon {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #e8ecf5;
    color: #203273;
    display: grid;
    place-items: center;
    font-size: 28px;
    font-weight: 300;
    margin-bottom: 13px
}

.bulk-upload-zone>strong {
    font-size: 14px;
    color: #172552;
    letter-spacing: .04em
}

.bulk-upload-zone>small {
    font-size: 11px;
    color: #8a92a4;
    margin: 8px 0
}

.bulk-upload-zone>label {
    display: inline-flex !important;
    min-height: 42px;
    padding: 0 19px !important;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: #1f2d6b;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    cursor: pointer
}

.bulk-upload-zone>p {
    font-size: 10px;
    line-height: 1.55;
    color: #8b93a5;
    margin: 12px 0 0
}

.bulk-upload-selection {
    margin-top: 18px
}

.bulk-upload-selection>div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px
}

.bulk-upload-selection>div:first-child>strong {
    font-size: 11px;
    color: #182657
}

.bulk-preview-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px
}

.bulk-preview-item {
    position: relative;
    aspect-ratio: 1/1;
    border-radius: 8px;
    overflow: hidden;
    background: #e9edf4;
    border: 2px solid transparent
}

.bulk-preview-item.is-success {
    border-color: #30a773
}

.bulk-preview-item.is-failed {
    border-color: #d83a4f
}

.bulk-preview-item.is-uploading {
    border-color: #e9b916
}

.bulk-preview-item>img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.bulk-preview-remove {
    position: absolute;
    right: 5px;
    top: 5px;
    width: 27px;
    height: 27px;
    border: 0;
    border-radius: 50%;
    background: #101a3de8;
    color: #fff;
    font-size: 19px;
    line-height: 1
}

.bulk-preview-remove:disabled {
    opacity: .45
}

.bulk-preview-state {
    position: absolute;
    left: 5px;
    bottom: 5px;
    background: #101a3de8;
    color: #fff;
    border-radius: 4px;
    padding: 4px 6px;
    font-size: 7px;
    font-weight: 900
}

.bulk-preview-item.is-success .bulk-preview-state {
    background: #18815a
}

.bulk-preview-item.is-failed .bulk-preview-state {
    background: #bd243b
}

.bulk-upload-progress {
    margin: 18px 0;
    padding: 15px;
    border-radius: 9px;
    background: #f1f4f9
}

.bulk-upload-progress>div {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    font-size: 11px;
    font-weight: 800;
    color: #273663
}

.bulk-upload-progress progress {
    display: block;
    width: 100%;
    height: 13px;
    margin: 10px 0 7px;
    accent-color: #d31630
}

.bulk-upload-progress small {
    font-size: 10px;
    color: #778094
}

.bulk-upload-result {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 16px 0;
    padding: 14px;
    border-radius: 8px;
    font-size: 11px
}

.bulk-upload-result.is-success {
    background: #e9f8f1;
    color: #176a4a
}

.bulk-upload-result.has-errors {
    background: #fff1f2;
    color: #a32136
}

.bulk-upload-result span {
    margin-right: auto
}

.bulk-upload-result .secondary-button {
    margin-left: auto
}

.existing-bulk-uploader>[data-upload-start] {
    margin-top: 17px
}

@media(max-width:1100px) {
    .bulk-preview-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr))
    }
}

@media(max-width:760px) {
    .album-admin-list-actions {
        grid-column: 1/-1;
        display: grid;
        grid-template-columns: 1fr 1fr
    }

    .album-admin-list-actions .danger-button {
        grid-column: 1/-1
    }

    .bulk-upload-zone {
        min-height: 225px;
        padding: 22px 15px
    }

    .bulk-preview-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr))
    }

    .bulk-upload-result {
        align-items: stretch;
        flex-direction: column
    }

    .bulk-upload-result .secondary-button {
        width: 100%;
        margin: 0
    }

    .existing-bulk-uploader {
        padding: 16px 12px
    }
}

@media(max-width:430px) {
    .bulk-preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .bulk-upload-selection>div:first-child {
        align-items: flex-start;
        flex-direction: column
    }

    .album-admin-list-actions {
        grid-template-columns: 1fr
    }

    .album-admin-list-actions .danger-button {
        grid-column: auto
    }
}

/* Controles visuais configuráveis */
.candidate-settings-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.candidate-settings-grid fieldset,
.appearance-group {
    min-width: 0;
    border: 1px solid #e0e5ee;
    border-radius: 9px;
    padding: 18px
}

.candidate-settings-grid legend,
.appearance-group legend {
    padding: 0 8px;
    color: #172552;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em
}

.settings-extra-fields {
    margin-top: 20px
}

.appearance-panel,
.biography-appearance {
    margin-top: 24px
}

.appearance-fields,
.appearance-control-grid {
    margin-top: 18px
}

.appearance-control-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px
}

.appearance-control-grid label {
    display: grid;
    gap: 7px;
    font-size: 10px;
    font-weight: 800;
    color: #4c5872
}

.appearance-control-grid input,
.appearance-control-grid select {
    width: 100%;
    min-width: 0;
    height: 42px;
    border: 1px solid #dce1ea;
    border-radius: 5px;
    padding: 0 10px;
    background: #fff
}

.appearance-control-grid input[type=color] {
    padding: 4px
}

.hero-admin-preview,
.biography-style-preview {
    margin-top: 20px;
    border-radius: 10px;
    padding: 24px;
    background: linear-gradient(135deg, #bd0f28, #e31634);
    color: #fff;
    overflow: hidden
}

.hero-admin-preview>span {
    display: block;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
    opacity: .72;
    margin-bottom: 14px
}

.hero-admin-preview>strong {
    display: block;
    font-size: 45px;
    line-height: .98;
    text-transform: uppercase
}

.hero-admin-preview .preview-highlight {
    color: #ffd600
}

.hero-admin-preview>p {
    font-size: 13px
}

.biography-style-preview {
    background: #f4f6f9;
    color: #172552;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 8px
}

.biography-style-preview>span {
    font-size: 10px
}

.biography-style-preview h3 {
    margin: 0;
    font-size: 28px;
    line-height: 1
}

.biography-style-preview strong {
    font-size: 18px
}

.biography-style-preview small {
    font-size: 12px
}

.biography-style-preview p {
    margin: 0
}

.biography-style-preview button {
    margin-top: 8px;
    min-height: 42px;
    border: 0;
    padding: 0 16px;
    color: #fff;
    background: #172a77;
    font-weight: 900
}

/* Editor visual leve do texto completo das biografias. */
.rich-text-field {
    min-width: 0;
    margin-top: 5px
}

.rich-text-label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 8px;
    color: #17234c
}

.rich-text-label strong {
    font-size: 11px
}

.rich-text-label small {
    color: #7b8498;
    font-size: 9px;
    font-weight: 500
}

.rich-text-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    padding: 10px;
    border: 1px solid #dce1ea;
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
    background: #f4f6fa
}

.rich-toolbar-group {
    display: flex;
    gap: 4px
}

.rich-text-toolbar button,
.rich-text-toolbar select {
    min-height: 34px;
    border: 1px solid #d7dce7;
    border-radius: 5px;
    background: #fff;
    color: #172552;
    font-size: 10px;
    font-weight: 800;
    padding: 0 10px
}

.rich-text-toolbar button {
    min-width: 35px;
    cursor: pointer
}

.rich-text-toolbar button:hover,
.rich-text-toolbar button:focus-visible {
    border-color: #173b8f;
    background: #edf2ff
}

.rich-text-toolbar select {
    max-width: 130px
}

.rich-color-control {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: row;
    align-items: center;
    gap: 5px !important;
    margin: 0 !important;
    padding: 4px 6px;
    border: 1px solid #d7dce7;
    border-radius: 5px;
    background: #fff
}

.rich-color-control span {
    font-size: 8px;
    color: #5f687d
}

.rich-color-control input[type=color] {
    width: 27px;
    height: 27px;
    padding: 2px;
    border: 0;
    background: transparent
}

.rich-color-control input[type=text] {
    width: 73px;
    height: 29px;
    padding: 0 6px;
    border: 1px solid #e1e4eb;
    border-radius: 4px;
    font-size: 9px;
    text-transform: uppercase
}

.rich-text-content {
    min-height: 260px;
    max-height: 620px;
    overflow: auto;
    padding: 20px;
    border: 1px solid #dce1ea;
    border-radius: 0 0 7px 7px;
    background: #fff;
    color: #252b3a;
    font: 400 15px/1.7 Arial, sans-serif;
    overflow-wrap: anywhere;
    white-space: normal
}

.rich-text-content:focus {
    outline: 3px solid #ffd600;
    outline-offset: 2px
}

.rich-text-content p {
    margin: 0 0 1em
}

.rich-text-content h2,
.rich-text-content h3,
.rich-text-content h4 {
    margin: 1.15em 0 .55em;
    line-height: 1.15
}

.rich-text-content h2 {
    font-size: 1.75rem
}

.rich-text-content h3 {
    font-size: 1.375rem
}

.rich-text-content h4 {
    font-size: 1.125rem
}

.rich-text-content a {
    color: #173b8f;
    text-decoration: underline
}

.rich-text-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 9px
}

.rich-text-actions small {
    font-size: 9px;
    color: #7b8498
}

.rich-text-preview {
    margin-top: 12px;
    padding: 22px;
    border: 1px solid #dce1ea;
    border-radius: 7px;
    background: #fff
}

.rich-text-preview[hidden] {
    display: none
}

@media(max-width:760px) {
    .rich-text-label {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px
    }

    .rich-text-toolbar {
        align-items: stretch
    }

    .rich-text-toolbar select {
        max-width: none;
        flex: 1
    }

    .rich-color-control {
        flex: 1 1 190px
    }

    .rich-text-content {
        min-height: 220px;
        padding: 15px
    }

    .rich-text-actions {
        align-items: flex-start;
        flex-direction: column
    }
}

@media(max-width:800px) {
    .candidate-settings-grid {
        grid-template-columns: 1fr
    }

    .appearance-control-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .hero-admin-preview>strong {
        font-size: 34px
    }
}

@media(max-width:480px) {
    .appearance-control-grid {
        grid-template-columns: 1fr
    }

    .hero-admin-preview {
        padding: 18px
    }

    .hero-admin-preview>strong {
        font-size: 29px
    }
}

/* Organização visual da Home. */
.home-order-form {
    padding: 0;
    overflow: hidden
}

.section-order {
    padding: 18px;
    display: grid;
    gap: 10px
}

.home-order-row {
    display: grid;
    grid-template-columns: 46px 42px minmax(160px, 1fr) auto auto;
    align-items: center;
    gap: 13px;
    min-height: 74px;
    padding: 10px 14px;
    border: 1px solid #e2e6ef;
    border-radius: 10px;
    background: #fff;
    transition: box-shadow .18s, transform .18s, border-color .18s
}

.home-order-row.is-dragging {
    z-index: 2;
    border-color: #29418d;
    background: #f5f7ff;
    box-shadow: 0 16px 35px #18295b2b;
    transform: scale(1.01)
}

.section-order.is-sorting .home-order-row:not(.is-dragging) {
    transition: transform .15s
}

.drag-handle {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 8px;
    background: #edf0f6;
    color: #29386c;
    font-size: 25px;
    cursor: grab;
    touch-action: none
}

.drag-handle:active {
    cursor: grabbing
}

.home-order-position {
    color: #d31630;
    font-size: 11px;
    font-weight: 900
}

.home-order-row>strong {
    color: #172552;
    font-size: 13px
}

.home-order-moves {
    display: flex;
    gap: 5px
}

.home-order-moves button {
    width: 34px;
    height: 34px;
    border: 1px solid #dce1eb;
    border-radius: 7px;
    background: #fff;
    color: #25346b;
    font-weight: 900;
    cursor: pointer
}

.home-order-moves button:disabled {
    opacity: .3;
    cursor: not-allowed
}

.home-order-row .switch {
    margin: 0;
    white-space: nowrap
}

.home-order-row .switch b {
    min-width: 45px;
    font-size: 10px
}

.home-order-note {
    margin: 0;
    padding: 0 20px 18px;
    color: #7a8397;
    font-size: 10px
}

.home-order-form .sticky-save {
    padding: 17px 20px;
    border-top: 1px solid #e8ebf1;
    background: #fafbfc
}

@media(max-width:680px) {
    .section-order {
        padding: 11px
    }

    .home-order-row {
        grid-template-columns: 42px 34px minmax(0, 1fr) auto;
        padding: 10px;
        gap: 9px
    }

    .home-order-row>strong {
        font-size: 11px
    }

    .home-order-moves {
        grid-column: 3
    }

    .home-order-row .switch {
        grid-column: 4;
        grid-row: 1/3
    }

    .home-order-row .switch b {
        display: none
    }

    .home-order-position {
        font-size: 10px
    }
}

/* Campanhas externas de personalização. */
.photo-campaign-create {
    margin-bottom: 22px
}

.photo-campaign-admin-list {
    display: grid;
    gap: 14px
}

.photo-campaign-admin-card {
    padding: 0;
    overflow: hidden
}

.photo-campaign-admin-summary {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: 16px
}

.photo-campaign-admin-cover {
    width: 150px;
    height: 116px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 9px;
    background: linear-gradient(145deg, #172a77, #d3112a);
    color: #fff;
    font-size: 10px;
    font-weight: 900
}

.photo-campaign-admin-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.photo-campaign-admin-copy {
    min-width: 0
}

.photo-campaign-admin-copy h2 {
    margin: 8px 0 5px;
    color: #172552;
    font-size: 19px
}

.photo-campaign-admin-copy>a {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: #536080;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap
}

.photo-campaign-admin-copy>small {
    display: block;
    margin-top: 8px;
    color: #9097a9;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase
}

.photo-campaign-admin-actions {
    display: flex;
    align-items: center;
    gap: 8px
}

.photo-campaign-admin-actions form {
    margin: 0
}

.photo-campaign-admin-edit {
    border-top: 1px solid #e5e8ef;
    background: #fafbfc
}

.photo-campaign-admin-edit>.panel-heading {
    background: #fff
}

.photo-campaign-admin-edit>.admin-form {
    margin: 0
}

.photo-campaign-edit-layout {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
    margin-bottom: 20px
}

.photo-campaign-edit-cover {
    display: grid;
    gap: 10px
}

.photo-campaign-edit-cover>span {
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
    color: #6f7890
}

.photo-campaign-edit-cover>div {
    width: 200px;
    height: 160px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #e0e4ec;
    border-radius: 9px;
    background: #eef1f6;
    color: #8790a4;
    font-size: 10px;
    font-weight: 900
}

.photo-campaign-edit-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.photo-campaign-edit-cover>label:not(.check-inline) {
    min-height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 7px;
    background: #1f2d6b;
    color: #fff !important;
    font-size: 9px !important;
    cursor: pointer
}

.photo-campaign-edit-cover>label:not(.check-inline) input {
    position: absolute;
    opacity: 0;
    width: 1px !important
}

.photo-campaign-admin-switches {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap
}

.empty-admin {
    grid-column: 1/-1;
    text-align: center;
    padding: 45px
}

.empty-admin strong {
    color: #172552
}

@media(max-width:760px) {
    .photo-campaign-admin-summary {
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 13px;
        padding: 13px
    }

    .photo-campaign-admin-cover {
        width: 92px;
        height: 82px
    }

    .photo-campaign-admin-copy h2 {
        font-size: 15px;
        margin-top: 6px
    }

    .photo-campaign-admin-actions {
        grid-column: 1/-1
    }

    .photo-campaign-admin-actions .secondary-button,
    .photo-campaign-admin-actions form,
    .photo-campaign-admin-actions .danger-button {
        width: 100%
    }

    .photo-campaign-edit-layout {
        grid-template-columns: 1fr
    }

    .photo-campaign-edit-cover>div {
        width: 100%;
        max-width: 220px;
        height: 170px
    }

    .photo-campaign-admin-edit>.form-section {
        padding: 18px 13px
    }
}

/* Identidade do site dentro de Configurações. */
.site-identity-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}

.site-identity-upload {
    align-content: start;
    padding: 18px;
    border: 1px solid #e1e5ed;
    border-radius: 10px;
    background: #fafbfc
}

.site-identity-upload>strong {
    color: #172552;
    font-size: 14px
}

.site-identity-upload>small {
    min-height: 34px;
    color: #81899d;
    font-weight: 400;
    line-height: 1.45
}

.site-identity-upload>input {
    position: absolute;
    opacity: 0;
    width: 1px !important;
    height: 1px
}

.site-identity-upload>em {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    margin-top: 4px;
    border-radius: 7px;
    background: #1f2d6b;
    color: #fff;
    font-size: 9px;
    font-style: normal;
    font-weight: 900;
    cursor: pointer
}

.favicon-preview {
    width: 80px;
    height: 80px;
    display: grid;
    place-items: center;
    margin: 10px 0;
    overflow: hidden;
    border: 1px solid #dfe3eb;
    border-radius: 10px;
    background: #fff
}

.favicon-preview img {
    width: 72px;
    height: 72px;
    object-fit: contain
}

.favicon-preview b,
.og-image-preview b {
    color: #9299aa;
    font-size: 8px
}

.og-image-preview {
    width: min(100%, 300px);
    aspect-ratio: 1200/630;
    display: grid;
    place-items: center;
    margin: 10px 0;
    overflow: hidden;
    border: 1px solid #dfe3eb;
    border-radius: 10px;
    background: #fff
}

.og-image-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

@media(max-width:680px) {
    .site-identity-grid {
        grid-template-columns: 1fr
    }

    .site-identity-upload>small {
        min-height: 0
    }
}

/* Reforça o layout sobre a regra legada da antiga lista numérica. */
.section-order>.home-order-row {
    display: grid;
    grid-template-columns: 46px 42px minmax(160px, 1fr) auto auto;
    padding: 10px 14px;
    border: 1px solid #e2e6ef
}

@media(max-width:680px) {
    .section-order>.home-order-row {
        grid-template-columns: 42px 34px minmax(0, 1fr) auto;
        padding: 10px
    }
}

/* Navegação interna de módulos, confirmações e fontes. */
.materials-admin-tabs,
.settings-admin-tabs {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin: 0 0 22px;
    padding: 7px;
    border: 1px solid #e1e5ed;
    border-radius: 10px;
    background: #fff
}

.materials-admin-tabs a,
.settings-admin-tabs a {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 17px;
    border-radius: 7px;
    color: #657088;
    font-size: 10px;
    font-weight: 900
}

.materials-admin-tabs a.is-active,
.materials-admin-tabs a:hover,
.settings-admin-tabs a:hover {
    background: #1f2d6b;
    color: #fff
}

.module-heading-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap
}

.home-card-delete-form {
    padding: 0 22px 22px 274px
}

.home-card-delete-form .danger-button {
    width: 100%
}

.admin-confirm-dialog {
    width: min(92vw, 520px);
    padding: 0;
    border: 0;
    border-radius: 14px;
    box-shadow: 0 28px 80px #111a3e55
}

.admin-confirm-dialog::backdrop {
    background: #0b123a99;
    backdrop-filter: blur(3px)
}

.admin-confirm-dialog>div,
.admin-confirm-dialog>form>div {
    padding: 26px
}

.admin-confirm-dialog span {
    color: #d31630;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .15em
}

.admin-confirm-dialog h2 {
    margin: 7px 0 13px;
    color: #17234c;
    font-size: 23px
}

.admin-confirm-dialog p {
    color: #636d82;
    font-size: 12px;
    line-height: 1.65
}

.admin-confirm-dialog p strong {
    color: #17234c
}

.admin-confirm-dialog>div>div,
.admin-confirm-dialog>form>div>div {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 20px
}

.custom-font-manager {
    margin-top: 24px;
    scroll-margin-top: 90px
}

.custom-font-help {
    margin: 0;
    padding: 17px 22px;
    border-bottom: 1px solid #e8ebf1;
    color: #727c91;
    font-size: 11px
}

.custom-font-create {
    padding: 22px;
    border-bottom: 1px solid #e8ebf1;
    background: #fafbfc
}

.custom-font-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    padding: 22px
}

.custom-font-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid #e3e7ef;
    border-radius: 10px
}

.custom-font-card>div>span {
    color: #d31630;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em
}

.custom-font-card h3 {
    margin: 6px 0 3px;
    color: #172552;
    font-size: 18px
}

.custom-font-card small {
    color: #8991a2;
    font-size: 9px;
    overflow-wrap: anywhere
}

.custom-font-card p {
    margin: 20px 0;
    padding: 16px;
    border-radius: 8px;
    background: #f4f6fa;
    color: #14204b;
    font-size: 22px;
    line-height: 1.45;
    overflow-wrap: anywhere
}

.custom-font-card .danger-button {
    width: 100%
}

@media(max-width:760px) {

    .materials-admin-tabs,
    .settings-admin-tabs {
        display: grid;
        grid-template-columns: 1fr
    }

    .module-heading-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr
    }

    .home-card-delete-form {
        padding: 0 16px 16px
    }

    .custom-font-grid {
        grid-template-columns: 1fr;
        padding: 14px
    }

    .admin-confirm-dialog>div>div,
    .admin-confirm-dialog>form>div>div {
        align-items: stretch;
        flex-direction: column-reverse
    }

    .admin-confirm-dialog button {
        width: 100%
    }
}

.status-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 20px;
    font-size: 9px !important;
    font-weight: 900;
    letter-spacing: .05em !important
}

.status-pill.active {
    background: #e8f8ef;
    color: #19764f
}

.status-pill.inactive {
    background: #fff0f2;
    color: #bd263d
}

#integracoes {
    scroll-margin-top: 90px
}

#integracoes>p {
    color: #697287;
    font-size: 12px;
    line-height: 1.6
}

#integracoes code {
    background: #f0f2f7;
    padding: 2px 5px;
    border-radius: 4px
}

.social-candidate-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px
}

.social-candidate-panel {
    min-width: 0
}

.social-candidate-panel .social-form {
    grid-template-columns: 1fr
}

.social-candidate-panel .panel-heading h2 {
    overflow-wrap: anywhere
}

@media(max-width:900px) {
    .social-candidate-panels {
        grid-template-columns: 1fr
    }
}

/* Editor de título do Hero e contato de voluntários. */
.rich-text-field-hero .rich-text-content {
    min-height: 150px;
    max-height: 300px;
    background: linear-gradient(135deg, #bd0f28, #e31634);
    color: #fff;
    font: 700 32px/1.05 'League Spartan', Arial, sans-serif;
    text-transform: none;
    letter-spacing: -.02em
}

.rich-text-field-hero .rich-text-content span,
.hero-rich-preview span {
    display: inline
}

.hero-rich-preview {
    background: linear-gradient(135deg, #bd0f28, #e31634);
    color: #fff;
    font: 700 32px/1.05 'League Spartan', Arial, sans-serif;
    text-transform: none;
    letter-spacing: -.02em;
    overflow-wrap: anywhere
}

.supporter-whatsapp {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin: 12px 0;
    background: #1b9b55;
    color: #fff;
    border-radius: 7px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .04em
}

.supporter-whatsapp:hover {
    background: #158348
}

@media(max-width:760px) {

    .rich-text-field-hero .rich-text-content,
    .hero-rich-preview {
        font-size: 26px
    }

    .supporter-whatsapp {
        width: 100%
    }
}

/* A prévia do Hero respeita a capitalização digitada, inclusive nos destaques coloridos. */
.hero-admin-preview>strong,
.hero-admin-preview>strong * {
    text-transform: none
}

/* Gestão de jingles reaproveitando a estrutura de Materiais. */
.jingle-admin-editor {
    margin-bottom: 20px
}

.jingle-audio-upload audio {
    display: block;
    width: min(100%, 620px);
    margin-top: 10px
}

.jingle-audio-upload audio[hidden] {
    display: none
}

.jingle-admin-file {
    display: block;
    margin-top: 4px;
    color: #8a92a4;
    overflow-wrap: anywhere
}

.jingle-admin-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap
}

.jingle-admin-actions form {
    margin: 0
}

.jingle-admin-actions .secondary-button,
.jingle-admin-actions .danger-button {
    min-height: 36px;
    padding: 0 12px;
    font-size: 9px
}

.jingle-admin-list td {
    vertical-align: middle
}

@media(max-width:760px) {
    .jingle-admin-actions {
        display: grid;
        grid-template-columns: 1fr 1fr
    }

    .jingle-admin-actions form {
        grid-column: 1/-1
    }

    .jingle-admin-actions button {
        width: 100%
    }
}

/* Cards administráveis da seção Materiais na Home. */
.home-material-manager {
    margin-bottom: 22px
}

.home-material-help {
    margin: 0;
    padding: 18px 22px;
    color: #70798e;
    font-size: 12px;
    border-bottom: 1px solid #eceef3
}

.home-material-card-list {
    padding: 0 22px 22px
}

.home-material-admin-card {
    border: 1px solid #e6e9f1;
    border-radius: 11px;
    margin-top: 16px;
    overflow: hidden
}

.home-material-admin-card>summary {
    display: grid;
    grid-template-columns: 82px 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 12px;
    cursor: pointer;
    list-style: none;
    background: #fafbfc
}

.home-material-admin-card>summary::-webkit-details-marker {
    display: none
}

.home-material-admin-card>summary>span:nth-child(2) {
    display: flex;
    flex-direction: column;
    gap: 5px
}

.home-material-admin-card>summary strong {
    color: #192653
}

.home-material-admin-card>summary small {
    color: #8790a3;
    font-size: 10px
}

.home-material-admin-card>summary em {
    font-style: normal;
    color: #d31630;
    font-size: 10px;
    font-weight: 800
}

.home-material-thumb {
    width: 82px;
    height: 70px;
    border-radius: 7px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #137fbd;
    color: #fff
}

.home-material-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.home-material-thumb b {
    font-size: 28px
}

.home-material-card-form {
    padding: 22px;
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 22px;
    border-top: 1px solid #e9ebf2
}

.home-material-cover-editor {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.home-material-cover-preview {
    width: 100%;
    aspect-ratio: 4/5;
    border-radius: 9px;
    overflow: hidden;
    background: #f1f3f8
}

.home-material-cover-preview>img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.home-material-fallback {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 24px;
    color: #fff;
    background: linear-gradient(145deg, #10a4dc, #005eaa)
}

.home-material-fallback span {
    font-size: 44px;
    font-weight: 900;
    color: #ffd900
}

.home-material-fallback strong {
    font-size: 24px;
    text-transform: uppercase
}

.home-material-thumb.tone-2,
.home-material-fallback.tone-2 {
    background: linear-gradient(145deg, #d3112a, #8e071a)
}

.home-material-thumb.tone-3,
.home-material-fallback.tone-3 {
    background: linear-gradient(145deg, #172a77, #5767ba)
}

.home-material-thumb.tone-4,
.home-material-fallback.tone-4 {
    background: linear-gradient(145deg, #009d73, #006546)
}

.home-material-upload {
    display: flex !important;
    align-items: flex-start
}

.home-material-upload input {
    position: absolute !important;
    opacity: 0;
    width: 1px !important;
    height: 1px
}

.home-material-upload>span {
    display: inline-flex;
    background: #1f2d6b;
    color: #fff;
    border-radius: 7px;
    padding: 11px 13px;
    font-size: 9px
}

.home-material-upload small {
    font-weight: 400;
    color: #8a92a6
}

.check-inline {
    display: flex !important;
    grid-template-columns: auto 1fr !important;
    align-items: flex-start;
    gap: 8px !important;
    font-weight: 500 !important
}

.check-inline input {
    width: auto !important;
    margin-top: 2px
}

.home-material-card-form>.field-grid {
    align-content: start
}

.home-material-card-form>.secondary-button,
.home-material-card-form>.admin-inline-note {
    grid-column: 2
}

.admin-inline-note {
    margin: 0;
    padding: 12px;
    border-radius: 8px;
    background: #f4f6fb;
    color: #59627a;
    font-size: 11px
}

.material-create-grid {
    margin-bottom: 20px
}

.table-panel>.panel-heading {
    margin: -20px -20px 18px
}

@media(max-width:760px) {
    .home-material-card-list {
        padding: 0 12px 14px
    }

    .home-material-admin-card>summary {
        grid-template-columns: 68px 1fr
    }

    .home-material-admin-card>summary>em {
        grid-column: 2
    }

    .home-material-thumb {
        width: 68px;
        height: 64px
    }

    .home-material-card-form {
        grid-template-columns: 1fr;
        padding: 16px
    }

    .home-material-cover-editor {
        width: min(100%, 280px);
        margin: auto
    }

    .home-material-card-form>.secondary-button,
    .home-material-card-form>.admin-inline-note {
        grid-column: 1
    }

    .home-material-card-form>.secondary-button {
        width: 100%
    }
}

/* Lista compacta de voluntários e apoiadores. */
.supporter-list {
    overflow: hidden
}

.supporter-list-header,
.supporter-row {
    display: grid;
    grid-template-columns: minmax(180px, 1.35fr) minmax(115px, .8fr) minmax(145px, 1fr) minmax(86px, .62fr) minmax(185px, 1.15fr) minmax(150px, .85fr);
    gap: 14px;
    align-items: center
}

.supporter-list-header {
    padding: 11px 16px;
    background: #f5f7fb;
    border-bottom: 1px solid #e7eaf1;
    color: #7f8799;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em
}

.supporter-row {
    min-height: 70px;
    padding: 11px 16px;
    border-bottom: 1px solid #eceef3
}

.supporter-row:last-of-type {
    border-bottom: 0
}

.supporter-cell {
    min-width: 0;
    font-size: 11px;
    color: #3e475d
}

.supporter-person {
    display: flex;
    align-items: center;
    gap: 10px
}

.supporter-person .avatar {
    width: 34px;
    height: 34px;
    font-size: 12px
}

.supporter-person>div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px
}

.supporter-person strong {
    overflow: hidden;
    text-overflow: ellipsis;
    color: #17234c;
    font-size: 12px;
    white-space: nowrap
}

.supporter-person small {
    color: #9299aa;
    font-size: 9px
}

.supporter-cell i {
    color: #a5abba;
    font-style: normal
}

.supporter-mobile-label {
    display: none
}

.supporter-type-badge {
    display: inline-flex;
    padding: 6px 8px;
    border-radius: 20px;
    font-size: 9px;
    font-weight: 800
}

.supporter-type-badge.is-volunteer {
    background: #e9f8ef;
    color: #167647
}

.supporter-type-badge.is-supporter {
    background: #edf1fb;
    color: #2a3d80
}

.supporter-status-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center
}

.supporter-status-form select {
    width: 100%;
    min-width: 0;
    height: 36px;
    border: 1px solid #dce1eb;
    border-radius: 7px;
    background: #fff;
    padding: 0 8px;
    color: #27304a;
    font-size: 10px
}

.supporter-save-status {
    height: 36px;
    padding: 0 9px;
    border: 0;
    border-radius: 7px;
    background: #1f2d6b;
    color: #fff;
    font-size: 8px;
    font-weight: 900
}

.supporter-row-actions {
    display: flex;
    align-items: center;
    gap: 6px
}

.supporter-action {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 0 9px;
    border: 1px solid #dfe3ec;
    border-radius: 7px;
    background: #fff;
    color: #26346e;
    font-size: 9px;
    font-weight: 800
}

.supporter-action:hover {
    background: #f3f5fa
}

.supporter-action.is-whatsapp {
    border-color: #ccebd8;
    color: #147b45
}

.supporter-action img {
    width: 15px;
    height: 15px;
    filter: brightness(0) saturate(100%) invert(38%) sepia(83%) saturate(600%) hue-rotate(98deg) brightness(88%)
}

.supporter-notes-dialog {
    width: min(92vw, 560px);
    padding: 0;
    border: 0;
    border-radius: 14px;
    box-shadow: 0 28px 80px #111a3e55
}

.supporter-notes-dialog::backdrop {
    background: #0b123a99;
    backdrop-filter: blur(3px)
}

.supporter-notes-form {
    padding: 24px
}

.supporter-dialog-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px
}

.supporter-dialog-heading span {
    color: #d31630;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .15em
}

.supporter-dialog-heading h2 {
    margin: 4px 0 0;
    color: #17234c;
    font-size: 22px;
    text-transform: uppercase
}

.supporter-dialog-heading>button {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 7px;
    background: #f0f2f7;
    color: #26304d;
    font-size: 23px
}

.supporter-notes-form textarea {
    min-height: 155px
}

.supporter-dialog-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px
}

.supporter-filter {
    align-items: stretch
}

@media(max-width:1100px) {

    .supporter-list-header,
    .supporter-row {
        grid-template-columns: minmax(165px, 1.3fr) minmax(110px, .8fr) minmax(130px, 1fr) 80px minmax(175px, 1.1fr) 125px;
        gap: 9px
    }

    .supporter-row {
        padding-inline: 12px
    }

    .supporter-action {
        padding-inline: 7px
    }

    .supporter-row-actions {
        flex-wrap: wrap
    }
}

@media(max-width:800px) {
    .supporter-list {
        background: transparent;
        border: 0;
        box-shadow: none;
        overflow: visible
    }

    .supporter-list-header {
        display: none
    }

    .supporter-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin-bottom: 12px;
        padding: 14px;
        border: 1px solid #e3e6ee;
        border-radius: 11px;
        background: #fff;
        box-shadow: 0 4px 14px #17213d08
    }

    .supporter-person {
        grid-column: 1/-1;
        padding-bottom: 10px;
        border-bottom: 1px solid #edf0f4
    }

    .supporter-person strong {
        white-space: normal
    }

    .supporter-mobile-label {
        display: block;
        margin-bottom: 4px;
        color: #939aab;
        font-size: 8px;
        font-weight: 800;
        text-transform: uppercase
    }

    .supporter-status-form {
        grid-column: 1/-1;
        grid-template-columns: minmax(0, 1fr) auto
    }

    .supporter-status-form .supporter-mobile-label {
        grid-column: 1/-1;
        margin-bottom: -3px
    }

    .supporter-row-actions {
        grid-column: 1/-1
    }

    .supporter-action {
        flex: 1;
        min-height: 38px
    }

    .supporter-filter {
        grid-template-columns: 1fr
    }

    .supporter-filter .secondary-button {
        width: 100%
    }

    .supporter-dialog-heading h2 {
        font-size: 18px
    }

    .supporter-dialog-actions {
        align-items: stretch;
        flex-direction: column-reverse
    }

    .supporter-dialog-actions>* {
        width: 100%
    }
}

/* Miniaturas de Personalize e Figurinhas: proporção quadrada e arte inteira. */
.photo-campaign-admin-summary {
    grid-template-columns: 126px minmax(0, 1fr) auto
}

.photo-campaign-admin-cover {
    width: 126px;
    height: 126px;
    background: #f1f3f6
}

.photo-campaign-admin-cover img,
.photo-campaign-edit-cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center
}

.photo-campaign-edit-cover>div {
    width: 200px;
    height: auto;
    aspect-ratio: 1/1;
    background: #f1f3f6
}

@media(max-width:760px) {
    .photo-campaign-admin-summary {
        grid-template-columns: 82px minmax(0, 1fr)
    }

    .photo-campaign-admin-cover {
        width: 82px;
        height: 82px
    }

    .photo-campaign-edit-cover>div {
        width: 100%;
        max-width: 220px;
        height: auto;
        aspect-ratio: 1/1
    }
}

/* Gestão segura e responsiva de usuários. */
.users-page-intro {
    align-items: center
}

.users-readonly-notice {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 18px;
    padding: 14px 17px;
    border: 1px solid #dfe4ee;
    border-radius: 10px;
    background: #f9fafc;
    color: #626d83;
    font-size: 11px
}

.users-readonly-notice strong {
    flex: none;
    color: #1e2d67;
    font-size: 9px;
    letter-spacing: .08em
}

.users-panel {
    overflow: hidden
}

.users-list-head,
.user-list-row {
    display: grid;
    grid-template-columns: minmax(210px, 1.4fr) minmax(155px, .9fr) minmax(125px, .7fr) minmax(95px, .55fr) auto;
    gap: 16px;
    align-items: center
}

.users-list-head {
    padding: 12px 18px;
    background: #f3f5f9;
    border-bottom: 1px solid #e4e8ef;
    color: #7e8799;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase
}

.user-list-row {
    min-height: 82px;
    padding: 13px 18px;
    border-bottom: 1px solid #eceef3
}

.user-list-row:last-child {
    border-bottom: 0
}

.user-list-person {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px
}

.user-list-person>div,
.user-list-login {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px
}

.user-list-person strong,
.user-list-login strong {
    overflow: hidden;
    color: #17234c;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap
}

.user-list-person small,
.user-list-login small {
    overflow: hidden;
    color: #9299aa;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap
}

.user-mobile-label {
    display: none;
    color: #9299aa;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase
}

.user-role-badge,
.user-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 20px;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .04em;
    white-space: nowrap
}

.user-role-badge {
    background: #edf1fb;
    color: #263a7b
}

.user-role-badge.role-super_admin {
    background: #fff2c9;
    color: #775a00
}

.user-role-badge.role-photographer {
    background: #eaf7ff;
    color: #126386
}

.user-status-badge.active {
    background: #e8f8ef;
    color: #19764f
}

.user-status-badge.blocked {
    background: #fff0f2;
    color: #bd263d
}

.user-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px
}

.user-row-actions form {
    margin: 0
}

.user-icon-action {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid #dfe4ee;
    border-radius: 8px;
    background: #fff;
    color: #253873;
    font: 600 17px/1 "Segoe UI Symbol", "Segoe UI Emoji", sans-serif;
    cursor: pointer;
    transition: background .16s, border-color .16s, transform .16s
}

.user-icon-action:hover,
.user-icon-action:focus-visible {
    border-color: #bbc7e1;
    background: #f0f4fc;
    transform: translateY(-1px)
}

.user-icon-action.password {
    color: #145f87
}

.user-icon-action.status {
    color: #a46800;
    background: #fffaf0
}

.user-icon-action.delete {
    color: #bd243c;
    background: #fff7f8
}

.user-icon-action.delete:hover {
    border-color: #e4b7bf;
    background: #fff0f2
}

.user-icon-action:disabled {
    cursor: not-allowed;
    opacity: .35;
    transform: none
}

.user-actions-readonly {
    color: #9aa1af;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase
}

.user-admin-dialog {
    width: min(92vw, 720px);
    max-height: 90vh;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 30px 90px #10193855
}

.user-admin-dialog::backdrop {
    background: #08102d9c;
    backdrop-filter: blur(3px)
}

.user-dialog-form {
    display: grid;
    gap: 19px;
    margin: 0;
    padding: 26px
}

.user-dialog-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 17px;
    border-bottom: 1px solid #e8ebf1
}

.user-dialog-heading span {
    color: #d31630;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .14em
}

.user-dialog-heading h2 {
    margin: 5px 0 0;
    color: #17234c;
    font-size: 24px
}

.user-dialog-heading p {
    margin: 7px 0 0;
    color: #737d91;
    font-size: 11px
}

.user-dialog-heading>button {
    width: 36px;
    height: 36px;
    flex: none;
    border: 0;
    border-radius: 8px;
    background: #f0f2f7;
    color: #25304f;
    font-size: 24px
}

.user-dialog-form label>small {
    color: #858da0;
    font-size: 9px;
    font-weight: 500
}

.user-dialog-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    padding-top: 4px
}

.user-password-dialog {
    width: min(92vw, 540px)
}

.user-password-dialog .user-dialog-form>label {
    display: grid;
    gap: 7px
}

.user-delete-dialog {
    width: min(92vw, 550px)
}

.user-delete-dialog .user-dialog-form>p {
    margin: 0;
    color: #636d82;
    font-size: 12px;
    line-height: 1.65
}

.user-delete-dialog .user-dialog-form>p strong {
    color: #17234c
}

.user-delete-confirm {
    background: #c91f38;
    color: #fff
}

.user-delete-confirm:hover {
    background: #aa172d
}

@media(max-width:820px) {
    .users-list-head {
        display: none
    }

    .user-list-row {
        grid-template-columns: 1fr 1fr;
        gap: 13px;
        margin: 11px;
        padding: 15px;
        border: 1px solid #e3e7ef;
        border-radius: 11px
    }

    .user-list-person {
        grid-column: 1/-1;
        padding-bottom: 11px;
        border-bottom: 1px solid #eceff4
    }

    .user-list-person strong {
        white-space: normal
    }

    .user-mobile-label {
        display: block;
        margin-bottom: 3px
    }

    .user-row-actions {
        grid-column: 1/-1;
        justify-content: flex-start;
        padding-top: 4px
    }

    .user-icon-action {
        width: 44px;
        height: 44px
    }

    .user-actions-readonly {
        padding: 8px 0
    }

    .users-readonly-notice {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px
    }

    .user-admin-dialog {
        max-height: 94vh
    }

    .user-dialog-form {
        padding: 20px
    }

    .user-dialog-form .field-grid {
        grid-template-columns: 1fr
    }

    .user-dialog-form .field-grid .span-2 {
        grid-column: 1
    }

    .user-dialog-buttons {
        align-items: stretch;
        flex-direction: column-reverse
    }

    .user-dialog-buttons>* {
        width: 100%
    }
}

/* A fonte de campanha aparece somente nas prévias; a interface administrativa mantém Inter. */
.global-typography {
    scroll-margin-top: 90px
}

.global-typography-help {
    margin: -4px 0 22px;
    color: #727c91;
    font-size: 12px;
    line-height: 1.6
}

.global-typography-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px
}

.global-typography-card {
    min-width: 0;
    padding: 19px;
    border: 1px solid #e2e6ee;
    border-radius: 11px;
    background: #fafbfc
}

.global-typography-card label>small {
    display: block;
    min-height: 30px;
    margin: 3px 0 9px;
    color: #858da0;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.45
}

.global-font-preview {
    margin-top: 14px;
    padding: 15px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e8ebf1;
    overflow: hidden
}

.global-font-preview>span {
    display: block;
    margin-bottom: 8px;
    color: #969dad;
    font: 800 8px Inter, ui-sans-serif, system-ui, sans-serif;
    letter-spacing: .12em
}

.global-font-preview p {
    margin: 0;
    color: #172552;
    font-size: clamp(17px, 2vw, 24px);
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
    word-break: normal
}

.global-typography-save {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px
}

.global-typography-card:last-child:nth-child(odd) {
    grid-column: 1/-1
}

@media(max-width:760px) {
    .global-typography-grid {
        grid-template-columns: 1fr
    }

    .global-typography-card:last-child:nth-child(odd) {
        grid-column: auto
    }

    .global-typography-card label>small {
        min-height: 0
    }

    .global-typography-save .admin-button {
        width: 100%
    }
}

/* Hero pronto/slider: cards simples e responsivos, sem biblioteca externa. */
.footer-logo-admin-slot {
    min-width: 0
}

.footer-logo-admin-slot>.check-inline {
    margin: 8px 0 0
}

.hero-slider-global {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto minmax(180px, 240px);
    gap: 22px;
    align-items: end;
    margin-top: 20px;
    padding: 18px;
    border-radius: 10px;
    background: #f4f6fb
}

.hero-slider-global>div {
    display: grid;
    gap: 5px
}

.hero-slider-global small {
    color: #778096;
    font-size: 11px;
    line-height: 1.5
}

.hero-slide-create,
.hero-slide-list {
    margin-top: 20px
}

.hero-slide-card {
    display: grid;
    grid-template-columns: minmax(210px, 300px) 1fr;
    gap: 22px;
    padding: 20px 0;
    border-top: 1px solid #e6e9f0
}

.hero-slide-thumb {
    position: relative;
    align-self: start;
    overflow: hidden;
    border-radius: 9px;
    background: #eef1f6;
    aspect-ratio: 1920/700
}

.hero-slide-thumb picture,
.hero-slide-thumb img {
    width: 100%;
    height: 100%
}

.hero-slide-thumb img {
    object-fit: cover
}

.hero-slide-thumb span {
    position: absolute;
    left: 9px;
    top: 9px;
    padding: 6px 8px;
    border-radius: 999px;
    background: #172a77;
    color: #fff;
    font-size: 9px;
    font-weight: 900
}

.hero-slide-actions {
    grid-column: 2;
    display: flex;
    gap: 9px
}

.hero-slide-actions button {
    width: auto
}

.hero-slide-list>.empty-admin {
    padding: 35px 10px
}

.hero-slide-card [hidden],
.hero-slider-global[hidden] {
    display: none !important
}

@media(max-width:760px) {

    .hero-slider-global,
    .hero-slide-card {
        grid-template-columns: 1fr
    }

    .hero-slide-actions {
        grid-column: 1
    }

    .hero-slide-thumb {
        max-width: 100%
    }

    .hero-slider-global {
        align-items: stretch
    }
}


/* Configurações de identidade e gestão dedicada de Downloads. */
.header-identity-settings {
    margin: 0 0 24px;
    border: 1px solid #e0e5ee;
    border-radius: 9px;
    padding: 18px
}

.header-identity-settings legend {
    padding: 0 8px;
    color: #172552;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em
}

.header-identity-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px
}

.header-identity-radios label {
    position: relative;
    cursor: pointer
}

.header-identity-radios input {
    position: absolute;
    opacity: 0;
    pointer-events: none
}

.header-identity-radios span {
    display: block;
    min-width: 96px;
    padding: 10px 16px;
    border: 1px solid #d7ddea;
    border-radius: 8px;
    background: #fff;
    color: #34405c;
    text-align: center;
    font-size: 12px;
    font-weight: 800
}

.header-identity-radios input:checked+span {
    border-color: #172552;
    background: #172552;
    color: #fff
}

.header-identity-radios input:focus-visible+span {
    outline: 3px solid #f4c430;
    outline-offset: 2px
}

.settings-image-upload {
    align-items: start
}

.settings-image-upload>img {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    background: #eef1f6
}

.settings-image-upload>.header-identity-admin-preview {
    width: min(100%, 420px);
    height: 90px;
    border-radius: 8px;
    object-fit: contain;
    object-position: left;
    background: #172552;
    padding: 10px
}

.settings-image-upload .check-inline {
    display: flex;
    align-items: center;
    gap: 8px
}

.settings-image-upload .check-inline input {
    width: auto
}

.settings-columns-control {
    max-width: 330px;
    margin-top: 20px
}

.settings-columns-control label {
    display: grid;
    gap: 7px;
    font-size: 12px;
    font-weight: 700
}

.settings-columns-control select {
    width: 100%;
    border: 1px solid #dfe2ea;
    border-radius: 7px;
    padding: 11px 12px;
    background: #fff
}

.downloads-admin-create {
    margin-bottom: 20px
}

.download-admin-title {
    display: flex;
    align-items: center;
    gap: 10px
}

.download-admin-title img {
    width: 48px;
    height: 48px;
    border-radius: 7px;
    object-fit: cover
}

.downloads-admin-list tr[hidden] {
    display: none
}

.downloads-admin-list td>.admin-form {
    margin: 0 0 12px;
    background: #fafbfc;
    border-radius: 9px
}

/* Organização compartilhada do módulo Materiais. */
.module-page-intro {
    align-items: center
}

.module-breadcrumb {
    display: block;
    color: #8b93a5 !important
}

.materials-admin-tabs a[aria-current="page"] {
    background: #1f2d6b;
    color: #fff
}

.quiet-button {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #dfe3eb;
    border-radius: 7px;
    background: #fff;
    color: #657088;
    font-size: 9px;
    font-weight: 800
}

.admin-editor-panel {
    margin-bottom: 20px;
    scroll-margin-top: 90px
}

.section-list-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin: 24px 0 14px
}

.section-list-heading span {
    color: #d31630;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .14em
}

.section-list-heading h2 {
    margin: 5px 0 3px;
    color: #172552;
    font-size: 22px
}

.section-list-heading p {
    margin: 0;
    color: #7b8498;
    font-size: 12px
}

.downloads-admin-tabs {
    display: flex;
    gap: 6px;
    width: fit-content;
    margin-bottom: 20px;
    padding: 5px;
    border: 1px solid #e2e6ee;
    border-radius: 9px;
    background: #fff
}

.downloads-admin-tabs button {
    min-height: 40px;
    padding: 0 18px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #687188;
    font-size: 10px;
    font-weight: 900
}

.downloads-admin-tabs button span {
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 10px;
    background: #eef1f6
}

.downloads-admin-tabs button.is-active {
    background: #1f2d6b;
    color: #fff
}

.downloads-admin-tabs button.is-active span {
    background: #ffffff24
}

.downloads-admin-list {
    display: grid;
    gap: 12px
}

.download-admin-card {
    padding: 0;
    overflow: hidden
}

.download-admin-summary {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 14px
}

.download-admin-cover {
    width: 112px;
    height: 88px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 8px;
    background: linear-gradient(145deg, #172a77, #d3112a);
    color: #fff;
    font-size: 9px;
    font-weight: 900
}

.download-admin-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.download-admin-copy {
    min-width: 0
}

.download-admin-copy h2 {
    margin: 6px 0 4px;
    color: #172552;
    font-size: 18px
}

.download-admin-copy p,
.download-admin-copy small {
    display: block;
    margin: 0;
    color: #7c8599;
    font-size: 10px;
    overflow-wrap: anywhere
}

.download-admin-copy small {
    margin-top: 6px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase
}

.download-admin-actions {
    display: flex;
    align-items: center;
    gap: 7px
}

.download-admin-actions form {
    margin: 0
}

.download-admin-actions .secondary-button,
.download-admin-actions .danger-button {
    min-height: 36px;
    padding: 0 12px;
    font-size: 9px
}

.download-admin-edit {
    border-top: 1px solid #e6e9f0;
    background: #fafbfc
}

.download-admin-filters {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(160px, .6fr) minmax(240px, 1.2fr);
    gap: 12px;
    margin-bottom: 14px;
    padding: 14px;
    border: 1px solid #e3e7ee;
    border-radius: 10px;
    background: #fff
}

.download-admin-filters label {
    display: grid;
    gap: 6px;
    color: #626c83;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase
}

.download-admin-filters input,
.download-admin-filters select {
    width: 100%;
    min-height: 40px;
    border: 1px solid #dfe3eb;
    border-radius: 7px;
    padding: 0 11px;
    background: #fff;
    color: #27324f
}

@media(max-width:760px) {
    .materials-admin-tabs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch
    }

    .materials-admin-tabs a {
        flex: 0 0 auto;
        white-space: nowrap
    }

    .download-admin-summary {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 12px;
        padding: 12px
    }

    .download-admin-cover {
        width: 82px;
        height: 72px
    }

    .download-admin-actions {
        grid-column: 1/-1;
        display: grid;
        grid-template-columns: 1fr auto
    }

    .download-admin-actions .secondary-button {
        width: 100%
    }

    .download-admin-filters {
        grid-template-columns: 1fr
    }

    .downloads-admin-tabs {
        width: 100%
    }

    .downloads-admin-tabs button {
        flex: 1
    }
}


/* Gerenciador seguro de credenciais para remoção de fundo. */
.integration-security-note {
    margin: 0 0 18px;
    padding: 14px;
    border-radius: 8px;
    background: #eef6ff;
    color: #53627c;
    font-size: 11px;
    line-height: 1.55
}

.background-removal-settings {
    padding: 18px;
    border: 1px solid #e3e7ef;
    border-radius: 10px;
    background: #fafbfc
}

.integration-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 26px 0 14px
}

.integration-list-heading span {
    color: #d31630;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .14em
}

.integration-list-heading h3 {
    margin: 4px 0 0;
    color: #172552
}

.integration-credential-list {
    display: grid;
    gap: 12px
}

.integration-credential-card {
    overflow: hidden;
    border: 1px solid #e3e7ef;
    border-radius: 10px;
    background: #fff
}

.integration-credential-main {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(320px, 1.3fr) auto;
    align-items: center;
    gap: 18px;
    padding: 17px
}

.integration-credential-main h3 {
    margin: 7px 0 3px;
    color: #172552;
    font-size: 17px
}

.integration-credential-main code {
    color: #7e879b;
    font-size: 10px
}

.integration-credential-main dl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin: 0
}

.integration-credential-main dl div {
    min-width: 0;
    padding: 9px;
    border-radius: 7px;
    background: #f4f6fa
}

.integration-credential-main dt {
    color: #9299a9;
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase
}

.integration-credential-main dd {
    margin: 4px 0 0;
    color: #26345f;
    font-size: 10px;
    font-weight: 800;
    overflow-wrap: anywhere
}

.integration-credential-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end
}

.integration-credential-actions form {
    margin: 0
}

.integration-credential-actions button {
    min-height: 35px;
    padding: 0 10px;
    font-size: 8px
}

.integration-key-editor {
    padding: 18px;
    border-top: 1px solid #e7eaf0;
    background: #fafbfc
}

.integration-key-error {
    margin: 0;
    padding: 0 17px 14px;
    color: #b3263d;
    font-size: 10px
}

.legacy-integration {
    margin-top: 20px;
    border-top: 1px solid #e5e8ef
}

.legacy-integration summary {
    padding: 17px 0;
    color: #69738a;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer
}

@media(max-width:1000px) {
    .integration-credential-main {
        grid-template-columns: 1fr
    }

    .integration-credential-actions {
        justify-content: flex-start
    }
}

@media(max-width:620px) {
    .integration-list-heading {
        align-items: stretch;
        flex-direction: column
    }

    .integration-list-heading .admin-button {
        width: 100%
    }

    .integration-credential-main dl {
        grid-template-columns: 1fr 1fr
    }

    .integration-credential-actions {
        display: grid;
        grid-template-columns: 1fr
    }

    .integration-credential-actions button {
        width: 100%
    }
}

/* Configuração e prévia da localização exibida no rodapé. */
.committee-map-settings .panel-heading p {
    margin: 5px 0 0;
    color: #6c7485;
    font-size: 12px
}

.committee-map-preview {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 18px;
    align-items: center;
    padding: 16px;
    border: 1px solid #dfe4ec;
    border-radius: 12px;
    background: #f7f9fc
}

.committee-map-preview iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16/7;
    border: 0;
    border-radius: 9px;
    background: #e9edf3
}

.committee-map-preview strong {
    display: block;
    color: #172552;
    margin-bottom: 5px
}

.committee-map-preview p {
    margin: 0;
    color: #6c7485;
    font-size: 12px;
    line-height: 1.55
}

@media(max-width:800px) {
    .committee-map-preview {
        grid-template-columns: 1fr
    }

    .committee-map-preview iframe {
        aspect-ratio: 16/10
    }
}