/* Media Library v0.6.1 UI/Foundation
   Grundsatz: Farben kommen aus config.json -> pa_theme_style_tag().
   CSS nutzt nur Theme-Tokens, keine festen Projektfarben. */
*{box-sizing:border-box}
html{color-scheme:light dark}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit}.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.2rem;background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.top span{margin-left:.5rem;color:var(--muted);font-size:.9rem}.top nav{display:flex;gap:.7rem;flex-wrap:wrap}.top a,button,.button{border:0;border-radius:.7rem;background:var(--accent);color:var(--accent-text);padding:.6rem .85rem;text-decoration:none;cursor:pointer;display:inline-block}.button.ghost,.theme-toggle{border:1px solid var(--line);background:var(--panel-soft)!important;color:var(--text)!important}.theme-toggle{background:transparent!important}main{max-width:1280px;margin:auto;padding:1rem}.hero,.panel,.login-card,.folders,.card,.mini,.row,.info-card,.asset-mini-preview{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow)}.hero,.panel{padding:1rem;margin-bottom:1rem}.hero h1,.panel h1{margin:.1rem 0}.hero p,.hint,.top span,.caption span,.row small,label,.asset-mini-preview p,.card-meta,.theme-admin-note{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.card{position:relative;overflow:hidden}.card.pending{outline:2px solid color-mix(in srgb,var(--warn) 30%,transparent)}.card.approved{outline:2px solid color-mix(in srgb,var(--ok) 18%,transparent)}.card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--image-bg)}.caption{display:flex;justify-content:space-between;gap:.5rem;padding:.7rem;font-size:.9rem}.caption strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.caption em{font-size:.75rem;opacity:.7;font-style:normal;margin-left:.4rem}.card-meta{display:flex;justify-content:space-between;gap:.5rem;padding:0 .7rem .55rem;font-size:.78rem}.card-actions{display:flex;gap:.4rem;flex-wrap:wrap;padding:.4rem .75rem .85rem}.card-actions .button{font-size:.8rem;padding:.35rem .55rem}
.pager{display:flex;justify-content:center;align-items:center;gap:1rem;margin:1.5rem}.pager a{background:var(--panel);border:1px solid var(--line);border-radius:.7rem;padding:.6rem .9rem;text-decoration:none}.login{min-height:100svh;display:grid;place-items:center;padding:1rem}.login-card{width:min(420px,100%);padding:1.4rem}label{display:grid;gap:.25rem;margin:.5rem 0;font-size:.9rem}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:.7rem;padding:.65rem;background:var(--input-bg);color:var(--text);font:inherit}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}.error{background:color-mix(in srgb,var(--danger) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));color:var(--danger);padding:.7rem;border-radius:.7rem}.ok{background:color-mix(in srgb,var(--ok) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 35%,var(--line));color:var(--ok);padding:.7rem;border-radius:.7rem}.warn{padding:.75rem;border-radius:.7rem;background:color-mix(in srgb,var(--warn) 18%,var(--panel));border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));color:var(--text)}
.layout{display:grid;grid-template-columns:260px 1fr;gap:1rem;align-items:start}.folders{position:sticky;top:76px;padding:1rem}.folders h2{margin:.1rem 0 .7rem}.folderbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0 1rem}.folder{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:.75rem;background:var(--panel-soft);text-decoration:none;margin:.25rem 0;color:var(--text)}.folder.active{outline:2px solid color-mix(in srgb,var(--accent) 25%,transparent);border-color:var(--accent)}.folder b{color:var(--muted);font-size:.8rem}.search{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,220px) auto auto;gap:.6rem;align-items:center}.empty{grid-column:1/-1;background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1rem;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:.3rem;padding:0 .7rem .7rem}.tags a,.tag-inline{font-size:.78rem;text-decoration:none;background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:.18rem .45rem}.row{display:grid;grid-template-columns:90px minmax(140px,1fr) 140px minmax(160px,240px) auto;align-items:center;gap:.8rem;padding:1rem}.row img{width:90px;height:64px;object-fit:cover;border-radius:.6rem;background:var(--image-bg)}.row label{margin:0}.row button{white-space:nowrap}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.mini{padding:1rem}.mini h3{margin-top:0}.admin-list{display:grid;gap:.7rem}.row-meta{grid-template-columns:90px minmax(160px,1.2fr) 130px minmax(150px,.8fr) minmax(140px,.8fr) minmax(160px,.8fr) minmax(180px,1fr) auto}.row-meta .wide{min-width:180px}.settings-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;align-items:end}.settings-form button{justify-self:start}.upload-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;align-items:end}.upload-form .wide{grid-column:span 2}.bulk-box{border:1px dashed var(--line);border-radius:1rem;padding:1rem;background:color-mix(in srgb,var(--panel-soft) 85%,var(--bg));margin-bottom:1rem}.bulk-box h2{margin-top:0}.bulk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;align-items:end;margin-bottom:1rem}.selectbox{display:flex;align-items:center;gap:.4rem;margin:0;color:var(--text)}.selectbox input{width:auto}.editlink{text-align:center}.single-edit{margin-top:1rem}.single-edit form{scroll-margin-top:90px}.bulk-select-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}.bulk-select-tools small{color:var(--muted)}.admin-sort{display:flex;justify-content:flex-end;margin:.6rem 0 1rem}.admin-sort label{min-width:240px;margin:0}.status-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:end}.status-actions input{min-width:160px}
.tag-assistant{border:1px dashed var(--line);border-radius:.9rem;padding:.75rem;background:color-mix(in srgb,var(--panel-soft) 85%,var(--bg))}.tag-assistant strong{display:block;margin-bottom:.15rem;color:var(--text)}.tag-assistant small{display:block;color:var(--muted);margin-bottom:.5rem}.tag-chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.tag-chips em{color:var(--muted);font-size:.9rem}.tag-chip{border:1px solid var(--line);background:var(--panel-soft);color:var(--text);border-radius:999px;padding:.32rem .62rem;cursor:pointer}.tag-chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}
.detail-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}.compact-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.asset-detail-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:start}.asset-mini-preview{position:sticky;top:90px;padding:12px;text-align:center}.asset-mini-preview img{display:block;width:100%;max-height:120px;object-fit:contain;border-radius:10px;background:var(--image-bg);border:1px solid var(--line)}.asset-mini-preview p{margin:8px 0 0;font-size:.9rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.info-card{border-radius:16px;padding:16px}.info-card h2{margin-top:0;font-size:1.05rem;color:var(--text)}.info-row{display:grid;grid-template-columns:minmax(110px,32%) minmax(0,1fr);gap:.45rem .75rem;margin:7px 0;line-height:1.35}.info-label{font-weight:700;color:var(--text)}.info-value{overflow-wrap:anywhere;color:var(--text)}.info-row.mono .info-value,.info-row.wrap .info-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem}.info-row.stacked{display:block}.info-row.stacked .info-label{display:block;margin-bottom:4px}.notes-inline{white-space:normal;background:color-mix(in srgb,var(--panel-soft) 85%,var(--bg));border:1px solid var(--line);border-radius:.7rem;padding:.6rem;color:var(--text)}
.theme-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem;margin-top:.7rem}.theme-admin-grid h3{grid-column:1/-1;margin:.5rem 0 0}.theme-admin-grid input[type=color]{height:42px;padding:3px}.theme-contrast-list{grid-column:1/-1;display:grid;gap:.35rem}.contrast-ok,.contrast-warn{padding:.55rem .7rem;border-radius:.7rem;border:1px solid var(--line)}.contrast-ok{background:color-mix(in srgb,var(--ok) 12%,var(--panel));color:var(--text)}.contrast-warn{background:color-mix(in srgb,var(--warn) 18%,var(--panel));color:var(--text)}.app-footer{max-width:1280px;margin:0 auto;padding:1.2rem;text-align:center;color:var(--muted);font-size:.88rem}
@media(max-width:1050px){.layout{grid-template-columns:1fr}.folders{position:static}.folders .folder{display:inline-flex;margin:.25rem}.row-meta{grid-template-columns:80px 1fr}.row-meta label,.row-meta button,.row-meta .status-actions{grid-column:1/-1}.search{grid-template-columns:1fr 1fr}}
@media(max-width:850px){.compact-hero{display:block}.cards-grid{grid-template-columns:1fr}.info-row{grid-template-columns:1fr}.info-label{margin-top:.25rem}}
@media(max-width:760px){.top{align-items:flex-start}.grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:.75rem}main{padding:.75rem}.row{grid-template-columns:70px 1fr}.row img{width:70px;height:52px}.row button,.row label{grid-column:1/-1}.caption{display:block}.upload-form .wide{grid-column:1/-1}.bulk-grid{grid-template-columns:1fr}.editlink{grid-column:1/-1}.admin-sort{justify-content:stretch}.admin-sort label{width:100%}.asset-detail-layout{grid-template-columns:1fr}.asset-mini-preview{position:static;display:flex;align-items:center;gap:12px;text-align:left}.asset-mini-preview img{width:82px;height:62px}}
@media(max-width:560px){.search{grid-template-columns:1fr}.folder{width:100%}}

/* v0.6.1: Admin-Liste zusammengeführt */
.unified-admin-form{overflow:hidden}
.unified-admin-list{margin-top:.7rem}
.row-unified{grid-template-columns:110px 92px minmax(210px,1.2fr) 130px minmax(150px,.8fr) minmax(140px,.75fr) minmax(150px,.75fr) minmax(190px,1fr) minmax(170px,.9fr);align-items:start}
.row-unified .asset-summary{display:grid;gap:.18rem}
.row-unified .compact-link{margin-top:.35rem;justify-self:start;padding:.35rem .6rem;font-size:.85rem}
.row-unified .approved-field{align-self:center}
.row-actions{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}
.row-actions input{min-width:150px;flex:1 1 150px}
.row-actions button{padding:.5rem .65rem}
@media(max-width:1180px){.row-unified{grid-template-columns:90px 80px minmax(0,1fr) minmax(160px,1fr) minmax(160px,1fr)}.row-unified label,.row-unified .wide,.row-unified .row-actions{grid-column:auto}.row-unified .asset-summary{grid-column:3/-1}.row-unified .wide,.row-unified .row-actions{grid-column:1/-1}}
@media(max-width:760px){.row-unified{grid-template-columns:70px 1fr}.row-unified .selectbox{grid-column:1/-1}.row-unified img{grid-column:1/2}.row-unified .asset-summary{grid-column:2/3}.row-unified label,.row-unified .wide,.row-unified .row-actions{grid-column:1/-1}.row-actions{display:grid;grid-template-columns:1fr 1fr}.row-actions input{grid-column:1/-1}.row-actions button:first-child{grid-column:1/-1}}

/* v0.6.2: Admin-Feinschliff */
.bulk-sticky{position:sticky;top:72px;z-index:4;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:1rem;padding:.85rem;box-shadow:var(--shadow);backdrop-filter:blur(10px);margin-bottom:1rem}
.bulk-sticky h2{margin:.1rem 0 .65rem}
.filter-line{gap:.7rem;flex-wrap:wrap;align-items:end}.filter-line label{width:auto;min-width:190px}.compact-admin-list{gap:.5rem}.compact-admin-list .row-unified{padding:.65rem}.compact-admin-list .row-unified img{width:74px;height:54px}.compact-admin-list label{font-size:.82rem}.compact-admin-list input,.compact-admin-list textarea,.compact-admin-list select{padding:.5rem .55rem}.compact-admin-list textarea{min-height:42px}.compact-admin-list .asset-summary strong{font-size:.95rem}.status-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:.12rem .5rem;border:1px solid var(--line);font-size:.76rem;font-weight:700;background:var(--chip-bg);color:var(--chip-text)}.status-active{background:color-mix(in srgb,var(--ok) 18%,var(--panel));color:var(--text);border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.status-archived{background:color-mix(in srgb,var(--warn) 18%,var(--panel));color:var(--text);border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.status-trash{background:color-mix(in srgb,var(--danger) 16%,var(--panel));color:var(--text);border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}
@media(max-width:760px){.bulk-sticky{position:static}.filter-line label{width:100%}.compact-admin-list .row-unified{padding:.75rem}.compact-admin-list .row-unified img{width:70px;height:52px}}

/* v0.6.3 Admin UX: System- und Mediumverwaltung getrennt */
.admin-tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1rem;padding:.65rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel)}
.admin-tabs a{padding:.55rem .8rem;border:1px solid var(--line);border-radius:.75rem;text-decoration:none;background:var(--panel-soft);color:var(--text);font-weight:700}
.admin-tabs a.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}
.media-admin-form{display:grid;gap:1rem}.media-admin-list{display:grid;gap:.75rem}.media-admin-card{display:grid;grid-template-columns:130px 92px minmax(260px,1fr) minmax(360px,1.45fr) minmax(170px,.8fr);gap:.9rem;align-items:start;padding:.85rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}
.media-select label{display:flex;align-items:center;gap:.45rem;color:var(--text);margin:.2rem 0}.media-preview img{width:82px;height:60px;object-fit:cover;border-radius:.6rem;background:var(--image-bg)}.media-main{display:grid;gap:.22rem;min-width:0}.media-main strong{overflow-wrap:anywhere}.media-main small{color:var(--muted)}.media-main .compact-link{justify-self:start;margin-top:.25rem;padding:.35rem .6rem;font-size:.86rem}.media-edit-fields{display:grid;grid-template-columns:minmax(210px,1fr) minmax(180px,.8fr);gap:.7rem}.media-edit-fields fieldset{border:1px solid var(--line);border-radius:.85rem;padding:.65rem;background:var(--panel-soft);min-width:0}.media-edit-fields legend{padding:0 .35rem;color:var(--text);font-weight:800}.media-edit-fields label{margin:.35rem 0}.inline-check{display:flex;align-items:center;gap:.4rem}.inline-check input{width:auto}.media-actions{display:grid;gap:.55rem}.media-actions button{width:max-content}.status-buttons{display:flex;gap:.35rem;flex-wrap:wrap}.status-buttons .button{padding:.45rem .6rem}.media-actions input{min-width:0}.media-admin-panel .bulk-sticky{top:72px}
@media(max-width:1280px){.media-admin-card{grid-template-columns:110px 82px minmax(220px,1fr);}.media-edit-fields,.media-actions{grid-column:1/-1}.media-edit-fields{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.admin-tabs{position:static}.media-admin-card{grid-template-columns:74px 1fr;padding:.75rem}.media-select{grid-column:1/-1}.media-preview{grid-column:1/2}.media-main{grid-column:2/3}.media-edit-fields,.media-actions{grid-column:1/-1}.media-edit-fields{grid-template-columns:1fr}.status-buttons{display:grid;grid-template-columns:1fr 1fr}.status-buttons button{width:100%}.media-actions button{width:100%}.bulk-sticky{position:static}}

/* v0.6.4 compact media administration */
.media-admin-list{display:grid;gap:.55rem}.media-admin-card.compact-card{display:grid;grid-template-columns:118px 84px minmax(240px,1fr) minmax(360px,1.15fr) auto;gap:.75rem;align-items:center;padding:.62rem .75rem;border-radius:.9rem;min-height:96px}.media-admin-card.compact-card .media-select{align-self:center}.media-admin-card.compact-card .media-select label{display:flex;gap:.45rem;align-items:center;font-weight:700}.media-admin-card.compact-card .media-preview img{width:72px;height:54px}.media-admin-card.compact-card .media-main{gap:.16rem}.media-admin-card.compact-card .media-main strong{font-size:.98rem;line-height:1.2}.media-admin-card.compact-card .tag-line{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.15rem}.mini-chip{display:inline-flex;padding:.12rem .42rem;border:1px solid var(--line);border-radius:999px;background:var(--chip-bg);color:var(--chip-text);font-size:.75rem}.media-quick{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(120px,1fr) minmax(140px,1.2fr);gap:.45rem;align-items:end}.media-quick input{padding:.55rem .65rem}.media-row-actions{display:flex;gap:.35rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.button.small,.media-row-actions .button,.media-row-actions button{padding:.45rem .65rem;font-size:.88rem;min-height:auto}.edit-more{position:relative}.edit-more>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:.65rem;padding:.43rem .65rem;font-weight:800;background:var(--panel-soft);color:var(--text)}.edit-more>summary::-webkit-details-marker{display:none}.edit-more-body{grid-column:1/-1;margin-top:.6rem;padding:.75rem;border:1px dashed var(--line);border-radius:.85rem;background:var(--panel-soft);display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:.75rem;min-width:min(760px,calc(100vw - 3rem));position:absolute;right:0;z-index:6;box-shadow:var(--shadow)}.edit-more-body h4{margin:.1rem 0 .45rem}.edit-more-body label{margin:0}.edit-more-body textarea{min-height:84px}.media-admin-card.compact-card:has(details[open]){z-index:7}.bulk-sticky{border:1px solid var(--line);border-radius:1rem;background:var(--panel);padding:.8rem;box-shadow:var(--shadow)}
@media(max-width:1180px){.media-admin-card.compact-card{grid-template-columns:44px 78px minmax(180px,1fr);align-items:start}.media-select{grid-column:1/2}.media-preview{grid-column:2/3}.media-main{grid-column:3/4}.media-quick,.media-row-actions{grid-column:1/-1}.media-quick{grid-template-columns:1fr 1fr 1.2fr}.media-row-actions{justify-content:flex-start}.edit-more-body{position:static;min-width:0}}
@media(max-width:720px){.media-admin-card.compact-card{grid-template-columns:36px 70px minmax(0,1fr);gap:.55rem;padding:.58rem}.media-select label span{display:none}.media-admin-card.compact-card .media-preview img{width:64px;height:50px}.media-admin-card.compact-card .media-main strong{font-size:.92rem}.media-quick{grid-template-columns:1fr}.media-row-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.media-row-actions .edit-more{grid-column:1/-1}.edit-more>summary{text-align:center}.edit-more-body{grid-template-columns:1fr}.bulk-grid{grid-template-columns:1fr}.folderbar{overflow-x:auto;flex-wrap:nowrap}.admin-sort.filter-line{grid-template-columns:1fr}}


/* v0.6.5: kompakte, responsive Medienverwaltung
   Desktop: Zeile mit klaren Spalten. Mittelbreite: Zusatzfelder umbrechen unterhalb.
   Mobil: kleine Karte mit Auswahl vorne, Vorschau links, Inhalt rechts. */
.media-admin-list{
  display:grid;
  gap:.55rem;
}
.media-admin-card.compact-card{
  display:grid;
  grid-template-columns:34px 84px minmax(210px,1.25fr) minmax(300px,1fr) auto;
  grid-template-areas:"select preview main quick actions";
  gap:.7rem;
  align-items:center;
  padding:.65rem .75rem;
  min-height:92px;
  border:1px solid var(--line);
  border-radius:.95rem;
  background:var(--panel);
  color:var(--text);
  box-shadow:var(--shadow);
}
.media-admin-card.compact-card .media-select{grid-area:select;align-self:center;justify-self:center}
.media-admin-card.compact-card .media-select label{display:flex;align-items:center;justify-content:center;margin:0;font-weight:800}
.media-admin-card.compact-card .media-select label span{display:none}
.media-admin-card.compact-card .media-select input{width:18px;height:18px}
.media-admin-card.compact-card .media-preview{grid-area:preview;align-self:center}
.media-admin-card.compact-card .media-preview img{width:76px;height:56px;object-fit:cover;border-radius:.55rem;background:var(--image-bg);display:block}
.media-admin-card.compact-card .media-main{grid-area:main;display:grid;gap:.18rem;min-width:0;align-self:center}
.media-admin-card.compact-card .media-main strong{font-size:.98rem;line-height:1.2;overflow-wrap:anywhere}
.media-admin-card.compact-card .media-main small{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.media-admin-card.compact-card .tag-line{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.12rem}
.media-quick{grid-area:quick;display:grid;grid-template-columns:minmax(105px,.65fr) minmax(130px,1fr) minmax(145px,1fr);gap:.45rem;align-items:center;min-width:0}
.media-quick input{min-width:0;padding:.5rem .6rem;font-size:.9rem}
.media-quick .inline-check{white-space:nowrap;align-self:center;margin:0;color:var(--text)}
.media-row-actions{grid-area:actions;display:flex;gap:.35rem;align-items:center;justify-content:flex-end;flex-wrap:nowrap;min-width:max-content}
.media-row-actions .button,.media-row-actions button,.button.small{padding:.43rem .62rem;font-size:.86rem;min-height:auto}
.media-row-actions .edit-more{position:relative}
.edit-more>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:.65rem;padding:.43rem .65rem;font-weight:800;background:var(--panel-soft);color:var(--text);white-space:nowrap}
.edit-more>summary::-webkit-details-marker{display:none}
.edit-more-body{margin-top:.55rem;padding:.75rem;border:1px dashed var(--line);border-radius:.85rem;background:var(--panel-soft);display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:.75rem;min-width:min(760px,calc(100vw - 3rem));position:absolute;right:0;z-index:10;box-shadow:var(--shadow)}
.edit-more-body h4{margin:.1rem 0 .45rem}.edit-more-body label{margin:0}.edit-more-body textarea{min-height:80px}
.media-admin-card.compact-card:has(details[open]){z-index:11}

@media(max-width:1050px){
  .media-admin-card.compact-card{
    grid-template-columns:34px 82px minmax(180px,1fr) auto;
    grid-template-areas:
      "select preview main actions"
      "select preview quick quick";
    align-items:center;
  }
  .media-quick{grid-template-columns:minmax(115px,.6fr) minmax(150px,1fr) minmax(160px,1fr)}
  .media-row-actions{justify-self:end}
  .edit-more-body{position:static;min-width:0;grid-column:1/-1;box-shadow:none}
}
@media(max-width:760px){
  .media-admin-card.compact-card{
    grid-template-columns:32px 72px minmax(0,1fr);
    grid-template-areas:
      "select preview main"
      "quick quick quick"
      "actions actions actions";
    gap:.55rem;
    padding:.6rem;
  }
  .media-admin-card.compact-card .media-preview img{width:66px;height:52px}
  .media-admin-card.compact-card .media-main strong{font-size:.93rem}
  .media-quick{grid-template-columns:1fr;gap:.4rem}
  .media-row-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch;min-width:0;width:100%}
  .media-row-actions .button,.media-row-actions button{width:100%;text-align:center}
  .media-row-actions .edit-more{grid-column:1/-1;width:100%}
  .edit-more>summary{text-align:center}
  .edit-more-body{grid-template-columns:1fr}
  .bulk-grid{grid-template-columns:1fr}
  .folderbar{overflow-x:auto;flex-wrap:nowrap}
  .admin-sort.filter-line{grid-template-columns:1fr}
}

/* v0.6.6: Admin-Medienliste wirklich kompakt
   Ziel: Desktop/Tablet als Zeile, Mobile als saubere Karte. Checkbox immer vorne.
   Wichtig: diese Regeln stehen am Dateiende und überschreiben ältere v0.6.4/v0.6.5-Regeln. */
.media-admin-panel{overflow:visible}
.media-admin-list{display:grid;gap:.55rem;margin-top:.75rem}
.media-admin-card.compact-card{
  display:grid!important;
  grid-template-columns:32px 86px minmax(180px,1.25fr) minmax(260px,1.1fr) minmax(150px,.75fr);
  grid-template-areas:"select preview main quick actions";
  gap:.65rem;
  align-items:center;
  padding:.62rem .7rem;
  min-height:82px;
  border:1px solid var(--line);
  border-radius:.95rem;
  background:var(--panel);
  color:var(--text);
  box-shadow:var(--shadow);
  position:relative;
}
.media-admin-card.compact-card .media-select{grid-area:select;align-self:center;justify-self:center}
.media-admin-card.compact-card .media-select label{margin:0;display:flex;align-items:center;justify-content:center}
.media-admin-card.compact-card .media-select label span{display:none!important}
.media-admin-card.compact-card .media-select input{width:18px;height:18px;margin:0}
.media-admin-card.compact-card .media-preview{grid-area:preview;align-self:center}
.media-admin-card.compact-card .media-preview img{width:78px;height:58px;display:block;object-fit:cover;border-radius:.55rem;background:var(--image-bg);border:1px solid var(--line)}
.media-admin-card.compact-card .media-main{grid-area:main;display:grid;gap:.12rem;min-width:0;align-self:center}
.media-admin-card.compact-card .media-main strong{font-size:.98rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.media-admin-card.compact-card .media-main small{font-size:.8rem;line-height:1.25;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-admin-card.compact-card .tag-line{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.1rem;max-height:1.6rem;overflow:hidden}
.media-admin-card.compact-card .mini-chip{font-size:.72rem;padding:.1rem .38rem}
.media-quick{grid-area:quick;display:grid!important;grid-template-columns:1fr 1fr;gap:.4rem;align-items:center;min-width:0}
.media-quick .inline-check{grid-column:1/-1;margin:0;display:flex;align-items:center;gap:.35rem;white-space:nowrap;font-size:.86rem;color:var(--text)}
.media-quick .inline-check input{width:auto;margin:0}
.media-quick input{min-width:0;padding:.46rem .55rem;font-size:.86rem;border-radius:.55rem}
.media-row-actions{grid-area:actions;display:flex!important;gap:.35rem;align-items:center;justify-content:flex-end;flex-wrap:wrap;min-width:0}
.media-row-actions .button,.media-row-actions button,.button.small{padding:.42rem .56rem;font-size:.84rem;line-height:1.1;min-height:0;border-radius:.55rem}
.media-row-actions .edit-more{position:relative}
.edit-more>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:.55rem;padding:.42rem .56rem;font-weight:800;background:var(--panel-soft);color:var(--text);white-space:nowrap;font-size:.84rem;line-height:1.1}
.edit-more>summary::-webkit-details-marker{display:none}
.edit-more-body{margin-top:.55rem;padding:.75rem;border:1px dashed var(--line);border-radius:.85rem;background:var(--panel-soft);display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:.75rem;min-width:min(740px,calc(100vw - 3rem));position:absolute;right:0;z-index:20;box-shadow:var(--shadow)}
.media-admin-card.compact-card:has(details[open]){z-index:25}

@media(max-width:980px){
  .media-admin-card.compact-card{
    grid-template-columns:32px 82px minmax(0,1fr) minmax(130px,auto);
    grid-template-areas:
      "select preview main actions"
      "select preview quick quick";
    align-items:center;
  }
  .media-quick{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .media-row-actions{justify-content:flex-end;align-self:center}
  .edit-more-body{position:static;min-width:0;box-shadow:none;grid-template-columns:1fr 1fr;grid-column:1/-1}
  .edit-more-body section:first-child{grid-column:1/-1}
}
@media(max-width:680px){
  .media-admin-card.compact-card{
    grid-template-columns:30px 70px minmax(0,1fr);
    grid-template-areas:
      "select preview main"
      "quick quick quick"
      "actions actions actions";
    gap:.52rem;
    padding:.58rem;
  }
  .media-admin-card.compact-card .media-preview img{width:66px;height:52px}
  .media-admin-card.compact-card .media-main strong{white-space:normal;font-size:.92rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .media-admin-card.compact-card .media-main small{white-space:normal;font-size:.78rem}
  .media-quick{grid-template-columns:1fr;gap:.38rem}
  .media-row-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;justify-content:stretch}
  .media-row-actions .button,.media-row-actions button{width:100%;text-align:center}
  .media-row-actions .edit-more{grid-column:1/-1;width:100%}
  .edit-more>summary{text-align:center}
  .edit-more-body{grid-template-columns:1fr}
}

/* v0.6.7: form controls + collapsible bulk bar */
input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  min-width:18px;
  border:2px solid var(--line);
  border-radius:.32rem;
  background:var(--input-bg);
  display:inline-grid;
  place-content:center;
  vertical-align:middle;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
input[type="checkbox"]::before{
  content:"";
  width:9px;
  height:9px;
  transform:scale(0);
  transition:transform .12s ease-in-out;
  background:var(--accent-text);
  clip-path:polygon(14% 44%,0 60%,40% 100%,100% 18%,84% 4%,38% 70%);
}
input[type="checkbox"]:checked{
  background:var(--accent);
  border-color:var(--accent);
}
input[type="checkbox"]:checked::before{transform:scale(1)}
input[type="checkbox"]:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 45%,transparent);outline-offset:2px}
input[type="checkbox"]:disabled{opacity:.55;cursor:not-allowed}

.bulk-sticky{padding:0;overflow:hidden}
.bulk-sticky>summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem 1rem;
  font-weight:900;
  color:var(--text);
}
.bulk-sticky>summary::-webkit-details-marker{display:none}
.bulk-sticky>summary::before{
  content:"▾";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.3rem;
  height:1.3rem;
  border:1px solid var(--line);
  border-radius:.45rem;
  background:var(--panel-soft);
  margin-right:.35rem;
}
.bulk-sticky:not([open])>summary::before{content:"▸"}
.bulk-sticky>summary span{display:inline-flex;align-items:center;gap:.4rem;margin-right:auto}
.bulk-sticky>summary small{color:var(--muted);font-weight:700;white-space:nowrap}
.bulk-body{padding:0 1rem 1rem}
.bulk-sticky:not([open]){box-shadow:none}
.bulk-sticky:not([open]) .bulk-body{display:none}

@media(max-width:720px){
  .bulk-sticky>summary{align-items:flex-start;flex-direction:column;gap:.25rem}
  .bulk-sticky>summary::before{position:absolute;right:1rem;top:.85rem;margin:0}
  .bulk-sticky>summary small{white-space:normal}
}


/* v0.6.8: Bearbeiten klappt direkt innerhalb der Medienkarte aus */
.media-admin-card.compact-card:has(.edit-more[open]){
  align-items:start;
}
.media-admin-card.compact-card .media-row-actions:has(.edit-more[open]){
  grid-column:1/-1;
  display:grid;
  grid-template-columns:auto auto 1fr;
  gap:.45rem;
  align-items:start;
  justify-content:stretch;
  padding-top:.35rem;
  border-top:1px solid var(--line);
}
.media-admin-card.compact-card .media-row-actions:has(.edit-more[open]) .edit-more{
  grid-column:1/-1;
  width:100%;
}
.media-admin-card.compact-card .media-row-actions:has(.edit-more[open]) .edit-more>summary{
  width:max-content;
}
.edit-more-body{
  position:static !important;
  right:auto !important;
  min-width:0 !important;
  width:100%;
  box-shadow:none;
  grid-template-columns:1.2fr 1fr 1fr;
  border-style:solid;
}
.edit-more-title{
  grid-column:1/-1;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
  padding:.15rem .1rem .55rem;
  border-bottom:1px solid var(--line);
  color:var(--text);
}
.edit-more-title strong{overflow-wrap:anywhere;font-size:1rem}
.edit-more-title small{color:var(--muted);white-space:nowrap}
@media(max-width:900px){
  .edit-more-body{grid-template-columns:1fr 1fr}
  .edit-more-body section:first-of-type{grid-column:1/-1}
  .edit-more-title{align-items:flex-start;flex-direction:column;gap:.15rem}
  .edit-more-title small{white-space:normal}
}
@media(max-width:720px){
  .media-admin-card.compact-card .media-row-actions:has(.edit-more[open]){
    grid-template-columns:1fr 1fr;
  }
  .media-admin-card.compact-card .media-row-actions:has(.edit-more[open]) .edit-more>summary{
    width:100%;
  }
  .edit-more-body{grid-template-columns:1fr}
}

/* v0.6.9: Inline-Bearbeitung wirklich innerhalb derselben Medienkarte.
   Keine Overlay-/Zwischenkarte: die Karte erweitert sich nach unten. */
.media-admin-card.compact-card{
  grid-template-areas:
    "select preview main quick actions"
    "edit edit edit edit edit";
}
.media-inline-edit[hidden]{display:none!important}
.media-inline-edit{
  grid-area:edit;
  position:static!important;
  right:auto!important;
  width:100%;
  min-width:0!important;
  margin-top:.35rem;
  padding:.7rem .85rem;
  border:1px solid var(--line);
  border-radius:.8rem;
  background:var(--panel-soft);
  box-shadow:none;
  display:grid;
  grid-template-columns:minmax(260px,1.25fr) minmax(220px,.9fr) minmax(220px,.9fr);
  gap:.7rem;
}
.media-inline-edit .edit-more-title{
  grid-column:1/-1;
  padding:0 0 .45rem;
  border-bottom:1px solid var(--line);
}
.media-inline-edit h4{margin:.05rem 0 .35rem;font-size:.95rem}
.media-inline-edit label{margin:0;font-size:.86rem;color:var(--muted)}
.media-inline-edit textarea{min-height:72px;resize:vertical}
.media-row-actions .edit-toggle[aria-expanded="true"]{
  background:var(--primary);
  color:var(--primary-text);
  border-color:var(--primary);
}
@media(max-width:980px){
  .media-admin-card.compact-card{
    grid-template-areas:
      "select preview main actions"
      "select preview quick quick"
      "edit edit edit edit";
  }
  .media-inline-edit{grid-template-columns:1fr 1fr}
  .media-inline-edit section:first-of-type{grid-column:1/-1}
}
@media(max-width:680px){
  .media-admin-card.compact-card{
    grid-template-areas:
      "select preview main"
      "quick quick quick"
      "actions actions actions"
      "edit edit edit";
  }
  .media-inline-edit{grid-template-columns:1fr;padding:.65rem;gap:.55rem}
}

/* v0.7.0 Foundation & UI Polish
   Ziel: ruhige, kompakte, themefähige Medienkarten ohne neue Funktionslogik. */
:root{--ui-radius:.9rem;--ui-radius-sm:.55rem;--ui-gap:.65rem;--ui-transition:160ms ease}
.button,button,a.button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.15rem;border-radius:var(--ui-radius-sm);font-weight:800;text-decoration:none;transition:background var(--ui-transition),border-color var(--ui-transition),box-shadow var(--ui-transition),transform var(--ui-transition)}
.button.small,.media-row-actions .button,.media-row-actions button{min-height:1.95rem;padding:.42rem .6rem;white-space:nowrap}
.button:hover,button:hover,a.button:hover{box-shadow:0 3px 10px color-mix(in srgb,var(--text) 10%,transparent);transform:translateY(-1px)}
.button:focus-visible,button:focus-visible,a.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 48%,transparent);outline-offset:2px}
.media-admin-list{gap:.58rem}
.media-admin-card.compact-card{border-radius:var(--ui-radius);transition:box-shadow var(--ui-transition),border-color var(--ui-transition),background var(--ui-transition);overflow:visible}
.media-admin-card.compact-card:hover,.media-admin-card.compact-card:focus-within{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));box-shadow:0 10px 26px color-mix(in srgb,var(--text) 10%,transparent)}
.media-admin-card.compact-card .media-main strong{font-weight:900;letter-spacing:-.01em}
.media-admin-card.compact-card .media-main small{display:flex;align-items:center;gap:.32rem;flex-wrap:wrap}
.media-preview img{aspect-ratio:4/3;object-fit:cover;box-shadow:inset 0 0 0 1px var(--line)}
.mini-chip,.tag-chip{display:inline-flex;align-items:center;gap:.18rem;border-radius:999px;background:var(--chip-bg);color:var(--chip-text);border:1px solid color-mix(in srgb,var(--chip_text,var(--chip-text)) 12%,var(--line));font-weight:750;line-height:1.2}
.mini-chip::before{content:"🏷";font-size:.82em;opacity:.75}
.status-badge{display:inline-flex;align-items:center;gap:.28rem;border-radius:999px;padding:.1rem .48rem;font-size:.76rem;font-weight:850;border:1px solid var(--line);line-height:1.25}
.status-active{background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--text);border-color:color-mix(in srgb,var(--ok) 42%,var(--line))}
.status-active::before{content:"●";color:var(--ok)}
.status-archived{background:color-mix(in srgb,var(--warn) 16%,var(--panel));color:var(--text);border-color:color-mix(in srgb,var(--warn) 42%,var(--line))}
.status-archived::before{content:"●";color:var(--warn)}
.status-trash{background:color-mix(in srgb,var(--danger) 13%,var(--panel));color:var(--text);border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}
.status-trash::before{content:"●";color:var(--danger)}
.media-inline-edit[hidden]{display:none!important}
.media-inline-edit{grid-column:1 / -1;position:static!important;right:auto!important;min-width:0!important;margin-top:.25rem;padding:.7rem .75rem;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:var(--ui-radius);background:color-mix(in srgb,var(--panel-soft) 82%,var(--panel));box-shadow:none!important;display:grid!important;grid-template-columns:minmax(220px,1.35fr) minmax(180px,.9fr) minmax(180px,.85fr);gap:.65rem;animation:paInlineOpen .16s ease-out}
@keyframes paInlineOpen{from{opacity:.35;transform:translateY(-4px)}to{opacity:1;transform:none}}
.media-inline-edit .edit-more-title{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:-.15rem;color:var(--text)}
.media-inline-edit h4{margin:.05rem 0 .35rem;font-size:.88rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.media-inline-edit label{margin:0}.media-inline-edit textarea{min-height:72px;resize:vertical}.status-buttons{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.45rem}
.bulk-sticky{border:1px solid var(--line);border-radius:var(--ui-radius);background:var(--panel);box-shadow:var(--shadow);transition:box-shadow var(--ui-transition)}
.bulk-sticky>summary{min-height:2.75rem}.bulk-sticky[open]{box-shadow:0 8px 24px color-mix(in srgb,var(--text) 9%,transparent)}
.bulk-sticky .bulk-body{border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel-soft) 70%,var(--panel));padding:.85rem 1rem 1rem}
input,select,textarea{transition:border-color var(--ui-transition),box-shadow var(--ui-transition),background var(--ui-transition)}
@media(max-width:980px){.media-inline-edit{grid-template-columns:1fr 1fr}.media-inline-edit section:first-of-type{grid-column:1/-1}}
@media(max-width:680px){.media-inline-edit{grid-template-columns:1fr;padding:.65rem}.media-inline-edit .edit-more-title{display:grid;gap:.1rem}.media-row-actions{gap:.4rem}.media-row-actions .button,.media-row-actions button{min-height:2.15rem}.status-buttons{display:grid;grid-template-columns:1fr 1fr 1fr}.status-buttons .button{width:100%;padding-inline:.35rem}}

/* v0.7.1: Medienkarten aussagekräftiger und konfigurierbar */
.card .card-caption-stacked{
  display:grid;
  grid-template-columns:1fr;
  gap:.28rem;
  padding:.68rem .75rem .45rem;
}
.card .card-caption-stacked strong{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.2;
  min-height:2.35em;
  overflow-wrap:anywhere;
}
.card-info-line{
  display:flex;
  flex-wrap:wrap;
  gap:.25rem .45rem;
  align-items:center;
  color:var(--muted);
  font-size:.82rem;
}
.card-info-line span:not(:last-child)::after{
  content:"·";
  margin-left:.45rem;
  color:var(--muted);
}
.card-description{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.settings-card-options{
  grid-column:1/-1;
  border:1px solid var(--line);
  border-radius:.9rem;
  padding:.8rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:.35rem .75rem;
  background:var(--panel-soft);
}
.settings-card-options legend{font-weight:900;padding:0 .35rem}
.settings-card-options .hint{grid-column:1/-1;margin:.1rem 0 .3rem}
.settings-card-options label{margin:0;display:flex;align-items:center;gap:.45rem}
@media(max-width:760px){
  .card .card-caption-stacked strong{-webkit-line-clamp:3;min-height:auto}
}


/* v0.7.2: Karten-Feinschliff für Galerie */
.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start}
.card{transition:border-color var(--ui-transition),box-shadow var(--ui-transition),transform var(--ui-transition)}
.card:hover,.card:focus-within{border-color:color-mix(in srgb,var(--accent) 36%,var(--line));box-shadow:0 12px 30px color-mix(in srgb,var(--text) 11%,transparent);transform:translateY(-1px)}
.card .card-caption-stacked strong{font-size:.94rem;line-height:1.22;min-height:auto;-webkit-line-clamp:3;word-break:break-word}
.card-info-line{font-size:.8rem;line-height:1.35}
.card-actions{padding:.45rem .75rem .85rem;display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.card-actions .button{width:100%}
.tags{padding:.05rem .75rem .55rem;max-height:3.9rem;overflow:hidden}
.tags a{display:inline-flex;align-items:center;gap:.15rem;border:1px solid color-mix(in srgb,var(--chip-text) 12%,var(--line));font-weight:750}
.tags a::before{content:"🏷";font-size:.82em;opacity:.75}
@media(max-width:760px){.grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}.card-actions{grid-template-columns:1fr}.card .card-caption-stacked strong{-webkit-line-clamp:4}}


/* v0.8.1: Filter-/Paging-Feinschliff */
.search{grid-template-columns:minmax(220px,1fr) minmax(140px,200px) minmax(130px,170px) minmax(130px,190px) minmax(95px,130px) auto;align-items:end}
.per-page-label{margin:0;color:var(--muted);font-size:.82rem}.per-page-label select{margin-top:.15rem}
.pager{display:flex;align-items:center;justify-content:center;gap:.55rem;margin:1rem 0 2rem}.pager a,.pager span{border:1px solid var(--line);background:var(--panel);border-radius:.65rem;padding:.45rem .75rem;text-decoration:none}.pager span{color:var(--muted)}
@media(max-width:980px){.search{grid-template-columns:1fr 1fr}.search input{grid-column:1/-1}}
@media(max-width:620px){.search{grid-template-columns:1fr}.search button,.search .button{width:100%}}


/* v0.9.0: Diagnoseansicht */
.diagnostics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.diagnostics-grid .info-card{box-shadow:none;background:var(--panel-soft)}

/* v0.9.6 capability management */
.capability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.45rem .8rem;margin-top:.75rem;padding:.75rem;border:1px solid var(--line);border-radius:var(--radius,14px);background:var(--panel-soft)}
.capability-grid legend{font-weight:700;padding:0 .35rem}
.capability-grid label{display:flex;gap:.45rem;align-items:flex-start;font-size:.9rem;line-height:1.25}
.user-cap-form{align-content:start}
.error-page-shell{min-height:calc(100svh - 4rem);display:grid;place-items:center;padding:1.25rem}.error-page-card{width:min(620px,100%);padding:clamp(1.25rem,4vw,2.25rem);border-top:4px solid var(--danger);box-shadow:var(--shadow)}.error-page-card h1{margin:.35rem 0 .75rem}.error-page-card p{color:var(--muted);font-size:1.02rem;line-height:1.6}.error-page-code{display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .65rem;background:color-mix(in srgb,var(--danger) 14%,var(--panel));color:var(--danger);font-weight:700;font-size:.82rem}.error-page-card .detail-actions{margin-top:1.25rem}.form-notice{margin:0 0 1rem}.upload-limit-note{display:flex;flex-wrap:wrap;gap:.45rem .8rem;align-items:center}.upload-limit-note strong{color:var(--text)}.upload-selection-summary{padding:.7rem .85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--subtle);color:var(--muted)}.upload-selection-summary.error{border-color:var(--danger);color:var(--danger)}.upload-form button:disabled{cursor:not-allowed;opacity:.55}

/* v0.9.9.3 Integration: Pagination, Album, Systemcheck */
.result-summary {
  margin: 12px 0;
  color: var(--color-muted);
  font-size: .92rem;
}
.pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 20px 0;
  flex-wrap: wrap;
}
.pager a,
.pager span {
  border: 1px solid var(--color-line);
  border-radius: 999px;
  padding: 8px 12px;
  background: var(--color-panel);
  color: var(--color-text);
  text-decoration: none;
}
.pager a:hover { border-color: var(--color-accent); }
.system-check {
  border: 1px solid var(--color-line);
  border-radius: 14px;
  background: var(--color-panel-soft);
  padding: 14px;
  margin: 0 0 18px;
}
.check-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 2fr);
  gap: 10px;
  align-items: start;
  padding: 8px 0;
  border-bottom: 1px solid var(--color-line);
}
.check-row:last-child { border-bottom: 0; }
.check-ok strong { color: var(--color-ok); }
.check-warn strong { color: var(--color-warn); }
.check-row small { color: var(--color-muted); overflow-wrap: anywhere; }
.album-viewer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 18px;
  align-items: start;
}
.album-stage {
  background: var(--color-image-bg);
  border: 1px solid var(--color-line);
  border-radius: 18px;
  min-height: 55vh;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 12px;
}
.album-stage img {
  max-width: 100%;
  max-height: 75vh;
  object-fit: contain;
  border-radius: 10px;
}
.album-info {
  border: 1px solid var(--color-line);
  background: var(--color-panel);
  border-radius: 18px;
  padding: 16px;
  position: sticky;
  top: 12px;
}
.album-info h2 { margin-top: 0; overflow-wrap: anywhere; }
.album-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.album-placeholder { text-align: center; color: var(--color-muted); }
.album-placeholder img { max-width: 160px; max-height: 120px; }
@media (max-width: 820px) {
  .album-viewer { grid-template-columns: 1fr; }
  .album-info { position: static; }
  .check-row { grid-template-columns: 1fr; }
}

/* v0.9.9.7: Ordnerliste und Album-Kontext */
.folder{min-width:0;overflow:hidden}
.folder span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}
.folder b{flex:0 0 auto;min-width:2.5rem;text-align:right;align-self:center;border-radius:999px;padding:.08rem .4rem;background:var(--chip-bg);color:var(--chip-text)}
.card .thumb-link{display:block;color:inherit;text-decoration:none}
.card .thumb-link:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:.8rem}
.card-caption-stacked strong{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.card-info-line{display:flex;flex-wrap:wrap;gap:.25rem .5rem;color:var(--muted);font-size:.78rem}
.album-hero .search{grid-template-columns:minmax(180px,1fr) minmax(160px,1fr) minmax(120px,180px) minmax(120px,180px) minmax(120px,180px) auto}
.album-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}
@media(max-width:900px){.album-hero .search{grid-template-columns:1fr 1fr}.album-actions .button,.album-actions button{flex:1 1 160px}}
@media(max-width:560px){.album-hero .search{grid-template-columns:1fr}.folder b{min-width:2.1rem}.card-info-line{font-size:.75rem}}


/* v0.9.9.7: Header-Useranzeige und robuste Ordnerkarten */
.top{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center}
.top-title{min-width:0}.top-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-brand{display:flex!important;align-items:center;gap:.65rem;min-width:0;padding:0!important;background:transparent!important;color:var(--text)!important;text-decoration:none}
.app-brand-logo{width:2.55rem;height:2.55rem;object-fit:contain;flex:0 0 auto;border-radius:50%}
.top-user{display:flex;align-items:center;justify-content:flex-end;min-width:0}
.user-pill{display:flex;align-items:center;gap:.45rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--text);padding:.32rem .55rem;max-width:100%;font-size:.88rem;white-space:nowrap}
.user-pill .avatar{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:50%;background:var(--accent);color:var(--accent-text);font-weight:800;flex:0 0 auto}
.user-main{font-weight:800;overflow:hidden;text-overflow:ellipsis;max-width:12rem}.user-extra{color:var(--muted);font-size:.82rem}.auth-local{color:var(--ok)}
.folder span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder b{flex:0 0 auto;min-width:2.4rem;text-align:right}
@media(max-width:900px){.top{grid-template-columns:1fr;align-items:stretch}.top nav{order:3}.top-user{justify-content:flex-start}.user-pill{max-width:100%}.user-main{max-width:16rem}}
@media(max-width:520px){.user-extra{display:none}.user-main{max-width:10rem}.top-title strong{white-space:normal}.folder span{max-width:calc(100vw - 8rem)}}

/* v0.9.9.7: kompakter Header mit Benutzer-Dropdown und Theme-Icon rechts */
.top{grid-template-columns:minmax(180px,1fr) auto auto;gap:.75rem}
.top nav{justify-content:center}
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;min-width:0}
.user-menu{position:relative;display:inline-block}
.user-menu summary{list-style:none;display:flex;align-items:center;gap:.42rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--text);padding:.28rem .52rem;cursor:pointer;white-space:nowrap;max-width:280px}
.user-menu summary::-webkit-details-marker{display:none}
.user-menu .avatar{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:50%;background:var(--accent);color:var(--accent-text);font-weight:800;flex:0 0 auto;margin:0}
.user-menu .user-main{display:inline-block;max-width:12rem;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:.88rem;margin:0}
.user-menu .chevron{font-size:.75rem;color:var(--muted);margin:0}
.user-menu-panel{position:absolute;right:0;top:calc(100% + .45rem);z-index:20;min-width:230px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--ui-radius,14px);box-shadow:var(--shadow);padding:.6rem;display:grid;gap:.35rem}
.user-menu-account{display:grid!important;grid-template-columns:minmax(0,1fr);gap:.08rem;padding:.4rem .45rem .6rem!important;border-bottom:1px solid var(--line);border-radius:.55rem .55rem 0 0!important}
.user-menu-account strong,.user-menu-account small{overflow:hidden;text-overflow:ellipsis}
.user-menu-account small{color:var(--muted)}
.user-menu-meta{display:grid;gap:.18rem;padding:.45rem;color:var(--muted);font-size:.86rem;border-bottom:1px solid var(--line)}
.user-menu-panel a{background:transparent;color:var(--text);border-radius:.55rem;padding:.5rem .55rem;text-decoration:none}
.user-menu-panel a:hover{background:var(--panel-soft)}
.user-menu-panel a.danger{color:var(--danger, var(--text))}
.theme-toggle.icon-only{display:inline-flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;padding:0;border-radius:999px;font-size:1.05rem;line-height:1;background:var(--panel-soft)!important;color:var(--text)!important;border:1px solid var(--line)}
@media(max-width:900px){.top{grid-template-columns:1fr auto}.top nav{grid-column:1/-1;order:3;justify-content:flex-start}.top-actions{align-self:start}.user-menu .user-main{max-width:10rem}}
@media(max-width:520px){.top{grid-template-columns:1fr auto}.user-menu .user-main{display:none}.user-menu summary{padding:.25rem}.theme-toggle.icon-only{width:2.15rem;height:2.15rem}.top nav{gap:.4rem}.top a{padding:.48rem .62rem}}

/* v0.9.9.10: kontrastreicher Theme-Toggle über semantische Tokens */
.theme-toggle.icon-only.theme-toggle-moon{background:var(--theme-toggle-moon-bg)!important;color:var(--theme-toggle-moon-fg)!important;border-color:color-mix(in srgb,var(--theme-toggle-moon-fg) 28%,var(--theme-toggle-moon-bg))!important}
.theme-toggle.icon-only.theme-toggle-sun{background:var(--theme-toggle-sun-bg)!important;color:var(--theme-toggle-sun-fg)!important;border-color:color-mix(in srgb,var(--theme-toggle-sun-fg) 28%,var(--theme-toggle-sun-bg))!important}



/* v0.9.9.11: Album Viewer mit Filmstreifen, Vollbild und Favoriten */
.compact-album-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem}
.album-filter{grid-template-columns:minmax(180px,1fr) minmax(140px,1fr) minmax(120px,180px) minmax(120px,180px) minmax(120px,180px) auto}
.album-shell{display:grid;gap:.8rem}
.album-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:.65rem;box-shadow:var(--shadow)}
.album-toolbar .button{padding:.48rem .68rem;font-size:.9rem}
.album-favorite-form{margin:0;display:inline-flex}.album-fav-button.is-favorite{background:var(--warn)!important;color:var(--text)!important;border-color:color-mix(in srgb,var(--warn) 55%,var(--line))!important}
.album-viewer-pro{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;position:relative}
.album-viewer-pro.show-side-info{grid-template-columns:minmax(0,1fr) minmax(250px,340px)}
.album-stage-pro{position:relative;min-height:62vh;background:var(--image-bg);border:1px solid var(--line);border-radius:1.1rem;display:grid;place-items:center;overflow:hidden;box-shadow:var(--shadow);outline:none}
.album-media-wrap{width:100%;height:100%;min-height:62vh;display:grid;place-items:center;padding:1rem}.album-main-image{display:block;max-width:100%;max-height:78vh;object-fit:contain;border-radius:.8rem}.album-nonimage{display:grid;gap:1rem;place-items:center;color:var(--muted);padding:2rem}.album-nonimage img{max-width:180px;max-height:140px}
.album-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:2.5rem;height:3.4rem;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel) 78%,transparent);color:var(--text);font-size:2rem;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}
.album-nav:hover{border-color:var(--accent)}.album-nav-prev{left:.75rem}.album-nav-next{right:.75rem}
.album-overlay{position:absolute;left:1rem;right:1rem;bottom:1rem;display:none;align-items:center;justify-content:space-between;gap:.8rem;padding:.55rem .75rem;border-radius:.9rem;background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(8px);color:var(--text)}
.album-viewer-pro.show-overlay .album-overlay{display:flex}.album-overlay span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.album-filmstrip{display:flex;gap:.5rem;overflow-x:auto;overflow-y:hidden;padding:.65rem;border:1px solid var(--line);border-radius:1rem;background:var(--panel);box-shadow:var(--shadow);scrollbar-width:thin}.album-filmstrip.is-hidden{display:none}.film-thumb{position:relative;flex:0 0 auto;width:74px;height:56px;padding:0;border:2px solid transparent;border-radius:.7rem;background:var(--panel-soft);overflow:hidden;cursor:pointer}.film-thumb img{width:100%;height:100%;object-fit:cover;display:block;background:var(--image-bg)}.film-thumb span{position:absolute;right:.18rem;bottom:.12rem;font-size:.68rem;padding:.05rem .28rem;border-radius:999px;background:color-mix(in srgb,var(--panel) 86%,transparent);color:var(--text)}.film-thumb.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.film-thumb.is-favorite::before{content:'★';position:absolute;left:.18rem;top:.08rem;z-index:2;color:var(--warn);text-shadow:0 1px 2px color-mix(in srgb,var(--text) 35%,transparent)}
.album-side-info{display:none;background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1rem;box-shadow:var(--shadow);overflow-wrap:anywhere}.show-side-info .album-side-info{display:block}.album-side-info h2{margin:.1rem 0 .4rem;font-size:1.05rem}.album-side-info p{color:var(--muted)}.album-help{margin:.2rem .2rem 1rem}
.album-viewer-pro:fullscreen{background:var(--bg);padding:1rem;grid-template-columns:minmax(0,1fr)}.album-viewer-pro:fullscreen .album-stage-pro{min-height:calc(100vh - 8rem)}.album-viewer-pro:fullscreen .album-media-wrap{min-height:calc(100vh - 8rem)}.album-viewer-pro:fullscreen .album-main-image{max-height:calc(100vh - 9rem)}.album-viewer-pro:fullscreen .album-side-info{display:none}
@media(max-width:900px){.album-filter{grid-template-columns:1fr 1fr}.album-viewer-pro.show-side-info{grid-template-columns:1fr}.album-side-info{display:none}.show-side-info .album-side-info{display:block}.album-stage-pro,.album-media-wrap{min-height:55vh}.album-nav{width:2.2rem;height:3rem}}
@media(max-width:560px){.album-filter{grid-template-columns:1fr}.album-toolbar .button,.album-toolbar button{flex:1 1 130px}.film-thumb{width:64px;height:48px}.album-overlay{left:.5rem;right:.5rem;bottom:.5rem;font-size:.82rem}.album-main-image{max-height:68vh}}

/* v0.9.9.12 Album Viewer: immersive full-browser layout
   Ziel: Album ist Bildbetrachter, nicht Detail-/Admin-Ansicht.
   Bild und Filmstreifen stehen im Vordergrund; Details werden nur als Overlay eingeblendet. */
.album-immersive-page .top{
  z-index:40;
}
.album-immersive-page .album-main{
  max-width:none;
  margin:0;
  padding:0;
}
.album-immersive-page .app-footer{
  display:none;
}
.album-immersive-page .album-filter-panel{
  display:none;
}
.album-immersive-page .album-shell{
  position:relative;
  height:calc(100svh - 64px);
  min-height:520px;
  display:block;
  background:var(--bg);
  overflow:hidden;
}
.album-immersive-page .album-toolbar{
  position:absolute;
  top:.75rem;
  left:.75rem;
  right:.75rem;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.55rem;
  border:1px solid var(--line);
  border-radius:1rem;
  background:color-mix(in srgb,var(--panel) 86%,transparent);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}
.album-immersive-page .album-toolbar .button,
.album-immersive-page .album-toolbar button{
  padding:.44rem .62rem;
  font-size:.86rem;
}
.album-immersive-page .album-viewer-pro{
  position:relative;
  height:100%;
  display:flex;
  flex-direction:column;
  gap:.65rem;
  padding:4.7rem .75rem .75rem;
}
.album-immersive-page .album-viewer-pro.filmstrip-top{
  flex-direction:column;
}
.album-immersive-page .album-stage-pro{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  border-radius:1.1rem;
  background:var(--image-bg);
}
.album-immersive-page .album-media-wrap{
  min-height:0;
  height:100%;
  padding:.75rem;
}
.album-immersive-page .album-main-image{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
.album-immersive-page .album-filmstrip{
  flex:0 0 auto;
  min-height:82px;
  max-height:102px;
  border-radius:1rem;
  background:color-mix(in srgb,var(--panel) 92%,transparent);
  backdrop-filter:blur(8px);
}
.album-immersive-page .film-thumb{
  width:92px;
  height:66px;
}
.album-immersive-page .album-side-info{
  position:absolute;
  right:1.25rem;
  top:5.15rem;
  bottom:6.9rem;
  width:min(390px,calc(100vw - 2.5rem));
  z-index:35;
  display:none;
  overflow:auto;
  background:color-mix(in srgb,var(--panel) 92%,transparent);
  border:1px solid var(--line);
  border-radius:1rem;
  padding:1rem;
  box-shadow:var(--shadow);
  backdrop-filter:blur(12px);
}
.album-immersive-page .album-viewer-pro.show-side-info .album-side-info{
  display:block;
}
.album-immersive-page .album-info-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}
.album-immersive-page .album-info-head h2{
  margin:.05rem 0 .45rem;
  min-width:0;
  overflow-wrap:anywhere;
}
.album-immersive-page .album-overlay{
  left:50%;
  right:auto;
  transform:translateX(-50%);
  width:min(720px,calc(100% - 2rem));
  justify-content:center;
  text-align:center;
  background:color-mix(in srgb,var(--panel) 82%,transparent);
}
.album-immersive-page .album-overlay span{
  max-width:70%;
}
.album-immersive-page .album-help{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:.35rem;
  z-index:25;
  margin:0;
  text-align:center;
  pointer-events:none;
  opacity:.72;
}
.album-immersive-page .album-viewer-pro:fullscreen{
  height:100svh;
  padding:4.6rem .75rem .75rem;
  background:var(--bg);
}
.album-immersive-page .album-viewer-pro:fullscreen .album-stage-pro{
  min-height:0;
  height:auto;
}
.album-immersive-page .album-viewer-pro:fullscreen .album-media-wrap{
  min-height:0;
}
.album-immersive-page .album-viewer-pro:fullscreen .album-main-image{
  max-height:100%;
}
.album-immersive-page .album-viewer-pro:fullscreen .album-side-info{
  bottom:7rem;
}
@media(max-width:900px){
  .album-immersive-page .album-shell{height:calc(100svh - 58px);min-height:480px}
  .album-immersive-page .album-toolbar{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
  .album-immersive-page .album-toolbar .button,
  .album-immersive-page .album-toolbar button{white-space:nowrap;flex:0 0 auto}
  .album-immersive-page .album-viewer-pro{padding-top:4.55rem}
  .album-immersive-page .album-filmstrip{min-height:70px;max-height:86px}
  .album-immersive-page .film-thumb{width:76px;height:56px}
  .album-immersive-page .album-side-info{top:5rem;bottom:6.1rem;right:.75rem;width:calc(100vw - 1.5rem)}
}
@media(max-width:560px){
  .album-immersive-page .album-shell{height:calc(100svh - 54px);min-height:430px}
  .album-immersive-page .album-viewer-pro{padding:4.35rem .45rem .45rem;gap:.45rem}
  .album-immersive-page .album-toolbar{top:.45rem;left:.45rem;right:.45rem;padding:.45rem}
  .album-immersive-page .album-filmstrip{min-height:62px;max-height:74px;padding:.45rem;gap:.4rem}
  .album-immersive-page .film-thumb{width:64px;height:48px}
  .album-immersive-page .album-nav{width:2rem;height:2.8rem;font-size:1.6rem}
  .album-immersive-page .album-nav-prev{left:.35rem}.album-immersive-page .album-nav-next{right:.35rem}
  .album-immersive-page .album-overlay{bottom:.55rem;width:calc(100% - 1rem);font-size:.82rem}
  .album-immersive-page .album-side-info{top:4.85rem;bottom:5.25rem;right:.45rem;width:calc(100vw - .9rem)}
  .album-immersive-page .album-help{display:none}
}



/* Album Window Viewer v0.9.9.13
   Reiner Bildbetrachter: keine normale App-Navigation, Bild + Filmstreifen im Fokus. */
.album-window-page {
    margin: 0;
    min-height: 100vh;
    background: #05070b;
    color: #f7f7f7;
    overflow: hidden;
}
.album-window {
    width: 100vw;
    height: 100vh;
    display: grid;
    grid-template-rows: 1fr auto auto;
    gap: 0;
    background: #05070b;
}
.album-window-stage {
    position: relative;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #05070b;
}
.album-window-media {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.album-window-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.album-window-image.is-preview {
    filter: blur(2px);
    opacity: .82;
    transform: scale(1.005);
}
.album-window-image.is-preview.preview-only {
    filter: none;
    opacity: 1;
}
.album-window-image.original-missing {
    filter: none;
    opacity: .72;
}
.album-missing-status {
    position: absolute;
    left: 50%;
    bottom: clamp(18px,4vh,42px);
    z-index: 3;
    width: min(560px,calc(100% - 130px));
    transform: translateX(-50%);
    display: grid;
    gap: 3px;
    padding: 12px 16px;
    border: 1px solid rgba(255,255,255,.22);
    border-left: 4px solid #e35d5d;
    border-radius: 12px;
    background: rgba(13,17,24,.88);
    box-shadow: 0 12px 36px rgba(0,0,0,.38);
    color: #fff;
    text-align: left;
    backdrop-filter: blur(10px);
}
.album-missing-status strong { color:#ffb4b4; }
.album-missing-status span { overflow-wrap:anywhere; }
.album-missing-status small { color:rgba(255,255,255,.7); }
.album-window-nonimage {
    max-width: 560px;
    padding: 2rem;
    text-align: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    background: rgba(255,255,255,.06);
}
.album-window-nonimage img {
    max-width: 160px;
    max-height: 160px;
    display: block;
    margin: 0 auto 1rem;
}
.album-window-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 52px;
    height: 72px;
    border: 0;
    border-radius: 999px;
    background: rgba(0,0,0,.42);
    color: #fff;
    font-size: 42px;
    cursor: pointer;
    z-index: 10;
}
.album-window-nav:hover {
    background: rgba(0,0,0,.68);
}
.album-window-nav.prev { left: 18px; }
.album-window-nav.next { right: 18px; }

.album-window-topbar {
    position: absolute;
    top: 14px;
    right: 14px;
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 8px;
    border-radius: 999px;
    background: rgba(0,0,0,.28);
    backdrop-filter: blur(10px);
    z-index: 20;
    opacity: .24;
    transition: opacity .18s ease;
}
.album-window-stage:hover .album-window-topbar,
.album-window-topbar:focus-within {
    opacity: 1;
}
.album-icon-button {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.25);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.42);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    cursor: pointer;
}
.album-icon-button:hover {
    background: rgba(255,255,255,.18);
}
.album-window-favorite {
    display: inline;
    margin: 0;
}

.album-window-overlay {
    position: absolute;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    max-width: min(820px, calc(100vw - 48px));
    padding: 10px 18px;
    border-radius: 999px;
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: 1rem;
    z-index: 15;
    backdrop-filter: blur(10px);
}
.album-window-overlay span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.album-window-info {
    position: absolute;
    right: 22px;
    bottom: 96px;
    width: min(360px, calc(100vw - 44px));
    max-height: calc(100vh - 180px);
    overflow: auto;
    padding: 18px;
    border-radius: 18px;
    background: rgba(5,7,11,.78);
    border: 1px solid rgba(255,255,255,.16);
    color: #fff;
    z-index: 18;
    backdrop-filter: blur(12px);
}
.album-window-info h2 {
    margin: 0 0 12px;
    font-size: 1rem;
    word-break: break-word;
}
.album-window-info dl {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 8px 12px;
    margin: 0;
}
.album-window-info dt {
    opacity: .65;
}
.album-window-info dd {
    margin: 0;
    word-break: break-word;
}

.album-window-filmstrip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 12px 16px;
    background: rgba(0,0,0,.72);
    border-top: 1px solid rgba(255,255,255,.12);
}
.album-strip-range,
.album-strip-jump {
    flex: 0 0 auto;
    width: 72px;
    min-height: 68px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,.2);
    background: rgba(255,255,255,.08);
    color: #fff;
    display: grid;
    place-content: center;
    gap: 2px;
    text-align: center;
}
.album-strip-range small,
.album-strip-jump span {
    font-size: 11px;
    color: rgba(255,255,255,.68);
}
.album-strip-jump {
    cursor: pointer;
    font-size: 24px;
}
.album-strip-jump:hover,
.album-strip-jump:focus-visible {
    border-color: #7da2ff;
    background: rgba(125,162,255,.18);
}
.album-strip-thumb {
    flex: 0 0 auto;
    position: relative;
    width: 96px;
    height: 68px;
    border-radius: 10px;
    border: 2px solid transparent;
    background: rgba(255,255,255,.08);
    padding: 0;
    overflow: hidden;
    cursor: pointer;
}
.album-strip-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.album-strip-thumb.active {
    border-color: #7da2ff;
    box-shadow: 0 0 0 3px rgba(125,162,255,.28);
}
.album-strip-thumb.fav::after {
    content: '★';
    position: absolute;
    top: 4px;
    right: 6px;
    color: #ffd35a;
    text-shadow: 0 1px 3px rgba(0,0,0,.8);
}
.album-strip-thumb.is-missing { border-color:#b94c4c; }
.danger-text { color:var(--danger); }
.storage-layout-action {
    margin-bottom:1rem;
    align-items:flex-start;
}
.user-storage-info {
    display:grid;
    gap:.25rem;
    padding:.75rem;
    border:1px solid var(--line);
    border-radius:10px;
    background:var(--panel-soft);
    overflow-wrap:anywhere;
}
.user-storage-info code,
.missing-asset-row code {
    overflow-wrap:anywhere;
}
.import-blocked-reason {
    margin:.75rem 0 0;
}
.missing-assets-audit {
    display:grid;
    gap:.75rem;
}
.missing-asset-row {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:1rem;
    align-items:center;
    padding:.85rem;
    border:1px solid var(--line);
    border-left:4px solid var(--danger);
    border-radius:10px;
    background:var(--panel-soft);
}
.missing-asset-main {
    min-width:0;
    display:grid;
    gap:.25rem;
}
.missing-asset-actions {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:.5rem;
}
.missing-asset-actions form { margin:0; }
@media (max-width:760px) {
    .missing-asset-row { grid-template-columns:1fr; }
    .missing-asset-actions { justify-content:flex-start; }
}
.album-strip-thumb span {
    position: absolute;
    right: 4px;
    bottom: 4px;
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(0,0,0,.62);
    color: #fff;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}
.album-window-help {
    padding: 6px 12px;
    color: rgba(255,255,255,.55);
    font-size: .82rem;
    text-align: center;
    background: rgba(0,0,0,.9);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.album-empty-window {
    min-height: 100vh;
    display: grid;
    place-content: center;
    text-align: center;
    color: #fff;
    background: #05070b;
}
@media (max-width: 760px) {
    .album-window-nav {
        width: 44px;
        height: 58px;
        font-size: 34px;
    }
    .album-window-nav.prev { left: 6px; }
    .album-window-nav.next { right: 6px; }
    .album-window-filmstrip {
        gap: 7px;
        padding: 8px 10px;
    }
    .album-strip-thumb {
        width: 76px;
        height: 54px;
    }
    .album-window-help {
        display: none;
    }
    .album-window-topbar {
        top: 8px;
        right: 8px;
        max-width: calc(100vw - 16px);
        overflow-x: auto;
        border-radius: 16px;
    }
    .album-icon-button {
        width: 36px;
        height: 36px;
    }
    .album-missing-status {
        bottom: 12px;
        width: calc(100% - 92px);
        padding: 9px 11px;
        font-size: .86rem;
    }
    .album-missing-status small { display:none; }
}


/* Album Viewer state fixes v0.9.9.14 */
.album-window-filmstrip[hidden],
.album-window-filmstrip.is-hidden,
.album-window-overlay[hidden],
.album-window-overlay.is-hidden,
.album-window-info[hidden] {
    display: none !important;
}

.album-icon-button {
    position: relative;
}

.album-icon-button.is-active {
    background: rgba(125, 162, 255, .30);
    border-color: rgba(170, 196, 255, .95);
    box-shadow: 0 0 0 2px rgba(125, 162, 255, .22);
}

.album-icon-button.is-active::after {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: currentColor;
    position: absolute;
    right: 5px;
    bottom: 5px;
    opacity: .9;
}

.album-window-topbar .album-icon-button[aria-pressed="false"] {
    opacity: .72;
}

.album-window-topbar .album-icon-button[aria-pressed="true"] {
    opacity: 1;
}

/* Album Viewer v0.9.9.15: ausblendbare UI + Merklisten */
.album-window-help[hidden],
.album-window-help.is-hidden,
.album-window-topbar[hidden],
.album-window-collections[hidden] {
    display: none !important;
}
.album-window-help {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: center;
}
.album-window-help .album-copyright {
    opacity: .9;
    white-space: nowrap;
}
.album-window-help .album-copyright a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.album-controls-hotspot {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 30;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(0,0,0,.48);
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    cursor: pointer;
    backdrop-filter: blur(10px);
}
.album-window-collections {
    position: absolute;
    right: 22px;
    top: 78px;
    width: min(380px, calc(100vw - 44px));
    max-height: calc(100vh - 180px);
    overflow: auto;
    padding: 18px;
    border-radius: 18px;
    background: rgba(5,7,11,.82);
    border: 1px solid rgba(255,255,255,.16);
    color: #fff;
    z-index: 19;
    backdrop-filter: blur(12px);
}
.album-window-collections h2,
.album-window-collections h3 {
    margin: 0 0 .75rem;
}
.album-window-collections h3 {
    margin-top: 1rem;
    font-size: 1rem;
}
.album-collection-list {
    display: grid;
    gap: .5rem;
}
.album-collection-list a {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem .75rem;
    border-radius: 12px;
    color: #fff;
    text-decoration: none;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}
.album-collection-list a:hover {
    background: rgba(255,255,255,.16);
}
.album-collection-list small {
    opacity: .72;
}
@media (max-width: 760px) {
    .album-window-help {
        flex-direction: column;
        gap: .15rem;
        font-size: .72rem;
    }
}


/* v0.9.9.16: Album viewer polish */
.album-window-nav,
.album-window-nav:hover,
.album-window-nav:focus {
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
}
.album-window-nav:hover,
.album-window-nav:focus {
    box-shadow: 0 0 0 3px rgba(125, 162, 255, .22);
}
.album-controls-hotspot {
    width: 40px !important;
    height: 40px !important;
    top: 14px !important;
    right: 14px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    line-height: 1;
    font-size: 18px !important;
}
@media (max-width: 760px) {
    .album-controls-hotspot {
        width: 36px !important;
        height: 36px !important;
        top: 8px !important;
        right: 8px !important;
        font-size: 17px !important;
    }
}


/* Collections v0.9.9.17 */
.collection-card h2 {
    margin-bottom: .35rem;
}
.collection-edit {
    margin-top: 1rem;
    padding-top: .75rem;
    border-top: 1px solid var(--border, rgba(128,128,128,.25));
}
.collection-edit summary {
    cursor: pointer;
    font-weight: 700;
    margin-bottom: .75rem;
}
.collection-edit textarea {
    min-height: 90px;
}

/* Collections v0.9.9.18 */
.collection-cover{height:130px;border-radius:14px;overflow:hidden;background:var(--surface-muted,rgba(128,128,128,.12));display:grid;place-items:center;margin-bottom:.9rem;border:1px solid var(--border,rgba(128,128,128,.22));}
.collection-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.collection-cover span{opacity:.7;font-weight:700;}


/* v0.9.9.21: Album toolbar and navigation alignment
   Goal: one clean horizontal icon row, no overlap with restore button, round nav arrows. */
.album-window-topbar {
    top: 14px !important;
    right: 14px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    max-width: calc(100vw - 28px) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    padding: 8px !important;
    border-radius: 999px !important;
}
.album-window-topbar[hidden] {
    display: none !important;
}
.album-window-topbar .album-icon-button,
.album-window-topbar .album-window-favorite,
.album-window-topbar form {
    flex: 0 0 auto !important;
}
.album-window-topbar .album-window-favorite {
    display: inline-flex !important;
    margin: 0 !important;
}
.album-icon-button,
.album-controls-hotspot {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    line-height: 1 !important;
    padding: 0 !important;
}
.album-controls-hotspot {
    top: 14px !important;
    right: 14px !important;
    z-index: 35 !important;
}
.album-controls-hotspot[hidden] {
    display: none !important;
}
.album-window-nav {
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    min-height: 58px !important;
    max-width: 58px !important;
    max-height: 58px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    box-sizing: border-box !important;
}
.album-window-nav:hover,
.album-window-nav:focus {
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
}
.album-window-nav.prev {
    left: 18px !important;
}
.album-window-nav.next {
    right: 18px !important;
}
@media (max-width: 760px) {
    .album-window-topbar {
        top: 8px !important;
        right: 8px !important;
        max-width: calc(100vw - 16px) !important;
        gap: 6px !important;
        padding: 6px !important;
        border-radius: 18px !important;
    }
    .album-icon-button,
    .album-controls-hotspot {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        min-height: 38px !important;
        max-width: 38px !important;
        max-height: 38px !important;
    }
    .album-controls-hotspot {
        top: 8px !important;
        right: 8px !important;
    }
    .album-window-nav {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
    }
    .album-window-nav.prev {
        left: 8px !important;
    }
    .album-window-nav.next {
        right: 8px !important;
    }
}


/* v0.9.9.22: Card Standard + Collection Cards */
.cards-grid,
.collection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.35rem;
    align-items: start;
}
.card.collection-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    border-radius: 18px;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.card.collection-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(0,0,0,.12);
}
.collection-cover {
    height: 176px;
    margin: 0;
    border-radius: 0;
    border: 0;
    border-bottom: 1px solid var(--border, rgba(128,128,128,.22));
    background: var(--surface-muted, rgba(128,128,128,.12));
}
.collection-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.collection-cover span {
    opacity: .72;
    font-weight: 800;
}
.collection-card-body {
    padding: 1.05rem 1.05rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    flex: 1 1 auto;
}
.collection-card h2 {
    margin: 0;
    font-size: 1.22rem;
    line-height: 1.18;
    word-break: break-word;
}
.collection-card .muted {
    margin: 0;
    line-height: 1.35;
}
.collection-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
}
.collection-meta .badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .28rem .55rem;
    border-radius: 999px;
    font-size: .86rem;
    font-weight: 700;
    border: 1px solid var(--border, rgba(128,128,128,.22));
    background: var(--surface-muted, rgba(128,128,128,.10));
}
.collection-card .actions {
    margin-top: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
}
.collection-card .actions .button {
    width: 100%;
    justify-content: center;
    min-height: 44px;
}
.collection-edit {
    margin-top: .25rem;
    padding-top: .85rem;
    border-top: 1px solid var(--border, rgba(128,128,128,.22));
}
.collection-edit summary {
    cursor: pointer;
    font-weight: 800;
    padding: .35rem 0;
}
.collection-edit .form-grid {
    margin-top: .75rem;
}
.collection-edit textarea {
    min-height: 90px;
}
@media (max-width: 760px) {
    .cards-grid,
    .collection-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .collection-cover {
        height: 190px;
    }
}


/* v0.9.9.23: Platform UI foundations
   Ziel: wiederverwendbare UI-Bausteine für Media Library, später Tracknote/DeerCore. */
.card-edit {
    margin-top: .25rem;
    padding-top: .95rem;
    border-top: 1px solid var(--border, rgba(128,128,128,.22));
}
.card-edit summary {
    cursor: pointer;
    font-weight: 800;
    padding: .35rem 0 .55rem;
}
.card-edit-body {
    display: grid;
    gap: .85rem;
    margin-top: .65rem;
}
.card-edit-footer {
    display: grid;
    gap: .65rem;
    margin-top: .95rem;
}
.card-edit-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
}
.card-edit-actions .button,
.card-edit-actions button {
    width: 100%;
    justify-content: center;
    min-height: 44px;
}
.button-danger,
button.danger,
.danger.button {
    background: var(--danger-bg, #b42318);
    color: var(--danger-fg, #fff);
    border-color: var(--danger-border, transparent);
}
.button-danger:hover,
button.danger:hover,
.danger.button:hover {
    filter: brightness(.96);
}
.danger-zone {
    margin-top: .35rem;
    padding-top: .75rem;
    border-top: 1px dashed var(--danger-border, rgba(180,35,24,.35));
}
.ui-chip,
.badge {
    line-height: 1.1;
}


/* v0.9.9.29: final handoff polish */
.admin-version-note {
    margin: 1rem auto;
    max-width: 1180px;
    padding: .75rem 1rem;
    border: 1px solid var(--border, rgba(128,128,128,.22));
    border-radius: 12px;
    background: var(--surface-muted, rgba(128,128,128,.08));
    color: var(--muted, #667085);
    font-weight: 700;
}
.card-edit-actions + .danger-zone,
.danger-zone {
    margin-top: .65rem;
}
.danger-zone button {
    width: 100%;
    min-height: 44px;
}


/* v0.9.9.29: Album control toggle is always reachable.
   Hidden toolbar: floating ⋯ hotspot. Visible toolbar: ⋯ button at the right edge. */
.album-window-topbar .album-controls-toggle {
    order: 999 !important;
}
.album-controls-hotspot {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.album-controls-hotspot[hidden] {
    display: none !important;
}


/* v0.9.9.29: RC polish for system panel, theme colors and overview pagination */
.system-overview-grid {
    display: grid;
    grid-template-columns: minmax(280px, 2fr) minmax(240px, 1fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1rem;
}
.system-overview-grid .system-check,
.system-overview-grid .system-version-card {
    margin: 0;
    height: 100%;
}
.theme-admin-grid {
    grid-column: 1 / -1;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.theme-admin-grid .theme-admin-note {
    grid-column: 1 / -1;
}
.theme-admin-grid label {
    min-width: 0;
}

.album-window.is-presentation .album-window-overlay,
.album-window.is-presentation .album-window-info,
.album-window.is-presentation .album-window-collections,
.album-window.is-presentation .album-window-filmstrip,
.album-window.is-presentation .album-window-help,
.album-window.is-presentation .album-window-nav,
.album-window.is-presentation .album-controls-hotspot {
    display: none !important;
}
.album-window.is-presentation {
    cursor: none;
}
@media(max-width:900px){
    .system-overview-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .theme-admin-grid{grid-template-columns:1fr 1fr}
}

.media-pager {
    flex-wrap: wrap;
}
.media-page-jump {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    flex-wrap: wrap;
    border: 1px solid var(--line);
    background: var(--panel);
    border-radius: .75rem;
    padding: .45rem .6rem;
}
.media-page-jump input[type=range] {
    width: clamp(140px, 28vw, 320px);
    padding: 0;
}
.media-page-jump label {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin: 0;
    color: var(--muted);
    white-space: nowrap;
}
.media-page-jump input[type=number] {
    width: 5rem;
    padding: .38rem .45rem;
}
.media-page-jump button {
    padding: .45rem .7rem;
}
@media(max-width:620px){
    .media-page-jump{width:100%}
    .media-page-jump input[type=range]{width:100%}
}


/* Album Quick Edit v0.9.9.33 */
.album-window-editor {
    position: absolute;
    top: 72px;
    right: 22px;
    width: min(390px, calc(100vw - 44px));
    max-height: calc(100vh - 170px);
    overflow: auto;
    padding: 18px;
    border-radius: 18px;
    background: rgba(5,7,11,.90);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    z-index: 19;
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 46px rgba(0,0,0,.38);
}
.album-window-editor[hidden] { display: none !important; }
.album-window-editor form { display: grid; gap: 14px; }
.album-editor-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.album-editor-head h2 { margin:0; font-size:1.05rem; }
.album-editor-close { width:34px; height:34px; border-radius:999px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; cursor:pointer; font-size:1.25rem; }
.album-window-editor label { display:grid; gap:6px; font-weight:700; }
.album-window-editor input,
.album-window-editor textarea { width:100%; box-sizing:border-box; border:1px solid rgba(255,255,255,.22); border-radius:10px; background:rgba(255,255,255,.08); color:#fff; padding:10px 12px; font:inherit; }
.album-window-editor textarea { resize:vertical; min-height:120px; }
.album-window-editor input:focus,
.album-window-editor textarea:focus { outline:2px solid rgba(125,162,255,.8); outline-offset:1px; }
.album-window-editor small { font-weight:400; opacity:.68; }
.album-window-editor .album-personal-suggest span { display:flex; align-items:center; gap:9px; }
.album-window-editor .album-personal-suggest input[type="checkbox"] { width:auto; flex:0 0 auto; }
.album-window-editor.tag-only .owner-title-field,
.album-window-editor.tag-only .owner-notes-field,
.album-window-editor.tag-only #personalNoteField { display:none !important; }

/* v0.9.12.11: begrenzte Live-Sicherheitsübersicht */
.security-monitor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.security-monitor-head h1{margin-top:0}
.security-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0 1.25rem}
.security-stat-grid .info-card{display:grid;gap:.3rem;align-content:start}
.security-stat-grid strong{font-size:1.55rem}
.security-stat-grid small,.security-table td small{display:block;color:var(--muted);margin-top:.2rem}
.security-monitor-section{margin-top:1.25rem}
.security-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:.8rem}
.security-table{width:100%;border-collapse:collapse;min-width:920px}
.security-table th,.security-table td{padding:.7rem .75rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.security-table th{position:sticky;top:0;background:var(--panel);font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.security-table tbody tr:last-child td{border-bottom:0}
.security-state,.auth-event{display:inline-flex;padding:.18rem .5rem;border-radius:999px;font-size:.74rem;font-weight:850;white-space:nowrap}
.security-state.is-online,.auth-login{background:color-mix(in srgb,var(--ok) 18%,var(--panel));color:var(--text);border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line))}
.security-state.is-idle,.auth-logout{background:var(--panel-soft);color:var(--muted);border:1px solid var(--line)}
.auth-login_failed{background:color-mix(in srgb,var(--danger) 16%,var(--panel));color:var(--text);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line))}
@media(max-width:980px){.security-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.security-stat-grid{grid-template-columns:1fr}.security-monitor-head .button{width:100%}}
.album-editor-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.album-editor-actions #editStatus { font-size:.9rem; color:rgba(255,255,255,.72); }
@media (max-width:760px) {
    .album-window-editor { top:58px; right:8px; width:calc(100vw - 16px); max-height:calc(100vh - 145px); padding:14px; }
}


/* Album help cycle v0.9.9.34 */
.album-window-help[hidden],
.album-window-help.is-hidden,
.album-help-overlay[hidden] { display: none !important; }
.album-help-overlay {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(2, 4, 8, .82);
    backdrop-filter: blur(12px);
}
.album-help-dialog {
    width: min(920px, 100%);
    max-height: min(820px, calc(100vh - 48px));
    overflow: auto;
    padding: 22px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 22px;
    background: rgba(10, 14, 22, .96);
    color: #fff;
    box-shadow: 0 24px 80px rgba(0,0,0,.55);
}
.album-help-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.album-help-head h2 { margin:0; font-size:1.35rem; }
.album-help-close { width:40px; height:40px; border-radius:999px; border:1px solid rgba(255,255,255,.24); background:rgba(255,255,255,.08); color:#fff; font-size:1.5rem; cursor:pointer; }
.album-help-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.album-help-grid section { padding:16px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.045); }
.album-help-grid h3 { margin:0 0 12px; font-size:1rem; }
.album-help-grid dl { display:grid; grid-template-columns:minmax(95px,auto) 1fr; gap:9px 14px; margin:0; }
.album-help-grid dt { font-weight:800; color:#dfe8ff; white-space:nowrap; }
.album-help-grid dd { margin:0; color:rgba(255,255,255,.72); }
.album-help-cycle { margin:18px 2px 0; color:rgba(255,255,255,.68); text-align:center; }
body.album-help-open { overflow:hidden; }
@media (max-width:760px) {
    .album-window-help:not([hidden]) { display:block; }
    .album-help-overlay { padding:10px; }
    .album-help-dialog { max-height:calc(100svh - 20px); padding:16px; border-radius:16px; }
    .album-help-grid { grid-template-columns:1fr; }
    .album-help-grid dl { grid-template-columns:minmax(82px,auto) 1fr; }
}


/* v0.9.9.35: skalierbare Filterzeile der Medienverwaltung */
.media-filter-line { align-items: end; }
.media-filter-line label:first-of-type { min-width: min(100%, 18rem); flex: 1 1 18rem; }
.media-filter-line select { width: 100%; }
@media (max-width: 700px) {
  .media-filter-line { display: grid; grid-template-columns: 1fr; }
  .media-filter-line label { min-width: 0; width: 100%; }
}


/* v0.9.9.36: Media-Library UI reference standard and mobile polish.
   Bewährte Regeln können später parametrisiert in Platform UI übernommen werden. */
:root{
  --ui-control-size:18px;
  --ui-touch-control-size:20px;
  --ui-card-gap:1rem;
}
input[type="checkbox"]{
  inline-size:var(--ui-control-size)!important;
  block-size:var(--ui-control-size)!important;
  min-inline-size:var(--ui-control-size)!important;
  min-block-size:var(--ui-control-size)!important;
  max-inline-size:var(--ui-control-size)!important;
  max-block-size:var(--ui-control-size)!important;
  aspect-ratio:1 / 1;
  box-sizing:border-box;
  flex:0 0 var(--ui-control-size);
  padding:0!important;
}
.compact-hero h1,.info-value,.media-main strong,.card strong{
  overflow-wrap:anywhere;
  word-break:break-word;
}
.asset-detail-layout{
  grid-template-columns:minmax(260px,360px) minmax(0,1fr);
}
.asset-mini-preview img{
  max-height:440px;
  aspect-ratio:auto;
}

/* Alle Viewer-Aktionen bleiben auf kleinen Geräten erreichbar; die Leiste bricht sauber um. */
@media(max-width:700px){
  input[type="checkbox"]{
    inline-size:var(--ui-touch-control-size)!important;
    block-size:var(--ui-touch-control-size)!important;
    min-inline-size:var(--ui-touch-control-size)!important;
    min-block-size:var(--ui-touch-control-size)!important;
    max-inline-size:var(--ui-touch-control-size)!important;
    max-block-size:var(--ui-touch-control-size)!important;
    flex-basis:var(--ui-touch-control-size);
  }
  .album-window-topbar{
    left:.45rem;
    right:.45rem;
    top:.45rem;
    max-width:calc(100vw - .9rem);
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6px;
    padding:6px;
    border-radius:18px;
    opacity:.94;
    box-sizing:border-box;
  }
  .album-window-topbar .album-icon-button{
    width:36px;
    height:36px;
    min-width:36px;
    min-height:36px;
    padding:0;
  }
  .album-window-stage{padding-top:92px;box-sizing:border-box}
  .album-window-info{
    inset:96px .55rem 5.2rem .55rem!important;
    width:auto!important;
    max-width:none!important;
    overflow:auto;
    border-radius:16px;
  }
  .asset-detail-layout{grid-template-columns:1fr}
  .asset-mini-preview{
    position:static;
    display:block;
    text-align:center;
    padding:10px;
  }
  .asset-mini-preview img{
    width:100%;
    height:auto;
    max-height:58vh;
    object-fit:contain;
  }
  .asset-mini-preview p{margin:.5rem 0 0}

}


/* v0.9.9.38: kompakte, skalierbare Ordnernavigation */
.media-folder-picker { flex: 1 1 20rem; min-width: min(100%, 20rem) !important; }
.media-folder-picker select { min-height: 2.65rem; font-weight: 650; }
@media (max-width: 640px) {
  .media-filter-line { gap: .5rem; }
  .media-filter-line label { font-size: .78rem; }
  .media-filter-line select { min-height: 2.45rem; padding: .48rem .58rem; }
  .media-folder-picker { order: -1; }
  .media-folder-picker select { font-size: .95rem; }
}


/* v0.9.9.39: echte kompakte Ordnernavigation in der Medienübersicht */
.media-search{grid-template-columns:minmax(210px,1.15fr) minmax(220px,1.35fr) minmax(140px,200px) minmax(130px,170px) minmax(130px,190px) minmax(95px,130px) auto;align-items:end}
.folder-select-label{display:grid;gap:.28rem;min-width:0;margin:0}
.folder-select-label>span{font-size:.78rem;font-weight:700;color:var(--muted)}
.folder-select{width:100%;min-width:0;font-weight:750;text-overflow:ellipsis}
@media(max-width:1100px){.media-search{grid-template-columns:1fr 1fr}.media-search>input[name=q]{grid-column:1/-1}}
@media(max-width:620px){.media-search{grid-template-columns:1fr}.media-search>*{grid-column:auto}.media-search button,.media-search .button{width:100%}.folder-select-label{position:sticky;top:64px;z-index:3;background:var(--panel);padding:.25rem 0}}



/* Documentation center v0.9.9.48 */
/* v0.9.9.49: einheitliche Header-Aktionen ohne Sonderfarben */
.header-help{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .65rem;border-radius:999px;text-decoration:none;font-weight:700;white-space:nowrap}
.header-help,.user-menu summary,.theme-toggle.icon-only{transition:background var(--ui-transition),border-color var(--ui-transition),box-shadow var(--ui-transition),transform var(--ui-transition)}
.header-help:hover,.user-menu summary:hover,.theme-toggle.icon-only:hover{background:color-mix(in srgb,var(--panel-soft) 94%,var(--text) 6%)!important;color:var(--text)!important;border-color:color-mix(in srgb,var(--line) 72%,var(--text) 28%)!important;box-shadow:0 2px 7px color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-1px)}
.header-help:active,.user-menu summary:active,.theme-toggle.icon-only:active{box-shadow:none;transform:translateY(0)}
.docs-layout{display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:1.25rem;align-items:start}.docs-sidebar{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.docs-sidebar h2{margin-top:0}.docs-sidebar h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1.1rem 0 .35rem}.docs-sidebar nav{display:grid;gap:.2rem}.docs-sidebar nav a{padding:.45rem .55rem;border-radius:.45rem;text-decoration:none}.docs-sidebar nav a.active,.docs-sidebar nav a:hover{background:var(--surface-2)}.docs-search{display:flex;gap:.4rem}.docs-search input{min-width:0;width:100%}.docs-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(1rem,3vw,2rem);min-height:60vh}.docs-content h1{margin-top:0}.docs-content h2{margin-top:1.7rem}.docs-content code{padding:.1rem .3rem;border-radius:.3rem;background:var(--surface-2)}.docs-content pre{overflow:auto;padding:1rem;border-radius:.6rem;background:var(--surface-2)}.docs-content pre code{padding:0;background:none}
@media(max-width:800px){.docs-layout{grid-template-columns:1fr}.docs-sidebar{position:static;max-height:none}.header-help span{display:none}}

/* v0.9.12.5: kompakte Ordner-/Albumauswahl und sichtbare Exklusivkennzeichnung */
.folder-scope-button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
.access-badges{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.15rem}
.access-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:.12rem .48rem;border-radius:999px;border:1px solid var(--line);font-size:.74rem;font-weight:850;line-height:1.25}
.access-exclusive{background:color-mix(in srgb,var(--warn) 18%,var(--panel));border-color:color-mix(in srgb,var(--warn) 48%,var(--line));color:var(--text)}

/* v0.9.12.6: Pilot-Hilfe, Rechtliches und persönliche Tag-Vorschläge */
.app-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;flex-wrap:wrap}
.app-footer nav{display:flex;gap:.45rem 1rem;flex-wrap:wrap}
.app-footer a{color:inherit;text-underline-offset:.2em}
.legal-page{width:min(860px,calc(100% - 2rem));margin:clamp(1rem,4vw,3rem) auto}
.legal-card{padding:clamp(1.15rem,4vw,2.4rem)}
.legal-card h1{margin-top:0}
.legal-card h2{margin-top:1.7rem;font-size:1.15rem}
.legal-card address{font-style:normal;line-height:1.65}
.contact-options{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.2rem 0}
.suggestion-list{display:flex;gap:.55rem;flex-wrap:wrap;margin:1rem 0}
.suggestion-chip{display:flex;align-items:center;gap:.45rem;padding:.45rem .65rem;border:1px solid var(--line);border-radius:.65rem;background:var(--panel-soft)}
.suggestion-chip small{color:var(--muted)}
.suggestion-chip.is-accepted{opacity:.72}
.personal-tag-badge{background:var(--personal-tag-bg)!important;color:var(--personal-tag-text)!important;border:1px solid var(--personal-tag-border)!important;box-shadow:inset .22rem 0 0 var(--personal-tag-border);text-decoration:none}
.personal-tag-review{grid-column:1/-1}
#ownerMetadataFields{display:grid;gap:.8rem}
#personalTagField small,#personalNoteField small,#editTags+small{display:block;color:var(--muted);margin-top:.3rem}

/* v0.9.12.8: persönliche Anmerkungen und klare Eigentümergrenze */
#personalNoteField textarea{resize:vertical;min-height:7rem}

/* v0.9.12.7: voröffentlicher UI-Schliff */
.login-page{
  min-height:100svh;
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 34rem),
    radial-gradient(circle at 88% 84%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 30rem),
    var(--bg);
}
.login-shell{width:100%;flex:1;display:grid;place-items:center;padding:clamp(1rem,5vw,3rem)}
.login-page .login-card{width:min(440px,100%);padding:clamp(1.3rem,5vw,2rem);border-top:4px solid var(--accent)}
.login-brand{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}
.login-brand h1{margin:.08rem 0 0;font-size:clamp(1.55rem,7vw,2.05rem);line-height:1.08;overflow-wrap:normal;word-break:normal}
.login-logo{width:4.7rem;height:4.7rem;object-fit:contain;flex:0 0 auto;border-radius:50%;filter:drop-shadow(0 9px 16px color-mix(in srgb,var(--accent) 22%,transparent))}
.login-kicker{margin:0;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase}
.login-mark{flex:0 0 auto;width:3.2rem;height:3.2rem;display:grid;grid-template-columns:1fr 1fr;gap:.28rem;padding:.58rem;border-radius:.95rem;background:var(--accent);box-shadow:0 9px 22px color-mix(in srgb,var(--accent) 25%,transparent)}
.login-mark i{display:block;border-radius:.18rem;background:var(--accent-text)}
.login-mark i:nth-child(2),.login-mark i:nth-child(3){opacity:.58}
.login-intro{margin:.3rem 0 1.1rem;color:var(--muted)}
.login-form{display:grid;gap:.75rem}
.login-form label{margin:0;gap:.4rem;color:var(--text);font-weight:750}
.login-form input{min-height:3rem;padding:.75rem .85rem;background:var(--login-input-bg);color:var(--login-input-text);border-color:var(--login-input-border);caret-color:var(--login-input-text)}
.login-form input:focus{border-color:var(--focus);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--focus) 20%,transparent);outline:0}
.login-form input:-webkit-autofill,.login-form input:-webkit-autofill:hover,.login-form input:-webkit-autofill:focus{-webkit-text-fill-color:var(--login-autofill-text);caret-color:var(--login-autofill-text);-webkit-box-shadow:0 0 0 1000px var(--login-autofill-bg) inset;transition:background-color 9999s ease-out 0s}
.login-form input:autofill{color:var(--login-autofill-text);background:var(--login-autofill-bg)}
.password-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:stretch}
.password-field .password-toggle{min-width:5.8rem;padding:.55rem .7rem;border:1px solid var(--login-input-border);background:var(--panel-soft);color:var(--text)}
.caps-lock-hint{display:block;color:var(--warn-text);font-weight:700}
.caps-lock-hint[hidden]{display:none}
.login-form button{width:100%;min-height:3rem;margin-top:.15rem;font-weight:850}
.login-help{margin:1.1rem 0 0;text-align:center;color:var(--muted);font-size:.8rem;line-height:1.45}
.maintenance-page{min-height:100svh;display:flex;flex-direction:column}
.maintenance-shell{width:min(1050px,100%);flex:1;display:grid;place-items:center;padding:clamp(1rem,5vw,3rem)}
.maintenance-card{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(280px,.8fr);overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:1.3rem;box-shadow:var(--shadow)}
.maintenance-herbert{width:100%;height:100%;min-height:28rem;object-fit:cover}
.maintenance-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.4rem,5vw,3rem)}
.maintenance-copy h1{margin:.15rem 0 .8rem;font-size:clamp(1.8rem,5vw,3rem);line-height:1.03}
.maintenance-copy p{line-height:1.55}
.maintenance-time{padding:.75rem;border-radius:.75rem;background:var(--subtle)}
.maintenance-admin{border-top:4px solid var(--warn)}
.maintenance-form{max-width:760px}
.diagnostic-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1rem 0}
.diagnostic-actions .hint{margin:0;flex:1 1 24rem}
.write-probe-results{margin-bottom:1rem}
.system-error-row{display:grid;gap:.2rem;padding:.65rem 0;border-bottom:1px solid var(--line)}
.system-error-row:last-of-type{border-bottom:0}
.system-error-row span,.system-error-row small{overflow-wrap:anywhere}

.media-view-controls{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex-wrap:wrap;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--line)}
.media-view-controls>span{margin-right:.2rem;color:var(--muted);font-size:.78rem;font-weight:800}
.view-mode-button{padding:.42rem .7rem;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:.82rem;font-weight:800}
.view-mode-button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}
.js #mediaGrid[data-view="images"] .card-caption-stacked,
.js #mediaGrid[data-view="images"] .tags,
.js #mediaGrid[data-view="images"] .card-actions,
.js #mediaGrid[data-view="tags"] .card-caption-stacked,
.js #mediaGrid[data-view="tags"] .card-actions{display:none}
.js #mediaGrid[data-view="images"]{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.js #mediaGrid[data-view="tags"]{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
#mediaGrid .tags{max-height:none;overflow:visible;align-content:flex-start}

.app-footer{
  width:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  text-align:center;
}
.app-footer .footer-copy{display:block;max-width:100%;overflow-wrap:anywhere}
.app-footer nav{display:flex;justify-content:center;align-items:center;gap:.4rem 1rem;flex-wrap:wrap}

@media(max-width:620px){
  .login-shell{align-items:center;padding:.85rem}
  .login-page .login-card{border-radius:.9rem;padding:1.2rem}
  .login-brand{align-items:flex-start;gap:.75rem}
  .login-logo{width:3.8rem;height:3.8rem}
  .login-mark{width:2.8rem;height:2.8rem;padding:.5rem}
  .login-brand h1{font-size:1.55rem;white-space:nowrap}
  .login-kicker{font-size:.68rem}
  .maintenance-card{grid-template-columns:1fr}
  .maintenance-herbert{min-height:0;max-height:45svh;aspect-ratio:4/3}
  .maintenance-copy{padding:1.25rem}
  .password-field{grid-template-columns:1fr}
  .media-view-controls{justify-content:stretch}
  .media-view-controls>span{flex-basis:100%;margin-bottom:.1rem}
  .view-mode-button{flex:1 1 0;min-width:0}
  .js #mediaGrid[data-view="images"]{grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:.55rem}
  .js #mediaGrid[data-view="tags"]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.65rem}
  .app-footer{padding:1rem .75rem}
  .app-footer nav{width:100%;gap:.35rem .8rem}
}

@media(max-width:520px){
  .app-brand-logo{width:2.2rem;height:2.2rem}
}

/* v0.9.12.9: persönliche Kontoverwaltung */
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.account-grid .panel{margin-bottom:0}
.account-grid h2{margin:.1rem 0 .35rem}
.account-form{display:grid;gap:.35rem;margin-top:1rem}
.account-form label small{font-weight:400;color:var(--muted)}
.account-form button{justify-self:start;margin-top:.45rem}
.account-identity{grid-column:1/-1}
.account-notice{margin:0 0 1rem}
@media(max-width:760px){
  .account-grid{grid-template-columns:1fr}
  .account-identity{grid-column:auto}
  .account-form button{width:100%}
}
