/* Welle 69: Bibliothek neu. Only theme variables (every theme sets the same
   tokens; "klassisch" falls back to the app.css variables). */
#files .library-subfilters[hidden],#files #libraryMoreDetails[hidden]{display:none}

/* Segment capsule: four buttons side by side */
html:root #files .ability-tabs[data-library-segments][data-library-segments]{display:flex;gap:4px;padding:4px;margin:8px 0 10px;border:1px solid var(--line);border-radius:var(--theme-pill,24px);background:var(--theme-glass,var(--surface))}
html:root #files .ability-tabs[data-library-segments][data-library-segments] button{flex:1 1 0;min-width:0;min-height:48px;padding:6px 4px;border-radius:calc(var(--theme-pill,24px) - 4px);font-size:12.5px;line-height:1.15;font-weight:600;color:var(--muted);white-space:normal;overflow-wrap:normal;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center}
html:root #files .ability-tabs[data-library-segments][data-library-segments] button[aria-pressed="true"]{background:var(--theme-accent-soft,var(--surface));color:var(--theme-accent-text,var(--accent));box-shadow:inset 0 0 0 1px var(--theme-accent-line,var(--line))}
#files [data-library-segments] .segment-count{margin-left:0;height:14px;font-size:9px}
.library-hint{margin:0 2px 10px;font-size:11.5px;line-height:1.45}

/* Filter row */
.library-filterbar{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}
.library-filter-row{display:flex;gap:6px;align-items:center;flex-wrap:nowrap;min-width:0}
.library-mount{display:contents}
.library-dropdown{position:relative;flex:0 1 auto;min-width:0}
.library-dropdown.hidden{display:none}
.library-dropdown-button{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:40px;padding:0 10px 0 12px;border:1px solid var(--line);border-radius:var(--theme-pill,20px);background:var(--theme-field,var(--surface));color:var(--text);font-size:13px;font-weight:600;white-space:nowrap}
.library-dropdown-open .library-dropdown-button,.library-dropdown-button:hover{border-color:var(--theme-accent-line,var(--accent))}
.library-dropdown-label{overflow:hidden;text-overflow:ellipsis;min-width:0}
.library-dropdown-chevron{width:7px;height:7px;flex-shrink:0;margin-top:-3px;border-right:1.6px solid var(--accent);border-bottom:1.6px solid var(--accent);transform:rotate(45deg);transition:transform .15s}
.library-dropdown-open .library-dropdown-chevron{transform:rotate(-135deg);margin-top:3px}
.library-dropdown-list{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:200px;max-height:320px;overflow:auto;margin:0;padding:6px;list-style:none;border:1px solid var(--line);border-radius:var(--theme-radius-sm,16px);background:var(--theme-glass-strong,var(--theme-dialog,var(--surface)));backdrop-filter:var(--theme-blur,none);-webkit-backdrop-filter:var(--theme-blur,none);box-shadow:0 18px 44px var(--theme-backdrop,var(--bg))}
.library-dropdown-list:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 2px var(--accent)}
.library-dropdown-option{display:flex;align-items:center;min-height:42px;padding:0 12px;border-radius:12px;font-size:14px;color:var(--text);cursor:pointer}
.library-dropdown-option[aria-selected="true"]{color:var(--theme-accent-text,var(--accent));font-weight:600}
.library-dropdown-option[aria-selected="true"]::after{content:'';margin-left:auto;width:5px;height:10px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg)}
.library-dropdown-option.library-dropdown-active,.library-dropdown-option:hover{background:var(--theme-accent-soft,var(--surface))}
.library-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--theme-pill,20px);background:transparent;color:var(--text);font-size:12.5px;font-weight:600;white-space:nowrap}
.library-chip[aria-pressed="true"],.library-chip-active{background:var(--theme-accent-soft,var(--surface));color:var(--theme-accent-text,var(--accent));border-color:var(--theme-accent-line,var(--line))}
.library-date-chip{margin-left:auto;flex-shrink:0;padding:0 12px}
.library-date-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.library-date-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);flex:1 1 120px;min-width:0}
.library-date-row input{min-height:40px;width:100%;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:var(--theme-field,var(--surface));color:var(--text);color-scheme:inherit}
#files .library-filterbar .ability-search{height:44px}

/* Folder path + chips */
.library-folderbar{display:flex;flex-direction:column;gap:6px;margin:0 0 6px}
.library-crumbs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;font-size:12px}
/* Claude 04.10.2026 (Etappe 66, A-083): Tippfläche ≥ 40 px */
.library-crumb{min-height:40px;padding:0 6px;border-radius:10px;color:var(--muted);font-size:12px}
.library-crumb[aria-current="true"]{color:var(--text);font-weight:600}
.library-crumb-sep{color:var(--muted)}
.library-folder-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.library-folder-chips::-webkit-scrollbar{display:none}
.library-folder-chip small{font-size:10px;color:var(--muted)}
.library-folder-icon{width:14px;height:11px;border:1.5px solid var(--accent);border-radius:2px 3px 3px 3px;position:relative}
.library-folder-icon::before{content:'';position:absolute;left:-1.5px;top:-4px;width:6px;height:3px;border:1.5px solid var(--accent);border-bottom:0;border-radius:2px 2px 0 0}
.library-chip-add{color:var(--accent);border-style:dashed}
.library-chip-danger,.library-danger{color:var(--theme-danger,var(--text))}

/* List head, selection */
.library-listhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 0}
.library-listhead p{margin:0}
.library-listtools{display:flex;gap:6px}
/* Claude 04.10.2026 (Etappe 66, A-083): Tippfläche ≥ 40 px */
.library-listtools .library-chip{min-height:40px;padding:0 12px}
.library-selectall{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 0;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-size:13px}
.library-selectall label{display:flex;align-items:center;gap:8px;min-height:32px}
.library-selectall input{width:18px;height:18px;accent-color:var(--accent)}

/* Tiles */
#files .library-tile{position:relative;padding:0;overflow:visible}
.library-selecting .library-tile-open{cursor:pointer}
.library-tile-open{display:flex;flex-direction:column;gap:8px;width:100%;padding:10px;text-align:left;color:inherit;border-radius:inherit}
.library-tile-selected{box-shadow:inset 0 0 0 2px var(--accent)}
.library-stamp{white-space:nowrap}
.library-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Claude 04.10.2026 (Etappe 66, A-083): Tippfläche ≥ 40 px */
.library-tile-menu{position:absolute;top:14px;right:14px;min-width:40px;min-height:40px;border-radius:50%;background:var(--theme-glass-strong,var(--surface));color:var(--text);font-size:18px;line-height:1;border:1px solid var(--line)}
.library-check{position:absolute;top:8px;left:8px;width:22px;height:22px;border-radius:50%;border:2px solid var(--text);background:var(--theme-glass-strong,var(--surface))}
.library-check-on{background:var(--accent);border-color:var(--accent)}
.library-check-on::after{content:'';position:absolute;left:6px;top:2px;width:5px;height:10px;border-right:2px solid var(--theme-accent-ink,var(--bg));border-bottom:2px solid var(--theme-accent-ink,var(--bg));transform:rotate(45deg)}
.library-type-icon{position:relative;width:30px;height:36px;border:1.6px solid var(--muted);border-radius:4px 10px 4px 4px}
.library-type-icon::after{content:'';position:absolute;left:6px;right:6px;top:12px;height:1.6px;background:var(--muted);box-shadow:0 6px 0 var(--muted),0 12px 0 var(--muted)}
.library-type-image,.library-type-document{border-color:var(--accent)}
.library-type-video::after,.library-type-audio::after{left:10px;top:11px;width:0;height:0;background:none;box-shadow:none;border-left:10px solid var(--accent);border-top:6px solid transparent;border-bottom:6px solid transparent}
.library-type-sheet::after{box-shadow:0 6px 0 var(--accent),0 12px 0 var(--accent);background:var(--accent)}
.library-type-text::after,.library-type-other::after{opacity:.8}
.library-empty{grid-column:1/-1;text-align:center;padding:24px 8px}
.library-menu{position:absolute;z-index:45;top:54px;right:10px;min-width:190px;padding:6px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--theme-radius-sm,16px);background:var(--theme-glass-strong,var(--theme-dialog,var(--surface)));backdrop-filter:var(--theme-blur,none);-webkit-backdrop-filter:var(--theme-blur,none);box-shadow:0 18px 44px var(--theme-backdrop,var(--bg))}
.library-menu-item{min-height:42px;padding:0 12px;border-radius:12px;text-align:left;font-size:14px;color:var(--text)}
.library-menu-item.library-danger{color:var(--theme-danger,var(--text))}
.library-menu-item:hover,.library-menu-item:focus-visible{background:var(--theme-accent-soft,var(--surface))}
.library-more{display:block;width:100%;min-height:46px;margin:6px 0 12px;border:1px solid var(--line);border-radius:var(--theme-pill,20px);color:var(--accent);font-weight:600;background:var(--surface)}

/* Conversations */
.library-chat-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.library-chat{position:relative;display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--theme-radius-sm,16px);background:var(--surface)}
.library-chat-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 52px 10px 10px;text-align:left;color:inherit;border-radius:inherit}
.library-chat-avatar{width:46px;height:46px;flex-shrink:0;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--theme-raised,var(--surface));color:var(--accent);font-weight:700;border:1px solid var(--line)}
.library-chat-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.library-chat-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.library-chat-body strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-chat-meta{font-size:11px}
.library-chat-archived .library-chat-avatar{opacity:.65}
.library-chat .library-tile-menu{top:50%;right:8px;transform:translateY(-50%)}
.library-chat .library-menu{top:calc(100% - 4px)}
.library-badge{align-self:flex-start;margin-top:3px;padding:1px 8px;border-radius:999px;font-size:10px;font-weight:600;background:var(--theme-accent-soft,var(--surface));color:var(--theme-accent-text,var(--accent))}

/* Bottom action bar for the selection */
.library-actionbar{position:fixed;z-index:25;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom));width:calc(100% - 24px);max-width:600px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px;border:1px solid var(--line);border-radius:var(--theme-pill,22px);background:var(--theme-glass-strong,var(--surface));backdrop-filter:var(--theme-blur,none);-webkit-backdrop-filter:var(--theme-blur,none);box-shadow:0 14px 40px var(--theme-backdrop,var(--bg))}
.library-actionbar button{min-height:46px;min-width:0;padding:0 4px;border-radius:calc(var(--theme-pill,22px) - 5px);font-size:12px;font-weight:600;color:var(--text)}
.library-actionbar button.library-danger{color:var(--theme-danger,var(--text))}
.library-actionbar #libraryActionCancel{color:var(--muted)}
#files:has(.library-actionbar:not(.hidden)){padding-bottom:88px}

/* Dialogs */
.library-dialog{width:min(440px,calc(100vw - 32px));background:var(--theme-dialog,var(--surface));color:var(--text);border-color:var(--line)}
.library-dialog p{color:var(--muted);line-height:1.55}
.library-dialog label{display:block;font-size:12px;color:var(--muted);margin:0 0 6px}
.library-input{width:100%;min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--theme-field,var(--surface));color:var(--text);font-size:16px}
.library-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;flex-wrap:wrap}
.library-dialog-actions .primary{min-height:44px}
.library-dialog-actions .primary.library-danger{background:var(--theme-danger,var(--accent));color:var(--theme-accent-ink,var(--bg))}
.library-move-list{display:flex;flex-direction:column;gap:2px;max-height:50dvh;overflow:auto}
.library-move-option{min-height:44px;padding:0 14px;text-align:left;border-radius:12px;font-size:14px;color:var(--text)}
.library-move-option:hover,.library-move-option:focus-visible{background:var(--theme-accent-soft,var(--surface))}
@media(max-width:360px){html:root #files .ability-tabs[data-library-segments][data-library-segments] button{font-size:11.5px}.library-date-chip{margin-left:0}}
#files .ability-tabs[data-library-segments] button[aria-pressed="true"] .segment-count{background:var(--theme-accent-line,var(--line));color:var(--theme-accent-text,var(--accent))}

/* Eigentümer 21.09.2026: Mehrfachauswahl für Gespräche (Bibliothek und Dialog
   „Deine Gespräche“ benutzen dieselben Klassen). */
.library-chat-check{width:20px;height:20px;flex-shrink:0;margin:0 2px 0 4px;accent-color:var(--accent);pointer-events:none}
.library-chat-picked{border-color:var(--accent)}
.library-chat-picked .library-chat-open{background:var(--theme-raised,transparent)}
.library-chat-list.library-selecting .library-chat-open{padding-right:10px}
/* Im Dialog schwebt die Aktionsleiste nicht über der Seite, sondern klebt unten. */
.library-actionbar-dialog{position:sticky;left:auto;bottom:0;transform:none;width:100%;max-width:none;margin-top:10px;grid-template-columns:repeat(3,minmax(0,1fr))}
#chatDialog .library-chat-list{margin:10px 0}
#chatDialog .library-listhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
/* Klangbild der Audio-Kacheln (gehört zum Bibliotheksmodul; stand früher in app.css). */
.library-audio-wave{display:flex;align-items:flex-end;justify-content:center;gap:3px;height:28px}
.library-audio-bar{display:block;width:4px;border-radius:2px;background:var(--accent);height:60%}
.library-audio-bar:nth-child(1){height:35%}.library-audio-bar:nth-child(2){height:75%}.library-audio-bar:nth-child(3){height:100%}
.library-audio-bar:nth-child(4){height:55%}.library-audio-bar:nth-child(5){height:80%}
/* Claude 05.10.2026 (E120, A-104): Lade-Skelette statt leerer Flächen in der Bibliothek: drei Platzhalterbalken mit ruhigem Lichtstreif (transform) statt der Zeile
      „Wird geladen …“ allein. Der Text bleibt für Screenreader erhalten (Schriftgrösse 0), sichtbar sind nur die Balken. */
.library-empty.library-skeleton{position:relative;overflow:hidden;height:170px;padding:0;font-size:0;line-height:0;border-radius:14px;
  background:linear-gradient(var(--line,#253147),var(--line,#253147)) 0 0/100% 48px no-repeat,
             linear-gradient(var(--line,#253147),var(--line,#253147)) 0 58px/100% 48px no-repeat,
             linear-gradient(var(--line,#253147),var(--line,#253147)) 0 116px/100% 48px no-repeat}
.library-empty.library-skeleton::after{content:'';position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent);animation:e120-skelett 1.4s ease-in-out infinite;will-change:transform}
@keyframes e120-skelett{from{transform:translateX(-120%)}to{transform:translateX(260%)}}
@media (prefers-reduced-motion:reduce){.library-empty.library-skeleton::after{animation:none;display:none}}
