:root {
    --admin-primary: #2f76b9;
    --admin-primary-dark: #225f96;
    --admin-dark: #17293d;
    --admin-ink: #1e2a37;
    --admin-muted: #687789;
    --admin-line: #dce4eb;
    --admin-soft: #f3f6f9;
    --admin-white: #fff;
    --admin-danger: #b42318;
    --admin-success: #137a45;
    --admin-warning: #a15c00;
    --sidebar-width: 270px;
}

* { box-sizing: border-box; }

html { min-height: 100%; }

body {
    min-height: 100%;
    margin: 0;
    color: var(--admin-ink);
    background: var(--admin-soft);
    font-family: "Inter", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

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

.icon {
    display: inline-block;
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
    vertical-align: middle;
}

.login-page {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 22px;
    background:
        radial-gradient(circle at 10% 10%, rgba(47, 118, 185, .15), transparent 35%),
        linear-gradient(145deg, #edf4f9, #fff 52%, #e5eef5);
}

.login-card {
    width: min(100%, 440px);
    padding: 38px;
    border: 1px solid var(--admin-line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(23, 41, 61, .16);
}

.login-mark,
.admin-brand-mark {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(145deg, var(--admin-primary), var(--admin-dark));
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -.04em;
}

.login-mark { margin: 0 auto 18px; }

.login-eyebrow {
    margin: 0 0 6px;
    color: var(--admin-primary);
    text-align: center;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.login-card h1 {
    margin: 0 0 26px;
    color: var(--admin-dark);
    text-align: center;
    font-size: 27px;
}

.login-card label,
.field label,
.custom-category-card label {
    display: block;
    margin-bottom: 7px;
    color: var(--admin-dark);
    font-size: 13px;
    font-weight: 700;
}

.login-card label:not(:first-of-type) { margin-top: 16px; }

input,
select,
textarea {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #bcc9d3;
    border-radius: 8px;
    color: var(--admin-ink);
    background: #fff;
}

textarea {
    min-height: 110px;
    resize: vertical;
    line-height: 1.55;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--admin-primary);
    outline: 3px solid rgba(47, 118, 185, .14);
}

.field small,
.custom-category-card small {
    display: block;
    margin-top: 6px;
    color: var(--admin-muted);
    font-size: 11px;
    line-height: 1.45;
}

.login-site-link {
    display: block;
    margin-top: 20px;
    color: var(--admin-muted);
    text-align: center;
    font-size: 12px;
    text-decoration: none;
}

.admin-shell {
    display: grid;
    min-height: 100vh;
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
}

.admin-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 60;
    display: flex;
    width: var(--sidebar-width);
    flex-direction: column;
    overflow-y: auto;
    color: #dce8f1;
    background: var(--admin-dark);
    box-shadow: 7px 0 28px rgba(9, 22, 34, .15);
}

.admin-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 88px;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.admin-brand-mark {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .09);
}

.admin-brand strong,
.admin-brand span { display: block; }
.admin-brand strong { color: #fff; font-size: 14px; }
.admin-brand span { margin-top: 3px; color: #9db7ca; font-size: 10px; text-transform: uppercase; letter-spacing: .07em; }

.admin-nav {
    display: grid;
    gap: 4px;
    padding: 18px 12px;
}

.admin-nav a,
.admin-sidebar-bottom a {
    display: flex;
    min-height: 46px;
    align-items: center;
    gap: 12px;
    padding: 10px 13px;
    border-radius: 8px;
    color: #c9d9e5;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

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

.admin-nav a.active {
    box-shadow: inset 3px 0 0 #71acd6;
}

.admin-sidebar-bottom {
    display: grid;
    margin-top: auto;
    padding: 14px 12px 22px;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.admin-sidebar-bottom a { min-height: 40px; font-size: 12px; }

.admin-main {
    grid-column: 2;
    width: min(calc(100% - 52px), 1500px);
    margin: 0 auto;
    padding: 38px 0 70px;
}

.admin-mobile-header { display: none; }

.admin-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 27px;
}

.admin-page-heading p,
.card-heading p {
    margin: 0 0 5px;
    color: var(--admin-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.admin-page-heading h1,
.card-heading h2 {
    margin: 0;
    color: var(--admin-dark);
    line-height: 1.15;
}

.admin-page-heading h1 { font-size: clamp(27px, 3vw, 40px); }
.admin-page-heading > div > span { display: block; max-width: 750px; margin-top: 8px; color: var(--admin-muted); font-size: 13px; line-height: 1.45; }

.admin-card {
    margin-bottom: 26px;
    padding: 27px;
    border: 1px solid var(--admin-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 35px rgba(23, 41, 61, .055);
}

.narrow-card { max-width: 680px; }

.card-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
    padding-bottom: 17px;
    border-bottom: 1px solid var(--admin-line);
}

.card-heading h2 { font-size: 23px; }
.card-heading > span,
.card-heading > a { max-width: 480px; color: var(--admin-muted); font-size: 12px; text-align: right; }

.button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 15px;
    border: 1px solid #b7c4ce;
    border-radius: 8px;
    color: var(--admin-dark);
    background: #fff;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}

.button:hover { border-color: var(--admin-dark); background: var(--admin-soft); }
.button.primary { border-color: var(--admin-primary); color: #fff; background: var(--admin-primary); }
.button.primary:hover { background: var(--admin-primary-dark); }
.button.danger { border-color: #edcbc8; color: var(--admin-danger); background: #fff8f7; }
.button.small { min-height: 34px; padding: 6px 10px; font-size: 11px; }
.button.large { min-height: 50px; padding: 12px 21px; font-size: 13px; }
.button.full { width: 100%; }
.login-card .button { margin-top: 20px; }

.alert {
    margin-bottom: 22px;
    padding: 13px 16px;
    border: 1px solid;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 600;
}

.alert.success { border-color: #b8dfca; color: #0d6237; background: #effaf4; }
.alert.error { border-color: #efc3bf; color: #902018; background: #fff3f2; }
.alert.warning { border-color: #efd4a7; color: #865000; background: #fff8e8; }

.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 26px;
}

.stats-grid article {
    padding: 22px;
    border: 1px solid var(--admin-line);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 8px 25px rgba(23, 41, 61, .05);
}

.stats-grid span,
.stats-grid strong,
.stats-grid small { display: block; }
.stats-grid span { color: var(--admin-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.stats-grid strong { margin: 8px 0 2px; color: var(--admin-dark); font-size: 36px; }
.stats-grid small { color: var(--admin-muted); font-size: 11px; }

.dashboard-views-counter {
    width: 120px;
    height: 32px;
    margin: 10px 0 4px;
    overflow: hidden;
}

.dashboard-views-counter iframe {
    display: block;
    width: 120px;
    height: 32px;
    border: 0;
}

.compact-news-list { display: grid; }
.compact-news-list a {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--admin-line);
    color: inherit;
    text-decoration: none;
}
.compact-news-list a:last-child { border-bottom: 0; }
.compact-news-list img { width: 70px; height: 52px; border-radius: 6px; object-fit: cover; }
.compact-news-list strong,
.compact-news-list small { display: block; }
.compact-news-list strong { margin-bottom: 4px; color: var(--admin-dark); font-size: 13px; }
.compact-news-list small { color: var(--admin-muted); font-size: 10px; }

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

.field.wide,
.form-actions.wide { grid-column: 1 / -1; }
.field + .field { margin-top: 18px; }
.form-grid .field + .field { margin-top: 0; }

.editor-form { padding: 32px; }
.editor-step {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 35px 0 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--admin-line);
}
.editor-step:first-child { margin-top: 0; }
.editor-step > span {
    display: grid;
    width: 37px;
    height: 37px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--admin-primary);
    font-weight: 800;
}
.editor-step h2,
.editor-step p { margin: 0; }
.editor-step h2 { color: var(--admin-dark); font-size: 19px; }
.editor-step p { margin-top: 3px; color: var(--admin-muted); font-size: 11px; }

.current-image { display: flex; align-items: center; gap: 12px; }
.current-image img { width: 120px; height: 75px; border-radius: 7px; object-fit: cover; }
.current-image span { color: var(--admin-muted); font-size: 11px; }

.editor-ad-preview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px auto;
    gap: 15px;
    align-items: center;
    margin: 24px 0;
    padding: 14px;
    border: 1px dashed #aebdca;
    border-radius: 10px;
    background: #f8fafc;
}
.editor-ad-preview > div span,
.editor-ad-preview > div strong { display: block; }
.editor-ad-preview > div span { margin-bottom: 3px; color: var(--admin-primary); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.editor-ad-preview > div strong { color: var(--admin-dark); font-size: 12px; }
.editor-ad-preview img { width: 190px; max-height: 80px; object-fit: contain; }
.editor-ad-preview a { display: inline-flex; align-items: center; gap: 6px; color: var(--admin-primary); font-size: 11px; font-weight: 750; text-decoration: none; }

.existing-gallery { display: flex; flex-wrap: wrap; gap: 12px; }
.existing-gallery label { width: 130px; padding: 7px; border: 1px solid var(--admin-line); border-radius: 8px; }
.existing-gallery img { display: block; width: 100%; height: 82px; margin-bottom: 7px; border-radius: 5px; object-fit: cover; }
.existing-gallery label span { display: flex; align-items: center; gap: 5px; font-size: 11px; }
.existing-gallery input { width: auto; min-height: 0; }

.editor-finish {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 32px;
    padding: 21px;
    border-radius: 11px;
    background: var(--admin-soft);
}

.switch-row { display: inline-flex !important; align-items: center; gap: 10px; margin: 0 !important; cursor: pointer; }
.switch-row input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; }
.switch {
    position: relative;
    display: inline-block;
    width: 46px;
    height: 25px;
    flex: 0 0 auto;
    border-radius: 20px;
    background: #aeb9c3;
    transition: background .18s ease;
}
.switch::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px #0002;
    content: "";
    transition: transform .18s ease;
}
.switch-row input:checked + .switch { background: var(--admin-success); }
.switch-row input:checked + .switch::after { transform: translateX(21px); }

.panel-empty { padding: 30px; color: var(--admin-muted); text-align: center; }
.panel-empty p { margin-top: 0; }

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

.admin-news-card,
.rss-moderation-card,
.ads-admin-grid article {
    overflow: hidden;
    border: 1px solid var(--admin-line);
    border-radius: 11px;
    background: #fff;
}
.admin-news-card.is-hidden,
.rss-moderation-card.is-hidden { background: #f6f7f8; opacity: .78; }
.admin-news-card > img,
.rss-moderation-card > img,
.ads-admin-grid article > img { display: block; width: 100%; height: 155px; object-fit: cover; background: #eef2f5; }
.admin-news-card > div,
.rss-moderation-card > div,
.ads-admin-grid article > div { padding: 15px; }
.admin-news-card small,
.rss-moderation-card small,
.ads-admin-grid small { display: block; margin: 7px 0; color: var(--admin-muted); font-size: 10px; line-height: 1.4; }
.admin-news-card h2,
.rss-moderation-card h3,
.ads-admin-grid h3 { margin: 0 0 15px; color: var(--admin-dark); font-size: 14px; line-height: 1.4; }

.status-badge {
    display: inline-flex;
    padding: 4px 7px;
    border-radius: 20px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}
.status-badge.published { color: #0a6236; background: #dcf5e7; }
.status-badge.hidden { color: #6d4b06; background: #fff0c8; }

.card-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.card-actions form { margin: 0; }

.rss-section .card-heading { margin-bottom: 17px; }
.automatic-jump-nav { display: flex; flex-wrap: wrap; gap: 7px; margin: -8px 0 18px; padding: 9px 11px; position: sticky; top: 8px; z-index: 8; background: rgba(238, 243, 247, .95); border: 1px solid var(--admin-line); border-radius: 10px; backdrop-filter: blur(8px); }
.automatic-jump-nav a { padding: 6px 9px; border-radius: 999px; background: #fff; border: 1px solid #cedae3; color: #27445f; font-size: 11px; font-weight: 800; text-decoration: none; }
.rss-section { scroll-margin-top: 78px; }

.category-list { display: grid; gap: 9px; }
.category-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 190px auto;
    gap: 14px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}
.category-row strong,
.category-row small { display: block; }
.category-row strong { color: var(--admin-dark); font-size: 13px; }
.category-row small { margin-top: 3px; color: var(--admin-muted); font-size: 10px; }
.category-row select { min-height: 38px; }

.custom-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.custom-category-card {
    padding: 17px;
    border: 1px solid var(--admin-line);
    border-radius: 11px;
    background: #fff;
}
.custom-category-card.empty-slot { background: #f9fbfc; }
.custom-category-card form { display: grid; gap: 12px; }
.custom-category-card form + form { margin-top: 10px; }
.custom-category-card label { margin: 0; }
.custom-category-card label input,
.custom-category-card label select { margin-top: 6px; }
.slot-label {
    margin-bottom: 14px;
    color: var(--admin-primary);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ads-admin-grid article > img { height: 180px; object-fit: contain; padding: 10px; }

.widget-admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}
.widget-admin-card {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 15px;
    padding: 20px;
    border: 1px solid var(--admin-line);
    border-radius: 11px;
}
.widget-admin-card.unavailable { opacity: .62; background: var(--admin-soft); }
.widget-icon { display: grid; width: 50px; height: 50px; place-items: center; border-radius: 11px; color: var(--admin-primary); background: #eaf3fa; }
.widget-icon .icon { width: 25px; height: 25px; }
.widget-admin-card h2 { margin: 8px 0 5px; color: var(--admin-dark); font-size: 17px; }
.widget-admin-card p { margin: 0 0 13px; color: var(--admin-muted); font-size: 12px; line-height: 1.45; }

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

.master-shortcuts a {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 4px 12px;
    align-items: center;
    padding: 18px;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
}

.master-shortcuts a:hover { border-color: var(--admin-primary); background: #f7fbfe; }
.master-shortcuts .icon { grid-row: 1 / 3; width: 31px; height: 31px; color: var(--admin-primary); }
.master-shortcuts strong { color: var(--admin-dark); font-size: 13px; }
.master-shortcuts span { color: var(--admin-muted); font-size: 10px; }

.master-state { font-size: 24px !important; }

.master-table { display: grid; gap: 10px; }
.master-table article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px;
    border: 1px solid var(--admin-line);
    border-radius: 9px;
}
.master-table article > div:first-of-type { min-width: 0; }
.master-table article > img { width: 76px; height: 58px; flex: 0 0 auto; border-radius: 6px; object-fit: cover; }
.master-table strong,
.master-table small,
.master-table em { display: block; }
.master-table strong { margin-top: 6px; color: var(--admin-dark); font-size: 13px; }
.master-table small { max-width: 800px; margin-top: 4px; overflow: hidden; color: var(--admin-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.master-table em { margin-top: 5px; color: var(--admin-primary); font-size: 10px; font-style: normal; }

.two-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.danger-zone { border-color: #efc8c4; }

@media (max-width: 1200px) {
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-news-grid,
    .rss-moderation-grid,
    .ads-admin-grid,
    .custom-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
    .admin-shell { display: block; min-height: auto; }
    .admin-mobile-header {
        position: sticky;
        top: 0;
        z-index: 80;
        display: flex;
        min-height: 58px;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 9px 14px;
        color: #fff;
        background: var(--admin-dark);
    }
    .admin-mobile-header strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
    .admin-menu-toggle { min-height: 38px; padding: 6px 10px; border: 1px solid #ffffff55; border-radius: 7px; color: #fff; background: transparent; font-size: 12px; font-weight: 700; }
    .admin-sidebar { display: none; width: min(86vw, 300px); }
    .admin-sidebar.is-open { display: flex; }
    .admin-main { width: min(calc(100% - 24px), 1500px); padding: 24px 0 50px; }
    .admin-page-heading { align-items: flex-start; flex-direction: column; }
    .editor-form,
    .admin-card { padding: 19px; border-radius: 11px; }
    .form-grid { grid-template-columns: 1fr; }
    .field.wide,
    .form-actions.wide { grid-column: auto; }
    .editor-ad-preview { grid-template-columns: 1fr; }
    .editor-ad-preview img { width: 100%; max-height: 110px; }
    .editor-finish { align-items: stretch; flex-direction: column; }
    .category-row { grid-template-columns: 1fr; }
    .master-shortcuts { grid-template-columns: 1fr; }
    .two-cards { grid-template-columns: 1fr; }
    .master-table article { align-items: flex-start; flex-wrap: wrap; }
}

@media (max-width: 620px) {
    .login-card { padding: 28px 22px; }
    .stats-grid,
    .admin-news-grid,
    .rss-moderation-grid,
    .ads-admin-grid,
    .custom-category-grid,
    .widget-admin-grid { grid-template-columns: 1fr; }
    .card-heading { align-items: flex-start; flex-direction: column; }
    .card-heading > span,
    .card-heading > a { text-align: left; }
    .compact-news-list a { grid-template-columns: 60px minmax(0, 1fr); }
    .compact-news-list a > .icon { display: none; }
    .current-image { align-items: flex-start; flex-direction: column; }
}

/* Editor de tres bloques con imágenes y enlaces en el texto. */
.pp-rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid #ccd5df;border-radius:9px 9px 0 0;background:#f6f8fb}
.pp-rich-toolbar button,.pp-rich-file{font:inherit;font-size:13px;display:inline-flex;align-items:center;gap:4px;border:1px solid #c4ced9;border-radius:6px;background:#fff;padding:7px 11px;color:#182534;cursor:pointer}
.pp-rich-file input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.pp-rich-editor{min-height:210px;padding:17px;border:1px solid #ccd5df;border-top:0;border-radius:0 0 9px 9px;background:#fff;line-height:1.7;overflow-wrap:anywhere}
.pp-rich-editor:focus{outline:2px solid #2680c2;outline-offset:-2px}.pp-rich-editor p{margin:0 0 1em}.pp-rich-editor figure{text-align:center;margin:18px auto}.pp-rich-editor img{max-width:100%;height:auto;max-height:480px}.pp-rich-message{color:#aa2537;margin-top:4px}.pp-rich-toolbar button:hover,.pp-rich-file:hover{background:#eef5fc}

/* Selector compacto de RSS externos. No cambia los controles ni los valores del formulario. */
.external-medium-tools{display:grid;grid-template-columns:minmax(0,430px) 1fr;align-items:center;gap:7px 14px;margin:0 0 14px}
.external-medium-tools label{grid-column:1/-1;color:var(--admin-dark);font-size:12px;font-weight:700}
.external-medium-tools input{min-height:40px;padding:8px 11px;font-size:13px}
.external-medium-tools small{color:var(--admin-muted);font-size:11px}
.external-medium-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:8px}
.external-medium-card{display:flex;align-items:center;gap:9px;min-width:0;min-height:62px;padding:8px 9px;border:1px solid var(--admin-line);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,background-color .15s}
.external-medium-card:hover,.external-medium-card:focus-within{border-color:var(--admin-primary)}
.external-medium-card.is-selected{border-color:#9bc6e7;background:#f2f8fd}
.external-medium-card[hidden],.external-medium-empty[hidden]{display:none}
.external-medium-logo{position:relative;display:grid;flex:0 0 36px;width:36px;height:36px;place-items:center;border:1px solid #d9e5ee;border-radius:7px;color:var(--admin-primary);background:#f5f9fc}
.external-medium-logo .icon{width:20px;height:20px}
.external-medium-logo img{position:absolute;inset:2px;width:30px;height:30px;object-fit:contain;border-radius:4px;background:#fff}
.external-medium-copy{flex:1;min-width:0}
.external-medium-copy strong,.external-medium-copy small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.external-medium-copy strong{color:var(--admin-dark);font-size:12px;line-height:1.35}
.external-medium-copy small{margin-top:3px;color:var(--admin-muted);font-size:10px}
.external-medium-card .external-medium-check{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0;border-radius:4px;accent-color:var(--admin-primary);cursor:pointer}
.external-medium-empty{margin:16px 0 0;color:var(--admin-muted);font-size:13px}
@media(max-width:620px){.external-medium-tools{grid-template-columns:1fr}.external-medium-tools small{grid-column:1}.external-medium-grid{grid-template-columns:1fr}}

/* Espera visible al guardar RSS externos mientras el servidor consulta las fuentes. */
body.external-saving{overflow:hidden}
.external-save-overlay{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;background:rgba(11,35,72,.68)}
.external-save-overlay[hidden]{display:none}
.external-save-dialog{width:min(100%,360px);padding:24px 22px;border-radius:16px;background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.28);text-align:center}
.external-save-brand{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:16px;color:var(--admin-primary-dark);font-size:11px;font-weight:800}
.external-save-brand img{width:38px;height:38px;object-fit:contain}
.external-save-spinner{display:block;width:34px;height:34px;margin:0 auto 14px;border:4px solid #dbe5f0;border-top-color:var(--admin-primary);border-radius:50%;animation:external-save-spin .8s linear infinite}
.external-save-dialog strong{display:block;color:var(--admin-dark);font-size:16px;line-height:1.35}
.external-save-dialog p{margin:8px 0 0;color:var(--admin-muted);font-size:12px;line-height:1.5}
@keyframes external-save-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.external-save-spinner{animation-duration:2s}}

/* Logotipo ANN del acceso al panel de contenidos. */
.login-ann-mark { display: flex; justify-content: center; align-items: center; width: 78px; height: 62px; margin: 0 auto 14px; }
.login-ann-mark img { display: block; width: 72px; height: 55px; object-fit: contain; }
