:root{--bg-color:#fff;--text-color:#000;--header-bg:#f5f5f5;--concert-border:#e0e0e0;--commercial-bar:#dc3545;--star-empty:#d0d0d0;--star-filled:gold;--hotness-0:#c8c8c8;--hotness-1:#a0a0a0;--hotness-2:#787878;--hotness-3:#505050;--hotness-4:#282828;--hotness-5:#000}[data-theme=dark]{--bg-color:#000;--text-color:#fff;--header-bg:#1a1a1a;--concert-border:#333;--commercial-bar:#dc3545;--star-empty:#4a4a4a;--star-filled:gold;--hotness-0:#404040;--hotness-1:#606060;--hotness-2:#888;--hotness-3:#b0b0b0;--hotness-4:#d8d8d8;--hotness-5:#fff}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-color);margin:0;padding:0;font-family:Special Elite,courier,monospace;transition:background-color .3s,color .3s}header{background-color:var(--header-bg);border-bottom:2px solid var(--concert-border);z-index:1000;justify-content:space-between;align-items:center;padding:1rem;display:flex}header h1,.site-title{margin:0;font-size:1.2rem;font-weight:400}.site-title a{color:var(--text-color);text-decoration:none}.site-title a:hover{text-decoration:underline}.header-controls{align-items:center;gap:.5rem;display:flex}.toggle-button{background-color:var(--concert-border);border:1px solid var(--text-color);color:var(--text-color);cursor:pointer;border-radius:3px;padding:.25rem .5rem;font-family:Special Elite,courier,monospace;font-size:.8rem;transition:background-color .2s,opacity .2s}.toggle-button.active{background-color:var(--text-color);color:var(--bg-color)}.theme-toggle{cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem}.theme-toggle .sun-icon,.theme-toggle .moon-icon{display:none}[data-theme=light] .theme-toggle .moon-icon,[data-theme=dark] .theme-toggle .sun-icon{display:inline}.concert-list{z-index:1;max-width:100%;position:relative}.concert{margin-bottom:2rem;padding-left:.5rem;position:relative;background:0 0!important}.concert.commercial{border-left:4px solid var(--commercial-bar);padding-left:.5rem}.concert.color-red{border-left:8px solid #dc3545;padding-left:.5rem}.concert.color-orange{border-left:8px solid #fd7e14;padding-left:.5rem}.concert.color-green{border-left:8px solid #28a745;padding-left:.5rem}.concert.color-blue{border-left:8px solid #007bff;padding-left:.5rem}.concert.color-darkblue{border-left:8px solid #004085;padding-left:.5rem}.concert.color-babyblue{border-left:8px solid #89cff0;padding-left:.5rem}.concert.color-purple{border-left:8px solid #6f42c1;padding-left:.5rem}.concert.color-brown{border-left:8px solid #8b4513;padding-left:.5rem}.concert.color-pink{border-left:8px solid #ffb6c1;padding-left:.5rem}.concert.color-mixed{border-left:none;padding-left:calc(8px + .5rem);position:relative}.concert.color-mixed:before{content:"";background:linear-gradient(#8b4513 50%,#6f42c1 50%);width:8px;position:absolute;top:0;bottom:0;left:0}.concert-link{display:block;color:inherit!important;background:0 0!important;text-decoration:none!important}.concert-link:link,.concert-link:visited,.concert-link:hover,.concert-link:active,.concert-link:focus{outline:none;background:0 0!important}.concert-link:hover .concert{cursor:pointer}.concert-link *,.concert-link :before,.concert-link :after{background:0 0}.concert-header{justify-content:space-between;align-items:flex-start;margin-bottom:0;padding:0;display:flex;background:0 0!important;border:none!important}.concert-date{color:var(--text-color);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;font-size:1.5rem;font-weight:700;display:flex}.concert-date time{color:var(--text-color)}.recording-icons{align-items:center;gap:.25rem;display:flex}.recording-icon{vertical-align:middle;align-items:center;font-size:1.3rem;line-height:1;display:inline-flex}.favorite-star{cursor:pointer;color:var(--star-empty);background:0 0;border:none;padding:0;font-size:1.5rem;transition:color .2s}.favorite-star.favorited{color:var(--star-filled)}.concert-venue{margin-top:.25rem;margin-bottom:.5rem;padding:0;font-size:1.2rem;line-height:1.4}.setlist{margin-bottom:.5rem}.set{align-items:baseline;margin-bottom:.75rem;display:flex}.set-number{flex-shrink:0;min-width:1.5rem;font-weight:900}.set-songs{word-wrap:break-word;flex:1;line-height:1.4}.concert-notes{opacity:.8;margin-top:.5rem;font-size:.9rem;font-style:italic}.header-search-btn{background:var(--header-bg);border:2px solid var(--concert-border);cursor:pointer;border-radius:4px;padding:.5rem .75rem;font-size:1.3rem;line-height:1;transition:all .2s}.header-search-btn:hover{background:var(--concert-border);opacity:.8;transform:translateY(-1px)}.header-search-btn:active{transform:translateY(0)}.mobile-search-fab{color:#fff;cursor:pointer;z-index:1500;background:#4a9eff;border:none;border-radius:50%;width:60px;height:60px;font-size:1.5rem;transition:all .3s;display:none;position:fixed;bottom:2rem;right:2rem;box-shadow:0 4px 12px #0000004d}.mobile-search-fab:hover{transform:scale(1.1);box-shadow:0 6px 16px #0006}.mobile-search-fab:active{transform:scale(.95)}@media (width<=768px){header h1,.site-title{font-size:1rem}.concert-date{font-size:1.2rem}.concert-venue{font-size:1rem}.mobile-search-fab{display:block}.header-search-btn{display:none}}.loading{text-align:center;padding:2rem;font-size:1.2rem}.quick-filter-wrapper{border-bottom:1px solid var(--concert-border);margin-bottom:1rem;padding:.75rem 0 1rem}.quick-filter-container{background:var(--bg-color);border:2px solid var(--concert-border);border-radius:4px;align-items:center;transition:border-color .2s;display:flex;position:relative}.quick-filter-container:focus-within{border-color:#4a9eff;box-shadow:0 0 0 3px #4a9eff1a}.quick-filter-icon{opacity:.5;pointer-events:none;font-size:1rem;position:absolute;left:.75rem}.quick-filter-input{width:100%;color:var(--text-color);background:0 0;border:none;outline:none;flex:1;padding:.65rem 2rem .65rem 2.5rem;font-family:Special Elite,courier,monospace;font-size:.9rem}.quick-filter-input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.quick-filter-input::-webkit-search-decoration{-webkit-appearance:none;display:none}.quick-filter-input::placeholder{color:var(--text-color);opacity:.4}.quick-filter-clear{background:var(--concert-border);cursor:pointer;opacity:.6;width:1.5rem;height:1.5rem;color:var(--text-color);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.2rem;line-height:1;transition:all .2s;display:flex;position:absolute;right:.5rem}.quick-filter-clear:hover{opacity:1;background:var(--text-color);color:var(--bg-color)}.quick-filter-status{opacity:.7;text-align:center;min-height:1.2rem;margin-top:.5rem;font-size:.85rem}@media (width<=768px){.quick-filter-wrapper{padding:.5rem 0 .75rem}.quick-filter-input{font-size:16px}}.hotness-toggle{background-color:var(--concert-border);border:1px solid var(--text-color);color:var(--text-color);cursor:pointer;border-radius:3px;padding:.25rem .5rem;font-family:Special Elite,courier,monospace;font-size:.8rem;transition:background-color .2s,opacity .2s}.hotness-toggle.active{background-color:var(--text-color);color:var(--bg-color)}body.hotness-mode .song[data-stars="0"]{color:var(--hotness-0)}body.hotness-mode .song[data-stars="1"]{color:var(--hotness-1)}body.hotness-mode .song[data-stars="2"]{color:var(--hotness-2)}body.hotness-mode .song[data-stars="3"]{color:var(--hotness-3)}body.hotness-mode .song[data-stars="4"]{color:var(--hotness-4)}body.hotness-mode .song[data-stars="5"]{color:var(--hotness-5)}
