body,button{font-family:Comfortaa,sans-serif}.icon-button{background:none;border:0;margin:0;padding:0}.modal.react-modal-open{display:block}.modal-content>.close{background:none;border:0;margin:0;padding:0}.wave-letter{display:inline-block;animation:title-wave 2.5s ease-in-out infinite;animation-delay:calc(var(--letter) * -.1s)}@keyframes title-wave{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.error-message{color:#a33}.main-content,.text-center{text-align:center}.info-icon{position:absolute;top:24px;right:24px;font-size:1.5rem;color:#21b799;cursor:pointer;z-index:1001;transition:color .2s}.info-icon:hover{color:#178f6b}.table-icon{position:absolute;top:64px;right:24px;font-size:1.5rem;color:#21b799;cursor:pointer;z-index:1001;transition:color .2s}.table-icon:hover{color:#178f6b}.calendar-icon{position:absolute;top:64px;right:25.5px;font-size:1.5rem;color:#21b799;cursor:pointer;z-index:1001;transition:color .2s}.calendar-icon:hover{color:#178f6b}.modal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;background-color:#00000080}.modal-content{font-size:11pt;background-color:#fff;margin:0;padding:30px;border-radius:8px;width:80%;max-width:600px;max-height:80vh;overflow-y:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}p{line-height:1.5}#highlight{background-color:#a0f8e6}.close{position:absolute;top:10px;right:20px;font-size:28px;font-weight:700;cursor:pointer;color:#aaa;transition:color .2s ease}.close:hover{color:#000}.recent-song-content{max-width:600px;text-align:center}.recent-song-info{margin-bottom:20px}.recent-song-info h2{margin-bottom:10px;color:#333}.recent-song-info p{margin:5px 0;color:#666}#recent-song-player{margin-top:20px}#recent-song-player iframe{max-width:100%;border-radius:8px}.loading{color:#666;font-style:italic;padding:20px}h1{margin-top:40px;font-weight:1200;font-size:40px}button{margin:5px;padding:5px 10px;cursor:pointer}.filter-button{margin:5px;padding:8px 16px;cursor:pointer;border:3px solid #ccc;background-color:#f8f8f8;border-radius:8px;transition:all .2s ease}.filter-button:hover{border:3px solid #21b799;background-color:#afe;color:#ff6b6b}.filter-button.active{background-color:#afe;border-color:#21b799}#filter-buttons{margin:20px auto;width:95%;max-width:1200px}#search-container{margin:-5px auto 20px;width:95%;text-align:center}#search-input{width:100%;max-width:250px;padding:10px 15px;border:3px solid #ccc;border-radius:8px;font-size:14px;font-family:Comfortaa,sans-serif;transition:border-color .2s ease}#search-input:focus{outline:none;border-color:#21b799}#search-input::placeholder{color:#999}#results-counter{margin-top:8px;font-size:14px;color:#666}table{border-collapse:collapse;margin:20px auto 40px;width:95%;max-width:1200px;table-layout:fixed;border:3px solid #ccc}th,td{border:1px solid #ccc;padding:6px 12px;word-wrap:break-word;word-break:break-word;font-size:11pt;transition:background-color .2s ease}tr:hover td{background-color:#d0fff5}th:hover{background-color:#afe}th{cursor:pointer;border-width:1px solid #ccc;border-bottom-width:3px}th:nth-child(1),td:nth-child(1){width:20%;min-width:70px}th:nth-child(2),td:nth-child(2){width:22%;min-width:80px}th:nth-child(3),td:nth-child(3){width:30%}th:nth-child(4),td:nth-child(4){width:40%}th{background-color:#f2f2f2}a{color:#21b799;text-decoration:none;transition:color .2s ease}a:hover{color:#ff6b6b}a:active{color:#aeada7}.link-preview{position:fixed;z-index:3000;background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:10px;max-width:320px;max-height:220px;overflow:hidden}.preview-content{text-align:right}.preview-content img{border-radius:4px;display:block;margin-left:auto;margin-right:0}.preview-fallback{color:#999;font-style:italic;padding:20px}.preview-date-arrows{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:10px}.preview-date-arrows h2{margin:0 8px;font-size:1.3em;font-weight:600}.arrow-btn{background:#f8f8f8;border:3px solid #ccc;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#21b799;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.arrow-btn .fa-caret-left,.arrow-btn .fa-caret-right{font-size:24px}.arrow-btn:disabled{color:#ccc;border-color:#eee;cursor:not-allowed;background:#fafafa}.arrow-btn:hover:not(:disabled){background:#e8e8e8;border-color:#21b799;border:3px solid #21b799;color:#ff6b6b}#calendar-container{max-width:1200px;margin:0 auto;padding:0 20px 20px}#calendar-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0}#calendar-navigation .left-buttons,#calendar-navigation .right-buttons{display:flex;gap:4px}#calendar-navigation h2{margin:0;font-size:1.5em;color:#333}#calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px}.calendar-day-header{text-align:center;font-weight:700;color:#666;padding:10px;font-size:.9em}.calendar-day{min-height:140px;border:1px solid #e0e0e0;border-radius:8px;padding:8px;background:#fff;transition:all .2s ease;position:relative;width:100%;min-width:0;box-sizing:border-box}.calendar-day:hover{border-color:#ccc;box-shadow:0 2px 8px #0000001a}.calendar-day.has-song{border:3px solid #ccc;cursor:pointer}.calendar-day.has-song:hover{border:3px solid #21b799;transform:translateY(-2px)}.calendar-day.most-recent{background:#afe!important}.calendar-day-number{font-size:.9em;color:#666;margin-bottom:4px;font-weight:500}.calendar-song{font-size:.75em;line-height:1.3;color:#333;cursor:pointer;transition:color .2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-song:hover{color:#ff6b6b}.calendar-song:active{color:#aeada7}.calendar-song-artist{font-size:.7em;color:#888;margin-top:2px;font-style:italic}.calendar-song-icon{font-size:.8em;margin-right:4px;color:#666}.calendar-song-thumbnail{width:100%;height:60px;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:4px;margin-bottom:4px;background-color:#f0f0f0;transition:all .2s ease}.calendar-song-thumbnail.thumbnail-loaded{background-color:transparent}.calendar-day.has-song:hover .calendar-song-thumbnail{transform:scale(1.05);box-shadow:0 2px 8px #0003}.calendar-day.empty{border-color:#f0f0f0}.calendar-day.empty:hover{border-color:#e0e0e0}@media(max-width:768px){#calendar-grid{gap:4px}.calendar-day{min-height:120px;padding:4px}.calendar-song-thumbnail{height:45px}.calendar-song{font-size:.65em;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.2;white-space:normal}.calendar-song-artist{font-size:.6em;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.calendar-day-number{font-size:.8em}}@media(max-width:800px){#calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{min-height:100px;padding:2px}.calendar-song-thumbnail{height:35px}.calendar-song{font-size:.6em;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.2;white-space:normal}.calendar-song-artist{font-size:.55em;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.calendar-song-icon{display:none}}
