﻿/* Platonica Commercial Visibility Audit
   Edit visual design here. Keep HTML structure in index.html and app behavior in app.js. */

@keyframes plRing { 0% { transform:scale(.55); opacity:.0; } 30% { opacity:.55; } 100% { transform:scale(1.5); opacity:0; } }
@keyframes plSweep { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@keyframes plDrift { 0%,100% { transform:translate(0,0); } 50% { transform:translate(18px,-14px); } }
@keyframes plFadeUp { from { opacity:0; transform:translateY(14px); filter:blur(8px); } to { opacity:1; transform:translateY(0); filter:blur(0); } }
@keyframes plLogoMist { 0% { opacity:0; transform:translateY(10px) scale(.86); filter:blur(12px); } 100% { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes plCalcFloat { 0%,100% { transform:translateY(0) scale(1); } 45% { transform:translateY(-10px) scale(1.035); } }
input::placeholder, textarea::placeholder { color:rgba(242,240,240,0.30); }
input:focus, textarea:focus { outline:none; }
input:focus, textarea:focus { border-color:var(--pl-violet-light) !important; background:rgba(72,17,191,0.06) !important; }
[tabindex="-1"]:focus { outline:none; }
button { border-radius:999px !important; }
button:focus-visible, a:focus-visible, [role="radiogroup"]:focus-visible, input:focus-visible, textarea:focus-visible { outline:2px solid #9D7AF5 !important; outline-offset:3px; }
input { border-radius:999px !important; }
textarea { border-radius:24px !important; }
.pl-form-submit, .pl-form-back { border-radius:999px !important; }
.pl-action-card { border-radius:24px !important; }
.pl-quiz-answer { min-height:88px !important; padding:14px 20px !important; gap:14px !important; border-radius:20px !important; }
.pl-score-rail-card { border-top:1px solid rgba(242,240,240,0.14); border-bottom:1px solid rgba(242,240,240,0.14); }
.pl-save-pill { border-radius:999px !important; }
.pl-skip-divider { display:flex; align-items:center; gap:12px; margin:18px 0 18px; color:var(--fg3); font-family:var(--font-display); font-size:10.5px; font-weight:600; letter-spacing:.10em; text-transform:none; opacity:.72; }
.pl-skip-divider::before, .pl-skip-divider::after { content:""; height:1px; flex:1; background:rgba(242,240,240,0.12); }
.pl-skip-divider span { white-space:nowrap; }
#auditWindow { animation:plFadeUp .72s var(--ease) both; background:radial-gradient(circle at 86% 6%,rgba(72,17,191,.24),transparent 52%),radial-gradient(circle at 4% 96%,rgba(84,78,156,.13),transparent 46%),#17161D !important; }
.pl-stage, .pl-quiz-panel, .pl-result-scroll, .pl-panel-scroll { background:transparent !important; }
#auditWindow.pl-window-flow { height:auto !important; min-height:min(740px,92vh); overflow:visible !important; }
.pl-root-flow { align-items:flex-start !important; }
.pl-window-flow .pl-stage { flex:none !important; min-height:0; overflow:visible !important; }
.pl-window-flow .pl-result-scroll, .pl-window-flow .pl-panel-scroll { height:auto !important; overflow:visible !important; }
.pl-calc-figure { animation:plCalcFloat 2.35s ease-in-out infinite; will-change:transform; }
.pl-hero-wordmark { display:block; width:150px; height:auto; margin:0 0 28px; }
.pl-action-card { min-height:68px !important; border-radius:24px !important; }
.pl-quiz-panel { max-width:980px !important; padding:clamp(24px,3vw,34px) clamp(48px,5vw,64px) !important; }
.pl-quiz-panel > div:first-child { margin-bottom:clamp(12px,1.8vh,18px) !important; }
.pl-quiz-options { flex:0 0 auto !important; display:grid !important; grid-template-rows:repeat(3,auto); gap:10px !important; overflow:visible !important; }
.pl-question-title { font-size:clamp(20px,2.25vw,28px) !important; margin-bottom:clamp(12px,1.8vh,18px) !important; }
.pl-question-footer { padding-top:clamp(10px,1.6vh,16px) !important; }
.pl-quiz-answer > span:last-child > span:first-child { font-size:14.5px !important; line-height:1.25 !important; }
.pl-quiz-answer > span:last-child > span:last-child { font-size:12.75px !important; line-height:1.36 !important; }
.pl-result-primary { margin-bottom:18px !important; padding:18px 22px !important; }
.pl-result-secondary { margin-bottom:20px !important; padding:18px 22px !important; }
.pl-result-utilities { padding-top:4px !important; }
.pl-score-narrative { width:100%; margin:30px auto 0; display:flex; flex-direction:column; gap:24px; text-align:left; }
.pl-score-narrative section { margin:0; }
.pl-score-narrative h3 { margin:0 0 8px; color:var(--fg1); font-family:var(--font-display); font-size:16.5px; font-weight:700; letter-spacing:-0.01em; line-height:1.35; }
.pl-score-narrative p { margin:0; color:var(--fg2); font-size:15px; line-height:1.66; text-align:left; max-width:66ch; }
.pl-save-pill { display:inline-flex !important; align-items:center !important; justify-content:center !important; min-height:46px !important; padding:12px 20px !important; border-radius:999px !important; }
.pl-post-primary { border-radius:999px !important; min-height:56px !important; width:min(100%,560px) !important; }
.pl-form-grid { align-items:start; }
.pl-form-stage-1, .pl-form-stage-2 { max-width:760px; }
.pl-form-stage-1 input { max-width:520px !important; }
.pl-form-stage-2 textarea { max-width:720px !important; }
.pl-form-stage-2 div[style*="display:flex"] { gap:12px !important; }
.pl-lang-gate > * { opacity:0; animation:plFadeUp .82s var(--ease) forwards; }
.pl-lang-gate > svg { padding:7px; border-radius:999px; color:rgba(242,240,240,0.88); background:rgba(242,240,240,0.045); border:1px solid rgba(242,240,240,0.12); box-shadow:0 0 34px rgba(242,240,240,0.10), inset 0 1px 0 rgba(255,255,255,0.22); backdrop-filter:blur(16px) saturate(160%); -webkit-backdrop-filter:blur(16px) saturate(160%); animation-name:plLogoMist; }
.pl-lang-gate > svg path { fill:currentColor !important; }
.pl-lang-gate > *:nth-child(2) { animation-delay:.08s; }
.pl-lang-gate > *:nth-child(3) { animation-delay:.16s; }
.pl-lang-gate > *:nth-child(4) { animation-delay:.24s; }
.pl-lang-gate > *:nth-child(5) { animation-delay:.34s; }
.pl-lang-pill:hover { border-color:rgba(107,53,232,0.82) !important; background:rgba(72,17,191,0.22) !important; box-shadow:0 16px 42px rgba(72,17,191,0.28), inset 0 1px 0 rgba(255,255,255,0.16) !important; transform:translateY(-2px) !important; }
.pl-lang-pill:focus-visible { outline:2px solid rgba(107,53,232,0.72); outline-offset:4px; }
.pl-lang-pill span { display:block; max-width:100%; overflow:visible; text-align:center; white-space:normal; }
button[onClick="{{ startAudit }}"], button[onclick*="startAudit" i] { justify-content:center !important; min-height:64px !important; padding:16px 36px !important; border-radius:999px !important; }
.pl-q-emphasis { font-style:italic; font-weight:500; }
.pl-body-copy, .pl-quiz-answer > span:last-child > span:last-child, .pl-panel-content p, .pl-privacy-copy p { text-align:left !important; }
.pl-result-score { font-size:clamp(74px,9.4vw,116px) !important; }
.pl-result-denom { font-size:clamp(20px,2.2vw,28px) !important; color:rgba(242,240,240,0.48) !important; }
.pl-side-score { font-size:84px !important; }
.pl-side-denom { font-size:22px !important; color:rgba(242,240,240,0.48) !important; }
.pl-scroll::-webkit-scrollbar { width:8px; }
.pl-scroll::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.12); border-radius:999px; }
.pl-helper { color:rgba(242,240,240,0.68); }
.pl-source-link { display:inline-block; margin-top:8px; color:#BBA2FF; font-size:12px; text-underline-offset:3px; }
.pl-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.pl-marketing-consent { width:min(100%,720px); margin-top:18px; padding:14px 16px; display:flex; align-items:flex-start; gap:11px; border:1px solid var(--border-strong); border-radius:18px !important; background:rgba(255,255,255,.025); color:var(--fg2); font-family:var(--font-body); font-size:12.5px; line-height:1.5; text-align:left; cursor:pointer; }
.pl-consent-box { width:20px; height:20px; flex:0 0 20px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border-strong); border-radius:6px; color:transparent; background:rgba(255,255,255,.03); }
.pl-marketing-consent[aria-checked="true"] { border-color:rgba(107,53,232,.7); background:rgba(72,17,191,.1); }
.pl-marketing-consent[aria-checked="true"] .pl-consent-box { color:#fff; background:var(--accent); border-color:var(--accent); }
.pl-submit-error { width:min(100%,720px); margin-top:16px; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid rgba(187,162,255,.48); border-radius:14px; background:rgba(72,17,191,.1); color:var(--fg1); font-size:12.5px; }
.pl-submit-error button { flex:none; padding:8px 13px; border:1px solid rgba(187,162,255,.6); background:transparent; color:#D8C9FF; font-family:var(--font-display); font-weight:600; cursor:pointer; }
.pl-calendar-action { text-decoration:none; }
.pl-calendar-action-secondary { display:grid !important; grid-template-columns:minmax(0,1fr) auto; align-items:center !important; gap:18px !important; }
.pl-calendar-action-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.pl-calendar-action-copy strong { color:var(--fg1); font-family:var(--font-display); font-size:14.5px; font-weight:600; line-height:1.3; }
.pl-calendar-action-copy > span { color:var(--fg3); font-size:12px; line-height:1.4; }
.pl-calendar-action-primary { display:inline-flex !important; }
.pl-google-calendar-logo { display:block; width:28px; height:28px; flex:0 0 28px; border-radius:6px; }
.pl-calendar-action:hover { transform:translateY(-2px); }
.pl-privacy-copy { margin-bottom:26px; }
.pl-privacy-copy p { margin:0 0 13px; color:var(--fg2); font-size:13.5px; line-height:1.65; }
.pl-privacy-copy p:last-child { margin-bottom:0; }
.pl-analytics-consent { position:fixed; z-index:60; left:50%; bottom:max(18px,env(safe-area-inset-bottom)); transform:translateX(-50%); width:min(760px,calc(100vw - 28px)); padding:18px; display:flex; align-items:center; justify-content:space-between; gap:20px; border:1px solid rgba(187,162,255,.38); border-radius:20px; background:rgba(18,18,20,.97); box-shadow:0 24px 80px rgba(0,0,0,.65); backdrop-filter:blur(18px); }
.pl-analytics-consent h2 { margin:0 0 5px; color:var(--fg1); font-family:var(--font-display); font-size:16px; }
.pl-analytics-consent p { margin:0; color:var(--fg2); font-size:12px; line-height:1.5; }
.pl-consent-actions { display:flex; gap:8px; flex:none; }
.pl-consent-actions button { min-height:42px; padding:10px 15px; border:1px solid var(--border-strong); font-family:var(--font-display); font-weight:600; cursor:pointer; }
.pl-consent-decline { background:transparent; color:var(--fg2); }
.pl-consent-accept { border-color:var(--accent) !important; background:var(--accent); color:#fff; }
#appRoot { min-height:100vh !important; height:auto !important; overflow:visible !important; padding:clamp(14px,2.6vh,30px) !important; background:#0B0B0E !important; }
#auditWindow { width:min(1160px,94vw) !important; height:min(740px,92vh) !important; }
.pl-result-scroll, .pl-panel-scroll { padding:clamp(28px,3.2vw,40px) clamp(48px,5vw,64px) !important; }
@media (min-width: 721px) {
  .pl-quiz-panel { padding:clamp(22px,2.7vh,30px) clamp(48px,5vw,64px) !important; }
  .pl-start-hero { max-width:980px !important; margin:0 auto !important; align-items:flex-start !important; }
  .pl-start-hero-es { justify-content:center !important; padding-top:clamp(24px,3.5vh,34px) !important; padding-bottom:clamp(24px,3.5vh,34px) !important; }
  .pl-start-heading { font-size:clamp(42px,4.8vw,66px) !important; line-height:1.08 !important; letter-spacing:-0.025em !important; max-width:760px !important; margin-bottom:24px !important; }
  .pl-start-heading-es { font-size:clamp(36px,3.8vw,52px) !important; line-height:1.02 !important; max-width:920px !important; margin-bottom:20px !important; }
  .pl-start-subtitle { width:min(100%, 58ch) !important; max-width:58ch !important; font-size:clamp(17px,1.35vw,19px) !important; overflow-wrap:break-word !important; }
  .pl-quiz-panel { justify-content:center !important; }
  .pl-hero-wordmark { margin-bottom:46px !important; }
  .pl-start-meta { max-width:650px !important; }
  /* Desktop: fixed window, no page scroll. Only the score/panels scroll INSIDE the window. */
  #appRoot { height:100vh !important; min-height:100vh !important; overflow:hidden !important; }
  #auditWindow.pl-window-flow { height:min(740px,92vh) !important; min-height:0 !important; overflow:hidden !important; }
  .pl-root-flow { align-items:center !important; }
  .pl-window-flow .pl-stage { flex:1 1 auto !important; min-height:0 !important; overflow:hidden !important; }
  .pl-window-flow .pl-result-scroll, .pl-window-flow .pl-panel-scroll { height:100% !important; overflow:auto !important; }
}
@media (min-width:721px) and (max-height:760px) {
  .pl-quiz-panel { padding-top:16px !important; padding-bottom:14px !important; }
  .pl-quiz-panel > div:first-child { margin-bottom:10px !important; }
  .pl-question-title { font-size:clamp(18px,2vw,25px) !important; line-height:1.15 !important; margin-bottom:10px !important; }
  .pl-quiz-options { gap:8px !important; }
  .pl-quiz-answer { min-height:80px !important; padding:11px 18px !important; }
  .pl-quiz-answer > span:last-child > span:last-child { font-size:12px !important; line-height:1.3 !important; }
  .pl-question-footer { padding-top:8px !important; }
}
@media (max-width: 720px) {
  html, body { width:100%; min-height:100%; height:auto; overflow-x:hidden; }
  #appRoot { min-height:100dvh !important; height:auto !important; padding:12px !important; display:block !important; overflow:visible !important; }
  #auditWindow { width:100% !important; min-height:calc(100dvh - 24px) !important; height:auto !important; border-radius:20px !important; overflow:visible !important; }
  .pl-stage { flex:none !important; min-width:0 !important; min-height:100dvh; overflow:visible !important; }
  .pl-lang-gate { height:auto !important; min-height:100dvh !important; justify-content:center !important; overflow:visible !important; padding:24px 20px 30px !important; }
  .pl-lang-gate > div:first-child { font-size:12.5px !important; line-height:1.4 !important; margin-bottom:10px !important; }
  .pl-lang-gate h1 { font-size:clamp(27px,8vw,36px) !important; }
  .pl-lang-gate h1 + div { white-space:normal !important; margin-bottom:24px !important; }
  .pl-lang-actions { grid-template-columns:1fr !important; gap:12px !important; width:100% !important; max-width:430px !important; }
  .pl-lang-pill { min-height:72px !important; width:100% !important; padding:14px 20px !important; }
  .pl-start-hero { height:auto !important; min-height:100dvh !important; overflow:visible !important; justify-content:flex-start !important; padding:24px 20px 32px !important; max-width:none !important; width:100% !important; box-sizing:border-box !important; }
  .pl-hero-wordmark { width:116px; margin-bottom:24px; }
  .pl-start-heading { width:100% !important; max-width:100% !important; font-size:clamp(32px,9vw,40px) !important; line-height:1.03 !important; letter-spacing:-0.025em !important; margin-bottom:18px !important; overflow-wrap:break-word !important; }
  .pl-start-heading-es { font-size:clamp(28px,8vw,35px) !important; line-height:1.04 !important; margin-bottom:16px !important; }
  .pl-start-subtitle { width:100% !important; max-width:100% !important; box-sizing:border-box !important; overflow-wrap:break-word !important; margin:0 0 18px !important; font-size:15px !important; line-height:1.5 !important; }
  .pl-start-meta { width:100% !important; max-width:100% !important; gap:8px !important; margin-bottom:22px !important; }
  .pl-start-meta-item { width:100% !important; max-width:100% !important; min-width:0 !important; flex:1 1 100% !important; align-items:flex-start !important; white-space:normal !important; font-size:12px !important; line-height:1.35 !important; padding:9px 12px !important; }
  .pl-start-meta-dot { flex:0 0 5px !important; margin-top:.45em !important; }
  .pl-start-meta-text { display:block !important; min-width:0 !important; max-width:100% !important; white-space:normal !important; overflow-wrap:anywhere !important; word-break:normal !important; }
  button[onClick="{{ startAudit }}"], button[onclick*="startAudit" i] { width:100% !important; min-height:52px !important; padding:13px 20px !important; white-space:normal !important; line-height:1.25 !important; }
  .pl-quiz-panel { width:100% !important; height:auto !important; min-height:100dvh !important; padding:20px 20px 0 !important; }
  .pl-quiz-panel > div:first-child { margin-bottom:14px !important; }
  .pl-quiz-topline { align-items:flex-start !important; gap:12px !important; }
  .pl-quiz-category { min-width:0 !important; white-space:normal !important; overflow-wrap:break-word !important; font-size:12.5px !important; line-height:1.3 !important; }
  .pl-question-title { font-size:clamp(17px,4.8vw,20px) !important; line-height:1.25 !important; letter-spacing:-0.01em !important; margin-bottom:14px !important; overflow-wrap:break-word !important; }
  .pl-quiz-options { display:flex !important; flex:none !important; gap:9px !important; padding-right:0 !important; overflow:visible !important; }
  .pl-quiz-answer { min-height:78px !important; padding:13px 16px !important; gap:12px !important; border-radius:18px !important; }
  .pl-quiz-answer > span:first-child { width:19px !important; height:19px !important; }
  .pl-quiz-answer > span:last-child { min-width:0 !important; }
  .pl-quiz-answer > span:last-child > span:first-child { font-size:14px !important; line-height:1.3 !important; }
  .pl-quiz-answer > span:last-child > span:last-child { font-size:12.5px !important; line-height:1.4 !important; overflow-wrap:break-word !important; }
  .pl-question-footer { position:sticky; z-index:15; bottom:0; margin:10px -20px 0 !important; padding:10px 20px max(10px,env(safe-area-inset-bottom)) !important; background:rgba(23,22,29,.96); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  .pl-question-footer button { min-height:42px !important; }
  .pl-result-scroll { height:auto !important; overflow:visible !important; padding:24px 20px 32px !important; }
  .pl-result-layout { gap:18px !important; }
  .pl-result-score-panel > div:first-child { gap:6px !important; }
  .pl-result-score { font-size:clamp(72px,24vw,96px) !important; }
  .pl-result-denom { font-size:clamp(17px,5vw,21px) !important; }
  .pl-result-score-panel p { text-align:left !important; font-size:14.5px !important; line-height:1.6 !important; }
  .pl-score-narrative { margin-top:20px; gap:16px; }
  .pl-result-primary, .pl-result-secondary { padding:15px 16px !important; margin-bottom:14px !important; }
  .pl-result-utilities { flex-direction:column !important; align-items:stretch !important; gap:8px !important; }
  .pl-result-utilities > button { width:100% !important; min-height:44px !important; justify-content:center !important; }
  .pl-form-actions { flex-direction:column !important; align-items:stretch !important; }
  .pl-form-submit { order:1 !important; width:100% !important; justify-content:center !important; }
  .pl-form-back { order:2 !important; width:100% !important; justify-content:center !important; }
  .pl-post-primary { width:100% !important; }
  .pl-save-pill { width:100% !important; justify-content:center !important; }
  .pl-skip-divider { margin:10px 0 14px !important; }
  .pl-mini-footer { flex-direction:column !important; align-items:flex-start !important; gap:6px !important; }
  .pl-mini-footer > span:last-child { margin-left:0 !important; flex-wrap:wrap !important; }
  .pl-panel-scroll { height:auto !important; overflow:visible !important; padding:24px 20px 32px !important; }
  .pl-panel-layout { display:block !important; }
  .pl-panel-score-rail { width:100% !important; min-width:0 !important; max-width:none !important; margin-bottom:16px !important; }
  .pl-score-rail-card { border-top:none !important; border-bottom:1px solid var(--border) !important; padding:4px 0 14px !important; }
  .pl-side-score { font-size:clamp(52px,16vw,66px) !important; }
  .pl-side-denom { font-size:18px !important; }
  .pl-panel-content { width:100% !important; min-width:0 !important; }
  .pl-form-grid { grid-template-columns:minmax(0,1fr) !important; gap:14px !important; }
  .pl-form-grid input, .pl-form-grid textarea { min-width:0 !important; font-size:16px !important; }
  .pl-form-stage-2 div[style*="display:flex"] { gap:8px !important; }
  .pl-form-stage-2 div[style*="display:flex"] button { flex:1 1 calc(50% - 8px) !important; min-width:0 !important; padding:11px 10px !important; }
  .pl-panel-content h2 { overflow-wrap:break-word !important; }
  .pl-google-calendar-logo { width:26px; height:26px; flex-basis:26px; }
  .pl-analytics-consent { align-items:stretch; flex-direction:column; gap:14px; padding:16px; }
  .pl-consent-actions { width:100%; }
  .pl-consent-actions button { flex:1; }
  .pl-submit-error { align-items:stretch; flex-direction:column; }
  .pl-submit-error button { width:100%; }
  .pl-body-copy { text-align:left !important; }
}
@media (max-width: 480px) {
  #appRoot { padding:0 !important; }
  #auditWindow { min-height:100dvh !important; height:auto !important; border:none !important; border-radius:0 !important; }
  .pl-start-hero { padding-left:max(20px,env(safe-area-inset-left)) !important; padding-right:max(20px,env(safe-area-inset-right)) !important; padding-bottom:max(28px,env(safe-area-inset-bottom)) !important; }
  .pl-result-scroll, .pl-panel-scroll { padding-left:max(20px,env(safe-area-inset-left)) !important; padding-right:max(20px,env(safe-area-inset-right)) !important; padding-bottom:max(30px,env(safe-area-inset-bottom)) !important; }
  .pl-analytics-consent { width:calc(100vw - 20px); bottom:max(10px,env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
@media print {
  #appRoot { display:none !important; }
  #onepagerPrint { position:static !important; display:block !important; box-shadow:none !important; }
  #opControls { display:none !important; }
  html, body { background:#fff !important; }
}
