/* ==========================================================================
   Heard That — Concept 1 "Encore" admin dashboard
   Uses the public site's tokens (site.css), so light and dark mode follow
   the same toggle. Rounded cards, Bricolage numbers, indigo + sun accents.
   ========================================================================== */
.adm-page{ --side-w:16.5rem; --top-h:4.25rem; --a11y-bottom:1.25rem; padding-bottom:0 !important; background:var(--bg); }
/* Accessibility button sits bottom-left, just right of the dashboard sidebar. */
@media (min-width:1001px){ .adm-body--app .a11y{ left:calc(var(--side-w) + 16px); } }
.adm-page .ico{ width:1.15rem; height:1.15rem; flex:none; }
.adm-page code{ font:500 .86em/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; background:var(--surface-2); padding:.1em .4em; border-radius:.35rem; }
.adm-muted{ color:var(--muted); }
.adm-block{ display:block; }
.adm-warn{ color:var(--bad); font-weight:600; }
html[data-theme="dark"] .adm-warn{ color:#FFB3A8; }

/* ---------------------------------------------------------------- shell */
.adm{ display:grid; grid-template-columns:var(--side-w) minmax(0,1fr); min-height:100vh; min-height:100dvh; }
.adm-side{ position:sticky; top:0; height:100vh; height:100dvh; display:flex; flex-direction:column; gap:1rem; padding:1.25rem 1rem; background:var(--surface); border-right:1px solid var(--line); overflow-y:auto; z-index:60; }
.adm-side__top{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:0 .5rem .5rem; }
.adm-side__brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); min-width:0; }
.adm-side__brand img{ height:1.6rem; width:auto; }
.adm-side__tag{ padding:.15rem .5rem; border-radius:99px; background:var(--indigo); color:#fff; font:700 .68rem/1.4 var(--body); letter-spacing:.08em; text-transform:uppercase; }
.adm-iconbtn.adm-side__close{ display:none; }
.adm-nav ul{ display:grid; gap:.2rem; }
.adm-nav a{ display:flex; align-items:center; gap:.75rem; padding:.68rem .85rem; border-radius:var(--r); color:var(--muted); text-decoration:none; font-weight:600; font-size:.95rem; transition:background-color .2s ease, color .2s ease, transform .2s var(--ease); }
.adm-nav a:hover{ background:var(--surface-2); color:var(--ink); }
.adm-nav a[aria-current="page"]{ background:var(--indigo); color:#fff; box-shadow:0 8px 20px rgba(36,31,73,.22); }
.adm-nav a[aria-current="page"] .ico{ color:var(--sun); }
.adm-nav li:last-child{ margin-top:.6rem; padding-top:.6rem; border-top:1px solid var(--line); }
.adm-side__foot{ margin-top:auto; display:grid; gap:.2rem; padding-top:.8rem; border-top:1px solid var(--line); }
.adm-side__foot form{ margin:0; }
.adm-side__link{ display:flex; width:100%; align-items:center; gap:.75rem; padding:.62rem .85rem; border:0; border-radius:var(--r); background:none; color:var(--muted); text-decoration:none; font-weight:600; font-size:.92rem; text-align:left; transition:background-color .2s, color .2s; }
.adm-side__link:hover{ background:var(--surface-2); color:var(--ink); }
.adm-side__signout:hover{ background:var(--coral-tint); color:var(--coral-ink); }
.adm-scrim{ display:none; }

.adm-body{ min-width:0; display:flex; flex-direction:column; }
.adm-top{ position:sticky; top:0; z-index:40; display:flex; align-items:center; gap:.9rem; min-height:var(--top-h); padding:.6rem clamp(1rem,3vw,2.25rem); background:var(--bar-glass); -webkit-backdrop-filter:saturate(1.4) blur(14px); backdrop-filter:saturate(1.4) blur(14px); border-bottom:1px solid var(--line); }
.adm-iconbtn.adm-top__menu{ display:none; }
.adm-top__title{ margin:0; font:700 1.05rem/1.2 var(--display); letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.adm-pill{ flex:none; display:inline-flex; align-items:center; gap:.4rem; padding:.28rem .7rem; border-radius:99px; background:var(--sun); color:#241F49; font:700 .74rem/1.3 var(--body); letter-spacing:.02em; }
.adm-pill::before{ content:""; width:.4rem; height:.4rem; border-radius:50%; background:#241F49; opacity:.7; }
.adm-top__tools{ margin-left:auto; display:flex; align-items:center; gap:.75rem; min-width:0; }
.adm-top__who{ display:flex; align-items:center; gap:.55rem; min-width:0; font-size:.88rem; color:var(--muted); }
.adm-top__email{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:14rem; }
.adm-avatar{ flex:none; display:grid; place-items:center; width:2.25rem; height:2.25rem; border-radius:50%; background:linear-gradient(135deg,var(--coral),var(--sun)); color:#241F49; font:800 .85rem/1 var(--display); }
.adm-avatar--sm{ width:2rem; height:2rem; font-size:.75rem; }
.adm-iconbtn{ flex:none; display:inline-grid; place-items:center; width:2.5rem; height:2.5rem; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); transition:background-color .2s, border-color .2s; }
.adm-iconbtn:hover{ border-color:var(--ink); }

.adm-main{ flex:1; width:100%; max-width:84rem; margin:0 auto; padding:clamp(1.25rem,3vw,2.25rem) clamp(1rem,3vw,2.25rem) 5.5rem; outline:none; }
.adm-loading{ padding:4rem 0; text-align:center; color:var(--muted); }
.adm-view{ display:grid; gap:1.5rem; animation:admIn .35s var(--ease); }
@keyframes admIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

/* ---------------------------------------------------------------- headings */
.adm-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1rem 1.5rem; }
.adm-head > div:first-child{ min-width:0; max-width:46rem; }
.adm-h1{ margin:0 0 .35rem; font-size:clamp(1.8rem,3.2vw,2.5rem); outline:none; }
.adm-sub{ margin:0; color:var(--muted); font-size:1rem; }
.adm-head__actions{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.adm-h3{ margin:1.4rem 0 .75rem; font-size:1rem; }
.adm-pm__list .adm-h3{ margin-top:0; }

/* ---------------------------------------------------------------- buttons */
.adm-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:2.75rem; padding:.6rem 1.15rem; border:1.5px solid transparent; border-radius:99px; font:600 .93rem/1.2 var(--body); text-decoration:none; cursor:pointer; white-space:nowrap; transition:background-color .2s, border-color .2s, color .2s, transform .2s var(--ease), box-shadow .2s; }
.adm-btn:active{ transform:scale(.98); }
.adm-btn:disabled{ opacity:.55; cursor:progress; }
.adm-btn--primary{ background:var(--coral-btn); color:#fff; box-shadow:0 6px 16px rgba(210,58,38,.22); }
.adm-btn--primary:hover{ background:var(--coral-btn-h); color:#fff; }
.adm-btn--ghost{ background:var(--surface); border-color:var(--line); color:var(--ink); }
.adm-btn--ghost:hover{ border-color:var(--ink); color:var(--ink); }
.adm-btn--danger{ background:none; border-color:var(--bad); color:#B23A2F; }
.adm-btn--danger:hover{ background:#B23A2F; border-color:#B23A2F; color:#fff; }
html[data-theme="dark"] .adm-btn--danger{ color:#FF9C8F; border-color:#FF9C8F; }
html[data-theme="dark"] .adm-btn--danger:hover{ background:#FF9C8F; color:#14112A; }
.adm-btn--sm{ min-height:2.35rem; padding:.45rem .95rem; font-size:.86rem; }
.adm-btn--lg{ min-height:3.1rem; font-size:1rem; }
.adm-btn--block{ display:flex; width:100%; }
.adm-btn .adm-act__label{ position:static; width:auto; height:auto; clip:auto; overflow:visible; }
.adm-link{ font-weight:600; font-size:.88rem; text-decoration:none; }
.adm-link::after{ content:" \2192"; }
.adm-linkbtn{ border:0; background:none; padding:0; color:var(--coral-ink); font-weight:600; text-decoration:underline; text-underline-offset:.18em; }

/* row actions: icon buttons with tooltip-labels on desktop */
.adm-acts{ display:flex; flex-wrap:nowrap; justify-content:flex-end; gap:.3rem; }
.adm-act{ display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-width:2.35rem; height:2.35rem; padding:0 .55rem; border:1px solid var(--line); border-radius:.75rem; background:var(--surface); color:var(--ink); font:600 .82rem/1 var(--body); text-decoration:none; cursor:pointer; transition:background-color .2s, border-color .2s, color .2s; }
.adm-act:hover{ border-color:var(--indigo-2); background:var(--surface-2); color:var(--ink); }
.adm-act.is-on{ color:#B07A0A; border-color:#F4B94288; background:#F4B9421F; }
.adm-act.is-on .ico{ fill:currentColor; }
html[data-theme="dark"] .adm-act.is-on{ color:var(--sun); }
.adm-act--danger:hover{ border-color:var(--bad); color:var(--bad); background:var(--coral-tint); }
.adm-acts .adm-act__label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.adm-connect__actions .adm-act__label, .adm-pm__list > .adm-btn .adm-act__label{ position:static; width:auto; height:auto; clip:auto; }

/* ---------------------------------------------------------------- KPIs */
.adm-kpis{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.adm-kpis--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.adm-kpi{ position:relative; display:flex; flex-direction:column; gap:.2rem; min-width:0; padding:1.3rem 1.35rem; border-radius:var(--r-lg); background:var(--surface); border:1px solid var(--line); color:var(--ink); text-decoration:none; box-shadow:var(--shadow-sm); overflow:hidden; transition:transform .25s var(--ease), box-shadow .25s, border-color .25s; }
a.adm-kpi:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:transparent; color:var(--ink); }
.adm-kpi__num{ font:800 clamp(2rem,3.4vw,2.75rem)/1 var(--display); letter-spacing:-.04em; }
.adm-kpi__label{ font-weight:700; font-size:.95rem; }
.adm-kpi__note{ color:var(--muted); font-size:.83rem; }
.adm-kpi::after{ content:""; position:absolute; right:-1.6rem; top:-1.6rem; width:5rem; height:5rem; border-radius:50%; background:var(--coral-tint); transition:transform .4s var(--ease); }
a.adm-kpi:hover::after{ transform:scale(1.25); }
.adm-kpi--accent{ background:var(--indigo); border-color:var(--indigo); color:#fff; }
a.adm-kpi--accent:hover{ color:#fff; }
.adm-kpi--accent .adm-kpi__num{ color:var(--sun); }
.adm-kpi--accent .adm-kpi__note{ color:rgba(255,255,255,.72); }
.adm-kpi--accent::after{ background:rgba(244,185,66,.18); }
.adm-kpi--good::after{ background:#3F8F5F1F; }
.adm-kpi--warn::after{ background:#F4B94233; }
.adm-kpi--bad::after{ background:#D1483B1A; }
.adm-kpi--good .adm-kpi__num{ color:var(--good); }
.adm-kpi--bad .adm-kpi__num{ color:var(--bad); }
.adm-kpi--warn .adm-kpi__num{ color:#B07A0A; }
html[data-theme="dark"] .adm-kpi--warn .adm-kpi__num{ color:var(--sun); }

/* ---------------------------------------------------------------- panels + grids */
.adm-grid{ display:grid; gap:1.25rem; }
.adm-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.adm-grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.adm-grid--plan{ grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); align-items:stretch; }
.adm-panel{ min-width:0; padding:1.4rem 1.5rem; border-radius:var(--r-lg); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.adm-panel--quiet{ background:var(--surface-2); box-shadow:none; }
.adm-panel__head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.adm-panel__head h2,.adm-panel h2{ margin:0; font-size:1.15rem; letter-spacing:-.01em; }
.adm-panel--stat h2{ font:700 .78rem/1.3 var(--body); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:.8rem; }
.adm-panel > .adm-toolbar{ margin-bottom:1rem; }
.adm-big{ margin:0 0 .4rem; font:800 2.4rem/1 var(--display); letter-spacing:-.04em; }
.adm-big span{ margin-left:.35rem; font:500 .95rem var(--body); letter-spacing:0; color:var(--muted); }
.adm-status{ display:grid; gap:.55rem; }
.adm-status li{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.adm-status b{ font:800 1.35rem/1 var(--display); }

/* ---------------------------------------------------------------- badges, tags */
.adm-badge{ display:inline-flex; align-items:center; gap:.35rem; padding:.2rem .62rem; border-radius:99px; font:700 .76rem/1.4 var(--body); white-space:nowrap; background:var(--surface-2); color:var(--muted); }
.adm-badge::before{ content:""; width:.4rem; height:.4rem; border-radius:50%; background:currentColor; opacity:.8; }
.adm-badge--good{ background:#3F8F5F1F; color:#2C6B45; }
.adm-badge--warn{ background:#F4B94233; color:#7A5610; }
.adm-badge--bad{ background:#D1483B1A; color:#9E3127; }
.adm-badge--info{ background:#241F4914; color:var(--indigo-2); }
html[data-theme="dark"] .adm-badge--good{ background:rgba(110,210,150,.14); color:#8FE0AE; }
html[data-theme="dark"] .adm-badge--warn{ background:rgba(244,185,66,.16); color:#FFD27A; }
html[data-theme="dark"] .adm-badge--bad{ background:rgba(255,123,108,.14); color:#FFB3A8; }
html[data-theme="dark"] .adm-badge--info{ background:rgba(151,137,255,.18); color:#C9C0FF; }
.adm-tag{ display:inline-block; padding:.12rem .5rem; border-radius:.4rem; border:1px solid var(--line); font-size:.75rem; font-weight:600; color:var(--muted); }
.adm-tag--acct{ border-color:transparent; background:var(--coral-tint); color:var(--coral-ink); }
.adm-star{ display:inline-flex; vertical-align:-.12em; color:#E0A21E; }
.adm-star .ico{ width:.95rem; height:.95rem; fill:currentColor; }
.adm-count{ margin:0 0 .6rem; font-size:.85rem; color:var(--muted); }

/* ---------------------------------------------------------------- toolbar, search, chips, tabs */
.adm-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; }
.adm-search{ position:relative; flex:1 1 16rem; min-width:0; max-width:26rem; display:flex; align-items:center; }
.adm-search .ico{ position:absolute; left:.9rem; color:var(--muted); pointer-events:none; }
.adm-search input{ width:100%; min-height:2.75rem; padding:.55rem 1rem .55rem 2.6rem; border:1px solid var(--line); border-radius:99px; background:var(--surface); color:var(--ink); transition:border-color .2s, box-shadow .2s; }
.adm-search--sm{ max-width:none; margin-bottom:.6rem; }
.adm-search--sm input{ min-height:2.4rem; }
.adm-selectwrap{ position:relative; display:inline-flex; align-items:center; gap:.6rem; }
.adm-selectwrap--label > span{ font-weight:600; font-size:.9rem; color:var(--muted); }
.adm-select{ min-height:2.75rem; padding:.5rem 2.4rem .5rem 1rem; border:1px solid var(--line); border-radius:99px; background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23726A5C' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .8rem center/1rem; color:var(--ink); -webkit-appearance:none; appearance:none; max-width:100%; }
.adm-search input:focus,.adm-select:focus,.adm-field input:focus,.adm-field textarea:focus,.adm-field select:focus{ outline:none; border-color:var(--focus); box-shadow:0 0 0 4px var(--field-focus); }
.adm-chips{ display:flex; flex-wrap:wrap; gap:.4rem; }
.adm-chip{ display:inline-flex; align-items:center; gap:.4rem; min-height:2.4rem; padding:.35rem .9rem; border:1px solid var(--line); border-radius:99px; background:var(--surface); color:var(--ink); font-weight:600; font-size:.86rem; transition:background-color .2s, border-color .2s, color .2s; }
.adm-chip:hover{ border-color:var(--ink); }
.adm-chip[aria-pressed="true"]{ background:var(--indigo); border-color:var(--indigo); color:#fff; }
.adm-chip__n,.adm-tab__n{ min-width:1.4rem; padding:.05rem .4rem; border-radius:99px; background:var(--surface-2); color:var(--muted); font-size:.74rem; text-align:center; }
.adm-chip[aria-pressed="true"] .adm-chip__n{ background:rgba(255,255,255,.16); color:#fff; }
.adm-tabs{ display:flex; gap:.25rem; padding:.3rem; border-radius:99px; background:var(--surface-2); width:max-content; max-width:100%; overflow-x:auto; scrollbar-width:none; }
.adm-tabs::-webkit-scrollbar{ display:none; }
.adm-tab{ flex:none; display:inline-flex; align-items:center; gap:.45rem; min-height:2.4rem; padding:.35rem 1rem; border:0; border-radius:99px; background:none; color:var(--muted); font-weight:600; font-size:.9rem; transition:background-color .2s, color .2s, box-shadow .2s; }
.adm-tab:hover{ color:var(--ink); }
.adm-tab[aria-selected="true"]{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow-sm); }
.adm-tab[aria-selected="true"] .adm-tab__n{ background:var(--indigo); color:#fff; }
.adm-tabpanel{ display:grid; gap:1rem; }

/* ---------------------------------------------------------------- tables */
.adm-tablewrap{ border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); overflow-x:auto; }
.adm-panel .adm-tablewrap{ border-radius:var(--r); }
.adm-table{ width:100%; border-collapse:collapse; font-size:.92rem; }
.adm-table th{ padding:.8rem 1rem; text-align:left; font:700 .74rem/1.3 var(--body); letter-spacing:.07em; text-transform:uppercase; color:var(--muted); background:var(--surface-2); white-space:nowrap; }
.adm-table td{ padding:.8rem 1rem; border-top:1px solid var(--line); vertical-align:middle; }
.adm-table tbody tr{ transition:background-color .15s; }
.adm-table tbody tr:hover{ background:color-mix(in srgb, var(--surface-2) 55%, transparent); }
.adm-table .num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.adm-table .actions{ text-align:right; width:1%; white-space:nowrap; }
.adm-table tr.is-dim td:not(.actions){ opacity:.62; }
.adm-table small{ display:block; color:var(--muted); font-size:.8rem; }
.adm-table small.adm-muted{ display:inline; }
.adm-track,.adm-who{ display:flex; align-items:center; gap:.75rem; min-width:0; }
.adm-track img{ flex:none; width:2.75rem; height:2.75rem; border-radius:.6rem; object-fit:cover; box-shadow:var(--shadow-sm); }
.adm-track b,.adm-who b{ display:block; font-weight:650; }
.adm-who small{ display:block; color:var(--muted); font-size:.8rem; word-break:break-all; }
.adm-mosaic{ flex:none; display:grid; grid-template-columns:1fr 1fr; width:2.75rem; height:2.75rem; border-radius:.6rem; overflow:hidden; background:var(--surface-2); }
.adm-mosaic img{ width:100%; height:100%; object-fit:cover; }
.adm-mosaic--empty{ display:grid; place-items:center; grid-template-columns:1fr; color:var(--muted); }

/* ---------------------------------------------------------------- overview widgets */
.adm-rank{ display:grid; gap:.75rem; }
.adm-rank li{ display:grid; grid-template-columns:1.2rem 2.5rem minmax(0,1fr) minmax(3rem,6rem) 3rem; align-items:center; gap:.75rem; }
.adm-rank__n{ font:800 1rem var(--display); color:var(--muted); text-align:center; }
.adm-rank img{ width:2.5rem; height:2.5rem; border-radius:.55rem; object-fit:cover; }
.adm-rank__meta{ min-width:0; }
.adm-rank__meta b,.adm-rank__meta small{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.adm-rank__meta small{ color:var(--muted); font-size:.8rem; }
.adm-rank__bar{ height:.45rem; border-radius:99px; background:var(--surface-2); overflow:hidden; }
.adm-rank__bar i{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--coral),var(--sun)); }
.adm-rank__plays{ text-align:right; font-weight:700; font-size:.88rem; font-variant-numeric:tabular-nums; }
.adm-mix{ display:flex; gap:3px; height:.85rem; border-radius:99px; overflow:hidden; background:var(--surface-2); }
.adm-mix i{ display:block; }
.adm-mix--active{ background:var(--indigo-2); }
.adm-mix--trial{ background:var(--sun); }
.adm-mix--expired{ background:var(--coral); }
.adm-legend{ display:grid; gap:.45rem; margin-top:.9rem; font-size:.9rem; }
.adm-legend li{ display:grid; grid-template-columns:.75rem 1fr auto 3rem; align-items:center; gap:.6rem; }
.adm-legend i{ width:.75rem; height:.75rem; border-radius:.25rem; }
.adm-legend span{ color:var(--muted); text-align:right; }
.adm-bars{ display:grid; gap:.55rem; font-size:.88rem; }
.adm-bars li{ display:grid; grid-template-columns:minmax(4.5rem,7.5rem) 1fr 1.6rem; align-items:center; gap:.7rem; }
.adm-bars__track{ height:.55rem; border-radius:99px; background:var(--surface-2); overflow:hidden; }
.adm-bars__track i{ display:block; height:100%; border-radius:inherit; min-width:3px; }
.adm-bars b{ text-align:right; }
.adm-feed{ display:grid; }
.adm-feed li{ display:grid; grid-template-columns:.6rem minmax(0,1fr) auto; align-items:baseline; gap:.85rem; padding:.7rem 0; border-top:1px solid var(--line); font-size:.92rem; }
.adm-feed li:first-child{ border-top:0; padding-top:0; }
.adm-feed__dot{ width:.55rem; height:.55rem; border-radius:50%; background:var(--coral); transform:translateY(-.05rem); }
.adm-feed time{ color:var(--muted); font-size:.8rem; white-space:nowrap; }
.adm-feed--events li{ grid-template-columns:minmax(9rem,14rem) minmax(0,1fr) auto; }
.adm-feed--events code{ justify-self:start; font-size:.78rem; }

/* ---------------------------------------------------------------- genres */
.adm-genres{ display:grid; grid-template-columns:repeat(auto-fill,minmax(14rem,1fr)); gap:1rem; }
.adm-genre{ position:relative; display:grid; gap:.35rem; align-content:end; min-height:10rem; padding:1.2rem; border:0; border-radius:var(--r-lg); background:linear-gradient(135deg,var(--g1),var(--g2)); color:#fff; text-align:left; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s; }
.adm-genre::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 20%,rgba(20,16,40,.55)); }
.adm-genre > *{ position:relative; }
.adm-genre b{ font:800 1.35rem/1.1 var(--display); }
.adm-genre span{ font-size:.86rem; opacity:.92; }
.adm-genre small{ font-weight:700; font-size:.78rem; }
.adm-genre:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }

/* ---------------------------------------------------------------- memberships */
.adm-plan{ position:relative; padding:1.6rem; border-radius:var(--r-lg); background:var(--indigo); color:#fff; overflow:hidden; }
.adm-plan::after{ content:""; position:absolute; right:-4rem; bottom:-5rem; width:14rem; height:14rem; border-radius:50%; background:radial-gradient(circle,rgba(255,90,69,.45),transparent 65%); }
.adm-plan > *{ position:relative; z-index:1; }
.adm-plan__name{ margin:0 0 .4rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.78rem; color:var(--sun); }
.adm-plan__price{ margin:0 0 1rem; }
.adm-plan__price b{ font:800 3.2rem/1 var(--display); letter-spacing:-.04em; }
.adm-plan__price span{ display:block; margin-top:.3rem; color:rgba(255,255,255,.75); font-size:.92rem; }
.adm-plan__list{ display:grid; gap:.5rem; margin-bottom:1rem; }
.adm-plan__list li{ display:flex; align-items:center; gap:.6rem; font-weight:600; }
.adm-plan__list .ico{ color:var(--sun); }
.adm-plan__note{ margin:0; font-size:.82rem; color:rgba(255,255,255,.7); }
.adm-plan__note code{ background:rgba(255,255,255,.12); color:#fff; }

/* ---------------------------------------------------------------- stripe */
.adm-connect{ display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem 1.75rem; padding:1.25rem 1.5rem; border-radius:var(--r-lg); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.adm-connect__status{ display:flex; align-items:center; gap:.85rem; grid-column:1 / -1; }
.adm-connect__status p{ margin:0; }
.adm-connect__title{ font:700 1.05rem var(--display); }
.adm-dot{ position:relative; width:.8rem; height:.8rem; border-radius:50%; }
.adm-dot--live{ background:#2E9B5F; box-shadow:0 0 0 5px rgba(46,155,95,.2); }
.adm-dot--off{ background:#C9473A; box-shadow:0 0 0 5px rgba(201,71,58,.18); }
a.adm-pill{ text-decoration:none; }
.adm-cover--add{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.15rem; width:3.8rem; height:3.8rem; padding:.2rem; border:2px dashed var(--line, #c9c3d8); border-radius:.75rem; background:none; color:inherit; font:600 .62rem/1.1 var(--body, inherit); text-align:center; cursor:pointer; }
.adm-cover--add .ico{ width:1.1rem; height:1.1rem; }
.adm-cover--add:hover{ border-color:var(--coral-btn); }
.adm-cover--add:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; }
.adm-cover--add[disabled]{ opacity:.55; cursor:progress; }
.adm-dot--test{ background:var(--sun); box-shadow:0 0 0 5px rgba(244,185,66,.22); }
.adm-dot--test::after{ content:""; position:absolute; inset:0; border-radius:50%; background:inherit; animation:admPulse 2s ease-out infinite; }
@keyframes admPulse{ from{ transform:scale(1); opacity:.6; } to{ transform:scale(2.6); opacity:0; } }
.adm-dl{ display:flex; flex-wrap:wrap; gap:.5rem 2rem; margin:0; }
.adm-dl dt{ font:700 .72rem/1.4 var(--body); letter-spacing:.07em; text-transform:uppercase; color:var(--muted); }
.adm-dl dd{ margin:0; font-weight:600; font-size:.92rem; }
.adm-connect__actions{ display:flex; flex-wrap:wrap; gap:.5rem; justify-content:flex-end; }
.adm-note{ display:flex; gap:.8rem; padding:.9rem 1rem; border-radius:var(--r); background:var(--surface-2); font-size:.88rem; }
.adm-note .ico{ color:var(--coral-ink); margin-top:.15rem; }
.adm-note p{ margin:0; }

/* ---------------------------------------------------------------- payment method */
.adm-pm{ display:grid; grid-template-columns:minmax(0,22rem) minmax(0,1fr); gap:2rem; align-items:start; }
.adm-cardface{ position:relative; display:flex; flex-direction:column; justify-content:space-between; aspect-ratio:1.586; padding:1.3rem 1.4rem; border-radius:1.25rem; color:#fff; background:linear-gradient(135deg,#241F49 0%,#3A3170 55%,#6B46B8 100%); box-shadow:0 18px 40px rgba(36,31,73,.3); overflow:hidden; }
.adm-cardface::before{ content:""; position:absolute; right:-3rem; top:-4rem; width:12rem; height:12rem; border-radius:50%; background:radial-gradient(circle,rgba(255,90,69,.55),transparent 65%); }
.adm-cardface::after{ content:""; position:absolute; left:-2rem; bottom:-5rem; width:12rem; height:12rem; border-radius:50%; background:radial-gradient(circle,rgba(244,185,66,.35),transparent 65%); }
.adm-cardface > *{ position:relative; z-index:1; }
.adm-cardface--mastercard{ background:linear-gradient(135deg,#2B1B12 0%,#6A2E17 55%,#D23A26 100%); }
.adm-cardface--amex{ background:linear-gradient(135deg,#0F3B4A 0%,#1A6F7F 60%,#3FA9A0 100%); }
.adm-cardface--discover{ background:linear-gradient(135deg,#3A2410 0%,#9A5A12 60%,#F4B942 100%); }
.adm-cardface.is-expired{ filter:grayscale(.85); opacity:.8; }
.adm-cardface--none{ align-items:center; justify-content:center; background:var(--surface-2); color:var(--muted); box-shadow:none; border:2px dashed var(--line); }
.adm-cardface--none::before,.adm-cardface--none::after{ display:none; }
.adm-cardface__top{ display:flex; align-items:center; justify-content:space-between; }
.adm-cardface__chip{ width:2.4rem; height:1.8rem; border-radius:.4rem; background:linear-gradient(135deg,#F4D58D,#C9A34E); }
.adm-cardface__brand{ font:800 1.15rem var(--display); letter-spacing:.03em; }
.adm-cardface__num{ margin:0; font:600 clamp(1.1rem,2.4vw,1.4rem)/1 var(--display); letter-spacing:.1em; }
.adm-cardface__foot{ display:flex; justify-content:space-between; gap:1rem; font-weight:600; font-size:.9rem; }
.adm-cardface__foot small{ display:block; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; opacity:.7; }
.adm-cardface__foot span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.adm-cardface__default{ position:absolute !important; top:1.55rem; left:4.2rem; padding:.12rem .55rem; border-radius:99px; background:var(--sun); color:#241F49; font-size:.7rem; font-weight:800; }
.adm-cards{ display:grid; gap:.6rem; margin-bottom:1.1rem; }
.adm-cardrow{ display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:.8rem; padding:.75rem .9rem; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); }
.adm-cardrow__brand{ display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:.65rem; background:var(--surface-2); color:var(--indigo-2); }
html[data-theme="dark"] .adm-cardrow__brand{ color:var(--sun); }
.adm-cardrow__meta b,.adm-cardrow__meta small{ display:block; }
.adm-cardrow__meta small{ color:var(--muted); font-size:.8rem; }
.adm-cardrow__tags{ display:flex; flex-wrap:wrap; gap:.3rem; }
.adm-cardnum{ position:relative; }
.adm-cardnum input{ padding-right:6.5rem !important; }
.adm-cardnum__brand{ position:absolute; right:.9rem; top:50%; transform:translateY(-50%); font:700 .8rem var(--body); color:var(--muted); }

/* ---------------------------------------------------------------- forms */
.adm-form{ display:grid; gap:1rem; }
.adm-form__grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.adm-field{ display:grid; gap:.4rem; min-width:0; margin:0; padding:0; border:0; }
.adm-field > label,.adm-field legend,.adm-field__row label{ font-weight:600; font-size:.9rem; }
.adm-field legend{ padding:0; margin-bottom:.45rem; }
.adm-field input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),.adm-field textarea,.adm-field select{ width:100%; min-height:2.9rem; padding:.65rem .95rem; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--surface); color:var(--ink); transition:border-color .2s, box-shadow .2s; }
.adm-field select{ border-radius:var(--r-sm); }
.adm-field textarea{ resize:vertical; }
.adm-field input[type="file"]{ max-width:100%; font-size:.9rem; }
.adm-field input[aria-invalid="true"]{ border-color:var(--bad); }
.adm-field__row{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.adm-field__row a{ font-size:.86rem; font-weight:600; }
.adm-opt{ font-weight:500; color:var(--muted); font-size:.82rem; }
.adm-help{ margin:0; color:var(--muted); font-size:.84rem; }
.adm-check{ display:flex; align-items:flex-start; gap:.6rem; font-size:.92rem; cursor:pointer; }
.adm-check input{ width:1.15rem; height:1.15rem; margin:.15rem 0 0; accent-color:var(--coral-btn); flex:none; }
.adm-seg{ display:inline-flex; flex-wrap:wrap; gap:.25rem; padding:.3rem; border-radius:99px; background:var(--surface-2); }
.adm-seg label{ position:relative; cursor:pointer; }
.adm-seg input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.adm-seg span{ display:block; padding:.45rem 1rem; border-radius:99px; font-weight:600; font-size:.88rem; color:var(--muted); transition:background-color .2s, color .2s; }
.adm-seg input:checked + span{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow-sm); }
.adm-seg input:focus-visible + span{ outline:3px solid var(--focus); outline-offset:2px; }
.adm-covers{ display:flex; flex-wrap:wrap; gap:.55rem; }
.adm-cover{ position:relative; cursor:pointer; border-radius:.75rem; }
.adm-cover input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.adm-cover img{ width:3.8rem; height:3.8rem; border-radius:.75rem; object-fit:cover; border:3px solid transparent; transition:border-color .2s, transform .2s var(--ease); }
.adm-cover:hover img{ transform:scale(1.04); }
.adm-cover input:checked + img{ border-color:var(--coral-btn); }
.adm-cover input:focus-visible + img{ outline:3px solid var(--focus); outline-offset:2px; }
.adm-picklist{ max-height:15rem; overflow-y:auto; border:1px solid var(--line); border-radius:var(--r-sm); }
.adm-picklist li + li{ border-top:1px solid var(--line); }
.adm-picklist label{ display:grid; grid-template-columns:auto 2rem minmax(0,1fr) auto; align-items:center; gap:.65rem; padding:.5rem .75rem; cursor:pointer; font-size:.9rem; }
.adm-picklist label:hover{ background:var(--surface-2); }
.adm-picklist input{ width:1.1rem; height:1.1rem; accent-color:var(--coral-btn); }
.adm-picklist img{ width:2rem; height:2rem; border-radius:.4rem; }
.adm-picklist b,.adm-picklist small{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.adm-picklist small{ color:var(--muted); font-size:.78rem; }
.adm-picklist__dur{ color:var(--muted); font-size:.8rem; font-variant-numeric:tabular-nums; }
.adm-alert{ margin:0; padding:.8rem 1rem; border-radius:var(--r-sm); font-size:.92rem; font-weight:500; outline:none; }
.adm-alert--ok{ background:#3F8F5F1A; color:#2C6B45; border:1px solid #3F8F5F44; }
.adm-alert--err{ background:#D1483B1A; color:#9E3127; border:1px solid #D1483B55; }
html[data-theme="dark"] .adm-alert--ok{ background:rgba(110,210,150,.12); color:#8FE0AE; border-color:rgba(110,210,150,.35); }
html[data-theme="dark"] .adm-alert--err{ background:rgba(255,123,108,.12); color:#FFB3A8; border-color:rgba(255,123,108,.45); }
.adm-empty{ display:grid; justify-items:center; gap:.2rem; padding:2.5rem 1.25rem; border:2px dashed var(--line); border-radius:var(--r-lg); text-align:center; color:var(--muted); }
.adm-empty p{ margin:0; }
.adm-empty__title{ font:700 1.1rem var(--display); color:var(--ink); }
.adm-empty .adm-btn{ margin-top:.8rem; }

/* ---------------------------------------------------------------- modal */
.adm-modal{ position:fixed; inset:0; z-index:9500; display:grid; place-items:center; padding:1rem; }
.adm-modal__scrim{ position:absolute; inset:0; background:rgba(20,16,40,.55); opacity:0; transition:opacity .25s ease; }
.adm-modal__box{ position:relative; width:min(32rem,100%); max-height:calc(100dvh - 2rem); display:flex; flex-direction:column; border-radius:var(--r-lg); background:var(--surface); color:var(--ink); box-shadow:var(--shadow-lg); opacity:0; transform:translateY(14px) scale(.98); transition:opacity .25s ease, transform .3s var(--ease); }
.adm-modal--wide .adm-modal__box{ width:min(44rem,100%); }
.adm-modal.is-open .adm-modal__scrim{ opacity:1; }
.adm-modal.is-open .adm-modal__box{ opacity:1; transform:none; }
.adm-modal__head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 1.4rem; border-bottom:1px solid var(--line); }
.adm-modal__head h2{ margin:0; font-size:1.25rem; }
.adm-modal__body{ padding:1.3rem 1.4rem 1.4rem; overflow-y:auto; overscroll-behavior:contain; }
.adm-modal__text{ margin:0 0 1.25rem; }
.adm-modal__actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.6rem; margin-top:.4rem; }
body.adm-has-modal{ overflow:hidden; }
.adm-receipt{ padding:1.25rem; border:1px solid var(--line); border-radius:var(--r); margin-bottom:1rem; }
.adm-receipt__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; }
.adm-receipt__top p{ margin:0; }
.adm-receipt__brand{ font:800 1.3rem var(--display); }
.adm-receipt__meta{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem 1.25rem; margin:0 0 1.1rem; }
.adm-receipt__meta dt{ font:700 .72rem var(--body); letter-spacing:.07em; text-transform:uppercase; color:var(--muted); }
.adm-receipt__meta dd{ margin:.15rem 0 0; font-size:.92rem; word-break:break-word; }
.adm-receipt__lines{ width:100%; border-collapse:collapse; font-size:.92rem; margin-bottom:.8rem; }
.adm-receipt__lines th,.adm-receipt__lines td{ padding:.55rem 0; text-align:left; border-bottom:1px solid var(--line); }
.adm-receipt__lines .num{ text-align:right; }
.adm-receipt__lines tfoot th,.adm-receipt__lines tfoot td{ font-weight:800; border-bottom:0; }

/* ---------------------------------------------------------------- toasts */
.adm-toasts{ position:fixed; z-index:9600; left:50%; bottom:1.25rem; transform:translateX(-50%); display:grid; gap:.5rem; width:min(26rem,calc(100% - 2rem)); pointer-events:none; }
.adm-toast{ display:flex; align-items:center; gap:.65rem; padding:.8rem 1rem; border-radius:var(--r); background:var(--indigo); color:#fff; font-weight:600; font-size:.92rem; box-shadow:var(--shadow-lg); animation:admToast .35s var(--ease); transition:opacity .3s, transform .3s; }
.adm-toast .ico{ color:var(--sun); }
.adm-toast--err{ background:#9E3127; }
.adm-toast--err .ico{ color:#fff; }
.adm-toast.is-out{ opacity:0; transform:translateY(8px); }
@keyframes admToast{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
body.adm-is-busy{ cursor:progress; }

/* ---------------------------------------------------------------- sign in */
.adm-auth{ min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:2rem 1rem; outline:none;
  background:radial-gradient(60rem 30rem at 110% -10%, var(--coral-tint), transparent 60%), radial-gradient(50rem 30rem at -20% 110%, rgba(36,31,73,.1), transparent 60%), var(--bg); }
html[data-theme="dark"] .adm-auth{ background:radial-gradient(60rem 30rem at 110% -10%, rgba(255,90,69,.14), transparent 60%), radial-gradient(50rem 30rem at -20% 110%, rgba(71,61,155,.3), transparent 60%), var(--bg); }
.adm-auth__card{ width:min(27rem,100%); padding:clamp(1.5rem,5vw,2.4rem); border-radius:var(--r-lg); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-lg); animation:admIn .45s var(--ease); }
.adm-auth__brand{ display:inline-block; margin-bottom:1.6rem; }
.adm-auth__brand img{ height:1.9rem; width:auto; }
.adm-auth__title{ margin:0 0 .4rem; font-size:1.85rem; }
.adm-auth__lede{ color:var(--muted); margin:0 0 1.3rem; }
.adm-auth .adm-alert,.adm-hint{ margin-bottom:1rem; }
.adm-hint{ padding:.75rem 1rem; border-radius:var(--r-sm); background:#F4B94226; border:1px dashed #C98A0C; font-size:.88rem; }
html[data-theme="dark"] .adm-hint{ background:rgba(244,185,66,.12); border-color:rgba(244,185,66,.5); }
.adm-auth__back{ margin:1.3rem 0 0; text-align:center; font-size:.9rem; }
.adm-auth__tools{ position:fixed; top:1rem; right:1rem; }
.adm-steps{ display:grid; gap:.7rem; margin:0 0 1.2rem; padding-left:1.3rem; list-style:decimal; font-size:.93rem; }
.adm-pass{ position:relative; }
.adm-pass input{ padding-right:4.5rem !important; }
.adm-pass__toggle{ position:absolute; right:.4rem; top:50%; transform:translateY(-50%); min-height:2.2rem; padding:0 .75rem; border:0; border-radius:.5rem; background:var(--surface-2); color:var(--ink); font-weight:600; font-size:.82rem; }

/* ---------------------------------------------------------------- responsive */
@media (max-width:1180px){
  .adm-kpis{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .adm-grid--3{ grid-template-columns:1fr 1fr; }
  .adm-grid--3 > :last-child{ grid-column:1 / -1; }
  .adm-connect{ grid-template-columns:1fr; }
  .adm-connect__actions{ justify-content:flex-start; }
}
@media (max-width:1000px){
  .adm{ grid-template-columns:minmax(0,1fr); }
  .adm-side{ position:fixed; top:0; bottom:0; left:0; width:min(18rem,86vw); height:auto; transform:translateX(-105%); transition:transform .35s var(--ease), visibility .35s; visibility:hidden; box-shadow:var(--shadow-lg); z-index:9200; padding-bottom:max(1.25rem, env(safe-area-inset-bottom)); }
  body.adm-side-open .adm-side{ transform:none; visibility:visible; }
  .adm-iconbtn.adm-side__close{ display:inline-grid; }
  .adm-scrim{ display:block; position:fixed; inset:0; z-index:9100; background:rgba(20,16,40,.5); }
  .adm-scrim[hidden]{ display:none; }
  body.adm-side-open{ overflow:hidden; }
  .adm-iconbtn.adm-top__menu{ display:inline-grid; }
  .adm-grid--2,.adm-grid--plan{ grid-template-columns:minmax(0,1fr); }
  .adm-pm{ grid-template-columns:minmax(0,1fr); }
  .adm-pm__face{ max-width:22rem; }
}
@media (max-width:760px){
  .adm-top{ gap:.6rem; }
  .adm-top__email{ display:none; }
  .adm-head__actions{ width:100%; }
  .adm-head__actions > .adm-btn{ flex:1; }
  .adm-selectwrap--label{ width:100%; }
  .adm-selectwrap--label .adm-select{ flex:1; min-width:0; width:100%; }
  .adm-search{ max-width:none; flex-basis:100%; }
  .adm-toolbar .adm-selectwrap{ flex:1 1 9rem; }
  .adm-toolbar .adm-select{ width:100%; }
  .adm-form__grid{ grid-template-columns:1fr; }
  .adm-feed--events li{ grid-template-columns:minmax(0,1fr) auto; }
  .adm-feed--events li span{ grid-column:1 / -1; }
  .adm-cardrow{ grid-template-columns:auto minmax(0,1fr); }
  .adm-cardrow__tags,.adm-cardrow .adm-acts{ grid-column:2; justify-content:flex-start; }

  /* tables become cards */
  .adm-tablewrap{ border:0; background:none; overflow:visible; }
  .adm-table,.adm-table tbody,.adm-table tr,.adm-table td{ display:block; }
  .adm-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .adm-table tr{ margin-bottom:.75rem; padding:.9rem 1rem; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); box-shadow:var(--shadow-sm); }
  .adm-table tbody tr:hover{ background:var(--surface); }
  .adm-table td{ display:grid; grid-template-columns:minmax(6rem,38%) minmax(0,1fr); gap:.75rem; align-items:center; justify-items:start; padding:.4rem 0; border:0; text-align:left !important; white-space:normal !important; width:auto !important; }
  .adm-table td::before{ content:attr(data-label); font:700 .72rem/1.3 var(--body); letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .adm-table td:first-child{ grid-template-columns:1fr; padding:0 0 .6rem; margin-bottom:.35rem; border-bottom:1px solid var(--line); }
  .adm-table td:first-child::before{ display:none; }
  .adm-table td.actions{ grid-template-columns:1fr; padding-top:.6rem; }
  .adm-table td.actions::before{ display:none; }
  .adm-acts{ justify-content:flex-start; flex-wrap:wrap; }
  .adm-acts .adm-act__label{ position:static; width:auto; height:auto; clip:auto; overflow:visible; }
  .adm-acts .adm-act{ padding:0 .75rem; }
  .adm-rank li{ grid-template-columns:1.1rem 2.4rem minmax(0,1fr) 2.8rem; }
  .adm-rank__bar{ display:none; }
}
@media (max-width:520px){
  .adm-page{ --top-h:3.75rem; }
  .adm-pill{ padding:.25rem .55rem; font-size:.68rem; }
  .adm-pill::before{ display:none; }
  .adm-top .theme-toggle__track{ width:2.9rem; height:1.75rem; }
  .adm-top .theme-toggle__thumb{ width:1.3rem; height:1.3rem; }
  html[data-theme="dark"] .adm-top .theme-toggle__thumb{ transform:translateX(1.12rem); }
  .adm-top__who{ display:none; }
  .adm-kpis,.adm-kpis--2{ gap:.7rem; }
  .adm-kpi{ padding:1rem; border-radius:var(--r); }
  .adm-kpi__note{ font-size:.78rem; }
  .adm-grid--3{ grid-template-columns:1fr; }
  .adm-panel{ padding:1.1rem; border-radius:var(--r); }
  .adm-tabs{ width:100%; }
  .adm-tab{ padding:.35rem .8rem; }
  .adm-modal{ padding:0; align-items:end; }
  .adm-modal__box{ width:100% !important; max-height:92dvh; border-radius:var(--r-lg) var(--r-lg) 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .adm-modal__actions .adm-btn{ flex:1; }
  .adm-receipt__meta{ grid-template-columns:1fr; }
  .adm-genres{ grid-template-columns:1fr 1fr; gap:.7rem; }
  .adm-genre{ min-height:8rem; padding:.9rem; }
  .adm-genre span{ display:none; }
}
@media (max-width:360px){
  .adm-table td{ grid-template-columns:1fr; gap:.1rem; }
  .adm-kpis,.adm-kpis--2{ grid-template-columns:1fr; }
  .adm-genres{ grid-template-columns:1fr; }
  .adm-top__title{ font-size:.95rem; }
}
@media (prefers-reduced-motion:reduce){
  .adm-view,.adm-auth__card,.adm-toast{ animation:none; }
  .adm-dot--test::after{ animation:none; }
}

/* ---------------------------------------------------------------- print: receipt only */
@media print{
  body.adm-page > *:not(.adm-modal){ display:none !important; }
  .adm-modal{ position:static; display:block; padding:0; }
  .adm-modal__scrim,.adm-modal__head,.adm-modal__actions{ display:none !important; }
  .adm-modal__box{ box-shadow:none; opacity:1; transform:none; max-height:none; width:100% !important; border:0; }
  .adm-receipt{ border:0; }
}

/* ================================================================
   Music Library: managed artists / albums / genres
   ================================================================ */
.adm-act.is-blocked{ opacity:.5; cursor:not-allowed; }
.adm-act.is-blocked:hover{ border-color:var(--line); color:var(--ink); background:var(--surface); }
.adm-genre--managed{ padding:0; }
.adm-genre--managed:hover{ transform:none; }
.adm-genre__jump{ position:relative; display:grid; gap:.35rem; align-content:end; width:100%; min-height:10rem; padding:1.2rem 1.2rem 1.2rem; border:0; background:none; color:#fff; text-align:left; font:inherit; cursor:pointer; border-radius:inherit; }
.adm-genre__jump:focus-visible{ outline:3px solid #fff; outline-offset:-5px; }
.adm-genre__acts{ position:absolute; top:.7rem; right:.7rem; display:flex; gap:.4rem; }
.adm-act--onimg{ background:rgba(255,255,255,.92); border-color:transparent; color:#241F49; }
.adm-act--onimg:hover{ background:#fff; color:#241F49; }
.adm-act--onimg .adm-act__label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.adm-genre--preview{ min-height:7rem; margin:.4rem 0 .2rem; }
.adm-genre--preview:hover{ transform:none; }
.adm-color{ width:100%; min-height:2.9rem; padding:.3rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface); cursor:pointer; }

/* ================================================================
   Undefined Access (Family & Friends)
   ================================================================ */
.adm-badge--ff{ background:#E2448720; color:#A3245C; }
html[data-theme="dark"] .adm-badge--ff{ background:rgba(255,124,174,.16); color:#FFB0CE; }
.adm-kpi--ff::after{ background:#E2448718; }
.adm-kpi--ff .adm-kpi__num{ color:#C2336F; }
html[data-theme="dark"] .adm-kpi--ff .adm-kpi__num{ color:#FF9CC2; }
.adm-mix--friends{ background:#E24487; }
.adm-act--ff{ color:#A3245C; border-color:#E2448755; }
.adm-act--ff:hover{ background:#E2448714; border-color:#E24487; color:#A3245C; }
.adm-act--ff.is-on{ color:var(--bad); border-color:#D1483B55; background:#D1483B0F; }
.adm-act--ff.is-on .ico{ fill:none; }
html[data-theme="dark"] .adm-act--ff{ color:#FFB0CE; border-color:rgba(255,124,174,.4); }
html[data-theme="dark"] .adm-act--ff.is-on{ color:#FFB3A8; border-color:rgba(255,123,108,.4); background:rgba(255,123,108,.1); }
tr.is-ff td:first-child{ box-shadow:inset 3px 0 0 #E24487; }
.adm-ffwarn{ display:grid; grid-template-columns:auto 1fr; gap:.9rem; padding:1rem 1.1rem; margin:0 0 1rem; border-radius:var(--r-md, .9rem); background:#F4B9421F; border:1px solid #F4B94288; color:var(--ink); }
.adm-ffwarn > .ico{ width:1.7rem; height:1.7rem; color:#B07A0A; }
.adm-ffwarn p{ margin:0 0 .55rem; line-height:1.55; }
.adm-ffwarn p:last-child{ margin-bottom:0; }
html[data-theme="dark"] .adm-ffwarn{ background:rgba(244,185,66,.1); border-color:rgba(244,185,66,.4); }
html[data-theme="dark"] .adm-ffwarn > .ico{ color:var(--sun); }
.adm-ffwho{ display:flex; align-items:center; gap:.7rem; margin:0 0 1rem; padding:.75rem .9rem; border-radius:.8rem; background:var(--surface-2); }
.adm-ffwho .ico{ flex:none; color:var(--muted); }
.adm-ffwho span{ display:grid; min-width:0; }
.adm-ffwho small{ color:var(--muted); overflow-wrap:anywhere; }
.adm-toolbar--members .adm-search{ max-width:30rem; }
@media (max-width:560px){ .adm-modal__actions{ flex-wrap:wrap; } .adm-modal--ff .adm-modal__actions .adm-btn{ flex:1 1 100%; } }
/* New logo sizing */
.adm-side__brand img{ height:2.6rem; width:auto; max-width:none; flex:none; }
.adm-side__brand{ flex:1 1 auto; }
.adm-auth__brand img{ height:4.2rem; width:auto; max-width:100%; }
/* Family & Friends buttons always show their text so the access state is obvious. */
.adm-acts .adm-act--ff .adm-act__label{ position:static; width:auto; height:auto; clip:auto; overflow:visible; white-space:nowrap; }
.adm-acts .adm-act--ff{ padding:0 .7rem; }
.adm-ffsince{ display:block; margin-top:.25rem; font-size:.78rem; }

/* ---------- Audio files ---------- */
.adm-alert--warn{ display:flex; gap:.6rem; align-items:flex-start; margin-bottom:1rem; background:#F4B94233; color:#7A5610; border:1px solid #F4B94288; }
.adm-alert--warn .ico{ flex:none; width:1.15rem; height:1.15rem; margin-top:.1rem; }
.adm-alert--warn a{ color:inherit; font-weight:700; }
html[data-theme="dark"] .adm-alert--warn{ background:rgba(244,185,66,.16); color:#FFD27A; border-color:rgba(244,185,66,.45); }
.adm-audio{ display:block; width:100%; max-width:28rem; margin-top:.6rem; }
