.dashboard-nav { align-items: center; }
.dashboard-nav-link { border: 0; padding: 0; background: transparent; color: #789095; font: 700 11px Manrope; cursor: pointer; transition: color .2s ease; }
.dashboard-nav a.dashboard-nav-link { text-decoration: none; }
.dashboard-nav-link:hover, .dashboard-nav-link.active { color: #10212a; }
.dashboard-mobile-tabs { display: none; }
.dashboard-panel { animation: dashboard-panel-in .35s ease both; }
.favorites-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 55px; }
.favorite-event-card { position: relative; overflow: hidden; border: 1px solid #d9ecea; border-radius: 17px; background: #fff; box-shadow: 0 12px 28px rgba(15,62,65,.07); transition: transform .22s ease, box-shadow .22s ease; }
.favorite-event-card:hover { transform: translateY(-4px); box-shadow: 0 19px 34px rgba(15,62,65,.13); }
.favorite-event-link { display: block; color: inherit; text-decoration: none; }
.favorite-event-image { position: relative; height: 172px; overflow: hidden; background: linear-gradient(135deg, #bceee9, #e8f9f7); }
.favorite-event-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(7,35,43,.31), transparent 65%); }
.favorite-event-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.favorite-event-card:hover .favorite-event-image img { transform: scale(1.055); }
.favorite-event-image > span:not(.favorite-event-placeholder) { position: absolute; z-index: 1; bottom: 12px; left: 12px; padding: 5px 7px; border-radius: 5px; color: #23444a; background: #fff; font: 500 7px 'DM Mono', monospace; letter-spacing: .75px; }
.favorite-event-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: #259f99; }
.favorite-event-placeholder svg { width: 38px; }
.favorite-event-copy { padding: 15px 16px 12px; }
.favorite-event-copy p { margin: 0 0 8px; color: #789197; font: 500 8px 'DM Mono', monospace; letter-spacing: .55px; }
.favorite-event-copy h2 { min-height: 39px; margin: 0; color: #16353c; font-size: 17px; line-height: 1.05; letter-spacing: -.055em; }
.favorite-event-copy small { display: block; margin-top: 15px; color: #078b85; font-size: 9px; font-weight: 800; }
.favorite-remove { display: flex; align-items: center; justify-content: center; gap: 6px; width: calc(100% - 24px); min-height: 35px; margin: 0 12px 12px; border: 1px solid #f0d8d8; border-radius: 9px; color: #a35a5a; background: #fff9f9; font: 800 8px Manrope, sans-serif; cursor: pointer; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.favorite-remove:hover:not(:disabled) { border-color: #e6a3a3; color: #bd4f57; background: #fff3f4; }
.favorite-remove:disabled { opacity: .6; cursor: wait; }
.favorite-remove svg { width: 13px; fill: currentColor; }
.favorites-empty { position: relative; overflow: hidden; isolation: isolate; min-height: 350px; margin-top: 55px; padding: 48px 8%; border: 1px solid #d8edeb; border-radius: 20px; background: linear-gradient(120deg, rgba(255,255,255,.84), rgba(231,250,247,.8)); display: grid; grid-template-columns: 86px minmax(270px, 1fr) minmax(220px, .8fr); align-items: center; gap: 36px; }
.favorites-empty::after { content: ''; position: absolute; z-index: -1; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(0,170,169,.16), transparent 67%); right: -80px; top: -140px; }
.favorites-art { position: relative; width: 78px; height: 78px; display: grid; place-items: center; border-radius: 23px; color: #00aaa9; background: #d9f8f4; transform: rotate(-7deg); box-shadow: 0 16px 28px rgba(0,170,169,.14); }
.favorites-art svg:first-child { width: 37px; fill: currentColor; stroke-width: 1.8; }
.favorites-art svg:last-child { position: absolute; width: 18px; right: -12px; top: -11px; color: #e4a53c; fill: #fff2be; transform: rotate(14deg); }
.favorites-copy h2 { margin: 13px 0; font-size: clamp(29px, 3.2vw, 43px); line-height: .97; letter-spacing: -.07em; }
.favorites-copy h2 em { color: #00aaa9; font-family: Georgia, serif; font-weight: 400; }
.favorites-copy > p:not(.eyebrow) { max-width: 470px; margin-bottom: 17px; color: #70848b; font-size: 12px; line-height: 1.75; }
.future-notice { max-width: 390px; margin: 0 0 22px; padding: 10px 12px; border: 1px solid #d7ebe9; border-radius: 9px; color: #617980; background: rgba(255,255,255,.75); display: flex; align-items: center; gap: 9px; font-size: 10px; line-height: 1.4; }
.future-notice svg { flex: 0 0 auto; width: 16px; color: #00aaa9; }
.future-notice b { color: #148e8e; }
.favorite-stack { position: relative; height: 205px; min-width: 210px; }
.favorite-stack article { position: absolute; display: grid; align-content: center; gap: 8px; width: 185px; height: 174px; padding: 20px; color: #fff; border-radius: 16px; background: linear-gradient(145deg, #17323a, #077f82); box-shadow: 0 20px 34px rgba(14,68,71,.2); transform: rotate(-7deg); }
.favorite-stack article:last-child { right: 2px; bottom: 1px; background: linear-gradient(145deg, #0e8f8f, #55cfc6); transform: rotate(8deg); opacity: .96; }
.favorite-stack article span { position: absolute; right: 14px; top: 14px; display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: rgba(255,255,255,.18); }
.favorite-stack article span svg { width: 15px; fill: #fff; }
.favorite-stack article b { font-size: 16px; line-height: 1; letter-spacing: -.06em; }
.favorite-stack article small { font: 8px 'DM Mono'; letter-spacing: .5px; color: #c7edeb; }
@keyframes dashboard-panel-in { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
@media (max-width: 700px) {
  .dashboard-header .dashboard-nav { display: none; }
  .dashboard-main { padding-top: 48px; }
  .dashboard-mobile-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 29px; padding: 5px; border: 1px solid #dcebea; border-radius: 12px; background: rgba(255,255,255,.76); }
  .dashboard-tab { min-height: 42px; border: 0; border-radius: 8px; background: transparent; color: #789095; display: flex; justify-content: center; align-items: center; gap: 7px; font: 800 10px Manrope; cursor: pointer; }
  .dashboard-tab svg { width: 14px; }
  .dashboard-tab.active { color: #fff; background: #10212a; box-shadow: 0 5px 12px rgba(16,33,42,.15); }
  .dashboard-panel .empty-tickets, .favorites-empty, .favorites-grid { margin-top: 23px; }
  .favorites-grid { grid-template-columns: 1fr; gap: 13px; }
  .favorite-event-image { height: 166px; }
  .favorites-empty { min-height: 0; padding: 35px 24px 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 25px; }
  .favorites-art { width: 65px; height: 65px; border-radius: 19px; }
  .favorites-art svg:first-child { width: 32px; }
  .favorites-copy h2 { font-size: 34px; }
  .favorites-copy > p:not(.eyebrow) { font-size: 11px; }
  .future-notice { font-size: 9px; margin-bottom: 20px; }
  .favorite-stack { width: 100%; min-width: 0; height: 150px; margin-top: 1px; }
  .favorite-stack article { width: 158px; height: 141px; padding: 17px; }
  .favorite-stack article b { font-size: 14px; }
  .favorite-stack article:last-child { right: 0; }
}

.support-empty { min-height: 340px; margin-top: 55px; padding: 48px 8%; border: 1px dashed #bcdedb; border-radius: 20px; background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(235,250,248,.78)); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.support-art { position: relative; display: grid; place-items: center; width: 72px; height: 72px; margin-bottom: 23px; border-radius: 22px; color: #00aaa9; background: #d9f8f4; transform: rotate(-5deg); box-shadow: 0 15px 29px rgba(0,170,169,.13); }
.support-art > svg { width: 32px; }
.support-art span { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: #78dcd4; right: -12px; top: 7px; }
.support-art span + span { width: 4px; height: 4px; left: -10px; right: auto; bottom: 7px; top: auto; }
.support-empty h2 { margin: 13px 0; font-size: clamp(28px, 3vw, 40px); line-height: .98; letter-spacing: -.07em; }
.support-empty h2 em { color: #00aaa9; font-family: Georgia, serif; font-weight: 400; }
.support-empty > p:not(.eyebrow) { max-width: 405px; margin-bottom: 17px; color: #70848b; font-size: 12px; line-height: 1.75; }
.coming-soon { display: flex; align-items: center; gap: 7px; color: #118f8e; font: 500 9px 'DM Mono'; letter-spacing: 1px; }
.coming-soon svg { width: 14px; }
.dashboard-bottom-nav { display: none; }

@media (max-width: 700px) {
  .dashboard-main { padding-bottom: 104px; }
  .dashboard-mobile-tabs { display: none; }
  .dashboard-panel .empty-tickets, .favorites-empty, .favorites-grid, .support-empty { margin-top: 28px; }
  .support-empty { min-height: 375px; padding: 34px 22px; }
  .support-empty > p:not(.eyebrow) { font-size: 11px; }
  .dashboard-bottom-nav { position: fixed; z-index: 10; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); left: 12px; min-height: 66px; padding: 5px 3px; border: 1px solid rgba(207,231,229,.98); border-radius: 19px; background: rgba(255,255,255,.91); box-shadow: 0 15px 35px rgba(18,58,63,.15); backdrop-filter: blur(18px); display: grid; grid-template-columns: repeat(5, 1fr); align-items: stretch; }
  .dashboard-bottom-nav a, .dashboard-bottom-nav button { min-width: 0; border: 0; border-radius: 14px; color: #789297; background: transparent; display: grid; place-content: center; justify-items: center; gap: 3px; font: 700 8px Manrope; text-decoration: none; cursor: pointer; }
  .dashboard-bottom-nav svg { width: 18px; height: 18px; stroke-width: 1.8; }
  .dashboard-bottom-nav .active { color: #fff; background: #102c34; box-shadow: 0 6px 13px rgba(16,44,52,.17); }
}
