*{margin:0;padding:0;box-sizing:border-box}:root{--bg-dark: #1e2233;--bg-card: #282d42;--amber: #e8a045;--amber-glow: #f4b860;--amber-dim: #b87a30;--cream: #f5f0e6;--cream-dim: #b8b4a8;--green: #4ade80;--yellow: #facc15;--red: #f87171;--blue: #60a5fa;--purple: #a78bfa}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-dark);color:var(--cream);min-height:100vh;line-height:1.5}header{display:flex;align-items:center;padding:1rem 2rem;gap:1.5rem;border-bottom:1px solid rgba(232,160,69,.2);background:var(--bg-card)}.header-right{margin-left:auto}.header-auth-mobile{display:none}.header-left{display:flex;align-items:center;gap:.75rem}.logo{width:36px;height:36px;border-radius:8px;filter:drop-shadow(0 0 8px rgba(232,160,69,.3))}header h1{font-size:1.2rem;font-weight:600;color:var(--cream)}nav{display:flex;gap:.25rem}nav a{color:var(--cream-dim);text-decoration:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;transition:all .15s}nav a:hover{color:var(--cream);background:#e8a0451a}nav a.active{color:var(--amber);background:#e8a04526}.sign-in-btn{background:var(--amber);color:var(--bg-dark);border:none;padding:.4rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem;transition:background .15s}.sign-in-btn:hover{background:var(--amber-glow)}main{max-width:900px;margin:0 auto;padding:2rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h2{font-size:1.3rem;color:var(--amber);text-transform:uppercase;letter-spacing:.05em}.page-header h2:before{content:"🏮 "}.btn-primary{background:var(--amber);color:var(--bg-dark);border:none;padding:.5rem 1.25rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem;transition:background .15s}.btn-primary:hover{background:var(--amber-glow)}section{margin-bottom:2rem}section h3{font-size:.85rem;color:var(--amber);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.1em}.song-list{display:flex;flex-direction:column;gap:.5rem}.song-card{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-card);border:1px solid rgba(232,160,69,.15);border-radius:8px;transition:all .15s}.song-card:hover{border-color:#e8a04566;background:#e8a0450d}.song-info{display:flex;flex-direction:column;gap:.15rem}.song-title{font-weight:600;color:var(--cream)}.song-artist{font-size:.85rem;color:var(--cream-dim)}.song-meta{display:flex;align-items:center;gap:.75rem}.difficulty{font-size:.75rem;padding:.15rem .5rem;border-radius:4px;text-transform:uppercase;font-weight:600}.difficulty.easy{background:#4ade8026;color:var(--green)}.difficulty.medium{background:#facc1526;color:var(--yellow)}.difficulty.hard{background:#f8717126;color:var(--red)}.badge.live{font-size:.7rem;padding:.15rem .5rem;border-radius:4px;background:#60a5fa26;color:var(--blue);text-transform:uppercase;font-weight:600}.spotify-link{text-decoration:none;display:flex;align-items:center}.spotify-icon{width:20px;height:20px;opacity:.6;transition:opacity .15s}.spotify-link:hover .spotify-icon{opacity:1}.votes{font-size:.8rem;color:var(--cream-dim)}.setlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.setlist-card{padding:1.25rem;background:var(--bg-card);border:1px solid rgba(232,160,69,.15);border-radius:12px;cursor:pointer;transition:all .15s}.setlist-card:hover{border-color:#e8a04566}.setlist-card h3{text-transform:none;letter-spacing:normal;color:var(--cream);margin-bottom:.25rem}.setlist-card .date{color:var(--amber);font-size:.85rem}.setlist-card .meta{color:var(--cream-dim);font-size:.8rem;margin-top:.5rem}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-entry{padding:1rem;background:var(--bg-card);border:1px solid rgba(232,160,69,.15);border-radius:8px}.history-text{display:block;margin-bottom:.35rem}.history-meta{font-size:.8rem;color:var(--cream-dim)}.empty{color:var(--cream-dim);text-align:center;padding:3rem}.practice-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2.5rem}.practice-card{background:var(--bg-card);border-radius:12px;padding:1.5rem;border:1px solid rgba(232,160,69,.2)}.practice-card-label{color:var(--amber);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.practice-card-value{font-size:1.5rem;font-weight:600;color:var(--cream)}.practice-card-sub{color:var(--cream-dim);font-size:.9rem;margin-top:.25rem}.shot-caller-card{cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow .3s}.shot-caller-card.shocked{animation:shock .6s ease-out;box-shadow:0 0 20px #60a5facc,0 0 40px #60a5fa66,inset 0 0 20px #60a5fa4d}.shot-caller-card.shocked .practice-card-value{color:var(--blue)!important;text-shadow:0 0 10px rgba(96,165,250,.8)}@keyframes shock{0%{transform:scale(1) rotate(0)}10%{transform:scale(1.08) rotate(-3deg)}20%{transform:scale(1.08) rotate(3deg)}30%{transform:scale(1.08) rotate(-2deg)}40%{transform:scale(1.08) rotate(2deg)}50%{transform:scale(1.06) rotate(-1.5deg)}60%{transform:scale(1.06) rotate(1.5deg)}75%{transform:scale(1.03) rotate(-.5deg)}to{transform:scale(1) rotate(0)}}.practice-proposals{margin-top:1rem}.practice-proposals h3{color:var(--amber);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}.proposals-placeholder{background:var(--bg-card);border:1px dashed rgba(232,160,69,.3);border-radius:12px;padding:2rem;text-align:center;color:var(--cream-dim);display:flex;flex-direction:column;align-items:center;justify-content:center}.proposals-placeholder p{margin:0}.available-songs-hint{font-size:.85rem;color:var(--amber);opacity:.7}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-card);border:1px solid rgba(232,160,69,.3);border-radius:12px;width:calc(100% - 2rem);max-width:440px;max-height:85vh;overflow-y:auto;padding:1.5rem;z-index:101}.modal-wide{max-width:640px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.modal-header h3,.modal-title{color:var(--amber);font-size:1.1rem;text-transform:none;letter-spacing:normal;font-weight:600;margin:0}.modal-close{background:none;border:none;color:var(--cream-dim);font-size:1.2rem;cursor:pointer;padding:.25rem}.modal-close:hover{color:var(--cream)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.baseui-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem .75rem;background:var(--bg-dark);border:1px solid rgba(232,160,69,.2);border-radius:6px;color:var(--cream);font-size:.9rem;font-family:inherit;cursor:pointer;transition:border-color .15s}.baseui-select-trigger:hover,.baseui-select-trigger[data-popup-open]{border-color:var(--amber)}.baseui-select-icon{color:var(--cream-dim);font-size:.8rem;margin-left:.5rem}.baseui-select-positioner{z-index:200}.baseui-select-popup{background:var(--bg-card);border:1px solid rgba(232,160,69,.3);border-radius:8px;padding:.35rem;min-width:140px;box-shadow:0 8px 24px #0006}.baseui-select-item{padding:.45rem .75rem;border-radius:4px;color:var(--cream);font-size:.9rem;cursor:pointer;transition:background .1s}.baseui-select-item:hover,.baseui-select-item[data-highlighted]{background:#e8a04526}.baseui-select-item[data-selected]{color:var(--amber);font-weight:600}.baseui-checkbox{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid rgba(232,160,69,.4);border-radius:4px;background:var(--bg-dark);cursor:pointer;flex-shrink:0;transition:all .15s}.baseui-checkbox[data-checked]{background:var(--amber);border-color:var(--amber)}.baseui-checkbox-indicator{color:var(--bg-dark);font-size:.75rem;font-weight:700;line-height:1}.form-field{margin-bottom:1rem}.form-field label{display:block;font-size:.8rem;color:var(--amber);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}.form-field input,.form-field select,.form-field textarea{width:100%;padding:.6rem .75rem;background:var(--bg-dark);border:1px solid rgba(232,160,69,.2);border-radius:6px;color:var(--cream);font-size:.9rem;font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--amber)}.form-field select{cursor:pointer}.form-field textarea{resize:vertical}.form-row{display:flex;gap:1rem}.form-row .form-field{flex:1}.btn-secondary{background:transparent;border:1px solid rgba(232,160,69,.3);color:var(--cream-dim);padding:.5rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .15s}.btn-secondary:hover{border-color:var(--amber);color:var(--cream)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-small{padding:.35rem .75rem;font-size:.8rem}.vote-controls{display:flex;gap:.35rem}.vote-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--cream-dim);padding:.2rem .5rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .15s}.vote-btn:hover:not(:disabled){background:#e8a04526}.vote-btn.active.up{background:#4ade8033;border-color:var(--green);color:var(--green)}.vote-btn.active.down{background:#f8717133;border-color:var(--red);color:var(--red)}.vote-btn:disabled{cursor:default;opacity:.6}.song-picker{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem;max-height:300px}.song-picker h4{font-size:.8rem;color:var(--amber);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.song-picker-available,.song-picker-order{overflow-y:auto;max-height:280px;padding-right:.5rem}.picker-group-label{font-size:.7rem;color:var(--cream-dim);text-transform:uppercase;letter-spacing:.05em;margin:.5rem 0 .25rem}.picker-song{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .1s}.picker-song:hover{background:#e8a0451a}.picker-song.selected{background:#e8a04526}.picker-song input[type=checkbox]{accent-color:var(--amber)}.picker-artist{color:var(--cream-dim);font-size:.75rem;margin-left:auto}.order-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;background:#e8a04514;border-radius:4px;margin-bottom:.25rem;font-size:.85rem}.order-num{color:var(--amber);font-weight:600;min-width:1.2rem}.order-title{flex:1}.order-arrows{display:flex;gap:.15rem}.order-arrows button{background:none;border:1px solid rgba(255,255,255,.1);color:var(--cream-dim);border-radius:3px;padding:0 .3rem;cursor:pointer;font-size:.75rem}.order-arrows button:hover:not(:disabled){border-color:var(--amber);color:var(--amber)}.order-arrows button:disabled{opacity:.3;cursor:default}.empty-small{color:var(--cream-dim);font-size:.8rem;text-align:center;padding:1rem}.setlist-date{color:var(--amber);margin-bottom:.5rem}.setlist-notes{color:var(--cream-dim);font-style:italic;margin-bottom:1.5rem}.setlist-songs{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.5rem}.setlist-song-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;background:var(--bg-card);border:1px solid rgba(232,160,69,.15);border-radius:8px}.setlist-position{color:var(--amber);font-weight:700;font-size:1.1rem;min-width:1.5rem;text-align:center}.setlist-meta-info{color:var(--cream-dim);font-size:.8rem}.practice-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem;gap:.5rem}.practice-section-header h3{color:var(--amber);font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin:0;line-height:1}.practice-song-list{display:flex;flex-direction:column;gap:.4rem}.practice-song-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;background:var(--bg-card);border:1px solid rgba(232,160,69,.15);border-radius:8px}.practice-song-num{color:var(--amber);font-weight:700;min-width:1.2rem;text-align:center}.practice-song-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.badge.status-new{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;background:#a78bfa26;color:var(--purple);text-transform:uppercase;font-weight:600}.badge.status-practicing{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;background:#facc1526;color:var(--yellow);text-transform:uppercase;font-weight:600}.badge.status-mastered{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;background:#4ade8026;color:var(--green);text-transform:uppercase;font-weight:600}.propose-new-btn{width:100%;padding:.75rem;background:#a78bfa1a;border:1px dashed rgba(167,139,250,.4);border-radius:8px;color:var(--purple);font-family:inherit;font-size:.9rem;font-weight:500;cursor:pointer;margin-bottom:1rem;transition:all .15s}.propose-new-btn:hover{background:#a78bfa33;border-color:var(--purple)}.remove-btn{background:none;border:none;color:var(--cream-dim);cursor:pointer;font-size:.9rem;padding:.2rem .4rem;border-radius:4px;transition:all .15s;margin-left:auto}.remove-btn:hover{color:var(--red);background:#f8717126}.picker-list{display:flex;flex-direction:column;gap:.35rem;max-height:400px;overflow-y:auto}.picker-song-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:#e8a0450d;border:1px solid rgba(232,160,69,.15);border-radius:6px;color:var(--cream);cursor:pointer;text-align:left;font-family:inherit;font-size:.9rem;transition:all .15s;width:100%}.picker-song-btn:hover{background:#e8a04526;border-color:var(--amber)}.picker-song-btn .song-artist{margin-left:auto}@media(max-width:640px){header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.75rem 1rem}.header-left{gap:.5rem}header{flex-direction:column;align-items:flex-start;gap:.75rem}.header-left{width:100%;justify-content:flex-start}.header-auth-mobile{display:flex;margin-left:auto}.header-right{display:none}nav{width:100%;justify-content:center;gap:0;background:#e8a04514;border-radius:8px;padding:.2rem}nav a{flex:1;text-align:center;padding:.4rem .25rem;font-size:.75rem;white-space:nowrap}main{padding:1rem}.page-header h2{font-size:1.1rem}.song-card{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem}.song-meta{flex-wrap:wrap;gap:.4rem}.song-title{font-size:.95rem}.song-artist{font-size:.8rem}.practice-cards{grid-template-columns:1fr;gap:1rem}.modal{max-height:90vh;padding:1.25rem}.form-row{flex-direction:column;gap:0}.song-picker{grid-template-columns:1fr;max-height:none}.song-picker-available,.song-picker-order{max-height:200px}.vote-controls{margin-top:.25rem}.practice-song-item{flex-wrap:wrap}}
