/* Local anime preview: use the existing KageShelf palette and controls. */
.anime-preview-banner { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; margin-top:14px; margin-bottom:8px; padding:10px 16px; border:1px solid var(--line); border-radius:12px; color:var(--muted); background:var(--surface); font-size:12px; }
.anime-preview-banner strong { color:var(--accent-pale); font-weight:650; }
.anime-main [hidden] { display:none !important; }
.anime-demo-section { margin-top:32px; padding-top:20px; border-top:1px solid var(--line); }
.anime-demo-section summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; color:var(--muted); font-size:14px; cursor:pointer; list-style:none; }
.anime-demo-section summary::-webkit-details-marker { display:none; }
.anime-demo-section summary > span:last-child { display:inline-flex; align-items:center; gap:8px; color:var(--accent-pale); }
.anime-demo-section summary .ui-icon { transform:rotate(90deg); }
.anime-demo-section summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:4px; }
.anime-demo-section > p { margin:2px 0 20px; color:var(--muted); font-size:12px; line-height:1.6; }
.anime-demo-section[open] summary .ui-icon { transform:rotate(270deg); }
.media-switch { display:inline-flex; gap:4px; margin:0 0 22px; padding:5px; border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.media-switch a { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:110px; min-height:40px; padding:8px 18px; color:var(--muted); border-radius:9px; text-decoration:none; font-size:14px; font-weight:650; }
.media-switch a[aria-current=page] { color:var(--accent-pale); background:color-mix(in srgb,var(--accent) 12%,transparent); }
.media-switch a:hover { color:var(--text); }
.anime-main { padding-block:22px 48px; }
.anime-main :is(a,button,input,select):focus-visible,.media-switch a:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.anime-main :is(input,select,button) { font-family:var(--sans); }
.anime-main h1 { margin:0; font:700 clamp(30px,3vw,43px)/1.15 var(--display); letter-spacing:-.025em; overflow-wrap:anywhere; }
.anime-main h2 { margin:0 0 18px; font:650 22px/1.3 var(--sans); }
.anime-main h3 { margin:0; font:650 16px/1.4 var(--sans); }
.anime-catalog-heading { display:flex; justify-content:space-between; align-items:end; gap:16px; margin-bottom:26px; }
.anime-catalog-heading p { color:var(--muted); margin:12px 0 0; font-size:15px; line-height:1.6; }
.anime-result-count { color:var(--muted); white-space:nowrap; font-size:13px; }
.anime-filters { display:grid; grid-template-columns:minmax(0,1fr) 190px 190px auto; gap:12px; margin-bottom:28px; padding:14px; background:var(--surface); border:1px solid var(--line); border-radius:16px; }
.anime-filters > label { min-width:0; }
.anime-query { display:flex; align-items:center; gap:12px; padding-left:14px; border:1px solid var(--line); border-radius:10px; }
.anime-query .ui-icon { flex:none; color:var(--muted); }
.anime-query input { width:100%; min-width:0; min-height:46px; border:0; background:transparent; color:var(--text); font-size:14px; }
.anime-filters select { width:100%; min-height:46px; padding:10px 12px; color:var(--text); background:var(--surface-strong); border:1px solid var(--line); border-radius:10px; font-size:14px; }
.anime-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.anime-card { min-width:0; border:1px solid var(--line); background:var(--surface); border-radius:18px; overflow:hidden; }
.anime-card-link { display:block; color:inherit; text-decoration:none; }
.anime-card-poster { position:relative; height:320px; overflow:hidden; background:var(--bg-deep); border-bottom:1px solid var(--line); }
.anime-card-poster img { display:block; width:100%; height:100%; object-fit:contain; }
.anime-demo-tag { position:absolute; top:14px; left:14px; padding:5px 9px; background:var(--bg-deep); color:var(--accent-pale); border:1px solid var(--line); border-radius:7px; font-size:11px; font-weight:650; }
.anime-demo-tag.is-inline { position:static; flex:none; }
.anime-card-play { position:absolute; bottom:16px; right:16px; display:grid; place-items:center; width:43px; height:43px; border:1px solid var(--line-strong); border-radius:50%; color:var(--accent-pale); background:var(--bg-deep); }
.anime-card-copy { padding:21px 22px 17px; }
.anime-card-meta { margin:0 0 10px; color:var(--muted); font-size:12px; }
.anime-card h2 { min-height:2.7em; margin-bottom:12px; font-size:21px; line-height:1.35; }
.anime-card-genres { min-height:2.8em; margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.anime-card-footer { display:flex; justify-content:space-between; align-items:center; gap:8px; padding-top:18px; margin-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.anime-card-footer > span:last-child { display:inline-flex; align-items:center; color:var(--accent-pale); }
.anime-card-link:hover h2 { color:var(--accent-pale); }
.anime-empty { padding:40px 24px; border:1px solid var(--line); border-radius:16px; background:var(--surface); text-align:center; }
.anime-empty p,.anime-muted { color:var(--muted); font-size:14px; line-height:1.6; }
.anime-back { display:inline-flex; align-items:center; gap:6px; min-height:38px; margin-bottom:18px; color:var(--muted); text-decoration:none; font-size:14px; }
.anime-detail-layout { display:grid; grid-template-columns:228px minmax(0,1fr); gap:32px; max-width:1200px; margin-inline:auto; align-items:start; }
.anime-rail { display:grid; gap:16px; min-width:0; }
.anime-detail-poster { position:relative; border:1px solid var(--line); border-radius:15px; overflow:hidden; background:var(--bg-deep); }
.anime-detail-poster img { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:contain; }
.anime-watch-action { width:100%; min-height:46px; font-size:14px; }
.anime-unavailable { min-height:46px; cursor:default; font-size:13px; opacity:.75; }
.anime-metadata { display:grid; gap:17px; margin:0; padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.anime-metadata dt { color:var(--muted); font-size:12px; margin-bottom:4px; }
.anime-metadata dd { margin:0; font-size:14px; overflow-wrap:anywhere; }
.anime-detail-content { min-width:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.anime-detail-heading { padding:26px 26px 15px; }
.anime-detail-heading > p { margin:0 0 10px; color:var(--accent-pale); font-size:12px; line-height:1.6; }
.anime-heading-stats { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:20px; color:var(--muted); font-size:13px; }
.anime-tabs { display:flex; flex-wrap:nowrap; gap:24px; padding:0 26px; overflow-x:auto; scrollbar-width:thin; overscroll-behavior-inline:contain; }
.anime-tabs a { flex:none; display:flex; align-items:center; min-height:56px; border-bottom:2px solid transparent; color:var(--muted); text-decoration:none; font-size:14px; font-weight:650; white-space:nowrap; }
.anime-tabs a[aria-selected=true] { border-bottom-color:var(--accent); color:var(--accent-pale); }
.anime-detail-panels { min-height:350px; padding:26px; border-top:1px solid var(--line); }
.anime-detail-panels > section + section { margin-top:28px; }
.anime-tabs-ready .anime-detail-panels > section { margin-top:0; }
.anime-description { max-width:70ch; margin:0; white-space:pre-line; font-size:15px; line-height:1.8; }
.anime-genre-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.anime-genre-list span { padding:6px 10px; border:1px solid var(--line); border-radius:7px; color:var(--muted); font-size:12px; }
.anime-section-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; }
.anime-progress-key { display:inline-flex; align-items:center; gap:6px; color:var(--muted); font-size:11px; }
.anime-progress-key i { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.anime-season + .anime-season { margin-top:28px; }
.anime-season h3 { padding:10px 0 12px; }
.anime-episode-list { list-style:none; margin:0; padding:0; }
.anime-episode-row { display:grid; grid-template-columns:26px minmax(0,1fr) auto 18px; gap:12px; align-items:center; min-height:76px; padding:13px 8px; border-top:1px solid var(--line); color:var(--text); text-decoration:none; }
.anime-episode-row:hover { background:color-mix(in srgb,var(--accent) 5%,transparent); }
.anime-episode-copy { display:grid; min-width:0; gap:5px; }
.anime-episode-copy strong { font-size:14px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.anime-episode-copy > span { color:var(--muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.anime-episode-copy small { color:var(--muted); font-size:11px; line-height:1.4; }
.anime-episode-flag { display:grid; place-items:center; color:var(--muted); opacity:.65; }
.anime-state-check { display:none; }
.anime-episode-row[data-watch-state=in_progress] .anime-episode-flag { color:var(--accent-pale); opacity:1; }
.anime-episode-row[data-watch-state=completed] .anime-episode-flag { color:var(--accent); opacity:1; }
.anime-episode-row[data-watch-state=completed] .anime-state-check { display:block; }
.anime-episode-row[data-watch-state=completed] .anime-episode-copy strong { color:var(--muted); }
.anime-episode-duration { color:var(--muted); font-size:11px; white-space:nowrap; }
.anime-episode-row.is-unavailable { opacity:.55; grid-template-columns:26px minmax(0,1fr); }
.anime-related-list { display:grid; gap:12px; }
.anime-related { display:flex; align-items:center; gap:14px; padding:17px; border:1px solid var(--line); border-radius:12px; color:var(--text); text-decoration:none; }
.anime-related > span:nth-child(2) { display:grid; min-width:0; gap:6px; }
.anime-related strong { font-size:14px; overflow-wrap:anywhere; }
.anime-related small { color:var(--muted); font-size:11px; }
.anime-related > .ui-icon:last-child { margin-left:auto; flex:none; color:var(--muted); }
.anime-related-icon { display:grid; place-items:center; flex:none; width:38px; height:42px; border-radius:10px; color:var(--accent-pale); background:color-mix(in srgb,var(--accent) 10%,transparent); }
.anime-adaptations { margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.anime-adaptations h3 { margin:0 0 12px; font:650 17px/1.4 var(--sans); }
.anime-adaptations a { display:inline-flex; padding:10px 14px; margin:0 8px 8px 0; color:var(--accent-pale); border:1px solid var(--line); border-radius:10px; text-decoration:none; font-size:14px; }
.anime-watch-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:22px; }
.anime-watch-heading p { margin:0 0 9px; color:var(--accent-pale); font-size:12px; }
.anime-watch-heading h1 { font-size:clamp(25px,2.4vw,34px); }
.anime-source-tag { padding:7px 11px; color:var(--accent-pale); border:1px solid var(--line); border-radius:8px; background:var(--surface); font-size:11px; white-space:nowrap; }
.anime-watch-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; align-items:start; }
.anime-player-column { min-width:0; }
.anime-voice-controls { display:flex; flex-wrap:wrap; align-items:end; gap:12px 16px; margin:0 0 16px; padding:15px 16px; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.anime-voice-controls label { display:grid; gap:7px; flex:1 1 240px; min-width:0; }
.anime-voice-controls label > span { color:var(--accent-pale); font-size:12px; font-weight:650; }
.anime-voice-controls select { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; color:var(--text); background:var(--surface-strong); font:inherit; font-size:14px; }
.anime-voice-controls select:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.anime-voice-controls [data-anime-quality-control] { flex:0 1 160px; }
.anime-voice-controls p { flex:1 1 100%; margin:0; color:var(--muted); font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.anime-voice-submit { min-height:44px; font-size:12px; }
.anime-watch-main[data-anime-voices-ready] .anime-voice-submit { display:none; }
.anime-video-frame { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#000; }
.anime-video-frame video { display:block; width:100%; height:100%; object-fit:contain; background:#000; }
.anime-external-frame { position:relative; width:100%; aspect-ratio:16/9; min-height:220px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#000; }
.anime-external-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.anime-playback-notice { margin:0 0 16px; padding:12px 14px; color:var(--muted); border:1px solid var(--line); border-radius:10px; background:var(--surface); font-size:12px; line-height:1.65; }
.anime-video-error { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:20px; color:var(--text); background:var(--surface); text-align:center; }
.anime-video-error p { margin:0 0 6px; color:var(--muted); font-size:14px; }
.anime-video-empty { min-height:300px; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:24px; border:1px solid var(--line); border-radius:16px; background:var(--surface); text-align:center; }
.anime-video-empty p { color:var(--muted); font-size:14px; line-height:1.7; }
.anime-player-status { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 20px; padding:14px 4px; color:var(--muted); font-size:11px; line-height:1.5; }
.anime-player-status [data-save-error=true] { color:var(--accent-pale); }
.anime-watch-navigation { display:flex; justify-content:space-between; gap:12px; margin-top:12px; }
.anime-watch-navigation .button { min-height:46px; padding-inline:16px; font-size:13px; }
.anime-watch-sidebar { min-width:0; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.anime-watch-sidebar-heading { padding:20px 18px; border-bottom:1px solid var(--line); }
.anime-watch-sidebar-heading h2 { margin-bottom:14px; font-size:19px; }
.anime-watch-sidebar-heading select { min-height:44px; width:100%; padding:8px 12px; border:1px solid var(--line); border-radius:10px; color:var(--text); background:var(--surface-strong); font-size:13px; }
.anime-watch-season { padding:0 14px 12px; }
.anime-watch-season h3 { padding:16px 4px 10px; color:var(--muted); font-size:12px; }
.anime-watch-season .anime-episode-row { grid-template-columns:23px minmax(0,1fr); gap:9px; padding:13px 5px; border-radius:8px; }
.anime-watch-season .anime-episode-row[aria-current=page] { background:color-mix(in srgb,var(--accent) 10%,transparent); border-color:var(--line-strong); }
.anime-watch-season .anime-episode-row[aria-current=page] strong { color:var(--accent-pale); }
@media(max-width:1100px) {
  .anime-filters { grid-template-columns:minmax(0,1fr) 160px 160px; }
  .anime-filters > .button { grid-column:1/-1; }
  .anime-card-poster { height:280px; }
  .anime-detail-layout { grid-template-columns:200px minmax(0,1fr); gap:24px; }
  .anime-detail-heading,.anime-detail-panels { padding:22px; }
  .anime-tabs { padding-inline:22px; gap:20px; }
  .anime-watch-layout { grid-template-columns:minmax(0,1fr) 260px; gap:18px; }
}
@media(max-width:760px) {
  .anime-main { padding-top:16px; }
  .anime-preview-banner { margin-top:10px; padding:9px 12px; font-size:11px; }
  .anime-catalog-heading { align-items:start; flex-direction:column; gap:12px; margin-bottom:20px; }
  .anime-catalog-heading h1 { font-size:32px; }
  .anime-catalog-heading p { font-size:13px; }
  .anime-filters { grid-template-columns:1fr 1fr; gap:10px; padding:12px; }
  .anime-query { grid-column:1/-1; }
  .anime-filters select { font-size:12px; padding-inline:8px; }
  .anime-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .anime-card-poster { height:220px; }
  .anime-card-copy { padding:15px 13px 12px; }
  .anime-card h2 { font-size:17px; }
  .anime-card-meta,.anime-card-genres { font-size:11px; }
  .anime-card-footer { flex-wrap:wrap; margin-top:12px; padding-top:12px; font-size:11px; }
  .anime-demo-tag { top:10px; left:10px; font-size:10px; }
  .anime-card-play { width:34px; height:34px; right:10px; bottom:10px; }
  .anime-detail-layout { grid-template-columns:106px minmax(0,1fr); gap:14px; }
  .anime-rail,.anime-detail-content { display:contents; }
  .anime-detail-poster { grid-column:1; grid-row:1; border-radius:10px; }
  .anime-detail-heading { grid-column:2; grid-row:1; padding:0; }
  .anime-detail-heading > p { font-size:10px; margin-bottom:8px; }
  .anime-detail-heading h1 { font:650 23px/1.2 var(--sans); }
  .anime-heading-stats { margin-top:12px; gap:8px 12px; font-size:11px; }
  .anime-watch-action,.anime-unavailable { grid-column:1/-1; grid-row:2; }
  .anime-tabs { grid-column:1/-1; grid-row:3; gap:20px; margin-top:4px; padding-inline:14px; border:1px solid var(--line); border-bottom:0; border-radius:12px 12px 0 0; background:var(--surface); }
  .anime-tabs a { min-height:50px; font-size:12px; }
  .anime-detail-panels { grid-column:1/-1; grid-row:4; margin-top:-14px; padding:20px 14px; border:1px solid var(--line); border-radius:0 0 12px 12px; background:var(--surface); }
  .anime-detail-panels h2 { font-size:19px; }
  .anime-description { font-size:14px; }
  .anime-metadata { grid-column:1/-1; grid-row:5; grid-template-columns:1fr 1fr; gap:14px; padding:16px; }
  .anime-metadata dd { font-size:12px; }
  .anime-episode-row { grid-template-columns:23px minmax(0,1fr) 18px; column-gap:8px; padding-inline:0; }
  .anime-episode-duration { display:none; }
  .anime-episode-copy strong { font-size:13px; }
  .anime-watch-heading { align-items:start; flex-direction:column; margin-bottom:16px; }
  .anime-watch-heading h1 { font-size:26px; }
  .anime-watch-layout { grid-template-columns:minmax(0,1fr); }
  .anime-video-frame { border-radius:12px; }
  .anime-watch-navigation .button { padding-inline:10px; font-size:12px; }
  .anime-player-status { font-size:10px; }
  .anime-voice-controls { padding:12px; margin-bottom:12px; border-radius:12px; }
  .anime-voice-controls label { flex-basis:100%; }
  .anime-voice-controls [data-anime-quality-control] { flex:1 1 100%; }
  .anime-voice-controls select { font-size:13px; }
  .anime-watch-sidebar-heading { padding:16px; display:flex; justify-content:space-between; align-items:center; gap:16px; }
  .anime-watch-sidebar-heading h2 { margin:0; }
  .anime-watch-sidebar-heading label { width:60%; }
}
@media(max-width:420px) {
  .anime-catalog-grid { grid-template-columns:minmax(0,1fr); }
  .anime-card-link { display:grid; grid-template-columns:118px minmax(0,1fr); }
  .anime-card-poster { height:190px; border-right:1px solid var(--line); border-bottom:0; }
  .anime-card h2 { min-height:0; margin-bottom:9px; }
  .anime-card-genres { min-height:0; }
  .anime-card-copy { display:flex; flex-direction:column; justify-content:center; }
  .anime-card-footer { padding-top:10px; margin-top:10px; }
  .anime-card-play { display:none; }
}
@media(prefers-reduced-motion:reduce) { .anime-main * { scroll-behavior:auto !important; } }

.anime-season-picker{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.anime-season-picker select{max-width:100%;min-width:0;flex:1;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}
