/* NGN Audio — inline "Listen" bar, full player, mini player, sheets, modal.
 * Colours come from the site tokens in ngn-styles.php, so light/dark follow
 * html.ngn-theme-dark automatically (no separate dark rules needed). */
.ngn-ibar .ngn-listen__btn{margin-left:auto;gap:.45rem;padding:.3rem .85rem .3rem .35rem;white-space:nowrap}
.ngn-ibar .ngn-listen__btn[hidden]{display:none}
.ngn-listen__icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:6px;border-radius:50%;
	background:var(--ngn-accent-solid,#1B4B91);color:#fff;box-sizing:border-box}
.ngn-listen__icon svg{display:block}
.ngn-listen__btn.is-busy .ngn-listen__icon svg{animation:ngnapspin 1s linear infinite}
@keyframes ngnapspin{to{transform:rotate(360deg)}}

html.ngn-ap-lock{overflow:hidden}

/* ---------- full player ---------- */
.ngn-ap{position:fixed;inset:0;z-index:100000;font-family:var(--ngn-font-ui,system-ui,sans-serif);color:var(--ngn-ink,#14161a)}
.ngn-ap[hidden]{display:none}
.ngn-ap__scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);will-change:opacity}
.ngn-ap__sheet{position:absolute;left:0;right:0;top:0;margin:0 auto;width:100%;height:100%;
	overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--ngn-surface,#fff);box-shadow:0 0 40px rgba(0,0,0,.35)}
@media(min-width:700px){.ngn-ap__sheet{top:3vh;height:94vh;max-width:460px;border-radius:16px}}
.ngn-ap__grab{display:flex;justify-content:center;width:100%;padding:14px 0 12px;border:0;background:transparent;cursor:grab;touch-action:none;
	position:sticky;top:0;z-index:2;background:var(--ngn-surface,#fff)}
.ngn-ap__grab span{width:52px;height:5px;border-radius:3px;background:#8a8d91}
.ngn-ap__art{width:100%;aspect-ratio:1/1;max-height:46vh;background:var(--ngn-paper,#f2f2f2)}
.ngn-ap__img{width:100%;height:100%;background-size:cover;background-position:center}
.ngn-ap__img.is-empty{background:linear-gradient(135deg,var(--ngn-accent-solid,#1B4B91),#0c2748)}
.ngn-ap__body{padding:18px 20px 40px}
.ngn-ap__src{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ngn-ap__badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:4px;background:var(--ngn-ink,#14161a);color:var(--ngn-surface,#fff)}
.ngn-ap-kicker{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ngn-ink,#14161a);opacity:.7;font-weight:500}
.ngn-ap__trow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ngn-ap__title{margin:0;font:700 1.35rem/1.25 var(--ngn-font-head,Georgia,serif);color:var(--ngn-ink,#14161a)}
.ngn-ap__more{flex:none;border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;padding:4px}
.ngn-ap__seekwrap{margin:22px 0 6px}
.ngn-ap__seek{-webkit-appearance:none;appearance:none;width:100%;height:20px;margin:0;background:transparent;cursor:pointer;--p:0%}
.ngn-ap__seek::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--ngn-ink,#14161a) var(--p),var(--ngn-rule,#d5d8dc) var(--p))}
.ngn-ap__seek::-moz-range-track{height:6px;border-radius:3px;background:var(--ngn-rule,#d5d8dc)}
.ngn-ap__seek::-moz-range-progress{height:6px;border-radius:3px;background:var(--ngn-ink,#14161a)}
.ngn-ap__seek::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:var(--ngn-ink,#14161a);border:0}
.ngn-ap__seek::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--ngn-ink,#14161a);border:0}
.ngn-ap__times{display:flex;justify-content:space-between;font-size:.85rem;opacity:.75;margin-top:4px}
.ngn-ap__ctl{display:flex;align-items:center;justify-content:space-between;padding:14px 22px 6px}
.ngn-ap__skip{position:relative;border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;padding:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center}
.ngn-ap__skipn{position:absolute;font:700 .8rem var(--ngn-font-ui,system-ui);top:50%;left:50%;transform:translate(-50%,-46%)}
.ngn-ap__play{border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;width:74px;height:74px;padding:10px}
.ngn-ap__util{display:flex;align-items:center;justify-content:space-around;margin:18px 0 26px;padding:6px 8px;border-radius:12px;background:var(--ngn-paper,#f2f2f2)}
.ngn-ap__util button{border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;min-width:64px;height:52px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font:700 1.15rem var(--ngn-font-ui,system-ui)}
.ngn-ap__util button[hidden]{display:none}
.ngn-ap__air{color:var(--ngn-accent-solid,#1B4B91)!important}
.ngn-ap__sleep.is-on{color:var(--ngn-accent-solid,#1B4B91)}
.ngn-ap__sleeplbl{font-size:.75rem;font-weight:600}
.ngn-ap-h{margin:26px 0 12px;font:500 .8rem var(--ngn-font-ui,system-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ngn-ink,#14161a)}
.ngn-ap-empty{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--ngn-rule,#d5d8dc);font-size:.95rem}
.ngn-ap-empty strong{font-size:1.15rem}
.ngn-ap-row{display:flex;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--ngn-rule,#d5d8dc);cursor:pointer}
.ngn-ap-row__thumb{flex:none;width:72px;height:72px;border-radius:4px;background:var(--ngn-ink,#14161a) center/cover}
.ngn-ap-row__text{flex:1;min-width:0}
.ngn-ap-row__title{margin:4px 0;font:700 1.02rem/1.25 var(--ngn-font-head,Georgia,serif)}
.ngn-ap-row__meta{font-size:.72rem;letter-spacing:.08em;opacity:.7}
.ngn-ap-iconbtn{flex:none;border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;padding:8px}

/* ---------- bottom sheets ---------- */
.ngn-ap-pop{position:absolute;inset:0;z-index:5;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.45)}
.ngn-ap-pop__sheet{width:100%;max-height:85%;overflow-y:auto;background:var(--ngn-surface,#fff);border-radius:16px 16px 0 0;padding:6px 0 22px}
.ngn-ap-grab{width:52px;height:5px;border-radius:3px;background:#8a8d91;margin:8px auto 14px}
.ngn-ap-pop__ttl{padding:6px 20px 14px;font-weight:700;border-bottom:1px solid var(--ngn-rule,#d5d8dc)}
.ngn-ap-pop__head{display:flex;gap:14px;padding:6px 20px 16px;align-items:center}
.ngn-ap-pop__thumb{flex:none;width:96px;height:96px;background:var(--ngn-ink,#14161a) center/cover}
.ngn-ap-pop__title{font:700 1.1rem/1.25 var(--ngn-font-head,Georgia,serif);margin-top:4px}
.ngn-ap-pop__list.is-card{margin:0 16px;border-radius:12px;background:var(--ngn-paper,#f2f2f2);padding:4px 0}
.ngn-ap-pop__row{display:flex;align-items:center;gap:16px;width:100%;padding:18px 20px;border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;text-align:left;font:400 1.1rem var(--ngn-font-ui,system-ui)}
.ngn-ap-pop__row:hover{background:rgba(127,127,127,.12)}
.ngn-ap-pop__row.is-checked{font-weight:700}
.ngn-ap-pop__lbl{flex:1}
.ngn-ap-pop__ico{display:inline-flex;width:28px;justify-content:center}

/* ---------- mini player: floating card, lifted off the bottom edge so it is easy to hit (PWA) ---------- */
.ngn-mini{position:fixed;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);z-index:99990;
	max-width:640px;margin:0 auto;background:var(--ngn-surface,#fff);color:var(--ngn-ink,#14161a);
	border:1px solid var(--ngn-rule,#d5d8dc);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.28);overflow:hidden;cursor:pointer;
	-webkit-tap-highlight-color:transparent}
.ngn-mini[hidden]{display:none}
.ngn-mini__bar{height:4px;background:var(--ngn-rule,#d5d8dc)}
.ngn-mini__bar i{display:block;height:4px;width:0;background:var(--ngn-accent-solid,#1B4B91)}
.ngn-mini__row{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 12px;min-height:72px}
.ngn-mini__art{flex:none;width:52px;height:52px;border-radius:8px;background:var(--ngn-ink,#14161a) center/cover}
.ngn-mini__txt{flex:1;min-width:0}
.ngn-mini__kick{display:block;font:600 .62rem var(--ngn-font-ui,system-ui);letter-spacing:.1em;opacity:.6}
.ngn-mini__title{margin-top:2px;font:700 .95rem/1.25 var(--ngn-font-head,Georgia,serif);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ngn-mini__play,.ngn-mini__x{flex:none;border:0;background:transparent;color:var(--ngn-ink,#14161a);cursor:pointer;width:52px;height:52px;padding:12px;border-radius:50%}
.ngn-mini__play:active,.ngn-mini__x:active{background:rgba(127,127,127,.18)}

/* ---------- sign-up modal + toast ---------- */
.ngn-ap-modal{position:fixed;inset:0;z-index:100002;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.6)}
.ngn-ap-modal__card{position:relative;width:100%;max-width:400px;padding:30px 26px 24px;border-radius:14px;text-align:center;
	background:var(--ngn-surface,#fff);color:var(--ngn-ink,#14161a);font-family:var(--ngn-font-ui,system-ui,sans-serif);box-shadow:0 20px 60px rgba(0,0,0,.4)}
.ngn-ap-modal__x{position:absolute;top:10px;right:10px;border:0;background:transparent;color:inherit;cursor:pointer;padding:6px}
.ngn-ap-modal__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--ngn-accent-solid,#1B4B91);color:#fff;margin-bottom:14px}
.ngn-ap-modal__title{margin:0 0 8px;font:700 1.4rem/1.25 var(--ngn-font-head,Georgia,serif);color:inherit}
.ngn-ap-modal__text{margin:0 0 20px;font-size:.95rem;line-height:1.5;opacity:.85}
.ngn-ap-modal__primary{display:block;padding:.85rem 1rem;border-radius:999px;background:var(--ngn-accent-solid,#1B4B91);color:#fff!important;font-weight:700;text-decoration:none}
.ngn-ap-modal__secondary{display:block;margin-top:14px;font-size:.9rem;color:inherit!important;text-decoration:underline}
.ngn-ap-toast{position:fixed;left:50%;bottom:120px;transform:translate(-50%,20px);opacity:0;z-index:100003;padding:.7rem 1.1rem;border-radius:8px;
	background:#1b1b1d;color:#fff;font:600 .85rem var(--ngn-font-ui,system-ui);transition:all .25s}
.ngn-ap-toast.is-in{opacity:1;transform:translate(-50%,0)}
