.admin-portal {
    min-height: 100vh;
}

.admin-hero {
    min-height: 270px;
}

.admin-hero .hero-content {
    min-height: 270px;
}

.admin-hero .guild-title h1 {
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    line-height: 1;
}

.admin-notice {
    min-height: 190px;
    justify-content: center;
}

.admin-back {
    display: inline-block;
    margin-top: 14px;
    color: var(--navy-700);
    font-weight: 700;
    text-decoration: none;
}

.admin-back:hover {
    color: var(--gold-700);
    text-decoration: underline;
}

.admin-content {
    padding: 30px;
    background:
        linear-gradient(180deg, rgba(255,253,248,.99), rgba(246,241,231,.99));
}

.admin-heading {
    max-width: 720px;
    margin-bottom: 24px;
}

.admin-heading > span,
.admin-card span {
    color: var(--gold-700);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.admin-heading h2 {
    margin: 4px 0 8px;
    color: var(--navy-900);
    font-family: "Marcellus", Georgia, serif;
    font-size: 2rem;
    font-weight: 400;
}

.admin-heading p,
.admin-card p {
    color: var(--text-soft);
    line-height: 1.55;
}

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

.admin-card {
    display: grid;
    grid-template-columns: 86px minmax(0,1fr) auto;
    align-items: center;
    gap: 16px;
    min-height: 150px;
    padding: 18px;
    color: inherit;
    text-decoration: none;
    border: 1px solid var(--border-gold);
    border-radius: var(--radius-medium);
    background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(248,242,229,.92));
    box-shadow: var(--shadow-soft);
}

.admin-card:hover:not(.admin-card-disabled) {
    transform: translateY(-2px);
    border-color: rgba(173,125,49,.7);
}

.admin-card img {
    width: 82px;
    height: 82px;
    object-fit: contain;
}

.admin-card h3 {
    margin: 3px 0 7px;
    color: var(--navy-900);
    font-family: "Marcellus", Georgia, serif;
    font-size: 1.15rem;
    font-weight: 400;
}

.admin-card p {
    margin: 0;
    font-size: .78rem;
}

.admin-card > b {
    color: var(--gold-700);
    font-size: 1.4rem;
}

.admin-card-disabled {
    opacity: .62;
}

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

@media (max-width: 720px) {
    .admin-content { padding: 20px 14px; }
    .admin-grid { grid-template-columns: 1fr; }
    .admin-card { grid-template-columns: 72px minmax(0,1fr); }
    .admin-card > b { display: none; }
    .admin-card img { width: 68px; height: 68px; }
}

/* Personajes — respaldo administrativo local */
.admin-tools {
    margin-top: 34px;
    padding-top: 26px;
    border-top: 1px solid var(--border-gold);
}
.compact-heading { margin-bottom: 16px; }
.backup-panel {
    display: grid;
    grid-template-columns: minmax(220px,1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 20px;
    border: 1px solid var(--border-gold);
    border-radius: var(--radius-medium);
    background: linear-gradient(180deg,rgba(255,255,255,.92),rgba(248,242,229,.94));
    box-shadow: var(--shadow-soft);
}
.backup-info { display: grid; gap: 5px; }
.backup-info strong { color: var(--navy-900); font-family: "Marcellus",Georgia,serif; font-size: 1.15rem; font-weight: 400; }
.backup-info span { color: var(--text-soft); font-size: .8rem; }
.backup-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.admin-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid rgba(28,65,101,.38);
    border-radius: 8px;
    background: #fff;
    color: var(--navy-900);
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
}
.admin-action:hover { background: #edf2f7; }
.file-action input { display: none; }
.danger-action { border-color: rgba(136,43,47,.42); color: #862f34; }
.backup-status { grid-column: 1 / -1; min-height: 18px; color: var(--text-soft); font-size: .78rem; }
.backup-status.ok { color: #2f6d48; }
.backup-status.error { color: #8a2d31; }

@media (max-width: 760px) {
    .backup-panel { grid-template-columns: 1fr; }
    .backup-actions { justify-content: stretch; display: grid; grid-template-columns: 1fr; }
    .admin-action { width: 100%; }
}

/* =========================================================
   PORTAL — COMUNICACIONES Y RANGO
   ========================================================= */
.admin-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-control-panel,.admin-news-manager{padding:20px;border:1px solid var(--border-gold);border-radius:var(--radius-medium);background:linear-gradient(180deg,rgba(255,255,255,.93),rgba(248,242,229,.95));box-shadow:var(--shadow-soft)}.admin-news-manager{margin-top:18px}.control-heading>span{color:var(--gold-700);font-size:.62rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.control-heading h3{margin:4px 0 9px;color:var(--navy-900);font-family:"Marcellus",Georgia,serif;font-size:1.25rem;font-weight:400}.control-heading p{margin:0 0 16px;color:var(--text-soft);font-size:.8rem;line-height:1.55}.admin-field{display:grid;gap:6px}.admin-field>span{color:var(--navy-800);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.admin-field input,.admin-field textarea,.admin-field select{width:100%;padding:10px 11px;border:1px solid rgba(173,125,49,.42);border-radius:8px;background:#fffdf8;color:var(--navy-950);font:inherit;font-size:.82rem;outline:none}.admin-field textarea{resize:vertical;line-height:1.5}.admin-field input:focus,.admin-field textarea:focus,.admin-field select:focus{border-color:var(--gold-700);box-shadow:0 0 0 3px rgba(173,125,49,.10)}.control-footer{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:12px}.control-footer small{color:var(--text-soft);font-size:.7rem}.primary-action{border-color:var(--gold-600);background:linear-gradient(180deg,var(--navy-700),var(--navy-900));color:#fff}.primary-action:hover{background:var(--navy-700)}.platinum-character{display:grid;gap:4px;margin:8px 0 14px;padding:12px;border-left:3px solid var(--gold-600);background:rgba(255,255,255,.55)}.platinum-character strong{color:var(--navy-900);font-family:"Marcellus",Georgia,serif;font-weight:400}.platinum-character span{color:var(--text-soft);font-size:.75rem}.platinum-toggle{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;color:var(--navy-900)}.platinum-toggle input{margin-top:3px;accent-color:var(--navy-800)}.platinum-toggle span{display:grid;gap:3px}.platinum-toggle b{font-size:.8rem}.platinum-toggle small{color:var(--text-soft);font-size:.7rem;line-height:1.4}.news-editor-grid{display:grid;grid-template-columns:190px 190px 1fr auto;gap:12px;align-items:end}.news-text-field{grid-column:3}.publish-check{display:flex;gap:8px;align-items:center;padding:9px 0;color:var(--navy-800);font-size:.74rem;font-weight:700}.publish-check input{accent-color:var(--navy-800)}.news-form-actions{display:flex;gap:8px;justify-content:flex-end;grid-column:1/-1}.admin-news-list{display:grid;gap:9px;margin-top:16px}.admin-news-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border-top:1px solid rgba(173,125,49,.25);background:rgba(255,255,255,.42)}.admin-news-meta{display:grid;gap:3px}.admin-news-meta b{color:var(--gold-700);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}.admin-news-meta span{color:var(--text-soft);font-size:.66rem}.admin-news-copy{color:var(--navy-900);font-size:.78rem;line-height:1.45}.admin-news-copy em{display:inline-block;margin-left:6px;color:#8a2d31;font-size:.62rem;font-style:normal;font-weight:800;text-transform:uppercase}.admin-news-actions{display:flex;gap:6px}.admin-mini{padding:6px 9px;border:1px solid rgba(28,65,101,.28);border-radius:6px;background:#fff;color:var(--navy-900);font:inherit;font-size:.66rem;font-weight:700;cursor:pointer}.admin-mini.danger{color:#8a2d31;border-color:rgba(138,45,49,.3)}
@media(max-width:900px){.admin-control-grid{grid-template-columns:1fr}.news-editor-grid{grid-template-columns:1fr 1fr}.news-text-field{grid-column:1/-1}.publish-check{grid-column:1/-1}.admin-news-row{grid-template-columns:95px minmax(0,1fr)}.admin-news-actions{grid-column:1/-1;justify-content:flex-end}}@media(max-width:600px){.news-editor-grid{grid-template-columns:1fr}.news-text-field,.publish-check{grid-column:auto}.control-footer{align-items:stretch;flex-direction:column}.admin-news-row{grid-template-columns:1fr}.admin-news-meta{grid-template-columns:auto 1fr;align-items:center}}


/* =========================================================
   PROTECCIÓN LOCAL DEL PANEL ADMINISTRATIVO
   ========================================================= */

body.admin-locked {
    overflow: hidden;
}

.admin-access-gate {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    padding: 22px;

    background:
        linear-gradient(
            180deg,
            rgba(5, 20, 36, .83),
            rgba(5, 20, 36, .91)
        ),
        url("../../assets/backgrounds/hero_background.webp")
        center / cover no-repeat;

    backdrop-filter: blur(5px);
}

.admin-access-gate[hidden] {
    display: none;
}

.admin-gate-card {
    width: min(100%, 430px);
    padding: 30px;
    text-align: center;

    border:
        1px solid
        rgba(214, 171, 78, .64);

    border-radius: 16px;

    background:
        linear-gradient(
            180deg,
            rgba(255, 252, 245, .985),
            rgba(242, 232, 212, .985)
        );

    box-shadow:
        0 30px 80px
        rgba(0, 0, 0, .34);
}

.admin-gate-logo {
    width: 108px;
    height: 108px;
    object-fit: contain;
    margin-bottom: 8px;
}

.admin-gate-kicker {
    display: block;
    margin-bottom: 4px;
    color: var(--gold-700);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.admin-gate-card h1 {
    margin: 0;
    color: var(--navy-950);
    font-family: "Marcellus", Georgia, serif;
    font-size: 2rem;
    font-weight: 400;
}

.admin-gate-card > p {
    margin: 10px auto 20px;
    color: var(--text-soft);
    font-size: .8rem;
    line-height: 1.55;
}

.admin-gate-form {
    display: grid;
    gap: 12px;
    text-align: left;
}

.admin-gate-form label {
    display: grid;
    gap: 6px;
}

.admin-gate-form label > span {
    color: var(--navy-800);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.admin-gate-form input {
    width: 100%;
    min-height: 44px;
    padding: 9px 11px;

    border:
        1px solid
        rgba(173, 125, 49, .42);

    border-radius: 8px;
    background: #fffdf8;
    color: var(--navy-950);
    font: inherit;
}

.admin-gate-status {
    min-height: 20px;
    margin-top: 11px;
    color: #8a2d31;
    font-size: .74rem;
}

.admin-gate-links {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 12px;
}

.admin-gate-links a {
    color: var(--navy-700);
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
}

.admin-gate-links a:hover {
    color: var(--gold-700);
    text-decoration: underline;
}

@media (max-width: 520px) {
    .admin-gate-card {
        padding: 24px 18px;
    }

    .admin-gate-logo {
        width: 92px;
        height: 92px;
    }

    .admin-gate-card h1 {
        font-size: 1.65rem;
    }
}

/* Cuentas online */
.admin-user-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid rgba(180,139,63,.35);border-radius:12px;background:rgba(255,252,244,.75)}
.admin-user-copy{display:flex;flex-direction:column;gap:3px}.admin-user-copy strong{font-family:"Marcellus",serif;color:#0d3157}.admin-user-copy span,.admin-user-character{font-size:.88rem;color:#675d50}.admin-user-character b{color:#9b6a16}.admin-user-row.is-disabled{opacity:.58}
@media(max-width:760px){.admin-user-row{grid-template-columns:1fr}.admin-user-row .admin-news-actions{justify-content:flex-start}}

/* =========================================================
   RC9 — ADMINISTRACIÓN DE EXPEDIENTES DE PERSONAJE
   ========================================================= */
.character-admin-panel{padding:20px;border:1px solid var(--border-gold);border-radius:var(--radius-medium);background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,242,229,.96));box-shadow:var(--shadow-soft)}
.character-admin-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end}
.character-admin-workspace{display:grid;gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(173,125,49,.28)}
.character-admin-workspace[hidden]{display:none}
.character-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.character-admin-summary>div{display:grid;gap:4px;padding:10px 12px;border:1px solid rgba(28,65,101,.15);border-radius:8px;background:rgba(255,255,255,.6)}
.character-admin-summary small{color:var(--text-soft);font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.character-admin-summary strong{overflow:hidden;color:var(--navy-900);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}
.character-json-field textarea{min-height:420px;font-family:"Consolas","SFMono-Regular",Menlo,monospace!important;font-size:.74rem!important;line-height:1.5!important;tab-size:2;white-space:pre}
.character-admin-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.character-admin-actions .primary-action{margin-left:auto}
@media(max-width:900px){.character-admin-summary{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.character-admin-toolbar{grid-template-columns:1fr}.character-admin-summary{grid-template-columns:1fr}.character-admin-actions{display:grid;grid-template-columns:1fr}.character-admin-actions .primary-action{margin-left:0}.character-json-field textarea{min-height:360px}}
.character-admin-actions .visual-edit-action{border-color:rgba(173,125,49,.55);background:#fff9ec;color:#795018;font-weight:800}
.character-admin-actions .visual-edit-action:hover{background:#f7ecd0}

/* =========================================================
   RC12.5 — ESCRITORIO ADMINISTRATIVO
   Reorganización visual sin cambiar la lógica de los módulos.
   ========================================================= */
.admin-content{max-width:1440px;margin:0 auto;padding:28px 32px 46px}.admin-dashboard-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.admin-dashboard-intro>div:first-child>span,.admin-page-heading>span{color:var(--gold-700);font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.admin-dashboard-intro h2,.admin-page-heading h2{margin:4px 0 6px;color:var(--navy-900);font-family:"Marcellus",Georgia,serif;font-size:clamp(1.65rem,3vw,2.35rem);font-weight:400}.admin-dashboard-intro p,.admin-page-heading p{margin:0;color:var(--text-soft);font-size:.84rem;line-height:1.55}.admin-session-chip{min-width:190px;padding:10px 14px;border:1px solid var(--border-gold);border-radius:10px;background:rgba(255,255,255,.65);text-align:right}.admin-session-chip small{display:block;color:var(--gold-700);font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.admin-session-chip strong{color:var(--navy-900);font-size:.78rem}.admin-tabs{position:sticky;top:0;z-index:30;display:flex;gap:5px;margin:0 -4px 26px;padding:7px;border:1px solid rgba(173,125,49,.3);border-radius:12px;background:rgba(250,247,240,.96);box-shadow:0 8px 24px rgba(17,43,68,.07);backdrop-filter:blur(10px);overflow-x:auto}.admin-tab{flex:1;min-width:max-content;padding:10px 15px;border:0;border-radius:8px;background:transparent;color:var(--navy-700);font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}.admin-tab:hover{background:rgba(28,65,101,.06)}.admin-tab.is-active{background:linear-gradient(180deg,var(--navy-700),var(--navy-900));color:#fff;box-shadow:0 4px 12px rgba(17,43,68,.18)}.admin-panel-page[hidden]{display:none!important}.admin-panel-page{animation:adminPanelIn .18s ease}.admin-page-heading{max-width:780px;margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid rgba(173,125,49,.28)}@keyframes adminPanelIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}.admin-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.overview-card{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start;padding:18px;border:1px solid rgba(173,125,49,.3);border-radius:12px;background:rgba(255,255,255,.62)}.overview-card>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--navy-900);color:#fff;font-family:"Marcellus",Georgia,serif}.overview-card small{display:block;color:var(--gold-700);font-size:.58rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.overview-card strong{display:block;margin:3px 0;color:var(--navy-900);font-family:"Marcellus",Georgia,serif;font-size:1rem;font-weight:400}.overview-card p{margin:0;color:var(--text-soft);font-size:.72rem;line-height:1.45}.admin-quick-links{margin-top:0}.admin-section-clean{margin-top:0!important;padding-top:0!important;border-top:0!important}.admin-section-clean>.admin-heading{display:none}.admin-page-body>.admin-section-clean{width:100%}.admin-empty-state{display:flex;align-items:center;justify-content:center;gap:24px;min-height:280px;padding:34px;border:1px dashed rgba(173,125,49,.55);border-radius:14px;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(246,239,224,.7));text-align:left}.admin-empty-state img{width:100px;height:100px;object-fit:contain;opacity:.88}.admin-empty-state span{color:var(--gold-700);font-size:.65rem;font-weight:800;letter-spacing:.12em}.admin-empty-state h3{margin:4px 0 8px;color:var(--navy-900);font-family:"Marcellus",Georgia,serif;font-size:1.5rem;font-weight:400}.admin-empty-state p{max-width:560px;margin:0;color:var(--text-soft);line-height:1.55}.admin-danger-zone{padding:18px!important;border:1px solid rgba(138,45,49,.18)!important;border-radius:12px;background:rgba(255,255,255,.42)}
@media(max-width:900px){.admin-overview-grid{grid-template-columns:1fr}.admin-dashboard-intro{align-items:flex-start;flex-direction:column}.admin-session-chip{text-align:left}.admin-tabs{justify-content:flex-start}.admin-tab{flex:0 0 auto}}
@media(max-width:600px){.admin-content{padding:20px 14px 36px}.admin-empty-state{align-items:center;flex-direction:column;text-align:center}.admin-hero{min-height:230px}.admin-hero .hero-content{min-height:230px}}


/* RC13 — Equipos del Gremio */
.team-catalog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;margin-bottom:16px;border:1px solid rgba(34,62,91,.16);border-radius:14px;background:rgba(255,255,255,.45)}
.team-catalog-toolbar strong{font-size:1.45rem;color:#173a5e}.team-catalog-toolbar span,.team-catalog-toolbar small{color:#6c655b}
.guild-teams-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px}.guild-team-card{padding:17px;border:1px solid rgba(34,62,91,.16);border-radius:16px;background:rgba(255,255,255,.58);box-shadow:0 8px 24px rgba(25,43,62,.06)}
.guild-team-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.guild-team-card h3{margin:4px 0 0;color:#183a5b;font-family:Georgia,serif}.guild-team-type{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#8b6d35}.guild-team-status{font-size:.76rem;padding:4px 8px;border-radius:999px;background:#e9f0e8;color:#3f6446;white-space:nowrap}.guild-team-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.guild-team-meta span{font-size:.78rem;padding:6px 8px;border-radius:9px;background:rgba(31,58,86,.06);color:#625d55}.guild-team-meta b{color:#203f5e}
