:root{--primary:#9a69e6;--primary-dark:#6e39d0;--primary-light:#bea5ff;--accent:#ebcf77;--accent-soft:#ffecb3;--accent-pale:#fff8e8;--gold-deep:#d5a754;--bg:#0c0a1a;--bg-card:#151230;--bg-input:#1c1840;--text:#e8e6f0;--text-muted:#9a94b0;--danger:#e74c3c;--success:#2ecc71;--radius:10px;--shadow:0 4px 24px #6e39d04d}*{box-sizing:border-box;margin:0;padding:0}html{font-size:18px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif}#navbar{background:var(--bg-card);z-index:100;border-bottom:1px solid #9a69e64d;justify-content:space-between;align-items:center;padding:12px 32px;display:flex;position:sticky;top:0}.nav-brand{align-items:center;gap:10px;text-decoration:none;display:flex}.nav-brand img{width:auto;max-height:44px}.nav-brand-text{background:linear-gradient(135deg, var(--primary-light) 0%, var(--accent) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.35rem;font-style:italic;font-weight:800;line-height:1}.nav-links{align-items:center;gap:6px;display:flex}.nav-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:.88rem;font-weight:600;line-height:1.2;text-decoration:none;transition:color .2s,background .2s,transform .15s;display:inline-flex}.nav-btn:hover{transform:translateY(-1px)}.nav-btn-primary{color:var(--primary-light);background:linear-gradient(135deg,#9a69e633 0%,#9a69e61a 100%);border:1px solid #9a69e64d}.nav-btn-primary:hover{color:#fff;background:linear-gradient(135deg,#9a69e659 0%,#9a69e633 100%);box-shadow:0 2px 12px #9a69e640}.nav-btn-ghost{color:var(--text-muted);border:1px solid #0000}.nav-btn-ghost:hover{color:var(--accent);background:#ebcf7714;border-color:#ebcf7733}.nav-btn-accent{background:var(--accent);color:var(--bg);font-weight:700}.nav-btn-accent:hover{background:var(--gold-deep);color:#fff}.nav-dropdown{display:inline-flex;position:relative}.nav-dropdown-toggle{padding-right:10px}.nav-dropdown-toggle:after{content:"";border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-left:4px;transition:transform .2s;display:inline-block}.nav-dropdown-toggle[aria-expanded=true]:after{transform:rotate(180deg)}.nav-dropdown-menu{background:var(--bg-card);z-index:200;border:1px solid #9a69e659;border-radius:10px;min-width:160px;padding:6px;animation:.2s dropdownFadeIn;display:none;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 32px #00000080}.nav-dropdown-menu.show{display:block}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.nav-dropdown-item{color:var(--text-muted);border-radius:6px;padding:10px 16px;font-size:.88rem;font-weight:600;text-decoration:none;transition:color .2s,background .2s;display:block}.nav-dropdown-item:hover{color:var(--accent);background:#bea5ff1f}.view{max-width:1152px;margin:58px auto;padding:0 32px;animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.view-title{color:#fff;margin-bottom:8px;font-size:2rem;font-weight:700;line-height:1.2}.view-subtitle{color:var(--text-muted);font-size:1.05rem;line-height:1.4}.dashboard-header .view-title,.dashboard-header .view-subtitle{margin-bottom:0}.dashboard-header .view-subtitle{margin-top:4px}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #9a69e640;padding:34px}.form-group{margin-bottom:24px}.form-group label{color:var(--text-muted);margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.form-group input,.form-group textarea,.form-group select{background:var(--bg-input);width:100%;color:var(--text);border:1px solid #9a69e64d;border-radius:8px;padding:14px 18px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary);outline:none}.form-group textarea{resize:vertical;min-height:96px}.info-tooltip{width:16px;height:16px;color:var(--text-muted);cursor:help;vertical-align:middle;background:#9a69e640;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;font-size:.65rem;font-style:italic;font-weight:700;transition:background .2s,color .2s;display:inline-flex;position:relative}.info-tooltip:hover{background:var(--primary-light);color:#fff}.info-tooltip .tooltip-text{visibility:hidden;opacity:0;background:var(--bg-card);color:var(--text);white-space:normal;z-index:9999;pointer-events:none;border:1px solid #9a69e64d;border-radius:6px;width:max-content;max-width:240px;padding:8px 12px;font-size:.78rem;font-style:normal;font-weight:400;line-height:1.4;transition:opacity .2s,visibility .2s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000080}.info-tooltip .tooltip-text:after{content:"";border:5px solid #0000;border-top-color:var(--bg-card);position:absolute;top:100%;left:50%;transform:translate(-50%)}.info-tooltip:hover .tooltip-text,.info-tooltip:active .tooltip-text,.match-badge-wrapper:hover .info-tooltip .tooltip-text{visibility:visible!important;opacity:1!important}@media (hover:none) and (pointer:coarse){.info-tooltip.tooltip-active .tooltip-text{visibility:visible!important;opacity:1!important}}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:10px;padding:14px 34px;font-size:1rem;font-weight:600;transition:background .2s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-accent{background:var(--accent);color:#1a1530}.btn-accent:hover{background:var(--gold-deep)}.btn-outline{border:1px solid var(--primary);color:var(--primary-light);background:0 0}.btn-outline:hover{background:#9a69e61f}.btn-sm{padding:10px 20px;font-size:.85rem}.btn:disabled{opacity:.5;cursor:not-allowed}.landing-logo,.dashboard-logo{object-fit:contain;height:auto;display:block}.landing-logo{max-height:384px;margin:0 auto 28px}.dashboard-logo{max-height:144px}.dashboard-header{border-bottom:1px solid #9a69e633;align-items:center;gap:38px;margin-bottom:48px;padding-bottom:30px;display:flex}.dashboard-logo-wrapper{flex-shrink:0;justify-content:center;align-items:center;display:flex}.dashboard-title-group{flex-direction:column;justify-content:center;display:flex}.feed{gap:24px;margin-top:30px;display:grid}.event-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #9a69e640;padding:30px;transition:border-color .2s,transform .2s;position:relative}.event-card:hover{border-color:var(--accent);transform:translateY(-2px)}.artist-image-thumb{float:left;object-fit:cover;background:var(--bg-secondary);border:1px solid #9a69e633;border-radius:8px;width:76px;height:76px;margin-bottom:8px;margin-right:18px}.event-card .event-title{color:#fff;letter-spacing:-.02em;text-shadow:0 0 12px #9a69e659;margin-bottom:6px;font-size:1.35rem;font-weight:800}.artist-name-link{color:#5dade2;cursor:pointer;text-decoration:none;transition:color .2s}.artist-name-link:hover{color:var(--primary-light);text-decoration:underline}.event-card .event-venue{color:var(--accent);margin-bottom:4px;font-weight:600}.venue-link{color:inherit;text-decoration:none;transition:color .2s}.venue-link:hover{color:var(--primary-light);text-decoration:underline}.event-card .event-date{color:var(--text-muted);margin-bottom:10px;font-size:.9rem}.event-card .event-genres{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.genre-tag{color:var(--primary-light);background:#9a69e62e;border-radius:20px;padding:4px 12px;font-size:.78rem;font-weight:600}.event-card .event-genres-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.event-card .event-description{color:var(--text-muted);margin-bottom:12px;font-size:.92rem;line-height:1.5}.event-card .event-footer{justify-content:space-between;align-items:center;display:flex}.match-badge-wrapper{z-index:3;cursor:help;border-radius:20px;align-items:center;gap:5px;margin:-8px -10px;padding:8px 10px;display:flex;position:absolute;top:14px;right:14px}.similarity-badge{cursor:default;border-radius:20px;padding:5px 14px;font-size:.78rem;font-weight:700}.similarity-badge.match-perfect{color:#2ecc71;background:#2ecc712e;border:1px solid #2ecc7159}.similarity-badge.match-great{color:#5dade2;background:#3498db2e;border:1px solid #3498db59}.similarity-badge.match-good{color:var(--primary-light);background:#9a69e62e;border:1px solid #9a69e659}.similarity-badge.match-decent{color:var(--accent);background:#ebcf772e;border:1px solid #ebcf7759}.similarity-badge.match-possible{color:#f1c40f;background:#f1c40f26;border:1px solid #f1c40f4d}.similarity-badge.match-adventurous{color:#e74c3c;background:#e74c3c1f;border:1px solid #e74c3c40}.event-title-row{flex-wrap:wrap;align-items:baseline;gap:20px;margin-bottom:4px;display:flex}.event-title-row .event-title{flex-shrink:0;margin-bottom:0}.event-title-row .event-location-info{margin-bottom:0;font-size:.92rem}.genre-tag.genre-matched{color:var(--accent-soft);background:#ebcf7733;border:1px solid #ebcf7766}.artist-match-list{flex-wrap:wrap;gap:8px;display:flex}.artist-match-badge{color:var(--primary-light);cursor:pointer;background:#9a69e633;border:1px solid #9a69e640;border-radius:20px;align-items:center;gap:5px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:background .2s,transform .15s,box-shadow .2s,border-color .2s;display:inline-flex;position:relative}.artist-match-badge strong{color:var(--accent-soft)}.artist-match-badge:hover{border-color:var(--primary-light);background:#9a69e659;transform:translateY(-2px)scale(1.04);box-shadow:0 4px 12px #9a69e640}.artist-match-badge:active{transform:translateY(0)scale(.98)}@keyframes badgePulse{0%,to{box-shadow:0 0 #bea5ff00}50%{box-shadow:0 0 0 4px #bea5ff26}}.artist-match-badge:first-child{animation:2.5s ease-in-out 3 badgePulse}.artist-match-badge:after{content:"click for details";background:var(--bg-card);color:var(--primary-light);white-space:nowrap;opacity:0;pointer-events:none;z-index:10;border:1px solid #9a69e64d;border-radius:4px;padding:4px 8px;font-size:.68rem;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)scale(.8)}.artist-match-badge:hover:after{opacity:1;transform:translate(-50%)scale(1)}.dimension-scores{border-left:3px solid var(--primary-light);background:#9a69e60f;border-radius:8px;margin-bottom:14px;padding:12px 14px}.dim-row{align-items:center;gap:10px;margin-bottom:5px;display:flex}.dim-row:last-child{margin-bottom:0}.dim-label{color:var(--text-muted);min-width:55px;font-size:.78rem;font-weight:600}.dim-bar-bg{background:#9a69e61a;border-radius:3px;flex:1;height:7px;overflow:hidden}.dim-bar-fill{border-radius:3px;height:100%;transition:width .4s}.dim-value{text-align:right;min-width:28px;font-size:.78rem;font-weight:700}.why-match-section{border-top:1px solid #9a69e640;margin-top:14px;padding-top:10px}.pinned-section{border-radius:var(--radius);background:#ebcf770d;border:1px solid #ebcf7733;margin-bottom:38px;padding:24px;transition:opacity .3s}.section-header{color:var(--accent);align-items:center;gap:8px;margin-bottom:4px;font-size:1.1rem;display:flex}.section-icon{font-size:1.2rem}.pinned-feed{margin-top:20px}.pinned-badge{color:var(--accent);background:#ebcf7726;border-radius:20px;padding:5px 14px;font-size:.82rem;font-weight:700}.pin-btn{cursor:pointer;z-index:2;border:1px solid #0000;border-radius:20px;padding:8px 18px;font-size:.8rem;font-weight:700;transition:all .2s;position:absolute;top:14px;right:14px}.pin-btn.unpinned{color:var(--primary-light);background:#9a69e626;border-color:#9a69e64d}.pin-btn.unpinned:hover{background:#9a69e64d;transform:scale(1.05)}.pin-btn.pinned{color:var(--accent);background:#ebcf7726;border-color:#ebcf774d}.pin-btn.pinned:hover{color:var(--danger);background:#e74c3c33;border-color:#e74c3c66}.already-pinned{opacity:.5}.filter-panel{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e640;margin-bottom:34px;padding:24px}.filter-panel-header{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-bottom:2px;font-size:1.05rem;display:flex}.filter-toggle-icon{margin-left:auto;font-size:.85rem;transition:transform .2s}.filter-panel-icon{font-size:1.1rem}.filter-panel-title{font-weight:700}.filter-panel-subtitle{color:var(--text-muted);margin-bottom:16px;font-size:.85rem}.filter-controls{opacity:1;flex-wrap:wrap;align-items:flex-start;gap:20px;max-height:600px;transition:max-height .3s,opacity .2s;display:flex;overflow:visible}.filter-controls.collapsed{opacity:0;max-height:0;margin-top:0;overflow:hidden}.control-group{flex-direction:column;gap:6px;display:flex}.control-group label{color:var(--text-muted);font-size:.82rem}.control-group label strong{color:#fff}.control-group input{background:var(--bg-input);color:var(--text);border:1px solid #9a69e64d;border-radius:8px;padding:12px 18px;font-size:.95rem}.control-group input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #bea5ff26}.control-group{flex:1;min-width:200px}.control-small{flex:0 0 140px;min-width:120px}.control-action{flex:none;align-self:flex-end}.pref-section{margin-bottom:34px}.pref-section h3{color:var(--accent);margin-bottom:10px;font-size:1.1rem}.pref-section.artists-section{background:#9a69e60f;border:1px solid #9a69e633;border-radius:8px;padding:20px}.pref-section.artists-section h3{color:var(--accent-soft)}.pref-section.genres-section h3{color:var(--primary-light)}.add-item-row{align-items:center;gap:10px;margin-bottom:14px;display:flex}.add-item-row input{background:var(--bg-input);width:auto;max-width:312px;color:var(--text);border:1px solid #9a69e64d;border-radius:8px;flex:1;padding:10px 14px;font-size:.9rem;transition:border-color .2s}.add-item-row input:focus{border-color:var(--primary);outline:none}.pref-section.locations-section{background:#2ecc710a;border:1px solid #2ecc7126;border-radius:8px;padding:20px}.pref-section.locations-section h3{color:#7dcea0}.chip-container{flex-wrap:wrap;gap:10px;display:flex}.chip{background:var(--bg-input);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #9a69e64d;border-radius:20px;padding:8px 16px;font-size:.85rem;transition:all .2s}.chip:hover{border-color:var(--primary-light)}.chip.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.artist-badges-container{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.genre-priority-list{background:#9a69e60a;border:1px solid #9a69e626;border-radius:8px;overflow:hidden}.genre-row{cursor:grab;border-bottom:1px solid #9a69e61a;align-items:center;gap:12px;padding:12px 18px;transition:background .15s;display:flex}.genre-row:last-child{border-bottom:none}.genre-row:hover{background:#9a69e614}.genre-row.dragging{opacity:.4}.drag-handle{color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:1rem}.genre-label{min-width:80px;color:var(--primary-light);text-transform:capitalize;font-size:.9rem;font-weight:600}.genre-weight-slider{max-width:192px;accent-color:var(--accent);cursor:pointer;flex:1}.genre-weight-value{color:var(--accent);text-align:right;min-width:30px;font-size:.82rem;font-weight:700}.genre-word-cloud,.artist-word-cloud,.location-word-cloud{border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 22px;min-height:96px;padding:24px 20px;display:flex}.genre-word-cloud{background:#9a69e608;border:1px solid #9a69e61f}.artist-word-cloud{background:#ebcf7708;border:1px solid #ebcf771f}.location-word-cloud{background:#2ecc7108;border:1px solid #2ecc711f}.genre-word,.artist-word,.location-word{cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.4;transition:color .2s,transform .15s,text-shadow .2s;display:inline-block}.genre-word{color:var(--primary-light);text-transform:capitalize}.artist-word{color:var(--accent-soft);text-transform:none}.location-word{color:#7dcea0;text-transform:none}.genre-word:hover,.artist-word:hover,.location-word:hover{color:var(--accent);text-shadow:0 0 16px #ebcf7766;transform:scale(1.08)}.genre-word:active,.artist-word:active,.location-word:active{transform:scale(.97)}.modal-content.priority-modal,.modal-content.genre-priority-modal{background:var(--bg-card);text-align:center;border:1px solid #9a69e659;border-radius:16px;width:90%;max-width:480px;padding:38px 34px 34px;animation:.3s slideUpModal;position:relative;box-shadow:0 8px 48px #6e39d080,0 0 0 1px #9a69e61a}.priority-body,.genre-priority-body{flex-direction:column;align-items:center;display:flex}.priority-title,.genre-priority-title{color:#fff;text-transform:capitalize;margin-bottom:4px;font-size:1.8rem;font-weight:700}.priority-subtitle,.genre-priority-subtitle{color:var(--text-muted);margin-bottom:24px;font-size:.92rem}.precedence-options{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.precedence-btn,.precedence-btn-sm{color:var(--text-muted);cursor:pointer;background:#9a69e614;border:1px solid #9a69e640;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex}.precedence-btn:hover{border-color:var(--primary-light);color:var(--text);background:#9a69e62e}.precedence-btn.active,.precedence-btn-sm.active{border-color:var(--accent);color:var(--accent);background:#ebcf7726;box-shadow:0 0 12px #ebcf7733}.precedence-number{font-size:1.4rem;font-weight:800;line-height:1}.precedence-btn{width:70px;height:76px;padding:5px}.vibe-hero-card{background:linear-gradient(135deg,#9a69e614 0%,#ebcf770f 100%);border:1px solid #9a69e640;border-radius:14px;align-items:stretch;gap:24px;margin-bottom:30px;padding:24px;display:flex}.vibe-hero-content{flex-direction:column;flex:1;justify-content:center;gap:12px;min-width:0;display:flex}.vibe-hero-title{color:var(--accent);margin:0;font-size:1.6rem;font-weight:800;line-height:1.2}.vibe-hero-narrative{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.6}.aura-palette-dots{gap:8px;margin-top:4px;display:flex}.aura-dot{border:2px solid #ffffff26;border-radius:50%;width:18px;height:18px;transition:transform .2s,box-shadow .2s}.aura-dot:hover{transform:scale(1.3);box-shadow:0 0 12px}.vibe-canvas-container{border-radius:12px;flex-shrink:0;width:220px;height:220px;position:relative;overflow:hidden}.vibe-canvas-container canvas{border-radius:12px;width:100%;height:100%;display:block}.synthesis-spinner{z-index:10;color:var(--accent);pointer-events:none;background:#0d0b18d9;border-radius:20px;padding:8px 16px;font-size:.85rem;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pref-section.sensory-section{background:#9a69e60a;border:1px solid #9a69e626;border-radius:8px;padding:20px}.pref-section.sensory-section h3{color:var(--accent)}.sensory-subsection{margin-top:16px}.sensory-subsection h4{color:var(--primary-light);margin-bottom:8px;font-size:.9rem;font-weight:600}.sensory-chip-group{flex-wrap:wrap;gap:8px;display:flex}.sensory-chip{background:var(--bg-input);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #9a69e64d;border-radius:20px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:all .2s}.sensory-chip:hover{border-color:var(--primary-light);color:var(--text)}.sensory-chip.selected{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 0 10px #9a69e64d}.twist-input{background:var(--bg-input);width:100%;max-width:480px;color:var(--text);border:1px solid #9a69e64d;border-radius:8px;padding:10px 14px;font-size:.9rem;transition:border-color .2s}.twist-input:focus{border-color:var(--primary);outline:none}.spatial-scope-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;display:flex}.spatial-label{color:var(--text-muted);white-space:nowrap;font-size:.85rem;font-weight:600}.radius-slider{min-width:150px;max-width:300px;accent-color:var(--accent);cursor:pointer;flex:1}.spatial-labels{width:100%;max-width:300px;color:var(--text-muted);justify-content:space-between;margin-top:-8px;font-size:.75rem;display:flex}.global-toggle-row{margin-top:14px}.toggle-label{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:.85rem;display:flex}.toggle-label input[type=checkbox]{display:none}.toggle-track{background:var(--bg-input);border:1px solid #9a69e64d;border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .2s,border-color .2s;position:relative}.toggle-thumb{background:var(--text-muted);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.toggle-label input[type=checkbox]:checked+.toggle-track{background:var(--primary);border-color:var(--primary)}.toggle-label input[type=checkbox]:checked+.toggle-track .toggle-thumb{background:#fff;transform:translate(18px)}.toggle-text{flex:1;line-height:1.4}@media (width<=700px){.vibe-hero-card{flex-direction:column-reverse}.vibe-canvas-container{width:100%;height:160px}}.precedence-btn-sm{width:28px;height:28px;padding:0;font-size:.7rem}.precedence-label{text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:.6rem;font-weight:600;line-height:1}.priority-save,.genre-priority-save{width:100%;margin-top:24px}.priority-remove{width:100%;margin-top:10px}#toastContainer{z-index:10000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:72px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;color:#fff;box-shadow:var(--shadow);opacity:0;white-space:normal;text-align:center;border-radius:8px;max-width:90vw;padding:12px 28px;font-size:.9rem;font-weight:600;animation:.3s forwards toastIn;transform:translateY(-20px)}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}.toast.toast-out{animation:.3s forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.spinner{justify-content:center;align-items:center;padding:48px;display:flex}.spinner:before{content:"";border:4px solid #9a69e64d;border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state .empty-icon{margin-bottom:16px;font-size:3rem}.empty-state p{margin-bottom:20px;font-size:1.1rem}.event-ticket-link{margin-bottom:14px}.ticket-link-btn{color:var(--success);background:#2ecc7126;border:1px solid #2ecc7166;border-radius:20px;align-items:center;gap:8px;padding:10px 22px;font-size:.88rem;font-weight:700;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex}.ticket-link-btn:hover{background:#2ecc714d;transform:translateY(-1px);box-shadow:0 4px 12px #2ecc7133}.ticket-link-btn:active{transform:scale(.97)}.event-group{cursor:default}.grouped-shows{border-top:1px solid #9a69e640;flex-direction:column;gap:10px;margin-top:16px;padding-top:14px;display:flex}.grouped-show{background:#9a69e60f;border-radius:8px;align-items:center;gap:14px;padding:10px 14px;transition:background .2s;display:flex}.grouped-show-vibe{color:var(--accent);align-items:center;gap:6px;font-size:.82rem;font-style:italic;display:inline-flex}.grouped-show-vibe .vibe-text{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.vibe-cycle-btn{color:var(--primary-light);cursor:pointer;white-space:nowrap;background:#9a69e61f;border:1px solid #9a69e64d;border-radius:4px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.vibe-cycle-btn:hover{border-color:var(--primary-light);background:#9a69e640}.grouped-show:hover{background:#9a69e61f}.show-date{color:var(--primary-light);align-items:center;gap:4px;font-size:.88rem;font-weight:600;display:inline-flex}.show-title{color:var(--text);font-size:.92rem;font-weight:500}.pin-btn-sm{cursor:pointer;border:1px solid #0000;border-radius:16px;flex-shrink:0;margin-left:auto;padding:5px 12px;font-size:.85rem;font-weight:700;transition:all .2s}.pin-btn-sm.unpinned{color:var(--primary-light);background:#9a69e626;border-color:#9a69e64d}.pin-btn-sm.unpinned:hover{background:#9a69e64d}.pin-btn-sm.pinned{color:var(--accent);background:#ebcf7726;border-color:#ebcf774d}.pin-btn-sm.pinned:hover{color:var(--danger);background:#e74c3c33;border-color:#e74c3c66}.grouped-show-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.ticket-link-btn-sm{color:var(--success);background:#2ecc711f;border:1px solid #2ecc7159;border-radius:14px;flex-shrink:0;align-items:center;gap:5px;padding:4px 12px;font-size:.78rem;font-weight:700;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex}.ticket-link-btn-sm:hover{background:#2ecc7147;transform:translateY(-1px);box-shadow:0 2px 8px #2ecc7126}.ticket-link-btn-sm:active{transform:scale(.97)}.event-artist-vibe{color:var(--text-muted);opacity:.9;margin-bottom:8px;font-size:.88rem;font-style:italic;line-height:1.5}.event-venue-vibe{color:var(--text-muted);opacity:.85;margin-bottom:12px;font-size:.88rem;font-style:italic;line-height:1.5}.vibe-label{color:var(--primary-light);opacity:1;font-style:normal;font-weight:600}@media (width<=640px){#navbar{padding:16px 20px}.view{margin:28px auto;padding:0 18px}.card{padding:24px}.event-card .event-footer{flex-direction:column;align-items:flex-start;gap:12px}.dashboard-header{text-align:center;flex-direction:column;gap:24px}.dashboard-title-group{align-items:center}}.sm-view{max-width:1320px}.sm-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.sm-header-controls{align-items:center;gap:14px;display:flex}.sm-refresh-label{color:var(--text-muted);align-items:center;gap:6px;font-size:.9rem;display:flex}.sm-refresh-label select{background:var(--bg-input);color:var(--text);cursor:pointer;border:1px solid #9a69e64d;border-radius:6px;padding:6px 10px;font-size:.9rem}.sm-section{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e640;margin-bottom:12px;padding:14px 18px}.sm-section-header{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:.78rem;font-weight:700;display:flex}.sm-task-filters{gap:8px;display:flex}.sm-task-filters select{background:var(--bg-input);color:var(--text);cursor:pointer;border:1px solid #9a69e64d;border-radius:6px;padding:4px 10px;font-size:.82rem}.sm-health-grid{flex-wrap:wrap;gap:28px;display:flex}.sm-status-item{align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:flex}.sm-status-icon{font-size:1.2rem}.sm-table{border-collapse:collapse;width:100%;font-size:.95rem}.sm-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #9a69e659;padding:12px 14px;font-size:.8rem}.sm-table td{color:var(--text);border-bottom:1px solid #9a69e626;padding:12px 14px}.sm-table tbody tr:hover{background:#9a69e60f}.sm-table-wrapper{overflow-x:auto}.sm-agent-type{color:var(--primary-light);white-space:nowrap;background:#9a69e62e;border-radius:20px;padding:3px 10px;font-size:.78rem;font-weight:600}.sm-status-badge{font-size:.82rem;font-weight:600}.sm-metric-item{background:var(--bg-input);text-align:center;border:1px solid #9a69e640;border-radius:6px;padding:12px 10px}.sm-metric-value{color:#fff;font-size:1.5rem;font-weight:700}.sm-metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:.72rem}.sm-queue-grid{flex-wrap:wrap;gap:16px;display:flex}.sm-queue-item{text-align:center;min-width:96px}.sm-queue-value{font-size:1.6rem;font-weight:700}.sm-queue-label{color:var(--text-muted);margin-top:2px;font-size:.75rem}.sm-scheduler-info{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.sm-scheduler-item{background:var(--bg-input);border-radius:6px;justify-content:space-between;padding:10px 14px;font-size:.9rem;display:flex}.sm-scheduler-label{color:var(--text-muted)}.sm-actions-grid{flex-wrap:wrap;gap:14px;display:flex}.sm-controls-section{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e640;margin-top:12px;margin-bottom:12px;padding:14px 18px}.sm-controls-section .sm-section-header{margin-bottom:10px}.sm-controls-grid{flex-direction:column;gap:12px;display:flex}.sm-action-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sm-action-card{border-radius:var(--radius);background:#00000026;border:1px solid #ffffff0f;padding:12px 16px}.sm-action-card-title{color:var(--text-muted);letter-spacing:.03em;margin-bottom:8px;font-size:.82rem;font-weight:600}.sm-promote-section{margin-top:16px}.sm-promote-section h3{color:var(--accent);margin-bottom:8px;font-size:1rem}.sm-promote-form{gap:14px;display:flex}.sm-agent-name{text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-weight:600;overflow:hidden}.sm-task-id{color:var(--text-muted);font-family:monospace;font-size:.8rem}.sm-task-metadata{font-size:.85rem;line-height:1.4}.sm-meta-badge{border-radius:4px;margin:2px 2px 2px 0;padding:2px 6px;font-size:.75rem;font-weight:500;display:inline-block}@media (width<=640px){.sm-header{flex-direction:column}.sm-header-controls{justify-content:space-between;width:100%}.sm-metrics-grid{grid-template-columns:repeat(auto-fill,minmax(144px,1fr))}.sm-queue-grid{flex-direction:column;gap:14px}.sm-scheduler-info{grid-template-columns:1fr}.sm-promote-form,.sm-actions-grid{flex-direction:column}.sm-table{font-size:.9rem}.sm-table th,.sm-table td{padding:8px 6px}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0c0a1acc;justify-content:center;align-items:center;width:90%;height:90%;animation:.25s fadeInOverlay;display:flex;position:fixed;top:5%;left:5%}.modal-overlay.modal-closing{animation:.25s forwards fadeOutOverlay}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}@keyframes fadeOutOverlay{0%{opacity:1}to{opacity:0}}.modal-content.artist-modal,.modal-content:not([class*=\-]){background:var(--bg-card);border:1px solid #9a69e659;border-radius:16px;width:calc(100% - 10vw);max-width:520px;max-height:85vh;margin:0 auto;padding:0;animation:.3s slideUpModal;position:relative;overflow:hidden auto;box-shadow:0 8px 48px #6e39d080,0 0 0 1px #9a69e61a}@keyframes slideUpModal{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-close-btn{color:#fffc;cursor:pointer;z-index:10;background:#0000004d;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.3rem;line-height:1;transition:background .2s,color .2s,transform .15s;display:flex;position:absolute;top:14px;right:14px}.modal-close-btn:hover{color:#fff;background:#e74c3c66;transform:scale(1.1)}.modal-close-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.artist-modal-loading{flex-direction:column;justify-content:center;align-items:center;padding:58px 38px;display:flex}.artist-hero-bar,.hero-bar{background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-light) 100%);border-radius:16px 16px 0 0;justify-content:center;align-items:center;gap:18px;min-height:100px;padding:20px 24px;display:flex;position:relative}.hero-media{flex-shrink:0}.hero-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.hero-entity-name{color:#fff;text-shadow:0 2px 8px #0000004d;word-break:break-word;margin:0;font-size:1.4rem;font-weight:700;line-height:1.2}.hero-genres{flex-wrap:wrap;gap:6px;display:flex}.hero-genres .genre-tag{color:#fff;background:#ffffff2e;border-radius:12px;padding:2px 10px;font-size:.72rem;font-weight:600}.hero-events-count{color:var(--accent-soft);align-items:center;gap:4px;font-size:.82rem;font-weight:600;display:inline-flex}.events-icon{font-size:.9rem}.artist-image,.hero-image{object-fit:cover;border:3px solid #ffffff4d;border-radius:50%;flex-shrink:0;width:100px;min-width:100px;max-width:100px;height:100px;min-height:100px;max-height:100px;box-shadow:0 4px 20px #0006}.artist-image-placeholder,.hero-placeholder{color:#ffffffe6;background:#ffffff26;border:3px solid #ffffff4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:100px;min-width:100px;height:100px;min-height:100px;font-size:2rem;font-weight:700;display:flex;box-shadow:0 4px 20px #0006}.artist-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:0;padding:24px 34px 0;display:flex}.artist-header-left{display:flex}.events-list{max-height:300px;margin-top:12px;padding-right:8px;overflow-y:auto}.events-list::-webkit-scrollbar{width:6px}.events-list::-webkit-scrollbar-track{background:#0000001a;border-radius:10px}.events-list::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:10px}.artist-header-center{text-align:center;flex:1}.artist-name{color:#fff;margin-bottom:8px;font-size:1.6rem;font-weight:700}.artist-genres{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.artist-action-buttons{align-items:center;gap:4px;display:flex}.artist-bio{color:var(--text);border-left:3px solid var(--primary-light);text-align:left;background:#9a69e60a;border-radius:10px;margin:20px 34px 24px;padding:20px;font-size:.92rem;line-height:1.65}.artist-bio p{margin:0}.artist-links{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:0;padding:0 34px 20px;display:flex}.artist-link{color:var(--accent);background:#ebcf771a;border:1px solid #ebcf774d;border-radius:20px;align-items:center;gap:8px;padding:10px 20px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .2s,transform .1s;display:inline-flex}.artist-link:hover{background:#ebcf7738;transform:translateY(-1px)}.artist-meta{text-align:center;color:var(--text-muted);border-top:1px solid #9a69e640;margin:0 34px 24px;padding-top:20px;font-size:.78rem}@media (width<=640px){.modal-content.artist-modal,.modal-content:not([class*=\-]){width:95%;max-height:90vh}.hero-bar{flex-direction:row;gap:12px;min-height:80px;padding:16px 18px}.hero-image{width:60px;min-width:60px;max-width:60px;height:60px;min-height:60px;max-height:60px}.hero-placeholder{width:60px;min-width:60px;height:60px;min-height:60px;font-size:1.4rem}.hero-entity-name{font-size:1.1rem}.hero-genres .genre-tag{padding:2px 8px;font-size:.65rem}.hero-events-count{font-size:.75rem}.artist-hero-bar{padding:28px 24px 24px}.artist-header{padding:20px 24px 0}.artist-name{font-size:1.3rem}.artist-image,.artist-image-placeholder{width:96px;height:96px}.artist-image-placeholder{font-size:2rem}.artist-bio{margin:14px 24px 20px;padding:14px}.artist-links{padding:0 24px 14px}.artist-meta{margin:0 24px 20px}}.back-to-top-link{text-align:center;color:var(--primary-light);margin-top:28px;padding:12px 24px;font-size:.9rem;font-weight:600;text-decoration:none;transition:color .2s,transform .15s;display:block}.back-to-top-link:hover{color:var(--accent);transform:translateY(-1px)}.discovery-actions{justify-content:center;align-items:center;gap:16px;margin:28px 0 40px;display:flex}.next-btn{background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-light) 100%);color:#fff;cursor:pointer;border:1px solid #9a69e659;border-radius:20px;align-items:center;gap:8px;padding:10px 22px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex;box-shadow:0 4px 12px #6e39d04d}.next-btn:hover{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 50%, var(--accent-soft) 100%);transform:translateY(-1px);box-shadow:0 6px 16px #6e39d066}.next-btn:active{transform:translateY(0)}.discovery-feed{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.card-image{object-fit:cover;border-radius:10px;width:100%;height:160px}.card-image-placeholder{color:#ffffff40;background:#ffffff0f;border-radius:10px;justify-content:center;align-items:center;width:100%;height:160px;font-size:2rem;font-weight:700;display:flex}.card-info{padding:10px 0}.card-name{color:#fff;margin-bottom:4px;font-size:1rem;font-weight:600}.card-genres{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.card-genre-tag{color:var(--accent-soft);background:#9a69e626;border-radius:10px;padding:2px 8px;font-size:.75rem}.card-stats{color:var(--text-muted);gap:12px;font-size:.8rem;display:flex}.modal-actions{gap:6px;display:flex}.modal-actions-bottom{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:14px 24px 4px;display:flex}.action-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:4px;font-size:1.2rem;transition:opacity .2s}.action-btn:hover{opacity:1}.action-btn:disabled{cursor:default;opacity:1}.action-btn.flagged{opacity:.7}.action-btn.fav-active{opacity:.8}.action-btn.fav-active:hover{opacity:1}.modal-actions-bottom .action-btn{opacity:.8;color:var(--accent);background:#9a69e61a;border:1px solid #9a69e640;border-radius:14px;padding:6px 14px;font-size:.82rem;transition:background .2s,opacity .2s}.modal-actions-bottom .action-btn:hover{opacity:1;background:#9a69e633}.action-feedback{color:var(--accent-soft);opacity:0;font-size:.78rem;transition:opacity .3s}.action-feedback.success{color:var(--accent-soft)}.action-feedback.error{color:var(--danger)}.search-db-btn{background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);color:#fff;cursor:pointer;border:1px solid #9a69e659;border-radius:16px;align-items:center;gap:6px;margin-top:12px;padding:10px 20px;font-size:.85rem;font-weight:600;transition:background .2s,transform .15s;display:inline-flex}.search-db-btn:hover{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);transform:translateY(-1px)}.discovery-search-container{max-width:480px;margin:0 auto 28px}.discovery-search-wrapper{align-items:center;display:flex;position:relative}.discovery-search-icon{color:var(--text-muted);pointer-events:none;font-size:1rem;position:absolute;left:14px}.discovery-search-input{background:var(--bg-card);width:100%;color:var(--text);box-sizing:border-box;border:1px solid #9a69e640;border-radius:12px;outline:none;padding:10px 14px 10px 38px;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.discovery-search-input:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px #9a69e61a}.discovery-search-input::placeholder{color:var(--text-muted)}.entity-header{align-items:center;gap:12px;padding:18px 24px 0;display:flex}.header-left{align-items:center;display:flex}.header-center{text-align:center;flex:1}.entity-name{color:#fff;margin:0 0 6px;font-size:1.4rem;font-weight:700}.entity-genres{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.detail-section{color:var(--text);border-left:3px solid var(--primary-light);text-align:left;background:#9a69e60a;border-radius:8px;margin:16px 24px;padding:14px;font-size:.9rem;line-height:1.6}.section-label{color:var(--accent-soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.8rem;display:block}.detail-section p{margin:0}.events-section{border-left:3px solid var(--primary-light);background:#9a69e60a;border-radius:8px;margin:16px 24px;padding:14px}.events-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:.9rem;font-weight:600;display:flex}.events-toggle:hover{text-decoration:underline}.events-toggle:disabled{cursor:default;opacity:.7}.events-toggle:disabled:hover{text-decoration:none}.events-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.event-item{background:#ffffff08;border-radius:6px;padding:10px 12px}.event-item-title{color:var(--text);margin-bottom:4px;font-size:.88rem;font-weight:600}.event-item-meta{color:var(--text-muted);align-items:center;gap:8px;font-size:.78rem;display:flex}.event-item-link{color:var(--accent);margin-top:6px;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-block}.event-item-link:hover{text-decoration:underline}.links-row{flex-wrap:wrap;justify-content:center;gap:10px;padding:0 24px 16px;display:flex}.detail-link{color:var(--accent);background:#ebcf771a;border:1px solid #ebcf774d;border-radius:16px;align-items:center;gap:6px;padding:8px 16px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-flex}.detail-link:hover{background:#ebcf7733}.entity-meta{text-align:center;color:var(--text-muted);opacity:.6;padding:6px 24px 14px;font-size:.65rem}.modal-loading{flex-direction:column;justify-content:center;align-items:center;padding:50px 30px;display:flex}.loading-text{color:var(--text-muted);margin-top:14px;font-size:.85rem}.error-text{color:var(--danger);margin:18px 24px;font-size:.9rem}.event-content-wrapper{align-items:flex-start;gap:24px;display:flex}.event-main-content{flex:1;min-width:0}.event-minimap-wrapper{background:#0c0a1a;border:1px solid #9a69e666;border-radius:12px;flex-shrink:0;width:168px;height:115px;overflow:hidden;box-shadow:0 0 20px #9a69e633}.event-minimap{background:#0a0814;border-radius:12px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.world-map-img{object-fit:contain;-webkit-filter:grayscale(.6)contrast(1.2)brightness(.35)saturate(.3)hue-rotate(230deg);width:100%;height:100%;display:block}.map-marker-group{width:0;height:0;display:block}.map-marker-glow{background:radial-gradient(circle,#ffd70099 0%,#9a69e64d 50%,#0000 70%);border-radius:50%;width:19px;height:19px;margin-top:-9px;margin-left:-9px;animation:2s ease-in-out infinite mapPulse;position:absolute;top:50%;left:50%}.map-marker-star{background:gold;border-radius:50%;width:10px;height:10px;margin-top:-5px;margin-left:-5px;position:absolute;top:50%;left:50%;box-shadow:0 0 6px gold,0 0 12px #9a69e6,0 0 18px #9a69e680}.map-marker-core{background:#fff;border-radius:50%;width:5px;height:5px;margin-top:-2px;margin-left:-2px;position:absolute;top:50%;left:50%;box-shadow:0 0 4px #fff}@keyframes mapPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}.event-id-debug{color:var(--text-muted,#888);letter-spacing:.02em;cursor:help;background:#9a69e626;border:1px solid #9a69e640;border-radius:4px;margin-bottom:4px;padding:1px 6px;font-family:monospace;font-size:.65rem;display:inline-block}@media (width<=640px){.event-content-wrapper{flex-direction:column}.event-minimap-wrapper{width:120px;height:120px;margin-top:14px}}.landing-page{flex-direction:column;gap:8px;padding-bottom:40px;display:flex}.landing-page>.user-info-bar{justify-content:center;width:100%;margin-top:0;margin-bottom:0;padding:0 24px;display:flex}.landing-page>.landing-hero{width:100%;margin-top:0}.auth-panel{width:100%;animation:.3s ease-out authPanelFadeIn;display:none}.auth-panel.active{display:block}.auth-panel>.card{width:100%;margin:0 auto}@keyframes authPanelFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.artists-search-container{margin-bottom:34px}.artists-search-wrapper{max-width:480px;position:relative}.artists-search-icon{color:var(--text-muted);font-size:1rem;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.artists-search-input{background:var(--bg-input);width:100%;color:var(--text);border:1px solid #9a69e64d;border-radius:8px;padding:14px 18px 14px 46px;font-size:1rem;transition:border-color .2s}.artists-search-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #bea5ff26}.artists-feed{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-flow:dense;gap:24px;display:grid}.artist-card{background:var(--bg-card);border-radius:var(--radius);cursor:pointer;border:1px solid #9a69e640;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.artist-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #6e39d066}.artist-card-wide{grid-column:span 2}.artist-card-tall{grid-row:span 2}.artist-card-media{aspect-ratio:1;background:var(--bg-input);width:100%;position:relative;overflow:hidden}.artist-card-wide .artist-card-media{aspect-ratio:2}.artist-card-tall .artist-card-media{aspect-ratio:1/1.5}.artist-card-image{object-fit:cover;object-position:top;width:100%;height:100%}.artist-card-image-placeholder{width:100%;height:100%;color:var(--primary-light);background:linear-gradient(135deg, var(--bg-input) 0%, #9a69e633 100%);justify-content:center;align-items:center;font-size:3rem;font-weight:700;display:flex}.artist-card-info{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex}.artist-card-name{color:#fff;font-size:1.15rem;font-weight:600;line-height:1.3}.artist-card-genres{flex-wrap:wrap;gap:6px;display:flex}.artist-genre-tag{color:var(--primary-light);background:#9a69e633;border-radius:4px;padding:3px 8px;font-size:.75rem}.artist-card-stats{border-top:1px solid #9a69e626;gap:16px;margin-top:auto;padding-top:12px;display:flex}.artist-stat{align-items:center;gap:6px;display:flex}.artist-stat-icon{font-size:.9rem}.artist-stat-value{color:var(--accent);font-size:.95rem;font-weight:600}.artist-stat-label{color:var(--text-muted);font-size:.75rem}.view,.view[data-entity=artist]{--entity-accent:#9a69e6;--entity-accent-glow:#6e39d066;--entity-accent-border:#9a69e640}.view[data-entity=event]{--entity-accent:#2ecc71;--entity-accent-glow:#2ecc7166;--entity-accent-border:#2ecc7140}.view[data-entity=venue]{--entity-accent:#ebcf77;--entity-accent-glow:#ebcf7166;--entity-accent-border:#ebcf7140}.discovery-card,.artist-card,.event-card-discovery,.venue-card{border-color:var(--entity-accent-border,#9a69e640)}.discovery-card:hover,.artist-card:hover,.event-card-discovery:hover,.venue-card:hover{box-shadow:0 8px 32px var(--entity-accent-glow,#6e39d066)}.view[data-entity=event] .card-genre-tag{color:#82e6aa;background:#2ecc712e}.view[data-entity=venue] .card-genre-tag{color:var(--accent-soft);background:#ebcf712e}.view[data-entity=event] .next-btn{background:linear-gradient(135deg,#1f8a4a 0%,#2ecc71 50%,#82e6aa 100%);border-color:#2ecc7159;box-shadow:0 4px 12px #2ecc714d}.view[data-entity=venue] .next-btn{color:#1a1530;background:linear-gradient(135deg,#b8922e 0%,#ebcf77 50%,#ffecb3 100%);border-color:#ebcf7159;box-shadow:0 4px 12px #ebcf714d}.skeleton{pointer-events:none}.skeleton .card-media,.skeleton-block{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 50%,#ffffff0a 75%) 0 0/200% 100%;border-radius:10px;animation:1.5s ease-in-out infinite skeletonShimmer}.skeleton-line{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 50%,#ffffff0a 75%) 0 0/200% 100%;border-radius:6px;height:14px;margin-bottom:8px;animation:1.5s ease-in-out infinite skeletonShimmer}.skeleton-name{width:70%;height:20px}.skeleton-genres{width:50%;height:12px}.skeleton-stats{width:40%;height:12px}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.filter-chips{flex-wrap:wrap;gap:8px;margin:16px 0 8px;display:flex}.filter-chip{color:var(--text-muted);cursor:pointer;background:#9a69e61a;border:1px solid #9a69e640;border-radius:16px;padding:4px 14px;font-size:.78rem;font-weight:600;transition:background .2s,color .2s,border-color .2s}.filter-chip:hover{color:var(--text);background:#9a69e633}.filter-chip.active{background:var(--entity-accent,var(--primary));border-color:var(--entity-accent,var(--primary));color:#fff}.filter-chip-count{opacity:.6;margin-left:4px;font-size:.7rem}.event-card-discovery{background:var(--bg-card);border:1px solid var(--entity-accent-border,#2ecc7140);border-radius:var(--radius);cursor:pointer;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.event-card-discovery:hover{box-shadow:0 8px 32px var(--entity-accent-glow,#2ecc7166);transform:translateY(-4px)}.event-card-discovery-wide{grid-column:span 2}.event-card-discovery-tall{grid-row:span 2}.event-date-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--entity-accent-border);color:var(--entity-accent,#2ecc71);text-align:center;z-index:2;background:#000000b3;border-radius:8px;padding:4px 10px;font-size:.72rem;font-weight:700;line-height:1.2;position:absolute;top:10px;right:10px}.event-date-badge .date-month{text-transform:uppercase;font-size:.65rem;display:block}.event-date-badge .date-day{font-size:1.1rem;display:block}.venue-card{background:var(--bg-card);border:1px solid var(--entity-accent-border,#ebcf7140);border-radius:var(--radius);cursor:pointer;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.venue-card:hover{box-shadow:0 8px 32px var(--entity-accent-glow,#ebcf7166);transform:translateY(-4px)}.venue-card-wide{grid-column:span 2}.venue-card-tall{grid-row:span 2}.hero-date-time{color:var(--entity-accent,#2ecc71);margin-top:6px;font-size:.9rem;font-weight:600}.hero-venue{color:var(--accent);margin-top:4px;font-size:.9rem;font-weight:600}.hero-location{color:var(--entity-accent,#ebcf77);margin-top:6px;font-size:.9rem;font-weight:600}.hero-price{color:var(--accent-soft);margin-top:4px;font-size:.85rem;font-weight:600}.hero-events-count{color:var(--primary-light);margin-top:6px;font-size:.85rem}.venue-vibe{color:var(--text-muted);font-size:.82rem}#infinite-scroll-sentinel{width:100%;height:1px}.card-media{aspect-ratio:1;background:var(--bg-input);width:100%;position:relative;overflow:hidden}.discovery-card-wide .card-media{aspect-ratio:2}.discovery-card-tall .card-media{aspect-ratio:1/1.5}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-icon{opacity:.5;margin-bottom:16px;font-size:3rem}.empty-hint{opacity:.7;margin-top:8px;font-size:.85rem}.user-info-bar{max-width:1152px;margin:0 auto;padding:0 24px}.user-info-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e633;align-items:center;gap:16px;padding:14px 24px;animation:.3s fadeIn;display:flex}.user-info-greeting{color:var(--text);flex:1;font-size:.95rem}.user-info-greeting strong{color:var(--accent)}.user-info-vibe-link{color:var(--primary-light);white-space:nowrap;background:linear-gradient(135deg,#9a69e626 0%,#9a69e614 100%);border:1px solid #9a69e64d;border-radius:20px;align-items:center;gap:6px;padding:8px 18px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex}.user-info-vibe-link:hover{color:#fff;background:linear-gradient(135deg,#9a69e64d 0%,#9a69e626 100%);transform:translateY(-1px);box-shadow:0 2px 12px #9a69e633}.user-info-vibe-link .vibe-link-count{color:var(--accent);font-weight:700}.vibes-button{color:var(--primary-light);white-space:nowrap;background:linear-gradient(135deg,#9a69e626 0%,#9a69e614 100%);border:1px solid #9a69e64d;border-radius:20px;align-items:center;gap:6px;padding:8px 18px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .2s,transform .15s,box-shadow .2s;display:inline-flex}.vibes-button:hover{color:#fff;background:linear-gradient(135deg,#9a69e64d 0%,#9a69e626 100%);transform:translateY(-1px);box-shadow:0 2px 12px #9a69e633}.vibes-feed{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-flow:dense;gap:20px;display:grid}.vibe-tile{background:var(--bg-card);cursor:pointer;border:1px solid #9a69e633;border-radius:14px;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.vibe-tile:hover{border-color:var(--primary-light);transform:translateY(-4px);box-shadow:0 8px 32px #6e39d059}.vibe-tile-0,.vibe-tile-1,.vibe-tile-2{grid-column:span 1}.vibe-tile-3{grid-column:span 2}.vibe-tile-4{grid-column:span 1}.vibe-tile-5{grid-area:span 1/span 1}.vibe-tile-3 .vibe-tile-content{text-align:left}.vibe-tile-media{aspect-ratio:16/10;width:100%;position:relative;overflow:hidden}.vibe-tile-3 .vibe-tile-media{aspect-ratio:2}.vibe-tile-image{object-fit:cover;width:100%;height:100%;transition:transform .4s}.vibe-tile:hover .vibe-tile-image{transform:scale(1.05)}.vibe-tile-placeholder{color:#ffffff4d;justify-content:center;align-items:center;width:100%;height:100%;font-size:2.5rem;font-weight:700;display:none}.vibe-tile-overlay{opacity:.7;background:linear-gradient(#0000 40%,#000000b3 100%);justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.vibe-tile:hover .vibe-tile-overlay{opacity:.9}.vibe-tile-icon{filter:drop-shadow(0 2px 8px #00000080);font-size:2.5rem;transition:transform .3s}.vibe-tile:hover .vibe-tile-icon{transform:scale(1.15)}.vibe-tile-content{flex-direction:column;flex:1;gap:6px;padding:14px 16px;display:flex}.vibe-tile-name{color:#fff;font-size:1.05rem;font-weight:700;line-height:1.25}.vibe-tile-tags{flex-wrap:wrap;gap:4px;display:flex}.vibe-tag{color:var(--primary-light);background:#9a69e626;border-radius:10px;padding:2px 8px;font-size:.68rem;font-weight:600}.vibe-tile-location{color:var(--accent);font-size:.8rem;font-weight:500}.vibe-tile-date{color:var(--text-muted);font-size:.8rem}.vibe-tile-quote{color:var(--text-muted);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:.82rem;font-style:italic;line-height:1.4;display:-webkit-box;overflow:hidden}.vibe-tile-source{text-transform:uppercase;letter-spacing:.05em;z-index:2;border-radius:12px;padding:3px 10px;font-size:.65rem;font-weight:700;position:absolute;top:10px;right:10px}.vibe-tile-artist .vibe-tile-source{color:#fff;background:#9a69e6b3}.vibe-tile-venue .vibe-tile-source{color:var(--bg);background:#ebcf77b3}.vibe-tile-event .vibe-tile-source{color:#fff;background:#2ecc71b3}@media (width<=640px){.vibes-feed{grid-template-columns:1fr}.vibe-tile-3{grid-column:span 1}.vibe-tile-3 .vibe-tile-media{aspect-ratio:16/10}.user-info-card{text-align:center;flex-direction:column;gap:10px;padding:12px 16px}.nav-brand-text{font-size:1.1rem}#navbar{padding:10px 16px}.nav-links{gap:2px}.nav-btn{padding:6px 10px;font-size:.8rem}}@media (width<=768px){.sm-metrics-grid,.sm-agent-comparison{grid-template-columns:1fr}.sm-metrics-row{grid-template-columns:repeat(2,1fr)}.sm-agent-compare-stats{grid-template-columns:1fr}}.sm-observability-view{padding:20px 0}.sm-nav-tabs{border-bottom:2px solid #9a69e64d;gap:8px;margin-bottom:24px;padding-bottom:12px;display:flex}.sm-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px 8px 0 0;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .3s}.sm-tab:hover{color:var(--text);background:#9a69e61a}.sm-tab.active{color:var(--accent);border-bottom:3px solid var(--accent);background:#9a69e633}.sm-realtime-section{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e64d;margin-bottom:24px;padding:20px}.sm-realtime-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.sm-realtime-card{border-radius:var(--radius);text-align:center;background:#9a69e61a;border:1px solid #9a69e633;padding:20px}.sm-realtime-icon{margin-bottom:10px;font-size:2.5rem}.sm-realtime-value{color:var(--accent);font-size:2.5rem;font-weight:800}.sm-realtime-label{color:var(--text-muted);margin-top:5px;font-size:.9rem}.sm-metrics-section{margin-bottom:24px}.sm-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;display:grid}.sm-metric-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e64d;padding:20px;transition:transform .2s}.sm-metric-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.sm-metric-header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.sm-metric-header h4{color:var(--text-muted);margin:0}.sm-metric-icon{font-size:1.5rem}.sm-metric-value{margin:10px 0;font-size:2rem;font-weight:800}.sm-metric-breakdown{color:var(--text-muted);border-top:1px solid #9a69e633;justify-content:space-between;padding-top:10px;font-size:.85rem;display:flex}.sm-score-badge{border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:60px;height:60px;font-weight:800;display:flex}.sm-score-value{font-size:1.5rem}.sm-score-grade{opacity:.8;font-size:.8rem}.sm-gauge{width:60px;height:60px;position:relative}.sm-gauge-svg{width:100%;height:100%}.sm-gauge-value{font-size:.8rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sm-latency-bar{align-items:center;gap:10px;display:flex}.sm-latency-fill{border-radius:4px;min-width:50px;height:8px;transition:width .3s}.sm-latency-value{color:var(--text-muted);font-size:.85rem}.sm-agent-comparison{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.sm-agent-compare-card{background:var(--bg-card);border-radius:var(--radius);cursor:pointer;border:1px solid #9a69e64d;padding:20px;transition:all .3s}.sm-agent-compare-card:hover{box-shadow:var(--shadow);border-color:var(--accent);transform:translateY(-2px)}.sm-agent-compare-header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.sm-agent-compare-stats{grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:15px;display:grid}.sm-agent-stat{text-align:center}.sm-agent-stat-label{color:var(--text-muted);margin-bottom:5px;font-size:.8rem;display:block}.sm-agent-stat-value{font-size:1.2rem;font-weight:700;display:block}.sm-timeline{padding-left:30px;position:relative}.sm-timeline:before{content:"";background:#9a69e64d;width:2px;position:absolute;top:0;bottom:0;left:15px}.sm-timeline-item{background:var(--bg-card);border-radius:var(--radius);border-left:4px solid;margin-bottom:15px;padding:15px;position:relative}.sm-timeline-item:before{content:"";background:var(--primary);border:2px solid var(--bg);border-radius:50%;width:12px;height:12px;position:absolute;top:20px;left:-26px}.sm-timeline-header{justify-content:space-between;margin-bottom:10px;font-size:.85rem;display:flex}.sm-timeline-time{color:var(--text-muted)}.sm-timeline-agent{background:#9a69e633;border-radius:4px;padding:2px 8px;font-size:.75rem}.sm-timeline-content{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.sm-timeline-entity{font-weight:600}.sm-timeline-status{background:#0003;border-radius:4px;padding:2px 8px;font-size:.8rem}.sm-timeline-metrics{color:var(--text-muted);align-items:center;gap:15px;font-size:.8rem;display:flex}.sm-agent-detail-view{flex-direction:column;gap:20px;display:flex}.sm-agent-detail-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e64d;padding:24px}.sm-agent-detail-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.sm-metrics-row{border-radius:var(--radius);background:#9a69e61a;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;margin-bottom:30px;padding:20px;display:grid}.sm-metric-item{text-align:center}.sm-metric-item .sm-metric-value{margin:5px 0;font-size:1.8rem}.sm-metric-item .sm-metric-label{color:var(--text-muted);font-size:.85rem}.sm-progress-bar{background:#0000004d;border-radius:4px;flex:1;height:8px;overflow:hidden}.sm-progress-fill{border-radius:4px;height:100%;transition:width .5s}.sm-stat-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.sm-stat-row span:first-child{min-width:200px;font-size:.9rem}.sm-stat-row span:last-child{text-align:right;min-width:60px;color:var(--text-muted);font-size:.9rem}.sm-error-bar{align-items:center;gap:10px;margin-bottom:8px;display:flex}.sm-error-category{min-width:150px;font-size:.85rem}.sm-error-fill{border-radius:3px;flex:1;height:6px}.sm-training-filters{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e64d;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin:20px 0;padding:20px;display:grid}.sm-filter-group{flex-direction:column;gap:8px;display:flex}.sm-filter-group label{color:var(--text-muted);font-size:.9rem}.sm-select,.sm-input{background:var(--bg-input);color:var(--text);border:1px solid #2a2a4a;border-radius:6px;padding:10px;font-size:.9rem}.sm-training-actions{margin:20px 0}.sm-btn-lg{padding:12px 24px;font-size:1rem}.sm-training-info{background:var(--bg-card);border-radius:var(--radius);border:1px solid #9a69e64d;margin-top:30px;padding:20px}.sm-code-block{color:var(--text);background:#1a1a2e;border-radius:8px;padding:20px;font-family:Consolas,Monaco,monospace;font-size:.85rem;line-height:1.6;overflow-x:auto}.sm-section-controls{align-items:center;gap:10px;display:flex}.sm-empty-state{text-align:center;color:var(--text-muted);padding:40px;font-size:1rem}.sm-loading{text-align:center;color:var(--text-muted);padding:40px}@media (width<=768px){.sm-metrics-grid,.sm-agent-comparison{grid-template-columns:1fr}.sm-metrics-row{grid-template-columns:repeat(2,1fr)}.sm-agent-compare-stats{grid-template-columns:1fr}}.copyright-footer{text-align:center;color:var(--text-muted);border-top:1px solid #9a69e626;justify-content:center;align-items:center;gap:16px;margin-top:40px;padding:20px 32px;font-size:.75rem;display:flex}.copyright-footer a{color:var(--primary-light);text-decoration:none;transition:color .2s}.copyright-footer a:hover{color:var(--accent);text-decoration:underline}.about-page{flex-direction:column;min-height:calc(100vh - 80px);display:flex}.about-hero{flex:1;padding:34px!important}.about-content{max-width:720px;margin:32px auto 0}.about-section{margin-bottom:40px}.about-section h2{color:var(--primary-light);margin-bottom:16px;font-size:1.4rem;font-weight:700}.about-section p{color:var(--text);margin-bottom:12px;line-height:1.7}.values-list{padding:0;list-style:none}.values-list li{color:var(--text);padding:8px 0;line-height:1.6}.contact-link{font-weight:600;text-decoration:none;color:var(--accent)!important}.contact-link:hover{text-decoration:underline}.beta-testers-section{border-radius:var(--radius);background:#9a69e614;border:1px solid #9a69e633;margin:40px 0;padding:24px}.beta-testers-section h3{color:var(--accent);margin-bottom:12px;font-size:1.2rem}.beta-testers-intro{color:var(--text-muted);margin-bottom:20px;font-size:.9rem;line-height:1.6}.beta-testers-list{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.beta-tester{color:var(--accent);background:#ebcf7726;border:1px solid #ebcf7740;border-radius:20px;padding:6px 14px;font-size:.85rem;font-weight:600}.about-note{color:var(--text-muted);font-style:italic}.suggestions-box{border-radius:var(--radius);background:#9a69e60f;border:1px solid #9a69e626;margin-top:40px;padding:24px}.suggestions-box label{color:var(--primary-light);margin-bottom:12px;font-size:1rem;font-weight:600;display:block}.suggestions-box textarea{background:var(--bg-input);width:100%;color:var(--text);resize:vertical;border:1px solid #9a69e64d;border-radius:8px;margin-bottom:12px;padding:12px 16px;font-family:inherit;font-size:.9rem;transition:border-color .2s}.suggestions-box textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #9a69e626}.suggestions-box .btn{padding:8px 20px;font-size:.85rem}#suggestionsStatus{margin-top:10px;font-size:.85rem;display:block}#suggestionsStatus.success{color:var(--success)}#suggestionsStatus.error{color:var(--danger)}
