/* WP AUDIO PUBLISHERz - Phase 12B */
.wapz-player-wrap {
    --wapz-accent: #6b5cff;
    margin: 24px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #151515;
}
.wapz-player-wrap *{box-sizing:border-box}
.wapz-align-center { margin-left: auto; margin-right: auto; }
.wapz-align-right { margin-left: auto; }
.wapz-player-card {
    display: flex;
    gap: 20px;
    padding: 22px;
    border: 1px solid rgba(0,0,0,0.08);
    background: linear-gradient(180deg,#fff 0%,#fafaff 100%);
    border-radius: 22px;
    box-shadow: 0 12px 32px rgba(16,24,40,0.08);
}
.wapz-player-main { flex: 1; min-width: 0; }
.wapz-player-headline{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.wapz-badge,.wapz-duration-pill,.wapz-track-count{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600}
.wapz-badge{background:rgba(107,92,255,.1);color:var(--wapz-accent)}
.wapz-duration-pill,.wapz-track-count{background:rgba(17,24,39,.06);color:#334155}
.wapz-artwork { width: 148px; flex: 0 0 148px; }
.wapz-artwork img,
.wapz-artwork-placeholder {
    width: 148px; height: 148px; object-fit: cover;
    display: block; border-radius: 18px;
}
.wapz-artwork-placeholder {
    background: rgba(107,92,255,0.1);
    color: var(--wapz-accent);
    display: flex; align-items: center; justify-content: center;
    font-size: 42px;
}
.wapz-artwork-circle img, .wapz-artwork-circle .wapz-artwork-placeholder { border-radius: 999px; }
.wapz-artwork-square img, .wapz-artwork-square .wapz-artwork-placeholder { border-radius: 0; }
.wapz-title { margin: 0 0 6px; font-size: 26px; line-height: 1.2; max-width:100%; }
.wapz-subtitle { color: #555; margin-bottom: 6px; }
.wapz-meta-line { display: flex; gap: 14px; flex-wrap: wrap; color: #666; font-size: 14px; margin-bottom: 14px; }
.wapz-controls-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.wapz-btn,.wapz-download-btn {
    border: 0; background: var(--wapz-accent); color: #fff; border-radius: 12px; padding: 10px 14px;
    cursor: pointer; text-decoration: none; font-weight: 600; box-shadow: 0 8px 16px rgba(107,92,255,.22);
}
.wapz-btn:hover,.wapz-download-btn:hover{opacity:.95}
.wapz-progress-group{display:flex;align-items:center;gap:8px;flex:1;min-width:240px}
.wapz-progress{flex:1}
.wapz-current-time,.wapz-total-time{font-size:13px;color:#64748b;min-width:38px}
.wapz-speed{border:1px solid rgba(15,23,42,.12);border-radius:10px;padding:9px 10px;background:#fff;max-width:100%}
.wapz-description { color: #475569; line-height: 1.6; }
.wapz-playlist-panel{margin-top:14px;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:#fff;overflow:hidden}
.wapz-playlist-header{display:flex;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(15,23,42,.06);font-size:14px;color:#64748b}
.wapz-playlist{display:grid}
.wapz-playlist-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border:0;border-top:1px solid rgba(15,23,42,.05);background:#fff;cursor:pointer;text-align:left;width:100%}
.wapz-playlist-item:first-child{border-top:none}
.wapz-playlist-item-main{display:grid;gap:3px;min-width:0}
.wapz-playlist-item-title{font-weight:600}
.wapz-playlist-item small{color:#64748b}
.wapz-playlist-item.is-active{background:rgba(107,92,255,.08)}
.wapz-playlist-item-duration{white-space:nowrap;color:#64748b}
.wapz-sticky-shell{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999}
.wapz-sticky-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:860px;margin:0 auto;background:#121826;color:#fff;border-radius:18px;padding:14px 16px;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.wapz-sticky-meta{display:grid;gap:2px;min-width:0;flex:1}
.wapz-sticky-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#cbd5e1}
.wapz-sticky-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wapz-sticky-play,.wapz-sticky-close{border:0;background:rgba(255,255,255,.12);color:#fff;width:42px;height:42px;border-radius:999px;cursor:pointer}
.wapz-sticky-hide-mobile{display:block}
.wapz-sticky-desktop-only{display:block}
.wapz-player-wrap audio{width:100%;display:none}
.wapz-player-wrap.is-playing .wapz-play-toggle,
.wapz-player-wrap.is-playing .wapz-sticky-play{transform:translateY(-1px)}
@media (max-width: 782px){
  .wapz-player-card{flex-direction:column;padding:18px}
  .wapz-artwork,.wapz-artwork img,.wapz-artwork-placeholder{width:100%;height:auto;aspect-ratio:1/1}
  .wapz-progress-group{min-width:100%}
  .wapz-controls-row{align-items:stretch}
  .wapz-btn,.wapz-download-btn,.wapz-speed{width:100%;justify-content:center}
  .wapz-playlist-item{align-items:flex-start;flex-direction:column}
  .wapz-playlist-item-duration{font-size:12px}
  .wapz-sticky-hide-mobile,.wapz-sticky-desktop-only{display:none!important}
  .wapz-sticky-shell{left:10px;right:10px;bottom:10px}
  .wapz-sticky-inner{padding:12px}
}

.wapz-player-card:focus-within{box-shadow:0 14px 36px rgba(16,24,40,0.12)}
.wapz-btn:focus,.wapz-download-btn:focus,.wapz-speed:focus,.wapz-progress:focus{outline:2px solid rgba(107,92,255,.28);outline-offset:2px}
.wapz-playlist button{width:100%;text-align:left;border:0;background:transparent;padding:12px 14px;border-radius:14px;cursor:pointer}
.wapz-playlist button:hover,.wapz-playlist button:focus{background:rgba(107,92,255,.08);outline:none}
.wapz-playlist li.is-active button{background:rgba(107,92,255,.12)}
.wapz-player-wrap[data-layout="compact"] .wapz-player-card{padding:16px;gap:16px}
.wapz-player-wrap[data-typography="sm"] .wapz-title{font-size:22px}
.wapz-player-wrap[data-typography="lg"] .wapz-title{font-size:30px}
@media (max-width: 782px){
  .wapz-player-card{padding:18px;border-radius:18px}
  .wapz-controls-row{gap:8px}
  .wapz-progress-group{min-width:0;width:100%}
  .wapz-progress{width:100%}
  .wapz-playlist{margin-top:16px}
  .wapz-sticky-shell{left:10px;right:10px;bottom:10px}
}

.wapz-btn:focus-visible,.wapz-playlist-item:focus-visible,.wapz-speed:focus-visible,.wapz-progress:focus-visible,.wapz-sticky-play:focus-visible,.wapz-sticky-close:focus-visible{
    outline:3px solid rgba(107,92,255,.35);
    outline-offset:2px;
}
.wapz-player-wrap.is-playing .wapz-player-card{box-shadow:0 16px 40px rgba(16,24,40,0.12)}
.wapz-live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (prefers-reduced-motion: reduce){
    .wapz-player-card,.wapz-btn,.wapz-playlist-item,.wapz-sticky-shell{transition:none!important}
}
@media (max-width: 640px){
    .wapz-progress-group{min-width:0;width:100%}
    .wapz-controls-row{align-items:stretch}
    .wapz-btn,.wapz-download-btn,.wapz-speed{width:100%;justify-content:center;text-align:center}
    .wapz-sticky-inner{padding:12px 14px}
}

.wapz-player-wrap.has-error .wapz-player-card{border-color:#dc2626;box-shadow:0 12px 30px rgba(220,38,38,.12)}
.wapz-player-wrap.has-error .wapz-badge{background:rgba(220,38,38,.08);color:#b91c1c}
.wapz-player-wrap .wapz-btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}
@media (forced-colors: active){
  .wapz-btn,.wapz-download-btn,.wapz-sticky-play,.wapz-sticky-close{forced-color-adjust:auto;border:1px solid ButtonText}
  .wapz-player-card,.wapz-playlist-panel,.wapz-sticky-inner{border:1px solid CanvasText}
}


/* Phase 12L frontend playback + artwork + mobile pass */
.wapz-primary-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.wapz-speed-wrap{display:flex;align-items:center;gap:8px}
.wapz-speed{min-width:92px}
.wapz-artwork img{background:#0f172a08}
.wapz-player-wrap.has-error .wapz-play-toggle{background:#dc2626}
.wapz-player-wrap .wapz-artwork{align-self:flex-start}
@media (max-width: 782px){
  .wapz-player-card{gap:14px;padding:16px}
  .wapz-artwork{width:100%;flex:0 0 auto}
  .wapz-artwork img,.wapz-artwork-placeholder{width:100%;max-height:260px;aspect-ratio:1/1;border-radius:20px}
  .wapz-title{font-size:18px;line-height:1.25}
  .wapz-player-headline{margin-bottom:10px}
  .wapz-meta-line{margin-bottom:10px}
  .wapz-primary-controls{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr}
  .wapz-btn{width:100%;text-align:center;justify-content:center;padding:12px 10px}
  .wapz-progress-group{order:3}
  .wapz-speed-wrap{order:4;width:100%}
  .wapz-speed{width:100%}
}
@media (max-width: 540px){
  .wapz-player-wrap{margin:18px 0}
  .wapz-player-card{border-radius:20px}
  .wapz-artwork img,.wapz-artwork-placeholder{max-height:220px}
  .wapz-badge,.wapz-duration-pill{font-size:11px;padding:6px 10px}
  .wapz-progress-group{display:grid;grid-template-columns:46px 1fr 46px;gap:8px;align-items:center}
}


.wapz-speed-wrap{display:flex;align-items:center;gap:8px}
.wapz-speed-label{font-size:12px;font-weight:600;color:#64748b}
.wapz-speed{border:1px solid rgba(148,163,184,.35);border-radius:10px;padding:10px 12px;background:#fff;color:#0f172a}
.wapz-player-wrap.has-error .wapz-player-card{box-shadow:0 0 0 1px rgba(220,38,38,.25),0 12px 32px rgba(16,24,40,0.08)}
.wapz-playlist-item.is-active{background:rgba(107,92,255,.08);border-color:rgba(107,92,255,.18)}
@media (max-width: 782px){
  .wapz-primary-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
  .wapz-progress-group{order:2}
  .wapz-speed-wrap{width:100%;justify-content:flex-end}
}

.wapz-sticky-shell[hidden]{display:none !important}
.wapz-sticky-shell.is-visible{display:block}

.wapz-skin-minimal_dark .wapz-title,
.wapz-skin-glass_dark .wapz-title,
.wapz-skin-studio .wapz-title,
.wapz-skin-ai_discussion .wapz-title{color:#f8fafc}


.wapz-meta-wrap{display:block;margin-bottom:14px}
.wapz-title,.wapz-subtitle,.wapz-description,.wapz-speaker,.wapz-duration-label{display:block}
.wapz-skin-minimal_dark .wapz-subtitle,
.wapz-skin-glass_dark .wapz-subtitle,
.wapz-skin-studio .wapz-subtitle,
.wapz-skin-ai_discussion .wapz-subtitle,
.wapz-skin-minimal_dark .wapz-meta-line,
.wapz-skin-glass_dark .wapz-meta-line,
.wapz-skin-studio .wapz-meta-line,
.wapz-skin-ai_discussion .wapz-meta-line,
.wapz-skin-minimal_dark .wapz-description,
.wapz-skin-glass_dark .wapz-description,
.wapz-skin-studio .wapz-description,
.wapz-skin-ai_discussion .wapz-description{color:#cbd5e1}


/* Phase 12S – Title Overflow + UI Containment Polish */
.wapz-player-card,
.wapz-player-main,
.wapz-meta-wrap{
    min-width:0;
}
.wapz-meta-wrap{
    width:100%;
    max-width:100%;
    overflow:hidden;
}
.wapz-title{
    display:block;
    width:100%;
    max-width:100%;
    overflow:hidden;
    overflow-wrap:anywhere;
    word-break:break-word;
    hyphens:auto;
}
.wapz-player-headline > *{
    min-width:0;
}
.wapz-playlist-item,
.wapz-playlist-item-main{
    min-width:0;
}
.wapz-playlist-item-title,
.wapz-playlist-item small{
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.wapz-playlist-duration,
.wapz-playlist-item-duration{
    white-space:nowrap;
    flex:0 0 auto;
    color:#64748b;
}
@media (min-width: 781px){
    .wapz-title{
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        white-space:normal;
    }
}
@media (max-width: 780px){
    .wapz-player-card{
        gap:16px;
        padding:18px;
    }
    .wapz-title{
        font-size:22px;
        line-height:1.22;
        white-space:normal;
    }
    .wapz-subtitle{
        line-height:1.45;
    }
    .wapz-controls-row{
        gap:8px;
    }
    .wapz-speed{
        min-width:74px;
    }
}


/* Phase 12U sticky + QA hardening */
.wapz-sticky-shell{display:none;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity .2s ease, transform .2s ease, visibility .2s ease}
.wapz-sticky-shell.is-visible{display:block !important;opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.wapz-sticky-inner{width:min(860px, calc(100vw - 32px))}
.wapz-sticky-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wapz-sticky-meta{overflow:hidden}

/* Phase 12V sticky visibility recovery */
.wapz-sticky-shell{
    display:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}
.wapz-sticky-shell.is-visible{
    display:block !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
}
