:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f172a;--bg-soft:#111827;--panel:#111827e6;--panel-strong:#1f2937;--text:#f8fafc;--muted:#9ca3af;--primary-500:#6366f1;--primary-600:#4f46e5;--secondary-700:#7209b7;--secondary-800:#5a078f;--secondary-500:#a855f7;--accent-500:#ec4899;--accent-600:#db2777;--danger:#ef4444;--border:#94a3b82e;--shadow:0 24px 60px #0f172a80;--gradient-primary:linear-gradient(90deg, var(--secondary-700), var(--accent-500));--gradient-primary-hover:linear-gradient(90deg, var(--secondary-800), var(--accent-600))}*{box-sizing:border-box}body{background-color:var(--bg);color:var(--text);background-image:radial-gradient(circle at 10% 10%,#7209b733,#0000 45%),radial-gradient(circle at 85% 0,#ec489933,#0000 45%),radial-gradient(circle at 35% 90%,#6366f133,#0000 55%),linear-gradient(#0b0f1d 0%,#0f172a 100%);background-attachment:fixed;min-height:100vh;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit}.app{flex-direction:column;min-height:100vh;display:flex}header{z-index:10;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a0a0fbf;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:sticky;top:0}header h1{letter-spacing:.2rem;margin:0;font-size:1.5rem}nav{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}nav a,nav button{color:var(--text);cursor:pointer;background:#ffffff0f;border:1px solid #0000;border-radius:999px;margin-left:0;padding:.45rem .9rem;font-size:.95rem;text-decoration:none;transition:all .2s}nav a:focus-visible,nav button:focus-visible,button:focus-visible,.day-selector button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--secondary-500);outline-offset:2px}nav a:hover,nav button:hover{background:#7209b72e;border-color:#7209b766}main{width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 2rem 3rem}.timetable{flex-direction:column;gap:1rem;display:flex}.day-selector{border:1px solid var(--border);box-shadow:var(--shadow);background:#ffffff0f;border-radius:999px;justify-content:center;gap:.5rem;margin:0 auto;padding:.35rem;display:inline-flex}.day-selector button{color:var(--text);letter-spacing:.08rem;text-transform:uppercase;background:0 0;border:none;border-radius:999px;padding:.45rem 1.1rem;font-size:.9rem;transition:all .2s}.day-selector button.active{background:var(--gradient-primary);color:#fff;box-shadow:0 8px 18px #7209b759}.day-selector button.active:hover{background:var(--gradient-primary-hover)}.day-selector button:hover{background:#ffffff1f}.empty-state{text-align:center;color:var(--muted);margin:.25rem 1rem .75rem;font-size:.95rem}.empty-state.error{color:var(--accent-600)}.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;padding:.5rem 0 1rem;display:grid}.timetable-grid{grid-template-columns:80px repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:1.5rem;display:grid}.stages-grid{display:contents}.time-rail{grid-template-rows:auto repeat(var(--slot-count), var(--slot-height));color:var(--muted);text-transform:uppercase;letter-spacing:.08rem;align-items:start;gap:0;font-size:.75rem;display:grid;position:sticky;top:88px}.time-rail-header{justify-content:flex-start;align-items:center;height:48px;display:flex}.time-label{height:var(--slot-height);justify-content:flex-start;align-items:center;display:flex}.stage-column{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:.75rem;padding:1.25rem;animation:.6s both columnIn;display:flex;position:relative;overflow:hidden}.schedule-column{grid-template-rows:auto repeat(var(--slot-count), var(--slot-height));gap:0;display:grid}.stage-column:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 0,#7209b71f,#0000 45%);position:absolute;inset:0}.stage-header{z-index:1;justify-content:space-between;align-items:center;gap:1rem;display:flex}.stage-header h3{letter-spacing:.14rem;margin:0;font-size:1.05rem}.performance-card{z-index:1;background:linear-gradient(140deg,#181a23f5,#14161eeb);border:1px solid #0000;border-radius:16px;align-self:stretch;padding:.6rem .8rem .65rem;transition:transform .2s,box-shadow .2s,border .2s;animation:.5s both cardIn;position:relative}.performance-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px #00000059}.performance-card.active{border:1px solid #ec4899b3;box-shadow:0 0 0 1px #7209b766,0 18px 30px #7209b740}.performance-card.past{box-shadow:none;background:#0f172a8c;border-color:#94a3b826}.performance-card.past:hover{box-shadow:none;transform:none}.performance-card.past .artist-name{color:#8b93a7}.performance-card.past .artist-separator{color:#7a8296}.performance-card.past .time{color:#6b7280}.time{color:var(--muted);letter-spacing:.08rem;text-transform:uppercase;justify-content:space-between;align-items:center;gap:.75rem;font-size:.7rem;display:flex}.time-actions{align-items:center;gap:.5rem;display:inline-flex}.live-badge{background:var(--gradient-primary);color:#fff;border-radius:999px;padding:.15rem .5rem;font-size:.68rem;font-weight:700}.favorite-btn{cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .2s;display:inline-flex}.favorite-btn svg{fill:#fff9;width:16px;height:16px;transition:fill .2s}.favorite-btn:hover{background:#7209b726;border-color:#7209b7b3}.favorite-btn.is-active{background:#7209b733;border-color:#7209b7b3}.favorite-btn.is-active svg{fill:var(--accent-500)}.artist-list{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.artist-list .artist-name{margin-top:0}.artist-separator{color:var(--muted);margin:0 .1rem;font-weight:600}.artist-name{color:var(--text);margin-top:.45rem;font-size:1rem;font-weight:600;line-height:1.1;text-decoration:none;transition:color .2s;display:inline-block}.artist-name:hover{color:var(--accent-500)}.artist-name.is-live{color:var(--secondary-500);text-shadow:0 0 10px #7209b759}.artist-name.is-past{color:var(--muted);text-shadow:none}.admin-sim{border:1px solid var(--border);box-shadow:var(--shadow);background:#ffffff0f;border-radius:16px;flex-direction:column;gap:.75rem;padding:.9rem 1.1rem;display:flex}.admin-toggle{align-items:center;gap:.5rem;font-size:.95rem;display:flex}.admin-controls{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.admin-controls select,.admin-controls input{border:1px solid var(--border);color:var(--text);background:#0c0c12e6;border-radius:10px;padding:.55rem .75rem}.admin-hint{color:var(--muted);font-size:.85rem}.favorites-list{gap:1rem;margin-top:1rem;display:grid}.favorites-header{flex-direction:column;gap:.85rem;display:flex}.favorites-header h2{margin:0}.favorite-item{grid-template-columns:minmax(120px,150px) 1fr;align-items:start;gap:1rem;display:grid}.favorite-time{color:var(--muted);letter-spacing:.08rem;text-transform:uppercase;flex-direction:column;gap:.35rem;font-size:.72rem;display:flex}.favorite-range{color:var(--text);letter-spacing:.03rem;text-transform:none;font-size:.95rem;font-weight:600}.favorite-details{flex-direction:column;gap:.4rem;display:flex}.favorite-meta{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.favorite-stage{color:var(--muted);letter-spacing:.08rem;text-transform:uppercase;font-size:.72rem}.favorite-item .artist-name{margin-top:.1rem;font-size:1.05rem}.auth-container,.artist-detail,.admin{background:var(--panel);border:1px solid var(--border);max-width:640px;box-shadow:var(--shadow);border-radius:20px;margin:0 auto;padding:2rem}.favorites{flex-direction:column;gap:1rem;display:flex}.favorites-grid{grid-template-columns:80px 1fr;align-items:start;gap:1.5rem;display:grid}.planning-column{background:var(--panel);border:1px solid var(--border);grid-template-rows:auto repeat(var(--slot-count), var(--slot-height));box-shadow:var(--shadow);border-radius:20px;gap:0;padding:1.25rem;animation:.6s both columnIn;display:grid;position:relative;overflow:hidden}.planning-column:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 0,#ec48991a,#0000 45%);position:absolute;inset:0}.planning-header{margin-bottom:.25rem}.sim-badge{color:var(--secondary-500);letter-spacing:.04rem;background:#7209b733;border:1px solid #7209b780;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.favorite-stage-tag{color:var(--muted);letter-spacing:.08rem;text-transform:uppercase;font-size:.68rem;font-weight:600}form{flex-direction:column;gap:1rem;display:flex}input{border:1px solid var(--border);color:var(--text);background:#0c0c12e6;border-radius:10px;padding:.65rem .9rem}button{background:var(--gradient-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.65rem .9rem;font-weight:600;transition:transform .2s,box-shadow .2s}button:hover{background:var(--gradient-primary-hover);transform:translateY(-1px);box-shadow:0 10px 22px #7209b759}.mobile-stage-nav{display:none}@media (width<=900px){main{max-width:100%;padding:1.25rem 1.25rem 3rem}.timetable-grid{gap:1rem}.stage-column{padding:1rem}}@media (width<=720px){header{flex-flow:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem}header h1{letter-spacing:.14rem;font-size:1.2rem}nav{flex-wrap:wrap;gap:.35rem}nav a,nav button{padding:.35rem .65rem;font-size:.78rem}main{padding:.9rem .85rem calc(72px + env(safe-area-inset-bottom,0px) + 1rem)}.day-selector{width:100%}.day-selector button{letter-spacing:.04rem;flex:1;padding:.48rem .4rem;font-size:.76rem}.mobile-stage-nav{z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:.45rem .5rem;padding-bottom:max(.45rem, env(safe-area-inset-bottom,0px));background:#090b12f5;justify-content:stretch;gap:0;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-stage-btn{letter-spacing:.08rem;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;min-height:44px;padding:.5rem .25rem;font-size:.65rem;font-weight:700;transition:background .15s,color .15s}.mobile-stage-btn.active{color:var(--secondary-500);background:#7209b738}.mobile-stage-btn:active{opacity:.7}.timetable-grid{--slot-height:48px;grid-template-columns:50px 1fr;gap:.65rem}.mobile-hidden{display:none}.time-rail{width:50px;font-size:.65rem;top:96px}.time-rail-header{height:40px;font-size:.62rem}.time-label{font-size:.62rem}.stage-column{border-radius:14px;padding:.75rem .7rem}.stage-header h3{letter-spacing:.1rem;font-size:.9rem}.stage-header{align-items:center;min-height:40px;display:flex}.performance-card{border-radius:11px;padding:.45rem .6rem;animation:none}.performance-card:hover{transform:none}.artist-name{margin-top:.3rem;font-size:.9rem}.time{gap:.5rem;font-size:.63rem}.live-badge{padding:.1rem .38rem;font-size:.58rem}.favorite-btn{width:30px;min-width:30px;height:30px}.favorite-btn svg{width:14px;height:14px}.admin-sim{padding:.7rem .85rem}.admin-controls{grid-template-columns:1fr}.admin-controls select,.admin-controls input[type=time]{min-height:44px;padding:.5rem .65rem;font-size:1rem}.favorites-grid{--slot-height:48px;grid-template-columns:50px 1fr;gap:.65rem}.planning-column{border-radius:14px;padding:.75rem .7rem}.auth-container,.artist-detail,.admin{border-radius:16px;max-width:100%;padding:1.25rem 1rem}.favorites{gap:.75rem}.favorites-header h2{font-size:1.15rem}.favorite-item{grid-template-columns:1fr}.favorite-time{flex-direction:row;align-items:baseline;gap:.5rem}.favorite-range{font-size:.88rem}}@media (width<=430px){header{padding:.65rem .85rem}header h1{font-size:1.05rem}nav a,nav button{padding:.3rem .55rem;font-size:.73rem}main{padding:.75rem .65rem calc(72px + env(safe-area-inset-bottom,0px) + .75rem)}.day-selector button{padding:.42rem .25rem;font-size:.68rem}.timetable-grid,.favorites-grid{--slot-height:44px;grid-template-columns:44px 1fr;gap:.5rem}.time-rail{width:44px;font-size:.58rem}.mobile-stage-btn{letter-spacing:.05rem;font-size:.58rem}.stage-column,.planning-column{border-radius:12px;padding:.6rem .55rem}.artist-name{font-size:.84rem}.performance-card{padding:.38rem .5rem}input,select,textarea{font-size:1rem!important}button[type=submit]{min-height:48px;font-size:1rem}}@keyframes columnIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
