*{box-sizing:border-box;margin:0;padding:0}:root{--background-color: #E8C784;--primary-text-color: #333;--primary-color: #3B5F4F;--secondary-color: #4A7A5E;--accent-color: #D4A574;--card-bg-color: #FFF9ED;--shadow-color: rgba(0, 0, 0, .08);--font-heading: "Lora", serif;--font-body: "Lato", sans-serif;--safe-area-inset-top: env(safe-area-inset-top);--safe-area-inset-bottom: env(safe-area-inset-bottom);--safe-area-inset-left: env(safe-area-inset-left);--safe-area-inset-right: env(safe-area-inset-right)}html,body{height:100%;margin:0;padding:0;overscroll-behavior-y:contain}body{font-family:var(--font-body);background-color:var(--background-color);color:var(--primary-text-color);line-height:1.6;position:relative;padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url(/music%20notes.png);background-repeat:repeat;background-size:800px;opacity:.05;pointer-events:none;z-index:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.app{max-width:1200px;margin:0 auto;padding:2rem;flex:1;position:relative;z-index:1}.view-container{animation:fadeIn .3s ease-out}.navbar{background:linear-gradient(135deg,#8b7355,#5a4a3a);box-shadow:0 3px 15px #00000040;position:sticky;top:0;z-index:1000;animation:slideInFromTop .5s ease-out;width:100%;overflow:visible;padding-top:env(safe-area-inset-top,0px)}.navbar-container{max-width:1600px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;position:relative;overflow:visible;min-height:60px}.navbar-logo{display:flex;align-items:center;gap:1rem;cursor:pointer;transition:opacity .3s ease}.navbar-logo:hover{opacity:.9}.navbar-logo-img{height:100px;width:auto;object-fit:contain}.navbar-logo-text{display:flex;flex-direction:column;gap:.2rem}.navbar-logo-title{font-size:1.25rem;font-weight:700;color:#fff;line-height:1}.navbar-logo-tagline{font-size:.75rem;color:#ffffffd9;font-style:italic;line-height:1}.navbar-menu{display:flex;align-items:center;gap:.5rem}.navbar-link{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;border-radius:25px;transition:all .3s ease;position:relative;box-shadow:0 2px 8px #00000026;text-shadow:0 1px 2px rgba(0,0,0,.2)}.navbar-link:hover{background:#ffffff40;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.navbar-link.active{background:#fff;color:var(--primary-color);border-color:#fff;box-shadow:0 4px 12px #00000040;text-shadow:none}.navbar-link.active:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.navbar-link-icon{font-size:1.1rem}.navbar-user-menu{position:relative}.navbar-user-btn{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:25px;color:#fff;font-size:.95rem;cursor:pointer;transition:all .3s ease}.navbar-user-btn:hover{background:#ffffff40}.navbar-user-avatar{width:32px;height:32px;border-radius:50%;background:#fff;color:var(--primary-color);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem}.navbar-user-avatar-img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid white}.navbar-user-name{font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-user-arrow{font-size:.75rem;transition:transform .3s ease}.navbar-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0003;min-width:220px;overflow:hidden;animation:slideInDropdown .3s ease-out}@keyframes slideInDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar-dropdown-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;background:transparent;border:none;color:#333;font-size:.95rem;text-align:left;cursor:pointer;transition:background .2s ease}.navbar-dropdown-item:hover{background:#8b735514}.navbar-dropdown-item.logout{color:#d32f2f}.navbar-dropdown-item.logout:hover{background:#d32f2f14}.navbar-dropdown-icon{font-size:1.1rem;width:20px;text-align:center}.navbar-dropdown-divider{height:1px;background:#0000001a;margin:.5rem 0}.navbar-login-btn{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.5rem;background:#fff;border:2px solid white;color:var(--primary-color);font-size:1rem;font-weight:700;cursor:pointer;border-radius:25px;transition:all .3s ease;box-shadow:0 3px 10px #0003}.navbar-login-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0000004d;background:#fffffff2}.navbar-login-icon{font-size:1.1rem}.navbar-hamburger{display:none;flex-direction:column;gap:5px;background:transparent;border:none;cursor:pointer;padding:.5rem;margin:0;flex-shrink:0;align-self:center;position:relative;z-index:1001}.navbar-hamburger span{width:28px;height:3px;background:#fff;border-radius:2px;transition:all .3s ease}.navbar-hamburger.active span:nth-child(1){transform:rotate(45deg) translateY(11px)}.navbar-hamburger.active span:nth-child(2){opacity:0}.navbar-hamburger.active span:nth-child(3){transform:rotate(-45deg) translateY(-11px)}.navbar-mobile-menu{display:none;background:#fff;border-top:1px solid rgba(139,115,85,.2);animation:slideInFromTop .3s ease-out}.navbar-mobile-link{width:100%;display:flex;align-items:center;gap:1rem;padding:1rem 2rem;background:transparent;border:none;color:#333;font-size:1rem;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid rgba(0,0,0,.05)}.navbar-mobile-link:hover{background:#8b73550d}.navbar-mobile-link.active{background:#8b73551a;color:var(--primary-color);font-weight:600}.navbar-mobile-link.logout{color:#d32f2f}.navbar-mobile-link.login{color:var(--primary-color);font-weight:600}.navbar-mobile-icon{font-size:1.25rem;width:28px;text-align:center}.navbar-mobile-divider{height:8px;background:#0000000d}.navbar-mobile-user{padding:1rem 2rem;background:#8b735514;border-bottom:1px solid rgba(0,0,0,.05)}.navbar-mobile-user-name{font-weight:600;color:var(--primary-color)}@media(max-width:968px){.navbar-container{padding:1rem 1.5rem;min-height:60px;overflow:visible;flex-wrap:nowrap}.navbar-logo-img{height:60px}.navbar-logo-text,.navbar-menu{display:none}.navbar-hamburger{display:flex;margin-left:0;margin-right:auto;order:-1;position:relative;top:0;left:0;max-width:48px;max-height:48px;box-sizing:border-box;flex-shrink:0}.navbar-mobile-menu{display:block}.navbar{overflow:visible}}.add-song-btn{background-color:var(--primary-color);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:25px;font-family:var(--font-body);font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;font-size:.95rem;box-shadow:0 2px 8px #0000001a}.add-song-btn:hover{background-color:var(--secondary-color);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.reset-songs-btn{background-color:transparent;color:var(--primary-color);border:2px solid var(--primary-color);padding:.5rem 1.25rem;border-radius:25px;font-family:var(--font-body);font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;font-size:.95rem;box-shadow:0 2px 6px #00000014}.reset-songs-btn:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 10px #0000001f}.add-song-btn:disabled,.add-song-btn:disabled:hover{background-color:var(--accent-color);opacity:.5;cursor:not-allowed}.reset-songs-btn:disabled,.reset-songs-btn:disabled:hover{background-color:transparent;border-color:var(--secondary-color);color:var(--secondary-color);opacity:.5;cursor:not-allowed}.loading-indicator{display:flex;flex-direction:column;justify-content:center;align-items:center;height:60vh;font-size:1.5rem;color:var(--primary-color);font-family:var(--font-heading);gap:1.5rem}.loading-logo{width:120px;height:auto;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.filter-bar{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}.filter-btn{padding:.5rem 1.25rem;border:2px solid var(--primary-color);background-color:transparent;color:var(--primary-color);border-radius:25px;cursor:pointer;font-size:.9rem;transition:all .3s ease;white-space:nowrap;font-weight:600;box-shadow:0 2px 6px #0000000f}.filter-btn:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-1px);box-shadow:0 3px 8px #0000001f}.filter-btn.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 3px 10px #00000026}.song-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem}.song-card{background-color:var(--card-bg-color);border-radius:15px;box-shadow:0 3px 10px #0000001a;padding:1.75rem;text-align:center;cursor:pointer;transition:all .3s ease;border:1px solid rgba(59,95,79,.1);animation:slideInFromBottom .4s ease-out;animation-fill-mode:both;position:relative}.song-card:hover{transform:translateY(-8px);box-shadow:0 6px 20px #00000026;border-color:var(--primary-color)}.song-card-favorite{position:absolute;top:.75rem;right:.75rem;z-index:10}.favorite-btn{opacity:.7;transition:opacity .2s ease,transform .2s ease}.favorite-btn:hover,.song-card:hover .song-card-favorite .favorite-btn{opacity:1}.song-card:nth-child(1){animation-delay:.05s}.song-card:nth-child(2){animation-delay:.1s}.song-card:nth-child(3){animation-delay:.15s}.song-card:nth-child(4){animation-delay:.2s}.song-card:nth-child(5){animation-delay:.25s}.song-card:nth-child(6){animation-delay:.3s}.song-card:nth-child(7){animation-delay:.35s}.song-card:nth-child(8){animation-delay:.4s}.song-card:nth-child(9){animation-delay:.45s}.song-card:nth-child(n+10){animation-delay:.5s}.song-card h3{font-family:var(--font-heading);margin-bottom:.5rem;color:var(--primary-color)}.song-card p{font-size:.9rem;color:#666}.song-detail-page{min-height:100vh;width:100%;background-color:var(--background-color);padding:0;display:flex;flex-direction:column;animation:fadeIn .2s ease-out}.song-detail-content{display:flex;flex-direction:row;flex:1;min-height:0}.notation-panel{flex:1;min-width:0;background-color:#f5f5f5;border-right:1px solid rgba(59,95,79,.1);display:flex;flex-direction:column}.notation-panel-header{padding:.75rem 1.5rem;background:linear-gradient(135deg,#e2c1984d,#694e2f1a);border-bottom:2px solid rgba(139,115,85,.15);display:flex;justify-content:space-between;align-items:center;gap:1rem;box-shadow:0 2px 8px #0000000d}.notation-panel-header h3{margin:0;font-size:1.1rem;color:var(--primary-color);font-weight:700;flex:1;text-align:center}.notation-panel-header .back-btn{background:#fff;border:2px solid var(--primary-color);font-size:.9rem;font-weight:600;cursor:pointer;color:var(--primary-color);padding:.5rem 1rem;display:inline-flex;align-items:center;gap:.4rem;border-radius:20px;transition:all .3s ease;box-shadow:0 2px 6px #00000014;white-space:nowrap}.notation-panel-header .back-btn:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 10px #00000026}.notation-panel-header .back-btn:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.notation-header-actions{display:flex;align-items:center;gap:.75rem}.share-btn{background:#fff;border:2px solid var(--accent-color);font-size:.9rem;font-weight:600;cursor:pointer;color:var(--accent-color);padding:.5rem 1rem;display:inline-flex;align-items:center;gap:.4rem;border-radius:20px;transition:all .3s ease;box-shadow:0 2px 6px #00000014;white-space:nowrap}.share-btn:hover{background-color:var(--accent-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 10px #00000026}.share-btn:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.notation-toggle-btn-desktop{display:inline-flex;align-items:center;background:var(--primary-color);color:#fff;border:none;padding:.35rem .6rem;border-radius:4px;font-size:.8rem;cursor:pointer;white-space:nowrap}.notation-viewer.hidden-desktop{display:none!important}.mobile-media-toggle{display:none}.notation-viewer{flex:1;display:flex;align-items:stretch;justify-content:center;overflow:auto;padding:1rem}.notation-viewer .pdf-viewer{width:100%;height:100%;min-height:500px;border:none;border-radius:4px}.pdf-viewer-desktop{display:block}.pdf-viewer-mobile{display:none}.notation-viewer img{max-width:100%;height:auto;object-fit:contain}.song-info-panel{flex:1;min-width:0;background-color:var(--card-bg-color);overflow-y:auto;padding:2rem}@media(max-width:1024px){.song-detail-content{flex-direction:column}.notation-panel{border-right:none;border-bottom:1px solid rgba(59,95,79,.1)}.notation-panel-header{padding:.5rem .75rem;gap:.5rem;flex-wrap:nowrap;justify-content:space-between;align-items:center}.notation-panel-header h3.sheet-music-title{display:none}.notation-panel-header .back-btn{font-size:.9rem;padding:.4rem .6rem;flex-shrink:0}.notation-panel-header .btn-text{display:none}.notation-header-actions{gap:.4rem;display:flex;align-items:center;flex-shrink:0}.notation-header-actions .share-btn{font-size:.9rem;padding:.4rem .6rem}.pdf-viewer-desktop{display:none!important}.pdf-viewer-mobile{display:block!important}.pdf-mobile-fallback{display:flex!important;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;background:#f5f5f5;border-radius:8px;min-height:200px}.pdf-mobile-fallback p{margin:0 0 1rem;font-size:1.1rem;color:#666}.pdf-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;text-decoration:none;border:none;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:background .2s ease}.pdf-download-btn:hover{background:var(--secondary-color)}.share-btn{font-size:.75rem;padding:.35rem .6rem}.notation-toggle-btn-desktop,.sheet-music-title{display:none!important}.mobile-media-toggle{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid var(--primary-color);margin:0 auto}.mobile-media-toggle .media-toggle-btn{padding:.4rem .5rem;font-size:.7rem;border:none;background:#fff;color:var(--primary-color);cursor:pointer;transition:all .2s ease;white-space:nowrap}.mobile-media-toggle .media-toggle-btn.active{background:var(--primary-color);color:#fff}.hide-on-mobile,.notation-viewer.hidden-mobile{display:none!important}.notation-viewer.hidden-desktop{display:flex!important}.notation-viewer.hidden-desktop.hidden-mobile{display:none!important}.notation-viewer{max-height:50vh}.sheet-music-container{min-height:300px!important;height:auto!important;flex:none!important;overflow:visible!important}.song-info-panel{padding:1.5rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10002;padding:1rem;animation:fadeIn .2s ease-out}.modal-content{background-color:var(--card-bg-color);padding:2.5rem;border-radius:20px;width:95%;max-width:2400px;height:90vh;position:relative;display:flex;gap:2.5rem;overflow-y:auto;animation:fadeInScale .3s ease-out;box-shadow:0 10px 40px #0003;border:1px solid rgba(59,95,79,.15)}.close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;cursor:pointer;color:var(--primary-text-color);line-height:1;z-index:1010;padding:.5rem}.back-btn{position:absolute;top:1rem;left:1rem;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--primary-text-color);line-height:1;z-index:1010;padding:.5rem;display:flex;align-items:center;gap:.5rem;transition:color .2s}.back-btn:hover{color:var(--primary-color)}.notation-section{flex:1;min-width:50%;display:flex;flex-direction:column;height:100%;max-height:calc(90vh - 5rem)}.notation-toggle-btn{width:100%;padding:.75rem 1rem;background-color:#fff;border:1px solid #ddd;border-radius:4px;font-family:var(--font-body);font-size:1rem;font-weight:700;color:var(--primary-color);cursor:pointer;display:flex;justify-content:space-between;align-items:center;text-align:left;margin-bottom:.5rem;transition:background-color .2s}.notation-toggle-btn:hover{background-color:#f7f7f7}.notation-viewer{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}.notation-viewer img,.pdf-viewer{width:100%;height:100%;object-fit:contain;border:1px solid #ddd;border-radius:4px;flex:1}.pdf-viewer{border:none;min-height:0}.song-details{flex:1;display:flex;flex-direction:column;overflow-y:visible}.song-details h2{font-family:var(--font-heading);color:var(--primary-color);margin-bottom:.5rem}.song-details .composer{color:#555;margin-bottom:1rem;font-style:italic}.song-details .description{margin-bottom:2rem;max-height:200px;overflow-y:auto;flex-shrink:0;line-height:1.6}.audio-player{margin-top:auto;background-color:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px var(--shadow-color)}.main-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.play-pause-btn{background-color:var(--primary-color);color:#fff;border:none;border-radius:50%;width:50px;height:50px;font-size:1.5rem;display:flex;justify-content:center;align-items:center;cursor:pointer;flex-shrink:0}.progress-bar{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:8px;background:#ddd;outline:none;border-radius:4px}.progress-bar::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--accent-color);cursor:pointer;border-radius:50%}.progress-bar::-moz-range-thumb{width:16px;height:16px;background:var(--accent-color);cursor:pointer;border-radius:50%;border:none}.track-list{display:flex;flex-direction:column;gap:.75rem;width:100%}.track-row{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem;background-color:#005f730d;border-radius:4px}.track-row label{display:flex;align-items:center;cursor:pointer;width:120px;flex-shrink:0;-webkit-user-select:none;user-select:none}.part-name{font-weight:700;color:var(--primary-color)}.part-name-abbrev{display:none}.category-tags-container{margin-top:1rem;margin-bottom:1rem;padding:1rem;background-color:#faf3e0;border-radius:8px;border:1px solid #D4C5A9}.category-tags-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-start}.category-group{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.category-label{font-size:.75rem;font-weight:600;color:#8b7355;margin-right:.25rem}.category-badge{display:inline-block;padding:.25rem .6rem;color:#fff;border-radius:12px;font-size:.75rem;font-weight:500;animation:fadeIn .4s ease-out;transition:transform .2s ease}.category-badge:hover{transform:scale(1.05)}.category-badge-type{background-color:#8b7355}.category-badge-occasion{background-color:#a67c52}.category-badge-mood{background-color:#bfa883}.category-badge-difficulty{background-color:#d4c5a9;color:#5a4a3a;font-weight:600}.search-section{padding:1rem 2rem;background-color:#faf3e0;border-bottom:1px solid #D4C5A9;margin-bottom:0}.search-section.with-filters{margin-bottom:0}.active-filters-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem;padding:1rem;background-color:#fff9;border-radius:8px;animation:slideInFromTop .3s ease-out}.active-filters-label{font-size:.85rem;font-weight:600;color:#666;margin-right:.25rem}.active-filter-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;background-color:#8b7355;color:#fff;border-radius:16px;font-size:.8rem;font-weight:500;transition:all .2s ease;animation:scaleIn .2s ease-out}.active-filter-badge:hover{background-color:#6d5a44;transform:scale(1.05)}.active-filter-badge.search-term{background-color:#3b5f4f}.active-filter-badge.search-term:hover{background-color:#2d4a3d}.active-filter-badge.favorites-filter{background-color:#e74c3c}.active-filter-badge.favorites-filter:hover{background-color:#c0392b}.active-filter-remove{background:none;border:none;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;line-height:1;padding:0;margin-left:.2rem;transition:transform .2s ease}.active-filter-remove:hover{transform:scale(1.3)}.clear-all-filters-btn{padding:.4rem .9rem;background-color:#d33;color:#fff;border:none;border-radius:16px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:.5rem}.clear-all-filters-btn:hover{background-color:#b02a2a;transform:scale(1.05)}.search-wrapper{max-width:1000px;margin:0 auto}.search-input{flex:1;padding:.75rem;border:2px solid #8B7355;border-radius:8px;font-size:1rem}.filter-toggle-btn{background:none;border:none;color:#8b7355;cursor:pointer;font-size:.9rem;padding:.25rem 0;display:flex;align-items:center;gap:.35rem;font-weight:500;transition:color .2s}.filter-toggle-btn:hover{color:var(--primary-color)}.filter-toggle-icon{font-size:.8rem}.favorites-toggle-btn{background:#fff;border:2px solid #e74c3c;color:#e74c3c;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;display:flex;align-items:center;gap:.5rem;font-weight:600;border-radius:25px;transition:all .3s ease;box-shadow:0 2px 6px #e74c3c26;margin-left:1rem}.favorites-toggle-btn:hover{background-color:#e74c3c;color:#fff;transform:translateY(-2px);box-shadow:0 4px 10px #e74c3c40}.favorites-toggle-btn.active{background-color:#e74c3c;color:#fff;border-color:#c0392b;animation:pulse-favorites 2s ease-in-out infinite}.favorites-toggle-btn.active:hover{background-color:#c0392b}.favorites-icon{font-size:1.2rem;line-height:1}.favorites-label{font-size:.85rem}@keyframes pulse-favorites{0%,to{box-shadow:0 2px 6px #e74c3c4d}50%{box-shadow:0 4px 12px #e74c3c80}}@media(max-width:768px){.favorites-toggle-btn{font-size:.8rem;padding:.4rem .8rem;margin-left:.5rem}.favorites-label{font-size:.75rem}.favorites-icon{font-size:1rem}}.filter-dropdowns-container{padding:1rem 2rem;background-color:#fff;border-bottom:1px solid #D4C5A9;box-shadow:inset 0 2px 4px #0000000d}.filter-dropdowns-wrapper{max-width:1000px;margin:0 auto;display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-start}.filter-dropdown{position:relative}.filter-dropdown-btn{padding:.5rem 1rem;background-color:#fff;color:#8b7355;border:2px solid #8B7355;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:.5rem;min-width:120px;justify-content:space-between;transition:all .2s}.filter-dropdown-btn.active{background-color:#8b7355;color:#fff}.filter-dropdown-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.filter-dropdown-arrow{font-size:.7rem}.filter-dropdown-menu{position:absolute;top:100%;left:0;margin-top:.25rem;background-color:#fff;border:2px solid #8B7355;border-radius:6px;padding:.5rem;z-index:1000;min-width:200px;box-shadow:0 4px 6px #0000001a}.filter-dropdown-menu.scrollable{max-height:300px;overflow-y:auto}.filter-dropdown-item{display:flex;align-items:center;padding:.5rem;cursor:pointer;border-radius:4px;transition:background .2s}.filter-dropdown-item:hover{background-color:#faf3e0}.filter-dropdown-checkbox,.filter-dropdown-radio{margin-right:.5rem;cursor:pointer}.filter-dropdown-label{font-size:.9rem}.search-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#e8c784f2;display:flex;flex-direction:column;justify-content:center;align-items:center;animation:fadeIn .3s ease-out;z-index:2000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.search-loading-content{text-align:center;max-width:500px;padding:2rem;animation:scaleIn .4s ease-out .1s;animation-fill-mode:both}.search-loading-icon{font-size:4rem;margin-bottom:1.5rem;animation:searchPulse 1.5s ease-in-out infinite}.search-loading-title{font-family:var(--font-heading);font-size:2rem;color:var(--primary-color);margin-bottom:1rem;animation:fadeInOut 2s ease-in-out infinite}.search-loading-subtitle{font-family:var(--font-body);font-size:1.1rem;color:var(--primary-text-color);font-style:italic}.search-loading-dots{display:inline-block}.search-loading-dots span{animation:dotBounce 1.4s ease-in-out infinite;display:inline-block}.search-loading-dots span:nth-child(1){animation-delay:0s}.search-loading-dots span:nth-child(2){animation-delay:.2s}.search-loading-dots span:nth-child(3){animation-delay:.4s}@keyframes searchPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}@keyframes fadeInOut{0%,to{opacity:1}50%{opacity:.6}}@keyframes dotBounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}}.waveform{height:50px;flex:1;min-width:200px;display:flex;align-items:flex-end;gap:1px;overflow:hidden;padding:4px 0}.wave-bar{flex:1;min-width:2px;max-width:8px;background-color:var(--voice-color, var(--secondary-color));border-radius:1px;opacity:.7;animation:wave 1s ease-in-out infinite;animation-delay:calc(var(--bar-index) * .05s)}.waveform.inactive .wave-bar{animation:none;opacity:.3}.waveform.real-waveform .wave-bar{animation:none;transition:opacity .15s ease}.waveform.real-waveform .wave-bar.played{opacity:1}.waveform.real-waveform .wave-bar.current{transform:scaleY(1.1);box-shadow:0 0 4px currentColor}.waveform.real-waveform.inactive .wave-bar{opacity:.2}@keyframes wave{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.song-detail-page.choir-mode{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;z-index:10000;padding:0}.modal-overlay.choir-mode{background-color:#000;z-index:10000;padding:0}.song-detail-content.choir-mode-content,.modal-content.choir-mode-content{max-width:100%;max-height:100vh;width:100vw;height:100vh;margin:0;padding:4.5rem 3rem 2rem;border-radius:0;overflow-y:auto;background-color:#fff;flex-direction:column}.song-details.choir-mode-details{max-width:100%}.choir-title{font-size:3rem;text-align:center;margin-bottom:.5rem;color:var(--primary-color)}.choir-composer{font-size:1.5rem;text-align:center;margin-bottom:1rem;color:#666}.choir-controls-bar{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:1rem;padding:calc(.6rem + env(safe-area-inset-top,0px)) 1.5rem .6rem;background:#fffffffa;border-bottom:1px solid rgba(0,0,0,.1);z-index:10001;flex-wrap:nowrap;box-shadow:0 2px 8px #0000001a}.choir-controls-bar label{font-size:.85rem;color:#666;margin-right:.5rem;white-space:nowrap}.header-toggle-btn{padding:.4rem .8rem;background-color:#666;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.header-toggle-btn:hover{background-color:#555}.header-toggle-btn.active{background-color:#444}.timeline-toggle-btn{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.timeline-toggle-btn:hover{background-color:var(--secondary-color);transform:translateY(-1px)}.timeline-toggle-btn.active{background-color:#2c4a3e;box-shadow:inset 0 2px 4px #0003}.exit-choir-btn{padding:.5rem 1rem;background-color:#d33;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.exit-choir-btn:hover{background-color:#b22;transform:translateY(-1px)}.timeline-container{background-color:#f8f9fa;border-radius:12px;margin:1rem 0;overflow:hidden;border:1px solid rgba(0,0,0,.1)}.timeline-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#fff;border-bottom:1px solid rgba(0,0,0,.1)}.timeline-header h4{margin:0;font-size:1rem;color:var(--primary-color);font-weight:600}.timeline-admin-controls{display:flex;align-items:center;gap:1rem}.edit-hint{font-size:.85rem;color:#666;font-style:italic}.save-captions-btn{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.save-captions-btn:hover:not(:disabled){background-color:var(--secondary-color)}.save-captions-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.choir-controls-bar{padding:.4rem .75rem;gap:.5rem;justify-content:space-between}.choir-controls-bar label{display:none}.choir-controls-bar .choir-zoom-control{gap:.25rem}.header-toggle-btn,.timeline-toggle-btn,.exit-choir-btn{padding:.35rem .6rem;font-size:.75rem}.timeline-header{flex-direction:column;gap:.75rem;align-items:flex-start}.timeline-admin-controls{flex-direction:column;align-items:flex-start;gap:.5rem}}.choir-caption-container{margin-top:2rem}.choir-mode-content .audio-player{margin:1rem auto;max-width:100%;padding:.75rem;background-color:#00000005;border-radius:8px}.choir-mode-content .play-pause-btn{width:40px;height:40px;font-size:1rem}.choir-mode-content .progress-bar{height:6px}.choir-mode-content .track-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.choir-mode-content .track-row{padding:.5rem .75rem;background-color:#ffffffe6;border-radius:6px;margin-bottom:0;min-width:auto;flex:0 1 auto}.choir-mode-content .part-name{font-size:.9rem}.choir-mode-content .waveform{display:none}.choir-mode-content input[type=range]{width:260px;height:4px}body:has(.modal-overlay.choir-mode),body:has(.song-detail-page.choir-mode){overflow:hidden}.choir-controls-bar .choir-zoom-control{position:static;background:transparent;padding:0;border-radius:0;box-shadow:none;display:flex;align-items:center;gap:.4rem;border:none;-webkit-backdrop-filter:none;backdrop-filter:none}.choir-controls-bar .zoom-slider{width:100px}.choir-controls-bar .zoom-reset-btn{display:none}.choir-zoom-control:not(.choir-controls-bar .choir-zoom-control){position:fixed;top:calc(1rem + env(safe-area-inset-top,0px));right:1rem;background:#fffffff2;padding:.75rem 1.5rem;border-radius:30px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:.75rem;z-index:10001;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(139,115,85,.2)}.zoom-slider{width:150px;height:6px;border-radius:5px;background:linear-gradient(to right,#e0e0e0,#e0e0e0);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-color);cursor:pointer;box-shadow:0 2px 4px #0003;transition:all .2s ease}.zoom-slider::-webkit-slider-thumb:hover{background:var(--primary-color);transform:scale(1.1)}.zoom-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent-color);cursor:pointer;border:none;box-shadow:0 2px 4px #0003;transition:all .2s ease}.zoom-slider::-moz-range-thumb:hover{background:var(--primary-color);transform:scale(1.1)}.zoom-btn{width:30px;height:30px;border-radius:50%;border:2px solid var(--accent-color);background:#fff;color:var(--accent-color);font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;line-height:1}.zoom-btn:hover{background:var(--accent-color);color:#fff;transform:scale(1.1)}.zoom-btn:active{transform:scale(.95)}.zoom-reset-btn{padding:.4rem .8rem;border-radius:15px;border:1px solid var(--accent-color);background:#fff;color:var(--accent-color);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:.5rem}.zoom-reset-btn:hover{background:var(--accent-color);color:#fff}.zoom-reset-btn:active{transform:scale(.95)}.choir-caption-container{transition:font-size .2s ease-out}.caption-card{position:relative;border-radius:8px}.caption-card-standard{margin-bottom:1rem;padding:1rem;background-color:#fffffff2;box-shadow:0 2px 4px #0000001a}.caption-card-choir{margin-bottom:2rem;padding:1rem 2rem 1rem 4rem;background-color:#fff;box-shadow:0 4px 12px #00000026}.caption-voice-label{font-weight:700;text-transform:uppercase;color:var(--voice-color);font-size:var(--label-zoom)}.caption-voice-label-standard{margin-bottom:.5rem;letter-spacing:.5px}.caption-voice-label-choir{position:absolute;left:12px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:center;letter-spacing:2px;white-space:nowrap;z-index:1}.caption-voice-label-rotated{background:linear-gradient(to right,transparent 0%,rgba(255,255,255,.95) 20%,rgba(255,255,255,.95) 80%,transparent 100%);padding:1rem .75rem;text-shadow:1px 1px 2px rgba(255,255,255,.8)}.caption-text-container{color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--text-zoom)}.caption-text-standard{line-height:1.8}.caption-text-choir{line-height:2.2}.caption-word{display:inline-block;position:relative;border-radius:4px;transition:all .15s ease-in-out;color:#333;font-weight:400;background-color:transparent}.caption-word-standard{margin-right:.35rem;padding:.15rem .3rem}.caption-word-choir{margin-right:.5rem;padding:.3rem .5rem;border-radius:6px}.caption-word-past{background-color:#0000000d}.caption-word-active{color:#fff;font-weight:700;background-color:var(--voice-color)}.caption-word-active-standard{transform:scale(1.05);box-shadow:0 2px 8px var(--voice-color)}.caption-word-active-choir{transform:scale(1.08);box-shadow:0 4px 12px var(--voice-color)}.caption-long-note{margin-left:.2rem;opacity:.7;font-size:.9em;letter-spacing:.1em}@media(max-width:768px){.choir-controls-bar .choir-zoom-control{gap:.25rem}.choir-zoom-control:not(.choir-controls-bar .choir-zoom-control){top:.5rem;right:.5rem;padding:.5rem 1rem;font-size:.85rem}.zoom-slider{width:80px}.zoom-btn{width:26px;height:26px;font-size:1rem}}.loop-btn{flex-shrink:0;transition:all .2s ease}.loop-btn:hover{filter:brightness(1.1)}.loop-btn:active{transform:scale(.95)!important}.loop-btn-active{animation:pulse-loop 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes pulse-loop{0%,to{box-shadow:0 0 #28a745b3}50%{box-shadow:0 0 0 10px #28a74500}}@media(max-width:768px){.loop-btn-text{display:none}.loop-btn{padding:.5rem!important;min-width:40px;justify-content:center}}.voice-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--checkbox-color);border-radius:4px;cursor:pointer;position:relative;transition:all .2s ease;background-color:#fff;margin-right:.5rem;flex-shrink:0}.voice-checkbox:hover{transform:scale(1.1);box-shadow:0 0 8px var(--checkbox-color)}.voice-checkbox:checked{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.voice-checkbox:checked:after{content:"✓";position:absolute;color:#fff;font-size:14px;font-weight:700;top:50%;left:50%;transform:translate(-50%,-50%)}.voice-checkbox:focus{outline:2px solid var(--checkbox-color);outline-offset:2px}.track-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:color-mix(in srgb,var(--voice-color, #ddd) 20%,#ddd 80%);outline:none;border-radius:3px;cursor:pointer}.track-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--voice-color, var(--secondary-color));cursor:pointer;border-radius:50%;transition:all .2s}.track-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px var(--voice-color, var(--primary-color))}.track-row input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--voice-color, var(--secondary-color));cursor:pointer;border-radius:50%;border:none;transition:all .2s}.track-row input[type=range]::-moz-range-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px var(--voice-color, var(--primary-color))}.add-song-modal{max-width:600px;height:auto;max-height:90vh;display:block}.add-song-modal h2{text-align:center;margin-bottom:1.5rem;color:var(--primary-color);font-family:var(--font-heading)}.add-song-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.25rem;font-weight:700;color:var(--primary-color)}.form-group input,.form-group textarea{padding:.75rem;border:1px solid #ccc;border-radius:4px;font-family:var(--font-body);font-size:1rem}.form-group textarea{min-height:100px;resize:vertical}.file-group .file-name{font-size:.8rem;color:#555;margin-top:.25rem}.submit-btn{padding:.8rem 1.5rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:1.1rem;font-weight:700;cursor:pointer;margin-top:1rem;transition:background-color .2s}.submit-btn:hover{background-color:var(--secondary-color)}@media(max-width:768px){.app{padding:1rem}.modal-content{flex-direction:column;padding:1.5rem;width:98%;height:95vh}.close-btn{top:.5rem;right:.5rem}.notation-section{flex:initial;min-width:100%;order:-1}.notation-viewer{height:40vh;min-width:100%}.song-details{flex:1;overflow-y:auto;min-height:0;min-width:100%}.search-btn .btn-text,.clear-btn .btn-text{display:none}.search-bar-container .search-input{flex:2!important;font-size:.85rem;padding:.5rem}.search-bar-container .search-btn,.search-bar-container .clear-btn{flex:.5!important;min-width:auto!important;padding:.5rem .6rem;font-size:.85rem}.active-filters-row{padding:.75rem;gap:.4rem}.active-filters-label{font-size:.75rem;width:100%;margin-bottom:.25rem}.active-filter-badge{font-size:.75rem;padding:.35rem .6rem}.clear-all-filters-btn{font-size:.75rem;padding:.35rem .7rem}.song-details .description{max-height:none;overflow-y:visible;margin-bottom:1rem}.audio-player{margin-top:1rem;padding:1rem}.waveform,.part-name-abbrev{display:none}.track-row label{width:auto;min-width:60px}.track-row{gap:.5rem;padding:.5rem .25rem}.track-row>div{gap:.25rem!important;margin-left:0!important}.track-row input[type=range]{width:100%!important;max-width:150px}.track-row label{gap:.35rem!important}}.admin-dashboard{min-height:60vh;padding:2rem 0}.admin-container{max-width:1400px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-header h2{color:#8b7355;margin:0}.admin-add-song-btn{padding:.75rem 1.5rem;font-size:1.1rem}.admin-songs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.admin-song-card{background-color:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px var(--shadow-color);transition:transform .2s,box-shadow .2s;animation:slideInFromBottom .3s ease-out;animation-fill-mode:both;position:relative;display:flex;flex-direction:column;min-height:220px}.admin-song-card-clickable{cursor:pointer}.admin-song-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.admin-song-card:nth-child(1){animation-delay:.05s}.admin-song-card:nth-child(2){animation-delay:.1s}.admin-song-card:nth-child(3){animation-delay:.15s}.admin-song-card:nth-child(4){animation-delay:.2s}.admin-song-card:nth-child(5){animation-delay:.25s}.admin-song-card:nth-child(6){animation-delay:.3s}.admin-song-card:nth-child(n+7){animation-delay:.35s}.admin-song-card-title{color:#8b7355;font-size:1.2rem;margin:0 0 .5rem;font-weight:700;padding-right:120px}.admin-song-card-title.has-premium-badge{padding-left:38px}.admin-song-card-composer{color:#666;font-size:.95rem;margin-bottom:.75rem;padding-right:120px}.admin-song-card-description{color:#555;font-size:.9rem;margin-bottom:1rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.admin-song-badges{position:absolute;top:.75rem;right:.75rem;display:flex;gap:.4rem;flex-direction:row;align-items:center}.admin-badge{display:inline-block;padding:.25rem .5rem;border-radius:3px;font-size:.7rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase;cursor:default}.admin-badge-tracks{background-color:#e8dcc0;color:#5a4a3a;border:1px solid #D4C5A9;font-size:.75rem}.admin-badge-captions-yes{background-color:transparent;color:#4caf50;border:1.5px solid #4CAF50;font-family:monospace;font-weight:800;letter-spacing:1px}.admin-badge-captions-no{background-color:transparent;color:#f44336;border:1.5px solid #F44336;font-family:monospace;font-weight:800;letter-spacing:1px}.admin-song-card-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap;margin-top:auto}.admin-btn-edit-captions{background-color:#8b7355;color:#fff;border-color:#8b7355}.admin-btn-edit-captions:hover{background-color:#6d5a44;border-color:#6d5a44}.admin-btn-generate-captions{background-color:#3b5f4f;color:#fff;border-color:#3b5f4f}.admin-btn-generate-captions:hover{background-color:#2d4a3d;border-color:#2d4a3d}.admin-sections{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.admin-form-modal{max-width:1200px;max-height:90vh;overflow-y:auto;width:95%}.admin-form-modal h2{color:#8b7355;margin-bottom:1.5rem}.admin-form-sections{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.admin-form-section-card{background-color:#faf3e0;padding:1.5rem;border-radius:8px;border:1px solid #D4C5A9;animation:slideInFromBottom .3s ease-out;animation-fill-mode:both}.admin-form-section-card:nth-child(1){animation-delay:.1s}.admin-form-section-card:nth-child(2){animation-delay:.15s}.admin-form-section-card:nth-child(3){animation-delay:.2s}.admin-form-section-card.full-width{grid-column:1 / -1}.admin-form-section-card h3{color:#8b7355;margin:0 0 1rem;font-size:1.1rem}.admin-form-section-card h4{color:#8b7355;margin:1.5rem 0 1rem;font-size:1rem}.admin-form-section-card .form-group{margin-bottom:1.5rem}.admin-section{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px var(--shadow-color);display:flex;flex-direction:column;max-height:calc(100vh - 200px);overflow:hidden}.admin-section.form-section{overflow-y:auto}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.admin-section-title{color:#8b7355;margin:0}.admin-edit-note{color:#666;font-size:.9rem;margin-bottom:1rem}.admin-form{display:flex;flex-direction:column;gap:1rem}.admin-form .form-group{display:flex;flex-direction:column}.admin-form label{margin-bottom:.5rem;font-weight:700;color:var(--primary-color);font-size:.95rem}.admin-form input,.admin-form textarea,.admin-form select{padding:.75rem;border:1px solid #ccc;border-radius:4px;font-family:var(--font-body);font-size:1rem;transition:border-color .2s}.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{outline:none;border-color:var(--primary-color)}.admin-form textarea{resize:vertical}.admin-form select{padding:.5rem;border-radius:4px;border:1px solid #ddd;cursor:pointer}.admin-categories-header{display:flex;align-items:center;justify-content:space-between;margin-top:1.5rem;margin-bottom:1rem}.admin-categories-title{color:#8b7355;margin:0}.admin-category-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.admin-checkbox-label{display:flex;align-items:center;gap:.25rem;cursor:pointer}.admin-files-header{color:#8b7355;margin-top:1.5rem;margin-bottom:1rem}.admin-existing-file{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center;padding:.5rem;background-color:#f0f0f0;border-radius:4px}.admin-existing-file.audio{background-color:#e8f5e9}.admin-existing-file-name{flex:1;font-size:.9rem}.admin-file-input-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}.admin-file-input{flex:1}.admin-file-selected{font-size:.85rem;color:#666;margin-top:.25rem}.admin-btn-small{padding:.35rem .75rem;font-size:.85rem}.admin-btn-tiny{padding:.25rem .5rem;min-width:auto}.admin-btn-add-file{margin-top:.5rem}.admin-btn-submit{margin-top:1rem;width:100%}.songs-list{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;flex:1;min-height:0}.songs-list-header{color:#8b7355;margin-bottom:1rem;flex-shrink:0}.song-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--background-color);border-radius:4px;transition:background-color .2s}.song-item:hover{background-color:#f0e9d2}.song-item-info{flex:1}.song-item-info strong{color:var(--primary-color)}.song-item-composer{color:#666}.song-item-actions{display:flex;gap:.5rem}.admin-settings-header-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-settings-title{color:#8b7355;margin-bottom:.5rem}.admin-settings-description{color:#666;font-size:.95rem}.admin-category-section{margin-bottom:2rem;padding:1.5rem;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.admin-category-section-title{color:#8b7355;margin-bottom:.5rem}.admin-category-section-description{color:#666;font-size:.9rem;margin-bottom:1rem}.admin-category-items{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.admin-save-actions{margin-top:2rem;padding:1.5rem;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem;justify-content:flex-end}.admin-btn-save{min-width:150px}.admin-category-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background-color:#faf3e0;border-radius:20px;border:1px solid #D4C5A9;transition:all .2s;cursor:pointer;animation:fadeIn .3s ease-out}.admin-category-item.unused{background-color:#f5f5f5;border-color:#ddd;cursor:default}.admin-category-item:not(.unused):hover{background-color:#e8dcc0;transform:translateY(-1px)}.admin-category-item-name{font-size:.9rem;color:#333}.admin-category-item.unused .admin-category-item-name{color:#999}.admin-category-item-count{font-size:.75rem;font-weight:700;color:#8b7355;background-color:#fff;padding:.15rem .4rem;border-radius:10px;min-width:20px;text-align:center}.admin-category-item.unused .admin-category-item-count{color:#999;background-color:#e0e0e0}.admin-category-item-remove{background:none;border:none;color:#8b7355;cursor:pointer;font-size:1.1rem;padding:0;line-height:1}.admin-category-item.unused .admin-category-item-remove{color:#999}.admin-add-input-row{display:flex;gap:.5rem}.admin-add-input{flex:1;padding:.5rem;border:1px solid #D4C5A9;border-radius:4px;font-size:.9rem}@media(max-width:768px){.admin-sections{grid-template-columns:1fr}.admin-section{padding:1.5rem}}.swal2-popup{font-family:var(--font-body);border-radius:20px;background-color:var(--card-bg-color);box-shadow:0 10px 40px #0003;border:1px solid rgba(59,95,79,.15)}.swal2-title{font-family:var(--font-heading);color:var(--primary-color);font-size:1.75rem;margin-bottom:1rem;font-weight:600}.swal2-html-container{color:var(--primary-text-color);font-size:1rem;line-height:1.6}.swal2-confirm{font-family:var(--font-body);font-weight:700;border-radius:25px;padding:.75rem 2rem;transition:all .2s;box-shadow:0 4px 10px #0000001a}.swal2-confirm:hover{transform:translateY(-2px);box-shadow:0 6px 15px #00000026}.swal2-cancel{font-family:var(--font-body);font-weight:700;border-radius:25px;padding:.75rem 2rem;transition:all .2s}.swal2-icon{border-width:3px}.swal2-success-ring{border-color:var(--secondary-color)}.swal2-icon.swal2-success [class^=swal2-success-line]{background-color:var(--secondary-color)}.swal2-icon.swal2-success .swal2-success-ring{border-color:#0a93964d}.swal2-toast{border-radius:10px;font-family:var(--font-body);box-shadow:0 4px 15px #00000026}.faq-page{min-height:calc(100vh - 80px);background:linear-gradient(135deg,#f5f0e8,#e8dcc0);padding:3rem 1rem}.faq-container{max-width:900px;margin:0 auto}.faq-title{font-size:2.5rem;color:var(--primary-color);text-align:center;margin-bottom:1rem;font-weight:700;animation:fadeInDown .6s ease-out}.faq-subtitle{text-align:center;color:#666;font-size:1.1rem;margin-bottom:3rem;animation:fadeInUp .6s ease-out}.faq-loading,.faq-empty{text-align:center;padding:3rem;background:#fff;border-radius:12px;color:#666;font-size:1.1rem;box-shadow:0 2px 8px #0000001a}.faq-list{display:flex;flex-direction:column;gap:1rem}.faq-item{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:all .3s ease;animation:slideInFromBottom .5s ease-out;animation-fill-mode:both}.faq-item:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.faq-item-expanded{box-shadow:0 4px 20px #8b735533}.faq-question{width:100%;text-align:left;background:transparent;border:none;padding:1.5rem 1.75rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:background-color .3s ease}.faq-question:hover{background-color:#8b73550d}.faq-item-expanded .faq-question{background-color:#8b735514}.faq-question-text{font-size:1.15rem;font-weight:600;color:var(--primary-color);line-height:1.5}.faq-icon{font-size:1.75rem;color:var(--primary-color);font-weight:300;min-width:30px;text-align:center;transition:transform .3s ease}.faq-item-expanded .faq-icon{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s ease}.faq-answer-visible{max-height:500px;padding:0 1.75rem 1.75rem}.faq-answer-content{color:#555;font-size:1rem;line-height:1.8;padding-top:.5rem;border-top:1px solid rgba(139,115,85,.1)}.faq-admin-list{display:flex;flex-direction:column;gap:1.5rem;margin-top:2rem;overflow-y:auto;max-height:calc(100vh - 350px);padding-right:.5rem}.faq-admin-list::-webkit-scrollbar{width:8px}.faq-admin-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.faq-admin-list::-webkit-scrollbar-thumb{background:var(--accent-color);border-radius:10px}.faq-admin-list::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.faq-admin-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;animation:slideInFromBottom .3s ease-out;animation-fill-mode:both}.faq-admin-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.faq-admin-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.faq-admin-order{background:var(--accent-color);color:#fff;font-weight:700;font-size:.85rem;padding:.4rem .7rem;border-radius:6px;min-width:40px;text-align:center}.faq-admin-question{color:var(--primary-color);font-size:1.15rem;font-weight:600;margin:0;flex:1}.faq-admin-answer{color:#666;font-size:.95rem;line-height:1.6;margin-bottom:1rem;padding-left:3rem}.faq-admin-actions{display:flex;gap:.5rem;justify-content:flex-end}.faq-form-modal{max-width:900px;width:95%;max-height:90vh;overflow-y:auto}.faq-form{display:flex;flex-direction:column;gap:2rem;padding:1rem 0}.faq-form-group{display:flex;flex-direction:column;gap:.75rem}.faq-form-group label{font-size:1.1rem;font-weight:600;color:var(--primary-color);letter-spacing:.3px}.faq-form-group small{font-size:.9rem;color:#666;font-style:italic;margin-top:-.5rem}.faq-form-input{width:100%;padding:1rem 1.25rem;font-size:1.05rem;border:2px solid #D4C5A9;border-radius:8px;font-family:var(--font-body);transition:all .3s ease;background:#fefefe}.faq-form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #8b73551a}.faq-form-textarea{width:100%;padding:1rem 1.25rem;font-size:1.05rem;border:2px solid #D4C5A9;border-radius:8px;font-family:var(--font-body);transition:all .3s ease;resize:vertical;min-height:200px;line-height:1.6;background:#fefefe}.faq-form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #8b73551a}.faq-form-group-small{max-width:300px}.faq-form-input-small{width:100%;padding:.75rem 1rem;font-size:1rem;border:2px solid #D4C5A9;border-radius:8px;font-family:var(--font-body);transition:all .3s ease;background:#fefefe}.faq-form-input-small:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #8b73551a}.faq-form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:2px solid rgba(212,197,169,.3)}.faq-form-actions button{min-width:120px;padding:.85rem 2rem;font-size:1rem}@media(max-width:768px){.faq-title{font-size:2rem}.faq-subtitle{font-size:1rem}.faq-question{padding:1.25rem}.faq-question-text{font-size:1rem}.faq-answer-visible{padding:0 1.25rem 1.25rem}.faq-admin-answer{padding-left:1rem}.faq-admin-header{flex-direction:column;gap:.5rem}.faq-admin-order{align-self:flex-start}.faq-form-modal{width:98%;max-height:95vh}.faq-form{gap:1.5rem}.faq-form-input,.faq-form-textarea,.faq-form-input-small{padding:.85rem 1rem;font-size:1rem}.faq-form-textarea{min-height:180px}.faq-form-group-small{max-width:100%}.faq-form-actions{flex-direction:column}.faq-form-actions button{width:100%}}.layout-with-footer{display:flex;flex-direction:column;min-height:100vh}.layout-with-footer-content{flex:1;display:flex;flex-direction:column}.app-footer{background:linear-gradient(135deg,#8b7355,#6d5a44);color:#fff;margin-top:auto;padding:3rem 0 1.5rem;box-shadow:0 -4px 20px #0000001a}.footer-container{max-width:1400px;margin:0 auto;padding:0 2rem}.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.2)}.footer-brand{display:flex;flex-direction:column;gap:1rem}.footer-logo{height:80px;width:auto;object-fit:contain;filter:brightness(1.1)}.footer-tagline{font-style:italic;color:#ffffffe6;font-size:.95rem;line-height:1.5}.footer-section h4{font-size:1.1rem;margin-bottom:1rem;color:#fff;font-weight:600}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.footer-links button{background:none;border:none;color:#ffffffd9;font-size:.95rem;cursor:pointer;padding:.3rem 0;text-align:left;transition:all .2s ease;font-family:inherit}.footer-links button:hover{color:#fff;transform:translate(5px)}.footer-bottom{text-align:center;padding-top:1.5rem}.footer-bottom p{margin:0;color:#ffffffb3;font-size:.9rem}@media(max-width:968px){.footer-content{grid-template-columns:1fr 1fr;gap:2rem}.footer-brand{grid-column:1 / -1}}@media(max-width:600px){.footer-content{grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;margin-bottom:.75rem;padding-bottom:.75rem}.app-footer{padding:1rem 0 .5rem}.footer-container{padding:0 1rem}.footer-brand{grid-column:1 / -1;flex-direction:row;align-items:center;gap:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:.25rem}.footer-logo{height:45px}.footer-tagline{font-size:.75rem;margin:0}.footer-quick-links{display:none}.footer-section{margin:0}.footer-section h4{font-size:.85rem;margin-bottom:.4rem}.footer-links{gap:.25rem}.footer-links button{font-size:.8rem;padding:.15rem 0}.footer-bottom{padding-top:.5rem}.footer-bottom p{font-size:.7rem}}.static-page{min-height:calc(100vh - 200px);background:linear-gradient(to bottom,#f9f6f2,#fff);padding:3rem 0;display:flex;flex-direction:column}.static-page-container{max-width:900px;margin:0 auto;padding:0 2rem 3rem;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;flex:1;width:100%;position:relative;z-index:10}.static-page-container h1{color:var(--primary-color);font-size:2.5rem;margin-bottom:.5rem;padding-top:2rem;border-bottom:3px solid var(--primary-color-light);padding-bottom:1rem}.static-page-container .last-updated{color:#666;font-size:.9rem;font-style:italic;margin-bottom:2rem}.static-page-container section{margin:2.5rem 0}.static-page-container h2{color:var(--primary-color);font-size:1.6rem;margin-top:2rem;margin-bottom:1rem}.static-page-container h3{color:#8b7355;font-size:1.2rem;margin-top:1.5rem;margin-bottom:.8rem}.static-page-container p{line-height:1.8;color:#333;margin-bottom:1rem}.static-page-container ul{line-height:1.8;color:#333;margin:1rem 0 1rem 2rem}.static-page-container li{margin-bottom:.5rem}.static-page-container a.text-link{color:var(--primary-color);text-decoration:underline;transition:color .2s ease}.static-page-container a.text-link:hover{color:var(--primary-color-dark)}.about-footer{text-align:center;margin-top:3rem;padding-top:2rem;border-top:2px solid var(--primary-color-light)}.about-footer em{font-size:1.2rem;color:var(--primary-color)}.signature{font-style:italic;color:#666;margin-top:1rem}.contact-intro{font-size:1.1rem;color:#666;text-align:center;margin-bottom:2rem}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:2rem}.contact-form-section,.contact-info-section{display:flex;flex-direction:column;gap:1.5rem}.contact-success-message{background:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:1rem;border-radius:8px;margin-bottom:1rem}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--primary-color);font-size:.95rem}.form-group input,.form-group select,.form-group textarea{padding:.8rem;border:2px solid #ddd;border-radius:8px;font-family:inherit;font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #8b73551a}.form-group textarea{resize:vertical;min-height:120px}.contact-submit-btn{background:var(--primary-color);color:#fff;border:none;padding:1rem 2rem;border-radius:25px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #8b73554d}.contact-submit-btn:hover:not(:disabled){background:var(--primary-color-dark);transform:translateY(-2px);box-shadow:0 6px 16px #8b735566}.contact-submit-btn:disabled{opacity:.6;cursor:not-allowed}.contact-info-card{background:#f9f6f2;padding:1.5rem;border-radius:12px;border-left:4px solid var(--primary-color)}.contact-info-card h3{margin-top:0;margin-bottom:.8rem;font-size:1.1rem}.contact-info-card p{margin-bottom:.5rem;font-size:.95rem}.contact-link{color:var(--primary-color);font-weight:600;text-decoration:none;transition:color .2s ease}.contact-link:hover{color:var(--primary-color-dark);text-decoration:underline}@media(max-width:768px){.contact-content{grid-template-columns:1fr;gap:2rem}.static-page-container h1{font-size:2rem}.static-page{padding:1.5rem 0}.static-page-container{padding:0 1.5rem 2rem}}.load-more-container{grid-column:1 / -1;display:flex;justify-content:center;align-items:center;padding:3rem 0 2rem;animation:fadeIn .5s ease-out}.load-more-btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2.5rem;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;border:none;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;box-shadow:0 4px 15px #3b5f4f4d;transition:all .3s ease;position:relative;overflow:hidden}.load-more-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.load-more-btn:hover:before{left:100%}.load-more-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b5f4f66}.load-more-btn:active{transform:translateY(0);box-shadow:0 2px 10px #3b5f4f4d}.load-more-icon{font-size:1.3rem;animation:bounce 2s infinite}.load-more-count{font-size:.9rem;opacity:.9;font-weight:500}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}@media(max-width:768px){.load-more-btn{padding:.85rem 2rem;font-size:1rem}.load-more-count{font-size:.85rem}}.partnership-section{margin:3rem 0}.partnership-intro{font-size:1.15rem;line-height:1.8;color:#555;text-align:center;margin-bottom:3rem;font-style:italic}.partners-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin:3rem 0}.partner-card{background:linear-gradient(to bottom,#f9f6f2,#fff);padding:2rem;border-radius:12px;box-shadow:0 4px 15px #00000014;transition:transform .3s ease,box-shadow .3s ease}.partner-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.partner-image-container{width:200px;height:200px;margin:0 auto 1.5rem;border-radius:50%;overflow:hidden;border:5px solid var(--primary-color);box-shadow:0 4px 15px #00000026}.partner-image{width:100%;height:100%;object-fit:cover}.partner-card h3{text-align:center;color:var(--primary-color);font-size:1.6rem;margin-bottom:.5rem}.partner-title{text-align:center;font-weight:600;color:#8b7355;font-size:1rem;margin-bottom:1.5rem;font-style:italic}.partner-card p{text-align:left;line-height:1.8;color:#444}.partnership-vision{background:linear-gradient(135deg,var(--primary-color-light),var(--primary-color-lighter));padding:2rem;border-radius:12px;margin-top:3rem;border-left:5px solid var(--primary-color);box-shadow:0 4px 15px #00000014}.partnership-vision p{font-size:1.1rem;line-height:1.9;color:#333;margin:0;text-align:center;font-weight:500}@media(max-width:968px){.partners-grid{grid-template-columns:1fr;gap:2rem}.partner-image-container{width:150px;height:150px}.partner-card h3{font-size:1.4rem}.partnership-intro,.partnership-vision p{font-size:1rem}}@media(max-width:768px){.choir-mode-toggle-btn{display:none!important}}.song-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.song-title-row h2{flex:1;margin:0}.favorite-btn-title{display:none}.favorite-btn-header{display:inline-flex}@media(max-width:768px){.favorite-btn-title{display:inline-flex!important;flex-shrink:0}.favorite-btn-header{display:none!important}.song-title-row{background:linear-gradient(to right,#ffffffe6,#ffffffb3);padding:.75rem 1rem;border-radius:8px;margin-bottom:.5rem;box-shadow:0 2px 8px #00000014;border-left:4px solid var(--primary-color)}.song-title-row h2{font-size:1.3rem}}.pdf-download-overlay-btn{position:absolute;top:1rem;right:1rem;z-index:10;padding:.6rem 1.2rem;background:var(--primary-color);color:#fff;border:2px solid white;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.pdf-download-overlay-btn:hover{background:var(--secondary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0006}.pdf-download-overlay-btn:active{transform:translateY(0)}@media(max-width:768px){.pdf-download-mobile-btn{top:.5rem;right:.5rem;padding:.5rem 1rem;font-size:.85rem}}.song-card{position:relative}.song-card-premium-icon{position:absolute;top:.5rem;left:.5rem;color:gold;z-index:10;background:linear-gradient(135deg,#5a4a2a,#3d3220);border-radius:50%;padding:5px;box-shadow:0 2px 6px #00000059}.premium-crown-svg{width:18px;height:18px;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.admin-song-card{position:relative}.pricing-page-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10002;padding:1rem}.pricing-page-container{background:#fff;border-radius:12px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;padding:2rem}.pricing-page-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;cursor:pointer;color:#666;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.pricing-page-close:hover{background:#f0f0f0}.pricing-page-header{text-align:center;margin-bottom:2rem}.pricing-page-header h1{font-size:2rem;margin-bottom:.5rem;color:#333}.pricing-page-header p{font-size:1.1rem;color:#666}.pricing-page-error{background:#fee;color:#c00;padding:1rem;border-radius:8px;margin-bottom:1.5rem;text-align:center}.pricing-page-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:2rem}.pricing-page-tier{background:#f9f9f9;border:2px solid #e0e0e0;border-radius:12px;padding:2rem;position:relative;transition:transform .2s,box-shadow .2s}.pricing-page-tier:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001a}.pricing-page-tier-featured{background:linear-gradient(135deg,#fff5e6,#ffe6cc);border-color:orange}.pricing-page-tier-badge{position:absolute;top:-12px;right:1rem;background:orange;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.pricing-page-tier-name{font-size:1.5rem;margin-bottom:1rem;color:#333}.pricing-page-tier-price{margin-bottom:1.5rem}.pricing-page-tier-price-amount{font-size:2.5rem;font-weight:700;color:#333}.pricing-page-tier-price-interval{font-size:1.1rem;color:#666}.pricing-page-tier-features{list-style:none;padding:0;margin:0 0 1.5rem}.pricing-page-tier-features li{padding:.5rem 0;display:flex;align-items:center;gap:.5rem;color:#555}.pricing-page-tier-feature-check{color:#4caf50;font-weight:700;font-size:1.2rem}.pricing-page-tier-button{width:100%;padding:1rem;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.pricing-page-tier-button:hover:not(:disabled){background:#45a049}.pricing-page-tier-button:disabled{background:#ccc;cursor:not-allowed}.pricing-page-footer{text-align:center;color:#666;font-size:.9rem}.pricing-page-footer p{margin:.5rem 0}.pricing-page-native-notice{text-align:center;padding:2rem;max-width:400px;margin:0 auto}.pricing-page-native-icon{font-size:3rem;margin-bottom:1rem}.pricing-page-native-notice h2{color:#333;margin-bottom:1rem}.pricing-page-native-notice p{color:#666;margin-bottom:1.5rem;line-height:1.6}.pricing-page-native-pricing{background:#f8f4ef;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.pricing-page-native-pricing p{margin:0;color:#333}.pricing-page-native-features{list-style:none;padding:0;margin:0 0 2rem;text-align:left}.pricing-page-native-features li{padding:.5rem 0;color:#555;border-bottom:1px solid #eee}.pricing-page-native-features li:last-child{border-bottom:none}.paywall-web-notice{text-align:center;color:#666;margin-bottom:.75rem;font-size:.95rem}.subscription-management-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.subscription-management-container{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;padding:2rem}.subscription-management-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;cursor:pointer;color:#666;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.subscription-management-close:hover{background:#f0f0f0}.subscription-management-header h1{font-size:1.75rem;margin-bottom:1.5rem;color:#333}.subscription-management-loading{text-align:center;padding:2rem;color:#666}.subscription-management-error{background:#fee;color:#c00;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.subscription-management-content,.subscription-management-section{margin-bottom:2rem}.subscription-management-section h2{font-size:1.2rem;margin-bottom:1rem;color:#555}.subscription-management-plan{background:#f9f9f9;padding:1.5rem;border-radius:8px;border:1px solid #e0e0e0}.subscription-management-plan-tier{font-size:1.25rem;font-weight:600;margin-bottom:.5rem;color:#333}.subscription-management-plan-status{padding:.5rem 1rem;border-radius:6px;display:inline-block;font-weight:600;font-size:.9rem}.subscription-status-active{background:#d4edda;color:#155724}.subscription-status-cancelled{background:#fff3cd;color:#856404}.subscription-status-past-due{background:#f8d7da;color:#721c24}.subscription-status-expired,.subscription-status-none{background:#e2e3e5;color:#383d41}.subscription-management-billing p{margin:.5rem 0;color:#555}.subscription-management-actions{display:flex;flex-direction:column;gap:1rem}.subscription-management-button{padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.subscription-management-button:hover:not(:disabled){opacity:.9;transform:translateY(-2px)}.subscription-management-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.subscription-management-button-primary{background:#4caf50;color:#fff}.subscription-management-button-secondary{background:#2196f3;color:#fff}.subscription-management-button-danger{background:#f44336;color:#fff}.subscription-management-footer{text-align:center;color:#666;font-size:.9rem;padding-top:1rem;border-top:1px solid #e0e0e0}.paywall-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.paywall-container{background:#fff;border-radius:12px;max-width:500px;width:100%;position:relative;padding:2rem;text-align:center}.paywall-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;cursor:pointer;color:#666;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.paywall-close:hover{background:#f0f0f0}.paywall-icon{font-size:4rem;margin-bottom:1rem}.paywall-title{font-size:1.75rem;margin-bottom:1rem;color:#333}.paywall-song-title{font-size:1.1rem;font-style:italic;color:#666;margin-bottom:1rem}.paywall-message{font-size:1rem;color:#555;margin-bottom:1.5rem}.paywall-benefits{background:#f9f9f9;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;text-align:left}.paywall-benefits h3{font-size:1.1rem;margin-bottom:1rem;color:#333}.paywall-benefits ul{list-style:none;padding:0;margin:0}.paywall-benefits li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:#555}.paywall-benefits li:before{content:"✓";position:absolute;left:0;color:#4caf50;font-weight:700;font-size:1.2rem}.paywall-pricing{margin-bottom:1.5rem}.paywall-pricing-option{font-size:1.1rem;color:#333;margin-bottom:.5rem}.paywall-pricing-note{font-size:.9rem;color:#4caf50;font-weight:600}.paywall-actions{display:flex;flex-direction:column;gap:1rem}.paywall-button{padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.paywall-button:hover{opacity:.9;transform:translateY(-2px)}.paywall-button-primary{background:#4caf50;color:#fff}.paywall-button-secondary{background:#e0e0e0;color:#333}.paywall-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e0e0e0;font-size:.85rem;color:#666}@media(max-width:768px){.pricing-page-container,.subscription-management-container,.paywall-container{padding:1.5rem;margin:.5rem}.pricing-page-header h1{font-size:1.5rem}.pricing-page-tiers{grid-template-columns:1fr}.pricing-page-tier-price-amount{font-size:2rem}.subscription-management-header h1,.paywall-title{font-size:1.5rem}.paywall-icon{font-size:3rem}}.premium-preview-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;justify-content:center;align-items:flex-start;z-index:10003;padding:2rem 1rem;overflow-y:auto;animation:fadeIn .2s ease-out}.premium-preview-modal{background:#fff;border-radius:16px;max-width:700px;width:100%;position:relative;padding:2rem;box-shadow:0 20px 60px #0000004d}.premium-preview-close{position:absolute;top:.75rem;right:.75rem;background:#0000000f;border:none;font-size:1.5rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:#666;transition:background .2s;z-index:1}.premium-preview-close:hover{background:#0000001a}.premium-preview-video{margin:-2rem -2rem 1.5rem;border-radius:16px 16px 0 0;overflow:hidden}.premium-preview-video .youtube-embed-container{border-radius:0;box-shadow:none}.premium-preview-song-title{font-size:1.4rem;color:#333;margin:0 0 .25rem;font-weight:700}.premium-preview-song-composer{font-size:.95rem;color:#888;margin:0 0 1.5rem;font-style:italic}.premium-preview-plans{display:flex;flex-direction:column;gap:1.25rem}.premium-preview-plan{border:1px solid #e0d8cc;border-radius:12px;padding:1.5rem;position:relative;background:#faf8f5}.premium-preview-plan-featured{border-color:#3b5f4f;border-width:2px;background:#f5faf7}.premium-preview-plan-badge{position:absolute;top:-10px;right:1.25rem;background:#3b5f4f;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .75rem;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.premium-preview-plan-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.premium-preview-plan-header h3{font-size:1.05rem;color:#333;margin:0;font-weight:600}.premium-preview-plan-price{font-size:1.2rem;font-weight:700;color:#3b5f4f;white-space:nowrap}.premium-preview-plan-desc{font-size:.9rem;color:#666;margin:0 0 .75rem;line-height:1.4}.premium-preview-plan-features{list-style:none;padding:0;margin:0 0 .75rem}.premium-preview-plan-features li{position:relative;padding-left:1.5rem;font-size:.88rem;color:#555;line-height:1.6}.premium-preview-plan-features li:before{content:"✓";position:absolute;left:0;color:#3b5f4f;font-weight:700}.premium-preview-plan-note{font-size:.82rem;color:#888;margin:0 0 1rem;line-height:1.5;font-style:italic}.premium-preview-plan-btn{width:100%;padding:.75rem;border:2px solid #8B7355;background:#fff;color:#8b7355;font-size:.95rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s}.premium-preview-plan-btn:hover{background:#8b7355;color:#fff}.premium-preview-plan-btn-featured{background:#3b5f4f;color:#fff;border-color:#3b5f4f}.premium-preview-plan-btn-featured:hover{background:#2a4438;border-color:#2a4438}.premium-preview-dismiss{display:block;margin:1.25rem auto 0;background:none;border:none;color:#999;font-size:.9rem;cursor:pointer;padding:.5rem 1rem}.premium-preview-dismiss:hover{color:#666}@media(max-width:768px){.premium-preview-overlay{padding:1rem .5rem}.premium-preview-modal{padding:1.5rem;border-radius:12px}.premium-preview-video{margin:-1.5rem -1.5rem 1.25rem;border-radius:12px 12px 0 0}.premium-preview-song-title{font-size:1.2rem}.premium-preview-plan{padding:1.25rem}.premium-preview-plan-header{flex-direction:column;gap:.25rem}}.profile-settings-page{max-width:600px;margin:0 auto;padding:2rem}.profile-settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.profile-settings-header h1{margin:0;font-size:1.75rem;color:#333}.profile-settings-header .close-btn{background:none;border:none;font-size:1.75rem;cursor:pointer;color:#666;padding:.5rem;line-height:1}.profile-settings-header .close-btn:hover{color:#333}.profile-settings-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a}.profile-error{background:#fee2e2;color:#dc2626;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.profile-success{background:#d1fae5;color:#059669;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.profile-avatar-section{display:flex;flex-direction:column;align-items:center;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e5e7eb}.profile-avatar-container{width:120px;height:120px;margin-bottom:1rem}.profile-avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;border:4px solid var(--primary-color)}.profile-avatar-placeholder{width:100%;height:100%;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700}.profile-change-avatar-btn{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease}.profile-change-avatar-btn:hover:not(:disabled){background:var(--secondary-color)}.profile-change-avatar-btn:disabled{opacity:.6;cursor:not-allowed}.profile-avatar-hint{margin-top:.5rem;font-size:.85rem;color:#666}.profile-readonly-field{background:#f3f4f6!important;color:#6b7280!important;cursor:not-allowed}.profile-field-hint{margin-top:.25rem;font-size:.8rem;color:#9ca3af}.profile-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.profile-cancel-btn{background:#f3f4f6;color:#374151;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease}.profile-cancel-btn:hover:not(:disabled){background:#e5e7eb}.profile-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.profile-save-btn{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease}.profile-save-btn:hover:not(:disabled){background:var(--secondary-color)}.profile-save-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:640px){.profile-settings-page{padding:1rem}.profile-settings-content{padding:1.5rem}.profile-avatar-container{width:100px;height:100px}.profile-avatar-placeholder{font-size:2.5rem}.profile-actions{flex-direction:column}.profile-cancel-btn,.profile-save-btn{width:100%}}.pdf-viewer-container{display:flex;flex-direction:column;height:100%;width:100%;background:#f5f5f5;border-radius:8px;overflow:hidden}.pdf-controls{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #e0e0e0;gap:.5rem;flex-wrap:wrap}.pdf-controls-left,.pdf-controls-center,.pdf-controls-right{display:flex;align-items:center;gap:.25rem}.pdf-control-btn{background:#f0f0f0;border:1px solid #ddd;border-radius:4px;padding:.4rem .75rem;font-size:1rem;cursor:pointer;transition:all .2s ease;color:#333;min-width:36px;display:flex;align-items:center;justify-content:center}.pdf-control-btn:hover:not(:disabled){background:#e0e0e0;border-color:#ccc}.pdf-control-btn:disabled{opacity:.4;cursor:not-allowed}.pdf-zoom-label{min-width:60px;font-size:.85rem}.pdf-page-info{font-size:.9rem;color:#666;padding:0 .5rem;white-space:nowrap}.pdf-download-btn{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.pdf-download-btn:hover:not(:disabled){background:var(--secondary-color);border-color:var(--secondary-color)}.pdf-document-wrapper{flex:1;overflow:auto;display:flex;justify-content:center;padding:1rem;position:relative;-webkit-overflow-scrolling:touch}.pdf-document-wrapper .react-pdf__Document{display:flex;flex-direction:column;align-items:center}.pdf-document-wrapper .react-pdf__Page{box-shadow:0 2px 8px #00000026;background:#fff}.pdf-document-wrapper .react-pdf__Page canvas{max-width:100%;height:auto!important}.pdf-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1rem;color:#666}.pdf-loading-spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:var(--primary-color);border-radius:50%;animation:pdf-spin 1s linear infinite}@keyframes pdf-spin{to{transform:rotate(360deg)}}.pdf-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#666;padding:2rem}.pdf-download-fallback-btn{margin-top:1rem;background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s ease}.pdf-download-fallback-btn:hover{background:var(--secondary-color)}@media(max-width:768px){.pdf-controls{padding:.4rem .5rem}.pdf-control-btn{padding:.35rem .5rem;font-size:.9rem;min-width:32px}.pdf-zoom-label{min-width:50px;font-size:.8rem}.pdf-page-info{font-size:.8rem}.pdf-document-wrapper{padding:.5rem}}@media(max-width:480px){.pdf-controls{justify-content:center}.pdf-controls-left,.pdf-controls-center,.pdf-controls-right{flex:0 0 auto}.pdf-control-btn{padding:.5rem;min-width:40px;min-height:40px}}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}
