*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;color:#333}.app-layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;background:#fff;font-size:1rem}button:hover{background:#f5f5f5}input,select,textarea{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:1rem;width:100%}label{display:block;margin-bottom:.5rem;font-weight:500}.form-group{margin-bottom:1.5rem}.global-player{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 20px;box-shadow:0 -2px 10px #0003;z-index:1000;display:flex;flex-direction:column;gap:12px;max-height:600px;overflow-y:auto}.global-player .player-info{display:flex;align-items:center;justify-content:space-between}.global-player .track-details{flex:1}.global-player .track-title{margin:0;font-size:16px;font-weight:600;color:#fff}.global-player .track-source{margin:0;font-size:12px;color:#fffc}.global-player .player-controls{display:flex;align-items:center;gap:12px;justify-content:center}.global-player .control-btn,.global-player .play-pause-btn{background:#fff3;border:none;color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s}.global-player .play-pause-btn{width:50px;height:50px;background:#ffffff4d;font-size:20px}.global-player .control-btn:hover:not(:disabled),.global-player .play-pause-btn:hover:not(:disabled){background:#fff6;transform:scale(1.05)}.global-player .control-btn:disabled{opacity:.3;cursor:not-allowed}.global-player .close-btn{margin-left:auto;background:#ff00004d}.global-player .close-btn:hover{background:#ff000080}.global-player .video-container,.global-player .spotify-container{width:100%;max-width:600px;margin:0 auto}.global-player .fallback-message{text-align:center;padding:10px}.global-player .fallback-message a{color:#fff;text-decoration:underline}@media(max-width:768px){.global-player{padding:10px 15px}.global-player .track-title{font-size:14px}.global-player .control-btn,.global-player .play-pause-btn{width:35px;height:35px;font-size:16px}.global-player .play-pause-btn{width:45px;height:45px}}.header{background:#1e3a8a;color:#fff;padding:1rem 0}.header-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;color:#fff;text-decoration:none}.logo:hover{text-decoration:none}.nav{display:flex;gap:2rem;align-items:center}.nav a{color:#fff;text-decoration:none}.nav a:hover{text-decoration:underline}.nav-dropdown{position:relative}.nav-dropdown-trigger{background:transparent;border:none;color:#fff;cursor:pointer;font-size:inherit;font-family:inherit;display:flex;align-items:center;gap:.4rem;padding:0}.nav-dropdown-trigger:hover{text-decoration:underline}.dropdown-arrow{font-size:.6rem;opacity:.8}.nav-dropdown-menu{position:absolute;top:100%;left:0;margin-top:.5rem;background:#1e3a8a;border:1px solid rgba(255,255,255,.2);border-radius:6px;min-width:220px;box-shadow:0 4px 12px #0000004d;z-index:1000;overflow:hidden}.nav-dropdown-menu a{display:block;padding:.75rem 1rem;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.1);transition:background .15s ease}.nav-dropdown-menu a:last-child{border-bottom:none}.nav-dropdown-menu a:hover{background:#ffffff26;text-decoration:none}.user-menu{display:flex;gap:1rem;align-items:center}.user-menu a,.user-menu button{color:#fff;background:transparent;border:1px solid white;padding:.5rem 1rem}.user-menu a:hover,.user-menu button:hover{background:#ffffff1a}.footer{background:#f3f4f6;padding:2rem 0;margin-top:auto}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem;text-align:center}.loading-spinner{display:flex;justify-content:center;align-items:center;padding:4rem}.spinner{border:4px solid #f3f3f3;border-top:4px solid #2563eb;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.home-page{max-width:1200px;margin:0 auto}.hero{text-align:center;padding:4rem 0}.hero h1{font-size:3rem;margin-bottom:1rem}.hero-description{font-size:1.25rem;color:#6b7280;max-width:600px;margin:0 auto}.entry-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin:4rem 0}.entry-card{padding:2rem;border:2px solid #e5e7eb;border-radius:8px;text-align:center;transition:all .2s}.entry-card:hover{border-color:#2563eb;background:#eff6ff}.entry-card h2{margin-bottom:.5rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin:4rem 0}.stat-card{text-align:center;padding:2rem;background:#f9fafb;border-radius:8px}.stat-card h3{font-size:3rem;color:#2563eb;margin-bottom:.5rem}.tag-chip{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.875rem;background:#e5e7eb;color:#374151}.tag-translation{background:#dbeafe;color:#1e40af}.tag-mappingtype{background:#fce7f3;color:#9f1239}.tag-genre{background:#fef3c7;color:#92400e}.tag-voice{background:#d1fae5;color:#065f46}.tag-mood{background:#e9d5ff;color:#6b21a8}.tag-tempo{background:#fed7aa;color:#9a3412}.tag-language{background:#cffafe;color:#164e63}.tag-misc{background:#f3f4f6;color:#374151}.tag-filter{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.tag-filter-group h4{margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#6b7280}.tag-filter-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag-filter-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.tag-filter-label input[type=checkbox]{width:auto}.source-filter{display:flex;flex-direction:column;gap:.5rem}.source-filter h4{margin:0;font-size:.875rem;font-weight:600;color:#6b7280}.source-filter-options{display:flex;flex-wrap:wrap;gap:.75rem}.source-filter-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.source-filter-label input[type=checkbox]{width:auto}.liked-filter{margin-bottom:1rem}.liked-filter h4{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary, #666)}.liked-filter-options{display:flex;gap:1rem;flex-wrap:wrap}.liked-filter-label{display:flex;align-items:center;gap:.25rem;cursor:pointer;font-size:.875rem}.liked-filter-label input[type=radio]{cursor:pointer}.liked-filter--disabled{opacity:.6}.liked-filter--disabled h4{color:#999}.liked-filter-login-prompt{font-size:.875rem;color:#666;font-style:italic}.liked-filter-login-prompt a{color:var(--color-primary, #3b82f6);text-decoration:underline;font-style:normal;font-weight:500}.liked-filter-login-prompt a:hover{color:var(--color-primary-dark, #2563eb)}.listened-filter{display:flex;flex-direction:column;gap:.5rem}.listened-filter h4{margin:0;font-size:.875rem;font-weight:600;color:#6b7280}.listened-filter-options{display:flex;flex-wrap:wrap;gap:.75rem}.listened-filter-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.listened-filter-label input[type=radio]{width:auto}.listened-filter--disabled{opacity:.6}.listened-filter--disabled h4{color:#999}.listened-filter-login-prompt{font-size:.875rem;color:#666;font-style:italic}.listened-filter-login-prompt a{color:var(--color-primary, #3b82f6);text-decoration:underline;font-style:normal;font-weight:500}.listened-filter-login-prompt a:hover{color:var(--color-primary-dark, #2563eb)}.psalms-index-page h1{margin-bottom:2rem}.psalms-filter-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.filter-header h3{margin:0;font-size:1rem;font-weight:600;color:#374151}.clear-filters-btn{background:none;border:1px solid #d1d5db;border-radius:4px;padding:.375rem .75rem;font-size:.875rem;color:#6b7280;cursor:pointer;transition:all .2s}.clear-filters-btn:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151}.filter-summary{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;font-size:.875rem;color:#6b7280;font-weight:500}.psalms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.psalm-card{padding:1.5rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;transition:all .2s}.psalm-card:hover{border-color:#2563eb;box-shadow:0 4px 6px #0000001a}.psalm-number{font-size:1.5rem;font-weight:600;color:#2563eb;margin-bottom:.5rem}.psalm-title{font-weight:600;margin-bottom:.5rem}.psalm-theme{color:#6b7280;font-size:.875rem;margin-bottom:.5rem}.psalm-song-count{font-size:.875rem;color:#9ca3af}.no-results{text-align:center;padding:3rem 1rem;color:#6b7280}.no-results p{margin-bottom:1rem;font-size:1rem}.no-results .clear-filters-btn{background:#2563eb;border-color:#2563eb;color:#fff}.no-results .clear-filters-btn:hover{background:#1d4ed8;border-color:#1d4ed8}.like-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid #e5e7eb;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s}.like-button:hover{background:#f9fafb}.like-button.liked{background:#fef2f2;border-color:#ef4444}.like-button.liked .like-icon{color:#ef4444}.like-icon{font-size:1.25rem}.like-count{font-weight:600}.listened-button{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#6b7280;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.listened-button:hover:not(:disabled){border-color:#10b981;color:#10b981;background:#f0fdf4}.listened-button:disabled{opacity:.6;cursor:not-allowed}.listened-button.listened{background:#10b981;border-color:#10b981;color:#fff}.listened-button.listened:hover:not(:disabled){background:#059669;border-color:#059669}.listened-icon{font-size:1rem;line-height:1}.listened-text{white-space:nowrap}.source-button{padding:.75rem 1.5rem;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer}.source-button:hover{background:#1d4ed8}.mini-player{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#667eea,#764ba2);padding:6px 12px;border-radius:20px;color:#fff;transition:all .3s ease}.mini-player:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.mini-play-btn{background:#fff3;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:12px;transition:all .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.mini-play-btn:hover:not(:disabled){background:#ffffff4d}.mini-play-btn:disabled{opacity:.6;cursor:not-allowed}.mini-play-btn.error{background:#ff64644d}.mini-play-btn .loading{animation:spin 1s linear infinite;font-size:14px}.mini-play-btn .pause{font-size:10px;letter-spacing:2px}.mini-play-btn .error{font-weight:700;font-size:14px}.mini-player-title{font-size:.85rem;font-weight:500;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}@media(max-width:600px){.mini-player{padding:4px 10px}.mini-play-btn{width:24px;height:24px}.mini-player-title{font-size:.8rem;max-width:100px}}.song-card{border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1rem;background:#fff}.song-card-with-thumb{display:flex;gap:1rem}.song-card-thumbnail{flex-shrink:0;width:160px;height:90px;border-radius:6px;overflow:hidden;background:#f3f4f6}.song-card-thumbnail img{width:100%;height:100%;object-fit:cover}.song-card-content{flex:1;min-width:0}.song-card-channel{font-size:.875rem;color:#6b7280;margin-bottom:.5rem}.song-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.song-card-buttons{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.song-card-with-thumb .song-card-header{margin-bottom:.25rem}.song-title{font-size:1.25rem;font-weight:600;color:#1f2937}.song-card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.song-card-with-thumb .song-card-tags{margin-bottom:.5rem}.song-card-actions{margin-bottom:1rem;display:flex;gap:.5rem;flex-wrap:wrap}.song-card-actions .play-btn{padding:6px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s}.song-card-actions .play-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.song-card-meta{display:flex;gap:1rem;font-size:.875rem;color:#6b7280}.song-card-meta .view-count{color:#3b82f6;font-weight:500}.sort-dropdown{padding:.5rem 1rem;border:1px solid #e5e7eb;border-radius:4px;background:#fff;font-size:1rem;cursor:pointer}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn:disabled{opacity:.5;cursor:not-allowed}.psalm-detail-page{max-width:1000px}.psalm-header{margin-bottom:2rem}.psalm-header h1{font-size:2.5rem;margin-bottom:.5rem}.theme-phrase{font-size:1.125rem;color:#6b7280;font-style:italic}.psalm-actions{margin-bottom:2rem}.filters-section{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:2rem;padding:1rem;background:#f9fafb;border-radius:8px}.clear-filters{padding:.5rem 1rem;background:#ef4444;color:#fff;border:none;border-radius:4px}.songs-section h3{margin-bottom:1rem}.bible-text-section{margin-bottom:2rem;padding:1.5rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.bible-text-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.translation-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.translation-tab{border:1px solid #d1d5db;background:#fff;padding:.35rem .85rem;border-radius:999px;font-size:.95rem;cursor:pointer;transition:all .2s ease}.translation-tab.active{background:#111827;color:#fff;border-color:#111827}.translation-tab:hover:not(.active){border-color:#9ca3af}.translation-tab-link{text-decoration:none;display:inline-flex;align-items:center;gap:.25rem}.translation-tab-link.active{background:#7c3aed;border-color:#7c3aed}.refresh-text{border:none;background:#2563eb;color:#fff;padding:.35rem .85rem;border-radius:999px;cursor:pointer}.refresh-text:disabled{opacity:.5;cursor:not-allowed}.bible-text-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;max-height:420px;overflow-y:auto}.bible-text-content pre{white-space:pre-wrap;font-family:inherit;margin:0;line-height:1.55}.bible-text-error{color:#b45309}.bible-text-empty{color:#6b7280}.bible-text-copyright{color:#4b5563;line-height:1.6}.bible-external-link{display:inline-block;margin-top:.5rem;color:#2563eb;font-weight:500;text-decoration:none;transition:color .2s ease}.bible-external-link:hover{color:#1d4ed8;text-decoration:underline}.audio-player{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:20px;box-shadow:0 10px 25px #0003;color:#fff;max-width:600px;margin:20px auto}.audio-player.error{background:linear-gradient(135deg,#f5365c,#d62d4e);text-align:center}.player-info{text-align:center;margin-bottom:20px}.track-title{font-size:1.2rem;font-weight:600;margin:0 0 5px;color:#fff}.track-artist{font-size:.9rem;opacity:.8;margin:0}.player-controls{display:flex;align-items:center;gap:15px}.play-pause-btn{background:#fff3;border:none;border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#fff;font-size:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.play-pause-btn:hover:not(:disabled){background:#ffffff4d;transform:scale(1.05)}.play-pause-btn:disabled{opacity:.5;cursor:not-allowed}.play-pause-btn.playing .pause-icon{font-size:16px;letter-spacing:3px}.loading-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-container{flex:1;display:flex;align-items:center;gap:10px}.time{font-size:.85rem;min-width:45px;text-align:center}.progress-bar{flex:1;background-color:#ffffff4d;border-radius:10px;height:8px;-webkit-appearance:none;appearance:none;cursor:pointer;outline:none;position:relative;overflow:hidden}.progress-bar::-webkit-slider-thumb{-webkit-appearance:none;height:16px;width:16px;border-radius:50%;background:#fff;cursor:pointer;position:relative;box-shadow:0 0 10px #0000004d;z-index:3}.progress-bar::-moz-range-thumb{height:16px;width:16px;border-radius:50%;background:#fff;cursor:pointer;position:relative;box-shadow:0 0 10px #0000004d;border:none}.progress-bar:before{content:"";height:8px;width:var(--seek-before-width, 0);background-color:#ffffffb3;position:absolute;top:0;left:0;z-index:2;cursor:pointer;border-radius:10px}.volume-control{display:flex;align-items:center;gap:8px;min-width:120px}.volume-icon{font-size:1.2rem}.volume-slider{width:80px;height:6px;-webkit-appearance:none;appearance:none;background-color:#ffffff4d;border-radius:10px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;height:14px;width:14px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 0 8px #0000004d}.volume-slider::-moz-range-thumb{height:14px;width:14px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 0 8px #0000004d;border:none}@media(max-width:600px){.audio-player{padding:15px}.player-controls{flex-wrap:wrap;gap:10px}.progress-container{width:100%;order:2}.volume-control{order:1;margin-left:auto}}.embedded-player{margin:1rem 0}.embedded-player iframe{width:100%;max-width:560px;height:315px}.suno-player .suno-message{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000001a;max-width:500px;margin:0 auto}.suno-message p{margin:0 0 15px;font-size:1.1rem}.suno-message a{color:#fff;background:#fff3;padding:10px 20px;border-radius:6px;text-decoration:none;display:inline-block;transition:all .3s ease}.suno-message a:hover{background:#ffffff4d;transform:translateY(-1px)}.song-detail-page{max-width:800px}.song-header{margin-bottom:2rem}.psalm-link{display:inline-block;margin-bottom:1rem;color:#6b7280}.song-header h1{font-size:2rem;margin-bottom:1rem}.song-vote{margin-top:1rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.song-description{margin-bottom:2rem;padding:1rem;background:#f9fafb;border-radius:8px}.song-tags{margin-bottom:2rem}.tag-group h3{font-size:1rem;margin-bottom:.5rem;color:#6b7280}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.song-sources{margin-bottom:2rem}.primary-source{margin-bottom:1.5rem}.other-sources{margin-top:1.5rem}.source-buttons{display:flex;flex-wrap:wrap;gap:1rem}.song-meta{padding-top:2rem;border-top:1px solid #e5e7eb;color:#6b7280;font-size:.875rem}.song-actions{display:flex;gap:1rem;margin-top:1rem;flex-wrap:wrap}.curation-btn{background:#6366f1;color:#fff;display:flex;align-items:center;gap:.5rem}.curation-btn:hover:not(:disabled){background:#4f46e5}.curation-btn:disabled{background:#9ca3af;cursor:wait}.curation-result{margin-top:1.5rem;padding:1rem;border-radius:8px;background:#f9fafb;border:1px solid #e5e7eb}.curation-result.success{background:#f0fdf4;border-color:#86efac}.curation-result.error{background:#fef2f2;border-color:#fca5a5}.curation-result h4{margin:0 0 .75rem;font-size:1rem;color:#374151}.curation-status{margin-bottom:.5rem}.curation-passed{color:#16a34a;font-weight:500}.curation-failed{color:#dc2626}.curation-error{color:#dc2626;font-weight:500}.toggle-details{margin-top:.75rem;padding:.5rem 1rem;background:#e5e7eb;border:none;border-radius:4px;cursor:pointer;font-size:.875rem}.toggle-details:hover{background:#d1d5db}.layer-results{margin-top:1rem;padding:1rem;background:#1f2937;border-radius:4px;overflow-x:auto}.layer-results h5{margin:0 0 .5rem;color:#9ca3af;font-size:.875rem}.layer-results pre{margin:0;color:#e5e7eb;font-size:.75rem;white-space:pre-wrap;word-break:break-word}.playlist-index-page{max-width:1200px}.playlist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.playlists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.playlist-card{padding:1.5rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;transition:all .2s}.playlist-card:hover{border-color:#2563eb;box-shadow:0 4px 6px #0000001a}.playlist-card h3{margin-bottom:.5rem}.playlist-meta{display:flex;gap:1rem;margin-top:1rem;font-size:.875rem;color:#6b7280}.playlist-type{padding:.25rem .75rem;border-radius:12px;font-weight:600}.playlist-detail-page{max-width:1000px}.playlist-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.playlist-description{margin-bottom:2rem;color:#6b7280}.playlist-rules{margin-bottom:2rem;padding:1rem;background:#f9fafb;border-radius:8px}.playlist-rules pre{background:#fff;padding:1rem;border-radius:4px;overflow-x:auto}.playlist-songs h2{margin-bottom:1rem}.playlist-type{padding:.25rem .75rem;border-radius:12px;font-weight:600;font-size:.875rem}.playlist-dynamic{background:#dbeafe;color:#1e40af}.playlist-static{background:#fce7f3;color:#9f1239}.add-song-page{max-width:800px}.add-song-page h1{margin-bottom:2rem}.page-description{color:#6b7280;margin-bottom:1.5rem}.submission-success{text-align:center;padding:3rem 1rem}.submission-success h1{color:#059669;margin-bottom:1rem}.submission-success p{color:#4b5563;max-width:500px;margin:0 auto 2rem;line-height:1.6}.success-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.error-message{color:#dc2626;margin-top:1rem;font-size:.875rem}.edit-song-page{max-width:800px}.edit-song-page h1{margin-bottom:2rem}.tag-group{margin-bottom:1.5rem}.tag-group h4{margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#6b7280}.tag-checkboxes{display:flex;flex-wrap:wrap;gap:1rem}.tag-checkboxes label{display:flex;align-items:center;gap:.5rem;font-weight:400}.tag-checkboxes input[type=checkbox]{width:auto}.source-input{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.source-input select,.source-input input{flex:1}.source-input label{display:flex;align-items:center;gap:.5rem;font-weight:400;width:auto}.source-input input[type=checkbox]{width:auto}.status-toggle{margin-top:2rem;padding:1.5rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.toggle-label{display:flex;flex-direction:column;gap:.75rem}.toggle-text{font-weight:600;color:#1e293b}.toggle-switch-container{display:flex;align-items:center;gap:1rem}.toggle-switch{position:relative;width:56px;height:30px;background:#94a3b8;border:none;border-radius:15px;cursor:pointer;transition:background .3s ease}.toggle-switch.active{background:#22c55e}.toggle-switch.inactive{background:#ef4444}.toggle-slider{position:absolute;top:3px;left:3px;width:24px;height:24px;background:#fff;border-radius:50%;transition:transform .3s ease;box-shadow:0 2px 4px #0003}.toggle-switch.active .toggle-slider{transform:translate(26px)}.status-label{font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.status-label.active{color:#22c55e}.status-label.inactive{color:#ef4444}.status-hint{margin-top:.5rem;font-size:.875rem;color:#64748b}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.delete-button{background:#ef4444!important;border-color:#ef4444!important}.delete-button:hover{background:#dc2626!important;border-color:#dc2626!important}.delete-confirm-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.delete-confirm-modal{background:#fff;padding:2rem;border-radius:16px;max-width:400px;width:90%;box-shadow:0 25px 50px -12px #00000040;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.delete-confirm-modal h3{margin:0 0 1rem;color:#ef4444;font-size:1.5rem}.delete-confirm-modal p{margin:0 0 1.5rem;color:#475569;line-height:1.6}.delete-confirm-modal strong{color:#1e293b}.delete-confirm-actions{display:flex;gap:1rem;justify-content:flex-end}.confirm-delete-button{background:#ef4444!important;border-color:#ef4444!important}.confirm-delete-button:hover{background:#dc2626!important;border-color:#dc2626!important}.user-profile-page{max-width:1000px}.tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid #e5e7eb}.tabs button{padding:1rem 2rem;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer}.tabs button.active{border-bottom-color:#2563eb;color:#2563eb;font-weight:600}.user-songs{margin-top:2rem}.songs-list{display:flex;flex-direction:column;gap:1rem}.login-page{display:flex;justify-content:center;align-items:center;min-height:60vh}.login-form-container{width:100%;max-width:400px;padding:2rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.login-form-container h1{margin-bottom:2rem;text-align:center}.register-link{text-align:center;margin-top:1rem}.register-page{display:flex;justify-content:center;align-items:center;min-height:60vh}.register-form-container{width:100%;max-width:500px;padding:2rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.register-form-container h1{margin-bottom:2rem;text-align:center}.error-message{padding:1rem;background:#fef2f2;color:#991b1b;border-radius:4px;margin-bottom:1rem}.login-link{text-align:center;margin-top:1rem}.curation-admin-page{padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.curation-header{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#6b7280;margin:0 0 .25rem}.header-description{color:#4b5563;max-width:640px;margin-top:.5rem}.feedback-banner{padding:.75rem 1rem;border-radius:.75rem;font-weight:500;border:1px solid transparent}.feedback-banner.success{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.feedback-banner.error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.curation-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem}.summary-card{border-radius:1rem;border:1px solid #e5e7eb;padding:1rem;background:#fff}.summary-card.total{background:linear-gradient(135deg,#f0f9ff,#ecfdf5)}.summary-label{font-size:.85rem;color:#6b7280}.summary-value{font-size:2rem;font-weight:600;margin:.25rem 0 0}.curation-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(380px,1fr);gap:1.75rem;align-items:flex-start}.curation-requests,.sidebar-card{background:#fff;border-radius:1.25rem;border:1px solid #e5e7eb;padding:1.5rem;box-shadow:0 10px 30px #0f172a0f}.section-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.section-subtitle{color:#6b7280;margin:.25rem 0 0}.refresh-pill{background:#eef2ff;color:#4338ca;padding:.35rem .75rem;border-radius:999px;font-size:.8rem}.status-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.status-filter button{border:1px solid #e5e7eb;background:#f9fafb;border-radius:999px;padding:.35rem .9rem;font-size:.85rem;display:flex;align-items:center;gap:.4rem;cursor:pointer;transition:all .2s ease}.status-filter button.active{background:#312e81;color:#fff;border-color:#312e81}.status-filter .badge{background:#fff3;padding:.1rem .55rem;border-radius:999px;font-size:.75rem}.request-list{display:flex;flex-direction:column;gap:.75rem}.request-card{border:1px solid #e5e7eb;border-radius:1rem;padding:1rem;text-align:left;background:#fdfdfd;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.request-card:hover,.request-card.active{border-color:#4338ca;box-shadow:0 12px 20px #4338ca26;background:#fff}.request-card-header{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.request-title{font-size:1rem;font-weight:600;margin:0 0 .25rem}.request-meta{color:#6b7280;margin:0;font-size:.9rem}.request-card-body{margin:.5rem 0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;color:#4b5563}.request-verse{margin:0;font-weight:500}.pill{background:#ecfdf5;color:#047857;padding:.2rem .6rem;border-radius:999px;font-size:.75rem}.pill.danger{background:#fee2e2;color:#b91c1c}.request-card-footer{display:flex;justify-content:space-between;font-size:.85rem;color:#6b7280}.status-pill{padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-generated{background:#fff7ed;color:#c2410c}.status-pending{background:#e0f2fe;color:#0369a1}.status-processing{background:#f5f3ff;color:#6d28d9}.status-approved{background:#dcfce7;color:#15803d}.status-rejected{background:#fee2e2;color:#b91c1c}.status-failed{background:#fee2e2;color:#9b1c1c}.pagination-controls{margin-top:1rem;display:flex;justify-content:space-between;align-items:center;font-size:.9rem;gap:1rem}.pagination-controls button{padding:.35rem .9rem;border-radius:.75rem;border:1px solid #e5e7eb;cursor:pointer;background:#fff}.curation-sidebar{display:flex;flex-direction:column;gap:1rem}.sidebar-card.sticky{position:sticky;top:1.5rem}.muted{color:#9ca3af;margin:0}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.detail-label{font-size:.85rem;color:#6b7280;margin:0}.detail-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem;margin:1rem 0}.detail-section{margin:1rem 0;display:flex;flex-direction:column;gap:.35rem}.detail-reference{margin:0;font-weight:600}.detail-content{background:#f9fafb;padding:.75rem;border-radius:.75rem;border:1px solid #e5e7eb}.detail-content.lyrics{display:flex;flex-direction:column;gap:.2rem;font-family:Inter,sans-serif;white-space:pre-wrap}.notes-input{border-radius:.75rem;border:1px solid #d1d5db;padding:.75rem;resize:vertical;font-size:.95rem}.detail-input,.detail-select,.detail-textarea{width:100%;border-radius:.75rem;border:1px solid #d1d5db;padding:.6rem .75rem;font-size:.95rem;background:#fff}.detail-textarea{min-height:120px;resize:vertical}.detail-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin:1rem 0}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-field.full-width{grid-column:1 / -1}.input-hint{margin:0;font-size:.8rem;color:#b91c1c}.form-actions{display:flex;gap:.75rem;margin:1rem 0;flex-wrap:wrap}.form-actions .ghost,.form-actions .primary{flex:1;min-width:160px}.detail-section audio{width:100%;margin:.5rem 0}.action-buttons{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.action-buttons .ghost,.action-buttons .primary{flex:1;min-width:140px;padding:.75rem;border-radius:.85rem;border:none;font-weight:600;cursor:pointer}.action-buttons .ghost{background:#f3f4f6;color:#111827}.action-buttons .primary{background:#1d4ed8;color:#fff}.action-buttons button:disabled{opacity:.6;cursor:not-allowed}.queue-list,.recent-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.queue-item{border:1px solid #e5e7eb;border-radius:1rem;padding:1rem}.queue-header{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.queue-name{margin:0;font-weight:600}.queue-meta{margin:.25rem 0;color:#6b7280;font-size:.85rem}.progress-bar{width:100%;height:6px;border-radius:999px;background:#e5e7eb}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#4338ca,#06b6d4)}.recent-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.recent-title{margin:0;font-weight:600}.recent-meta,.recent-date{margin:.15rem 0 0;color:#6b7280;font-size:.85rem}.empty-state,.error-box,.access-gate{border-radius:1rem;border:1px dashed #d1d5db;padding:1.5rem;text-align:center;color:#6b7280}.error-box{border-color:#fecaca;color:#991b1b;background:#fef2f2}.access-gate{max-width:420px;margin:3rem auto}@media(max-width:1100px){.curation-main{grid-template-columns:1fr}.sidebar-card.sticky{position:static}}@media(max-width:640px){.curation-admin-page{padding:1.5rem 1rem 3rem}.request-card-footer,.detail-meta-grid{flex-direction:column;gap:.3rem;display:flex}}.pill.manual{background:#fef3c7;color:#92400e}.pill.suno{background:#f3e8ff;color:#7c3aed}.external-sources-list{display:flex;flex-direction:column;gap:.75rem}.external-source-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem;background:#f9fafb;border-radius:.75rem;border:1px solid #e5e7eb}.source-type-badge{padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase}.source-type-badge.youtube{background:#fee2e2;color:#b91c1c}.source-type-badge.spotify{background:#d1fae5;color:#065f46}.source-type-badge.suno{background:#f3e8ff;color:#7c3aed}.source-type-badge.other{background:#e5e7eb;color:#374151}.primary-badge{background:#dbeafe;color:#1d4ed8;padding:.2rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600}.source-url{flex:1;min-width:200px;font-size:.85rem;color:#2563eb;word-break:break-all}.tag-ids-display{margin:0;padding:.5rem .75rem;background:#f9fafb;border-radius:.5rem;font-size:.9rem;color:#4b5563}.song-finder-page{max-width:1200px;margin:0 auto;padding:2rem}.song-finder-page .page-header{margin-bottom:2rem}.song-finder-page .page-header h1{font-size:2rem;margin-bottom:.5rem}.song-finder-page .page-header p{color:var(--text-secondary)}.queue-status{background:var(--surface);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.queue-status h2{font-size:1.25rem;margin-bottom:1rem}.status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem}.status-card{background:var(--background);border-radius:8px;padding:1rem;text-align:center;border:2px solid transparent}.status-card .count{display:block;font-size:2rem;font-weight:700}.status-card .label{font-size:.875rem;color:var(--text-secondary);text-transform:capitalize}.status-card.pending{border-color:#f59e0b}.status-card.processing{border-color:#3b82f6}.status-card.completed{border-color:#10b981}.status-card.failed{border-color:#ef4444}.action-buttons{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.queue-single{display:flex;gap:.5rem;align-items:center}.psalm-select{padding:.5rem 1rem;border:1px solid var(--border);border-radius:4px;background:var(--background);font-size:1rem;min-width:150px}.process-btn{background:#8b5cf6}.process-btn:hover{background:#7c3aed}.process-btn:disabled{background:#a78bfa;cursor:not-allowed}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border);padding-bottom:.5rem}.tabs button{background:none;border:none;padding:.75rem 1.5rem;cursor:pointer;font-size:1rem;color:var(--text-secondary);border-radius:4px 4px 0 0;transition:all .2s}.tabs button:hover{background:var(--surface)}.tabs button.active{background:var(--primary);color:#fff}.tab-content{background:var(--surface);border-radius:8px;padding:1.5rem;min-height:400px}.empty-message{text-align:center;color:var(--text-secondary);padding:3rem}.section-header{margin-bottom:1rem}.total-count{font-size:.875rem;color:var(--text-secondary);font-weight:500}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.page-info{font-size:.875rem;color:var(--text-secondary)}.filters{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.filters select{padding:.5rem 1rem;border:1px solid var(--border);border-radius:4px;background:var(--background);font-size:1rem}.results-list{display:flex;flex-direction:column;gap:1rem}.result-card{display:flex;gap:1rem;padding:1rem;background:var(--background);border-radius:8px;border:1px solid var(--border);flex-wrap:wrap}.result-card.submitted{opacity:.6}.result-card.rejected{opacity:.4}.result-thumbnail{flex-shrink:0;width:120px;height:90px;border-radius:4px;overflow:hidden;background:var(--surface)}.result-thumbnail img{width:100%;height:100%;object-fit:cover}.placeholder-thumb{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2rem}.result-info{flex:1;min-width:0}.result-info h3{font-size:1rem;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-info h3 a{color:var(--text-primary);text-decoration:none}.result-info h3 a:hover{color:var(--primary)}.result-info .channel{font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem}.result-info .psalm{font-size:.875rem;color:var(--primary);margin-bottom:.5rem}.result-info .candidate-id{font-size:.75rem;color:var(--text-secondary);background:var(--surface);padding:.125rem .375rem;border-radius:3px;margin-left:.5rem;font-family:monospace}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;text-transform:capitalize}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.processing{background:#dbeafe;color:#1e40af}.status-badge.completed,.status-badge.submitted{background:#d1fae5;color:#065f46}.status-badge.failed{background:#fee2e2;color:#991b1b}.status-badge.rejected{background:#f3f4f6;color:#6b7280}.result-actions{display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.result-actions .curate-btn{background:#8b5cf6}.result-actions .curate-btn:hover{background:#7c3aed}.result-actions .curate-btn:disabled{background:#a78bfa;cursor:wait}.result-actions .submit-btn{background:#10b981}.result-actions .submit-btn:hover{background:#059669}.result-actions .reject-btn{background:#6b7280}.result-actions .reject-btn:hover{background:#4b5563}.result-actions .cancel-btn{background:#9ca3af}.result-actions .cancel-btn:hover{background:#6b7280}.approved-actions{flex-direction:row!important;align-items:center}.view-song-link{color:#6366f1;font-weight:500;text-decoration:none;padding:.5rem 1rem;border:1px solid #6366f1;border-radius:6px;font-size:.875rem}.view-song-link:hover{background:#eef2ff}.curation-loading{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#e0e7ff;border-radius:6px;font-size:.875rem;color:#3730a3}.curation-loading .loading-spinner{width:16px;height:16px}.curation-streaming{width:100%;padding:1rem;background:#1e1e2e;border-radius:8px;margin-top:.5rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.curation-loading-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;color:#cdd6f4}.curation-loading-header .loading-spinner{width:18px;height:18px}.curation-loading-header span{font-weight:500;font-size:.875rem}.curation-stream-output{max-height:350px;overflow-y:auto;padding:.75rem;background:#11111b;border-radius:6px;font-size:.8125rem;line-height:1.5}.curation-stream-output .stream-line{white-space:pre-wrap;word-break:break-word;padding:.125rem 0}.curation-stream-output .stream-line.stdout{color:#a6e3a1}.curation-stream-output .stream-line.stderr{color:#f9e2af}.curation-stream-output::-webkit-scrollbar{width:8px}.curation-stream-output::-webkit-scrollbar-track{background:#181825;border-radius:4px}.curation-stream-output::-webkit-scrollbar-thumb{background:#45475a;border-radius:4px}.curation-stream-output::-webkit-scrollbar-thumb:hover{background:#585b70}.curation-result-full{width:100%;padding:1rem;border-radius:6px;font-size:.875rem;margin-top:.5rem}.curation-result-full.passed{background:#d1fae5;border:1px solid #34d399}.curation-result-full.failed{background:#fee2e2;border:1px solid #f87171}.curation-result-full.error{background:#fef3c7;border:1px solid #fbbf24}.curation-result-full.unknown{background:#f3f4f6;border:1px solid #9ca3af}.curation-result-full.warning{background:#fef3c7;border:1px solid #fbbf24}.curation-result-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.curation-badge{font-weight:600;font-size:.75rem;padding:.25rem .5rem;border-radius:4px;flex-shrink:0}.curation-badge.passed{background:#10b981;color:#fff}.curation-badge.failed{background:#ef4444;color:#fff}.curation-badge.error{background:#f59e0b;color:#fff}.curation-badge.unknown{background:#6b7280;color:#fff}.curation-badge.warning{background:#f59e0b;color:#fff}.curation-message{flex:1;word-break:break-word}.curation-dismiss{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit;opacity:.6;padding:0;line-height:1;margin-left:auto}.curation-dismiss:hover{opacity:1}.curation-result-actions{display:flex;gap:1rem;margin-bottom:.5rem}.curation-details-toggle,.curation-logs-toggle{background:none;border:1px solid currentColor;border-radius:4px;color:var(--primary);cursor:pointer;font-size:.8125rem;padding:.375rem .75rem;transition:all .2s}.curation-details-toggle:hover,.curation-logs-toggle:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.curation-logs-toggle{color:#6366f1;border-color:#6366f1}.curation-logs-toggle:hover{background:#6366f1;color:#fff;border-color:#6366f1}.curation-logs-section{margin-top:.75rem;border-radius:6px;overflow:hidden}.curation-details{padding-top:.75rem;border-top:1px solid rgba(0,0,0,.1)}.curation-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem 1rem;margin-bottom:.75rem}.curation-detail-row{margin-bottom:.5rem;font-size:.8125rem}.curation-detail-row strong{display:block;margin-bottom:.25rem;color:var(--text-secondary)}.curation-output{background:#0000000d;padding:.75rem;border-radius:4px;font-family:monospace;font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;margin:.25rem 0 0}.curation-output.error{background:#ef44441a;color:#991b1b}.golden-record-comparison{margin-top:1rem;padding:1rem;background:linear-gradient(135deg,#fef9e7,#fef3c7);border:2px solid #f59e0b;border-radius:8px}.golden-record-title{margin:0 0 .75rem;font-size:1rem;color:#92400e;font-weight:600}.golden-record-grid{display:grid;gap:.5rem}.golden-record-row{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:.5rem}.golden-record-label{font-weight:500;color:#78350f;font-size:.875rem}.golden-record-value{color:#451a03;font-size:.875rem}.golden-record-value a{color:#2563eb;text-decoration:none}.golden-record-value a:hover{text-decoration:underline}.golden-expected{font-weight:600}.golden-match{color:#059669;font-weight:600}.golden-mismatch{color:#dc2626;font-weight:600}.similarity-score{color:#6b7280;font-weight:400;font-size:.8125rem}.status-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.history-toggle-btn{background:none;border:1px solid var(--border);padding:.25rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer;color:var(--primary);transition:all .2s}.history-toggle-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.run-history-section{width:100%;padding:1rem;background:var(--surface);border-radius:6px;border:1px solid var(--border);margin-top:.5rem}.run-history-section h4{margin:0 0 .75rem;font-size:.9375rem;color:var(--text-primary)}.run-history-table{width:100%;border-collapse:collapse;font-size:.8125rem}.run-history-table th,.run-history-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.run-history-table th{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.run-history-table tbody tr:hover{background:var(--background)}.run-history-table tbody tr.passed{background:#10b9810d}.run-history-table tbody tr.failed{background:#ef44440d}.exitcode-badge{display:inline-block;padding:.125rem .375rem;border-radius:4px;font-size:.75rem;font-weight:600;font-family:monospace}.exitcode-badge.success{background:#d1fae5;color:#065f46}.exitcode-badge.failure{background:#fee2e2;color:#991b1b}.reason-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-history{color:var(--text-secondary);font-size:.875rem;text-align:center;padding:1rem;margin:0}.run-history-table tbody tr.clickable{cursor:pointer;transition:background .15s}.run-history-table tbody tr.clickable:hover{background:#0000000d}.expand-cell{width:24px;text-align:center;color:var(--text-secondary);font-size:.75rem}.expanded-row{background:var(--background)!important}.expanded-row td{padding:0!important}.run-details{padding:1rem;border-top:1px solid var(--border)}.run-details strong{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase}.layer-results-json{background:#00000008;padding:.75rem;border-radius:4px;font-family:monospace;font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto;margin:0}.reject-form{display:flex;flex-direction:column;gap:.5rem}.reject-form select,.reject-form input{padding:.5rem;border:1px solid var(--border);border-radius:4px;font-size:.875rem}.reject-form input{min-width:200px}.reject-info{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-secondary)}.reject-info .reject-type{font-weight:600;color:#991b1b}.reject-info .reject-reason{font-style:italic}.psalm-filter{min-width:120px}.run-all-btn{background:#8b5cf6;margin-left:auto}.run-all-btn:hover{background:#7c3aed}.run-all-btn:disabled{background:#a78bfa;cursor:not-allowed}.run-all-curation-controls{display:flex;align-items:center;gap:.75rem;margin-left:auto;padding:.5rem 1rem;background:#e0e7ff;border-radius:6px}.curation-progress{font-size:.875rem;font-weight:500;color:#3730a3}.stop-all-btn{background:#ef4444;padding:.375rem .75rem;font-size:.8125rem}.stop-all-btn:hover{background:#dc2626}.queue-table,.searches-table{width:100%;border-collapse:collapse}.queue-table th,.queue-table td,.searches-table th,.searches-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.queue-table th,.searches-table th{font-weight:600;color:var(--text-secondary);font-size:.875rem}.queue-table tbody tr:hover,.searches-table tbody tr:hover{background:var(--background)}@media(max-width:768px){.song-finder-page{padding:1rem}.status-cards{grid-template-columns:repeat(2,1fr)}.result-card{flex-direction:column}.result-thumbnail{width:100%;height:180px}.result-actions{flex-direction:row}.queue-table,.searches-table{font-size:.875rem}}.api-keys-page{max-width:1200px;margin:0 auto;padding:2rem}.page-header{margin-bottom:2rem}.page-header .eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted, #666);margin-bottom:.5rem}.page-header h1{font-size:2rem;margin:0 0 .5rem}.page-header .header-description{color:var(--color-text-muted, #666);max-width:600px}.access-gate{text-align:center;padding:4rem 2rem;background:var(--color-surface, #f8f9fa);border-radius:12px;margin-top:2rem}.access-gate h2{margin-bottom:.5rem}.access-gate p{color:var(--color-text-muted, #666)}.feedback-banner{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:8px;margin-top:1rem;font-size:.875rem}.feedback-banner.success{background:var(--color-success-bg, #d4edda);color:var(--color-success-text, #155724)}.feedback-banner.error{background:var(--color-error-bg, #f8d7da);color:var(--color-error-text, #721c24)}.feedback-banner button{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit;padding:0;line-height:1}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--color-surface, #f8f9fa);border-radius:8px;padding:1rem;text-align:center}.stat-card.total{background:var(--color-primary-light, #e3f2fd)}.stat-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #666);margin-bottom:.25rem}.stat-value{font-size:1.5rem;font-weight:600}.created-key-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;padding:1.5rem;margin-bottom:2rem}.created-key-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.created-key-header h3{margin:0}.dismiss-btn{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.warning-text{margin:0 0 1rem;opacity:.9}.key-display{display:flex;gap:.5rem;align-items:center;background:#0003;padding:.75rem 1rem;border-radius:8px;margin-bottom:.75rem}.key-display code{flex:1;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.875rem;word-break:break-all}.copy-btn{background:#fff;color:#667eea;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:600;cursor:pointer;white-space:nowrap}.copy-btn:hover{background:#f0f0f0}.key-meta{margin:0 0 1rem;opacity:.8;font-size:.875rem}.created-key-banner h4{margin:1rem 0 .5rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;opacity:.9}.env-vars-display{background:#0000004d;border-radius:8px;padding:1rem;margin-bottom:1rem}.env-vars-display pre{margin:0 0 .75rem;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8rem;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:#a5d6ff}.env-vars-display .copy-btn{width:100%}.individual-values{background:#0003;border-radius:8px;padding:.75rem}.value-row{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.value-row:last-child{border-bottom:none}.value-row label{font-size:.75rem;font-weight:600;min-width:90px;opacity:.8}.value-row code{flex:1;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.75rem;word-break:break-all;background:#0003;padding:.25rem .5rem;border-radius:4px}.value-row code.secret{color:#a5d6ff}.copy-btn.small{padding:.25rem .5rem;font-size:.7rem}.create-key-section{background:var(--color-surface, #f8f9fa);border-radius:12px;padding:1.5rem;margin-bottom:2rem}.create-key-section h2{margin:0 0 1rem;font-size:1.25rem}.create-key-form{display:flex;gap:.75rem}.create-key-form input{flex:1;padding:.75rem 1rem;border:1px solid var(--color-border, #ddd);border-radius:8px;font-size:1rem}.create-key-form button{padding:.75rem 1.5rem;background:var(--color-primary, #4a90d9);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;white-space:nowrap}.create-key-form button:disabled{opacity:.6;cursor:not-allowed}.create-key-form button:hover:not(:disabled){background:var(--color-primary-dark, #3a7bc8)}.keys-section{margin-bottom:2rem}.keys-section h2{margin:0 0 1rem;font-size:1.25rem}.keys-table{border:1px solid var(--color-border, #ddd);border-radius:12px;overflow:hidden}.keys-header{display:grid;grid-template-columns:2fr 1fr 1.5fr 1.5fr 1.5fr;gap:1rem;padding:.75rem 1rem;background:var(--color-surface, #f8f9fa);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #666)}.key-row{display:grid;grid-template-columns:2fr 1fr 1.5fr 1.5fr 1.5fr;gap:1rem;padding:1rem;border-top:1px solid var(--color-border, #eee);align-items:center}.key-row.inactive{opacity:.6}.key-name{font-weight:500}.key-date{font-size:.875rem;color:var(--color-text-muted, #666)}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:100px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:var(--color-success-bg, #d4edda);color:var(--color-success-text, #155724)}.status-badge.inactive{background:var(--color-error-bg, #f8d7da);color:var(--color-error-text, #721c24)}.key-actions{display:flex;gap:.5rem}.key-actions button{padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;border:none}.activate-btn{background:var(--color-success-bg, #d4edda);color:var(--color-success-text, #155724)}.deactivate-btn{background:var(--color-warning-bg, #fff3cd);color:var(--color-warning-text, #856404)}.delete-btn{background:var(--color-error-bg, #f8d7da);color:var(--color-error-text, #721c24)}.key-actions button:disabled{opacity:.6;cursor:not-allowed}.empty-state{text-align:center;padding:3rem 2rem;background:var(--color-surface, #f8f9fa);border-radius:12px;color:var(--color-text-muted, #666)}.error-box{background:var(--color-error-bg, #f8d7da);color:var(--color-error-text, #721c24);padding:1rem;border-radius:8px}.usage-section{background:var(--color-surface, #f8f9fa);border-radius:12px;padding:1.5rem}.usage-section h2{margin:0 0 1rem;font-size:1.25rem}.usage-content h3{font-size:1rem;margin:1.5rem 0 .5rem}.usage-content h3:first-child{margin-top:0}.usage-note{margin:0 0 .5rem;font-size:.875rem;color:var(--color-text-muted, #666)}.usage-content pre{background:#1e1e1e;color:#d4d4d4;padding:1rem;border-radius:8px;overflow-x:auto;font-size:.875rem;font-family:SF Mono,Monaco,Consolas,monospace}.usage-content ul{margin:0;padding-left:1.5rem}.usage-content li{margin:.5rem 0}.usage-content code{background:#e9ecef;padding:.125rem .375rem;border-radius:4px;font-size:.875rem;font-family:SF Mono,Monaco,Consolas,monospace}@media(max-width:768px){.api-keys-page{padding:1rem}.create-key-form{flex-direction:column}.keys-header,.key-row{grid-template-columns:1fr;gap:.5rem}.keys-header{display:none}.key-row{padding:1rem;border:1px solid var(--color-border, #ddd);border-radius:8px;margin-bottom:.5rem}.key-actions{margin-top:.5rem}}.golden-records-page{max-width:1200px;margin:0 auto;padding:2rem;background:linear-gradient(180deg,#0a0a0f,#12121a);min-height:100vh}.golden-records-page .page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(212,175,55,.2)}.golden-records-page .header-content h1{font-size:2.25rem;font-family:Playfair Display,Georgia,serif;background:linear-gradient(135deg,#d4af37,#f4e5a3,#d4af37);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem;letter-spacing:-.5px}.golden-records-page .header-content p{color:#8b8b9a;font-size:1rem}.golden-records-page .header-actions{display:flex;gap:.75rem;align-items:center}.golden-records-page .refresh-btn{background:transparent;border:1px solid rgba(212,175,55,.4);color:#d4af37;padding:.625rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.9375rem;transition:all .2s}.golden-records-page .refresh-btn:hover{background:#d4af371a;border-color:#d4af37}.golden-records-page .rerun-btn{background:linear-gradient(135deg,#6366f133,#8b5cf633);border:1px solid rgba(99,102,241,.4);color:#a5b4fc;padding:.625rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.9375rem;font-weight:500;transition:all .2s}.golden-records-page .rerun-btn:hover:not(:disabled){background:linear-gradient(135deg,#6366f14d,#8b5cf64d);border-color:#6366f199;transform:translateY(-1px)}.golden-records-page .rerun-btn:disabled{opacity:.6;cursor:not-allowed}.golden-records-page .rerun-message{padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;font-size:.9375rem;font-weight:500}.golden-records-page .rerun-message.success{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:#6ee7b7}.golden-records-page .rerun-message.error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.summary-section{margin-bottom:2rem}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.summary-card{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.25rem;text-align:center;cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;opacity:.6}.summary-card.total:before{background:linear-gradient(90deg,#6366f1,#8b5cf6)}.summary-card.matching:before{background:linear-gradient(90deg,#10b981,#34d399)}.summary-card.mismatched:before{background:linear-gradient(90deg,#ef4444,#f87171)}.summary-card.no-curation:before{background:linear-gradient(90deg,#6b7280,#9ca3af)}.summary-card:hover{background:#ffffff0d;transform:translateY(-2px)}.summary-card.active{background:#ffffff14;border-color:#fff3;transform:translateY(-2px)}.summary-card .count{display:block;font-size:2.5rem;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;margin-bottom:.25rem}.summary-card.total .count{color:#a5b4fc}.summary-card.matching .count{color:#6ee7b7}.summary-card.mismatched .count{color:#fca5a5}.summary-card.no-curation .count{color:#9ca3af}.summary-card .label{font-size:.875rem;color:#8b8b9a;font-weight:500}.accuracy-bar{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.25rem}.accuracy-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.accuracy-label span:first-child{color:#8b8b9a;font-size:.9375rem;font-weight:500}.accuracy-percentage{font-size:1.5rem;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.accuracy-track{height:12px;background:#ffffff14;border-radius:6px;overflow:hidden}.accuracy-fill{height:100%;background:linear-gradient(90deg,#10b981,#34d399);border-radius:6px;transition:width .5s ease-out}.comparisons-section{margin-top:2rem}.empty-message{text-align:center;color:#6b7280;padding:4rem 2rem;background:#ffffff05;border-radius:12px;border:1px dashed rgba(255,255,255,.1);font-size:1rem}.comparisons-list{display:flex;flex-direction:column;gap:1.25rem}.comparison-card{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;transition:all .25s ease}.comparison-card:hover{background:#ffffff08;border-color:#ffffff1f}.comparison-card.matching{border-left:4px solid #10b981}.comparison-card.mismatched{border-left:4px solid #ef4444}.comparison-card.no_curation{border-left:4px solid #6b7280}.card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem;border-bottom:1px solid rgba(255,255,255,.05)}.song-info{display:flex;gap:1rem;align-items:flex-start;flex:1}.song-thumbnail{width:80px;height:60px;border-radius:6px;object-fit:cover;flex-shrink:0;background:#ffffff0d}.song-details h3{font-size:1.0625rem;margin-bottom:.375rem;font-weight:600}.song-details h3 a{color:#e5e5ea;text-decoration:none;transition:color .2s}.song-details h3 a:hover{color:#d4af37}.meta-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.psalm-badge{background:#6366f126;color:#a5b4fc;padding:.25rem .625rem;border-radius:4px;font-size:.75rem;font-weight:600}.video-link{color:#8b8b9a;font-size:.75rem;text-decoration:none;transition:color .2s}.video-link:hover{color:#ef4444}.candidate-id{color:#6b7280;font-size:.75rem;font-family:JetBrains Mono,monospace}.status-indicator{padding:.5rem 1rem;border-radius:20px;font-size:.8125rem;font-weight:600;flex-shrink:0}.status-indicator.matching{background:#10b98126;color:#6ee7b7}.status-indicator.mismatched{background:#ef444426;color:#fca5a5}.status-indicator.no_curation{background:#6b728026;color:#9ca3af}.comparison-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;padding:1.25rem;align-items:stretch}.comparison-column{padding:1rem;border-radius:10px}.comparison-column.expected{background:#10b9810d;border:1px solid rgba(16,185,129,.15)}.comparison-column.actual{background:#6366f10d;border:1px solid rgba(99,102,241,.15)}.comparison-column h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.comparison-column.expected h4{color:#6ee7b7}.comparison-column.actual h4{color:#a5b4fc}.field-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.field-row:last-child{border-bottom:none}.field-row label{font-size:.8125rem;color:#8b8b9a;font-weight:500}.field-row .field-value{font-size:.9375rem;font-weight:600;color:#e5e5ea;text-align:right}.field-row .field-value em{font-style:normal;color:#6b7280;font-weight:400}.field-row .field-value.differs{position:relative;padding:.25rem .5rem;background:#ef444426;border-radius:4px;color:#fca5a5}.no-tags{color:#6b7280;font-style:italic;padding:.5rem 0}.curation-note{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06);font-size:.75rem;color:#6b7280}.curation-note em{font-style:normal}.comparison-divider{display:flex;align-items:center;justify-content:center}.vs-badge{background:#ffffff14;color:#6b7280;padding:.5rem .75rem;border-radius:6px;font-size:.75rem;font-weight:700;letter-spacing:.05em}.run-info{padding:0 1.25rem 1.25rem}.run-toggle{display:flex;align-items:center;gap:.5rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem;color:#8b8b9a;width:100%;text-align:left;transition:all .2s}.run-toggle:hover{background:#ffffff0d;color:#e5e5ea}.run-meta{margin-left:auto;font-size:.75rem;color:#6b7280;font-family:JetBrains Mono,monospace}.run-details{margin-top:.75rem;padding:1rem;background:#0003;border-radius:8px}.run-detail-row{display:flex;gap:.75rem;align-items:center;padding:.375rem 0;font-size:.875rem}.run-detail-row strong{color:#6b7280;min-width:100px}.run-detail-row span{color:#e5e5ea}.run-detail-row .exitcode{font-family:JetBrains Mono,monospace;font-weight:600;padding:.125rem .375rem;border-radius:4px}.run-detail-row .exitcode.success{background:#10b98126;color:#6ee7b7}.run-detail-row .exitcode.failure{background:#ef444426;color:#fca5a5}.run-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.run-header .run-toggle{flex:1;min-width:250px}.run-links{display:flex;gap:.5rem;flex-shrink:0}.run-link{padding:.5rem .875rem;border-radius:6px;font-size:.8125rem;text-decoration:none;transition:all .2s;white-space:nowrap}.run-link:not(.admin-link){background:#6366f126;color:#a5b4fc;border:1px solid rgba(99,102,241,.3)}.run-link:not(.admin-link):hover{background:#6366f140;border-color:#6366f180}.run-link.admin-link{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.run-link.admin-link:hover{background:#f59e0b40;border-color:#f59e0b80}.layer-results-section{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.layer-results-section strong{display:block;margin-bottom:.5rem;color:#8b8b9a;font-size:.8125rem}.layer-results-json{background:#0000004d;padding:1rem;border-radius:6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem;line-height:1.5;color:#a6e3a1;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre;margin:0}.layer-results-json::-webkit-scrollbar{width:8px;height:8px}.layer-results-json::-webkit-scrollbar-track{background:#0003;border-radius:4px}.layer-results-json::-webkit-scrollbar-thumb{background:#45475a;border-radius:4px}.layer-results-json::-webkit-scrollbar-thumb:hover{background:#585b70}.no-run-notice{padding:.75rem 1.25rem 1.25rem;color:#9ca3af;font-size:.875rem}.error-message{text-align:center;padding:4rem 2rem;color:#fca5a5}.error-message h2{margin-bottom:.5rem}.error-message button{margin-top:1rem;background:#ef444433;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:.625rem 1.25rem;border-radius:6px;cursor:pointer}@media(max-width:900px){.summary-cards{grid-template-columns:repeat(2,1fr)}.comparison-grid{grid-template-columns:1fr;gap:.5rem}.comparison-divider{padding:.5rem 0}}@media(max-width:600px){.golden-records-page{padding:1rem}.golden-records-page .page-header{flex-direction:column;gap:1rem}.golden-records-page .header-content h1{font-size:1.75rem}.card-header{flex-direction:column;gap:1rem}.status-indicator{align-self:flex-start}.song-info{flex-direction:column}.song-thumbnail{width:100%;height:120px}}
