/* Seiten "Ausstellungen" (öffentlich) und "Admin": benutzt die Farben, Radien und Schriften aus site.css */

.ex{padding-block:clamp(40px,6vw,88px) clamp(96px,12vw,170px)}
.nav__links a[aria-current="page"]{background-size:100% 1px;color:var(--accent)}
.ex__head{display:grid;gap:20px;max-width:44rem;margin-bottom:clamp(44px,7vw,92px)}
.ex__head p{color:var(--ink-2)}
.ex__empty{padding:clamp(32px,5vw,64px);border-radius:var(--r-card);background:var(--paper);box-shadow:inset 0 1px 0 rgb(255 255 255 / .6),var(--shadow);max-width:36rem;display:grid;gap:12px}
.ex__empty b{font-family:var(--hand);font-size:2.2rem;line-height:1;color:var(--accent)}
.ex__empty p{color:var(--ink-2)}

/* Übersicht: Deckblätter als Karten */
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(40px,5vw,72px) clamp(24px,3vw,44px)}
.ex-card{display:block;text-decoration:none;color:inherit}
.ex-card:hover{color:inherit}
.ex-card__img{display:block;aspect-ratio:4 / 5;border-radius:var(--r-art);overflow:hidden;background:var(--wall-2);box-shadow:inset 0 1px 0 rgb(255 255 255 / .35),var(--shadow);transition:transform .7s var(--ease),box-shadow .5s var(--ease)}
.ex-card__img img{width:100%;height:100%;object-fit:cover}
.ex-card:hover .ex-card__img,.ex-card:focus-visible .ex-card__img{transform:translateY(-8px) rotate(-.7deg);box-shadow:inset 0 1px 0 rgb(255 255 255 / .5),var(--shadow-hover)}
.ex-card b{display:block;margin-top:20px;font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,2.5vw,2.4rem);line-height:1.08}
.ex-card__meta{display:block;margin-top:4px;font-family:var(--hand);font-weight:500;font-size:1.55rem;line-height:1.15;color:var(--ink-2)}
.ex-skel{aspect-ratio:4 / 5;border-radius:var(--r-art);background:linear-gradient(100deg,var(--wall-2) 30%,var(--paper) 50%,var(--wall-2) 70%) 0 0 / 300% 100%}
@media (prefers-reduced-motion:no-preference){.ex-skel{animation:shimmer 1.6s linear infinite}}
@keyframes shimmer{to{background-position:-300% 0}}

/* Detail: Banner, Text, Bilder */
.ex-back{display:inline-flex;margin-bottom:clamp(24px,4vw,44px)}
.ex-banner{margin:0 0 clamp(36px,5vw,64px);border-radius:var(--r-card);overflow:hidden;box-shadow:inset 0 1px 0 rgb(255 255 255 / .35),var(--shadow)}
.ex-banner img{width:100%;max-height:min(64vh,660px);object-fit:cover}
.ex-title{font-size:clamp(3.4rem,7vw,6.2rem);line-height:.92}
.ex-meta{margin-top:14px;font-family:var(--hand);font-weight:500;font-size:clamp(1.6rem,2.2vw,2rem);line-height:1.15;color:var(--ink-2)}
.ex-text{margin-top:clamp(24px,3vw,36px);display:grid;gap:1em;max-width:62ch;color:var(--ink-2)}
.ex-link{margin-top:clamp(18px,2.4vw,28px)}
.ex-gallery{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:clamp(20px,3vw,44px);align-items:start;margin-top:clamp(56px,8vw,112px)}
.ex-col{display:grid;gap:clamp(28px,4vw,52px);align-content:start}
.ex-gallery .work figcaption{font-size:1.5rem}

/* Admin */
.adm{max-width:960px;margin-inline:auto;padding-inline:var(--pad);padding-block:clamp(24px,5vw,64px) 120px}
.adm__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-bottom:clamp(28px,4vw,48px)}
.adm__bar .brand{font-size:1.4rem}
.adm__bar nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.adm h1{font-size:clamp(2.8rem,6vw,4.4rem);margin-bottom:clamp(20px,3vw,36px)}
.adm h2{font-size:clamp(2.2rem,4vw,3rem);margin:clamp(36px,5vw,56px) 0 18px}
.adm-card{padding:clamp(20px,3vw,36px);border-radius:var(--r-card);background:var(--paper);box-shadow:inset 0 1px 0 rgb(255 255 255 / .6),var(--shadow)}
.adm-login{max-width:440px;display:grid;gap:22px}
.adm-login .btn:disabled{opacity:.5;cursor:not-allowed}   /* gesperrter Knopf (z. B. "Neuen Code in 20 s") sieht erkennbar gesperrt aus */
.adm-meter{display:grid;gap:14px;margin-bottom:24px}
.adm-meter__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px}
.adm-meter__head b{font-family:var(--display);font-size:1.6rem;line-height:1.1;font-weight:600}
.adm-meter__head span{color:var(--ink-2)}
.adm-meter__track{height:16px;border-radius:999px;background:var(--wall-2);overflow:hidden;box-shadow:inset 0 1px 3px rgb(0 0 0 / .14)}
.adm-meter__track i{display:block;height:100%;min-width:10px;border-radius:inherit;background:#3d9a5b}   /* grün, ab 80 % gelb, ab 95 % rot */
.adm-meter__track i[data-level="mid"]{background:#d89a1f}
.adm-meter__track i[data-level="high"]{background:var(--accent)}
.adm .field--wide input,.adm .field--wide textarea{max-width:none}
.adm-list{display:grid;gap:18px;list-style:none;margin:0;padding:0}
.adm-row{display:grid;grid-template-columns:84px 1fr auto;gap:18px;align-items:center;padding:14px;border-radius:var(--r-card);background:var(--paper);box-shadow:inset 0 1px 0 rgb(255 255 255 / .6),var(--shadow)}
.adm-row img,.adm-row__ph{width:84px;height:104px;object-fit:cover;border-radius:12px;background:var(--wall-2)}
.adm-row b{display:block;font-family:var(--display);font-size:1.7rem;line-height:1.1;font-weight:600}
.adm-row small{display:block;color:var(--ink-2);font-size:.95rem}
.adm-badge{display:inline-block;margin-top:6px;padding:2px 12px;border-radius:999px;font-size:.85rem;font-weight:600;background:var(--wall-2);color:var(--ink-2)}
.adm-badge--on{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.adm-form{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}
.adm-form .field--wide{grid-column:1 / -1}
.adm-check{display:flex;align-items:center;gap:12px;font-weight:600}
.adm-check input{width:22px;height:22px;min-height:0;accent-color:var(--accent)}
.adm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;grid-column:1 / -1}
.adm-status{min-height:1.6em;color:var(--ink-2)}
.adm-status[data-kind="error"]{color:var(--accent);font-weight:600}
.adm-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.adm-slot{display:grid;gap:12px;align-content:start}
.adm-slot__row{display:flex;flex-wrap:wrap;gap:10px}
.adm-slot img{width:100%;max-height:260px;object-fit:cover;border-radius:var(--r-art);box-shadow:var(--shadow)}
.adm-slot__ph{display:grid;place-items:center;min-height:160px;border-radius:var(--r-art);background:var(--wall-2);color:var(--ink-2)}
.adm-file{position:relative;display:inline-flex}
.adm-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.adm-imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:20px;margin-top:20px}
.adm-tile{margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-content:start;padding:10px;border-radius:var(--r-art);background:var(--paper);box-shadow:inset 0 1px 0 rgb(255 255 255 / .6),var(--shadow)}
.adm-tile img{width:100%;aspect-ratio:4 / 3;object-fit:contain;border-radius:12px;background:var(--wall-2)}   /* ganzes Bild zeigen, so wie es später auf der Seite erscheint */
.adm-tile label{font-size:.85rem;font-weight:600;color:var(--ink-2)}
.adm-tile input{width:100%;min-height:42px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--ink) 38%,transparent);border-radius:12px;background:var(--wall);color:var(--ink);font:inherit;font-size:.95rem}
.adm-tile__row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.adm-mini{min-width:0;min-height:44px;padding:0 8px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:999px;background:transparent;font-weight:600;font-size:.95rem}
.adm-mini:hover{background:var(--wall-2)}
.adm-mini--del{grid-column:1 / -1;color:var(--accent)}
.adm-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:clamp(40px,6vw,72px);padding-top:28px;border-top:1px solid var(--line)}
.adm-foot .adm-status{flex:1 1 12rem}
.adm-foot .btn--danger{margin-left:auto}
.btn--quiet{border-color:transparent;background:transparent;box-shadow:none}
.btn--danger{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
@media (max-width:640px){
  .adm-imgs{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  /* unten: Speichern und Löschen in einer Zeile, der Statustext darunter */
  .adm-foot{gap:12px 10px}
  .adm-foot .btn{padding-inline:1em;min-width:0}
  .adm-foot .adm-status{order:3;flex:1 1 100%}
  .adm-form{grid-template-columns:1fr}
  .adm-row{grid-template-columns:64px 1fr}
  .adm-row img,.adm-row__ph{width:64px;height:80px}
  .adm-row .btn{grid-column:1 / -1}
}

/* Texte aus dem Admin: Zeilenumbrüche bleiben erhalten; Karten und Bilder blenden weich ein */
.ex-text p{white-space:pre-line}
@media (prefers-reduced-motion:no-preference){
  .ex-card,.ex-gallery .work{animation:ex-in .9s var(--ease) both;animation-delay:var(--d,0s)}
}
@keyframes ex-in{from{opacity:0;translate:0 28px}}
.adm-file:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.ex__head h1{font-size:clamp(3.8rem,7.5vw,6.4rem);line-height:.95}

/* Bestätigungsdialog im Admin */
.adm-ask{border:0;padding:0;border-radius:var(--r-card);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-hover);width:min(92vw,440px);overflow:hidden}
.adm-ask::backdrop{background:rgb(10 12 16 / .55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.adm-ask__box{display:grid;gap:22px;padding:clamp(22px,4vw,32px)}
.adm-ask__box p{font-size:1.1rem;line-height:1.45;max-width:none}
.adm-ask__row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}
