/* PorchTunes bright adaptive shell. Existing behavior and DOM stay intact;
   these tokens restyle the single interface rather than fork four apps. */
:root,
:root[data-pt-theme="carolina-sunrise"] {
  --pt-chrome:#fff9ef; --pt-surface:#fffdf8; --pt-surface-2:#fff1e5;
  --pt-primary:#c64f34; --pt-primary-strong:#a83b23; --pt-secondary:#e8a53b;
  --pt-ink:#452719; --pt-muted:#765a4b; --pt-line:rgba(104,61,38,.18);
  --pt-success:#3f734e; --pt-danger:#a7372b; --pt-focus:#2476a5; --pt-wash:rgba(246,160,127,.24);
}
:root[data-pt-theme="blue-ridge-morning"] {
  --pt-chrome:#f3f8fc; --pt-surface:#fcfeff; --pt-surface-2:#e5f0f8;
  --pt-primary:#286f9f; --pt-primary-strong:#174c75; --pt-secondary:#67a4cc;
  --pt-ink:#182d42; --pt-muted:#40586f; --pt-line:rgba(24,72,108,.20);
  --pt-success:#3f7652; --pt-danger:#9d3045; --pt-focus:#a84f1d; --pt-wash:rgba(83,151,197,.18);
}
:root[data-pt-theme="carolina-golden-hour"] {
  --pt-chrome:#fffaf0; --pt-surface:#fffdf7; --pt-surface-2:#fff0d8;
  --pt-primary:#b85a10; --pt-primary-strong:#8f3e0c; --pt-secondary:#e69723;
  --pt-ink:#57280f; --pt-muted:#80563d; --pt-line:rgba(137,67,20,.18);
  --pt-success:#6f571f; --pt-danger:#9d3825; --pt-focus:#a94519; --pt-wash:rgba(230,151,35,.20);
}
:root[data-pt-theme="mountain-laurel"] {
  --pt-chrome:#fffafd; --pt-surface:#fffefe; --pt-surface-2:#fdebf2;
  --pt-primary:#c83568; --pt-primary-strong:#9d224c; --pt-secondary:#ec6b96;
  --pt-ink:#522238; --pt-muted:#795568; --pt-line:rgba(136,42,80,.17);
  --pt-success:#567346; --pt-danger:#98254d; --pt-focus:#85406c; --pt-wash:rgba(236,77,132,.16);
}
:root[data-pt-theme="coastal-carolina"] {
  --pt-chrome:#f1fbff; --pt-surface:#ffffff; --pt-surface-2:#dff7f6;
  --pt-primary:#087fa0; --pt-primary-strong:#07577a; --pt-secondary:#ef6a5b;
  --pt-ink:#102f47; --pt-muted:#3d5d70; --pt-line:rgba(7,87,122,.22);
  --pt-success:#17795e; --pt-danger:#9b3048; --pt-focus:#d94b3d; --pt-wash:rgba(23,184,190,.18);
}
:root[data-pt-theme="carolina-garden"] {
  --pt-chrome:#fbfcf4; --pt-surface:#ffffff; --pt-surface-2:#e9f4df;
  --pt-primary:#287047; --pt-primary-strong:#174e32; --pt-secondary:#d83f78;
  --pt-ink:#173b29; --pt-muted:#486453; --pt-line:rgba(23,78,50,.22);
  --pt-success:#287047; --pt-danger:#98284d; --pt-focus:#b72f66; --pt-wash:rgba(215,78,132,.14);
}
:root[data-pt-theme="pixel-pulse"] {
  --pt-chrome:#f4f7ff; --pt-surface:#ffffff; --pt-surface-2:#e9edff;
  --pt-primary:#2857e8; --pt-primary-strong:#2730a8; --pt-secondary:#8bd900;
  --pt-ink:#111b50; --pt-muted:#465178; --pt-line:rgba(39,48,168,.24);
  --pt-success:#437900; --pt-danger:#a71967; --pt-focus:#e20a82; --pt-wash:rgba(109,49,238,.18);
}
:root[data-pt-theme="neon-quest"] {
  --pt-chrome:#07132b; --pt-surface:#0d2040; --pt-surface-2:#12315a;
  --pt-primary:#9d29d6; --pt-primary-strong:#701bb3; --pt-secondary:#13d9ef;
  --pt-ink:#f7fbff; --pt-muted:#b9d9ee; --pt-line:rgba(49,224,244,.38);
  --pt-success:#48e5a6; --pt-danger:#ff91ad; --pt-focus:#ff4fc8; --pt-wash:rgba(220,43,234,.25);
  --pt-readable-accent:#62e8ff;
  color-scheme:dark;
}
:root[data-pt-theme="clear-day"] {
  --pt-chrome:#f7f8fa; --pt-surface:#ffffff; --pt-surface-2:#e8edf5;
  --pt-primary:#0b57d0; --pt-primary-strong:#063b91; --pt-secondary:#b65c00;
  --pt-ink:#111318; --pt-muted:#354052; --pt-line:rgba(17,19,24,.34);
  --pt-success:#0b5d36; --pt-danger:#9c1c1c; --pt-focus:#8a4800; --pt-wash:rgba(11,87,208,.13);
  --pt-readable-accent:#063b91;
}
:root[data-pt-theme="midnight-access"] {
  --pt-chrome:#050912; --pt-surface:#0b1220; --pt-surface-2:#132036;
  --pt-primary:#006b89; --pt-primary-strong:#004b68; --pt-secondary:#ffd84d;
  --pt-ink:#ffffff; --pt-muted:#d5e4f0; --pt-line:rgba(255,255,255,.36);
  --pt-success:#7ff0bd; --pt-danger:#ff9da9; --pt-focus:#ffd84d; --pt-wash:rgba(0,206,238,.18);
  --pt-readable-accent:#77e8ff;
  color-scheme:dark;
}
:root[data-pt-theme="graphite-ember"] {
  --pt-chrome:#151312; --pt-surface:#211d1b; --pt-surface-2:#302722;
  --pt-primary:#9b3f16; --pt-primary-strong:#74300f; --pt-secondary:#f2a45b;
  --pt-ink:#fff8ef; --pt-muted:#dcc8b5; --pt-line:rgba(255,215,180,.28);
  --pt-success:#9fdfb2; --pt-danger:#ffaea0; --pt-focus:#ffc06e; --pt-wash:rgba(220,91,29,.22);
  --pt-readable-accent:#ffc07a;
  color-scheme:dark;
}
:root[data-pt-theme="blackberry-neon"] {
  --pt-chrome:#110815; --pt-surface:#1d1024; --pt-surface-2:#2b1536;
  --pt-primary:#961366; --pt-primary-strong:#6e0d4b; --pt-secondary:#27d9e8;
  --pt-ink:#fff8ff; --pt-muted:#e1cbe9; --pt-line:rgba(86,235,244,.32);
  --pt-success:#70efc4; --pt-danger:#ff9ab4; --pt-focus:#35e8f4; --pt-wash:rgba(235,25,174,.20);
  --pt-readable-accent:#72eff7;
  color-scheme:dark;
}

:root {
  --pt-hero:url('hero-dusk-v1-1536.webp');
  --pt-bg:var(--pt-chrome);
  --bg:var(--pt-chrome);
  --navy:var(--pt-ink); --copper:var(--pt-primary); --copper-dark:var(--pt-primary-strong);
  --rust:var(--pt-primary-strong); --text:var(--pt-ink); --text-muted:var(--pt-muted);
  --glass-bg:color-mix(in srgb,var(--pt-surface) 94%,transparent);
  --glass-border:var(--pt-line); --chip-bg:var(--pt-surface-2); --chip-border:var(--pt-line);
  --accent:var(--pt-primary);
  --pt-readable-accent:var(--pt-primary-strong);
  /* The legacy interface used pale amber accents on a dark canvas. The
     redesigned themes are light, so those inherited values became faint
     orange-on-cream text. Map every legacy text accent to each theme's
     darker, contrast-safe color while retaining the brighter primary for
     large filled controls. */
  --pt-accent:var(--pt-readable-accent);
  --pt-accent-strong:var(--pt-readable-accent);
  --pt-accent-soft:var(--pt-readable-accent);
  --pt-ink-soft:var(--pt-muted);
  --pt-ink-faint:var(--pt-muted);
  color-scheme:light;
}
body {
  background:var(--pt-chrome); color:var(--pt-ink);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
.bg-photo { display:block;background-image:var(--pt-hero);background-position:center 62%;filter:saturate(1.12) contrast(1.04);transform:none; }
/* Keep scenery behind the whole viewport, including below the Home card.
   Readability belongs to the unchanged control surfaces, not a white veil. */
.bg-photo,.bg-warmth,.bg-scrim{bottom:0;height:auto;max-height:none;}
.page,.pt-shell { background:transparent; }
.bg-warmth { background:radial-gradient(ellipse at 24% 18%,rgba(255,185,105,.12),transparent 64%);mix-blend-mode:normal; }
.bg-scrim { background:rgba(12,34,27,.025); }
.pt-hero { background-position:center 62%; }
.pt-hero::before { background:linear-gradient(180deg,rgba(12,34,27,.18),transparent 65%),radial-gradient(ellipse at 24% 35%,rgba(255,185,105,.12),transparent 70%); }
.pt-hero::after { background:rgba(12,34,27,.025); }
/* The shell and page share one panorama, not two differently cropped horizons.
   Standalone hero consumers still use the same primary landscape asset. */
body:has(> .bg-photo) .pt-hero{background-image:none;}
body:has(> .bg-photo) .pt-hero::before,body:has(> .bg-photo) .pt-hero::after{background:none;}
@media(max-width:820px){
  /* Portrait cover keeps sky, layered ridges and green foreground continuous;
     favor the varied left-hand ridges rather than a flat central crop. */
  .bg-photo{background-position:42% center;}
}
:root[data-pt-theme="coastal-carolina"] .bg-photo { filter:hue-rotate(15deg) saturate(1.14) contrast(1.04); }
:root[data-pt-theme="carolina-garden"] .bg-photo { filter:hue-rotate(338deg) saturate(1.16) contrast(1.04); }
:root[data-pt-theme="pixel-pulse"] .bg-photo { filter:saturate(1.12) contrast(1.04); }
:root[data-pt-theme="pixel-pulse"] .bg-warmth {
  background:
    linear-gradient(90deg,transparent 96%,rgba(139,217,0,.05) 96%) 0 0/28px 28px,
    linear-gradient(0deg,transparent 96%,rgba(40,87,232,.04) 96%) 0 0/28px 28px,
    radial-gradient(ellipse at 24% 18%,rgba(255,185,105,.12),transparent 64%);
}
:root[data-pt-theme="neon-quest"] .bg-photo { filter:hue-rotate(25deg) saturate(1.65) contrast(1.16) brightness(.58); }
:root[data-pt-theme="neon-quest"] .bg-warmth {
  background:
    radial-gradient(circle at 12% 24%,rgba(19,217,239,.28),transparent 32%),
    radial-gradient(circle at 88% 18%,rgba(255,79,200,.30),transparent 34%),
    linear-gradient(135deg,transparent 48%,rgba(49,224,244,.08) 49%,transparent 50%) 0 0/34px 34px;
}
:root[data-pt-theme="neon-quest"] .bg-scrim {
  background:linear-gradient(180deg,rgba(7,19,43,.08),rgba(7,19,43,.48) 45%,color-mix(in srgb,var(--pt-chrome) 90%,transparent));
}
:root[data-pt-theme="clear-day"] .bg-photo { filter:saturate(.92) contrast(1.05); }
:root[data-pt-theme="clear-day"] .bg-scrim {
  background:rgba(247,248,250,.025);
}
:root[data-pt-theme="midnight-access"] .bg-photo { filter:hue-rotate(12deg) saturate(.82) contrast(1.22) brightness(.45); }
:root[data-pt-theme="midnight-access"] .bg-warmth {
  background:radial-gradient(circle at 50% 24%,rgba(0,206,238,.22),transparent 62%);
}
:root[data-pt-theme="midnight-access"] .bg-scrim {
  background:linear-gradient(180deg,rgba(5,9,18,.10),rgba(5,9,18,.58) 45%,color-mix(in srgb,var(--pt-chrome) 94%,transparent));
}
:root[data-pt-theme="graphite-ember"] .bg-photo { filter:saturate(1.24) sepia(.18) contrast(1.16) brightness(.54); }
:root[data-pt-theme="graphite-ember"] .bg-warmth {
  background:radial-gradient(circle at 50% 22%,rgba(242,164,91,.25),transparent 64%);
}
:root[data-pt-theme="graphite-ember"] .bg-scrim {
  background:linear-gradient(180deg,rgba(21,19,18,.06),rgba(21,19,18,.55) 45%,color-mix(in srgb,var(--pt-chrome) 93%,transparent));
}
:root[data-pt-theme="blackberry-neon"] .bg-photo { filter:hue-rotate(286deg) saturate(1.45) contrast(1.17) brightness(.48); }
:root[data-pt-theme="blackberry-neon"] .bg-warmth {
  background:
    radial-gradient(circle at 16% 22%,rgba(39,217,232,.22),transparent 34%),
    radial-gradient(circle at 84% 18%,rgba(235,25,174,.25),transparent 36%);
}
:root[data-pt-theme="blackberry-neon"] .bg-scrim {
  background:linear-gradient(180deg,rgba(17,8,21,.08),rgba(17,8,21,.56) 45%,color-mix(in srgb,var(--pt-chrome) 94%,transparent));
}

.glass,.modal-panel,.pt-library-panel,.pt-menu-sheet,.pt-welcome-content {
  background:color-mix(in srgb,var(--pt-surface) 94%,transparent)!important;
  color:var(--pt-ink)!important; border-color:var(--pt-line)!important;
  box-shadow:0 16px 44px rgba(64,42,27,.13)!important;
}
/* Pop-up contents must not compete with the page beneath them. Keep the
   scenic Home surface and the owner-approved background treatment intact. */
.modal-panel,.pt-library-panel,.pt-menu-sheet {
  background:var(--pt-surface)!important;
}
:root { --pt-placeholder:var(--pt-ink); }
input::placeholder,textarea::placeholder,
.pt-prompt textarea::placeholder,#lyrics::placeholder,
.pt-library-search-input::placeholder {
  color:var(--pt-ink)!important; opacity:1;
}
#ownerServerDiagnostics[hidden],.pt-account-connection[hidden] { display:none!important; }
.pt-library-cover-detail figcaption { color:#fff!important; }
button.primary,.primary,.pt-welcome-card-featured {
  background:linear-gradient(135deg,var(--pt-primary),var(--pt-primary-strong))!important;
  color:#fff!important; border-color:transparent!important;
}
button.secondary,.secondary,.chip,.pt-set-head,.pt-welcome-card,.pt-buddy-destination {
  background:var(--pt-surface)!important; color:var(--pt-ink)!important; border-color:var(--pt-line)!important;
}
button:hover { filter:brightness(.98); }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--pt-focus)!important; outline-offset:2px;
}
input,textarea,select,.model-select {
  background:var(--pt-surface)!important; color:var(--pt-ink)!important; border-color:var(--pt-line)!important;
}
@media(max-width:828px) {
  :root { --pt-hero:url('hero-dusk-v1-828.webp'); }
}
.pt-welcome-sub,.pt-welcome-card-desc,.pt-set-hint,.pt-set-note,.switch-note,label,.pt-provider-note { color:var(--pt-muted)!important; }
.char-count.over,#status.error,.pt-auth-error,.pt-set-danger,.pt-saved-idea-delete,
.pt-library-rating-status.error,#libraryDeleteBtn { color:var(--pt-danger)!important; border-color:var(--pt-danger)!important; }
.status-indicator.ok,.status-indicator.ok-account,.status-indicator.ok-key { color:var(--pt-success)!important; }
.status-indicator.bad { color:var(--pt-danger)!important; }
.pt-logo-hero-img,.pt-welcome-logo,.pt-creator-logo { filter:drop-shadow(0 5px 11px rgba(46,27,15,.18)); }
.pt-welcome-header { align-items:center; }
.pt-welcome-header > div { text-align:center; }
.pt-welcome-header .pt-welcome-sub { margin-inline:auto; }
@media (min-width:601px) {
  .pt-welcome-header { grid-template-columns:132px minmax(0,1fr) 132px; gap:16px; }
}
.pt-welcome-logo { width:clamp(82px,18vw,132px); height:auto; }
.pt-welcome-sub { max-width:34rem; }
.pt-welcome-cards { gap:10px!important; }
.pt-welcome-card-desc { display:none; }
.pt-home-trust-intro,.pt-buddy-news,.pt-buddy-destination-copy > span:last-child,
.pt-home-buddy-boundary { display:none!important; }
.pt-welcome-card { min-height:64px!important; }
.pt-welcome-card-featured { position:relative; padding-right:74px!important; overflow:hidden; }
.pt-welcome-card-featured::after {
  content:""; position:absolute; right:8px; bottom:-7px; width:58px; height:76px;
  background:url('assets/porch-buddy/porch-buddy-idle-300.webp') center bottom/contain no-repeat;
  pointer-events:none;
}
.pt-welcome-card-badge {
  color:#fff!important;
  background:var(--pt-primary-strong)!important;
  font-weight:800!important;
  letter-spacing:.06em!important;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.pt-home-learn-more-desc { display:none; }
.pt-creator-sub,.pt-arrival-sub { display:none!important; }
.pt-buddy-field-status,.pt-porch-sauce-note,.pt-tune-up-note { display:none!important; }
.pt-buddy-field-toggle span:last-child { font-size:0; }
.pt-buddy-field-toggle span:last-child::after { content:"Talk to Buddy"; font-size:14px; }
#ptPorchSauceBtn,#ptTuneUpBtn { font-size:0; }
#ptPorchSauceBtn::after { content:"Porch Sauce  ⓘ"; font-size:14px; }
#ptTuneUpBtn::after { content:"Porch Tune-Up  ⓘ"; font-size:14px; }
.pt-settings-accordion { display:flex; flex-direction:column; gap:12px; }
.pt-set-sec {
  border:2px solid var(--pt-line)!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,color-mix(in srgb,#fff 22%,var(--pt-surface)),var(--pt-surface))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 5px 12px rgba(51,38,28,.09),0 1px 2px rgba(51,38,28,.08)!important;
}
.pt-set-head { width:100%; padding:14px 16px!important; color:var(--pt-ink)!important; }
.pt-set-title { color:var(--pt-ink)!important; font-size:16px!important; font-weight:800!important; }
.pt-set-status { color:var(--pt-readable-accent)!important; font-weight:750!important; }
.pt-set-hint { color:var(--pt-muted)!important; font-weight:600!important; }
.pt-set-chev { color:var(--pt-readable-accent)!important; opacity:.9!important; }
.pt-set-sec.is-open {
  border-color:var(--pt-primary)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 7px 16px color-mix(in srgb,var(--pt-primary-strong) 14%,transparent)!important;
}
.pt-set-body {
  background:var(--pt-surface-2); color:var(--pt-ink);
  border-top:2px solid var(--pt-line)!important;
  padding:12px 16px 18px!important;
  font-size:14px;
  line-height:1.5;
}
.pt-set-body h4,.pt-set-body strong,.pt-set-body dd,.pt-set-body li { color:var(--pt-ink)!important; }
.pt-set-body h4 { font-size:14px!important; font-weight:800!important; }
.pt-set-body p,.pt-set-body dt,.pt-set-body .pt-set-note { color:var(--pt-muted)!important; opacity:1!important; }
.pt-set-body label { color:var(--pt-ink)!important; font-weight:650!important; }
.pt-set-body a { color:var(--pt-readable-accent)!important; font-weight:700; }
.pt-set-body [style*="color:#fff"],
.pt-set-body [style*="color:rgba(255,255,255"],
.pt-set-body [style*="color:var(--text-muted)"] { color:var(--pt-muted)!important; opacity:1!important; }
.pt-set-body input,.pt-set-body select,.pt-set-body textarea {
  color:var(--pt-ink)!important;
  background:var(--pt-surface)!important;
  border-color:var(--pt-line)!important;
}
#parentalControlsFields,#parentalPinManagement,#billingContactSection,
#billingPaymentSection,#introOfferPanel,#setPrivacyMarketingHost,
#ptPolicyDetail,#setLicenseAddHost {
  margin:10px 0!important;
  padding:12px!important;
  border:1px solid var(--pt-line)!important;
  border-radius:12px!important;
  background:var(--pt-surface)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 3px 8px rgba(51,38,28,.07)!important;
}
.pt-methods { gap:10px!important; }
.pt-method {
  min-height:54px;
  padding:11px 12px!important;
  border:1px solid var(--pt-line)!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,color-mix(in srgb,#fff 28%,var(--pt-surface)),var(--pt-surface))!important;
  color:var(--pt-ink)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76),0 3px 8px rgba(51,38,28,.08)!important;
}
.pt-method-name { color:var(--pt-ink)!important; font-weight:800!important; }
.pt-method-state { color:var(--pt-muted)!important; font-weight:650!important; }
.pt-method-state.is-connected { color:var(--pt-readable-accent)!important; }
.pt-method-action {
  background:var(--pt-surface-2)!important;
  border-color:var(--pt-line)!important;
  color:var(--pt-readable-accent)!important;
  font-weight:750!important;
}
.pt-billing-current,.pt-billing-changes,.pt-billing-packs {
  margin:10px 0 12px!important;
  padding:12px!important;
  border:1px solid var(--pt-line)!important;
  border-radius:12px!important;
  background:linear-gradient(180deg,color-mix(in srgb,#fff 28%,var(--pt-surface)),var(--pt-surface))!important;
  color:var(--pt-ink)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76),0 3px 8px rgba(51,38,28,.08)!important;
}
.pt-billing-section-label {
  margin:0 0 9px!important;
  color:var(--pt-readable-accent)!important;
  opacity:1!important;
  font-size:12px!important;
  font-weight:850!important;
}
.pt-billing-plan-name { color:var(--pt-ink)!important; font-weight:800!important; }
.pt-billing-current dt,.pt-billing-effect { color:var(--pt-muted)!important; opacity:1!important; }
.pt-billing-pack-preview {
  margin:6px 0!important;
  padding:9px 10px!important;
  border:1px solid var(--pt-line)!important;
  border-radius:10px!important;
  background:var(--pt-surface-2)!important;
  color:var(--pt-ink)!important;
  font-weight:700!important;
}
.pt-accepted-checks { display:grid; gap:7px; margin-top:10px; }
.pt-accepted-check { display:flex!important; align-items:center; gap:8px; color:var(--pt-ink)!important; }
.pt-accepted-check input:disabled { opacity:1; accent-color:var(--pt-primary-strong); }
.pt-billing-changes button,.pt-billing-packs button {
  border-color:var(--pt-line)!important;
  background:var(--pt-surface-2)!important;
  color:var(--pt-ink)!important;
  font-weight:750!important;
}
.modal-close,.pt-back-btn { color:var(--pt-ink)!important; border-color:var(--pt-line)!important; }
.server-row,.pt-account-connection { color:var(--pt-muted)!important; }

/* Library, result, and video are peer screens in the same bright system. */
.pt-library-screen { background:var(--pt-chrome)!important; color:var(--pt-ink); padding-bottom:88px!important; }
.pt-library-header { background:var(--pt-surface); border-color:var(--pt-line)!important; }
.pt-library-tabs button,.pt-library-filters button { border-color:var(--pt-line)!important; color:var(--pt-muted)!important; }
.pt-library-tabs button[aria-selected="true"],.pt-library-filters button[aria-selected="true"] {
  background:var(--pt-primary)!important; border-color:var(--pt-primary)!important; color:#fff!important;
}
.pt-library-song-row,.pt-library-video-card,.pt-library-idea-card,
.pt-library-list-pane,.pt-library-detail-pane {
  background:var(--pt-surface)!important; border-color:var(--pt-line)!important; color:var(--pt-ink)!important;
}
.pt-library-list-pane,.pt-library-detail-pane { background:transparent!important; }
.pt-library-video-actions { background:none!important; }
.pt-video-cta {
  background:linear-gradient(145deg,var(--pt-surface-2),var(--pt-surface))!important;
  border-color:var(--pt-line)!important; box-shadow:0 14px 36px rgba(64,42,27,.13)!important;
}
.pt-video-cta h3,.pt-video-meta b { color:var(--pt-ink)!important; }
.pt-video-cta p,.pt-video-meta span { color:var(--pt-muted)!important; }
.pt-video-cta-host button:disabled { background:color-mix(in srgb,var(--pt-muted) 18%,var(--pt-surface))!important; color:var(--pt-muted)!important; }
.pt-screen { color:var(--pt-ink); }
.pt-player audio { color-scheme:light; }

/* One stable app shell. Each destination delegates to the existing certified
   control, so navigation can grow without duplicating account or song logic. */
.tab-bar { display:none!important; }
.pt-app-nav {
  position:fixed; z-index:120; left:50%; bottom:max(10px,env(safe-area-inset-bottom));
  transform:translateX(-50%); display:grid; grid-template-columns:repeat(4,minmax(58px,88px));
  gap:4px; padding:7px; border:1px solid color-mix(in srgb,var(--pt-line) 82%,var(--pt-ink)); border-radius:22px;
  background:color-mix(in srgb,var(--pt-surface) 94%,transparent);
  box-shadow:0 2px 0 color-mix(in srgb,var(--pt-surface) 74%,transparent) inset,
             0 5px 12px rgba(32,24,19,.14),
             0 16px 34px rgba(32,24,19,.17);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
}
.pt-app-nav-item {
  min-height:52px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; padding:5px 8px; border:0; border-radius:16px; background:transparent;
  color:var(--pt-muted); font:700 11px/1.1 var(--pt-sans,system-ui,sans-serif); cursor:pointer;
}
.pt-app-nav-item svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.pt-app-nav-item.is-active { background:var(--pt-surface-2); color:var(--pt-readable-accent); }

/* The creator uses the same light, compact language as Home. Instructions
   remain available to assistive technology and through control tooltips. */
body.pt-creator-open .pt-arrival {
  background:color-mix(in srgb,var(--pt-surface) 96%,transparent)!important;
  color:var(--pt-ink)!important; border-color:var(--pt-line)!important;
  box-shadow:0 18px 50px rgba(64,42,27,.14)!important;
  grid-template-areas:
    "header header"
    "prompt rail"
    "commit commit"
    "cost cost"!important;
}
.pt-creator-open .pt-starting-point { display:none!important; }
.pt-mode-chip-desc,.pt-creator-howto,.pt-creator-buddy-presence p,
.pt-quality-help,.pt-quality-duration,.pt-gen-note { display:none!important; }
#detailsLabel,#lyricsLabel {
  position:absolute!important; width:1px!important; height:1px!important; padding:0!important;
  margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important;
  white-space:nowrap!important; border:0!important;
}
.pt-quality-label { margin-bottom:8px!important; }
.pt-creator-rail { align-self:start; gap:10px!important; }
/* The active field already owns the one useful Buddy entry point, including
   its disclosure and the compact character inside the button.  Keeping the
   older rail stage rendered duplicated that disclosure and left a large,
   apparently empty block above the editor on phones. */
body.pt-creator-open .pt-arrival-buddy-stage { display:none!important; }
.pt-creator-buddy-character {
  width:42px!important; max-width:42px!important; max-height:48px!important;
  object-fit:contain; animation:none!important; filter:drop-shadow(0 5px 8px rgba(64,42,27,.16))!important;
}
#detailsCard > .pt-eyebrow-label { display:none!important; }
.pt-buddy-field-toggle > span:first-child {
  flex:0 0 32px; width:32px; height:32px; overflow:hidden; font-size:0;
  background:url('assets/porch-buddy/porch-buddy-idle-300.webp') center 18%/38px auto no-repeat;
}
body.pt-creator-open .pt-buddy-inline-disclosure {
  max-width:none; margin:5px 2px 0; padding:0; border:0; background:transparent;
  font-size:12px; line-height:1.4;
}
body.pt-creator-open .pt-buddy-privacy-details > summary {
  width:max-content; max-width:100%; color:var(--pt-muted); font-weight:700;
  cursor:pointer; list-style:none;
}
body.pt-creator-open .pt-buddy-privacy-details > summary::-webkit-details-marker { display:none; }
body.pt-creator-open .pt-buddy-privacy-copy {
  margin-top:7px; padding:10px 12px; border:1px solid var(--pt-line);
  border-radius:12px; background:var(--pt-surface-2); color:var(--pt-muted);
}
body.pt-creator-open .pt-buddy-privacy-copy p { margin:0 0 8px; }
body.pt-creator-open .pt-buddy-privacy-copy p:last-child { margin-bottom:0; }
.pt-buddy-help-content,.pt-home-buddy-quick,.pt-home-buddy-interactive,.pt-home-buddy-workspace {
  background:color-mix(in srgb,var(--pt-surface) 96%,transparent)!important;
  color:var(--pt-ink)!important; border-color:var(--pt-line)!important;
  box-shadow:0 12px 34px rgba(64,42,27,.11)!important;
}
.pt-buddy-destination-copy { gap:2px!important; }
.pt-home-buddy-workspace textarea { min-height:180px; font-size:16px; }

.pt-theme-picker { border:0; padding:0; margin:0; }
.pt-theme-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.pt-theme-option {
  position:relative; min-height:50px; padding:11px 38px 11px 12px;
  border:1px solid var(--pt-line); border-radius:12px;
  background:linear-gradient(180deg,color-mix(in srgb,#fff 22%,var(--pt-surface)),var(--pt-surface));
  color:var(--pt-ink); text-align:left; cursor:pointer;
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 55%,transparent),0 3px 8px rgba(20,30,45,.09);
}
.pt-theme-option::after {
  content:""; position:absolute; right:13px; top:50%; width:15px; height:15px;
  transform:translateY(-50%); border:2px solid var(--pt-muted); border-radius:50%;
}
.pt-theme-option.is-selected { border-color:var(--pt-primary); box-shadow:0 0 0 2px color-mix(in srgb,var(--pt-primary) 18%,transparent),0 4px 10px rgba(20,30,45,.10); }
.pt-theme-option.is-selected::after { border-color:var(--pt-primary); background:radial-gradient(circle,var(--pt-primary) 0 44%,transparent 48%); }
.pt-theme-name { display:block; color:var(--pt-ink); font-weight:800; font-size:13px; line-height:1.2; }
.pt-theme-note { margin:10px 0 0!important; }
.pt-theme-status { min-height:1.3em; margin:4px 0 0; color:var(--pt-readable-accent); font-weight:650; font-size:12px; }

/* Creator actions must follow the selected appearance instead of retaining
   the original amber treatment.  The description-to-lyrics action is a
   quieter secondary step, but its label still needs full-strength contrast. */
button#generateBtn.pt-cta {
  background:linear-gradient(135deg,var(--pt-primary),var(--pt-primary-strong))!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 10px 24px color-mix(in srgb,var(--pt-primary-strong) 30%,transparent)!important;
}
.pt-buddy-jump-lyrics {
  background:var(--pt-surface-2)!important;
  color:var(--pt-readable-accent)!important;
  border-color:var(--pt-readable-accent)!important;
  font-weight:800!important;
  box-shadow:0 6px 18px color-mix(in srgb,var(--pt-primary-strong) 16%,transparent)!important;
}
.pt-buddy-jump-lyrics:hover,
.pt-buddy-jump-lyrics:focus-visible {
  background:color-mix(in srgb,var(--pt-primary) 12%,var(--pt-surface))!important;
  color:var(--pt-readable-accent)!important;
}

/* Filled legacy accent actions now inherit a darker background; keep their
   labels white so the contrast improvement does not trade one problem for
   another. */
.pt-porch-sauce-use-btn,.pt-tune-up-apply-btn,.pt-tune-up-use-btn,
.pt-tune-up-op.active { color:#fff!important; }

@media (max-width:600px) {
  .page { padding:12px 10px 102px; }
  .glass { padding:13px; border-radius:16px; }
  .pt-welcome-content { padding:12px!important; }
  .pt-welcome-heading { font-size:clamp(19px,5vw,23px)!important; line-height:1.2; }
  .pt-welcome-sub { display:none; }
  .pt-welcome-header { gap:8px!important; margin-bottom:10px!important; }
  .pt-welcome-logo { width:68px!important; }
  .pt-welcome-cards { gap:7px!important; }
  .pt-welcome-card { min-height:54px!important; padding:10px 12px!important; }
  /* Samsung display zoom / enlarged text must grow the card instead of
     being clipped by the decorative Buddy cutout. */
  .pt-welcome-card-featured { min-height:54px!important; padding-right:62px!important; overflow:visible; }
  .pt-welcome-card-title,
  .pt-welcome-card-badge { max-width:100%; line-height:1.25; overflow-wrap:anywhere; word-break:normal; }
  .pt-welcome-card-featured::after { width:48px; height:62px; }
  .pt-buddy-studio { gap:9px!important; padding-bottom:88px!important; }
  .pt-home-buddy-guide { gap:7px!important; }
  .pt-home-buddy-guide-art { width:58px!important; padding:4px 6px 0!important; }
  .pt-home-buddy-guide-main { gap:7px!important; }
  .pt-home-buddy-quick,
  .pt-home-buddy-interactive,
  .pt-home-buddy-workspace { padding:11px!important; }
  .pt-home-buddy-workspace > .pt-home-buddy-interactive {
    grid-template-columns:1fr!important; gap:8px!important; padding:9px!important;
  }
  .pt-home-buddy-workspace textarea { min-height:132px!important; }
  .pt-home-buddy-workspace-actions { gap:7px!important; margin-top:7px!important; }
  .pt-saved-ideas { margin-top:11px!important; padding-top:11px!important; }
  .pt-creator-header { margin-bottom:6px!important; }
  body.pt-creator-open .pt-prompt,
  body.pt-creator-open .pt-creator-rail { gap:8px!important; }
  .pt-theme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .pt-app-nav { width:calc(100% - 20px); grid-template-columns:repeat(4,minmax(0,1fr)); bottom:max(6px,env(safe-area-inset-bottom)); }
  .pt-app-nav-item { min-width:0; padding-inline:2px; overflow-wrap:anywhere; }
  .pt-library-screen { padding-bottom:96px!important; }
  body.pt-creator-open .pt-arrival { width:calc(100% - 20px)!important; margin:-32px auto 30px!important; padding:18px 14px 92px!important; }
  body.pt-creator-open .pt-creator-rail { order:2!important; }
  body.pt-creator-open .pt-prompt { order:3!important; }
}
@media (min-width:900px) {
  .pt-app-nav { left:20px; top:50%; bottom:auto; transform:translateY(-50%); grid-template-columns:72px; }
  /* Home keeps its card centered, with a nearby rail rather than a menu
     stranded at the window edge. Reserve the rail at narrow desktop widths;
     other destinations retain their existing navigation/layout contracts. */
  body.pt-home-open .pt-welcome-content { width:min(980px,calc(100vw - 256px)); }
  body.pt-home-open .pt-app-nav {
    left:max(16px,calc(50% - 602px));
    top:var(--pt-home-nav-top,50%); transform:var(--pt-home-nav-transform,translateY(-50%));
    max-height:calc(100dvh - 32px); overflow-y:auto;
  }
  body.pt-home-open .pt-welcome-header {
    grid-template-columns:clamp(76px,8vw,112px) minmax(0,1fr) clamp(76px,8vw,112px);
    gap:16px;
  }
  body.pt-home-open .pt-welcome-logo { width:100%; }
  body.pt-home-open .pt-home-learn-more { grid-column:1/-1; }
  /* Library fills the viewport, while the desktop shell becomes a fixed
     left rail. Reserve that rail's real footprint instead of letting it
     cover the first Song/Video/Idea cards. The screen remains full width;
     border-box sizing gives the library the remaining usable canvas. */
  .pt-library-screen.open { padding-left:112px!important; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
