.source-library { --source-bg:#071d30; --source-border:#26485e; --source-text:#f1f7ff; --source-muted:#b3cadc; color:var(--source-text); display:grid; gap:16px; list-style:none; padding:0; }
.source-library-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; background:#061828; padding:18px; border-radius:12px; }
.source-card { background:linear-gradient(135deg,#0e2a40,var(--source-bg)); border:1px solid var(--source-border); border-radius:14px; padding:20px; min-width:0; overflow-wrap:anywhere; }
.source-card-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.source-card h3 { margin:0; font-size:1.15rem; color:var(--source-text); }
.source-library .source-muted { color:var(--source-muted); line-height:1.5; margin:10px 0; }
.source-badge { border:1px solid #65849b; background:#19374d; padding:5px 10px; border-radius:30px; font-size:.85rem; font-weight:600; }
.source-card[data-state=good] .source-badge { color:#b3ffe4; border-color:#217e67; background:#0b4137; }
.source-card[data-state=warning] .source-badge { color:#ffe2a6; border-color:#a88343; background:#483821; }
.source-card[data-state=danger] .source-badge { color:#ffd3d7; border-color:#b45b69; background:#532b35; }
.source-validity { display:grid; gap:7px; padding:16px; margin:15px 0; border-radius:10px; background:#051725; border-left:3px solid #42cfff; }
.source-validity strong { font-size:1.12rem; line-height:1.5; }
.source-validity small { color:var(--source-muted); }
.source-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.source-library button { color:#f1f7ff; background:#153a55; border:1px solid #43738f; border-radius:8px; min-height:44px; padding:10px 14px; margin:0; font:inherit; cursor:pointer; }
.source-library button:disabled { opacity:.5; cursor:default; }
.source-library button:focus-visible,.source-library input:focus-visible,.source-library summary:focus-visible { outline:3px solid #8cddff; outline-offset:3px; }
.source-library .source-danger { color:#ffd7dd; background:#472736; border-color:#ae6374; }
.source-delete-confirm,.source-expiry-form { display:block; margin-top:16px; padding:16px; border:1px solid #aa6d75; border-radius:10px; background:#07131e; }
.source-expiry-form label { display:grid; gap:10px; }
.source-expiry-form input { box-sizing:border-box; max-width:100%; background:#102c41; color:white; padding:12px; border:1px solid #648ca3; border-radius:8px; color-scheme:dark; }
.source-expiry-form button,.source-delete-confirm button { margin:6px 6px 0 0; }
.source-archive { border:1px solid #395770; border-radius:12px; padding:14px; }
.source-archive summary { cursor:pointer; min-height:44px; line-height:1.5; }
.source-archive .source-card { margin-top:14px; }
.source-action-message:empty { display:none; }
.source-delete-status:empty { display:none; }
.source-delete-status:not(:empty) { padding:12px; border:1px solid #4d7f9a; border-radius:10px; background:#143248; color:#d5f2ff; line-height:1.5; }
.source-action-message { background:#071d30; color:#ffdf9f; padding:14px; border-radius:8px; }
@media(max-width:540px) { .source-card { padding:16px; } .source-actions button { flex:1 1 135px; } .source-validity strong { font-size:1rem; } }

.source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
@media(max-width:850px) { .source-grid { grid-template-columns:minmax(0,1fr); } }

.source-player-visibility { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:14px 0;padding:14px;border:1px solid var(--line,var(--source-border));border-radius:12px;background:linear-gradient(120deg,#68d7ef12,#a28be80b); }
.source-player-visibility .source-muted { flex:1 1 200px;margin:0; }
.source-player-visibility button { flex-shrink:0; }
.source-hidden { background:#92a9c508; }

.playlist-sections {display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.playlist-sections a {display:flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid #d4e5ff38;border-radius:14px;background:#ffffff08;color:#ecf4ff;text-decoration:none}
.playlist-sections a[aria-current=page] {background:#b9dbfa20;border-color:#b9dbfa;color:#fff}
.playlist-sections a:focus-visible {outline:3px solid #b9dbfa;outline-offset:3px}
body[data-skin=glassy] .playlist-management .playlist-workspace {grid-template-columns:minmax(0,1fr)}
.playlist-management [hidden] {display:none!important}
.playlist-management .playlist-saved .source-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
.source-quick-actions {justify-content:flex-end}
.epg-library {padding:20px;border:1px solid #d4e5ff29;border-radius:18px;background:linear-gradient(125deg,#ffffff12,#ffffff04),#172438ad}
.epg-library .source-library-heading {align-items:center;background:transparent;padding:0}
.epg-library h2 {margin:0}
.epg-mapping-panel{margin-top:24px;padding:20px;border:1px solid #80d9ff66;border-radius:16px;min-width:0;background:#0b1b2c}
.epg-mapping-panel p,.epg-mapping-row span{overflow-wrap:anywhere;color:#bfd0e0}
.epg-mapping-search{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:20px 0}
.epg-mapping-search label{flex:1;min-width:min(220px,100%)}
.epg-mapping-panel label,.epg-mapping-search label{display:flex;flex-direction:column;gap:8px}
.epg-mapping-panel input:not([type=checkbox]),.epg-mapping-search select,.epg-mapping-search input{box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:12px;border:1px solid #5f809d;border-radius:8px;background:#102337;color:#f2f8ff;font:inherit}
.epg-mapping-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:8px;margin-bottom:16px}
.epg-mapping-row{display:flex!important;flex-direction:column!important;align-items:start!important;text-align:left;gap:8px;min-width:0;white-space:normal!important}
.epg-mapping-editor{margin-top:24px;padding-top:16px;border-top:1px solid #5f809d}
.epg-mapping-editor h4{font-size:1.2rem;margin:0 0 16px}
.epg-mapping-reset{margin:24px 0;padding:16px;border:1px solid #5f809d;border-radius:8px}
.epg-mapping-reset label{flex-direction:row;align-items:center;margin-bottom:12px}
.epg-mapping-choices{display:grid;gap:8px;max-height:360px;overflow:auto}
.epg-mapping-choices button{text-align:left;overflow-wrap:anywhere;white-space:normal!important}
.epg-mapping-panel :focus-visible{outline:3px solid #80d9ff;outline-offset:3px}
@media(max-width:540px){.epg-mapping-panel{padding:12px}.epg-mapping-search>button{width:100%}}
@media(max-width:850px){.playlist-management .playlist-saved .source-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){.playlist-sections a{flex:1 1 auto;justify-content:center;padding:10px 12px}.epg-library{padding:16px}}
