/* ============================================================
   PoolMap – Refined UI Theme
   Clean spacing, consistent rhythm, better mobile UX
   ============================================================ */

:root{
  /* Palette */
  --ink:#0f2440;
  --ink-2:#1d3a5f;
  --ink-3:#2c4a72;
  --paper:#f5f7fa;
  --card:#ffffff;
  --line:#e2e8f0;
  --line-2:#cbd5e1;

  --text:#1e293b;
  --muted:#64748b;
  --muted-2:#94a3b8;

  --accent:#2563eb;
  --accent-2:#1d4ed8;
  --accent-soft:#eff6ff;

  --warm:#f97316;
  --warm-2:#ea580c;
  --warm-soft:#fff7ed;

  --ok:#16a34a;
  --danger:#dc2626;

  /* Spacing scale (4px base) */
  --s1:4px;
  --s2:8px;
  --s3:12px;
  --s4:16px;
  --s5:24px;
  --s6:32px;
  --s7:48px;
  --s8:64px;

  /* Radius */
  --r-sm:8px;
  --r:12px;
  --r-lg:16px;
  --r-xl:20px;
  --r-pill:999px;

  /* Shadows */
  --sh-sm:0 1px 2px rgba(15,36,64,.06);
  --sh:0 4px 12px rgba(15,36,64,.06), 0 1px 3px rgba(15,36,64,.05);
  --sh-lg:0 12px 32px rgba(15,36,64,.10), 0 4px 8px rgba(15,36,64,.05);

  /* Layout */
  --container:1180px;
  --nav-h:68px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px);-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--paper);
  color:var(--text);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
body.locked{overflow:hidden}
a{color:var(--accent);text-decoration:none;transition:color .15s}
a:hover{color:var(--accent-2)}
img{max-width:100%;display:block}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--warm);outline-offset:2px;border-radius:4px}
.hidden{display:none !important}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
}

/* ---------- Shared buttons ---------- */
.nav-cta,
.upload-button,
.hero-button,
.contact-btn,
.plan-cta,
.login-btn,
.popup-btn,
.action-btn{
  font:inherit;
  font-weight:600;
  font-size:15px;
  cursor:pointer;
  border-radius:var(--r);
  border:1px solid transparent;
  padding:10px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--s2);
  line-height:1.2;
  transition:background .15s, border-color .15s, color .15s, transform .1s, box-shadow .15s;
}
.nav-cta:active,
.upload-button:active,
.hero-button:active,
.action-btn:active{transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ============================================================
   NAVBAR
   ============================================================ */
.main-nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(150%) blur(12px);
  -webkit-backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid var(--line);
  height:var(--nav-h);
}
.nav-container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--s5);
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--s4);
}
.nav-brand{display:flex;align-items:center;gap:var(--s2);flex-shrink:0}
.nav-logo-img{height:38px;width:auto}

.nav-links{display:flex;align-items:center;gap:var(--s1);flex-wrap:wrap}
.nav-link{
  color:var(--text);
  font-weight:500;
  font-size:15px;
  padding:8px 12px;
  border-radius:var(--r-sm);
  transition:background .15s, color .15s;
}
.nav-link:hover{background:var(--paper);color:var(--accent)}
.nav-cta{background:var(--ink);color:#fff;padding:9px 16px;font-size:14px}
.nav-cta:hover{background:var(--ink-2);color:#fff}
#razorpay-btn{background:var(--warm);color:#2a1500}
#razorpay-btn:hover{background:var(--warm-2);color:#fff}
#loginMenuBtn{background:var(--accent)}
#loginMenuBtn:hover{background:var(--accent-2)}
#logoutBtn{background:transparent;border:1px solid var(--line);color:var(--text)}
#logoutBtn:hover{background:var(--paper)}
#usageLabel{font-size:13px;color:var(--muted);font-weight:600}

/* Mobile nav toggle */
.nav-toggle{
  display:none;
  background:none;
  border:0;
  font-size:1.4rem;
  color:var(--ink);
  cursor:pointer;
  padding:var(--s2);
  border-radius:var(--r-sm);
}
.nav-toggle:hover{background:var(--paper)}

/* ============================================================
   HERO
   ============================================================ */
.hero-section{
  position:relative;
  background:linear-gradient(180deg,var(--ink) 0%, #142c4d 100%);
  color:#fff;
  overflow:hidden;
}
.hero-background{position:absolute;inset:0;pointer-events:none}
.hero-particles{
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 56px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 56px);
  mask-image:radial-gradient(ellipse at center, black 40%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center, black 40%, transparent 80%);
}
.hero-gradient{
  position:absolute;inset:0;
  background:radial-gradient(60% 80% at 15% 20%,rgba(37,99,235,.35),transparent 70%),
             radial-gradient(50% 60% at 100% 100%,rgba(249,115,22,.18),transparent 70%);
}
.hero-content{
  position:relative;
  max-width:var(--container);
  margin:0 auto;
  padding:var(--s8) var(--s5) var(--s7);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:var(--s6) var(--s7);
  align-items:center;
}
.hero-left .site-logo{
  width:150px;height:150px;
  object-fit:contain;
  background:#fff;
  border-radius:var(--r-xl);
  padding:var(--s3);
  box-shadow:0 20px 40px rgba(0,0,0,.25);
}
.hero-right{min-width:0}
.hero-subtitle{
  font-size:clamp(2rem,4.5vw,3.25rem);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.025em;
}
.hero-tagline{
  margin-top:var(--s4);
  color:#b8c7dc;
  font-size:1.05rem;
  max-width:60ch;
  line-height:1.55;
}
.hero-features{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s3);
}
.hero-feature{
  display:inline-flex;
  align-items:center;
  gap:var(--s2);
  padding:8px 16px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--r-pill);
  font-size:14px;
  color:#dbe6f5;
  backdrop-filter:blur(4px);
}
.hero-feature .feature-icon{color:var(--warm);font-size:14px}
.hero-cta{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s3);
  margin-top:var(--s2);
}
.hero-button{font-size:15px;padding:12px 22px}
.hero-button.primary{background:var(--warm);color:#2a1500}
.hero-button.primary:hover{background:#fb923c;color:#2a1500;transform:translateY(-2px);box-shadow:0 8px 20px rgba(249,115,22,.35)}
.hero-button.secondary{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.25)}
.hero-button.secondary:hover{background:rgba(255,255,255,.14);color:#fff}
.hero-stats{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:var(--s7);
  padding-top:var(--s5);
  border-top:1px dashed rgba(255,255,255,.22);
  margin-top:var(--s4);
}
.stat-number{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;line-height:1}
.stat-label{color:#9fb3cc;font-size:13px;margin-top:var(--s1);letter-spacing:.02em}

/* ============================================================
   SECTIONS
   ============================================================ */
main > section,
.about-company{
  max-width:var(--container);
  margin:0 auto;
  padding:var(--s8) var(--s5);
}
.section-header{margin-bottom:var(--s6);max-width:65ch}
.section-header h3,
.about-company h2,
.upload-header h2{
  font-size:clamp(1.5rem,2.5vw,1.9rem);
  letter-spacing:-.02em;
  line-height:1.2;
  color:var(--ink);
  font-weight:700;
}
.section-header i,
.upload-header i,
.about-company i{color:var(--accent);margin-right:var(--s2)}
.section-header p,
.upload-header p{color:var(--muted);margin-top:var(--s2);font-size:1.02rem}

/* ============================================================
   UPLOAD AREA
   ============================================================ */
.upload-area{padding-top:var(--s7)}
.upload-content{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:var(--s6);
  box-shadow:var(--sh);
}
.upload-zone{
  margin:var(--s5) 0;
  padding:var(--s8) var(--s5);
  text-align:center;
  border:2px dashed var(--line-2);
  border-radius:var(--r-lg);
  background:linear-gradient(180deg,#fafcff,#f5f8ff);
  transition:border-color .15s,background .15s,transform .15s;
}
.upload-zone:hover,
.upload-zone.dragover,
.upload-zone.drag-over{
  border-color:var(--accent);
  background:var(--accent-soft);
}
.upload-icon{font-size:3rem;color:var(--accent);margin-bottom:var(--s3)}
.upload-text h3{margin-top:var(--s2);color:var(--ink);font-size:1.15rem;font-weight:600}
.upload-text p{color:var(--muted);margin-bottom:var(--s5)}
.upload-button{background:var(--accent);color:#fff;margin:var(--s1)}
.upload-button:hover{background:var(--accent-2);color:#fff}
.upload-info{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s3) var(--s6);
  color:var(--muted);
  font-size:14px;
  padding-top:var(--s4);
  border-top:1px solid var(--line);
}
.info-item{display:flex;gap:var(--s2);align-items:center}
.info-icon{color:var(--ok)}

/* ============================================================
   OUTPUT
   ============================================================ */
.output-section{max-width:var(--container);margin:0 auto;padding:0 var(--s5) var(--s7)}
.view-toggle{display:flex;gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap}
.output-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:var(--s2);
  margin:var(--s4) 0 var(--s3);
}
.output-header h3{color:var(--ink);font-size:1.15rem;font-weight:600}
.file-info{color:var(--muted);font-size:14px}

.tree-container,
.diagram-container{
  position:relative;
  border-radius:var(--r-lg);
  padding:var(--s5);
  overflow:auto;
  max-height:560px;
  box-shadow:var(--sh);
}
.tree-container{
  background:#0b1d36;
  color:#d7e6ff;
  border:1px solid #1a3356;
}
.diagram-container{
  background:#fff;
  color:var(--text);
  border:1px solid var(--line);
}
#treeOutput{
  font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  white-space:pre;
  color:#cfe0ff;
}
.watermark{
  margin-top:var(--s4);
  padding-top:var(--s3);
  border-top:1px solid rgba(255,255,255,.08);
  font-size:12px;
  color:#7d94b4;
  text-align:right;
}
.action-bar{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s3);
  margin-top:var(--s5);
}
.action-btn{
  background:var(--card);
  color:var(--ink);
  border:1px solid var(--line);
  padding:10px 16px;
  font-size:14px;
}
.action-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.copy-btn,
.download-btn{background:var(--accent);color:#fff;border-color:var(--accent)}
.copy-btn:hover:not(:disabled),
.download-btn:hover:not(:disabled){background:var(--accent-2);color:#fff;border-color:var(--accent-2)}
.clear-btn{color:#b42318}
.clear-btn:hover:not(:disabled){border-color:var(--danger);color:var(--danger);background:#fef2f2}

.wait-timer{
  margin-top:var(--s5);
  background:var(--warm-soft);
  border:1px solid #fed7aa;
  border-radius:var(--r-lg);
  padding:var(--s5);
  text-align:center;
}
.timer-icon{font-size:1.6rem;color:var(--warm);margin-bottom:var(--s2)}
.timer-options{margin-top:var(--s3)}
.upgrade-link,
.watch-ad-link{
  font:inherit;
  font-weight:600;
  background:none;
  border:0;
  color:var(--accent);
  cursor:pointer;
  padding:6px 10px;
  border-radius:var(--r-sm);
}
.upgrade-link:hover,
.watch-ad-link:hover{background:var(--accent-soft)}
.watch-ad-container{margin-top:var(--s3);font-size:14px;color:var(--muted)}

/* ============================================================
   FEATURES / STEPS
   ============================================================ */
.features-grid,
.steps-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:var(--s5);
}
.feature-card,
.step-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:var(--s5);
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.feature-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--sh-lg);
  border-color:var(--line-2);
}
.feature-card .feature-icon{
  width:46px;height:46px;
  border-radius:var(--r);
  background:var(--accent-soft);
  color:var(--accent);
  display:grid;place-items:center;
  margin-bottom:var(--s3);
  font-size:18px;
}
.feature-card h4,
.step-content h5{
  font-size:1.05rem;
  color:var(--ink);
  margin-bottom:var(--s2);
  font-weight:600;
}
.feature-card p,
.step-content p{color:var(--muted);font-size:15px;line-height:1.6}
.step-card{
  display:flex;
  gap:var(--s4);
  border-left:4px solid var(--accent);
}
.step-icon{
  flex:none;
  width:36px;height:36px;
  border-radius:50%;
  background:var(--ink);
  color:#fff;
  display:grid;place-items:center;
  font-weight:700;
  font-size:15px;
}
.step-content a{display:inline-block;margin-top:var(--s2);font-weight:600}

/* ============================================================
   PRICING
   ============================================================ */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,340px));
  gap:var(--s5);
}
.pricing-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:var(--s6);
  transition:transform .2s,box-shadow .2s;
}
.pricing-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.pricing-card.highlighted{
  background:linear-gradient(180deg,var(--ink) 0%, #142c4d 100%);
  color:#fff;
  border-color:var(--ink);
  box-shadow:0 20px 44px rgba(15,36,64,.28);
  position:relative;
}
.pricing-card.highlighted::before{
  content:"POPULAR";
  position:absolute;
  top:-12px;
  right:var(--s5);
  background:var(--warm);
  color:#2a1500;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  padding:4px 12px;
  border-radius:var(--r-pill);
}
.plan-header h4{font-size:1.1rem;font-weight:700;opacity:.95}
.plan-price{font-size:2.5rem;font-weight:800;margin:var(--s2) 0 var(--s5);letter-spacing:-.03em;line-height:1}
.plan-unit{font-size:1rem;font-weight:500;opacity:.7}
.plan-features{
  list-style:none;
  display:grid;
  gap:var(--s3);
  margin-bottom:var(--s5);
  font-size:15px;
}
.plan-features li{display:flex;align-items:center;gap:var(--s2)}
.plan-features .fa-check-circle{color:var(--ok)}
.plan-features .fa-times-circle{color:#e57373}
.pricing-card.highlighted .plan-features .fa-times-circle{color:#fca5a5}
.plan-cta{
  width:100%;
  background:var(--paper);
  color:var(--muted);
  border:1px solid var(--line);
  cursor:default;
}
.highlighted .plan-cta{
  background:var(--warm);
  color:#2a1500;
  border-color:var(--warm);
  cursor:pointer;
}
.highlighted .plan-cta:hover{background:#fb923c;color:#2a1500}

/* ============================================================
   ABOUT
   ============================================================ */
.about-content{
  max-width:72ch;
  display:grid;
  gap:var(--s3);
  color:var(--muted);
  font-size:15.5px;
}
.about-stats{
  display:flex;
  flex-wrap:wrap;
  gap:var(--s7);
  margin-top:var(--s4);
  padding-top:var(--s5);
  border-top:1px solid var(--line);
}
.about-stat .stat-number{color:var(--ink)}
.about-stat .stat-label{color:var(--muted)}

.about-company{
  border-top:1px solid var(--line);
  margin-top:0;
}
.about-company h2{font-size:1.6rem}
.about-company h4{
  margin:var(--s2) 0 var(--s3);
  color:var(--accent-2);
  font-weight:600;
  font-size:1.05rem;
}
.about-company p{max-width:72ch;color:var(--muted);font-size:15.5px}

.ad-banner{
  max-width:var(--container);
  margin:0 auto;
  padding:var(--s4) var(--s5);
  text-align:center;
  color:var(--muted);
  font-size:13px;
}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-form-container{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:var(--s6);
}
.contact-form{
  display:grid;
  gap:var(--s3);
  background:var(--card);
  padding:var(--s5);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
}
.contact-form input,
.contact-form textarea,
.input-group input{
  font:inherit;
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:#fff;
  color:var(--text);
  transition:border-color .15s,box-shadow .15s;
}
.contact-form textarea{resize:vertical;min-height:120px}
.contact-form input::placeholder,
.contact-form textarea::placeholder,
.input-group input::placeholder{color:var(--muted-2)}
.contact-form input:focus,
.contact-form textarea:focus,
.input-group input:focus{
  border-color:var(--accent);
  outline:none;
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
}
.contact-btn{background:var(--accent);color:#fff;justify-self:start;padding:12px 22px}
.contact-btn:hover{background:var(--accent-2);color:#fff}
.contact-details{display:grid;gap:var(--s5);align-content:start}
.contact-item{display:flex;gap:var(--s4)}
.contact-icon{
  flex:none;
  width:44px;height:44px;
  border-radius:var(--r);
  background:var(--ink);
  color:#fff;
  display:grid;place-items:center;
  font-size:16px;
}
.contact-info h4{color:var(--ink);font-size:1rem;font-weight:600;margin-bottom:var(--s1)}
.contact-info h5{margin-top:var(--s3);font-size:.95rem;color:var(--ink);font-weight:600;margin-bottom:var(--s1)}
.contact-info p{color:var(--muted);font-size:15px;overflow-wrap:anywhere}

/* ============================================================
   FOOTER
   ============================================================ */
.main-footer{
  background:var(--ink);
  color:#c5d3e6;
  margin-top:var(--s7);
}
.footer-container{
  max-width:var(--container);
  margin:0 auto;
  padding:var(--s7) var(--s5) var(--s4);
}
.footer-columns{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:var(--s7);
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:var(--s2);
  color:#fff;
  font-weight:800;
  font-size:1.2rem;
  margin-bottom:var(--s3);
}
.footer-logo{color:var(--warm)}
.footer-description{max-width:38ch;font-size:15px;line-height:1.6;color:#a8bcd4}
.footer-column h4{color:#fff;margin-bottom:var(--s3);font-size:1rem;font-weight:600}
.footer-column a{
  display:block;
  color:#a8bcd4;
  padding:5px 0;
  font-size:15px;
  transition:color .15s,transform .15s;
}
.footer-column a:hover{color:#fff;transform:translateX(3px)}
.footer-ads{margin-top:var(--s6)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.10)}
.footer-bottom-content{
  max-width:var(--container);
  margin:0 auto;
  padding:var(--s5) var(--s5);
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:var(--s3);
  font-size:14px;
}
.footer-copy{color:#a8bcd4}
.footer-social{display:flex;align-items:center;gap:var(--s3)}
.footer-social-text{color:#a8bcd4;font-size:14px}
.footer-social-links{display:flex;gap:var(--s2)}
.social-link{
  width:38px;height:38px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.20);
  color:#fff;
  display:grid;place-items:center;
  transition:background .15s,border-color .15s,transform .15s;
}
.social-link:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px)}

/* ============================================================
   OVERLAYS & POPUPS
   ============================================================ */
.login-overlay,
.upload-popup,
.popup-overlay{
  position:fixed;
  inset:0;
  z-index:100;
  background:rgba(10,20,36,.65);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  align-items:center;
  justify-content:center;
  padding:var(--s4);
}
.popup-overlay{display:none}
.popup-overlay.show,
.popup-overlay.active,
.popup-overlay.open{display:flex}
.login-overlay.hidden{display:none}

.login-card,
.upload-popup-box,
.popup-box{
  background:var(--card);
  border-radius:var(--r-lg);
  padding:var(--s6);
  width:min(92vw,420px);
  text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,.35);
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  max-height:92vh;
  overflow:auto;
}
.login-logo{height:64px;margin:0 auto var(--s3);display:block}
.login-card h2,
.upload-popup-box h3,
.popup-box h3{color:var(--ink);margin-bottom:var(--s3);font-size:1.25rem;font-weight:700}
.input-group{position:relative;margin-bottom:var(--s3);text-align:left}
.input-group i{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  pointer-events:none;
}
.input-group input{padding-left:44px}
.forgot-link,
.auth-toggle{
  font-size:14px;
  color:var(--accent);
  cursor:pointer;
  margin:var(--s2) 0 var(--s4);
  transition:color .15s;
}
.forgot-link:hover,
.auth-toggle:hover{color:var(--accent-2);text-decoration:underline}
.auth-toggle{margin:var(--s4) 0 0}
.login-btn{width:100%;background:var(--accent);color:#fff;padding:12px}
.login-btn:hover{background:var(--accent-2);color:#fff}
.divider{
  margin:var(--s4) 0;
  color:var(--muted);
  font-size:13px;
  display:flex;
  align-items:center;
  gap:var(--s3);
}
.divider::before,
.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.google-btn{
  font:inherit;
  font-weight:600;
  width:100%;
  padding:12px;
  border:1px solid var(--line);
  border-radius:var(--r);
  background:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--s2);
  transition:background .15s,border-color .15s;
}
.google-btn:hover{background:var(--paper);border-color:var(--line-2)}
.auth-message{
  font-size:14px;
  margin-top:var(--s3);
  color:var(--danger);
  min-height:1em;
  text-align:left;
}
.upload-popup-buttons,
.popup-buttons{
  display:flex;
  gap:var(--s3);
  justify-content:center;
  margin-top:var(--s5);
  flex-wrap:wrap;
}
.popup-btn{padding:10px 20px}
.popup-btn.primary{background:var(--accent);color:#fff}
.popup-btn.primary:hover{background:var(--accent-2);color:#fff}
.popup-btn.secondary{background:var(--paper);color:var(--text);border:1px solid var(--line)}
.popup-btn.secondary:hover{background:var(--line)}

/* ============================================================
   LEGAL PAGES
   ============================================================ */
.legal-page{
  max-width:820px;
  margin:0 auto;
  padding:var(--s8) var(--s5) var(--s7);
  background:var(--card);
  border-radius:var(--r-lg);
  box-shadow:var(--sh);
  border:1px solid var(--line);
  margin-top:var(--s6);
  margin-bottom:var(--s7);
}
body > .legal-page{margin-left:auto;margin-right:auto;margin-top:var(--s6);margin-bottom:var(--s7)}
.legal-page h1{
  font-size:clamp(1.6rem,3vw,2.1rem);
  font-weight:800;
  color:var(--ink);
  letter-spacing:-.02em;
  margin-bottom:var(--s3);
  padding-bottom:var(--s4);
  border-bottom:2px solid var(--line);
}
.legal-page h2{
  font-size:1.2rem;
  font-weight:700;
  color:var(--ink-2);
  margin:var(--s6) 0 var(--s2);
}
.legal-page p{
  color:var(--text);
  font-size:15.5px;
  margin-bottom:var(--s3);
  line-height:1.7;
}
.legal-page ul{
  padding-left:var(--s5);
  margin-bottom:var(--s4);
  color:var(--text);
  font-size:15.5px;
}
.legal-page li{margin-bottom:var(--s1);line-height:1.6}
.legal-page strong{color:var(--ink)}

/* Legal page responsive wrapper */
@media (max-width:900px){
  .legal-page{
    margin-left:var(--s4);
    margin-right:var(--s4);
    padding:var(--s6) var(--s5);
  }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .hero-content{
    grid-template-columns:1fr;
    padding:var(--s7) var(--s5) var(--s6);
    text-align:left;
    gap:var(--s5);
  }
  .hero-left .site-logo{width:110px;height:110px}
  .contact-form-container{grid-template-columns:1fr}
  .footer-columns{grid-template-columns:1fr 1fr;gap:var(--s6)}
  .footer-columns .footer-column:first-child{grid-column:1/-1}
}

@media (max-width:820px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  .nav-links{
    display:none;
    position:absolute;
    top:var(--nav-h);
    left:0;
    right:0;
    background:#fff;
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
    padding:var(--s4);
    gap:var(--s2);
    box-shadow:var(--sh-lg);
  }
  .nav-links.active{display:flex}
  .nav-links .nav-link{display:block;padding:12px 16px;font-size:15px}
  .nav-links .nav-cta{width:100%;justify-content:center;padding:12px}
  .nav-links #usageLabel{text-align:center;margin:var(--s2) 0}
}

@media (max-width:600px){
  :root{--nav-h:60px}
  .nav-container{padding:0 var(--s4)}
  .nav-logo-img{height:32px}
  main > section,
  .about-company{padding:var(--s7) var(--s4)}
  .upload-content{padding:var(--s5)}
  .upload-zone{padding:var(--s7) var(--s4)}
  .hero-stats{gap:var(--s6)}
  .footer-columns{grid-template-columns:1fr}
  .footer-bottom-content{justify-content:center;text-align:center}
  .legal-page{margin-left:var(--s3);margin-right:var(--s3);padding:var(--s6) var(--s4)}
}
/* ============================================================
   FIX: Reduce gap between About Company and Contact sections
   ============================================================ */

/* Reduce padding on these specific sections */
.about-company {
  padding-bottom: var(--s5); /* 24px instead of 64px */
}

.contact-section {
  padding-top: var(--s5); /* 24px instead of 64px */
}

/* Collapse the ad banner if it's empty or the ad fails to load */
.ad-banner {
  padding: var(--s4) var(--s5); /* slightly smaller padding */
  min-height: 0;
}

#footerAd:empty,
#footerAd ins:empty {
  display: none !important;
}