:root{--bg-color:#111317;--text-blue:#5cb8ff;--box-bg-unselected:#18222ed9;--box-border:#1f3044;--box-bg-selected:#66c0ff;--text-selected:#0a111a;--grid-line:#fffc}.theme-red{--text-blue:#ffd8d8;--box-bg-unselected:#2e1414d9;--box-border:#522;--box-bg-selected:#d44;--text-selected:#fffbe0;--grid-line:#ffd8d8cc}*{box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-blue);margin:0;padding:0;font-family:Inter,-apple-system,sans-serif;transition:color .4s,background-color .4s;overflow:hidden}.app-container{flex-direction:column;height:100vh;padding-bottom:20px;display:flex}.header{flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:8px 12px;display:flex}.header h1{color:var(--text-blue);white-space:nowrap;letter-spacing:-.02em;margin:0;font-size:.85rem;font-weight:800;transition:color .4s}.day-selector{justify-content:center;gap:6px;display:flex}.day-btn{color:var(--text-blue);border:1px solid var(--box-border);cursor:pointer;background:0 0;border-radius:16px;padding:4px 12px;font-size:.75rem;transition:all .3s}.day-btn.active{background:var(--text-blue);color:var(--bg-color);border-color:var(--text-blue);font-weight:600}.wallpaper-wrapper{background-color:var(--bg-color);border-radius:12px;flex-grow:1;width:100%;max-width:600px;min-height:600px;margin:0 auto;position:relative;overflow:hidden}.timetable-container{flex-direction:column;display:flex;position:absolute;inset:0}.stages-header{border-bottom:1px solid var(--box-border);background-color:var(--bg-color);padding:8px 0;transition:border-color .4s;display:flex}.time-axis-header{display:none}.stage-header-item{text-align:center;color:var(--text-blue);text-transform:uppercase;white-space:normal;word-break:break-word;flex:1;justify-content:center;align-items:center;padding:0 2px;font-size:.65rem;font-weight:600;line-height:1.1;transition:color .4s;display:flex}.stages-columns{background-image:linear-gradient(var(--grid-line) 1px, transparent 1px);flex-grow:1;transition:background-image .4s;display:flex;position:relative}.time-axis-column{border:none;flex-shrink:0;width:0;position:relative}.time-label{color:#0000;width:0;position:absolute;transform:translateY(-50%)}.time-label:after{content:"";background-color:var(--grid-line);z-index:0;width:2000px;height:1px;transition:background-color .4s;position:absolute;top:50%;left:100%}.time-label.no-line:after{display:none}.stage-column{border-right:1px solid #ffffff08;flex:1;position:relative}.stage-column:last-child{border-right:none}.artist-box{background-color:var(--box-bg-unselected);border:1px solid var(--box-border);text-align:center;cursor:pointer;z-index:2;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:2px;transition:background-color .15s,box-shadow .15s,border-color .15s,filter .15s;display:flex;position:absolute;left:1px;right:1px;overflow:hidden}.theme-red .artist-box{color:#fffbe0}.artist-box:hover{filter:brightness(1.2);z-index:5}.artist-box.selected{background-color:var(--box-bg-selected);border-color:var(--box-bg-selected);color:var(--text-selected);z-index:10;box-shadow:0 2px 10px #00000080}.artist-content{flex-direction:column;justify-content:center;align-items:center;width:100%;padding:0 12px;display:flex;overflow:hidden}.artist-name{word-break:break-word;white-space:normal;width:100%;margin-bottom:2px;font-size:.5rem;font-weight:700;line-height:1.1}.artist-time{opacity:.7;font-family:monospace;font-size:.45rem}.mini-play-btn{border:none;border-bottom:1px solid var(--box-border);border-left:1px solid var(--box-border);width:22px;height:22px;color:inherit;z-index:20;background:#0006;border-radius:0 4px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:0;right:0}.mini-play-btn.b2b-left{border-left:none;border-right:1px solid var(--box-border);border-radius:4px 0;left:0;right:auto}.mini-play-btn:hover{background:var(--text-blue);color:var(--bg-color);border-color:var(--text-blue);transform:scale(1.1)}.selected .mini-play-btn:hover{background:var(--bg-color);color:var(--text-blue)}.mini-play-btn.playing{background:var(--text-blue);color:var(--bg-color);animation:2s infinite pulse}.selected .mini-play-btn.playing{background:var(--bg-color);color:var(--text-blue)}@keyframes pulse{0%{box-shadow:0 0 #5cb8ff66}70%{box-shadow:0 0 0 6px #5cb8ff00}to{box-shadow:0 0 #5cb8ff00}}.theme-red .mini-play-btn.playing{animation:2s infinite pulseRed}@keyframes pulseRed{0%{box-shadow:0 0 #ff525266}70%{box-shadow:0 0 0 6px #ff525200}to{box-shadow:0 0 #ff525200}}.spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:10px;height:10px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.header-download-btn{background:var(--text-blue);color:var(--bg-color);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s;display:flex}.header-download-btn:hover{transform:scale(1.05)}.theme-red .header-download-btn{background:var(--text-blue);color:#3d0c0c}.b2b-container{flex-direction:column;align-items:center;gap:2px;width:100%;margin-bottom:2px;display:flex}.b2b-item{align-items:center;gap:4px;display:flex}.inline-play-btn{width:16px;height:16px;color:inherit;z-index:20;background:#0000004d;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.inline-play-btn:hover{background:var(--text-blue);color:var(--bg-color);border-color:var(--text-blue);transform:scale(1.1)}.selected .inline-play-btn:hover{background:var(--bg-color);color:var(--text-blue)}.inline-play-btn.playing{background:var(--text-blue);color:var(--bg-color);animation:2s infinite pulse}.selected .inline-play-btn.playing{background:var(--bg-color);color:var(--text-blue)}.theme-red .inline-play-btn.playing{animation:2s infinite pulseRed}.b2b-separator{opacity:.5;font-size:.45rem;font-weight:700}.text-highlight{color:var(--text-blue);text-shadow:0 0 5px var(--text-blue);word-break:break-word;white-space:normal;text-align:center;font-size:.5rem;font-weight:800;line-height:1.1}.selected .text-highlight{color:var(--bg-color);text-shadow:none}
