:root{
    /* ── Perforation system — shared with pages.css ──────────────── */
    --perf-dot-color:#c4d2df;
    --perf-dot-size:1.4px;
    --perf-dot-step:10px;
    --perf-notch-r:14px;
    --perf-notch-bg:var(--admin-bg,#f4f7fb);
    --perf-notch-display:none;
    --perf-notch-offset:52px;
    --perf-h:3px;
    --perf-margin:0px;
    --perf-wrap-v:6px;

    --admin-bg:#f4f7fb;
    --admin-surface:#ffffff;
    --admin-surface-soft:#eef4fb;
    --admin-surface-strong:#10263d;
    --admin-text:#17283c;
    --admin-muted:#6a7f97;
    --admin-placeholder:#b4bfcc;
    --admin-line:#d7e2ef;
    --admin-brand:#1f5f9b;
    --admin-brand-soft:#dce9f7;
    --admin-danger:#b94335;
    --admin-success:#2d6b40;
    --admin-warning:#8a5b12;
    --admin-coral:#eb5b55;
    --admin-sky:#8cd1e8;
    --admin-steel:#8ea0b2;
    --admin-radius:6px;
    --admin-radius-lg:9px;
    --admin-shadow:0 16px 40px rgba(40,76,117,.08);
    --admin-space-1:4px;
    --admin-space-2:8px;
    --admin-space-3:12px;
    --admin-space-4:16px;
    --admin-space-5:24px;
    --admin-space-6:32px;
    --admin-space-7:40px;
    --admin-sidebar-width:280px;
    --admin-content-max:1240px;
    --admin-topbar-height:84px;
    --admin-input-height:41px;
    --admin-dropdown-height:36px;
    --admin-dropdown-radius:3px;
    --admin-font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --admin-font-weight-regular:400;
    --admin-font-weight-medium:500;
    --admin-font-weight-semibold:600;
    --admin-line-height-body:1.42;
    --admin-line-height-tight:1.12;
    --person-avatar-bg:var(--admin-brand-soft);
    --person-avatar-color:var(--admin-brand);
    --person-avatar-border:rgba(13,22,33,.06);
    --person-avatar-font-weight:600;
    --table-font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    --table-font-size:16px;
    --table-line-height:22px;
    --table-header-weight:600;
    --table-body-weight:400;
    --table-cell-padding-x:12px;
    --table-cell-padding-y:10px;
    --table-cell-padding-y-compact:7px;
    --table-line-border-width:.75px;
    --table-header-border-width:2px;
    --table-line-border-color:#435469;
    --table-header-bg:#123f68;
    --table-header-color:#fff;
    --table-row-bg-a:#eef5fa;
    --table-row-bg-b:#f7fafd;
    --table-grid-color:#fff;
    --table-semantic-i-bg:#dff2e6;
    --table-semantic-iia-bg:#fff2bf;
    --table-semantic-iib-bg:#ffe1c2;
    --table-semantic-iii-bg:#f9c7c4;
    --text-accent-block-border-width:3px;
    --text-accent-block-padding-left:10px;
    --text-accent-block-margin-y:14px;
    --text-accent-block-color:var(--admin-muted);
    --text-accent-block-blue:var(--admin-brand);
    --text-accent-block-coral:var(--admin-coral);
    --text-accent-block-sky:var(--admin-sky);
    --text-accent-block-steel:var(--admin-steel);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    background:var(--admin-bg);
    color:var(--admin-text);
    font-family:var(--admin-font-family);
    font-weight:var(--admin-font-weight-regular);
    line-height:var(--admin-line-height-body);
}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4,h5,h6,strong,b,th{
    font-weight:var(--admin-font-weight-semibold);
}
[style*="font-weight:650"],
[style*="font-weight: 650"],
[style*="font-weight:700"],
[style*="font-weight: 700"],
[style*="font-weight:800"],
[style*="font-weight: 800"],
[style*="font-weight:900"],
[style*="font-weight: 900"],
[style*="font-weight:bold"],
[style*="font-weight: bold"]{
    font-weight:var(--admin-font-weight-semibold) !important;
}
.rko-text-accent-block{
    margin:var(--text-accent-block-margin-y) 0;
    padding-left:var(--text-accent-block-padding-left);
    border-left:var(--text-accent-block-border-width) solid var(--text-accent-block-blue);
    color:var(--text-accent-block-color);
    font-weight:400;
}
.rko-text-accent-block strong,
.rko-text-accent-block b{font-weight:inherit}
.rko-text-accent-block--blue{border-left-color:var(--text-accent-block-blue)}
.rko-text-accent-block--coral{border-left-color:var(--text-accent-block-coral)}
.rko-text-accent-block--sky{border-left-color:var(--text-accent-block-sky)}
.rko-text-accent-block--steel{border-left-color:var(--text-accent-block-steel)}
.text-accent{color:var(--admin-brand);font-weight:500}
.text-accent--coral{color:var(--admin-brand)}
.text-accent--sky{color:#1c597d}
.text-accent--steel{color:var(--admin-muted)}

.admin-shell{min-height:100vh;background:var(--admin-bg)}
.admin-sidebar{
    position:fixed;left:0;top:0;bottom:0;width:var(--admin-sidebar-width);
    background:var(--admin-surface-strong);color:#eaf1f8;padding:16px 16px 14px;
    display:grid;gap:10px;align-content:start;overflow:auto;z-index:30;
}
.admin-brand{display:grid;gap:4px}
.admin-brand h1{margin:0;font-size:22px;line-height:1.05}
.admin-brand p{margin:0;color:#afc2d6;line-height:1.5}
.admin-sidebar__section{display:grid;gap:3px}
.admin-sidebar__label{font-size:10px;line-height:1.1;letter-spacing:.08em;text-transform:uppercase;color:#93a8bd}

/* ── Hub section (Вебинары) — visually distinct operational area ──── */
.admin-sidebar__section--hub{
    border-left:2px solid rgba(235,91,85,.45);  /* --admin-coral at low opacity */
    padding-left:8px;
    margin-left:-8px;
}
.admin-sidebar__section--hub .admin-sidebar__label{
    color:rgba(235,91,85,.85);   /* coral label — signals it's a hub, not just a category */
    letter-spacing:.06em;
}

.admin-nav{display:grid;gap:2px}
.admin-nav__link{
    display:flex;align-items:center;gap:8px;
    min-height:28px;
    padding:4px 8px;border-radius:var(--admin-radius);color:#d7e4f0;font-weight:600;font-size:12.5px;line-height:1.16;
    text-decoration:none;
    transition:.18s ease;
}
/* Badge stays right-aligned regardless of icon */
.admin-nav__link .badge{margin-left:auto}
.admin-nav__link:hover,.admin-nav__link.is-active{background:rgba(255,255,255,.08);color:#fff}
.admin-nav__link.is-disabled{opacity:.45;cursor:not-allowed}
/* Small icon slot — 14×14, inherits link colour */
.admin-nav__icon{
    display:flex;align-items:center;justify-content:center;
    width:14px;height:14px;flex-shrink:0;opacity:.65;
}
.admin-nav__icon svg{width:14px;height:14px}
.admin-nav__link:hover .admin-nav__icon,
.admin-nav__link.is-active .admin-nav__icon{opacity:1}
.admin-nav__text{flex:1;min-width:0}
.admin-sidebar__footer{display:grid;gap:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;line-height:1.3}
.admin-sidebar__catalog-link{font-weight:600;color:#fff}
.admin-sidebar__footer span{display:none}

/* --admin-um-clearance: fixed user-menu pill occupies ≈220px + right-offset (24px) = 244px.
   Clearance applied only to topbar — content panels below don't need it. */
.admin-main{margin-left:var(--admin-sidebar-width);min-height:100vh;padding:var(--admin-space-5) var(--admin-space-6) var(--admin-space-6) var(--admin-space-6);display:grid;align-content:start;gap:var(--admin-space-5)}
.admin-topbar{
    min-height:var(--admin-topbar-height);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--admin-space-4);flex-wrap:wrap;
    width:100%;
    max-width:var(--admin-content-max);
    padding-right:244px;
}
.admin-topbar__main{display:grid;gap:var(--admin-space-2)}
.admin-breadcrumbs{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--admin-muted)}
.admin-breadcrumbs span::after{content:"/";margin-left:10px;color:#a1b3c7}
.admin-breadcrumbs span:last-child::after{display:none}
.admin-topbar__title{margin:0;font-size:36px;line-height:1.02}
.admin-title-with-icon{
    display:inline-flex;
    align-items:center;
    gap:10px;
}
.admin-title-with-icon__icon{
    width:26px;
    height:26px;
    color:var(--admin-brand);
    flex:0 0 auto;
}
.admin-topbar__description{margin:0;color:var(--admin-muted);max-width:760px;line-height:1.5}
.admin-topbar__controls{display:flex;align-items:center;justify-content:flex-end;gap:var(--admin-space-3);flex-wrap:wrap}
.admin-search{display:flex;align-items:center;gap:10px;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:999px;padding:0 14px;min-height:var(--admin-input-height);box-shadow:var(--admin-shadow)}
.admin-search input{border:0;outline:0;background:transparent;min-width:220px;color:var(--admin-text)}
.admin-user-menu{position:fixed;top:var(--admin-space-4);right:var(--admin-space-5);z-index:40;display:flex;align-items:center;gap:12px;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:999px;padding:8px 10px 8px 8px;box-shadow:var(--admin-shadow);cursor:grab;user-select:none}
.admin-user-menu.is-dragging{cursor:grabbing;box-shadow:0 8px 32px rgba(0,0,0,.18);transition:none}
.admin-user-menu .btn,.admin-user-menu form{cursor:default}
.admin-user-menu .btn{border-radius:999px}
.avatar{width:40px;height:40px;border-radius:999px;background:var(--person-avatar-bg);display:grid;place-items:center;color:var(--person-avatar-color);font-weight:var(--person-avatar-font-weight)}
.admin-user-menu__meta{display:grid;gap:2px}
.admin-user-menu__meta strong{font-size:14px}
.admin-user-menu__meta span{font-size:12px;color:var(--admin-muted)}

.admin-content{display:grid;gap:var(--admin-space-5);min-width:0}
.panel{background:var(--admin-surface);border-radius:var(--admin-radius-lg);box-shadow:var(--admin-shadow);padding:var(--admin-space-5);display:grid;gap:18px;min-width:0;max-width:100%}
.panel--compact{padding:16px 18px;gap:12px}
.panel--filters-fixed{align-content:start}
/* Dotted notch divider — separates filter toolbar from table content */
.panel-divider{
    border:none;
    border-top:1px dashed var(--admin-line);
    margin:0;
    width:100%;
}
.panel--registry{width:100%;align-content:start}
.panel--registry .table-wrap{width:100%}
.panel:has(> .table-wrap),
.panel:has(> .admin-table-wrap),
.panel:has(table.table),
.panel:has(table.admin-table){
    width:100%;
    align-content:start;
}
.empty-state{
    display:grid;
    gap:12px;
    justify-items:start;
    align-content:start;
    min-height:160px;
    padding:8px 0;
}
.empty-state strong{
    font-size:20px;
    line-height:1.2;
}
.empty-state p{
    margin:0;
    color:var(--admin-muted);
    line-height:1.5;
    max-width:560px;
}
.empty-state--compact{
    min-height:0;
    padding:var(--admin-space-3) 0;
}
.admin-tabs{
    display:flex;
    gap:18px;
    align-items:flex-end;
    border-bottom:1px solid var(--admin-line);
    padding-bottom:2px;
}
.admin-tabs__tab{
    appearance:none;
    border:0;
    background:transparent;
    color:var(--admin-muted);
    padding:0 0 14px;
    font-weight:600;
    font-size:16px;
    line-height:1.2;
    border-bottom:3px solid transparent;
    cursor:pointer;
}
.admin-tabs__tab.is-active{
    color:var(--admin-text);
    border-bottom-color:var(--admin-brand);
}
.admin-tab-panel{display:none;gap:18px}
.admin-tab-panel.is-active{display:grid}
.panel__title{margin:0;font-size:26px;line-height:1.1}
.event-validation-summary{
    border-color:#f2b8b5;
    background:#fff7f7;
    color:#7f1d1d;
    padding:16px 18px;
    gap:8px;
}
.event-validation-summary__title{
    font-weight:700;
    color:#991b1b;
}
.event-validation-summary__list{
    margin:0;
    padding-left:20px;
}
.event-validation-summary__list li+li{margin-top:4px}
.event-display-mode-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}
.event-display-mode-card{
    display:block;
    min-width:0;
}
.event-display-mode-card input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.event-display-mode-card__body{
    display:flex;
    min-height:88px;
    flex-direction:column;
    gap:6px;
    padding:14px;
    border:1px solid var(--admin-line);
    border-radius:10px;
    background:#fff;
    cursor:pointer;
    transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.event-display-mode-card input:checked + .event-display-mode-card__body{
    border-color:var(--admin-brand);
    background:#f4f8fd;
    box-shadow:0 0 0 2px rgba(28,79,122,.08);
}
.event-display-mode-card input:focus-visible + .event-display-mode-card__body{
    outline:2px solid var(--admin-brand);
    outline-offset:2px;
}
.event-display-mode-card__title{
    color:var(--admin-text);
    font-weight:700;
}
.event-display-mode-card__text{
    color:var(--admin-muted);
    font-size:12px;
    line-height:1.35;
}
@media (max-width:1100px){
    .event-display-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
    .event-display-mode-grid{grid-template-columns:1fr}
}
.panel__subtext{margin:0;color:var(--admin-muted)}
.panel__head{display:flex;justify-content:space-between;gap:var(--admin-space-3);align-items:flex-start;flex-wrap:wrap}
.panel--nested{
    box-shadow:none;
    border:1px solid var(--admin-line);
    background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--admin-space-4)}
.stat{padding:18px;border-radius:var(--admin-radius-lg);background:var(--admin-surface-soft);display:grid;gap:8px;text-decoration:none;color:inherit;transition:background .15s,box-shadow .15s,transform .12s}
a.stat:hover{background:var(--admin-brand-soft);box-shadow:0 4px 16px rgba(31,95,155,.10);transform:translateY(-2px)}
a.stat:hover .stat__value{color:var(--admin-brand)}
.stat__label{color:var(--admin-muted);font-size:14px}
.stat__value{font-size:34px;font-weight:600;line-height:1;transition:color .15s}
.stat__hint{font-size:13px;color:var(--admin-muted)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--admin-space-4)}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--admin-space-4)}
.split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--admin-space-5);align-items:start}
.form-grid{display:grid;gap:var(--admin-space-5)}
.form-grid .grid-2,.form-grid .grid-3{align-items:end}
.admin-access-form{grid-template-columns:minmax(0,1fr) 360px}
.admin-access-form .grid-2{align-items:start}
.admin-access-form .field__hint{min-height:42px}
.admin-access-form__notice{
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius-md);
    background:var(--admin-surface-soft);
    color:var(--admin-muted);
    padding:12px 14px;
}

/* ── Panel section heading (inside panel, above subgroups) ─────── */
.panel-section-heading{
    font-size:15px;font-weight:700;color:var(--admin-text);
    margin-bottom:2px;
}
.panel-section-subhead{
    font-size:12px;color:var(--admin-muted);margin-bottom:0;
}

/* ── Form subgroup: named group of fields within a panel ────────── */
.form-subgroup{display:grid;gap:var(--admin-space-4)}
.form-subgroup+.form-subgroup{
    padding-top:var(--admin-space-4);
    border-top:1px solid var(--admin-line);
}
.form-subgroup__title{
    font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
    color:var(--admin-muted);
    margin-bottom:0;
}
.actions,.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.checkbox-row{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--admin-muted);
    font-size:14px;
    font-weight:var(--admin-font-weight-medium);
}
.checkbox-row input[type="checkbox"]{
    width:18px;
    height:18px;
    accent-color:var(--admin-brand);
}
.meta-list{
    display:grid;
    gap:0;
    border-top:1px solid var(--admin-line);
}
.meta-list div{
    display:flex;
    justify-content:space-between;
    gap:var(--admin-space-4);
    padding:10px 0;
    border-bottom:1px solid var(--admin-line);
}
.meta-list span{
    color:var(--admin-muted);
}
.meta-list strong{
    text-align:right;
}
/* Filters: align-items:flex-start prevents the container from shifting
   vertically when field labels of different heights appear side by side */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}
/* ── Inbox strip — compact one-liner (новые заявки) ─────────────── */
/* One flex row: colored bar | red badge | title · summary | action  */
.inbox-strip{
    display:flex;
    align-items:center;
    gap:10px;
    height:38px;
    padding:0 16px 0 0;
    background:var(--admin-surface);
    border-radius:var(--admin-radius-lg);
    border:1px solid var(--admin-line);
    box-shadow:0 1px 3px rgba(30,50,80,.05);
    text-decoration:none;
    color:inherit;
    overflow:hidden;
    transition:background .12s,border-color .12s;
}
.inbox-strip:hover{background:var(--admin-brand-soft);border-color:var(--admin-brand)}
/* Left accent bar */
.inbox-strip__bar{width:3px;align-self:stretch;background:var(--admin-coral);flex-shrink:0}
/* Red unread count badge */
.inbox-strip__badge{
    display:inline-flex;align-items:center;justify-content:center;
    min-width:17px;height:17px;padding:0 5px;
    border-radius:999px;
    background:var(--admin-coral);color:#fff;
    font-size:10px;font-weight:600;
    flex-shrink:0;
}
/* "Новые заявки" label */
.inbox-strip__title{font-size:13px;font-weight:600;color:var(--admin-text);flex-shrink:0}
/* Mid-dot separator */
.inbox-strip__sep{color:var(--admin-line);font-size:15px;line-height:1;flex-shrink:0;user-select:none}
/* Preview text — truncates */
.inbox-strip__summary{
    font-size:12px;color:var(--admin-muted);
    flex:1;min-width:0;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    display:flex;align-items:center;gap:6px;
}
/* Inline type chip inside summary */
.inbox-strip__type{
    font-size:10px;padding:1px 6px;border-radius:999px;
    background:var(--admin-surface-soft);color:var(--admin-muted);
    border:1px solid var(--admin-line);flex-shrink:0;
}
/* "+N ещё" pill */
.inbox-strip__more{font-size:11px;color:var(--admin-brand);flex-shrink:0}
/* Right action link */
.inbox-strip__action{
    margin-left:auto;font-size:12px;font-weight:600;color:var(--admin-brand);flex-shrink:0;
}
.inbox-strip:hover .inbox-strip__action{text-decoration:underline}

/* ── System stats panel — operational / compact ──────────────────── */
/* .panel--stats overrides make the stats section feel like a        */
/* utility tool-bar, not a marketing dashboard.                      */
.panel--stats{padding:14px 18px;gap:10px}
.panel--stats__head{display:flex;align-items:center;gap:8px;padding-bottom:2px;border-bottom:1px solid var(--admin-line)}
.panel--stats__title{
    font-size:11px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;
    color:var(--admin-muted);
}
/* Compact stats flex row */
.panel--stats .stats{
    display:flex;flex-wrap:wrap;gap:2px;
}
.panel--stats .stat{
    padding:7px 12px;
    border-radius:var(--admin-radius);
    gap:1px;
    flex:1;
    min-width:72px;
    max-width:none;
}
.panel--stats .stat__label{font-size:11px;font-weight:500}
.panel--stats .stat__value{font-size:20px;font-weight:600}
.panel--stats .stat__hint{font-size:10px;line-height:1.4}
/* No lift animation on compact stats — too busy */
.panel--stats a.stat:hover{transform:none}

/* Legacy classes kept for backward compat (not used on dashboard now) */
.panel--inbox{border-left:3px solid var(--admin-brand);background:var(--admin-surface-soft)}
.inbox-head{display:flex;align-items:center;gap:var(--admin-space-3);margin-bottom:var(--admin-space-1)}
.inbox-head__dot{width:7px;height:7px;border-radius:50%;background:var(--admin-brand);flex-shrink:0}
.inbox-head__title{margin:0;font-size:15px;font-weight:600;color:var(--admin-text);display:flex;align-items:center;gap:var(--admin-space-2)}
.inbox-head__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--admin-brand);color:#fff;font-size:11px;font-weight:600}
.inbox-head__all{margin-left:auto;font-size:12px;font-weight:600;color:var(--admin-brand);text-decoration:none}
.inbox-list{display:flex;flex-direction:column;gap:2px}
.inbox-item{display:flex;align-items:center;gap:var(--admin-space-3);padding:var(--admin-space-2) var(--admin-space-3);border-radius:var(--admin-radius);text-decoration:none;color:inherit;transition:background .12s}
.inbox-item:hover{background:var(--admin-brand-soft)}
.inbox-item__avatar{width:32px;height:32px;border-radius:50%;background:var(--admin-brand-soft);color:var(--admin-brand);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.inbox-item__body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.inbox-item__name{font-size:13px;font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-item__meta{display:flex;align-items:center;gap:var(--admin-space-2)}
.inbox-item__time{font-size:11px;color:var(--admin-muted)}
.inbox-item__arrow{font-size:14px;color:var(--admin-muted);flex-shrink:0;transition:color .12s,transform .12s}
.inbox-item:hover .inbox-item__arrow{color:var(--admin-brand);transform:translateX(2px)}
/* ── Заголовки: иерархия внутри панели ──────────────────────────── */
/* panel__title (26px) — заголовок уровня панели: «Требуют внимания», «Быстрые действия» */
/* panel__section-title — подзаголовок внутри секции: «Без PDF», «Без обложки» */
.panel__section-title{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--admin-muted)}
.stack{display:grid;gap:var(--admin-space-3);align-content:start}
/* ── Quick Actions — 2 колонки × 4 строки, заполняет панель ─────── */
/* Quick actions panel — fill behaviour */
.panel--qa{display:flex;flex-direction:column}
.panel--qa .panel__title{flex-shrink:0}
.qa-grid{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:var(--admin-space-2)}
.qa-tile{position:relative;display:flex;align-items:center;gap:var(--admin-space-4);padding:var(--admin-space-4) var(--admin-space-5);border-radius:var(--admin-radius);border:1px solid var(--admin-line);background:var(--admin-surface);text-decoration:none;color:inherit;transition:border-color .15s,background .15s}
.qa-tile:hover{border-color:var(--admin-brand);background:var(--admin-surface-soft)}
.qa-tile__icon{width:48px;height:48px;border-radius:var(--admin-radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.qa-tile__icon svg{width:22px;height:22px}
.qa-tile--blue .qa-tile__icon{background:var(--admin-brand-soft);color:var(--admin-brand)}
.qa-tile--neutral .qa-tile__icon{background:var(--admin-surface-soft);color:var(--admin-muted)}
.qa-tile__body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.qa-tile__label{font-size:14px;font-weight:600;color:var(--admin-text);line-height:1.2}
.qa-tile__desc{font-size:12px;color:var(--admin-muted);line-height:1.4}
.qa-tile__plus{position:absolute;top:var(--admin-space-3);right:var(--admin-space-3);width:28px;height:28px;border-radius:50%;background:var(--admin-brand-soft);color:var(--admin-brand);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:300;line-height:1;pointer-events:none;transition:background .15s,color .15s}
.qa-tile:hover .qa-tile__plus{background:var(--admin-brand);color:#fff}
/* Одиночный тайл создания записи на страницах списков */
.pub-create-tile{
    display:inline-flex;
    width:auto;
    max-width:300px;
    margin-bottom:var(--admin-space-4);
}
/* Attach PDF dialog */
.pdf-dialog{border:none;border-radius:var(--admin-radius-lg);box-shadow:0 24px 60px rgba(10,20,40,.2);padding:0;max-width:520px;width:calc(100% - 32px);margin:auto}
.pdf-dialog::backdrop{background:rgba(10,20,40,.45);backdrop-filter:blur(3px)}
.pdf-dialog__wrap{display:grid}
.pdf-dialog__head{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--admin-space-5);border-bottom:1px solid var(--admin-line)}
.pdf-dialog__title{margin:0;font-size:17px;font-weight:600;color:var(--admin-text)}
.pdf-dialog__pub{margin:4px 0 0;font-size:13px;color:var(--admin-muted);line-height:1.4}
.pdf-dialog__close{background:none;border:none;cursor:pointer;font-size:18px;color:var(--admin-muted);padding:2px 6px;line-height:1;border-radius:var(--admin-radius);transition:color .12s,background .12s}
.pdf-dialog__close:hover{color:var(--admin-text);background:var(--admin-surface-soft)}
.pdf-dialog__legacy{display:flex;align-items:baseline;gap:var(--admin-space-2);padding:var(--admin-space-2) var(--admin-space-5);background:var(--admin-surface-soft);border-bottom:1px solid var(--admin-line)}
.pdf-dialog__legacy-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--admin-muted);flex-shrink:0}
.pdf-dialog__legacy code{font-size:11px;color:var(--admin-brand);word-break:break-all}
.pdf-dialog__tabs{display:flex;padding:0 var(--admin-space-5);border-bottom:1px solid var(--admin-line);gap:0}
.pdf-dialog__tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--admin-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;transition:color .12s,border-color .12s}
.pdf-dialog__tab.is-active{color:var(--admin-brand);border-bottom-color:var(--admin-brand)}
.pdf-dialog__tab:hover:not(.is-active){color:var(--admin-text)}
.pdf-dialog__pane{padding:var(--admin-space-5)}
.btn--xs{padding:5px 10px;font-size:12px}
.toolbar--dense{gap:8px}
.toolbar--dense .input{min-height:40px;padding:10px 12px}
.toolbar--dense .select{min-height:var(--admin-dropdown-height);padding:8px 34px 8px 12px}
.toolbar--dense .btn{padding:9px 14px}
.toolbar--secondary{
    padding-top:8px;
    border-top:1px solid var(--admin-line);
    margin-top:8px;
}
.toolbar .select{
    width:auto;
    flex:0 0 auto;
}
.toolbar__select{min-width:0}
.toolbar__select--series{width:180px}
.toolbar__select--format{width:160px}
.toolbar__select--status{width:170px}
.toolbar__select--preset{width:180px}
.toolbar__select--registration{width:170px}
.toolbar__select--certificate{width:160px}
.toolbar__select--published{width:170px}
.toolbar__select--visible-site{width:190px}
.toolbar__select--visible-home{width:200px}
.toolbar .input[type="search"]{
    flex:0 1 320px;
}
/* Растягиваемое поле поиска — заполняет свободное место */
.input--grow{
    flex:1 1 240px;
    min-width:200px;
    max-width:none;
}
/* Разделитель между фильтрами и действиями */
.filters__divider{
    flex:1;
}
/* Группа кнопок Применить / Сбросить */
.filters__actions{
    display:flex;
    gap:8px;
    margin-left:auto;
    flex-shrink:0;
}
/* Чип-пресет */
.btn--chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:6px 12px;
    font-size:13px;
    font-weight:500;
    border:1px solid var(--admin-line);
    border-radius:999px;
    background:#fff;
    color:var(--admin-text);
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
    transition:background .15s,border-color .15s,color .15s;
}
.btn--chip:hover{
    background:var(--admin-surface-soft);
    border-color:var(--admin-brand);
    color:var(--admin-brand);
}
.btn--chip.is-active{
    background:var(--admin-brand-soft);
    border-color:var(--admin-brand);
    color:var(--admin-brand);
    font-weight:600;
}
.btn-group--dense{gap:8px}
.toolbar--between{justify-content:space-between}
.input,.select,.textarea{
    width:100%;border:1px solid var(--admin-line);border-radius:var(--admin-radius);
    background:#fff;color:var(--admin-text);outline:0;
}
.input::placeholder,.textarea::placeholder{color:var(--admin-placeholder)}
.input,.select{
    height:var(--admin-input-height);   /* fixed — no stretch */
    padding:0 14px;
    box-sizing:border-box;
}
.textarea{padding:10px 14px;}
.select{
    /* inherits min-height:var(--admin-input-height) from above — toolbar overrides with --admin-dropdown-height */
    border-radius:var(--admin-dropdown-radius);
    padding:10px 36px 10px 12px;   /* right = left + room for custom arrow */
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%2360748a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 10px center;
    background-size:16px 16px;
    cursor:pointer;
}
.textarea{min-height:140px;resize:vertical}
.field{display:grid;gap:0}
/* Checkbox field: keep the box inline with its label (the whole label is clickable),
   overriding the default grid stacking of .field. */
.field--check{display:flex;align-items:center;gap:8px;cursor:pointer}
.field--check input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}
.field--check span{font-size:14px;font-weight:600}
/* Required-field marker — a quiet asterisk in the label, not an aggressive pre-submit state. */
.field__req{color:var(--admin-danger,#c0392b);font-weight:600;margin-left:1px}
/* Podcast episode row actions: compact inline group; destructive delete set apart from the plain action. */
.podcast-ep-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.podcast-ep-actions form{margin:0}
.podcast-ep-actions__danger{margin-left:6px;padding-left:8px;border-left:1px solid var(--admin-line,#e2e6ea)}
/* Audio uploader: chosen-file hint turns solid once a file is picked. */
.field__hint.is-file-selected{font-weight:600}
/* Podcast episode audio ready-state block — system tokens only, no new decorative style. */
.podcast-audio{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--admin-line);border-radius:var(--admin-radius);background:var(--admin-surface-soft)}
.podcast-audio.is-ready{border-color:color-mix(in srgb,var(--admin-success) 45%,var(--admin-line))}
.podcast-audio__state{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.podcast-audio__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,max-content));gap:4px 24px;margin:0}
.podcast-audio__meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--admin-muted)}
.podcast-audio__meta dd{margin:0;font-size:13px;font-weight:600}
.podcast-audio__player{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.podcast-audio__player audio{max-width:100%}
.podcast-audio__legacy{font-size:12px;word-break:break-all}
.podcast-audio__error{padding:8px 12px;border-radius:6px;background:#fbe9e8;color:var(--admin-danger);font-size:13px;font-weight:600}
.podcast-audio.is-pending{border-color:color-mix(in srgb,var(--admin-warning) 45%,var(--admin-line))}
/* ── Field spacing tokens: 1 (label→hint) : ~1.3 (hint→control) ── */
/* label → hint: 4px — tight, hint visually "belongs" to the label  */
.field__label{font-size:14px;font-weight:600;margin-bottom:4px}
/* when no hint follows label, use the larger token directly          */
.field__label:not(:has(+ .field__hint)){margin-bottom:6px}
/* hint → control: 6px ≈ 4×1.3 — control is a distinct interactive layer */
.field__hint{font-size:12px;color:var(--admin-muted);margin-bottom:6px}
.field__hint--quiet{font-size:11px;line-height:1.35;color:color-mix(in srgb,var(--admin-muted) 84%,#fff)}
.field__readonly{
    min-height:var(--admin-input-height);
    display:flex;
    align-items:center;
    padding:10px 14px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:var(--admin-surface-soft);
    color:var(--admin-muted);
    font-size:13px;
}
/* guard: no trailing margin if hint or label is the last child       */
.field__hint:last-child,.field__label:last-child{margin-bottom:0}
/* ── Inline help tooltip — [data-tooltip] ─────────────────────────────────
   Usage: <span class="help-icon" data-tooltip="Text">?</span>
   Pure CSS, no JS. Works with long multi-line text via max-width.          */
.help-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:16px;height:16px;border-radius:50%;
    border:1.5px solid var(--admin-muted);
    color:var(--admin-muted);font-size:10px;font-weight:700;
    cursor:default;line-height:1;flex-shrink:0;
    position:relative;vertical-align:middle;
    transition:border-color .15s,color .15s;
}
.help-icon:hover,
.help-icon:focus-visible{border-color:var(--admin-brand);color:var(--admin-brand);outline:none;box-shadow:0 0 0 3px rgba(31,95,155,.12)}
.help-icon[data-tooltip]::after{
    content:attr(data-tooltip);
    position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);
    min-width:220px;max-width:320px;
    background:#1e2d3d;color:#fff;
    font-size:12px;font-weight:400;line-height:1.45;
    padding:8px 11px;border-radius:7px;
    white-space:normal;word-break:normal;
    pointer-events:none;opacity:0;transition:opacity .15s;
    z-index:9999;text-align:left;
    box-shadow:0 4px 14px rgba(0,0,0,.25);
}
.help-icon[data-tooltip]::before{
    content:'';position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);
    border:5px solid transparent;border-top-color:#1e2d3d;
    pointer-events:none;opacity:0;transition:opacity .15s;z-index:9999;
}
.help-icon[data-tooltip]:hover::after,
.help-icon[data-tooltip]:hover::before,
.help-icon[data-tooltip]:focus-visible::after,
.help-icon[data-tooltip]:focus-visible::before{opacity:1}

/* When JS tooltip manager is active — disable CSS fallback to avoid doubles */
.js-tooltips-active .help-icon[data-tooltip]::after,
.js-tooltips-active .help-icon[data-tooltip]::before{display:none!important}

/* JS-powered tooltip — position:fixed, escapes overflow:hidden containers */
.js-tooltip{
    position:fixed;z-index:99999;
    background:#1e2d3d;color:#fff;
    font-size:12px;font-weight:400;line-height:1.55;
    padding:8px 12px;border-radius:7px;
    max-width:320px;min-width:200px;
    box-shadow:0 4px 18px rgba(0,0,0,.28);
    pointer-events:none;
    opacity:0;display:none;
    transition:opacity .15s;
    word-break:normal;
}

.admin-relation-list{display:grid;gap:0;border-top:1px solid var(--admin-line)}
.admin-relation-list--compact{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));column-gap:20px}
.admin-relation-item{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--admin-line);cursor:pointer}
.admin-relation-item__check{margin-top:4px;flex:0 0 auto}
.admin-relation-item__body{display:grid;gap:4px;min-width:0}
.admin-relation-item__body strong{font-size:14px;line-height:1.3;color:var(--admin-text)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:var(--admin-radius);border:1px solid transparent;background:#e5eef9;color:var(--admin-brand);font-weight:600;cursor:pointer;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}
.btn--primary{background:var(--admin-brand);color:#fff}
.btn--secondary{background:#fff;border-color:var(--admin-line);color:var(--admin-text)}
.btn--back{display:inline-flex;align-items:center;width:fit-content;background:var(--admin-surface-soft);border-color:#d0d8e2;color:var(--admin-text);border-radius:999px;font-size:12px;font-weight:500;padding:0 14px;min-height:28px;line-height:28px}
.btn--back:hover{background:#e8eef5;color:var(--admin-text);border-color:#b8c6d4}
.admin-topbar__site-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--admin-brand);border-color:var(--admin-brand);opacity:.85;width:fit-content}
.admin-topbar__site-link:hover{opacity:1;background:var(--admin-brand-soft,#eef4fb)}

/* ── Action panel ─────────────────────────────────────────────────── */
.admin-ap{
    position:fixed;
    top:108px;
    right:24px;
    width:208px;
    display:flex;
    flex-direction:column;
    gap:8px;
    z-index:40;
}
.admin-ap__btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:100%;
    min-height:44px;
    padding:10px 16px;
    border-radius:12px;
    border:1.5px solid transparent;
    font-size:14px;
    font-weight:600;
    line-height:1.2;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
    transition:background .14s,border-color .14s,opacity .14s;
    font-family:inherit;
}
.admin-ap__btn--primary{
    background:var(--admin-brand,#1a56a4);
    color:#fff;
    border-color:var(--admin-brand,#1a56a4);
}
.admin-ap__btn--primary:hover{background:#154a91;border-color:#154a91;color:#fff}
.admin-ap__btn--secondary{
    background:#fff;
    color:var(--admin-text,#172334);
    border-color:#d0dce9;
}
.admin-ap__btn--secondary:hover{background:#f4f7fb;border-color:#b8cad8}
.admin-ap__btn--ghost{
    background:transparent;
    color:var(--admin-muted,#60758a);
    border-color:#d8e4ef;
}
.admin-ap__btn--ghost:hover{background:#f4f7fb;color:var(--admin-text,#172334)}
.admin-ap__btn--back{font-size:13px;font-weight:500}
.admin-ap__divider{height:1px;background:#e4edf5;margin:4px 0}
@media(max-width:1200px){.admin-ap{display:none}}
.btn--ghost{background:transparent;border-color:var(--admin-line);color:var(--admin-muted)}
.btn--ghost.is-active{background:var(--admin-surface-soft);border-color:#bfd2e7;color:var(--admin-brand)}
.btn--danger{background:#fbe9e8;color:var(--admin-danger)}

/* pill radius — used in publication actions bar */
.btn--pill{border-radius:999px!important}

/* cover catalog status: save button transforms to "✓ В каталоге" when cover is saved */
.cover-save-btn--catalog{
    background:#f0faf4!important;
    border-color:#1d7a3a!important;
    color:#1d7a3a!important;
    font-weight:500;
    cursor:default;
}
.cover-save-btn--catalog:hover{
    background:#e6f6ec!important;
    box-shadow:none!important;
}

/* trash button: gray default, red on hover */
.btn--trash{
    background:var(--admin-surface-soft);
    border-color:var(--admin-line);
    color:var(--admin-muted);
    border-radius:999px!important;
    transition:background .15s,color .15s,border-color .15s;
}
.btn--trash:hover{
    background:#fbe9e8;
    border-color:#f5c6c3;
    color:var(--admin-danger);
}

/* publication actions bar */
.pub-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    padding:20px 0 4px;  /* top gap separates from the import block above */
}
.pub-actions__left{display:flex;gap:10px;align-items:center}

.btn-group{display:flex;gap:10px;flex-wrap:wrap}
.table-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.table-wrap,
.admin-table-wrap{
    width:100%;
    min-width:0;
    overflow-x:visible;
    overflow-y:visible;
}
.table,
.admin-table{width:100%;max-width:100%;border-collapse:collapse}
.admin-table{
    table-layout:auto;
    background:var(--admin-surface);
}
.admin-table th,
.admin-table td{
    min-width:0;
    max-width:420px;
    padding:14px 10px;
    border-bottom:1px solid var(--admin-line);
    vertical-align:top;
    text-align:left;
    overflow-wrap:anywhere;
    word-break:normal;
}
.table th,.table td{
    min-width:0;
    max-width:420px;
    padding:14px 10px;
    border-bottom:1px solid var(--admin-line);
    vertical-align:top;
    text-align:left;
    overflow-wrap:anywhere;
    word-break:normal;
}
/* ── Sticky header ─────────────────────────────────────────────────────────
   .table-wrap has overflow-x:auto / overflow-y:visible, so sticky is
   relative to the page scroll — top:0 works without any offset because
   the admin topbar is NOT position:fixed (it scrolls away).
   z-index:20 sits above table rows (z-index:auto) but below the fixed
   sidebar (z-index:30) and the user-menu (z-index:40).
   ───────────────────────────────────────────────────────────────────────── */
.table thead th,
.admin-table thead th{
    position:sticky;
    top:0;
    z-index:20;
    background:var(--admin-surface);
    /* hairline separator that survives scroll */
    box-shadow:0 1px 0 var(--admin-line);
}
.table th{font-size:12px;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.08em}
/* ── Sort control — clickable th ───────────────────────────────────────── */
.table th:has(.table-sort-control),
.admin-table th:has(.table-sort-control){
    cursor:pointer;
    user-select:none;
}
.table th:has(.table-sort-control):hover,
.admin-table th:has(.table-sort-control):hover{
    background:var(--admin-surface-soft);
}
/* ── Column hide/show (admin-table-cols.js) ─────────────────────────────── */

/* th needs position:relative so the absolute button can anchor inside it */
.table thead th{position:relative}

/* Collapse button — hidden by default, shown on th hover */
.col-collapse-btn{
    display:none;
    position:absolute;
    top:50%;right:3px;
    transform:translateY(-50%);
    width:16px;height:16px;
    padding:0;
    border:1px solid var(--admin-line);
    border-radius:3px;
    background:var(--admin-surface);
    color:var(--admin-muted);
    cursor:pointer;
    align-items:center;
    justify-content:center;
    line-height:1;
    transition:background .1s,color .1s,border-color .1s;
    z-index:1;
}
.col-collapse-btn:hover{background:var(--admin-surface-soft);color:var(--admin-text);border-color:#b8c6d4}

/* Show only on th hover (but not when the th is already a stub) */
.table thead th:hover:not(.col-th-stub) .col-collapse-btn{display:flex}

/* Collapsed stub th — narrow anchor, clickable to restore */
.col-th-stub{
    width:18px!important;
    min-width:18px!important;
    max-width:18px!important;
    padding:0!important;
    overflow:hidden;
    cursor:pointer;
    text-align:center;
    vertical-align:middle;
    background:var(--admin-surface-soft);
    border-right:2px solid var(--admin-line);
    user-select:none;
    transition:background .12s;
}
.col-th-stub:hover{background:#e8eef5}

/* Hide all existing content inside the stub */
.col-th-stub > *{display:none!important}

/* Expand indicator — centred › arrow */
.col-th-stub::after{
    content:'›';
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    min-height:36px;
    font-size:12px;
    font-weight:700;
    color:var(--admin-primary,#1f5f9b);
    opacity:.7;
}
.col-th-stub:hover::after{opacity:1}

/* ── Groupable column ───────────────────────────────────────────────────── */
.col-groupable{cursor:pointer;user-select:none}
.col-groupable:hover:not(.col-th-stub){background:var(--admin-surface-soft)}

/* Small grid icon next to th label */
.col-group-icon{
    display:inline-flex;align-items:center;
    margin-left:5px;opacity:.35;
    vertical-align:middle;
    transition:opacity .12s;
}
.col-groupable:hover .col-group-icon{opacity:.7}

/* Active grouping state */
.col-grouping-active{color:var(--admin-primary,#1f5f9b)!important}
.col-grouping-active .col-group-icon{opacity:1;color:var(--admin-primary,#1f5f9b)}

/* Group header row */
.table-group-header td{
    padding:5px 14px;
    background:var(--admin-surface-soft);
    border-top:2px solid var(--admin-line);
    border-bottom:none;
    /* Stick just below the sticky thead (thead height ~40px) */
    position:sticky;
    top:40px;
    z-index:15;
}
.table-group-label{
    font-size:12px;font-weight:600;
    color:var(--admin-text);
    text-transform:none;letter-spacing:0;
}
.table-group-count{margin-left:8px;font-size:11px}

/* First group header in table — no top border */
.table-group-header:first-child td{border-top:none}

.table td a,
.table td code,
.table td pre,
.table td .muted{
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
}
.table td img,
.table td svg{
    max-width:100%;
}
.table-sort-control{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;white-space:nowrap}
.table-sort-control:hover{color:var(--admin-text)}
.table-sort-control.is-active{color:var(--admin-brand)}
.table-sort-control__icon{font-size:12px;line-height:1;color:var(--admin-steel)}
.table-sort-control.is-active .table-sort-control__icon{color:var(--admin-brand)}
/* ── Clickable table rows ──────────────────────────────────────────────────
   Any <tr data-row-href="..."> becomes a full-row navigation target.
   Buttons/links/inputs inside still handle their own clicks (see layout.blade.php).
   ───────────────────────────────────────────────────────────────────────── */
.table tr[data-row-href]{
    cursor:pointer;
    transition:background .1s;
}
.table tr[data-row-href]:hover td{
    background:rgba(49,130,198,.055);
}
.table tr[data-row-href]:active td{
    background:rgba(49,130,198,.10);
}
/* Keyboard focus ring on focusable rows */
.table tr[data-row-href]:focus-visible{
    outline:2px solid var(--admin-brand);
    outline-offset:-2px;
}
.badge{display:inline-flex;padding:6px 10px;border-radius:6px;background:var(--admin-surface-soft);color:var(--admin-brand);font-weight:600;font-size:13px}
.table .badge{
    width:max-content;
    max-width:100%;
    justify-self:start;
    align-self:start;
    flex:0 0 auto;
}
.badge--muted{color:#61758d;background:#f2f5f8}
.badge--success{background:#e8f5ec;color:var(--admin-success)}
.badge--danger{background:#fbe9e8;color:var(--admin-danger)}
.badge--warning{background:#fff3de;color:var(--admin-warning)}
.flash{padding:14px 16px;border-radius:var(--admin-radius)} .flash--success{background:#e8f5ec;color:var(--admin-success)} .flash--error{background:#fbe9e8;color:var(--admin-danger)}
/* ── Save-status bar ──────────────────────────────────────────────────────── */
/* Single compact row above the form: dot · status text · hint · [actions]   */

.save-status{
    display:flex;align-items:center;gap:8px;
    flex-wrap:wrap;
    margin:0 0 10px;
    padding:5px 10px 5px 8px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fff;
    font-size:12px;font-weight:500;
    color:var(--admin-muted);
    user-select:none;
    transition:border-color .18s,background .18s,color .18s;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
}

/* Status dot */
.save-status__dot{
    width:7px;height:7px;border-radius:50%;
    background:currentColor;
    flex:0 0 auto;opacity:.45;
    transition:background .2s,opacity .2s;
}

/* Inline restore hint (shown only when draft found on load) */
.save-status__restore-hint{
    color:var(--admin-muted);
    font-weight:400;
    flex:1 1 220px;
    min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* Right-aligned action cluster */
.save-status__actions{
    display:flex;align-items:center;gap:6px;
    flex-wrap:wrap;
    justify-content:flex-end;
    margin-left:auto;
    flex:0 1 auto;
    min-width:0;
}

/* ── State modifiers ── */

/* idle — neutral, barely visible */
.ss-idle{color:var(--admin-muted);background:#fff;border-color:var(--admin-line)}
.ss-idle .save-status__dot{opacity:.35}

/* saving — amber pulsing dot */
.ss-saving{color:#8a5c10;background:#fffbf4;border-color:#f5dba8}
.ss-saving .save-status__dot{
    background:#d9942d;opacity:1;
    animation:ss-pulse 1s ease-in-out infinite;
}

/* saved — green confirmation */
.ss-saved{color:#2d7a3a;background:#f4fbf5;border-color:#bfe6c7}
.ss-saved .save-status__dot{background:var(--admin-success);opacity:1}

/* dirty — unsaved local changes */
.ss-dirty{color:#7a6010;background:#fffbe8;border-color:#f0e1a0}
.ss-dirty .save-status__dot{background:#c8a000;opacity:1}

/* error — red */
.ss-error{color:#9a1f1a;background:#fff0ef;border-color:#fcc8c5}
.ss-error .save-status__dot{background:var(--admin-danger);opacity:1}

/* synced — after successful server submit */
.ss-synced{color:#2d7a3a;background:#f4fbf5;border-color:#bfe6c7;font-weight:600}
.ss-synced .save-status__dot{background:var(--admin-success);opacity:1}

@keyframes ss-pulse{
    0%,100%{opacity:.45}
    50%{opacity:1}
}
.panel nav[aria-label="Pagination Navigation"]{
    display:grid;
    gap:12px;
    margin-top:8px;
}
.panel nav[aria-label="Pagination Navigation"] .sm\:hidden{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.panel nav[aria-label="Pagination Navigation"] .sm\:hidden > *{
    flex:0 0 auto;
}
.panel nav[aria-label="Pagination Navigation"] .hidden.sm\:flex-1{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
}
.panel nav[aria-label="Pagination Navigation"] .hidden.sm\:flex-1 > div:last-child{
    flex:0 0 auto;
}
.panel nav[aria-label="Pagination Navigation"] .hidden.sm\:flex-1 > div:first-child{
    color:var(--admin-muted);
    font-size:13px;
}
.panel nav[aria-label="Pagination Navigation"] .inline-flex{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:auto;
    flex:0 0 auto;
    white-space:nowrap;
}
.panel nav[aria-label="Pagination Navigation"] a.inline-flex,
.panel nav[aria-label="Pagination Navigation"] span.inline-flex{
    min-height:38px;
    padding:8px 12px;
    border:1px solid var(--admin-line);
    background:#fff;
    color:var(--admin-text);
    border-radius:5px;
}
.panel nav[aria-label="Pagination Navigation"] a.inline-flex:hover{
    border-color:#bfd2e7;
    color:var(--admin-brand);
    background:var(--admin-surface-soft);
}
.panel nav[aria-label="Pagination Navigation"] span[aria-current="page"] > span.inline-flex{
    border-color:#bfd2e7;
    background:var(--admin-surface-soft);
    color:var(--admin-brand);
}
.panel nav[aria-label="Pagination Navigation"] span[aria-disabled="true"] > span.inline-flex{
    color:var(--admin-muted);
    background:#f7f9fc;
}
.panel nav[aria-label="Pagination Navigation"] svg{
    width:18px;
    height:18px;
    flex:0 0 auto;
}
.preview-card{display:grid;gap:10px;padding:16px;border-radius:var(--admin-radius-lg);background:var(--admin-surface-soft)}
.preview-card__media{aspect-ratio:3/4;border-radius:var(--admin-radius);overflow:hidden;background:#dce9f7}
.preview-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.person-preview{gap:12px}
.person-preview__surface{
    display:grid;
    gap:10px;
    padding:16px;
    border-radius:8px;
    border:1px solid var(--admin-line);
    background:#fff;
}
.person-preview__surface--compact{
    grid-template-columns:56px minmax(0,1fr);
    align-items:start;
}
.person-preview__surface--share{
    justify-items:start;
}
.person-preview__avatar{
    width:72px;
    height:72px;
    border-radius:999px;
    overflow:hidden;
    background:var(--person-avatar-bg);
    display:grid;
    place-items:center;
    color:var(--person-avatar-color);
    font-weight:var(--person-avatar-font-weight);
    letter-spacing:.04em;
    box-shadow:inset 0 0 0 1px var(--person-avatar-border);
}
.person-preview__avatar--speaker{
    width:64px;
    height:64px;
}
.person-preview__avatar--share{
    width:88px;
    height:88px;
    border-radius:999px;
}
.person-preview__avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.person-preview__body{
    display:grid;
    gap:8px;
    align-content:start;
}
.person-preview strong{
    font-size:18px;
    line-height:1.2;
}
.person-preview span{
    color:var(--admin-muted);
    line-height:1.5;
}
/* ══════════════════════════════════════════════════════════════════════════
   PEOPLE FILTER BAR  — compact pill-style controls (people/index)
   ══════════════════════════════════════════════════════════════════════════ */
/* SVG chevron encoded for background-image use */
:root{--sel-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%238093a6' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

.pf-bar{display:grid;gap:8px;align-content:start}
.pf-bar__row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pf-bar__row--wide{display:flex;gap:8px;align-items:center}

/* ── Search pill ──────────────────────────────────────────────────────── */
.pf-search{position:relative;flex:1 1 200px;max-width:400px}
.pf-search__icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8093a6;pointer-events:none;display:flex}
.pf-search__input{
    display:block;width:100%;height:40px;
    border-radius:999px;
    border:1.5px solid var(--admin-line);
    padding:0 16px 0 38px;
    font-size:14px;background:#fff;color:var(--admin-text);
    outline:none;transition:border-color .15s,box-shadow .15s;
}
.pf-search__input:focus{border-color:var(--admin-brand);box-shadow:0 0 0 3px rgba(11,77,162,.07)}
.pf-search__input::placeholder{color:var(--admin-placeholder)}

/* ── Compact pill selects ─────────────────────────────────────────────── */
.pf-sel{
    height:40px;border-radius:999px;
    border:1.5px solid var(--admin-line);
    padding:0 30px 0 14px;
    font-size:13px;font-weight:500;
    background:#fff var(--sel-arrow) no-repeat right 11px center;
    -webkit-appearance:none;appearance:none;
    color:var(--admin-text);cursor:pointer;outline:none;
    transition:border-color .15s,background-color .15s;
    white-space:nowrap;flex-shrink:0;
}
.pf-sel:focus{border-color:var(--admin-brand)}
.pf-sel.is-active{border-color:var(--admin-brand);background-color:#eef4fd;color:var(--admin-brand)}

/* ── Wide org select ──────────────────────────────────────────────────── */
.pf-sel-wide{
    flex:1;min-width:0;
    height:40px;border-radius:12px;
    border:1.5px solid var(--admin-line);
    padding:0 30px 0 14px;
    font-size:13px;font-weight:500;
    background:#fff var(--sel-arrow) no-repeat right 11px center;
    -webkit-appearance:none;appearance:none;
    color:var(--admin-text);cursor:pointer;outline:none;
    transition:border-color .15s,background-color .15s;
}
.pf-sel-wide:focus{border-color:var(--admin-brand)}
.pf-sel-wide.is-active{border-color:var(--admin-brand);background-color:#eef4fd;color:var(--admin-brand)}

/* ── Org picker (searchable dropdown) ──────────────────────────────────── */
.org-picker{position:relative;display:inline-flex}
.org-picker__btn{
    display:inline-flex;align-items:center;gap:6px;
    height:40px;border-radius:12px;
    border:1.5px solid var(--admin-line);
    padding:0 12px 0 14px;
    font-size:13px;font-weight:500;
    background:#fff;color:var(--admin-text);
    cursor:pointer;outline:none;white-space:nowrap;
    transition:border-color .15s,background-color .15s;
    max-width:360px;
}
.org-picker__btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.org-picker__btn svg{flex-shrink:0;opacity:.5;transition:transform .15s}
.org-picker__btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.org-picker__btn:hover,.org-picker__btn:focus{border-color:var(--admin-brand)}
.org-picker__btn.is-active{border-color:var(--admin-brand);background:#eef4fd;color:var(--admin-brand)}
.org-picker__btn.is-active svg{opacity:.7}
.org-picker__dropdown{
    position:absolute;top:calc(100% + 4px);left:0;
    width:460px;max-width:calc(100vw - 40px);
    background:#fff;border:1.5px solid var(--admin-line);
    border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.13);
    z-index:300;overflow:hidden;
}
.org-picker__search-wrap{padding:10px 10px 8px;border-bottom:1px solid var(--admin-line)}
.org-picker__search{
    width:100%;box-sizing:border-box;
    border:1.5px solid var(--admin-line);border-radius:8px;
    padding:7px 12px;font-size:13px;outline:none;
    transition:border-color .15s;
}
.org-picker__search:focus{border-color:var(--admin-brand)}
.org-picker__list{max-height:260px;overflow-y:auto;padding:6px 0;margin:0;list-style:none}
.org-picker__option{
    padding:7px 14px;font-size:13px;cursor:pointer;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    color:var(--admin-text);transition:background .1s;
}
.org-picker__option:hover{background:#f4f7fb}
.org-picker__option.is-selected{background:#eef4fd;color:var(--admin-brand);font-weight:500}
.org-picker__empty{padding:20px 14px;font-size:13px;color:var(--admin-muted);text-align:center}

/* ── Reset pill link ──────────────────────────────────────────────────── */
.pf-reset{
    display:inline-flex;align-items:center;gap:4px;
    height:40px;border-radius:999px;
    border:1.5px solid var(--admin-line);
    padding:0 16px;
    font-size:13px;font-weight:500;
    color:var(--admin-muted);background:transparent;
    text-decoration:none;white-space:nowrap;flex-shrink:0;
    transition:color .15s,border-color .15s,background .15s;
}
.pf-reset:hover{color:var(--admin-text);border-color:#b0bdca;background:#f7fafd}

.pf-action{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    height:40px;border-radius:999px;border:1.5px solid var(--admin-line);
    padding:0 16px;font-size:13px;font-weight:500;
    background:#fff;color:var(--admin-text);text-decoration:none;white-space:nowrap;
    transition:color .15s,border-color .15s,background .15s;
}
.pf-action:hover{color:var(--admin-brand);border-color:var(--admin-brand);background:#f7fafd}
.pf-action--primary{background:var(--admin-brand);border-color:var(--admin-brand);color:#fff}
.pf-action--primary:hover{background:#1a5085;color:#fff}

/* ══════════════════════════════════════════════════════════════════════════ */

.person-list-cell{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:12px;
    align-items:center;
}
.person-list-cell__avatar{
    width:44px;
    height:44px;
    border-radius:999px;
    overflow:hidden;
    display:grid;
    place-items:center;
    background:var(--person-avatar-bg);
    color:var(--person-avatar-color);
    font-weight:var(--person-avatar-font-weight);
    letter-spacing:.04em;
    box-shadow:inset 0 0 0 1px var(--person-avatar-border);
}
.person-list-cell__avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.person-list-cell__body{
    display:grid;
    gap:6px;
    min-width:0;
}
.checkbox{display:flex;gap:10px;align-items:center}

/* Active = default/quiet. Inactive = warning state that needs attention. */
.homepage-slot-card__state .checkbox{
    font-size:13px;
    color:var(--admin-muted);
    transition:color .15s;
}
.homepage-slot-card__state .checkbox:has(input:checked){
    color:var(--admin-muted);
    opacity:.55;
}
.homepage-slot-card__state .checkbox:has(input:not(:checked)){
    color:#b91c1c;
    font-weight:600;
}
.homepage-slot-card__state .checkbox:has(input:not(:checked)) input[type="checkbox"]{
    outline:2px solid #fca5a5;
    outline-offset:1px;
    border-radius:3px;
}
.related-material-picker{
    margin-top:10px;
    max-height:260px;
    overflow:auto;
    padding:12px;
    gap:10px;
}
.related-material-option{
    align-items:flex-start;
    padding:8px 0;
    border-bottom:1px solid rgba(13,22,33,.06);
}
.related-material-option:last-child{border-bottom:0}
.related-material-option[hidden]{display:none!important}
.related-material-option strong{
    display:block;
    line-height:1.35;
}
.person-picker{
    display:grid;
    gap:10px;
}
.person-picker__native[hidden]{display:none}
.person-picker__results{
    display:grid;
    gap:8px;
    max-height:270px;
    overflow:auto;
    padding:10px;
    border:1px solid var(--admin-line);
    border-radius:8px;
    background:rgba(244,248,252,.72);
}
.person-picker__empty{
    padding:14px;
    color:var(--admin-muted);
    font-size:13px;
}
.person-picker-card{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    width:100%;
    padding:10px 12px;
    border:1px solid var(--admin-line);
    border-radius:8px;
    background:#fff;
    color:var(--admin-text);
    text-align:left;
    cursor:pointer;
    transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.person-picker-card:hover{
    border-color:rgba(31,95,155,.38);
    box-shadow:0 8px 20px rgba(15,38,68,.07);
}
.person-picker-card.is-selected{
    cursor:default;
    background:#f5f8fb;
}
.person-picker-card__avatar,
.person-picker-selected__avatar{
    width:42px;
    height:42px;
    border-radius:999px;
    overflow:hidden;
    display:grid;
    place-items:center;
    background:var(--person-avatar-bg);
    color:var(--person-avatar-color);
    font-weight:var(--person-avatar-font-weight);
    letter-spacing:.04em;
    box-shadow:inset 0 0 0 1px var(--person-avatar-border);
}
.person-picker-card__avatar img,
.person-picker-selected__avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.person-picker-card__avatar--fallback,
.person-picker-selected__avatar--fallback{
    font-size:12px;
}
.person-picker-card__body,
.person-picker-selected__body{
    display:grid;
    gap:3px;
    min-width:0;
}
.person-picker-card__name,
.person-picker-selected__name{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-weight:600;
    line-height:1.25;
}
.person-picker-card__meta,
.person-picker-selected__meta{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--admin-muted);
    font-size:12px;
    line-height:1.35;
}
.person-picker-card__action{
    justify-self:end;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(31,95,155,.09);
    color:var(--admin-brand);
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
}
.person-picker-card.is-selected .person-picker-card__action{
    color:var(--admin-muted);
    background:rgba(13,22,33,.06);
}
.person-picker-selected{
    display:grid;
    gap:8px;
    margin-top:10px;
}
.person-picker-selected__empty{padding:4px 0}
.person-picker-selected__item{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:10px 12px;
    border:1px solid var(--admin-line);
    border-radius:8px;
    background:#fff;
}
.person-picker-selected__remove{
    padding:8px 10px;
    min-width:auto;
}
.event-persons-layout{
    display:grid;
    grid-template-columns:minmax(320px,.95fr) minmax(360px,1.05fr);
    gap:18px;
    align-items:start;
}
.event-persons-layout__picker,
.event-persons-layout__selected{
    min-width:0;
}
.speaker-order-list{display:grid;gap:12px}
.speaker-order-list__empty{padding:10px 0}
.speaker-order-group{
    display:grid;
    gap:8px;
}
.speaker-order-group + .speaker-order-group{
    margin-top:2px;
}
.speaker-order-group__title{
    padding:0 2px;
    color:var(--admin-muted);
    font-size:11px;
    font-weight:600;
    line-height:1.2;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.speaker-order-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    border:1px solid var(--admin-line);
    border-radius:7px;
    background:#fff;
    transition:border-color .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.speaker-order-item.is-dragging{opacity:.52}
.speaker-order-item.is-drop-target{
    border-color:var(--admin-brand);
    box-shadow:0 0 0 2px rgba(31,95,155,.12);
}
.speaker-order-item__body{
    display:grid;
    grid-template-columns:18px 48px minmax(0,1fr);
    gap:12px;
    align-items:center;
    min-width:0;
}
.speaker-order-item__drag{
    color:var(--admin-muted);
    font-size:16px;
    line-height:1;
    cursor:grab;
    user-select:none;
}
.speaker-order-item__drag:active{cursor:grabbing}
.speaker-order-item__avatar{
    width:48px;
    height:48px;
    border-radius:999px;
    overflow:hidden;
    background:var(--person-avatar-bg);
    display:grid;
    place-items:center;
    color:var(--person-avatar-color);
    font-weight:var(--person-avatar-font-weight);
    letter-spacing:.04em;
    box-shadow:inset 0 0 0 1px var(--person-avatar-border);
    flex-shrink:0;
}
.speaker-order-item__avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.speaker-order-item__avatar--fallback{
    font-size:14px;
}
.speaker-order-item__text{
    display:grid;
    gap:4px;
    min-width:0;
}
.speaker-order-item__eyebrow{
    justify-self:start;
    padding:4px 8px;
    border-radius:999px;
    background:var(--chip-topic-bg, #dff5f7);
    color:var(--chip-topic-color, #157b87);
    font-size:11px;
    line-height:1;
    font-weight:600;
}
.speaker-order-item__role{
    appearance:auto;
    justify-self:start;
    width:max-content;
    max-width:180px;
    min-height:28px;
    padding:4px 28px 4px 10px;
    border:1px solid var(--chip-topic-border, rgba(21,123,135,.32));
    border-radius:999px;
    background:#fff;
    color:var(--chip-topic-color, #157b87);
    font-size:12px;
    line-height:1;
    font-weight:600;
}
.speaker-order-item__role:focus{
    outline:2px solid rgba(31,95,155,.16);
    outline-offset:2px;
    border-color:rgba(31,95,155,.42);
}
.speaker-order-item__name{
    font-weight:600;
    color:var(--admin-text);
    line-height:1.25;
}
.speaker-order-item__subtitle{
    color:var(--admin-muted);
    font-size:12px;
    line-height:1.45;
}
.speaker-order-item__actions{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.speaker-order-item__btn{
    padding:8px 10px;
    min-width:auto;
}
.admin-disclosure{
    display:block;
    border:1px solid var(--admin-line);
    border-radius:8px;
    background:#fff;
}
.admin-disclosure__summary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:4px;
    align-items:center;
    padding:14px 16px;
    cursor:pointer;
    color:var(--admin-text);
    list-style:none;
}
.admin-disclosure__summary::-webkit-details-marker{display:none}
.admin-disclosure__summary::after{
    content:"";
    width:8px;
    height:8px;
    border-right:2px solid var(--admin-muted);
    border-bottom:2px solid var(--admin-muted);
    transform:rotate(45deg);
    transition:transform .16s ease;
}
.admin-disclosure[open] .admin-disclosure__summary::after{
    transform:rotate(-135deg);
}
.admin-disclosure__summary span{
    font-weight:600;
    line-height:1.25;
}
.admin-disclosure__summary small{
    color:var(--admin-muted);
    font-size:12px;
    line-height:1.35;
}
.admin-disclosure__body{
    display:grid;
    gap:14px;
    padding:0 16px 16px;
}
@media (max-width: 900px){
    .event-persons-layout{
        grid-template-columns:1fr;
    }
    .speaker-order-item{
        grid-template-columns:1fr;
    }
    .speaker-order-item__actions{
        justify-content:flex-start;
    }
}
.admin-list{display:grid;gap:12px}
.admin-list__item{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--admin-line);border-radius:var(--admin-radius);background:var(--admin-surface)}
.admin-login{min-height:100vh;display:grid;place-items:center;padding:24px}
.admin-login__card{width:min(520px,100%);background:var(--admin-surface);border-radius:12px;box-shadow:var(--admin-shadow);padding:32px;display:grid;gap:20px}
.preview-certificate{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px}
.admin-richtext{min-height:220px}
.certificate-live-preview{gap:16px}
.certificate-live-preview__surface{
    position:relative;
    width:100%;
    max-width:420px;
    margin-inline:auto;
    border:1px solid var(--admin-line);
    border-radius:9px;
    overflow:hidden;
    background:#eef4fb;
    box-shadow:var(--admin-shadow);
}
.certificate-live-preview__frame{
    display:block;
    width:100%;
    aspect-ratio:210 / 297;
    min-height:594px;
    border:0;
    background:#fff;
}
.certificate-live-preview__loading,
.certificate-live-preview__error{
    position:absolute;
    left:14px;
    right:14px;
    bottom:14px;
    padding:10px 12px;
    border-radius:6px;
    background:rgba(255,255,255,.94);
    border:1px solid var(--admin-line);
    font-size:13px;
    line-height:1.45;
    box-shadow:0 8px 18px rgba(40,76,117,.08);
}
.certificate-live-preview__error{
    border-color:#f1d2ce;
    color:var(--admin-danger);
}

.homepage-slots{display:grid;gap:var(--admin-space-4)}
.homepage-slot-card{
    display:grid;
    gap:var(--admin-space-4);
    padding:20px;
    border-radius:var(--admin-radius-lg);
    border:1px solid var(--admin-line);
    background:var(--admin-surface);
    box-shadow:var(--admin-shadow);
}
.homepage-slot-card__head,
.homepage-slot-card__controls,
.homepage-editor{
    display:grid;
    gap:var(--admin-space-4);
}
.homepage-slot-card__head{grid-template-columns:minmax(0,1fr) auto;align-items:start}
.homepage-slot-card__title{margin:0;font-size:22px;line-height:1.1}
.homepage-slot-card__description{margin:6px 0 0;color:var(--admin-muted);line-height:1.45;max-width:760px}
.homepage-slot-card__state{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.homepage-slot-card__controls{grid-template-columns:220px minmax(0,1fr);align-items:end}
.homepage-editor{grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr)}
.homepage-slider-editor{
    display:grid;
    gap:14px;
    padding:16px;
    border-radius:7px;
    border:1px solid var(--admin-line);
    background:var(--admin-surface-soft);
}
.homepage-inline-note{
    padding:12px 14px;
    border-radius:var(--admin-radius);
    background:#f5f8fb;
    border:1px dashed var(--admin-line);
    color:var(--admin-muted);
    line-height:1.45;
}
.homepage-mini-card{
    display:grid;
    grid-template-columns:190px minmax(0,1fr);
    gap:14px;
    align-items:start;
    padding:12px;
    border:1px solid var(--admin-line);
    border-radius:7px;
    background:#fbfdff;
}
.homepage-mini-card--empty{background:linear-gradient(135deg,#f8fbfe,#eef4fb)}
.homepage-mini-card__media,
.homepage-picker-card__media,
.homepage-sortable-item__media{
    aspect-ratio:16/9;
    border-radius:6px;
    background:#dce6f1 center/cover no-repeat;
}
.homepage-mini-card--empty .homepage-mini-card__media{
    background:
        linear-gradient(135deg,rgba(28,89,126,.12),rgba(236,92,87,.10)),
        repeating-linear-gradient(45deg,rgba(255,255,255,.38) 0 7px,rgba(255,255,255,0) 7px 14px),
        #dce6f1;
}
.homepage-mini-card__body,
.homepage-picker-card__body{display:grid;gap:6px}
.homepage-mini-card__body strong,
.homepage-picker-card__body strong{font-size:15px;line-height:1.3}
.homepage-mini-card__body span,
.homepage-picker-card__body span{font-size:12px;color:var(--admin-muted)}
.homepage-mini-card__body p,
.homepage-picker-card__body p,
.homepage-sortable-item__body p{margin:0;font-size:13px;line-height:1.45;color:var(--admin-muted)}
.homepage-sortable-list{display:grid;gap:10px}
.homepage-sortable-list--slider{gap:12px}
.homepage-slider-slot{
    display:grid;
    grid-template-columns:44px minmax(180px,260px) minmax(0,1fr) auto;
    gap:14px;
    align-items:center;
    min-height:150px;
    padding:12px;
    border-radius:7px;
    border:1px solid var(--admin-line);
    background:#fbfdff;
}
.homepage-slider-slot.is-filled{cursor:grab}
.homepage-slider-slot.is-empty{
    border-style:dashed;
    background:linear-gradient(135deg,#fbfdff,#f4f8fc);
}
.homepage-slider-slot.is-dragging{opacity:.55}
.homepage-slider-slot__order{
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border-radius:50%;
    background:#e8f1fa;
    color:var(--admin-brand);
    font-weight:600;
}
.homepage-slider-slot__media{
    aspect-ratio:16/9;
    width:100%;
    border-radius:7px;
    background:#dce6f1 center/cover no-repeat;
    position:relative;
    overflow:hidden;
}
/* Badge overlaid on the cover thumbnail */
.homepage-cover-badge{
    position:absolute;
    bottom:6px;left:6px;
    padding:2px 7px;
    border-radius:4px;
    font-size:11px;
    font-weight:600;
    line-height:1.4;
    letter-spacing:.01em;
    pointer-events:none;
    backdrop-filter:blur(4px);
}
.homepage-cover-badge--entity{
    background:rgba(30,65,110,.72);
    color:#d4e8ff;
}
.homepage-cover-badge--slide{
    background:rgba(25,100,55,.75);
    color:#c8f5dc;
}
/* Cover manager row inside the slide editor */
.homepage-cover-manager{
    display:grid;
    gap:6px;
    padding:8px 10px;
    background:var(--admin-bg-alt,#f3f6fa);
    border:1px solid var(--admin-line);
    border-radius:6px;
}
.homepage-cover-manager__label{
    display:flex;
    align-items:center;
    gap:8px;
}
.homepage-cover-manager__label .field__label{
    margin:0;
    font-size:12px;
}
.homepage-cover-manager__label .homepage-cover-badge{
    position:static;
    backdrop-filter:none;
}
.homepage-cover-manager__label .homepage-cover-badge--entity{
    background:#dce6f1;
    color:#1a5080;
}
.homepage-cover-manager__label .homepage-cover-badge--slide{
    background:#d3f5e1;
    color:#155a35;
}
.homepage-cover-manager__actions{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.homepage-cover-manager__status{
    font-size:12px;
    color:var(--admin-muted);
}
.homepage-slider-slot__media--empty{
    background:
        linear-gradient(135deg,rgba(28,89,126,.12),rgba(236,92,87,.10)),
        repeating-linear-gradient(45deg,rgba(255,255,255,.42) 0 7px,rgba(255,255,255,0) 7px 14px),
        #dce6f1;
}
/* Picker cards: no covers → a clean neutral tile with the material type, instead of
   the striped placeholder or garbled generated-cover artifact. */
.homepage-picker-card__media--empty{
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#eef3f8,#e4ebf3);
    border:1px solid rgba(28,89,126,.10);
}
.homepage-picker-card__media--empty::after{
    content:attr(data-fallback-label);
    padding:0 10px;
    text-align:center;
    font-size:11px;
    font-weight:600;
    letter-spacing:.03em;
    text-transform:uppercase;
    color:var(--admin-muted);
}
.homepage-slider-slot__body{display:grid;gap:6px;align-content:center}
.homepage-slider-slot__body strong{font-size:18px;line-height:1.2;color:var(--admin-text)}
.homepage-slider-slot__body span{font-size:12px;color:var(--admin-muted)}
.homepage-slider-slot__body p{margin:0;font-size:13px;line-height:1.45;color:var(--admin-muted)}
.homepage-slider-slot__chips,
.homepage-picker-card__chips{display:flex;gap:6px;flex-wrap:wrap}
.homepage-slide-copy{
    display:grid;
    gap:8px;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid var(--admin-line);
}
.homepage-viewer-preview{
    display:grid;
    grid-template-columns:minmax(132px, 40%) minmax(0, 1fr);
    gap:12px;
    height:200px;
    overflow:hidden;
    /* surface styles removed — slot is the single card surface */
}
.homepage-viewer-preview__media{
    width:100%;
    min-height:100%;
    border-radius:6px;
    background:#dce6f1 center/cover no-repeat;
}
.homepage-viewer-preview__media:not([style]){
    background:
        linear-gradient(135deg,rgba(28,89,126,.10),rgba(236,92,87,.08)),
        #dce6f1;
}
.homepage-viewer-preview__content{
    display:grid;
    grid-template-rows:auto min-content auto minmax(0,1fr);
    gap:6px;
    min-height:0;
    overflow:hidden;
}
.homepage-viewer-preview__chips{display:flex;gap:6px;flex-wrap:wrap}
.homepage-viewer-preview h3{
    display:-webkit-box;
    margin:0;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    color:var(--admin-text);
    font-size:20px;
    font-weight:600;
    line-height:1.16;
}
.homepage-viewer-preview span{
    overflow:hidden;
    color:var(--admin-muted);
    font-size:12px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.homepage-viewer-preview p{
    display:-webkit-box;
    margin:0;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:4;
    color:var(--admin-muted);
    font-size:15px;
    line-height:1.36;
}
.homepage-slide-copy__field{gap:5px}
.homepage-slide-copy .input,
.homepage-slide-copy .textarea{
    min-height:36px;
    padding:8px 10px;
    font-size:13px;
    line-height:1.35;
}
.homepage-slide-copy .textarea{resize:vertical}
.homepage-copy-meter{display:grid;gap:5px}
.homepage-copy-meter__bar{
    height:6px;
    overflow:hidden;
    border-radius:999px;
    background:#e9f0f7;
}
.homepage-copy-meter__bar span{
    display:block;
    width:0;
    height:100%;
    border-radius:inherit;
    background:var(--admin-brand);
    transition:width .16s ease, background-color .16s ease;
}
.homepage-copy-meter.is-over .homepage-copy-meter__bar span{background:#c43d3a}
.homepage-copy-meter__text{
    font-size:12px;
    line-height:1.35;
    color:var(--admin-muted);
}
.homepage-copy-meter.is-over .homepage-copy-meter__text{color:#b8322f}
.homepage-slider-slot__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.homepage-sortable-item{
    display:grid;
    grid-template-columns:auto 120px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:12px;
    border-radius:6px;
    border:1px solid var(--admin-line);
    background:#fbfdff;
    cursor:grab;
}
.homepage-sortable-item.is-dragging{opacity:.55}
.homepage-sortable-item__drag{color:#8fa1b5;font-size:18px;line-height:1}
.homepage-sortable-item__body{display:grid;gap:4px}
.homepage-sortable-item__body span{font-size:12px;color:var(--admin-muted)}
.homepage-sortable-item__media{width:120px}
.homepage-picker{
    border:0;
    padding:0;
    width:min(980px, calc(100vw - 48px));
    border-radius:10px;
    background:transparent;
}
.homepage-picker::backdrop{background:rgba(9,17,27,.38)}
.homepage-picker__dialog{
    display:grid;
    gap:18px;
    padding:24px;
    background:var(--admin-surface);
    border-radius:10px;
    box-shadow:0 24px 80px rgba(17,41,71,.18);
}

.topic-report-list{display:grid;gap:var(--admin-space-4)}
.topic-report-transfer{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--admin-space-5)}
.topic-report-import{display:grid;gap:var(--admin-space-4)}
.topic-report-transfer__note{display:grid;align-content:start}
.topic-report-card{gap:var(--admin-space-4)}
.topic-report-card__head{
    display:flex;
    justify-content:space-between;
    gap:var(--admin-space-4);
    align-items:flex-start;
    flex-wrap:wrap;
}
.topic-report-card__title-line{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.topic-report-card__title-line h2{margin:0;font-size:24px;line-height:1.1}
.topic-report-card__state{display:flex;gap:10px;flex-wrap:wrap}
.topic-report-grid{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:var(--admin-space-5)}
.topic-report-column{display:grid;gap:var(--admin-space-4);align-content:start}
.topic-report-checks{display:grid;gap:10px}
.topic-report-stats{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
}
.topic-report-stat{
    padding:12px 14px;
    border-radius:7px;
    background:var(--admin-surface-soft);
    display:grid;
    gap:4px;
}
.topic-report-stat strong{font-size:22px;line-height:1}
.topic-report-stat span{font-size:12px;color:var(--admin-muted)}
.topic-report-section{display:grid;gap:12px}
.topic-report-section h3{margin:0;font-size:18px;line-height:1.2}
.topic-report-inline-list{display:grid;gap:10px}
.topic-report-inline-card{
    padding:12px 14px;
    border-radius:6px;
    border:1px solid var(--admin-line);
    background:#fbfdff;
    display:grid;
    gap:4px;
}
.topic-report-inline-card span{font-size:13px;color:var(--admin-muted)}
.topic-report-usage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.topic-report-diff__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.topic-report-usage{
    padding:14px;
    border-radius:7px;
    border:1px solid var(--admin-line);
    background:#fbfdff;
    display:grid;
    gap:10px;
}
.topic-report-usage__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.topic-report-usage__head span{font-size:12px;color:var(--admin-muted)}
.topic-report-items{margin:0;padding-left:18px;display:grid;gap:8px}
.topic-report-items li{display:grid;gap:2px}
.topic-report-items a{color:var(--admin-brand);font-weight:600}
.topic-report-items small{font-size:12px;color:var(--admin-muted)}

@media (max-width: 1240px){
    .topic-report-grid{grid-template-columns:1fr}
    .topic-report-transfer{grid-template-columns:1fr}
    .topic-report-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width: 860px){
    .topic-report-usage-grid{grid-template-columns:1fr}
    .topic-report-diff__grid{grid-template-columns:1fr}
    .topic-report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.homepage-picker__head,
.homepage-picker__controls{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.homepage-picker__title{font-size:24px}
.homepage-picker__controls > *{flex:1}
.homepage-picker__results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:62vh;overflow:auto}
.homepage-picker-card{
    position:relative;
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    gap:12px;
    align-items:stretch;
    padding:12px;
    border-radius:7px;
    border:1px solid var(--admin-line);
    background:#fbfdff;
}
.homepage-picker-card.is-catalog-hidden{
    background:#fff8f8;
    border-color:#f0c6c6;
}
.homepage-picker-card__media{width:100%;aspect-ratio:16/7}
.homepage-picker-card__topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    flex-wrap:wrap;
}
.homepage-picker-card__overlay-actions{
    position:absolute;
    top:18px;
    right:18px;
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    justify-content:flex-end;
    max-width:calc(100% - 36px);
    opacity:0;
    transform:translateY(-3px);
    transition:opacity .14s ease,transform .14s ease;
    z-index:2;
}
.homepage-picker-card:hover .homepage-picker-card__overlay-actions,
.homepage-picker-card:focus-within .homepage-picker-card__overlay-actions{
    opacity:1;
    transform:translateY(0);
}
.homepage-picker-card__overlay-action{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 9px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    background:rgba(13,22,33,.88);
    color:#fff;
    font-size:11px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(13,22,33,.18);
}
.homepage-picker-card__overlay-action:hover{background:#0d1621;color:#fff;text-decoration:none}
.homepage-picker-card__overlay-action--danger{background:rgba(166,44,44,.92)}
.homepage-picker-card__overlay-action--success{background:rgba(21,90,53,.92)}
.homepage-picker-card__overlay-action:disabled{opacity:.58;cursor:wait}
.homepage-picker-card__visibility{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:0 8px;
    border-radius:999px;
    background:#eaf6ee;
    color:#155a35;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}
.homepage-picker-card__visibility.is-hidden{
    background:#fee2e2;
    color:#9f1d1d;
}
.homepage-picker-toast{
    position:sticky;
    bottom:0;
    z-index:5;
    padding:10px 12px;
    border-radius:7px;
    background:#10263d;
    color:#fff;
    font-size:13px;
    font-weight:600;
    box-shadow:0 12px 26px rgba(17,41,71,.18);
}
.homepage-picker-toast.is-error{background:#9f1d1d}
.homepage-picker-debug{
    padding:12px;
    border-radius:7px;
    background:#101827;
    color:#d9e7f7;
}
.homepage-picker-debug pre{margin:10px 0 0;white-space:pre-wrap;font-size:12px;line-height:1.45}

/* ════════════════════════════════════════════════════
   RKO EDITOR — полный блок стилей
   ════════════════════════════════════════════════════ */
.rko-editor{
    display:grid;
    gap:0;
    border:1px solid var(--admin-line);
    border-radius:7px;
    background:#fff;
    overflow:visible;   /* allow floating table-panel to escape */
    position:relative;
}

/* ── Toolbar ──────────────────────────────────────── */
.rko-editor__toolbar{
    border-bottom:1px solid var(--admin-line);
    background:#f5f6f7;
}
.rko-editor__toolbar-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:4px;
    padding:6px 10px;
}
.rko-editor__toolbar-row + .rko-editor__toolbar-row{
    border-top:1px solid #e4e6e8;
}
.rko-editor__toolbar-row--secondary{
    background:#f1f2f3;
    padding:5px 10px;
}
.rko-editor__toolbar-row--entities{
    background:#ecedef;
    padding:5px 10px;
}

/* ── Button base ────────────────────────────────────── */
.rko-editor__btn{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 8px;
    border:1px solid #d1d5db;
    border-radius:5px;
    background:#fff;
    color:var(--admin-text);
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    white-space:nowrap;
    line-height:1;
    transition:background .12s,border-color .12s,color .12s;
}
.rko-editor__btn svg{
    width:14px;height:14px;flex-shrink:0;
}
.rko-editor__btn:hover{
    background:#ebebed;
    border-color:#9aa4ae;
    color:var(--admin-text);
}
.rko-editor__btn.is-active{
    background:var(--admin-text);
    border-color:var(--admin-text);
    color:#fff;
}
.rko-editor__btn--icon-only{
    padding:4px 6px;
    border:none;
    background:transparent;
}
.rko-editor__btn--icon-only:hover{background:#fbe9e8;color:var(--admin-danger);border-color:transparent}
.rko-editor__btn--entity{
    border-color:transparent;
    background:#fff;
    color:var(--admin-text);
}
.rko-editor__btn--entity:hover{
    background:#ebebed;
    border-color:#d1d5db;
}
.rko-editor__btn--preview-toggle{
    border-color:var(--admin-line);
    color:var(--admin-muted);
}
.rko-editor__btn--preview-toggle.is-active{
    background:var(--admin-text);
    border-color:var(--admin-text);
    color:#fff;
}

/* ── Btn groups, separators, spacer ────────────────── */
.rko-editor__btn-group{display:flex;gap:3px;align-items:center}
.rko-editor__btn--label-only{font-size:13px;font-weight:600;letter-spacing:-.01em;padding:0 8px}
.rko-editor__btn--label-only .rko-editor__btn-label{font-weight:600;font-size:13px}
/* ── Footer row (Данные + Превью) below the editor surface ── */
.rko-editor__footer{
    display:flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-top:1px solid var(--admin-line);
    background:#f9fafb;
    border-radius:0 0 7px 7px;
}
.rko-editor__btn--footer{
    border-color:transparent;
    background:transparent;
    color:var(--admin-muted);
    font-weight:500;
}
.rko-editor__btn--footer:hover{background:#ebebed;border-color:#d1d5db;color:var(--admin-text);}
.rko-editor__btn--preview-toggle.rko-editor__btn--footer.is-active{background:var(--admin-text);border-color:var(--admin-text);color:#fff;}
/*
 * RKO EDITOR — Floating Layer Z-Index System
 *   --z-editor-toolbar : (implicit, within stacking context)
 *   --z-editor-float   : 5000   dropdowns, panels, link popup
 *   --z-modal          : 8000   dialogs
 *   --z-cal-popup      : 9999   calendar picker
 *   --z-draft-guard    : 10000  draft guard modal
 *
 * All floating editor elements use position:fixed to escape
 * pcard's isolation:isolate stacking context and mask-image clipping.
 */

/* JSON dropdown wrapper */
.rko-editor__json-wrapper{position:relative;display:inline-flex}
.rko-editor__json-menu{
    position:fixed;
    top:0; left:0;          /* overridden by JS */
    z-index:5000;
    min-width:180px;
    background:#fff;
    border:1px solid #d1d5db;
    border-radius:8px;
    box-shadow:0 6px 20px rgba(30,40,50,.12);
    padding:5px 0;
    animation:rko-tp-open .12s ease;
}
.rko-editor__json-menu[hidden]{display:none}
.rko-editor__jm-item{
    display:block;width:100%;
    padding:7px 14px;
    text-align:left;
    font-size:13px;
    color:var(--admin-text);
    background:none;border:none;cursor:pointer;
    transition:background .1s,color .1s;
    white-space:nowrap;
}
.rko-editor__jm-item:hover{background:#ebebed;color:var(--admin-text)}
.rko-editor__jm-sep{border:none;border-top:1px solid var(--admin-line);margin:4px 0}
.rko-editor__sep{
    width:1px;height:20px;
    background:#d1d5db;
    margin:0 4px;
    flex-shrink:0;
}
.rko-editor__spacer{flex:1}
.rko-editor__row-label{
    display:inline-flex;align-items:center;gap:4px;
    font-size:11px;font-weight:600;text-transform:uppercase;
    letter-spacing:.04em;color:var(--admin-muted);
    padding-right:6px;white-space:nowrap;
}
.rko-editor__row-label svg{width:13px;height:13px}

/* ── Selects inside toolbar ─────────────────────────── */
.rko-editor__select{
    appearance:none;
    border:1px solid #d5e2f0;
    border-radius:5px;
    background:#fff;
    color:var(--admin-text);
    padding:4px 20px 4px 8px;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    height:28px;
}
.rko-editor__select--list{max-width:160px}
.rko-editor__select--tone{max-width:80px}

/* ── Link panel ─────────────────────────────────────── */
.rko-editor__link-wrap{position:relative;display:inline-flex}
.rko-editor__link-panel{
    position:fixed;top:0;left:0;z-index:5000;
    display:flex;align-items:center;gap:6px;
    background:#fff;border:1px solid var(--admin-line);border-radius:10px;
    box-shadow:0 4px 16px rgba(0,0,0,.1);
    padding:8px 10px;min-width:280px;
}
.rko-editor__link-panel[hidden]{display:none!important}
.rko-editor__link-input{
    flex:1;border:1px solid var(--admin-line);border-radius:6px;
    padding:5px 9px;font-size:13px;outline:none;
    transition:border-color .15s;font-family:inherit;
}
.rko-editor__link-input:focus{border-color:var(--admin-accent,#0b4da2)}
.rko-editor__link-ok{
    padding:5px 12px;border:none;border-radius:6px;cursor:pointer;
    background:var(--admin-accent,#0b4da2);color:#fff;font-size:12px;font-weight:600;
    white-space:nowrap;font-family:inherit;
}
.rko-editor__link-ok:hover{opacity:.88}
.rko-editor__link-cancel{
    padding:5px 8px;border:none;border-radius:6px;cursor:pointer;
    background:transparent;color:var(--admin-muted);font-size:14px;font-family:inherit;
}
.rko-editor__link-cancel:hover{color:var(--admin-text)}

/* ── List split-button ──────────────────────────────── */
.rko-editor__list-split{position:relative;display:inline-flex;align-items:center}
.rko-editor__btn--list-main{border-radius:7px 0 0 7px;border-right:1px solid var(--admin-line)}
.rko-editor__btn--list-arrow{
    border-radius:0 7px 7px 0;padding:5px 7px;font-size:11px;
    min-width:0;border-left:none;
}
.rko-editor__list-dropdown{
    position:fixed;top:0;left:0;z-index:5000;
    background:#fff;border:1px solid var(--admin-line);border-radius:10px;
    box-shadow:0 4px 16px rgba(0,0,0,.1);
    padding:8px;min-width:220px;max-height:360px;overflow-y:auto;
}
.rko-editor__list-group{margin-bottom:8px}
.rko-editor__list-group:last-child{margin-bottom:0}
.rko-editor__list-group-label{
    font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    color:var(--admin-muted);padding:2px 4px 5px;
}
.rko-editor__list-group-items{display:flex;flex-wrap:wrap;gap:3px}
.rko-editor__list-opt{
    padding:4px 8px;border:1px solid var(--admin-line);border-radius:6px;
    background:#f8fafc;font-size:12px;cursor:pointer;font-family:inherit;
    color:var(--admin-text);transition:background .12s,border-color .12s;
    white-space:nowrap;
}
.rko-editor__list-opt:hover,.rko-editor__list-opt.is-active{
    background:var(--admin-accent,#0b4da2);color:#fff;border-color:transparent;
}

/* ── Editor flash message ───────────────────────────── */
.rko-editor__editor-flash{
    display:inline-flex;align-items:center;
    padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;
    background:#fef3c7;color:#92400e;border:1px solid #fde68a;
    animation:flash-in .15s ease;
}
.rko-editor__editor-flash[hidden]{display:none!important}
.rko-editor__editor-flash[data-flash-type="error"]{background:#fee2e2;color:#991b1b;border-color:#fca5a5}
@keyframes flash-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ── Split panes ────────────────────────────────────── */
.rko-editor__panes{
    display:grid;
    grid-template-columns:1fr;
}
.rko-editor__panes--split{
    grid-template-columns:1fr 1fr;
    border-top:0;
}
.rko-editor__pane{min-width:0}
.rko-editor__pane--preview{
    border-left:1px solid var(--admin-line);
    background:#fafcff;
}
.rko-editor__preview-label{
    display:flex;align-items:center;gap:6px;
    padding:8px 14px;
    font-size:11px;font-weight:600;text-transform:uppercase;
    letter-spacing:.05em;color:var(--admin-muted);
    border-bottom:1px solid var(--admin-line);
    background:#f2f7fc;
}
.rko-editor__preview-label svg{width:13px;height:13px}
.rko-editor__preview-content{
    padding:20px;
    font-size:16px;
    line-height:1.65;
    color:#17283c;
    min-height:200px;
}
.rko-editor__preview-content p{margin:0 0 12px}
.rko-editor__preview-content h2{font-size:24px;font-weight:600;margin:20px 0 10px;line-height:1.2}
.rko-editor__preview-content h3{font-size:19px;font-weight:600;margin:16px 0 8px;line-height:1.25}

/* ── Surface (editor area) ──────────────────────────── */
.rko-editor__surface{
    min-height:280px;
    /* Match site content column width so text wraps like on the frontend */
    max-width:780px;
    padding:20px 24px;
    color:#17283c;
    font-size:16px;
    line-height:1.65;
    outline:none;
}
/* When split, surface fills its half */
.rko-editor__panes--split .rko-editor__surface{max-width:none}
.rko-editor__surface p{margin:0 0 12px}
.rko-editor__surface h2,
.rko-editor__surface h3{
    margin:18px 0 10px;
    line-height:1.22;
    font-weight:600;
}
.rko-editor__surface h2{font-size:24px}
.rko-editor__surface h3{font-size:20px}
/* ── Editor surface: list base reset ─── */
.rko-editor__surface ul,
.rko-editor__surface ol,
.rko-editor__surface dl{margin:0 0 14px 0;padding:0}
/* plain (unclassed) lists get browser defaults */
.rko-editor__surface ul:not([class]){list-style:disc;padding-left:22px}
.rko-editor__surface ol:not([class]){list-style:decimal;padding-left:22px}
/* token-classed lists: suppress built-in bullets – the CSS tokens draw their own */
.rko-editor__surface [class*="list-"]{list-style:none;padding-left:0}
.rko-editor__surface .lt-list{display:grid;gap:6px}
/* list-dot ·  */
.rko-editor__surface .list-dot > li::before{content:"·";margin-right:8px;color:var(--admin-brand);font-weight:600;font-size:1.1em}
.rko-editor__surface .list-dot > li{display:flex;align-items:baseline;gap:0}
/* list-dash –  */
.rko-editor__surface .list-dash > li::before{content:"–";margin-right:8px;color:var(--admin-muted)}
.rko-editor__surface .list-dash > li{display:flex;align-items:baseline;gap:0}
/* list-arrow →  */
.rko-editor__surface .list-arrow > li::before{content:"→";margin-right:8px;color:var(--admin-brand)}
.rko-editor__surface .list-arrow > li{display:flex;align-items:baseline;gap:0}
/* list-check ✓  */
.rko-editor__surface .list-check > li::before{content:"✓";margin-right:8px;color:#2a9d5c;font-weight:600}
.rko-editor__surface .list-check > li{display:flex;align-items:baseline;gap:0}
/* list-num — ordered with custom counter */
.rko-editor__surface .list-num{counter-reset:lt}
.rko-editor__surface .list-num > li{display:flex;align-items:baseline;gap:0;counter-increment:lt}
.rko-editor__surface .list-num > li::before{content:counter(lt)".";min-width:24px;color:var(--admin-brand);font-weight:600;font-size:.9em}
/* list-ring ○ */
.rko-editor__surface .list-ring > li{display:flex;align-items:baseline;gap:0}
.rko-editor__surface .list-ring > li::before{content:"○";margin-right:8px;color:var(--admin-brand);font-size:.85em}
/* list-chevron › */
.rko-editor__surface .list-chevron > li{display:flex;align-items:baseline;gap:0}
.rko-editor__surface .list-chevron > li::before{content:"›";margin-right:8px;color:var(--admin-brand);font-weight:600}
/* list-cross ✕ */
.rko-editor__surface .list-cross > li{display:flex;align-items:baseline;gap:0}
.rko-editor__surface .list-cross > li::before{content:"✕";margin-right:8px;color:#d2554c;font-weight:600}
/* list-chip-circle ① — number in a circle chip */
.rko-editor__surface .list-chip-circle{counter-reset:lt}
.rko-editor__surface .list-chip-circle > li{display:flex;align-items:baseline;gap:0;counter-increment:lt}
.rko-editor__surface .list-chip-circle > li::before{content:counter(lt);flex:none;width:20px;height:20px;margin-right:10px;border-radius:50%;background:#eaf2f9;color:var(--admin-brand);font-weight:600;font-size:12px;line-height:20px;text-align:center;align-self:center}
/* list-roman I. */
.rko-editor__surface .list-roman{counter-reset:lt}
.rko-editor__surface .list-roman > li{display:flex;align-items:baseline;gap:0;counter-increment:lt}
.rko-editor__surface .list-roman > li::before{content:counter(lt, upper-roman)".";min-width:32px;color:var(--admin-brand);font-weight:600;font-size:.9em}
/* list-alpha a) */
.rko-editor__surface .list-alpha{counter-reset:lt}
.rko-editor__surface .list-alpha > li{display:flex;align-items:baseline;gap:0;counter-increment:lt}
.rko-editor__surface .list-alpha > li::before{content:counter(lt, lower-alpha)")";min-width:24px;color:var(--admin-brand);font-weight:600;font-size:.9em}
/* list-bignum 01 — large number with title/body block */
.rko-editor__surface .list-bignum{counter-reset:lt;gap:14px}
.rko-editor__surface .list-bignum > li{display:flex;align-items:flex-start;gap:14px;counter-increment:lt}
.rko-editor__surface .list-bignum > li::before{content:counter(lt, decimal-leading-zero);color:var(--admin-brand);font-weight:700;font-size:26px;line-height:1.1;opacity:.55}
.rko-editor__surface .list-bignum .bignum-body{display:grid;gap:2px}
.rko-editor__surface .list-bignum .bignum-body h4{margin:0;font-size:15px;font-weight:600}
.rko-editor__surface .list-bignum .bignum-body p{margin:0;color:#41546a}
/* list-steps → */
.rko-editor__surface .list-steps > li{display:flex;align-items:baseline;gap:0}
.rko-editor__surface .list-steps > li::before{content:"→";margin-right:8px;color:var(--admin-brand);font-weight:600}
/* list-tasks ☐ — checkbox box + done state */
.rko-editor__surface .list-tasks > li{display:flex;align-items:baseline;gap:8px}
.rko-editor__surface .list-tasks .box{flex:none;width:14px;height:14px;border:1.5px solid var(--admin-brand);border-radius:4px;align-self:center}
.rko-editor__surface .list-tasks > li.done .box{background:var(--admin-brand);position:relative}
.rko-editor__surface .list-tasks > li.done .box::after{content:"✓";position:absolute;inset:0;color:#fff;font-size:10px;line-height:14px;text-align:center}
.rko-editor__surface .list-tasks > li.done{color:var(--admin-muted)}
/* list-nested ⇢ — indented secondary level */
.rko-editor__surface .list-nested > li{display:flex;align-items:baseline;gap:0;padding-left:18px}
.rko-editor__surface .list-nested > li::before{content:"⇢";margin-right:8px;color:var(--admin-muted)}
/* li state markers shared by token lists */
.rko-editor__surface .lt-list > li.is-current{color:var(--admin-brand);font-weight:600}
.rko-editor__surface .lt-list > li.is-done{color:var(--admin-muted)}
/* list-defs dl */
.rko-editor__surface .list-defs{grid-template-columns:max-content 1fr;column-gap:16px;row-gap:6px}
.rko-editor__surface .list-defs dt{margin:0}
.rko-editor__surface .list-defs dd{margin:0}
.rko-editor__surface dt{font-weight:600;margin-top:8px}
.rko-editor__surface dd{margin-left:20px;color:#41546a}
.rko-editor__surface blockquote{
    margin:18px 0;
    padding:4px 0 4px 20px;
    border-left:2px solid #b8cadd;
    color:#384c62;
    background:transparent;
    border-radius:0;
    font-size:1.05em;
    line-height:1.65;
    font-style:italic;
    font-weight:400;
}
.rko-editor__surface blockquote b,
.rko-editor__surface blockquote strong{font-weight:500}
.rko-editor__surface a{color:var(--admin-brand);font-weight:600;text-decoration:none}
.rko-editor__surface .text-accent{color:var(--admin-brand);font-weight:500}
.rko-editor__surface .text-muted{color:var(--admin-muted);font-weight:500}
.rko-editor__surface b,
.rko-editor__surface strong{font-weight:600}
.rko-editor__surface .rko-text-accent-block{
    margin:var(--text-accent-block-margin-y) 0;
    color:var(--text-accent-block-color);
    font-weight:400;
}
.rko-editor__surface .rko-text-accent-block b,
.rko-editor__surface .rko-text-accent-block strong{font-weight:inherit}
/* ── Table in surface ───────────────────────────────── */
.rko-editor-table-block{
    position:relative;
    margin:14px 0;
    display:block;
    overflow-x:auto;
    outline:2px solid transparent;
    outline-offset:2px;
    border-radius:3px;
    transition:outline-color .15s;
}
.rko-editor-table-block:hover{outline-color:rgba(80,95,110,.18);}
.rko-editor-table-block[data-selected]{outline-color:#7a8a9a;}
.rko-editor__surface .rko-table{
    display:table;
    margin:0;
    border-radius:2px;
    width:100%;
    min-width:100%;
    max-width:100%;          /* respect content column */
    table-layout:auto;
}
/* Selected cell focus ring */
.rko-editor__surface .rko-table td:focus-within,
.rko-editor__surface .rko-table th:focus-within{
    outline:2px solid var(--admin-brand);
    outline-offset:-2px;
}
/* Row hover */
.rko-editor__surface .rko-table--line tbody tr:hover>td,
.rko-editor__surface .rko-table--filled tbody tr:hover>td{
    background:rgba(31,95,155,.05)!important;
}
/* Column resize handle — right edge of each TH */
.rko-editor__surface .rko-table thead th{
    position:relative;
}
.rko-editor__surface .rko-table thead th::after{
    content:'';
    position:absolute;
    right:0;top:0;
    width:6px;height:100%;
    cursor:col-resize;
    z-index:1;
}
/* Baseline admin table styles for surface */
.rko-editor__surface .rko-table th,
.rko-editor__surface .rko-table td{
    padding:8px 12px;
    vertical-align:top;
    text-align:left;
    font-size:14px;
    line-height:1.5;
}
.rko-editor__surface .rko-table tr > :first-child{
    padding-left:0;
}
.rko-editor__surface .rko-table--line th,
.rko-editor__surface .rko-table--line td{
    border-bottom:1px solid var(--table-line-color, #d5e4f0);
}
.rko-editor__surface .rko-table--line thead th{
    border-bottom:2px solid var(--table-line-color, #5a8fc2);
    font-weight:600;
    background:#eef5fc;
}
.rko-editor__surface .rko-table--filled th{
    background:#1a5a96;color:#fff;font-weight:600;
    border:1px solid #c5d5e8;
}
.rko-editor__surface .rko-table--filled td{
    border:1px solid #d5e4f0;
    background:#fff;
}
.rko-editor__surface .rko-table--filled tbody tr:nth-child(even) td{
    background:#eef5fc;
}
.rko-editor__surface .rko-table--compact th,
.rko-editor__surface .rko-table--compact td{padding-top:4px;padding-bottom:4px}

/* ── Entity inside table cell — inline compact rendering ── */
.rko-editor__surface .rko-table .rko-editor-entity{
    display:inline-flex;
    align-items:baseline;
    gap:4px;
    padding:0;
    margin:0 2px;
    border:none;
    background:transparent;
    box-shadow:none;
    border-radius:0;
}
.rko-editor__surface .rko-table .rko-editor-entity__type-chip{display:none}
.rko-editor__surface .rko-table .rko-editor-entity__title{
    display:inline;
    font-size:inherit;
    font-weight:600;
    color:var(--admin-brand);
    text-decoration:underline;
    text-underline-offset:2px;
    line-height:inherit;
}
.rko-editor__surface .rko-table .rko-editor-entity__subtitle{display:none}
.rko-editor__surface .rko-table .rko-editor-entity__meta{
    display:inline;
    font-size:11px;
    font-family:monospace;
    color:var(--admin-muted);
    margin-left:4px;
    opacity:.7;
}

/* ── Table floating toolbar ──────────────────────────── */
.rko-editor__table-toolbar{
    position:absolute;
    top:-34px;
    right:8px;
    z-index:10;
    display:flex;
    align-items:center;
    gap:3px;
    padding:4px 6px;
    background:#fff;
    border:1px solid #d1d5db;
    border-radius:8px;
    box-shadow:0 4px 16px rgba(30,40,50,.12);
    opacity:0;
    pointer-events:none;
    transition:opacity .15s;
}
.rko-editor-table-block:hover .rko-editor__table-toolbar,
.rko-editor-table-block[data-selected] .rko-editor__table-toolbar{
    opacity:1;
    pointer-events:auto;
}
.rko-tbt__btn{
    display:flex;align-items:center;gap:5px;
    height:26px;
    padding:0 8px;
    border-radius:5px;
    border:1px solid transparent;
    background:transparent;
    cursor:pointer;
    color:var(--admin-text);
    font-size:12px;
    white-space:nowrap;
    transition:background .1s,border-color .1s,color .1s;
}
.rko-tbt__btn svg{width:13px;height:13px;flex-shrink:0}
.rko-tbt__label{font-size:12px;font-weight:500;letter-spacing:0}
.rko-tbt__btn:hover{
    background:var(--admin-brand-soft);
    border-color:var(--admin-brand);
    color:var(--admin-brand);
}
.rko-tbt__btn--danger:hover{
    background:#fee8e8;
    border-color:var(--admin-danger);
    color:var(--admin-danger);
}
.rko-tp__colors{display:flex;gap:6px;flex-wrap:wrap;padding:2px 0}
.rko-tp__color{
    width:20px;height:20px;border-radius:50%;
    border:2px solid transparent;
    background:var(--swatch,#ccc);
    cursor:pointer;
    transition:border-color .12s,transform .1s;
    padding:0;
}
.rko-tp__color:hover{transform:scale(1.15)}
.rko-tp__color.is-active{border-color:var(--admin-text)}

/* ── Entity panel ───────────────────────────────────── */
.rko-editor__entity-panel{
    border-top:2px solid #c5cdd6;
    background:#fff;
}

/* ── Person Resolver Panel ───────────────────────────────────────────────── */
.rko-editor__resolver-panel{
    border-top:2px solid #b8cfe8;
    background:#fff;
    display:flex;
    flex-direction:column;
    max-height:480px;
}
.rko-resolver__head{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border-bottom:1px solid var(--admin-line,#e4eaf0);
    background:#f5f8fc;
    flex-shrink:0;
}
.rko-resolver__title{font-size:12px;font-weight:600;color:var(--admin-text);flex:1}
.rko-resolver__status{font-size:11px;color:var(--admin-muted);margin-right:4px}
.rko-resolver__list{
    flex:1;overflow-y:auto;
    display:flex;flex-direction:column;gap:6px;
    padding:8px;
}
.rko-resolver__footer{
    display:flex;gap:8px;align-items:center;
    padding:8px 12px;
    border-top:1px solid var(--admin-line,#e4eaf0);
    background:#f5f8fc;
    flex-shrink:0;
}
.rko-editor__resolver-panel.is-collapsed{
    max-height:none;
}
.rko-editor__resolver-panel.is-collapsed .rko-resolver__list,
.rko-editor__resolver-panel.is-collapsed .rko-resolver__footer{
    display:none;
}
.rko-resolver__empty,.rko-resolver__scanning{
    font-size:12px;color:var(--admin-muted);
    padding:16px;text-align:center;
}

/* Individual resolver item */
.rko-resolver-item{
    border:1px solid var(--admin-line,#e4eaf0);
    border-radius:7px;
    overflow:hidden;
    font-size:12px;
}
.rko-resolver-item--exact .rko-resolver-item__hd{background:#edf7ee}
.rko-resolver-item--possible .rko-resolver-item__hd{background:#fef9ec}
.rko-resolver-item--none .rko-resolver-item__hd{background:#fef2f2}
.rko-resolver-item--ignored .rko-resolver-item__hd{background:#f5f5f5;opacity:.6}

.rko-resolver-item__hd{
    display:flex;align-items:center;gap:6px;
    padding:6px 10px;
}
.rko-resolver-item__dot{
    width:7px;height:7px;border-radius:50%;flex-shrink:0;
    background:var(--admin-muted);
}
.rko-resolver-item--exact    .rko-resolver-item__dot{background:#3a7d44}
.rko-resolver-item--possible .rko-resolver-item__dot{background:#c8a227}
.rko-resolver-item--none     .rko-resolver-item__dot{background:#c0392b}

.rko-resolver-item__mention{font-weight:600;color:var(--admin-text)}
.rko-resolver-item__body{
    padding:6px 10px;
    display:flex;flex-direction:column;gap:4px;
}
.rko-resolver-item__match{
    display:flex;align-items:center;gap:6px;
    padding:4px 6px;border-radius:5px;
    cursor:pointer;
}
.rko-resolver-item__match:hover{background:var(--admin-surface-soft,#f5f8fc)}
.rko-resolver-item__match--ignore{color:var(--admin-muted)}
.rko-resolver-item__match-info{display:flex;flex-direction:column;flex:1;min-width:0}
.rko-resolver-item__match-name{font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rko-resolver-item__match-sub{font-size:11px;color:var(--admin-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rko-resolver-item__not-found{color:var(--admin-muted);font-style:italic;margin:0}
.rko-resolver-item__create-link{
    font-size:11px;color:var(--admin-brand,#1f5f9b);
    text-decoration:none;margin-top:2px;padding:2px 6px;
}
.rko-resolver-item__create-link:hover{text-decoration:underline}

/* Match type badges */
.rko-resolver-badge{
    flex-shrink:0;font-size:10px;font-weight:600;
    padding:1px 6px;border-radius:20px;
}
.rko-resolver-badge--exact{color:#3a7d44;background:#edf7ee;border:1px solid #b7dfbb}
.rko-resolver-badge--possible{color:#7a5c00;background:#fef9ec;border:1px solid #e8d9a0}

/* Highlighted person links in editor surface */
.rko-person-link{
    background:rgba(31,95,155,.10);
    border-bottom:1.5px solid #1f5f9b;
    color:inherit;
    border-radius:2px;
    cursor:default;
    position:relative;
}
.rko-person-link:hover::after{
    content:attr(title);
    position:absolute;bottom:calc(100% + 4px);left:0;
    background:#10263d;color:#fff;
    font-size:11px;font-family:system-ui,sans-serif;
    padding:3px 8px;border-radius:4px;
    white-space:nowrap;z-index:1000;
    pointer-events:none;
}

/* Resolver btn in toolbar */
.rko-editor__btn--resolver{color:var(--admin-brand,#1f5f9b)}
.rko-editor__btn--resolver.is-active{background:var(--admin-brand-soft);color:var(--admin-brand)}
.rko-editor__btn--primary-sm{
    padding:4px 12px;background:var(--admin-brand,#1f5f9b);
    color:#fff;border:none;border-radius:5px;font-size:12px;
    font-weight:600;cursor:pointer;
}
.rko-editor__btn--primary-sm:hover{background:#184e83}
.rko-editor__entity-panel-head{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    background:#f4f5f7;
    border-bottom:1px solid var(--admin-line);
}
.rko-editor__entity-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    flex:1;
    min-width:0;
}
.rko-editor__entity-tab{
    display:inline-flex;align-items:center;gap:4px;
    padding:4px 10px;
    border:1px solid #d1d5db;
    border-radius:999px;
    background:#fff;
    color:var(--admin-text);
    font-size:12px;font-weight:600;
    cursor:pointer;
    transition:background .12s,border-color .12s,color .12s;
}
.rko-editor__entity-tab svg{width:13px;height:13px}
.rko-editor__entity-tab:hover{background:#ebebed;border-color:#9aa4ae;color:var(--admin-text)}
.rko-editor__entity-tab.is-active{background:var(--admin-text);border-color:var(--admin-text);color:#fff}
.rko-editor__entity-search-wrap{
    display:flex;align-items:center;gap:6px;
    padding:4px 10px;
    border:1px solid #d1d5db;
    border-radius:6px;
    background:#fff;
    min-width:200px;
}
.rko-editor__entity-search-wrap svg{width:14px;height:14px;color:var(--admin-muted);flex-shrink:0}
.rko-editor__entity-search{
    border:none;outline:none;
    background:transparent;
    font-size:13px;
    color:var(--admin-text);
    width:100%;
}
.rko-editor__entity-results{
    max-height:320px;
    overflow-y:auto;
    padding:10px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
/* single-column when only 1 result or error/empty spans full width */
.rko-editor__entity-results .rko-editor__entity-empty{grid-column:1/-1}
.rko-editor__entity-empty{
    padding:20px;
    text-align:center;
    color:var(--admin-muted);
    font-size:13px;
}

/* ── Hint ───────────────────────────────────────────── */
.rko-editor__hint{
    padding:8px 14px;
    border-top:1px solid var(--admin-line);
    color:var(--admin-muted);
    background:#fbfdff;
    font-size:11px;
}

/* ── JSON import/export ───────────────────────────── */
.rko-editor__json-modal[hidden]{display:none}
.rko-editor__json-modal{
    position:fixed;
    inset:0;
    z-index:1200;
    display:grid;
    place-items:center;
    padding:24px;
    background:rgba(8,24,40,.32);
}
.rko-editor__json-dialog{
    width:min(760px,calc(100vw - 32px));
    max-height:calc(100vh - 48px);
    overflow:auto;
    padding:20px;
    border:1px solid var(--admin-line,#d8e4f2);
    border-radius:12px;
    background:#fff;
    box-shadow:0 24px 80px rgba(22,44,74,.22);
}
.rko-editor__json-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}
.rko-editor__json-head strong{font-weight:600;color:var(--admin-text)}
.rko-editor__json-note{
    margin:0 0 12px;
    color:var(--admin-muted,#718298);
    font-size:14px;
    line-height:1.45;
}
.rko-editor__json-textarea{
    width:100%;
    min-height:320px;
    resize:vertical;
    padding:12px;
    border:1px solid var(--admin-line,#d8e4f2);
    border-radius:8px;
    background:#fbfdff;
    color:var(--admin-text);
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    font-size:13px;
    line-height:1.45;
}
.rko-editor__json-textarea:focus{
    outline:2px solid rgba(31,95,155,.16);
    border-color:var(--admin-brand);
}
.rko-editor__json-status{
    min-height:20px;
    margin-top:10px;
    color:var(--admin-muted,#718298);
    font-size:13px;
}
.rko-editor__json-status.is-error{color:#b91c1c}
.rko-editor__json-status.is-ok{color:#166534}
.rko-editor__json-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:12px;
}
/* ── Entity chip inserted into surface (mirrors rko-entity-card) ── */
.rko-editor-entity{
    display:grid;
    gap:5px;
    margin:14px 0;
    padding:14px 16px;
    border:1px solid var(--admin-line);
    border-radius:12px;
    background:#fff;
    box-shadow:0 4px 14px rgba(17,41,71,.07);
    cursor:default;
    user-select:none;
}
.rko-editor-entity__type-chip{
    display:inline-flex;
    width:max-content;
    padding:3px 10px;
    border-radius:999px;
    background:#eaf2f9;
    color:#1f5f9b;
    font-size:12px;
    font-weight:600;
    line-height:1.2;
}
.rko-editor-entity__title{
    display:block;
    color:var(--admin-text);
    font-size:15px;
    font-weight:600;
    line-height:1.3;
}
.rko-editor-entity__subtitle{
    display:block;
    color:var(--admin-muted);
    font-size:12px;
}
.rko-editor-entity__meta{
    display:block;
    color:var(--admin-muted);
    font-size:11px;
    font-family:monospace;
    letter-spacing:.01em;
}
.rko-entity-picker{
    width:min(980px, calc(100vw - 48px));
    border:0;
    padding:0;
    border-radius:10px;
    background:transparent;
}
.rko-entity-picker::backdrop{background:rgba(9,17,27,.38)}
.rko-entity-picker__dialog{
    display:grid;
    gap:16px;
    padding:22px;
    background:var(--admin-surface);
    border-radius:10px;
    box-shadow:0 24px 80px rgba(17,41,71,.18);
}
.rko-entity-picker__head,
.rko-entity-picker__controls{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}
.rko-entity-picker__title{font-size:16px;line-height:1.25;font-weight:600;color:var(--admin-text)}
.rko-entity-picker__head p{margin:4px 0 0;color:var(--admin-muted);font-size:13px}
.rko-entity-picker__controls > *{flex:1}
.rko-entity-picker__results{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    max-height:60vh;
    overflow:auto;
}
.rko-entity-picker__card{
    display:grid;
    gap:0;
    padding:12px;
    border:1px solid var(--admin-line);
    border-radius:10px;
    background:#fff;
    box-shadow:0 2px 8px rgba(17,41,71,.05);
}
.rko-entity-picker__card--person{
    grid-template-columns:40px 1fr;
    gap:0 10px;
}
.rko-entity-picker__card--person .rko-entity-picker__card-body{
    padding-bottom:10px;
}
.rko-entity-picker__card--person .rko-entity-picker__card-foot{
    grid-column:2;
}
.rko-entity-picker__avatar{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    border-radius:50%;
    background:var(--person-avatar-bg,#e8edf5);
    color:var(--person-avatar-color,#4d6080);
    font-size:12px;
    font-weight:600;
    overflow:hidden;
    flex-shrink:0;
    align-self:start;
    margin-top:2px;
}
.rko-entity-picker__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.rko-entity-picker__card-body{
    display:grid;
    gap:4px;
    padding-bottom:10px;
}
.rko-entity-picker__card-foot{
    display:flex;
    align-items:center;
    padding-top:10px;
    border-top:1px solid var(--admin-line);
}
/* type label pill */
.rko-entity-picker__type{
    display:inline-flex;
    width:max-content;
    padding:2px 9px;
    border-radius:999px;
    background:#eaf2f9;
    color:#1f5f9b;
    font-size:11px;
    font-weight:600;
    line-height:1.3;
}
.rko-entity-picker__item-title{font-size:14px;line-height:1.3;font-weight:600;color:var(--admin-text)}
.rko-entity-picker__meta{margin:0;color:var(--admin-muted);font-size:12px;line-height:1.45}
.rko-entity-picker__ids{color:var(--admin-muted);font-size:11px;font-family:monospace;opacity:.75}
/* Вставить pill button */
.rko-entity-picker__insert-btn{
    display:inline-flex;
    align-items:center;
    padding:4px 14px;
    border-radius:999px;
    border:1.5px solid var(--admin-brand);
    background:transparent;
    color:var(--admin-brand);
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    white-space:nowrap;
    transition:background .12s,color .12s;
}
.rko-entity-picker__insert-btn:hover{background:var(--admin-text);color:#fff}
.rko-entity-picker__empty{
    padding:14px;
    border:1px dashed var(--admin-line);
    border-radius:7px;
    color:var(--admin-muted);
    background:#f5f6f7;
}

.rko-table-import{
    width:min(1040px, calc(100vw - 48px));
    border:0;
    padding:0;
    border-radius:10px;
    background:transparent;
}
.rko-table-import::backdrop{background:rgba(9,17,27,.38)}
.rko-table-import__dialog{
    display:grid;
    gap:16px;
    padding:22px;
    background:var(--admin-surface);
    border-radius:10px;
    box-shadow:0 24px 80px rgba(17,41,71,.18);
}
.rko-table-import__controls{
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
}
.rko-table-import__controls label{
    display:inline-flex;
    gap:8px;
    align-items:center;
    color:var(--admin-muted);
    font-size:13px;
    font-weight:600;
}
.rko-table-import__preview{
    max-height:360px;
    overflow:auto;
    padding:12px;
    border:1px solid var(--admin-line);
    border-radius:7px;
    background:#fbfdff;
}
.rko-table-import__actions{display:flex;justify-content:flex-end}

/* ══════════════════════════════════════════════════════════
   RKO Editor — Table Panel
   ══════════════════════════════════════════════════════════ */

/* Panel container — floating, fixed to escape stacking contexts */
.rko-editor__table-panel{
    position:fixed;
    z-index:5000;
    top:0; left:0;          /* overridden by JS */
    width:292px;
    background:#fff;
    border:1px solid #d1d5db;
    border-radius:12px;
    box-shadow:0 14px 48px rgba(30,40,50,.13),0 2px 8px rgba(30,40,50,.06);
    overflow:hidden;
    animation:rko-tp-open .14s ease;
}
@keyframes rko-tp-open{
    from{opacity:0;transform:translateY(-6px)}
    to{opacity:1;transform:translateY(0)}
}
.rko-tp__inner{
    max-height:min(520px, calc(100vh - 80px));
    overflow-y:auto;
}

/* ── Section ─── */
.rko-tp__section{
    padding:12px 14px;
    border-bottom:1px solid #e8eaec;
}
.rko-tp__section:last-child{border-bottom:none}
.rko-tp__section--context[hidden]{display:none}
.rko-tp__section-title{
    font-size:10px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--admin-muted);
    margin-bottom:10px;
}


/* ── Style thumbnails ─── */
/* ── Preset cards ─── */
.rko-tp__presets{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:5px;
}
.rko-tp__preset{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    padding:7px 5px 6px;
    border:1.5px solid #d1d5db;
    border-radius:8px;
    background:#f5f6f7;
    cursor:pointer;
    transition:border-color .12s,background .12s,box-shadow .12s;
    text-align:center;
}
.rko-tp__preset:hover{
    border-color:#9aa4ae;
    background:#ebebed;
}
.rko-tp__preset--primary{
    border-color:#6a7f97;
    background:#eaecee;
}
.rko-tp__preset--primary:hover{
    border-color:#3a4755;
    background:#e2e5e8;
    box-shadow:0 2px 8px rgba(30,40,50,.1);
}
.rko-tp__preset-preview{
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:0;
}
.rko-tp__preset-name{
    font-size:10px;
    font-weight:600;
    color:var(--admin-text);
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
}

.rko-tp__styles{display:flex;gap:10px}
.rko-tp__style-btn{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    padding:8px 6px;
    border-radius:8px;
    border:2px solid #d1d5db;
    background:#f5f6f7;
    cursor:pointer;
    transition:border-color .12s,background .12s;
}
.rko-tp__style-btn span{
    font-size:11px;font-weight:600;
    color:var(--admin-muted);
    transition:color .12s;
}
.rko-tp__style-btn.is-active{
    border-color:#6a7f97;
    background:#eaecee;
}
.rko-tp__style-btn.is-active span{color:var(--admin-text)}
.rko-tp__style-btn:hover:not(.is-active){
    border-color:#9aa4ae;
    background:#ebebed;
}

/* ── Option toggles ─── */
.rko-tp__toggle{
    display:flex;align-items:center;gap:8px;
    padding:4px 0;
    font-size:13px;
    color:var(--admin-text);
    cursor:pointer;
    user-select:none;
}
.rko-tp__toggle input{
    width:15px;height:15px;
    accent-color:#6a7f97;
    cursor:pointer;
    flex-shrink:0;
}

/* ── Row/col action buttons ─── */
.rko-tp__actions{
    display:flex;
    align-items:center;
    gap:4px;
    flex-wrap:wrap;
}
.rko-tp__action-btn{
    display:flex;align-items:center;justify-content:center;
    width:30px;height:30px;
    border-radius:6px;
    border:1px solid #d1d5db;
    background:#f5f6f7;
    cursor:pointer;
    color:var(--admin-text);
    transition:background .1s,border-color .1s,color .1s;
}
.rko-tp__action-btn svg{width:15px;height:15px}
.rko-tp__action-btn:hover{
    background:#ebebed;
    border-color:#9aa4ae;
    color:var(--admin-text);
}
.rko-tp__action-btn--danger:hover{
    background:#fee8e8;
    border-color:var(--admin-danger);
    color:var(--admin-danger);
}
.rko-tp__actions-sep{
    width:1px;height:20px;
    background:#d1d5db;
    margin:0 2px;
}

/* ── Import tiles ─── */
.rko-tp__import-tiles{display:flex;gap:6px;flex-wrap:wrap}
.rko-tp__import-tile{
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 10px;
    border-radius:6px;
    border:1px solid #d1d5db;
    background:#f5f6f7;
    font-size:12px;font-weight:600;
    color:var(--admin-text);
    cursor:pointer;
    transition:background .1s,border-color .1s,color .1s;
}
.rko-tp__import-tile svg{width:12px;height:12px;color:var(--admin-muted)}
.rko-tp__import-tile:hover{
    background:#ebebed;
    border-color:#9aa4ae;
    color:var(--admin-text);
}
/* Import inline form */
.rko-tp__import-form{
    margin-top:10px;
    display:grid;
    gap:8px;
}
.rko-tp__import-textarea{
    width:100%;
    min-height:80px;
    padding:8px 10px;
    font-size:12px;font-family:monospace;
    border:1px solid #d1d5db;
    border-radius:6px;
    resize:vertical;
    outline:none;
    box-sizing:border-box;
    background:#f5f6f7;
    color:var(--admin-text);
}
.rko-tp__import-textarea:focus{border-color:#9aa4ae;background:#fff}
.rko-tp__import-actions{display:flex;gap:6px;justify-content:flex-end}

.rko-table{
    display:block;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    border-collapse:collapse;
    border-spacing:0;
    font-family:var(--table-font-family);
    font-size:var(--table-font-size);
    line-height:var(--table-line-height);
    font-weight:var(--table-body-weight);
    color:var(--admin-text);
    white-space:normal;
}
.rko-table th,
.rko-table td{
    padding:var(--table-cell-padding-y) var(--table-cell-padding-x);
    vertical-align:middle;
    text-align:left;
    overflow-wrap:anywhere;
    font-weight:var(--table-body-weight);
}
.rko-table--compact th,
.rko-table--compact td{padding-top:var(--table-cell-padding-y-compact);padding-bottom:var(--table-cell-padding-y-compact)}
.rko-table__cell--header,
.rko-table th{font-weight:var(--table-header-weight)}
.rko-table__cell--numeric,
.rko-table__cell--right{text-align:right}
.rko-table__cell--center{text-align:center}
.rko-table__cell--top{vertical-align:top}
.rko-table__cell--middle{vertical-align:middle}
.rko-table--line th,
.rko-table--line td{
    border:0;
    border-bottom:var(--table-line-border-width) solid color-mix(in srgb, var(--table-line-border-color) 34%, transparent);
    background:transparent;
}
.rko-table--line thead th{border-bottom:var(--table-header-border-width) solid var(--table-line-border-color)}
.rko-table--filled th{
    background:var(--table-header-bg);
    color:var(--table-header-color);
    border:1px solid var(--table-grid-color);
}
.rko-table--filled td{
    border:1px solid var(--table-grid-color);
    background:var(--table-row-bg-a);
}
.rko-table--filled tbody tr:nth-child(even) td{background:var(--table-row-bg-b)}
.rko-table__cell--semantic-i{background:var(--table-semantic-i-bg)!important;font-weight:600}
.rko-table__cell--semantic-iia{background:var(--table-semantic-iia-bg)!important;font-weight:600}
.rko-table__cell--semantic-iib{background:var(--table-semantic-iib-bg)!important;font-weight:600}
.rko-table__cell--semantic-iii{background:var(--table-semantic-iii-bg)!important;font-weight:600}
.rko-entity-card{
    display:block;
    margin:14px 0;
    border:1px solid var(--admin-line);
    border-radius:7px;
    background:#fff;
    box-shadow:0 10px 28px rgba(17,41,71,.06);
}
.rko-entity-card__link{display:grid;gap:6px;padding:14px 16px}
.rko-entity-card__type{
    width:max-content;
    padding:4px 10px;
    border-radius:999px;
    background:var(--admin-brand-soft);
    color:var(--admin-brand);
    font-size:13px;
    line-height:1.2;
    font-weight:600;
}
.rko-entity-card__title{color:var(--admin-text);font-size:18px;line-height:1.28;font-weight:600}
.rko-entity-card__meta{color:var(--admin-muted);font-size:14px;line-height:1.45}
.rko-entity-link{color:var(--admin-brand);font-weight:600}
.rko-entity-missing{color:var(--admin-muted);font-weight:500}
.rko-entity-person-link{color:inherit;text-decoration:none}
.rko-entity-person-link:hover .rko-entity-person-inline__name{text-decoration:underline;text-underline-offset:3px}
.rko-entity-person-inline{
  display:inline-flex;
  align-items:center;
  gap:0.28em;
  max-width:100%;
  vertical-align:middle;
  color:var(--admin-text);
  font-weight:500;
  line-height:1.2;
  white-space:nowrap;
}
a.rko-entity-person-inline{text-decoration:none}
a.rko-entity-person-inline:hover{text-decoration:none}
a.rko-entity-person-inline:hover .rko-entity-person-inline__name{text-decoration:underline;text-underline-offset:3px}
.rko-entity-person-inline__avatar,
.rko-entity-person-chip__avatar{
  flex:0 0 auto;
  width:20px;
  height:20px;
  position:relative;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  margin-right:0;
  vertical-align:middle;
  overflow:hidden;
  background:var(--person-avatar-bg);
  color:var(--person-avatar-color);
  box-shadow:inset 0 0 0 1px var(--person-avatar-border);
  font-size:9px;
  line-height:1;
  font-weight:var(--person-avatar-font-weight);
}
.rko-entity-person-inline__avatar__image,
.rko-entity-person-chip__avatar__image{
  position:absolute;
  inset:0;
  z-index:1;
}
.rko-entity-person-inline__avatar__initials,
.rko-entity-person-chip__avatar__initials{
  position:relative;
  z-index:0;
}
.rko-entity-person-inline__avatar img,
.rko-entity-person-chip__avatar img,
.rko-entity-person-card__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.rko-entity-person-inline__name{font-weight:500;color:var(--admin-text);line-height:1.2}
.rko-entity-person-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  max-width:100%;
  padding:4px 10px 4px 5px;
  border:1px solid var(--admin-line);
  border-radius:999px;
  background:var(--admin-surface);
  color:var(--admin-text);
  vertical-align:middle;
  font-weight:600;
}
.rko-entity-person-chip__avatar{width:22px;height:22px;font-size:10px}
.rko-entity-person-chip__name{font-size:14px;line-height:1.25;font-weight:600}
.rko-entity-person-card{
  display:inline-grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  width:min(100%, 360px);
  margin:8px 10px 8px 0;
  padding:12px;
  border:1px solid var(--admin-line);
  border-radius:12px;
  background:var(--admin-surface);
  box-shadow:0 10px 28px rgba(17,41,71,.06);
  vertical-align:top;
}
.rko-entity-person-card--speaker{width:min(100%, 420px);align-items:start}
.rko-entity-person-card__avatar{
  width:56px;
  height:56px;
  border-radius:999px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:var(--person-avatar-bg);
  color:var(--person-avatar-color);
  box-shadow:inset 0 0 0 1px var(--person-avatar-border);
  font-size:18px;
  line-height:1;
  font-weight:var(--person-avatar-font-weight);
}
.rko-entity-person-card__avatar--speaker{width:64px;height:64px;font-size:20px}
.rko-entity-person-card__body{display:grid;gap:4px;min-width:0}
.rko-entity-person-card__role{
  width:max-content;
  max-width:100%;
  padding:3px 8px;
  border-radius:999px;
  background:var(--admin-brand-soft);
  color:var(--admin-brand);
  font-size:12px;
  line-height:1.2;
  font-weight:600;
}
.rko-entity-person-card__name{color:var(--admin-text);font-size:17px;line-height:1.25;font-weight:600}
.rko-entity-person-card__meta{color:var(--admin-muted);font-size:13px;line-height:1.4;font-weight:400}

/* ── Mode overrides (inline / compact / full) ── */
/* inline: avatar 20px + name, runs in text flow */
.rko-entity-person-card--inline{
    display:inline-flex;align-items:center;gap:5px;
    width:auto;padding:0;margin:0;border:none;border-radius:0;
    background:transparent;box-shadow:none;vertical-align:middle;
    line-height:1.2;white-space:nowrap;
}
.rko-entity-person-card--inline .rko-entity-person-card__avatar{width:20px;height:20px;font-size:8px;flex-shrink:0}
.rko-entity-person-card--inline .rko-entity-person-card__body{display:inline;gap:0}
.rko-entity-person-card--inline .rko-entity-person-card__name{font-size:inherit;font-weight:500;line-height:1.2;color:var(--admin-text)}
.rko-entity-person-card--inline .rko-entity-person-card__role,
.rko-entity-person-card--inline .rko-entity-person-card__meta,
.rko-entity-person-card--inline .rko-entity-person-card__city{display:none}

/* compact: pill shape, avatar 40px, role badge + full name */
.rko-entity-person-card--compact{
    display:inline-flex;align-items:center;gap:8px;
    width:auto;padding:5px 14px 5px 5px;margin:0;
    border:1px solid var(--admin-line);border-radius:999px;
    background:var(--admin-surface);box-shadow:none;vertical-align:middle;
}
.rko-entity-person-card--compact .rko-entity-person-card__avatar{width:36px;height:36px;font-size:13px;flex-shrink:0}
.rko-entity-person-card--compact .rko-entity-person-card__body{display:grid;gap:2px}
.rko-entity-person-card--compact .rko-entity-person-card__name{font-size:13px;font-weight:600;line-height:1.2}
.rko-entity-person-card--compact .rko-entity-person-card__role{font-size:10px;padding:1px 6px;font-weight:600}
.rko-entity-person-card--compact .rko-entity-person-card__meta,
.rko-entity-person-card--compact .rko-entity-person-card__city{display:none}

/* full: bordered card, avatar 64px, role + name + meta + city */
.rko-entity-person-card--full{
    display:inline-grid;grid-template-columns:auto minmax(0,1fr);
    gap:14px;align-items:start;
    width:min(100%,400px);padding:16px;margin:0;
    border:1px solid var(--admin-line);border-radius:12px;
    background:var(--admin-surface);
    box-shadow:0 4px 20px rgba(17,41,71,.07);vertical-align:top;
}
.rko-entity-person-card--full .rko-entity-person-card__avatar{width:64px;height:64px;font-size:20px;flex-shrink:0}
.rko-entity-person-card--full .rko-entity-person-card__body{display:grid;gap:5px}
.rko-entity-person-card--full .rko-entity-person-card__name{font-size:16px;font-weight:600;line-height:1.25}
.rko-entity-person-card--full .rko-entity-person-card__role{font-size:11px;padding:2px 8px;font-weight:600}
.rko-entity-person-card--full .rko-entity-person-card__meta{font-size:12px}
.rko-entity-person-card--full .rko-entity-person-card__city{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--admin-muted)}
.rko-entity-person-card--full .rko-entity-person-card__city svg{opacity:.6;flex-shrink:0}

/* Backwards compat: --speaker = --full */
.rko-entity-person-card--speaker{width:min(100%, 420px);align-items:start}

.news-media-card{align-content:start}
.news-media-card__media{display:grid;place-items:center;background:#eef4fb}
.news-media-card__media--landscape{aspect-ratio:16/9}
.news-media-card__media--square{aspect-ratio:1/1}
.news-media-card__empty{
    color:var(--admin-muted);
    font-size:14px;
    line-height:1.5;
    text-align:center;
    padding:20px;
}

.label{
    display:block;
    margin-bottom:8px;
    color:var(--admin-text);
    font-size:14px;
    font-weight:600;
}
.form-field{display:grid;gap:6px}
.form-label{font-size:14px;font-weight:600;color:var(--admin-text)}
.form-required{color:var(--admin-danger)}
.form-input,.form-select{width:100%;border:1px solid var(--admin-line);border-radius:var(--admin-radius);padding:0 14px;background:#fff;color:var(--admin-text);outline:0;height:var(--admin-input-height);box-sizing:border-box;font:inherit}
.form-input:focus,.form-select:focus{border-color:var(--admin-brand);box-shadow:0 0 0 3px rgba(31,95,155,.12)}
.form-select{padding-right:34px}
.form-actions{display:flex;align-items:center;gap:var(--admin-space-3);flex-wrap:wrap}
.form-section{display:grid;gap:var(--admin-space-4)}
.form-section + .form-section{padding-top:var(--admin-space-5);border-top:1px solid var(--admin-line)}
.form-section__head{display:flex;align-items:baseline;gap:var(--admin-space-3);flex-wrap:wrap}
.form-section__title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--admin-muted)}
.form-section__hint{font-size:12px;color:var(--admin-muted);opacity:.75}
.form-section--tech{opacity:.85}
.form-section--tech .form-section__title{color:var(--admin-muted)}

/* ── Import info block (read-only, auto-filled by import pipeline) ── */
/* ── PDF file row: two-column layout ────────────────────────────── */
.pdf-file-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:16px;
    align-items:center;
}
/* Left: current PDF card — full-tile clickable */
.pdf-file-row__current{display:flex;align-items:stretch;min-width:0}
.pdf-file-card{
    display:flex;align-items:center;gap:14px;
    text-decoration:none;color:inherit;
    padding:12px 16px;
    border:1.5px solid var(--admin-line);
    border-radius:10px;
    background:var(--admin-surface);
    transition:border-color .15s,background .15s,box-shadow .15s;
    width:100%;min-width:0;
    cursor:pointer;
}
.pdf-file-card:hover{
    border-color:#9ca3af;
    background:var(--admin-surface-soft);
    box-shadow:0 1px 4px rgba(0,0,0,.07);
}
.pdf-file-card:active{background:#f3f4f6}
.pdf-file-card--empty{
    cursor:default;
    border-style:dashed;
    background:transparent;
}
.pdf-file-card--empty:hover{border-color:var(--admin-line);background:transparent;box-shadow:none}
.pdf-file-card__icon{
    width:40px;height:47px;
    flex-shrink:0;
}
.pdf-file-card__meta{
    display:grid;gap:3px;min-width:0;
}
.pdf-file-card__name{
    font-size:13px;font-weight:500;color:var(--admin-text);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pdf-file-card__name--empty{color:var(--admin-muted);font-weight:400}
.pdf-file-card__open{
    font-size:11px;color:var(--admin-muted);
}
/* Right: upload button */
.pdf-file-row__action{
    display:flex;flex-direction:column;align-items:flex-end;gap:6px;
    flex-shrink:0;
}

/* ── Generic file-upload row (reused elsewhere) ──────────────────── */
.file-upload-row{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.file-upload-row__btn{cursor:pointer!important}
.file-upload-row__name{
    font-size:12px;color:var(--admin-muted);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px;
}

/* ── Import info block ──────────────────────────────────────────── */
.import-info-block{display:grid;gap:10px}
.import-info-block__note{
    display:flex;align-items:baseline;gap:6px;
    font-size:12px;color:var(--admin-muted);
    background:var(--admin-surface-soft);
    border:1px solid var(--admin-border);
    border-radius:6px;
    padding:8px 12px;
    line-height:1.5;
}
.import-info-block__lock{font-size:13px;flex-shrink:0;line-height:1}
.import-info-block__rows{display:grid;gap:0;border:1px solid var(--admin-border);border-radius:6px;overflow:hidden}
.import-info-block__row{
    display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;
    padding:7px 12px;font-size:12px;
    border-bottom:1px solid var(--admin-border);
}
.import-info-block__row:last-child{border-bottom:none}
.import-info-block__row:nth-child(even){background:var(--admin-surface-soft)}
.import-info-block__key{font-weight:600;color:var(--admin-muted);white-space:nowrap}
.import-info-block__val{color:var(--admin-fg);word-break:break-all}
.import-info-block__link{color:var(--admin-accent);text-decoration:none}
.import-info-block__link:hover{text-decoration:underline}
.import-info-block__empty{color:var(--admin-muted);opacity:.6}
.form-section--muted{opacity:.38;pointer-events:none;user-select:none;transition:opacity .18s}
.form-section--muted .input{background:var(--admin-surface-soft);color:var(--admin-muted)}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--admin-space-4)}
.form-hint{
    margin:6px 0 0;
    color:var(--admin-muted);
    font-size:13px;
    line-height:1.45;
}
.form-error{
    margin:0;
    color:var(--admin-danger);
    font-size:13px;
    font-weight:600;
}
.content-import-upload{display:grid;gap:16px}
.content-import-upload__text{min-height:180px}
.content-import-grid{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);
    gap:var(--admin-space-5);
    align-items:start;
    margin-top:var(--admin-space-5);
}
.content-import-fields{display:grid;gap:16px;align-content:start}
.content-import-section-head{
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:flex-start;
}
.content-import-section-head h2,
.content-import-side h2{margin:0}
.content-import-section-head p{
    margin:6px 0 0;
    color:var(--admin-muted);
}
.content-import-field{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fbfdff;
}
.content-import-field__head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
}
.content-import-field__accept{
    display:flex;
    gap:8px;
    align-items:center;
    margin:0;
    font-weight:600;
}
.content-import-field__textarea{
    min-height:110px;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:13px;
    line-height:1.45;
}
.content-import-fragment summary{
    cursor:pointer;
    color:var(--admin-brand);
    font-weight:600;
}
.content-import-fragment pre,
.content-import-source{
    margin:8px 0 0;
    padding:12px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fff;
    color:var(--admin-muted);
    font-size:13px;
    line-height:1.45;
    white-space:pre-wrap;
    word-break:break-word;
}
.content-import-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}

/* ── Event detection banner ──────────────────────────────────────────────── */
.event-detect-banner{
    border:1.5px solid var(--admin-brand);
    border-radius:var(--admin-radius);
    background:color-mix(in srgb,var(--admin-brand) 5%,#fff);
    padding:14px 16px;
    display:grid;gap:12px;
}
.event-detect-banner--likely{border-color:#3b82f6;background:color-mix(in srgb,#3b82f6 5%,#fff)}
.event-detect-banner--possible{border-color:#f59e0b;background:color-mix(in srgb,#f59e0b 5%,#fff)}
.event-detect-banner__head{display:flex;align-items:center;gap:10px}
.event-detect-banner__icon{
    width:34px;height:34px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    border-radius:8px;
    background:color-mix(in srgb,var(--admin-brand) 12%,#fff);
    color:var(--admin-brand);
}
.event-detect-banner--likely .event-detect-banner__icon{background:color-mix(in srgb,#3b82f6 12%,#fff);color:#3b82f6}
.event-detect-banner--possible .event-detect-banner__icon{background:color-mix(in srgb,#f59e0b 12%,#fff);color:#d97706}
.event-detect-banner__meta{font-size:12px;color:var(--admin-muted);display:flex;align-items:center;gap:6px;margin-top:2px}
.event-detect-banner__section-label{font-size:11px;font-weight:700;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em}
.event-detect-banner__no-candidates{font-size:12px;color:var(--admin-muted);padding:6px 0}

/* Mini event candidate cards */
.event-detect-candidates{display:grid;gap:6px}
.event-candidate{
    display:flex;align-items:flex-start;gap:10px;
    padding:10px 12px;
    border:1.5px solid var(--admin-line);border-radius:8px;
    cursor:pointer;background:var(--admin-surface);
    transition:border-color .12s,background .12s;
    position:relative;
}
.event-candidate:has(input:checked){
    border-color:var(--admin-brand);
    background:color-mix(in srgb,var(--admin-brand) 6%,#fff);
}
.event-candidate__radio{margin-top:3px;flex-shrink:0;accent-color:var(--admin-brand)}
.event-candidate__body{display:grid;gap:4px;min-width:0;flex:1}
.event-candidate__name{font-size:13px;font-weight:600;color:var(--admin-text);line-height:1.3}
.event-candidate__meta{
    display:flex;gap:8px;flex-wrap:wrap;align-items:center;
    font-size:11px;color:var(--admin-muted);
}
.event-candidate__meta span{display:flex;align-items:center;gap:3px}
.event-candidate__open{
    flex-shrink:0;padding:4px;border-radius:4px;color:var(--admin-muted);
    display:flex;align-items:center;justify-content:center;
    transition:color .12s,background .12s;
}
.event-candidate__open:hover{color:var(--admin-brand);background:color-mix(in srgb,var(--admin-brand) 8%,#fff)}

/* Action selector */
.event-detect-actions{display:grid;gap:6px;border-top:1px solid var(--admin-line);padding-top:10px}
.event-action-option{
    display:flex;align-items:flex-start;gap:10px;
    padding:10px 12px;border-radius:8px;cursor:pointer;
    border:1.5px solid transparent;
    transition:background .12s,border-color .12s;
}
.event-action-option:has(input:checked){
    background:color-mix(in srgb,var(--admin-brand) 7%,#fff);
    border-color:color-mix(in srgb,var(--admin-brand) 30%,#fff);
}
.event-action-option:has(input:disabled){opacity:.5;cursor:default}
.event-action-option input[type="radio"]{margin-top:3px;flex-shrink:0;accent-color:var(--admin-brand)}
.event-action-option__icon{font-size:16px;flex-shrink:0;margin-top:1px}
.event-action-option__body{display:grid;gap:2px}
.event-action-option__label{font-size:13px;font-weight:600;color:var(--admin-text)}
.event-action-option__hint{font-size:11px;color:var(--admin-muted)}
.content-import-side{display:grid;gap:var(--admin-space-5)}
.content-import-list{
    margin:0;
    padding-left:18px;
    color:var(--admin-muted);
}
.content-import-preview-wrap{
    display:block;
    overflow:auto;
    padding:16px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fff;
}
.content-import-preview{display:grid;gap:12px}
.content-import-preview h2{
    margin:0;
    font-size:24px;
    line-height:1.15;
}
.content-import-preview__meta{
    margin:0;
    color:var(--admin-muted);
    font-weight:600;
}
.content-import-suggestions{display:grid;gap:10px}
.content-import-suggestions h3{
    margin:10px 0 0;
    color:var(--admin-muted);
    font-size:14px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.content-import-suggestion{
    display:grid;
    gap:4px;
    padding:10px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fff;
}
.content-import-suggestion span,
.content-import-suggestion small{color:var(--admin-muted)}
.content-import-source{
    max-height:520px;
    overflow:auto;
    margin:0;
}

@media (max-width:1320px){
    .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1080px){
    .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .split,.preview-certificate,.grid-3{grid-template-columns:1fr}
    .homepage-editor,
    .homepage-slot-card__controls,
    .homepage-slot-card__head,
    .homepage-picker-card{grid-template-columns:1fr}
    .homepage-picker__results{grid-template-columns:1fr}
    .homepage-slider-slot{grid-template-columns:38px 160px minmax(0,1fr)}
    .homepage-slider-slot__actions{grid-column:2 / -1;justify-content:flex-start}
    .homepage-mini-card{grid-template-columns:150px minmax(0,1fr)}
    .homepage-sortable-item{grid-template-columns:auto 96px minmax(0,1fr) auto}
    .homepage-sortable-item__media{width:96px}
    .content-import-grid{grid-template-columns:1fr}
}
@media (max-width:960px){
    .admin-sidebar{position:static;width:auto}
    .admin-main{margin-left:0;padding:20px}
    .admin-shell{display:grid}
}
@media (max-width:720px){
    .homepage-mini-card,
    .homepage-sortable-item,
    .homepage-slider-slot{grid-template-columns:1fr}
    .homepage-sortable-item__media{width:100%}
    .homepage-slider-slot__order{width:32px;height:32px}
    .homepage-slider-slot__actions{grid-column:auto}
    .grid-2,.stats{grid-template-columns:1fr}
    .admin-topbar__title{font-size:28px}
    .admin-search input{min-width:0;width:100%}
    .certificate-live-preview__frame{min-height:520px}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Cover Generator
   ═══════════════════════════════════════════════════════════════════════════ */

.cover-gen{display:grid;gap:8px;margin-bottom:16px}

.cover-gen__preview-wrap{
    position:relative;
    border-radius:var(--admin-radius);
    overflow:hidden;
    background:#1e3148;
    line-height:0;
    container-type:inline-size;  /* enables cqw units inside */
}
.cover-gen__canvas{
    display:block;
    width:100%;
    height:auto;
    border-radius:var(--admin-radius);
}

/* Upload overlay — visible on hover of preview-wrap */
.cover-gen__upload-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    padding:8px;
    opacity:0;
    transition:opacity .18s;
    pointer-events:none;
}
.cover-gen__preview-wrap:hover .cover-gen__upload-overlay{
    opacity:1;
    pointer-events:auto;
}
.cover-gen__upload-btn{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:5px 10px;
    background:rgba(0,0,0,.55);
    border:1px solid rgba(255,255,255,.3);
    border-radius:6px;
    color:#fff;
    font-size:11px;
    font-weight:600;
    cursor:pointer;
    backdrop-filter:blur(4px);
    transition:background .12s;
}
.cover-gen__upload-btn:hover{background:rgba(0,0,0,.75)}

/* Pattern controls (← name →) */
.cover-gen__controls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
}
.cover-gen__arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;height:28px;
    border:1px solid #d1d5db;
    border-radius:999px;
    background:#f5f6f7;
    color:var(--admin-text);
    font-size:14px;
    font-weight:600;
    line-height:1;
    cursor:pointer;
    transition:background .1s,border-color .1s;
}
.cover-gen__arrow:hover{background:#ebebed;border-color:#9aa4ae}
.cover-gen__pattern-name{
    font-size:12px;
    font-weight:600;
    color:var(--admin-muted);
    min-width:60px;
    text-align:center;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Cover Block (unified cover panel in publication form aside)
   ═══════════════════════════════════════════════════════════════════════════ */

.cover-block{display:grid;gap:10px}

.cover-block__header{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.cover-block__title{font-size:13px;font-weight:600;color:var(--admin-text)}

.cover-block__badge{
    display:inline-block;
    padding:2px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:600;
    border:1px solid currentColor;
}
.cover-block__badge--uploaded{color:#3a7d44;background:#edf7ee}
.cover-block__badge--generated{color:#7a8a9a;background:#f1f2f4}
.cover-block__badge--pdf{color:#1d4ed8;background:#eff6ff}

/* Uploaded / manual cover image */
.cover-block__uploaded-img{
    display:block;
    width:100%;
    height:auto;
    border-radius:var(--admin-radius);
    object-fit:cover;
    border:1px solid var(--admin-line);
}
/* PDF-extracted cover — thin border (page bg often white) */
[data-cover-pdf-img]{
    display:block;
    width:100%;
    height:auto;
    border-radius:var(--admin-radius);
    object-fit:contain;
    border:1px solid var(--admin-line);
    background:#f9fafb;
    margin-top:4px;
}
/* Canvas also gets a border for visual consistency */
.cover-gen__canvas{
    border:1px solid var(--admin-line) !important;
    border-radius:var(--admin-radius);
}
/* Labels above each cover preview */
.cover-block__preview-label{
    display:block;
    font-size:11px;
    font-weight:600;
    color:var(--admin-muted);
    text-transform:uppercase;
    letter-spacing:.06em;
    margin-top:10px;
    margin-bottom:4px;
}
.cover-block__preview-label--pdf{
    color:var(--admin-primary,#1f5f9b);
}

/* ── Cover option accordion ─────────────────────────────────────────────── */
.cover-opt{
    border:1px solid var(--admin-line);
    border-radius:8px;
    overflow:hidden;
    transition:border-color .12s;
}
.cover-opt:has(.cover-opt__radio:checked){
    border-color:var(--admin-brand);
}
.cover-opt__hd{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    cursor:pointer;
    background:var(--admin-surface-soft);
    font-size:12px;
    font-weight:600;
    color:var(--admin-text);
    user-select:none;
}
.cover-opt__hd:hover{background:var(--admin-brand-soft)}
.cover-opt:has(.cover-opt__radio:checked) .cover-opt__hd{
    background:var(--admin-brand-soft);
    color:var(--admin-brand);
}
.cover-opt__radio{accent-color:var(--admin-brand);cursor:pointer}
.cover-opt__sub{font-weight:400;color:var(--admin-muted);margin-left:2px}
.cover-opt__active-badge{
    margin-left:auto;
    font-size:10px;font-weight:600;
    color:#3a7d44;background:#edf7ee;
    border:1px solid #b7dfbb;
    border-radius:20px;
    padding:1px 7px;
    white-space:nowrap;
}

/* Body: collapsed by default, open when radio checked */
.cover-opt__body{
    display:none;
    padding:10px;
}
.cover-opt:has(.cover-opt__radio:checked) .cover-opt__body{
    display:block;
}

/* Manual upload drop zone */
.cover-upload-zone{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:24px 16px;
    border:2px dashed var(--admin-line);
    border-radius:6px;
    cursor:pointer;
    color:var(--admin-muted);
    font-size:12px;
    text-align:center;
    transition:border-color .12s,background .12s;
}
.cover-upload-zone:hover{
    border-color:var(--admin-brand);
    background:var(--admin-brand-soft);
    color:var(--admin-brand);
}
.cover-upload-zone small{display:block;font-size:11px;opacity:.7}

.cover-block__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:28px}

.cover-block__hint{
    margin:0;
    font-size:12px;
    color:var(--admin-muted);
    line-height:1.5;
}

/* Collapsible tech info */
.cover-block__meta{
    border-top:1px solid var(--admin-line);
    padding-top:8px;
    margin-top:2px;
}
.cover-block__meta summary{
    font-size:12px;
    font-weight:600;
    color:var(--admin-muted);
    cursor:pointer;
    user-select:none;
}
.cover-block__meta-grid{
    display:grid;
    gap:6px;
    padding-top:8px;
    font-size:12px;
    line-height:1.5;
    color:var(--admin-text);
}

/* Danger / system action buttons at the bottom */
.cover-block__sys-actions{
    display:grid;
    gap:8px;
    border-top:1px solid var(--admin-line);
    padding-top:12px;
    margin-top:4px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Topic Picker Multiselect
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Topic Picker v2 — Unified Multi-State ─────────────────────────
   B&W palette: no blue accents. Gap +15% vs original.               */

/* Picker shell */
.topic-picker{display:grid;gap:8px;margin-top:4px}

/* Selected zone — gap 6px (+15% of 5px) */
.topic-picker__selected{
    display:flex;flex-wrap:wrap;gap:6px;
    min-height:30px;
    padding:4px 0;
}
.tp-selected__empty{
    font-size:12px;color:var(--admin-muted);
    align-self:center;opacity:.7;
}

/* Search */
.topic-picker__search-row{margin:0}
.topic-picker__search{width:100%}

/* Full list — gap 5px (+15% of 4px) */
.topic-picker__list{
    display:flex;flex-wrap:wrap;gap:5px;
    max-height:200px;overflow-y:auto;padding:2px 0;
}
.tp-list__empty{font-size:12px;color:var(--admin-muted);padding:4px 0}

/* ── tp-chip: the universal chip element ────────────────────────── */
.tp-chip{
    display:inline-flex;align-items:center;gap:4px;
    padding:3px 9px 3px 7px;
    border-radius:999px;
    font-size:12px;font-weight:500;
    cursor:pointer;
    user-select:none;
    transition:background .12s,border-color .12s,color .12s,opacity .12s;
    border:1.5px solid transparent;
}

/* none — light outline, unselected */
.tp-chip--none{
    background:#fff;
    border-color:#d1d5db;
    color:#6b7280;
}
.tp-chip--none:hover{border-color:#374151;color:#374151;background:#f9fafb}

/* internal — soft gray fill */
.tp-chip--internal{
    background:#f3f4f6;
    border-color:#9ca3af;
    color:#374151;
}
.tp-chip--internal:hover{background:#e5e7eb;border-color:#6b7280}

/* public — near-black fill */
.tp-chip--public{
    background:#111827;
    border-color:#111827;
    color:#fff;
}
.tp-chip--public:hover{background:#1f2937;border-color:#1f2937}

/* limit — internal at public capacity */
.tp-chip--limit{opacity:.5}
.tp-chip--limit:hover{
    background:#f3f4f6;border-color:#9ca3af;color:#374151;
    cursor:not-allowed;
}

/* Chip sub-elements */
.tp-chip__icon{font-size:10px;line-height:1;flex-shrink:0}
.tp-chip__name{line-height:1.3}

/* star (editor mark) — selected zone chips only */
.tp-chip__star{
    background:none;border:none;cursor:pointer;
    font-size:11px;line-height:1;padding:0;
    color:rgba(255,255,255,.4);
    transition:color .12s,transform .12s;
    flex-shrink:0;
}
.tp-chip--internal .tp-chip__star{color:rgba(0,0,0,.22)}
.tp-chip__star:hover,.tp-chip__star--on{color:#f59e0b!important;transform:scale(1.15)}

/* remove button — × */
.tp-chip__del{
    background:none;border:none;cursor:pointer;
    font-size:13px;line-height:1;padding:0;
    color:rgba(255,255,255,.45);
    flex-shrink:0;
    transition:color .1s,transform .1s;
}
.tp-chip--internal .tp-chip__del{color:rgba(0,0,0,.28)}
.tp-chip__del:hover{color:#ef4444!important;transform:scale(1.2)}

/* ── Help icon variant with pre-line (multi-paragraph tooltips) ──── */
.help-icon--multiline[data-tooltip]::after{
    white-space:pre-line;
    min-width:260px;
    max-width:340px;
    line-height:1.55;
}

/* ── Legacy v1 chip (kept for event-picker etc.) ─────────────────── */
.topic-chip{
    display:inline-flex;align-items:center;gap:4px;
    padding:3px 8px;border-radius:999px;
    background:#eaecee;border:1px solid #c5cdd6;
    font-size:12px;font-weight:500;color:var(--admin-text);
}
.topic-chip__remove{
    display:inline-flex;align-items:center;justify-content:center;
    width:14px;height:14px;border:none;background:none;cursor:pointer;
    color:var(--admin-muted);font-size:12px;padding:0;line-height:1;
    border-radius:50%;transition:background .1s,color .1s;
}
.topic-chip__remove:hover{background:#c5cdd6;color:var(--admin-text)}

/* Legacy list option (no longer used by canonical picker, kept for safety) */
.topic-picker__option{
    display:inline-block;padding:4px 10px;
    border:1px solid #d1d5db;border-radius:999px;
    background:#fff;color:var(--admin-text);font-size:12px;
    cursor:pointer;transition:background .1s,border-color .1s,opacity .1s;
}
.topic-picker__option:hover{background:#ebebed;border-color:#9aa4ae}
.topic-picker__option.is-selected{background:var(--admin-text);border-color:var(--admin-text);color:#fff}
.topic-picker__option:disabled{opacity:.4;pointer-events:none;cursor:default}
.topic-picker__empty,.topic-picker__hint{font-size:12px;color:var(--admin-muted);padding:4px 0}

/* ── Slug auto-fill highlight ─────────────────────────────────── */
.input.is-autofilled{
    transition:background .1s,border-color .1s;
    background:#f0f7ee;
    border-color:#8fbe8f;
}

/* ═══════════════════════════════════════════════════════════════════
   PERFORATED CARD  —  .pcard / .pcard__panel / .perf-dots
   Splits a card into sections with real CSS-mask notch cuts and a
   dot-pattern seam. Works over any background colour or pattern.
   ═══════════════════════════════════════════════════════════════════

   Variables (override on .pcard or its parent to tune):
     --pc-notch   half-circle radius of side cut  (default 7px)
     --pc-radius  outer card corners              (default 14px)
     --pc-inner   inner radius (touching the seam)(default 3px)
     --pc-bridge  white bridge width over seam    (default 10px)
     --pc-bg      panel background colour         (default #fff)
     --pc-shadow  per-panel shadow                (default admin-shadow)
     --pc-pad     panel padding                   (default 28px 32px)
     --pc-gap     seam gap between panels         (default 0px — panels
                  sit flush; notch + shadow sell the cut visually)
   ================================================================== */

.pcard {
    --pc-notch:  7px;
    --pc-radius: 14px;
    --pc-inner:  3px;
    --pc-bridge: 10px;
    --pc-bg:     var(--admin-surface);
    --pc-shadow: 0 8px 28px rgba(30,50,80,.13), 0 2px 6px rgba(30,50,80,.07);
    --pc-pad:    28px 32px;
    --pc-gap:    0px;

    display: flex;
    flex-direction: column;
    gap: var(--pc-gap);
    position: relative;
    isolation: isolate; /* keeps stacking clean for .perf-dots z-index */
}

/* ── Panel base ─────────────────────────────────────────────── */
.pcard__panel {
    background: var(--pc-bg);
    box-shadow: var(--pc-shadow);
    padding: var(--pc-pad);
    position: relative;
    border-radius: var(--pc-radius);
}

/* Inner edges at the seam get small radius so they don't show a gap */
.pcard__panel.has-cut-bottom {
    border-bottom-left-radius:  var(--pc-inner);
    border-bottom-right-radius: var(--pc-inner);
}
.pcard__panel.has-cut-top {
    border-top-left-radius:  var(--pc-inner);
    border-top-right-radius: var(--pc-inner);
}

/* ── CSS mask: notch cuts ───────────────────────────────────── */
/* Each participating panel carves its own half-circles via mask.
   Three cases: bottom-only, top-only, both.                     */

.pcard__panel.has-cut-bottom:not(.has-cut-top) {
    -webkit-mask:
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000, #000);
    mask:
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000, #000);
    -webkit-mask-composite: source-in, source-in;
    mask-composite: intersect;
}
.pcard__panel.has-cut-top:not(.has-cut-bottom) {
    -webkit-mask:
        radial-gradient(circle var(--pc-notch) at 0    0%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%, transparent 98%, #000 100%),
        linear-gradient(#000, #000);
    mask:
        radial-gradient(circle var(--pc-notch) at 0    0%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%, transparent 98%, #000 100%),
        linear-gradient(#000, #000);
    -webkit-mask-composite: source-in, source-in;
    mask-composite: intersect;
}
.pcard__panel.has-cut-top.has-cut-bottom {
    -webkit-mask:
        radial-gradient(circle var(--pc-notch) at 0    0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000, #000);
    mask:
        radial-gradient(circle var(--pc-notch) at 0    0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000, #000);
    -webkit-mask-composite: source-in, source-in, source-in, source-in;
    mask-composite: intersect;
}

/* ── White bridge over the seam ────────────────────────────── */
/* Sits on top of both panels, fills the seam gap, makes the two
   panels read as one continuous card. Width clears the side notches
   so the notch cuts stay visible.                               */
.pcard__panel.has-cut-bottom::before {
    content: "";
    position: absolute;
    left:   calc(var(--pc-notch) + 4px);
    right:  calc(var(--pc-notch) + 4px);
    bottom: calc(var(--pc-bridge) / -2);
    height: var(--pc-bridge);
    background: var(--pc-bg);
    z-index: 1;
    pointer-events: none;
}

/* ── Perforated dot line ────────────────────────────────────── */
/* Zero-height flex sibling placed between panels in markup:
   <span class="perf-dots"></span>
   Its ::before overflows to straddle the seam via negative top.
   z-index: 10 puts it above all panels' stacking contexts.       */
.perf-dots {
    position: relative;
    height: 0;
    align-self: stretch;
    z-index: 10;
    pointer-events: none;
}
.perf-dots::before {
    content: "";
    position: absolute;
    left:   calc(var(--pc-notch) + 8px);
    right:  calc(var(--pc-notch) + 8px);
    top: -3px;
    height: 6px;
    background-image: radial-gradient(circle, var(--admin-line) 1.8px, transparent 2.2px);
    background-size: 12px 6px;
    background-repeat: repeat-x;
    background-position: left center;
}
/* Dark-bg variant: white dots  (.pcard--dark on the .pcard wrapper) */
.pcard--dark .perf-dots::before {
    background-image: radial-gradient(circle, rgba(255,255,255,.35) 1.8px, transparent 2.2px);
}

/* ── Convenience size modifiers on .pcard ───────────────────── */
/* --pc-notch tunes both notch radius AND the visual gap.        */
.pcard--sm { --pc-notch: 5px;  --pc-radius: 10px; --pc-pad: 20px 24px; }
.pcard--lg { --pc-notch: 10px; --pc-radius: 20px; --pc-pad: 36px 40px; }

/* ── Entity Pickers (resolver review panels) ────────────────── */
.ep{display:flex;flex-direction:column;gap:10px}

/* people search */
.ep__search{width:100%;height:36px;padding:0 10px;border:1px solid var(--admin-line);border-radius:6px;font-size:13px;background:var(--admin-surface);color:var(--admin-text)}
.ep__search:focus{outline:none;border-color:var(--admin-brand)}
.ep__search-row{display:flex;gap:8px}

/* shared cards list */
.ep__cards{display:flex;flex-direction:column;gap:6px}
.ep__empty{margin:0;font-size:13px;color:var(--admin-muted);font-style:italic}

/* ── people card ────────────────────────────────────────────── */
.ep-person{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--admin-line);border-radius:8px;background:var(--admin-bg);font-size:13px;transition:border-color .15s,background .15s}
.ep-person--suggested{border-style:dashed;opacity:.8}
.ep-person--active{border-color:var(--admin-brand);background:color-mix(in srgb,var(--admin-brand) 6%,transparent)}
.ep-person__info{display:flex;flex-direction:column;gap:2px;min-width:0}
.ep-person__name{font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-person__sub{color:var(--admin-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-person__role{height:28px;padding:0 6px;border:1px solid var(--admin-line);border-radius:5px;font-size:12px;background:var(--admin-surface);color:var(--admin-text)}
.ep-person__remove,.ep-person__add{height:26px;padding:0 10px;border-radius:5px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}
.ep-person__remove{border:1px solid var(--admin-line);background:none;color:var(--admin-muted)}
.ep-person__remove:hover{background:var(--admin-line);color:var(--admin-text)}
.ep-person__add{border:1px solid var(--admin-brand);background:transparent;color:var(--admin-brand)}
.ep-person__add:hover{background:var(--admin-brand);color:#fff}

/* ── topics chip picker ─────────────────────────────────────── */
.ep-topics{display:flex;flex-wrap:wrap;gap:6px}
.ep-topic-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--admin-line);border-radius:20px;font-size:12px;cursor:pointer;background:var(--admin-surface);color:var(--admin-text);transition:border-color .15s,background .15s,color .15s;user-select:none}
.ep-topic-chip:hover{border-color:var(--admin-brand);color:var(--admin-brand)}
.ep-topic-chip--active{border-color:var(--admin-brand);background:color-mix(in srgb,var(--admin-brand) 10%,transparent);color:var(--admin-brand)}
.ep-topic-chip__x{font-size:14px;line-height:1;color:var(--admin-muted)}

/* ── materials card ─────────────────────────────────────────── */
.ep-material{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--admin-line);border-radius:8px;background:var(--admin-bg);font-size:13px;transition:border-color .15s,opacity .15s}
.ep-material--active{border-color:var(--admin-brand)}
.ep-material--rejected{opacity:.35}
.ep-material__icon{width:28px;height:28px;border-radius:5px;background:var(--admin-line);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--admin-muted);flex-shrink:0;text-transform:uppercase;letter-spacing:.02em}
.ep-material__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.ep-material__title{font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-material__url{font-size:11px;color:var(--admin-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-material__actions{display:flex;gap:4px;flex-shrink:0}
.ep-material__btn{height:26px;padding:0 8px;border-radius:4px;font-size:12px;cursor:pointer;border:1px solid var(--admin-line);background:var(--admin-surface);color:var(--admin-muted);transition:background .12s,color .12s,border-color .12s}
.ep-material__btn--accept{border-color:transparent;color:var(--admin-muted)}
.ep-material__btn--accept.is-active{background:color-mix(in srgb,var(--admin-brand) 12%,transparent);border-color:var(--admin-brand);color:var(--admin-brand)}
.ep-material__btn--reject{border-color:transparent;color:var(--admin-muted)}
.ep-material__btn--reject.is-active{background:var(--admin-line);color:var(--admin-text)}

/* add URL row */
.ep__add-row{display:flex;gap:6px;padding-top:8px;border-top:1px solid var(--admin-line);margin-top:2px}
.ep__add-url{flex:1;height:32px;padding:0 9px;border:1px solid var(--admin-line);border-radius:5px;font-size:12px;background:var(--admin-surface);color:var(--admin-text)}
.ep__add-url:focus{outline:none;border-color:var(--admin-brand)}
.ep__add-btn{height:32px;padding:0 12px;border:1px solid var(--admin-brand);border-radius:5px;background:transparent;color:var(--admin-brand);font-size:12px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}
.ep__add-btn:hover{background:var(--admin-brand);color:#fff}

/* ══ Admin Calendar Widget ═══════════════════════════════════════════════════
   dashboard "Управление полётом" — compact month grid + hover popup
   ══════════════════════════════════════════════════════════════════════════ */

/* Panel modifier */
.panel--calendar-widget{padding:var(--admin-space-4) var(--admin-space-5)}

/* ── Widget head ─────────────────────────────────────────────────────────── */
.cal-widget__head{display:flex;align-items:center;gap:8px;padding-bottom:14px}
.cal-widget__nav{width:28px;height:28px;border:1px solid var(--admin-line);border-radius:5px;background:transparent;color:var(--admin-muted);cursor:pointer;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,color .12s}
.cal-widget__nav:hover{background:var(--admin-surface-soft);color:var(--admin-text)}
.cal-widget__month-label{font-size:14px;font-weight:600;color:var(--admin-text);min-width:160px;text-align:center;flex-shrink:0}
.cal-widget__today-btn{margin-left:auto;font-size:11px;color:var(--admin-brand);text-decoration:none;padding:3px 8px;border:1px solid var(--admin-line);border-radius:4px;white-space:nowrap;transition:background .12s,color .12s}
.cal-widget__today-btn:hover{background:var(--admin-brand);color:#fff;border-color:var(--admin-brand)}

/* ── Grid layout ─────────────────────────────────────────────────────────── */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-grid--header{margin-bottom:4px}
.cal-grid__dow{font-size:10px;font-weight:600;color:var(--admin-steel);text-align:center;padding:2px 0 4px;text-transform:uppercase;letter-spacing:.06em}

/* ── Day cell ────────────────────────────────────────────────────────────── */
.cal-day{min-height:52px;padding:4px 5px 5px;border-radius:5px;border:1px solid transparent;background:var(--admin-surface);transition:border-color .1s,background .1s;position:relative;overflow:hidden}
.cal-day--other{opacity:.28;pointer-events:none}
.cal-day--today{border-color:var(--admin-brand)!important;background:color-mix(in srgb,var(--admin-brand) 5%,transparent)}
.cal-day--has-events{cursor:pointer}
.cal-day--has-events:hover{border-color:var(--admin-line);background:var(--admin-surface-soft)}
.cal-day__num{display:block;font-size:10px;font-weight:600;color:var(--admin-steel);line-height:1;margin-bottom:4px}
.cal-day--today .cal-day__num{color:var(--admin-brand)}

/* ── Event dots ──────────────────────────────────────────────────────────── */
.cal-day__add{
    position:absolute;top:3px;right:3px;
    width:17px;height:17px;border-radius:50%;
    background:var(--admin-brand);color:#fff;
    display:flex;align-items:center;justify-content:center;
    opacity:0;pointer-events:none;
    transition:opacity .12s,background .12s;
    text-decoration:none;z-index:2;
}
.cal-day__add svg{width:9px;height:9px;flex-shrink:0}
.cal-day:hover .cal-day__add{opacity:1;pointer-events:auto}
.cal-day:has(.cal-dot:hover) .cal-day__add{opacity:0!important;pointer-events:none!important}
.cal-day__add:hover{background:var(--admin-brand-hover,#1a5085);opacity:1!important}
.cal-day__dots{display:flex;flex-direction:column;gap:2px}
.cal-dot{height:5px;border-radius:2px;cursor:pointer;transition:opacity .1s;flex-shrink:0}
.cal-dot:hover{opacity:.65}
.cal-dot--scheduled{background:var(--admin-brand)}
.cal-dot--draft{background:var(--admin-warning)}
.cal-dot--archived{background:var(--admin-steel)}
.cal-dot--hidden{background:var(--admin-muted)}
.cal-dot--no-cover{background:var(--admin-coral);opacity:.7}
.cal-dot--more{height:auto;background:transparent;font-size:9px;font-weight:600;color:var(--admin-muted);cursor:default;line-height:1.2}
.cal-dot--more:hover{opacity:1}
.cal-range__more{font-size:9px;font-weight:600;color:var(--admin-muted);padding-left:2px;line-height:1.4}

/* ── Range bands (multi-day events) ─────────────────────────────────────── */
/* Cells grow naturally to fit bands — no fixed min-height override needed  */
.cal-day__ranges{display:flex;flex-direction:column;gap:1px;margin-bottom:2px}

.cal-range{
    height:14px;display:flex;align-items:center;
    overflow:hidden;flex-shrink:0;cursor:pointer;
    transition:opacity .1s;position:relative;
}
/* Hovered band → darken + saturate to stand out */
.cal-range:hover{opacity:1;filter:brightness(.68) saturate(2)}
/* No-cover (red) gets explicit burgundy hover — brightness filter looks gray on coral */
.cal-range--no-cover:hover{background:#8b1f1f;filter:none}
.cal-range--no-cover:hover .cal-range__label{color:#fff}
.cal-range--no-cover:hover::before{background:#fff}
/* Non-hovered sibling bands → fade out so hovered band reads clearly */
.cal-day__ranges:has(.cal-range:hover) .cal-range:not(:hover){opacity:.25;transition:opacity .1s}

/* Left cap: rounded left end (event start) vs flush-left (row continuation) */
.cal-range--cap-l  {margin-left:0;  border-top-left-radius:7px; border-bottom-left-radius:7px}
.cal-range--flush-l{margin-left:-5px;border-top-left-radius:0;  border-bottom-left-radius:0}
/* Right cap: rounded right end (event end) vs flush-right (row continues)  */
.cal-range--cap-r  {margin-right:0;  border-top-right-radius:7px;border-bottom-right-radius:7px}
.cal-range--flush-r{margin-right:-5px;border-top-right-radius:0; border-bottom-right-radius:0}

/* Status colors */
.cal-range--scheduled{background:color-mix(in srgb,var(--admin-brand) 18%,#fff)}
.cal-range--draft    {background:color-mix(in srgb,var(--admin-warning,#f59e0b) 22%,#fff)}
.cal-range--hidden   {background:color-mix(in srgb,var(--admin-muted) 30%,#fff)}
.cal-range--archived {background:color-mix(in srgb,var(--admin-steel) 22%,#fff)}
.cal-range--no-cover {background:color-mix(in srgb,var(--admin-coral) 18%,#fff)}

/* Cap dot: small circle at start to mark the left end visually */
.cal-range--cap-l::before{
    content:'';flex-shrink:0;
    width:6px;height:6px;border-radius:50%;margin-left:4px;margin-right:3px;
}
.cal-range--scheduled.cal-range--cap-l::before{background:var(--admin-brand)}
.cal-range--draft.cal-range--cap-l::before    {background:var(--admin-warning,#f59e0b)}
.cal-range--hidden.cal-range--cap-l::before   {background:var(--admin-muted)}
.cal-range--archived.cal-range--cap-l::before {background:var(--admin-steel)}
.cal-range--no-cover.cal-range--cap-l::before {background:var(--admin-coral)}

/* Event name label (shown on first visible cell of each row segment) */
.cal-range__label{
    font-size:9px;font-weight:600;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis;line-height:1;
    max-width:100%;
}
.cal-range--scheduled .cal-range__label{color:var(--admin-brand)}
.cal-range--draft     .cal-range__label{color:var(--admin-warning,#f59e0b)}
.cal-range--hidden    .cal-range__label{color:var(--admin-muted)}
.cal-range--archived  .cal-range__label{color:var(--admin-steel)}
.cal-range--no-cover  .cal-range__label{color:var(--admin-coral)}

/* Suppress "+" add button when hovering a range band */
.cal-day:has(.cal-range:hover) .cal-day__add{opacity:0!important;pointer-events:none!important}

/* ── Popup ───────────────────────────────────────────────────────────────── */
.cal-popup{position:fixed;z-index:9999;width:276px;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:10px;box-shadow:0 12px 40px rgba(17,34,55,.15);padding:0;pointer-events:auto;overflow:hidden}
.cal-popup[hidden]{display:none}
.cal-popup__inner{display:flex;flex-direction:column;gap:0;padding:14px}
.cal-popup__header{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}
.cal-popup__date{font-size:11px;font-weight:500;color:var(--admin-muted)}
.cal-popup__chips{display:flex;flex-wrap:wrap;gap:4px}
.cal-popup__title{font-size:13px;font-weight:600;color:var(--admin-text);line-height:1.35;margin:0 0 6px}
.cal-popup__meta{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--admin-muted);margin-bottom:6px}
.cal-popup__meta-icon{width:11px;height:11px;flex-shrink:0}
.cal-popup__flags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}

/* ── Chips in popup ─────────────────────────────────────────── */
.cal-chip{display:inline-block;font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;line-height:1.4}
.cal-chip--blue{background:var(--admin-brand-soft);color:var(--admin-brand)}
.cal-chip--green{background:#dff2e6;color:var(--admin-success)}
.cal-chip--gray{background:var(--admin-line);color:var(--admin-muted)}
.cal-chip--coral{background:#fde8e7;color:var(--admin-coral)}

/* ── Flags in popup ─────────────────────────────────────────── */
.cal-flag{display:inline-block;font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;line-height:1.4}
.cal-flag--draft{background:#fef3cd;color:var(--admin-warning)}
.cal-flag--hidden{background:var(--admin-line);color:var(--admin-muted)}
.cal-flag--no-cover{background:#fde8e7;color:var(--admin-coral)}
.cal-flag--no-speakers{background:var(--admin-line);color:var(--admin-muted)}

/* ── Actions in popup ───────────────────────────────────────── */
.cal-popup__actions{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--admin-line);padding:8px 0 0;margin-top:2px}
.cal-popup__action{display:flex;align-items:center;gap:7px;width:100%;padding:7px 8px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;text-decoration:none;border:none;background:transparent;color:var(--admin-text);transition:background .1s;text-align:left;line-height:1}
.cal-popup__action svg{width:13px;height:13px;flex-shrink:0;opacity:.6}
.cal-popup__action:hover{background:var(--admin-bg)}
.cal-popup__action--primary{background:var(--admin-brand);color:#fff;font-weight:600}
.cal-popup__action--primary svg{opacity:.9}
.cal-popup__action--primary:hover{background:#1a5085}
.cal-popup__action--muted{color:var(--admin-muted)}
.cal-popup__action--danger{color:var(--admin-danger)}
.cal-popup__action--disabled,
.cal-popup__action--disabled:hover{
    background:transparent;
    color:var(--admin-muted);
    cursor:not-allowed;
}
.cal-popup__action--disabled svg{opacity:.45}
.cal-notice{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:10000;
    max-width:320px;
    padding:10px 14px;
    border:1px solid var(--admin-line);
    border-radius:8px;
    background:var(--admin-surface);
    color:var(--admin-text);
    box-shadow:0 12px 32px rgba(17,34,55,.16);
    font-size:13px;
    font-weight:500;
}
.cal-notice[hidden]{display:none}

/* ════════════════════════════════════════════════════════════════
   EVENT EDITOR
   ══════════════════════════════════════════════════════════════ */

/* Single-column vertical stack — replaces .split two-column layout */
.event-editor{
    display:grid;
    gap:var(--admin-gap,20px);
    max-width:var(--admin-content-max); /* match frontend .container width */
    width:100%;
}

/* ── Cover panel ─────────────────────────────────────────────── */
.event-cover-panel{}
.event-cover-panel__body{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}
@media(max-width:700px){.event-cover-panel__body{grid-template-columns:1fr}}
.event-cover-panel__preview{position:relative;border-radius:6px;overflow:hidden;background:#0a1929;max-width:540px}
.event-cover-panel__img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.event-cover-panel__badge{position:absolute;bottom:8px;left:8px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;background:rgba(0,0,0,.55);color:#fff;letter-spacing:.02em;text-transform:uppercase}
.event-cover-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;aspect-ratio:16/9;max-width:540px;border:2px dashed var(--admin-line);border-radius:6px;color:var(--admin-muted);font-size:13px}
.event-cover-panel__empty svg{width:48px;height:38px;color:var(--admin-line)}
.event-cover-panel__upload{min-width:200px}

/* ── Event editor control groups ─────────────────────────────── */
.event-flags-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:14px;border:1px solid var(--admin-line);border-radius:8px;background:var(--admin-bg)}
.event-lifecycle-summary{display:flex;align-items:center;gap:8px;min-height:32px;flex-wrap:wrap}
.event-lifecycle-summary__label{margin:0;white-space:nowrap}
.event-lifecycle-summary__hint{margin:0;flex:1 1 190px}
.event-lifecycle-state{display:inline-flex;align-items:center;min-height:26px;width:max-content;max-width:100%;padding:0 10px;border:1px solid var(--admin-line);border-radius:999px;background:#fff;font-size:12px;font-weight:700;color:var(--admin-text);white-space:nowrap}
.event-lifecycle-state[data-lifecycle-tone="success"]{border-color:#b7dfc8;background:#eefaf2;color:#146c3f}
.event-lifecycle-state[data-lifecycle-tone="info"]{border-color:#c7dbf6;background:#f0f6ff;color:#1f5f9b}
.event-lifecycle-state[data-lifecycle-tone="warning"]{border-color:#ead28f;background:#fff8df;color:#775812}
.event-lifecycle-state[data-lifecycle-tone="danger"]{border-color:#edb8b8;background:#fff0f0;color:#9b1f1f}
.event-lifecycle-state[data-lifecycle-tone="muted"]{background:#f4f6f8;color:var(--admin-muted)}
@media (max-width:640px){
    .event-lifecycle-summary{align-items:flex-start}
    .event-lifecycle-summary__hint{flex-basis:100%}
}

/* ── Collapsible section (details/summary) ───────────────────── */
.event-collapsible{padding:0;overflow:hidden}
.event-collapsible summary{list-style:none}
.event-collapsible summary::-webkit-details-marker{display:none}
.event-collapsible__summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;user-select:none}
.event-collapsible__summary:hover{background:var(--admin-bg)}
.event-collapsible__summary-text{flex:1;display:grid;gap:2px}
.event-collapsible__summary-text .panel__title{margin:0}
.event-collapsible__summary-text .panel__subtext{margin:0}
.event-collapsible__chevron{width:16px;height:16px;flex-shrink:0;color:var(--admin-muted);transition:transform .2s}
details[open].event-collapsible .event-collapsible__chevron{transform:rotate(180deg)}
.event-collapsible__body{padding:0 20px 20px;display:grid;gap:var(--admin-gap,20px)}

/* ════════════════════════════════════════════════════════════════
   COMMUNICATION BLOCK
   ══════════════════════════════════════════════════════════════ */

/* ── Preset pills ────────────────────────────────────────────── */
.comm-presets{display:flex;flex-wrap:wrap;gap:6px}
.comm-preset{padding:5px 13px;border-radius:20px;border:1.5px solid var(--admin-line);background:#fff;color:var(--admin-text);font-size:12px;font-weight:500;cursor:pointer;line-height:1.4;white-space:nowrap;transition:border-color .12s,background .12s,color .12s}
.comm-preset:hover{border-color:var(--admin-brand);color:var(--admin-brand);background:color-mix(in srgb,var(--admin-brand) 6%,#fff)}
.comm-preset--active{border-color:var(--admin-brand);background:var(--admin-brand);color:#fff;font-weight:600}
.comm-preset--active:hover{background:#1a5085;border-color:#1a5085}

/* ── Field header with usage badges ──────────────────────────── */
.comm-field-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.comm-field-header .field__label{margin-bottom:0}
.comm-usage-badges{display:inline-flex;gap:3px;flex-wrap:wrap}
.comm-badge{display:inline-block;font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px;background:var(--admin-line);color:var(--admin-muted);text-transform:lowercase;letter-spacing:.02em;line-height:1.5}

/* ── Invite textarea ─────────────────────────────────────────── */
.comm-invite-textarea{min-height:100px;resize:vertical}

/* ── Toolbar below invite text ───────────────────────────────── */
.comm-text-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px}
.comm-text-toolbar .btn{display:inline-flex;align-items:center;gap:5px}

/* ── Status line ─────────────────────────────────────────────── */
.comm-status{font-size:11px;color:var(--admin-success,#16a34a);transition:opacity .2s}
.comm-status:empty{display:none}

/* ════════════════════════════════════════════════════════════════
   PARTNER CARD  (shared: admin preview + frontend)
   ══════════════════════════════════════════════════════════════ */

/* ── Base card ───────────────────────────────────────────────── */
.partner-card{display:flex;align-items:center;gap:14px;border:1px solid var(--admin-line);border-radius:8px;padding:14px 16px;background:#fff;position:relative}

/* Logo slot — fixed width, preserves aspect ratio */
.partner-card__logo{flex-shrink:0;width:72px;display:flex;align-items:center;justify-content:center}
.partner-card__logo img{display:block;max-width:72px;max-height:44px;width:auto;height:auto;object-fit:contain}

/* Body */
.partner-card__body{flex:1;min-width:0;display:grid;gap:2px}
.partner-card__role-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--admin-muted);line-height:1}
.partner-card__name{font-size:14px;font-weight:600;color:var(--admin-text)}
.partner-card__name a{color:inherit;text-decoration:none}
.partner-card__name a:hover{color:var(--admin-brand)}
.partner-card__desc{font-size:12px;color:var(--admin-muted);margin-top:3px;line-height:1.45}
.partner-card__link{font-size:11px;color:var(--admin-brand);text-decoration:none;margin-top:4px;display:inline-block}
.partner-card__link:hover{text-decoration:underline}

/* ── Variant: mini ───────────────────────────────────────────── */
.partner-card--mini .partner-card__logo{width:56px}
.partner-card--mini .partner-card__logo img{max-width:56px;max-height:36px}
.partner-card--mini .partner-card__name{font-size:13px}

/* ── Variant: inline (one-line) ──────────────────────────────── */
.partner-card--inline{border:none;padding:0;background:transparent;gap:8px}
.partner-card--inline .partner-card__logo{width:32px}
.partner-card--inline .partner-card__logo img{max-width:32px;max-height:20px}
.partner-card--inline .partner-card__role-label{font-size:10px;color:var(--admin-muted)}
.partner-card--inline .partner-card__name{font-size:13px;font-weight:600}

/* ── Variant: full ───────────────────────────────────────────── */
.partner-card--full{align-items:flex-start}
.partner-card--full .partner-card__logo{width:88px;padding-top:2px}
.partner-card--full .partner-card__logo img{max-width:88px;max-height:52px}

/* ── Admin: selected state ───────────────────────────────────── */
.partner-card--selected{border-color:var(--admin-brand);background:color-mix(in srgb,var(--admin-brand) 4%,#fff)}

/* Remove button (admin only) */
.partner-card__remove{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--admin-line);background:#fff;color:var(--admin-muted);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .12s}
.partner-card__remove:hover{border-color:var(--admin-danger,#e53e3e);color:var(--admin-danger,#e53e3e);background:color-mix(in srgb,var(--admin-danger,#e53e3e) 8%,#fff)}

/* ════════════════════════════════════════════════════════════════
   PARTNER PICKER  (admin search dropdown)
   ══════════════════════════════════════════════════════════════ */

.partner-picker-field{position:relative}
.partner-picker-results{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 8px);display:grid;gap:8px;padding:8px;border:1px solid var(--admin-line);border-radius:8px;background:#fff;box-shadow:0 16px 36px rgba(17,41,71,.14);max-height:360px;overflow-y:auto}
.partner-picker-results[hidden]{display:none}
.partner-picker-item{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:12px;width:100%;padding:10px;border:1px solid var(--admin-line);border-radius:8px;background:#fff;cursor:pointer;text-align:left;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s}
.partner-picker-item:hover,.partner-picker-item:focus-visible{background:var(--admin-surface-soft);border-color:#c8d8e8;box-shadow:0 8px 20px rgba(17,41,71,.08);outline:none;transform:translateY(-1px)}
.partner-picker-item__logo-shell{display:flex;align-items:center;justify-content:center;width:64px;height:48px;border:1px solid var(--admin-line);border-radius:7px;background:#fff;overflow:hidden}
.partner-picker-item__logo-shell--fallback{background:var(--admin-surface-soft)}
.partner-picker-item__logo{display:block;width:100%;height:100%;object-fit:contain}
.partner-picker-item__logo-fallback{color:var(--admin-muted);font-size:14px;font-weight:600;letter-spacing:-.02em}
.partner-picker-item__text{display:grid;gap:3px;min-width:0}
.partner-picker-item__name{font-size:14px;font-weight:600;color:var(--admin-text);line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.partner-picker-item__meta{font-size:12px;font-weight:600;color:var(--admin-brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.partner-picker-item__desc{font-size:12px;color:var(--admin-muted);line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.partner-picker-empty{padding:16px;font-size:13px;color:var(--admin-muted);text-align:center}

/* ════════════════════════════════════════════════════════════════
   COMMUNICATION DRAFTS
   ══════════════════════════════════════════════════════════════ */

/* Container */
.comm-drafts{display:grid;gap:12px;padding:16px;background:var(--admin-bg,#f8fafc);border:1px solid var(--admin-line);border-radius:8px}

/* Header row */
.comm-drafts__header{display:flex;align-items:center;gap:10px}
.comm-drafts__count{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;background:var(--admin-line);color:var(--admin-muted)}

/* Compose area */
.comm-drafts__compose{display:grid;gap:8px}
.comm-drafts__compose-top{display:flex;gap:8px;flex-wrap:wrap}
.comm-drafts__compose-textarea{resize:vertical;min-height:72px}
.comm-drafts__compose-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* No-event placeholder */
.comm-drafts__no-event{font-size:13px;color:var(--admin-muted);padding:8px 0}

/* Empty state */
.comm-drafts__empty{font-size:13px;color:var(--admin-muted);padding:4px 0}

/* Draft list */
.comm-drafts__list{display:grid;gap:8px}

/* Individual draft item */
.comm-draft-item{background:#fff;border:1px solid var(--admin-line);border-radius:6px;padding:12px 14px;display:grid;gap:8px;transition:box-shadow .12s}
.comm-draft-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.07)}

/* Draft item header */
.comm-draft-item__header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.comm-draft-item__title{font-size:12px;font-weight:600;color:var(--admin-text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comm-draft-item__date{font-size:11px;color:var(--admin-muted);margin-left:auto}
.comm-draft-item__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}
.comm-draft-item__del{opacity:.5;transition:opacity .12s}
.comm-draft-item__del:hover{opacity:1}

/* Type chip */
.comm-draft-item__chip{font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;background:var(--admin-line);color:var(--admin-muted)}
.comm-draft-item__chip--invitation{background:#dbeafe;color:#1e40af}
.comm-draft-item__chip--email_intro{background:#ede9fe;color:#5b21b6}
.comm-draft-item__chip--post{background:#dcfce7;color:#166534}
.comm-draft-item__chip--short_announce{background:#fef9c3;color:#854d0e}
.comm-draft-item__chip--share_text{background:#fce7f3;color:#9d174d}
.comm-draft-item__chip--reminder{background:#ffedd5;color:#9a3412}
.comm-draft-item__chip--custom{background:var(--admin-line);color:var(--admin-muted)}

/* Draft text preview */
.comm-draft-item__text{font-size:13px;color:var(--admin-text);line-height:1.5;white-space:pre-line;max-height:72px;overflow:hidden;position:relative}
.comm-draft-item__text::after{content:'';position:absolute;bottom:0;left:0;right:0;height:20px;background:linear-gradient(transparent,#fff)}

/* Edit form */
.comm-draft-item__edit-form{display:grid;gap:8px}
.comm-draft-item__edit-top{display:flex;gap:8px;flex-wrap:wrap}
.comm-draft-item__edit-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ── xs input variant ──────────────────────────────────────── */
.input--xs{height:30px;padding:4px 8px;font-size:12px}
.select--xs{height:30px;padding:3px 8px;font-size:12px}

/* ── Toast ─────────────────────────────────────────────────── */
.comm-draft-toast{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:8px;background:#1e293b;color:#fff;font-size:13px;box-shadow:0 4px 16px rgba(0,0,0,.2);animation:toast-in .18s ease;white-space:nowrap}
.comm-draft-toast__undo{background:transparent;border:none;color:#93c5fd;font-size:13px;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.comm-draft-toast__undo:hover{color:#bfdbfe}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ════════════════════════════════════════════════════════════════
   COMMUNICATION FIELD GUIDE  (role → usage map)
   ══════════════════════════════════════════════════════════════ */

.comm-field-guide{display:grid;gap:0;margin-bottom:20px;border:1px solid var(--admin-line);border-radius:7px;overflow:hidden;font-size:12px}
.comm-field-guide__item{display:grid;grid-template-columns:160px 18px 1fr;align-items:center;gap:4px;padding:7px 12px;background:#fff}
.comm-field-guide__item+.comm-field-guide__item{border-top:1px solid var(--admin-line)}
.comm-field-guide__item:first-child{background:var(--admin-bg)}
.comm-field-guide__name{font-weight:600;color:var(--admin-text);white-space:nowrap}
.comm-field-guide__arrow{color:var(--admin-muted);text-align:center;font-size:11px}
.comm-field-guide__desc{color:var(--admin-muted)}

/* ════════════════════════════════════════════════════════════════
   COMMUNICATION USAGE BADGES  (color variants)
   ══════════════════════════════════════════════════════════════ */

.comm-badge--email{background:#dbeafe;color:#1e40af}
.comm-badge--push{background:#ede9fe;color:#5b21b6}
.comm-badge--landing{background:#dcfce7;color:#166534}
.comm-badge--share{background:#fce7f3;color:#9d174d}

/* ════════════════════════════════════════════════════════════════
   EVENT CARD EDIT  (top section — two-column live preview)
   ══════════════════════════════════════════════════════════════ */

/* ── Panel wrapper ──────────────────────────────────────────── */
.event-card-edit{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,38%);
    gap:0;
    padding:0;
    overflow:hidden;
    background:#fff;
    border-radius:12px;
    border:1px solid #e5ebf1;
    box-shadow:0 14px 36px rgba(17,41,71,.08);
}

/* ── Left body: form fields ─────────────────────────────────── */
.event-card-edit__body{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:18px 20px;
    min-width:0;
}

/* Format chip / select */
.event-card-edit__chips{display:flex;align-items:center;gap:6px}
/* Format pill-picker (replaces native <select>) */
.fmt-dropdown{position:relative;display:inline-flex}
.fmt-dropdown__popup{
    position:absolute;top:calc(100% + 6px);left:0;z-index:300;
    display:flex;flex-direction:column;gap:2px;
    background:#fff;border:1px solid var(--admin-line);
    border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.1);
    padding:6px;min-width:120px;
}
.fmt-dropdown__popup[hidden]{display:none!important}
.fmt-dropdown__option{
    display:flex;align-items:center;
    padding:7px 14px;border-radius:7px;border:none;
    background:transparent;color:var(--admin-text);
    font-size:13px;font-weight:500;cursor:pointer;
    text-align:left;font-family:inherit;
    transition:background .1s;
}
.fmt-dropdown__option:hover{background:var(--admin-surface-soft)}
.fmt-dropdown__option.is-selected{background:#1c4f7a;color:#fff;font-weight:600}

/* ── Title — auto-grow textarea ─────────────────────────────── */
.event-card-edit__title{
    display:block;
    width:100%;
    padding:0;
    border:none;
    border-bottom:1.5px solid transparent;
    background:transparent;
    font-size:clamp(20px, 1.8vw, 24px);
    font-weight:600;
    color:#09111b;
    line-height:1.3;
    resize:none;
    outline:none;
    overflow:hidden;
    /* field-sizing: content not yet universal — JS auto-height is set below */
    field-sizing:content;
    min-height:calc(1.3em + 2px);
    transition:border-color .15s;
}
.event-card-edit__title:focus{border-bottom-color:#315472}
.event-card-edit__title::placeholder{color:var(--admin-placeholder);font-weight:400}

/* ── Meta grid: [flat 4-col row] + location (full-width) ─────── */
.event-card-edit__meta{
    display:grid;
    grid-template-columns:1fr;   /* single column: row + location stacked */
    gap:8px;
    margin-top:4px;
}
/* Row containing dates | divider | times */
.event-card-edit__meta-row{
    display:flex;
    align-items:flex-start;
    gap:0;
}
/* Date or Time section (each holds label + 2 fields side by side) */
.event-card-edit__meta-section{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
}
/* The two fields inside a section sit side by side */
.event-card-edit__section-fields{
    display:flex;
    gap:8px;
    align-items:flex-start;
}
/* Vertical divider between Даты and Время groups */
.event-card-edit__meta-divider{
    width:1px;
    align-self:stretch;
    background:var(--admin-line);
    margin:18px 12px 0;   /* push below the label row */
    flex-shrink:0;
}
/* Meta group label (used inside .meta-section now, not .meta-group) */
.event-card-edit__meta-group-label{
    display:inline-flex;
    align-items:center;
    gap:4px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--admin-muted);
    line-height:1;
    white-space:nowrap;
}
.event-card-edit__meta-group-label svg{
    flex-shrink:0;
    opacity:.7;
}
/* Legacy .meta-group (still used for --full location row) */
.event-card-edit__meta-group{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
}
.event-card-edit__meta-group--full{
    grid-column:1 / -1;
}
/* Sub-field label (Начало / Конец) */
.event-card-edit__field-label{
    font-size:10px;
    font-weight:500;
    color:var(--admin-muted);
    line-height:1;
    white-space:nowrap;
}
.event-card-edit__field-optional{
    font-weight:400;
    font-size:9px;
    opacity:.7;
}
/* Location input — full-width bordered */
.event-card-edit__location-wrap{
    width:100%;
    position:relative;
    display:block;
}
.event-card-edit__location-input{
    display:block;
    width:100%;
    border:1px solid var(--admin-line);
    border-radius:6px;
    background:#fff;
    font-size:12px;
    color:#09111b;
    padding:5px 9px;
    outline:none;
    min-height:30px;
    font-family:inherit;
    transition:border-color .15s,box-shadow .15s;
}
.event-card-edit__location-input:focus{
    border-color:#315472;
    box-shadow:0 0 0 2px rgba(49,84,114,.12);
}
.event-card-edit__location-input::placeholder{color:var(--admin-placeholder)}

/* Summary textarea */
.event-card-edit__summary{
    width:100%;
    padding:10px 12px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fff;
    font-size:14px;
    color:var(--admin-text);
    line-height:1.5;
    resize:none;
    outline:none;
    transition:border-color .15s, box-shadow .15s;
    font-family:inherit;
}
.event-card-edit__summary:focus{
    border-color:#315472;
    box-shadow:0 0 0 3px #31547220;
}
.event-card-edit__summary::placeholder{color:var(--admin-placeholder)}

/* Short description wrapper: counter + hint */
.short-desc-wrap{display:grid;gap:4px}
.short-desc-meta{display:flex;align-items:center;gap:10px;min-height:18px}
.short-desc-counter{font-size:11px;color:var(--admin-muted);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.short-desc-hint{font-size:11px;color:#d97706;font-weight:500}

/* Slug row */
.event-card-edit__slug-row{
    display:flex;
    align-items:center;
    gap:0;
    padding:4px 8px;
    background:var(--admin-bg);
    border:1px solid var(--admin-line);
    border-radius:5px;
    margin-bottom:12px; /* gap between slug and chips below */
}
.event-card-edit__slug-prefix{
    font-size:11px;
    color:var(--admin-muted);
    white-space:nowrap;
    flex-shrink:0;
    padding-right:2px;
}
.event-card-edit__slug-input{
    flex:1;
    min-width:0;
    border:none;
    background:transparent;
    font-size:11px;
    color:var(--admin-text);
    padding:0;
    outline:none;
    font-family:var(--admin-mono,ui-monospace,monospace);
}
.event-card-edit__slug-input::placeholder{color:var(--admin-placeholder)}

/* Slug manual-override indicator + reset */
.event-card-edit__slug-manual{
    font-size:10px;color:var(--admin-muted);white-space:nowrap;flex-shrink:0;padding-left:4px;
}
.event-card-edit__slug-reset{
    border:none;background:none;padding:0 4px;cursor:pointer;
    font-size:13px;color:var(--admin-muted);line-height:1;flex-shrink:0;
    opacity:.7;transition:opacity .15s;
}
.event-card-edit__slug-reset:hover{opacity:1;color:var(--admin-accent)}

/* Autofill flash animation */
.event-card-edit__slug-input.is-autofilled{
    background:rgba(39,106,195,.06);transition:background .5s ease-out;
}
.event-platform-url{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin:-6px 0 12px;
    padding:0 2px;
    font-size:12px;
}
.event-platform-url__label{
    color:var(--admin-muted);
    font-weight:700;
}
.event-platform-url__value{
    color:var(--admin-brand);
    font-weight:600;
    text-decoration:none;
    word-break:break-all;
}
.event-platform-url__value:hover{text-decoration:underline}
.event-platform-url__value[aria-disabled="true"]{
    color:var(--admin-muted);
    pointer-events:none;
    font-weight:500;
}
.event-platform-url__hint{
    color:var(--admin-muted);
    font-size:11px;
}

/* ── Date group: 2-col sub-grid ─────────────────────────────── */
.event-card-edit__date-group{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.event-card-edit__date-block{
    display:flex;flex-direction:column;gap:3px;
}

/* ── Time group: 2-col sub-grid ─────────────────────────────── */
.event-card-edit__time-group{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.event-card-edit__time-block{
    display:flex;flex-direction:column;gap:3px;
}

/* Time input — bordered box (replaces dashed underline) */
.event-card-edit__time-input{
    display:block;
    width:100%;
    border:1px solid var(--admin-line);
    border-radius:6px;
    background:#fff;
    font-size:12px;
    color:var(--admin-text);
    padding:5px 8px;
    outline:none;
    min-height:30px;
    cursor:pointer;
    transition:border-color .15s,box-shadow .15s;
    font-family:inherit;
}
.event-card-edit__time-input:focus{
    border-color:#315472;
    box-shadow:0 0 0 2px rgba(49,84,114,.12);
}
.event-card-edit__time-input--optional{
    border-style:dashed;
}
.event-card-edit__time-input--optional:not([value=""]):valid,
.event-card-edit__time-input--optional.has-value{
    border-style:solid;
}
.event-card-edit__time-input::-webkit-calendar-picker-indicator{
    opacity:.45;cursor:pointer;
}

/* ── Location suggestions — body portal (position:fixed via JS) ─
   z-index:9999 ensures it floats above overflow:hidden panels    */
.loc-dropdown{
    background:#fff;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    box-shadow:0 8px 28px rgba(0,0,0,.12);
    padding:4px 0;
    overflow:hidden;
    max-height:320px;
    overflow-y:auto;
}
.loc-dropdown[hidden]{display:none}
.loc-suggestion{
    display:flex;flex-direction:column;gap:1px;
    width:100%;text-align:left;
    padding:7px 12px;
    border:none;background:none;cursor:pointer;
    transition:background .1s;
}
.loc-suggestion__label{
    font-size:13px;font-weight:500;color:var(--admin-text);line-height:1.3;
}
.loc-suggestion__sub{
    font-size:11px;color:var(--admin-muted);
}
.loc-suggestion:hover,.loc-suggestion:focus{background:var(--admin-bg);outline:none}

/* ── Right: media column wrapper (badges + zone) ────────────── */
.event-card-edit__media-col{
    display:flex;
    flex-direction:column;
    border-left:1px solid #e5ebf1;
    background:#fff;
    min-width:0;
}

/* ── Media zone — fixed 16:9, margin 8px, border-radius 8px ─── */
.event-card-edit__media{
    position:relative;
    background:#0f172a;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    aspect-ratio:16/9; /* fixed proportion */
    /* flex:1 removed — height is driven by aspect-ratio, not by column stretch */
    border-radius:8px;
    margin:0 8px 8px;
}

/* Cover image fills zone */
.event-card-edit__cover-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

/* Empty state (no cover yet) */
.event-card-edit__media-empty{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.25);
    font-size:12px;
    pointer-events:none;
    user-select:none;
}

/* Upload overlay — visible on hover */
.event-card-edit__upload-overlay{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.45);
    opacity:0;
    transition:opacity .18s;
    cursor:pointer;
    z-index:2;
}
.event-card-edit__media:hover .event-card-edit__upload-overlay{opacity:1}

.event-card-edit__upload-hint{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:#fff;
    text-align:center;
    pointer-events:none;
}
.event-card-edit__upload-hint svg{opacity:.9}
.event-card-edit__upload-hint span{font-size:13px;font-weight:600}
.event-card-edit__upload-hint small{font-size:11px;opacity:.65}

/* URL paste bar — no background container, elements float over image */
.event-card-edit__url-bar{
    position:absolute;
    bottom:12px;
    left:8px;
    right:8px;
    z-index:3;
    display:none; /* hidden by default, shown on hover via CSS */
    align-items:center;
    gap:6px;
    padding:0;
    /* No background or backdrop — transparent over the cover image */
}
/* Show on hover of media zone or while input is focused */
.event-card-edit__media:hover .event-card-edit__url-bar,
.event-card-edit__url-bar:focus-within{
    display:flex;
}
.event-card-edit__url-bar .input--xs{
    flex:1;
    min-width:0;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.3);
    border-radius:999px;
    color:#fff;
    padding-left:16px;
    padding-right:16px;
    height:36px;
    backdrop-filter:blur(6px);
}
.event-card-edit__url-bar .input--xs::placeholder{color:rgba(255,255,255,.45)}
.event-card-edit__url-bar .input--xs:focus{
    outline:none;
    border-color:rgba(255,255,255,.6);
    background:rgba(255,255,255,.18);
}
/* "Применить" — white outline pill button */
.event-card-edit__url-bar .btn--secondary{
    flex-shrink:0;
    border-radius:999px;
    white-space:nowrap;
    height:36px;
    padding:0 18px;
    background:rgba(255,255,255,.15);
    border:1px solid rgba(255,255,255,.35);
    color:#fff;
    font-weight:600;
    font-size:12px;
    backdrop-filter:blur(6px);
    transition:background .15s, border-color .15s;
}
.event-card-edit__url-bar .btn--secondary:hover{
    background:rgba(255,255,255,.28);
    border-color:rgba(255,255,255,.6);
}

/* Bottom toolbar */
.event-card-edit__media-toolbar{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    z-index:3;
    display:flex;
    align-items:center;
    gap:4px;
    padding:6px 10px;
    /* No solid background — only shows "Удалить" when cover present */
    opacity:0;
    transition:opacity .18s;
}
/* Hide toolbar entirely when the only button is hidden (no cover) */
.event-card-edit__media-toolbar:not(:has(:not([hidden]))){
    display:none;
}
.event-card-edit__media:hover .event-card-edit__media-toolbar{opacity:1}
.event-card-edit__media-toolbar .btn{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.2)}
.event-card-edit__media-toolbar .btn:hover{background:rgba(255,255,255,.1);color:#fff}
.event-card-edit__toolbar-btn--danger{color:#fca5a5 !important}
.event-card-edit__toolbar-btn--danger:hover{background:rgba(220,38,38,.2) !important;color:#fca5a5 !important}

/* Drag-over state */
.event-card-edit__media.drag-over .event-card-edit__upload-overlay{opacity:1}
.event-card-edit__media.drag-over{outline:3px dashed rgba(255,255,255,.5);outline-offset:-3px}

/* ── Responsive: stack vertically on narrow viewports ───────── */
@media(max-width:860px){
    .event-card-edit{grid-template-columns:1fr}
    .event-card-edit__media-col{
        border-left:none;
        border-top:1px solid #e5ebf1;
        order:-1;
    }
    .event-card-edit__media{
        /* aspect-ratio:16/9 уже задан по умолчанию */
        margin:0 8px 8px;
    }
    .event-card-edit__media-toolbar,
    .event-card-edit__upload-overlay{opacity:1}
    .event-card-edit__url-bar{display:flex} /* always visible on mobile */
}

/* ════════════════════════════════════════════════════════════════
   COVER SOURCE BADGES  (now above media zone, not inside it)
   ══════════════════════════════════════════════════════════════ */

.cover-source-badges{
    display:flex;
    gap:4px;
    flex-wrap:wrap;
    padding:8px 8px 4px;
    /* no longer position:absolute — static inside .event-card-edit__media-col */
}
.cover-source-badge{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:2px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.02em;
}
/* Muted palette — no longer bright opaque colors */
.cover-source-badge--uploaded{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.cover-source-badge--generated{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe}

/* ── Cover block inside event-card-edit__media-col ──────────────── */
.event-card-edit__media-col .cover-block{
    padding:10px 12px 12px;
    flex:1;
}
.event-card-edit__media-col .cover-gen__preview-wrap{
    aspect-ratio:16 / 9;
    border-radius:6px;
    overflow:hidden;
}
.event-card-edit__media-col .cover-gen__canvas,
.event-card-edit__media-col .cover-block__uploaded-img{
    width:100%;
    height:100%;
    object-fit:cover;
}
/* Drag-over state on preview wrap */
.cover-gen__preview-wrap.drag-over{
    outline:3px dashed rgba(255,255,255,.6);
    outline-offset:-3px;
}
.cover-gen__preview-wrap.drag-over .cover-gen__upload-overlay{
    opacity:1;
    pointer-events:auto;
}

/* ════════════════════════════════════════════════════════════════
   PARTICIPANTS PANEL
   ══════════════════════════════════════════════════════════════ */

/* ── Two-column participants layout ─────────────────────────── */
.participants-panel{gap:0}
.participants-layout{
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(0,1fr);
    gap:0 20px;
    align-items:start;
}
.participants-left{display:grid;gap:12px}
.participants-left__head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.participants-right{
    display:grid;
    gap:10px;
    border-left:1px solid var(--admin-line);
    padding-left:20px;
}
.participants-right__head{display:flex;align-items:center;justify-content:space-between}
.participants-right__label{font-size:12px;font-weight:600;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.05em}
.participants-right__create{
    display:inline-flex;align-items:center;gap:5px;
    font-size:12px;white-space:nowrap;
    color:var(--admin-accent,#0b4da2);
    text-decoration:none;
}
.participants-right__create:hover{text-decoration:underline}

/* Grid of cards — 2-column CSS grid */
.participants-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    align-content:start;
    min-height:60px;
}
/* Drop-zone highlight when dragging */
.participants-grid.drag-active{
    outline:2px dashed var(--admin-line);
    border-radius:8px;
    outline-offset:4px;
}

/* Empty state */
.participants-empty{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    color:var(--admin-muted);
    font-size:13px;
    border:1.5px dashed var(--admin-line);
    border-radius:8px;
    grid-column:1/-1;
    user-select:none;
    background:#f6f8fa;
}
/* The display:flex above outranks UA [hidden]{display:none} — fix explicitly */
.participants-empty[hidden]{ display:none !important; }
.participants-empty svg{flex-shrink:0;color:var(--admin-muted)}

/* ── Participant card (medium) ──────────────────────────────── */
.participant-card{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:8px 10px 8px 6px;
    background:#fff;
    border:1px solid var(--admin-line);
    border-radius:10px;
    cursor:default;
    transition:box-shadow .12s, border-color .12s;
    width:100%;
    position:relative;
    box-sizing:border-box;
}
.participant-card:hover{box-shadow:0 2px 10px rgba(17,41,71,.1);border-color:var(--admin-accent,#0b4da2)33}
.participant-card.is-dragging{opacity:.4;box-shadow:none}
.participant-card.is-drop-target{border-color:var(--admin-accent,#0b4da2);box-shadow:0 0 0 2px var(--admin-accent,#0b4da2)33}
.participant-card.is-flash{animation:card-flash .6s ease}
@keyframes card-flash{0%,100%{box-shadow:none}40%{box-shadow:0 0 0 3px var(--admin-brand,#2563eb)55}}

.participant-card__drag{
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:16px;
    color:var(--admin-muted);
    cursor:grab;
    padding:4px 0;
    background:none;
    border:none;
    opacity:.5;
    transition:opacity .1s;
}
.participant-card__drag:hover,.participant-card:hover .participant-card__drag{opacity:1}

/* Avatar */
.participant-avatar{
    flex-shrink:0;
    border-radius:999px;
    overflow:hidden;
    background:var(--person-avatar-bg,#e8edf5);
    color:var(--person-avatar-color,#4d6080);
    display:grid;
    place-items:center;
    font-weight:600;
    line-height:1;
}
.participant-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.participant-avatar--sm{width:32px;height:32px;font-size:11px}
.participant-avatar--md{width:44px;height:44px;font-size:14px}
.participant-avatar--lg{width:64px;height:64px;font-size:20px}

.participant-card__body{display:grid;gap:2px;min-width:0;flex:1;cursor:default}
/* Top row: role chip + expand chevron */
.participant-card__body-top{display:flex;align-items:center;gap:4px}
.participant-card__name{font-size:12px;font-weight:600;color:var(--admin-text);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* Compact meta — 1 line, truncated */
.participant-card__meta{font-size:10px;color:var(--admin-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.participant-card__org{font-size:10px;color:var(--admin-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.75}
/* ── Full regalia section — hidden until .is-expanded ─────────── */
.participant-card__full{
    display:none;
    margin-top:7px;
    padding-top:7px;
    border-top:1px solid var(--admin-line);
    gap:3px;
}
.participant-card.is-expanded .participant-card__full{display:grid}
.participant-card__full-meta{font-size:11px;color:var(--admin-text);line-height:1.45}
.participant-card__full-org{font-size:10px;color:var(--admin-muted);line-height:1.4}
.participant-card__full-city{font-size:10px;color:var(--admin-muted);opacity:.8}
/* ── Expand chevron button ────────────────────────────────────── */
.participant-card__expand{
    display:inline-flex;align-items:center;justify-content:center;
    width:16px;height:16px;padding:0;
    border:none;background:transparent;
    color:var(--admin-muted);cursor:pointer;
    border-radius:3px;
    font-size:9px;line-height:1;
    opacity:0;margin-left:auto;flex-shrink:0;
    transition:opacity .1s, transform .15s, background .1s;
}
.participant-card:hover .participant-card__expand{opacity:.7}
.participant-card.is-expanded .participant-card__expand{opacity:1;transform:rotate(180deg)}
.participant-card__expand:hover{background:var(--admin-bg);opacity:1!important}
/* ── Actions column: edit + remove ───────────────────────────── */
.participant-card__actions{
    display:flex;flex-direction:column;align-items:center;
    gap:2px;flex-shrink:0;margin-left:2px;
}
/* Edit pencil link — appears on hover */
.participant-card__edit{
    display:flex;align-items:center;justify-content:center;
    width:20px;height:20px;
    border-radius:4px;
    color:var(--admin-muted);
    text-decoration:none;font-size:12px;
    opacity:0;
    transition:opacity .1s, background .1s, color .1s;
}
.participant-card:hover .participant-card__edit{opacity:.7}
.participant-card__edit:hover{background:#dce9f7;color:#1f5f9b;opacity:1!important}

/* ── Role chip — frontend-matching color tokens, native select dropdown ── */
.participant-role-chip{
    appearance:none;
    -webkit-appearance:none;
    display:inline-block;
    padding:2px 20px 2px 10px;
    border-radius:999px;
    border:none;
    font-size:11px;
    font-weight:600;
    letter-spacing:.02em;
    cursor:pointer;
    line-height:1.6;
    max-width:none;
    width:fit-content;
    /* Chevron-down arrow */
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 3.5L5 6.5L8 3.5' stroke='%23334155' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 7px center;
    background-size:9px;
    background-color:#dbeafe; /* fallback */
    color:#1d4ed8;
    transition:opacity .12s;
}
.participant-role-chip:focus{outline:2px solid rgba(49,84,114,.25);outline-offset:2px}
.participant-role-chip:hover{opacity:.85}

/* Per-role color tokens (match frontend chip palette) */
.participant-role-chip[data-role="speaker"]     {background-color:#dbeafe;color:#1d4ed8}
.participant-role-chip[data-role="moderator"]   {background-color:#ede9fe;color:#5b21b6}
.participant-role-chip[data-role="host"]        {background-color:#ccfbf1;color:#0f766e}
.participant-role-chip[data-role="expert"]      {background-color:#dcfce7;color:#15803d}
.participant-role-chip[data-role="lecturer"]    {background-color:#e0f2fe;color:#0369a1}
.participant-role-chip[data-role="chair"]       {background-color:#ffedd5;color:#9a3412}
.participant-role-chip[data-role="co_chair"]    {background-color:#fef3c7;color:#92400e}
.participant-role-chip[data-role="author"]      {background-color:#f1f5f9;color:#475569}
.participant-role-chip[data-role="participant"] {background-color:#f3f4f6;color:#374151}

.participant-card__remove{
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border:none;
    background:transparent;
    color:var(--admin-muted);
    cursor:pointer;
    border-radius:4px;
    transition:background .1s, color .1s;
    padding:0;
}
.participant-card__remove:hover{background:#fee2e2;color:#dc2626}

/* ── Search row inside right column ─────────────────────────── */
.participant-picker-wrap{display:grid;gap:8px}
.participant-search-row{position:relative}
.participant-add-row__icon{
    position:absolute;
    left:10px;
    top:50%;
    transform:translateY(-50%);
    pointer-events:none;
    color:var(--admin-muted);
    z-index:1;
}
.participant-picker-search{
    width:100%;
    height:36px;
    padding:0 10px 0 30px;
    border:1px solid var(--admin-line);
    border-radius:7px;
    background:#fff;
    font-size:13px;
    color:var(--admin-text);
    outline:none;
    transition:border-color .15s, box-shadow .15s;
    box-sizing:border-box;
}
.participant-picker-search:focus{
    border-color:var(--admin-accent,#0b4da2);
    box-shadow:0 0 0 3px rgba(11,77,162,.12);
}

/* ── Results panel — static (not a dropdown) ─────────────────── */
.participant-picker-results{
    background:#fff;
    border:1px solid var(--admin-line);
    border-radius:8px;
    overflow:hidden;
    max-height:340px;
    overflow-y:auto;
}
.participant-picker-placeholder{
    padding:14px 14px;
    font-size:12px;
    color:var(--admin-muted);
    text-align:center;
    line-height:1.5;
}
.participant-picker-item{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    padding:9px 12px;
    border:none;
    background:transparent;
    cursor:pointer;
    text-align:left;
    transition:background .1s;
    box-sizing:border-box;
}
.participant-picker-item+.participant-picker-item{border-top:1px solid var(--admin-line)}
.participant-picker-item:hover{background:var(--admin-bg)}
.participant-picker-item.is-added{opacity:.55}
.participant-picker-item__body{display:grid;gap:1px;flex:1;min-width:0}
.participant-picker-item__name{font-size:13px;font-weight:600;color:var(--admin-text)}
.participant-picker-item__meta{font-size:11px;color:var(--admin-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.participant-picker-item__org{font-size:10px;color:var(--admin-muted);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.participant-picker-item__hint{font-size:10px;color:var(--admin-accent,#0b4da2);opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ── Full regalia: shown on hover ─────────────────────────────── */
.participant-picker-item__full{
    display:none;
    margin-top:3px;
    gap:2px;
}
.participant-picker-item:hover .participant-picker-item__full{display:grid}
.participant-picker-item__full-sub{font-size:11px;color:var(--admin-muted);line-height:1.4;white-space:normal}
.participant-picker-item__full-city{font-size:10px;color:var(--admin-muted);opacity:.75}
/* ── Right column: action + edit ─────────────────────────────── */
.participant-picker-item__right{
    display:flex;flex-direction:column;align-items:flex-end;
    gap:4px;flex-shrink:0;
}
.participant-picker-item__action{font-size:11px;font-weight:600;color:var(--admin-accent,#0b4da2);white-space:nowrap}
/* Edit link in picker — appears on hover */
.participant-picker-item__edit{
    font-size:11px;color:var(--admin-muted);
    text-decoration:none;white-space:nowrap;
    opacity:0;
    transition:opacity .1s,color .1s;
}
.participant-picker-item:hover .participant-picker-item__edit{opacity:.8}
.participant-picker-item__edit:hover{color:#1f5f9b;opacity:1!important;text-decoration:underline}
.participant-picker-empty{padding:12px 16px;font-size:13px;color:var(--admin-muted);text-align:center}

@media(max-width:860px){
    .participants-layout{grid-template-columns:1fr}
    .participants-right{border-left:none;border-top:1px solid var(--admin-line);padding-left:0;padding-top:16px}
    .participants-grid{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════════════════════
   VALIDATION HINTS  (subtle inline warnings)
   ══════════════════════════════════════════════════════════════ */

.field-validation-hint{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:11px;
    color:var(--admin-warn,#b45309);
    background:#fffbeb;
    border:1px solid #fde68a;
    border-radius:4px;
    padding:3px 8px;
    margin-top:2px;
}
.field-validation-hint[hidden]{display:none!important}
.field-validation-hint::before{
    content:'⚠';
    font-size:10px;
    flex-shrink:0;
}
.input--warn{border-color:var(--admin-warn,#b45309) !important;box-shadow:0 0 0 2px #fde68a80 !important}
.event-card-edit__title.input--warn{border-bottom-color:var(--admin-warn,#b45309) !important}
.event-card-edit__date-trigger.input--warn{border-color:var(--admin-warn,#b45309) !important;box-shadow:0 0 0 2px #fde68a80 !important}

/* ════════════════════════════════════════════════════════════════
   PROGRAM TABLE — SPEAKER PICKER CELL
   ══════════════════════════════════════════════════════════════ */

/* Make the speaker column non-wrapping & tighter */
.rko-table__th--speaker{white-space:nowrap;width:1%}
.rko-table__th--time{white-space:nowrap;width:1%}
.rko-table__cell--time{white-space:nowrap}
.rko-table__row--section td{
    font-weight:600;
    font-size:12px;
    color:var(--admin-muted);
    padding-top:12px;
    border-top:2px solid var(--admin-line);
    letter-spacing:.04em;
    text-transform:uppercase;
}

/* Speaker cell */
.program-speaker-cell{
    white-space:nowrap;
    display:flex;
    align-items:center;
    gap:4px;
    padding:2px 0;
}

/* Tiny avatar in chip */
.prog-speaker-avatar{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border-radius:999px;
    overflow:hidden;
    background:var(--person-avatar-bg,#e8edf5);
    color:var(--person-avatar-color,#4d6080);
    font-size:7px;
    font-weight:600;
    flex-shrink:0;
    vertical-align:middle;
}
.prog-speaker-avatar img{width:100%;height:100%;object-fit:cover;display:block}

/* Picked speaker chip */
.prog-speaker-chip{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:2px 8px 2px 4px;
    border:1px solid var(--admin-line);
    border-radius:999px;
    background:#fff;
    font-size:12px;
    color:var(--admin-text);
    cursor:pointer;
    white-space:nowrap;
    transition:border-color .12s, background .12s;
    line-height:1.4;
}
.prog-speaker-chip:hover{border-color:var(--admin-accent,#0b4da2);background:#f0f5ff}
.prog-speaker-chip__name{font-weight:500;max-width:160px;overflow:hidden;text-overflow:ellipsis}

.prog-speaker-chip__remove{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:18px;
    height:18px;
    border:none;
    background:transparent;
    color:var(--admin-muted);
    cursor:pointer;
    border-radius:999px;
    font-size:14px;
    line-height:1;
    padding:0;
    transition:background .1s, color .1s;
}
.prog-speaker-chip__remove:hover{background:#fee2e2;color:#dc2626}

/* Add speaker button */
.prog-speaker-add{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:2px 8px;
    border:1px dashed var(--admin-line);
    border-radius:999px;
    background:transparent;
    font-size:11px;
    color:var(--admin-muted);
    cursor:pointer;
    white-space:nowrap;
    transition:border-color .12s, color .12s, background .12s;
    line-height:1.5;
}
.prog-speaker-add:hover{
    border-color:var(--admin-accent,#0b4da2);
    color:var(--admin-accent,#0b4da2);
    background:#f0f5ff;
}

/* ── Floating speaker picker ────────────────────────────────── */
.prog-speaker-picker{
    position:fixed;
    z-index:200;
    width:min(380px,calc(100vw - 24px));
    max-height:72vh;
    background:#fff;
    border:1px solid var(--admin-line);
    border-radius:10px;
    box-shadow:0 12px 36px rgba(17,41,71,.16);
    overflow:hidden auto;
    display:grid;
}
.prog-speaker-picker__topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:9px 12px;
    border-bottom:1px solid var(--admin-line);
    background:#fff;
    font-size:12px;
    font-weight:700;
    color:var(--admin-text);
    cursor:grab;
    user-select:none;
}
.prog-speaker-picker__topbar:active{cursor:grabbing}
.prog-speaker-picker__drag-hint{font-size:10px;font-weight:600;color:var(--admin-muted)}
/* Section headers */
.prog-speaker-picker__section-hd{
    padding:5px 12px 4px;
    font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
    color:var(--admin-muted);
    background:var(--admin-bg);
    border-bottom:1px solid var(--admin-line);
}
.prog-speaker-picker__section-hd[hidden]{display:none!important}

/* Participant list */
.prog-speaker-picker__list{
    display:grid;
    max-height:160px;
    overflow-y:auto;
}
.prog-speaker-picker__list:empty{display:none}

/* Search results */
.prog-speaker-picker__item{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border:none;
    background:transparent;
    cursor:pointer;
    text-align:left;
    transition:background .1s;
    width:100%;
}
.prog-speaker-picker__item:hover{background:var(--admin-bg)}
.prog-speaker-picker__item.is-active{background:#eff6ff}
.prog-speaker-picker__item+.prog-speaker-picker__item{border-top:1px solid var(--admin-line)}
.prog-speaker-picker__item-body{display:grid;gap:1px;min-width:0;flex:1}
.prog-speaker-picker__item-name{font-size:12px;font-weight:600;color:var(--admin-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prog-speaker-picker__item-role{font-size:10px;color:var(--admin-muted)}
/* "+ участник" hint on search results not yet in event */
.prog-speaker-picker__item-add{font-size:10px;color:var(--admin-accent,#0b4da2);flex-shrink:0;white-space:nowrap;opacity:.7}
.prog-speaker-picker__item:hover .prog-speaker-picker__item-add{opacity:1}
.prog-speaker-picker__empty{padding:8px 12px;font-size:11px;color:var(--admin-muted)}

/* Search wrap + results */
.prog-speaker-picker__search-wrap{padding:7px 8px 6px;display:grid;gap:0;border-top:1px solid var(--admin-line)}
.prog-speaker-picker__search{
    width:100%;
    height:30px;
    padding:0 10px;
    border:1px solid var(--admin-line);
    border-radius:5px;
    font-size:12px;
    color:var(--admin-text);
    outline:none;
    transition:border-color .15s;
    box-sizing:border-box;
}
.prog-speaker-picker__search:focus{border-color:var(--admin-accent,#0b4da2)}
.prog-speaker-picker__results{
    display:grid;
    max-height:140px;
    overflow-y:auto;
    border:1px solid var(--admin-line);
    border-top:none;
    border-radius:0 0 5px 5px;
}
.prog-speaker-picker__results:empty{display:none!important}
.prog-speaker-picker__results .prog-speaker-picker__item{border-top:none}
.prog-speaker-picker__results .prog-speaker-picker__item+.prog-speaker-picker__item{border-top:1px solid var(--admin-line)}

/* Confirm strip — shown when person from DB is selected */
.prog-speaker-picker__confirm{
    padding:8px 10px;
    border-top:1px solid var(--admin-line);
    background:#f0f7ff;
    display:grid;
    gap:6px;
}
.prog-speaker-picker__confirm[hidden]{display:none!important}
.prog-speaker-picker__confirm-name{font-size:11px;font-weight:600;color:var(--admin-text)}
.prog-speaker-picker__confirm-actions{display:flex;gap:5px;flex-wrap:wrap}
.prog-speaker-picker__confirm-btn{
    flex:1;padding:5px 8px;font-size:11px;font-weight:600;
    border:1px solid var(--admin-line);border-radius:5px;
    background:#fff;color:var(--admin-text);cursor:pointer;
    transition:background .1s,border-color .1s;
    text-decoration:none;
    text-align:center;
}
.prog-speaker-picker__confirm-btn--primary{
    background:#1f5f9b;border-color:#1f5f9b;color:#fff;
}
.prog-speaker-picker__confirm-btn--primary:hover{background:#184e83}
.prog-speaker-picker__confirm-btn:not(.prog-speaker-picker__confirm-btn--primary):hover{background:var(--admin-bg)}

/* Footer row: create + manual */
.prog-speaker-picker__footer{
    display:flex;align-items:center;justify-content:space-between;
    padding:6px 10px 7px;
    border-top:1px solid var(--admin-line);
    gap:8px;
}
.prog-speaker-picker__create{
    font-size:11px;color:var(--admin-accent,#0b4da2);
    border:none;background:transparent;padding:0;cursor:pointer;
    text-decoration:none;white-space:nowrap;
}
.prog-speaker-picker__create:hover{text-decoration:underline}
.prog-speaker-picker__manual{
    padding:4px 9px;
    border:1px solid var(--admin-line);
    border-radius:5px;
    background:transparent;
    font-size:11px;
    color:var(--admin-muted);
    cursor:pointer;
    white-space:nowrap;
    transition:background .1s, color .1s;
}
.prog-speaker-picker__manual:hover{background:var(--admin-bg);color:var(--admin-text)}

/* Program editable table */
#program-row-actions{display:flex;gap:8px;margin-top:6px}
#program-row-actions[hidden]{display:none!important}
.prog-editable-table{width:100%;table-layout:fixed}
.prog-col-drag{width:24px;padding:0!important}
.prog-col-del{width:28px;padding:0!important}
.prog-editable-cell{cursor:text}
.prog-editable-cell:focus{outline:2px solid var(--admin-accent,#0b4da2);outline-offset:-2px;border-radius:2px}
.prog-drag-handle{cursor:grab;text-align:center;user-select:none}
.prog-drag-icon{font-size:14px;color:var(--admin-muted);opacity:.5;display:inline-block;line-height:1}
.prog-editable-row{transition:background .1s}
.prog-editable-row.is-dragging{opacity:.4}
.prog-editable-row.drag-over{outline:2px solid var(--admin-accent,#0b4da2);outline-offset:-2px}
.prog-row-del{
    display:flex;align-items:center;justify-content:center;
    width:20px;height:20px;border-radius:4px;border:none;
    background:transparent;color:var(--admin-muted);font-size:14px;
    cursor:pointer;transition:background .12s,color .12s;padding:0;
}
.prog-row-del:hover{background:#fee2e2;color:#dc2626}
.prog-section-note{font-weight:600;font-size:12px;color:var(--admin-muted);text-transform:uppercase;letter-spacing:.04em}
.prog-speaker-chip__unlinked{
    display:inline-flex;align-items:center;justify-content:center;
    width:14px;height:14px;border-radius:999px;
    background:#fef3c7;color:#b45309;font-size:9px;font-weight:700;
    margin-left:3px;flex-shrink:0;
}
.prog-speaker-chip.is-linked{border-color:var(--admin-accent,#0b4da2);background:#eff6ff}

/* ── Topic Pill Picker ──────────────────────────────────────────────────── */
.topics-panel{display:grid;gap:16px}
.topics-panel .panel__head{margin-bottom:0}
.topics-panel__divider{height:1px;background:var(--admin-line);margin:0 -20px}
.topic-display-hint{font-size:11px;font-weight:400;color:var(--admin-muted);margin-left:6px}
.topics-display-empty{font-size:12px;color:var(--admin-muted);margin:4px 0 0;padding:0}

/* Container */
.topic-pills{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:flex-start;
    min-height:36px;
    padding:2px 0;
}

/* Base pill */
.topic-pill{
    display:inline-flex;
    align-items:center;
    gap:4px;
    height:30px;
    padding:0 13px;
    border:1.5px solid var(--admin-line);
    border-radius:15px;
    background:var(--admin-bg);
    color:var(--admin-muted);
    font-size:12px;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    user-select:none;
    white-space:nowrap;
    transition:background .12s, color .12s, border-color .12s, box-shadow .12s;
}
.topic-pill:hover{
    border-color:var(--admin-accent,#0b4da2);
    color:var(--admin-text);
    background:color-mix(in srgb, var(--admin-accent,#0b4da2) 6%, transparent);
}

/* Selected state */
.topic-pill--on{
    background:var(--admin-accent,#0b4da2);
    border-color:var(--admin-accent,#0b4da2);
    color:#fff;
    box-shadow:0 1px 4px rgba(11,77,162,.22);
}
.topic-pill--on:hover{
    background:color-mix(in srgb, var(--admin-accent,#0b4da2) 88%, #000);
    border-color:color-mix(in srgb, var(--admin-accent,#0b4da2) 88%, #000);
}

/* Display pill (drag-reorder) */
.topic-pill--display{
    cursor:grab;
    padding-left:8px;
}
.topic-pill--display:active{cursor:grabbing}

/* Drag handle glyph */
.topic-pill__drag{
    font-size:13px;
    line-height:1;
    color:rgba(0,0,0,.25);
    margin-right:1px;
    pointer-events:none;
}
.topic-pill--on .topic-pill__drag{color:rgba(255,255,255,.5)}

/* Drag states */
.topic-pill--dragging{
    opacity:.4;
    box-shadow:0 4px 14px rgba(0,0,0,.18);
    cursor:grabbing;
}
.topic-pill--drag-over{
    outline:2px solid var(--admin-accent,#0b4da2);
    outline-offset:2px;
}

/* ── Typography overrides removed — values now live in base rules above ── */

/* ── Date wrap: now handled by .event-card-edit__date-trigger (custom picker) ──
   Keep stub for backward compat in case old snapshots reference these classes.   */
.event-card-edit__date-wrap{ display:inline-flex;align-items:center; }

/* ── Cover builder ──────────────────────────────────────────────────────── */
.cover-builder{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    z-index:1;
    overflow:hidden;
}

/* Live CSS cover preview */
.cbp{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:14px 18px 12px;
    transition:background .22s;
    min-height:0;
}
.cbp[data-palette="navy"]   {background:linear-gradient(140deg,#0F172A 0%,#1E3A5F 100%)}
.cbp[data-palette="crimson"]{background:linear-gradient(140deg,#1a0a12 0%,#4a1428 100%)}
.cbp[data-palette="teal"]   {background:linear-gradient(140deg,#042F2E 0%,#0D5C54 100%)}
.cbp[data-palette="slate"]  {background:linear-gradient(140deg,#1C2536 0%,#374151 100%)}
.cbp[data-palette="indigo"] {background:linear-gradient(140deg,#1E1B4B 0%,#3730A3 100%)}

.cbp__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:6px;
}
.cbp__logo{
    font-size:8px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:rgba(255,255,255,.32);
    line-height:1;
    flex-shrink:0;
}
.cbp__format-badge{
    display:inline-flex;
    align-items:center;
    padding:2px 8px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:99px;
    font-size:8px;
    font-weight:600;
    letter-spacing:.07em;
    text-transform:uppercase;
    color:rgba(255,255,255,.8);
    line-height:1.5;
    white-space:nowrap;
}
.cbp__title{
    flex:1;
    font-size:clamp(12px,2.2vw,17px);
    font-weight:600;
    line-height:1.26;
    color:#fff;
    word-break:break-word;
    display:-webkit-box;
    -webkit-line-clamp:5;
    -webkit-box-orient:vertical;
    overflow:hidden;
    padding:4px 0;
}
.cbp__footer{margin-top:auto;padding-top:4px}
.cbp__meta{
    font-size:8px;
    color:rgba(255,255,255,.48);
    margin-bottom:5px;
    line-height:1.4;
    min-height:12px;
}
.cbp__pills{display:flex;flex-wrap:wrap;gap:3px}
.cbp__pill{
    font-size:7px;
    font-weight:600;
    color:rgba(255,255,255,.9);
    border:1px solid rgba(255,255,255,.28);
    border-radius:99px;
    padding:2px 6px;
    line-height:1.5;
    white-space:nowrap;
}

/* Palette swatches strip */
.cbp-palettes{
    position:absolute;
    bottom:44px;
    left:10px;
    display:flex;
    gap:5px;
    z-index:4;
    padding:5px 6px;
    background:rgba(0,0,0,.35);
    border-radius:8px;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}
.cbp-palette{
    width:16px;
    height:16px;
    border-radius:4px;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:border-color .12s, transform .1s;
    padding:0;
}
.cbp-palette[data-palette="navy"]   {background:linear-gradient(135deg,#0F172A,#1E3A5F)}
.cbp-palette[data-palette="crimson"]{background:linear-gradient(135deg,#1a0a12,#4a1428)}
.cbp-palette[data-palette="teal"]   {background:linear-gradient(135deg,#042F2E,#0D5C54)}
.cbp-palette[data-palette="slate"]  {background:linear-gradient(135deg,#1C2536,#374151)}
.cbp-palette[data-palette="indigo"] {background:linear-gradient(135deg,#1E1B4B,#3730A3)}
.cbp-palette:hover{border-color:rgba(255,255,255,.7);transform:scale(1.18)}
.cbp-palette--on{border-color:#fff;transform:scale(1.12)}

/* ── Perforation section dividers — ported from pages.css ───────────────── */
/*    Front and back share one design system.                                 */
.section-perf{
    margin:0 var(--perf-margin);
    position:relative;
    height:var(--perf-h);
    background:
        radial-gradient(
            circle at var(--perf-dot-size) var(--perf-dot-size),
            var(--perf-dot-color) var(--perf-dot-size),
            transparent 0
        );
    background-size:var(--perf-dot-step) var(--perf-h);
}
.section-perf::before,
.section-perf::after{
    content:'';
    display:var(--perf-notch-display,none);
    position:absolute;
    top:50%;
    width:calc(var(--perf-notch-r) * 2);
    height:calc(var(--perf-notch-r) * 2);
    border-radius:50%;
    background:var(--perf-notch-bg);
    transform:translateY(-50%);
}
.section-perf::before{left:calc(-1 * var(--perf-notch-offset,52px))}
.section-perf::after{right:calc(-1 * var(--perf-notch-offset,52px))}

.section-perf-wrap{
    padding:var(--perf-wrap-v,6px) 0;
    pointer-events:none;
    user-select:none;
}

/* ── Labeled variant for admin form section separators ───────────────────── */
.section-perf-wrap.section-perf-labeled{
    position:relative;
    display:flex;
    align-items:center;
}
.section-perf-wrap.section-perf-labeled .section-perf{
    flex:1;
}
.section-perf-label{
    position:relative;
    z-index:1;
    padding-right:10px;
    background:var(--admin-bg,#f4f7fb);
    font-size:9px;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--admin-muted);
    white-space:nowrap;
    flex-shrink:0;
}

/* ═══════════════════════════════════════════════════════════════════
   EVENT EDITOR — AUTO-PCARD via :has()
   No HTML class changes needed: CSS detects which panels touch a
   separator and applies the correct mask + bridge automatically.
   Background: --admin-bg (#f4f7fb) shows through the notch cuts.
   ═══════════════════════════════════════════════════════════════════ */

.event-editor {
    --pc-notch:  7px;
    --pc-radius: 9px;      /* = --admin-radius-lg */
    --pc-inner:  2px;
    --pc-bridge: 10px;
    --pc-bg:     var(--admin-surface);
    gap: 0 !important;     /* panels flush; notch + shadow sell the gap */
    isolation: isolate;
}

/* Ensure every direct-child panel can host the bridge ::before */
.event-editor > .panel {
    position: relative;
}

/* ── Panel immediately before a separator → cut-bottom ─────── */
.event-editor > .panel:has(+ .section-perf-wrap) {
    border-bottom-left-radius:  var(--pc-inner);
    border-bottom-right-radius: var(--pc-inner);
    -webkit-mask:
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000,#000);
    -webkit-mask-composite: source-in, source-in;
    mask:
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000,#000);
    mask-composite: intersect;
}
/* White bridge fills the seam center, clears the side notches */
.event-editor > .panel:has(+ .section-perf-wrap)::before {
    content: "";
    position: absolute;
    left:   calc(var(--pc-notch) + 4px);
    right:  calc(var(--pc-notch) + 4px);
    bottom: calc(var(--pc-bridge) / -2);
    height: var(--pc-bridge);
    background: var(--pc-bg);
    z-index: 1;
    pointer-events: none;
}

/* ── Panel immediately after a separator → cut-top ─────────── */
.event-editor > .section-perf-wrap + .panel {
    border-top-left-radius:  var(--pc-inner);
    border-top-right-radius: var(--pc-inner);
    -webkit-mask:
        radial-gradient(circle var(--pc-notch) at 0    0%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%, transparent 98%, #000 100%),
        linear-gradient(#000,#000);
    -webkit-mask-composite: source-in, source-in;
    mask:
        radial-gradient(circle var(--pc-notch) at 0    0%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%, transparent 98%, #000 100%),
        linear-gradient(#000,#000);
    mask-composite: intersect;
}

/* ── Middle panel (between two separators) → both cuts ─────── */
/* Overrides the two single-cut rules above with the 4-gradient mask */
.event-editor > .section-perf-wrap + .panel:has(+ .section-perf-wrap) {
    border-radius: var(--pc-inner);
    -webkit-mask:
        radial-gradient(circle var(--pc-notch) at 0    0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000,#000);
    -webkit-mask-composite: source-in, source-in, source-in, source-in;
    mask:
        radial-gradient(circle var(--pc-notch) at 0    0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 0%,   transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 0    100%, transparent 98%, #000 100%),
        radial-gradient(circle var(--pc-notch) at 100% 100%, transparent 98%, #000 100%),
        linear-gradient(#000,#000);
    mask-composite: intersect;
}

/* ── Separator → zero-height perf-dots (SOT) ───────────────── */
.event-editor > .section-perf-wrap {
    display: block !important;   /* override flex from .section-perf-labeled */
    position: relative !important;
    height: 0 !important;
    padding: 0 !important;
    align-self: stretch;
    z-index: 10;
    pointer-events: none;
}
/* Dot line: absolute, inset past notch area, centered on seam */
.event-editor > .section-perf-wrap .section-perf {
    position: absolute;
    left:   calc(var(--pc-notch) + 8px);
    right:  calc(var(--pc-notch) + 8px);
    top:    -3px;
    height: 6px;
    margin: 0;
    background-image: radial-gradient(circle, var(--admin-line) 1.8px, transparent 2.2px);
    background-size: 12px 6px;
    background-repeat: repeat-x;
    background-position: left center;
}
/* Labels on separators duplicate the panel headings below — hide them */
.event-editor > .section-perf-wrap .section-perf-label {
    display: none;
}
/* Local bug fix: event-card-edit has border:1px that bleeds at the seam.
   Only remove bottom edge — the bridge ::before fills the gap. */
.event-editor > .event-card-edit {
    border-bottom: none;
}

/* ═══════════════════════════════════════════════════════════════
   PERSON PICKER — split-button (.ep-pi) + mode dropdown
   ═══════════════════════════════════════════════════════════════ */

/* Wrapper: flex row, fills the card-foot area */
.ep-pi {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    border-radius: 999px;
    border: 1.5px solid var(--admin-brand);
    overflow: visible;   /* dropdown must escape */
}

/* Primary "Вставить · mode" button */
.ep-pi__main {
    flex: 1;
    display: inline-flex;
    align-items: center;
    padding: 4px 10px 4px 14px;
    border: none;
    border-right: 1.5px solid var(--admin-brand);
    border-radius: 999px 0 0 999px;
    background: transparent;
    color: var(--admin-brand);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .12s, color .12s;
}
.ep-pi__main:hover {
    background: var(--admin-text);
    color: #fff;
}

/* ▾ toggle button */
.ep-pi__arrow {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border: none;
    border-radius: 0 999px 999px 0;
    background: transparent;
    color: var(--admin-brand);
    font-size: 13px;
    cursor: pointer;
    transition: background .12s, color .12s;
    line-height: 1;
}
.ep-pi__arrow:hover {
    background: var(--admin-brand-soft);
}

/* Dropdown panel — floats above, aligns to right edge of .ep-pi */
.ep-pi__dd {
    position: absolute;
    bottom: calc(100% + 6px);
    right: 0;
    min-width: 160px;
    background: #fff;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(17,41,71,.13);
    z-index: 200;
    overflow: hidden;
    padding: 4px 0;
}
.ep-pi__dd[hidden] { display: none; }

/* Mode option buttons */
.ep-pi__opt {
    display: block;
    width: 100%;
    padding: 7px 14px;
    border: none;
    background: transparent;
    color: var(--admin-text);
    font-size: 13px;
    text-align: left;
    cursor: pointer;
    transition: background .1s;
}
.ep-pi__opt:hover {
    background: var(--admin-brand-soft);
}
.ep-pi__opt--on {
    color: var(--admin-brand);
    font-weight: 600;
    background: var(--admin-brand-soft);
}
.ep-pi__opt--on::before {
    content: "✓ ";
}

/* ═══════════════════════════════════════════════════════════════
   PERSON PREVIEW INSIDE EDITOR — .rep variants
   Mirrors the frontend card styles so the editor surface
   shows the inserted person exactly as it appears on the page.
   ═══════════════════════════════════════════════════════════════ */

/* Shared base reset for all rep variants */
.rko-editor__surface .rep {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-style: normal;
    line-height: 1.35;
    vertical-align: middle;
    box-sizing: border-box;
}

/* ── inline: underlined text with a tiny person icon ─────────── */
.rko-editor__surface .rep--inline {
    display: inline;
    color: var(--admin-brand);
    text-decoration: underline;
    text-underline-offset: 2px;
    gap: 4px;
    font-size: inherit;
}
.rko-editor__surface .rep--inline svg {
    display: inline-block;
    vertical-align: -0.1em;
    width: 0.9em;
    height: 0.9em;
    opacity: .75;
}

/* ── chip: pill with initials avatar + name ───────────────────── */
.rko-editor__surface .rep--chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px 2px 4px;
    border-radius: 999px;
    background: var(--admin-brand-soft);
    color: var(--admin-brand);
    font-size: 13px;
    font-weight: 500;
}

/* ── compact-card: small horizontal card ─────────────────────── */
.rko-editor__surface .rep--compact {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 8px;
    background: var(--admin-surface-soft);
    border: 1px solid var(--admin-line);
    font-size: 13px;
}
.rko-editor__surface .rep--compact > div {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

/* ── speaker-card: larger card with badge ─────────────────────── */
.rko-editor__surface .rep--speaker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    background: var(--admin-surface-soft);
    border: 1px solid var(--admin-line);
    font-size: 14px;
}
.rko-editor__surface .rep--speaker > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* ── avatar circle (shared by chip, compact, speaker) ────────── */
.rko-editor__surface .rep__av {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--person-avatar-bg, var(--admin-brand-soft));
    color: var(--person-avatar-color, var(--admin-brand));
    font-size: 11px;
    font-weight: var(--person-avatar-font-weight, 600);
    letter-spacing: 0;
    border: 1px solid var(--person-avatar-border, rgba(13,22,33,.06));
}
/* Larger avatar for speaker-card */
.rko-editor__surface .rep__av--lg {
    width: 40px;
    height: 40px;
    font-size: 15px;
}
/* Photo inside avatar — override initials display */
.rko-editor__surface .rep__av img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

/* ── text elements ─────────────────────────────────────────────── */
.rko-editor__surface .rep__name {
    font-weight: 600;
    color: var(--admin-text);
    font-size: inherit;
    display: block;
}
.rko-editor__surface .rep__role {
    color: var(--admin-muted);
    font-size: 12px;
    display: block;
}
.rko-editor__surface .rep__badge {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 3px;
    background: var(--admin-brand-soft);
    color: var(--admin-brand);
    font-size: 10px;
    font-weight:600;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 2px;
}

/* Person entity block in the editor — reset the generic white card */
.rko-editor__surface .rko-editor-entity[data-entity-type="person"] {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    display: inline-flex;
}
.rko-editor__surface .rko-editor-entity[data-entity-type="person"]
    .rko-editor-entity__type-chip { display: none; }
.rko-editor__surface .rko-editor-entity[data-entity-type="person"]
    .rko-editor-entity__title { display: none; }

/* ═══════════════════════════════════════════════════════════════
   REF-COMBOBOX — event-kind / venue autocomplete widget
   ═══════════════════════════════════════════════════════════════ */

.ref-combobox {
    position: relative;
}
.ref-combobox__input {
    width: 100%;
}
.ref-combobox__results {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 120;
    background: #fff;
    border: 1px solid var(--admin-line);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(17,41,71,.11);
    overflow: hidden;
    max-height: 240px;
    overflow-y: auto;
    padding: 4px 0;
}
.ref-combobox__results[hidden] { display: none; }
.ref-combobox__item {
    display: block;
    width: 100%;
    padding: 8px 12px;
    border: none;
    background: transparent;
    font-size: 13px;
    color: var(--admin-text);
    text-align: left;
    cursor: pointer;
    transition: background .1s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ref-combobox__item:hover {
    background: var(--admin-bg);
}

/* ═══════════════════════════════════════════════════════════════
   VENUE SMART COMBOBOX
   ═══════════════════════════════════════════════════════════════ */
.venue-combobox {
    position: relative;
}
.venue-combobox__input {
    width: 100%;
}
.venue-combobox__dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 130;
    background: #fff;
    border: 1px solid var(--admin-line);
    border-radius: 9px;
    box-shadow: 0 8px 28px rgba(17,41,71,.13);
    overflow: hidden;
    max-height: 320px;
    overflow-y: auto;
    padding: 4px 0;
}
.venue-combobox__dropdown[hidden] { display: none; }

.venue-suggestion {
    display: block;
    width: 100%;
    padding: 9px 14px;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background .1s;
    line-height: 1.35;
}
.venue-suggestion:hover,
.venue-suggestion:focus {
    background: var(--admin-bg, #f3f6fa);
    outline: none;
}
.venue-suggestion__head {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.venue-suggestion__name {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--admin-text, #182638);
}
.venue-suggestion__city {
    font-size: 12px;
    color: var(--admin-muted, #6b7a90);
    flex: 1;
}
.venue-suggestion__count {
    font-size: 11px;
    color: #8fa5c0;
    margin-left: auto;
    white-space: nowrap;
}
.venue-suggestion__addr {
    font-size: 12px;
    color: var(--admin-muted, #6b7a90);
}
.venue-suggestion__meta {
    display: block;
    font-size: 12px;
    color: var(--admin-muted, #6b7a90);
    margin-top: 1px;
}
/* Participation mode badge inside suggestion */
.venue-suggestion__mode {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .01em;
    flex-shrink: 0;
}
.venue-suggestion__mode--online  { background: #e1f5ea; color: #1a7540; }
.venue-suggestion__mode--offline { background: #e5edf8; color: #1a4580; }
.venue-suggestion__mode--hybrid  { background: #fdf3e5; color: #7a4d10; }
/* "Create new venue" item */
.venue-suggestion--new {
    border-top: 1px solid var(--admin-line, #dce6f1);
}
.venue-suggestion--new .venue-suggestion__name {
    color: var(--admin-accent, #1e5f8a);
    font-weight: 500;
}

/* ═══════════════════════════════════════════════════════════════
   REGISTRATION DATE GROUP
   ═══════════════════════════════════════════════════════════════ */

.field-group--registration {
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:14px;
    border:1px solid var(--admin-line);
    border-radius:8px;
    background:#fff;
}
.field-group__label {
    font-size: 11px;
    font-weight:600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--admin-muted);
}
.field-group__head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.field-group__row {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}
.field-group--registration.is-registration-disabled [data-registration-fields] {
    opacity:.58;
}
.field-group--registration.is-registration-disabled [data-registration-fields] .field__label {
    color:var(--admin-muted);
}

/* ── Parent event picker ─────────────────────────────────────── */
.parent-event-picker{position:relative}
.parent-event-picker__search{display:flex;gap:8px;align-items:center}
.parent-event-picker__search .input{min-width:0}
.parent-event-picker__selected{display:grid;gap:2px;margin-top:8px;padding:9px 11px;border:1px solid #c7dbf6;border-radius:8px;background:#f0f6ff;color:var(--admin-text)}
.parent-event-picker__selected strong{font-size:13px;font-weight:700;line-height:1.25}
.parent-event-picker__selected span{font-size:11px;color:var(--admin-muted)}
.parent-event-picker__results{position:absolute;z-index:80;left:0;right:0;top:calc(100% - 18px);display:grid;max-height:260px;overflow:auto;border:1px solid var(--admin-line);border-radius:8px;background:#fff;box-shadow:0 14px 30px rgba(17,41,71,.14)}
.parent-event-picker__option{display:grid;gap:2px;width:100%;padding:10px 12px;border:none;border-bottom:1px solid var(--admin-line);background:#fff;text-align:left;cursor:pointer}
.parent-event-picker__option:hover{background:var(--admin-bg)}
.parent-event-picker__option strong{font-size:13px;color:var(--admin-text);line-height:1.25}
.parent-event-picker__option span{font-size:11px;color:var(--admin-muted)}
.parent-event-picker__empty{padding:12px;font-size:12px;color:var(--admin-muted)}
.parent-event-picker__advanced{margin-top:8px;font-size:12px;color:var(--admin-muted)}
.parent-event-picker__advanced summary{cursor:pointer}
.parent-event-picker__advanced .input{margin-top:6px}

/* ═══════════════════════════════════════════════════════════════
   SERIES PICKER — select + inline create/rename
   ═══════════════════════════════════════════════════════════════ */

.series-picker-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
}
.series-picker__select {
    flex: 1;
    min-width: 0;
}
.series-picker__actions {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}
.series-inline-form {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
}
.series-inline-form[hidden] { display: none; }
.series-inline-form .input {
    flex: 1;
    min-width: 0;
}

/* hint inline in label */
.field__hint-inline {
    font-size: 11px;
    font-weight: 400;
    color: var(--admin-muted);
    margin-left: 4px;
}

/* ═══════════════════════════════════════════════════════════════
   ORG-CARD — partner company card (replaces person-style card)
   ═══════════════════════════════════════════════════════════════ */

.org-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    background: var(--admin-surface-soft);
    border: 1px solid var(--admin-line);
    border-radius: 10px;
}
.org-card--selected {
    background: #fff;
    border-color: #c8d8e8;
    box-shadow: 0 2px 8px rgba(17,41,71,.07);
}

/* Logo square */
.org-card__logo-wrap {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 8px;
    border: 1px solid var(--admin-line);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.org-card__logo-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.org-card__logo-initials {
    font-size: 16px;
    font-weight:600;
    color: var(--admin-muted);
    letter-spacing: -.02em;
}

/* Text */
.org-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.org-card__role {
    font-size: 10px;
    font-weight:600;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--admin-muted);
}
.org-card__name {
    font-size: 15px;
    font-weight: 600;
    color: var(--admin-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.org-card__url {
    font-size: 12px;
    color: var(--admin-brand);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.org-card__url:hover { text-decoration: underline; }

/* Remove button */
.org-card__remove {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--admin-line);
    border-radius: 6px;
    background: transparent;
    color: var(--admin-muted);
    cursor: pointer;
    transition: background .12s, color .12s, border-color .12s;
    padding: 0;
}
.org-card__remove:hover {
    background: #fee2e2;
    border-color: #fca5a5;
    color: #dc2626;
}

/* ════════════════════════════════════════════════════════════════
   COVER FALLBACK PLACEHOLDER  (empty state replacing cbp)
   ══════════════════════════════════════════════════════════════ */

.cover-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    /* background inherited from .event-card-edit__media (#0f172a) */
}
.cover-fallback[hidden] { display: none; }

.cover-fallback__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
    padding: 24px 20px;
    pointer-events: none;
    user-select: none;
}

.cover-fallback__label {
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, .35);
    letter-spacing: .01em;
}

.cover-fallback__hint {
    font-size: 11px;
    color: rgba(255, 255, 255, .2);
    line-height: 1.5;
    max-width: 180px;
}

/* ════════════════════════════════════════════════════════════════
   EVENT KIND CHIP  (in card header, alongside format chip)
   ══════════════════════════════════════════════════════════════ */

.event-card-edit__kind-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px 3px 12px;
    border-radius: 999px;
    border: 1px dashed #c5d7e8;
    background: transparent;
    color: #6a8fac;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    line-height: 1.6;
    transition: background .12s, border-color .12s, color .12s;
}
.event-card-edit__kind-chip:hover {
    background: #eaf1f7;
    border-color: #a8c4d8;
    color: #315472;
}
.event-card-edit__kind-chip svg {
    opacity: .55;
    flex-shrink: 0;
}
/* When kind is set (JS adds .has-value), make border solid */
.event-card-edit__kind-chip.has-value {
    border-style: solid;
    color: #315472;
    background: #eaf1f7;
}

/* ══════════════════════════════════════════════════════════════
   Custom date-picker trigger button — styled as a bordered input
   ══════════════════════════════════════════════════════════════ */
.event-card-edit__date-trigger{
    display:flex;
    align-items:center;
    width:100%;
    min-height:30px;
    padding:5px 9px;
    border:1px solid var(--admin-line);
    border-radius:6px;
    background:#fff;
    cursor:pointer;
    font-family:inherit;
    line-height:1.5;
    transition:border-color .15s,box-shadow .15s;
    text-align:left;
}
.event-card-edit__date-trigger:hover{
    border-color:#a8c4d8;
}
.event-card-edit__date-trigger:focus{
    outline:none;
    border-color:#315472;
    box-shadow:0 0 0 2px rgba(49,84,114,.12);
}
/* Optional end-date trigger: dashed until a value is set */
.event-card-edit__date-trigger--optional{
    border-style:dashed;
}
.event-card-edit__date-trigger--optional.has-value{
    border-style:solid;
}
.event-card-edit__date-trigger .event-card-edit__date-text{
    font-size:12px;
    font-weight:500;
    color:#09111b;
    border:none;
    white-space:nowrap;
    display:none; /* hidden when empty */
}
.event-card-edit__date-trigger.has-value .event-card-edit__date-text{display:inline}
.event-card-edit__date-trigger.has-value .event-card-edit__date-placeholder{display:none}

/* Form-context date trigger: full input height (overrides compact header variant) */
.admin-dp-trigger{
    height:var(--admin-input-height);
    box-sizing:border-box;
    padding:0 14px;
    font-size:14px;
}
.event-card-edit__date-placeholder{
    font-size:12px;
    color:#8ea0b2;
    border:none;
    line-height:1.5;
}

/* ── Calendar popup ─────────────────────────────────────────── */
.dp-popup{
    position:fixed; /* positioned via JS */
    z-index:9999;
    background:#fff;
    border:1px solid #dce9f2;
    border-radius:16px;
    box-shadow:0 8px 32px rgba(13,26,46,.14), 0 2px 8px rgba(13,26,46,.08);
    padding:16px;
    width:256px;
    user-select:none;
    animation:dp-appear .12s ease;
}
@keyframes dp-appear{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.dp-popup__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:10px;
}
.dp-popup__nav{
    width:28px;height:28px;
    border:none;border-radius:8px;background:transparent;
    cursor:pointer;font-size:16px;line-height:1;
    color:#566476;
    display:flex;align-items:center;justify-content:center;
    transition:background .1s,color .1s;
}
.dp-popup__nav:hover{background:#eef4f9;color:#09111b}
.dp-popup__caption{
    font-size:13px;font-weight:600;color:#09111b;
    cursor:pointer;
    padding:2px 6px;border-radius:6px;
    transition:background .1s;
}
.dp-popup__caption:hover{background:#eef4f9}
.dp-popup__wdays{
    display:grid;grid-template-columns:repeat(7,1fr);
    margin-bottom:4px;
}
.dp-popup__wday{
    font-size:10px;font-weight:600;text-align:center;
    color:#8ea0b2;padding:2px 0;
}
.dp-popup__grid{
    display:grid;grid-template-columns:repeat(7,1fr);gap:2px;
}
.dp-popup__day{
    aspect-ratio:1;
    display:flex;align-items:center;justify-content:center;
    font-size:12px;font-weight:500;color:#09111b;
    border:none;border-radius:8px;background:transparent;
    cursor:pointer;
    transition:background .1s,color .1s;
    position:relative;
}
.dp-popup__day:hover{background:#eef4f9}
.dp-popup__day--other-month{color:#b0bec8;font-weight:400}
.dp-popup__day--today{
    box-shadow:inset 0 0 0 1px #5b9bd5;
    color:#1c597e;
    font-weight:600;
}
.dp-popup__day--selected{
    background:#1c4f7a;
    color:#fff;
    font-weight:600;
}
.dp-popup__day--selected:hover{background:#15405f}
.dp-popup__day--disabled{opacity:.28;cursor:default;pointer-events:none}
/* Paste row at bottom */
.dp-popup__paste-row{
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid #e8f0f7;
    display:flex;gap:6px;align-items:center;
}
.dp-popup__paste-input{
    flex:1;font-size:12px;padding:4px 8px;
    border:1px solid #d7e1eb;border-radius:8px;
    outline:none;font-family:inherit;
    color:#09111b;background:#f8fafc;
    transition:border-color .15s;
}
.dp-popup__paste-input:focus{border-color:#5b9bd5;background:#fff}
.dp-popup__paste-input::placeholder{color:var(--admin-placeholder)}
.dp-popup__paste-hint{font-size:10px;color:#8ea0b2;line-height:1.3}

/* ══════════════════════════════════════════════════════════════
   Event-kind inline dropdown chip
   ══════════════════════════════════════════════════════════════ */
.ek-dropdown{position:relative;display:inline-flex;align-items:center}
.ek-dropdown__popup{
    position:absolute;
    top:calc(100% + 6px);
    left:0;
    z-index:9998;
    background:#fff;
    border:1px solid #dce9f2;
    border-radius:14px;
    box-shadow:0 8px 28px rgba(13,26,46,.13), 0 2px 6px rgba(13,26,46,.07);
    width:240px;
    padding:8px 0 6px;
    animation:dp-appear .12s ease;
}
.ek-dropdown__search-wrap{padding:0 8px 6px;border-bottom:1px solid #e8f0f7}
.ek-dropdown__search{
    width:100%;box-sizing:border-box;
    padding:5px 10px;font-size:13px;
    border:1px solid #d7e1eb;border-radius:8px;
    outline:none;font-family:inherit;background:#f8fafc;
    color:#09111b;
    transition:border-color .15s;
}
.ek-dropdown__search:focus{border-color:#5b9bd5;background:#fff}
.ek-dropdown__list{
    max-height:200px;overflow-y:auto;
    padding:4px 8px;display:flex;flex-wrap:wrap;gap:5px;
}
.ek-dropdown__option{
    display:inline-flex;align-items:center;
    padding:3px 10px;border-radius:999px;
    border:1px solid #c5d7e8;background:#eaf1f7;
    color:#315472;font-size:12px;font-weight:600;
    cursor:pointer;white-space:nowrap;
    transition:background .1s,border-color .1s;
    font-family:inherit;
}
.ek-dropdown__option:hover{background:#dce8f3;border-color:#a8c4d8}
.ek-dropdown__option.is-selected{
    background:#1c4f7a;border-color:#1c4f7a;color:#fff;
}
.ek-dropdown__new{padding:4px 8px;border-top:1px solid #e8f0f7}
.ek-dropdown__new-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:4px 10px;border-radius:999px;border:1px dashed #c5d7e8;
    background:transparent;color:#6a8fac;font-size:12px;font-weight:600;
    cursor:pointer;font-family:inherit;
    transition:background .1s,color .1s,border-color .1s;
}
.ek-dropdown__new-btn:hover{background:#eaf1f7;color:#315472;border-color:#a8c4d8}
.ek-dropdown__sep{
    width:100%;padding:2px 4px;margin-top:2px;
    font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    color:#9ab0c4;
}
.ek-dropdown__option--preset{background:#e4eedf;border-color:#b5d6a5;color:#2d6a36}
.ek-dropdown__option--preset:hover{background:#d3e8cb;border-color:#96c47e}
.ek-dropdown__option--preset.is-selected{background:#287340;border-color:#287340;color:#fff}
.ek-dropdown__empty{
    width:100%;padding:10px 4px;
    font-size:12px;color:#9ab0c4;text-align:center;
}

/* ── Visual materials section ────────────────────────────── */
.visual-suggestion-banner{
    display:flex;align-items:center;gap:8px;
    padding:10px 14px;border-radius:var(--admin-radius);
    background:#f0f7ff;border:1px solid #bdd5ef;
    font-size:13px;color:#1c4f7a;
}
.visual-suggestion-banner[hidden]{display:none!important}

.visuals-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
@media(max-width:900px){.visuals-grid{grid-template-columns:1fr}}

.visual-slot{
    display:grid;gap:0;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius-lg);
    overflow:hidden;
    background:var(--admin-surface);
}
.visual-slot__head{
    padding:14px 16px 12px;
    border-bottom:1px solid var(--admin-line);
    background:var(--admin-surface-soft);
    display:grid;gap:6px;
}
.visual-slot__label{display:flex;align-items:center;gap:8px}
.visual-slot__desc{font-size:12px;color:var(--admin-muted);line-height:1.45}
.visual-slot__body{padding:14px 16px;display:grid;gap:12px}

.visual-slot__badge{
    display:inline-flex;align-items:center;
    padding:1px 7px;border-radius:999px;
    font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.visual-slot__badge--cover{background:#fee2e2;color:#9b1c1c}
.visual-slot__badge--frame{background:#e0e7ff;color:#3730a3}
.visual-slot__badge--cert{background:#d1fae5;color:#065f46}

.visual-slot__preview{
    border-radius:var(--admin-radius);overflow:hidden;
    background:var(--admin-surface-soft);
    aspect-ratio:16/9;display:grid;place-items:center;
}
.visual-slot__img{display:block;width:100%;height:100%;object-fit:cover}
.visual-slot__cert-iframe{width:100%;height:220px;border:0;display:block}

.visual-slot__placeholder{
    display:grid;place-items:center;gap:10px;
    padding:20px;aspect-ratio:16/9;
    text-align:center;font-size:12px;color:var(--admin-muted);
}
.visual-slot__placeholder-icon{color:var(--admin-muted);opacity:.5}

.visual-slot__actions{display:flex;flex-wrap:wrap;gap:8px}

/* Cover preview: strict 16×9, relative for overlay */
.visual-slot__cover-preview{position:relative}
.visual-slot__cover-preview .visual-slot__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Participant overlay on cover preview — inline person cards, 2-col grid */
.cover-participants-overlay{
    position:absolute;bottom:0;left:0;right:0;
    padding:20px 10px 10px;
    background:linear-gradient(to top,rgba(0,0,0,.62) 0%,rgba(0,0,0,.28) 65%,transparent 100%);
    pointer-events:none;
}
.cover-ov__grid{
    display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;
}
.cover-ov__person{
    display:flex;align-items:center;gap:7px;min-width:0;
}
.cover-ov__av{
    display:flex;align-items:center;justify-content:center;
    width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0;
    background:rgba(255,255,255,.18);border:1.5px solid rgba(255,255,255,.5);
}
.cover-ov__av img{width:100%;height:100%;object-fit:cover;display:block}
.cover-ov__av--initials{font-size:9px;font-weight:600;color:#fff}
.cover-ov__info{display:flex;flex-direction:column;gap:1px;min-width:0}
.cover-ov__name{
    font-size:10px;font-weight:600;color:#fff;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25;
}
.cover-ov__sub{
    font-size:8px;color:rgba(255,255,255,.72);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25;
}

/* Material entity pickers — same height/style as participant picker */
.mat-picker-col{display:flex;flex-direction:column;gap:0}
.mat-picker-col .field__label{margin-bottom:6px}
.mat-picker-wrap{display:grid;gap:0;flex:1}
.mat-picker-wrap .participant-picker-results{max-height:260px}

.btn--sm{padding:5px 12px;font-size:12px}

/* ══════════════════════════════════════════════════════════════
   Material Import Wizard
   ══════════════════════════════════════════════════════════════ */
.mw-panel{ display:flex; flex-direction:column; }

/* Upload zone */
.mw-upload-zone{ display:flex; flex-direction:column; gap:10px; }
.mw-drop-area{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:8px; padding:28px 20px;
    border:2px dashed #c5d7e8; border-radius:10px;
    background:#f8fafc; cursor:pointer;
    transition:border-color .15s, background .15s;
}
.mw-drop-area:hover,
.mw-drop-area.is-drag-over{
    border-color:#5b9bd5; background:#eef5fc;
}
.mw-drop-area__label{ font-size:13px; font-weight:500; color:#315472; }
.mw-drop-area__hint{ font-size:11px; color:#7b8ea2; }

.mw-or{
    text-align:center; font-size:12px; font-weight:500;
    color:#93a4b5; position:relative;
}
.mw-or::before,.mw-or::after{
    content:''; position:absolute; top:50%; width:42%;
    height:1px; background:#e5ebf1;
}
.mw-or::before{ left:0; } .mw-or::after{ right:0; }

/* Progress */
.mw-progress-bar{
    height:4px; border-radius:2px; background:#e5ebf1; overflow:hidden;
}
.mw-progress-fill{
    height:100%; border-radius:2px; background:#3b82f6;
    width:0; transition:width .4s ease;
    animation: mw-indeterminate 1.4s infinite ease-in-out;
}
@keyframes mw-indeterminate{
    0%  { transform:translateX(-100%) scaleX(0.4); }
    50% { transform:translateX(20%)  scaleX(0.8); }
    100%{ transform:translateX(100%) scaleX(0.4); }
}
.mw-progress-label{ font-size:12px; color:#7b8ea2; margin-top:6px; }

/* Review panel */
.mw-review-header{
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:10px;
}
.mw-review-title{ font-size:13px; font-weight:600; color:#0d1621; }
.mw-preview-box{
    margin-bottom:12px;
}
.mw-warnings{
    padding:10px 14px; background:#fffbeb; border:1px solid #fde68a;
    border-radius:8px; font-size:12px; color:#92400e;
    margin-bottom:10px; display:flex; flex-direction:column; gap:4px;
}

/* Fields list */
.mw-fields-list{ display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.mw-field{
    display:grid; grid-template-columns:1fr auto;
    gap:6px 10px; padding:10px 12px;
    border:1px solid #e5ebf1; border-radius:8px; background:#fff;
}
.mw-field.is-low-confidence{ border-color:#fde68a; background:#fffcf0; }
.mw-field__header{ display:flex; align-items:center; gap:6px; grid-column:1/-1; }
.mw-field__label{ font-size:11px; font-weight:600; color:#7b8ea2; text-transform:uppercase; letter-spacing:.05em; }
.mw-field__badge{
    font-size:10px; font-weight:600; padding:1px 7px; border-radius:999px;
    letter-spacing:.03em;
}
.mw-field__badge--high   { background:#dcfce7; color:#15803d; }
.mw-field__badge--medium { background:#dbeafe; color:#1d4ed8; }
.mw-field__badge--low    { background:#fef3c7; color:#b45309; }
.mw-field__input{ flex:1; width:100%; }
.mw-field__fragment{
    font-size:11px; color:#7b8ea2; grid-column:1/-1;
    border-left:2px solid #e5ebf1; padding-left:8px; margin-top:2px;
    font-style:italic; white-space:pre-wrap; word-break:break-word;
    max-height:52px; overflow:hidden;
}
.mw-field__skip-toggle{
    font-size:11px; color:#93a4b5; cursor:pointer; white-space:nowrap;
    align-self:start; padding-top:2px;
}
.mw-field.is-skipped{ opacity:.45; }

/* Actions */
.mw-review-actions{
    display:flex; gap:10px; align-items:center; flex-wrap:wrap;
    padding-top:10px; border-top:1px solid #e5ebf1;
}

/* Added materials list */
.mw-added-list{
    display:flex; flex-direction:column; gap:6px;
    padding:12px 14px; background:#f0f7ff;
    border:1px solid #c3ddf7; border-radius:10px;
}
.mw-added-list__heading{
    font-size:11px; font-weight:600; letter-spacing:.06em;
    text-transform:uppercase; color:#315472; margin-bottom:4px;
}
.mw-added-item{
    display:flex; align-items:center; gap:10px;
    padding:8px 12px; background:#fff;
    border:1px solid #e5ebf1; border-radius:8px;
}
.mw-added-item__icon{ font-size:16px; flex-shrink:0; }
.mw-added-item__body{ flex:1; min-width:0; }
.mw-added-item__title{
    font-size:13px; font-weight:600; color:#0d1621;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.mw-added-item__meta{ font-size:11px; color:#7b8ea2; margin-top:2px; }
.mw-added-item__status{
    font-size:10px; font-weight:600; padding:2px 8px; border-radius:999px;
}
.mw-added-item__status--suggested{ background:#fef3c7; color:#92400e; }
.mw-added-item__status--approved { background:#dcfce7; color:#15803d; }
.mw-added-item__actions{ display:flex; gap:6px; flex-shrink:0; }

/* Event announcement wizard */
/* ── Announcement wizard — secondary detached block ──────────────────────── */
.event-announcement-wizard{
    background:var(--admin-bg);
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    /* intentionally no box-shadow: secondary / helper block */
}
.event-announcement-wizard__summary{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    padding:10px 18px 8px;
    cursor:pointer;
    list-style:none;
    user-select:none;
}
.event-announcement-wizard__summary::-webkit-details-marker{display:none}
.event-announcement-wizard__label{
    font-size:12px;
    font-weight:600;
    letter-spacing:.02em;
    color:var(--admin-muted);
}
.event-announcement-wizard__arrow{
    font-size:16px;
    line-height:1;
    color:var(--admin-muted);
    transition:transform .18s;
}
.event-announcement-wizard[open] .event-announcement-wizard__arrow{
    transform:rotate(180deg);
}
/* Description visible as first thing on expand */
.event-announcement-wizard__desc{
    margin:0 0 16px;
    font-size:13px;
    line-height:1.5;
    color:var(--admin-muted);
}
.event-announcement-wizard__body{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
    gap:var(--admin-space-4);
    padding:16px 18px 18px;
    border-top:1px solid var(--admin-line);
}
.event-announcement-wizard__input{
    display:grid;
    gap:var(--admin-space-3);
    padding-top:18px;
}
.event-announcement-wizard__textarea{
    min-height:180px;
    resize:vertical;
}
.event-announcement-wizard__upload{
    display:grid;
    gap:6px;
}
.event-announcement-wizard__actions{
    display:flex;
    align-items:center;
    gap:var(--admin-space-3);
    flex-wrap:wrap;
}
.event-announcement-wizard__actions .is-error{
    color:var(--admin-danger);
}
.event-announcement-wizard__result{
    display:grid;
    gap:var(--admin-space-3);
    padding:18px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius-lg);
    background:var(--admin-surface-soft);
}
.event-announcement-wizard__result[hidden],
.event-announcement-wizard__warnings[hidden]{display:none}
.event-announcement-wizard__result-head{
    display:flex;
    justify-content:space-between;
    gap:var(--admin-space-3);
    align-items:flex-start;
}
.event-announcement-wizard__fields{
    display:grid;
    gap:var(--admin-space-3);
}
.event-announcement-wizard__warning{
    padding:8px 10px;
    border:1px solid #f3d7a3;
    border-radius:var(--admin-radius);
    background:#fff8e8;
    color:var(--admin-warning);
    font-size:12px;
    line-height:1.4;
}
.event-announcement-field{
    display:grid;
    gap:8px;
    padding:12px;
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:#fff;
}
.event-announcement-field__toggle{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    font-size:13px;
    font-weight:600;
    color:var(--admin-text);
}
.event-announcement-field__toggle em{
    margin-left:auto;
    padding:2px 7px;
    border-radius:999px;
    background:var(--admin-brand-soft);
    color:var(--admin-brand);
    font-size:10px;
    font-style:normal;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.event-announcement-field__fragment{
    margin:0;
    padding-left:10px;
    border-left:2px solid var(--admin-line);
    color:var(--admin-muted);
    font-size:12px;
    line-height:1.45;
    white-space:pre-wrap;
}
.announcement-schema-helper{
    padding-top:18px;
}
.announcement-schema-helper__summary{
    cursor:pointer;
    color:var(--admin-brand);
    font-weight:600;
}
.announcement-schema-helper__intro{
    margin:10px 0 12px;
    color:var(--admin-muted);
    font-size:13px;
    line-height:1.45;
}
.announcement-schema-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
    background:#fff;
    border-radius:var(--admin-radius);
    overflow:hidden;
}
.announcement-schema-table th,
.announcement-schema-table td{
    padding:9px 10px;
    border-bottom:1px solid var(--admin-line);
    text-align:left;
    vertical-align:top;
    font-size:12px;
    line-height:1.35;
}
.announcement-schema-table th{
    color:var(--admin-muted);
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.announcement-schema-table tr:last-child td{border-bottom:0}

@media (max-width: 1100px){
    .event-announcement-wizard__body{
        grid-template-columns:1fr;
    }
}

/* ════════════════════════════════════════════════════════════════
   INVITATION DETECTOR PANEL  (news edit page)
   ════════════════════════════════════════════════════════════════ */
/* ══════════════════════════════════════════════════════════════════════════
   Invitation Assistant — compact banner + expandable assistant panel
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Compact banner ─────────────────────────────────────────────────────── */
/* ── Invitation block (unified single element) ───────────────────────────── */
.inv-block{margin-bottom:14px}
.inv-block__panel{
    border-radius:var(--admin-radius);
    border:1.5px solid var(--admin-line);
    background:#fff;overflow:hidden;
}
.inv-block__panel--detected{
    border-color:#bcd5ee;
    background:linear-gradient(135deg,#f0f7ff,#fafcff);
}
.inv-block__panel--linked{
    border-color:#86efac;
    background:linear-gradient(135deg,#f0fdf4,#fafffe);
}
.inv-block__panel--dismissed{
    border-color:var(--admin-line);
    background:var(--admin-surface-soft);
}

/* Header row */
.inv-block__head{display:flex;align-items:center;gap:10px;padding:12px 14px}
.inv-block__head-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.inv-block__head-right{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}
.inv-block__icon{font-size:18px;flex-shrink:0;line-height:1}
.inv-block__title-wrap{display:grid;gap:3px;min-width:0}
.inv-block__title{font-size:13px;font-weight:600;color:#09111b}
.inv-block__score{
    flex-shrink:0;
    display:inline-flex;align-items:center;justify-content:center;
    min-width:40px;height:40px;border-radius:50%;
    font-size:12px;font-weight:700;border:2px solid currentColor;padding:0 6px;
}
.inv-block__signals{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}

/* Section divider */
.inv-block__section{
    border-top:1px solid rgba(0,0,0,.06);
    padding:10px 14px;display:grid;gap:8px;
}
.inv-block__section-label{
    font-size:10px;font-weight:700;letter-spacing:.07em;
    text-transform:uppercase;color:var(--admin-muted);
}
.inv-block__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* Spinner / empty state */
.inv-block__finding{
    display:flex;align-items:center;gap:8px;
    font-size:13px;color:var(--admin-muted);padding:2px 0;
}
.inv-block__no-dupes{font-size:12px;color:var(--admin-muted);padding:2px 0}

/* Dismissed state */
.inv-block__dismissed-row{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.inv-block__dismissed-label{font-size:12px;color:var(--admin-muted);flex:1}

/* Status message */
.inv-block__status{
    margin:0 14px 12px;
    font-size:13px;padding:8px 12px;border-radius:6px;
}
.inv-block__status--ok {background:#dcfce7;color:#15803d}
.inv-block__status--err{background:#fee2e2;color:#991b1b}

/* Details accordion */
.inv-block__details summary{
    font-size:12px;color:var(--admin-muted);cursor:pointer;
    user-select:none;list-style:none;
    display:flex;align-items:center;gap:6px;
}
.inv-block__details summary::before{
    content:'▶';font-size:9px;transition:transform .15s;display:inline-block;
}
.inv-block__details[open] summary::before{transform:rotate(90deg)}
.inv-block__details summary::-webkit-details-marker{display:none}
.inv-block__details-body{margin-top:10px}

/* Score colours */
.inv-score--strong  {color:#15803d;background:#dcfce7}
.inv-score--likely  {color:#1d4ed8;background:#dbeafe}
.inv-score--possible{color:#92400e;background:#fef3c7}

/* Signal pills */
.inv-signal{
    display:inline-flex;align-items:center;gap:3px;
    padding:2px 7px;border-radius:999px;
    font-size:11px;font-weight:500;
    background:#dbeafe;color:#1e40af;
    border:1px solid #bfdbfe;white-space:nowrap;
}
.inv-signal em{font-style:normal;font-weight:600}

/* Spinner animation */
.inv-ast-spin{
    width:18px;height:18px;flex-shrink:0;
    color:var(--admin-brand);
    animation:inv-spin .8s linear infinite;
}
@keyframes inv-spin{to{transform:rotate(360deg)}}

/* News title reference row */
.inv-block__news-ref{
    display:flex;align-items:baseline;gap:6px;
    padding:6px 14px 8px;
    border-top:1px solid rgba(0,0,0,.06);
    font-size:12px;
}
.inv-block__news-ref-label{
    flex-shrink:0;color:var(--admin-muted);font-weight:600;
}
.inv-block__news-ref-title{
    font-size:14px;font-weight:500;color:var(--admin-text);line-height:1.4;
    overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}

/* Dupe event cards */
.inv-dupe-list{display:grid;gap:8px;max-height:280px;overflow-y:auto}
.inv-dupe-card{
    display:grid;gap:10px;
    padding:14px 16px;
    background:#f8fbff;
    border:1.5px solid #bcd5ee;
    border-radius:10px;
    transition:border-color .12s,box-shadow .12s;
}
.inv-dupe-card:hover{
    border-color:var(--admin-brand);
    box-shadow:0 2px 8px rgba(49,84,114,.1);
}
.inv-dupe-card__info{
    display:grid;gap:4px;min-width:0;
}
.inv-dupe-card__sim{
    display:inline-flex;align-items:center;
    padding:2px 8px;border-radius:999px;
    font-size:10px;font-weight:700;letter-spacing:.04em;
    background:#dcfce7;color:#15803d;
    border:1px solid #86efac;
    width:fit-content;
}
.inv-dupe-card__date{
    font-size:11px;color:var(--admin-muted);font-weight:500;
    margin-top:4px;
}
.inv-dupe-card__title{
    font-size:14px;font-weight:600;color:#09111b;
    overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.inv-dupe-card__meta{
    font-size:12px;color:var(--admin-muted);
}
.inv-dupe-card__actions{
    display:flex;gap:6px;flex-wrap:wrap;
}

/* "Create event" preview card */
.inv-create-card{
    display:grid;gap:4px;
    padding:14px 16px;
    background:var(--admin-surface-soft);
    border:1.5px dashed var(--admin-line);
    border-radius:10px;
}
.inv-create-card__date{
    font-size:11px;color:var(--admin-muted);font-weight:500;
}
.inv-create-card__title{
    font-size:14px;font-weight:600;color:#09111b;
}
.inv-create-card__meta{
    font-size:12px;color:var(--admin-muted);
}


/* ── Review form (inside accordion) ─────────────────────────────────────── */
.inv-review-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
}
.inv-review-field{
    display:flex;flex-direction:column;gap:3px;min-width:0;
}
.inv-review-field--full{grid-column:1 / -1}
.inv-review-field__label{
    font-size:10px;font-weight:600;letter-spacing:.03em;
    color:var(--admin-muted);white-space:nowrap;
}
.inv-review-field .input,
.inv-review-field .select{
    font-size:12px;min-height:30px;padding-top:4px;padding-bottom:4px;
}

/* ── Sidebar overflow containment (news form) ────────────────────────────── */
.news-form-sidebar{
    min-width:0;
    overflow-x:hidden;
}
.news-form-sidebar .field__hint{
    overflow-wrap:anywhere;
    word-break:break-word;
}
.news-form-sidebar code{
    word-break:break-all;
    overflow-wrap:anywhere;
}

/* Slug preview URL (left column) — prevent horizontal overflow */
.slug-preview{
    overflow:hidden;
    overflow-wrap:anywhere;
    word-break:break-all;
}


/* ── Invitation filter tabs (news index) ── */
.inv-filter-tabs{
    display:flex;flex-wrap:wrap;gap:4px;
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid var(--admin-line);
}
.inv-filter-tab{
    display:inline-flex;align-items:center;gap:5px;
    padding:4px 12px;border-radius:999px;
    font-size:12px;font-weight:500;
    color:var(--admin-muted);
    background:var(--admin-surface-soft);
    border:1px solid transparent;
    text-decoration:none;
    transition:background .12s,color .12s,border-color .12s;
    white-space:nowrap;
}
.inv-filter-tab:hover{
    background:#dce9f7;color:var(--admin-brand);
}
.inv-filter-tab--active{
    background:var(--admin-brand);color:#fff;
    border-color:var(--admin-brand);
}
.inv-filter-tab--active:hover{background:var(--admin-brand);color:#fff;}

/* ── Contact-requests list ──────────────────────────────────── */
.cr-contact-cell{display:flex;flex-direction:column;gap:3px}
.cr-contact-cell__company{font-size:12px;color:var(--admin-muted)}
.cr-message-cell{font-size:13px;color:var(--admin-muted);line-height:1.45}
.cr-date-cell{white-space:nowrap;font-size:13px}
.cr-date-cell__time{color:var(--admin-muted);font-size:12px}

/* ── Contact-request processing view ───────────────────────── */

/* Flash */
.admin-flash{background:var(--admin-brand-soft);color:var(--admin-brand);border:1px solid var(--admin-brand);border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;margin-bottom:16px}

/* Request card */
.cr-card{display:flex;flex-direction:column;gap:18px}
.cr-card__header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cr-card__id{font-size:13px;font-weight:600;color:var(--admin-muted)}
.cr-card__date{font-size:12px;color:var(--admin-muted);margin-left:auto}
.cr-card__sender{display:flex;align-items:flex-start;gap:14px}
.cr-card__avatar{width:44px;height:44px;border-radius:50%;background:var(--admin-brand-soft);color:var(--admin-brand);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}
.cr-card__sender-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.cr-card__name{font-size:17px;font-weight:700;color:var(--admin-text);line-height:1.2}
.cr-card__company{font-size:13px;color:var(--admin-muted)}
.cr-card__email{font-size:13px;color:var(--admin-brand);text-decoration:none}
.cr-card__email:hover{text-decoration:underline}
.cr-card__message{background:var(--admin-surface-soft);border-left:3px solid var(--admin-brand);border-radius:0 8px 8px 0;padding:14px 18px;font-size:14px;line-height:1.65;color:var(--admin-text);white-space:pre-wrap;word-break:break-word;font-style:normal;margin:0}

/* Actions sidebar */
.cr-actions{display:flex;flex-direction:column;gap:2px}
.cr-action{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border-radius:7px;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;border:none;background:transparent;color:var(--admin-text);transition:background .1s,color .1s;text-align:left;line-height:1}
.cr-action svg{width:15px;height:15px;flex-shrink:0;opacity:.55}
.cr-action:hover{background:var(--admin-surface-soft);color:var(--admin-brand)}
.cr-action:hover svg{opacity:.9}
.cr-action--muted{color:var(--admin-muted)}
.cr-action--muted:hover{color:var(--admin-text);background:var(--admin-surface-soft)}
.cr-action--danger:hover{background:#fff0f0;color:var(--admin-coral)}
.cr-action--done{color:var(--admin-success);cursor:default;pointer-events:none}
.cr-action--copied{color:var(--admin-success)!important}
.cr-actions__sep{height:1px;background:var(--admin-line);margin:6px 0}
.cr-actions__sep--danger{background:transparent;border-top:1px dashed var(--admin-line);margin:6px 0}

/* Audit log */
.cr-audit{display:flex;flex-direction:column;gap:0}
.cr-audit__entry{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--admin-line);font-size:13px}
.cr-audit__entry:last-child{border-bottom:none}
.cr-audit__action{color:var(--admin-text)}
.cr-audit__meta{font-size:11px;color:var(--admin-muted);white-space:nowrap;flex-shrink:0}

/* Forward modal */
.cr-modal{position:fixed;inset:0;z-index:8000;display:flex;align-items:center;justify-content:center}
.cr-modal[hidden]{display:none}
.cr-modal__backdrop{position:absolute;inset:0;background:rgba(17,34,55,.35)}
.cr-modal__dialog{position:relative;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(17,34,55,.2);width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto}
.cr-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--admin-line)}
.cr-modal__title{font-size:15px;font-weight:600;color:var(--admin-text)}
.cr-modal__close{width:28px;height:28px;border:none;background:transparent;cursor:pointer;color:var(--admin-muted);border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background .1s}
.cr-modal__close:hover{background:var(--admin-surface-soft);color:var(--admin-text)}
.cr-modal__close svg{width:13px;height:13px}
.cr-modal__body{display:flex;flex-direction:column;gap:14px;padding:20px}
.cr-modal__preview{background:var(--admin-surface-soft);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.5}
.cr-modal__preview-label{font-size:11px;color:var(--admin-muted);margin-bottom:4px}
.cr-modal__footer{display:flex;gap:8px;padding-top:4px}

/* ══════════════════════════════════════════════════════════════════════════
   Topic form — editorial entity layout
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Two-column layout ───────────────────────────────────────────────────── */
.topic-form-layout{
    display:grid;
    grid-template-columns:1fr 300px;
    gap:20px;
    align-items:start;
}
@media(max-width:900px){
    .topic-form-layout{grid-template-columns:1fr;}
}
.topic-form-main{display:flex;flex-direction:column;gap:16px;}
.topic-form-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:20px;}

/* ── Hero panel ─────────────────────────────────────────────────────────── */
.topic-hero-panel{display:flex;flex-direction:column;gap:10px;}
.topic-hero__name-row{display:flex;align-items:center;gap:8px;}
.topic-hero__name{
    width:100%;
    font-size:22px;
    font-weight:700;
    color:var(--admin-text);
    border:none;
    border-bottom:2px solid var(--admin-line);
    border-radius:0;
    background:transparent;
    padding:6px 0;
    outline:none;
    transition:border-color .15s;
    line-height:1.2;
}
.topic-hero__name:focus{border-bottom-color:var(--admin-brand);}
.topic-hero__name::placeholder{color:var(--admin-placeholder);font-weight:400;}
.topic-hero__desc{
    width:100%;
    border:1px solid var(--admin-line);
    border-radius:7px;
    padding:10px 12px;
    font-size:13px;
    color:var(--admin-text);
    resize:vertical;
    min-height:60px;
    background:transparent;
    outline:none;
    line-height:1.6;
    transition:border-color .15s;
    font-family:inherit;
}
.topic-hero__desc:focus{border-color:var(--admin-brand);}
.topic-hero__desc::placeholder{color:var(--admin-placeholder);}
.topic-hero__chip-row{
    display:flex;
    align-items:center;
    gap:10px;
    padding-top:8px;
    border-top:1px solid var(--admin-line);
}
.topic-hero__chip-label{font-size:11px;color:var(--admin-muted);font-weight:500;white-space:nowrap;}

/* ── Chip preview — neutral outline (no color differentiation) ───────────── */
.topic-chip-preview{
    display:inline-flex;
    align-items:center;
    padding:3px 10px;
    border-radius:999px;
    border:1px solid #d7e3ee;
    background:transparent;
    color:#60748a;
    font-size:12px;
    font-weight:600;
    line-height:1.3;
    white-space:nowrap;
}
.topic-chip-preview--lg{
    font-size:14px;
    padding:5px 14px;
}

/* ── Aliases tag input ───────────────────────────────────────────────────── */
.topic-aliases-panel{display:flex;flex-direction:column;gap:12px;}
.topic-aliases-wrap{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    min-height:40px;
    padding:6px 10px;
    border:1px solid var(--admin-line);
    border-radius:8px;
    cursor:text;
    transition:border-color .15s;
}
.topic-aliases-wrap:focus-within{border-color:var(--admin-brand);}
.topic-aliases-tags{display:contents;}
.topic-alias-tag{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:2px 8px;
    background:var(--admin-brand-soft);
    color:var(--admin-brand);
    border:1px solid color-mix(in srgb,var(--admin-brand) 30%,transparent);
    border-radius:999px;
    font-size:12px;
    font-weight:500;
    white-space:nowrap;
    user-select:none;
}
.topic-alias-tag__remove{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:14px;
    height:14px;
    border:none;
    background:transparent;
    color:var(--admin-brand);
    cursor:pointer;
    padding:0;
    font-size:12px;
    line-height:1;
    opacity:.6;
    border-radius:50%;
    transition:opacity .1s,background .1s;
}
.topic-alias-tag__remove:hover{opacity:1;background:color-mix(in srgb,var(--admin-brand) 18%,transparent);}
.topic-aliases-input{
    flex:1;
    min-width:140px;
    border:none;
    outline:none;
    font-size:13px;
    color:var(--admin-text);
    background:transparent;
    padding:2px 0;
    font-family:inherit;
}
.topic-aliases-input::placeholder{color:var(--admin-placeholder);}
.topic-aliases-examples{margin-top:-4px;}

/* ── Aliases preview panel (sidebar) ────────────────────────────────────── */
.topic-aliases-preview{display:flex;flex-wrap:wrap;gap:5px;}
.topic-alias-preview-tag{
    display:inline-block;
    padding:2px 7px;
    background:var(--admin-surface-soft);
    border:1px solid var(--admin-line);
    border-radius:4px;
    font-size:11px;
    color:var(--admin-text);
    font-family:ui-monospace,monospace;
}

/* ── Breadcrumb ──────────────────────────────────────────────────────────── */
.topic-breadcrumb{
    display:flex;
    align-items:center;
    gap:5px;
    flex-wrap:wrap;
    margin-top:5px;
}
.topic-breadcrumb__item{
    font-size:12px;
    color:var(--admin-muted);
    background:var(--admin-surface-soft);
    border:1px solid var(--admin-line);
    border-radius:4px;
    padding:1px 7px;
}
.topic-breadcrumb__item--current{
    color:var(--admin-brand);
    background:var(--admin-brand-soft);
    border-color:color-mix(in srgb,var(--admin-brand) 30%,transparent);
    font-weight:600;
}
.topic-breadcrumb__sep{font-size:12px;color:var(--admin-muted);}

/* ── Related topics picker ───────────────────────────────────────────────── */
.topic-related-selected{display:flex;flex-wrap:wrap;gap:6px;min-height:0;}
.topic-related-chip{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:3px 9px;
    background:var(--admin-surface-soft);
    border:1px solid var(--admin-line);
    border-radius:999px;
    font-size:12px;
    font-weight:500;
    color:var(--admin-text);
    user-select:none;
}
.topic-related-chip__remove{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:14px;
    height:14px;
    border:none;
    background:transparent;
    color:var(--admin-muted);
    cursor:pointer;
    font-size:13px;
    padding:0;
    line-height:1;
    border-radius:50%;
    transition:color .1s,background .1s;
}
.topic-related-chip__remove:hover{color:var(--admin-danger);background:#fff0f0;}
.topic-related-picker{position:relative;margin-top:4px;}
.topic-related-results{
    position:absolute;
    top:calc(100% + 4px);
    left:0;
    right:0;
    background:#fff;
    border:1px solid var(--admin-line);
    border-radius:8px;
    box-shadow:0 6px 20px rgba(17,34,55,.1);
    z-index:200;
    max-height:200px;
    overflow-y:auto;
    padding:4px;
}
.topic-related-result{
    display:block;
    width:100%;
    padding:7px 10px;
    border:none;
    background:transparent;
    text-align:left;
    font-size:13px;
    color:var(--admin-text);
    border-radius:6px;
    cursor:pointer;
    transition:background .1s;
}
.topic-related-result:hover{background:var(--admin-brand-soft);color:var(--admin-brand);}
.topic-related-result--empty{
    padding:10px;
    font-size:12px;
    color:var(--admin-muted);
    text-align:center;
    pointer-events:none;
}

/* ── Usage info block ────────────────────────────────────────────────────── */
.topic-usage-info{
    padding:12px 14px;
    background:var(--admin-surface-soft);
    border:1px solid var(--admin-line);
    border-left:3px solid var(--admin-brand);
    border-radius:0 7px 7px 0;
    font-size:13px;
}
.topic-usage-info__head{
    display:flex;
    align-items:center;
    gap:6px;
    font-weight:600;
    color:var(--admin-text);
    margin-bottom:8px;
}
.topic-usage-info__head svg{color:var(--admin-brand);flex-shrink:0;}
.topic-usage-info__list{
    list-style:disc;
    padding-left:16px;
    display:flex;
    flex-direction:column;
    gap:3px;
    color:var(--admin-muted);
    line-height:1.5;
}

/* ── Technical collapsible ───────────────────────────────────────────────── */
.topic-tech-panel{padding:0;}
.topic-tech-panel__summary{
    display:flex;
    align-items:center;
    gap:7px;
    padding:12px 16px;
    font-size:13px;
    font-weight:600;
    color:var(--admin-muted);
    cursor:pointer;
    user-select:none;
    list-style:none;
}
.topic-tech-panel__summary::-webkit-details-marker{display:none;}
.topic-tech-panel__summary svg{transition:transform .18s;flex-shrink:0;}
details.topic-tech-panel[open] .topic-tech-panel__summary svg{transform:rotate(180deg);}
.topic-tech-panel__summary:hover{color:var(--admin-text);}
.topic-tech-panel__body{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:0 16px 16px;
    border-top:1px solid var(--admin-line);
}
.topic-slug-row{
    display:flex;
    align-items:stretch;
    border:1px solid var(--admin-line);
    border-radius:7px;
    overflow:hidden;
    transition:border-color .15s;
}
.topic-slug-row:focus-within{border-color:var(--admin-brand);}
.topic-slug-row__prefix{
    display:flex;
    align-items:center;
    padding:0 10px;
    background:var(--admin-surface-soft);
    border-right:1px solid var(--admin-line);
    font-size:12px;
    color:var(--admin-muted);
    white-space:nowrap;
    user-select:none;
}
.topic-slug-input{
    flex:1;
    border:none;
    border-radius:0;
    padding:8px 10px;
    font-size:13px;
    color:var(--admin-text);
    background:transparent;
    outline:none;
    font-family:ui-monospace,monospace;
}
.topic-slug-row__reset{
    display:flex;
    align-items:center;
    padding:0 10px;
    border:none;
    border-left:1px solid var(--admin-line);
    background:var(--admin-surface-soft);
    color:var(--admin-muted);
    cursor:pointer;
    font-size:14px;
    transition:color .1s,background .1s;
}
.topic-slug-row__reset:hover{color:var(--admin-brand);background:var(--admin-brand-soft);}
.topic-seo-details>summary{
    font-size:12px;
    font-weight:600;
    color:var(--admin-muted);
    cursor:pointer;
    user-select:none;
    list-style:none;
    padding:8px 0 4px;
}
.topic-seo-details>summary::-webkit-details-marker{display:none;}
.topic-seo-body{display:flex;flex-direction:column;gap:10px;padding-top:8px;}

/* ── Sidebar panels ──────────────────────────────────────────────────────── */
.topic-preview-panel{display:flex;flex-direction:column;gap:14px;}
.topic-preview-section{display:flex;flex-direction:column;gap:6px;}
.topic-preview-label{
    font-size:10px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:var(--admin-muted);
}

/* Hub card preview */
.topic-preview-card{
    display:flex;
    border:1px solid var(--admin-line);
    border-radius:8px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 1px 4px rgba(17,34,55,.06);
}
.topic-preview-card__color-bar{
    width:4px;
    flex-shrink:0;
    background:var(--admin-brand);
}
.topic-preview-card__body{
    padding:10px 12px;
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
}
.topic-preview-card__name{
    font-size:13px;
    font-weight:700;
    color:var(--admin-text);
    line-height:1.3;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.topic-preview-card__desc{
    font-size:11px;
    color:var(--admin-muted);
    line-height:1.5;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

/* Badge/recommendation strip preview */
.topic-preview-badge{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-left:3px solid var(--admin-brand);
    background:var(--admin-surface-soft);
    border-radius:0 6px 6px 0;
}
.topic-preview-badge__text{font-size:12px;color:var(--admin-muted);}

/* ── Stats grid ──────────────────────────────────────────────────────────── */
.topic-stats-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.topic-stat{
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:10px 6px;
    background:var(--admin-surface-soft);
    border:1px solid var(--admin-line);
    border-radius:8px;
    gap:3px;
}
.topic-stat__value{font-size:22px;font-weight:700;color:var(--admin-brand);line-height:1;}
.topic-stat__label{font-size:11px;color:var(--admin-muted);text-align:center;}
.topic-alias-tag__text{display:inline;}
.topic-parent-wrap{position:relative;}

/* ══════════════════════════════════════════════════════════════════════════
   Admin pagination
   ══════════════════════════════════════════════════════════════════════════ */

.admin-pager{
    display:flex;
    align-items:center;
    gap:14px;
    padding:12px 0 4px;
    flex-wrap:wrap;
}
.admin-pager__info{
    font-size:13px;
    color:var(--admin-muted);
    white-space:nowrap;
}
.admin-pager__nav{
    display:flex;
    align-items:center;
    gap:2px;
}
.admin-pager__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:32px;
    height:32px;
    padding:0 6px;
    border-radius:6px;
    font-size:13px;
    font-weight:500;
    color:var(--admin-text);
    background:transparent;
    border:1px solid transparent;
    text-decoration:none;
    cursor:pointer;
    transition:background .1s,color .1s,border-color .1s;
    user-select:none;
    line-height:1;
}
.admin-pager__btn:hover{
    background:var(--admin-surface-soft);
    border-color:var(--admin-line);
    color:var(--admin-brand);
}
.admin-pager__btn--active{
    background:var(--admin-brand);
    color:#fff;
    border-color:var(--admin-brand);
    cursor:default;
}
.admin-pager__btn--active:hover{
    background:var(--admin-brand);
    color:#fff;
    border-color:var(--admin-brand);
}
.admin-pager__btn--disabled{
    color:var(--admin-muted);
    opacity:.4;
    cursor:not-allowed;
    pointer-events:none;
}
.admin-pager__ellipsis{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:32px;
    font-size:13px;
    color:var(--admin-muted);
    user-select:none;
}

/* ══════════════════════════════════════════════════════════════════════════
   Draft guard modal
   ══════════════════════════════════════════════════════════════════════════ */

.draft-guard-modal{
    position:fixed;inset:0;z-index:9000;
    display:flex;align-items:center;justify-content:center;
    padding:16px;
}
.draft-guard-modal[hidden]{display:none;}
.draft-guard-modal__backdrop{
    position:absolute;inset:0;
    background:rgba(17,34,55,.38);
    backdrop-filter:blur(2px);
}
.draft-guard-modal__dialog{
    position:relative;
    background:#fff;
    border-radius:14px;
    box-shadow:0 24px 64px rgba(17,34,55,.18);
    width:440px;max-width:calc(100vw - 32px);
    padding:28px 28px 24px;
    display:flex;flex-direction:column;gap:16px;
    animation:draft-guard-in .16s ease;
}
@keyframes draft-guard-in{
    from{opacity:0;transform:translateY(8px) scale(.97);}
    to{opacity:1;transform:none;}
}
.draft-guard-modal__icon{
    width:44px;height:44px;border-radius:10px;
    background:#fff8ed;
    display:flex;align-items:center;justify-content:center;
    color:#d97706;
    flex-shrink:0;
}
.draft-guard-modal__body{display:flex;flex-direction:column;gap:6px;}
.draft-guard-modal__title{
    font-size:16px;font-weight:700;color:var(--admin-text);margin:0;
}
.draft-guard-modal__text{
    font-size:13px;color:var(--admin-muted);line-height:1.55;margin:0;
}
.draft-guard-modal__actions{
    display:flex;flex-direction:column;gap:8px;
    padding-top:4px;
    border-top:1px solid var(--admin-line);
}

/* ══════════════════════════════════════════════════════════════════════════
   Certificate template editor
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Editor shell ────────────────────────────────────────────────────────── */
.cert-editor{
    display:flex;
    flex-direction:column;
    gap:0;
    min-height:0;
}

/* ── Action bar ──────────────────────────────────────────────────────────── */
.cert-editor__bar{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 0 16px;
    border-bottom:1px solid var(--admin-line);
    margin-bottom:20px;
    flex-wrap:wrap;
}
.cert-editor__back{
    color:var(--admin-muted);
    font-size:13px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 12px;
}
.cert-editor__bar-center{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
}
.cert-editor__bar-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.btn--sm{
    padding:8px 14px;
    font-size:13px;
}

/* ── Status pill ─────────────────────────────────────────────────────────── */
.cert-status-pill{
    display:inline-flex;
    align-items:center;
    padding:4px 12px;
    border-radius:999px;
    font-size:12px;
    font-weight:600;
    letter-spacing:.02em;
    border:1.5px solid currentColor;
}
.cert-status-pill--draft   {color:#b45309;background:#fef9ee;}
.cert-status-pill--active  {color:#16a34a;background:#f0fdf4;}
.cert-status-pill--archived{color:var(--admin-muted);background:var(--admin-surface-soft);}

/* ── Two-column layout ───────────────────────────────────────────────────── */
.cert-editor__layout{
    display:grid;
    grid-template-columns:360px 1fr;
    gap:24px;
    align-items:start;
    min-height:calc(100vh - 240px);
}
@media(max-width:1100px){
    .cert-editor__layout{grid-template-columns:320px 1fr;}
}
@media(max-width:900px){
    .cert-editor__layout{grid-template-columns:1fr;}
}

/* ── Left panel ──────────────────────────────────────────────────────────── */
.cert-editor__left{
    display:flex;
    flex-direction:column;
    gap:8px;
    position:sticky;
    top:24px;
    max-height:calc(100vh - 160px);
    overflow-y:auto;
    padding-right:4px;
}
.cert-editor__left::-webkit-scrollbar{width:4px}
.cert-editor__left::-webkit-scrollbar-thumb{background:var(--admin-line);border-radius:2px}

/* ── Sections ────────────────────────────────────────────────────────────── */
.cert-section{
    background:var(--admin-surface);
    border:1px solid var(--admin-line);
    border-radius:var(--admin-radius-lg);
    overflow:hidden;
}
.cert-section__toggle{
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    padding:12px 14px;
    background:none;
    border:none;
    cursor:pointer;
    font-size:13px;
    font-weight:600;
    color:var(--admin-text);
    text-align:left;
    transition:background .12s;
}
.cert-section__toggle:hover{background:var(--admin-surface-soft);}
.cert-section__toggle--static{cursor:default;}
.cert-section__toggle--static:hover{background:none;}
.cert-section__icon{color:var(--admin-brand);flex-shrink:0;}
.cert-section__chevron{
    margin-left:auto;
    flex-shrink:0;
    color:var(--admin-muted);
    transition:transform .18s;
}
.cert-section--open .cert-section__chevron{transform:rotate(180deg);}
.cert-section__count{
    margin-left:auto;
    font-size:11px;
    font-weight:500;
    color:var(--admin-muted);
    background:var(--admin-surface-soft);
    padding:1px 7px;
    border-radius:999px;
    border:1px solid var(--admin-line);
}
.cert-section__badge{
    margin-left:8px;
    font-size:11px;
    font-weight:500;
    color:var(--admin-muted);
}
.cert-section__body{
    display:none;
    padding:12px 14px;
    border-top:1px solid var(--admin-line);
    display:flex;
    flex-direction:column;
    gap:12px;
}
.cert-section--open .cert-section__body{display:flex;}
/* Override — body is always flex but section hides it via max-height */
.cert-section:not(.cert-section--open) .cert-section__body{
    display:none;
}
.cert-section--open .cert-section__body{
    display:flex;
}

/* ── Form fields ─────────────────────────────────────────────────────────── */
.cert-field{
    display:flex;
    flex-direction:column;
    gap:5px;
}
.cert-field-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.cert-field__label{
    font-size:11px;
    font-weight:600;
    color:var(--admin-muted);
    letter-spacing:.03em;
    text-transform:uppercase;
}
.cert-required{color:var(--admin-danger);}
.cert-field__input{font-size:13px;}
.cert-field__input--mono{font-family:ui-monospace,monospace;font-size:12px;}

/* ── Bg preview ──────────────────────────────────────────────────────────── */
.cert-bg-preview{
    position:relative;
    width:100%;
    aspect-ratio:210/297;
    border-radius:6px;
    overflow:hidden;
    border:1px solid var(--admin-line);
}
.cert-bg-preview img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.cert-bg-remove{
    position:absolute;
    top:6px;right:6px;
    background:rgba(0,0,0,.55);
    color:#fff;
    border:none;
    border-radius:4px;
    padding:2px 8px;
    cursor:pointer;
    font-size:12px;
}

/* ── Block list ──────────────────────────────────────────────────────────── */
.cert-block-list{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.cert-block-item{
    display:flex;
    align-items:center;
    gap:6px;
    border-radius:8px;
    border:1.5px solid var(--admin-line);
    background:var(--admin-surface);
    transition:border-color .12s,background .12s;
    overflow:hidden;
}
.cert-block-item:hover{
    border-color:var(--admin-brand);
    background:var(--admin-brand-soft);
}
.cert-block-item.is-selected{
    border-color:var(--admin-brand);
    background:var(--admin-brand-soft);
}
.cert-block-item.is-disabled{
    opacity:.5;
}
.cert-block-item__toggle{
    flex-shrink:0;
    width:32px;
    height:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:none;
    border:none;
    border-right:1px solid var(--admin-line);
    cursor:pointer;
    transition:background .1s;
}
.cert-block-item__toggle:hover{background:var(--admin-surface-soft);}
.cert-block-item__dot{
    width:8px;
    height:8px;
    border-radius:50%;
    border:1.5px solid var(--admin-muted);
    background:transparent;
    transition:background .12s,border-color .12s;
}
.cert-block-item__dot.is-on{
    background:var(--admin-brand);
    border-color:var(--admin-brand);
}
.cert-block-item__label{
    flex:1;
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 8px;
    background:none;
    border:none;
    cursor:pointer;
    text-align:left;
    min-width:0;
}
.cert-block-item__icon{
    font-size:13px;
    color:var(--admin-muted);
    flex-shrink:0;
    width:18px;
    text-align:center;
}
.cert-block-item__name{
    font-size:12px;
    font-weight:500;
    color:var(--admin-text);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
/* Drag handle (replaces ↑↓ order buttons) */
.cert-drag-handle{
    flex-shrink:0;
    width:24px;
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    min-height:38px;
    cursor:grab;
    color:var(--admin-muted);
    font-size:14px;
    letter-spacing:1px;
    user-select:none;
    opacity:.45;
    transition:opacity .12s;
}
.cert-drag-handle:hover{opacity:1}
.cert-drag-handle:active{cursor:grabbing}
/* Item states during drag */
.cert-block-item--dragging{opacity:.35;border-style:dashed}
.cert-block-item--drag-over{
    border-color:var(--admin-brand)!important;
    box-shadow:0 0 0 2px var(--admin-brand-soft);
}
/* Arrow-key position hint in selected block */
.cert-arrow-hint{
    display:flex;align-items:center;gap:6px;
    font-size:11px;color:var(--admin-muted);
    padding:2px 0 4px;
}
.cert-arrow-hint kbd{
    display:inline-flex;align-items:center;justify-content:center;
    width:18px;height:18px;border-radius:4px;
    border:1px solid var(--admin-line);
    background:var(--admin-surface-soft);
    font-size:10px;font-family:inherit;color:var(--admin-text);
}

/* ── Block editor fields ─────────────────────────────────────────────────── */
.cert-editor-field{
    display:flex;
    flex-direction:column;
    gap:5px;
}
.cert-editor-field--row{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.cert-editor-field--row .cert-editor-field__label{
    flex:1;
}
.cert-editor-field__label{
    font-size:11px;
    font-weight:600;
    color:var(--admin-muted);
    letter-spacing:.03em;
    text-transform:uppercase;
}
.cert-content-ta{
    min-height:80px;
    resize:vertical;
    font-family:inherit;
    font-size:13px;
    line-height:1.6;
}

/* ── Variable chips ──────────────────────────────────────────────────────── */
.cert-var-chips{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    margin-top:2px;
}
.cert-var-chip{
    display:inline-flex;
    align-items:center;
    padding:2px 7px;
    border-radius:4px;
    font-size:11px;
    font-family:ui-monospace,monospace;
    font-weight:500;
    background:var(--admin-brand-soft);
    color:var(--admin-brand);
    border:1px solid color-mix(in srgb,var(--admin-brand) 30%,transparent);
    cursor:pointer;
    transition:background .1s,color .1s;
    line-height:1.4;
}
.cert-var-chip:hover{
    background:var(--admin-brand);
    color:#fff;
}

/* ── Segmented control (font weight) ─────────────────────────────────────── */
.cert-segmented{
    display:flex;
    border:1.5px solid var(--admin-line);
    border-radius:7px;
    overflow:hidden;
}
.cert-seg-btn{
    flex:1;
    padding:5px 8px;
    font-size:12px;
    font-weight:500;
    border:none;
    background:none;
    cursor:pointer;
    color:var(--admin-muted);
    transition:background .1s,color .1s;
}
.cert-seg-btn+.cert-seg-btn{border-left:1px solid var(--admin-line);}
.cert-seg-btn.is-active{background:var(--admin-brand);color:#fff;}
.cert-seg-btn:hover:not(.is-active){background:var(--admin-surface-soft);}

/* ── Align buttons ───────────────────────────────────────────────────────── */
.cert-align-btns{
    display:flex;
    border:1.5px solid var(--admin-line);
    border-radius:7px;
    overflow:hidden;
}
.cert-align-btn{
    flex:1;
    padding:5px 0;
    font-size:13px;
    border:none;
    background:none;
    cursor:pointer;
    color:var(--admin-muted);
    transition:background .1s,color .1s;
}
.cert-align-btn+.cert-align-btn{border-left:1px solid var(--admin-line);}
.cert-align-btn.is-active{background:var(--admin-brand);color:#fff;}
.cert-align-btn:hover:not(.is-active){background:var(--admin-surface-soft);}

/* ── Toggle button (boolean switch) ─────────────────────────────────────── */
.cert-toggle-btn{
    position:relative;
    width:36px;
    height:20px;
    border-radius:999px;
    background:var(--admin-line);
    border:none;
    cursor:pointer;
    transition:background .18s;
    flex-shrink:0;
}
.cert-toggle-btn.is-on{background:var(--admin-brand);}
.cert-toggle-btn__knob{
    position:absolute;
    top:3px;left:3px;
    width:14px;height:14px;
    border-radius:50%;
    background:#fff;
    transition:left .18s;
    box-shadow:0 1px 3px rgba(0,0,0,.18);
}
.cert-toggle-btn.is-on .cert-toggle-btn__knob{left:19px;}

/* ── Number input ────────────────────────────────────────────────────────── */
.cert-number-input{
    display:flex;
    align-items:center;
    border:1.5px solid var(--admin-line);
    border-radius:7px;
    overflow:hidden;
    background:var(--admin-surface);
}
.cert-number-input__field{
    width:54px;
    border:none !important;
    border-radius:0 !important;
    padding:5px 8px !important;
    font-size:13px;
    text-align:right;
    background:transparent;
}
.cert-number-input__unit{
    padding:0 8px 0 4px;
    font-size:11px;
    color:var(--admin-muted);
    white-space:nowrap;
}

/* ── RKO color palette ───────────────────────────────────────────────────── */
.cert-palette{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
}
.cert-swatch{
    width:22px;
    height:22px;
    border-radius:5px;
    border:2px solid transparent;
    cursor:pointer;
    transition:transform .1s,box-shadow .1s;
}
.cert-swatch:hover{
    transform:scale(1.18);
    box-shadow:0 2px 6px rgba(0,0,0,.18);
}
.cert-swatch.is-active{
    border-color:var(--admin-brand);
    box-shadow:0 0 0 3px var(--admin-brand-soft);
}

/* ── Reset button ────────────────────────────────────────────────────────── */
.cert-reset-btn{
    align-self:flex-start;
    font-size:12px;
    color:var(--admin-muted);
    padding:6px 10px;
}
.cert-reset-btn:hover{color:var(--admin-danger);}

/* ── Empty hint ──────────────────────────────────────────────────────────── */
.cert-empty-hint{
    font-size:12px;
    color:var(--admin-muted);
    text-align:center;
    padding:16px 8px;
    line-height:1.6;
}

/* ── Right panel: preview ────────────────────────────────────────────────── */
.cert-editor__right{
    display:flex;
    flex-direction:column;
    gap:12px;
    position:sticky;
    top:24px;
    height:calc(100vh - 160px);
    min-height:600px;
}

/* ── Preview toolbar ─────────────────────────────────────────────────────── */
.cert-preview-bar{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.cert-preview-bar__label{
    font-size:11px;
    font-weight:700;
    color:var(--admin-muted);
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-right:4px;
}
.cert-scale-group{
    display:flex;
    border:1.5px solid var(--admin-line);
    border-radius:7px;
    overflow:hidden;
}
.cert-scale-btn{
    padding:5px 10px;
    font-size:12px;
    font-weight:500;
    border:none;
    background:none;
    cursor:pointer;
    color:var(--admin-muted);
    transition:background .1s,color .1s;
    white-space:nowrap;
}
.cert-scale-btn+.cert-scale-btn{border-left:1px solid var(--admin-line);}
.cert-scale-btn.is-active{background:var(--admin-brand);color:#fff;}
.cert-scale-btn:hover:not(.is-active){background:var(--admin-surface-soft);}

/* ── Preview surface ─────────────────────────────────────────────────────── */
.cert-preview-surface{
    flex:1;
    background:var(--admin-bg);
    border-radius:var(--admin-radius-lg);
    border:1px solid var(--admin-line);
    overflow:auto;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:24px;
    position:relative;
}
.cert-preview-wrap{
    position:relative;
    flex-shrink:0;
    box-shadow:0 8px 32px rgba(17,34,55,.15),0 0 0 1px rgba(17,34,55,.06);
    border-radius:4px;
    overflow:hidden;
    background:#fff;
}
.cert-preview-frame{
    border:0;
    display:block;
    transform-origin:0 0;
}

/* ── Responsive: collapse left on narrow screens ─────────────────────────── */
@media(max-width:900px){
    .cert-editor__left{position:static;max-height:none;overflow-y:visible;}
    .cert-editor__right{position:static;height:auto;min-height:500px;}
}

/* ── Chip tokens (frontend design system — used in admin preview panels) ──── */
/* These mirror tag-tokens.css and enable .chip usage in admin context         */
:root{
    --chip-font-size:12px;
    --chip-font-weight:600;
    --chip-line-height:1.2;
    --chip-padding-y:0px;
    --chip-padding-x:10px;
    --chip-radius:6px;
    --chip-gap:6px;
    --chip-min-height:28px;
    --chip-border-width:1px;
    --token-blue-bg:#DCE9F5;
    --token-blue-text:#1C597E;
    --token-cyan-bg:#DDF1F4;
    --token-cyan-text:#1F7F8F;
    --token-grey-bg:#F0F2F5;
    --token-grey-text:#4F5969;
    --chip-tone-type-bg:var(--token-blue-bg);
    --chip-tone-type-text:var(--token-blue-text);
    --chip-tone-type-border:transparent;
    --chip-tone-neutral-bg:var(--token-grey-bg);
    --chip-tone-neutral-text:var(--token-grey-text);
    --chip-tone-neutral-border:transparent;
}
.chip{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:auto!important;
    max-width:max-content!important;
    flex:0 0 auto!important;
    min-height:var(--chip-min-height)!important;
    padding:var(--chip-padding-y) var(--chip-padding-x)!important;
    gap:var(--chip-gap)!important;
    border-radius:var(--chip-radius)!important;
    border:var(--chip-border-width) solid transparent!important;
    font-family:var(--admin-font-family)!important;
    font-size:var(--chip-font-size)!important;
    font-weight:var(--chip-font-weight)!important;
    line-height:var(--chip-line-height)!important;
    white-space:nowrap!important;
    text-decoration:none!important;
    vertical-align:middle!important;
    box-shadow:none!important;
    background:var(--chip-tone-neutral-bg)!important;
    color:var(--chip-tone-neutral-text)!important;
    border-color:var(--chip-tone-neutral-border)!important;
}
.chip--type{
    background:var(--chip-tone-type-bg)!important;
    color:var(--chip-tone-type-text)!important;
    border-color:var(--chip-tone-type-border)!important;
}
.chip--cyan{
    background:var(--token-cyan-bg)!important;
    color:var(--token-cyan-text)!important;
    border-color:transparent!important;
}
.chip--gray,.chip--grey{
    background:var(--token-grey-bg)!important;
    color:var(--token-grey-text)!important;
    border-color:transparent!important;
}

/* ── Person preview cards (people/form sidebar) ──────────────────────────── */
.person-compact{
    position:relative;
    display:grid;
    grid-template-columns:56px minmax(0,1fr);
    gap:14px;
    align-items:start;
    min-height:108px;
    padding:16px;
    border:1px solid var(--admin-line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(17,41,71,.04);
    overflow:hidden;
}
.person-compact__avatar{
    width:56px;height:56px;border-radius:999px;overflow:hidden;
    background:var(--person-avatar-bg);
    box-shadow:inset 0 0 0 1px var(--person-avatar-border);
    display:flex;align-items:center;justify-content:center;
}
.person-compact__avatar img,
.person-compact__avatar__image{display:block;width:100%;height:100%;object-fit:cover;}
.person-compact__avatar__initials{
    font-size:18px;
    font-weight:var(--person-avatar-font-weight);
    color:var(--person-avatar-color);
    letter-spacing:.04em;
}
.person-compact__body{display:flex;flex-direction:column;gap:8px;min-width:0;}
.person-compact__meta{display:flex;flex-wrap:wrap;gap:8px;}
.person-compact__title{margin:0;font-size:18px;line-height:1.18;font-weight:600;color:var(--admin-text);}
.person-compact__subtitle{color:#5f7286;font-size:14px;line-height:1.5;}
.person-compact__city,
.speaker-card__city{
    color:#8093a6;font-size:13px;line-height:1.4;font-weight:500;
    display:inline-flex;align-items:baseline;gap:5px;
}
.speaker-card{
    position:relative;
    display:grid;
    grid-template-columns:56px minmax(0,1fr);
    gap:12px;
    align-items:start;
    padding:14px;
    border:1px solid var(--admin-line);
    border-radius:12px;
    background:#fff;
}
.speaker-card__avatar{
    width:56px;height:56px;border-radius:999px;overflow:hidden;
    background:var(--person-avatar-bg);
    color:var(--person-avatar-color);
    box-shadow:inset 0 0 0 1px var(--person-avatar-border);
    display:grid;place-items:center;
    font-size:18px;font-weight:var(--person-avatar-font-weight);
}
.speaker-card__avatar img,
.speaker-card__avatar__image{display:block;width:100%;height:100%;object-fit:cover;}
.speaker-card__avatar__initials{
    letter-spacing:.04em;
    color:var(--person-avatar-color);
    font-weight:var(--person-avatar-font-weight);
}
.speaker-card__body{min-width:0;display:grid;gap:6px;}
.speaker-card__title{margin:0;font-size:16px;line-height:1.28;font-weight:600;color:var(--admin-text);}
.speaker-card__subtitle{font-size:13px;line-height:1.42;color:#60758a;}

/* ── Person preview panel helpers ────────────────────────────────────────── */
.pv-label{
    font-size:11px;font-weight:600;letter-spacing:.06em;
    text-transform:uppercase;color:#8093a6;margin:0 0 8px;
}
.pv-inline-wrap{
    padding:12px 14px;
    background:#f7fafd;
    border:1px solid var(--admin-line);
    border-radius:10px;
    font-size:15px;
    line-height:1.6;
    color:var(--admin-text);
}

/* ── Layout-style picker ─────────────────────────────────────────────────── */
.cert-layout-picker{
    display:flex;
    gap:10px;
}
.cert-layout-opt{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    padding:10px 8px;
    border:2px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:var(--admin-surface);
    cursor:pointer;
    transition:border-color .15s,box-shadow .15s,background .15s;
}
.cert-layout-opt:hover{
    border-color:var(--admin-primary);
    background:var(--admin-bg);
}
.cert-layout-opt.is-active{
    border-color:#b02725;
    background:#fff5f5;
    box-shadow:0 0 0 3px rgba(176,39,37,.12);
}
.cert-layout-opt__preview{
    display:flex;
    align-items:stretch;
    width:64px;
    height:44px;
    background:#f0f3f7;
    border-radius:3px;
    overflow:hidden;
    position:relative;
    flex-shrink:0;
}
/* Flag: red left stripe + left-aligned lines */
.cert-layout-opt__preview--flag{
    padding-left:6px;
}
.cert-layout-opt__stripe{
    position:absolute;
    left:0;top:0;bottom:0;
    width:4px;
    background:linear-gradient(to bottom,#b02725,#ea534b);
    border-radius:3px 0 0 3px;
    flex-shrink:0;
}
.cert-layout-opt__preview--flag .cert-layout-opt__lines{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;
    padding:6px 6px 6px 10px;
    width:100%;
}
.cert-layout-opt__preview--flag .cert-layout-opt__lines span{
    display:block;
    height:3px;
    border-radius:2px;
    background:#4f5969;
}
.cert-layout-opt__preview--flag .cert-layout-opt__lines span:nth-child(1){width:100%}
.cert-layout-opt__preview--flag .cert-layout-opt__lines span:nth-child(2){width:80%}
.cert-layout-opt__preview--flag .cert-layout-opt__lines span:nth-child(3){width:65%}
/* Centered: all lines centered */
.cert-layout-opt__preview--centered .cert-layout-opt__lines{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:6px;
    width:100%;
}
.cert-layout-opt__preview--centered .cert-layout-opt__lines span{
    display:block;
    height:3px;
    border-radius:2px;
    background:#4f5969;
}
.cert-layout-opt__preview--centered .cert-layout-opt__lines span:nth-child(1){width:90%}
.cert-layout-opt__preview--centered .cert-layout-opt__lines span:nth-child(2){width:70%}
.cert-layout-opt__preview--centered .cert-layout-opt__lines span:nth-child(3){width:55%}
.cert-layout-opt__label{
    font-size:11px;
    font-weight:500;
    color:var(--admin-text-muted);
    letter-spacing:.01em;
}
.cert-layout-opt.is-active .cert-layout-opt__label{
    color:#b02725;
    font-weight:600;
}

/* ── Logo-variant picker ─────────────────────────────────────────────────── */
.cert-logo-picker{
    display:flex;
    gap:10px;
}
.cert-logo-opt{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    padding:10px 8px;
    border:2px solid var(--admin-line);
    border-radius:var(--admin-radius);
    background:var(--admin-surface);
    cursor:pointer;
    transition:border-color .15s,box-shadow .15s,background .15s;
}
.cert-logo-opt:hover{
    border-color:var(--admin-primary);
    background:var(--admin-bg);
}
.cert-logo-opt.is-active{
    border-color:#b02725;
    background:#fff5f5;
    box-shadow:0 0 0 3px rgba(176,39,37,.12);
}
.cert-logo-opt__preview{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:54px;
    background:#fff;
    border:1px solid var(--admin-line);
    border-radius:10px;
    overflow:hidden;
    flex-shrink:0;
    padding:6px;
}
.cert-logo-opt__preview img{
    display:block;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
}
.cert-logo-opt__preview--h img{
    width:128px;
    height:auto;
}
.cert-logo-opt__preview--v img{
    width:78px;
    height:auto;
}
.cert-logo-opt__label{
    font-size:11px;
    font-weight:500;
    color:var(--admin-text-muted);
    letter-spacing:.01em;
}
.cert-logo-opt.is-active .cert-logo-opt__label{
    color:#b02725;
    font-weight:600;
}

/* ── Relation picker preview (translation_of / supersedes_id) ──────────── */
/* ── pub-rel-picker — single-select entity picker for publication relations ── */
.pub-rel-picker{display:grid;gap:6px;position:relative}
.pub-rel-picker__search-row{position:relative}
.pub-rel-picker__search-icon{
    position:absolute;left:10px;top:50%;transform:translateY(-50%);
    pointer-events:none;color:var(--admin-muted);z-index:1;
}
.pub-rel-picker__input{
    width:100%;height:36px;
    padding:0 10px 0 30px;
    border:1px solid var(--admin-line);border-radius:7px;
    background:#fff;font-size:13px;color:var(--admin-text);
    outline:none;box-sizing:border-box;
    transition:border-color .15s,box-shadow .15s;
}
.pub-rel-picker__input:focus{
    border-color:var(--admin-accent,#0b4da2);
    box-shadow:0 0 0 3px rgba(11,77,162,.12);
}
.pub-rel-picker__list{
    position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:200;
    background:#fff;border:1px solid var(--admin-line);border-radius:8px;
    box-shadow:0 6px 24px rgba(0,0,0,.10);
    max-height:280px;overflow-y:auto;
}
/* Selected card */
.pub-rel-picker__card{
    display:grid;gap:5px;
    padding:10px 12px;border-radius:8px;
    background:var(--admin-surface-soft);border:1px solid var(--admin-line);
    font-size:13px;
}
.pub-rel-picker__card-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.pub-rel-picker__card-row{display:flex;align-items:baseline;gap:10px}
.pub-rel-picker__card-title{flex:1;font-size:14px;font-weight:500;color:var(--admin-text);word-break:break-word}
.pub-rel-picker__clear{
    flex-shrink:0;padding:0;border:none;background:none;
    font-size:12px;color:var(--admin-muted);cursor:pointer;white-space:nowrap;
}
.pub-rel-picker__clear:hover{color:var(--admin-danger)}
.pub-rel-picker__create-hint{
    font-size:12px;color:var(--admin-muted);margin-top:2px;
}
.pub-rel-picker__create-link{
    color:var(--admin-accent,#0b4da2);text-decoration:none;font-weight:500;
}
.pub-rel-picker__create-link:hover{text-decoration:underline}
.pub-rel-picker__warn{
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 10px;border-radius:8px;
    background:#fff8e1;border:1px solid #f5c518;
    color:#7a5800;font-size:13px;font-weight:500;
}

.field__relation-preview{margin-top:6px;min-height:24px}
.field__relation-preview--card{
    display:grid;gap:6px;
    padding:10px 12px;border-radius:8px;
    background:var(--admin-surface-soft);border:1px solid var(--admin-line);
    font-size:13px;line-height:1.4;max-width:100%;
}
.field__relation-preview--meta{
    display:flex;flex-wrap:wrap;gap:4px;align-items:center;
}
.field__relation-preview--id{
    font-size:11px;font-weight:600;letter-spacing:.04em;
    color:var(--admin-muted);white-space:nowrap;
}
.field__relation-preview--title{
    font-size:14px;font-weight:500;
    color:var(--admin-text);word-break:break-word;
}
.field__relation-preview--warn{
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 10px;border-radius:8px;
    background:#fff8e1;border:1px solid #f5c518;
    color:#7a5800;font-size:13px;font-weight:500;
}

/* ── Version/translation badge chips (public catalog) ──────────────────── */
.chip[data-chip-kind="language"]{
    font-weight:700;letter-spacing:.06em;
}

/* ── Family chain view (admin form) ─────────────────────────────────────── */
/* ── pub-series-table — unified data table for series/family info ─── */
/* Used in two places:
   1. "Предыдущая версия" (read-only, inside ВЕРСИИ section)
   2. "СЕМЕЙСТВО ВЕРСИЙ" block (full family chain)
   Styled as utility/service: no blue accents, muted keys, clean rows.  */
.pub-series-table{
    border:1px solid var(--admin-line);
    border-radius:7px;
    overflow:hidden;
    font-size:12px;
}
.pub-series-table__head{
    padding:7px 12px;
    background:var(--admin-surface-soft);
    font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--admin-muted);
    border-bottom:1px solid var(--admin-line);
}
.pub-series-table__row{
    display:grid;
    grid-template-columns:170px 1fr;
    gap:12px;
    align-items:baseline;
    padding:7px 12px;
    border-top:1px solid var(--admin-line);
}
.pub-series-table__row:first-of-type{border-top:none}
.pub-series-table__key{
    font-weight:600;font-size:11px;
    color:var(--admin-muted);
    white-space:nowrap;padding-top:1px;
}
.pub-series-table__val{
    color:var(--admin-text);
    line-height:1.45;
}
/* Links inside table: inherit text color, no blue */
.pub-series-table__val a{
    color:var(--admin-text);text-decoration:none;border-bottom:1px solid var(--admin-line);
}
.pub-series-table__val a:hover{border-bottom-color:var(--admin-text)}
/* Status variants */
.pub-series-table__val--current{color:#1d7a3a;font-weight:600}
.pub-series-table__val--archived{color:var(--admin-muted)}
.pub-series-table__val--empty{color:var(--admin-muted);font-style:italic}
/* Inline badges stay muted */
.pub-series-table .badge{font-size:10px}

/* Legacy family-chain selectors — kept for safety if used elsewhere */
.family-chain{display:none}

/* ── Quality Advisory System ─────────────────────────────────────────────── */

/* Warning modal */
.publish-warning-modal {
    position: fixed; inset: 0; z-index: 200;
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
}
.publish-warning-modal[hidden] { display: none; }
.publish-warning-modal__backdrop {
    position: absolute; inset: 0;
    background: rgba(10,20,40,.5);
}
.publish-warning-modal__box {
    position: relative; z-index: 1;
    background: var(--admin-surface);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(0,0,0,.22);
    max-width: 520px; width: 100%;
    overflow: hidden;
}
.publish-warning-modal__header {
    display: flex; align-items: center; gap: 12px;
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--admin-line);
    background: #fffbeb;
}
.publish-warning-modal__icon { font-size: 22px; }
.publish-warning-modal__title {
    margin: 0; font-size: 16px; font-weight: 700; color: #92400e;
}
.publish-warning-modal__body { padding: 20px 24px; }
.publish-warning-modal__lead { font-size: 13px; margin-bottom: 12px; color: var(--admin-muted); }
.publish-warning-modal__issues {
    list-style: none; display: flex; flex-direction: column; gap: 6px; padding: 0; margin: 0;
}
.publish-warning-modal__issue {
    font-size: 12px; padding: 7px 10px;
    background: #fef2f2; border-left: 3px solid #f87171;
    border-radius: 0 6px 6px 0; color: var(--admin-text);
    line-height: 1.5;
}
.publish-warning-modal__footer {
    padding: 16px 24px 20px;
    border-top: 1px solid var(--admin-line);
    display: flex; flex-direction: column; gap: 12px;
}
.publish-warning-modal__action { display: flex; align-items: center; gap: 12px; }
.publish-warning-modal__action-hint { font-size: 11px; color: var(--admin-muted); line-height: 1.4; }
.publish-warning-modal__action-hint--warn { color: #b45309; }

/* Quality field highlight */
.quality-missing {
    outline: 2px solid #f59e0b !important;
    outline-offset: 3px;
    border-radius: 8px;
}

/* Dashboard quality alerts block */
.panel--quality-alerts .panel__header {
    display: flex; align-items: center; gap: 10px;
}
.quality-alert-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; height: 22px; padding: 0 6px;
    background: #dc2626; color: #fff;
    border-radius: 999px; font-size: 11px; font-weight: 700;
}
.quality-alert-groups { display: flex; flex-direction: column; gap: 16px; }
.quality-alert-group__label {
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .5px; color: var(--admin-muted); margin-bottom: 6px;
}
.quality-alert-item {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 8px 10px; border-radius: 8px; text-decoration: none;
    color: var(--admin-text); font-size: 12px;
    transition: background .12s;
}
.quality-alert-item:hover { background: var(--admin-bg); }
.quality-alert-item__title { flex: 1; min-width: 0; }
.quality-alert-item__issues { display: flex; gap: 4px; flex-shrink: 0; }
.quality-issue-chip {
    font-size: 10px; font-weight: 600;
    padding: 2px 6px; border-radius: 4px;
    background: #fee2e2; color: #dc2626;
}

/* Cover tabs */
.cover-tabs { display: flex; gap: 0; margin-bottom: 12px; }
.cover-tab {
    flex: 1; padding: 8px 14px; font-size: 12px; font-weight: 600;
    border: 1px solid var(--admin-line); background: var(--admin-bg);
    color: var(--admin-muted); cursor: pointer; font-family: inherit;
    transition: all .15s; position: relative;
}
.cover-tab:first-child { border-radius: 8px 0 0 8px; }
.cover-tab:last-child  { border-radius: 0 8px 8px 0; border-left: none; }
.cover-tab.active {
    background: var(--admin-surface); color: var(--admin-brand);
    border-color: var(--admin-brand); z-index: 1;
}
.cover-tab-indicator {
    display: inline-block; width: 7px; height: 7px; border-radius: 50%;
    background: currentColor; margin-left: 6px; vertical-align: middle;
    opacity: .5;
}
.cover-tab.active .cover-tab-indicator { opacity: 1; }
.cover-tab-panel { display: none; }
.cover-tab-panel.active { display: block; }

/* ── Broadcast / НМО panel ───────────────────────────────────────────────── */
.broadcast-nmo-panel .grid-2 { gap: var(--admin-space-4); }
.broadcast-required-badge {
    display: inline-block; margin-left: 6px;
    font-size: 10px; font-weight: 700; color: #dc2626;
    background: #fee2e2; border-radius: 4px; padding: 1px 5px;
    text-transform: uppercase; letter-spacing: .3px;
    vertical-align: middle;
}
#broadcast-url-input:disabled { opacity: .4; cursor: not-allowed; }

/* ── Participant Resolver ────────────────────────────────────────────────── */
.participants-right__head {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.resolver-panel {
    margin-top: 16px; border-top: 1px dashed var(--admin-line);
    padding-top: 16px;
}
.resolver-panel__header {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px;
}
.resolver-panel__title { font-size: 13px; font-weight: 700; margin: 0; }
.resolver-panel__close {
    background: none; border: none; font-size: 16px; cursor: pointer;
    color: var(--admin-muted); line-height: 1; padding: 0 4px;
}
.resolver-panel__textarea {
    width: 100%; font-family: ui-monospace, monospace; font-size: 12px;
    min-height: 160px; resize: vertical;
}
.resolver-panel__actions { display: flex; gap: 8px; margin-top: 12px; }
.resolver-panel__preview-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px; gap: 8px; flex-wrap: wrap;
}
.resolver-panel__preview-actions { display: flex; gap: 6px; }
.resolver-preview-body { display: flex; flex-direction: column; gap: 12px; max-height: 400px; overflow-y: auto; }
.resolver-group { background: var(--admin-bg); border-radius: 8px; padding: 10px 12px; }
.resolver-group__label {
    font-size: 11px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .4px; color: var(--admin-muted); margin-bottom: 8px;
}
.resolver-person-row {
    display: grid; grid-template-columns: 1fr auto auto;
    gap: 8px; align-items: center; padding: 6px 0;
    border-bottom: 1px solid var(--admin-line);
}
.resolver-person-row:last-child { border-bottom: none; }
.resolver-person-row--confirmed { background: #f0fdf4; border-radius: 4px; padding: 4px 6px; margin: 0 -6px; }
.resolver-person-row--skipped { opacity: .45; }
.resolver-person-name { font-size: 12px; font-weight: 600; }
.resolver-person-match { display: flex; align-items: center; gap: 6px; }
.resolver-person-actions { display: flex; gap: 4px; }
.resolver-conf { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 4px; white-space: nowrap; }
.resolver-conf--high { background: #dcfce7; color: #15803d; }
.resolver-conf--mid  { background: #fef9c3; color: #854d0e; }
.resolver-conf--low  { background: #fee2e2; color: #dc2626; }
.resolver-person-select { font-size: 11px; max-width: 200px; }
.resolver-flash {
    background: #dcfce7; color: #15803d; font-size: 12px; font-weight: 600;
    padding: 8px 14px; border-radius: 8px; margin-bottom: 10px;
}
.select--xs { padding: 3px 6px; font-size: 11px; border-radius: 6px; border: 1px solid var(--admin-line); }

/* ── Events block composer ───────────────────────────────────────────── */
.events-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.events-admin-head__copy{display:grid;gap:4px;min-width:0}
.events-admin-head__copy .homepage-slot-card__title{font-size:24px}
.events-admin-head__tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.events-admin-mode{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.events-admin-mode .select{min-width:170px}
.events-admin-active{min-height:38px;padding:0 12px;border:1px solid var(--admin-line);border-radius:999px;background:#fff}
.events-admin-cta{font-size:13px;font-weight:600;color:var(--admin-brand);text-decoration:none;white-space:nowrap}
.events-admin-cta:hover{text-decoration:underline}
.ev-editor{display:grid;grid-template-columns:minmax(320px,.92fr) minmax(360px,1.08fr);gap:18px;align-items:start}
.ev-editor.is-auto .ev-manual-only{display:none!important}
.ev-editor.is-auto .ev-list-item{cursor:default}
.ev-featured-card,.ev-stack{border:1px solid var(--admin-line);border-radius:12px;background:#fff;box-shadow:0 7px 18px rgba(17,41,71,.056)}
.ev-featured-card{position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:100%}
.ev-featured-card--empty{opacity:.72}
.ev-featured-card__media{display:block;width:100%;aspect-ratio:16/9;margin:0;background:#eef2f7 center/cover no-repeat;overflow:hidden}
.ev-featured-card__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:#eef2f7}
.ev-featured-card__media--empty{display:grid;place-items:center;color:#8fa1b5;font-size:13px}
.ev-featured-card__body{display:grid;gap:10px;padding:18px}
.ev-featured-card__chips,.ev-list-item__chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ev-chip{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:6px;background:#edf4fa;color:#385c78;font-size:12px;font-weight:700;line-height:1}
.ev-chip--nmo{background:#e8f8ef;color:#257a4a}
.ev-chip--muted{background:#f2f5f8;color:#708397}
.ev-featured-card__title{margin:0;font-size:22px;font-weight:750;line-height:1.16;color:var(--admin-text);letter-spacing:-.01em}
.ev-featured-card__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#60758b;font-size:13px;font-weight:600}
.ev-featured-card__summary{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin:0;color:#586b80;font-size:14px;line-height:1.55}
.ev-featured-card__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.ev-edit-link{font-size:13px;font-weight:700;color:var(--admin-brand);text-decoration:none}
.ev-edit-link:hover{text-decoration:underline}
.ev-card-controls{position:absolute;top:10px;right:10px;display:flex;gap:6px;padding:5px;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 8px 20px rgba(17,41,71,.12)}
.ev-stack{display:flex;flex-direction:column;gap:8px;padding:14px}
.ev-stack__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 6px}
.ev-stack__title{font-size:13px;font-weight:800;color:var(--admin-text)}
.ev-stack__hint{font-size:12px;color:var(--admin-muted)}
.ev-list{display:flex;flex-direction:column;gap:8px}
.ev-list-item{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px;border:1px solid var(--admin-line);border-radius:10px;background:#fff;cursor:grab}
.ev-list-item:hover{background:#f8fbfd;border-color:#cad8e6}
.ev-list-item__drag{position:absolute;top:10px;right:10px;color:#9badbf;cursor:grab;line-height:1;user-select:none}
.ev-date-tile{display:grid;place-items:center;align-content:center;width:62px;min-height:62px;border-radius:10px;background:#f1f5f9;color:var(--admin-text)}
.ev-date-tile strong{font-size:24px;line-height:1;font-weight:800}
.ev-date-tile span{margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8aa0b6}
.ev-list-item__body{display:grid;gap:7px;min-width:0;padding-right:20px}
.ev-list-item__title{font-size:15px;font-weight:750;line-height:1.25;color:var(--admin-text)}
.ev-list-item__meta{font-size:12px;color:#60758b;font-weight:600}
.ev-list-item__side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-right:20px}
.ev-list-item__actions{display:flex;align-items:center;gap:6px;opacity:.72}
.ev-list-item:hover .ev-list-item__actions{opacity:1}
.ev-stack__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}
.ev-empty-note{padding:16px;border:1px dashed var(--admin-line);border-radius:10px;color:var(--admin-muted);font-size:13px;background:#f8fafc}
.events-admin-save{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media(max-width:1080px){
    .events-admin-head{display:grid;grid-template-columns:1fr}
    .events-admin-head__tools{justify-content:flex-start}
    .ev-editor{grid-template-columns:1fr}
}
@media(max-width:720px){
    .ev-list-item{grid-template-columns:54px minmax(0,1fr)}
    .ev-list-item__side{grid-column:2;align-items:flex-start;padding-right:0}
    .ev-date-tile{width:54px;min-height:54px}
    .ev-date-tile strong{font-size:21px}
}

/* News thumbnail in secondary list */
.news-list-thumb {
    width: 44px; height: 44px; flex-shrink: 0;
    border-radius: 6px; background: #eef2f7 center/cover no-repeat;
}
.news-admin-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}
.news-admin-head__copy {
    display: flex;
    align-items: baseline;
    gap: 16px;
    min-width: 0;
}
.news-admin-head__copy h4 {
    margin: 0;
    color: var(--admin-text);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
}
.news-admin-head__copy a,
.news-edit-link {
    color: var(--admin-accent);
    font-size: 13px;
    font-weight: 650;
    text-decoration: none;
}
.news-admin-head__copy a:hover,
.news-edit-link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.news-admin-head__tools {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.news-admin-mode {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 6px 5px 12px;
    border: 1px solid var(--admin-line);
    border-radius: 999px;
    background: #fff;
    color: #60748b;
    font-size: 12px;
    font-weight: 650;
}
.news-admin-mode .select {
    min-height: 30px;
    padding: 0 28px 0 10px;
    border-radius: 999px;
}
.news-admin-active {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--admin-line);
    border-radius: 999px;
    background: #fff;
    color: var(--admin-text);
    font-size: 13px;
    font-weight: 650;
}
.news-flow-editor {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.news-flow-hero {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(240px, 1.25fr);
    gap: 16px;
    align-items: stretch;
}
.news-hero-card,
.news-social-rail,
.news-flow-card {
    position: relative;
    border: 1px solid var(--admin-line);
    border-radius: 10px;
    background: #fff;
}
.news-hero-card {
    display: grid;
    grid-template-columns: minmax(300px, 42%) minmax(0, 1fr);
    gap: 24px;
    min-height: 300px;
    padding: 18px;
}
.news-hero-card--empty { opacity: .78; }
.news-hero-card__media,
.news-flow-card__media {
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 8px;
    background: #eef2f7;
    color: #8fa1b5;
    font-size: 12px;
}
.news-hero-card__media {
    align-self: start;
    width: 100%;
    aspect-ratio: 16 / 9;
}
.news-hero-card__media img,
.news-flow-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.news-hero-card__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.news-chip {
    display: inline-flex;
    align-items: center;
    width: max-content;
    min-height: 28px;
    padding: 0 12px;
    border-radius: 999px;
    background: #eef4fb;
    color: #60748b;
    font-size: 12px;
    font-weight: 700;
}
.news-hero-card__title {
    margin: 0;
    color: var(--admin-text);
    font-size: clamp(22px, 2vw, 32px);
    font-weight: 750;
    line-height: 1.12;
}
.news-hero-card__summary {
    margin: 0;
    color: #60748b;
    font-size: 15px;
    line-height: 1.45;
}
.news-hero-card__footer,
.news-flow-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
}
.news-meta {
    color: #708397;
    font-size: 12px;
    line-height: 1.25;
}
.news-card-controls {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px;
    border: 1px solid #dce6ef;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
}
.news-social-rail {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px 14px;
}
.news-social-rail__head {
    display: grid;
    gap: 4px;
}
.news-social-rail__head span {
    color: #8fa1b5;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.news-social-rail__head strong {
    color: var(--admin-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
}
.news-social-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.news-social-item {
    display: grid;
    grid-template-columns: auto minmax(92px, auto) minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    padding: 8px;
    border: 1px solid #edf2f6;
    border-radius: 8px;
    background: #f8fbfd;
}
.news-social-item.is-dragging { opacity: .55; }
.news-social-item__drag,
.news-flow-card__drag {
    color: #8fa1b5;
    cursor: grab;
    font-weight: 700;
    letter-spacing: -2px;
}
.news-social-item__toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--admin-text);
    font-size: 12px;
    font-weight: 650;
    white-space: nowrap;
}
.news-social-item__url {
    min-height: 32px;
    padding: 0 9px;
    font-size: 12px;
}
.news-flow-secondary {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.news-flow-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.news-flow-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 100%;
    padding: 12px;
    cursor: default;
}
.news-flow-card[draggable="true"] { cursor: grab; }
.news-flow-card.is-dragging { opacity: .55; }
.news-flow-card__media {
    width: 100%;
    aspect-ratio: 16 / 9;
}
.news-flow-card__body {
    min-width: 0;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
}
.news-flow-card__body strong {
    color: var(--admin-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.22;
}
.news-flow-card__body p {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    color: #60748b;
    font-size: 13px;
    line-height: 1.4;
}
.news-flow-more-divider {
    display: grid;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr) auto;
    align-items: center;
    gap: 12px;
    color: #708397;
}
.news-flow-more-divider span {
    height: 1px;
    background: #dce6ef;
}
.news-flow-more-divider strong {
    color: var(--admin-text);
    font-size: 14px;
    font-weight: 750;
}
.news-flow-tail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #edf2f6;
    border-radius: 8px;
    background: #f8fbfd;
    color: #60748b;
    font-size: 12px;
    line-height: 1.35;
}
.news-flow-empty {
    min-height: 190px;
    display: grid;
    place-items: center;
    border: 1px dashed #dce6ef;
    border-radius: 10px;
    color: #8fa1b5;
    font-size: 13px;
}
@media (max-width: 1180px) {
    .news-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .news-flow-hero { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .news-admin-head,
    .news-admin-head__copy,
    .news-admin-head__tools {
        align-items: stretch;
        flex-direction: column;
    }
    .news-hero-card { grid-template-columns: 1fr; }
    .news-flow-grid { grid-template-columns: 1fr; }
    .news-flow-more-divider { grid-template-columns: 1fr auto 1fr; }
    .news-flow-more-divider .btn { grid-column: 1 / -1; justify-self: start; }
}
