:root {
  --orpheus-theme: #0c0c0e;
  --orpheus-background: #0c0c0e;
  --orpheus-accent: #c4d96a;
  --orpheus-text: #f4f2ea;
  --orpheus-muted: #a8a69f;
  --orpheus-accent-soft: #c4d96a22;
  --orpheus-accent-strong: #d9ed78;
  --orpheus-line: #c4d96a52;
  /* PWA layout rhythm: header gap, page gutter, panel gap and panel padding. */
  --orpheus-pwa-header-gap: 10px;
  --orpheus-pwa-page-gutter: 12px;
  --orpheus-pwa-panel-gap: 24px;
  --orpheus-pwa-panel-padding: 16px;
  --orpheus-pwa-section-padding: 18px;
  --orpheus-pwa-content-end-gap: 28px;
  --orpheus-pwa-player-nav-gap: 8px;
  color-scheme: dark;
}
* { box-sizing: border-box; }
a:focus-visible { outline: 3px solid var(--orpheus-accent); outline-offset: 3px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
body { margin: 0; min-height: 100vh; background: radial-gradient(ellipse at 50% -10%, #394022 0, #171814 26%, var(--orpheus-background) 64%); color: var(--orpheus-text); font: 16px/1.5 system-ui, sans-serif; display: grid; place-items: center; }
html, body { max-width: 100%; overflow-x: hidden; }
main { width: min(100% - 32px, 448px); padding: 44px 42px; border: 1px solid #c4d96a55; border-radius: 24px; background: linear-gradient(145deg, #191a1d, #111114); box-shadow: 0 24px 90px #000b; }
h1 { margin: 0 0 10px; color: var(--orpheus-text); font-size: clamp(2rem, 7vw, 2.8rem); line-height: 1.1; letter-spacing: -.04em; }
p { margin: 0; color: var(--orpheus-muted); }
.orpheus-web-panel { display: block; }
.orpheus-login-shell { width: calc(100% - 32px); max-width: 448px; }
.orpheus-login-shell { margin: auto; padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); }
body:not(:has(.orpheus-app-shell)) { display: grid; place-items: center; }
body:has(.orpheus-app-shell) { display: block; }
.orpheus-app-shell { width: 100%; }
.orpheus-brand-panel, .orpheus-login { padding: 24px 20px; border: 1px solid var(--orpheus-line); border-radius: 20px; background: linear-gradient(145deg, #202119, #151519 72%); box-shadow: 0 18px 55px #0009, inset 0 1px #ffffff0b; }
.orpheus-brand-panel { padding: 25px 20px 20px; margin-bottom: 16px; }
.orpheus-logo { display: inline-block; width: 42px; height: 42px; border-radius: 50%; clip-path: circle(50%); mix-blend-mode: screen; box-shadow: 0 0 24px #c4d96a55; vertical-align: middle; }
.orpheus-brand { display: inline-block; margin-left: 12px; font-size: 2.25rem; font-weight: 800; letter-spacing: .08em; vertical-align: middle; }
.orpheus-product { margin-left: 55px; margin-top: 2px; font-size: .68rem; font-weight: 700; letter-spacing: .2em; }
.orpheus-wave { height: 28px; margin: 12px 0 14px; border-bottom: 2px solid var(--orpheus-accent); border-radius: 50%; opacity: .9; box-shadow: 0 8px 18px #c4d96a44; }
.orpheus-brand-panel h1 { font-size: 1.75rem; margin: 2px 0 0; }
.orpheus-login h2 { margin: 0 0 24px; font-size: 2rem; line-height: 1; }
.orpheus-mark { color: var(--orpheus-accent); font-size: 2.2rem; line-height: 1; margin-bottom: 22px; }
.orpheus-eyebrow { color: var(--orpheus-accent); font-size: .75rem; font-weight: 700; letter-spacing: .18em; margin-bottom: 14px; }
.orpheus-subtitle { font-size: 1.05rem; margin-bottom: 30px; }
.orpheus-sso-button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 14px 17px; border: 1px solid var(--orpheus-accent-strong); border-radius: 12px; background: linear-gradient(110deg, var(--orpheus-accent), var(--orpheus-accent-strong)); color: #14150f; font-weight: 750; text-decoration: none; box-shadow: 0 8px 22px #c4d96a33; transition: transform .18s, filter .18s, box-shadow .18s; }
.orpheus-sso-button b { margin-left: auto; }
.orpheus-sso-button:hover, .orpheus-sso-button:focus-visible { filter: brightness(1.08); transform: translateY(-2px); }
.orpheus-sso-button:focus-visible { outline: 3px solid var(--orpheus-text); outline-offset: 3px; }
.orpheus-sso-button span { font-size: 1.35rem; }
.orpheus-note { margin-top: 22px; font-size: .78rem; }
.orpheus-page { width: min(100% - 32px, 720px); }
.orpheus-page-header { margin-bottom: 18px; }
.orpheus-page-header h1 { margin: 0; }
.orpheus-page-intro { margin: -8px 0 24px; font-size: 1.05rem; }
.orpheus-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.orpheus-toolbar-action { color: var(--orpheus-accent); text-decoration: none; }
.orpheus-toolbar-action:hover, .orpheus-toolbar-action:focus-visible { text-decoration: underline; }
.orpheus-content-grid { display: grid; grid-template-columns: 1fr; gap: 16px; padding-left: 28px; padding-right: 28px; }
.orpheus-component-panel { padding: 22px; border: 1px solid #c4d96a38; border-radius: 16px; background: #151519; }
.orpheus-youtube-panel, .orpheus-youtube-job { margin: 0 28px 16px; border-color: #c4d96a50; box-shadow: 0 10px 24px #0007; }
.orpheus-youtube-form { display: grid; gap: 8px; }
.orpheus-youtube-form label { color: var(--orpheus-muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.orpheus-youtube-form-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: stretch; }
.orpheus-youtube-form input { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #c4d96a45; border-radius: 9px; color: var(--orpheus-text); background: #202025; }
.orpheus-youtube-form input:focus-visible { outline: 2px solid var(--orpheus-accent); outline-offset: 2px; }
.orpheus-youtube-form button, .orpheus-youtube-download, .orpheus-youtube-play { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--orpheus-accent-strong); border-radius: 9px; color: #14150f; background: var(--orpheus-accent); font-weight: 800; cursor: pointer; text-decoration: none; }
.orpheus-youtube-action-icon { display: inline-flex; align-items: center; justify-content: center; width: 1.1em; font-size: 1rem; line-height: 1; }
.orpheus-youtube-note { margin-top: 12px; font-size: .78rem; }
.orpheus-youtube-panel > .orpheus-state { margin: 16px 0 0; }
.orpheus-youtube-job-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.orpheus-youtube-job h2 { margin: 0; }
.orpheus-youtube-meta { margin: 6px 0 0; color: var(--orpheus-muted); font-size: .82rem; }
.orpheus-youtube-meta-url, .orpheus-youtube-history-url { display: block; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-youtube-download-panel { margin: 0 28px 16px; }
.orpheus-youtube-history { margin: 0 28px 16px; }
.orpheus-youtube-history-list { display: grid; gap: 12px; }
.orpheus-youtube-history-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-top: 1px solid #ffffff18; }
.orpheus-youtube-history-item:first-child { border-top: 0; padding-top: 0; }
.orpheus-youtube-history-main { min-width: 0; display: grid; gap: 4px; }
.orpheus-youtube-history-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-youtube-history-main small { color: var(--orpheus-muted); }
.orpheus-youtube-history-state { width: fit-content; padding: 3px 7px; border: 1px solid #ffffff22; border-radius: 999px; color: var(--orpheus-muted); font-size: .7rem; line-height: 1.25; }
.orpheus-youtube-history-state[data-status="finished"] { color: var(--orpheus-accent); border-color: #c4d96a55; }
.orpheus-youtube-history-state[data-status="failed"], .orpheus-youtube-history-state[data-status="orphaned"] { color: #f2b2a8; border-color: #9d514855; }
.orpheus-youtube-history-progress { display: block; width: min(100%, 420px); height: 5px; border: 0; border-radius: 99px; appearance: none; background: #ffffff14; }
.orpheus-youtube-history-progress::-webkit-progress-bar { border-radius: 99px; background: #ffffff14; }
.orpheus-youtube-history-progress::-webkit-progress-value, .orpheus-youtube-history-progress::-moz-progress-bar { border-radius: 99px; background: var(--orpheus-accent); }
.orpheus-youtube-history-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.orpheus-youtube-history-actions > * { white-space: nowrap; }
.orpheus-youtube-history-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 12px; border: 1px solid #ffffff28; border-radius: 9px; color: var(--orpheus-text); background: #25252a; font: inherit; font-size: .82rem; cursor: pointer; }
.orpheus-youtube-history-actions button:hover, .orpheus-youtube-history-actions button:focus-visible { border-color: #ffffff50; background: #303037; }
.orpheus-youtube-history-actions .orpheus-youtube-import { border-color: var(--orpheus-accent-strong); color: #14150f; background: var(--orpheus-accent); font-weight: 800; }
.orpheus-youtube-history-actions .orpheus-youtube-play { border-color: var(--orpheus-accent-strong); color: #14150f; background: var(--orpheus-accent); font-weight: 800; }
.orpheus-youtube-history-actions .orpheus-youtube-delete { color: #fff4f2; border-color: #ff8a80; background: #9d3029; }
.orpheus-youtube-history-actions .orpheus-youtube-cancel { color: #f2d7a5; border-color: #b78a3b88; }
.orpheus-youtube-job-badge { padding: 5px 8px; border: 1px solid #c4d96a55; border-radius: 7px; color: var(--orpheus-accent); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.orpheus-youtube-job-badge[data-status="failed"] { color: #f2b2a8; border-color: #9d514855; }
.orpheus-youtube-progress { display: block; width: 100%; height: 8px; margin: 16px 0 10px; overflow: hidden; border: 0; border-radius: 99px; appearance: none; background: #ffffff14; }
.orpheus-youtube-progress::-webkit-progress-bar { border-radius: 99px; background: #ffffff14; }
.orpheus-youtube-progress::-webkit-progress-value, .orpheus-youtube-progress::-moz-progress-bar { border-radius: 99px; background: linear-gradient(90deg, var(--orpheus-accent), var(--orpheus-accent-strong)); }
.orpheus-youtube-status { font-size: .86rem; }
.orpheus-youtube-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; margin-top: 18px; }
.orpheus-youtube-action-row { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.orpheus-youtube-download { color: #edf7fb; border-color: #6eaac1; background: #304a57; }
.orpheus-youtube-delete { color: #fff4f2; border-color: #ff8a80; background: #9d3029; }
.orpheus-youtube-import { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border: 1px solid #c4d96a; border-radius: 9px; color: #14150f; background: #c4d96a; font-weight: 800; cursor: pointer; }
.orpheus-youtube-import-dialog { width: min(520px, calc(100vw - 32px)); padding: 24px; border: 1px solid #c4d96a70; border-radius: 14px; color: var(--orpheus-text); background: #18181d; box-shadow: 0 20px 70px #000b; }
.orpheus-youtube-import-dialog::backdrop { background: #0009; }
.orpheus-youtube-import-dialog h2 { margin: 0 0 18px; }
.orpheus-youtube-import-dialog label { display: block; margin-bottom: 7px; color: var(--orpheus-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.orpheus-youtube-import-dialog input { width: 100%; box-sizing: border-box; padding: 11px 12px; border: 1px solid #c4d96a45; border-radius: 9px; color: var(--orpheus-text); background: #202025; }
.orpheus-youtube-import-dialog .orpheus-state { margin: 16px 0 0; }
.orpheus-youtube-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.orpheus-youtube-dialog-actions button { padding: 9px 13px; border: 1px solid #ffffff28; border-radius: 8px; color: var(--orpheus-text); background: #25252a; font-weight: 700; cursor: pointer; }
.orpheus-youtube-dialog-actions button:hover, .orpheus-youtube-dialog-actions button:focus-visible { border-color: #ffffff50; background: #303037; }
.orpheus-youtube-dialog-actions .orpheus-youtube-import-confirm { border-color: var(--orpheus-accent-strong); color: #14150f; background: var(--orpheus-accent); }
.orpheus-youtube-dialog-actions .orpheus-youtube-import-confirm:hover, .orpheus-youtube-dialog-actions .orpheus-youtube-import-confirm:focus-visible { background: var(--orpheus-accent-strong); }
button.orpheus-youtube-delete { color: #fff4f2; border-color: #ff8a80; background: #9d3029; }
button.orpheus-youtube-delete:hover, button.orpheus-youtube-delete:focus-visible { border-color: #ffc0ba; background: #c63d34; }
.orpheus-youtube-download[hidden] { display: none; }
.orpheus-youtube-actions .orpheus-secondary-button { padding: 10px 14px; }
.orpheus-admin-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; }
.orpheus-admin-user-create-form { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.55fr) 96px 140px; gap:10px; }
.orpheus-admin-user-create-form button { width:140px; }
.orpheus-admin-form label { display: grid; gap: 6px; color: var(--orpheus-muted); font-size: .82rem; }
.orpheus-admin-form label span { color: #77776f; }
.orpheus-admin-form input, .orpheus-admin-form select, .orpheus-inline-form select { width: 100%; padding: 10px 11px; border: 1px solid #c4d96a45; border-radius: 9px; color: var(--orpheus-text); background: #202025; }
.orpheus-admin-form button, .orpheus-inline-form button { padding: 10px 12px; border: 1px solid var(--orpheus-accent-strong); border-radius: 9px; color: #14150f; background: var(--orpheus-accent); font-weight: 750; cursor: pointer; }
.orpheus-inline-form .orpheus-secondary-button { color: var(--orpheus-text); border-color: #ffffff2a; background: #25252a; }
.orpheus-inline-form .orpheus-admin-remove-user-button { color:#fff4f2; border-color:#e05b50; background:#9d3029; }
.orpheus-inline-form .orpheus-admin-remove-user-button:hover, .orpheus-inline-form .orpheus-admin-remove-user-button:focus-visible { border-color:#ff9b91; background:#c63d34; }
.orpheus-table-wrap { overflow-x: auto; }
.orpheus-admin-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.orpheus-admin-table th, .orpheus-admin-table td { padding: 12px 10px; border-bottom: 1px solid #ffffff14; text-align: left; vertical-align: top; }
.orpheus-admin-table th { color: var(--orpheus-accent); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.orpheus-admin-table td strong, .orpheus-admin-table td small { display: block; }
.orpheus-admin-table td small { color: var(--orpheus-muted); overflow-wrap: anywhere; }
.orpheus-admin-user-list { display:grid; gap:8px; }
.orpheus-admin-user-row { display:grid; grid-template-columns:minmax(170px,1fr) minmax(130px,.75fr) minmax(180px,1.1fr) 292px; gap:12px; align-items:center; padding:10px 12px; border:1px solid #ffffff20; border-left:3px solid var(--orpheus-accent); border-radius:10px; background:linear-gradient(100deg,#202329,#181a1d); }
.orpheus-admin-user-main, .orpheus-admin-user-status, .orpheus-admin-user-identity { min-width:0; }
.orpheus-admin-user-main strong, .orpheus-admin-user-main small, .orpheus-admin-user-status small, .orpheus-admin-user-identity span, .orpheus-admin-user-identity small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-user-main strong { color:var(--orpheus-text); }
.orpheus-admin-user-main small, .orpheus-admin-user-status small, .orpheus-admin-user-identity small { margin-top:3px; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-admin-user-status { display:grid; gap:2px; }
.orpheus-admin-user-status .orpheus-status-badge { width:max-content; }
.orpheus-admin-user-identity span { color:var(--orpheus-muted); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; }
.orpheus-admin-user-actions { display:grid; grid-template-columns:repeat(2,140px); align-items:start; gap:6px; width:286px; min-width:286px; }
.orpheus-admin-user-actions .orpheus-inline-form { display:grid; gap:5px; margin:0; }
.orpheus-admin-user-actions .orpheus-admin-role-assign { display:contents !important; }
.orpheus-admin-user-actions .orpheus-admin-role-remove { justify-self:start; }
.orpheus-admin-user-actions .orpheus-inline-form select { width:140px; min-width:140px; padding:7px 8px; font-size:.74rem; }
.orpheus-admin-user-actions .orpheus-inline-form button { width:140px; min-width:140px; padding:7px 8px; font-size:.72rem; }
.orpheus-admin-page { display:flex; flex-direction:column; row-gap:24px; }
.orpheus-admin-page > .orpheus-component-panel { margin:0 28px; border-color:#c4d96a50; box-shadow:0 10px 24px #0007; }
.orpheus-admin-user-list { gap:12px; }
.orpheus-admin-page > .orpheus-state { margin:0; }
.orpheus-admin-page > .orpheus-toolbar { margin:0; }
.orpheus-admin-role-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:0 28px; align-items:stretch; }
.orpheus-admin-role-overview > .orpheus-component-panel { height:100%; margin:0; border-color:#c4d96a50; box-shadow:0 10px 24px #0007; }
.orpheus-admin-identity-count { display:flex; align-items:baseline; gap:7px; margin:0; color:var(--orpheus-muted); font-size:1rem; }
.orpheus-admin-identity-count strong { color:var(--orpheus-text); font-size:1.55rem; }
.orpheus-admin-identity-count span { color:var(--orpheus-accent); }
.orpheus-admin-identity-note { margin:12px 0 0; color:var(--orpheus-muted); font-size:.84rem; }
.orpheus-inline-form { display: flex; gap: 7px; margin-bottom: 7px; }
.orpheus-inline-form select { min-width: 110px; padding: 7px 8px; }
.orpheus-inline-form button { padding: 7px 8px; font-size: .75rem; }
.orpheus-status-badge { display: inline-block; padding: 3px 7px; border-radius: 999px; font-size: .72rem; font-weight: 750; }
.orpheus-status-active { color: var(--orpheus-accent); background: #c4d96a1c; }
.orpheus-status-disabled { color: #e6c78e; background: #b8874224; }
.orpheus-role-list { margin: 0; padding-left: 20px; color: var(--orpheus-muted); }
.orpheus-role-list strong { color: var(--orpheus-text); }
.orpheus-component-panel h2 { margin: 0 0 16px; font-size: 1.15rem; }
.orpheus-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.orpheus-card-heading h2 { margin-bottom: 0; }
.orpheus-card-kind { color: var(--orpheus-accent); font-size: .65rem; font-weight: 800; letter-spacing: .14em; }
.orpheus-card-description { min-height: 3em; margin: 8px 0 14px; font-size: .9rem; }
.orpheus-dashboard-card[data-card-state="empty"] .orpheus-state { min-height: 58px; }
.orpheus-dashboard-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 28px 18px; }
.orpheus-dashboard-summary article { padding:10px 12px; border:1px solid #c4d96a38; border-radius:10px; background:#17181b; }
.orpheus-dashboard-summary span, .orpheus-admin-status-grid span { display:block; color:var(--orpheus-muted); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.orpheus-dashboard-summary strong { display:block; margin-top:3px; overflow:hidden; color:var(--orpheus-text); font-size:1rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-playback-item { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid #c4d96a32; border-radius: 10px; background: #202025; }
.orpheus-playback-item strong { color: var(--orpheus-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-playback-item span, .orpheus-playback-item small { color: var(--orpheus-muted); font-size: .82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-playback-item button { display: inline-flex; align-items: center; justify-content: center; justify-self: end; width: 34px; height: 32px; min-height: 32px; padding: 0; border: 1px solid var(--orpheus-accent-strong); border-radius: 7px; color: #14150f; background: linear-gradient(110deg, var(--orpheus-accent), var(--orpheus-accent-strong)); font-size: 0; font-weight: 800; cursor: pointer; box-shadow: 0 4px 12px #c4d96a22; transition: filter .18s, transform .18s, box-shadow .18s; }
.orpheus-playback-item button::before { content: '▶'; display: block; margin: 0; font-size:  .9rem; line-height: 1; }
.orpheus-playback-item button:hover, .orpheus-playback-item button:focus-visible { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 6px 16px #c4d96a38; }
.orpheus-playback-item button:focus-visible { outline: 2px solid var(--orpheus-text); outline-offset: 2px; }
.orpheus-playback-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.orpheus-state { padding: 14px 16px; border-radius: 10px; color: var(--orpheus-muted); background: #202025; }
.orpheus-state-error { color: #f2b2a8; border: 1px solid #9d514855; }
.orpheus-state-success { color: var(--orpheus-accent); border: 1px solid #c4d96a55; }
.orpheus-state-loading { border: 1px solid #ffffff18; }
.orpheus-library-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; margin: 0 28px 22px; padding: 16px; border: 1px solid #c4d96a38; border-radius: 14px; background: linear-gradient(145deg, #1b1c1d, #141519); }
.orpheus-library-search label { grid-column: 1 / -1; color: var(--orpheus-accent); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.orpheus-library-search input { min-width: 0; padding: 12px 14px; border: 1px solid #ffffff24; border-radius: 9px; color: var(--orpheus-text); background: #0f1012; }
.orpheus-library-search input:focus { outline: 2px solid var(--orpheus-accent); outline-offset: 2px; }
.orpheus-library-search button { padding: 12px 18px; border: 1px solid var(--orpheus-accent-strong); border-radius: 9px; color: #14150f; background: var(--orpheus-accent); font-weight: 800; cursor: pointer; }
.orpheus-library-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin:0 28px 18px; padding:10px 12px; border:1px solid #ffffff16; border-radius:10px; background:#151619; }
.orpheus-library-toolbar label { display:grid; gap:4px; color:var(--orpheus-muted); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.orpheus-library-toolbar select, .orpheus-library-toolbar button { padding:8px 10px; border:1px solid #ffffff24; border-radius:7px; color:var(--orpheus-text); background:#0f1012; }
.orpheus-library-toolbar button { cursor:pointer; color:var(--orpheus-accent); }
.orpheus-library-metadata { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 16px; align-items:center; margin:0 28px 18px; padding:14px 16px; border:1px solid #c4d96a55; border-radius:12px; background:linear-gradient(120deg,#20241c,#17191b); }
.orpheus-library-metadata > div:first-child strong { color:var(--orpheus-accent); }
.orpheus-library-metadata > div:first-child p, .orpheus-library-metadata-status { margin:4px 0 0; color:var(--orpheus-muted); font-size:.82rem; }
.orpheus-library-metadata-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.orpheus-library-metadata-actions button, .orpheus-library-metadata-actions a { padding:8px 10px; border:1px solid #ffffff30; border-radius:7px; color:var(--orpheus-text); background:#111315; font:inherit; font-size:.75rem; font-weight:700; text-decoration:none; cursor:pointer; }
.orpheus-library-metadata-actions button[data-library-metadata-action="create"] { border-color:var(--orpheus-accent); color:#161810; background:var(--orpheus-accent); }
.orpheus-library-metadata-actions button:disabled { opacity:.48; cursor:not-allowed; }
.orpheus-library-metadata-actions button:hover:not(:disabled), .orpheus-library-metadata-actions a:hover { border-color:var(--orpheus-accent); color:var(--orpheus-accent); }
.orpheus-library-metadata-actions button[data-library-metadata-action="create"]:hover:not(:disabled) { color:#161810; }
.orpheus-library-metadata-summary { grid-column:1/-1; color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-library-metadata-summary summary { cursor:pointer; }
.orpheus-library-metadata-summary ul { max-height:150px; overflow:auto; margin:7px 0 0; padding-left:20px; }
.orpheus-library-metadata-status { grid-column:1/-1; min-height:1em; }
.orpheus-library-meta-select { display:inline-flex; align-items:center; gap:5px; color:var(--orpheus-accent); font-size:.7rem; font-weight:700; white-space:nowrap; }
.orpheus-library-meta-select input { width:15px; height:15px; accent-color:var(--orpheus-accent); }
.orpheus-library-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 28px 20px; }
.orpheus-library-stats article { padding:10px 12px; border:1px solid #c4d96a38; border-radius:10px; background:#17181b; }
.orpheus-library-stats span { display:block; color:var(--orpheus-muted); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }
.orpheus-library-stats strong { display:block; margin-top:3px; color:var(--orpheus-text); font-size:1.12rem; }
.orpheus-library-results { position: relative; display: grid; grid-template-columns: 1fr; gap: 8px; margin: 0 28px 10px; padding-bottom: 4px; }
.orpheus-library-track { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; min-width: 0; padding: 12px 14px; border: 1px solid #ffffff25; border-left: 4px solid var(--orpheus-accent); border-radius: 10px; background: linear-gradient(100deg,#202329,#181a1d); transition: border-color .18s, transform .18s, background .18s; }
.orpheus-library-track:hover { border-color: var(--orpheus-accent); background: #1d1f1c; transform: translateY(-1px); }
.orpheus-library-track strong { display:block; overflow: hidden; color: #f7f8ef; font-size: .98rem; line-height:1.3; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-library-track span { display:block; overflow: hidden; margin-top:2px; color: #d5dac9; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-library-track small { display:block; overflow: hidden; margin-top:5px; color: #aeb5a3; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-library-track-main { min-width:0; }
.orpheus-library-track-meta { display:flex; align-items:center; gap:7px; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-library-track-meta > span { min-width:56px; margin-right:3px; padding:4px 7px; border:1px solid #c4d96a38; border-radius:999px; color:var(--orpheus-accent); background:#c4d96a12; font-size:.7rem; font-weight:800; text-align:center; white-space:nowrap; }
.orpheus-hls-badge { display:inline-flex; align-items:center; gap:4px; min-width:34px; padding:4px 6px; border:1px solid #ffffff28; border-radius:999px; color:var(--orpheus-muted); background:#ffffff0b; font-size:.62rem; font-weight:850; letter-spacing:.04em; text-align:center; white-space:nowrap; }
.orpheus-hls-badge::before { content:'•'; font-size:1rem; line-height:.5; }
.orpheus-hls-badge.is-ready { border-color:#50d89066; color:#72e6a8; background:#50d89014; }
.orpheus-hls-badge.is-pending, .orpheus-hls-badge.is-processing { border-color:#f2bd5266; color:#f2bd52; background:#f2bd5214; }
.orpheus-hls-badge.is-processing::before { content:'◌'; }
.orpheus-hls-badge.is-error { border-color:#ee707066; color:#ee9189; background:#ee707014; }
.orpheus-hls-badge.is-error::before { content:'!'; }
.orpheus-library-track-meta button { padding:7px 9px; border:1px solid #ffffff30; border-radius:7px; color:#f4f6ea; background:#2a2d31; cursor:pointer; font-size:.72rem; font-weight:700; }
.orpheus-library-track-meta button:hover, .orpheus-library-track-meta button:focus-visible { border-color:var(--orpheus-accent); color:var(--orpheus-accent); }
.orpheus-library-meta-select:focus-within { outline:2px solid var(--orpheus-accent); outline-offset:3px; border-radius:4px; }
.orpheus-library-track:focus-within, .orpheus-library-pagination button:focus-visible, .orpheus-library-toolbar select:focus-visible, .orpheus-library-toolbar button:focus-visible, .orpheus-library-search button:focus-visible { outline:2px solid var(--orpheus-accent); outline-offset:2px; }
.orpheus-library-search + .orpheus-library-toolbar + .orpheus-state-loading { margin:0 28px 12px; padding:10px 13px; border:1px solid #c4d96a30; border-radius:9px; color:#dce4c2; background:#1b1e1e; font-size:.84rem; font-weight:700; }
.orpheus-library-pagination { display:flex; justify-content:center; align-items:center; gap:12px; margin:4px 28px 8px; padding:8px 12px; border:1px solid #ffffff18; border-radius:9px; color:var(--orpheus-muted); background:#17191c; font-size:.82rem; }
.orpheus-library-pagination button { padding:7px 10px; border:1px solid #ffffff24; border-radius:7px; color:var(--orpheus-text); background:#202125; cursor:pointer; }
.orpheus-library-pagination button:disabled { opacity:.4; cursor:default; }
.orpheus-library-drawer { width:min(520px,calc(100% - 32px)); padding:24px; border:1px solid #c4d96a66; border-radius:14px; color:var(--orpheus-text); background:#17181b; }
.orpheus-library-drawer { margin:auto; box-shadow:0 24px 80px #000c; }
.orpheus-library-drawer::backdrop { background:#0009; backdrop-filter:blur(3px); }
.orpheus-library-drawer-close { float:right; padding:6px 9px; border:1px solid #ffffff22; border-radius:7px; color:var(--orpheus-text); background:#24262a; }
.orpheus-library-drawer h2 { margin-top:24px; color:var(--orpheus-accent); }
.orpheus-library-drawer dd { margin:3px 0 12px; overflow-wrap:anywhere; color:var(--orpheus-muted); }
.orpheus-library-drawer label { display:grid; gap:6px; margin:16px 0; color:var(--orpheus-muted); font-size:.82rem; }
.orpheus-library-drawer select { padding:10px; border:1px solid #ffffff24; border-radius:8px; color:var(--orpheus-text); background:#0f1012; }
.orpheus-library-drawer > button:not(.orpheus-library-drawer-close) { padding:9px 12px; border:1px solid var(--orpheus-accent-strong); border-radius:8px; color:#14150f; background:var(--orpheus-accent); font-weight:750; }
.orpheus-playlist-picker-track { margin:0 0 14px; padding:11px 12px; overflow:hidden; border:1px solid #ffffff18; border-radius:9px; color:var(--orpheus-text); background:#202025; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
[data-orpheus-playlist-state]:empty, [data-orpheus-playlist-picker-state]:empty { display:none; }
.orpheus-playlists { margin:0 28px; }
.orpheus-playlist-create { display:grid; grid-template-columns:minmax(160px,.8fr) minmax(180px,1fr) auto; gap:10px; align-items:end; margin-bottom:18px; padding:14px; border:1px solid #c4d96a38; border-radius:12px; background:#17181b; }
.orpheus-playlist-create label, .orpheus-playlist-edit label, .orpheus-playlist-acl label { display:grid; gap:6px; color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-playlist-create input, .orpheus-playlist-edit input, .orpheus-playlist-track-search input, .orpheus-playlist-acl select { min-width:0; padding:10px 11px; border:1px solid #ffffff24; border-radius:8px; color:var(--orpheus-text); background:#0f1012; }
.orpheus-playlist-create button, .orpheus-playlist-edit > button, .orpheus-playlist-track-search button, .orpheus-playlist-acl button { padding:10px 12px; border:1px solid var(--orpheus-accent-strong); border-radius:8px; color:#14150f; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-playlist-layout { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); gap:16px; }
.orpheus-playlist-list-panel, .orpheus-playlist-detail-panel { min-width:0; padding:18px; border:1px solid #ffffff20; border-radius:14px; background:#151519; }
.orpheus-playlist-list-panel h2, .orpheus-playlist-detail-panel h2 { margin:0 0 14px; }
.orpheus-playlist-list { display:grid; gap:8px; }
.orpheus-playlist-list-item { display:flex; align-items:stretch; gap:8px; border:1px solid #ffffff18; border-radius:9px; background:#202025; }
.orpheus-playlist-list-item.is-selected { border-color:var(--orpheus-accent); }
.orpheus-playlist-list-item button { flex:1; min-width:0; padding:10px; border:0; color:var(--orpheus-text); background:transparent; text-align:left; cursor:pointer; }
.orpheus-playlist-list-item strong, .orpheus-playlist-list-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-playlist-list-item small { margin-top:3px; color:var(--orpheus-muted); }
.orpheus-playlist-list-item > span { align-self:center; margin-right:10px; color:var(--orpheus-accent); font-size:.68rem; }
.orpheus-playlist-detail-heading { display:flex; align-items:start; justify-content:space-between; gap:10px; }
.orpheus-playlist-detail-heading h2 { margin-top:3px; }
.orpheus-playlist-detail-actions, .orpheus-playlist-item-actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.orpheus-playlist-play-all { padding:8px 10px; border:1px solid var(--orpheus-accent-strong); border-radius:8px; color:#14150f; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-secondary-button { padding:8px 10px; border:1px solid #ffffff28; border-radius:8px; color:var(--orpheus-text); background:#25252a; cursor:pointer; }
.orpheus-playlist-edit { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding-bottom:18px; border-bottom:1px solid #ffffff18; }
.orpheus-playlist-edit .orpheus-playlist-detail-heading, .orpheus-playlist-edit .orpheus-checkbox, .orpheus-playlist-edit > button { grid-column:1 / -1; }
.orpheus-checkbox { display:flex !important; align-items:center; gap:8px !important; }
.orpheus-playlist-items, .orpheus-playlist-acl { margin-top:18px; }
.orpheus-playlist-items h3, .orpheus-playlist-acl h3 { margin:0 0 10px; font-size:1rem; }
.orpheus-playlist-items ul, .orpheus-playlist-acl ul { display:grid; gap:7px; margin:0 0 12px; padding:0; list-style:none; }
.orpheus-playlist-items li, .orpheus-playlist-acl li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border:1px solid #ffffff18; border-radius:8px; color:var(--orpheus-text); background:#202025; }
.orpheus-playlist-items li span, .orpheus-playlist-acl li span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-playlist-items li small, .orpheus-playlist-acl li small { color:var(--orpheus-muted); }
.orpheus-playlist-items li .orpheus-hls-badge { vertical-align:middle; margin-left:4px; }
.orpheus-playlist-items li button, .orpheus-playlist-acl li button { flex:0 0 auto; padding:6px 8px; border:1px solid #ffffff28; border-radius:7px; color:var(--orpheus-text); background:#25252a; cursor:pointer; font-size:.72rem; }
.orpheus-playlist-items li .orpheus-playlist-item-start { border-color:var(--orpheus-accent-strong); color:#14150f; background:var(--orpheus-accent); font-weight:700; }
.orpheus-playlist-track-search, .orpheus-playlist-acl form { display:flex; gap:8px; margin-top:10px; }
.orpheus-playlist-track-search input { flex:1; }
[data-playlist-track-results] { display:grid; gap:6px; margin-top:8px; }
[data-playlist-track-results] button { padding:8px 10px; border:1px solid #ffffff20; border-radius:8px; color:var(--orpheus-text); background:#202025; text-align:left; cursor:pointer; }
[data-playlist-track-results] small { color:var(--orpheus-muted); }
.orpheus-admin-subnav { display:flex; flex-wrap:wrap; gap:8px; margin:0 28px; padding:8px; border:1px solid #ffffff18; border-radius:11px; background:#151619; }
.orpheus-admin-subnav a { padding:8px 12px; border:1px solid transparent; border-radius:8px; color:var(--orpheus-muted); font-size:.82rem; text-decoration:none; }
.orpheus-admin-subnav a:hover, .orpheus-admin-subnav a[aria-current="page"] { border-color:#c4d96a55; color:var(--orpheus-accent); background:#c4d96a12; }
.orpheus-admin-status, .orpheus-admin-scanner { margin:0 28px; padding:18px; border:1px solid #c4d96a38; border-radius:14px; background:#151519; }
.orpheus-admin-status-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.orpheus-admin-status-heading h2 { margin:0; }
.orpheus-panel-kicker { margin:0 0 4px; color:var(--orpheus-accent); font-size:.68rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.orpheus-admin-status-lead, .orpheus-admin-scanner-lead { margin:5px 0 0; color:var(--orpheus-muted); font-size:.84rem; }
.orpheus-admin-status-heading button { padding:8px 10px; border:1px solid #ffffff28; border-radius:8px; color:var(--orpheus-text); background:#25252a; cursor:pointer; }
.orpheus-admin-status-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:14px; }
.orpheus-admin-status-grid article { padding:11px 12px; border:1px solid #ffffff18; border-radius:9px; background:#202025; }
.orpheus-admin-status-grid strong { display:block; margin-top:4px; color:var(--orpheus-text); }
.orpheus-admin-status-grid small { display:block; margin-top:4px; overflow-wrap:anywhere; color:var(--orpheus-muted); }
.orpheus-admin-status-secondary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:10px; }
.orpheus-admin-status-secondary article { padding:10px 12px; border:1px solid #ffffff18; border-radius:9px; background:#1b1c20; }
.orpheus-admin-status-secondary span, .orpheus-admin-runtime-grid span, .orpheus-admin-scan-secondary span { display:block; color:var(--orpheus-muted); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; }
.orpheus-admin-status-secondary strong { display:block; margin-top:4px; color:var(--orpheus-text); }
.orpheus-admin-status-secondary small { display:block; margin-top:4px; overflow-wrap:anywhere; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-admin-runtime { margin-top:10px; border-top:1px solid #ffffff18; color:var(--orpheus-muted); }
.orpheus-admin-runtime summary { padding-top:10px; cursor:pointer; font-size:.78rem; }
.orpheus-admin-runtime-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:10px; }
.orpheus-admin-runtime-grid article { padding:9px 10px; border:1px solid #ffffff18; border-radius:8px; background:#1b1c20; }
.orpheus-admin-runtime-grid strong { display:block; margin-top:4px; overflow:hidden; color:var(--orpheus-text); font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-status-meta { margin-top:10px; padding-top:10px; border-top:1px solid #ffffff18; color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-admin-scanner-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; }
.orpheus-admin-scanner-heading h2 { margin:0; }
.orpheus-admin-scan-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.orpheus-admin-scan-button { flex:0 0 auto; padding:10px 14px; border:1px solid var(--orpheus-accent-strong); border-radius:8px; color:#14150f; background:var(--orpheus-accent); font-weight:800; cursor:pointer; }
.orpheus-admin-scan-button:disabled { cursor:wait; opacity:.55; }
.orpheus-admin-scan-abort-button { border-color:#e05b50; color:#fff4f2; background:#9d3029; }
.orpheus-admin-scan-abort-button:hover, .orpheus-admin-scan-abort-button:focus-visible { border-color:#ff9b91; background:#c63d34; }
.orpheus-admin-scan-live { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; padding:10px 12px; border:1px solid #ffffff18; border-radius:9px; color:var(--orpheus-text); background:#202025; }
.orpheus-admin-scan-live span { color:var(--orpheus-accent); font-weight:800; }
.orpheus-admin-scan-progress-bar { height:7px; margin-top:10px; overflow:hidden; border-radius:999px; background:#0f1012; }
.orpheus-admin-scan-progress-bar span { display:block; width:0; height:100%; border-radius:inherit; background:var(--orpheus-accent); transition:width .25s ease; }
.orpheus-admin-scan-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:12px; }
.orpheus-admin-scan-metrics article { padding:9px 10px; border:1px solid #ffffff18; border-radius:8px; background:#1b1c20; }
.orpheus-admin-scan-metrics span { display:block; color:var(--orpheus-muted); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; }
.orpheus-admin-scan-metrics strong { display:block; margin-top:4px; overflow:hidden; color:var(--orpheus-text); font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-scan-secondary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:8px; }
.orpheus-admin-scan-secondary article { padding:9px 10px; border:1px solid #ffffff18; border-radius:8px; background:#1b1c20; }
.orpheus-admin-scan-secondary strong { display:block; margin-top:4px; overflow:hidden; color:var(--orpheus-text); font-size:.82rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-scan-error-value { color:#ff9b91 !important; }
.orpheus-admin-scan-updated { margin:9px 0 0; color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-admin-scan-note { min-height:1.2em; margin:10px 0 0; color:var(--orpheus-muted); font-size:.8rem; }
.orpheus-admin-hls { margin:0 28px; padding:18px; border:1px solid #55d9e088; border-radius:14px; background:#151519; }
.orpheus-admin-metadata { border-color:#bd8cff66; }
.orpheus-admin-metadata-search { display:flex; align-items:end; gap:9px; margin-top:16px; }
.orpheus-admin-metadata-search label { display:grid; flex:1; gap:5px; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-admin-metadata-search input { width:100%; min-height:40px; padding:9px 11px; border:1px solid #ffffff28; border-radius:8px; color:var(--orpheus-text); background:#202025; }
.orpheus-admin-metadata-results { display:grid; gap:6px; max-height:390px; margin-top:10px; overflow:auto; }
.orpheus-admin-metadata-track { display:flex; align-items:start; gap:10px; padding:9px 11px; border:1px solid #ffffff18; border-radius:8px; background:#1b1c20; cursor:pointer; }
.orpheus-admin-metadata-track:has(input:checked) { border-color:#c4d96a88; background:#22271b; }
.orpheus-admin-metadata-track input { flex:0 0 auto; width:17px; height:17px; margin-top:2px; accent-color:var(--orpheus-accent); }
.orpheus-admin-metadata-track span, .orpheus-admin-metadata-track strong, .orpheus-admin-metadata-track small { display:block; min-width:0; }
.orpheus-admin-metadata-track strong { overflow:hidden; color:var(--orpheus-text); text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-metadata-track small { margin-top:3px; overflow-wrap:anywhere; color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-admin-metadata-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:10px; padding-bottom:14px; border-bottom:1px solid #ffffff18; }
.orpheus-admin-metadata-actions span { color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-admin-metadata-layout { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1.8fr); gap:16px; margin-top:14px; }
.orpheus-admin-metadata-layout > section { min-width:0; }
.orpheus-admin-metadata-layout h3 { margin:0 0 9px; color:var(--orpheus-text); font-size:1rem; }
.orpheus-admin-metadata-jobs { display:grid; gap:7px; }
.orpheus-admin-metadata-job-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; align-items:stretch; }
.orpheus-admin-metadata-job { display:block; width:100%; padding:9px 10px; border:1px solid #ffffff1d; border-radius:8px; color:var(--orpheus-text); background:#1b1c20; text-align:left; cursor:pointer; }
.orpheus-admin-metadata-job:hover, .orpheus-admin-metadata-job.is-active { border-color:#bd8cff99; background:#25202c; }
.orpheus-admin-metadata-job-action { align-self:center; white-space:nowrap; padding:7px 9px; }
.orpheus-admin-metadata-job strong, .orpheus-admin-metadata-job small { display:block; }
.orpheus-admin-metadata-job small { margin-top:4px; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-admin-metadata-detail { display:grid; align-content:start; gap:8px; }
.orpheus-admin-metadata-job-summary { margin:-4px 0 2px; color:var(--orpheus-muted); font-size:.75rem; }
.orpheus-admin-metadata-item { min-width:0; padding:10px; border:1px solid #ffffff1e; border-radius:9px; background:#1b1c20; }
.orpheus-admin-metadata-item-heading { display:flex; justify-content:space-between; gap:8px; }
.orpheus-admin-metadata-item-heading > div, .orpheus-admin-metadata-item-heading strong, .orpheus-admin-metadata-item-heading small { display:block; min-width:0; }
.orpheus-admin-metadata-item-heading strong { overflow-wrap:anywhere; }
.orpheus-admin-metadata-item-heading small, .orpheus-admin-metadata-item-heading > span { margin-top:3px; color:var(--orpheus-muted); font-size:.7rem; overflow-wrap:anywhere; }
.orpheus-admin-metadata-candidates { display:grid; gap:6px; margin-top:9px; }
.orpheus-admin-metadata-candidates h4 { margin:0 0 2px; font-size:.78rem; }
.orpheus-admin-metadata-candidate { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px; border:1px solid #ffffff16; border-radius:8px; background:#222329; }
.orpheus-admin-metadata-candidate.is-selected { border-color:#c4d96a88; background:#24291c; }
.orpheus-admin-metadata-candidate > div { min-width:0; }
.orpheus-admin-metadata-cover { display:grid; flex:0 0 72px; width:72px; height:72px; place-items:center; overflow:hidden; border:1px solid #ffffff16; border-radius:7px; color:var(--orpheus-muted); background:#17181b; text-align:center; }
.orpheus-admin-metadata-cover img { display:block; width:100%; height:100%; object-fit:cover; }
.orpheus-admin-metadata-candidate .orpheus-admin-metadata-cover > button { width:100%; height:100%; padding:0; border:0; border-radius:inherit; background:transparent; cursor:zoom-in; }
.orpheus-admin-metadata-item-cover { margin-top:8px; }
.orpheus-admin-metadata-item-cover > button { width:100%; height:100%; padding:0; border:0; border-radius:inherit; background:transparent; cursor:zoom-in; }
.orpheus-admin-metadata-cover span { padding:4px; font-size:.62rem; line-height:1.25; }
.orpheus-admin-metadata-cover-dialog { inset:0; width:fit-content; height:fit-content; max-width:90vw; max-height:90vh; margin:auto; padding:0; overflow:visible; border:1px solid #ffffff30; border-radius:14px; color:var(--orpheus-text); background:#17181b; }
.orpheus-admin-metadata-cover-dialog::backdrop { background:#07080bd9; backdrop-filter:blur(5px); }
.orpheus-admin-metadata-cover-dialog-content { position:relative; display:grid; width:fit-content; height:fit-content; max-width:90vw; max-height:90vh; padding:46px 16px 16px; box-sizing:border-box; place-items:center; }
.orpheus-admin-metadata-cover-dialog-content img { display:block; max-width:min(78vw, 760px); max-height:76vh; object-fit:contain; border-radius:5px; }
.orpheus-admin-metadata-cover-dialog-content img[hidden] { display:none; }
.orpheus-admin-metadata-cover-dialog-content span { color:var(--orpheus-muted); }
.orpheus-admin-metadata-cover-dialog-close { position:absolute; top:10px; right:10px; display:grid; width:38px; height:38px; padding:0; place-items:center; border:1px solid #ffffff35; border-radius:50%; color:var(--orpheus-text); background:#26272d; font-size:1.5rem; line-height:1; cursor:pointer; }
.orpheus-admin-metadata-candidate-info { flex:1 1 auto; }
.orpheus-admin-metadata-candidate strong, .orpheus-admin-metadata-candidate small { display:block; overflow-wrap:anywhere; }
.orpheus-admin-metadata-candidate small { margin-top:3px; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-admin-metadata-candidate button, .orpheus-admin-metadata-review button { flex:0 0 auto; padding:7px 9px; border:1px solid #c4d96a66; border-radius:7px; color:var(--orpheus-text); background:#25252a; font-size:.72rem; cursor:pointer; }
.orpheus-admin-metadata-candidate button:disabled, .orpheus-admin-metadata-review button:disabled { cursor:not-allowed; opacity:.48; }
.orpheus-admin-metadata-review { display:grid; gap:9px; margin-top:10px; padding-top:9px; border-top:1px solid #ffffff18; }
.orpheus-admin-metadata-review fieldset { display:flex; flex-wrap:wrap; gap:8px 12px; margin:0; padding:7px 9px; border:1px solid #ffffff20; border-radius:7px; }
.orpheus-admin-metadata-review legend { padding:0 4px; color:var(--orpheus-muted); font-size:.68rem; }
.orpheus-admin-metadata-review fieldset label { color:var(--orpheus-text); font-size:.72rem; }
.orpheus-admin-metadata-review input { accent-color:var(--orpheus-accent); }
.orpheus-admin-metadata-review > div { display:flex; flex-wrap:wrap; gap:6px; }
.orpheus-admin-metadata-review > div > small { flex-basis:100%; color:#f2bd52; font-size:.7rem; }
.orpheus-admin-metadata-upload { display:grid; flex-basis:100%; gap:5px; margin-top:10px; padding-top:10px; border-top:1px solid #ffffff18; color:var(--orpheus-text); font-size:.72rem; }
.orpheus-admin-metadata-upload input[type=file] { box-sizing:border-box; width:100%; min-height:42px; padding:5px; border:1px solid #ffffff25; border-radius:7px; color:var(--orpheus-muted); background:#17181b; font-size:.72rem; }
.orpheus-admin-metadata-upload input[type=file]::file-selector-button { margin-right:10px; padding:8px 11px; border:1px solid #c4d96a66; border-radius:7px; color:var(--orpheus-text); background:#25252a; font:700 .72rem/1.15 system-ui,sans-serif; cursor:pointer; transition:border-color .15s ease,background-color .15s ease; }
.orpheus-admin-metadata-upload input[type=file]::-webkit-file-upload-button { margin-right:10px; padding:8px 11px; border:1px solid #c4d96a66; border-radius:7px; color:var(--orpheus-text); background:#25252a; font:700 .72rem/1.15 system-ui,sans-serif; cursor:pointer; transition:border-color .15s ease,background-color .15s ease; }
.orpheus-admin-metadata-upload input[type=file]:hover::file-selector-button, .orpheus-admin-metadata-upload input[type=file]:hover::-webkit-file-upload-button { border-color:#c4d96aaa; background:#30312a; }
.orpheus-admin-metadata-upload input[type=file]:focus-visible { outline:2px solid var(--orpheus-accent); outline-offset:2px; }
.orpheus-admin-metadata-upload input[type=file]:disabled::file-selector-button, .orpheus-admin-metadata-upload input[type=file]:disabled::-webkit-file-upload-button { cursor:wait; opacity:.55; }
.orpheus-admin-metadata-upload-preview { display:flex; min-width:0; align-items:center; gap:9px; padding:6px; border:1px solid #ffffff18; border-radius:7px; background:#17181b; }
.orpheus-admin-metadata-upload-preview[hidden], .orpheus-admin-metadata-upload-preview img[hidden] { display:none !important; }
.orpheus-admin-metadata-upload-preview img { display:block; flex:0 0 58px; width:58px; height:58px; border:1px solid #ffffff20; border-radius:5px; object-fit:cover; }
.orpheus-admin-metadata-upload-preview span { min-width:0; overflow-wrap:anywhere; color:var(--orpheus-text); font-size:.72rem; }
.orpheus-admin-metadata-upload-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.orpheus-admin-metadata-upload-actions button { min-height:38px; padding:8px 11px; font-size:.72rem; }
.orpheus-admin-metadata-upload-actions button:disabled { cursor:not-allowed; opacity:.48; }
.orpheus-admin-metadata-upload-status { flex:1 1 210px; min-width:0; overflow-wrap:anywhere; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-admin-metadata-upload-status[data-state="ready"] { color:var(--orpheus-muted); }
.orpheus-admin-metadata-upload-status[data-state="loading"] { color:#f2bd52; }
.orpheus-admin-metadata-upload-status[data-state="success"] { color:#aee2ae; }
.orpheus-admin-metadata-upload-status[data-state="error"] { color:#ff9b91; }
@media (max-width:760px) { .orpheus-admin-metadata-upload-actions { align-items:stretch; flex-direction:column; } .orpheus-admin-metadata-upload-actions button { width:100%; } }
.orpheus-admin-metadata-review .orpheus-admin-metadata-upload > small { flex-basis:auto; color:var(--orpheus-muted); font-size:.67rem; }
.orpheus-admin-metadata-error { color:#ff9b91 !important; }
.orpheus-admin-metadata-no-candidates { color:var(--orpheus-muted); font-size:.75rem; }
.orpheus-admin-hls-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:14px; }
.orpheus-admin-hls-summary article { min-width:0; padding:8px 10px; border:1px solid #ffffff18; border-radius:9px; background:#202025; }
.orpheus-admin-hls-summary span, .orpheus-admin-hls-active > span { display:block; color:var(--orpheus-muted); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; }
.orpheus-admin-hls-summary strong { display:block; margin-top:2px; color:var(--orpheus-text); }
.orpheus-admin-hls-summary small { display:block; margin-top:1px; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-admin-hls-active { margin-top:10px; padding:11px 12px; border:1px solid #55d9e044; border-radius:9px; background:#16252a; }
.orpheus-admin-hls-active strong, .orpheus-admin-hls-active small { display:block; margin-top:4px; overflow:hidden; color:var(--orpheus-text); text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-hls-active small { color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-admin-hls-active .orpheus-admin-scan-progress-bar { margin-top:9px; }
.orpheus-admin-hls-list { display:grid; gap:8px; margin-top:12px; }
.orpheus-admin-hls-job { display:grid; grid-template-columns:minmax(0,1fr) minmax(130px,.35fr) auto; gap:12px; align-items:center; padding:10px 12px; border:1px solid #ffffff18; border-radius:9px; background:#1b1c20; }
.orpheus-admin-hls-job-main, .orpheus-admin-hls-job-state { min-width:0; }
.orpheus-admin-hls-job-main strong, .orpheus-admin-hls-job-main small, .orpheus-admin-hls-job-state span, .orpheus-admin-hls-job-state strong, .orpheus-admin-hls-job-state small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-hls-job-main small { margin-top:3px; color:var(--orpheus-muted); font-size:.74rem; }
.orpheus-admin-hls-job-state span { color:var(--orpheus-accent); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.orpheus-admin-hls-job-state strong { margin-top:3px; color:var(--orpheus-text); }
.orpheus-admin-hls-error { margin-top:3px; color:#ff9b91 !important; font-size:.72rem; }
.orpheus-admin-hls-job-action button { padding:7px 9px; border:1px solid #ffffff28; border-radius:7px; color:var(--orpheus-text); background:#25252a; cursor:pointer; }
.orpheus-admin-hls-job-action button:disabled { cursor:wait; opacity:.55; }
.orpheus-library-search + .orpheus-state-loading, .orpheus-library-metadata + .orpheus-state-loading { margin: 0 28px 18px; }
.orpheus-state-empty { border: 1px dashed #ffffff28; }
.orpheus-state-forbidden { color: #e6c78e; border: 1px solid #b8874255; }
.orpheus-state-offline { display: none; width: min(100% - 32px, 1120px); margin: 14px auto 0; color: #e6c78e; border: 1px solid #b8874255; background: #2a2117; }
.is-offline .orpheus-state-offline { display: block; }
.orpheus-global-player audio[data-orpheus-audio] { display: none; }
.orpheus-global-player { position: relative; z-index: 10; display: flex; align-items: center; gap: 18px; width: min(calc(100% - 32px), 1120px); margin: 20px auto 24px; padding: 12px 16px; border: 1px solid #55d9e088; border-top: 2px solid #55d9e0; border-radius: 14px; background: #121b20f5; box-shadow: 0 -10px 36px #55d9e022, 0 14px 42px #000b; backdrop-filter: blur(12px); }
.orpheus-global-player[hidden] { display: none !important; }
.orpheus-global-player.is-floating { position: fixed; z-index: 100; left: auto; width: auto; margin: 0; }
.orpheus-global-player.is-end-position { position: absolute; z-index: 10; margin: 0; }
.orpheus-player-meta { display: flex; flex: 0 1 220px; flex-direction: column; min-width: 150px; gap: 2px; }
.orpheus-player-label { color: #55d9e0; font-size: .68rem; font-weight: 800; letter-spacing: .16em; }
.orpheus-player-meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-player-state { color: var(--orpheus-muted); font-size: .78rem; }
.orpheus-player-controls { display: grid; flex: 1 1 auto; grid-template-columns: auto minmax(180px, 1fr) auto; grid-template-areas: "transport progress tools"; align-items: center; gap: 14px; min-width: 0; }
.orpheus-player-transport { grid-area: transport; display: flex; align-items: center; gap: 7px; }
.orpheus-player-progress { grid-area: progress; display: grid; grid-template-columns: 38px minmax(80px, 1fr) 38px; align-items: center; gap: 8px; min-width: 0; color: var(--orpheus-muted); font-size: .72rem; text-align: center; }
.orpheus-player-progress input { width: 100%; accent-color: #55d9e0; }
.orpheus-player-tools { grid-area: tools; display: flex; align-items: center; gap: 7px; }
.orpheus-player-control { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 1px solid #55d9e044; border-radius: 9px; color: #ccecef; background: #16252a; font-size: 1rem; line-height: 1; }
.orpheus-player-control[hidden] { display: none !important; }
.orpheus-player-control--nav { color: var(--orpheus-muted); }
.orpheus-player-control--main { width: 44px; height: 44px; border-radius: 50%; color: #071215; background: #55d9e0; box-shadow: 0 0 18px #55d9e066; }
.orpheus-player-control--tool { color: var(--orpheus-muted); font-weight: 700; }
.orpheus-player-control:disabled, .orpheus-player-progress input:disabled { cursor: not-allowed; opacity: .52; }
.orpheus-player-info { width: min(440px, calc(100% - 32px)); padding: 24px; border: 1px solid #55d9e088; border-radius: 14px; color: var(--orpheus-text); background: #121b20f5; box-shadow: 0 24px 80px #000c; backdrop-filter: blur(12px); }
.orpheus-player-info::backdrop { background: #0009; backdrop-filter: blur(3px); }
.orpheus-player-info-close { display: inline-grid; float: right; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #55d9e088; border-radius: 12px; color: #ccecef; background: #16252a; font-size: 1.1rem; cursor: pointer; appearance: none; -webkit-appearance: none; outline: none; box-shadow: none; -webkit-tap-highlight-color: transparent; }
.orpheus-player-info-close svg { display: block; width: 22px; height: 22px; }
.orpheus-player-info-close:focus { outline: none; box-shadow: none; }
.orpheus-player-info-close:focus-visible { outline: 2px solid var(--orpheus-accent); outline-offset: 2px; }
.orpheus-global-player.is-info-open .orpheus-player-tools [data-player-action="close"] { display: none !important; }
@supports selector(:has(*)) {
  .orpheus-global-player:has(+ .orpheus-player-info[open]) .orpheus-player-tools [data-player-action="close"], body:has(.orpheus-player-info[open]) .orpheus-global-player [data-player-action="close"] { display: none !important; }
}
.orpheus-player-info h2 { margin: 4px 0 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orpheus-player-info-cover { width: 192px; height: 192px; margin: 8px auto 18px; overflow: hidden; border: 1px solid #c4d96a66; border-radius: 16px; background: #202025; }
.orpheus-player-info-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.orpheus-player-info dl { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1.3fr); gap: 8px 14px; margin: 0; }
.orpheus-player-info dt { color: var(--orpheus-muted); font-size: .78rem; }
.orpheus-player-info dd { min-width: 0; margin: 0; overflow: hidden; color: var(--orpheus-text); font-size: .88rem; text-overflow: ellipsis; white-space: nowrap; }
.is-standalone .orpheus-app-header { border-bottom-color: #c4d96a42; }
/* Standard-Header & Shell reset */
.orpheus-app-shell { position: relative; min-height: 100vh; }
.orpheus-app-header { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; width: calc(100% - 32px); max-width: 1120px; margin: 0 auto; padding: calc(16px + env(safe-area-inset-top)) 18px 16px; border: 1px solid #c4d96a24; border-top: 0; border-radius: 0 0 16px 16px; background: #151519b8; box-shadow: 0 12px 34px #0005; }
.orpheus-app-brand { display: inline-flex; align-items: center; gap: 12px; color: #fff; font-size: 1.5rem; font-weight: 900; letter-spacing: .08em; text-decoration: none; text-shadow: 0 0 18px #c4d96a32; }
.orpheus-app-brand img { width: 38px; height: 38px; border-radius: 50%; clip-path: circle(50%); mix-blend-mode: screen; }
.orpheus-app-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.orpheus-header-right { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; margin-left: auto; }
.orpheus-pwa-actions { position: static; display:flex; align-items:center; gap:6px; z-index: 2; }
.orpheus-pwa-actions button { display:grid; place-items:center; width:28px; height:28px; padding:0; border:1px solid #c4d96a55; border-radius:50%; color:var(--orpheus-accent); background:#151519cc; font-size:1rem; font-weight:750; cursor:pointer; }
.orpheus-pwa-actions button:hover, .orpheus-pwa-actions button:focus-visible { color:#14150f; background:var(--orpheus-accent); }
.orpheus-back-to-top { position:fixed; right:22px; bottom:22px; z-index:120; width:42px; height:42px; border:1px solid #55d9e088; border-radius:50%; color:#071215; background:#55d9e0; font-size:1.3rem; opacity:0; pointer-events:none; transition:opacity .2s ease; }
.orpheus-back-to-top.is-visible { opacity:1; pointer-events:auto; }
.orpheus-admin-radio-list { display:grid; gap:8px; margin-top:16px; }
.orpheus-admin-radio-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 14px; border:1px solid #ffffff18; border-radius:10px; background:#1b1c20; }
.orpheus-admin-radio-order { margin-top:20px; }
.orpheus-admin-radio-order h3 { margin:0; color:var(--orpheus-text); font-size:1rem; }
.orpheus-admin-radio-order > p, .orpheus-admin-radio-order-hint { color:var(--orpheus-muted); font-size:.8rem; }
.orpheus-admin-radio-order-row { display:flex; align-items:center; gap:10px; padding:11px 14px; border:1px solid #ffffff18; border-radius:10px; background:#1b1c20; }
.orpheus-admin-radio-order-row.is-radio-dragging { opacity:.45; border-color:var(--orpheus-accent); }
.orpheus-admin-radio-list[data-saving="true"] { opacity:.72; }
.orpheus-admin-radio-drag-handle { flex:0 0 auto; min-width:36px; padding:7px 9px !important; color:var(--orpheus-text) !important; background:#25262b !important; border-color:#ffffff30 !important; cursor:grab !important; touch-action:none; font-size:1.1rem; }
.orpheus-admin-radio-drag-handle:active { cursor:grabbing !important; }
.orpheus-admin-radio-order-name { display:grid; flex:1 1 auto; min-width:0; gap:3px; }
.orpheus-admin-radio-order-name strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-radio-order-name small { color:var(--orpheus-muted); font-size:.75rem; }
.orpheus-admin-radio-order-moves { display:flex; flex:0 0 auto; gap:6px; }
.orpheus-admin-radio-order-status { min-height:1.2em; color:var(--orpheus-accent); font-size:.8rem; }
.orpheus-admin-radio-order-moves button[data-radio-order-move], .orpheus-admin-radio-actions button[data-radio-order-move] { display:inline-grid; flex:0 0 38px; place-items:center; width:38px; height:38px; min-width:38px; padding:0; border:1px solid #c4d96a55; border-radius:11px; color:var(--orpheus-accent); background:#17181c; cursor:pointer; touch-action:manipulation; transition:color .15s ease, background-color .15s ease, border-color .15s ease, transform .15s ease; }
.orpheus-admin-radio-order-moves button[data-radio-order-move] svg, .orpheus-admin-radio-actions button[data-radio-order-move] svg { display:block; width:17px; height:17px; }
.orpheus-admin-radio-order-moves button[data-radio-order-move]:hover, .orpheus-admin-radio-order-moves button[data-radio-order-move]:focus-visible, .orpheus-admin-radio-actions button[data-radio-order-move]:hover, .orpheus-admin-radio-actions button[data-radio-order-move]:focus-visible { border-color:#c4d96aaa; color:var(--orpheus-accent); background:#c4d96a18; }
.orpheus-admin-radio-order-moves button[data-radio-order-move]:active, .orpheus-admin-radio-actions button[data-radio-order-move]:active { transform:scale(.96); }
.orpheus-admin-radio-order-moves button[data-radio-order-move]:focus-visible, .orpheus-admin-radio-actions button[data-radio-order-move]:focus-visible { outline:2px solid var(--orpheus-accent); outline-offset:2px; }
.orpheus-admin-radio-order-moves button[data-radio-order-move]:disabled, .orpheus-admin-radio-actions button[data-radio-order-move]:disabled { border-color:#ffffff20; color:var(--orpheus-muted); background:#17181c; cursor:not-allowed; opacity:.5; }
.orpheus-admin-radio-main { display:grid; flex:1 1 auto; min-width:0; gap:3px; }
.orpheus-admin-radio-main strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-radio-main small, .orpheus-admin-radio-main span { overflow:hidden; color:var(--orpheus-muted); font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-admin-radio-actions { display:flex; flex:0 0 auto; align-items:center; gap:6px; }
.orpheus-admin-radio-actions form { margin:0; }
.orpheus-admin-radio-row button, .orpheus-admin-radio-dialog button { padding:8px 11px; border:1px solid var(--orpheus-accent-strong); border-radius:8px; color:#14150f; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-admin-radio-dialog { width:min(560px, calc(100% - 32px)); padding:22px; border:1px solid #c4d96a55; border-radius:14px; color:var(--orpheus-text); background:#1b1c20; }
.orpheus-admin-radio-dialog::backdrop { background:#0009; }
.orpheus-admin-radio-dialog form { display:grid; gap:12px; }
.orpheus-admin-radio-dialog label { display:grid; gap:5px; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-admin-radio-dialog input { min-width:0; padding:9px; border:1px solid #ffffff24; border-radius:7px; color:var(--orpheus-text); background:#111216; }
.orpheus-admin-radio-dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:6px; }
.orpheus-admin-radio-active { display:flex !important; align-items:center; gap:8px; text-transform:none !important; }
.orpheus-admin-radio-active input { min-width:auto; }
@media (max-width:760px) { .orpheus-admin-radio-row { align-items:stretch; flex-direction:column; gap:9px; } .orpheus-admin-radio-actions { justify-content:flex-end; } .orpheus-admin-radio-drag-handle { display:none; } .orpheus-admin-radio-order-row { min-height:64px; gap:12px; padding:10px 12px; } .orpheus-admin-radio-order-moves { gap:8px; } .orpheus-admin-radio-order-moves button[data-radio-order-move], .orpheus-admin-radio-actions button[data-radio-order-move] { flex-basis:44px; width:44px; height:44px; min-width:44px; border-radius:13px; } .orpheus-admin-radio-order-moves button[data-radio-order-move] svg, .orpheus-admin-radio-actions button[data-radio-order-move] svg { width:19px; height:19px; } }
.orpheus-app-user { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; color: var(--orpheus-muted); font-size: .78rem; }
.orpheus-app-user span { color: var(--orpheus-accent); font-size: .68rem; font-weight: 800; letter-spacing: .14em; }
.orpheus-app-user { min-width: 0; padding-right: 34px; }
.orpheus-app-user strong { color: var(--orpheus-text); font-size: .84rem; white-space: nowrap; }
.orpheus-logout-link { padding: 7px 10px; border: 1px solid var(--orpheus-line); border-radius: 8px; color: var(--orpheus-text); text-decoration: none; }
.orpheus-logout-form { margin: 0; }
.orpheus-logout-link { background: transparent; font: inherit; cursor: pointer; }
.orpheus-logout-link:hover, .orpheus-logout-link:focus-visible { background: #c4d96a18; }
.orpheus-nav-link { padding: 8px 12px; border-radius: 8px; color: var(--orpheus-muted); text-decoration: none; white-space: nowrap; }
.orpheus-nav-link:hover, .orpheus-nav-link:focus-visible, .orpheus-nav-link.is-active { color: var(--orpheus-text); background: #c4d96a18; }
.orpheus-app-content { width: calc(100% - 32px); max-width: 1120px; margin: 24px auto 0; padding: 52px 0 calc(24px + env(safe-area-inset-bottom)); overflow-x: clip; }
.orpheus-app-content .orpheus-page { width: 100%; padding: 8px 0; border: 0; background: transparent; box-shadow: none; }
.orpheus-app-content .orpheus-page-header, .orpheus-app-content .orpheus-page-intro, .orpheus-app-content .orpheus-toolbar { padding-left: 28px; padding-right: 28px; }
.orpheus-app-content > .orpheus-web-panel { width: 100%; max-width: none; margin: 0; padding: 44px 30px; border-top: 2px solid var(--orpheus-accent); }
.orpheus-app-content > .orpheus-web-panel h1 { font-size: clamp(2.7rem, 8vw, 4.4rem); margin-bottom: 16px; }
@media (max-width: 520px) { main { padding: 34px 28px; } }
@media (max-width: 520px) { .orpheus-library-search { grid-template-columns: 1fr; margin-left: 16px; margin-right: 16px; } .orpheus-library-results { grid-template-columns: 1fr; margin-left: 16px; margin-right: 16px; } .orpheus-library-search + .orpheus-state-loading, .orpheus-library-metadata + .orpheus-state-loading { margin-left: 16px; margin-right: 16px; } }
@media (max-width: 760px) { .orpheus-playlist-create, .orpheus-playlist-edit { grid-template-columns:1fr; } .orpheus-playlist-edit .orpheus-playlist-detail-heading, .orpheus-playlist-edit .orpheus-checkbox, .orpheus-playlist-edit > button { grid-column:auto; } .orpheus-playlist-layout { grid-template-columns:1fr; } .orpheus-playlists, .orpheus-admin-subnav, .orpheus-admin-status, .orpheus-admin-scanner, .orpheus-admin-hls, .orpheus-admin-role-overview { margin-left:16px; margin-right:16px; } .orpheus-admin-role-overview { grid-template-columns:1fr; } .orpheus-admin-page > .orpheus-component-panel { margin-left:16px; margin-right:16px; } .orpheus-admin-status-grid, .orpheus-admin-status-secondary, .orpheus-admin-runtime-grid, .orpheus-admin-scan-metrics, .orpheus-admin-scan-secondary, .orpheus-admin-hls-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .orpheus-admin-scanner-heading { flex-direction:column; } .orpheus-admin-scan-button { width:100%; } .orpheus-admin-metadata-search, .orpheus-admin-metadata-layout { grid-template-columns:1fr; } .orpheus-admin-metadata-search { display:grid; } .orpheus-admin-metadata-candidate { align-items:start; flex-direction:column; } .orpheus-admin-metadata-candidate button { width:100%; } .orpheus-admin-metadata-review > div > button { width:100%; } }
@media (max-width: 760px) { .orpheus-admin-metadata-candidate { display:grid; grid-template-columns:64px minmax(0,1fr); } .orpheus-admin-metadata-cover { grid-row:span 2; width:64px; height:64px; } .orpheus-admin-metadata-candidate button { grid-column:1/-1; } }
@media (max-width: 760px) { .orpheus-youtube-panel, .orpheus-youtube-job, .orpheus-youtube-download-panel, .orpheus-youtube-history { margin-left:16px; margin-right:16px; } }
@media (max-width: 560px) { .orpheus-youtube-form-row { grid-template-columns: 1fr; gap: 10px; } .orpheus-youtube-form button, .orpheus-youtube-actions > *, .orpheus-youtube-action-row > * { width: 100%; } .orpheus-youtube-action-row { width: 100%; } .orpheus-youtube-history-item { align-items: stretch; flex-direction: column; } .orpheus-youtube-history-actions { justify-content: flex-start; } .orpheus-youtube-history-actions > * { flex: 1 1 auto; } }
@media (max-width: 420px) { .orpheus-admin-status-grid, .orpheus-admin-status-secondary, .orpheus-admin-runtime-grid, .orpheus-admin-scan-metrics, .orpheus-admin-scan-secondary, .orpheus-admin-hls-summary { grid-template-columns:1fr; } }
@media (max-width: 520px) { .orpheus-dashboard-summary { grid-template-columns:repeat(2,minmax(0,1fr)); margin-left:16px; margin-right:16px; } .orpheus-playlist-track-search, .orpheus-playlist-acl form { flex-direction:column; } .orpheus-playlist-track-search button, .orpheus-playlist-acl button { width:100%; } }
@media (max-width: 520px) { .orpheus-library-toolbar { margin-left:16px; margin-right:16px; align-items:stretch; } .orpheus-library-toolbar label, .orpheus-library-toolbar select, .orpheus-library-toolbar button { width:100%; } .orpheus-library-metadata { grid-template-columns:1fr; margin-left:16px; margin-right:16px; } .orpheus-library-metadata-actions > * { flex:1 1 auto; text-align:center; } .orpheus-library-track-meta { flex-wrap:wrap; } .orpheus-library-track-meta span { width:100%; } }
@media (max-width: 680px) { .orpheus-admin-hls-job { grid-template-columns:1fr; gap:7px; } .orpheus-admin-hls-job-action button { width:100%; } }
@media (max-width: 680px) { .orpheus-library-track { grid-template-columns:1fr; gap:9px; } .orpheus-library-track-meta { justify-content:flex-start; } .orpheus-library-track-meta > span { margin-right:auto; text-align:left; } }
@media (max-width: 820px) { .orpheus-global-player { align-items: stretch; flex-direction: column; gap: 10px; } .orpheus-player-meta { flex-basis: auto; min-width: 0; } .orpheus-player-controls { grid-template-columns: 1fr; grid-template-areas: "progress" "transport" "tools"; gap: 10px; } .orpheus-player-transport, .orpheus-player-tools { justify-content: center; } }
@media (max-width: 520px) { .orpheus-global-player { width: calc(100% - 24px); margin-left: 12px; margin-right: 12px; padding: 12px; } .orpheus-player-progress { grid-template-columns: 34px minmax(60px, 1fr) 34px; gap: 6px; } }
@media (max-width: 700px) { .orpheus-library-stats { grid-template-columns:repeat(2,minmax(0,1fr)); margin-left:16px; margin-right:16px; } }
@media (min-width: 701px) { .orpheus-app-nav { justify-content: flex-start; } }
@media (max-width: 700px) { .orpheus-app-header { align-items: stretch; flex-direction: column; gap: 12px; } .orpheus-app-nav { overflow: hidden; flex-wrap: nowrap; gap: 0; padding-bottom: 2px; } .orpheus-nav-link { flex: 0 0 auto; padding: 7px 6px; font-size: .84rem; } .orpheus-app-user { margin-left: 0; } .orpheus-app-content { padding-top: 28px; } }
@media (max-width: 700px) {
  .orpheus-pwa-shell .orpheus-app-header { position: fixed; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; width: calc(100% - 24px); max-width: none; gap: 8px; padding: calc(10px + env(safe-area-inset-top)) 10px 10px; overflow: visible; }
  .orpheus-pwa-shell .orpheus-app-brand { min-width: 0; gap: 8px; font-size: clamp(1.05rem, 5vw, 1.35rem); letter-spacing: .06em; }
  .orpheus-pwa-shell .orpheus-app-brand span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .orpheus-pwa-shell .orpheus-app-brand img { width: 44px; height: 44px; flex-basis: 44px; border-radius: 12px; clip-path: none; }
  .orpheus-pwa-shell .orpheus-app-nav { display: none !important; }
  .orpheus-pwa-shell .orpheus-header-right { gap: 8px; min-width: 0; }
  body.orpheus-pwa-view .orpheus-bottom-nav { position: fixed; display: grid; grid-template-columns: repeat(4, 1fr); left: 0; right: 0; bottom: calc(0px - env(safe-area-inset-bottom, 0px)); z-index: 130; padding: 4px 8px env(safe-area-inset-bottom, 0px); background: #151519; border-top: 1px solid #c4d96a55; transform: none; }
  body.orpheus-pwa-view .orpheus-bottom-nav .orpheus-nav-link { min-width: 0; padding: 7px 3px; text-align: center; font-size: .72rem; }
  body.orpheus-pwa-view .orpheus-bottom-nav .orpheus-nav-link { display: grid; justify-items: center; gap: 2px; }
  body.orpheus-pwa-view .orpheus-bottom-nav__icon { color: var(--orpheus-muted); font-size: 1.28rem; line-height: 1.05; font-weight: 600; }
  body.orpheus-pwa-view .orpheus-bottom-nav .orpheus-nav-link.is-active .orpheus-bottom-nav__icon { color: var(--orpheus-accent); }
  .orpheus-pwa-shell .orpheus-secondary-menu { display: block; order: 3; }
  .orpheus-pwa-shell .orpheus-secondary-menu > summary { cursor: pointer; font-size: 1.25rem; }
  .orpheus-pwa-shell .orpheus-app-user { order: 2; min-width: 0; max-width: 46px; padding-right: 0; }
  .orpheus-pwa-shell .orpheus-app-user summary { display: block; width: 46px; height: 46px; }
  .orpheus-pwa-shell .orpheus-app-user summary .orpheus-user-avatar { display: grid; }
  .orpheus-pwa-shell .orpheus-app-user summary span { display: none; }
  .orpheus-pwa-shell .orpheus-app-user summary strong { display: block; max-width: 90px; overflow: hidden; text-overflow: ellipsis; }
  .orpheus-pwa-shell .orpheus-pwa-actions { position: static; }
  .orpheus-pwa-shell .orpheus-app-content { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  .orpheus-pwa-shell .orpheus-global-player.is-floating { bottom: calc(62px + env(safe-area-inset-bottom)); }
  .orpheus-pwa-shell .orpheus-back-to-top { bottom: 70px; }
}

.orpheus-bottom-nav { display: none; }
.orpheus-secondary-menu { display: none; }
.orpheus-user-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 140; display: grid; gap: 8px; min-width: 170px; padding: 12px; border: 1px solid #c4d96a55; border-radius: 10px; background: #151519; box-shadow: 0 12px 30px #0008; }
.orpheus-app-user { position: relative; }
.orpheus-app-user summary { cursor: pointer; list-style: none; }
.orpheus-app-user summary::-webkit-details-marker, .orpheus-secondary-menu summary::-webkit-details-marker { display:none; }
.orpheus-app-user summary::marker, .orpheus-secondary-menu summary::marker { content: ''; }
.orpheus-user-avatar { display: block; width: 42px; height: 42px; border: 2px solid var(--orpheus-accent); border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px #c4d96a22, 0 0 18px #c4d96a2e; }
.orpheus-user-avatar--fallback { display: grid; place-items: center; color: var(--orpheus-accent); background: #22251a; font-size: 1rem; font-weight: 800; }
.orpheus-user-avatar--fallback[hidden] { display: none; }
.orpheus-secondary-menu__panel { display: grid; gap: 8px; position: absolute; right: 0; top: calc(100% + 6px); z-index: 140; min-width: 220px; padding: 12px; border: 1px solid #c4d96a55; border-radius: 10px; background: #151519; box-shadow: 0 12px 30px #0008; }
.orpheus-secondary-menu__panel button { padding: 8px 10px; border: 1px solid #c4d96a66; border-radius: 8px; color: #14150f; background: var(--orpheus-accent); font-weight: 750; cursor: pointer; }
.orpheus-secondary-menu__panel > button, .orpheus-secondary-menu__panel > a { display:flex; align-items:center; gap:8px; text-align:left; }
.orpheus-secondary-menu__panel > a { padding:8px 10px; border:1px solid #ffffff18; border-radius:8px; color:var(--orpheus-text); background:#202025; font-size:.88rem; text-decoration:none; }
.orpheus-menu-icon { display:inline-grid; flex:0 0 18px; place-items:center; width:18px; height:18px; }
.orpheus-menu-icon svg { display:block; width:16px; height:16px; }
.orpheus-secondary-menu__panel > a:hover, .orpheus-secondary-menu__panel > a:focus-visible { border-color:#c4d96a66; color:var(--orpheus-accent); background:#c4d96a12; outline:none; }
.orpheus-secondary-menu__version { display:flex; justify-content:space-between; gap:12px; margin-top:3px; padding:10px 2px 0; border-top:1px solid #ffffff18; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-secondary-menu__version strong { color:var(--orpheus-text); font-weight:650; text-align:right; }
.orpheus-pwa-update-dialog { width: min(calc(100% - 32px), 380px); padding: 24px 20px 20px; border: 1px solid #c4d96a66; border-radius: 18px; color: var(--orpheus-text); background: radial-gradient(420px 180px at 50% 0, #c4d96a24, transparent 70%), #151519; box-shadow: 0 24px 70px #000b; }
.orpheus-pwa-update-dialog::backdrop { background: #000b; backdrop-filter: blur(7px); }
.orpheus-pwa-update-dialog__brand { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 12px; border:1px solid #c4d96a66; border-radius:50%; color:var(--orpheus-accent); font-size:1.8rem; }
.orpheus-pwa-update-dialog__logo { display:block; width:56px; height:56px; margin:0 auto 12px; border:1px solid #c4d96a66; border-radius:15px; object-fit:cover; box-shadow:0 0 24px #c4d96a32; }
.orpheus-pwa-update-dialog h2 { margin:0 0 8px; text-align:center; color:var(--orpheus-text); font-size:1.25rem; }
.orpheus-pwa-update-dialog__versions { display:grid; gap:8px; margin:0 0 12px; color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-pwa-update-dialog__versions span { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:10px; padding:9px 11px; border:1px solid #ffffff18; border-radius:10px; text-align:left; }
.orpheus-pwa-update-dialog__versions span strong { color:var(--orpheus-muted); font-size:.76rem; font-weight:650; }
.orpheus-pwa-update-dialog__versions span.is-new { border-color:#c4d96a88; color:var(--orpheus-text); background:#c4d96a14; box-shadow:0 0 18px #c4d96a18; }
.orpheus-pwa-update-dialog__versions span.is-new strong { color:var(--orpheus-accent); font-weight:800; }
.orpheus-pwa-update-dialog__versions code { color:var(--orpheus-accent); font-size:.7rem; text-align:right; }
.orpheus-pwa-update-dialog p { margin:0; text-align:center; color:var(--orpheus-muted); font-size:.9rem; line-height:1.5; }
.orpheus-pwa-update-dialog__actions { display:grid; gap:8px; margin-top:20px; }
.orpheus-pwa-update-dialog__actions button { padding:10px 12px; border:1px solid #c4d96a66; border-radius:9px; color:#14150f; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-pwa-update-dialog__actions .orpheus-pwa-update-later { color:var(--orpheus-text); background:transparent; }
.orpheus-pwa-resume-dialog { width:min(calc(100% - 32px), 380px); padding:24px 20px 20px; border:1px solid #c4d96a66; border-radius:18px; color:var(--orpheus-text); background:radial-gradient(420px 180px at 50% 0, #c4d96a24, transparent 70%), #151519; box-shadow:0 24px 70px #000b; }
.orpheus-pwa-resume-dialog::backdrop { background:#000b; backdrop-filter:blur(7px); }
.orpheus-pwa-resume-dialog__brand { display:grid; place-items:center; width:48px; height:48px; margin:0 auto 12px; border:1px solid #c4d96a66; border-radius:50%; color:var(--orpheus-accent); font-size:1.3rem; }
.orpheus-pwa-resume-dialog h2 { margin:0 0 8px; text-align:center; color:var(--orpheus-text); font-size:1.25rem; }
.orpheus-pwa-resume-dialog p { margin:0; text-align:center; color:var(--orpheus-muted); font-size:.9rem; line-height:1.5; }
.orpheus-pwa-resume-dialog__actions { display:grid; gap:8px; margin-top:20px; }
.orpheus-pwa-resume-dialog__actions button { padding:10px 12px; border:1px solid #c4d96a66; border-radius:9px; color:#14150f; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-pwa-resume-dialog__actions .orpheus-pwa-resume-start, .orpheus-pwa-resume-dialog__actions .orpheus-pwa-resume-cancel { color:var(--orpheus-text); background:transparent; }
.orpheus-pwa-shell .orpheus-pwa-player.is-floating { top:auto !important; left:8px !important; right:8px; bottom:78px; width:auto !important; margin:0 !important; }
@media (min-width:701px) { .orpheus-pwa-shell .orpheus-pwa-player.is-floating { left:24px !important; right:auto; bottom:16px; width:min(520px,calc(100% - 48px)) !important; } }
/* Web-Shell Überschreibungen & PWA-Isolierung */
.orpheus-web-shell .orpheus-app-header { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: space-between !important; position: relative !important; top: auto !important; left: auto !important; right: auto !important; width: calc(100% - 32px) !important; max-width: 1120px !important; margin: 0 auto !important; padding: 16px 18px !important; border-width: 0 1px 1px !important; border-radius: 0 0 16px 16px !important; background: #151519b8 !important; box-shadow: 0 12px 34px #0005 !important; }
.orpheus-web-shell .orpheus-app-nav { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 6px !important; min-width: 0 !important; visibility: visible !important; opacity: 1 !important; }
.orpheus-web-shell .orpheus-nav-link { display: inline-block !important; }
.orpheus-web-shell .orpheus-header-right { display: flex !important; align-items: center !important; justify-content: flex-end !important; gap: 10px !important; margin-left: auto !important; }
.orpheus-web-shell .orpheus-bottom-nav,
.orpheus-web-shell .orpheus-secondary-menu { display: none !important; }

@media (max-width: 700px) {
  .orpheus-web-shell .orpheus-app-header { flex-direction: column !important; align-items: stretch !important; gap: 12px !important; padding: 14px 16px !important; }
  .orpheus-web-shell .orpheus-app-brand { justify-content: center !important; }
  .orpheus-web-shell .orpheus-app-nav { justify-content: center !important; width: 100% !important; overflow-x: auto !important; padding-bottom: 4px !important; }
  .orpheus-web-shell .orpheus-header-right { margin-left: 0 !important; justify-content: center !important; width: 100% !important; }
}
@media (max-width: 520px) { .orpheus-toolbar { align-items: stretch; flex-direction: column; } }
@media (max-width: 760px) { .orpheus-admin-form { grid-template-columns: 1fr; } .orpheus-admin-table th:nth-child(4), .orpheus-admin-table td:nth-child(4) { display: none; } }
@media (max-width: 900px) { .orpheus-admin-user-row { grid-template-columns:minmax(0,1fr) auto; } .orpheus-admin-user-identity, .orpheus-admin-user-actions { grid-column:1 / -1; } }
@media (max-width: 520px) { .orpheus-admin-user-row { grid-template-columns:1fr; gap:8px; } .orpheus-admin-user-identity, .orpheus-admin-user-actions { grid-column:auto; } }
@media (max-width: 520px) { .orpheus-admin-user-actions { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; min-width:0; } .orpheus-admin-user-actions .orpheus-admin-role-assign { display:grid !important; grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); } .orpheus-admin-user-actions .orpheus-inline-form button, .orpheus-admin-user-actions .orpheus-inline-form select { width:100%; min-width:0; } }
@media (max-width: 390px) { .orpheus-app-nav { gap: 0; } .orpheus-nav-link { padding-left: 4px; padding-right: 4px; font-size: .78rem; } }
@media (min-width: 760px) { .orpheus-content-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } .orpheus-component-panel { padding: 24px; } }
@media (min-width: 1100px) { .orpheus-content-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 390px) { .orpheus-app-brand { font-size: 1.35rem; } .orpheus-app-brand img { width: 38px; height: 38px; } .orpheus-app-header { padding-left: 12px; padding-right: 12px; } .orpheus-app-content { width: calc(100% - 24px); } .orpheus-app-content .orpheus-page-header, .orpheus-app-content .orpheus-page-intro, .orpheus-app-content .orpheus-toolbar, .orpheus-content-grid { padding-left: 16px; padding-right: 16px; } }

.orpheus-lore-button { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 40; width: 46px; height: 46px; border: 1px solid #c4d96a88; border-radius: 50%; color: var(--orpheus-accent); background: #151519dd; box-shadow: 0 8px 24px #0008; font-size: 1.8rem; cursor: pointer; backdrop-filter: blur(8px); }
.orpheus-pwa-shell .orpheus-app-header { position:fixed; top:0; left:0; right:0; z-index:125; width:100%; max-width:none; margin:0; grid-template-columns:minmax(0,1fr) auto; gap:14px; padding:calc(10px + env(safe-area-inset-top)) 18px 14px; border-width:0 0 1px; border-radius:0; background:#0c0c0e; box-shadow:0 8px 26px #0005; }
@media (max-width:700px) { .orpheus-pwa-shell .orpheus-app-nav { display:none !important; } }
@media (min-width:701px) { .orpheus-pwa-shell .orpheus-app-nav { display:flex !important; visibility:visible !important; opacity:1 !important; } }
.orpheus-web-shell .orpheus-app-header { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: space-between !important; position: relative !important; top: auto !important; left: auto !important; right: auto !important; width: calc(100% - 32px) !important; max-width: 1120px !important; margin: 0 auto !important; padding: 16px 18px !important; border-width: 0 1px 1px !important; border-radius: 0 0 16px 16px !important; background: #151519b8 !important; box-shadow: 0 12px 34px #0005 !important; }
.orpheus-web-shell .orpheus-app-nav { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 6px !important; min-width: 0 !important; visibility: visible !important; opacity: 1 !important; }
.orpheus-pwa-shell .orpheus-app-brand { gap:10px; font-size:1.45rem; letter-spacing:.06em; }
.orpheus-pwa-shell .orpheus-app-brand img { width:48px; height:48px; flex:0 0 48px; border-radius:13px; clip-path:none; mix-blend-mode:normal; }
.orpheus-pwa-shell .orpheus-header-right { gap:12px; flex:0 0 auto; }
.orpheus-pwa-shell .orpheus-app-user { order:1; width:46px; min-width:46px; max-width:46px; flex:0 0 46px; padding-right:0; margin-left:0; z-index:2; }
.orpheus-pwa-shell .orpheus-app-user summary { display:block; width:46px; height:46px; cursor:pointer; }
.orpheus-pwa-shell .orpheus-app-user summary { overflow:visible; }
.orpheus-pwa-shell .orpheus-app-user summary .orpheus-user-avatar { display:grid; width:46px; height:46px; }
.orpheus-pwa-shell .orpheus-secondary-menu { display:block; order:2; position:relative; width:42px; min-width:42px; flex:0 0 42px; z-index:2; }
.orpheus-pwa-shell .orpheus-secondary-menu > summary { display:grid; place-items:center; width:42px; height:42px; color:var(--orpheus-accent); cursor:pointer; font-size:1.65rem; line-height:1; }
.orpheus-pwa-shell .orpheus-secondary-menu__panel { top:calc(100% + 8px); }
.orpheus-pwa-shell > main.orpheus-app-content { width:calc(100% - 24px); margin-top:0; padding-top:calc(72px + env(safe-area-inset-top) + var(--orpheus-pwa-header-gap)); border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-shell.has-active-player > main.orpheus-app-content { padding-bottom:var(--orpheus-pwa-scroll-reserve, calc(78px + env(safe-area-inset-bottom))); }
.orpheus-pwa-shell.has-active-player > main.orpheus-app-content > main.orpheus-pwa-library-page { padding-bottom:0; }
.orpheus-pwa-player { position:fixed !important; z-index:160; left:12px !important; right:12px; bottom:calc(62px + env(safe-area-inset-bottom) + 8px); width:auto !important; margin:0 !important; display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:10px; padding:8px 10px; border:1px solid #55d9e088; border-top:2px solid #55d9e0; border-radius:16px; background:#121b20f7; box-shadow:0 -10px 36px #55d9e022, 0 14px 42px #000b; backdrop-filter:blur(16px); }
.orpheus-pwa-player .orpheus-player-artwork { display:grid; grid-area:auto; place-items:center; width:44px; height:44px; overflow:hidden; border:1px solid #55d9e088; border-radius:11px; background:#0b1016; }
.orpheus-pwa-player .orpheus-player-artwork img { display:block; width:100%; height:100%; object-fit:cover; }
.orpheus-pwa-player .orpheus-player-meta { display:grid; min-width:0; gap:2px; }
.orpheus-pwa-player .orpheus-player-label, .orpheus-pwa-player .orpheus-player-state { display:none; }
.orpheus-pwa-player .orpheus-player-meta strong, .orpheus-pwa-player .orpheus-player-meta small { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-player .orpheus-player-meta strong { color:var(--orpheus-text); font-size:.92rem; }
.orpheus-pwa-player .orpheus-player-meta small { color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-pwa-player .orpheus-player-controls { display:grid; grid-template-columns:44px 44px; align-items:center; gap:4px; min-width:0; }
.orpheus-pwa-player .orpheus-player-transport { display:contents; }
.orpheus-pwa-player .orpheus-player-transport > .orpheus-player-control:not(.orpheus-player-control--main) { display:none; }
.orpheus-pwa-player .orpheus-player-control { width:44px; height:44px; border-radius:12px; color:#ccecef; }
.orpheus-pwa-player .orpheus-player-control--main { width:44px; height:44px; border-radius:50%; color:#071215; background:#55d9e0; }
.orpheus-pwa-player .orpheus-player-icon { display:block; width:21px; height:21px; }
.orpheus-pwa-player .orpheus-player-control--main .orpheus-player-icon { width:22px; height:22px; }
.orpheus-pwa-player .orpheus-player-progress, .orpheus-pwa-player .orpheus-player-options { display:none; }
.orpheus-pwa-player .orpheus-player-tools { display:contents; }
.orpheus-pwa-player .orpheus-player-tools [data-player-action="info"] { display:none; }
.orpheus-pwa-player .orpheus-player-control--tool { color:var(--orpheus-muted); background:transparent; border-color:transparent; }
.orpheus-pwa-player.is-expanded { grid-template-columns:76px minmax(0,1fr); align-items:start; max-height:calc(100dvh - 86px - env(safe-area-inset-top)); overflow:auto; padding:16px; border-radius:20px; }
.orpheus-pwa-player.is-expanded .orpheus-player-artwork { width:76px; height:76px; border-radius:15px; }
.orpheus-pwa-player.is-expanded .orpheus-player-meta { align-self:center; }
.orpheus-pwa-player.is-expanded .orpheus-player-label, .orpheus-pwa-player.is-expanded .orpheus-player-state { display:block; }
.orpheus-pwa-player.is-expanded .orpheus-player-label { color:#55d9e0; }
.orpheus-pwa-player.is-expanded .orpheus-player-state { color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-pwa-player.is-expanded .orpheus-player-meta strong { font-size:1.08rem; }
.orpheus-pwa-player.is-expanded .orpheus-player-meta small { font-size:.8rem; }
.orpheus-pwa-player.is-expanded .orpheus-player-controls { grid-column:1 / -1; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"progress tools" "transport transport" "options options"; gap:14px 10px; padding-top:4px; }
.orpheus-pwa-player.is-expanded .orpheus-player-transport { display:flex; justify-content:center; align-items:center; gap:6px; grid-area:transport; }
.orpheus-pwa-player.is-expanded .orpheus-player-transport > .orpheus-player-control { display:inline-flex; }
.orpheus-pwa-player.is-expanded .orpheus-player-progress { display:grid; grid-area:progress; grid-template-columns:38px minmax(0,1fr) 38px; align-items:center; gap:8px; min-width:0; color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-pwa-player.is-expanded .orpheus-player-progress input { width:100%; accent-color:#55d9e0; }
.orpheus-pwa-player.is-expanded .orpheus-player-options { display:grid; grid-area:options; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-top:4px; border-top:1px solid #ffffff18; }
.orpheus-pwa-player.is-expanded .orpheus-player-options label { display:grid; gap:4px; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-pwa-player.is-expanded .orpheus-player-options select { min-width:0; padding:9px 8px; border:1px solid #55d9e044; border-radius:9px; color:var(--orpheus-text); background:#16252a; }
.orpheus-pwa-player.is-expanded .orpheus-player-options small { grid-column:1 / -1; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-pwa-player.is-expanded .orpheus-player-tools { display:flex; grid-area:tools; justify-content:flex-end; gap:4px; }
.orpheus-pwa-player.is-expanded .orpheus-player-tools [data-player-action="info"] { display:inline-flex; }
.orpheus-pwa-player.is-expanded .orpheus-player-control--main { width:52px; height:52px; }
.orpheus-pwa-player.is-expanded .orpheus-player-tools .orpheus-player-control { width:44px; height:44px; }
.orpheus-pwa-player .orpheus-player-control:focus-visible { outline:2px solid #d9ed78; outline-offset:2px; }
@media (max-width:520px) { .orpheus-pwa-player { left:8px !important; right:8px; gap:8px; padding:7px 8px; } .orpheus-pwa-player.is-expanded { left:8px !important; right:8px; padding:14px 12px; } .orpheus-pwa-player.is-expanded .orpheus-player-progress { grid-template-columns:34px minmax(0,1fr) 34px; gap:6px; } }
@media (min-width:701px) { .orpheus-pwa-player { left:24px !important; right:auto; bottom:16px; width:min(520px,calc(100% - 48px)) !important; } }
@media (max-width:700px) { .orpheus-pwa-shell .orpheus-pwa-player.is-floating { left:calc(var(--orpheus-pwa-page-gutter) + 16px) !important; right:calc(var(--orpheus-pwa-page-gutter) + 16px); } }
.orpheus-pwa-dashboard { width: min(100%, 720px); margin: 0 auto; padding: 0 var(--orpheus-pwa-page-gutter) 34px; }
.orpheus-pwa-dashboard .orpheus-pwa-info-header { margin-bottom:8px; }
.orpheus-pwa-dashboard .orpheus-pwa-welcome { padding:8px 4px 0; }
.orpheus-pwa-dashboard .orpheus-pwa-now-section .orpheus-pwa-section-heading span { display:none; }
.orpheus-pwa-welcome h1 { max-width: 100%; margin: 0 0 28px; color: var(--orpheus-text); font-size: clamp(2.25rem, 9.5vw, 3.7rem); line-height: .98; letter-spacing: -.04em; overflow-wrap: anywhere; word-break: break-word; }
.orpheus-pwa-section-heading { display:flex; align-items:center; gap:14px; margin: 0 0 18px; }
.orpheus-pwa-section-heading h2 { margin:0; color:var(--orpheus-accent); font-size:1.65rem; letter-spacing:-.03em; }
.orpheus-pwa-section-heading span { height:2px; flex:1; background:var(--orpheus-accent); opacity:.75; }
.orpheus-pwa-section-heading a { color:var(--orpheus-accent); font-size:2.7rem; line-height:.6; text-decoration:none; }
.orpheus-pwa-now-card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-now-playing { display:grid; grid-template-columns:104px minmax(0,1fr) auto; align-items:center; gap:17px; min-height:104px; }
.orpheus-pwa-cover { display:grid; place-items:center; width:104px; height:104px; overflow:hidden; border:1px solid #c4d96a66; border-radius:18px; background:radial-gradient(circle at 50% 45%,#243d52,#080b12 66%); }
.orpheus-pwa-cover img { display:block; width:100%; height:100%; object-fit:cover; }
.orpheus-pwa-track { min-width:0; }
.orpheus-pwa-track h3 { margin:0 0 6px; overflow:hidden; color:var(--orpheus-text); font-size:1.3rem; text-overflow:ellipsis; white-space:nowrap; }.orpheus-pwa-track p,.orpheus-pwa-track span { display:block; margin:0 0 6px; overflow:hidden; color:var(--orpheus-muted); text-overflow:ellipsis; white-space:nowrap; }.orpheus-pwa-track span { color:var(--orpheus-accent); font-size:.86rem; }
.orpheus-pwa-track-progress { height:4px; margin:10px 0 6px; overflow:hidden; border-radius:999px; background:#ffffff18; }
.orpheus-pwa-track-progress span { display:block; width:calc(var(--orpheus-progress, 0) * 1%); height:100%; margin:0; border-radius:inherit; background:var(--orpheus-accent); }
.orpheus-pwa-track-progress-meta { display:flex; justify-content:space-between; gap:8px; color:var(--orpheus-accent); font-size:.75rem; }
.orpheus-pwa-track-progress-meta span { margin:0; overflow:hidden; color:inherit; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-play { width:58px; height:58px; border:0; border-radius:50%; color:#171a10; background:var(--orpheus-accent); font-size:1.5rem; cursor:pointer; }
.orpheus-pwa-empty { padding:26px 4px; color:var(--orpheus-muted); }
.orpheus-pwa-recent-section { margin-top: 28px; padding: 18px 4px 0; border-top: 1px solid #ffffff18; }
.orpheus-pwa-recent-section .orpheus-pwa-section-heading { margin-bottom: 8px; }
.orpheus-pwa-recent-section .orpheus-pwa-section-heading h2 { font-size: 1.25rem; }
.orpheus-pwa-recent-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.orpheus-pwa-recent-item { padding:0; border-top:1px solid #ffffff18; }
.orpheus-pwa-recent-item:first-child { border-top:0; }
.orpheus-pwa-recent-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; padding:10px 0; border:0; color:inherit; background:transparent; text-align:left; cursor:pointer; }
.orpheus-pwa-recent-row:focus-visible { outline:2px solid #d9ed78; outline-offset:2px; border-radius:4px; }
.orpheus-pwa-recent-main { display:grid; gap:3px; min-width:0; }
.orpheus-pwa-recent-main strong,.orpheus-pwa-recent-main small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-recent-main strong { color:var(--orpheus-text); font-size:.86rem; }
.orpheus-pwa-recent-main small { color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-pwa-recent-play { display:grid; place-items:center; width:34px; height:34px; border:1px solid #c4d96a66; border-radius:50%; color:#171a10; background:var(--orpheus-accent); font-size:.85rem; }
.orpheus-pwa-recent-empty { padding:10px 0; color:var(--orpheus-muted); font-size:.8rem; }
.orpheus-pwa-library { margin-top:40px; }.orpheus-pwa-library-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }.orpheus-pwa-library-grid a { display:grid; gap:9px; min-height:145px; padding:18px 12px; border:1px solid #ffffff25; border-radius:18px; color:var(--orpheus-text); background:#18191b; text-decoration:none; }.orpheus-pwa-library-grid strong { color:var(--orpheus-accent); font-size:2.3rem; line-height:1; }.orpheus-pwa-library-grid span { font-size:1.05rem; }.orpheus-pwa-library-grid small { color:var(--orpheus-muted); font-size:1rem; }
@media(max-width:520px){.orpheus-pwa-dashboard{padding-left:0;padding-right:0}.orpheus-pwa-now-playing{grid-template-columns:88px minmax(0,1fr) auto;gap:12px}.orpheus-pwa-cover{width:88px;height:88px}.orpheus-pwa-library-grid{gap:9px}.orpheus-pwa-library-grid a{min-height:125px;padding:14px 9px}.orpheus-pwa-library-grid strong{font-size:1.9rem}}
.orpheus-lore-button svg { width: 100%; height: 100%; display: block; }
.orpheus-lore-button:hover, .orpheus-lore-button:focus-visible { color: #14150f; background: var(--orpheus-accent); outline: 2px solid #d9ed7888; outline-offset: 3px; }
.orpheus-lore-overlay { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left)); }
.orpheus-lore-overlay[hidden] { display: none; }
.orpheus-lore-backdrop { position: absolute; inset: 0; border: 0; background: #000b; backdrop-filter: blur(8px); cursor: pointer; }
.orpheus-lore-dialog { position: relative; z-index: 1; width: min(500px, 100%); max-height: min(86dvh, 720px); overflow: auto; padding: 22px 24px 26px; border: 1px solid #c4d96a66; border-radius: 20px; color: var(--orpheus-text); background: radial-gradient(500px 220px at 50% 0, #c4d96a28, transparent 70%), #151519; box-shadow: 0 24px 70px #000b; outline: none; }
.orpheus-lore-close { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border: 0; border-radius: 10px; color: var(--orpheus-muted); background: transparent; font-size: 1.7rem; cursor: pointer; }
.orpheus-lore-close:hover, .orpheus-lore-close:focus-visible { color: var(--orpheus-accent); background: #c4d96a20; }
.orpheus-lore-visuals { display: flex; justify-content: center; gap: 18px; margin: 18px 0 14px; }
.orpheus-lore-visuals figure { width: 112px; margin: 0; color: var(--orpheus-muted); font-size: .68rem; line-height: 1.25; }
.orpheus-lore-visuals img { width: 112px; height: 112px; object-fit: cover; border-radius: 18px; border: 1px solid #c4d96a44; box-shadow: 0 0 28px #c4d96a22; }
.orpheus-lore-visuals figcaption { margin-top: 6px; }
.orpheus-lore-dialog h2 { margin: 0; text-align: center; color: var(--orpheus-text); font-size: 2rem; }
.orpheus-lore-kicker { margin: 6px 0 18px; text-align: center; color: var(--orpheus-accent); font-size: .78rem; letter-spacing: .12em; font-weight: 700; }
.orpheus-lore-copy { line-height: 1.6; color: var(--orpheus-muted); }
.orpheus-lore-copy strong { color: var(--orpheus-accent); }
.orpheus-lore-source { margin: 18px 0 0; color: #85847d; font-size: .7rem; line-height: 1.4; }
body.orpheus-lore-open { overflow: hidden; }
:root {
  --orpheus-radio-glow: rgba(183, 140, 255, .28);
}

.orpheus-radio-stations { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 16px 28px 0; }
.orpheus-radio-tile { min-height: 220px; display: flex; flex-direction: column; padding: 16px; border: 1px solid rgba(255,255,255,.11); border-radius: 18px; background: linear-gradient(145deg, rgba(183,140,255,.18), rgba(24,24,31,.96) 58%); box-shadow: 0 12px 28px rgba(0,0,0,.18); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.orpheus-radio-tile:hover { transform: translateY(-3px); border-color: var(--orpheus-radio-glow); box-shadow: 0 18px 42px rgba(0,0,0,.28), 0 0 28px var(--orpheus-radio-glow); }
.orpheus-radio-tile:focus-visible { outline: 2px solid #d7c2ff; outline-offset: 3px; }
.orpheus-radio-tile.is-starting { border-color: #d7c2ff; box-shadow: 0 0 30px var(--orpheus-radio-glow); }
.orpheus-radio-tile__top, .orpheus-radio-tile__actions, .orpheus-radio-tile__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.orpheus-radio-tile__badge { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; color: #17131f; background: #d7c2ff; font-size: 1.1rem; font-weight: 800; }
.orpheus-radio-tile__identity { display: grid; place-items: center; width: 54px; height: 54px; overflow: hidden; border-radius: 16px; background: #d7c2ff; }
.orpheus-radio-tile__logo { display: block; width: 100%; height: 100%; padding: 8px; object-fit: contain; background: #fff; }
.orpheus-radio-tile__live { color: #b9f6d0; font-size: .7rem; font-weight: 800; letter-spacing: .14em; }
.orpheus-radio-tile__body { flex: 1; }
.orpheus-radio-tile h2 { margin: 16px 0 6px; font-size: 1.15rem; }
.orpheus-radio-tile p { min-height: 36px; margin: 0 0 12px; color: var(--orpheus-muted, #a8a8ae); line-height: 1.4; font-size: .9rem; }
.orpheus-radio-tile__meta { justify-content: flex-start; flex-wrap: wrap; color: #d7c2ff; font-size: .78rem; }
.orpheus-radio-tile__meta span + span::before { content: '·'; margin-right: 10px; color: #77727f; }
.orpheus-radio-tile__actions { margin-top: 16px; }
.orpheus-radio-tile__play { border: 0; border-radius: 999px; padding: 11px 17px; color: #17131f; background: #d7c2ff; font-weight: 750; cursor: pointer; }
.orpheus-radio-tile__play:hover { background: #eee5ff; }
.orpheus-radio-tile__link { color: #d7c2ff; font-size: .85rem; text-decoration: none; }
.orpheus-radio-tile__link:hover { text-decoration: underline; }
@media (max-width: 620px) { .orpheus-radio-stations { grid-template-columns: 1fr; } .orpheus-radio-tile { min-height: 245px; } }
.orpheus-pwa-profile-button { display:grid; place-items:center; width:46px; height:46px; padding:0; border-radius:50%; color:inherit; background:transparent; cursor:pointer; text-decoration:none; }
.orpheus-pwa-profile-button:focus-visible { outline:2px solid var(--orpheus-accent); outline-offset:4px; }
.orpheus-profile-hero { display:flex; align-items:center; flex-direction:column; padding:16px 0 30px; text-align:center; }
.orpheus-profile-avatar { margin:4px 0 17px; }
.orpheus-profile-avatar .orpheus-user-avatar { width:88px; height:88px; border-width:3px; font-size:2rem; }
.orpheus-profile-kicker { margin:0 0 7px; color:var(--orpheus-accent); font-size:.72rem; font-weight:800; letter-spacing:.18em; }
.orpheus-profile-hero h2 { max-width:100%; margin:0; overflow:hidden; color:var(--orpheus-text); font-size:1.75rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-profile-email { max-width:100%; margin:7px 0 12px; overflow:hidden; color:var(--orpheus-muted); font-size:.9rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-profile-role { padding:5px 10px; border:1px solid #c4d96a55; border-radius:999px; color:var(--orpheus-accent); background:#c4d96a12; font-size:.74rem; font-weight:750; }
.orpheus-profile-section { padding:20px 0; border-top:1px solid #ffffff18; }
.orpheus-profile-section h3 { margin:0 0 14px; color:var(--orpheus-text); font-size:.84rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.orpheus-profile-details { display:grid; gap:11px; margin:0; }
.orpheus-profile-details div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.orpheus-profile-details dt { color:var(--orpheus-muted); font-size:.82rem; }
.orpheus-profile-details dd { max-width:68%; margin:0; overflow:hidden; color:var(--orpheus-text); font-size:.86rem; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-profile-actions { margin-top:auto; }
.orpheus-profile-action { display:flex; align-items:center; gap:13px; padding:13px 14px; border:1px solid #ffffff20; border-radius:13px; color:var(--orpheus-text); background:#ffffff08; text-decoration:none; transition:border-color .18s ease, background .18s ease, transform .18s ease; }
.orpheus-profile-logout { margin: 0; }
.orpheus-profile-logout button { width: 100%; text-align: left; font: inherit; cursor: pointer; }
.orpheus-profile-action:hover, .orpheus-profile-action:focus-visible { border-color:#c4d96a66; background:#c4d96a15; transform:translateY(-1px); outline:none; }
.orpheus-profile-action-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:#16180f; background:var(--orpheus-accent); font-size:1.25rem; font-weight:800; }
.orpheus-profile-action-icon svg { width:18px; height:18px; }
.orpheus-profile-action span:last-child { display:grid; gap:3px; }
.orpheus-profile-action strong { font-size:.94rem; }
.orpheus-profile-action small { color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-player-options { display:grid; grid-template-columns:repeat(2,minmax(90px,1fr)); align-items:end; gap:8px 10px; grid-column:1 / -1; padding-top:4px; }
.orpheus-player-options label { display:grid; gap:4px; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-player-options select { padding:6px 7px; font-size:.76rem; }
.orpheus-player-options > small { grid-column:1 / -1; color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-pwa-shell main.orpheus-pwa-dashboard { width:min(100%, 720px); margin:0 auto; padding:0 var(--orpheus-pwa-page-gutter) 34px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-shell main.orpheus-pwa-profile-page { width:min(100%, 720px); margin:0 auto; padding:0 var(--orpheus-pwa-page-gutter) 34px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-shell main.orpheus-pwa-info-page, .orpheus-pwa-shell main.orpheus-pwa-admin-page { width:min(100%, 720px); margin:0 auto; padding:0 var(--orpheus-pwa-page-gutter) 34px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page { width:min(100%, 720px); margin:0 auto; padding:0 var(--orpheus-pwa-page-gutter) 34px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-shell main.orpheus-pwa-library-page { width:min(100%, 720px); margin:0 auto; padding:0 var(--orpheus-pwa-page-gutter) 28px; border:0; border-radius:0; background:transparent; box-shadow:none; }

/* Keep the installed PWA viewport fixed; only its content pane may scroll. */
html.orpheus-pwa-document {
  overscroll-behavior: none;
  touch-action: pan-y;
}
html.orpheus-pwa-document:has(.orpheus-pwa-shell) {
  height: 100%;
  overflow: hidden;
  background-color: #151519;
  background-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - env(safe-area-inset-bottom, 0px)),
    #151519 calc(100% - env(safe-area-inset-bottom, 0px)),
    #151519 100%
  );
}
body.orpheus-pwa-view:has(.orpheus-pwa-shell) {
  height: 100%;
  max-height: 100dvh;
  min-height: 0;
  background-color: #151519;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: pan-y;
}
.orpheus-pwa-shell {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 0;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: pan-y;
}
.orpheus-pwa-shell > main.orpheus-app-content {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-x: none;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}
.orpheus-pwa-shell .orpheus-app-content input[type="range"] { touch-action: pan-x; }
.orpheus-pwa-library-header { margin:0 0 10px; padding:0 4px 18px; border-bottom:1px solid #ffffff18; }
.orpheus-pwa-library-header h1 { margin:0 0 7px; color:var(--orpheus-text); font-size:clamp(2rem, 8vw, 3rem); letter-spacing:-.04em; }
.orpheus-pwa-library-header p:last-child { color:var(--orpheus-muted); font-size:.9rem; }
.orpheus-pwa-library-page .orpheus-library-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; padding:8px 4px 12px; border-bottom:1px solid #ffffff18; }
.orpheus-pwa-library-page .orpheus-library-stats article { min-width:0; padding:8px 10px 8px 0; border:0; border-radius:0; background:transparent; }
.orpheus-pwa-library-page .orpheus-library-stats article:nth-child(even) { padding-left:12px; border-left:1px solid #ffffff18; }
.orpheus-pwa-library-page .orpheus-library-stats strong { font-size:1rem; }
.orpheus-pwa-library-page .orpheus-library-search { grid-template-columns:minmax(0,1fr) auto; gap:8px; margin:0; padding:14px 4px; border:0; border-bottom:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-library-page .orpheus-library-search input { padding:10px 12px; border-radius:8px; }
.orpheus-pwa-library-page .orpheus-library-search button { padding:10px 14px; border-radius:8px; }
.orpheus-pwa-library-page .orpheus-library-toolbar { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end; gap:9px; margin:0; padding:12px 4px 14px; border:0; border-bottom:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-library-page .orpheus-library-toolbar label:first-child { grid-column:1 / -1; }
.orpheus-pwa-library-page .orpheus-library-toolbar select, .orpheus-pwa-library-page .orpheus-library-toolbar button { width:100%; padding:8px 9px; border-radius:7px; }
.orpheus-pwa-library-page .orpheus-library-toolbar button { min-height:35px; }
.orpheus-pwa-library-page .orpheus-library-metadata { grid-template-columns:1fr; gap:8px; margin:0; padding:12px 4px; border:0; border-bottom:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-library-page .orpheus-library-metadata-actions { display:grid; grid-template-columns:1fr 1fr; }
.orpheus-pwa-library-page .orpheus-library-metadata-actions > * { text-align:center; }
.orpheus-pwa-library-page .orpheus-library-metadata-status { padding:0; }
.orpheus-pwa-library-page .orpheus-library-search + .orpheus-library-toolbar + .orpheus-state-loading, .orpheus-pwa-library-page .orpheus-library-metadata + .orpheus-state-loading { margin:0; padding:10px 4px; border:0; border-bottom:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-library-page .orpheus-library-results { gap:0; margin:0; padding:0 4px; }
.orpheus-pwa-library-page .orpheus-library-track { position:relative; gap:8px; padding:11px 4px 11px 12px; border:0; border-top:1px solid #ffffff18; border-left:0; border-radius:0; background:transparent; }
.orpheus-pwa-library-page .orpheus-library-track:first-child { border-top:0; }
.orpheus-pwa-library-page .orpheus-library-track:hover { border-color:#ffffff18; background:#ffffff05; transform:none; }
.orpheus-pwa-library-page .orpheus-library-track::before { position:absolute; top:11px; bottom:11px; left:4px; width:2px; border-radius:2px; background:#c4d96a55; content:''; }
.orpheus-pwa-library-page .orpheus-library-track-main { padding-left:0; border-left:0; }
.orpheus-pwa-library-page .orpheus-library-track strong { font-size:.92rem; }
.orpheus-pwa-library-page .orpheus-library-track span { font-size:.78rem; }
.orpheus-pwa-library-page .orpheus-library-track small { margin-top:3px; font-size:.67rem; }
.orpheus-pwa-library-page .orpheus-library-track-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:5px; padding-left:10px; }
.orpheus-pwa-library-page .orpheus-library-track-meta > span { width:auto; min-width:0; margin-right:0; padding:3px 6px; font-size:.64rem; text-align:center; }
.orpheus-pwa-library-page .orpheus-library-track-meta button { padding:6px 8px; font-size:.68rem; }
.orpheus-pwa-library-page .orpheus-library-pagination { margin:0 4px; padding:11px 0; border:0; border-top:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-info-header { margin:0 0 10px; padding:0 4px 18px; border-bottom:1px solid #ffffff18; }
.orpheus-pwa-info-header h1 { margin:0 0 7px; color:var(--orpheus-text); font-size:clamp(2rem, 8vw, 3rem); letter-spacing:-.04em; }
.orpheus-pwa-info-header p:last-child { color:var(--orpheus-muted); font-size:.9rem; }
.orpheus-pwa-info-section { padding:var(--orpheus-pwa-section-padding) 4px; border-bottom:1px solid #ffffff18; }
.orpheus-pwa-info-update-section { border-bottom:0; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-pwa-info-header { margin-bottom:8px; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-stations { grid-template-columns:1fr; gap:10px; margin:12px 4px 0; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile { min-height:0; padding:9px 10px; border-radius:13px; box-shadow:0 7px 17px rgba(0,0,0,.15); }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile:hover { transform:none; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-playing { border-color:#c4d96a99; box-shadow:0 0 20px #c4d96a28; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-active { border-color:#c4d96a66; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-paused { border-color:#c4d96a66; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-buffering { border-color:#d7c2ff88; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-error { border-color:#ff8a8099; box-shadow:0 0 20px #ff5b5228; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-playing .orpheus-radio-tile__live { color:var(--orpheus-accent); }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-error .orpheus-radio-tile__live { color:#ff9188; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__badge, .orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__identity { width:36px; height:36px; border-radius:10px; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__logo { padding:5px; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile h2 { margin:7px 0 3px; font-size:.94rem; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile p { min-height:0; margin:0 0 5px; line-height:1.22; font-size:.74rem; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__meta { font-size:.67rem; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__status { display:none; min-height:0; margin:5px 0 0; color:#f2bd52; font-size:.7rem; line-height:1.2; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__status.is-visible { display:block; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile.is-error .orpheus-radio-tile__status { color:#ff9188; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__actions { margin-top:7px; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play { display:inline-flex; min-width:44px; min-height:44px; align-items:center; justify-content:center; gap:5px; padding:0 12px; border:0; border-radius:999px; color:#17131f; background:#d7c2ff; font-size:.74rem; font-weight:750; line-height:1; white-space:nowrap; -webkit-text-fill-color:#17131f; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play:hover, .orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play:focus-visible { background:#eee5ff; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play > * { position:static; color:#17131f; -webkit-text-fill-color:#17131f; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play-icon { display:inline-flex; width:12px; height:12px; align-items:center; justify-content:center; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play-icon svg { width:12px; height:12px; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__play:disabled { cursor:wait; opacity:.78; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__link { display:inline-flex; min-height:44px; align-items:center; gap:4px; padding:0 3px; font-size:.72rem; }
.orpheus-pwa-shell main.orpheus-pwa-webradio-page .orpheus-radio-tile__link svg { width:13px; height:13px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page { width:min(100%, 720px); margin:0 auto; padding:0 var(--orpheus-pwa-page-gutter) 34px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-pwa-info-header { margin-bottom:8px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlists { margin:0 4px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-create { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:8px; margin:0; padding:12px 0 14px; border:0; border-bottom:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-create label { gap:4px; font-size:.68rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-create input { padding:9px 10px; border-radius:7px; font-size:.78rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-create button { min-height:35px; padding:8px 11px; border-radius:8px; font-size:.74rem; white-space:nowrap; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-layout { grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr); gap:0 16px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-panel, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-detail-panel { min-width:0; padding:14px 0; border:0; border-radius:0; background:transparent; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-panel { border-bottom:1px solid #ffffff18; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-panel h2 { margin:0 0 9px; color:var(--orpheus-accent); font-size:1rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list { gap:0; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item { gap:6px; border:0; border-top:1px solid #ffffff18; border-radius:0; background:transparent; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item:first-child { border-top:0; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item.is-selected { border-color:#ffffff18; background:#ffffff06; box-shadow:inset 2px 0 var(--orpheus-accent); }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item button { padding:9px 8px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item strong { font-size:.82rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item small { font-size:.68rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-list-item > span { margin-right:8px; font-size:.62rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-detail-panel { padding-top:14px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-detail-heading h2 { font-size:1rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-detail-actions { gap:5px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-play-all, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-detail-actions .orpheus-secondary-button { min-height:34px; padding:7px 9px; border-radius:7px; font-size:.7rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-edit { gap:8px; padding-bottom:14px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-edit input, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl select { padding:8px 9px; border-radius:7px; font-size:.78rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-edit > button { min-height:34px; padding:8px 10px; border-radius:7px; font-size:.72rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-items, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl { margin-top:14px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-items h3, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl h3 { margin-bottom:8px; font-size:.86rem; color:var(--orpheus-accent); }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-items ul, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl ul { gap:0; margin-bottom:10px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-items li, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl li { gap:7px; padding:8px 0; border:0; border-top:1px solid #ffffff18; border-radius:0; background:transparent; font-size:.76rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-items li:first-child, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl li:first-child { border-top:0; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-items li button, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl li button { min-height:32px; padding:6px 8px; border-radius:7px; font-size:.68rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-title { display:block; min-width:0; overflow:hidden; color:var(--orpheus-text); text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-meta { display:flex; min-width:0; align-items:center; gap:6px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-duration { flex:0 0 auto; color:var(--orpheus-muted); font-size:.68rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-meta .orpheus-hls-badge { flex:0 0 auto; margin:0; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-meta .orpheus-playlist-item-actions { margin-left:auto; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-move { width:32px; min-width:32px; padding:4px 0; color:var(--orpheus-muted); background:transparent; font-size:1rem; line-height:1; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-item-move:disabled { cursor:not-allowed; opacity:.3; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-pagination { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0; padding:10px 0 0; border-top:1px solid #ffffff18; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-pagination button { min-height:34px; padding:7px 10px; border:1px solid #ffffff22; border-radius:7px; color:var(--orpheus-text); background:transparent; font-size:.7rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-pagination button:disabled { cursor:not-allowed; opacity:.35; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-pagination span { color:var(--orpheus-muted); font-size:.7rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-track-search, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl form { gap:6px; margin-top:8px; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-track-search input { padding:8px 9px; border-radius:7px; font-size:.76rem; }
.orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-track-search button, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-acl form button { min-height:34px; padding:7px 9px; border-radius:7px; font-size:.7rem; }
.orpheus-pwa-shell .orpheus-hls-badge { display:inline-flex; align-items:center; justify-content:center; line-height:1; vertical-align:middle; }
.orpheus-pwa-shell .orpheus-hls-badge::before { display:block; flex:0 0 4px; width:4px; height:4px; border-radius:50%; background:currentColor; content:''; }
.orpheus-pwa-shell .orpheus-hls-badge.is-processing::before { width:auto; height:auto; border-radius:0; background:none; content:'◌'; font-size:.8rem; line-height:1; }
.orpheus-pwa-shell .orpheus-hls-badge.is-error::before { width:auto; height:auto; border-radius:0; background:none; content:'!'; font-size:.72rem; line-height:1; }
@media (max-width:760px) { .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-create, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-edit { grid-template-columns:1fr; } .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-layout { grid-template-columns:1fr; } .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-create button, .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-edit > button { width:100%; } .orpheus-pwa-shell main.orpheus-pwa-playlists-page .orpheus-playlist-detail-panel { padding-top:16px; } }
.orpheus-pwa-info-section h2 { margin:0 0 10px; color:var(--orpheus-accent); font-size:1.3rem; letter-spacing:-.025em; }
.orpheus-pwa-info-section p { color:var(--orpheus-muted); font-size:.9rem; }
.orpheus-pwa-info-section p + p { margin-top:12px; }
.orpheus-pwa-info-list { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.orpheus-pwa-info-list li { display:grid; gap:2px; padding-left:14px; border-left:2px solid #c4d96a55; }
.orpheus-pwa-info-list strong { color:var(--orpheus-text); font-size:.9rem; }
.orpheus-pwa-info-list span, .orpheus-pwa-info-note { color:var(--orpheus-muted); font-size:.82rem; }
.orpheus-pwa-info-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.orpheus-pwa-info-section-head h2 { margin-bottom:0; }
.orpheus-pwa-info-status-badge { flex:0 0 auto; padding:4px 8px; border:1px solid #ffffff20; border-radius:999px; color:var(--orpheus-muted); font-size:.68rem; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.orpheus-pwa-info-status-badge.is-ok { border-color:#c4d96a66; color:var(--orpheus-accent); background:#c4d96a12; }
.orpheus-pwa-info-status-badge.is-warn { border-color:#ffffff28; color:var(--orpheus-muted); background:#ffffff08; }
.orpheus-pwa-info-status-badge.is-error { border-color:#ff8a8088; color:#ffb4a9; background:#9d302922; }
.orpheus-pwa-info-health-list { display:grid; gap:0; margin:14px 0 0; padding:0; list-style:none; }
.orpheus-pwa-info-health-list li { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px 0; border-top:1px solid #ffffff12; font-size:.84rem; }
.orpheus-pwa-info-health-list li:first-child { border-top:0; }
.orpheus-pwa-info-health-list li > span:not(.orpheus-pwa-info-health-dot) { color:var(--orpheus-text); }
.orpheus-pwa-info-health-list strong { color:var(--orpheus-muted); font-size:.78rem; font-weight:650; }
.orpheus-pwa-info-health-dot { width:7px; height:7px; border-radius:50%; background:#ffffff40; }
.orpheus-pwa-info-health-dot.is-checking { background:#ffffff50; }
.orpheus-pwa-info-health-dot.is-ok { background:var(--orpheus-accent); box-shadow:0 0 9px #c4d96a88; }
.orpheus-pwa-info-health-dot.is-warn { background:#ffffff70; }
.orpheus-pwa-info-health-dot.is-error { background:#ff5b52; box-shadow:0 0 9px #ff5b5288; }
.orpheus-pwa-info-library-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
.orpheus-pwa-info-library-stats article { display:grid; gap:3px; padding:10px 12px; border:1px solid #ffffff18; border-radius:10px; }
.orpheus-pwa-info-library-stats span { color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-pwa-info-library-stats strong { color:var(--orpheus-text); font-size:1rem; }
.orpheus-pwa-info-status-button { margin-top:12px; padding:8px 12px; border:1px solid #ffffff22; border-radius:8px; color:var(--orpheus-text); background:#202025; font-size:.8rem; font-weight:650; cursor:pointer; }
.orpheus-pwa-info-status-button:disabled { cursor:wait; opacity:.7; }
.orpheus-pwa-info-update { display:grid; gap:8px; margin-top:14px; }
.orpheus-pwa-info-update-row { display:grid; grid-template-columns:minmax(64px, .35fr) minmax(0, 1fr); align-items:baseline; gap:12px; padding:10px 12px; border:1px solid #ffffff18; border-radius:10px; color:var(--orpheus-muted); font-size:.8rem; }
.orpheus-pwa-info-update-row span { font-weight:650; }
.orpheus-pwa-info-update-row strong { min-width:0; overflow-wrap:anywhere; color:var(--orpheus-text); font-size:.78rem; font-weight:650; text-align:right; }
.orpheus-pwa-info-update-row.is-new { border-color:#c4d96a88; background:#c4d96a14; box-shadow:0 0 18px #c4d96a18; }
.orpheus-pwa-info-update-row.is-new span, .orpheus-pwa-info-update-row.is-new strong { color:var(--orpheus-accent); }
.orpheus-pwa-info-update-status { margin:4px 0 0; }
.orpheus-pwa-info-update-button { justify-self:start; padding:9px 13px; border:1px solid #c4d96a66; border-radius:9px; color:#14150f; background:var(--orpheus-accent); font-size:.84rem; font-weight:750; cursor:pointer; }
.orpheus-pwa-info-update-button:disabled { cursor:wait; opacity:.7; }
.orpheus-pwa-info-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 4px 0; color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-pwa-info-footer strong { color:var(--orpheus-text); font-weight:650; }
.orpheus-pwa-info-footer a { color:var(--orpheus-accent); text-decoration:none; }
.orpheus-pwa-info-footer a:hover, .orpheus-pwa-info-footer a:focus-visible { text-decoration:underline; }
.orpheus-pwa-admin-page .orpheus-admin-page { row-gap:18px; }
.orpheus-pwa-admin-page .orpheus-admin-subnav, .orpheus-pwa-admin-page .orpheus-admin-status, .orpheus-pwa-admin-page .orpheus-admin-scanner, .orpheus-pwa-admin-page .orpheus-admin-hls, .orpheus-pwa-admin-page .orpheus-admin-metadata, .orpheus-pwa-admin-page .orpheus-admin-role-overview, .orpheus-pwa-admin-page .orpheus-admin-page > .orpheus-component-panel { margin-left:0; margin-right:0; }
.orpheus-pwa-admin-page .orpheus-admin-subnav { flex-wrap:nowrap; justify-content:center; margin-top:0; overflow-x:auto; scrollbar-width:none; }
.orpheus-pwa-admin-page .orpheus-admin-subnav::-webkit-scrollbar { display:none; }
.orpheus-pwa-admin-page .orpheus-admin-subnav a { flex:0 0 auto; }
.orpheus-pwa-admin-page .orpheus-admin-subnav a { display:grid; place-items:center; width:46px; min-width:46px; height:46px; padding:0; }
.orpheus-pwa-admin-page .orpheus-admin-subnav-label { display:none; }
.orpheus-pwa-admin-page .orpheus-admin-subnav-icon { display:grid; place-items:center; width:22px; height:22px; }
.orpheus-pwa-admin-page .orpheus-admin-subnav-icon svg { display:block; width:21px; height:21px; }
.orpheus-pwa-admin-page .orpheus-admin-subnav a[aria-current="page"] { border-color:#c4d96a88; color:var(--orpheus-accent); background:#c4d96a14; box-shadow:0 0 16px #c4d96a18; }
.orpheus-pwa-shell .orpheus-secondary-menu__panel { min-width:190px; }
.orpheus-pwa-admin-page .orpheus-admin-status { padding:0 2px; border:0; border-radius:0; background:transparent; }
.orpheus-pwa-admin-page .orpheus-admin-status-updated { margin:7px 0 0; color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-pwa-admin-page .orpheus-admin-button-icon { display:inline-grid; place-items:center; flex:0 0 15px; width:15px; height:15px; }
.orpheus-pwa-admin-page .orpheus-admin-button-icon svg { display:block; width:15px; height:15px; }
.orpheus-pwa-admin-page [hidden] { display:none !important; }
.orpheus-pwa-admin-page .orpheus-admin-status-heading > button, .orpheus-pwa-admin-page .orpheus-admin-scan-actions .orpheus-admin-scan-button, .orpheus-pwa-admin-page .orpheus-admin-radio .orpheus-admin-scanner-heading > button, .orpheus-pwa-admin-page .orpheus-admin-radio-actions button, .orpheus-pwa-admin-page .orpheus-admin-radio-dialog-actions button, .orpheus-pwa-admin-page .orpheus-admin-user-create-form button, .orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions button { display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.orpheus-pwa-admin-page .orpheus-admin-status-value--warning { color:#f2bd52 !important; }
.orpheus-pwa-admin-page .orpheus-admin-status-value--error { color:#ff9188 !important; }
.orpheus-pwa-admin-page .orpheus-admin-status-grid { gap:8px; margin-top:12px; }
.orpheus-pwa-admin-page .orpheus-admin-status-grid article { padding:9px 10px; }
.orpheus-pwa-admin-page .orpheus-admin-status-secondary { gap:8px; margin-top:8px; }
.orpheus-pwa-admin-page .orpheus-admin-status-secondary article { padding:8px 10px; }
.orpheus-pwa-admin-page .orpheus-admin-runtime { margin:10px 2px 0; }
.orpheus-pwa-admin-page .orpheus-admin-runtime summary { padding-top:8px; }
.orpheus-pwa-admin-page .orpheus-admin-runtime-grid { gap:8px; margin-top:8px; }
.orpheus-pwa-admin-page .orpheus-admin-runtime-grid article { padding:8px 9px; }
.orpheus-pwa-admin-page .orpheus-admin-status-meta { margin-top:8px; padding-top:8px; }
.orpheus-pwa-admin-page .orpheus-admin-status-grid, .orpheus-pwa-admin-page .orpheus-admin-status-secondary, .orpheus-pwa-admin-page .orpheus-admin-runtime-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.orpheus-pwa-admin-page .orpheus-admin-scanner, .orpheus-pwa-admin-page .orpheus-admin-hls { padding:var(--orpheus-pwa-panel-padding); }
.orpheus-pwa-admin-page .orpheus-admin-scanner { padding:0 2px; border:0; border-radius:0; background:transparent; }
.orpheus-pwa-admin-page .orpheus-admin-scanner .orpheus-admin-scan-actions .orpheus-admin-scan-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.orpheus-pwa-admin-page .orpheus-admin-scan-source { margin:7px 0 0; color:var(--orpheus-muted); font-size:.72rem; line-height:1.35; }
.orpheus-pwa-admin-page .orpheus-admin-scan-details { margin-top:12px; border-top:1px solid #ffffff18; }
.orpheus-pwa-admin-page .orpheus-admin-scan-details summary { padding:10px 0 8px; color:var(--orpheus-muted); font-size:.76rem; cursor:pointer; }
.orpheus-pwa-admin-page .orpheus-admin-scan-details[open] summary { color:var(--orpheus-accent); }
.orpheus-pwa-admin-page .orpheus-admin-radio { padding:0 2px; }
.orpheus-pwa-admin-page .orpheus-admin-radio-heading-actions { display:flex; flex:0 0 auto; align-items:center; gap:6px; }
.orpheus-pwa-admin-page .orpheus-admin-radio-heading-actions button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:38px; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selector { margin-top:14px; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selector label { display:grid; gap:6px; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selector select { width:100%; min-width:0; min-height:44px; padding:10px 11px; border:1px solid #ffffff24; border-radius:9px; color:var(--orpheus-text); background:#111216; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-meta { display:grid; gap:3px; margin-top:10px; padding:9px 10px; border-left:2px solid var(--orpheus-accent); background:#ffffff08; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-meta[hidden] { display:none; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-meta strong { overflow:hidden; color:var(--orpheus-text); text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-meta span { color:var(--orpheus-accent); font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-meta span.is-inactive { color:#f2bd52; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-meta small { overflow:hidden; color:var(--orpheus-muted); font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions form { min-width:0; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions button { width:100%; min-height:42px; padding:8px 10px; border:1px solid var(--orpheus-accent-strong); border-radius:9px; color:#14150f; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions button:hover, .orpheus-pwa-admin-page .orpheus-admin-radio-actions button:focus-visible { background:#e1f18a; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions form button[data-radio-delete] { border-color:#ff8a8088; color:#fff4f2; background:#9d3029; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions form button[data-radio-delete]:hover, .orpheus-pwa-admin-page .orpheus-admin-radio-actions form button[data-radio-delete]:focus-visible { border-color:#ffb0a8; background:#c63d34; }
.orpheus-pwa-admin-page .orpheus-admin-radio-actions button:disabled { cursor:not-allowed; opacity:.45; }
.orpheus-pwa-admin-page .orpheus-admin-radio-selection-note { min-height:1.2em; margin:9px 0 0; color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-pwa-admin-page .orpheus-admin-radio-dialog [data-radio-test] { color:var(--orpheus-text); background:#25252a; border-color:#ffffff28; }
.orpheus-pwa-admin-page .orpheus-admin-radio-dialog [data-radio-test]:hover, .orpheus-pwa-admin-page .orpheus-admin-radio-dialog [data-radio-test]:focus-visible { color:var(--orpheus-accent); border-color:#c4d96a66; background:#25252a; }
.orpheus-pwa-admin-page .orpheus-admin-radio-test-status { min-height:1.2em; margin:0; color:var(--orpheus-muted); font-size:.74rem; }
.orpheus-pwa-admin-page .orpheus-admin-radio-test-status.is-checking { color:#f2bd52; }
.orpheus-pwa-admin-page .orpheus-admin-radio-test-status.is-ok { color:#72e6a8; }
.orpheus-pwa-admin-page .orpheus-admin-radio-test-status.is-error { color:#ff9188; }
.orpheus-pwa-admin-page .orpheus-admin-radio-test-all-status { min-height:1.2em; margin:8px 0 0; color:var(--orpheus-muted); font-size:.74rem; }
@media (max-width:760px) { .orpheus-pwa-admin-page .orpheus-admin-radio-heading-actions { width:100%; } .orpheus-pwa-admin-page .orpheus-admin-radio-heading-actions button { flex:1 1 0; width:auto; min-width:0; padding-left:6px; padding-right:6px; font-size:.74rem; } }
.orpheus-pwa-admin-dialog .orpheus-admin-button-icon { display:inline-grid; place-items:center; flex:0 0 14px; width:14px; height:14px; }
.orpheus-pwa-admin-dialog .orpheus-admin-button-icon svg { display:block; width:14px; height:14px; }
.orpheus-pwa-admin-dialog .orpheus-admin-radio-dialog-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.orpheus-pwa-admin-dialog .orpheus-admin-radio-dialog-actions button { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-width:0; padding:7px 5px; font-size:.68rem; white-space:nowrap; }
.orpheus-pwa-admin-page .orpheus-admin-hls { padding:0 2px; border:0; border-radius:0; background:transparent; }
.orpheus-pwa-admin-page .orpheus-admin-hls .orpheus-admin-scanner-heading { padding-bottom:12px; border-bottom:1px solid #55d9e044; }
.orpheus-pwa-admin-page .orpheus-admin-hls-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; width:100%; margin-top:10px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-filters::-webkit-scrollbar { display:none; }
.orpheus-pwa-admin-page .orpheus-admin-hls-filters button { display:inline-flex; align-items:center; justify-content:center; gap:4px; width:100%; min-width:0; min-height:34px; padding:6px 5px; border:1px solid #ffffff24; border-radius:999px; color:var(--orpheus-muted); background:#18191c; font-size:.72rem; cursor:pointer; }
.orpheus-pwa-admin-page .orpheus-admin-hls-filters .orpheus-admin-button-icon { flex-basis:13px; width:13px; height:13px; opacity:.8; }
.orpheus-pwa-admin-page .orpheus-admin-hls-filters .orpheus-admin-button-icon svg { width:13px; height:13px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-filters button.is-active, .orpheus-pwa-admin-page .orpheus-admin-hls-filters button:hover, .orpheus-pwa-admin-page .orpheus-admin-hls-filters button:focus-visible { border-color:#c4d96a88; color:#14150f; background:var(--orpheus-accent); }
.orpheus-pwa-admin-page .orpheus-admin-hls h2, .orpheus-pwa-admin-page .orpheus-admin-scanner h2 { font-size:1.45rem; }
.orpheus-pwa-admin-page .orpheus-admin-hls-job-main strong { font-size:.84rem; }
.orpheus-pwa-admin-page .orpheus-admin-scan-actions { gap:6px; }
.orpheus-pwa-admin-page .orpheus-admin-hls .orpheus-admin-scan-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
.orpheus-pwa-admin-page .orpheus-admin-hls .orpheus-admin-scan-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:100%; padding:8px 6px; font-size:.76rem; }
.orpheus-admin-action-icon { display:inline-grid; place-items:center; width:16px; height:16px; }
.orpheus-admin-action-icon svg { display:block; width:15px; height:15px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-active { margin-top:12px; padding:12px 0 0; border:0; border-top:1px solid #55d9e044; border-radius:0; background:transparent; }
.orpheus-pwa-admin-page .orpheus-admin-hls-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-top:10px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-summary article { padding:7px 8px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-active { margin-top:8px; padding:9px 10px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-list { gap:6px; margin-top:10px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-job { grid-template-columns:minmax(0,1fr) auto; gap:5px 9px; padding:8px 9px; }
.orpheus-pwa-admin-page .orpheus-admin-hls-job-state { text-align:right; }
.orpheus-pwa-admin-page .orpheus-admin-hls-job-action { grid-column:1 / -1; }
.orpheus-pwa-admin-page .orpheus-admin-hls-job-action button { width:auto; padding:6px 8px; font-size:.72rem; }
.orpheus-pwa-admin-page .orpheus-admin-hls-job-action button { display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0 2px; padding:0 0 12px; border-bottom:1px solid #ffffff18; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview > .orpheus-component-panel { min-width:0; height:auto; margin:0; padding:0 10px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview > .orpheus-component-panel + .orpheus-component-panel { border-left:1px solid #ffffff18; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview h2 { margin:0 0 9px; color:var(--orpheus-text); font-size:1rem; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview .orpheus-role-list { padding-left:15px; font-size:.76rem; line-height:1.35; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview .orpheus-role-list li + li { margin-top:6px; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview .orpheus-admin-identity-count { gap:5px; font-size:.78rem; white-space:nowrap; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview .orpheus-admin-identity-count strong { font-size:1.25rem; }
.orpheus-pwa-admin-page .orpheus-admin-role-overview .orpheus-admin-identity-note { margin-top:9px; font-size:.72rem; line-height:1.35; }
.orpheus-pwa-admin-page .orpheus-admin-page > .orpheus-component-panel { margin:0 2px; padding:12px 0; border:0; border-bottom:1px solid #ffffff18; border-radius:0; background:transparent; box-shadow:none; }
.orpheus-pwa-admin-page .orpheus-admin-page > .orpheus-component-panel h2 { margin:0 0 10px; color:var(--orpheus-accent); font-size:1.15rem; }
.orpheus-pwa-admin-page .orpheus-admin-user-list { gap:7px; }
.orpheus-pwa-admin-page .orpheus-admin-user-row { grid-template-columns:minmax(0,1fr) auto; gap:7px 10px; padding:10px; border-left-width:2px; border-radius:10px; background:#18191c; }
.orpheus-pwa-admin-page .orpheus-admin-user-identity, .orpheus-pwa-admin-page .orpheus-admin-user-actions { grid-column:1 / -1; }
.orpheus-pwa-admin-page .orpheus-admin-user-main strong { font-size:.86rem; }
.orpheus-pwa-admin-page .orpheus-admin-user-main small, .orpheus-pwa-admin-page .orpheus-admin-user-status small, .orpheus-pwa-admin-page .orpheus-admin-user-identity small { font-size:.7rem; }
.orpheus-pwa-admin-page .orpheus-admin-user-actions { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; min-width:0; gap:6px; }
.orpheus-pwa-admin-page .orpheus-admin-user-actions .orpheus-admin-role-assign { display:grid !important; grid-column:1 / -1; grid-template-columns:minmax(0,1fr) auto; }
.orpheus-pwa-admin-page .orpheus-admin-user-actions .orpheus-inline-form select, .orpheus-pwa-admin-page .orpheus-admin-user-actions .orpheus-inline-form button { width:100%; min-width:0; min-height:40px; padding:7px 8px; font-size:.7rem; }
.orpheus-pwa-admin-page .orpheus-admin-user-actions .orpheus-admin-role-remove { grid-column:2; }
.orpheus-pwa-admin-page .orpheus-admin-form { gap:9px; }
.orpheus-pwa-admin-page .orpheus-admin-user-create-form { grid-template-columns:1fr; }
.orpheus-pwa-admin-page .orpheus-admin-user-create-form button { width:100%; min-height:42px; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-users { margin:0 2px; padding:12px 0 0; border-bottom:1px solid #ffffff18; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-users h2 { margin:0 0 10px; color:var(--orpheus-accent); font-size:1.15rem; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-select { display:grid; gap:6px; color:var(--orpheus-muted); font-size:.76rem; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-select select { width:100%; min-width:0; min-height:44px; padding:10px 11px; border:1px solid #ffffff24; border-radius:9px; color:var(--orpheus-text); background:#111216; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-detail { display:grid; gap:10px; margin-top:10px; padding:10px; border-left:2px solid var(--orpheus-accent); background:#ffffff08; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-detail[hidden] { display:none; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-summary { display:grid; gap:3px; min-width:0; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-summary strong { overflow:hidden; color:var(--orpheus-text); text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-summary span { width:max-content; color:var(--orpheus-accent); font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-summary span.is-disabled { color:#f2bd52; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-summary small { overflow:hidden; color:var(--orpheus-muted); font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions { display:grid; gap:7px; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions form { min-width:0; margin:0; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions button { width:100%; min-height:40px; padding:7px 9px; border:1px solid var(--orpheus-accent-strong); border-radius:8px; color:#14150f; background:var(--orpheus-accent); font-size:.72rem; font-weight:750; cursor:pointer; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions [data-pwa-user-role-form] { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions select { min-width:0; min-height:40px; padding:7px 8px; border:1px solid #ffffff24; border-radius:8px; color:var(--orpheus-text); background:#111216; font-size:.72rem; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions .orpheus-admin-remove-user-button { border-color:#ff8a8088; color:#fff4f2; background:#9d3029; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions .orpheus-admin-remove-user-button:hover, .orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions .orpheus-admin-remove-user-button:focus-visible { border-color:#ffb0a8; background:#c63d34; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions .orpheus-admin-delete-user-button { border-color:#ff8a8088; color:#fff4f2; background:#7d2520; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions .orpheus-admin-delete-user-button:hover, .orpheus-pwa-admin-page .orpheus-admin-pwa-user-actions .orpheus-admin-delete-user-button:focus-visible { border-color:#ffb0a8; background:#a6322b; }
.orpheus-pwa-admin-page .orpheus-admin-pwa-user-note { min-height:1.2em; margin:8px 0 0; color:var(--orpheus-muted); font-size:.72rem; }
.orpheus-pwa-shell main.orpheus-pwa-profile-page > .orpheus-profile-page-hero,
.orpheus-pwa-shell main.orpheus-pwa-profile-page > .orpheus-profile-stats,
.orpheus-pwa-shell main.orpheus-pwa-profile-page > .orpheus-profile-page-section,
.orpheus-pwa-shell main.orpheus-pwa-profile-page > .orpheus-profile-note { margin-left:4px; margin-right:4px; }
.orpheus-pwa-admin-page .orpheus-admin-subnav,
.orpheus-pwa-admin-page .orpheus-admin-role-overview { margin-left:4px; margin-right:4px; }
.orpheus-pwa-admin-page .orpheus-admin-status,
.orpheus-pwa-admin-page .orpheus-admin-scanner,
.orpheus-pwa-admin-page .orpheus-admin-hls,
.orpheus-pwa-admin-page .orpheus-admin-radio { margin-left:2px; margin-right:2px; }
.orpheus-pwa-admin-page .orpheus-admin-page > .orpheus-component-panel,
.orpheus-pwa-admin-page .orpheus-admin-pwa-users { margin-left:4px; margin-right:4px; }
@media (max-width:700px) {
  .orpheus-pwa-shell > main.orpheus-app-content { padding-bottom:var(--orpheus-pwa-scroll-reserve, calc(60px + var(--orpheus-pwa-content-end-gap))); }
  .orpheus-pwa-shell.has-active-player > main.orpheus-app-content { padding-bottom:var(--orpheus-pwa-scroll-reserve, calc(60px + var(--orpheus-pwa-player-nav-gap) + 62px + var(--orpheus-pwa-content-end-gap))); }
  .orpheus-pwa-shell > .orpheus-app-content > :is(main, .orpheus-page) { padding-bottom:0; }
}
.orpheus-profile-page-hero { display:flex; align-items:center; gap:20px; margin-bottom:var(--orpheus-pwa-panel-gap); padding:var(--orpheus-pwa-panel-padding); border:1px solid #ffffff22; border-radius:20px; background:linear-gradient(145deg,#1d1e20,#151619); box-shadow:0 14px 34px #0004; }
.orpheus-profile-page-avatar { position:relative; display:block; flex:0 0 auto; cursor:pointer; }
.orpheus-profile-page-avatar input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; clip-path:inset(50%); }
.orpheus-profile-page-avatar:focus-within { outline:2px solid var(--orpheus-accent); outline-offset:5px; border-radius:50%; }
.orpheus-profile-page-avatar .orpheus-user-avatar { width:88px; height:88px; border-width:3px; font-size:2rem; }
.orpheus-profile-avatar-edit { position:absolute; right:-2px; bottom:0; display:grid; place-items:center; width:27px; height:27px; border:2px solid #17181a; border-radius:50%; color:#17180f; background:var(--orpheus-accent); font-size:.9rem; font-weight:800; }
.orpheus-profile-avatar-edit svg { width:14px; height:14px; }
.orpheus-profile-page-identity { min-width:0; }
.orpheus-profile-page-hero h1 { margin:0 0 6px; color:var(--orpheus-text); font-size:clamp(2rem, 7vw, 3rem); letter-spacing:-.04em; }
.orpheus-profile-page-hero p:not(.orpheus-eyebrow) { margin:0 0 12px; color:var(--orpheus-muted); font-size:.92rem; }
.orpheus-profile-avatar-help { max-width:260px; margin:10px 0 0 !important; color:var(--orpheus-muted); font-size:.68rem !important; line-height:1.35; }
.orpheus-profile-avatar-help.is-error { color:#ffb4a9; }
.orpheus-profile-avatar-remove { margin-top:8px; padding:5px 8px; border:1px solid #ffffff18; border-radius:8px; color:var(--orpheus-muted); background:transparent; font-size:.68rem; cursor:pointer; }
.orpheus-profile-avatar-remove:hover, .orpheus-profile-avatar-remove:focus-visible { border-color:#c4d96a66; color:var(--orpheus-text); outline:none; }
.orpheus-profile-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin-bottom:10px; padding-bottom:18px; }
.orpheus-profile-stats article { display:grid; gap:6px; min-height:0; padding:0 16px; border:0; border-radius:0; background:transparent; }
.orpheus-profile-stats article + article { border-left:1px solid #ffffff18; }
.orpheus-profile-stats span { color:var(--orpheus-muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; }
.orpheus-profile-stats strong { color:var(--orpheus-accent); font-size:1.65rem; }
.orpheus-profile-stats small { color:var(--orpheus-muted); font-size:.7rem; line-height:1.3; }
.orpheus-profile-page-section { margin-top:var(--orpheus-pwa-panel-gap); padding-top:var(--orpheus-pwa-section-padding); border-top:1px solid #ffffff18; }
.orpheus-profile-stats + .orpheus-profile-page-section { margin-top:0; padding-top:10px; }
.orpheus-profile-page-section.is-empty { margin-top:10px; padding-top:10px; }
.orpheus-profile-page-section.is-empty .orpheus-profile-section-heading { margin-bottom:7px; }
.orpheus-profile-page-section.is-empty .orpheus-profile-empty { font-size:.78rem; }
.orpheus-profile-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.orpheus-profile-section-heading h2 { margin:0; color:var(--orpheus-accent); font-size:1.4rem; letter-spacing:-.025em; }
.orpheus-profile-progress-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px 14px; padding:17px; border:1px solid #ffffff22; border-radius:16px; background:linear-gradient(145deg,#1d1e20,#151619); }
.orpheus-profile-progress-card h3 { margin:4px 0 5px; color:var(--orpheus-text); font-size:1.08rem; }
.orpheus-profile-progress-card p { margin:0; color:var(--orpheus-muted); font-size:.84rem; }
.orpheus-profile-track-label { color:var(--orpheus-muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }
.orpheus-profile-progress-card > strong { color:var(--orpheus-accent); font-size:1.25rem; }
.orpheus-profile-progress-bar { grid-column:1 / -1; height:6px; overflow:hidden; border-radius:99px; background:#ffffff1c; }
.orpheus-profile-progress-bar span { display:block; width:calc(var(--orpheus-progress, 0) * 1%); height:100%; border-radius:inherit; background:var(--orpheus-accent); }
.orpheus-profile-progress-card > button, .orpheus-profile-recent-item button { justify-self:start; min-height:44px; padding:8px 12px; border:1px solid #c4d96a66; border-radius:9px; color:#15170e; background:var(--orpheus-accent); font-weight:750; cursor:pointer; }
.orpheus-profile-recent-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.orpheus-profile-recent-item { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:13px 14px; border:1px solid #ffffff18; border-radius:13px; background:#18191b; }
.orpheus-profile-recent-item div { display:grid; min-width:0; gap:4px; }
.orpheus-profile-recent-item strong { overflow:hidden; color:var(--orpheus-text); text-overflow:ellipsis; white-space:nowrap; }
.orpheus-profile-recent-item small, .orpheus-profile-recent-item > span { color:var(--orpheus-muted); font-size:.78rem; }
.orpheus-profile-recent-item button { width:34px; height:34px; padding:0; border-radius:50%; }
.orpheus-profile-empty, .orpheus-profile-note { color:var(--orpheus-muted); font-size:.88rem; }
.orpheus-profile-note--error { color:#ffb4a9; }
.orpheus-profile-note[data-player-sleep-status] { margin:12px 0 0; }
.orpheus-profile-settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.orpheus-profile-settings-grid label { display:grid; gap:7px; color:var(--orpheus-muted); font-size:.8rem; }
.orpheus-profile-settings-grid select, .orpheus-player-options select { min-width:0; min-height:44px; padding:10px 11px; border:1px solid #ffffff24; border-radius:9px; color:var(--orpheus-text); background:#111216; }
.orpheus-profile-account-section .orpheus-profile-section-heading h2 { color:var(--orpheus-muted); font-size:1.05rem; }
.orpheus-profile-account-section .orpheus-profile-action { min-height:44px; border-color:#ffffff14; background:transparent; }
.orpheus-profile-account-section .orpheus-profile-action-icon { color:var(--orpheus-muted); background:#ffffff12; }
.orpheus-pwa-admin-page .orpheus-admin-metadata { margin-left:2px; margin-right:2px; padding:var(--orpheus-pwa-panel-padding); border:1px solid #bd8cff66; border-radius:14px; background:#151519; }
@media (max-width:520px) { .orpheus-profile-page-hero { align-items:flex-start; gap:14px; } .orpheus-profile-page-avatar .orpheus-user-avatar { width:72px; height:72px; } .orpheus-profile-stats strong { font-size:1.35rem; } .orpheus-profile-recent-item { grid-template-columns:minmax(0,1fr) auto; } .orpheus-profile-recent-item button { grid-column:2; grid-row:1 / span 2; } .orpheus-profile-settings-grid { grid-template-columns:1fr; } .orpheus-profile-avatar-help { max-width:210px; } }
