@import "https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500&family=Inter:wght@400;500&display=swap";:root{--color-bg-primary:#16130e;--color-bg-surface:#1f1b14;--color-bg-elevated:#2a2419;--color-border:#ffffff14;--color-border-strong:#ffffff26;--color-accent:#e8a838;--color-accent-hover:#f0b84a;--color-accent-muted:#e8a83826;--color-text-primary:#f0ece4;--color-text-secondary:#a09880;--color-text-tertiary:#5c5648;--color-text-on-accent:#16130e;--color-danger:#c0392b;--color-danger-muted:#c0392b26;--color-success:#2e7d5e;--color-success-muted:#2e7d5e26;--font-serif:"Oswald", system-ui, sans-serif;--font-sans:"Inter", system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;font-size:16px}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);min-height:100vh;margin:0;line-height:1.6}h1,h2,h3{font-family:var(--font-serif);letter-spacing:.02em;color:var(--color-text-primary);margin-top:0;font-weight:400;line-height:1.2}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4,h5,h6{font-family:var(--font-sans);color:var(--color-text-primary);margin-top:0;font-weight:500}p{margin-top:0;margin-bottom:var(--space-4);color:var(--color-text-primary)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}.label-text{margin:0 0 .35rem;font-size:.875rem}.muted{color:var(--color-text-secondary);font-size:.875rem}.fine-print{color:var(--color-text-secondary);font-size:.75rem}.error{color:var(--color-danger)}.success{color:var(--color-success);font-size:var(--text-sm);margin-bottom:var(--space-4)}.link-button{color:var(--color-accent);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--color-accent-hover)}.info{color:var(--color-success)}.step-indicator{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.75rem}.centered{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-container{min-height:calc(100vh - 56px);padding:var(--space-8) var(--space-4);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:420px}.auth-card form .btn-primary,.auth-card form .btn-secondary{margin-top:var(--space-4)}.row{gap:.5rem;display:flex}.row>*{flex:1}.card{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);flex-direction:column;gap:1rem;width:100%;max-width:420px;display:flex;box-shadow:0 1px 4px #00000014}.card:hover{border-color:var(--color-border-strong)}.card.onboarding{max-width:480px}.card h1{margin:0;font-size:1.5rem}.card label{flex-direction:column;gap:.35rem;font-size:.875rem;display:flex}.card input[type=text],.card input[type=email],.card input[type=password]{border:1px solid var(--color-border-strong);border-radius:4px;padding:.5rem .75rem;font-size:1rem}.card input[type=text]:focus,.card input[type=email]:focus,.card input[type=password]:focus{outline:2px solid var(--color-accent);outline-offset:-1px;border-color:#0000}.password-strength{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.password-strength-bar{gap:var(--space-1);flex:1;min-width:0;display:flex}.password-strength-segment{background-color:var(--color-border);border-radius:9999px;flex:1;height:4px;transition:background-color .2s}.password-strength-label{font-size:var(--text-xs);flex-shrink:0;font-weight:500;transition:color .2s}.password-strength--weak .password-strength-segment:first-child{background-color:var(--color-danger)}.password-strength--weak .password-strength-label{color:var(--color-danger)}.password-strength--fair .password-strength-segment:nth-child(-n+2){background-color:var(--color-accent)}.password-strength--fair .password-strength-label{color:var(--color-accent)}.password-strength--strong .password-strength-segment{background-color:#4caf82}.password-strength--strong .password-strength-label{color:#4caf82}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card label.remember-me{justify-content:flex-start;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:row}.remember-me-box{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:0 0;flex-shrink:0;width:16px;height:16px;transition:border-color .15s,background-color .15s;position:relative}.remember-me-box:after{content:"";border:solid var(--color-accent);border-width:0 2px 2px 0;width:5px;height:9px;transition:transform .15s;position:absolute;top:1px;left:4px;transform:rotate(45deg)scale(0)}.remember-me input:checked+.remember-me-box{border-color:var(--color-accent);background:var(--color-accent-muted)}.remember-me input:checked+.remember-me-box:after{transform:rotate(45deg)scale(1)}.remember-me input:focus-visible+.remember-me-box{outline:2px solid var(--color-accent);outline-offset:2px}.card input[type=range]{width:100%}.card p{margin:0;font-size:.95rem}.button-link,.button-link.secondary,.btn-primary,.btn-secondary{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-sm);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border-style:solid;border-width:1px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.button-link,.btn-primary{background-color:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.button-link:hover,.btn-primary:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-text-on-accent)}.button-link.secondary,.btn-secondary{color:var(--color-text-secondary);border-color:var(--color-border-strong);background:0 0}.button-link.secondary:hover,.btn-secondary:hover:not(:disabled){background:var(--color-bg-elevated);border-color:var(--color-border-strong);color:var(--color-accent)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.4;cursor:not-allowed}input,textarea,select{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);outline:none;width:100%;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--color-accent)}input::placeholder,textarea::placeholder{color:var(--color-text-tertiary)}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border-strong);cursor:pointer;border-radius:999px;padding:.35rem .75rem;font-size:.875rem}.chip.selected{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.artist-search{flex-direction:column;gap:.5rem;display:flex}.artist-search-input{position:relative}.artist-search input{border:1px solid var(--color-border-strong);border-radius:4px;width:100%;padding:.5rem 2.25rem .5rem .75rem;font-size:1rem}.artist-search .spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;width:1rem;height:1rem;animation:.7s linear infinite spin;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.artist-search-cap-hint{font-size:var(--text-sm);color:var(--color-accent);margin:calc(-1 * var(--space-2)) 0 var(--space-2) 0;padding:0}.onboarding-artist-counter{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-left:var(--space-2)}@keyframes spin{to{transform:translateY(-50%)rotate(360deg)}}.artist-selected{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.artist-selected li{background:var(--color-accent);color:var(--color-text-on-accent);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.875rem;display:inline-flex}.artist-selected button{appearance:none;color:var(--color-text-on-accent);cursor:pointer;box-shadow:none;background:0 0;border:none;outline:none;justify-content:center;align-items:center;min-width:1.25rem;min-height:1.25rem;margin:0;padding:0;font-family:inherit;font-size:1rem;line-height:1;display:inline-flex}.artist-selected button:hover{opacity:.85}.artist-selected button:focus-visible{outline:2px solid var(--color-text-on-accent);outline-offset:1px}.artist-results{border:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent;border-radius:4px;max-height:220px;margin:0;padding:0;list-style:none;overflow-y:auto}.artist-results::-webkit-scrollbar{width:4px}.artist-results::-webkit-scrollbar-track{background:0 0}.artist-results::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.artist-results li+li{border-top:1px solid var(--color-border)}.artist-results button{appearance:none;background:var(--color-bg-elevated);width:100%;color:var(--color-text-primary);text-align:left;cursor:pointer;box-shadow:none;border:none;border-radius:0;outline:none;justify-content:space-between;align-items:center;padding:.6rem .75rem;font-family:inherit;font-size:.95rem;transition:background-color .15s;display:flex}.artist-results button:hover:not(:disabled){background:var(--color-bg-surface)}.artist-results button.selected,.artist-results button.selected:hover:not(:disabled){background:var(--color-accent-muted)}.artist-results button:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.artist-results button:disabled{opacity:.55;cursor:not-allowed}.artist-results button .action{color:var(--color-accent);font-size:.8rem}.artist-results button:disabled .action{color:var(--color-text-secondary)}.artists-card{max-width:520px}.artists-header{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.artists-header h1{margin:0}.tracked-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tracked-list li{border:1px solid var(--color-border);background:var(--color-bg-elevated);border-radius:6px;align-items:center;gap:.75rem;padding:.5rem;display:flex}.tracked-list img,.tracked-thumb-placeholder{object-fit:cover;background:var(--color-bg-surface);border-radius:50%;flex-shrink:0;width:42px;height:42px}.tracked-name{flex-direction:column;flex:1;gap:.15rem;min-width:0;font-size:.95rem;display:flex}.tracked-row-error{font-size:.75rem;line-height:1.3}.tracked-list button{flex-shrink:0;padding:.4rem .75rem;font-size:.875rem}.concerts-card,.concert-detail-card{max-width:720px}.concerts-toolbar{flex-direction:column;gap:.35rem;margin-bottom:0;display:flex}.concerts-toolbar-row{flex-wrap:wrap;align-items:center;gap:.35rem 1rem;width:100%;display:flex}.concerts-sort-toggle{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.concerts-sort-btn.is-active{border-color:var(--color-accent);color:var(--color-accent)}.concerts-sort-btn:disabled{opacity:.45;cursor:not-allowed}.concerts-sort-hint,.concerts-sort-status{margin:var(--space-4) 0 var(--space-1)}.concerts-list-intro{margin-top:0}.card label.concerts-include-past{cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:row;justify-content:flex-start;align-items:center;gap:.5rem;width:auto;margin:0 0 0 auto;padding:0;line-height:1.25}.concerts-include-past-box{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;width:1rem;height:1rem;transition:border-color .15s,background-color .15s;display:inline-flex}.concerts-include-past-box:after{content:"";border:solid var(--color-accent);border-width:0 1.5px 1.5px 0;width:4px;height:7px;transition:transform .15s;transform:rotate(45deg)scale(0)}.card label.concerts-include-past input:checked+.concerts-include-past-box{border-color:var(--color-accent);background:var(--color-accent-muted)}.card label.concerts-include-past input:checked+.concerts-include-past-box:after{transform:rotate(45deg)scale(1)}.card label.concerts-include-past input:focus-visible+.concerts-include-past-box{outline:2px solid var(--color-accent);outline-offset:2px}@media (width<=767px){.concerts-toolbar-row{align-items:stretch;gap:var(--space-3);flex-direction:column}.concerts-sort-toggle{grid-template-columns:1fr 1fr;gap:.5rem;width:min(100%,18rem);margin-inline:auto;display:grid}.concerts-sort-btn{justify-content:center;width:100%}.card label.concerts-include-past{justify-content:center;align-self:center;margin-left:0}.concerts-sort-hint,.concerts-sort-status{text-align:center}}.concerts-search-wrapper{margin-bottom:var(--space-4);position:relative}.concerts-search-input{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;padding:var(--space-3) 2.5rem var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);box-sizing:border-box;outline:none;transition:border-color .15s}.concerts-search-input:focus,.concerts-search-wrapper.is-searching .concerts-search-input{border-color:var(--color-accent)}.concerts-list--pending{opacity:.55;pointer-events:none;transition:opacity .15s}.concerts-search-input::placeholder{color:var(--color-text-tertiary)}.concerts-search-spinner{right:var(--space-4);border:2px solid var(--color-border);border-top-color:var(--color-accent);pointer-events:none;border-radius:50%;width:14px;height:14px;margin-top:-7px;animation:.7s linear infinite briefing-spin;position:absolute;top:50%}.concerts-search-clear{right:var(--space-4);color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-sm);background:0 0;border:none;padding:0;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.concerts-search-clear:hover{color:var(--color-text-primary)}.concerts-search-status{padding:var(--space-6) 0;text-align:center}.concerts-empty-search{font-size:var(--text-base);color:var(--color-text-tertiary);padding:var(--space-6) 0;text-align:center}.concerts-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.concert-row{border:1px solid var(--color-border);background:var(--color-bg-elevated);color:inherit;border-radius:6px;justify-content:space-between;align-items:center;gap:.65rem;padding:.55rem .65rem;text-decoration:none;display:flex}.concert-row:hover{border-color:var(--color-accent)}.concert-row-avatar{object-fit:cover;background:var(--color-bg-surface);border-radius:50%;flex-shrink:0;width:36px;height:36px}.concert-row-avatar-fallback{letter-spacing:.02em;color:var(--color-text-secondary);background:#1f1b14;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.concert-row-main{flex-direction:column;flex:1;gap:.12rem;min-width:0;display:flex}.concert-row-title-line{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;min-width:0;display:flex}.concert-row-main strong{font-size:.95rem}.concert-row-venue{font-size:.8rem;line-height:1.35}.concert-row-pill{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:.12rem .4rem;font-size:.65rem;font-weight:600}.concert-row-pill-sale{color:var(--color-accent);background:#e8a8382e}.concert-row-date{color:var(--color-text-secondary);text-align:right;flex-shrink:0;max-width:7.5rem;font-size:.8rem;line-height:1.3}.concert-hero{border-radius:var(--radius-lg);min-height:220px;margin-bottom:var(--space-4);background-color:#1f1b14;background-position:50% 35%;background-size:cover;align-items:flex-end;display:flex;position:relative;overflow:hidden}.concert-hero-content{padding:var(--space-6);width:100%}.concert-hero-artist{font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-primary);margin-bottom:var(--space-1);font-weight:400}.concert-hero-venue{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.concert-hero-date{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:0}.concert-hero-tonight-badge{margin-right:var(--space-2);letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;color:var(--color-accent);background:var(--color-accent-muted);border:1px solid #e8a83859;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600;line-height:1.2;display:inline-block}.concert-facts{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.concert-fact{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:140px;padding:var(--space-3) var(--space-4);gap:var(--space-1);flex-direction:column;flex:1;display:flex}.concert-fact-label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-weight:500}.concert-fact-value{font-size:var(--text-sm);color:var(--color-text-primary)}.concert-cta{text-align:center;width:100%;margin-bottom:var(--space-6);display:block}.centered.concert-detail-layout{width:100vw;max-width:100vw;min-height:auto;padding:0 var(--space-6);box-sizing:border-box;justify-content:flex-start;align-items:flex-start;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}@media (width<=600px){.centered.concert-detail-layout{padding:0 var(--space-4)}}.concert-detail-dashboard{width:100%;max-width:none}.concert-dashboard-hero.concert-hero{border-radius:var(--radius-lg);background-color:#1f1b14;background-position:50% 28%;background-size:cover;min-height:336px;margin-bottom:0}.concert-dashboard-hero-content{justify-content:flex-end;gap:var(--space-1);flex-direction:column;display:flex}.concert-dashboard-tour{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);margin:0;font-weight:500}.concert-dashboard-artist.concert-hero-artist{font-family:var(--font-serif);font-size:var(--text-3xl);margin-bottom:0}.concert-dashboard-info-urgency{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-accent-muted);border-left:2px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;line-height:1.5;display:flex}.concert-dashboard-info-urgency p{flex:1;margin:0}.concert-dashboard-info-urgency-dismiss{font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;text-decoration:underline}.concert-dashboard-info-urgency-dismiss:hover{color:var(--color-text-primary)}.concert-dashboard-info-urgency-presale{margin-top:var(--space-4)}.concert-dashboard-info-urgency+.concert-dashboard-info-urgency-presale{margin-top:var(--space-3)}.concert-dashboard-sidebar--mobile{margin-top:var(--space-4);display:none}.concert-dashboard-tabs{gap:var(--space-1);margin-top:var(--space-4);border-bottom:1px solid var(--color-border);z-index:50;background:var(--color-bg-primary);padding-bottom:0;display:flex;position:sticky;top:56px}.concert-dashboard-tab{padding:var(--space-3) var(--space-4);font-family:inherit;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin:0 0 -1px;font-weight:500}.concert-dashboard-tab:hover{color:var(--color-text-primary)}.concert-dashboard-tab.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.concert-dashboard-body{gap:var(--space-6);margin-top:var(--space-4);grid-template-columns:minmax(0,1fr) 330px;align-items:start;display:grid}.concert-dashboard-main{overflow-anchor:none;min-width:0}.concert-dashboard-tabpanels{overflow-anchor:none;display:grid}.concert-dashboard-tabpanel{grid-area:1/1;min-width:0}.concert-dashboard-tabpanel.is-inactive{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.concert-dashboard-setlist-empty{margin:var(--space-6) 0;line-height:1.6}.venue-tab{gap:var(--space-6);margin:var(--space-4) 0 var(--space-6);flex-direction:column;display:flex}.venue-overview-card{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.venue-overview-name{margin:0 0 var(--space-1);font-size:var(--text-lg);font-weight:600}.venue-overview-location{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}.venue-overview-directions{font-size:var(--text-sm);font-weight:500}.venue-history-section{min-height:4rem}.venue-history-heading{margin:0 0 var(--space-4);font-size:var(--text-base);font-weight:600}.venue-history-list{margin:0;padding:0;list-style:none}.venue-history-row{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.venue-history-row:last-child{border-bottom:none}.venue-history-artist{margin:0;font-weight:600}.venue-history-event-name{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.venue-history-date{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.venue-history-empty{margin:0;line-height:1.6}.venue-history-error{margin:0}.venue-history-loading{margin:var(--space-4) 0}.setlist-loading{margin:var(--space-6) 0}.setlist-panel{margin:var(--space-4) 0 var(--space-6)}.setlist-reference{margin:0 0 var(--space-3);color:var(--color-text-tertiary);font-size:13px}.setlist-age-note{margin:0 0 var(--space-3);color:var(--color-text-tertiary);font-size:13px;font-style:italic}.setlist-tour-eyebrow{margin:0 0 var(--space-4);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);font-size:11px;font-weight:600}.setlist-songs{margin:0 0 var(--space-4);padding:0;list-style:none}.setlist-song{gap:var(--space-2);align-items:flex-start;margin-bottom:.65rem;line-height:1.55;display:flex}.setlist-song-num{min-width:1.75rem;color:var(--color-text-tertiary);flex-shrink:0;font-size:15px}.setlist-song-body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.setlist-song-name{font-family:var(--font-sans);color:var(--color-text-primary);font-size:15px}.setlist-song-info{color:var(--color-text-tertiary);font-size:13px;font-style:italic}.setlist-encore-label{margin:var(--space-5) 0 var(--space-3);color:var(--color-text-tertiary);text-align:center;font-size:13px}.setlist-footer{margin:var(--space-4) 0 0;color:var(--color-text-tertiary);font-size:13px}.concert-dashboard-sidebar--desktop{gap:var(--space-4);flex-direction:column;display:flex;position:sticky;top:calc(56px + 3.25rem)}.concert-dashboard-txn-urgency:empty{display:none}.concert-dashboard-txn-urgency:not(:empty){padding:var(--space-3);font-size:var(--text-sm);background:var(--color-accent-muted);border-radius:var(--radius-sm);border:1px solid #e8a83859}.concert-dashboard-sidebar .concert-dashboard-cta.concert-cta{margin-bottom:0}.concert-dashboard-key-facts{gap:var(--space-3);flex-direction:column;margin:0;display:flex}.concert-dashboard-key-fact{margin:0}.concert-dashboard-key-fact dt{margin:0 0 var(--space-1);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-weight:500}.concert-dashboard-key-fact dd{font-size:var(--text-sm);color:var(--color-text-primary);margin:0;line-height:1.4}.concert-dashboard-key-fact dd .concert-hero-tonight-badge{margin-right:var(--space-2)}.concert-dashboard-attend{margin-top:var(--space-2)}.concert-dashboard-attend .concert-attend-action.btn-secondary{justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);font-size:var(--text-xs);white-space:normal;border-radius:var(--radius-sm);line-height:1.3}.concert-dashboard-attend .concert-attend-action.btn-secondary.is-attended{color:var(--color-accent);background:var(--color-accent-muted);border-color:color-mix(in srgb, var(--color-accent) 40%, var(--color-border-strong))}.concert-dashboard-attend .concert-attend-action.btn-secondary.is-attended:hover:not(:disabled){color:var(--color-accent-hover);background:var(--color-accent-muted);border-color:color-mix(in srgb, var(--color-accent) 55%, var(--color-border-strong))}.concert-dashboard-attend .concert-attend-action.is-loading,.concert-dashboard-attend .concert-attend-action.is-saving{opacity:.45;pointer-events:none}.concert-attend-icon{opacity:.85;flex-shrink:0;width:14px;height:14px}.concert-dashboard-attend .concert-attend-action.is-attended .concert-attend-icon{opacity:1}.concert-attend-action-label{margin:0}.concert-attend-prior-count{margin:var(--space-1) 0 0;padding-left:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.4}.concert-attend-action-error{margin:var(--space-2) 0 0;padding-left:var(--space-4);font-size:var(--text-sm);color:var(--color-danger)}.concert-dashboard-notify .concert-notify-toggle{gap:var(--space-3);width:auto;max-width:100%}.concert-dashboard-notify .concert-notify-toggle-error{margin-top:var(--space-2)}.concert-dashboard-integrations{padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:center}.concert-dashboard-integrations p{font-size:var(--text-sm);margin:0}.concert-dashboard-mobile-facts{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:1.4}.concert-dashboard-mobile-facts .concert-hero-tonight-badge{margin-right:var(--space-2)}.concert-detail-dashboard .briefing-section{margin-top:0}@media (width<=767px){.concert-dashboard-body{grid-template-columns:1fr}.concert-dashboard-sidebar--desktop{display:none}.concert-dashboard-sidebar--mobile{gap:var(--space-3);flex-direction:column;display:flex}.concert-dashboard-sidebar--mobile .concert-dashboard-cta{width:100%}.concert-dashboard-sidebar--mobile .concert-dashboard-notify{flex-direction:column;align-items:center;display:flex}.concert-dashboard-sidebar--mobile .concert-notify-toggle-error{text-align:center}}@media (width>=768px){.concert-dashboard-sidebar--mobile{display:none}}.briefing-stale-notice{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-accent-muted);border-left:2px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0;line-height:1.5}.briefing-stale-notice p{margin:0}.presale-block{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg-surface);border-left:2px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.presale-eyebrow{margin:0 0 var(--space-2);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);font-weight:500}.presale-datetime{font-size:var(--text-lg);color:var(--color-text-primary);margin:0;font-weight:500;line-height:1.35}.presale-countdown{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-accent)}.presale-enrichment-label{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.presale-enrichment-text{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.5}.presale-static-line{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5}.concert-notify-toggle{align-items:center;gap:var(--space-3);width:fit-content;max-width:100%;margin:0;padding:0;display:inline-flex}.concert-notify-toggle.is-loading,.concert-notify-toggle.is-saving{opacity:.4;pointer-events:none}.concert-notify-toggle-label{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:20px}.concert-notify-toggle-error{margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--text-sm);color:var(--color-danger)}.concert-notify-switch{background:var(--color-border);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:36px;height:20px;padding:0;transition:background .2s;position:relative}.concert-notify-switch:disabled{cursor:not-allowed}.concert-notify-switch[aria-checked=true]{background:var(--color-accent)}.concert-notify-switch-thumb{background:var(--color-bg-elevated);border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px}.concert-notify-switch[aria-checked=true] .concert-notify-switch-thumb{transform:translate(16px)}.briefing-section{flex-direction:column;gap:.75rem;margin-top:.5rem;display:flex}.briefing-refresh{flex:none;padding:.35rem .75rem;font-size:.8rem}.briefing-refresh.is-stale{color:var(--color-accent);background:var(--color-accent-muted);border-color:var(--color-accent)}.briefing-refresh.is-stale:hover:not(:disabled){color:var(--color-accent-hover);background:var(--color-accent-muted);border-color:var(--color-accent-hover)}.briefing-loading{border:1px dashed var(--color-border-strong);background:var(--color-bg-surface);border-radius:6px;align-items:center;gap:.85rem;padding:1rem;display:flex}.briefing-loading p{margin:0}.briefing-spinner{border:2px solid var(--color-border-strong);border-top-color:var(--color-text-secondary);border-radius:50%;flex:none;width:1.1rem;height:1.1rem;animation:.9s linear infinite briefing-spin;display:inline-block}@keyframes briefing-spin{to{transform:rotate(360deg)}}.briefing-ratelimit{margin-top:.5rem;font-size:.85rem}.briefing-refresh-toolbar{justify-content:flex-end;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.briefing-refresh-quota-note{font-size:var(--text-xs);text-align:right;white-space:nowrap;margin:0;line-height:1.4}.briefing-refresh-toolbar .briefing-refresh{flex-shrink:0}.briefing-refresh.is-refreshing{align-items:center;gap:var(--space-2);display:inline-flex}.briefing-sections.is-refreshing{opacity:.55;pointer-events:none;transition:opacity .2s}.briefing-sections{gap:var(--space-4);margin-top:var(--space-4);flex-direction:column;scroll-margin-top:6.5rem;display:flex}.briefing-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}.briefing-card-urgent{border-left:3px solid var(--color-accent)}.briefing-card-title{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-4);font-weight:500}.briefing-card-content{font-size:var(--text-base);color:var(--color-text-primary);line-height:1.65}.briefing-card-content hr{display:none}.briefing-card-content p{margin-bottom:var(--space-3)}.briefing-card-content p:last-child{margin-bottom:0}.briefing-card-content ul,.briefing-card-content ol{padding-left:var(--space-6);margin-bottom:var(--space-3)}.briefing-card-content li{margin-bottom:var(--space-2)}.briefing-card-content a{color:var(--color-accent);text-decoration:none}.briefing-card-content a:hover{color:var(--color-accent-hover)}.briefing-blank-state{width:100%;padding:var(--space-4) 0 var(--space-6);flex-direction:column;align-items:stretch;display:flex}.briefing-blank-headline{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:var(--text-lg);color:var(--color-text-primary);font-weight:600;line-height:1.3}.briefing-blank-description{margin:0 0 var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);max-width:40rem;line-height:1.65}.briefing-ghost-preview{width:100%;max-height:13.5rem;margin-bottom:var(--space-5);pointer-events:none;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0% 52%,#0000 100%);mask-image:linear-gradient(#000 0% 52%,#0000 100%)}.briefing-ghost-cards{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.briefing-ghost-card{opacity:.65}.briefing-ghost-title{margin-bottom:var(--space-4);font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);font-weight:500}.briefing-ghost-line{height:.65rem;margin-bottom:var(--space-3);border-radius:var(--radius-sm);background:var(--color-border)}.briefing-ghost-line--medium{width:88%}.briefing-ghost-line--short{width:62%;margin-bottom:0}.briefing-generate-btn{margin-bottom:var(--space-4);align-self:center}.briefing-blank-state .briefing-quota-indicator,.briefing-blank-state .upgrade-prompt{align-self:center;width:100%;max-width:40rem}.briefing-quota-indicator{font-size:var(--text-xs);text-align:center;margin:0}.briefing-generating{gap:var(--space-5);flex-direction:column;min-height:22rem;display:flex}.briefing-generating-status{margin:0}.briefing-skeleton-cards{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.briefing-skeleton-card{padding:var(--space-6);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);position:relative;overflow:hidden}.briefing-skeleton-card:after{content:"";background:linear-gradient(105deg, transparent 0%, transparent 40%, color-mix(in srgb, var(--color-text-primary) 8%, transparent) 50%, transparent 60%, transparent 100%);pointer-events:none;background-size:200% 100%;animation:1.5s ease-in-out infinite briefing-skeleton-sweep;position:absolute;inset:0}.briefing-skeleton-card:nth-child(2):after{animation-delay:.25s}.briefing-skeleton-card:nth-child(3):after{animation-delay:.5s}.briefing-skeleton-title{z-index:1;width:5.5rem;height:.55rem;margin-bottom:var(--space-4);border-radius:var(--radius-sm);background:var(--color-border);position:relative}.briefing-skeleton-line{z-index:1;height:.65rem;margin-bottom:var(--space-3);border-radius:var(--radius-sm);background:var(--color-border);position:relative}.briefing-skeleton-line--medium{width:88%}.briefing-skeleton-line--short{width:62%;margin-bottom:0}@keyframes briefing-skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.briefing-loading-copy p{margin:0}.briefing-loading-copy .muted{margin-top:var(--space-1)}.briefing-reminder-inline{margin-top:var(--space-6);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-elevated);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.briefing-reminder-inline-text{font-size:var(--text-sm);color:var(--color-text-secondary);flex:1;min-width:12rem;margin:0}.briefing-reminder-inline-actions{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.briefing-reminder-sticky{z-index:50;background:var(--color-bg-surface);border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);animation:.3s cookie-slide-up;display:flex;position:fixed;bottom:0;left:0;right:0}.briefing-reminder-sticky-text{font-size:var(--text-sm);color:var(--color-text-secondary);flex:1}.briefing-reminder-sticky-cta{font-size:var(--text-sm);color:var(--color-accent);white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.briefing-reminder-sticky-dismiss{color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-base);background:0 0;border:none;flex-shrink:0;padding:0}@media (width<=767px){.briefing-blank-state{padding:var(--space-3) 0 var(--space-5)}.briefing-generate-btn{text-align:center;align-self:center;width:100%;max-width:100%}.briefing-reminder-inline{display:none}}@media (width>=768px){.briefing-reminder-sticky{display:none}}.briefing-card-content strong{color:var(--color-text-primary);font-weight:600}.upgrade-card{max-width:460px}.upgrade-pitch{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:6px;flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.upgrade-price{margin:0;font-size:1.1rem}.upgrade-list{flex-direction:column;gap:.25rem;margin:0;padding-left:1.2rem;font-size:.9rem;display:flex}.upgrade-prompt{background:var(--color-accent-muted);border:1px solid #fde68a;border-radius:6px;flex-direction:column;gap:.6rem;padding:1rem;display:flex}.upgrade-prompt.compact{margin-top:.75rem;padding:.75rem 1rem;font-size:.9rem}.upgrade-prompt h3{margin:0;font-size:1rem}.upgrade-prompt p{margin:0;font-size:.9rem}.upgrade-prompt .row{margin-top:.25rem}.billing-card{max-width:460px}.billing-success{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.billing-success-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-muted);border:1px solid #e8a83859;border-radius:999px;padding:4px 12px;font-size:11px;font-weight:600;line-height:1.2;display:inline-block;transform:translate(-4px)}.billing-success-headline{margin:var(--space-2) 0 0;font-family:var(--font-serif);font-size:var(--text-3xl);color:var(--color-text-primary);font-weight:400;line-height:1.1}.billing-success-subline{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-accent);margin:0;font-weight:400}.billing-success-unlock{margin:var(--space-2) 0 var(--space-4);font-size:var(--text-base);color:var(--color-text-secondary);max-width:28ch}.billing-success-cta{width:100%}.billing-success-footer{text-align:center;font-size:var(--text-sm);margin:0}.billing-success-footer a{color:var(--color-text-tertiary);text-decoration:none}.billing-success-footer a:hover{color:var(--color-text-secondary)}.plan-section{border-top:1px solid var(--color-border);flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.plan-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.plan-badge{letter-spacing:.02em;border-radius:999px;padding:.15rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.plan-badge.free{background:var(--color-bg-surface);color:var(--color-text-primary)}.plan-badge.pro{background:var(--color-success-muted);color:var(--color-success)}.preferences-plan-section{gap:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;padding-top:.75rem;display:flex}.preferences-plan-header{justify-content:space-between;align-items:center;display:flex}.preferences-plan-label{font-size:var(--text-base);color:var(--color-text-primary);font-weight:600}.preferences-plan-meta{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.preferences-plan-pro-tagline{color:var(--color-text-primary);line-height:1.5}.preferences-footer{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.preferences-footer-cancel{flex:auto;min-width:0}.preferences-footer-dashboard{font-size:var(--text-sm);white-space:nowrap;flex:none;margin-left:auto}button.preferences-cancel-btn{appearance:none;padding:var(--space-2) var(--space-4);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-danger);background-color:var(--color-danger-muted);border:1px solid var(--color-danger);border-radius:var(--radius-md);cursor:pointer;text-align:center;white-space:nowrap;justify-content:center;align-items:center;width:fit-content;margin:0;font-weight:500;line-height:1;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}button.preferences-cancel-btn:hover:not(:disabled){color:#f0ece4;background-color:var(--color-danger);border-color:var(--color-danger);text-decoration:none}button.preferences-cancel-btn:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}button.preferences-cancel-btn:disabled{opacity:.4;cursor:not-allowed}.preferences-cancel-confirm{gap:var(--space-3);flex-direction:column;display:flex}.preferences-cancel-warning{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.preferences-cancel-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.preferences-cancel-confirm-btn{background:var(--color-error,#e05555);border-color:var(--color-error,#e05555)}.preferences-cancel-confirm-btn:hover{background:#c94444;border-color:#c94444}.preferences-cancel-error{font-size:var(--text-sm);color:var(--color-error,#e05555);margin:0}.fine-print{color:var(--color-text-secondary);margin:0;font-size:.8rem}.landing{background:var(--color-bg-primary);flex-direction:column;min-height:100vh;display:flex}.landing-nav{padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.landing-logo{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-accent);letter-spacing:.02em;font-weight:400}.landing-hero{padding:var(--space-12) var(--space-8);flex:1;justify-content:center;align-items:center;display:flex}.landing-hero-content{width:100%;max-width:640px}.landing-headline{font-family:var(--font-serif);color:var(--color-text-primary);margin-bottom:var(--space-6);font-size:clamp(2rem,5vw,3rem);font-weight:400;line-height:1.15}.landing-headline-pain{color:var(--color-text-secondary)}.landing-subheadline{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-8);line-height:1.6}.landing-features{gap:var(--space-4);margin-bottom:var(--space-8);flex-direction:column;display:flex}.landing-feature{align-items:flex-start;gap:var(--space-4);display:flex}.landing-feature-icon{flex-shrink:0;margin-top:2px;font-size:1.5rem}.landing-feature strong{font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-1);font-weight:500;display:block}.landing-feature p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.landing-cta{align-items:flex-start;gap:var(--space-3);flex-direction:column;display:flex}.landing-cta-primary{font-size:var(--text-base);padding:var(--space-4) var(--space-8)}.landing-cta-note{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.landing-footer{gap:var(--space-6);padding:var(--space-6) var(--space-8);border-top:1px solid var(--color-border);justify-content:center;display:flex}.landing-footer a{font-size:var(--text-sm);color:var(--color-text-tertiary)}.landing-footer a:hover{color:var(--color-text-secondary)}@media (width<=600px){.landing-nav{padding:var(--space-4) var(--space-4)}.landing-hero{padding:var(--space-8) var(--space-4);align-items:flex-start}.landing-cta{width:100%}.landing-cta-primary{text-align:center;width:100%}}.navbar{z-index:100;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar-inner{max-width:1100px;padding:0 var(--space-6);align-items:center;gap:var(--space-8);height:56px;margin:0 auto;display:flex}.navbar-logo{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-accent);letter-spacing:.02em;flex-shrink:0;font-weight:400;text-decoration:none}.navbar-links{align-items:center;gap:var(--space-6);flex:1;display:flex}.navbar-link{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:500;text-decoration:none;transition:color .15s}.navbar-link:hover,.navbar-link.active{color:var(--color-text-primary)}.navbar-actions{margin-left:auto;position:relative}.navbar-avatar{background:var(--color-accent-muted);border:1px solid var(--color-accent);width:32px;height:32px;color:var(--color-accent);font-size:var(--text-sm);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex}.navbar-dropdown{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);min-width:220px;padding:var(--space-2) 0;z-index:200;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0006}.navbar-dropdown-header{padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;display:flex}.navbar-dropdown-email{font-size:var(--text-sm);color:var(--color-text-secondary)}.navbar-dropdown-header .badge{background:var(--color-success-muted);color:var(--color-success);border-radius:999px;padding:.15rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.navbar-dropdown-divider{background:var(--color-border);height:1px;margin:var(--space-2) 0}.navbar-dropdown-item{text-align:left;width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;text-decoration:none;transition:background-color .15s,color .15s;display:block}.navbar-dropdown-item:hover{background:var(--color-bg-primary);color:var(--color-text-primary)}.navbar-upgrade{color:var(--color-accent)}.navbar-upgrade:hover{color:var(--color-accent-hover)}.navbar-logout:hover{color:var(--color-danger)}.navbar-burger{cursor:pointer;padding:var(--space-2);background:0 0;border:none;flex-direction:column;gap:5px;margin-left:auto;display:none}.navbar-burger span{background:var(--color-text-secondary);border-radius:2px;width:22px;height:2px;display:block}.navbar-mobile{border-top:1px solid var(--color-border);padding:var(--space-2) 0;background:var(--color-bg-surface);flex-direction:column;display:none}.navbar-mobile-link{text-align:left;width:100%;padding:var(--space-3) var(--space-6);font-size:var(--text-base);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;text-decoration:none;display:block}.navbar-mobile-link:hover{color:var(--color-text-primary)}.navbar-mobile-divider{background:var(--color-border);height:1px;margin:var(--space-2) 0}.plan-pill{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;border-radius:20px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:600;text-decoration:none}.plan-pill-free{color:var(--color-accent);border:1px solid var(--color-accent);transition:background-color .15s}.plan-pill-free:hover{background:var(--color-accent-muted);color:var(--color-accent)}.plan-pill-pro{color:var(--color-text-on-accent);background:var(--color-accent);border:1px solid var(--color-accent);cursor:default;transition:background-color .15s,border-color .15s,box-shadow .15s}.plan-pill-pro:hover{color:var(--color-text-on-accent);background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 0 12px #e8a83873}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-main{width:100%;max-width:1100px;padding:var(--space-8) var(--space-6);flex:1;margin:0 auto}@media (width<=600px){.navbar-links,.navbar-actions,.plan-pill{display:none}.navbar-burger,.navbar-mobile{display:flex}.app-main{padding:var(--space-6) var(--space-4)}}.page-loading-screen{min-height:50vh;padding:var(--space-6) var(--space-4);justify-content:center;align-items:center;display:flex}.page-loading-inner{text-align:center;max-width:320px}.page-loading-message{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text-primary);margin:var(--space-4) 0 0 0}.page-loading-sub{margin:var(--space-2) 0 0 0}.page-loading-spinner{border-width:3px;width:2.5rem;height:2.5rem}.home-skeleton-urgent{border-radius:var(--radius-lg);background:var(--color-border);min-height:180px;margin-bottom:var(--space-6);animation:1.4s ease-in-out infinite pricing-skeleton-pulse}.home-skeleton-row{background:var(--color-border);height:1.25rem;margin-bottom:var(--space-3);border-radius:4px;animation:1.4s ease-in-out infinite pricing-skeleton-pulse}.home-skeleton-row:last-child{margin-bottom:0}.home-skeleton-stat{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.home-skeleton-stat:before{content:"";background:var(--color-border);border-radius:4px;width:3rem;height:2rem;animation:1.4s ease-in-out infinite pricing-skeleton-pulse;display:block}.home-skeleton-stat:after{content:"";background:var(--color-border);border-radius:4px;width:5rem;height:.875rem;animation:1.4s ease-in-out infinite pricing-skeleton-pulse;display:block}.concerts-skeleton-row{border:1px solid var(--color-border);background:var(--color-bg-elevated);border-radius:6px;align-items:center;gap:.65rem;padding:.55rem .65rem;display:flex}.concerts-skeleton-avatar{background:var(--color-border);border-radius:50%;flex-shrink:0;width:36px;height:36px;animation:1.4s ease-in-out infinite pricing-skeleton-pulse}.concerts-skeleton-lines{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.concerts-skeleton-line{background:var(--color-border);border-radius:4px;height:.75rem;animation:1.4s ease-in-out infinite pricing-skeleton-pulse}.concerts-skeleton-line-title{width:55%}.concerts-skeleton-line-sub{width:75%}.tracking-progress-screen{justify-content:center;align-items:center;min-height:60vh;display:flex}.tracking-progress-inner{text-align:center;max-width:320px}.tracking-progress-artist{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text-primary);margin:var(--space-4) 0 var(--space-2) 0;min-height:2em}.tracking-progress-sub{font-size:var(--text-sm);color:var(--color-text-tertiary)}.home-welcome{margin-bottom:var(--space-6)}.home-greeting{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-primary);margin:0;font-weight:400}.home-urgent-card{background-color:var(--color-bg-elevated);border-radius:var(--radius-lg);margin-bottom:var(--space-6);background-position:50% 35%;background-size:cover;border:none;align-items:flex-end;min-height:280px;transition:border-color .15s;display:flex;position:relative;overflow:hidden}.coming-up{margin-bottom:var(--space-6)}.coming-up-label{margin-bottom:var(--space-3)}.coming-up-list{flex-direction:column;gap:0;display:flex}.coming-up-row{align-items:baseline;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid #ffffff0a;flex-wrap:wrap;text-decoration:none;transition:color .15s;display:flex}.coming-up-row:last-of-type{border-bottom:none}.coming-up-row:hover .coming-up-artist{color:var(--color-accent)}.coming-up-artist{font-size:var(--text-base);color:var(--color-text-primary);font-weight:600;transition:color .15s}.coming-up-dot{color:var(--color-text-tertiary);font-size:var(--text-sm)}.coming-up-when{font-size:var(--text-sm);color:var(--color-text-secondary)}.coming-up-city{font-size:var(--text-sm);color:var(--color-text-tertiary)}.coming-up-row-tonight{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) 0 var(--space-4) var(--space-4);border-left:2px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-left:calc(-1 * var(--space-4));background-color:#e8a8380a;border-bottom:1px solid #ffffff0a;transition:background-color .15s,border-left-color .15s,filter .15s;display:flex}.coming-up-row-tonight:hover{border-left-color:var(--color-accent-hover);filter:brightness(1.05);background-color:#e8a8381a}.coming-up-row-tonight:hover .coming-up-tonight-artist{color:var(--color-accent)}.coming-up-tonight-inner{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.coming-up-tonight-label{font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:.02em;text-transform:none;color:var(--color-accent);margin-top:-4px;font-weight:400;line-height:1}.coming-up-tonight-artist{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);font-weight:600;transition:color .15s}.coming-up-tonight-venue{font-size:var(--text-sm);color:var(--color-text-tertiary)}.home-urgent-card:hover{border-color:var(--color-border-strong)}.home-urgent-content{padding:var(--space-6);width:100%}.home-urgent-label{margin-bottom:var(--space-3);color:var(--color-accent)}.home-urgent-artist{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-primary);margin-bottom:var(--space-1);font-weight:400}.home-urgent-venue{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.home-urgent-date{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-6)}.home-urgent-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.home-stats{gap:var(--space-6);margin-bottom:var(--space-6);display:flex}.home-stat{gap:var(--space-1);flex-direction:column;display:flex}.home-stat-value{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-primary);font-weight:400;line-height:1}.home-stat-label{font-size:var(--text-sm);color:var(--color-text-tertiary)}.home-stat-value--text{font-family:var(--font-sans);font-size:var(--text-base);max-width:14rem;font-weight:500;line-height:1.35}.home-stat-nudge{font-size:var(--text-sm);color:var(--color-accent);text-decoration:none}.home-stat-nudge:hover{text-decoration:underline}.home-actions{gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.home-action{text-align:center;flex:1;min-width:160px}.page-error-card{text-align:center;max-width:400px}.page-error-card .error,.page-error-inline .error{margin-bottom:var(--space-4)}.empty-state-inline{margin-top:var(--space-4)}.empty-state-inline .fine-print{margin-top:var(--space-2)}.onboarding-artist-empty-hint{margin:var(--space-4) 0 0}.home-empty{text-align:center;padding:var(--space-12) var(--space-8)}.home-empty-title{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary);margin-bottom:var(--space-3);font-weight:400}.home-empty-text{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-6);max-width:400px;margin-left:auto;margin-right:auto}@media (width<=600px){.home-stats{gap:var(--space-8)}.home-actions{flex-direction:column}.home-action{width:100%}}.legal-page{max-width:720px;padding:var(--space-8) var(--space-6);min-height:100vh;margin:0 auto}.legal-back{margin-bottom:var(--space-8)}.legal-back a{font-size:var(--text-sm);color:var(--color-text-tertiary)}.legal-back a:hover{color:var(--color-text-secondary)}.legal-content h1{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-primary);margin-bottom:var(--space-2);font-weight:400}.legal-content h2{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary);margin-top:var(--space-8);margin-bottom:var(--space-3);font-weight:400}.legal-content h3{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);margin-top:var(--space-6);margin-bottom:var(--space-2);font-weight:500}.legal-content p{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:1.7}.legal-content ul,.legal-content ol{padding-left:var(--space-6);margin-bottom:var(--space-4)}.legal-content li{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-2);line-height:1.7}.legal-content a{color:var(--color-accent)}.legal-content a:hover{color:var(--color-accent-hover)}@media (width<=600px){.legal-page{padding:var(--space-6) var(--space-4)}}.about-built-by{margin-top:var(--space-8);color:var(--color-text-tertiary);font-size:var(--text-sm)}.app-footer{max-width:1100px;padding:var(--space-6) var(--space-6);border-top:1px solid var(--color-border);margin:0 auto}.app-footer-line{font-size:var(--text-xs);color:var(--color-text-tertiary);align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.app-footer-sep{color:var(--color-text-tertiary);opacity:.6}.app-footer a{font-size:var(--text-xs);color:var(--color-text-tertiary)}.app-footer a:hover{color:var(--color-text-secondary)}.contact-card{max-width:32rem}.contact-intro{margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-6)}.contact-card textarea{resize:vertical;min-height:10rem}.contact-success h1{font-size:var(--text-xl);line-height:1.35}.pricing-header{margin-bottom:var(--space-8)}.pricing-header h1{font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-primary);margin:0 0 var(--space-2);font-weight:400}.pricing-subheading{font-size:var(--text-base);color:var(--color-text-secondary);margin:0}.pricing-usage-card{margin-bottom:var(--space-6)}.pricing-usage-header{margin-bottom:var(--space-3);font-size:var(--text-base);color:var(--color-text-secondary);justify-content:space-between;align-items:center;display:flex}.pricing-usage-count{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary)}.pricing-usage-count-pro{color:var(--color-accent)}.pricing-usage-bar{background:var(--color-border);height:4px;margin-bottom:var(--space-3);border-radius:2px;overflow:hidden}.pricing-usage-fill{background:var(--color-accent);border-radius:2px;height:100%;transition:width .3s}.pricing-usage-sub{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:0}.pricing-usage-meta{font-size:var(--text-sm);color:var(--color-text-tertiary);margin:var(--space-2) 0 0}.pricing-usage-skeleton .pricing-skeleton-line{background:var(--color-border);border-radius:4px;height:1rem;animation:1.4s ease-in-out infinite pricing-skeleton-pulse}.pricing-skeleton-line-header{width:70%;margin-bottom:var(--space-3)}.pricing-skeleton-line-sub{width:50%}.pricing-skeleton-line-meta{width:40%;margin-top:var(--space-2)}.pricing-skeleton-bar{background:var(--color-border);height:4px;margin-bottom:var(--space-3);border-radius:2px;animation:1.4s ease-in-out infinite pricing-skeleton-pulse}@keyframes pricing-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.pricing-plans-grid{gap:var(--space-3);margin-bottom:var(--space-8);grid-template-columns:1fr 1fr;width:100%;display:grid}.pricing-plan-card{gap:var(--space-4);width:100%;max-width:none;padding:var(--space-5);flex-direction:column;transition:border-color .15s,background-color .15s;display:flex}.pricing-plan-card-pro{border-color:var(--color-accent)}.pricing-plan-card:not(.pricing-plan-card-pro):hover{border-color:var(--color-border-strong);background-color:#302a1f}.pricing-plan-card-pro:hover{border-color:var(--color-accent-hover);background-color:var(--color-bg-elevated)}.pricing-plan-header{gap:var(--space-1);flex-direction:column;display:flex}.pricing-plan-name{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary);margin:0;font-weight:400}.pricing-plan-price{font-size:var(--text-base);color:var(--color-text-secondary);margin:0}.pricing-feature-list{gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex}.pricing-feature-list li.pricing-feature-off{opacity:.4}.pricing-plan-callout{width:fit-content;margin:0 0 var(--space-3);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-muted);border:1px solid #e8a83859;border-radius:999px;align-self:flex-start;padding:4px 12px;font-size:11px;font-weight:600;line-height:1.2}.pricing-feature-list li.pricing-feature-limit{color:var(--color-text-secondary)}.pricing-feature-list li.pricing-feature-highlight{color:var(--color-accent);font-weight:500}.pricing-current-badge{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em}.pricing-upgrade-btn{width:100%}.pricing-faq{margin-bottom:var(--space-8)}.pricing-faq-heading{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary);margin-bottom:var(--space-6);font-weight:400}.pricing-faq-list{gap:var(--space-6);flex-direction:column;display:flex}.pricing-faq-item{border-left:2px solid var(--color-border);padding-left:var(--space-4)}.pricing-faq-q{font-size:var(--text-base);color:var(--color-text-primary);margin-bottom:var(--space-2);font-weight:500}.pricing-faq-a{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.6}@media (width<=600px){.pricing-plans-grid{grid-template-columns:1fr}}body.cookie-banner-open{padding-bottom:5rem}.cookie-banner{z-index:150;background:var(--color-bg-surface);border-top:1px solid var(--color-border);padding:var(--space-4) var(--space-6);animation:.3s cookie-slide-up;position:fixed;bottom:0;left:0;right:0}.cookie-banner-inner{justify-content:center;align-items:center;gap:var(--space-6);width:100%;max-width:1100px;margin:0 auto;display:flex}@keyframes cookie-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cookie-banner-text{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.cookie-banner-btn{font-size:var(--text-sm);color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;flex-shrink:0;padding:4px 14px;font-weight:600;transition:background .15s}.cookie-banner-btn:hover{background:var(--color-accent-muted)}@media (width<=600px){.cookie-banner-inner{gap:var(--space-3);text-align:center;flex-direction:column}}
