.site-header{background-color:var(--brand);color:var(--text-on-navy);position:sticky;top:0;z-index:10;box-shadow:var(--shadow-sm)}.site-header__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:64px}.brand{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:1.5rem;color:var(--text-on-navy);text-decoration:none}.nav-list{list-style:none;display:flex;gap:var(--space-5);margin:0;padding:0}.nav-link{color:var(--text-on-navy);text-decoration:none;font-weight:var(--fw-medium);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--easing-default)}.nav-link:hover,.nav-link--active{color:var(--accent)}.nav-link--cta{background-color:var(--accent);color:var(--text-on-amber);font-weight:var(--fw-semibold)}.nav-link--cta:hover{background-color:var(--accent);color:var(--text-on-amber);filter:brightness(1.05)}.nav-link--button{background:transparent;border:none;font:inherit;cursor:pointer}.nav-link--button:disabled{opacity:.6;cursor:not-allowed}.site-main{padding-block:var(--space-7);min-height:calc(100vh - 144px)}.site-footer{background-color:var(--bg-surface);border-top:1px solid var(--border-default);padding-block:var(--space-5)}.site-footer__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:.875rem;color:var(--text-secondary);flex-wrap:wrap}.site-footer nav{display:flex;gap:var(--space-4)}.site-footer a{color:var(--text-secondary)}.nav-link--disabled{color:var(--text-on-navy);opacity:.45;cursor:default;position:relative;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-weight:var(--fw-medium);-webkit-user-select:none;user-select:none}.nav-link--disabled:hover{color:var(--text-on-navy)}.nav-link__badge{font-size:.625rem;font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;background:#ffffff2e;color:var(--text-on-navy);border-radius:999px;padding:1px 6px;line-height:1.6}.skip-link{position:absolute;left:-9999px;top:var(--space-2);background:var(--accent);color:var(--text-on-amber);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:var(--fw-semibold);z-index:100}.skip-link:focus{left:var(--space-4)}.fan-feed{display:flex;flex-direction:column;gap:var(--space-8, 2rem);margin-top:var(--space-4, 1rem)}.feed-section__heading{font-size:var(--text-sm, .875rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary, #6b7280);margin:0 0 var(--space-3, .75rem);padding-bottom:var(--space-2, .5rem);border-bottom:1px solid var(--border-default, #e5e7eb)}.feed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.feed-row{display:flex;align-items:center;gap:var(--space-4, 1rem);padding:var(--space-3, .75rem) 0;border-bottom:1px solid var(--border-default, #e5e7eb)}.feed-row:last-child{border-bottom:none}.feed-row__main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.feed-row__title{font-weight:600;color:var(--text-primary, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-row__artist{font-size:var(--text-sm, .875rem);color:var(--color-amber, #d97706);text-decoration:none}.feed-row__artist:hover{text-decoration:underline}.feed-row__venue{font-size:var(--text-sm, .875rem);color:var(--text-secondary, #6b7280)}.feed-row__meta{display:flex;align-items:center;gap:var(--space-3, .75rem);flex-shrink:0}.feed-row__duration,.feed-row__date{font-size:var(--text-xs, .75rem);color:var(--text-secondary, #6b7280);white-space:nowrap}.feed-row__action{font-size:var(--text-xs, .75rem);font-weight:600;color:var(--color-amber, #d97706);text-decoration:none;white-space:nowrap}.feed-row__action:hover{text-decoration:underline}.feed-row--gig{align-items:flex-start}.feed-row__date-badge{flex-shrink:0;width:44px;display:flex;flex-direction:column;align-items:center;background:var(--color-navy, #1e3a5f);color:#fff;border-radius:var(--radius-sm, 4px);padding:var(--space-1, .25rem) 0;line-height:1}.feed-row__month{font-size:.6rem;font-weight:700;letter-spacing:.06em}.feed-row__day{font-size:1.25rem;font-weight:800;line-height:1.2}.btn-ticket{display:inline-flex;align-items:center;padding:var(--space-1, .25rem) var(--space-3, .75rem);background:var(--color-amber, #d97706);color:#fff;font-size:var(--text-xs, .75rem);font-weight:700;border-radius:var(--radius-sm, 4px);text-decoration:none;white-space:nowrap}.btn-ticket:hover{background:#b45309;color:#fff}.feed-empty{display:flex;flex-direction:column;gap:var(--space-4, 1rem);padding:var(--space-6, 1.5rem);background:var(--bg-surface, #f9fafb);border:1px solid var(--border-default, #e5e7eb);border-radius:var(--radius-md, 8px);color:var(--text-secondary, #6b7280)}.auth-form{max-width:420px;margin:0 auto;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm)}.auth-form h1{margin-top:0;margin-bottom:var(--space-2)}.auth-form>p{color:var(--text-secondary);margin-bottom:var(--space-5)}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field label{font-weight:var(--fw-medium);color:var(--text-primary)}.field input,.field select,.field textarea{font:inherit;color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-3);min-height:44px;transition:border-color var(--duration-fast) var(--easing-default)}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.field .help{font-size:var(--fs-caption);color:var(--text-secondary)}.field .error{font-size:var(--fs-caption);color:var(--color-danger);min-height:1em}.radio-group{display:flex;gap:var(--space-3)}.radio-group label{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;flex:1;min-height:44px}.radio-group input[type=radio]:checked+span{color:var(--brand);font-weight:var(--fw-semibold)}.radio-group label:has(input:checked){border-color:var(--brand);background:#1f3a5f0d}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--brand);color:var(--text-on-navy);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);min-height:44px;font:inherit;font-weight:var(--fw-semibold);cursor:pointer;width:100%;transition:filter var(--duration-fast) var(--easing-default)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--brand);font:inherit;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.form-footer{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-default);font-size:.875rem;color:var(--text-secondary);text-align:center}.form-error-banner{background:#b91c1c14;border:1px solid rgb(185 28 28 / .3);color:var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.artists-page__toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-bottom:var(--space-6)}.artists-page__toolbar .field{margin-bottom:0;min-width:160px}.artists-page__toolbar label{font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-1)}.artists-page__toolbar select{height:40px;padding-inline:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);font:inherit;color:var(--text-primary);cursor:pointer}.artists-page__toolbar select:focus-visible{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-5)}.artist-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:box-shadow var(--duration-default) var(--easing-default),transform var(--duration-default) var(--easing-default)}.artist-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);color:inherit}.artist-card__photo{width:100%;aspect-ratio:1 / 1;object-fit:cover;background:var(--color-light);display:block}.artist-card__photo-placeholder{width:100%;aspect-ratio:1 / 1;background:linear-gradient(135deg,var(--color-navy) 0%,#2d5a9e 100%);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:3rem;font-weight:var(--fw-bold);color:var(--color-white);letter-spacing:-.02em}.artist-card__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);flex:1}.artist-card__name{font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--fw-semibold);color:var(--brand);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artist-card__location{font-size:var(--fs-caption);color:var(--text-secondary);margin:0}.artist-card__genres{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:auto;padding-top:var(--space-2)}.artists-page__pagination{margin-top:var(--space-7);display:flex;justify-content:center}.artists-page__pagination button{background:var(--brand);color:var(--text-on-navy);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font:inherit;font-weight:var(--fw-semibold);cursor:pointer;min-height:44px;transition:filter var(--duration-fast) var(--easing-default)}.artists-page__pagination button:hover:not(:disabled){filter:brightness(1.1)}.artists-page__pagination button:disabled{opacity:.5;cursor:not-allowed}.genre-chip{display:inline-block;background:#1f3a5f14;color:var(--brand);border:1px solid rgb(31 58 95 / .18);border-radius:999px;padding:2px var(--space-3);font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap}.artists-page__empty,.artists-page__loading{grid-column:1 / -1;text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-secondary)}.artist-dashboard{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}.artist-dashboard__header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap}.artist-dashboard__header h1{margin:0 0 var(--space-1)}.artist-dashboard__panel{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm)}.artist-dashboard__panel h2{margin-top:0}.artist-dashboard__uploaders{display:grid;grid-template-columns:200px 1fr;gap:var(--space-5)}@media (max-width: 640px){.artist-dashboard__uploaders{grid-template-columns:1fr}}.artist-dashboard__footer{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.artist-form{max-width:760px}.artist-form__row{display:flex;gap:var(--space-4)}@media (max-width: 480px){.artist-form__row{flex-direction:column}}.artist-form__details{margin-top:var(--space-4);padding:var(--space-4);background:var(--bg-page);border:1px solid var(--border-default);border-radius:var(--radius-sm)}.artist-form__details summary{font-weight:var(--fw-semibold);cursor:pointer;margin-bottom:var(--space-3)}.image-uploader{display:flex;flex-direction:column}.image-uploader__preview{position:relative;background:var(--bg-page);border:1px dashed var(--border-default);border-radius:var(--radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:var(--fs-caption)}.image-uploader__preview img{width:100%;height:100%;object-fit:cover}.image-uploader__preview--square{width:160px;height:160px;border-radius:50%}.image-uploader__preview--wide{width:100%;aspect-ratio:16 / 6}.image-uploader__placeholder{padding:var(--space-3)}.image-uploader__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1f3a5f80;color:var(--text-on-navy);font-weight:var(--fw-semibold)}.genre-tags__chips{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);min-height:44px}.genre-tags__chip{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--brand);color:var(--text-on-navy);padding:var(--space-1) var(--space-3);border-radius:999px;font-size:.875rem;font-weight:var(--fw-medium)}.genre-tags__remove{background:transparent;border:none;color:var(--text-on-navy);cursor:pointer;font-size:1.125rem;line-height:1;padding:0}.genre-tags__input{flex:1;min-width:120px;border:none!important;background:transparent!important;min-height:0!important;padding:0 var(--space-1)!important;box-shadow:none!important}.artist-detail__hero{position:relative;margin-bottom:calc(72px + var(--space-4))}.artist-detail__cover{width:100%;height:280px;object-fit:cover;border-radius:var(--radius-md);display:block;background:linear-gradient(135deg,var(--color-navy) 0%,#2d5a9e 100%)}.artist-detail__cover-placeholder{width:100%;height:280px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-navy) 0%,#2d5a9e 100%)}.artist-detail__avatar-wrap{position:absolute;bottom:-64px;left:var(--space-6)}.artist-detail__avatar{width:128px;height:128px;border-radius:50%;object-fit:cover;border:4px solid var(--bg-page);box-shadow:var(--shadow-md);display:block;background:var(--color-light)}.artist-detail__avatar-placeholder{width:128px;height:128px;border-radius:50%;border:4px solid var(--bg-page);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#1f3a5f,#2d5a9e);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:2.25rem;font-weight:var(--fw-bold);color:var(--color-white)}.artist-detail__presskit{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6)}.artist-detail__presskit-left{display:flex;flex-direction:column;gap:var(--space-2)}.artist-detail__name{font-size:var(--fs-h1);font-weight:var(--fw-bold);color:var(--brand);margin:0;line-height:var(--lh-tight)}.artist-detail__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);color:var(--text-secondary);font-size:.9375rem}.artist-detail__meta-sep{color:var(--border-default)}.artist-detail__genres{display:flex;flex-wrap:wrap;gap:var(--space-1)}.artist-detail__presskit-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3)}.artist-detail__followers{font-size:var(--fs-caption);color:var(--text-secondary);text-align:right}.artist-detail__followers strong{display:block;font-size:var(--fs-h3);color:var(--text-primary);font-weight:var(--fw-bold)}.btn-follow{background:var(--accent);color:var(--text-on-amber);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);min-height:44px;font:inherit;font-weight:var(--fw-semibold);cursor:pointer;transition:filter var(--duration-fast) var(--easing-default)}.btn-follow:hover:not(:disabled){filter:brightness(1.06)}.btn-follow:disabled{opacity:.7;cursor:not-allowed}.artist-detail__socials{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-6)}.artist-detail__social-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.875rem;font-weight:var(--fw-medium);color:var(--brand);text-decoration:none;padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:border-color var(--duration-fast)}.artist-detail__social-link:hover{border-color:var(--brand);color:var(--brand)}.artist-detail__section{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5)}.artist-detail__section h2{margin-top:0;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-default)}.artist-detail__bio{white-space:pre-wrap;line-height:var(--lh-loose);color:var(--text-primary)}.track-list{display:flex;flex-direction:column;gap:0}.track-row{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default)}.track-row:last-child{border-bottom:none}.track-row__num{font-size:var(--fs-caption);color:var(--text-secondary);text-align:center;font-variant-numeric:tabular-nums}.track-row__info{display:flex;flex-direction:column;gap:2px;min-width:0}.track-row__title{font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-row__album{font-size:var(--fs-caption);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-row__duration{font-size:var(--fs-caption);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.track-row__actions{display:flex;gap:var(--space-2)}.track-row__actions button{background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--fs-caption);cursor:pointer;color:var(--text-secondary);transition:border-color var(--duration-fast),color var(--duration-fast)}.track-row__actions button:hover{border-color:var(--brand);color:var(--brand)}.track-row__actions button.danger:hover{border-color:var(--color-danger);color:var(--color-danger)}.track-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-default)}.track-form__full{grid-column:1 / -1}.track-form__actions{grid-column:1 / -1;display:flex;gap:var(--space-3);justify-content:flex-end}.track-form__actions .btn-primary{width:auto}.btn-secondary{background:none;color:var(--brand);border:1px solid var(--brand);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);min-height:44px;font:inherit;font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--duration-fast)}.btn-secondary:hover{background:#1f3a5f0f}.placeholder-section{color:var(--text-secondary);font-style:italic;text-align:center;padding:var(--space-6)}@media (max-width: 640px){.artist-detail__cover,.artist-detail__cover-placeholder{height:180px}.artist-detail__avatar,.artist-detail__avatar-placeholder{width:96px;height:96px}.artist-detail__avatar-wrap{bottom:-48px}.artist-detail__hero{margin-bottom:calc(48px + var(--space-4))}.artist-detail__presskit{flex-direction:column}.artist-detail__presskit-right{align-items:flex-start}.track-form{grid-template-columns:1fr}.track-form__full{grid-column:1}}.gigs-page__toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-bottom:var(--space-6)}.gigs-page__toolbar .field{margin-bottom:0;min-width:160px}.gigs-page__toolbar label{font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-1)}.gigs-page__toolbar select{height:40px;padding-inline:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);font:inherit;color:var(--text-primary);cursor:pointer}.gigs-page__toolbar select:focus-visible{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.gig-list{display:flex;flex-direction:column;gap:var(--space-4)}.gig-card{display:grid;grid-template-columns:72px 1fr auto;align-items:start;gap:var(--space-4);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:box-shadow var(--duration-default) var(--easing-default),border-color var(--duration-default)}.gig-card:hover{box-shadow:var(--shadow-md);border-color:var(--brand);color:inherit}.gig-card__date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--brand);color:var(--text-on-navy);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);min-width:60px;text-align:center}.gig-card__date-month{font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em}.gig-card__date-day{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:1}.gig-card__date-year{font-size:var(--fs-caption);opacity:.75}.gig-card__info{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.gig-card__title{font-family:var(--font-display);font-size:1.0625rem;font-weight:var(--fw-semibold);color:var(--brand);margin:0}.gig-card__artist{font-size:.875rem;color:var(--text-secondary)}.gig-card__artist a{color:var(--brand);font-weight:var(--fw-medium)}.gig-card__venue{font-size:.875rem;color:var(--text-primary)}.gig-card__location{font-size:var(--fs-caption);color:var(--text-secondary)}.gig-card__status{display:inline-block;font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:2px var(--space-2);border-radius:999px}.gig-card__status--cancelled{background:#b91c1c1a;color:var(--color-danger)}.gig-card__status--postponed{background:#e8a33d26;color:#92600a}.gig-card__actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2);white-space:nowrap}.gig-card__price{font-size:var(--fs-caption);color:var(--text-secondary)}.btn-ticket{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--accent);color:var(--text-on-amber);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font:inherit;font-size:.875rem;font-weight:var(--fw-semibold);text-decoration:none;min-height:36px;cursor:pointer;transition:filter var(--duration-fast)}.btn-ticket:hover{filter:brightness(1.06);color:var(--text-on-amber)}.gigs-page__pagination{margin-top:var(--space-7);display:flex;justify-content:center}.gigs-page__pagination button{background:var(--brand);color:var(--text-on-navy);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font:inherit;font-weight:var(--fw-semibold);cursor:pointer;min-height:44px;transition:filter var(--duration-fast)}.gigs-page__pagination button:hover:not(:disabled){filter:brightness(1.1)}.gigs-page__pagination button:disabled{opacity:.5;cursor:not-allowed}.gigs-page__empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-secondary)}@media (max-width: 600px){.gig-card{grid-template-columns:60px 1fr}.gig-card__actions{grid-column:1 / -1;flex-direction:row;align-items:center}}.search-page{max-width:720px}.search-tabs{display:flex;gap:var(--space-1);border-bottom:2px solid var(--border-default);margin-bottom:var(--space-5)}.search-tab{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:var(--space-3) var(--space-4);font:inherit;font-weight:var(--fw-semibold);color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);transition:color var(--duration-fast) var(--easing-default),border-color var(--duration-fast) var(--easing-default)}.search-tab:hover{color:var(--text-primary)}.search-tab--active{color:var(--brand);border-bottom-color:var(--brand)}.search-tab--disabled{opacity:.45;cursor:default}.search-tab__badge{font-size:.625rem;font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:999px;padding:1px 6px;line-height:1.6}.search-form{margin-bottom:var(--space-7)}.search-form__row{display:flex;gap:var(--space-3)}.search-input{flex:1;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:1rem;transition:border-color var(--duration-fast) var(--easing-default)}.search-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgb(var(--brand-rgb, 30 58 138) / .12)}.search-submit{padding:var(--space-3) var(--space-5);background:var(--brand);color:var(--text-on-navy);border:none;border-radius:var(--radius-sm);font:inherit;font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:opacity var(--duration-fast) var(--easing-default)}.search-submit:disabled{opacity:.6;cursor:not-allowed}.search-submit:not(:disabled):hover{opacity:.9}.search-status{color:var(--text-secondary)}.search-empty{padding:var(--space-8) 0;color:var(--text-primary)}.search-empty__hint{margin-top:var(--space-2);color:var(--text-secondary);font-size:.9rem}.search-prompt{padding:var(--space-8) 0;color:var(--text-secondary)}.search-prompt__hint{margin-top:var(--space-2);font-size:.9rem}.search-results{display:flex;flex-direction:column;gap:var(--space-8)}.search-section__heading{font-size:var(--fs-sm, .75rem);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default)}.search-list{display:flex;flex-direction:column}.search-section__more{display:inline-block;margin-top:var(--space-3);font-size:.875rem;color:var(--brand);text-decoration:none}.search-section__more:hover{text-decoration:underline}.search-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);text-decoration:none;color:inherit;transition:background var(--duration-fast) var(--easing-default)}.search-row:last-child{border-bottom:none}a.search-row:hover{background:var(--bg-surface);border-radius:var(--radius-sm);padding-inline:var(--space-3);margin-inline:calc(-1 * var(--space-3))}.search-row__avatar{width:44px;height:44px;border-radius:50%;background:var(--brand);color:var(--text-on-navy);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-bold);font-size:.875rem;flex-shrink:0;overflow:hidden}.search-row__avatar-img{width:100%;height:100%;object-fit:cover}.search-row__date-badge{width:44px;min-width:44px;background:var(--brand);color:var(--text-on-navy);border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-1) 0}.search-row__month{font-size:.6rem;font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;line-height:1}.search-row__day{font-size:1.125rem;font-weight:var(--fw-bold);line-height:1.2}.search-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.search-row__title{font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-row__sub{font-size:.875rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-row__link{color:var(--brand);text-decoration:none}.search-row__link:hover{text-decoration:underline}.search-row__meta{display:flex;align-items:center;gap:var(--space-3);font-size:.875rem;color:var(--text-secondary);flex-shrink:0}.search-row__action{color:var(--brand);text-decoration:none;font-weight:var(--fw-semibold)}.search-row__action:hover{text-decoration:underline}.btn-ticket{background:var(--accent);color:var(--text-on-amber);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font:inherit;font-size:.8125rem;font-weight:var(--fw-semibold);text-decoration:none;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:root{--color-navy: #1f3a5f;--color-amber: #e8a33d;--color-cream: #f6f1e7;--color-ink: #1b1b1e;--color-muted: #6b7280;--color-light: #e5e7eb;--color-white: #ffffff;--color-danger: #b91c1c;--color-success: #15803d;--bg-page: var(--color-cream);--bg-surface: var(--color-white);--text-primary: var(--color-ink);--text-secondary: var(--color-muted);--text-on-navy: var(--color-white);--text-on-amber: var(--color-ink);--border-default: var(--color-light);--accent: var(--color-amber);--brand: var(--color-navy);--font-display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--fs-display: 2.625rem;--fs-h1: 2.25rem;--fs-h2: 1.875rem;--fs-h3: 1.5rem;--fs-body: 1rem;--fs-caption: .75rem;--fs-mono: .8125rem;--lh-tight: 1.2;--lh-default: 1.5;--lh-loose: 1.75;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--container-max: 1200px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgb(0 0 0 / .04);--shadow-md: 0 4px 12px rgb(0 0 0 / .08);--duration-fast: .12s;--duration-default: .2s;--easing-default: cubic-bezier(.2, .8, .2, 1);--focus-ring: 0 0 0 3px rgb(31 58 95 / .4)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-default);color:var(--text-primary);background-color:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-display);color:var(--brand);line-height:var(--lh-tight);margin:0 0 var(--space-4)}h1{font-size:var(--fs-h1);font-weight:var(--fw-bold)}h2{font-size:var(--fs-h2);font-weight:var(--fw-semibold)}h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold)}p{margin:0 0 var(--space-4)}a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--accent)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}img,video,audio{max-width:100%;height:auto;display:block}code,pre{font-family:var(--font-mono);font-size:var(--fs-mono)}.skip-link{position:absolute;top:-40px;left:var(--space-4);background:var(--brand);color:var(--text-on-navy);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);z-index:100;transition:top var(--duration-default) var(--easing-default)}.skip-link:focus{top:var(--space-4)}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-4)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
