/* v17: Unified non-semantic theme for Tutorial, Privacy, Login and Register.
   Paired with v16 prepaint: color and mode are set before loading styles. */
:root {--pkv17-bg:#f6f9f8;--pkv17-card:#fff;--pkv17-text:#152a25;--pkv17-muted:#64756f;--pkv17-border:#dde5e2;--pkv17-subtle:#f1f5f3}
html[data-theme="dark"] {--pkv17-bg:#101714;--pkv17-card:#19221e;--pkv17-text:#f0f5f1;--pkv17-muted:#a1b1a8;--pkv17-border:#35413b;--pkv17-subtle:#233029}
/* Shared typography, excluding exact machine-readable data blocks. */
#lv7-dashboard-root :is(.tutorial-page,.privacy-page),
#lv7-dashboard-root :is(.tutorial-page,.privacy-page) :is(button,input,select,textarea),
html:has(.login-wrap) :is(body,input,button,label,a,select),
html:has(.login-stitch) :is(body,input,button,label,a,select),
html:has(.privacy-public-shell) :is(body,input,button,label,a,select){font-family:'Manrope','Inter',system-ui,sans-serif!important}
:is(.tutorial-page,.privacy-page,.login-wrap,.login-stitch) :is(pre,code,kbd,samp){font-family:'JetBrains Mono',Consolas,monospace!important}

/* Tutorial: use brand variables, not the former fixed blue palette. */
#lv7-dashboard-root .tutorial-page :is(.tutorial-kicker,.tutorial-section-label,.tutorial-check-card>span,.tutorial-check-card>b,.tutorial-step-no,.tutorial-feature-grid article>span,.tutorial-provider-grid a:hover,.tutorial-number-list a,.tutorial-feature-grid a,.tutorial-jump-nav a:hover){color:var(--lv7-primary)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-hero-card,.tutorial-hero-badge,.tutorial-step-no){background:var(--lv7-soft)!important;border-color:var(--lv7-border)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-hero-card,.tutorial-section,.tutorial-check-card,.tutorial-jump-nav,.tutorial-step-list article,.tutorial-provider-grid a,.tutorial-feature-grid article,.tutorial-recommend-grid article,.tutorial-faq-list details,.tutorial-hybrid-demo,.tutorial-hybrid-demo>div,.tutorial-info,.tutorial-note,.tutorial-tip){border-color:var(--lv7-border)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-section,.tutorial-check-card,.tutorial-jump-nav,.tutorial-step-list article,.tutorial-provider-grid a,.tutorial-feature-grid article,.tutorial-recommend-grid article,.tutorial-faq-list details,.tutorial-hybrid-demo>div){background:var(--lv7-card)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-hero-card h2,.tutorial-section h2,.tutorial-check-card strong,.tutorial-step-list strong,.tutorial-provider-grid strong,.tutorial-feature-grid h3,.tutorial-faq-list summary,.tutorial-provider-heading h2,.tutorial-feature-grid strong){color:var(--lv7-text)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-hero-card p,.tutorial-check-card small,.tutorial-step-list p,.tutorial-number-list,.tutorial-provider-grid small,.tutorial-lead,.tutorial-faq-list p,.tutorial-recommend-grid p){color:var(--lv7-muted)!important}
#lv7-dashboard-root .tutorial-page .tutorial-jump-nav a{background:var(--lv7-subtle)!important;border-color:var(--lv7-border)!important;color:var(--lv7-text)!important}
#lv7-dashboard-root .tutorial-page .tutorial-jump-nav a:hover{background:var(--lv7-soft)!important;color:var(--lv7-primary)!important}
#lv7-dashboard-root .tutorial-page .tutorial-provider-grid a:hover{border-color:var(--lv7-primary)!important}
#lv7-dashboard-root .tutorial-page .tutorial-hero-badge{color:var(--lv7-primary)!important}
#lv7-dashboard-root .tutorial-page .tutorial-info{background:var(--lv7-soft)!important;color:var(--lv7-text)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-danger,.tutorial-warning){background:var(--lv7-danger-soft)!important;border-color:color-mix(in srgb,var(--lv7-danger) 32%,var(--lv7-border))!important;color:var(--lv7-danger)!important}
#lv7-dashboard-root .tutorial-page :is(.tutorial-danger,.tutorial-warning) :is(strong,h3){color:var(--lv7-danger)!important}

/* Privacy when logged in, and the public privacy copy. Both use identical brand variables. */
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page){--pkv-accent:var(--pk-brand);--pkv-soft:var(--pk-brand-soft);--pkv-text:var(--pkv17-text);--pkv-muted:var(--pkv17-muted);--pkv-card:var(--pkv17-card);--pkv-border:var(--pkv17-border)}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) :is(.privacy-kicker,.privacy-section-no,.privacy-summary-card strong,.privacy-jump-nav a:hover,.privacy-section a){color:var(--pkv-accent)!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) :is(.privacy-summary-card,.privacy-section-no){background:var(--pkv-soft)!important;border-color:var(--pkv-border)!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) :is(.privacy-hero,.privacy-section,.privacy-jump-nav,.privacy-provider-list article,.privacy-data-grid article,.privacy-risk-card){background:var(--pkv-card)!important;border-color:var(--pkv-border)!important;box-shadow:none!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) :is(.privacy-section h2,.privacy-section h3,.privacy-hero h1,.privacy-provider-list strong,.privacy-data-grid h3,.privacy-risk-title strong){color:var(--pkv-text)!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) :is(.privacy-hero p,.privacy-hero small,.privacy-summary-card span,.privacy-section p,.privacy-section li,.privacy-provider-list p,.privacy-data-grid p,.privacy-jump-nav a){color:var(--pkv-muted)!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) .privacy-jump-nav a:hover{background:var(--pkv-soft)!important;color:var(--pkv-accent)!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) .privacy-note{background:var(--pkv-soft)!important;border-color:var(--pkv-border)!important;color:var(--pkv-text)!important}
:is(#lv7-dashboard-root .privacy-page,.privacy-public-shell .privacy-page) :is(.privacy-danger,.privacy-risk-card-strong){border-color:#cc5962!important;background:var(--lv7-danger-soft,#ffeded)!important}
html:has(.privacy-public-shell) body{background:var(--pkv17-bg)!important;color:var(--pkv17-text)!important}
html:has(.privacy-public-shell) .privacy-public-header{background:var(--pkv17-card)!important;border-color:var(--pkv17-border)!important}
html:has(.privacy-public-shell) .privacy-public-actions a.btn-primary{background:var(--pk-brand)!important;border-color:var(--pk-brand)!important;color:#fff!important}

/* Auth pages contain fixed old Inter, blue backgrounds and inline CSS.
   Keep selectors stronger than legacy inline selectors; preserve CSRF/forms untouched. */
html:has(.login-stitch) body,html:has(.login-wrap) body{background:var(--pkv17-bg)!important;color:var(--pkv17-text)!important}
html:has(.login-stitch) .login-stitch{background:var(--pkv17-bg)!important;color:var(--pkv17-text)!important;font-family:'Manrope','Inter',system-ui,sans-serif!important}
html:has(.login-stitch) .login-stitch-card,html:has(.login-wrap) .login-card{background:var(--pkv17-card)!important;border:1px solid var(--pkv17-border)!important;color:var(--pkv17-text)!important;box-shadow:none!important}
html:has(.login-wrap) .login-wrap{background:var(--pkv17-bg)!important;color:var(--pkv17-text)!important}
html:has(.login-stitch) :is(.login-stitch-title h2,.login-stitch-brand h1,.login-stitch-form label),
html:has(.login-wrap) :is(.login-card h1,.login-card label,.login-card strong){color:var(--pkv17-text)!important}
html:has(.login-stitch) :is(.login-stitch-title p,.login-stitch-brand p,.login-stitch-footer,.login-stitch-divider),
html:has(.login-wrap) :is(.login-card .muted,.auth-brand-copy small){color:var(--pkv17-muted)!important}
html:has(.login-stitch) .login-stitch-form input,html:has(.login-wrap) .login-card :is(input,select,textarea){background:var(--pkv17-card)!important;border:1px solid var(--pkv17-border)!important;color:var(--pkv17-text)!important;font-family:'Manrope','Inter',system-ui,sans-serif!important}
html:has(.login-stitch) .login-stitch-form input:focus,html:has(.login-wrap) .login-card :is(input,textarea):focus{border-color:var(--pk-brand)!important;outline:2px solid var(--pk-brand-soft)!important;box-shadow:none!important}
html:has(.login-stitch) .login-stitch-submit,html:has(.login-wrap) .login-card .btn-primary{background:var(--pk-brand)!important;border-color:var(--pk-brand)!important;color:#fff!important}
html:has(.login-stitch) .login-stitch-links a,html:has(.login-wrap) .login-card a:not(.btn){color:var(--pk-brand)!important}
html:has(.login-stitch) .login-stitch-google,html:has(.login-wrap) .login-card .btn-google-auth{background:var(--pkv17-card)!important;border-color:var(--pkv17-border)!important;color:var(--pkv17-text)!important}
html:has(.login-stitch) .login-stitch-divider:before,html:has(.login-stitch) .login-stitch-divider:after{background:var(--pkv17-border)!important}
/* Preview selectors on auth pages intentionally reuse the Home's shared UI controller. */
.pk-auth-theme{display:flex;justify-content:center;align-items:center;gap:7px;margin:16px auto 0;padding:7px;width:max-content;max-width:100%;border:1px solid var(--pkv17-border);background:var(--pkv17-card);border-radius:10px}
.pk-auth-theme .pk-public-dot{width:17px;height:17px;min-width:17px;min-height:17px;border:2px solid var(--pkv17-card);border-radius:50%;padding:0;cursor:pointer}
.pk-auth-theme .pk-public-dot[aria-pressed=true]{outline:2px solid var(--pk-brand);outline-offset:1px}
.pk-auth-theme .pk-public-mode{color:var(--pkv17-muted);cursor:pointer;padding-left:6px;background:none;border:0;border-left:1px solid var(--pkv17-border);display:grid;place-items:center}
/* Listener APK icon keeps exact source blue - no theme filter or repaint. */
#lv7-dashboard-root .listener-hub-page .listener-app-logo{background:transparent!important}
#lv7-dashboard-root .listener-hub-page .listener-app-logo img{filter:none!important;opacity:1!important;mix-blend-mode:normal!important}

html body #pk-login-submit,html body #register-submit{background:var(--pk-brand)!important;background-image:none!important;border-color:var(--pk-brand)!important;color:#fff!important}
html[data-theme="dark"]:has(.login-stitch) body .login-stitch .login-stitch-card,
html[data-theme="dark"]:has(.login-wrap) body .login-wrap .login-card{background:var(--pkv17-card)!important;border-color:var(--pkv17-border)!important;color:var(--pkv17-text)!important}
