/* Shared presentation for shortcode and archive station cards. */
.tunesera-station-card {
 box-sizing: border-box; display: grid; grid-template-columns: 66px minmax(0, 1fr) auto;
 align-items: center; gap: 14px; padding: 20px 24px; margin: 0;
 background: #fff; color: #20232b; border: 0; border-bottom: 1px solid #e5e7ef; border-radius: 0;
 font-family: inherit; container-type: inline-size;
}
.tunesera-station-card:hover { background: #fafaff; }
.tunesera-station-card a { color: inherit; text-decoration: none; }
.tunesera-station-card a:hover { color: #675df6; text-decoration: underline; }
.tunesera-station-card a:focus-visible, .tunesera-station-card button:focus-visible { outline: 2px solid #675df6; outline-offset: 3px; }
.tunesera-station-card .tunesera-card__logo { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 13px; overflow: hidden; background: #f1eeff; color: #675df6; font-size: 22px; font-weight: 800; border: 1px solid #ece9ff; }
.tunesera-card__logo img { width: 100%; height: 100%; object-fit: cover; }
.tunesera-card__body { min-width: 0; }
.tunesera-card__title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tunesera-station-card .tunesera-card__title h2 { font-size: 16px; font-weight: 750; line-height: 1.4; margin: 0; padding: 0; color: inherit; }
.tunesera-card__title > span { color: #10ae75; background: #eaf9f2; border-radius: 999px; padding: 4px 7px; font-size: 10px; font-weight: 800; letter-spacing: .4px; }
.tunesera-station-card .tunesera-card__body p { margin: 5px 0 9px; font-size: 13px; line-height: 1.6; color: #7a8090; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.tunesera-card__meta { display: flex; flex-direction: column; gap: 7px; font-size: 12px; color: #676e7b; }
.tunesera-card__locations, .tunesera-card__genres { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; overflow-wrap: anywhere; }
.tunesera-card__genres:empty { display: none; }
.tunesera-card__tag { background: #f4f5f8; border-radius: 999px; padding: 4px 7px; max-width: 100%; }
.tunesera-card__now { color: #7a808d; font-size: 12px; margin-top: 7px; }
.tunesera-card__now[hidden] { display: none; }
.tunesera-station-card .tunesera-card__play { display: flex; align-items: center; justify-content: center; gap: 8px; background: #675df6; border: 0; border-radius: 11px; color: #fff; height: 42px; min-width: 100px; padding: 0 14px; font: inherit; font-size: 14px; cursor: pointer; box-shadow: 0 5px 14px rgba(103,93,246,.18); }
.tunesera-station-card .tunesera-card__play.is-playing { background: #252833; }
.tunesera-card__play:disabled { opacity: .5; cursor: default; }
.tunesera-card__play.is-loading:disabled { opacity: 1; }
.tunesera-card__play.is-loading::before { content: ''; width: 14px; height: 14px; border: 2px solid #ffffff77; border-top-color: #fff; border-radius: 50%; animation: tunesera-card-spin .75s linear infinite; }
@keyframes tunesera-card-spin { to { transform: rotate(360deg); } }
.tunesera-internet-radio-directory-archive__stations.is-list { display: flex; flex-direction: column; gap: 0; overflow: hidden; border: 1px solid #e5e7ef; border-radius: 16px; }
.is-list > .tunesera-station-card:last-child { border-bottom: 0; }
.is-grid > .tunesera-station-card { grid-template-columns: 66px minmax(0,1fr); border: 1px solid #e5e7ef; border-radius: 16px; }
.is-grid > .tunesera-station-card .tunesera-card__play { grid-column: 1 / -1; width: 100%; }
.tunesera-internet-radio-directory-directory.is-compact .tunesera-station-card, .tunesera-internet-radio-directory-archive.is-compact .tunesera-station-card { grid-template-columns: 48px minmax(0,1fr); padding: 16px; gap: 12px; }
.tunesera-internet-radio-directory-directory.is-compact .tunesera-card__logo, .tunesera-internet-radio-directory-archive.is-compact .tunesera-card__logo { width: 48px; height: 48px; }
.tunesera-internet-radio-directory-directory.is-compact .tunesera-card__play, .tunesera-internet-radio-directory-archive.is-compact .tunesera-card__play { grid-column: 1 / -1; width: 100%; }
@media (max-width: 560px) {
 .tunesera-station-card { grid-template-columns: 48px minmax(0,1fr); padding: 16px; gap: 12px; }
 .tunesera-station-card .tunesera-card__logo { width: 48px; height: 48px; }
 .tunesera-station-card .tunesera-card__play { grid-column: 1 / -1; width: 100%; }
}
/* Keep theme content-link rules from changing only the shortcode cards. */
.tunesera-internet-radio-directory-directory .tunesera-station-card .tunesera-card__body a,
.tunesera-internet-radio-directory-archive .tunesera-station-card .tunesera-card__body a { text-decoration: none; }
.tunesera-internet-radio-directory-directory .tunesera-station-card .tunesera-card__body a:hover,
.tunesera-internet-radio-directory-archive .tunesera-station-card .tunesera-card__body a:hover { text-decoration: underline; }

/* Compact radio grids: artwork and identity above, genres and play below. */
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-station-card{
 position:relative;grid-template-rows:auto auto!important;gap:12px!important;min-height:164px;padding:22px!important;align-items:start!important;align-content:start!important;
}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__logo{grid-column:1!important;grid-row:1!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__body{display:contents!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__identity{grid-column:2;grid-row:1;min-width:0}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__title{margin:0!important;padding:0}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__meta{display:contents!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__locations{align-self:start!important;margin-top:6px;font-size:14px!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__genres{grid-column:1/-1;grid-row:2;align-self:start;padding-right:56px;min-height:40px;align-items:center}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play{
 position:absolute;right:20px;bottom:20px;grid-column:auto!important;width:40px!important;min-width:40px!important;height:40px!important;padding:0!important;margin:0!important;border-radius:50%!important;font-size:0!important;box-shadow:none;
 background:color-mix(in srgb,var(--tunesera-brand) 12%,var(--tunesera-surface))!important;border:1px solid color-mix(in srgb,var(--tunesera-brand) 22%,var(--tunesera-line))!important;color:var(--tunesera-brand)!important;
}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play.is-playing{background:var(--tunesera-brand)!important;color:white!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-station-card:has(.tunesera-card__play.is-playing){border-color:var(--tunesera-brand)!important;background:color-mix(in srgb,var(--tunesera-brand) 5%,var(--tunesera-surface))!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__now{grid-column:1/-1;grid-row:2;padding-right:0;margin:0;font-size:13px;line-height:1.5;color:var(--tunesera-brand);overflow-wrap:anywhere}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__extra,
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__body>p{grid-column:1/-1;padding-right:66px;margin:0}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__now[hidden]{display:none}
@media(max-width:600px){.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-station-card{padding:16px!important}.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play{right:16px;bottom:16px}}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play svg{display:none}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play::before{content:'';display:block;width:0;height:0;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid currentColor;background:none;margin:0 0 0 3px;animation:none}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play::after{display:none}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play.is-playing::before{width:12px;height:17px;border:0;border-left:4px solid currentColor;border-right:4px solid currentColor;margin:0}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play.is-loading::before{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin:0;animation:tunesera-card-spin .7s linear infinite}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__play .ts-spinner{display:none}

/* Keep live metadata between station identity and the compact action row. */
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-station-card:has(.tunesera-card__now:not([hidden])){grid-template-rows:auto auto auto!important;row-gap:10px!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-station-card:has(.tunesera-card__now:not([hidden])) .tunesera-card__genres{grid-row:3}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .is-grid .tunesera-card__genres .tunesera-card__tag{padding:5px 10px;border:1px solid var(--tunesera-line,#e5e7ef);background:transparent;line-height:1.4;font-size:13px}

/* List rows keep location and genres together beneath the station title. */
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-station-card{position:relative;grid-template-columns:var(--tunesera-list-logo,66px) minmax(0,1fr) 112px!important;grid-template-rows:auto!important;gap:20px!important;align-items:center!important;padding:20px 24px!important;min-height:106px}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__body{display:grid!important;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:6px 16px;min-width:0;grid-column:2!important;grid-row:1!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__identity,.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__meta{display:contents!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__logo{grid-column:1!important;grid-row:1!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__title{grid-column:1/-1!important;grid-row:1!important;margin:0!important;align-self:center!important}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__locations{grid-column:1!important;grid-row:2!important;align-self:center!important;margin:0;font-size:14px}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__genres{grid-column:2!important;grid-row:2!important;margin:0;gap:8px;align-self:center!important;flex-wrap:nowrap;min-width:0}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play{grid-column:3!important;grid-row:1!important;position:static;width:112px!important;min-width:112px!important;height:42px!important;margin:0;padding:0 14px!important;box-shadow:none;gap:10px}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__now{grid-column:1/-1!important;grid-row:3!important;margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__extra,.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__body>p{grid-column:1/-1!important;grid-row:auto!important;margin:0}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-station-card:has(.is-playing){background:color-mix(in srgb,var(--tunesera-brand) 6%,var(--tunesera-surface))!important;box-shadow:inset 4px 0 var(--tunesera-brand)}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__tag{padding:5px 11px;border:1px solid var(--tunesera-line,#e5e7ef);border-radius:999px;background:transparent;font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play::before{content:'';display:block;flex:none;width:0;height:0;border:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:13px solid currentColor;margin:0;background:none}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play.is-playing::before{width:12px;height:17px;border:0;border-left:4px solid currentColor;border-right:4px solid currentColor}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play.is-loading::before{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tunesera-card-spin .7s linear infinite}
.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play svg,.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play .ts-spinner,.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play::after{display:none}
@media(max-width:600px){.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-station-card{grid-template-columns:40px minmax(0,1fr) 74px!important;gap:10px!important;padding:14px!important}.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__body{column-gap:8px}.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__play{width:74px!important;min-width:74px!important;padding:0 8px!important;gap:6px;font-size:12px}.tunesera-internet-radio-directory-directory.tunesera-internet-radio-directory-directory .tunesera-internet-radio-directory-station-list:not(.is-grid) .tunesera-card__tag{padding:3px 6px;font-size:11px}}
