
/* SONGSHOVE V8.5 — UNIVERSAL LEGACY ALIAS RETIREMENT PASS 13
 * Universal UI compatibility selectors now target the universal Single-page/audio classes directly where legacy aliases were fully retired. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Controls Foundation Pass 12: exact-value shared action padding/heights; no visual/layout/function change. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 9
 * Shared ownership for existing customer-facing interactive-link decoration resets.
 * Existing `text-decoration: none` behavior is preserved exactly; no new selectors are changed.
 * Coded: 2026-09-17
 */
/* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 8: shared interactive pointer-cursor ownership; behavior remains exactly pointer. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Controls Foundation Pass 6: existing native appearance resets now use the shared control token; rendered/browser behavior unchanged. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Controls Foundation Pass 3: proven control padding now uses shared semantic tokens at identical values. Coded: 2026-09-17 */
/* Buttons / Forms / Common Controls Foundation Pass 2: shared compact-control radius/min-height ownership at identical rendered values; no layout or behavior redesign. Coded: 2026-09-17 */
/* Shared controls foundation grouping: semantic control ownership only; rendered values unchanged. Coded: 2026-09-17 */
/* Card Foundation Grouping Pass 22: shared pill/capsule radius ownership; rendered radius remains 999px. Coded: 2026-09-17 */
/* Card Foundation Grouping Pass 21: shared action-hover shadow ownership added; rendered value unchanged. Coded: 2026-09-17 */
/* Card Foundation Grouping Pass 15: route proven compact interactive-control 8px radii through shared ownership without changing geometry. Coded: 2026-09-17 */
/*
 * Card Foundation Grouping Pass 9 — exact palette catch-up.
 * Routes missed compressed/important white, soft, blue, dark-blue, and standard-border values through existing shared SongShove tokens without changing rendered values.
 * Coded: 2026-09-17
 */
/* SONGSHOVE V8.5.0 — Card Foundation Grouping Pass 5
 * Centralizes repeated neutral supporting surfaces and borders at exact existing values.
 * No layout, spacing, radius, shadow, responsive, or functional behavior changes.
 * Coded: 2026-09-17
 */
/* Card Foundation Grouping Pass 3: shared status/support surface ownership; exact rendered values preserved. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Typography semantic token boundary cleanup: separates text-only colors from surface/action ownership at identical rendered values. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Typography Color + Weight Grouping Pass 3
 * Final repeated normal text/status color ownership cleanup at identical rendered values.
 * No layout, spacing, responsive, icon, background, border, gradient or functional behavior changes.
 * Coded: 2026-09-17
 */
/* Typography color + weight grouping Pass 2: repeated customer-facing text/status colors and 950 weight now use shared exact-value controls. Coded: 2026-09-17 */
/* SONGSHOVE V8.5.0 — Typography Color + Weight Grouping Pass 1
 * Routes common text colors and font weights through shared SongShove tokens without changing layout or functionality.
 * Coded: 2026-09-17
 */
/* SONGSHOVE V8.5.0 — Typography Grouping Pass 9
 * Centralizes only traced text-role sizes that are safe to design globally later.
 * Exact rendered sizes are preserved; icons, placeholders, functional zero-size rules, responsive display clamps and layout behavior remain local.
 * Coded: 2026-09-17
 */
/* SONGSHOVE V8.5.0 — Typography Grouping Pass 7
 * Routes only proven reusable archive/profile text roles through semantic shared tokens at identical sizes.
 * No layout, function, icon sizing, responsive geometry or rendered font-size values are changed.
 * Coded: 2026-09-17
 */
/* SONGSHOVE V8.5.0 — Typography Grouping Pass 5
 * Routes remaining common customer-facing font sizes through exact-value shared tokens.
 * No rendered font-size values are changed in this pass.
 * Coded: 2026-09-17
 */
/* SONGSHOVE V8.5.0 — Typography Grouping Pass 3
 * Reuses existing shared typography tokens at identical computed sizes so future design changes can be controlled centrally.
 * No visual font-size values are changed in this pass.
 * Coded: 2026-09-16
 */
/**
 * ============================================================
 * SONGSHOVE V8.2 — SITE-WIDE UI + LAYOUT FOUNDATION
 * ============================================================
 *
 * DESIGN MASTER: approved Single Campaign workspace.
 *
 * This file owns reusable SongShove visual primitives and layout
 * utilities. It is loaded across the public SongShove product, but
 * intentionally styles only SongShove-prefixed component classes and
 * explicitly scoped migration selectors. Generic WordPress/theme elements stay
 * local except where a documented site-wide owner is intentionally approved.
 * The first approved exception is the universal frontend <main> ambient field
 * added in Pass 37; header/menu/footer remain outside that background owner.
 *
 * Questionnaire is now connected to the shared UI foundation for global
 * typography/page ownership while preserving its approved large controls,
 * gradients, feature layout and interaction-specific styling locally.
 * Header/menu/footer are not targeted here.
 * ============================================================
 */


/* SONGSHOVE V8.5 — UNIVERSAL LEGACY SELECTOR PURGE PASS 16
 * Coded: 2026-09-18
 * Dead ssa-* / sss-* visual aliases with zero live PHP/JS owners were removed.
 * Live functional hooks remain intentionally untouched.
 */
/* ============================================================
   01. SITE-WIDE DESIGN TOKENS
   Campaign-approved values. Change shared SongShove UI here once.
   ============================================================ */
/* SONGSHOVE V8.5.0 — Card Foundation Grouping Pass 4
 * Adds secondary UI-border ownership and completes safe static standard-card shadow ownership.
 * Exact rendered values preserved; animation keyframes and special effects remain local.
 * Coded: 2026-09-17
 */
/* Card Foundation Grouping Pass 16 — shared static component shadow roles.
 * Centralizes proven repeated non-animated shadows without changing rendered values.
 * Coded: 2026-09-17
 */

/* SongShove Card Foundation Grouping Pass 20
 * Adds shared ownership for repeated cool-white support surfaces and neutral
 * detail separators while preserving the exact existing rendered values.
 * Coded: 2026-09-17
 */
:root{
    --ss-shadow-action-soft: 0 2px 6px rgba(15,23,42,.035);
    --ss-shadow-action-hover: 0 5px 14px rgba(37,99,235,.09); /* Shared hover shadow for proven SongShove action controls. Coded: 2026-09-17 */
    --ss-shadow-connection-soft: 0 4px 15px rgba(15,23,42,.035);
    --ss-shadow-artwork-soft: 0 4px 14px rgba(15,23,42,.06);
    --ss-shadow-connection-compact: 0 3px 10px rgba(15,23,42,.025);
    --ss-shadow-profile-head: 0 10px 26px rgba(15,23,42,.075), 0 2px 7px rgba(15,23,42,.04);
    --ss-shadow-connection-raised: 0 8px 22px rgba(15,23,42,.06);
    --ss-shadow-filter-control: 0 2px 6px rgba(0,0,0,.04);
    --ss-shadow-content-card-soft: 0 3px 12px rgba(0,0,0,.04);
}

:root{
    --ss-page: #F4F7FB;

    /* SONGSHOVE CARD FOUNDATION — repeated semantic surfaces/borders kept separate by role so future design changes do not cross component boundaries. Coded: 2026-09-17 */
    --ss-page-workspace: #F7F8FA;
    --ss-surface-danger-subtle: #FFF7F7;
    --ss-border-archive-card: #DDE3EB;
    --ss-border-release-popover: #D7E4F5;
    --ss-border-state-completed: #D7DEE8;
    --ss-border-state-success-complete: #CFE7D8;
    --ss-border-action-hover: #AFC8FA;
    --ss-card: #FFFFFF;
    --ss-soft: #F8FBFF;

    /* SONGSHOVE — UNIVERSAL BRAND MOTION GRADIENTS / PASS 91
     * Why: Final audit of the finished universal group found View Order still
     * privately owned the exact SongShove spectrum/status gradient and title
     * shimmer gradient already repeated by the order-generation flow. Own the
     * visual language here once so current/future customer-flow pages can consume
     * the same brand treatment without private copies. Rendered values unchanged.
     * Coded: 2026-09-24
     */
    --ss-brand-gradient: linear-gradient(90deg, #20D8FF 0%, #347DFF 28%, #665CFF 56%, #9B4DFF 78%, #F044C8 100%);
    --ss-brand-title-shimmer-gradient: linear-gradient(90deg, #08172F 0%, #08172F 46%, #347DFF 48%, #785CFF 50%, #F245C7 52%, #08172F 54%, #08172F 100%);
    --ss-blue: #2563EB;
    --ss-blue-dark: #1D4ED8;
    --ss-blue-soft: #EFF6FF;
    --ss-blue-border: #BFDBFE;
    --ss-text: #14213D;
    --ss-text-strong: #14213D;
    --ss-muted-strong: #475467;
    --ss-muted: #64748B;
    --ss-muted-alt: #667085;
    --ss-border: #DDE5F0;
    --ss-border-strong: #D6DCE5;
    --ss-border-soft: #E7EDF5;
    --ss-border-ui-secondary: #E4EAF2;
    /* SongShove neutral supporting surface/border ownership.
     * Exact V8.5.0 values preserved for future centralized card design.
     * Coded: 2026-09-17
     */
    --ss-border-ui-tertiary: #E2E5EA;
    --ss-border-card-neutral: #DCE2EA;
    --ss-border-tool: #DFEAF8;
    --ss-surface-section: #FAFBFC;
    --ss-surface-support: #F8FAFD;
    --ss-surface-cool-light: #FBFDFF;
    --ss-surface-cool-subtle: #FBFCFE;
    --ss-divider-neutral: #E7EBF0;
    /* SONGSHOVE V8.5.0 — Card Foundation Grouping Pass 19.
     * Shared neutral/completed surfaces keep repeated support and completion states centrally owned.
     * Exact existing colors are preserved; no visual change intended.
     * Coded: 2026-09-17
     */
    --ss-surface-neutral: #F5F7FA;
    --ss-surface-completed: #EEF2F7;
    /* SONGSHOVE V8.5.0 — Card Foundation Grouping Pass 14.
     * Shared raised white-to-soft card/workspace surface used by archive and single-workspace panels.
     * Exact existing gradient preserved; ownership preparation only.
     * Coded: 2026-09-17
     */
    --ss-surface-raised-gradient: linear-gradient(180deg,#FFFFFF 0%,#FCFDFE 100%);
    --ss-divider: #E8EEF6;
    --ss-divider-soft: #EEF2F7;
    --ss-success: #15803D;
    --ss-success-soft: #F0FDF4;
    --ss-success-border: #BBF7D0;
    --ss-danger: #DC2626;
    --ss-danger-soft: #FEF2F2;
    --ss-danger-border: #FECACA;

    /* SONGSHOVE — UNIVERSAL SOFT WARNING / ATTENTION SURFACE
     * Why: Pending/unfinished customer states need a visible but brand-compatible
     * warning wash that is softer than the semantic danger red used for status text.
     * Coded: 2026-09-24
     */
    --ss-warning-surface: #FFF8FA;
    --ss-warning-surface-hover: #FFF3F6;
    --ss-warning-border: #F0D8DF;
    --ss-shadow: 0 7px 24px rgba(15,23,42,.055);
    --ss-shadow-hover: 0 15px 34px rgba(15,23,42,.10), 0 3px 9px rgba(15,23,42,.045);
    --ss-modal-shadow: 0 24px 70px rgba(15,23,42,.22);
    --ss-radius-card: 14px;
    --ss-radius-control: 9px;
    /* Compact interactive controls keep their proven 8px geometry under separate shared ownership. Coded: 2026-09-17 */
    --ss-radius-compact-control: 8px;
    --ss-radius-pill: 999px; /* Shared capsule/pill radius for badges, chips, tabs, status pills, and pill actions. Coded: 2026-09-17 */

    /* Shared form/action control ownership. Values intentionally map to the existing accepted SongShove design so this foundation pass does not alter appearance. Coded: 2026-09-17 */
    --ss-control-surface: var(--ss-surface-white);
    --ss-control-surface-soft: var(--ss-soft);
    --ss-control-border: 1px solid var(--ss-border);
    --ss-control-text: var(--ss-text);
    --ss-control-focus-border: var(--ss-blue);
    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 6.
     * Shared ownership for existing native-appearance resets on proven custom controls.
     * No new controls receive appearance suppression; browser behavior remains unchanged.
     * Coded: 2026-09-17
     */
    --ss-control-native-appearance: none;

    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 11.
     * Shared form-state ownership for placeholders, disabled fields, and invalid borders.
     * Exact accepted values preserved; no visual or behavior change intended.
     * Coded: 2026-09-17
     */
    --ss-control-placeholder: var(--ss-muted-light);
    --ss-control-placeholder-soft: var(--ss-muted-soft);
    --ss-control-placeholder-editor: rgba(16, 29, 59, .48);
    --ss-control-disabled-surface: #F1F5F9;
    --ss-control-disabled-text: var(--ss-muted-light);
    --ss-control-invalid-border: var(--ss-danger);
    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 7.
     * Shared disabled/busy interaction-state ownership for controls already using these exact states.
     * Values remain unchanged; no new disabled or busy behavior is introduced.
     * Coded: 2026-09-17
     */
    --ss-control-disabled-opacity: .55;
    --ss-control-disabled-cursor: not-allowed;
    --ss-control-busy-opacity: .65;
    --ss-control-busy-cursor: wait;
    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 8.
     * Shared pointer cursor for proven interactive customer-facing controls/actions.
     * Existing behavior remains exactly `pointer`; ownership preparation only.
     * Coded: 2026-09-17
     */
    --ss-interactive-cursor: pointer;
    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 9.
     * Shared decoration reset for existing customer-facing interactive links/actions.
     * Existing behavior remains exactly `none`; ownership preparation only.
     * Coded: 2026-09-17
     */
    --ss-interactive-decoration: none;
    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 10.
     * Shared transition ownership for proven customer-facing controls only.
     * Existing timing/property combinations are preserved; cards, progress, modal motion, arrows and keyframes remain local.
     * Coded: 2026-09-17
     */
    --ss-transition-control-basic: background 0.15s ease, color 0.15s ease;
    --ss-transition-control-interactive: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
    --ss-transition-field: border-color .15s ease, box-shadow .15s ease, background .15s ease;
    --ss-transition-field-simple: border-color 0.15s ease, box-shadow 0.15s ease;
    --ss-transition-control-chrome: background .15s ease, border-color .15s ease, color .15s ease;
    --ss-transition-raised-action: transform .18s ease, box-shadow .18s ease;
    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 5.
     * Shared focus-state ownership for proven customer-facing controls/interactions.
     * Values remain exactly unchanged; this prepares future focus styling without altering layout or behavior.
     * Coded: 2026-09-17
     */
    --ss-control-focus-ring: 0 0 0 2px rgba(37,99,235,.10);
    --ss-control-focus-ring-strong: 0 0 0 2px rgba(37,99,235,.12);
    --ss-control-focus-outline: 2px solid var(--ss-blue);
    --ss-control-focus-outline-soft: 2px solid rgba(37,99,235,.28);
    --ss-control-focus-offset: 2px;
    --ss-control-radius: var(--ss-radius-control);
    /* Buttons / Forms / Common Controls Foundation Pass 2 — compact control geometry.
     * These aliases preserve the accepted 7px radius and 28/30/32px minimum heights so future control design can be adjusted by role without touching card/layout geometry.
     * Coded: 2026-09-17
     */
    --ss-control-radius-tight: 7px;
    --ss-control-height-icon: 28px;
    --ss-control-height-compact: 30px;
    --ss-control-height-standard: 32px;
    /* Shared comfortable/large/prominent control heights.
     * Exact-value ownership only; preserves existing control geometry.
     * Coded: 2026-09-17
     */
    --ss-control-height-comfortable: 34px;
    --ss-control-height-large: 36px;
    --ss-control-height-prominent: 38px;

    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 3.
     * Shared padding ownership for proven customer-facing control roles.
     * Values are unchanged; this prepares future control design without changing layout.
     * Coded: 2026-09-17
     */
    --ss-control-padding-field: 7px 9px;
    --ss-control-padding-compact: 6px 9px;
    --ss-control-padding-menu: 6px 8px;
    --ss-control-padding-action: 7px 11px;

    /* SONGSHOVE V8.5.0 — Buttons / Forms / Common Controls Foundation Pass 12.
     * Shared ownership for proven standard action/tab padding plus compact-action and CTA control heights.
     * Values remain identical; layout and behavior are unchanged.
     * Coded: 2026-09-17
     */
    --ss-control-padding-standard-action: 7px 10px;
    --ss-control-height-compact-action: 27px;
    --ss-control-height-cta: 42px;
    --ss-button-primary-bg: var(--ss-blue);
    --ss-button-primary-hover-bg: var(--ss-blue-dark);
    --ss-button-primary-text: var(--ss-text-inverse);


    /* SONGSHOVE V8.8.0 — UNIVERSAL FORM 67 CUSTOMER FORM TOKENS / PASS 42
     * Why: My Account → Edit Account is the accepted customer-form reference.
     * These tokens centralize its approved labels, fields, focus, help text,
     * primary actions and notices so Contact and future migrated pages can share
     * one visual owner without changing Artist/Song/Campaign/MusicBook forms yet.
     * Coded: 2026-09-23
     */
    --ss-form-label-color: #14213D;
    --ss-form-label-size: var(--ss-type-compact, 13px);
    --ss-form-label-weight: var(--ss-weight-bold, 800);
    --ss-form-required-color: #665CFF;
    --ss-form-control-bg: rgba(255, 255, 255, .78);
    --ss-form-control-bg-focus: #FFFFFF;
    --ss-form-control-border-color: #D9DFEB;
    --ss-form-control-focus-border: #4A63A0;
    --ss-form-control-text: #465066;
    --ss-form-control-size: var(--ss-type-compact, 13px);
    --ss-form-control-min-height: 44px;
    --ss-form-control-padding: 10px 12px;
    --ss-form-control-radius: 10px;
    --ss-form-control-focus-shadow: 0 0 0 3px rgba(74, 99, 160, .10);
    --ss-form-support-color: #758097;
    --ss-form-support-size: var(--ss-type-compact, 13px);
    /* PASS 80I — Universal mini-label/status accent. Bright blue is reserved
     * for mini title headers, section-corner badges/pills and equivalent compact labels. */
    --ss-mini-label-color: #2563EB;
    --ss-form-primary-bg: #4A63A0;
    --ss-form-primary-hover-bg: #405890;
    --ss-form-primary-text: #FFFFFF;
    --ss-form-primary-size: var(--ss-type-body, 11px);
    --ss-form-primary-weight: var(--ss-weight-heavy, 900);
    --ss-form-primary-min-height: 44px;
    --ss-form-primary-padding: 10px 18px;
    --ss-form-primary-radius: 10px;
    --ss-form-primary-shadow: 0 8px 18px rgba(74, 99, 160, .18);
    --ss-form-primary-shadow-hover: 0 10px 22px rgba(74, 99, 160, .22);
    /* SONGSHOVE — UNIVERSAL COMPACT PRIMARY ACTION VARIANT / PASS 63
     * Why: Dense action areas such as WooCommerce Orders need the same Contact/Edit
     * Account button language at a smaller physical size, not a separate button skin.
     * Coded: 2026-09-24
     */
    --ss-form-primary-compact-min-height: 38px;
    --ss-form-primary-compact-padding: 8px 13px;
    --ss-form-notice-border-color: #D9E0EC;
    --ss-form-notice-bg: rgba(255, 255, 255, .82);
    --ss-form-notice-radius: 11px;
    --ss-form-notice-shadow: 0 5px 14px rgba(20, 33, 61, .035);

    /* SONGSHOVE V8.5.0 — Card Foundation Grouping Pass 10
       Separates proven workspace-shell and archive-panel geometry into shared role tokens.
       Values remain identical; this is ownership preparation only.
       Coded: 2026-09-17 */
    --ss-radius-workspace-shell: 18px;

    /* Shared Single Artist/Song entity-shell and action ownership.
     * Keeps repeated entity-workspace geometry/surfaces centralized without changing rendered values.
     * Coded: 2026-09-17
     */
    --ss-radius-entity-shell: 22px;
    --ss-border-action-neutral: #D8DEE7;
    --ss-radius-archive-panel: 16px;
    --ss-gap: 12px;

    /* Campaign-master progress + status primitives. */
    --ss-status-bg: #F8FAFC;
    --ss-status-border: #D1D5DB;
    --ss-status-text: #62656D;
    --ss-status-info-bg: #EFF6FF;
    --ss-status-info-border: #BFDBFE;
    --ss-status-info-text: #2563EB;
    --ss-progress-track: #E7EDF5;
    --ss-progress-track-compact: #E9EEF5; /* Compact progress-track surface used by dense Single Workspace summaries. Coded: 2026-09-18 */
    --ss-progress-track-main: rgba(37,99,235,.11);
    --ss-progress-fill: #2563EB;
    --ss-progress-complete-track: #DCFCE7;
    --ss-progress-complete-fill: #15803D;

    /* Campaign-master reusable surfaces. */
    --ss-card-bg: #FFFFFF;
    --ss-card-border: 1px solid var(--ss-border);
    --ss-card-padding: 14px;
    --ss-card-padding-mobile: 12px;
    --ss-card-shadow: 0 7px 24px rgba(15,23,42,.055);

    /* SONGSHOVE CARD FOUNDATION — shared single-workspace shell/card ownership.
     * Why: Single Artist, Single Song, and the shared single-workspace layer repeat
     * these exact shell-border and static workspace-shadow values. Keep them
     * centralized without changing rendered geometry or appearance.
     * Coded: 2026-09-17
     */
    --ss-border-workspace-shell: #E3E7ED;
    --ss-shadow-workspace-shell: 0 24px 60px rgba(15,23,42,.10), 0 5px 16px rgba(15,23,42,.05);
    --ss-shadow-workspace-card: 0 7px 22px rgba(15,23,42,.055);

    /* SONGSHOVE V8.5.0 — Card Foundation Grouping Pass 11.
     * Repeated interaction/icon/popover border colors now have semantic shared ownership.
     * Values are unchanged; this is design-control preparation only.
     * Coded: 2026-09-17
     */
    --ss-border-icon-soft: #D5E4FF;
    --ss-border-control-soft-blue: #D7E2F0;
    --ss-border-popover: #DCE6F3;
    --ss-border-hover-blue: #B8CDF8;
    --ss-border-hover-strong: #AFC3EA;

    /* Card Foundation Pass 13: shared support/control border roles.
     * Keeps panel, subtle-hover, strong-hover, and badge borders independently designable.
     * Coded: 2026-09-17
     */
    --ss-border-panel-support: #E4EAF3;
    --ss-border-hover-subtle: #BFD2EE;
    --ss-border-hover-accent: #93C5FD;
    --ss-border-badge-blue: #DBEAFE;
    --ss-titlebar-bg: #FFFFFF;
    --ss-titlebar-border: 1px solid var(--ss-border);
    --ss-titlebar-radius: 14px;
    --ss-titlebar-shadow: 0 7px 24px rgba(15,23,42,.055);
    --ss-titlebar-padding: 13px 16px;

    /* SONGSHOVE DESIGN CLEANUP — the proven Single Campaign / Artist / Song desktop width is now the site-wide full-width reference. Full-width shared shells are uncapped and use the same 25px desktop edge target; intentional narrow content caps remain local to their pages. Mobile gutter stays unchanged for the later responsive-system pass. Coded: 2026-09-16 */
    --ss-content-max: none;
    --ss-content-gutter: 25px;
    --ss-content-gutter-mobile: 12px;

    /* SONGSHOVE — UNIVERSAL PAGE OUTER BREATHING ROOM / PASS 75
     * Why: Finished pages share one tighter 10px ambient gap above the content while
     * retaining the accepted lower breathing room (18px desktop/tablet, 15px mobile).
     * Keep top and bottom ownership separate so future tuning does not require page-local
     * overrides or accidentally change the footer-side spacing.
     * Coded: 2026-09-24
     */
    --ss-page-outer-gap-top: 10px;
    --ss-page-outer-gap: 18px;
    --ss-page-outer-gap-mobile: 15px;

    /* SONGSHOVE — UNIVERSAL FULL-WIDTH CONTENT SURFACE / PASS 39
     * Why: The accepted My Account → View Order .woocommerce-MyAccount-content
     * appearance is now the canonical visual owner for normal full-width
     * SongShove page content. Future page migrations should consume these tokens
     * instead of rebuilding the same shell locally.
     * Coded: 2026-09-23
     */
    --ss-content-surface-bg: #F9F8FC;
    --ss-content-surface-bg-image: linear-gradient(135deg, rgba(52, 125, 255, .07), rgba(102, 92, 255, .05) 55%, #F9F8FC);
    --ss-content-surface-border: #D9E0EC;
    --ss-content-surface-text: #465066;
    --ss-content-surface-radius: 24px;
    --ss-content-surface-radius-mobile: 18px;
    --ss-content-surface-padding: clamp(20px, 2.4vw, 32px);
    --ss-content-surface-padding-mobile: 15px;
    --ss-content-surface-shadow: 0 16px 38px rgba(20, 33, 61, .09);
    --ss-content-surface-shadow-depth: 0 19px 45px rgba(20, 33, 61, .115), 0 0 0 4px rgba(102, 92, 255, .045);

    /* SONGSHOVE — UNIVERSAL SUBTLE INNER-CARD FOUNDATION / PASS 78
     * Why: Finished customer/account pages repeatedly use the same quiet border,
     * compact radii, and low-elevation shadows for cards nested inside the main
     * content surface. Own those proven visual primitives here while preserving
     * each page's intentionally different translucency, padding, layout, and
     * functional structure locally. No rendered values are changed in this pass.
     * Coded: 2026-09-24
     */
    --ss-inner-card-border: 1px solid var(--ss-content-surface-border);
    --ss-inner-card-radius-compact: 12px;
    --ss-inner-card-radius: 13px;
    --ss-inner-card-radius-large: 14px;
    --ss-inner-card-surface-soft: rgba(255, 255, 255, .66);
    /* SONGSHOVE — FINISHED GROUP QUIET INNER-SURFACE CONSOLIDATION / PASS 91
     * Why: Payment Methods and View Order both use this exact quieter nested
     * surface value. Centralize the exact shared value without changing either
     * component's layout, padding, border, or behavior. Coded: 2026-09-24
     */
    --ss-inner-card-surface-muted: rgba(255, 255, 255, .64);
    --ss-inner-card-shadow-soft: 0 5px 14px rgba(20, 33, 61, .035);
    --ss-inner-card-shadow-raised: 0 6px 16px rgba(20, 33, 61, .045);

    /* SONGSHOVE — FINISHED-PAGE FINAL INNER-CARD RESIDUE CLEANUP / PASS 82
     * Why: Final audit found two exact shared values still hard-coded across the
     * finished-page group: the 12px compact inner-card radius and the .66 quiet
     * inner-card surface used by Dashboard + Addresses. Own those exact values
     * here instead of leaving duplicated page-local literals. Coded: 2026-09-24
     */

    /* SONGSHOVE — UNIVERSAL MY ACCOUNT SIDEBAR LAYOUT / PASS 43
     * Why: The accepted My Account Dashboard sidebar/content geometry is now
     * the canonical layout owner for SongShove pages that intentionally use a
     * left navigation rail. Keep these controls centralized so future account
     * pages can migrate without rebuilding their own widths, gaps, card chrome,
     * link states, or responsive stacking.
     * Coded: 2026-09-24
     */
    --ss-account-sidebar-width: 260px;
    --ss-account-sidebar-gap: 18px;
    --ss-account-sidebar-padding: 10px;
    --ss-account-sidebar-padding-mobile: 8px;
    --ss-account-sidebar-radius: 20px;
    --ss-account-sidebar-radius-mobile: 16px;
    --ss-account-sidebar-shadow: 0 14px 30px rgba(20, 33, 61, .075);
    --ss-account-sidebar-link-gap: 5px;
    --ss-account-sidebar-link-gap-mobile: 4px;
    --ss-account-sidebar-link-height: 40px;
    --ss-account-sidebar-link-padding: 9px 11px;
    --ss-account-sidebar-link-radius: 9px;
    --ss-account-content-padding-mobile: 18px;
    --ss-account-content-radius-mobile: 18px;

    /* SONGSHOVE TYPOGRAPHY — Manrope is the approved main font; Poppins is an optional display font.
       Purpose: Test Manrope as the direct SongShove customer-facing font without relying on
       the WordPress font preset. Header/menu remain untouched. Questionnaire now
       consumes this shared font token while keeping its unique layout/styles local.
       Updated: 2026-09-14 */
    --ss-font: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ss-font-display: "Poppins", "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    /* SONGSHOVE V8.5.0 — Typography Color + Weight Grouping Pass 1
       Central controls for common customer-facing text colors and font weights.
       Values preserve the existing SongShove appearance; RhymeBook normal text is aligned to the shared SongShove text palette only.
       Coded: 2026-09-17 */
    --ss-text-inverse: #FFFFFF;
    /* SONGSHOVE V8.5.0 — Typography semantic token boundary cleanup.
       Keeps surface/action colors separate from text-only tokens while preserving identical rendered values.
       Coded: 2026-09-17 */
    --ss-surface-white: #FFFFFF;
    --ss-action-dark: #14213D;
    --ss-weight-regular: 400;
    --ss-weight-medium: 500;
    --ss-weight-semibold: 600;
    --ss-weight-650: 650;
    --ss-weight-strong: 700;
    --ss-weight-750: 750;
    --ss-weight-bold: 800;
    --ss-weight-850: 850;
    --ss-weight-heavy: 900;

    /* SongShove shared extended typography color controls.
     * Preserves current rendered colors while moving repeated customer-facing
     * text/status colors into centralized design ownership.
     * Coded: 2026-09-17
     */
    --ss-text-ink: #18181B;
    --ss-text-charcoal: #171A20;
    --ss-text-slate: #334155;
    --ss-text-navy: #08172F;
    --ss-muted-light: #94A3B8;
    --ss-muted-soft: #9CA3AF;
    --ss-muted-deep: #4B5563;
    --ss-muted-ui: #4F5968;
    --ss-blue-bright: #347DFF;
    --ss-blue-deeper: #1E40AF;
    --ss-danger-strong: #B42318;
    --ss-success-vivid: #16A34A;
    --ss-success-deep: #166534;
    --ss-success-alt: #17803D;
    /* SongShove final repeated typography color controls.
     * Centralizes the last clearly repeated normal text/status colors at their exact existing values.
     * One-off component colors remain local to avoid over-generalizing unrelated visual roles.
     * Coded: 2026-09-17
     */
    --ss-text-deep: #101D3B;
    --ss-muted-copy: #51617D;
    --ss-text-control: #3E4653;
    --ss-success-ui: #157347;
    --ss-text-detail-strong: #3D4757;
    --ss-muted-profile: #666D78;

    /* SongShove shared extended typography weight control.
     * Keeps the existing extra-heavy 950 treatment unchanged while making it centrally adjustable.
     * Coded: 2026-09-17
     */
    --ss-weight-950: 950;
    /* SONGSHOVE V8.5.0 — Typography Grouping Pass 5
       Adds exact-value ownership tokens for the remaining common customer-facing sizes.
       These values intentionally match the existing rendered sizes; this prepares future design control without changing appearance.
       Coded: 2026-09-17 */
    --ss-type-page: 20px;
    --ss-type-section: 19px;
    --ss-type-card: 18px;
    --ss-type-heading: 17px;
    --ss-type-subheading: 16px;
    --ss-type-emphasis: 15px;
    --ss-type-medium: 14px;
    --ss-type-compact: 13px;
    --ss-type-support: 12px;
    --ss-type-body: 11px;
    --ss-type-control: 11px;
    --ss-type-label: 10px;
    /* SONGSHOVE V8.5.0 — Typography Grouping Pass 6
       Finishes exact-value ownership for the remaining compact customer UI text roles.
       Values remain unchanged; the separate icon token prevents future tiny-text changes from resizing the location dot glyph.
       Coded: 2026-09-17 */
    --ss-type-detail: 9.5px;
    --ss-type-meta: 9px;
    --ss-type-micro-control: 8.5px;
    --ss-type-micro: 8px;
    --ss-type-micro-label: 7.5px;
    --ss-type-nano: 7px;
    --ss-icon-xs: 7px;

    /* SONGSHOVE V8.8.0 — FINISHED CUSTOMER SEMANTIC TYPOGRAPHY ROLES / PASS 81
     * Why: Finished customer/account/support pages were still addressing legacy
     * size/color tokens directly. These aliases give those pages stable semantic
     * roles while preserving the exact currently accepted rendered values.
     * Future typography changes can now be made by role instead of page.
     * Coded: 2026-09-24
     */
    --ss-customer-copy-color: var(--ss-form-control-text, #465066);
    --ss-customer-copy-size: var(--ss-type-body, 11px);
    --ss-customer-copy-weight: var(--ss-weight-medium, 500);
    --ss-customer-heading-color: var(--ss-text, #14213D);
    --ss-customer-heading-size: var(--ss-type-medium, 14px);
    --ss-customer-heading-weight: var(--ss-weight-heavy, 900);
    --ss-customer-support-color: var(--ss-muted-alt, #667085);
    --ss-customer-support-size: var(--ss-type-support, 12px);
    --ss-customer-support-weight: var(--ss-weight-medium, 500);
    --ss-customer-table-label-color: var(--ss-form-support-color, #758097);
    --ss-customer-table-label-size: var(--ss-type-label, 10px);
    --ss-customer-table-label-weight: var(--ss-weight-heavy, 900);
    /* SONGSHOVE — UNIVERSAL CUSTOMER RECEIPT SOFT SURFACE / PASS 91D
     * Why: Finished View Order and Order Received use the exact same .58
     * translucent surface for receipt headers and totals. Own that proven value
     * once instead of repeating page-local literals. Coded: 2026-09-24
     */
    --ss-customer-table-surface-soft: rgba(255, 255, 255, .58);

    /* SONGSHOVE V8.5.0 — Typography Grouping Pass 7
       Adds semantic controls only for proven reusable archive/profile text roles.
       Values exactly match the existing rendered sizes; icons, layout rules, functional zero-size rules and special display typography remain untouched.
       Coded: 2026-09-17 */
    --ss-type-profile-title: 21px;
    --ss-type-archive-title: 30px;
    --ss-type-archive-title-compact: 25px;
    --ss-type-empty-heading: 22px;

    /* SONGSHOVE V8.5.0 — Typography Grouping Pass 8
       Adds role-specific controls for the final clearly reusable customer-facing text headings without changing their rendered sizes.
       Special display typography, icons, responsive clamp() sizing, prices and functional zero-size rules remain intentionally local.
       Coded: 2026-09-17 */
    --ss-type-workspace-feature-title: 21px;
    --ss-type-status-title: 21px;
    --ss-type-summary-title: 23px;
    --ss-type-questionnaire-main-title: 28px;
    --ss-type-questionnaire-main-title-mobile: 24px;
    --ss-type-questionnaire-header-title: 30px;
    --ss-type-questionnaire-header-title-mobile: 25px;

    /* SONGSHOVE V8.5.0 — Typography Grouping Pass 9
       Role-specific controls for remaining traced text-only headings, values and responsive text states.
       Values intentionally match the existing CSS exactly; this creates future design controls without changing appearance.
       Coded: 2026-09-17 */
    --ss-type-pricing-card-title: 24px;
    --ss-type-pricing-price: 30px;
    --ss-type-pricing-tab-price: 34px;
    --ss-type-pricing-tab-comparison-title: 26px;
    --ss-type-rhymebook-section-title: 28px;
    --ss-type-rhymebook-library-title: 46px;
    --ss-type-rhymebook-stat: 29px;
    --ss-type-rhymebook-stat-compact: 24px;
    --ss-type-rhymebook-entries-title: 22px;
    --ss-type-landing-feature-title: 21px;
    --ss-type-progress-percentage: 22px;
    --ss-type-celebration-message: 24px;
    --ss-type-celebration-title: 30px;
    --ss-type-generation-heading: 24px;
    --ss-type-concept-title: 25px;
    --ss-type-concept-title-mobile: 22px;

    /* Campaign-master compact search / filter / sort / tab controls. */
    --ss-toolbar-control-height: 30px;
    --ss-toolbar-control-radius: 7px;
    --ss-toolbar-control-font: 10px;
    --ss-tab-height: 32px;
    --ss-tab-radius: 8px;
    --ss-tab-font: 9px;

    /* Campaign-master dropdown / action-menu / tooltip primitives. */
    --ss-dropdown-trigger-height: 24px;
    --ss-dropdown-trigger-radius: 7px;
    --ss-dropdown-trigger-font: 8.5px;
    --ss-dropdown-menu-min: 128px;
    --ss-dropdown-menu-max: 180px;
    --ss-dropdown-menu-padding: 4px;
    --ss-dropdown-menu-radius: 9px;
    --ss-dropdown-menu-shadow: 0 10px 24px rgba(15,23,42,.12);
    --ss-action-menu-width: 126px;
    --ss-action-menu-padding: 7px;
    --ss-action-menu-radius: 10px;
    --ss-action-menu-shadow: 0 10px 28px rgba(15,23,42,.14);
    --ss-menu-item-height: 30px;
    --ss-menu-item-radius: 7px;
    --ss-menu-item-font: 9px;
    --ss-tooltip-bg: #14213D;
    --ss-tooltip-text: #FFFFFF;
}

/* SONGSHOVE — UNIVERSAL FRONTEND AMBIENT FIELD / PASS 37
 * Purpose: One CSS owner for the accepted animated Form 67 music/brand field
 * across the entire SongShove frontend. This replaces the duplicate ambient
 * background/symbol/keyframe copies that previously lived in individual Cart,
 * Checkout, Order Received, View Order, Orders, Dashboard, Addresses, Payment
 * Methods, Account Details and Contact stylesheets.
 * Scope: the real site <main> only. Header, main navigation, account sidebar and
 * footer are not restyled here. Pass 40 retires competing page-level/root background
 * paint so this remains the single frontend page-field owner while cards, content
 * surfaces, heroes and feature-specific component backgrounds stay local.
 * Coded: 2026-09-23
 */
body:not(.wp-admin) .wp-site-blocks > main {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 12% 18%, rgba(32,216,255,.13), transparent 24%),
        radial-gradient(circle at 83% 25%, rgba(240,68,200,.10), transparent 24%),
        radial-gradient(circle at 72% 78%, rgba(102,92,255,.11), transparent 26%),
        linear-gradient(135deg,
            rgba(32,216,255,.085) 0%,
            rgba(71,118,255,.070) 36%,
            rgba(120,92,255,.075) 66%,
            rgba(242,69,199,.080) 100%),
        var(--ss-page-workspace, #F7F8FA);
    background-size: 135% 135%, 145% 145%, 155% 155%, 120% 120%, auto;
    animation: ssGlobalAmbientWash 14s ease-in-out infinite alternate;
}

body:not(.wp-admin) .wp-site-blocks > main::before,
body:not(.wp-admin) .wp-site-blocks > main::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    pointer-events: none;
    background-repeat: repeat;
    will-change: background-position, opacity;
}

body:not(.wp-admin) .wp-site-blocks > main::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22620%22%20height%3D%22460%22%20viewBox%3D%220%200%20620%20460%22%3E%3Cg%20fill%3D%22%234776FF%22%20fill-opacity%3D%220.58%22%20font-family%3D%22Arial%2Csans-serif%22%20font-weight%3D%22700%22%3E%3Ctext%20x%3D%2242%22%20y%3D%2274%22%20font-size%3D%2230%22%3E%E2%99%AA%3C%2Ftext%3E%3Ctext%20x%3D%22214%22%20y%3D%22126%22%20font-size%3D%2228%22%3E%24%3C%2Ftext%3E%3Ctext%20x%3D%22470%22%20y%3D%2282%22%20font-size%3D%2232%22%3E%E2%99%AB%3C%2Ftext%3E%3Ctext%20x%3D%22112%22%20y%3D%22246%22%20font-size%3D%2228%22%3E%E2%89%8B%3C%2Ftext%3E%3Ctext%20x%3D%22360%22%20y%3D%22218%22%20font-size%3D%2230%22%3E%E2%99%AA%3C%2Ftext%3E%3Ctext%20x%3D%22528%22%20y%3D%22300%22%20font-size%3D%2227%22%3E%24%3C%2Ftext%3E%3Ctext%20x%3D%22248%22%20y%3D%22382%22%20font-size%3D%2231%22%3E%E2%99%AB%3C%2Ftext%3E%3Ctext%20x%3D%2232%22%20y%3D%22402%22%20font-size%3D%2227%22%3E%24%3C%2Ftext%3E%3Ctext%20x%3D%22454%22%20y%3D%22424%22%20font-size%3D%2229%22%3E%E2%89%8B%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    background-size: 620px 460px;
    opacity: .72;
    filter: drop-shadow(0 0 10px rgba(71,118,255,.16));
    animation: ssGlobalAmbientSymbolsA 12s ease-in-out infinite alternate;
}

body:not(.wp-admin) .wp-site-blocks > main::after {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22700%22%20height%3D%22520%22%20viewBox%3D%220%200%20700%20520%22%3E%3Cg%20fill%3D%22%23F245C7%22%20fill-opacity%3D%220.48%22%20font-family%3D%22Arial%2Csans-serif%22%20font-weight%3D%22700%22%3E%3Ctext%20x%3D%2286%22%20y%3D%22112%22%20font-size%3D%2228%22%3E%24%3C%2Ftext%3E%3Ctext%20x%3D%22332%22%20y%3D%2272%22%20font-size%3D%2231%22%3E%E2%99%AA%3C%2Ftext%3E%3Ctext%20x%3D%22596%22%20y%3D%22160%22%20font-size%3D%2229%22%3E%E2%89%8B%3C%2Ftext%3E%3Ctext%20x%3D%22188%22%20y%3D%22270%22%20font-size%3D%2232%22%3E%E2%99%AB%3C%2Ftext%3E%3Ctext%20x%3D%22448%22%20y%3D%22260%22%20font-size%3D%2227%22%3E%24%3C%2Ftext%3E%3Ctext%20x%3D%22628%22%20y%3D%22364%22%20font-size%3D%2231%22%3E%E2%99%AA%3C%2Ftext%3E%3Ctext%20x%3D%2256%22%20y%3D%22430%22%20font-size%3D%2229%22%3E%E2%99%AB%3C%2Ftext%3E%3Ctext%20x%3D%22366%22%20y%3D%22468%22%20font-size%3D%2228%22%3E%E2%89%8B%3C%2Ftext%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    background-size: 700px 520px;
    background-position: 160px 110px;
    opacity: .58;
    filter: drop-shadow(0 0 10px rgba(242,69,199,.13));
    animation: ssGlobalAmbientSymbolsB 14s ease-in-out infinite alternate;
}

body:not(.wp-admin) .wp-site-blocks > main > * {
    position: relative;
    z-index: 1;
}

@keyframes ssGlobalAmbientWash {
    0% { background-position: 0% 0%, 100% 0%, 60% 100%, 0% 50%, 0 0; }
    100% { background-position: 14% 10%, 86% 13%, 47% 89%, 100% 50%, 0 0; }
}

@keyframes ssGlobalAmbientSymbolsA {
    0% { background-position: 0 0; opacity: .62; }
    100% { background-position: 46px 74px; opacity: .78; }
}

@keyframes ssGlobalAmbientSymbolsB {
    0% { background-position: 160px 110px; opacity: .48; }
    100% { background-position: 92px 34px; opacity: .64; }
}

/* SONGSHOVE — UNIVERSAL FOOTER BLOCK-GAP RESET / PASS 38
 * Why: Twenty Twenty-Five supplies a global 1.2rem block gap between direct
 * children of .wp-site-blocks. On pages without a page-specific footer reset,
 * that theme gap renders as a white strip between the universal ambient <main>
 * field and the real site footer. Remove only that outer footer block gap.
 * Footer design/content and page-local content spacing remain unchanged.
 * Coded: 2026-09-23
 */
body:not(.wp-admin) .wp-site-blocks > :is(
    footer.wp-block-template-part,
    footer
) {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

/* SONGSHOVE — ORDER RECEIVED BLOCK-TEMPLATE GAP PARITY / PASS 91B
 * Why: WooCommerce 11.1.2 uses its own block-based Order Confirmation template
 * for the order-received endpoint. Its <main> is outside the My Account/page
 * wrappers used by the finished View Order page, so normalize that exact main
 * here and let the new universal host reveal the same ambient edge gaps.
 * Coded: 2026-09-24
 */
/* SONGSHOVE — FINISHED STANDALONE PAGE TEMPLATE GAP NORMALIZATION / PASS 77
 * Why: Contact and Help/FAQ render through normal WordPress page templates, where
 * Twenty Twenty-Five can add an outer <main> top margin. Contact can also allow
 * its shell's vertical margins to collapse through post content. Normalize those
 * template/flow behaviors here so both standalone finished-page families reveal
 * the exact universal ambient edge gaps without creating page-only spacing values.
 * Coded: 2026-09-24
 */
:is(body.songshove-public-form-page, body.songshove-help-page, body.woocommerce-order-received) .wp-site-blocks > main.wp-block-group {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

body.songshove-public-form-page :is(.wp-block-post-content, .entry-content),
body.woocommerce-order-received .wp-site-blocks > main.wp-block-group {
    display: flow-root;
}

/* SONGSHOVE — UNIVERSAL PUBLIC SUPPORT TEMPLATE TOP INSET / PASS 91M
 * Why: Contact, Help/FAQ, Request a Feature and Report a Bug are finished public
 * support pages, but Twenty Twenty-Five can wrap their post content with slightly
 * different block-group class combinations. Normalize the actual wrapper that
 * directly owns post content instead of relying on one exact theme class chain.
 * This keeps the already-accepted 10px template inset identical across the whole
 * public-support family while the existing universal shell gap remains unchanged.
 * Coded: 2026-09-24
 */
:is(body.songshove-public-form-page, body.songshove-help-page)
.wp-site-blocks > main > :has(> :is(.wp-block-post-content, .entry-content)),
:is(body.songshove-public-form-page, body.songshove-help-page)
.wp-site-blocks > main > :is(.wp-block-post-content, .entry-content) {
    padding-top: var(--ss-page-outer-gap-top, 10px) !important;
}

/* SONGSHOVE — PUBLIC SUPPORT FORM THEME-WRAPPER BOTTOM RESET / PASS 91I
 * Why: Twenty Twenty-Five adds inline `padding-bottom: var(--wp--preset--spacing--60)`
 * to the outer constrained page group used by Request a Feature and Report a Bug.
 * That 30–70px theme padding sits outside SongShove's own universal ambient gap and
 * makes these two Contact-style pages look much deeper above the footer. Neutralize
 * only those two selected public support pages so the existing universal 18px / 15px
 * SongShove shell margin is the sole bottom-gap owner, matching the Contact reference.
 * Coded: 2026-09-24
 */
:is(body.songshove-newfeatures-page, body.songshove-reportbug-page)
.wp-block-group.alignfull.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained {
    padding-bottom: 0 !important;
}

/* SONGSHOVE — UNIVERSAL CUSTOMER PAGE BASE / PASS 59
 * Why: The finished customer/account pages had repeated copies of the same
 * Manrope/base-text ownership and WordPress post-content spacing reset. Keep
 * that theme foundation here once and let page files retain only genuinely
 * unique layout/component rules. This changes presentation ownership only.
 * Coded: 2026-09-24
 */
:is(
    body.songshove-dashboard-page,
    body.songshove-addresses-page,
    body.songshove-payment-methods-page,
    body.songshove-account-details-page,
    body.songshove-profile-settings-page,
    body.songshove-profile-page,
    body.songshove-public-form-page,
    body.songshove-orders-page,
    body.songshove-view-order-page,
    body.albumshove-coming-soon-page,
    body.woocommerce-order-received,
    /* SONGSHOVE — CART FINAL UNIVERSAL BASE REGISTRATION / PASS 91W
     * Why: Cart now consumes the same finished-page base typography owner instead
     * of repeating body-level Manrope/text ownership in cart-page.css.
     * Coded: 2026-09-25
     */
    body.woocommerce-cart
) {
    color: var(--ss-text, #14213D);
    font-family: var(--ss-font, "Manrope", sans-serif);
}

/* SONGSHOVE — ORDER RECEIVED BLOCK-CONTENT FONT INHERITANCE / PASS 91C
 * Why: WooCommerce block controls/tables/links can carry their own font rules.
 * Keep the verified Order Received surface and its interactive/read-only content
 * on the same universal Manrope owner as the finished customer pages.
 * Coded: 2026-09-24
 */
body.woocommerce-order-received .ss-order-received-surface,
body.woocommerce-order-received .ss-order-received-surface :where(button, input, select, textarea, table, summary, a) {
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
}

:is(
    body.songshove-dashboard-page,
    body.songshove-addresses-page,
    body.songshove-payment-methods-page,
    body.songshove-account-details-page,
    body.songshove-profile-settings-page,
    body.songshove-profile-page,
    body.songshove-public-form-page,
    body.songshove-orders-page,
    body.songshove-view-order-page,
    body.woocommerce-cart
) :is(.wp-block-post-content, .entry-content) {
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    padding-block-start: 0 !important;
    padding-block-end: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    body:not(.wp-admin) .wp-site-blocks > main,
    body:not(.wp-admin) .wp-site-blocks > main::before,
    body:not(.wp-admin) .wp-site-blocks > main::after {
        animation: none !important;
    }
}

/* ============================================================
   02. SITE-WIDE PAGE / CONTAINER UTILITIES
   Pages opt into these classes; current single workspaces are aliased
   during migration so their approved width remains unchanged.
   ============================================================ */
.ss-page-shell,
.ss-content-width,
body.songshove-single-workspace-page .ss-single-shell.ss-single-page,
body.songshove-single-workspace-page .ss-single-workspace-root,
body.songshove-single-workspace-campaign .songshove-campaign-page{
    width: calc(100% - (var(--ss-content-gutter) * 2)) !important;
    max-width: var(--ss-content-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.ss-page-surface{
    min-width: 0;
    background: transparent;
    color: var(--ss-text);
    font-family: var(--ss-font);
}

/* SONGSHOVE — UNIVERSAL CENTERED CONTENT UTILITY / PASS 91R
 * Why: Universal content surfaces can center placeholder copy without a
 * feature-private typography/alignment owner.
 * Coded: 2026-09-25
 */
.ss-content-center{
    text-align: center !important;
}

/* SONGSHOVE — UNIVERSAL FULL-WIDTH STANDALONE PAGE NORMALIZATION / PASS 91R
 * Why: Opt-in pages must not be narrowed by Twenty Twenty-Five/WooCommerce
 * content wrappers before the universal SongShove host gets its width. This
 * keeps the real template/renderer intact; it does not relocate page content.
 * Coded: 2026-09-25
 */
body.songshove-full-width-content-page .wp-site-blocks > main,
body.songshove-full-width-content-page .wp-site-blocks > main :is(
    .wp-block-post-content,
    .entry-content,
    .woocommerce,
    .wp-block-group:has(.albumshove-product-placeholder)
) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
}

body.songshove-full-width-content-page .wp-site-blocks > main {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
    padding: 0 !important;
}

/* SONGSHOVE — UNIVERSAL FULL-WIDTH PAGE HOST + CONTENT SURFACE / PASS 39
 * Why: Promote the accepted View Order full-width content geometry and surface
 * into one shared owner before migrating the rest of the customer-flow pages.
 * View Order is aliased here now so there is no duplicate local shell CSS.
 * Orders joined the same full-width owner in Pass 63; unique table composition
 * remains local while the page shell itself is universal.
 * Updated: 2026-09-24
 */
.ss-full-width-content-host,
body.songshove-orders-page .wp-block-post-content > .woocommerce,
body.songshove-orders-page .entry-content > .woocommerce,
body.songshove-orders-page main .woocommerce:has(.woocommerce-MyAccount-orders),
body.songshove-view-order-page .wp-block-post-content > .woocommerce,
body.songshove-view-order-page .entry-content > .woocommerce,
body.songshove-view-order-page main .woocommerce:has(.woocommerce-MyAccount-content),
/* SONGSHOVE — CART UNIVERSAL FULL-WIDTH HOST / PASS 91S
 * Why: Cart now consumes the same proven full-width host geometry as other
 * migrated SongShove pages; WooCommerce cart internals remain page-local.
 * Coded: 2026-09-25
 */
body.woocommerce-cart :is(.wp-block-post-content, .entry-content) {
    box-sizing: border-box;
    display: block !important;
    width: calc(100% - (var(--ss-content-gutter, 25px) * 2)) !important;
    max-width: var(--ss-content-max, none) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    font-family: var(--ss-font, "Manrope", sans-serif);
}

.ss-content-surface,
.ss-account-sidebar-content,
body.songshove-orders-page .woocommerce-MyAccount-content,
body.songshove-view-order-page .woocommerce-MyAccount-content,
body.songshove-dashboard-page .woocommerce-MyAccount-content,
body.songshove-addresses-page .woocommerce-MyAccount-content,
body.songshove-payment-methods-page .woocommerce-MyAccount-content,
body.songshove-account-details-page .woocommerce-MyAccount-content,
body.songshove-notification-settings-page .woocommerce-MyAccount-content,
body.songshove-profile-settings-page .woocommerce-MyAccount-content,
body.songshove-profile-page .woocommerce-MyAccount-content,
body.woocommerce-cart .wp-block-woocommerce-cart {
    box-sizing: border-box;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: var(--ss-content-surface-padding) !important;
    border: 1px solid var(--ss-content-surface-border);
    border-radius: var(--ss-content-surface-radius);
    background-color: var(--ss-content-surface-bg);
    background-image: var(--ss-content-surface-bg-image);
    box-shadow: var(--ss-content-surface-shadow);
    color: var(--ss-content-surface-text);
    font-family: var(--ss-font, "Manrope", sans-serif);
    animation: ssContentSurfaceDepth 8.4s ease-in-out infinite;
}

@keyframes ssContentSurfaceDepth {
    0%, 100% { box-shadow: var(--ss-content-surface-shadow); }
    50% { box-shadow: var(--ss-content-surface-shadow-depth); }
}

@media (max-width: 700px) {
    .ss-full-width-content-host,
    body.songshove-orders-page .wp-block-post-content > .woocommerce,
    body.songshove-orders-page .entry-content > .woocommerce,
    body.songshove-orders-page main .woocommerce:has(.woocommerce-MyAccount-orders),
    body.songshove-view-order-page .wp-block-post-content > .woocommerce,
    body.songshove-view-order-page .entry-content > .woocommerce,
    body.songshove-view-order-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.woocommerce-cart :is(.wp-block-post-content, .entry-content) {
        width: calc(100% - (var(--ss-content-gutter-mobile, 12px) * 2)) !important;
    }

    .ss-content-surface,
    body.songshove-orders-page .woocommerce-MyAccount-content,
    body.songshove-view-order-page .woocommerce-MyAccount-content,
    body.woocommerce-cart .wp-block-woocommerce-cart {
        padding: var(--ss-content-surface-padding-mobile) !important;
        border-radius: var(--ss-content-surface-radius-mobile);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-content-surface,
    .ss-account-sidebar-content,
    body.songshove-orders-page .woocommerce-MyAccount-content,
    body.songshove-view-order-page .woocommerce-MyAccount-content,
    body.songshove-dashboard-page .woocommerce-MyAccount-content,
    body.songshove-addresses-page .woocommerce-MyAccount-content,
    body.songshove-payment-methods-page .woocommerce-MyAccount-content,
    body.songshove-account-details-page .woocommerce-MyAccount-content,
    body.songshove-notification-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-page .woocommerce-MyAccount-content,
    body.woocommerce-cart .wp-block-woocommerce-cart {
        animation: none !important;
    }
}

/* SONGSHOVE — UNIVERSAL MY ACCOUNT SIDEBAR LAYOUT FOUNDATION / PASS 43
 * Why: Move the accepted My Account Dashboard host/sidebar/content geometry
 * and sidebar presentation into shared ownership without redesigning it.
 * Dashboard is the reference compatibility alias; Addresses/Edit Address joined
 * in Pass 45, Payment Methods/Add Payment Method joined in Pass 47, Profile
 * Settings joined in Pass 48, Edit Account joined in Pass 49, and Profile joined
 * in Pass 91N. Future sidebar
 * pages should opt into the .ss-account-sidebar-* vocabulary as they are migrated.
 * Updated: 2026-09-24
 */
.ss-account-sidebar-host,
body.songshove-dashboard-page .wp-block-post-content > .woocommerce,
body.songshove-dashboard-page .entry-content > .woocommerce,
body.songshove-dashboard-page main .woocommerce:has(.woocommerce-MyAccount-content),
body.songshove-addresses-page .wp-block-post-content > .woocommerce,
body.songshove-addresses-page .entry-content > .woocommerce,
body.songshove-addresses-page main .woocommerce:has(.woocommerce-MyAccount-content),
body.songshove-payment-methods-page .wp-block-post-content > .woocommerce,
body.songshove-payment-methods-page .entry-content > .woocommerce,
body.songshove-payment-methods-page main .woocommerce:has(.woocommerce-MyAccount-content),
body.songshove-account-details-page .wp-block-post-content > .woocommerce,
body.songshove-account-details-page .entry-content > .woocommerce,
body.songshove-account-details-page main .woocommerce:has(.woocommerce-MyAccount-content),
body.songshove-notification-settings-page .wp-block-post-content > .woocommerce,
body.songshove-notification-settings-page .entry-content > .woocommerce,
body.songshove-notification-settings-page main .woocommerce:has(.woocommerce-MyAccount-content),
body.songshove-profile-settings-page .wp-block-post-content > .woocommerce,
body.songshove-profile-settings-page .entry-content > .woocommerce,
body.songshove-profile-settings-page main .woocommerce:has(.woocommerce-MyAccount-content),
body.songshove-profile-page .wp-block-post-content > .woocommerce,
body.songshove-profile-page .entry-content > .woocommerce,
body.songshove-profile-page main .woocommerce:has(.woocommerce-MyAccount-content) {
    box-sizing: border-box;
    display: block !important;
    width: calc(100% - (var(--ss-content-gutter, 25px) * 2)) !important;
    max-width: var(--ss-content-max, none) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    font-family: var(--ss-font, "Manrope", sans-serif);
}

/* SONGSHOVE — UNIVERSAL FINISHED-PAGE AMBIENT EDGE GAP / PASS 74
 * Why: Every customer/support page already marked finished must reveal the same
 * small strip of the universal ambient background above and below its outer
 * content host. Centralize that vertical spacing here instead of maintaining
 * separate Contact, Help/FAQ, Orders or Account-page fixes. This changes only
 * outer page breathing room; internal card padding/layout remains untouched.
 * Coded: 2026-09-24
 */
/* SONGSHOVE — VIEW ORDER AMBIENT GAP MIGRATION / PASS 84
 * Why: View Order now joins this same universal 10px top and shared bottom
 * ambient gap instead of carrying page-local outer spacing. Coded: 2026-09-24
 */
/* SONGSHOVE — ORDER RECEIVED UNIVERSAL HOST GAP / PASS 91B
 * Why: The block-based Order Confirmation page now wraps its real content in
 * `.ss-order-received-host`, which consumes the exact same 10px top and shared
 * bottom ambient-gap owner as the finished customer pages.
 * Coded: 2026-09-24
 */
:is(
    body.songshove-dashboard-page,
    body.songshove-addresses-page,
    body.songshove-payment-methods-page,
    body.songshove-account-details-page,
    body.songshove-profile-settings-page,
    body.songshove-profile-page
) :is(
    .wp-block-post-content > .woocommerce,
    .entry-content > .woocommerce,
    main .woocommerce:has(.woocommerce-MyAccount-content)
),
body.songshove-public-form-page .songshove-contact-shell,
body.songshove-help-page .songshove-help-shell,
body.songshove-orders-page :is(
    .wp-block-post-content > .woocommerce,
    .entry-content > .woocommerce,
    main .woocommerce:has(.woocommerce-MyAccount-orders)
),
body.songshove-view-order-page :is(
    .wp-block-post-content > .woocommerce,
    .entry-content > .woocommerce,
    main .woocommerce:has(.woocommerce-MyAccount-content)
),
body.woocommerce-order-received .ss-order-received-host,
.ss-page-ambient-gap {
    margin-top: var(--ss-page-outer-gap-top, 10px) !important;
    margin-bottom: var(--ss-page-outer-gap, 18px) !important;
}

@media (max-width: 700px) {
    :is(
        body.songshove-dashboard-page,
        body.songshove-addresses-page,
        body.songshove-payment-methods-page,
        body.songshove-account-details-page,
        body.songshove-profile-settings-page,
        body.songshove-profile-page
    ) :is(
        .wp-block-post-content > .woocommerce,
        .entry-content > .woocommerce,
        main .woocommerce:has(.woocommerce-MyAccount-content)
    ),
    body.songshove-public-form-page .songshove-contact-shell,
    body.songshove-help-page .songshove-help-shell,
    body.songshove-orders-page :is(
        .wp-block-post-content > .woocommerce,
        .entry-content > .woocommerce,
        main .woocommerce:has(.woocommerce-MyAccount-orders)
    ),
    body.songshove-view-order-page :is(
        .wp-block-post-content > .woocommerce,
        .entry-content > .woocommerce,
        main .woocommerce:has(.woocommerce-MyAccount-content)
    ),
    body.woocommerce-order-received .ss-order-received-host,
    .ss-page-ambient-gap {
        margin-top: var(--ss-page-outer-gap-top, 10px) !important;
        margin-bottom: var(--ss-page-outer-gap-mobile, 15px) !important;
    }
}

.ss-account-sidebar-host::after,
body.songshove-dashboard-page .wp-block-post-content > .woocommerce::after,
body.songshove-dashboard-page .entry-content > .woocommerce::after,
body.songshove-dashboard-page main .woocommerce:has(.woocommerce-MyAccount-content)::after,
body.songshove-addresses-page .wp-block-post-content > .woocommerce::after,
body.songshove-addresses-page .entry-content > .woocommerce::after,
body.songshove-addresses-page main .woocommerce:has(.woocommerce-MyAccount-content)::after,
body.songshove-payment-methods-page .wp-block-post-content > .woocommerce::after,
body.songshove-payment-methods-page .entry-content > .woocommerce::after,
body.songshove-payment-methods-page main .woocommerce:has(.woocommerce-MyAccount-content)::after,
body.songshove-account-details-page .wp-block-post-content > .woocommerce::after,
body.songshove-account-details-page .entry-content > .woocommerce::after,
body.songshove-account-details-page main .woocommerce:has(.woocommerce-MyAccount-content)::after,
body.songshove-notification-settings-page .wp-block-post-content > .woocommerce::after,
body.songshove-notification-settings-page .entry-content > .woocommerce::after,
body.songshove-notification-settings-page main .woocommerce:has(.woocommerce-MyAccount-content)::after,
body.songshove-profile-settings-page .wp-block-post-content > .woocommerce::after,
body.songshove-profile-settings-page .entry-content > .woocommerce::after,
body.songshove-profile-settings-page main .woocommerce:has(.woocommerce-MyAccount-content)::after,
body.songshove-profile-page .wp-block-post-content > .woocommerce::after,
body.songshove-profile-page .entry-content > .woocommerce::after,
body.songshove-profile-page main .woocommerce:has(.woocommerce-MyAccount-content)::after {
    content: "";
    display: table;
    clear: both;
}

.ss-account-sidebar,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation,
body.songshove-addresses-page .woocommerce-MyAccount-navigation,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation,
body.songshove-account-details-page .woocommerce-MyAccount-navigation,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation,
    body.songshove-profile-page .woocommerce-MyAccount-navigation {
    box-sizing: border-box;
    display: block !important;
    float: left !important;
    width: var(--ss-account-sidebar-width) !important;
    max-width: var(--ss-account-sidebar-width) !important;
    min-width: 0 !important;
    margin: 0 var(--ss-account-sidebar-gap) 0 0 !important;
    padding: var(--ss-account-sidebar-padding) !important;
    border: 1px solid var(--ss-content-surface-border);
    border-radius: var(--ss-account-sidebar-radius);
    background-color: var(--ss-content-surface-bg);
    background-image: var(--ss-content-surface-bg-image);
    box-shadow: var(--ss-account-sidebar-shadow);
}

.ss-account-sidebar ul,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation ul,
body.songshove-addresses-page .woocommerce-MyAccount-navigation ul,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation ul,
body.songshove-account-details-page .woocommerce-MyAccount-navigation ul,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation ul,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation ul,
    body.songshove-profile-page .woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: var(--ss-account-sidebar-link-gap);
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.ss-account-sidebar li,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation li,
body.songshove-addresses-page .woocommerce-MyAccount-navigation li,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation li,
body.songshove-account-details-page .woocommerce-MyAccount-navigation li,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation li,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation li,
body.songshove-profile-page .woocommerce-MyAccount-navigation li {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    list-style: none !important;
}

.ss-account-sidebar a,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation a,
body.songshove-addresses-page .woocommerce-MyAccount-navigation a,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation a,
body.songshove-account-details-page .woocommerce-MyAccount-navigation a,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation a,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation a,
body.songshove-profile-page .woocommerce-MyAccount-navigation a {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    min-height: var(--ss-account-sidebar-link-height);
    width: 100%;
    padding: var(--ss-account-sidebar-link-padding);
    border: 1px solid transparent;
    border-radius: var(--ss-account-sidebar-link-radius);
    background: transparent;
    color: var(--ss-form-control-text, #465066) !important;
    font-size: var(--ss-type-body, 14px);
    font-weight: var(--ss-weight-bold, 700);
    line-height: 1.35;
    text-decoration: none !important;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.ss-account-sidebar a:hover,
.ss-account-sidebar a:focus-visible,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation a:focus-visible,
body.songshove-addresses-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-addresses-page .woocommerce-MyAccount-navigation a:focus-visible,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation a:focus-visible,
body.songshove-account-details-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-account-details-page .woocommerce-MyAccount-navigation a:focus-visible,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation a:focus-visible,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation a:focus-visible,
body.songshove-profile-page .woocommerce-MyAccount-navigation a:hover,
body.songshove-profile-page .woocommerce-MyAccount-navigation a:focus-visible {
    border-color: rgba(74, 99, 160, .18);
    background: rgba(255, 255, 255, .60);
    color: var(--ss-form-control-focus-border, #4A63A0) !important;
    transform: translateY(-1px);
    outline: none;
}

.ss-account-sidebar .is-active > a,
body.songshove-dashboard-page .woocommerce-MyAccount-navigation .is-active > a,
body.songshove-addresses-page .woocommerce-MyAccount-navigation .is-active > a,
body.songshove-payment-methods-page .woocommerce-MyAccount-navigation .is-active > a,
body.songshove-account-details-page .woocommerce-MyAccount-navigation .is-active > a,
body.songshove-notification-settings-page .woocommerce-MyAccount-navigation .is-active > a,
body.songshove-profile-settings-page .woocommerce-MyAccount-navigation .is-active > a,
body.songshove-profile-page .woocommerce-MyAccount-navigation .is-active > a {
    border-color: var(--ss-form-control-focus-border, #4A63A0);
    background: var(--ss-form-control-focus-border, #4A63A0);
    color: #FFFFFF !important;
    box-shadow: 0 6px 14px rgba(74, 99, 160, .18);
}

.ss-account-sidebar-content,
body.songshove-dashboard-page .woocommerce-MyAccount-content,
body.songshove-addresses-page .woocommerce-MyAccount-content,
body.songshove-payment-methods-page .woocommerce-MyAccount-content,
body.songshove-account-details-page .woocommerce-MyAccount-content,
body.songshove-notification-settings-page .woocommerce-MyAccount-content,
body.songshove-profile-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-page .woocommerce-MyAccount-content {
    float: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 0 0 calc(var(--ss-account-sidebar-width) + var(--ss-account-sidebar-gap)) !important;
}

/* SONGSHOVE — UNIVERSAL MY ACCOUNT SIDEBAR TABLET CLEANUP / PASS 44
 * Why: The 601–900px two-column navigation state created an awkward wide
 * horizontal sidebar between the accepted desktop rail and mobile stack.
 * Keep the proven left-rail layout while there is enough room, then switch
 * directly to the same clean one-column stacked navigation used on mobile.
 * 800px is a component geometry breakpoint: 260px sidebar + 18px gap still
 * leaves a practical content column above it; below it, the content gets cramped.
 * Coded: 2026-09-24
 */
@media (max-width: 800px) {
    .ss-account-sidebar,
    body.songshove-dashboard-page .woocommerce-MyAccount-navigation,
    body.songshove-addresses-page .woocommerce-MyAccount-navigation,
    body.songshove-payment-methods-page .woocommerce-MyAccount-navigation,
    body.songshove-account-details-page .woocommerce-MyAccount-navigation,
    body.songshove-notification-settings-page .woocommerce-MyAccount-navigation,
    body.songshove-profile-settings-page .woocommerce-MyAccount-navigation,
    body.songshove-profile-page .woocommerce-MyAccount-navigation {
        float: none !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 0 14px !important;
    }

    .ss-account-sidebar-content,
    body.songshove-dashboard-page .woocommerce-MyAccount-content,
    body.songshove-addresses-page .woocommerce-MyAccount-content,
    body.songshove-payment-methods-page .woocommerce-MyAccount-content,
    body.songshove-account-details-page .woocommerce-MyAccount-content,
    body.songshove-notification-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-page .woocommerce-MyAccount-content {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }

    .ss-account-sidebar ul,
    body.songshove-dashboard-page .woocommerce-MyAccount-navigation ul,
    body.songshove-addresses-page .woocommerce-MyAccount-navigation ul,
    body.songshove-payment-methods-page .woocommerce-MyAccount-navigation ul,
    body.songshove-account-details-page .woocommerce-MyAccount-navigation ul,
    body.songshove-notification-settings-page .woocommerce-MyAccount-navigation ul,
    body.songshove-profile-settings-page .woocommerce-MyAccount-navigation ul,
    body.songshove-profile-page .woocommerce-MyAccount-navigation ul {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 600px) {
    .ss-account-sidebar-host,
    body.songshove-dashboard-page .wp-block-post-content > .woocommerce,
    body.songshove-dashboard-page .entry-content > .woocommerce,
    body.songshove-dashboard-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.songshove-addresses-page .wp-block-post-content > .woocommerce,
    body.songshove-addresses-page .entry-content > .woocommerce,
    body.songshove-addresses-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.songshove-payment-methods-page .wp-block-post-content > .woocommerce,
    body.songshove-payment-methods-page .entry-content > .woocommerce,
    body.songshove-payment-methods-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.songshove-account-details-page .wp-block-post-content > .woocommerce,
    body.songshove-account-details-page .entry-content > .woocommerce,
    body.songshove-account-details-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.songshove-notification-settings-page .wp-block-post-content > .woocommerce,
    body.songshove-notification-settings-page .entry-content > .woocommerce,
    body.songshove-notification-settings-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.songshove-profile-settings-page .wp-block-post-content > .woocommerce,
    body.songshove-profile-settings-page .entry-content > .woocommerce,
    body.songshove-profile-settings-page main .woocommerce:has(.woocommerce-MyAccount-content),
    body.songshove-profile-page .wp-block-post-content > .woocommerce,
    body.songshove-profile-page .entry-content > .woocommerce,
    body.songshove-profile-page main .woocommerce:has(.woocommerce-MyAccount-content) {
        width: calc(100% - (var(--ss-content-gutter-mobile, 12px) * 2)) !important;
    }

    .ss-account-sidebar,
    body.songshove-dashboard-page .woocommerce-MyAccount-navigation,
    body.songshove-addresses-page .woocommerce-MyAccount-navigation,
    body.songshove-payment-methods-page .woocommerce-MyAccount-navigation,
    body.songshove-account-details-page .woocommerce-MyAccount-navigation,
    body.songshove-notification-settings-page .woocommerce-MyAccount-navigation,
    body.songshove-profile-settings-page .woocommerce-MyAccount-navigation,
    body.songshove-profile-page .woocommerce-MyAccount-navigation {
        padding: var(--ss-account-sidebar-padding-mobile) !important;
        border-radius: var(--ss-account-sidebar-radius-mobile);
    }

    .ss-account-sidebar ul,
    body.songshove-dashboard-page .woocommerce-MyAccount-navigation ul,
    body.songshove-addresses-page .woocommerce-MyAccount-navigation ul,
    body.songshove-payment-methods-page .woocommerce-MyAccount-navigation ul,
    body.songshove-account-details-page .woocommerce-MyAccount-navigation ul,
    body.songshove-notification-settings-page .woocommerce-MyAccount-navigation ul,
    body.songshove-profile-settings-page .woocommerce-MyAccount-navigation ul,
    body.songshove-profile-page .woocommerce-MyAccount-navigation ul {
        gap: var(--ss-account-sidebar-link-gap-mobile);
    }

    .ss-account-sidebar-content,
    body.songshove-dashboard-page .woocommerce-MyAccount-content,
    body.songshove-addresses-page .woocommerce-MyAccount-content,
    body.songshove-payment-methods-page .woocommerce-MyAccount-content,
    body.songshove-account-details-page .woocommerce-MyAccount-content,
    body.songshove-notification-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-settings-page .woocommerce-MyAccount-content,
    body.songshove-profile-page .woocommerce-MyAccount-content {
        padding: var(--ss-account-content-padding-mobile) !important;
        border-radius: var(--ss-account-content-radius-mobile);
    }
}

/* ============================================================
   SONGSHOVE — NAMED SHARED GRID UTILITIES
   Purpose: Permanent human-readable grid names so approved layouts
   can be reused without rebuilding or guessing their geometry.
   Coded: 2026-09-13
   NOTE: Existing .ss-row classes remain as compatibility aliases.
   ============================================================ */
.ss-row,
.ss-grid{
    display: grid;
    gap: var(--ss-gap);
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

/* GRID: IDENTITY 3 COLUMN — Campaign-master .88 / 1.6 / .98 ratio. Coded: 2026-09-13 */
.ss-row--identity,
.ss-grid--identity-3-column{ grid-template-columns: minmax(235px,.88fr) minmax(430px,1.6fr) minmax(255px,.98fr); }

/* GRID: 3 COLUMN EVEN — Three equal columns. Coded: 2026-09-13 */
.ss-row--three,
.ss-grid--3-column-even{ grid-template-columns: repeat(3,minmax(0,1fr)); }

/* GRID: 2 COLUMN EVEN — Two equal columns. Coded: 2026-09-13 */
.ss-row--two,
.ss-grid--2-column-even{ grid-template-columns: repeat(2,minmax(0,1fr)); }

/* GRID: MAIN + SIDEBAR — Larger main column with smaller sidebar. Coded: 2026-09-13 */
.ss-row--main-sidebar,
.ss-grid--main-sidebar{ grid-template-columns: minmax(0,1.6fr) minmax(260px,.8fr); }

/* GRID: FULL WIDTH — One full-width column. Coded: 2026-09-13 */
.ss-row--full,
.ss-grid--full-width{ grid-template-columns: minmax(0,1fr); }

/* ============================================================
   03. SHARED FONT + TYPE SYSTEM — MANROPE MAIN / POPPINS OPTIONAL
   Purpose: Manrope is the default customer-facing SongShove font.
   Poppins is loaded and exposed as an intentional optional display
   font, but is not applied anywhere unless specifically requested.
   WordPress/theme header/menu remain untouched. Questionnaire now uses
   the shared Manrope token while preserving its unique visual system.
   Updated: 2026-09-14
   ============================================================ */
:where(.ss-page-surface,.ss-marketing-page,.ss-archive-page,.rhymebook-app,.ss-landing,.songshove-profile-shell,.albumshove-coming-soon,.cover-generator-coming-soon,.rhymebook-coming-soon,.ss-questionnaire-page,body.songshove-single-workspace-page .ss-single-workspace-root,body.songshove-single-workspace-page .ss-single-page,body.songshove-single-workspace-page .ss-v5-workspace-enhanced,body.songshove-single-workspace-campaign .songshove-campaign-page){
    color: var(--ss-text);
    font-family: var(--ss-font) !important;
}

body.songshove-single-workspace-page :where(.ss-single-workspace-root,.ss-single-page,.ss-v5-workspace-enhanced) :where(button,input,select,textarea){
    font-family: var(--ss-font) !important;
}

/* ============================================================
   SONGSHOVE — QUESTIONNAIRE SHARED-UI OWNERSHIP
   Purpose: Bring the approved Questionnaire under the global SongShove
   typography/page foundation without redesigning its unique wizard UI.
   The Questionnaire keeps its larger controls, gradients, 1180/1220px
   inner content limits, animations and feature-specific states locally.
   Coded: 2026-09-14
   ============================================================ */
.ss-questionnaire-page{
    width: 100%;
    max-width: var(--ss-content-max);
    margin-inline: auto;
    min-width: 0;
    color: inherit;
    font-family: var(--ss-font) !important;
}

.ss-questionnaire-page :where(button,input,select,textarea){
    font-family: var(--ss-font) !important;
}

/* FONT: POPPINS OPTIONAL — add this class only where Poppins is intentionally requested.
   Coded: 2026-09-14 */
.ss-font-display,
.ss-font-poppins{
    font-family: var(--ss-font-display) !important;
}

/* ============================================================
   TYPOGRAPHY GROUPING PASS 4 — REMAINING CORE UI OWNERSHIP
   Purpose: Move the remaining ordinary customer-facing font-size
   literals in this shared stylesheet onto existing shared type tokens.
   This pass intentionally changes ownership only; computed sizes stay
   pixel-for-pixel identical. No color/weight/spacing changes.
   Coded: 2026-09-16
   ============================================================ */
.ss-page-title,
body.songshove-single-workspace-page .ss-single-title > strong,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-text{
    color: var(--ss-text) !important;
    font-size: var(--ss-type-page) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.15 !important;
    letter-spacing: -.02em !important;
}

.ss-label,
body.songshove-single-workspace-page .ss-single-label,
body.songshove-single-workspace-campaign .songshove-v4-card-label,
body.songshove-single-workspace-campaign .ss-v5-snapshot-label,
body.songshove-single-workspace-campaign .songshove-v71-tool-kicker{
    display: block;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

.ss-heading-lg{
    margin: 0;
    color: var(--ss-text);
    font-size: var(--ss-type-section);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.15;
    letter-spacing: -.02em;
}

.ss-heading-md,
body.songshove-single-workspace-page .ss-single-section-head h2,
body.songshove-single-workspace-page .ssa-campaign-placeholder h2{
    margin: 3px 0 0;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-medium) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.2 !important;
}

.ss-heading-sm{
    margin: 0;
    color: var(--ss-text);
    font-size: var(--ss-type-compact);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.2;
}

.ss-body,
body.songshove-single-workspace-page .ss-single-page p{
    color: var(--ss-muted-strong);
    font-size: var(--ss-type-body);
    line-height: 1.45;
}

.ss-meta,
body.songshove-single-workspace-page .ss-single-page small{
    color: var(--ss-muted);
    font-size: var(--ss-type-meta);
    line-height: 1.35;
}

/* ============================================================
   SONGSHOVE — UNIVERSAL COMPONENT OWNER BOUNDARY
   Coded: 2026-09-17
   UI owns reusable component visuals/actions/typography.
   single-workspace.css owns Single-page composition and breakpoints.
   ============================================================ */
/* ============================================================
   04. CAMPAIGN-MASTER TOP BAR
   ============================================================ */
.ss-single-topbar,
body.songshove-single-workspace-page .ss-single-page > .ss-single-topbar,
body.songshove-single-workspace-campaign .ss-v5-workspace-enhanced > .songshove-v4-topbar{
    display: grid !important;
    grid-template-columns: minmax(180px, 1fr) minmax(220px, auto) minmax(180px, 1fr) !important;
    align-items: center !important;
    gap: 18px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 0 12px !important;
    padding: var(--ss-titlebar-padding) !important;
    background: var(--ss-titlebar-bg) !important;
    border: var(--ss-titlebar-border) !important;
    border-radius: var(--ss-titlebar-radius) !important;
    box-shadow: var(--ss-titlebar-shadow) !important;
    box-sizing: border-box !important;
}

.ss-single-topbar-left,
body.songshove-single-workspace-page .ss-single-page > .ss-single-topbar > .ss-single-back,
body.songshove-single-workspace-campaign .songshove-v4-topbar-left{
    justify-self: start;
}

.ss-single-topbar-title,
body.songshove-single-workspace-page .ss-single-title,
body.songshove-single-workspace-campaign .songshove-v4-topbar-title{
    justify-self: center !important;
    min-width: 0 !important;
    max-width: 560px !important;
    text-align: center !important;
}

.ss-single-topbar-kicker,
body.songshove-single-workspace-page .ss-single-title > span{
    display: block;
    color: var(--ss-blue);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ss-single-topbar-actions,
body.songshove-single-workspace-page .ss-single-topbar-right,
body.songshove-single-workspace-campaign .songshove-v4-topbar-right{
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    min-width: 0 !important;
}

/* ============================================================
   05. BUTTON SYSTEM
   Derived from Campaign primary/back/filter/icon controls.
   ============================================================ */
.ss-button,
body.songshove-single-workspace-page .ss-button,
body.songshove-single-workspace-page .ss-single-back{
    appearance: var(--ss-control-native-appearance);
    -webkit-appearance: var(--ss-control-native-appearance);
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-prominent) !important;
    margin: 0 !important;
    padding: 9px 13px !important;
    border: 1px solid var(--ss-border-strong) !important;
    border-radius: var(--ss-control-radius) !important;
    box-shadow: var(--ss-shadow-action-soft) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1.2 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease, transform .15s ease !important;
}

.ss-button--secondary,
body.songshove-single-workspace-page .ss-button--secondary,
body.songshove-single-workspace-page .ss-single-back,
body.songshove-single-workspace-campaign .songshove-v4-back-link{
    background: var(--ss-control-surface) !important;
    border-color: var(--ss-border-strong) !important;
    color: var(--ss-control-text) !important;
}

.ss-button--primary,
body.songshove-single-workspace-page .ss-button--primary{
    background: var(--ss-button-primary-bg) !important;
    border-color: var(--ss-blue) !important;
    color: var(--ss-button-primary-text) !important;
}

.ss-button--soft,
body.songshove-single-workspace-page .ssa-secondary-button,
body.songshove-single-workspace-page .sss-secondary{
    background: var(--ss-control-surface-soft) !important;
    border-color: var(--ss-border) !important;
    color: var(--ss-control-text) !important;
}

.ss-button--danger{
    background: var(--ss-control-surface) !important;
    border-color: var(--ss-danger-border) !important;
    color: var(--ss-danger) !important;
}

.ss-button--small{
    min-height: var(--ss-control-height-compact) !important;
    padding: var(--ss-control-padding-compact) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    font-size: var(--ss-type-label) !important;
}

.ss-button--icon{
    flex: 0 0 28px !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    min-height: var(--ss-control-height-icon) !important;
    padding: 0 !important;
    border-radius: var(--ss-radius-compact-control) !important;
}

/* Campaign-master compact action-icon group.
 * Use for small icon-only utility actions; feature-specific platform/audio
 * icons keep their own treatment. */
.ss-action-icon-group{
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    background: var(--ss-control-surface);
    border: 1px solid var(--ss-border-strong);
    border-radius: var(--ss-control-radius-tight);
    box-shadow: 0 1px 3px rgba(15,23,42,.025);
}

.ss-action-icon{
    appearance: var(--ss-control-native-appearance);
    -webkit-appearance: var(--ss-control-native-appearance);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    min-width: 28px;
    height: 28px;
    min-height: var(--ss-control-height-icon);
    margin: 0;
    padding: 6px;
    background: transparent;
    border: 0;
    border-radius: 5px;
    color: #4F5B6D;
    box-shadow: none;
    font-family: inherit;
    line-height: 1;
    cursor: var(--ss-interactive-cursor);
    box-sizing: border-box;
    transition: background .15s ease, color .15s ease, transform .15s ease;
}

.ss-action-icon svg{
    display: block;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.ss-action-icon:hover:not(:disabled),
.ss-action-icon:focus-visible:not(:disabled),
.ss-action-icon[aria-expanded="true"]{
    background: var(--ss-blue-soft);
    color: var(--ss-blue);
    transform: translateY(-1px);
}

.ss-action-icon:focus-visible{
    outline: var(--ss-control-focus-outline-soft);
    outline-offset: var(--ss-control-focus-offset);
}

.ss-action-icon:disabled,
.ss-action-icon[aria-disabled="true"]{
    opacity: .38;
    cursor: not-allowed;
    transform: none;
}

.ss-button:hover,
body.songshove-single-workspace-page .ss-button:hover,
body.songshove-single-workspace-page .ss-single-back:hover,
body.songshove-single-workspace-campaign .songshove-v4-back-link:hover{
    border-color: #AFC3EA !important;
    box-shadow: var(--ss-shadow-action-hover) !important;
    color: var(--ss-blue) !important;
    transform: translateY(-1px) !important;
}

.ss-button--primary:hover,
body.songshove-single-workspace-page .ss-button--primary:hover{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
    color: var(--ss-button-primary-text) !important;
}

.ss-button:disabled,
.ss-button[aria-disabled="true"],
body.songshove-single-workspace-page .ss-button:disabled{
    cursor: var(--ss-control-busy-cursor) !important;
    opacity: var(--ss-control-busy-opacity) !important;
    transform: none !important;
}

/* Campaign Filter button is the master soft-blue action variant. */
.ss-filter-button,
body.songshove-single-workspace-campaign .songshove-v14-filter-launch{
    appearance: var(--ss-control-native-appearance);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ss-control-height-prominent);
    margin: 0;
    padding: 9px 13px;
    background: var(--ss-blue-soft);
    border: 1px solid #CFE0FF;
    border-radius: var(--ss-control-radius);
    color: var(--ss-blue);
    font-size: var(--ss-type-body);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.2;
    cursor: var(--ss-interactive-cursor);
    box-sizing: border-box;
    transition: var(--ss-transition-control-interactive);
}

.ss-filter-button:hover,
.ss-filter-button:focus-visible,
.ss-filter-button.is-active,
body.songshove-single-workspace-campaign .songshove-v14-filter-launch:hover,
body.songshove-single-workspace-campaign .songshove-v14-filter-launch:focus-visible,
body.songshove-single-workspace-campaign .songshove-v14-filter-launch.has-active-filters{
    background: var(--ss-blue);
    border-color: var(--ss-control-focus-border);
    color: var(--ss-text-inverse);
}

/* ============================================================
   06. CARDS + ROWS
   ============================================================ */
.ss-card,
body.songshove-single-workspace-page :is(.ss-single-workspace-card,.ss-single-card),
body.songshove-single-workspace-page .ss-single-dashboard-card,
body.songshove-single-workspace-campaign .songshove-v4-identity-grid > .songshove-v4-identity-card{
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: var(--ss-card-padding) !important;
    background: var(--ss-card-bg) !important;
    border: var(--ss-card-border) !important;
    border-radius: var(--ss-radius-card) !important;
    box-shadow: var(--ss-card-shadow) !important;
    box-sizing: border-box !important;
}

.ss-card-head,
body.songshove-single-workspace-page .ss-single-section-head,
body.songshove-single-workspace-page .ssa-inline-section-head{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.ss-card-head--divided,
body.songshove-single-workspace-page .ss-single-section-head{
    margin-bottom: 10px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--ss-divider-soft);
}

.ss-card-count,
body.songshove-single-workspace-page .ss-card-count{
    flex: 0 0 auto;
    color: var(--ss-muted);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
}

.ss-single-row,
body.songshove-single-workspace-page .ss-single-workspace-row,
body.songshove-single-workspace-campaign .ss-v5-workspace-enhanced > .songshove-v4-identity-grid{
    display: grid !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* GRID: IDENTITY 3 COLUMN — Single Workspace compatibility bridge.
   Purpose: Keep the approved Campaign-master ratio authoritative while legacy page classes remain available.
   Coded: 2026-09-13 */
.ss-grid--identity-3-column,
.ss-single-row--identity,
body.songshove-single-workspace-page .ss-single-workspace-row,
body.songshove-single-workspace-campaign .ss-v5-workspace-enhanced > .songshove-v4-identity-grid{
    grid-template-columns: minmax(235px,.88fr) minmax(430px,1.6fr) minmax(255px,.98fr) !important;
}

/* GRID: 3 COLUMN EVEN — Single Workspace alias. Coded: 2026-09-13 */
.ss-grid--3-column-even,
.ss-single-row--equal-3{
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}

/* GRID: 2 COLUMN EVEN — Single Workspace alias. Coded: 2026-09-13 */
.ss-grid--2-column-even,
.ss-single-row--equal-2{
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
}

/* GRID: FULL WIDTH — Single Workspace alias. Coded: 2026-09-13 */
.ss-grid--full-width,
.ss-single-row--full{
    grid-template-columns: minmax(0,1fr) !important;
}

/* ============================================================
   07. STATUS / PILLS / CHIPS
   Campaign release/status controls are the measuring reference.
   ============================================================ */
.ss-status-pill,
body.songshove-single-workspace-campaign .songshove-release-status-badge{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin: 0;
    padding: 4px 8px;
    background: var(--ss-status-bg);
    border: 1px solid var(--ss-status-border);
    border-radius: var(--ss-radius-pill);
    color: var(--ss-status-text);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-bold);
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    box-sizing: border-box;
}

.ss-status-pill.is-success,
body.songshove-single-workspace-campaign .songshove-release-status-badge.songshove-release-status-already-released{
    background: var(--ss-success-soft);
    border-color: var(--ss-success-border);
    color: var(--ss-success);
}

.ss-status-pill.is-info,
body.songshove-single-workspace-campaign .songshove-release-status-badge.songshove-release-status-releasing-soon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin: 0;
    padding: 4px 8px;
    background: var(--ss-status-info-bg);
    border: 1px solid var(--ss-status-info-border);
    border-radius: var(--ss-radius-pill);
    color: var(--ss-status-info-text) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-bold);
    line-height: 1;
    white-space: nowrap;
    box-sizing: border-box;
}

.ss-status-pill.is-neutral,
body.songshove-single-workspace-campaign .songshove-release-status-badge.songshove-release-status-not-released-yet{
    background: var(--ss-status-bg);
    border-color: var(--ss-status-border);
    color: var(--ss-status-text);
}

.ss-status-pill.is-danger{
    background: var(--ss-danger-soft);
    border-color: var(--ss-danger-border);
    color: var(--ss-danger);
}

/* Campaign platform-chip treatment is the shared normal chip. */
.ss-chip,
body.songshove-single-workspace-page .ss-single-profile-chips span,
body.songshove-single-workspace-campaign .songshove-v4-platform-chip{
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 5px 8px;
    background: var(--ss-soft);
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-radius-pill);
    color: #40434A;
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-750);
    line-height: 1;
    white-space: nowrap;
    box-sizing: border-box;
}

/* Compact Campaign idea-tag geometry remains available as a variant. */
.ss-chip--small{
    min-height: 22px;
    padding: 4px 7px;
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-750);
}

body.songshove-single-workspace-page .ss-single-profile-chips{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* ============================================================
   09. PENCIL + INLINE EDITOR
   Campaign compact pencil is the shared SongShove edit control.
   ============================================================ */
.ss-pencil,
body.songshove-single-workspace-page .ss-pencil-action,
body.songshove-single-workspace-campaign .songshove-v8-compact-pencil-edit{
    appearance: var(--ss-control-native-appearance) !important;
    -webkit-appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 27px !important;
    width: 27px !important;
    min-width: 27px !important;
    height: 27px !important;
    min-height: var(--ss-control-height-compact-action) !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--ss-control-surface-soft) !important;
    border: var(--ss-control-border) !important;
    border-radius: 8px !important;
    color: var(--ss-blue) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-compact) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
    opacity: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    cursor: var(--ss-interactive-cursor) !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: transform .15s ease, color .15s ease, background .15s ease, border-color .15s ease !important;
}

.ss-pencil svg,
body.songshove-single-workspace-page .ss-pencil-action svg,
body.songshove-single-workspace-campaign .songshove-v8-compact-pencil-edit svg{
    width: 14px !important;
    height: 14px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    pointer-events: none !important;
}

.ss-pencil:hover,
.ss-pencil:focus-visible,
.ss-pencil[aria-expanded="true"],
body.songshove-single-workspace-page .ss-pencil-action:hover,
body.songshove-single-workspace-page .ss-pencil-action:focus-visible,
body.songshove-single-workspace-page .ss-pencil-action[aria-expanded="true"],
body.songshove-single-workspace-campaign .songshove-v8-compact-pencil-edit:hover,
body.songshove-single-workspace-campaign .songshove-v8-compact-pencil-edit:focus-visible,
body.songshove-single-workspace-campaign .songshove-v8-compact-pencil-edit[aria-expanded="true"]{
    color: var(--ss-blue-dark) !important;
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-blue-border) !important;
    transform: translateY(-1px) !important;
    outline: none !important;
}

[data-ss-inline-view][hidden],
[data-ss-inline-editor][hidden],
[data-ss-inline-open][hidden],
body.songshove-single-workspace-page [data-sss-section-view][hidden],
body.songshove-single-workspace-page [data-sss-section-editor][hidden],
body.songshove-single-workspace-page [data-sss-edit-open][hidden]{
    display: none !important;
}

.ss-inline-form,
body.songshove-single-workspace-page .ss-inline-form{
    display: grid !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

/* SONGSHOVE V8.8.0 — UNIVERSAL FORM 67 CUSTOMER FORM SYSTEM / PASS 42
 * Why: My Account → Edit Account is now the canonical visual reference for normal
 * customer-facing forms. Keep generic form appearance here while each page keeps
 * only its own grid/width/fieldset/CF7 geometry. New pages should opt into .ss-form
 * or the semantic .ss-form-* primitives instead of creating another form skin.
 * Coded: 2026-09-23
 */
.ss-form,
body.songshove-account-details-page .woocommerce-EditAccountForm,
body.songshove-addresses-page .woocommerce-address-fields{
    color: var(--ss-form-control-text);
    font-family: var(--ss-font, "Manrope", sans-serif);
}

.ss-form-label,
.ss-form label,
body.songshove-account-details-page .woocommerce-EditAccountForm label,
body.songshove-addresses-page .woocommerce-address-fields .form-row label{
    color: var(--ss-form-label-color) !important;
    font-size: var(--ss-form-label-size) !important;
    font-weight: var(--ss-form-label-weight) !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.ss-form-required,
.ss-form .required,
body.songshove-account-details-page .woocommerce-EditAccountForm .required,
body.songshove-addresses-page .woocommerce-address-fields .required{
    color: var(--ss-form-required-color) !important;
}

.ss-form-control,
.ss-form :is(
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    select,
    textarea
),
body.songshove-account-details-page .woocommerce-EditAccountForm :is(
    input.input-text,
    input[type="text"],
    input[type="email"],
    input[type="password"]
),
body.songshove-addresses-page .woocommerce-address-fields :is(
    input.input-text,
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    select,
    textarea
),
/* SONGSHOVE — CART UNIVERSAL FORM-CONTROL SKIN / PASS 91X
 * Why: Cart coupon/quantity fields are customer commerce inputs and should use
 * the same proven universal field skin as the finished customer forms. WooCommerce
 * keeps quantity/coupon behavior and Cart-only geometry. Coded: 2026-09-25
 */
body.woocommerce-cart :is(
    .wc-block-components-text-input input,
    .wc-block-components-text-input textarea,
    input.qty,
    .coupon .input-text,
    .input-text
){
    box-sizing: border-box !important;
    min-height: var(--ss-form-control-min-height) !important;
    padding: var(--ss-form-control-padding) !important;
    border: 1px solid var(--ss-form-control-border-color) !important;
    border-radius: var(--ss-form-control-radius) !important;
    background: var(--ss-form-control-bg) !important;
    color: var(--ss-form-control-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-control-size) !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease !important;
}

.ss-form-control:focus,
.ss-form :is(
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="number"],
    select,
    textarea
):focus,
body.songshove-account-details-page .woocommerce-EditAccountForm :is(
    input.input-text,
    input[type="text"],
    input[type="email"],
    input[type="password"]
):focus,
body.songshove-addresses-page .woocommerce-address-fields :is(
    input.input-text,
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    select,
    textarea
):focus,
body.woocommerce-cart :is(
    .wc-block-components-text-input input,
    .wc-block-components-text-input textarea,
    input.qty,
    .coupon .input-text,
    .input-text
):focus,
body.woocommerce-cart :is(
    .wc-block-components-text-input input,
    .wc-block-components-text-input textarea,
    input.qty,
    .coupon .input-text,
    .input-text
):focus-visible{
    border-color: var(--ss-form-control-focus-border) !important;
    background: var(--ss-form-control-bg-focus) !important;
    box-shadow: var(--ss-form-control-focus-shadow) !important;
    outline: none !important;
}


/* SONGSHOVE — UNIVERSAL SELECT2 SINGLE-FIELD SKIN / PASS 45
 * Why: WooCommerce Edit Address uses Select2 for country/state controls. Keep
 * the visible Select2 field on the same universal Form 67 control tokens instead
 * of maintaining a page-only field skin. Generic .ss-form support is included
 * for future migrated forms; Addresses/Edit Address is the first live alias.
 * Coded: 2026-09-24
 */
.ss-form .select2-container,
body.songshove-addresses-page .woocommerce-address-fields .select2-container {
    width: 100% !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
}

.ss-form .select2-container .select2-selection--single,
body.songshove-addresses-page .woocommerce-address-fields .select2-container .select2-selection--single {
    box-sizing: border-box !important;
    min-height: var(--ss-form-control-min-height) !important;
    border: 1px solid var(--ss-form-control-border-color) !important;
    border-radius: var(--ss-form-control-radius) !important;
    background: var(--ss-form-control-bg) !important;
    box-shadow: none !important;
}

.ss-form .select2-container .select2-selection--single .select2-selection__rendered,
body.songshove-addresses-page .woocommerce-address-fields .select2-container .select2-selection--single .select2-selection__rendered {
    padding: 8px 36px 8px 12px !important;
    color: var(--ss-form-control-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-control-size) !important;
    line-height: 26px !important;
}

.ss-form .select2-container .select2-selection--single .select2-selection__arrow,
body.songshove-addresses-page .woocommerce-address-fields .select2-container .select2-selection--single .select2-selection__arrow {
    height: 42px !important;
    right: 7px !important;
}

.ss-form .select2-container--focus .select2-selection--single,
.ss-form .select2-container--open .select2-selection--single,
body.songshove-addresses-page .woocommerce-address-fields .select2-container--focus .select2-selection--single,
body.songshove-addresses-page .woocommerce-address-fields .select2-container--open .select2-selection--single {
    border-color: var(--ss-form-control-focus-border) !important;
    background: var(--ss-form-control-bg-focus) !important;
    box-shadow: var(--ss-form-control-focus-shadow) !important;
    outline: none !important;
}

.ss-form-help,
body.songshove-account-details-page .woocommerce-EditAccountForm span > em,
body.songshove-account-details-page .woocommerce-EditAccountForm .woocommerce-form-row > span,
body.songshove-account-details-page .woocommerce-EditAccountForm .form-row > span{
    color: var(--ss-form-support-color) !important;
    font-size: var(--ss-form-support-size) !important;
    line-height: 1.5 !important;
}

/* SONGSHOVE — PAYMENT METHODS UNIVERSAL ACTION/NOTICE MIGRATION / PASS 47
 * Why: Payment Methods/Add Payment Method now consume the accepted universal
 * Form 67 primary-action and notice skin while WooCommerce/Square keep all URLs,
 * nonces, tokens, gateway fields and payment behavior. Coded: 2026-09-24
 */
.ss-form-primary-action,
/* SONGSHOVE — ADDRESS EDIT ACTION UNIVERSAL PRIMARY MIGRATION / PASS 79
 * Why: Edit Billing Address / Edit Shipping Address are standard customer
 * actions and now share the same canonical blue Form 67 primary button skin
 * as Contact Us/Edit Account. Address layout remains local. Coded: 2026-09-24
 */
body.songshove-addresses-page .woocommerce-Address-title :is(.edit, a.edit),
.ss-form input[type="submit"],
.ss-form button[type="submit"],
body.songshove-account-details-page .woocommerce-EditAccountForm .button,
body.songshove-account-details-page .woocommerce-EditAccountForm button[type="submit"],
body.songshove-addresses-page .woocommerce-address-fields .button,
body.songshove-addresses-page .woocommerce-address-fields button[type="submit"],
body.songshove-payment-methods-page .woocommerce-MyAccount-content :is(
    a.button,
    button.button,
    .woocommerce-Button,
    #place_order
),
body.songshove-orders-page :is(
    .woocommerce-orders-table__cell-order-actions .button,
    .woocommerce-Pagination .button,
    .woocommerce-message .button,
    .woocommerce-info .button
),
/* SONGSHOVE — VIEW ORDER PRIMARY ACTION MIGRATION / PASS 83
 * Why: View Order Pay and Open Campaign use the same canonical Form 67 blue
 * primary-action owner as the finished customer pages. Their placement and any
 * compact completed-card geometry remain page-local. Coded: 2026-09-24
 */
body.songshove-view-order-page .woocommerce-order-details .order-actions-button.pay,
body.songshove-view-order-page .ss-generation-ready-link,
body.woocommerce-order-received .ss-generation-ready-link,
/* SONGSHOVE — CART UNIVERSAL PRIMARY-ACTION SKIN / PASS 91X
 * Why: Cart coupon/update/checkout actions are standard customer actions and now
 * share the exact universal Form 67 primary-action skin. Cart-only width and
 * checkout-bar geometry remain local. Coded: 2026-09-25
 */
body.woocommerce-cart :is(
    .wc-block-components-button,
    .wc-block-cart__submit-button,
    .wc-block-components-totals-coupon__button,
    .button,
    button.button,
    a.button,
    .checkout-button
){
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-form-primary-min-height) !important;
    padding: var(--ss-form-primary-padding) !important;
    border: 1px solid var(--ss-form-primary-bg) !important;
    border-radius: var(--ss-form-primary-radius) !important;
    background: var(--ss-form-primary-bg) !important;
    color: var(--ss-form-primary-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-primary-size) !important;
    font-weight: var(--ss-form-primary-weight) !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    box-shadow: var(--ss-form-primary-shadow) !important;
    cursor: var(--ss-interactive-cursor) !important;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease !important;
}

/* SONGSHOVE — UNIVERSAL COMPACT PRIMARY ACTION ALIAS / PASS 63
 * Why: Orders actions/pagination use the same primary button theme as Contact,
 * with only the approved dense-control geometry reduced. Coded: 2026-09-24
 */
body.songshove-orders-page :is(
    .woocommerce-orders-table__cell-order-actions .button,
    .woocommerce-Pagination .button,
    .woocommerce-message .button,
    .woocommerce-info .button
) {
    min-height: var(--ss-form-primary-compact-min-height) !important;
    padding: var(--ss-form-primary-compact-padding) !important;
}

.ss-form-primary-action:hover,
.ss-form-primary-action:focus-visible,
body.songshove-addresses-page .woocommerce-Address-title :is(.edit, a.edit):hover,
body.songshove-addresses-page .woocommerce-Address-title :is(.edit, a.edit):focus-visible,
.ss-form input[type="submit"]:hover,
.ss-form input[type="submit"]:focus-visible,
.ss-form button[type="submit"]:hover,
.ss-form button[type="submit"]:focus-visible,
body.songshove-account-details-page .woocommerce-EditAccountForm .button:hover,
body.songshove-account-details-page .woocommerce-EditAccountForm .button:focus-visible,
body.songshove-account-details-page .woocommerce-EditAccountForm button[type="submit"]:hover,
body.songshove-account-details-page .woocommerce-EditAccountForm button[type="submit"]:focus-visible,
body.songshove-addresses-page .woocommerce-address-fields .button:hover,
body.songshove-addresses-page .woocommerce-address-fields .button:focus-visible,
body.songshove-addresses-page .woocommerce-address-fields button[type="submit"]:hover,
body.songshove-addresses-page .woocommerce-address-fields button[type="submit"]:focus-visible,
body.songshove-payment-methods-page .woocommerce-MyAccount-content :is(
    a.button,
    button.button,
    .woocommerce-Button,
    #place_order
):hover,
body.songshove-payment-methods-page .woocommerce-MyAccount-content :is(
    a.button,
    button.button,
    .woocommerce-Button,
    #place_order
):focus-visible,
body.songshove-orders-page :is(
    .woocommerce-orders-table__cell-order-actions .button,
    .woocommerce-Pagination .button,
    .woocommerce-message .button,
    .woocommerce-info .button
):hover,
body.songshove-orders-page :is(
    .woocommerce-orders-table__cell-order-actions .button,
    .woocommerce-Pagination .button,
    .woocommerce-message .button,
    .woocommerce-info .button
):focus-visible,
body.songshove-view-order-page .woocommerce-order-details .order-actions-button.pay:hover,
body.songshove-view-order-page .woocommerce-order-details .order-actions-button.pay:focus-visible,
body.songshove-view-order-page .ss-generation-ready-link:hover,
body.songshove-view-order-page .ss-generation-ready-link:focus-visible,
body.woocommerce-order-received .ss-generation-ready-link:hover,
body.woocommerce-order-received .ss-generation-ready-link:focus-visible,
body.woocommerce-cart :is(
    .wc-block-components-button,
    .wc-block-cart__submit-button,
    .wc-block-components-totals-coupon__button,
    .button,
    button.button,
    a.button,
    .checkout-button
):hover,
body.woocommerce-cart :is(
    .wc-block-components-button,
    .wc-block-cart__submit-button,
    .wc-block-components-totals-coupon__button,
    .button,
    button.button,
    a.button,
    .checkout-button
):focus-visible{
    background: var(--ss-form-primary-hover-bg) !important;
    border-color: var(--ss-form-primary-hover-bg) !important;
    transform: translateY(-1px);
    box-shadow: var(--ss-form-primary-shadow-hover) !important;
    outline: none !important;
}

/* SONGSHOVE — DASHBOARD UNIVERSAL NOTICE MIGRATION / PASS 73
 * Why: Dashboard uses the same native WooCommerce notice skin as the other
 * finished account/order pages, so the shared owner now includes it directly.
 * Coded: 2026-09-24
 */
.ss-form-notice,
body.songshove-dashboard-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
body.songshove-account-details-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
body.songshove-addresses-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
body.songshove-payment-methods-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
body.songshove-orders-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error),
/* SONGSHOVE — VIEW ORDER UNIVERSAL NOTICE MIGRATION / PASS 83
 * Why: View Order native WooCommerce feedback shares the same universal Form 67
 * notice owner as the finished customer/account group. Coded: 2026-09-24
 */
body.songshove-view-order-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error){
    box-sizing: border-box !important;
    margin: 0 0 14px !important;
    padding: 13px 15px !important;
    border: 1px solid var(--ss-form-notice-border-color) !important;
    border-radius: var(--ss-form-notice-radius) !important;
    background: var(--ss-form-notice-bg) !important;
    color: var(--ss-form-control-text) !important;
    box-shadow: var(--ss-form-notice-shadow) !important;
}

/* Contact Form 7 field errors use the same readable 13px support scale while
 * retaining the semantic danger color. This stays in the universal form owner
 * because it is a form state, not Contact-page layout. Coded: 2026-09-23 */
.ss-form .wpcf7-not-valid-tip{
    margin-top: 5px;
    color: var(--ss-danger) !important;
    font-size: var(--ss-form-support-size) !important;
    font-weight: var(--ss-weight-medium, 500) !important;
    line-height: 1.4;
}

/* SONGSHOVE — UNIVERSAL CF7 RESPONSE NOTICE / PASS 53
 * Why: Contact Form 7 ships a large inherited response message with its own
 * margins/border treatment. Keep CF7 behavior untouched but render its final
 * success/error response as a compact Form 67 notice that matches the approved
 * universal customer-form system. Coded: 2026-09-24
 */
.ss-form .wpcf7-response-output{
    box-sizing: border-box !important;
    margin: 12px 0 0 !important;
    padding: 10px 12px !important;
    border: 1px solid var(--ss-form-notice-border-color) !important;
    border-radius: var(--ss-form-notice-radius) !important;
    background: var(--ss-form-notice-bg) !important;
    color: var(--ss-form-control-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-support-size) !important;
    font-weight: var(--ss-weight-medium, 500) !important;
    line-height: 1.45 !important;
    box-shadow: var(--ss-form-notice-shadow) !important;
}

.ss-form form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output{
    border-color: var(--ss-danger-border) !important;
    background: var(--ss-danger-soft) !important;
    color: var(--ss-danger-strong) !important;
}

.ss-form form.sent .wpcf7-response-output{
    border-color: var(--ss-success-border) !important;
    background: var(--ss-success-soft) !important;
    color: var(--ss-success) !important;
}

.ss-form-grid,
body.songshove-single-workspace-page .ss-form-grid{
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px !important;
    min-width: 0 !important;
}

.ss-field,
body.songshove-single-workspace-page .ss-inline-form label{
    display: block;
    min-width: 0;
}

.ss-field-label,
body.songshove-single-workspace-page .ss-inline-form label > span{
    display: block !important;
    margin: 0 0 5px !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

.ss-input,
.ss-select,
.ss-textarea,
.ss-search,
body.songshove-single-workspace-page .ss-inline-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.songshove-single-workspace-page .ss-inline-form select,
body.songshove-single-workspace-page .ss-inline-form textarea,
body.songshove-single-workspace-campaign .songshove-v14-filter-field select{
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-field) !important;
    background: var(--ss-control-surface-soft) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-control-radius) !important;
    color: var(--ss-control-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.25 !important;
    outline: none !important;
    box-sizing: border-box !important;
    transition: var(--ss-transition-field) !important;
}

.ss-input,
.ss-select,
.ss-search,
body.songshove-single-workspace-page .ss-inline-form input:not([type="file"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.songshove-single-workspace-page .ss-inline-form select:not([multiple]){
    height: 34px !important;
}

.ss-textarea,
body.songshove-single-workspace-page .ss-inline-form textarea{
    min-height: 64px !important;
    resize: vertical !important;
}

body.songshove-single-workspace-page .ss-inline-form select[multiple]{
    min-height: 104px !important;
}

.ss-input:focus,
.ss-select:focus,
.ss-textarea:focus,
.ss-search:focus,
body.songshove-single-workspace-page .ss-inline-form input:focus,
body.songshove-single-workspace-page .ss-inline-form select:focus,
body.songshove-single-workspace-page .ss-inline-form textarea:focus,
body.songshove-single-workspace-campaign .songshove-v14-filter-field select:focus{
    border-color: var(--ss-control-focus-border) !important;
    box-shadow: 0 0 0 3px rgba(37,99,235,.10) !important;
    background: var(--ss-control-surface) !important;
}

.ss-check,
.ss-radio,
body.songshove-single-workspace-page .ss-inline-form input[type="checkbox"],
body.songshove-single-workspace-page .ss-inline-form input[type="radio"]{
    accent-color: var(--ss-blue);
}

.ss-edit-actions,
body.songshove-single-workspace-page .ss-edit-actions{
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    min-width: 0 !important;
    margin: 4px 0 0 !important;
}

.ss-edit-cancel,
body.songshove-single-workspace-page .ss-edit-actions > a,
body.songshove-single-workspace-page .ss-edit-actions > button[type="button"]{
    appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-compact) !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-action) !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-control-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}

.ss-edit-save,
body.songshove-single-workspace-page .ss-edit-actions > button[type="submit"]{
    appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-compact) !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-action) !important;
    background: var(--ss-button-primary-bg) !important;
    border: 1px solid var(--ss-blue) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-button-primary-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1 !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}

.ss-edit-cancel:hover,
body.songshove-single-workspace-page .ss-edit-actions > a:hover,
body.songshove-single-workspace-page .ss-edit-actions > button[type="button"]:hover{
    background: var(--ss-control-surface-soft) !important;
    color: var(--ss-blue-dark) !important;
}

.ss-edit-save:hover,
body.songshove-single-workspace-page .ss-edit-actions > button[type="submit"]:hover{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
}

.ss-save-status,
body.songshove-single-workspace-page .ssa-ajax-save-status,
body.songshove-single-workspace-page .ssa-inline-status,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-status{
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    margin-right: auto;
    color: var(--ss-muted);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-750);
    line-height: 1.1;
    white-space: nowrap;
}

.ss-save-status.is-saving,
body.songshove-single-workspace-page .ssa-ajax-save-status.is-saving,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-status.is-saving{
    color: var(--ss-blue) !important;
}

.ss-save-status.is-saved,
body.songshove-single-workspace-page .ssa-ajax-save-status.is-saved,
body.songshove-single-workspace-page .ssa-inline-status.is-saved,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-status.is-saved{
    color: var(--ss-success) !important;
}

.ss-save-status.is-error,
body.songshove-single-workspace-page .ssa-ajax-save-status.is-error,
body.songshove-single-workspace-page .ssa-inline-status.is-error,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-status.is-error{
    color: var(--ss-danger) !important;
}

/* ============================================================
   10. SEARCH / FILTER / SORT / TABS / MENUS
   Campaign toolbar + SEO tabs are the visual measuring reference.
   ============================================================ */
.ss-control-row{
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-width: 0;
}

/* Compact search / filter-select / sort controls.
   This is intentionally smaller than normal edit-form fields. */
.ss-toolbar-search,
.ss-toolbar-select,
.ss-filter-select,
.ss-sort,
body.songshove-single-workspace-page .ssa-manager-controls input[type="search"],
body.songshove-single-workspace-page .ssa-manager-controls select{
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: var(--ss-toolbar-control-height) !important;
    min-height: var(--ss-toolbar-control-height) !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-compact) !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-toolbar-control-radius) !important;
    color: var(--ss-text-control)!important;
    font-family: inherit !important;
    font-size: var(--ss-toolbar-control-font) !important;
    font-weight: var(--ss-weight-strong) !important;
    line-height: 1.2 !important;
    outline: none !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: var(--ss-transition-field) !important;
}

.ss-toolbar-search:focus,
.ss-toolbar-select:focus,
.ss-filter-select:focus,
.ss-sort:focus,
body.songshove-single-workspace-page .ssa-manager-controls input[type="search"]:focus,
body.songshove-single-workspace-page .ssa-manager-controls select:focus{
    background: var(--ss-control-surface) !important;
    border-color: var(--ss-control-focus-border) !important;
    box-shadow: var(--ss-control-focus-ring) !important;
}

.ss-toolbar-label{
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: #5A6474;
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
}

/* Campaign SEO tab geometry is the shared tab pattern. */
.ss-tabs,
body.songshove-single-workspace-page .ssa-filter-buttons{
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-width: 0;
}

body.songshove-single-workspace-page .ssa-filter-buttons{
    margin: 0 0 8px;
}

.ss-tab,
body.songshove-single-workspace-page .ssa-filter-buttons button{
    appearance: var(--ss-control-native-appearance);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ss-tab-height);
    margin: 0;
    padding: var(--ss-control-padding-standard-action);
    background: var(--ss-control-surface);
    border: var(--ss-control-border);
    border-radius: var(--ss-tab-radius);
    color: var(--ss-muted-strong);
    font-family: inherit;
    font-size: var(--ss-tab-font);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
    text-decoration: var(--ss-interactive-decoration);
    cursor: var(--ss-interactive-cursor);
    box-sizing: border-box;
    transition: var(--ss-transition-control-interactive);
}

.ss-tab:hover,
.ss-tab:focus-visible,
.ss-tab.is-active,
body.songshove-single-workspace-page .ssa-filter-buttons button:hover,
body.songshove-single-workspace-page .ssa-filter-buttons button:focus-visible,
body.songshove-single-workspace-page .ssa-filter-buttons button.is-active{
    background: var(--ss-blue-soft);
    border-color: var(--ss-blue-border);
    color: var(--ss-blue-dark);
}

.ss-dropdown-trigger{
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 88px;
    height: var(--ss-dropdown-trigger-height);
    min-height: var(--ss-dropdown-trigger-height);
    margin: 0;
    padding: 3px 24px 3px 8px;
    background: var(--ss-soft);
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-dropdown-trigger-radius);
    color: var(--ss-text);
    box-shadow: none;
    font-family: inherit;
    font-size: var(--ss-dropdown-trigger-font);
    font-weight: var(--ss-weight-bold);
    line-height: 1;
    text-align: left;
    white-space: nowrap;
    cursor: var(--ss-interactive-cursor);
    box-sizing: border-box;
    transition: var(--ss-transition-control-chrome);
}

.ss-dropdown-trigger::after{
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid var(--ss-blue);
    border-bottom: 1.5px solid var(--ss-blue);
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}

.ss-dropdown-trigger:hover,
.ss-dropdown-trigger:focus-visible,
.ss-dropdown-trigger[aria-expanded="true"],
.ss-dropdown-trigger.has-value{
    outline: none;
    background: var(--ss-surface-white);
    border-color: var(--ss-border-hover-subtle);
    color: var(--ss-blue-dark);
}

/* Compact selection dropdown: exact Campaign Marketing Ideas reference. */
.ss-dropdown-menu{
    min-width: var(--ss-dropdown-menu-min);
    max-width: var(--ss-dropdown-menu-max);
    padding: var(--ss-dropdown-menu-padding);
    background: var(--ss-surface-white);
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-dropdown-menu-radius);
    box-shadow: var(--ss-dropdown-menu-shadow);
    color: var(--ss-text);
    box-sizing: border-box;
}

/* Compact action menu / popover: exact Campaign release-link reference. */
.ss-menu,
.ss-popover{
    width: var(--ss-action-menu-width);
    min-width: var(--ss-action-menu-width);
    padding: var(--ss-action-menu-padding);
    background: var(--ss-control-surface);
    border: 1px solid var(--ss-border-release-popover);
    border-radius: var(--ss-action-menu-radius);
    box-shadow: var(--ss-action-menu-shadow);
    color: var(--ss-control-text);
    box-sizing: border-box;
}

.ss-menu[hidden],
.ss-dropdown-menu[hidden],
.ss-popover[hidden]{
    display: none !important;
}

.ss-menu-title,
.ss-popover-title{
    display: block;
    padding: 3px 6px 6px;
    color: var(--ss-text);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.2;
}

.ss-menu button,
.ss-menu a,
.ss-popover button,
.ss-popover a{
    appearance: var(--ss-control-native-appearance);
    display: flex;
    align-items: center;
    width: 100%;
    min-height: var(--ss-menu-item-height);
    margin: 0;
    padding: var(--ss-control-padding-menu);
    background: transparent;
    border: 0;
    border-radius: var(--ss-menu-item-radius);
    color: var(--ss-control-text);
    box-shadow: none;
    font-family: inherit;
    font-size: var(--ss-menu-item-font);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
    text-align: left;
    text-decoration: var(--ss-interactive-decoration)!important;
    cursor: var(--ss-interactive-cursor);
}

.ss-dropdown-menu button,
.ss-dropdown-menu a{
    appearance: var(--ss-control-native-appearance);
    display: block;
    width: 100%;
    margin: 0;
    padding: var(--ss-control-padding-menu);
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--ss-control-text);
    box-shadow: none;
    font-family: inherit;
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-strong);
    line-height: 1.15;
    text-align: left;
    text-decoration: var(--ss-interactive-decoration)!important;
    white-space: nowrap;
    cursor: var(--ss-interactive-cursor);
}

.ss-menu button:hover,
.ss-menu button:focus-visible,
.ss-menu a:hover,
.ss-menu a:focus-visible,
.ss-popover button:hover,
.ss-popover button:focus-visible,
.ss-popover a:hover,
.ss-popover a:focus-visible,
.ss-dropdown-menu button:hover,
.ss-dropdown-menu button:focus-visible,
.ss-dropdown-menu a:hover,
.ss-dropdown-menu a:focus-visible{
    outline: none;
    background: var(--ss-blue-soft);
    color: var(--ss-blue-dark);
}

.ss-menu .is-copied,
.ss-popover .is-copied{
    background: #EDF9F0;
    color: var(--ss-success);
}

/* ============================================================
   11. PROGRESS
   Campaign progress bars are the measuring reference.
   ============================================================ */
.ss-progress-track,
body.songshove-single-workspace-campaign .ss-v6-section-progress-track{
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 8px;
    background: var(--ss-progress-track) !important;
    border-radius: var(--ss-radius-pill);
    box-sizing: border-box;
}

.ss-progress-fill,
body.songshove-single-workspace-campaign .ss-v6-section-progress-fill{
    display: block;
    height: 100%;
    background: var(--ss-progress-fill) !important;
    border-radius: inherit;
    transition: width .22s ease;
}

/* SONGSHOVE V8.5 — Universal compact progress variant.
 * Why: dense Single Workspace summary cards need the same progress component
 * with the proven 7px Song geometry instead of a page-owned progress bar.
 * Coded: 2026-09-18
 */
.ss-progress-track--compact{
    height: 7px;
    background: var(--ss-progress-track-compact) !important;
}

/* Main/overall progress follows the Campaign overall-progress treatment. */
.ss-progress-track--main,
body.songshove-single-workspace-campaign .ss-v6-overall-progress-track{
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 9px;
    background: var(--ss-progress-track-main) !important;
    border-radius: var(--ss-radius-pill);
    box-sizing: border-box;
}

.ss-progress-track--main > .ss-progress-fill,
body.songshove-single-workspace-campaign .ss-v6-overall-progress-fill{
    display: block;
    height: 100%;
    background: var(--ss-progress-fill) !important;
    border-radius: inherit;
    transition: width .22s ease;
}

/* Legacy full Campaign progress card uses the same master palette/geometry. */
body.songshove-single-workspace-campaign .songshove-v4-progress-card .songshove-progress-bar{
    height: 10px !important;
    background: #DBEAFE !important;
    border-radius: var(--ss-radius-pill) !important;
}

body.songshove-single-workspace-campaign .songshove-v4-progress-card .songshove-progress-bar-fill{
    background: var(--ss-progress-fill) !important;
    border-radius: inherit !important;
    transition: width .25s ease;
}

.ss-progress-track.is-complete,
.ss-progress-track--main.is-complete,
body.songshove-single-workspace-campaign .songshove-v4-progress-card.songshove-campaign-is-complete .songshove-progress-bar{
    background: var(--ss-progress-complete-track) !important;
}

.ss-progress-track.is-complete > .ss-progress-fill,
.ss-progress-track--main.is-complete > .ss-progress-fill,
body.songshove-single-workspace-campaign .songshove-v4-progress-card.songshove-campaign-is-complete .songshove-progress-bar-fill{
    background: var(--ss-progress-complete-fill) !important;
}

/* ============================================================
   12. EMPTY / NOTICE STATES
   ============================================================ */
.ss-empty-state,
body.songshove-single-workspace-page .ss-empty-state{
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    padding: 24px 14px;
    background: var(--ss-surface-white);
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-radius-card);
    box-shadow: var(--ss-shadow);
    text-align: center;
    box-sizing: border-box;
}

.ss-empty-state strong,
body.songshove-single-workspace-page .ss-empty-state strong{
    color: var(--ss-text);
    font-size: var(--ss-type-medium);
    font-weight: var(--ss-weight-heavy);
}

.ss-empty-state span,
body.songshove-single-workspace-page .ss-empty-state span{
    color: var(--ss-muted);
    font-size: var(--ss-type-body);
}

.ss-inline-empty,
body.songshove-single-workspace-page .ss-empty-state{
    margin: 8px 0 0;
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-label) !important;
    line-height: 1.4 !important;
}

.ss-notice-success,
body.songshove-single-workspace-page .ss-save-status{
    color: var(--ss-success);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-heavy);
}

.ss-notice-neutral{
    padding: 8px 10px;
    background: var(--ss-soft);
    border: 1px solid var(--ss-border);
    border-radius: 9px;
    color: var(--ss-muted-strong);
    font-size: var(--ss-type-body);
    font-weight: var(--ss-weight-strong);
}

.ss-notice-error,
body.songshove-single-workspace-page .ss-notice-error{
    padding: 8px 10px;
    background: var(--ss-danger-soft);
    border: 1px solid var(--ss-danger-border);
    border-radius: 9px;
    color: var(--ss-danger-strong);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-bold);
}

/* ============================================================
   13. MODAL / POPOVER / TOOLTIP
   Derived from Campaign SEO/filter modal treatment.
   ============================================================ */
.ss-modal[hidden]{
    display: none !important;
}

/*
 * Campaign-master modal shell.
 * The outer .ss-modal is the backdrop, matching the approved Campaign SEO
 * modal. Use .ss-modal-dialog--small/--medium only when content genuinely
 * needs a narrower dialog; the visual treatment stays identical.
 */
.ss-modal{
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, .48);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    box-sizing: border-box;
    overflow-y: auto;
}

/* Legacy/separate-backdrop compatibility. New modals should use .ss-modal
 * itself as the backdrop so the click target and Campaign behavior match. */
.ss-modal-backdrop{
    position: absolute;
    inset: 0;
    background: transparent;
}

.ss-modal-dialog{
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(760px, 100%);
    max-height: min(82vh, 780px);
    overflow: hidden;
    padding: 0;
    background: var(--ss-surface-white);
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-radius-card);
    box-shadow: var(--ss-modal-shadow);
    color: var(--ss-text);
    box-sizing: border-box;
    outline: none;
}

.ss-modal-dialog--medium{
    width: min(680px, 100%);
}

.ss-modal-dialog--small{
    width: min(520px, 100%);
}

/* Use when a compact modal does not need a separate head/body/footer split. */
.ss-modal-dialog--padded{
    padding: 14px;
    overflow-y: auto;
}

.ss-modal-head{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border-bottom: 1px solid var(--ss-divider);
}

.ss-modal-heading{
    min-width: 0;
}

.ss-modal-kicker{
    display: block;
    color: var(--ss-blue);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ss-modal-title,
.ss-modal-heading h2,
.ss-modal-heading h3{
    margin: 2px 0 3px;
    color: var(--ss-text);
    font-size: var(--ss-type-section);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.15;
    letter-spacing: -.02em;
}

.ss-modal-heading p{
    margin: 0;
    color: var(--ss-muted);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-650);
    line-height: 1.35;
}

.ss-modal-body{
    min-height: 0;
    padding: 12px 14px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--ss-blue) var(--ss-border-soft);
}

.ss-modal-body::-webkit-scrollbar{
    width: 8px;
}

.ss-modal-body::-webkit-scrollbar-track{
    background: var(--ss-border-soft);
    border-radius: var(--ss-radius-pill);
}

.ss-modal-body::-webkit-scrollbar-thumb{
    background: linear-gradient(180deg, #4C8DFF, var(--ss-blue));
    border: 2px solid var(--ss-border-soft);
    border-radius: var(--ss-radius-pill);
}

.ss-modal-foot{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 54px;
    padding: 10px 14px;
    border-top: 1px solid var(--ss-divider);
}

.ss-modal-status{
    min-height: 1em;
    color: var(--ss-success);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-850);
}

.ss-modal-close{
    appearance: var(--ss-control-native-appearance);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    background: var(--ss-soft);
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-radius-compact-control);
    color: var(--ss-muted-strong);
    font-size: 22px;
    font-weight: var(--ss-weight-strong);
    line-height: 1;
    cursor: var(--ss-interactive-cursor);
    transition: var(--ss-transition-control-chrome);
}

.ss-modal-close:hover,
.ss-modal-close:focus-visible{
    background: var(--ss-blue);
    border-color: var(--ss-blue);
    color: var(--ss-text-inverse);
}

.ss-tooltip{
    position: relative;
}

.ss-tooltip[data-ss-tooltip]::after{
    content: attr(data-ss-tooltip);
    position: absolute;
    z-index: 1000;
    left: 50%;
    bottom: calc(100% + 6px);
    transform: translateX(-50%) translateY(2px);
    width: max-content;
    max-width: 220px;
    padding: 5px 7px;
    background: var(--ss-tooltip-bg);
    border-radius: 6px;
    color: var(--ss-tooltip-text);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-strong);
    line-height: 1.25;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease, transform .15s ease;
}

.ss-tooltip[data-ss-tooltip]:hover::after,
.ss-tooltip[data-ss-tooltip]:focus-visible::after{
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

body.ss-modal-open{
    overflow: hidden;
}

/* ============================================================
   14. AUDIO WRAPPER — CAMPAIGN MASTER
   Shared enclosure for native SongShove audio controls. Keep native
   playback controls; page-specific layouts/actions stay page-specific.
   ============================================================ */
.ss-audio-wrap{
    width: 100%;
    min-width: 0;
    padding: 6px;
    background: var(--ss-soft);
    border: 1px solid var(--ss-border-soft);
    border-radius: 10px;
    box-sizing: border-box;
}

.ss-audio-wrap[hidden]{
    display: none !important;
}

.ss-audio-wrap > audio{
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    background-color: var(--ss-soft);
}

.ss-audio-wrap > audio::-webkit-media-controls-enclosure,
.ss-audio-wrap > audio::-webkit-media-controls-panel{
    background-color: var(--ss-soft);
}

/* ============================================================
   15. ARCHIVE / ACCOUNT TOOLBAR — CAMPAIGN MASTER
   Purpose: One reusable search/filter/sort/status toolbar for Campaign,
   Artist and Song archive/account pages. The approved Campaign archive
   is the visual reference; feature-specific query/data logic stays local.
   Coded: 2026-09-13

   IMPORTANT:
   Legacy Campaign/ssaw classes remain in markup as compatibility/data hooks.
   The accepted ss-archive-* classes own shared presentation. Proven duplicate
   Artist/Song archive toolbar CSS was removed from account-workspace.css in
   the final shared-UI audit; Campaign legacy CSS remains protected unless a
   later trace proves a specific rule safe to remove.
   Cleanup recorded: 2026-09-14
   ============================================================ */
.ss-archive-toolbar{
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 11px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 18px !important;
    padding: 13px 14px 11px !important;
    background: linear-gradient(180deg,#F7FAFF 0%,#F2F6FC 100%) !important;
    border: 1px solid #D8E2EF !important;
    border-radius: 13px !important;
    box-shadow: 0 3px 11px rgba(15,23,42,.035), inset 0 1px 0 rgba(255,255,255,.9) !important;
    box-sizing: border-box !important;
}

.ss-archive-status-row{
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    width: 100% !important;
    min-width: 0 !important;
}

.ss-archive-toolbar-label,
.ss-archive-field > span{
    display: block !important;
    margin: 0 !important;
    color: #5F6978 !important;
    font-size: var(--ss-type-micro) !important;
    font-weight: var(--ss-weight-850) !important;
    line-height: 1.1 !important;
}

.ss-archive-status-tabs{
    display: inline-flex !important;
    align-items: stretch !important;
    align-self: flex-start !important;
    overflow: hidden !important;
    background: var(--ss-surface-white) !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    box-shadow: 0 1px 3px rgba(15,23,42,.025) !important;
}

.ss-archive-status-tab{
    appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    min-height: var(--ss-control-height-standard) !important;
    margin: 0 !important;
    padding: 6px 9px !important;
    background: var(--ss-control-surface) !important;
    border: 0 !important;
    border-right: 1px solid var(--ss-border) !important;
    border-radius: 0 !important;
    color: var(--ss-muted-ui) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    white-space: nowrap !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: background .15s ease, border-color .15s ease, color .15s ease !important;
}

.ss-archive-status-tab:last-child{
    border-right: 0 !important;
}

.ss-archive-status-tab > span{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    background: #F3F5F8 !important;
    border-radius: var(--ss-radius-pill) !important;
    color: #697386 !important;
    font-size: var(--ss-type-micro) !important;
    font-weight: var(--ss-weight-heavy) !important;
}

.ss-archive-status-tab:hover,
.ss-archive-status-tab:focus-visible{
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
}

.ss-archive-status-tab.is-active{
    background: var(--ss-blue) !important;
    border-color: var(--ss-blue) !important;
    color: var(--ss-text-inverse) !important;
}

.ss-archive-status-tab.is-active > span{
    background: rgba(255,255,255,.2) !important;
    color: var(--ss-text-inverse) !important;
}

.ss-archive-filter-form{
    display: grid !important;
    align-items: end !important;
    gap: 9px !important;
    width: 100% !important;
    min-width: 0 !important;
}

/* ARCHIVE TOOLBAR GRID: CAMPAIGN — Artist / Platform / Genre / Search / Sort / Reset. */
.ss-archive-filter-form--campaign{
    grid-template-columns: minmax(135px,.9fr) minmax(135px,.9fr) minmax(120px,.8fr) minmax(250px,1.8fr) minmax(135px,.85fr) auto !important;
}

/* ARCHIVE TOOLBAR GRID: ARTIST — Language / Country / Search / Sort / Filter / Clear. */
.ss-archive-filter-form--artist{
    grid-template-columns: minmax(120px,.8fr) minmax(120px,.8fr) minmax(180px,1.35fr) minmax(128px,.8fr) auto auto !important;
}

/* ARCHIVE TOOLBAR GRID: SONG — Artist / Genre / Release / Search / Sort / Filter / Clear. */
.ss-archive-filter-form--song{
    grid-template-columns: repeat(3,minmax(110px,.8fr)) minmax(180px,1.35fr) minmax(128px,.8fr) auto auto !important;
}

.ss-archive-field{
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.ss-archive-field > :is(input,select){
    width: 100% !important;
    min-width: 0 !important;
    height: 32px !important;
    min-height: var(--ss-control-height-standard) !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-compact) !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-text-control)!important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-strong) !important;
    line-height: 1.2 !important;
    outline: none !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: var(--ss-transition-field) !important;
}

.ss-archive-field > :is(input,select):focus{
    background: var(--ss-control-surface) !important;
    border-color: var(--ss-control-focus-border) !important;
    box-shadow: var(--ss-control-focus-ring) !important;
}

.ss-archive-search-field{
    align-self: end !important;
}

.ss-archive-submit{
    appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-standard) !important;
    margin: 0 !important;
    padding: 6px 10px !important;
    background: var(--ss-surface-white) !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 8px !important;
    color: var(--ss-muted-ui) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    cursor: var(--ss-interactive-cursor) !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.ss-archive-submit:hover,
.ss-archive-submit:focus-visible{
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-border-action-hover) !important;
    color: var(--ss-blue) !important;
}

.ss-archive-reset{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: end !important;
    min-height: var(--ss-control-height-standard) !important;
    margin: 0 !important;
    padding: 6px 4px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 6px !important;
    color: var(--ss-blue) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-850) !important;
    line-height: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    white-space: nowrap !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.ss-archive-reset:hover,
.ss-archive-reset:focus-visible{
    background: transparent !important;
    border-color: transparent !important;
    color: var(--ss-blue-dark) !important;
    text-decoration: underline !important;
}

.ss-archive-result-count{
    grid-column: 1 / -1 !important;
    justify-self: end !important;
    margin: -1px 0 0 !important;
    padding-right: 1px !important;
    color: #788293 !important;
    font-size: var(--ss-type-micro) !important;
    font-weight: var(--ss-weight-750) !important;
}

/* ============================================================
   SONGSHOVE — ARCHIVE / ACCOUNT SHARED DESIGN — CAMPAIGN MASTER
   Purpose: Make Campaign, Artist, Song and compatible library/archive surfaces
   use one reusable visual language without changing feature data or behavior.
   Design reference: approved Single Campaign archive.
   Coded: 2026-09-14

   IMPORTANT:
   - These classes own shared presentation only.
   - Feature-specific card internals, filters, data and actions stay local.
   - Legacy classes remain as compatibility/data hooks where PHP/JS still use them.
   - Proven duplicate Artist/Song archive shell CSS was cleaned 2026-09-14.
   - MusicBook keeps its unique toolbox/grid/list structure; only compatible
     outer surfaces opt into this shared archive language.
   ============================================================ */
.ss-archive-page{
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* ARCHIVE HOST WIDTH — keep Campaign/Artist/Song archive shells on the global content-width contract.
   Coded: 2026-09-14
   Why: legacy archive styles still carry historical 1050/700 width breakpoints; this
   shared ownership keeps archive page gutters synchronized with the global contract. */
body.songshove-v4-campaign-page .songshove-campaign-page,
body.songshove-account-workspace-archive .songshove-account-workspace{
    width: calc(100% - (var(--ss-content-gutter) * 2)) !important;
    max-width: var(--ss-content-max) !important;
    margin-inline: auto !important;
}

/* SONGSHOVE DESIGN CLEANUP — ARCHIVE DESKTOP HOST MATCHES SINGLE-WORKSPACE WIDTH
   Why: the shared archive shells were uncapped in Pass 16, but their outer WordPress/WooCommerce
   hosts still kept the theme root padding, so Campaign/Artist/Song archives remained visibly
   narrower than the proven Single Campaign/Artist/Song pages. Apply the same desktop browser-edge
   compensation to archive WooCommerce hosts, then let the archive shell fill that host at 100%.
   This changes only desktop width ownership; archive cards, grids, filters and mobile rules remain local.
   Coded: 2026-09-16 */
@media (min-width: 901px) {
    body.songshove-v4-campaign-archive .is-layout-constrained > .woocommerce,
body.songshove-account-workspace-archive .is-layout-constrained > .woocommerce{
        --ss-archive-browser-gutter: 25px;
        --ss-archive-wp-padding-left: var(--wp--style--root--padding-left, var(--ss-archive-browser-gutter));
        --ss-archive-wp-padding-right: var(--wp--style--root--padding-right, var(--ss-archive-browser-gutter));
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        margin-left: calc(var(--ss-archive-browser-gutter) - var(--ss-archive-wp-padding-left)) !important;
        margin-right: calc(var(--ss-archive-browser-gutter) - var(--ss-archive-wp-padding-right)) !important;
        box-sizing: border-box !important;
    }

    body.songshove-v4-campaign-archive .songshove-campaign-page,
body.songshove-account-workspace-archive .songshove-account-workspace{
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        box-sizing: border-box !important;
    }
}

/* ARCHIVE HEADER CARD — Campaign master. */
.ss-archive-header{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 18px !important;
    padding: 24px 26px !important;
    background: var(--ss-surface-raised-gradient) !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: var(--ss-radius-archive-panel) !important;
    box-shadow: 0 5px 18px rgba(15,23,42,.045) !important;
    box-sizing: border-box !important;
}

.ss-archive-heading{
    min-width: 0 !important;
}

.ss-archive-eyebrow{
    display: block !important;
    margin: 0 0 5px !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.2 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
}

.ss-archive-header h1,
.ss-archive-title{
    margin: 0 0 7px !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-archive-title) !important;
    font-weight: var(--ss-weight-850) !important;
    line-height: 1.15 !important;
    letter-spacing: -.02em !important;
}

.ss-archive-header p:not(.ss-archive-eyebrow),
.ss-archive-description{
    max-width: 760px !important;
    margin: 0 !important;
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-compact) !important;
    font-weight: var(--ss-weight-regular) !important;
    line-height: 1.5 !important;
}

.ss-archive-primary-action{
    appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    min-height: var(--ss-control-height-cta) !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    background: var(--ss-button-primary-bg) !important;
    border: 1px solid var(--ss-blue) !important;
    border-radius: 9px !important;
    color: var(--ss-button-primary-text) !important;
    box-shadow: none !important;
    font-family: var(--ss-font) !important;
    font-size: var(--ss-type-support) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1.2 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    white-space: nowrap !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
    transition: background .15s ease, border-color .15s ease, transform .15s ease !important;
}

.ss-archive-primary-action:hover,
.ss-archive-primary-action:focus-visible{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
    color: var(--ss-button-primary-text) !important;
    transform: translateY(-1px) !important;
}

/* ARCHIVE PANEL — common surface only; unique internal layout stays local. */
.ss-archive-panel{
    background: var(--ss-surface-white) !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: var(--ss-radius-card) !important;
    box-shadow: var(--ss-shadow) !important;
    box-sizing: border-box !important;
}

/* ARCHIVE GRID: 3 COLUMN CAMPAIGN CARDS — shared Campaign/Artist/Song library grid. */
.ss-archive-card-grid{
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* ARCHIVE CARD SHELL — Campaign master. Feature-specific internals remain local. */
.ss-archive-card{
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    min-height: 100% !important;
    padding: 16px !important;
    background: var(--ss-surface-raised-gradient) !important;
    border: 1px solid var(--ss-border-archive-card) !important;
    border-radius: var(--ss-radius-card) !important;
    box-shadow: 0 5px 16px rgba(15,23,42,.045) !important;
    color: var(--ss-text) !important;
    box-sizing: border-box !important;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}

.ss-archive-card[hidden]{
    display: none !important;
}

.ss-archive-card:hover{
    border-color: #C7D3E3 !important;
    box-shadow: 0 9px 24px rgba(15,23,42,.075) !important;
    transform: translateY(-2px) !important;
}

/* ARCHIVE CARD STATUS — shared base with existing feature status classes mapped. */
.ss-archive-card-status{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 24px !important;
    padding: 4px 7px !important;
    background: var(--ss-soft) !important;
    border: 1px solid var(--ss-status-border) !important;
    border-radius: var(--ss-radius-pill) !important;
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-micro) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

.ss-archive-card-status.is-active,
.ss-archive-card-status.is-success,
.ss-archive-card-status.songshove-campaign-card-status-complete{
    background: var(--ss-success-soft) !important;
    border-color: var(--ss-success-border) !important;
    color: var(--ss-success) !important;
}

.ss-archive-card-status.is-info,
.ss-archive-card-status.songshove-campaign-card-status-generating{
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-blue-border) !important;
    color: var(--ss-blue) !important;
}

.ss-archive-card-status.is-archived,
.ss-archive-card-status.is-neutral,
.ss-archive-card-status.songshove-campaign-card-status-queued{
    background: var(--ss-soft) !important;
    border-color: var(--ss-border-strong) !important;
    color: var(--ss-muted) !important;
}

.ss-archive-card-status.is-danger,
.ss-archive-card-status.songshove-campaign-card-status-failed{
    background: var(--ss-danger-soft) !important;
    border-color: var(--ss-danger-border) !important;
    color: var(--ss-danger) !important;
}

.ss-archive-card-open{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 39px !important;
    margin-top: auto !important;
    padding: 9px 12px !important;
    background: var(--ss-action-dark) !important;
    border: 1px solid var(--ss-action-dark) !important;
    border-radius: 8px !important;
    color: var(--ss-text-inverse) !important;
    box-shadow: none !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1.2 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    box-sizing: border-box !important;
    transition: background .15s ease, border-color .15s ease !important;
}

.ss-archive-card-open:hover,
.ss-archive-card-open:focus-visible{
    background: var(--ss-blue) !important;
    border-color: var(--ss-blue) !important;
    color: var(--ss-text-inverse) !important;
}

/* MUSICBOOK/LIBRARY CARD SURFACE — visual shell only; grid/list internals stay local. */
.ss-archive-library-card{
    min-width: 0 !important;
    background: var(--ss-surface-white) !important;
    border: 1px solid var(--ss-border-archive-card) !important;
    border-radius: var(--ss-radius-card) !important;
    box-shadow: 0 5px 16px rgba(15,23,42,.045) !important;
    box-sizing: border-box !important;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease !important;
}

.ss-archive-library-card:hover{
    border-color: #C7D3E3 !important;
    box-shadow: 0 9px 24px rgba(15,23,42,.075) !important;
}

/* MUSICBOOK OPEN ACTION — same shared button surface, centered because MusicBook
   uses a text-only Open action rather than Campaign's label + trailing affordance.
   Coded: 2026-09-14 */
.ss-archive-library-card .ss-archive-card-open{
    justify-content: center !important;
}

/* ARCHIVE EMPTY / FILTERED EMPTY — Campaign master. */
.ss-archive-empty-state{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 54px 28px !important;
    background: var(--ss-surface-white) !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: var(--ss-radius-archive-panel) !important;
    box-shadow: 0 4px 18px rgba(15,23,42,.04) !important;
    color: var(--ss-muted) !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.ss-archive-empty-state[hidden]{
    display: none !important;
}

.ss-archive-empty-state--filtered{
    padding-top: 38px !important;
    padding-bottom: 38px !important;
}

.ss-archive-empty-icon{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 54px !important;
    height: 54px !important;
    margin: 0 auto 16px !important;
    background: var(--ss-blue-soft) !important;
    border-radius: 50% !important;
    color: var(--ss-blue) !important;
    font-size: 25px !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
}

.ss-archive-empty-state :is(h2,h3,strong){
    display: block !important;
    margin: 0 0 8px !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-empty-heading) !important;
    font-weight: var(--ss-weight-850) !important;
    line-height: 1.2 !important;
}

.ss-archive-empty-state p{
    max-width: 520px !important;
    margin: 0 auto 18px !important;
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-support) !important;
    font-weight: var(--ss-weight-regular) !important;
    line-height: 1.5 !important;
}

/* ARCHIVE PAGINATION — Campaign master, usable by links or JS-built buttons. */
.ss-archive-pagination{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 28px 0 0 !important;
    box-sizing: border-box !important;
}

.ss-archive-pagination[hidden]{
    display: none !important;
}

.ss-archive-pagination-pages{
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
}

.ss-archive-pagination > :is(a,span,button),
.ss-archive-pagination-pages > :is(a,span,button),
.ss-archive-pagination .rhymebook-library-page-button{
    appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 36px !important;
    min-height: var(--ss-control-height-large) !important;
    height: auto !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-standard-action) !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-muted) !important;
    box-shadow: none !important;
    font-family: var(--ss-font) !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    box-sizing: border-box !important;
}

.ss-archive-pagination > :is(a,button):hover:not(:disabled),
.ss-archive-pagination-pages > :is(a,button):hover:not(:disabled),
.ss-archive-pagination .rhymebook-library-page-button:hover:not(:disabled){
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-border-hover-accent) !important;
    color: var(--ss-blue) !important;
}

.ss-archive-pagination .is-current,
.ss-archive-pagination .rhymebook-library-page-button.is-active{
    background: var(--ss-blue) !important;
    border-color: var(--ss-blue) !important;
    color: var(--ss-text-inverse) !important;
}

.ss-archive-pagination .is-disabled,
.ss-archive-pagination :disabled{
    opacity: .35 !important;
    cursor: default !important;
}

/* ============================================================
   16. FOCUS + ACCESSIBILITY
   ============================================================ */
body.songshove-single-workspace-page :where(a,button,input,select,textarea,summary):focus-visible{
    outline: var(--ss-control-focus-outline-soft);
    outline-offset: var(--ss-control-focus-offset);
}

/* ============================================================
   CAMPAIGN-MASTER SAVE / CANCEL CONTROLS
   Exact approved Single Campaign compact geometry. These are now the
   canonical inline Save/Cancel controls for SongShove workspaces.
   Existing text remains in the DOM as the accessible name; the visual
   control is the same ✓ / × treatment used by Campaign.
   ============================================================ */
.ss-save-control,
.ss-cancel-control,
body.songshove-single-workspace-page .ss-edit-actions > button[type="submit"],
body.songshove-single-workspace-page .ss-edit-actions > a[data-ss-inline-cancel],
body.songshove-single-workspace-page .ss-edit-actions > button[data-ss-inline-cancel],
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-save,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-cancel{
    appearance: var(--ss-control-native-appearance) !important;
    -webkit-appearance: var(--ss-control-native-appearance) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: none !important;
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: var(--ss-control-height-compact) !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--ss-control-surface) !important;
    border: 1px solid var(--ss-border-strong) !important;
    border-radius: var(--ss-control-radius-tight) !important;
    font-family: var(--ss-font) !important;
    font-size: 0 !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
}

.ss-save-control::before,
body.songshove-single-workspace-page .ss-edit-actions > button[type="submit"]::before{
    content: "✓";
    color: var(--ss-blue);
    font-size: var(--ss-type-compact);
    font-weight: var(--ss-weight-heavy);
    line-height: 1;
}

.ss-cancel-control::before,
body.songshove-single-workspace-page .ss-edit-actions > a[data-ss-inline-cancel]::before,
body.songshove-single-workspace-page .ss-edit-actions > button[data-ss-inline-cancel]::before{
    content: "×";
    color: var(--ss-muted);
    font-size: var(--ss-type-compact);
    font-weight: var(--ss-weight-heavy);
    line-height: 1;
}

/* Campaign already contains literal ✓ / ×, so keep its visible glyphs. */
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-save,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-cancel{
    font-size: var(--ss-type-compact) !important;
}

.ss-save-control:hover,
body.songshove-single-workspace-page .ss-edit-actions > button[type="submit"]:hover,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-save:hover{
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-blue-border) !important;
}

.ss-cancel-control:hover,
body.songshove-single-workspace-page .ss-edit-actions > a[data-ss-inline-cancel]:hover,
body.songshove-single-workspace-page .ss-edit-actions > button[data-ss-inline-cancel]:hover,
body.songshove-single-workspace-campaign .songshove-v54-campaign-title-cancel:hover{
    background: var(--ss-status-bg) !important;
    border-color: var(--ss-border-strong) !important;
}

body.songshove-single-workspace-page .ss-edit-actions > button[type="submit"]:disabled,
body.songshove-single-workspace-page .ss-edit-actions > button[data-ss-inline-cancel]:disabled{
    cursor: var(--ss-control-busy-cursor) !important;
    opacity: var(--ss-control-busy-opacity) !important;
}

/* ============================================================
   SONGSHOVE — PUBLIC / MARKETING SHARED UI
   Purpose: Give Home, Pricing and Learn More the same SongShove
   content width, base color/font language, labels, buttons and
   reusable card surface without forcing workspace row structures
   onto marketing pages.
   Design reference: approved Single Campaign shared UI.
   Coded: 2026-09-14
   ============================================================ */
.ss-marketing-page{
    --ss-blue: #2563EB !important;
    --ss-blue-dark: #1D4ED8 !important;
    --ss-text: #14213D !important;
    --ss-muted: #64748B !important;
    min-width: 0;
    color: var(--ss-text);
    font-family: var(--ss-font);
}

/* MARKETING SHELL — shared full-width site geometry: central desktop/mobile gutter tokens with no fixed desktop max-width unless a page intentionally owns a narrower content cap. Updated: 2026-09-16 */
.ss-marketing-shell{
    width: calc(100% - (var(--ss-content-gutter) * 2)) !important;
    max-width: var(--ss-content-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* MARKETING LABEL — same blue uppercase label language as shared workspaces. Coded: 2026-09-14 */
.ss-marketing-label{
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

/* MARKETING CARD — reusable informational/product card surface only.
   Decorative illustrations and feature-specific visual cards stay local. Coded: 2026-09-14 */
.ss-marketing-card{
    min-width: 0 !important;
    padding: var(--ss-card-padding) !important;
    background: var(--ss-card-bg) !important;
    border: var(--ss-card-border) !important;
    border-radius: var(--ss-radius-card) !important;
    box-shadow: var(--ss-card-shadow) !important;
    color: var(--ss-text) !important;
}

.ss-marketing-card :is(h1,h2,h3,h4,strong){
    color: var(--ss-text) !important;
}

.ss-marketing-card :is(p,small){
    color: var(--ss-muted) !important;
}

/* Pricing price text used to be white on its legacy dark card; keep it readable
   when that product card opts into the shared white card surface. Coded: 2026-09-14 */
.ss-marketing-card .ss-pricing__price{
    color: var(--ss-text) !important;
}

/* MARKETING TABS — pricing keeps its product-tab grid layout, while each
   tab uses the shared SongShove tab geometry/state treatment. Coded: 2026-09-14 */
.ss-marketing-page .ss-tab{
    min-height: var(--ss-tab-height) !important;
    padding: var(--ss-control-padding-standard-action) !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-tab-radius) !important;
    color: var(--ss-muted-strong) !important;
    font-size: var(--ss-tab-font) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1.2 !important;
}

.ss-marketing-page .ss-tab:hover,
.ss-marketing-page .ss-tab:focus-visible,
.ss-marketing-page .ss-tab.is-active{
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-blue-border) !important;
    color: var(--ss-blue-dark) !important;
}

/* Learn More has a deliberately compact top-corner purchase control.
   It still uses the shared primary-button color/focus language while keeping
   the smaller utility geometry required by the full-height tour. Coded: 2026-09-14 */
body.songshove-learn-more-page .sslm-tour.ss-marketing-page .sslm-tour__order-button.ss-button--primary{
    background: var(--ss-button-primary-bg) !important;
    border-color: var(--ss-blue) !important;
    color: var(--ss-button-primary-text) !important;
}

body.songshove-learn-more-page .sslm-tour.ss-marketing-page .sslm-tour__order-button.ss-button--primary:hover,
body.songshove-learn-more-page .sslm-tour.ss-marketing-page .sslm-tour__order-button.ss-button--primary:focus-visible{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
    color: var(--ss-button-primary-text) !important;
}

/* ============================================================
   SONGSHOVE — REMAINING CUSTOMER PAGE SHARED UI — BATCH 1
   Purpose: Bring Profile, Contact, Generation/Processing and Sample/Demo
   into the accepted global design system without moving their unique feature
   layouts, animations or data behavior into the shared layer.
   Design reference: approved Single Campaign shared UI.
   Coded: 2026-09-14
   ============================================================ */

/* PROFILE
 * Profile now consumes the universal My Account host/sidebar/content system and
 * the shared Profile Settings Coming soon notice owner. No private Profile CSS
 * remains. Updated: 2026-09-25 */

/* CONTACT FORM — migrated to the universal .ss-form system in Pass 42.
 * Contact-specific geometry/Turnstile remains in static-pages/contact/contact-form.css.
 * Coded: 2026-09-23 */

/* GENERATION / PROCESSING — shared card/text/button base.
 * Status rings, confetti, state colors and WooCommerce order-confirmation
 * composition remain generation-specific and can override this base later in
 * its local stylesheet. Coded: 2026-09-14 */
.ss-generation-order-card{
    padding: var(--ss-card-padding);
    background: var(--ss-card-bg);
    border: var(--ss-card-border);
    border-radius: var(--ss-radius-card);
    box-shadow: var(--ss-card-shadow);
    color: var(--ss-control-text);
}

.ss-generation-order-card-copy > strong,
.ss-generation-live-title{
    color: var(--ss-text);
}

.ss-generation-live-title{
    font-weight: var(--ss-weight-heavy);
}

.ss-generation-live-message{
    color: var(--ss-muted);
}

.ss-generation-ready-link{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ss-control-height-prominent);
    padding: 9px 13px;
    background: var(--ss-blue);
    border: 1px solid var(--ss-blue);
    border-radius: var(--ss-radius-control);
    color: var(--ss-text-inverse) !important;
    box-shadow: 0 2px 6px rgba(15,23,42,.035);
    font-family: var(--ss-font);
    font-size: var(--ss-type-control);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
    text-decoration: var(--ss-interactive-decoration)!important;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.ss-generation-ready-link:hover,
.ss-generation-ready-link:focus-visible{
    background: var(--ss-blue-dark);
    border-color: var(--ss-blue-dark);
    color: var(--ss-text-inverse) !important;
}

/* SAMPLE / DEMO
 * Markup now opts into .ss-marketing-page + .ss-marketing-shell so the global
 * font/color/content-width system is authoritative. Its demo cards, gradients
 * and animations intentionally remain local because they are feature-specific.
 * Coded: 2026-09-14 */

/* ============================================================
   SONGSHOVE — SHARED COMING SOON COMPONENT
   Purpose: Give active Coming Soon product placeholders one shared
   card/badge/title/message visual system while product-specific DOM
   replacement and animation behavior remain inside each feature.
   Current consumers: AlbumShove product + Cover Generator product.
   Design source: the previously duplicated accepted Coming Soon cards.
   Coded: 2026-09-14
   ============================================================ */
.ss-coming-soon{
    box-sizing: border-box;
    width: min(calc(100% - 32px), 900px);
    margin: 48px auto;
    padding: clamp(40px, 7vw, 88px) clamp(24px, 6vw, 72px);
    background: var(--ss-surface-white);
    border: 1px solid rgba(17,24,39,.12);
    border-radius: 24px;
    box-shadow: 0 20px 60px rgba(17,24,39,.08);
    color: var(--ss-text);
    font-family: var(--ss-font);
    text-align: center;
}

.ss-coming-soon__badge{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    padding: 7px 13px;
    background: #111827;
    border-radius: var(--ss-radius-pill);
    color: var(--ss-text-inverse);
    font-size: var(--ss-type-support);
    font-weight: var(--ss-weight-strong);
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}

.ss-coming-soon__title{
    margin: 0;
    padding-bottom: .08em;
    font-size: clamp(40px, 8vw, 76px);
    line-height: 1.15;
    letter-spacing: -.04em;
}

.ss-coming-soon__message{
    max-width: 620px;
    margin: 22px auto 0;
    color: inherit;
    font-size: clamp(17px, 2.2vw, 21px);
    line-height: 1.6;
    opacity: .78;
}

/* ============================================================
   SONGSHOVE — GLOBAL RESPONSIVE BREAKPOINT CONTRACT
   Purpose: One site-wide responsive system for reusable SongShove UI.
   Design reference: approved Single Campaign workspace.
   Coded: 2026-09-13

   BREAKPOINTS
   - 1181px+      = FULL DESKTOP (base styles; no media query needed)
   - 901–1180px   = NARROW DESKTOP (keep desktop composition, remove hard mins)
   - 900px & down = RESPONSIVE STACK (shared multi-column grids stack)
   - 760px & down = TRUE MOBILE (mobile padding/control/title-bar adjustments)

   IMPORTANT:
   These breakpoints own reusable/shared UI only. A feature may keep a smaller
   internal breakpoint (for example a dense custom control) only when that
   breakpoint solves a feature-specific problem rather than page composition.
   Questionnaire and approved marketing-page mobile compositions remain isolated
   until they are intentionally migrated.
   ============================================================ */

/* GLOBAL BREAKPOINT: NARROW DESKTOP — 901px to 1180px. Coded: 2026-09-13 */
@media (min-width: 901px) and (max-width: 1180px) {
    /* ARCHIVE DESIGN — Campaign/Artist/Song cards use one 2-column narrow-desktop stage. Coded: 2026-09-14 */
    .ss-archive-card-grid{
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }

    /* ARCHIVE TOOLBAR — Campaign-style compact 3-column control grid on narrow desktop. Coded: 2026-09-13 */
    .ss-archive-filter-form--campaign,
.ss-archive-filter-form--artist,
.ss-archive-filter-form--song{
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }

    .ss-archive-search-field{
        grid-column: span 2 !important;
    }

    /* GRID: IDENTITY 3 COLUMN — keep Campaign ratio but remove desktop hard minimums. */
    .ss-row--identity,
.ss-grid--identity-3-column,
.ss-single-row--identity,
body.songshove-single-workspace-page .ss-single-workspace-row,
body.songshove-single-workspace-campaign .ss-v5-workspace-enhanced > .songshove-v4-identity-grid{
        grid-template-columns: minmax(0,.88fr) minmax(0,1.6fr) minmax(0,.98fr) !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /* GRID: MAIN + SIDEBAR — same ratio, no hard sidebar minimum on narrow desktop. */
    .ss-row--main-sidebar,
.ss-grid--main-sidebar{
        grid-template-columns: minmax(0,1.6fr) minmax(0,.8fr) !important;
    }

    /* Every direct child must be allowed to shrink before the stack breakpoint. */
    :where(.ss-row,.ss-grid,.ss-single-row,body.songshove-single-workspace-page .ss-single-workspace-row) > *{
        min-width: 0;
        max-width: 100%;
    }
}

/* GLOBAL BREAKPOINT: RESPONSIVE STACK — 900px and below. Coded: 2026-09-13 */
@media (max-width: 900px) {
    /* ARCHIVE DESIGN — shared archive card grids stack with the global responsive contract. Coded: 2026-09-14 */
    .ss-archive-card-grid{
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    /* ARCHIVE TOOLBAR — shared responsive 2-column stage before true mobile. Coded: 2026-09-13 */
    .ss-archive-filter-form--campaign,
.ss-archive-filter-form--artist,
.ss-archive-filter-form--song{
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }

    .ss-archive-search-field{
        grid-column: 1 / -1 !important;
    }

    /* PAGE WIDTH — Campaign-master mobile gutter becomes site-wide. */
    .ss-page-shell,
.ss-content-width,
.ss-marketing-shell,
body.songshove-single-workspace-page .ss-single-shell.ss-single-page,
body.songshove-single-workspace-page .ss-single-workspace-root,
body.songshove-single-workspace-campaign .songshove-campaign-page,
body.songshove-v4-campaign-page .songshove-campaign-page,
body.songshove-account-workspace-archive .songshove-account-workspace{
        width: calc(100% - (var(--ss-content-gutter-mobile) * 2)) !important;
    }

    /* NAMED GRIDS — one global stack point for all shared grid variants. */
    .ss-row,
.ss-grid,
.ss-single-row,
body.songshove-single-workspace-page .ss-single-workspace-row{
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    /* FORMS — shared multi-column forms stack at the same global point. */
    .ss-form-grid,
body.songshove-single-workspace-page .ss-form-grid{
        grid-template-columns: 1fr !important;
    }

    /* TOOLBARS / ACTION ROWS — reclaim width before any true-mobile tweaks. */
    .ss-control-row,
.ss-toolbar-row,
.ss-edit-actions,
body.songshove-single-workspace-page .ss-edit-actions{
        min-width: 0 !important;
        flex-wrap: wrap !important;
    }
}

/* GLOBAL BREAKPOINT: TRUE MOBILE — 760px and below. Coded: 2026-09-13 */
@media (max-width: 760px) {
    /* ARCHIVE DESIGN — Campaign-master header/card/pagination mobile treatment. Coded: 2026-09-14 */
    .ss-archive-header{
        align-items: stretch !important;
        flex-direction: column !important;
        gap: 16px !important;
        padding: 20px !important;
    }

    .ss-archive-header h1,
.ss-archive-title{
        font-size: var(--ss-type-archive-title-compact) !important;
    }

    .ss-archive-primary-action{
        width: 100% !important;
    }

    .ss-archive-card{
        padding: 15px !important;
    }

    .ss-archive-pagination{
        gap: 8px !important;
        margin-top: 20px !important;
    }

    /* ARCHIVE TOOLBAR — true-mobile stack using the global SongShove breakpoint. Coded: 2026-09-13 */
    .ss-archive-toolbar{
        gap: 12px !important;
        padding: 12px !important;
    }

    .ss-archive-status-tabs{
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 6px !important;
        width: 100% !important;
        overflow: visible !important;
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .ss-archive-status-tab,
.ss-archive-status-tab:last-child{
        min-height: var(--ss-control-height-large) !important;
        border: var(--ss-control-border) !important;
        border-radius: var(--ss-radius-compact-control) !important;
    }

    .ss-archive-status-tab.is-active{
        border-color: var(--ss-blue) !important;
    }

    .ss-archive-filter-form--campaign,
.ss-archive-filter-form--artist,
.ss-archive-filter-form--song{
        grid-template-columns: 1fr !important;
    }

    .ss-archive-search-field,
.ss-archive-result-count{
        grid-column: auto !important;
    }

    .ss-archive-submit{
        width: 100% !important;
        min-height: var(--ss-control-height-large) !important;
    }

    .ss-archive-reset{
        width: auto !important;
        justify-self: start !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .ss-archive-result-count{
        justify-self: start !important;
        margin-top: 0 !important;
        padding-right: 0 !important;
    }

    /* CARDS — Campaign-master compact mobile padding for every shared card shell. */
    .ss-card,
.ss-marketing-card,
.ss-generation-order-card,
body.songshove-single-workspace-page :is(.ss-single-workspace-card,.ss-single-card),
body.songshove-single-workspace-page .ss-single-dashboard-card,
body.songshove-single-workspace-campaign .songshove-v4-identity-grid > .songshove-v4-identity-card{
        padding: var(--ss-card-padding-mobile) !important;
    }

    /* TITLE BAR — Campaign mobile pattern: title first, left/right actions beneath. */
    .ss-single-topbar,
body.songshove-single-workspace-page .ss-single-page > .ss-single-topbar,
body.songshove-single-workspace-campaign .ss-v5-workspace-enhanced > .songshove-v4-topbar{
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
        gap: 10px !important;
        padding: 14px !important;
    }

    .ss-single-topbar-title,
body.songshove-single-workspace-page .ss-single-title,
body.songshove-single-workspace-campaign .songshove-v4-topbar-title{
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        justify-self: stretch !important;
        width: 100% !important;
        max-width: none !important;
        text-align: center !important;
    }

    .ss-single-topbar-left,
body.songshove-single-workspace-page .ss-single-page > .ss-single-topbar > .ss-single-back,
body.songshove-single-workspace-campaign .songshove-v4-topbar-left{
        grid-column: 1 !important;
        grid-row: 2 !important;
        justify-self: stretch !important;
        min-width: 0 !important;
    }

    .ss-single-topbar-actions,
body.songshove-single-workspace-page .ss-single-topbar-right,
body.songshove-single-workspace-campaign .songshove-v4-topbar-right{
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    /* Top-bar actions fill their Campaign-style mobile cells. */
    .ss-single-topbar-left > .ss-button,
.ss-single-topbar-actions > .ss-button,
body.songshove-single-workspace-page .ss-single-page > .ss-single-topbar > .ss-single-back,
body.songshove-single-workspace-page .ss-single-topbar-right > :is(a,button),
body.songshove-single-workspace-campaign .songshove-v4-back-link,
body.songshove-single-workspace-campaign .songshove-v4-topbar-right > :is(a,button){
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Inline Save/Cancel-style action rows stay usable on narrow phones. */
    .ss-edit-actions > :is(a,button),
body.songshove-single-workspace-page .ss-edit-actions > :is(a,button){
        flex: 1 1 auto;
    }

    /* COMING SOON — use the global mobile gutter instead of the old 600px page-specific breakpoint.
       Coded: 2026-09-14 */
    .ss-coming-soon{
        width: calc(100% - (var(--ss-content-gutter-mobile) * 2));
        margin: 28px auto;
        border-radius: 18px;
    }

    /* MODAL — same true-mobile bottom alignment everywhere. */
    .ss-modal{
        align-items: flex-end;
        padding: 12px;
    }
    .ss-modal-dialog{
        width: 100%;
        max-height: calc(100vh - 24px);
        overflow-y: auto;
    }
}
/* SONGSHOVE CARD FOUNDATION — Exact 9px form/action control radii in this stylesheet now use the shared control-radius token so future control design can be managed centrally without changing current geometry. Coded: 2026-09-17 */

/* SONGSHOVE CONTROLS FOUNDATION PASS 4 — Shared exact-value 34px/36px/38px minimum-height ownership for clearly interactive controls only; current geometry is unchanged. Coded: 2026-09-17 */

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL POPUP + BUTTON OWNERSHIP PASS 1
   Purpose: The already-approved Single Song popup/button consolidation now
   lives in the universal shared UI stylesheet instead of song.css. Pass 2 converts the proven Single Song visual roles to reusable ss-* shared
   classes so Single Song and Single Artist can consume the same CSS owner.
   No component values are duplicated into Artist CSS; page-specific classes
   remain only as hooks/content identifiers. No popup behavior is changed here.
   Coded: 2026-09-17
   ============================================================ */
/* ============================================================
   SONGSHOVE — SINGLE SONG POPUP CONSISTENCY PASS 1
   Why: Treat Edit Song Profile as the Single Song edit-popup visual master,
   keep Edit Release + Music Links on the same shell/form/action system, and
   give the Photo/Audio confirmation popups one shared confirmation style.
   Full Song Bio and Audio Scan Results are intentionally excluded.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page .ss-standard-dialog{
    width: min(760px, 100%) !important;
    max-height: min(760px, calc(100vh - 36px)) !important;
}

/* Release Links now uses the same grouped-panel rhythm as Edit Song Profile. */
body.songshove-single-workspace-page .ss-release-links-fields-group{
    gap: 10px;
}

/* Keep Release popup helper actions in the same normal control weight as the
   approved Song edit controls instead of inheriting the older extra-heavy button. */
body.songshove-single-workspace-page .ss-release-links-edit-modal button[data-sss-add-custom-link],
body.songshove-single-workspace-page .ss-release-links-edit-modal button[data-sss-remove-custom-link]{
    font-weight: var(--ss-weight-bold) !important;
}

/* Photo + Audio confirmation popups intentionally remain compact confirmations,
   but they now share one explicit Single Song confirmation ownership class. */
body.songshove-single-workspace-page .ss-confirm-dialog{
    width: min(520px, 100%);
}

/* User-approved confirmation-button refinement: same Cancel/Continue styling,
   but normal-weight text instead of the older bold treatment. */
body.songshove-single-workspace-page .ss-confirm-actions .songshove-v18-rhymebook-cancel,
body.songshove-single-workspace-page .ss-confirm-actions .songshove-v18-rhymebook-save{
    font-weight: var(--ss-weight-regular);
}

/* ============================================================
   SONGSHOVE — SINGLE SONG POPOVER CONSOLIDATION PASS 2
   Why: Give Full Song Bio and Credits + People one shared informational
   popover shell, keep Release Links on the same popover foundation as a
   compact menu variant, and move Hashtag Bank onto the approved compact
   confirmation shell/actions. No popup behavior or data logic changes.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page .ss-popover-shell{
    background: var(--ss-surface-white);
    border: 1px solid var(--ss-border-popover);
    box-sizing: border-box;
}

/* Bio + Credits share one informational shell; only their content/width differs. */
body.songshove-single-workspace-page .ss-info-popover{
    padding: 12px;
    border-radius: 12px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .20);
}

body.songshove-single-workspace-page .sss-song-credit-popover.ss-info-popover{
    width: min(230px, calc(100vw - 20px));
}

/* Release Links stays compact/anchored, but now explicitly participates in the
   same shared popover foundation instead of owning a separate surface/border. */
body.songshove-single-workspace-page .ss-popover-menu{
    border-color: var(--ss-border-release-popover);
    border-radius: 10px;
}

/* Hashtag Bank uses the approved compact-confirmation shell and normal-weight
   confirmation actions while preserving its existing copy/close behavior. */
body.songshove-single-workspace-page .sss-song-hashtag-dialog.ss-confirm-dialog{
    width: min(520px, 100%);
}

body.songshove-single-workspace-page .sss-song-hashtag-dialog .ss-confirm-actions .songshove-v18-rhymebook-cancel,
body.songshove-single-workspace-page .sss-song-hashtag-dialog .ss-confirm-actions .songshove-v18-rhymebook-save{
    font-weight: var(--ss-weight-regular);
}

/* ============================================================
   SONGSHOVE V8.5 — SINGLE SONG POPUP FAMILY CONSOLIDATION PASS 3
   Why: Reduce Single Song popup styling to four intentional families:
   Edit/Form, Compact/Read-only, Popover, and Audio Scan special.
   Existing data hooks, save/copy/link/history behavior, and Audio Scan
   presentation are preserved. Coded: 2026-09-17
   ============================================================ */

/* EDIT / FORM FAMILY
   Song Profile, Release + Music Links, and Link MusicBook share the approved
   Song Profile dialog width/chrome and form-control rhythm. */
/* SONGSHOVE SINGLE SONG POPUP CONSISTENCY — EDIT/FORM VIEWPORT CLEARANCE
 * Gives the shared Edit/Form modal a little more top/bottom viewport clearance
 * while preserving its 760px width and internal scrolling behavior.
 * Coded: 2026-09-17
 */
body.songshove-single-workspace-page .ss-edit-form-dialog{
    width: min(760px, 100%) !important;
    max-height: min(760px, calc(100vh - 64px)) !important;
}

body.songshove-single-workspace-page .ss-musicbook-form-dialog .songshove-v18-rhymebook-search{
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 0 10px !important;
    padding: var(--ss-control-padding-field) !important;
    background: var(--ss-control-surface-soft) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-control-radius) !important;
    color: var(--ss-control-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.25 !important;
    box-shadow: none !important;
}

body.songshove-single-workspace-page .ss-musicbook-form-dialog .songshove-v18-rhymebook-search:focus{
    border-color: var(--ss-control-focus-border) !important;
    box-shadow: var(--ss-control-focus-ring) !important;
    background: var(--ss-control-surface) !important;
}

/* Keep MusicBook choices visually inside the same soft grouped-panel system
   used by the approved Song Profile edit modal. */
body.songshove-single-workspace-page .ss-musicbook-form-dialog .songshove-v18-rhymebook-options{
    padding: 10px;
    border: 1px solid var(--ss-border);
    border-radius: 12px;
    background: var(--ss-soft);
}

body.songshove-single-workspace-page .ss-musicbook-form-dialog .songshove-v18-rhymebook-option{
    background: var(--ss-surface-white);
    font-weight: var(--ss-weight-strong);
}

/* Match the master edit modal action sizing/chrome while preserving the
   existing MusicBook button handlers and button types. */
body.songshove-single-workspace-page .ss-edit-form-actions{
    position: sticky;
    bottom: -18px;
    z-index: 2;
    margin: 12px -18px -18px !important;
    padding: 12px 18px 18px;
    border-top: 1px solid var(--ss-border-soft);
    background: var(--ss-surface-white);
}

body.songshove-single-workspace-page .ss-edit-form-cancel,
body.songshove-single-workspace-page .ss-edit-form-save{
    min-height: var(--ss-control-height-compact) !important;
    margin: 0 !important;
    padding: var(--ss-control-padding-action) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1 !important;
}

body.songshove-single-workspace-page .ss-edit-form-cancel{
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    color: var(--ss-control-text) !important;
}

body.songshove-single-workspace-page .ss-edit-form-cancel:hover,
body.songshove-single-workspace-page .ss-edit-form-cancel:focus-visible{
    background: var(--ss-control-surface-soft) !important;
    color: var(--ss-blue-dark) !important;
}

body.songshove-single-workspace-page .ss-edit-form-save,
body.songshove-single-workspace-page .ss-edit-form-create{
    background: var(--ss-button-primary-bg) !important;
    border: 1px solid var(--ss-blue) !important;
    color: var(--ss-button-primary-text) !important;
}

body.songshove-single-workspace-page .ss-edit-form-save:hover,
body.songshove-single-workspace-page .ss-edit-form-save:focus-visible,
body.songshove-single-workspace-page .ss-edit-form-create:hover,
body.songshove-single-workspace-page .ss-edit-form-create:focus-visible{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
}

/* COMPACT / READ-ONLY FAMILY
   Confirmations, Hashtag Bank, linked MusicBook, Campaign History,
   Linked Activity, and Receipts use one compact shell. */
body.songshove-single-workspace-page .ss-compact-modal .ss-confirm-dialog,
body.songshove-single-workspace-page .ss-readonly-dialog{
    width: min(520px, 100%) !important;
}

/* Old list dialogs previously owned a wider 560px shell. Once they join the
   compact/read-only family, list content remains scrollable inside 520px. */
body.songshove-single-workspace-page .ss-readonly-dialog.ss-list-dialog{
    width: min(520px, 100%) !important;
}

/* Keep compact/read-only headings and X control on the same chrome already
   approved for Photo/Audio confirmation and Hashtag Bank. */
body.songshove-single-workspace-page .ss-readonly-dialog > h2,
body.songshove-single-workspace-page .ss-confirm-dialog > h2{
    margin-right: 32px !important;
}

/* POPOVER FAMILY remains the accepted Pass 2 Bio/Credits foundation with
   Release Links as a compact anchored-menu variant. Audio Scan is deliberately
   excluded from every selector in this pass. */

/* ============================================================
   SONGSHOVE V8.5 — SINGLE SONG BUTTON CONSISTENCY PASS 1
   Why: Make the six approved page-level actions use the exact same neutral
   Single Song topbar button chrome, and give both Single Song pencil editors
   one explicit shared visual owner. Placement and behavior remain local.
   Scope: Single Song page only.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page .ss-page-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-prominent) !important;
    margin: 0 !important;
    padding: 9px 13px !important;
    background: var(--ss-control-surface) !important;
    border: 1px solid var(--ss-border-action-neutral) !important;
    border-radius: var(--ss-control-radius) !important;
    box-shadow: var(--ss-shadow-action-soft) !important;
    color: var(--ss-text-ink) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-body) !important;
    font-weight: var(--ss-weight-bold) !important;
    line-height: 1.2 !important;
    text-decoration: var(--ss-interactive-decoration) !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
    transition: border-color .15s ease, box-shadow .15s ease, color .15s ease, transform .15s ease !important;
}

body.songshove-single-workspace-page .ss-page-action:hover,
body.songshove-single-workspace-page .ss-page-action:focus-visible{
    background: var(--ss-control-surface) !important;
    border-color: var(--ss-border-hover-strong) !important;
    box-shadow: var(--ss-shadow-action-hover) !important;
    color: var(--ss-blue) !important;
    transform: translateY(-1px) !important;
}

/* Both Single Song pencils share one visual class. The bio-row pencil keeps
   only its existing placement margin through .sss-song-profile-bio-edit. */
body.songshove-single-workspace-page .ss-pencil-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 27px !important;
    width: 27px !important;
    min-width: 27px !important;
    height: 27px !important;
    min-height: var(--ss-control-height-compact-action) !important;
    padding: 0 !important;
    background: var(--ss-control-surface-soft) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-blue) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-compact) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
    opacity: 1 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

body.songshove-single-workspace-page .ss-pencil-action:hover,
body.songshove-single-workspace-page .ss-pencil-action:focus-visible,
body.songshove-single-workspace-page .ss-pencil-action[aria-expanded="true"]{
    color: var(--ss-blue-dark) !important;
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-blue-border) !important;
    transform: translateY(-1px) !important;
}


/* ============================================================
   SONGSHOVE V8.5 — SINGLE SONG BUTTON CONSISTENCY PASS 2
   Why: Reduce Single Song button drift by giving the approved button groups
   one visual owner per role: secondary actions, primary popup actions,
   popup secondary actions, compact utility/danger actions, audio/tool actions,
   and normal popup X controls. Topbar actions and pencils remain owned by
   Pass 1. Audio Scan's special X is deliberately excluded.
   Scope: Single Song page only.
   Coded: 2026-09-17
   ============================================================ */

/* GROUP 3 — NORMAL SECONDARY ACTIONS
   View/Link/Open style actions use one neutral compact button. */
body.songshove-single-workspace-page .ss-secondary-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-standard) !important;
    padding: 7px 10px !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-control-radius) !important;
    color: var(--ss-blue) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.15 !important;
    text-decoration: var(--ss-interactive-decoration) !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-secondary-action:hover,
body.songshove-single-workspace-page .ss-secondary-action:focus-visible{
    background: var(--ss-control-surface-soft) !important;
    border-color: var(--ss-border-hover-strong) !important;
    color: var(--ss-blue-dark) !important;
}

/* GROUP 4 — PRIMARY POPUP ACTIONS
   Save / Continue / Copy All / Create use one blue primary action. */
body.songshove-single-workspace-page .ss-primary-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-standard) !important;
    padding: 7px 11px !important;
    background: var(--ss-button-primary-bg) !important;
    border: 1px solid var(--ss-blue) !important;
    border-radius: var(--ss-control-radius) !important;
    color: var(--ss-button-primary-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.15 !important;
    text-decoration: var(--ss-interactive-decoration) !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-primary-action:hover,
body.songshove-single-workspace-page .ss-primary-action:focus-visible{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
    color: var(--ss-button-primary-text) !important;
}

/* GROUP 5 — POPUP SECONDARY ACTIONS
   Cancel and Close use the same neutral companion button. */
body.songshove-single-workspace-page .ss-popup-secondary-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-standard) !important;
    padding: 7px 11px !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-control-radius) !important;
    color: var(--ss-control-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-control) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.15 !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-popup-secondary-action:hover,
body.songshove-single-workspace-page .ss-popup-secondary-action:focus-visible{
    background: var(--ss-control-surface-soft) !important;
    border-color: var(--ss-border-hover-strong) !important;
    color: var(--ss-blue-dark) !important;
}

/* GROUP 6 — COMPACT UTILITY / DESTRUCTIVE ACTIONS
   Geometry stays common; destructive meaning is a color variant. */
body.songshove-single-workspace-page .ss-utility-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-icon) !important;
    padding: 5px 8px !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-control-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.1 !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-utility-action:hover,
body.songshove-single-workspace-page .ss-utility-action:focus-visible{
    background: var(--ss-control-surface-soft) !important;
    border-color: var(--ss-border-hover-strong) !important;
}
body.songshove-single-workspace-page .ss-utility-action--danger{
    background: var(--ss-danger-soft) !important;
    border-color: var(--ss-danger-border) !important;
    color: var(--ss-danger) !important;
}
body.songshove-single-workspace-page .ss-utility-action--danger:hover,
body.songshove-single-workspace-page .ss-utility-action--danger:focus-visible{
    background: var(--ss-danger-soft) !important;
    border-color: var(--ss-danger) !important;
    color: var(--ss-danger-strong) !important;
}

/* GROUP 7 — AUDIO / TOOL ACTIONS
   Change/Add Audio and Repeat share one compact tool-button treatment. */
body.songshove-single-workspace-page .ss-tool-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    min-height: var(--ss-control-height-compact) !important;
    padding: 6px 9px !important;
    background: var(--ss-blue-soft) !important;
    border: 1px solid var(--ss-blue-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-blue) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.1 !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-tool-action:hover,
body.songshove-single-workspace-page .ss-tool-action:focus-visible,
body.songshove-single-workspace-page .ss-tool-action[aria-pressed="true"]{
    background: var(--ss-control-surface) !important;
    border-color: var(--ss-blue) !important;
    color: var(--ss-blue-dark) !important;
}
body.songshove-single-workspace-page .ss-tool-action:disabled{
    opacity: var(--ss-control-disabled-opacity) !important;
    cursor: var(--ss-control-disabled-cursor) !important;
}

/* GROUP 8 — NORMAL POPUP X
   All normal Single Song modal/popover X controls share this exact chrome.
   Audio Scan is intentionally excluded because it keeps its special shell. */
body.songshove-single-workspace-page .ss-popup-close{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--ss-control-height-icon) !important;
    min-width: var(--ss-control-height-icon) !important;
    height: var(--ss-control-height-icon) !important;
    min-height: var(--ss-control-height-icon) !important;
    padding: 0 !important;
    background: var(--ss-control-surface-soft) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    color: var(--ss-muted) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-card) !important;
    font-weight: var(--ss-weight-regular) !important;
    line-height: 1 !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-popup-close:hover,
body.songshove-single-workspace-page .ss-popup-close:focus-visible{
    background: var(--ss-blue-soft) !important;
    border-color: var(--ss-blue-border) !important;
    color: var(--ss-blue-dark) !important;
}


/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL UI ROLE CLASSES PASS 2
   The accepted Single Song popup/button roles now use reusable ss-* class
   names. Single Song and Single Artist consume these exact same declarations;
   no duplicate Artist visual rule set is introduced. Coded: 2026-09-17
   ============================================================ */


/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL INLINE + CARD PRIMARY ACTIONS
   Why: Give compact actions embedded inside cards/list rows and the main
   in-card CTA one shared visual owner so Single Song, Single Artist,
   Single Campaign and Single RhymeBook can reuse them without page CSS.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page .ss-inline-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-icon) !important;
    padding: 4px 7px !important;
    background: var(--ss-control-surface) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-control-radius-tight) !important;
    color: var(--ss-blue) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.1 !important;
    text-decoration: var(--ss-interactive-decoration) !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-inline-action:hover,
body.songshove-single-workspace-page .ss-inline-action:focus-visible{
    background: var(--ss-control-surface-soft) !important;
    border-color: var(--ss-border-hover-strong) !important;
    color: var(--ss-blue-dark) !important;
}

body.songshove-single-workspace-page .ss-card-primary-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-standard) !important;
    padding: var(--ss-control-padding-standard-action) !important;
    background: var(--ss-button-primary-bg) !important;
    border: 1px solid var(--ss-blue) !important;
    border-radius: var(--ss-control-radius) !important;
    color: var(--ss-button-primary-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-semibold) !important;
    line-height: 1.15 !important;
    text-decoration: var(--ss-interactive-decoration) !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-card-primary-action:hover,
body.songshove-single-workspace-page .ss-card-primary-action:focus-visible{
    background: var(--ss-button-primary-hover-bg) !important;
    border-color: var(--ss-blue-dark) !important;
    color: var(--ss-button-primary-text) !important;
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL CONTENT TRIGGER + DOCUMENT/FOOTER ACTIONS
   Why: Finish the remaining Single Song / Single Artist action ownership so
   clickable bio previews, document controls, and the complete bottom action
   area share one universal visual system. Page files supply only text/URLs.
   Audio Scan controls and audio-player artwork are deliberately excluded.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page .ss-content-trigger{
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--ss-muted) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-body) !important;
    font-weight: var(--ss-weight-regular) !important;
    line-height: 1.45 !important;
    text-align: left !important;
    white-space: pre-line !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    appearance: var(--ss-control-native-appearance) !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-content-trigger:hover,
body.songshove-single-workspace-page .ss-content-trigger:focus-visible{
    color: var(--ss-text-slate) !important;
    background: transparent !important;
    text-decoration: underline !important;
    text-decoration-color: #BFDBFE !important;
    text-underline-offset: 2px !important;
    outline: none !important;
}

body.songshove-single-workspace-page .ss-workspace-footer-actions{
    display: grid !important;
    gap: 10px !important;
    margin: 12px 0 10px !important;
}
body.songshove-single-workspace-page .ss-workspace-footer-primary{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 3px 0 0 !important;
}
body.songshove-single-workspace-page .ss-workspace-footer-docs{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 0 !important;
    padding-top: 10px !important;
    border-top: 1px solid var(--ss-divider-soft) !important;
}
body.songshove-single-workspace-page .ss-document-action{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-icon) !important;
    padding: 5px 9px !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-control-radius-tight) !important;
    background: var(--ss-control-surface-soft) !important;
    color: var(--ss-control-text) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.15 !important;
    text-decoration: var(--ss-interactive-decoration) !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-sizing: border-box !important;
}
body.songshove-single-workspace-page .ss-document-action:hover,
body.songshove-single-workspace-page .ss-document-action:focus-visible{
    border-color: var(--ss-blue-border) !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue-dark) !important;
}
@media (max-width: 760px) {
    body.songshove-single-workspace-page .ss-workspace-footer-primary,
body.songshove-single-workspace-page .ss-workspace-footer-docs{
        width: 100% !important;
    }
    body.songshove-single-workspace-page .ss-workspace-footer-primary .ss-page-action,
body.songshove-single-workspace-page .ss-workspace-footer-docs .ss-document-action{
        flex: 1 1 calc(50% - 6px) !important;
    }
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SONG + ARTIST FEATURE COMPONENTS PASS 1
   Why: Single Song and Single Artist use one visual owner for Audio Scan,
   MusicBook/Linked MusicBook, Campaign-style data grids, and the shared
   audio-player shell/controls. Actual audio-player artwork/photo selectors
   are deliberately excluded and remain page-owned.
   Coded: 2026-09-17
   ============================================================ */
/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SONG + ARTIST TOOL-SECTION OWNER REPAIR
   Coded: 2026-09-18
   Why: Pass 16 legacy-selector cleanup accidentally left this block with an
   unclosed comment and removed the live tool-section selectors. Restore the
   proven universal Song/Artist owners without changing component values.
   ============================================================ */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-data-card .sss-song-audio-tool-section,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-data-card .sss-song-audio-tool-section {
    margin: 0;
    border: 0;
    border-top: 1px solid var(--ss-border-ui-secondary);
    border-radius: 0;
    background: var(--ss-card-bg);
}

/* 2026-09-18: Audio Scan remains inside the row-1 Song Audio card on both Single Song and Single Artist. */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-data-card .sss-song-audio-scan-section,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-data-card .sss-song-audio-scan-section {
    padding: 11px 10px 12px;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-stack,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-stack{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    min-width: 0;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-stack .songshove-v71-tool-card,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-stack .songshove-v71-tool-card{
    min-width: 0 !important;
    margin: 0 !important;
    padding: 9px !important;
    background: var(--ss-soft) !important;
    border: 1px solid var(--ss-border-tool) !important;
    border-radius: 11px !important;
    box-shadow: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-stack .songshove-v71-tool-heading,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-stack .songshove-v71-tool-heading{
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 6px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-stack .songshove-v71-tool-kicker,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-stack .songshove-v71-tool-kicker{
    display: block;
    margin-bottom: 3px;
    color: var(--ss-muted);
    font-size: var(--ss-type-micro);
    font-weight: var(--ss-weight-heavy);
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-stack .songshove-v71-tool-heading strong,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-stack .songshove-v71-tool-heading strong{
    display: block;
    color: var(--ss-text);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.25;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-tool-heading,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-player,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-empty,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-tool-heading,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-player,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-empty{
    grid-column: 2 !important;
    min-width: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-tool-heading,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-tool-heading{
    grid-row: 1 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: end !important;
    gap: 8px !important;
    margin: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v9-player-title-window,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v9-player-title-window{
    width: 96px !important;
    max-width: 96px !important;
    margin-top: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    mask-image: linear-gradient(to right, #000 0%, #000 92%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, #000 0%, #000 92%, transparent 100%);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v9-player-title-text,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v9-player-title-text{
    display: inline-block !important;
    min-width: max-content !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-support) !important;
    font-weight: var(--ss-weight-850) !important;
    line-height: 1.2 !important;
    will-change: transform;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v9-player-title-text.is-scrolling,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v9-player-title-text.is-scrolling{
    animation: sssSongCampaignPlayerTitleScroll 7s ease-in-out infinite alternate !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions{
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions form,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions form{
    display: block !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-tool-button,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-tool-button{
    appearance: var(--ss-control-native-appearance) !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    min-height: var(--ss-control-height-icon) !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--ss-blue-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
    font-size: 0 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    cursor: var(--ss-interactive-cursor) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-tool-button > span:first-child,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-tool-button > span:first-child{
    display: block !important;
    font-size: var(--ss-type-subheading) !important;
    line-height: 1 !important;
    font-weight: var(--ss-weight-bold) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-tool-button > span:last-child,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-tool-button > span:last-child{
    display: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-audio-remove,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-audio-remove{
    border-color: var(--ss-danger-border) !important;
    background: var(--ss-surface-danger-subtle) !important;
    color: var(--ss-danger-strong) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-tool-button:hover,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-tool-button:focus-visible,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v9-repeat-button.is-active,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-tool-button:hover,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-tool-button:focus-visible,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v9-repeat-button.is-active{
    border-color: var(--ss-control-focus-border) !important;
    background: var(--ss-blue) !important;    color: var(--ss-text-inverse) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-audio-remove:hover,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-audio-remove:focus-visible,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-audio-remove:hover,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-audio-remove:focus-visible{
    border-color: #FCA5A5 !important;
    background: var(--ss-danger-soft) !important;
    color: var(--ss-danger-strong) !important;
}

/* Shared disabled-control interaction state; exact existing opacity/cursor preserved. Coded: 2026-09-17 */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v71-audio-actions .songshove-v71-tool-button:disabled,
/* Shared disabled-control interaction state; exact existing opacity/cursor preserved. Coded: 2026-09-17 */
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v71-audio-actions .songshove-v71-tool-button:disabled{
    opacity: var(--ss-control-disabled-opacity) !important;
    cursor: var(--ss-control-disabled-cursor) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-player,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-empty,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-player,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-empty{
    grid-row: 2 !important;
    margin: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-player,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-player{
    padding: 0 !important;
    background: transparent !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-player audio,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-player audio{
    display: block !important;
    width: 100% !important;
    height: 32px !important;
    margin: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-empty,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-empty{
    min-height: 32px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    padding: 6px 8px !important;
    border: 1px dashed var(--ss-border) !important;
    border-radius: 9px !important;
    background: var(--ss-card-bg) !important;
    color: var(--ss-muted) !important;
    text-align: left !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-empty > span,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-empty > span{
    color: var(--ss-blue) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-empty strong,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-empty strong{
    color: var(--ss-text) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-850) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card > .songshove-v71-audio-empty small,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card > .songshove-v71-audio-empty small{
    display: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-campaign-data-grid,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-campaign-data-grid{
    gap: 6px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-campaign-data-grid > div,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-campaign-data-grid > div{
    padding: 7px 8px !important;
    border: 1px solid #E2E9F2 !important;
    border-radius: 8px !important;
    background: var(--ss-surface-white) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-campaign-data-grid small,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-campaign-data-grid small{
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-nano) !important;
    font-weight: var(--ss-weight-heavy) !important;
    letter-spacing: .06em !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-campaign-data-grid strong,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-campaign-data-grid strong{
    display: block !important;
    margin-top: 2px !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-meta) !important;
    line-height: 1.25 !important;
    font-weight: var(--ss-weight-heavy) !important;
}

/* MusicBook/Lyrics — Campaign card pattern, Single Song create-entry action. */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading,
/* MusicBook/Lyrics — Campaign card pattern,
Single Song create-entry action. */
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading > div,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading > div{
    min-width: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading strong,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading strong{
    display: block !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-meta) !important;
    line-height: 1.25 !important;
    font-weight: var(--ss-weight-heavy) !important;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-link-button{
    min-height: var(--ss-control-height-icon) !important;
    padding: var(--ss-control-padding-compact) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    background: var(--ss-control-surface) !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-micro) !important;
    line-height: 1 !important;
    font-weight: var(--ss-weight-heavy) !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-link-button:hover,
body.songshove-single-workspace-page .songshove-v18-rhymebook-link-button:focus-visible{
    border-color: var(--ss-blue-border) !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue-dark) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v18-rhymebook-linked-list,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v18-rhymebook-linked-list{
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;
    min-width: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v18-rhymebook-chip,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v18-rhymebook-chip{
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 5px 7px !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 8px !important;
    background: var(--ss-surface-white) !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-micro) !important;
    line-height: 1.2 !important;
    font-weight: var(--ss-weight-850) !important;
    text-decoration: var(--ss-interactive-decoration)!important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v18-rhymebook-chip span,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v18-rhymebook-chip span{
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v18-rhymebook-chip small,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v18-rhymebook-chip small{
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-nano) !important;
    font-weight: var(--ss-weight-heavy) !important;
    text-transform: uppercase !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v18-rhymebook-empty,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v18-rhymebook-empty{
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-micro) !important;
    line-height: 1.3 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-rhymebook-row,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-rhymebook-row{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-rhymebook-row > strong,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-rhymebook-row > strong{
    color: var(--ss-text) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-heavy) !important;
}

/* Audio Scan compact card — copied from the finished Campaign visual pattern. */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-complete,
/* Audio Scan compact card — copied from the finished Campaign visual pattern. */
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-complete{
    position: relative !important;
    overflow: hidden !important;
    border-color: var(--ss-border-state-success-complete) !important;
    background: linear-gradient(180deg,#FFFFFF 0%,#FBFFFC 100%) !important;
    animation: sssSongAudioScanReveal .72s cubic-bezier(.2,.8,.2,1) both;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scanned-kicker,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scanned-kicker{
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    color: var(--ss-blue) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scanned-check,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scanned-check{
    width: 15px !important;
    height: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 15px !important;
    border-radius: 50% !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact{
    position: relative !important;
    display: grid !important;
    grid-template-columns: 26px minmax(0,1fr) auto !important;
    gap: 8px !important;
    align-items: center !important;
    min-width: 0 !important;
    padding: 7px 8px !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 10px !important;
    background: var(--ss-soft) !important;
    overflow: hidden !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact::after,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact::after{
    content: "";
    position: absolute;
    inset: -60% -45%;
    pointer-events: none;
    background: linear-gradient(105deg,transparent 43%,rgba(37,99,235,.10) 50%,transparent 57%);
    transform: translateX(-60%);
    animation: sssSongAudioScanCompactSweep 3.8s ease-in-out 1s infinite;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact-icon,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact-icon{
    width: 26px !important;
    height: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-compact) !important;
    font-weight: var(--ss-weight-heavy) !important;
    animation: sssSongAudioScanCheckPulse 2.8s ease-in-out infinite;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact-copy,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact-copy{
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact-copy strong,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact-copy strong{
    color: var(--ss-text) !important;
    font-size: var(--ss-type-label) !important;
    line-height: 1.2 !important;
    font-weight: var(--ss-weight-heavy) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact-copy span,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact-copy span{
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-meta) !important;
    line-height: 1.2 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-view,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-view{
    position: relative !important;
    z-index: 1 !important;
    min-height: 28px !important;
    padding: 6px 9px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: var(--ss-blue) !important;    color: var(--ss-text-inverse) !important;
    font-size: var(--ss-type-meta) !important;
    line-height: 1 !important;
    font-weight: var(--ss-weight-heavy) !important;
    cursor: var(--ss-interactive-cursor) !important;
    white-space: nowrap !important;
    text-decoration: var(--ss-interactive-decoration)!important;
    box-shadow: 0 4px 12px rgba(37,99,235,.18) !important;
    transition: background .16s ease, transform .16s ease, box-shadow .16s ease;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-view:hover,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-view:focus-visible,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-view:hover,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-view:focus-visible{
    background: var(--ss-blue-dark) !important;    transform: translateY(-1px) !important;
    box-shadow: 0 6px 16px rgba(37,99,235,.24) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-audio-scan-empty-compact::after,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-audio-scan-empty-compact::after{
    display: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-audio-scan-empty-compact .songshove-v8-audio-scan-compact-icon,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-audio-scan-empty-compact .songshove-v8-audio-scan-compact-icon{
    animation: none !important;
}

/* Audio Scan modal — Campaign modal layout, with optional multi-Campaign scan tabs. */
body.songshove-single-workspace-page.songshove-song-single-account.songshove-v8-audio-scan-modal-open,
/* Audio Scan modal — Campaign modal layout,
with optional multi-Campaign scan tabs. */
body.songshove-single-workspace-page.songshove-artist-single-account.songshove-v8-audio-scan-modal-open{
    overflow: hidden !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal[hidden],
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal[hidden]{
    display: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal{
    position: fixed !important;
    inset: 0 !important;
    z-index: 100000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity .16s ease, visibility .16s ease;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal.is-open,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal.is-open{
    opacity: 1 !important;
    visibility: visible !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal-backdrop,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal-backdrop{
    position: absolute !important;
    inset: 0 !important;
    background: rgba(15,23,42,.46) !important;
    backdrop-filter: blur(2px);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-dialog,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-dialog{
    position: relative !important;
    width: min(920px,calc(100vw - 32px)) !important;
    max-height: min(820px,calc(100vh - 36px)) !important;
    overflow: auto !important;
    padding: 18px !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 14px !important;
    background: var(--ss-surface-white) !important;
    box-shadow: 0 22px 60px rgba(15,23,42,.22) !important;
    transform: translateY(10px) scale(.985);
    transition: transform .18s cubic-bezier(.2,.8,.2,1);
    outline: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal.is-open .songshove-v8-audio-scan-dialog,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal.is-open .songshove-v8-audio-scan-dialog{
    transform: translateY(0) scale(1) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal-head,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal-head{
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin-bottom: 12px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal-head h3,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal-head h3{
    margin: 3px 0 0 !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-page) !important;
    line-height: 1.15 !important;
    font-weight: var(--ss-weight-heavy) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-close,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-close{
    width: 28px !important;
    height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 28px !important;
    padding: 0 !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    background: var(--ss-soft) !important;
    color: var(--ss-muted-strong) !important;
    font-size: var(--ss-type-card) !important;
    line-height: 1 !important;
    font-weight: var(--ss-weight-strong) !important;
    cursor: var(--ss-interactive-cursor) !important;
    box-shadow: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-summary,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-summary{
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 5px !important;
    margin-bottom: 10px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-summary > span,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-summary > span{
    min-width: 0 !important;
    padding: 5px 6px !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 8px !important;
    background: var(--ss-soft) !important;
    text-align: center !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-summary b,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-summary b{
    display: block !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-label) !important;
    line-height: 1.15 !important;
    font-weight: var(--ss-weight-heavy) !important;
    overflow-wrap: anywhere !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-summary small,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-summary small{
    display: block !important;
    margin-top: 2px !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-nano) !important;
    line-height: 1 !important;
    font-weight: var(--ss-weight-heavy) !important;
    letter-spacing: .07em !important;
    text-transform: uppercase !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-result,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-result{
    display: grid !important;
    gap: 3px !important;
    color: var(--ss-muted-strong) !important;
    font-size: var(--ss-type-meta) !important;
    line-height: 1.32 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row{
    display: grid !important;
    grid-template-columns: 22px 98px minmax(0,1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    min-width: 0 !important;
    padding: 9px 0 !important;
    border-top: 1px solid var(--ss-divider-soft) !important;
    font-size: var(--ss-type-compact) !important;
    line-height: 1.45 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row:first-child,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row:first-child{
    border-top: 0 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-icon,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-icon{
    width: 15px !important;
    height: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-micro) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row > strong,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row > strong{
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-label) !important;
    line-height: 1.3 !important;
    font-weight: var(--ss-weight-heavy) !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row > span:last-child,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row > span:last-child{
    min-width: 0 !important;
    color: var(--ss-muted-strong) !important;
    overflow-wrap: anywhere !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-tabs,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-tabs{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 0 0 12px !important;
    padding: 0 0 10px !important;
    border-bottom: 1px solid var(--ss-divider-soft) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-tabs button,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-tabs button{
    min-height: var(--ss-control-height-compact) !important;
    max-width: 240px !important;
    padding: var(--ss-control-padding-compact) !important;
    border: var(--ss-control-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    background: var(--ss-control-surface-soft) !important;
    color: var(--ss-muted-strong) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-heavy) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-tabs button.is-active,
body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-tabs button:hover,
body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-tabs button:focus-visible,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-tabs button.is-active,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-tabs button:hover,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-tabs button:focus-visible{
    border-color: var(--ss-blue-border) !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-panel[hidden],
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-panel[hidden]{
    display: none !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-campaign-name,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-campaign-name{
    margin: 0 0 8px !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-body) !important;
    line-height: 1.3 !important;
    font-weight: var(--ss-weight-heavy) !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-no-report,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-no-report{
    margin: 0 !important;
    padding: 10px !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 9px !important;
    background: var(--ss-soft) !important;
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-label) !important;
    line-height: 1.45 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-modal-actions,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-modal-actions{
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 10px !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .sss-song-audio-scan-modal-actions a,
body.songshove-single-workspace-page.songshove-artist-single-account .sss-song-audio-scan-modal-actions a{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--ss-control-height-compact) !important;
    padding: 6px 10px !important;
    border: 1px solid var(--ss-blue-border) !important;
    border-radius: 8px !important;
    background: var(--ss-blue-soft) !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-heavy) !important;
    text-decoration: var(--ss-interactive-decoration)!important;
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .ss-single-audio-player-card,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .ss-single-audio-player-card{
        grid-template-columns: 72px minmax(0, 1fr) !important;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v9-player-title-window,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v9-player-title-window{
        width: 82px !important;
        max-width: 82px !important;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact{
        grid-template-columns: 24px minmax(0,1fr) !important;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-view,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-view{
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-dialog,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-dialog{
        padding: 14px !important;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal .songshove-v8-audio-scan-row{
        grid-template-columns: 20px 78px minmax(0,1fr) !important;
        gap: 7px !important;
        font-size: var(--ss-type-support) !important;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-rhymebook-row,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .sss-song-musicbook-campaign-card .songshove-v18-rhymebook-heading,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-rhymebook-row{
        align-items: flex-start !important;
        flex-direction: column !important;
    }
}

@media (prefers-reduced-motion: reduce) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v9-player-title-text.is-scrolling,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-complete,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact::after,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-song-artist-layout .songshove-v8-audio-scan-compact-icon,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v9-player-title-text.is-scrolling,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-complete,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact::after,
body.songshove-single-workspace-page.songshove-artist-single-account .ss-single-shell .songshove-v8-audio-scan-compact-icon{
        animation: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-dialog,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v8-audio-scan-modal,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-dialog,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v8-audio-scan-modal{
        transition: none !important;
    }
}

/* ============================================================
   SONGSHOVE V8.4 — SINGLE SONG MUSICBOOK POPUP EXACT CAMPAIGN MATCH
   Why: Copy the approved Single Campaign MusicBook/Lyrics popup styling
   exactly onto Single Song. Only page scoping changes; sizes, font sizes,
   spacing, colors, controls and responsive behavior stay identical.
   Coded: 2026-09-14
   ============================================================ */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-modal[hidden],
/* ============================================================
   SONGSHOVE V8.4 — SINGLE SONG MUSICBOOK POPUP EXACT CAMPAIGN MATCH
   Why: Copy the approved Single Campaign MusicBook/Lyrics popup styling
   exactly onto Single Song. Only page scoping changes; sizes,
font sizes,
spacing,
colors,
controls and responsive behavior stay identical.
   Coded: 2026-09-14
   ============================================================ */
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-modal[hidden]{
    display: none !important;
}

body.songshove-v18-rhymebook-modal-open{
    overflow: hidden;
}

/*
 * SONGSHOVE V8.4 — SINGLE SONG MUSICBOOK MODAL EXACT CAMPAIGN LAYER
 * Why: Copy the approved Campaign popup layer exactly on Single Song so the
 * popup has the same viewport position, stacking, size and spacing while only
 * the Song-specific save action differs.
 * Coded: 2026-09-14
 */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-modal,
/*
 * SONGSHOVE V8.4 — SINGLE SONG MUSICBOOK MODAL EXACT CAMPAIGN LAYER
 * Why: Copy the approved Campaign popup layer exactly on Single Song so the
 * popup has the same viewport position,
stacking,
size and spacing while only
 * the Song-specific save action differs.
 * Coded: 2026-09-14
 */
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-modal{
    position: fixed !important;
    z-index: 2147483000 !important;
    inset: 0 !important;
    display: grid;
    place-items: center;
    padding: 18px;
    isolation: isolate;
    box-sizing: border-box;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-backdrop,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-backdrop{
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    backdrop-filter: blur(2px);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-dialog,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-dialog{
    position: relative;
    z-index: 1;
    width: min(520px, 100%);
    max-height: min(680px, calc(100vh - 36px));
    overflow: auto;
    padding: 18px;
    border: 1px solid var(--ss-border);
    border-radius: 14px;
    background: var(--ss-surface-white);
    box-shadow: 0 22px 70px rgba(15, 23, 42, .22);
    color: var(--ss-text);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-dialog h2,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-dialog h2{
    margin: 4px 32px 4px 0 !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-section) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.15 !important;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-dialog p,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-dialog p{
    margin: 0 0 12px !important;
    color: var(--ss-muted);
    font-size: var(--ss-type-body);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-close,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-close{
    position: absolute;
    top: 10px;
    right: 10px;
    width: 28px;
    height: 28px;
    border: 1px solid var(--ss-border);
    border-radius: var(--ss-radius-compact-control);
    background: var(--ss-soft);
    color: var(--ss-muted-strong);
    font-size: var(--ss-type-card);
    line-height: 1;
    cursor: var(--ss-interactive-cursor);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-search,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-search{
    width: 100%;
    min-height: var(--ss-control-height-prominent);
    margin: 0 0 10px;
    padding: 8px 10px;
    border: var(--ss-control-border);
    border-radius: 10px;
    background: var(--ss-control-surface-soft);
    color: var(--ss-control-text);
    font-size: var(--ss-type-support);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-options{
    display: grid;
    gap: 6px;
    max-height: 330px;
    overflow: auto;
    padding-right: 2px;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-option{
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--ss-border-ui-secondary);
    border-radius: 10px;
    background: var(--ss-soft);
    color: var(--ss-text);
    font-size: var(--ss-type-body);
    font-weight: var(--ss-weight-bold);
    cursor: var(--ss-interactive-cursor);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-option:hover{
    border-color: var(--ss-blue-border);
    background: var(--ss-blue-soft);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-option input{
    flex: 0 0 auto;
    accent-color: var(--ss-blue);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-option[hidden]{
    display: none !important;
}

/* SONGSHOVE V8.4 — Stable Create New option inside MusicBook popup. Coded: 2026-09-14. */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-create-option,
/* SONGSHOVE V8.4 — Stable Create New option inside MusicBook popup. Coded: 2026-09-14. */
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-create-option{
    width: 100%;
    margin: 0 0 10px;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-create-option form,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-create-option form{
    display: block;
    width: 100%;
    margin: 0;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-create-button,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-create-button{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: var(--ss-control-height-comfortable);
    margin: 0;
    padding: var(--ss-control-padding-action);
    border: 1px solid var(--ss-blue);    border-radius: var(--ss-control-radius);
    background: var(--ss-button-primary-bg);    color: var(--ss-button-primary-text);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-heavy);
    line-height: 1.2;
    cursor: var(--ss-interactive-cursor);
    box-sizing: border-box;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-create-button:hover,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-create-button:focus-visible,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-create-button:hover,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-create-button:focus-visible{
    border-color: var(--ss-blue-dark);
    background: var(--ss-button-primary-hover-bg);}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-actions,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-actions{
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-status,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-status{
    margin-right: auto;
    color: var(--ss-muted);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-bold);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-cancel,
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-save,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-cancel,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-save{
    min-height: var(--ss-control-height-standard);
    padding: 7px 11px;
    border-radius: 8px;
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-heavy);
    cursor: var(--ss-interactive-cursor);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-cancel,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-cancel{
    border: 1px solid var(--ss-border);
    background: var(--ss-surface-white);
    color: var(--ss-text);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-save,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-save{
    border: 1px solid var(--ss-blue);    background: var(--ss-blue);    color: var(--ss-text-inverse);
}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-save:hover,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-save:hover{
    border-color: var(--ss-blue-dark);
    background: var(--ss-blue-dark);}

body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-no-options,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-no-options{
    padding: 12px;
    border: 1px solid var(--ss-border-ui-secondary);
    border-radius: 10px;
    background: var(--ss-soft);
    color: var(--ss-muted);
    font-size: var(--ss-type-body);
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-dialog,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-dialog{
        width: 100%;
        max-height: calc(100vh - 24px);
        padding: 16px;
    }
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-actions,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-actions{
        flex-wrap: wrap;
    }
}

/* ============================================================
   SONGSHOVE V8.4 — COMPACT LINKED MUSICBOOK SUMMARY + VIEW POPUP
   Why: Keep linked MusicBook/Lyrics from stacking and growing the Single Song
   card. Match the Single Campaign card exactly with one count row and View All.
   Coded: 2026-09-14
   ============================================================ */
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-linked-list,
/* ============================================================
   SONGSHOVE V8.4 — COMPACT LINKED MUSICBOOK SUMMARY + VIEW POPUP
   Why: Keep linked MusicBook/Lyrics from stacking and growing the Single Song
   card. Match the Single Campaign card exactly with one count row and View All.
   Coded: 2026-09-14
   ============================================================ */
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-linked-list{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    min-width: 0 !important;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-linked-count{
    min-width: 0;
    color: var(--ss-muted);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-button{
    flex: 0 0 auto;
    min-height: var(--ss-control-height-icon);
    padding: 5px 8px;
    border: var(--ss-control-border);
    border-radius: var(--ss-radius-compact-control);
    background: var(--ss-control-surface);
    color: var(--ss-blue);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-heavy);
    line-height: 1;
    cursor: var(--ss-interactive-cursor);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-button:hover,
body.songshove-single-workspace-page .songshove-v18-rhymebook-view-button:focus-visible{
    border-color: var(--ss-control-focus-border);
    background: var(--ss-blue-soft);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-button[hidden]{
    display: none !important;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-list{
    display: grid;
    gap: 6px;
    max-height: 360px;
    overflow: auto;
    padding-right: 2px;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-item{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--ss-border-ui-secondary);
    border-radius: 10px;
    background: var(--ss-soft);
    color: var(--ss-text);
    font-size: var(--ss-type-body);
    font-weight: var(--ss-weight-bold);
    line-height: 1.2;
    text-decoration: var(--ss-interactive-decoration)!important;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-item:hover,
body.songshove-single-workspace-page .songshove-v18-rhymebook-view-item:focus-visible{
    border-color: var(--ss-blue-border);
    background: var(--ss-blue-soft);
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-item span{
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.songshove-single-workspace-page .songshove-v18-rhymebook-view-item small{
    flex: 0 0 auto;
    color: var(--ss-blue);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-heavy);
}

@media (max-width: 760px) {
body.songshove-single-workspace-page.songshove-song-single-account .songshove-v18-rhymebook-linked-list,
body.songshove-single-workspace-page.songshove-artist-single-account .songshove-v18-rhymebook-linked-list{
        align-items: flex-start !important;
        flex-wrap: wrap !important;
    }
}

@media (prefers-reduced-motion: reduce) {
body.songshove-single-workspace-page.songshove-song-single-account
    .songshove-song-artist-layout
    .sss-song-audio-scan-campaign-card,
body.songshove-single-workspace-page.songshove-song-single-account
    .songshove-song-artist-layout
    .sss-song-audio-scan-campaign-card::after,
body.songshove-single-workspace-page.songshove-song-single-account
    .songshove-song-artist-layout
    .sss-song-audio-scan-campaign-card
    .songshove-v8-audio-scan-compact::after,
body.songshove-single-workspace-page.songshove-song-single-account
    .songshove-song-artist-layout
    .sss-song-audio-scan-campaign-card
    .songshove-v8-audio-scan-compact-icon,
body.songshove-single-workspace-page.songshove-artist-single-account
    .ss-single-shell
    .sss-song-audio-scan-campaign-card,
body.songshove-single-workspace-page.songshove-artist-single-account
    .ss-single-shell
    .sss-song-audio-scan-campaign-card::after,
body.songshove-single-workspace-page.songshove-artist-single-account
    .ss-single-shell
    .sss-song-audio-scan-campaign-card
    .songshove-v8-audio-scan-compact::after,
body.songshove-single-workspace-page.songshove-artist-single-account
    .ss-single-shell
    .sss-song-audio-scan-campaign-card
    .songshove-v8-audio-scan-compact-icon{
        animation: none !important;
    }
}

@keyframes sssSongCampaignPlayerTitleScroll {
    0%, 18% { transform: translateX(0); }
    82%, 100% { transform: translateX(var(--ss-v9-title-shift, -40px)); }
}

@keyframes sssSongAudioScanReveal {
    0% { transform: translateY(4px) scale(.992); box-shadow: 0 7px 24px rgba(15,23,42,.055); }
    55% { transform: translateY(-1px) scale(1.008); box-shadow: 0 10px 28px rgba(37,99,235,.12); }
    100% { transform: none; box-shadow: 0 7px 24px rgba(15,23,42,.055); }
}

@keyframes sssSongAudioScanCompactSweep {
    0%,58% { transform: translateX(-60%); opacity: 0; }
    64% { opacity: 1; }
    78% { transform: translateX(60%); opacity: 0; }
    100% { transform: translateX(60%); opacity: 0; }
}

@keyframes sssSongAudioScanCheckPulse {
    0%,100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37,99,235,0); }
    50% { transform: scale(1.06); box-shadow: 0 0 0 5px rgba(37,99,235,.07); }
}

@keyframes sssCampaignExactAudioScanReveal {
    0% { transform: translateY(4px) scale(.992); box-shadow: 0 7px 24px rgba(15,23,42,.055); }
    55% { transform: translateY(-1px) scale(1.008); box-shadow: 0 10px 28px rgba(37,99,235,.12); }
    100% { transform: none; box-shadow: 0 7px 24px rgba(15,23,42,.055); }
}

@keyframes sssCampaignExactAudioScanSweep {
    0% { transform: translateX(-42%); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translateX(42%); opacity: 0; }
}

@keyframes sssCampaignExactAudioScanCompactSweep {
    0%,58% { transform: translateX(-60%); opacity: 0; }
    64% { opacity: 1; }
    78% { transform: translateX(60%); opacity: 0; }
    100% { transform: translateX(60%); opacity: 0; }
}

@keyframes sssCampaignExactAudioScanCheckPulse {
    0%,100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37,99,235,0); }
    50% { transform: scale(1.06); box-shadow: 0 0 0 5px rgba(37,99,235,.07); }
}

/* SONGSHOVE V8.5 — Universal informational-popover header internals. Coded: 2026-09-17 */
body.songshove-single-workspace-page.songshove-song-single-account .sss-song-bio-popover-head,
body.songshove-single-workspace-page.songshove-artist-single-account .ssa-artist-bio-popover-head{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 0 9px !important;
}
body.songshove-single-workspace-page.songshove-song-single-account .sss-song-bio-popover-head > span,
body.songshove-single-workspace-page.songshove-artist-single-account .ssa-artist-bio-popover-head > span{
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-heavy) !important;
    letter-spacing: .05em !important;
    line-height: 1.2 !important;
}

/* SONGSHOVE V8.5 — Universal Row 1 / Card 1 profile-image empty placeholder.
   Deliberately does not target any audio-player artwork placeholder. Coded: 2026-09-17 */
body.songshove-single-workspace-page .ss-primary-profile-image > .ss-primary-profile-placeholder{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
    color: var(--ss-blue) !important;
    font-size: 24px !important;
    font-weight: var(--ss-weight-heavy) !important;
}
body.songshove-single-workspace-page .ss-primary-profile-image > .ss-primary-profile-placeholder[hidden]{
    display: none !important;
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SONG + ARTIST FEATURE COMPONENTS PASS 2
   Coded: 2026-09-17
   Why: Single Song and Single Artist now share one owner for the
   audio-player artwork, remaining player/data/scan micro-components,
   Bio body text and audio emotion/tag pills. The 150px Row 1/Card 1
   profile-image system is intentionally separate and is not targeted here.
   ============================================================ */

/* Universal audio-player artwork — separate from Card 1 profile media. */
body.songshove-single-workspace-page .sss-song-campaign-player-artwork{
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    width: 92px !important;
    min-width: 92px !important;
    height: 92px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
    align-self: center !important;
    overflow: hidden !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: 12px !important;
    background: var(--ss-blue-soft) !important;
}
body.songshove-single-workspace-page .sss-song-campaign-player-artwork img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}
body.songshove-single-workspace-page .sss-song-campaign-player-artwork > span{
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--ss-blue);
    font-size: 24px;
    font-weight: var(--ss-weight-heavy);
}

/* Universal audio emotion/tag micro-component. */
body.songshove-single-workspace-page .ss-single-audio-data-card .sss-song-audio-emotions{
    margin-top: 7px;
}
body.songshove-single-workspace-page .ss-single-audio-data-card .sss-song-audio-emotions span{
    background: var(--ss-card-bg);
}
body.songshove-single-workspace-page .sss-song-current-data-card .sss-song-audio-emotions{
    margin-top: 7px !important;
}
body.songshove-single-workspace-page .sss-song-current-data-card .sss-song-audio-emotions span{
    min-height: 22px !important;
    padding: 3px 8px !important;
    border: 1px solid var(--ss-border) !important;
    border-radius: var(--ss-radius-pill) !important;
    background: var(--ss-card-bg) !important;
    color: var(--ss-muted-strong) !important;
}

/* Universal Campaign-style data/info grid. */
body.songshove-single-workspace-page .sss-song-campaign-data-grid{
    gap: 6px !important;
}
body.songshove-single-workspace-page .sss-song-campaign-data-grid > div{
    padding: 7px 8px !important;
    border: 1px solid #E2E9F2 !important;
    border-radius: 8px !important;
    background: var(--ss-surface-white) !important;
}

/* Universal informational-popover body text. */
body.songshove-single-workspace-page :is(.sss-song-bio-popover-text,.ssa-artist-bio-popover-text){
    margin: 0 !important;
    color: var(--ss-text) !important;
    font-size: var(--ss-type-body) !important;
    font-weight: var(--ss-weight-medium) !important;
    line-height: 1.55 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    user-select: text !important;
}

/* Universal compact Audio Scan layout: one component owner on both pages. */
@media (min-width: 901px) {
    body.songshove-single-workspace-page .songshove-v8-audio-scan-compact{
        grid-template-columns: 26px minmax(0, 1fr) auto !important;
        gap: 8px !important;
        padding: 7px 8px !important;
        border-radius: 10px !important;
    }
    body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-compact{
        position: relative !important;
        display: grid !important;
        grid-template-columns: 26px minmax(0,1fr) auto !important;
        gap: 8px !important;
        align-items: center !important;
        min-width: 0 !important;
        padding: 7px 8px !important;
        border: 1px solid var(--ss-border) !important;
        border-radius: 10px !important;
        background: var(--ss-surface-white) !important;
        overflow: hidden !important;
    }
    body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-compact-copy{
        min-width: 0 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 1px !important;
    }
    body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-compact-copy strong{
        color: var(--ss-text) !important;
        font-size: var(--ss-type-label) !important;
        line-height: 1.2 !important;
        font-weight: var(--ss-weight-heavy) !important;
    }
    body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-compact-copy span{
        color: var(--ss-muted) !important;
        font-size: var(--ss-type-meta) !important;
        line-height: 1.2 !important;
    }
    body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-view{
        position: relative !important;
        z-index: 1 !important;
        min-height: 28px !important;
        padding: 6px 9px !important;
        border: 0 !important;
        border-radius: 8px !important;
        background: var(--ss-blue) !important;
        color: var(--ss-text-inverse) !important;
        font-size: var(--ss-type-meta) !important;
        font-weight: var(--ss-weight-heavy) !important;
        line-height: 1 !important;
        box-shadow: none !important;
    }
    body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-view:hover,
body.songshove-single-workspace-page .sss-song-audio-scan-campaign-card .songshove-v8-audio-scan-view:focus-visible{
        background: var(--ss-blue-dark) !important;
        transform: translateY(-1px) !important;
        box-shadow: 0 6px 16px rgba(37,99,235,.24) !important;
    }
    body.songshove-single-workspace-page .sss-song-campaign-player-artwork{
        grid-row: 1 / span 4 !important;
    }
    body.songshove-single-workspace-page .sss-song-campaign-data-grid{
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }
    body.songshove-single-workspace-page .sss-song-campaign-data-grid > div{
        min-height: 39px !important;
        padding: 6px 8px !important;
        border-radius: 8px !important;
    }
    body.songshove-single-workspace-page .sss-song-current-data-card .sss-song-audio-emotions{
        margin-top: 6px !important;
        gap: 5px !important;
    }
    body.songshove-single-workspace-page .sss-song-current-data-card .sss-song-audio-emotions span{
        min-height: 20px !important;
        padding: 2px 7px !important;
        font-size: var(--ss-type-micro) !important;
    }
}
@media (max-width: 760px) {
    body.songshove-single-workspace-page .sss-song-campaign-player-artwork{
        width: 72px !important;
        min-width: 72px !important;
        height: 72px !important;
    }
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SONG / ARTIST TYPOGRAPHY + MICRO-LAYOUT PASS 1
   Why: Single Song and Single Artist were still carrying identical local
   text/helper and compact tool-card geometry for the shared Song data/audio
   components. Keep one visual owner without changing any rendered values.
   Scope: Shared single-workspace Song/Artist components only; no mobile
   responsive consolidation and no Questionnaire/popup-JS behavior changes.
   Coded: 2026-09-17
   ============================================================ */



body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-data-card .ss-empty-state{
    margin: 0;
    padding: 12px 10px;
    background: var(--ss-card-bg);
}

body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-data-card .ss-single-overview-grid{
    gap: 6px;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-data-card .ss-single-overview-grid > div{
    padding: 7px 8px;
    border-color: #e2e9f2;
    background: var(--ss-card-bg);
}




body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-linked-activity-row-card{
    min-width: 0;
    align-self: stretch;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-data-card{
    padding: 10px !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-player-card{
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: 12px !important;
    row-gap: 6px !important;
    align-items: center !important;
    padding: 10px !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .songshove-v81-live-song-note{
    display: block;
    margin: 0;
    color: var(--ss-muted);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-strong);
    line-height: 1.35;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-cover-campaign-card{
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-meta) !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-cover-campaign-actions{
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    color: var(--ss-muted-light) !important;
    font-size: var(--ss-type-micro) !important;
    white-space: nowrap !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-cover-campaign-actions a{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 26px !important;
    padding: 5px 8px !important;
    border: 1px solid var(--ss-blue-border) !important;
    border-radius: var(--ss-radius-compact-control) !important;
    background: var(--ss-surface-white) !important;
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-micro) !important;
    font-weight: var(--ss-weight-heavy) !important;
    text-decoration: var(--ss-interactive-decoration) !important;
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SONG / ARTIST TOOL + WORKSPACE STRUCTURE PASS 2
   Why: Single Song and Single Artist still carried exact duplicate visual
   ownership for workspace base geometry, empty states, shared Song tool order,
   compact audio-player internals, Current Data heading spacing, and bio-popover
   outer geometry. Keep one shared visual owner without changing rendered values.
   Scope: Song/Artist shared CSS only. Audio artwork edit/crop controls, archives'
   unique layouts, mobile redesign, PHP/JS, Questionnaire, Campaign and RhymeBook
   behavior are intentionally untouched.
   Coded: 2026-09-17
   ============================================================ */
/* SONGSHOVE PASS 40 — Song/Artist page backgrounds now inherit the one universal frontend ambient <main> owner from Pass 37. The old flat body paint was removed instead of overridden. Coded: 2026-09-23 */
.songshove-song-app .sss-shell,
.songshove-artist-app .ss-single-shell{
    padding: 0 0 28px;
}
.songshove-artist-app .ss-empty-state{
    grid-column: 1 / -1;
    padding: 22px;
    background: var(--ss-surface-white);
    border: 1px solid var(--ss-border);
    border-radius: 14px;
    box-shadow: var(--ss-card-shadow);
    text-align: center;
}
.songshove-artist-app .ss-empty-state strong,
.songshove-artist-app .ss-empty-state span{
    display: block;
}
.songshove-artist-app .ss-empty-state span{
    margin: 5px auto 10px;
    color: var(--ss-muted);
    font-size: var(--ss-type-support);
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-current-data-heading{
    margin-bottom: 5px !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) :is(.sss-song-bio-popover,.ssa-artist-bio-popover){
    position: fixed !important;
    z-index: 2147483000 !important;
    width: min(420px, calc(100vw - 20px)) !important;
    max-height: min(420px, calc(100vh - 20px)) !important;
    overflow: auto !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) :is(.sss-song-bio-popover,.ssa-artist-bio-popover)[hidden]{
    display: none !important;
}
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-player-card > .songshove-v71-audio-player.ss-audio-wrap{
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
@media (min-width: 901px) {
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-player-card{
        order: 1;
        grid-template-rows: auto auto auto auto !important;
        column-gap: 12px !important;
        row-gap: 6px !important;
        padding: 10px !important;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-current-data-card{
        order: 2;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) :is(.sss-song-audio-scan-campaign-card,.sss-song-audio-scan-empty-card){
        order: 3;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-audio-scan-modal{
        order: 4;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-musicbook-campaign-card{
        order: 5;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .sss-song-cover-campaign-card{
        order: 6;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .songshove-v9-player-title-window{
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 3px !important;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-player-card > .songshove-v71-tool-heading{
        grid-row: 1 !important;
    }
    body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) .ss-single-audio-player-card > :is(.songshove-v71-audio-player,.songshove-v71-audio-empty){
        grid-row: 2 !important;
    }
}



/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SONG / ARTIST SHARED MICRO-COMPONENTS PASS 3
   Why: Single Song and Single Artist still carried duplicate visual ownership
   for the compact MusicBook link action, profile Bio empty-state typography,
   and common Activity Row structure/text/link presentation. Move only the
   matching declarations into one shared owner while preserving page-specific
   Activity Row alignment/margins and all unrelated component behavior.
   Scope: Single Song + Single Artist shared visual ownership only. No copy,
   PHP/JS, archive redesign, form normalization, audio-artwork mechanics,
   Questionnaire, Campaign, RhymeBook, mobile redesign, or admin settings.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page:is(.songshove-song-single-account,.songshove-artist-single-account) :is(.sss-song-profile-bio-empty,.ssa-artist-profile-bio-empty){
    margin: 0 !important;
    box-sizing: border-box !important;
    color: var(--ss-muted) !important;
    font-family: inherit !important;
    font-size: var(--ss-type-body) !important;
    font-weight: var(--ss-weight-regular) !important;
    line-height: 1.45 !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    white-space: pre-line !important;
}







/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL FORM / EDITOR PRIMITIVES PASS 4
   Why: Song and Artist still carried duplicate visual ownership for the same
   form grid, field-label, error/saved status, and modal-form spacing roles.
   These declarations now live in the universal UI layer so other SongShove
   surfaces can consume the same primitives without copying page CSS.
   Page-specific geometry (including Artist's 3-column/7px single-page grid,
   smaller Artist single-page label sizing, Song/Artist message margins, and
   modal-specific margins) intentionally remains local. No control heights,
   artwork, archive layout, responsive/mobile rules, PHP, or JS were changed.
   Coded: 2026-09-17
   ============================================================ */

/* UNIVERSAL FORM GRID — base two-column form geometry. */
:is(.sss-form-grid,.ss-form-grid){
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

/* UNIVERSAL FIELD LABEL — shared base label presentation.
   More specific page/component rules may intentionally adjust size or spacing. */
:is(.songshove-song-app .sss-shell,.songshove-artist-app .ss-single-shell) label > span,
.ss-field-label{
    display: block;
    margin-bottom: 4px;
    color: var(--ss-blue);
    font-size: var(--ss-type-meta);
    font-weight: var(--ss-weight-heavy);
    letter-spacing: .07em;
}

/* UNIVERSAL ERROR STATE — visual treatment only; page-specific placement stays local. */
:is(.ss-notice-error){
    padding: 8px 10px;
    border: 1px solid var(--ss-danger-border);
    border-radius: 9px;
    background: var(--ss-surface-danger-subtle);
    color: var(--ss-danger-strong);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-bold);
}

/* UNIVERSAL SAVED STATUS — visual treatment only; page-specific placement stays local. */
:is(.ss-save-status){
    color: var(--ss-success);
    font-size: var(--ss-type-label);
    font-weight: var(--ss-weight-heavy);
}

/* UNIVERSAL MODAL FORM RHYTHM — both profile editors already use this gap. */
:is(.sss-song-profile-modal-form,.ssa-artist-modal-form){
    gap: 12px !important;
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SINGLE-WORKSPACE FORM / CONTROL NORMALIZATION PASS 9
   Why: Single Song and Single Artist still carried separate module-level owners
   for the same base form rhythm and 34px input/select visual geometry. These
   rules now belong to the universal Single Workspace control system so Campaign,
   RhymeBook, and future Single pages can consume the same primitives instead of
   recreating page CSS. Existing Song/Artist selectors remain as migration
   compatibility hooks; generic ss-single-* hooks are the reusable API.
   Artist's intentional 32px compact Single-page override, Song-only textarea
   resize behavior, feature-specific checkboxes, and unique editor layouts remain
   local. Rendered values are unchanged. Coded: 2026-09-17
   ============================================================ */

/* UNIVERSAL SINGLE FORM RHYTHM — shared base grid form spacing. */
.ss-single-form,
body.songshove-single-workspace-page .sss-shell form,
body.songshove-single-workspace-page :is(.ssa-create-form){
    display: grid;
    gap: 9px;
    margin-top: 10px;
}

/* UNIVERSAL SINGLE CONTROL — shared base input/select geometry and surface.
   Feature-specific controls may intentionally override these values later. */
.ss-single-input,
.ss-single-select,
body.songshove-single-workspace-page .sss-shell input,
body.songshove-single-workspace-page .sss-shell select,
body.songshove-single-workspace-page .ss-single-shell input,
body.songshove-single-workspace-page .ss-single-shell select{
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 34px;
    padding: var(--ss-control-padding-field);
    border: var(--ss-control-border);
    border-radius: var(--ss-control-radius);
    background: var(--ss-control-surface-soft);
    color: var(--ss-control-text);
    font-size: var(--ss-type-support);
}

/* UNIVERSAL SINGLE CONTROL FOCUS — shared focus treatment for every Single-page field.
   RhymeBook, Song, Artist and future Campaign controls consume this owner.
   Coded: 2026-09-17 */
.ss-single-input:focus,
.ss-single-select:focus,
.ss-single-textarea:focus{
    border-color: var(--ss-control-focus-border) !important;
    box-shadow: var(--ss-control-focus-ring) !important;
    outline: 0 !important;
}

/* Song's textarea shares the same universal surface geometry but keeps its
   Song-specific resize behavior in song.css. */
.ss-single-textarea,
body.songshove-single-workspace-page .sss-shell textarea{
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: var(--ss-control-padding-field);
    border: var(--ss-control-border);
    border-radius: var(--ss-control-radius);
    background: var(--ss-control-surface-soft);
    color: var(--ss-control-text);
    font-size: var(--ss-type-support);
}

/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL SINGLE-WORKSPACE MEDIA ARTWORK MECHANICS
   Why: Song profile artwork, Song Audio artwork, Artist focus-Song artwork,
   Campaign artwork and future Single-page media cards need the same fill/crop
   behavior. Container dimensions remain owned by each component; this block
   owns only universal image mechanics and accessibility hiding.
   Coded: 2026-09-17
   ============================================================ */
body.songshove-single-workspace-page .songshove-v4-song-artwork{
    position: relative !important;
    overflow: hidden !important;
}

body.songshove-single-workspace-page .songshove-v4-song-artwork .songshove-v4-song-artwork-image{
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}

body.songshove-single-workspace-page .songshove-v4-song-artwork .songshove-v4-song-artwork-image[hidden],
body.songshove-single-workspace-page .songshove-v4-song-artwork .songshove-v4-song-artwork-placeholder[hidden]{
    display: none !important;
}

body.songshove-single-workspace-page .songshove-v4-song-artwork .songshove-v4-song-artwork-placeholder{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

/* Universal accessible visually-hidden utility for live/status text. */
.ss-visually-hidden{
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}


/* ============================================================
   SONGSHOVE V8.5 — UNIVERSAL TYPOGRAPHY ROLES PASS 10
   Why: Any typography role that is visually the same on Single Song and
   Single Artist belongs to universal UI ownership so Campaign, RhymeBook
   and future Single workspaces can consume the same role without page CSS.
   Existing page selectors remain only as compatibility hooks; values are
   unchanged and use the established SongShove typography tokens.
   Coded: 2026-09-17
   ============================================================ */
.ss-type-helper-copy,
body.songshove-song-single-account .sss-song-profile-edit-group-head p,
body.songshove-artist-single-account .songshove-v8-shared-change-warning{
    color: var(--ss-muted) !important;
    font-size: var(--ss-type-label) !important;
    line-height: 1.4 !important;
}

.ss-type-strong-body,
body.songshove-song-single-account .songshove-song-artist-layout .sss-song-status-card .sss-song-status-summary strong,
.songshove-artist-app .ss-single-page .ssa-artist-v1-media-list strong,
.songshove-artist-app .ss-single-page .ssa-artist-v1-release-stack strong{
    color: var(--ss-text) !important;
    font-size: var(--ss-type-body) !important;
    font-weight: var(--ss-weight-heavy) !important;
}

.ss-type-strong-label,
body.songshove-song-single-account .sss-song-list-modal-row strong,
.songshove-artist-app .ss-single-page .ssa-artist-v1-readiness-missing-head strong{
    color: var(--ss-text) !important;
    font-size: var(--ss-type-label) !important;
    font-weight: var(--ss-weight-heavy) !important;
    line-height: 1.25 !important;
}

.ss-type-action-meta,
body.songshove-song-single-account .songshove-song-artist-layout .sss-song-match-card a,
body.songshove-song-single-account .songshove-song-artist-layout .sss-song-tool-action > a,
body.songshove-song-single-account .sss-song-list-modal-row > a,
.songshove-artist-app .ss-single-page .ssa-artist-v1-media-list a,
.songshove-artist-app .ss-single-page .ssa-artist-v1-release-stack a,
.songshove-artist-app .ss-single-page .ssa-artist-v1-missing-compact-row a{
    color: var(--ss-blue) !important;
    font-size: var(--ss-type-meta) !important;
    font-weight: var(--ss-weight-heavy) !important;
    text-decoration: var(--ss-interactive-decoration) !important;
}


/* SONGSHOVE V8.8 — MY ACCOUNT SIDEBAR NAV CLEANUP
 * Why: Keep the standard WooCommerce account sidebar focused on account/order
 * tasks without removing SongShove endpoints or affecting the site's main
 * navigation. These links remain functional and can still be used elsewhere.
 * Coded: 2026-09-22
 */
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--profile,
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--artists,
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--songs,
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--campaigns,
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--musicbook,
body.woocommerce-account .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--downloads {
    display: none !important;
}




/* SONGSHOVE — PROFILE TEMPORARY SIDEBAR PLACEHOLDER / PASS 91N
 * Why: /my-account/profile/ uses the universal My Account sidebar but its first
 * row is intentionally non-functional until Profile sections are designed. Keep
 * the shared link visuals while disabling only that temporary row's interaction.
 * Coded: 2026-09-25
 */
body.songshove-profile-page
.woocommerce-MyAccount-navigation-link--profile-placeholder > a {
    pointer-events: none;
    cursor: default;
}

/* SONGSHOVE V8.8 — UNIVERSAL SHORT-PAGE FOOTER ANCHOR / PASS 91J
 * Why: Finished short-page families must keep the real site footer at the
 * viewport bottom without fixed/absolute positioning or a white strip below it.
 * My Account, public Help/FAQ and opt-in short pages use the same viewport shell/footer contract;
 * their intentionally different main-flex shrink behavior remains explicit here.
 * Long pages continue to grow and scroll normally.
 * Coded: 2026-09-25
 */
:is(body.woocommerce-account.logged-in, body.songshove-help-page, body.songshove-short-page) .wp-site-blocks {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

body.woocommerce-account.logged-in .wp-site-blocks > main {
    flex: 1 0 auto;
}

/* Help/FAQ include the accepted ambient margins inside the main flex item, so
 * allow that item to shrink to avoid a pointless scrollbar on genuinely short
 * pages while preserving the same universal footer anchor. */
:is(body.songshove-help-page, body.songshove-short-page) .wp-site-blocks > main {
    flex: 1 1 auto;
    min-height: 0;
}

:is(body.woocommerce-account.logged-in, body.songshove-help-page, body.songshove-short-page) .wp-site-blocks > :is(
    footer.wp-block-template-part,
    footer
) {
    margin-top: auto !important;
    margin-block-start: auto !important;
}

/* WordPress offsets the logged-in frontend for the admin bar outside the site
 * shell. Subtract that reserved space so admin testing does not create a false
 * extra strip/scroll below the footer. */
:is(body.woocommerce-account.logged-in, body.songshove-help-page, body.songshove-short-page).admin-bar .wp-site-blocks {
    min-height: calc(100vh - 32px);
    min-height: calc(100dvh - 32px);
}

@media (max-width: 782px) {
    :is(body.woocommerce-account.logged-in, body.songshove-help-page, body.songshove-short-page).admin-bar .wp-site-blocks {
        min-height: calc(100vh - 46px);
        min-height: calc(100dvh - 46px);
    }
}


/* SONGSHOVE V8.8 — MY ACCOUNT PAGE TITLES VISUALLY REMOVED / PASS 1
 * Why: Dashboard, Orders, Addresses, Payment Methods, and Account Details already
 * identify the current section through the active My Account navigation item, so
 * the repeated WordPress page heading adds visual clutter above the Form 67 shell.
 * Keep the heading in the document for semantic/accessibility structure while
 * removing its visual footprint on only these five accepted My Account screens.
 * Coded: 2026-09-22
 */
body.songshove-dashboard-page :is(.wp-block-post-title, .entry-title),
body.songshove-orders-page :is(.wp-block-post-title, .entry-title),
body.songshove-addresses-page :is(.wp-block-post-title, .entry-title),
body.songshove-payment-methods-page :is(.wp-block-post-title, .entry-title),
body.songshove-account-details-page :is(.wp-block-post-title, .entry-title),
body.songshove-notification-settings-page :is(.wp-block-post-title, .entry-title),
body.songshove-profile-settings-page :is(.wp-block-post-title, .entry-title),
body.songshove-profile-page :is(.wp-block-post-title, .entry-title) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}


/* SONGSHOVE V8.8 — WOO ACCOUNT SETTINGS SIDEBAR DROPDOWN / PASS 19
 * Why: Keep the accepted Pass 18 sidebar organization while making the compact
 * Account Settings control feel like one deliberate Form 67 navigation group
 * instead of a blue row plus a separate boxed arrow. The chevron is now
 * integrated into the parent row, child pages use a quiet nested hierarchy,
 * and Profile Settings is visually separated as the next top-level destination.
 * Scope is the native WooCommerce My Account sidebar only.
 * Coded: 2026-09-23
 */
body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.woocommerce-MyAccount-navigation-link--dashboard.songshove-account-settings-parent {
    position: relative !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.woocommerce-MyAccount-navigation-link--dashboard.songshove-account-settings-parent > a {
    padding-right: 42px !important;
}

/* SONGSHOVE — INTEGRATED ACCOUNT SETTINGS CHEVRON / PASS 19
 * Why: Make the dropdown control read as part of the Account Settings row rather
 * than a second button competing with it. The hit target remains comfortably
 * clickable while the visible treatment is only a small chevron.
 * Coded: 2026-09-23
 */
body.woocommerce-account .woocommerce-MyAccount-navigation
.songshove-account-settings-toggle {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-width: 28px;
    height: 28px;
    min-height: 28px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #4A63A0;
    font: inherit;
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
    transform: translateY(-50%);
    transition: background-color .16s ease, color .16s ease;
}

body.woocommerce-account .woocommerce-MyAccount-navigation
.songshove-account-settings-toggle::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transform-origin: center;
    transition: transform .18s ease;
}

body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-open
.songshove-account-settings-toggle::before {
    transform: translateY(2px) rotate(225deg);
}

body.woocommerce-account .woocommerce-MyAccount-navigation
.songshove-account-settings-toggle:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation
.songshove-account-settings-toggle:focus-visible {
    background: rgba(74, 99, 160, .10);
    color: #3F568F;
    outline: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation
.woocommerce-MyAccount-navigation-link--dashboard.is-active
> .songshove-account-settings-toggle {
    background: rgba(255, 255, 255, .14);
    color: #FFFFFF;
}

body.woocommerce-account .woocommerce-MyAccount-navigation
.woocommerce-MyAccount-navigation-link--dashboard.is-active
> .songshove-account-settings-toggle:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation
.woocommerce-MyAccount-navigation-link--dashboard.is-active
> .songshove-account-settings-toggle:focus-visible {
    background: rgba(255, 255, 255, .22);
}

/* SONGSHOVE — QUIET NESTED SETTINGS LINKS / PASS 19
 * Why: Make Addresses, Payment methods, and Account details visually read as
 * children of Account Settings without making their text faint or creating a
 * second heavy stack of blue buttons.
 * Coded: 2026-09-23
 */
body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.songshove-account-settings-child {
    position: relative !important;
    padding-left: 15px !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.songshove-account-settings-child::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    border-radius: 999px;
    background: rgba(74, 99, 160, .14);
    pointer-events: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.songshove-account-settings-child > a {
    min-height: 34px !important;
    padding: 7px 10px !important;
    border-radius: 8px !important;
    font-size: var(--ss-type-compact, 13px) !important;
    font-weight: var(--ss-weight-semibold, 650) !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.songshove-account-settings-child.is-active > a {
    border-color: rgba(74, 99, 160, .18) !important;
    background: rgba(255, 255, 255, .68) !important;
    color: #4A63A0 !important;
    box-shadow: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready:not(.songshove-account-settings-open)
.songshove-account-settings-child {
    display: none !important;
}

/* SONGSHOVE — PROFILE SETTINGS TOP-LEVEL SEPARATION + LINK PARITY / PASS 20
 * Why: Profile Settings remains intentionally outside Account Settings, but its
 * link must use the exact same native Form 67 top-level link/hover/active CSS as
 * Account Settings. Keep only the subtle group divider here and let the shared
 * page navigation rules own the Profile Settings anchor states without overrides.
 * Coded: 2026-09-23
 */
body.woocommerce-account .woocommerce-MyAccount-navigation.songshove-account-settings-ready
.woocommerce-MyAccount-navigation-link--profile-settings {
    margin-top: 4px !important;
    padding-top: 7px !important;
    border-top: 1px solid rgba(74, 99, 160, .12) !important;
}

@media (prefers-reduced-motion: reduce) {
    body.woocommerce-account .woocommerce-MyAccount-navigation
    .songshove-account-settings-toggle,
    body.woocommerce-account .woocommerce-MyAccount-navigation
    .songshove-account-settings-toggle::before {
        transition: none !important;
    }
}

/*
 * SONGSHOVE V8.8.0 — UNIVERSAL FORM 67 SMALL-TYPE NORMALIZATION / PASS 36
 * Why: Customer-flow pages can inherit very small 11px/300 and 9px/300 text
 * from WordPress, WooCommerce, or form/plugin styles even when those exact
 * values are not hard-coded in the page stylesheet. The shared UI script marks
 * only elements that actually compute to those exact pairs; these universal
 * classes promote them to the approved readable values without creating a
 * separate typography override for every page. Main navigation and the
 * WooCommerce My Account sidebar are explicitly outside the runtime scope.
 * Coded: 2026-09-23
 */
body.ss-form67-type-normalizer main .ss-type-upgrade-11-300.ss-type-upgrade-11-300 {
    font-size: 14px !important;
    font-weight: 500 !important;
}

body.ss-form67-type-normalizer main .ss-type-upgrade-9-300.ss-type-upgrade-9-300 {
    font-size: 12px !important;
    font-weight: 500 !important;
}


/* SONGSHOVE — UNIVERSAL CUSTOMER DATA-TABLE FOUNDATION / PASS 80
 * Why: Orders and Payment Methods were independently rebuilding the same
 * WooCommerce customer-table foundation. Own the genuinely identical table,
 * header structure, cell, edge-border, radius and readable body-text primitives here while
 * each page keeps its unique column geometry, padding, header size/color,
 * responsive transformation and semantic states. No data or behavior changes.
 * Coded: 2026-09-24
 */
body:is(.songshove-orders-page, .songshove-payment-methods-page) :is(
    .woocommerce-orders-table,
    .woocommerce-MyAccount-paymentMethods
) {
    width: 100% !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 10px !important;
    background: transparent !important;
    table-layout: fixed;
}

body:is(.songshove-orders-page, .songshove-payment-methods-page) :is(
    .woocommerce-orders-table,
    .woocommerce-MyAccount-paymentMethods
) thead th {
    border: 0 !important;
    background: transparent !important;
    line-height: 1.25;
    letter-spacing: .055em;
    text-transform: uppercase;
}

body.songshove-orders-page .woocommerce-orders-table tbody :is(th, td),
body.songshove-payment-methods-page .woocommerce-MyAccount-paymentMethods tbody tr.payment-method td {
    box-sizing: border-box;
    border-top: 1px solid var(--ss-content-surface-border) !important;
    border-bottom: 1px solid var(--ss-content-surface-border) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    background: rgba(255, 255, 255, .70) !important;
    color: var(--ss-form-control-text) !important;
    font-size: var(--ss-type-body, 14px);
    line-height: 1.45;
    vertical-align: middle;
}

body.songshove-orders-page .woocommerce-orders-table tbody tr > :first-child,
body.songshove-payment-methods-page .woocommerce-MyAccount-paymentMethods tbody tr.payment-method td:first-child {
    border-left: 1px solid var(--ss-content-surface-border) !important;
    border-radius: var(--ss-inner-card-radius) 0 0 var(--ss-inner-card-radius);
}

body.songshove-orders-page .woocommerce-orders-table tbody tr > :last-child,
body.songshove-payment-methods-page .woocommerce-MyAccount-paymentMethods tbody tr.payment-method td:last-child {
    border-right: 1px solid var(--ss-content-surface-border) !important;
    border-radius: 0 var(--ss-inner-card-radius) var(--ss-inner-card-radius) 0;
}

/* ============================================================
   SONGSHOVE — FINISHED CUSTOMER-FLOW SHARED VISUAL OWNERS / PASS 91D
   Why: Final audit across the finished universal group found exact duplicate
   customer-flow owners still split between View Order and Order Received.
   Consolidate only the proven-identical title motion, branded status summary,
   order-item metadata, submitted-questionnaire data geometry and shared
   WooCommerce form-row reset. Page-specific placement/behavior remains local.
   Coded: 2026-09-24
   ============================================================ */

/* Universal customer-flow title treatment. View Order keeps ellipsis/right
 * alignment locally; Order Received keeps its own vertical spacing locally. */
.ss-customer-flow-title,
body.songshove-view-order-page .ss-view-order-page-title,
body.woocommerce-order-received .wc-block-order-confirmation-status > h1 {
    padding: 0 !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: clamp(20px, 3vw, 24px) !important;
    font-weight: var(--ss-weight-heavy, 800) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.025em !important;
    background-image: var(--ss-brand-title-shimmer-gradient);
    background-size: 300% 100%;
    background-repeat: no-repeat;
    background-position: 100% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    animation: ssCustomerFlowTitleShimmer 8.4s linear infinite;
}

@keyframes ssCustomerFlowTitleShimmer {
    from { background-position: 100% 50%; }
    to { background-position: 0% 50%; }
}

/* Universal branded read-only status/confirmation summary. Margins stay local
 * because View Order and Order Received place the same component differently. */
.ss-customer-status-summary,
body.songshove-view-order-page .woocommerce-notices-wrapper + p,
body.songshove-view-order-page .woocommerce-MyAccount-content > p:first-of-type,
body.woocommerce-order-received .wc-block-order-confirmation-status > p {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    padding: 14px 16px 14px 20px !important;
    overflow: hidden;
    border: var(--ss-inner-card-border) !important;
    border-radius: var(--ss-inner-card-radius);
    background: var(--ss-inner-card-surface-soft) !important;
    color: var(--ss-form-support-color) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-control-size, 13px) !important;
    font-weight: var(--ss-weight-medium, 500) !important;
    line-height: 1.55 !important;
    text-align: left !important;
    box-shadow: var(--ss-inner-card-shadow-soft) !important;
}

.ss-customer-status-summary::before,
body.songshove-view-order-page .woocommerce-notices-wrapper + p::before,
body.songshove-view-order-page .woocommerce-MyAccount-content > p:first-of-type::before,
body.woocommerce-order-received .wc-block-order-confirmation-status > p::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--ss-brand-gradient);
}

/* Universal native order-item metadata geometry/typography. Responsive stacking
 * remains page-local where View Order and block Order Received intentionally differ. */
.ss-customer-order-item-meta,
body.songshove-view-order-page .wc-item-meta,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table .wc-item-meta {
    display: grid;
    gap: 4px;
    margin: 10px 0 0 !important;
    padding: 10px 12px !important;
    list-style: none !important;
}

.ss-customer-order-item-meta > li,
body.songshove-view-order-page .wc-item-meta li,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table .wc-item-meta li {
    display: flex;
    align-items: baseline;
    gap: 5px;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4;
}

.ss-customer-order-item-meta :is(strong, p),
body.songshove-view-order-page .wc-item-meta :is(strong, p),
body.woocommerce-order-received .wc-block-order-confirmation-totals__table .wc-item-meta :is(strong, p) {
    display: inline !important;
    margin: 0 !important;
    font-size: var(--ss-form-support-size, 13px) !important;
}

.ss-customer-order-item-meta strong,
body.songshove-view-order-page .wc-item-meta strong,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table .wc-item-meta strong {
    flex: 0 0 auto;
    color: var(--ss-form-label-color, #14213D) !important;
    font-weight: var(--ss-form-label-weight, 800) !important;
}

.ss-customer-order-item-meta p,
body.songshove-view-order-page .wc-item-meta p,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table .wc-item-meta p {
    min-width: 0;
    color: var(--ss-form-support-color) !important;
    font-weight: var(--ss-weight-medium, 500) !important;
    overflow-wrap: anywhere;
}

/* Universal submitted-questionnaire data matrix. View Order keeps disclosure
 * controls local; Order Received keeps always-open summary/content composition local. */
body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire :is(table, tbody) {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire tbody {
    display: grid;
    gap: 7px;
}

body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire tr {
    display: grid;
    grid-template-columns: minmax(150px, .34fr) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 10px 12px;
}

body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire td {
    display: block;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    line-height: 1.5;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* ============================================================
   SONGSHOVE — CUSTOMER RECEIPT / QUESTIONNAIRE FOUNDATION / PASS 91P
   Why: Final audit found a few exact View Order + Order Received declarations
   still duplicated locally. Move only the proven-identical receipt shell/body/
   totals typography and neutral questionnaire geometry into one shared owner.
   Classic-vs-block table structure, mobile transformations, disclosure behavior
   and page-specific borders/padding remain local.
   Coded: 2026-09-25
   ============================================================ */

/* Shared receipt-table shell. */
body.songshove-view-order-page table.woocommerce-table--order-details,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table {
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid var(--ss-content-surface-border) !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: var(--ss-inner-card-radius-compact) !important;
    background: var(--ss-form-control-bg) !important;
}

/* Shared receipt body-value typography. Each page keeps its own cell padding and
 * border geometry because classic and block tables are structurally different. */
body.songshove-view-order-page table.woocommerce-table--order-details tbody td,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table tbody td {
    background: transparent !important;
    color: var(--ss-form-control-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-control-size, 13px) !important;
    font-weight: var(--ss-weight-medium, 500) !important;
    line-height: 1.5;
    vertical-align: top;
}

/* Shared receipt totals foundation. Final-total font size remains local because
 * View Order intentionally uses 15px while Order Received uses 14px. */
body.songshove-view-order-page table.woocommerce-table--order-details tfoot :is(th, td),
body.woocommerce-order-received .wc-block-order-confirmation-totals__table tfoot :is(th, td) {
    background: var(--ss-customer-table-surface-soft) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-support-size, 13px) !important;
}

body.songshove-view-order-page table.woocommerce-table--order-details tfoot th,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table tfoot th {
    color: var(--ss-form-support-color) !important;
    font-weight: var(--ss-weight-semibold, 600) !important;
    text-align: right !important;
}

body.songshove-view-order-page table.woocommerce-table--order-details tfoot td,
body.woocommerce-order-received .wc-block-order-confirmation-totals__table tfoot td {
    color: var(--ss-text, #14213D) !important;
    font-weight: var(--ss-weight-heavy, 800) !important;
    text-align: right !important;
}

body.songshove-view-order-page table.woocommerce-table--order-details tfoot tr:last-child :is(th, td),
body.woocommerce-order-received .wc-block-order-confirmation-totals__table tfoot tr:last-child :is(th, td) {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    border-bottom: 0 !important;
    color: var(--ss-form-primary-bg) !important;
    font-weight: var(--ss-weight-heavy, 800) !important;
}

/* Shared questionnaire shell/content geometry. View Order keeps disclosure
 * controls/borders local; Order Received keeps its always-open composition local. */
body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0 !important;
    overflow: hidden;
}

body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire .songshove-questionnaire-title {
    letter-spacing: .055em;
    text-transform: uppercase;
}

body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire .songshove-questionnaire-content {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 14px !important;
    background: transparent !important;
}

body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire .songshove-questionnaire-intro {
    margin: 0 0 12px;
    line-height: 1.5;
}

/* SONGSHOVE — UNIVERSAL WOOCOMMERCE FORM-ROW RESET / PASS 91P
 * Why: Account Details, Edit Address and Payment Methods all require the same
 * exact full-width/zero-spacing WooCommerce row foundation. Keep float removal
 * limited to the account/address forms that already depended on it so Payment
 * Methods does not gain any new layout behavior.
 * Coded: 2026-09-25
 */
body.songshove-account-details-page .woocommerce-EditAccountForm > .form-row,
body.songshove-account-details-page .woocommerce-EditAccountForm fieldset .form-row,
body.songshove-addresses-page .woocommerce-address-fields__field-wrapper .form-row,
body.songshove-payment-methods-page #payment .form-row {
    box-sizing: border-box;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.songshove-account-details-page .woocommerce-EditAccountForm > .form-row,
body.songshove-account-details-page .woocommerce-EditAccountForm fieldset .form-row,
body.songshove-addresses-page .woocommerce-address-fields__field-wrapper .form-row {
    float: none !important;
}

@media (max-width: 700px) {
    body:is(.songshove-view-order-page, .woocommerce-order-received) .songshove-customer-questionnaire tr {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-customer-flow-title,
    body.songshove-view-order-page .ss-view-order-page-title,
    body.woocommerce-order-received .wc-block-order-confirmation-status > h1 {
        animation: none !important;
    }
}

/* ============================================================
   SONGSHOVE V8.8.0 — UNIVERSAL CUSTOMER READ-ONLY CONTENT PRIMITIVES / PASS 87
   Why: View Order is the first read-only order/campaign workspace being migrated
   after the finished account/support group. These primitives extend the existing
   universal inner-card, form-control and semantic typography system to read-only
   receipt/status/detail content so future Order Received migration can reuse the
   same owners instead of rebuilding another private skin.
   Coded: 2026-09-24
   ============================================================ */
/* SONGSHOVE — UNIVERSAL CUSTOMER CAMPAIGN-STATUS GEOMETRY / PASS 91J
 * Why: View Order and Order Received use the same desktop Campaign Status section,
 * grid and card spacing. Own those exact shared values once here while preserving
 * each page's unique heading, questionnaire, polling and mobile section geometry.
 * Coded: 2026-09-25
 */
body.songshove-view-order-page .ss-generation-order-section,
body.woocommerce-order-received .ss-generation-thankyou-section {
    box-sizing: border-box;
    margin: 0 0 16px !important;
    padding: 16px;
}

body.songshove-view-order-page .ss-generation-order-grid,
body.woocommerce-order-received .ss-generation-thankyou-section .ss-generation-order-grid {
    gap: 10px;
}

body.songshove-view-order-page .ss-generation-order-card,
body.woocommerce-order-received .ss-generation-thankyou-section .ss-generation-order-card {
    padding: 14px;
}

/* SONGSHOVE — ORDER RECEIVED UNIVERSAL READ-ONLY CONSUMERS / PASS 91C
 * Why: The verified WooCommerce block-template shell from Pass 91B now consumes
 * the same shared inner-card/read-only owners as View Order. Only selectors are
 * extended here; Order Received-specific geometry remains in generation-status.css.
 * Coded: 2026-09-24
 */
.ss-customer-section-card,
body.songshove-view-order-page :is(.woocommerce-order-details, .ss-generation-order-section),
body.woocommerce-order-received :is(.ss-generation-thankyou-section, .songshove-order-details-panel) {
    border: var(--ss-inner-card-border);
    border-radius: var(--ss-inner-card-radius);
    background: var(--ss-inner-card-surface-soft);
    box-shadow: var(--ss-inner-card-shadow-soft);
    color: var(--ss-form-control-text);
    font-family: var(--ss-font, "Manrope", sans-serif);
}

.ss-customer-readonly-card,
body.songshove-view-order-page :is(.ss-generation-order-card, .songshove-customer-questionnaire),
body.woocommerce-order-received :is(
    .ss-generation-order-card,
    .songshove-customer-questionnaire,
    .wc-block-order-confirmation-billing-address,
    .wc-block-order-confirmation-shipping-address,
    .wc-block-order-confirmation-order-note
) {
    border: var(--ss-inner-card-border);
    border-radius: var(--ss-inner-card-radius-compact);
    background: var(--ss-form-control-bg);
    box-shadow: var(--ss-inner-card-shadow-soft);
    color: var(--ss-form-control-text);
    font-family: var(--ss-font, "Manrope", sans-serif);
}

.ss-customer-data-row,
body.songshove-view-order-page :is(.wc-item-meta, .songshove-customer-questionnaire tr),
body.woocommerce-order-received :is(
    .songshove-customer-questionnaire tr,
    .wc-block-order-confirmation-summary-list-item,
    .wc-block-order-confirmation-totals__table .wc-item-meta
) {
    border: var(--ss-inner-card-border);
    border-radius: var(--ss-form-control-radius, 10px);
    background: var(--ss-form-control-bg);
    color: var(--ss-form-control-text);
    font-family: var(--ss-font, "Manrope", sans-serif);
}

.ss-customer-section-heading,
body.songshove-view-order-page :is(.woocommerce-order-details__title, .ss-generation-order-section > h2, .songshove-questionnaire-title),
body.woocommerce-order-received :is(
    .songshove-questionnaire-title,
    .wc-block-order-confirmation-totals-wrapper > .wp-block-heading,
    .wc-block-order-confirmation-billing-wrapper > .wp-block-heading,
    .wc-block-order-confirmation-shipping-wrapper > .wp-block-heading
) {
    color: var(--ss-customer-heading-color);
    font-family: var(--ss-font, "Manrope", sans-serif);
    font-size: var(--ss-customer-heading-size);
    font-weight: var(--ss-customer-heading-weight);
}

.ss-customer-readonly-value,
body.songshove-view-order-page .songshove-customer-questionnaire td,
body.woocommerce-order-received .songshove-customer-questionnaire td {
    color: var(--ss-form-control-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-control-size, 13px) !important;
    font-weight: var(--ss-weight-medium, 500) !important;
    line-height: 1.5;
}

.ss-customer-readonly-label,
body.songshove-view-order-page .songshove-customer-questionnaire td:first-child,
body.woocommerce-order-received .songshove-customer-questionnaire td:first-child {
    color: var(--ss-form-label-color, #14213D) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-form-label-size, 13px) !important;
    font-weight: var(--ss-form-label-weight, 800) !important;
}

.ss-customer-support-copy,
body.songshove-view-order-page :is(.songshove-questionnaire-intro, .songshove-questionnaire-click, .ss-generation-live-message),
body.woocommerce-order-received :is(.songshove-questionnaire-intro, .ss-generation-live-message) {
    color: var(--ss-form-support-color);
    font-family: var(--ss-font, "Manrope", sans-serif);
    font-size: var(--ss-form-support-size, 13px);
    font-weight: var(--ss-weight-medium, 500);
}

/* SONGSHOVE — UNIVERSAL CUSTOMER COMMERCE TYPOGRAPHY / PASS 91X
 * Why: WooCommerce Blocks can reintroduce thin/light text below the universal page
 * host. Cart customer-facing copy now consumes the same Manrope + minimum 500-weight
 * language as the finished customer suite. Semantic emphasis stays Cart-local.
 * Coded: 2026-09-25
 */
body.woocommerce-cart :is(
    .wc-block-components-product-metadata,
    .wc-block-components-product-details,
    .wc-block-cart-item__prices,
    .wc-block-components-totals-item__description,
    .variation,
    .variation dt,
    .variation dd,
    .woocommerce-shipping-destination,
    .woocommerce-shipping-calculator,
    .wc-block-cart-item__remove-link,
    .remove
) {
    color: var(--ss-customer-support-color) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-weight: var(--ss-customer-support-weight, 500) !important;
    opacity: 1 !important;
}

body.woocommerce-cart :is(
    .wc-block-components-totals-item__label,
    .wc-block-components-totals-item__value,
    .wc-block-cart-item__total-price-and-sale-badge-wrapper,
    .woocommerce-Price-amount,
    .amount,
    table.shop_table td,
    table.shop_table th
) {
    color: var(--ss-customer-copy-color) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-weight: var(--ss-customer-copy-weight, 500) !important;
    opacity: 1 !important;
}

body.woocommerce-cart :is(.wc-block-components-product-name, .product-name, .product-name a) {
    color: var(--ss-customer-heading-color) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-weight: var(--ss-weight-bold, 800) !important;
    opacity: 1 !important;
}

/* Cart fields share the universal field skin above; guarantee the finished-suite
 * minimum readable weight without changing WooCommerce input behavior. */
body.woocommerce-cart :is(
    .wc-block-components-text-input input,
    .wc-block-components-text-input textarea,
    input.qty,
    .coupon .input-text,
    .input-text
) {
    font-weight: var(--ss-weight-medium, 500) !important;
}

/* SONGSHOVE — UNIVERSAL HOST-PADDING AMBIENT REGISTRATION / PASS 91W
 * Why: Cart is the block-template member of the finished-page family that needs
 * ambient spacing as host padding rather than collapsible child margins. Keep its
 * accepted 18px top/bottom and 15px mobile-bottom values, but own the registration
 * here as part of the universal ambient system instead of a temporary Cart fix.
 * Coded: 2026-09-25
 */
body.woocommerce-cart .wp-site-blocks > main.wp-block-group {
    box-sizing: border-box;
    margin-block-start: 0 !important;
    margin-top: 0 !important;
    padding-block-start: var(--ss-page-outer-gap, 18px) !important;
    padding-block-end: var(--ss-page-outer-gap, 18px) !important;
}

body.woocommerce-cart :is(.wp-block-post-content, .entry-content) {
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
}

@media (max-width: 700px) {
    body.woocommerce-cart .wp-site-blocks > main.wp-block-group {
        padding-block-end: var(--ss-page-outer-gap-mobile, 15px) !important;
    }
}

/* ============================================================
   SONGSHOVE — UNIVERSAL CUSTOMER INNER-CARD / BRAND LABEL / CHIP OWNERS
   PASS 80B
   Why: Campaign identity cards are the next customer workspace surface to consume
   the same finished universal card/text/accent language already used across Help,
   Account, Orders, View Order, Order Received and related finished pages.
   These are reusable visual owners; page-specific layout stays local.
   Coded: 2026-09-29
   ============================================================ */
.ss-universal-inner-card {
    min-width: 0;
    border: var(--ss-inner-card-border) !important;
    border-radius: var(--ss-inner-card-radius-large) !important;
    background: var(--ss-inner-card-surface-soft) !important;
    box-shadow: var(--ss-inner-card-shadow-soft) !important;
    color: var(--ss-form-control-text) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
}

.ss-universal-brand-label {
    color: var(--ss-mini-label-color, #2563EB) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-customer-table-label-size, 10px) !important;
    font-weight: var(--ss-customer-table-label-weight, 900) !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
}

.ss-universal-card-heading {
    color: var(--ss-customer-heading-color, #14213D) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-customer-heading-size, 14px) !important;
    font-weight: var(--ss-customer-heading-weight, 900) !important;
    line-height: 1.25 !important;
}

.ss-universal-copy {
    color: var(--ss-customer-copy-color, #465066) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-customer-copy-size, 11px) !important;
    font-weight: var(--ss-customer-copy-weight, 500) !important;
    line-height: 1.5 !important;
}

.ss-universal-support-copy {
    color: var(--ss-customer-support-color, #667085) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-customer-support-size, 12px) !important;
    font-weight: var(--ss-customer-support-weight, 500) !important;
    line-height: 1.45 !important;
}

.ss-universal-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 5px 8px;
    border: var(--ss-inner-card-border) !important;
    border-radius: var(--ss-radius-pill, 999px) !important;
    background: var(--ss-form-control-bg) !important;
    color: var(--ss-form-control-text, #465066) !important;
    font-family: var(--ss-font, "Manrope", sans-serif) !important;
    font-size: var(--ss-type-label, 10px) !important;
    font-weight: var(--ss-weight-750, 750) !important;
    line-height: 1 !important;
    white-space: nowrap;
    box-shadow: none !important;
}

/* ============================================================
   SONGSHOVE — UNIVERSAL COMPACT TOOL PRIMITIVES / PASS 80I
   Exact visual contracts consolidated from Campaign Smart Link, Budget and
   Pitching. These are reusable presentation owners only; feature classes and
   behavior hooks remain in place.
   ============================================================ */
.ss-tool-card {
    display: block;
    margin: 0 0 12px !important;
    padding: 15px;
    border: 1px solid var(--ss-border, #dfe5ec);
    border-radius: 14px;
    background: var(--ss-surface, #fff);
}

.ss-tool-heading-copy {
    max-width: 840px;
    margin: 0;
    color: var(--ss-muted, #667085);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
}

.ss-tool-mini-stat-label {
    display: block;
    color: var(--ss-muted, #667085);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ss-tool-toolbar-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ss-tool-toolbar-copy > strong {
    font-size: 13px;
    font-weight: 800;
}
.ss-tool-toolbar-copy > small {
    color: var(--ss-muted, #667085);
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
}

.ss-button--tool-compact {
    min-height: 30px;
    padding: 5px 9px;
    font-size: 10px;
    white-space: nowrap;
}
.ss-button--row-compact {
    min-height: 29px;
    padding: 5px 8px;
    font-size: 10px;
}
.ss-button--quiet {
    background: var(--ss-control-surface-soft, #f5f7fa) !important;
    color: var(--ss-control-text, #344054) !important;
    border: 1px solid var(--ss-border, #dfe5ec) !important;
}

.ss-tool-row-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 800;
}
.ss-tool-row-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    color: var(--ss-muted, #667085);
    font-size: 10px;
    font-weight: 600;
}

.ss-tool-empty-state {
    padding: 13px;
    border: 1px dashed var(--ss-border, #dfe5ec);
    border-radius: 10px;
    text-align: center;
    background: var(--ss-surface-support, #fafcff);
}
.ss-tool-empty-title {
    display: block;
    font-size: 12px;
    font-weight: 800;
}
.ss-tool-empty-copy {
    margin: 3px 0 0;
    color: var(--ss-muted, #667085);
    font-size: 10px;
    font-weight: 600;
}

.ss-form-grid--compact-two {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
    padding: 0;
}
.ss-form-grid--compact-two :is(.ss-input, .ss-select) {
    height: 36px !important;
    min-height: 36px !important;
}
.ss-modal-form-actions--split {
    align-items: center;
}
.ss-modal-form-actions--split > div {
    display: flex;
    align-items: center;
    gap: 8px;
}
