/* Ninagrafie Content · V1.4 Block A consolidation */
:where(.ninagrafie-content-dashboard,.ninagrafie-cz-ideas,.ninagrafie-cz-todos,.ninagrafie-cz-series,.ninagrafie-cz-references,.ninagrafie-event-admin) button,
:where(.ninagrafie-content-dashboard,.ninagrafie-cz-ideas,.ninagrafie-cz-todos,.ninagrafie-cz-series,.ninagrafie-cz-references,.ninagrafie-event-admin) .button {
    font-family:inherit;
}

/* Sortable overview tables: quiet editorial affordance, keyboard accessible. */
.ninagrafie-cz-sortable {
    cursor:pointer;
    user-select:none;
    white-space:nowrap;
}
.ninagrafie-cz-sortable::after {
    content:' ↕';
    font-size:.78em;
    opacity:.35;
}
.ninagrafie-cz-sortable[aria-sort="ascending"]::after { content:' ↑'; opacity:.8; }
.ninagrafie-cz-sortable[aria-sort="descending"]::after { content:' ↓'; opacity:.8; }
.ninagrafie-cz-sortable:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

/* Smartphone tables are overview tools, not full editing surfaces. */
@media (max-width:760px) {
    .ninagrafie-dashboard-table th:nth-child(1), .ninagrafie-dashboard-table td:nth-child(1),
    .ninagrafie-dashboard-table th:nth-child(5), .ninagrafie-dashboard-table td:nth-child(5),
    .ninagrafie-dashboard-table th:nth-child(6), .ninagrafie-dashboard-table td:nth-child(6),
    .ninagrafie-dashboard-table th:nth-child(7), .ninagrafie-dashboard-table td:nth-child(7),
    .ninagrafie-dashboard-table th:nth-child(8), .ninagrafie-dashboard-table td:nth-child(8),
    .ninagrafie-dashboard-table th:nth-child(9), .ninagrafie-dashboard-table td:nth-child(9),
    .ninagrafie-dashboard-table th:nth-child(10), .ninagrafie-dashboard-table td:nth-child(10),
    .ninagrafie-dashboard-table th:nth-child(11), .ninagrafie-dashboard-table td:nth-child(11),
    .ninagrafie-dashboard-table th:nth-child(12), .ninagrafie-dashboard-table td:nth-child(12) { display:none; }

    .ninagrafie-event-table th:nth-child(4), .ninagrafie-event-table td:nth-child(4),
    .ninagrafie-event-table th:nth-child(6), .ninagrafie-event-table td:nth-child(6) { display:none; }
}

/* V1.5 dev.4.10 · gemeinsame Admin-Geometrie */
:root{--ninagrafie-cz-control-height:48px;--ninagrafie-cz-radius:12px;--ninagrafie-cz-page-gap:28px;}
:where(.ninagrafie-cz-home,.ninagrafie-cz-ideas,.ninagrafie-cz-todos,.ninagrafie-cz-series,.ninagrafie-cz-references,.ninagrafie-event-admin,.ninagrafie-media-center,.ninagrafie-calendar,.ninagrafie-tests,.ninagrafie-inspiration,.ninagrafie-help){box-sizing:border-box;width:100%;max-width:1500px;margin:var(--ninagrafie-cz-page-gap) auto 64px;padding-left:0;padding-right:0;}
:where(.ninagrafie-event-admin,.ninagrafie-cz-todos,.ninagrafie-cz-ideas,.ninagrafie-cz-series,.ninagrafie-cz-references,.ninagrafie-media-center) :is(input:not([type=checkbox]):not([type=radio]),select,button,.button,.ninagrafie-event-button){box-sizing:border-box;min-height:var(--ninagrafie-cz-control-height);border-radius:var(--ninagrafie-cz-radius);}

/* V1.5 dev.4.11 · Content-Zentrale UI polish */
:root{--ninagrafie-cz-page-gap:28px;}
/* Dashboard ist die Referenzachse: Spezialseiten dürfen keine eigene schmalere Breite / Einrückung erzwingen. */
.ninagrafie-tests,.ninagrafie-inspiration,.ninagrafie-help{max-width:1500px!important;margin:var(--ninagrafie-cz-page-gap) auto 64px!important;padding-left:0!important;padding-right:0!important;}
/* Artikelübersicht: kein doppelter vertikaler Leerraum zwischen Seitenkopf und eigentlichem Inhalt. */
.ninagrafie-content-dashboard{margin-top:var(--ninagrafie-cz-page-gap);}
.ninagrafie-content-dashboard .ninagrafie-dashboard-header{margin-top:0;margin-bottom:24px;}
/* Eventkarten: Body als Flex-Spalte, Actions immer auf derselben Grundlinie. */
.ninagrafie-event-admin-card{display:flex;flex-direction:column;height:100%;}
.ninagrafie-event-admin-card__body{display:flex;flex:1;flex-direction:column;}
.ninagrafie-event-admin-card .ninagrafie-event-actions{margin-top:auto;min-height:49px;display:flex;align-items:center;gap:16px;flex-wrap:nowrap;}
.ninagrafie-event-admin-card .ninagrafie-event-actions form{margin:0;display:flex;align-items:center;}
.ninagrafie-event-admin-card .ninagrafie-event-actions a,.ninagrafie-event-admin-card .ninagrafie-event-actions button{display:inline-flex;align-items:center;min-height:32px;margin:0;padding:0;background:transparent;border:0;line-height:1.2;}
/* Slotzeilen: alle Controls und Entfernen exakt auf einer Achse. */
.ninagrafie-slot-row{align-items:center!important;}
.ninagrafie-slot-row :is(input,select,button,.ninagrafie-event-action-link){height:48px!important;min-height:48px!important;box-sizing:border-box!important;margin:0!important;align-self:center!important;}
.ninagrafie-slot-row .ninagrafie-event-action-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 14px!important;}
@media(max-width:560px){.ninagrafie-tests,.ninagrafie-inspiration,.ninagrafie-help{padding-left:0!important;padding-right:0!important;}}


/* V1.5 dev.4.12 · final Event/Calendar polish */
/* Artikel: denselben kompakten Übergang vom CZ-Header zum Inhalt wie im Dashboard erzwingen. */
.ninagrafie-content-dashboard{margin-top:0!important;padding-top:28px!important;}
.ninagrafie-content-dashboard .ninagrafie-dashboard-header{margin-top:0!important;margin-bottom:24px!important;}
/* Slot-Generator: Labels bilden eine gemeinsame Zeile; Controls und CTA exakt eine Grundlinie. */
.ninagrafie-slot-generator{align-items:end!important;}
.ninagrafie-slot-generator>label{display:grid!important;grid-template-rows:auto var(--ninagrafie-control-height);gap:8px!important;margin:0!important;align-self:stretch!important;}
.ninagrafie-slot-generator>label>input{align-self:end!important;height:var(--ninagrafie-control-height)!important;min-height:var(--ninagrafie-control-height)!important;margin:0!important;}
.ninagrafie-slot-generator>[data-slot-generate]{height:var(--ninagrafie-control-height)!important;min-height:var(--ninagrafie-control-height)!important;margin:0!important;align-self:end!important;}
/* dev.4.13 polish: Artikel folgt derselben Header->Content-Distanz wie Dashboard */
.ninagrafie-content-zentrale-page .ninagrafie-content-overview,.ninagrafie-content-zentrale-page .ninagrafie-content-zentrale-overview{margin-top:24px!important;padding-top:0!important}


/* dev.36 · authoritative Content-Zentrale presentation contract.
 * This lives in the final consolidation layer on purpose: legacy feature CSS
 * must not be able to re-introduce different page-intro spacing or eyebrow colors. */
:root{--ninagrafie-cz-eyebrow:#8f5c61;--ninagrafie-cz-intro-gap:28px}
.ninagrafie-content-zentrale-page :is(
 .ninagrafie-cz-page-intro__eyebrow,
 .ninagrafie-dashboard-eyebrow,
 .ninagrafie-cz-home__eyebrow,
 .ninagrafie-cz-series__eyebrow,
 .ninagrafie-cz-references__eyebrow,
 .ninagrafie-config__eyebrow,
 .ninagrafie-tests__eyebrow,
 .ninagrafie-inspiration__eyebrow,
 .ninagrafie-content-help__eyebrow,
 .ninagrafie-event-admin__eyebrow,
 .ninagrafie-faq-admin__eyebrow,
 .ninagrafie-calendar__eyebrow
){color:var(--ninagrafie-cz-eyebrow)!important;font-size:11px!important;font-weight:600!important;letter-spacing:.12em!important;text-transform:uppercase!important;line-height:1.2!important}
.ninagrafie-content-zentrale-page .ninagrafie-cz-page-intro__eyebrow{margin:0 0 8px!important}
.ninagrafie-content-zentrale-page .ninagrafie-cz-page-intro :is(h1,h2){margin-top:0!important;margin-bottom:8px!important;line-height:1.12!important}
.ninagrafie-content-zentrale-page .ninagrafie-cz-page-intro p{margin-top:0!important}
/* Article/configuration still inherit an outer Enfold content-element rhythm on the live page.
 * Pull only these two legacy roots onto the same visual axis as the already-correct module pages. */
.ninagrafie-content-zentrale-page .ninagrafie-content-dashboard,
.ninagrafie-content-zentrale-page .ninagrafie-config{margin-top:-12px!important;padding-top:0!important}
.ninagrafie-content-zentrale-page .ninagrafie-content-dashboard .ninagrafie-dashboard-header{margin-top:0!important}
@media(max-width:700px){
 .ninagrafie-content-zentrale-page .ninagrafie-content-dashboard,
 .ninagrafie-content-zentrale-page .ninagrafie-config{margin-top:0!important}
}

/* dev.37 · real shared Content-Zentrale page-intro contract.
 * Do not scope this contract to a wrapper that is not part of the shortcode DOM.
 * These selectors intentionally address only Content-Zentrale admin intro classes. */
:root{
 --ninagrafie-cz-page-eyebrow:#8f5c61;
 --ninagrafie-cz-page-intro-space:20px;
}
:is(
 .ninagrafie-cz-page-intro__eyebrow,
 .ninagrafie-dashboard-eyebrow,
 .ninagrafie-cz-home__eyebrow,
 .ninagrafie-cz-series__eyebrow,
 .ninagrafie-cz-references__eyebrow,
 .ninagrafie-config__eyebrow,
 .ninagrafie-tests__eyebrow,
 .ninagrafie-inspiration__eyebrow,
 .ninagrafie-content-help__eyebrow,
 .ninagrafie-event-admin__eyebrow,
 .ninagrafie-faq-admin__eyebrow,
 .ninagrafie-calendar__eyebrow
){
 color:var(--ninagrafie-cz-page-eyebrow)!important;
 font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
 font-size:11px!important;
 font-style:normal!important;
 font-weight:600!important;
 letter-spacing:.12em!important;
 line-height:1.2!important;
 text-transform:uppercase!important;
}
:is(.ninagrafie-cz-page-intro__eyebrow,.ninagrafie-config__eyebrow,.ninagrafie-tests__eyebrow,.ninagrafie-inspiration__eyebrow,.ninagrafie-cz-series__eyebrow,.ninagrafie-cz-references__eyebrow){
 display:block!important;
 margin:0 0 8px!important;
}
.ninagrafie-cz-page-intro{margin:0 0 20px!important;padding:0!important;max-width:none!important}
.ninagrafie-cz-page-intro :is(h1,h2){margin-top:0!important;margin-bottom:8px!important;line-height:1.12!important}
.ninagrafie-cz-page-intro p{margin-top:0!important}

/* Header -> first page content: the feature roots themselves previously added another
 * 28-34px on top of the spacing already produced by the Enfold content element. */
.ninagrafie-content-dashboard{margin-top:0!important;padding-top:0!important}
.ninagrafie-config{margin-top:0!important;padding-top:0!important}
.ninagrafie-media-center{margin-top:0!important;padding-top:0!important}
.ninagrafie-tests,.ninagrafie-inspiration,.ninagrafie-help{margin-top:0!important}
.ninagrafie-content-dashboard .ninagrafie-dashboard-header{margin-top:0!important}

/* Pages that use the generic CZ eyebrow as their page intro. Keep the selector rooted
 * in the feature container so modal/card eyebrows are not accidentally restyled. */
:is(.ninagrafie-cz-todos,.ninagrafie-cz-ideas) > :is(header,section) .ninagrafie-cz-eyebrow{
 color:var(--ninagrafie-cz-page-eyebrow)!important;
 font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
 font-size:11px!important;font-style:normal!important;font-weight:600!important;
 letter-spacing:.12em!important;line-height:1.2!important;text-transform:uppercase!important;
}
@media(max-width:700px){
 .ninagrafie-cz-page-intro{margin-bottom:16px!important}
}

/* dev.38 · configuration is the final legacy page root with an additional
 * Enfold/shortcode content rhythm. Keep the global page-intro contract intact
 * and compensate only this legacy root. */
.ninagrafie-config{
 margin-top:-28px!important;
}
@media(max-width:700px){
 .ninagrafie-config{margin-top:-18px!important}
}

/* dev.38 · page-eyebrow audit contract.
 * Page-level Content-Zentrale eyebrows use one semantic token and one type
 * contract. Component/card/modal labels remain feature-owned. */
:root{
 --ninagrafie-cz-page-eyebrow:#8f5c61;
}
:is(
 .ninagrafie-cz-page-intro__eyebrow,
 .ninagrafie-dashboard-eyebrow,
 .ninagrafie-cz-home__eyebrow,
 .ninagrafie-cz-series__intro > div > .ninagrafie-cz-series__eyebrow,
 .ninagrafie-cz-references__intro > div > .ninagrafie-cz-references__eyebrow,
 .ninagrafie-config__intro .ninagrafie-config__eyebrow,
 .ninagrafie-tests__hero .ninagrafie-tests__eyebrow,
 .ninagrafie-inspiration__intro .ninagrafie-inspiration__eyebrow,
 .ninagrafie-content-help__eyebrow,
 .ninagrafie-event-admin__hero .ninagrafie-event-admin__eyebrow,
 .ninagrafie-faq-admin__hero .ninagrafie-faq-admin__eyebrow
){
 color:var(--ninagrafie-cz-page-eyebrow)!important;
 font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;
 font-size:11px!important;
 font-style:normal!important;
 font-weight:600!important;
 letter-spacing:.12em!important;
 line-height:1.2!important;
 text-transform:uppercase!important;
}

/* dev.39 · Shared Admin Presentation Components
 * One structural contract, no feature-specific typography for page intros. */
.ninagrafie-cz-page-intro--shared{
  --cz-page-eyebrow:#8f5c61;
  display:flex!important;align-items:flex-end!important;justify-content:space-between!important;
  gap:24px!important;margin:0 0 24px!important;padding:0!important;max-width:none!important;
}
.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__copy{min-width:0;max-width:820px}
.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__eyebrow{
  display:block!important;margin:0 0 8px!important;color:var(--cz-page-eyebrow)!important;
  font-family:inherit!important;font-size:11px!important;font-style:normal!important;font-weight:600!important;
  line-height:1.2!important;letter-spacing:.12em!important;text-transform:uppercase!important;
}
.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__title{
  margin:0 0 8px!important;padding:0!important;color:#171b20!important;font-family:inherit!important;
  font-size:34px!important;font-style:normal!important;font-weight:700!important;line-height:1.12!important;
  letter-spacing:0!important;text-transform:none!important;
}
.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__description{
  margin:0!important;max-width:820px;color:#625c57;font-family:inherit;font-size:14px;line-height:1.55;
}
.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__aside{flex:0 0 auto;align-self:center}
/* Existing feature wrappers now inherit the shared rhythm instead of owning it. */
:is(.ninagrafie-config__intro,.ninagrafie-faq-admin__hero,.ninagrafie-tests__intro,.ninagrafie-inspiration__intro,
.ninagrafie-cz-series__head,.ninagrafie-cz-references__head,.ninagrafie-cz-ideas__head,.ninagrafie-cz-todos__head,
.ninagrafie-event-admin__header).ninagrafie-cz-page-intro--shared{margin-top:0!important}
/* Shared primitives for the next admin migrations. */
.ninagrafie-cz-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:0 0 18px;padding:0 0 12px;border-bottom:1px solid #d9c9b5}
.ninagrafie-cz-section-head__eyebrow{display:block;margin:0 0 6px;color:#8f5c61;font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.ninagrafie-cz-section-head h2{margin:0;font-size:24px;line-height:1.15}
.ninagrafie-cz-empty-state{padding:32px 24px;border:1px dashed #d9c9b5;border-radius:12px;background:#fbf9f4;text-align:center}
.ninagrafie-cz-empty-state>:first-child{margin-top:0}.ninagrafie-cz-empty-state>:last-child{margin-bottom:0}
.ninagrafie-cz-stat{border:1px solid #d9c9b5;border-radius:12px;background:#fff;padding:16px 18px}.ninagrafie-cz-stat strong{display:block;font-size:28px;line-height:1.05}.ninagrafie-cz-stat span{display:block;margin-top:5px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:700px){.ninagrafie-cz-page-intro--shared{align-items:flex-start!important;flex-direction:column!important;gap:14px!important}.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__title{font-size:28px!important}.ninagrafie-cz-page-intro--shared .ninagrafie-cz-page-intro__aside{align-self:flex-start}}
.ninagrafie-tests__presentation-contract{margin-top:20px}.ninagrafie-tests__presentation-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;margin:18px 0}.ninagrafie-tests__presentation-contract .ninagrafie-cz-section-head{margin-top:22px}@media(max-width:700px){.ninagrafie-tests__presentation-grid{grid-template-columns:1fr}}

/* V1.7.1-dev.2 publication checkbox: avoid theme label/button collisions */
.nina-competition-public-check{display:flex!important;align-items:center!important;gap:.7rem!important;line-height:1.5!important}
.nina-competition-public-check input[type=checkbox]{width:18px!important;height:18px!important;flex:none!important;margin:0!important}
.nina-competition-field.nina-comp-wide>small{display:block;margin-top:.5rem;line-height:1.55}
