/* QRGenPro v4 — Full Production Stylesheet */
:root{
  --primary:#5046e5;--primary-d:#3730b3;--primary-l:#818cf8;
  --accent:#06b6d4;--success:#10b981;--warn:#f59e0b;--danger:#ef4444;
  --bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--surface-3:#e8edf5;
  --border:#e2e8f0;--border-s:#cbd5e1;
  --text:#0f172a;--text-2:#475569;--text-3:#94a3b8;
  --font:'Plus Jakarta Sans',sans-serif;--font-b:'DM Sans',sans-serif;
  --nav:68px;--r-s:8px;--r:14px;--r-l:20px;--r-xl:28px;
  --sh-s:0 1px 4px rgba(0,0,0,.07);--sh:0 4px 20px rgba(0,0,0,.08);
  --sh-l:0 20px 60px rgba(0,0,0,.1);--sh-xl:0 40px 100px rgba(80,70,229,.14);
  --tr:.2s ease;
}
[data-theme="dark"]{
  --bg:#0f172a;--surface:#1e293b;--surface-2:#263347;--surface-3:#334155;
  --border:#334155;--border-s:#475569;
  --text:#f1f5f9;--text-2:#94a3b8;--text-3:#64748b;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden;transition:background var(--tr),color var(--tr)}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.gradient-text{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ── NAV ─────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav);background:rgba(255,255,255,.93);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:1000;transition:box-shadow var(--tr),background var(--tr)}
[data-theme="dark"] .nav{background:rgba(15,23,42,.92)}
.nav.scrolled{box-shadow:var(--sh-s)}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;gap:24px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.logo-mark{width:38px;height:38px;background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-name{font-family:var(--font);font-size:1.15rem;font-weight:800;color:var(--text)}
.logo-name span{color:var(--primary)}
.nav-links{display:flex;align-items:center;gap:22px;flex:1}
.nav-links a{text-decoration:none;color:var(--text-2);font-size:.865rem;font-weight:500;transition:color var(--tr)}
.nav-links a:hover{color:var(--primary)}
.nav-end{display:flex;align-items:center;gap:9px;flex-shrink:0}
.theme-btn{width:36px;height:36px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-s);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);transition:all var(--tr);flex-shrink:0}
.theme-btn:hover{border-color:var(--primary);color:var(--primary)}
.btn-outline{padding:8px 15px;border-radius:var(--r-s);border:1.5px solid var(--border-s);background:none;font-family:var(--font);font-weight:600;font-size:.835rem;color:var(--text-2);cursor:pointer;transition:all var(--tr);text-decoration:none;white-space:nowrap}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-primary-sm{padding:8px 17px;border-radius:var(--r-s);background:linear-gradient(135deg,var(--primary),var(--primary-d));color:#fff;border:none;font-family:var(--font);font-weight:700;font-size:.835rem;cursor:pointer;transition:all var(--tr);box-shadow:0 2px 8px rgba(80,70,229,.3);text-decoration:none;white-space:nowrap}
.btn-primary-sm:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(80,70,229,.4)}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;margin-left:auto}
.hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:all .25s}

/* ── MOBILE NAV ──────────────────────────── */
.mobile-nav{display:none;position:fixed;inset:var(--nav) 0 0 0;background:var(--surface);z-index:999;padding:20px;flex-direction:column;gap:6px;overflow-y:auto;border-top:1px solid var(--border)}
.mobile-nav.open{display:flex}
.mobile-nav a,.mobile-nav button{padding:12px 15px;border-radius:var(--r-s);text-decoration:none;color:var(--text);font-weight:600;font-family:var(--font);font-size:.9rem;border:none;background:none;text-align:left;cursor:pointer;transition:all .15s}
.mobile-nav a:hover,.mobile-nav button:hover{background:var(--surface-2);color:var(--primary)}

/* ── HERO ────────────────────────────────── */
.hero{padding-top:var(--nav);background:linear-gradient(160deg,var(--surface),var(--surface-2));position:relative;overflow:hidden;display:flex;align-items:center;min-height:420px;padding-bottom:0}
[data-theme="dark"] .hero{background:linear-gradient(160deg,#0f172a,#1a1040)}
.hero-bg{position:absolute;inset:0;pointer-events:none}
.blob-a{position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(80,70,229,.15),transparent);top:-200px;left:-100px;border-radius:50%;filter:blur(80px);opacity:.5}
.blob-b{position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(6,182,212,.12),transparent);bottom:-100px;right:-100px;border-radius:50%;filter:blur(80px);opacity:.5}
.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(80,70,229,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(80,70,229,.04) 1px,transparent 1px);background-size:40px 40px}
.hero-body{position:relative;text-align:center;padding:60px 24px 80px;width:100%}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid var(--border);border-radius:100px;padding:6px 16px;font-size:.77rem;font-weight:600;color:var(--text-2);margin-bottom:22px;box-shadow:var(--sh-s)}
.pulse-dot{width:7px;height:7px;background:var(--success);border-radius:50%;animation:pulse 2s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}
.hero h1{font-family:var(--font);font-size:clamp(2.3rem,5vw,3.8rem);font-weight:800;line-height:1.12;letter-spacing:-.03em;margin-bottom:18px}
.hero-lead{font-size:1.05rem;color:var(--text-2);max-width:600px;margin:0 auto 28px;line-height:1.7}
.hero-ctas{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.btn-hero-primary{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;background:linear-gradient(135deg,var(--primary),var(--primary-d));color:#fff;border:none;border-radius:var(--r-s);font-family:var(--font);font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 4px 18px rgba(80,70,229,.35);transition:all var(--tr);text-decoration:none}
.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(80,70,229,.45)}
.btn-hero-ghost{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;background:var(--surface);border:1.5px solid var(--border-s);color:var(--text-2);border-radius:var(--r-s);font-family:var(--font);font-weight:600;font-size:.95rem;cursor:pointer;transition:all var(--tr);box-shadow:var(--sh-s)}
.btn-hero-ghost:hover{border-color:var(--primary);color:var(--primary)}

/* ── GENERATOR ───────────────────────────── */
.gen-section{margin-top:-40px;position:relative;z-index:10;padding-bottom:80px}
.gen-card{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-xl);border:1px solid var(--border);overflow:hidden}

/* TYPE TABS */
.type-tabs{display:flex;gap:3px;padding:14px 16px;background:var(--surface-2);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.type-tabs::-webkit-scrollbar{display:none}
.type-tab{display:flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--r-s);border:1.5px solid transparent;background:none;color:var(--text-2);font-family:var(--font);font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all var(--tr)}
.type-tab:hover{background:var(--surface);color:var(--text);border-color:var(--border)}
.type-tab.active{background:var(--surface);color:var(--primary);border-color:var(--primary);box-shadow:var(--sh-s)}

/* BODY LAYOUT */
.gen-body{display:grid;grid-template-columns:1fr 340px;min-height:520px}
.form-panel{border-right:1px solid var(--border);padding:26px;overflow-y:auto}
.type-form{display:none}
.type-form.active{display:block;animation:fadeUp .2s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.fg{margin-bottom:15px}
.fg label{display:block;font-size:.8rem;font-weight:700;color:var(--text);margin-bottom:6px;font-family:var(--font)}
.hint{font-weight:400;color:var(--text-3)}
.fi{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--r-s);font-family:var(--font-b);font-size:.875rem;color:var(--text);background:var(--surface);outline:none;appearance:none;transition:border-color var(--tr),box-shadow var(--tr)}
.fi:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(80,70,229,.1)}
[data-theme="dark"] .fi{background:var(--surface-2)}
.fi-ta{resize:vertical;min-height:78px;line-height:1.5}
.frow2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.char-cnt{text-align:right;font-size:.71rem;color:var(--text-3);margin-top:3px}

/* COLORS */
.color-row{display:flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-s);padding:7px 11px;transition:border-color var(--tr)}
.color-row:focus-within{border-color:var(--primary)}
[data-theme="dark"] .color-row{background:var(--surface-2)}
.color-swatch{width:30px;height:30px;border:none;border-radius:6px;cursor:pointer;padding:0;background:none;flex-shrink:0}
.color-hex-inp{border:none;padding:0;flex:1;font-family:monospace;font-size:.82rem;color:var(--text);background:transparent;outline:none}

/* CUSTOM PANEL */
.custom-panel{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r);margin-bottom:18px;overflow:hidden}
.custom-toggle{display:flex;align-items:center;gap:9px;width:100%;padding:12px 15px;background:none;border:none;font-family:var(--font);font-weight:600;font-size:.84rem;color:var(--text);cursor:pointer;text-align:left;transition:background var(--tr)}
.custom-toggle:hover{background:rgba(0,0,0,.03)}
[data-theme="dark"] .custom-toggle:hover{background:rgba(255,255,255,.04)}
.caret{margin-left:auto;transition:transform .25s}
.custom-toggle.open .caret{transform:rotate(180deg)}
.custom-body{display:none;padding:16px;background:var(--surface);border-top:1px solid var(--border)}
.custom-body.open{display:block;animation:fadeUp .2s}

/* TEMPLATES */
.tpl-strip{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.tpl-strip::-webkit-scrollbar{display:none}
.tpl-chip{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:6px 11px;border:1.5px solid var(--border);border-radius:100px;cursor:pointer;font-family:var(--font);font-size:.74rem;font-weight:600;color:var(--text-2);background:var(--surface);transition:all .15s;white-space:nowrap}
.tpl-chip:hover,.tpl-chip.active{border-color:var(--primary);color:var(--primary);background:rgba(80,70,229,.05)}
.tpl-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.12)}

/* FRAMES */
.frame-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.frame-opt{border:1.5px solid var(--border);border-radius:var(--r-s);padding:8px 3px;text-align:center;cursor:pointer;font-family:var(--font);font-size:.67rem;font-weight:600;color:var(--text-2);transition:all .15s}
.frame-opt:hover,.frame-opt.active{border-color:var(--primary);color:var(--primary);background:rgba(80,70,229,.05)}
.frame-ico{font-size:1.15rem;margin-bottom:3px}

/* LOGO DROP */
.logo-drop{border:2px dashed var(--border);border-radius:var(--r-s);padding:15px;text-align:center;cursor:pointer;transition:all var(--tr)}
.logo-drop:hover{border-color:var(--primary);background:rgba(80,70,229,.03)}
.logo-drop.has-logo{border-style:solid;border-color:var(--success)}

/* GENERATE BTN */
.btn-generate{width:100%;padding:13px;background:linear-gradient(135deg,var(--primary),var(--primary-d));color:#fff;border:none;border-radius:var(--r);font-family:var(--font);font-size:.96rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .25s;box-shadow:0 4px 20px rgba(80,70,229,.35);letter-spacing:.01em}
.btn-generate:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(80,70,229,.45)}
.btn-generate:disabled{opacity:.65;cursor:not-allowed;transform:none}
.btn-detect-loc{width:100%;padding:9px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-s);font-family:var(--font);font-weight:600;font-size:.82rem;cursor:pointer;color:var(--text-2);transition:all var(--tr);margin-top:3px}
.btn-detect-loc:hover{border-color:var(--accent);color:var(--accent)}

/* PREVIEW PANEL */
.preview-panel{padding:24px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.preview-top-row{display:flex;align-items:center;justify-content:space-between}
.preview-lbl-txt{font-family:var(--font);font-size:.71rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-3)}
.live-tag{background:#dcfce7;color:#166534;font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:100px;font-family:var(--font)}
[data-theme="dark"] .live-tag{background:rgba(16,185,129,.2);color:#6ee7b7}
.qr-canvas{aspect-ratio:1;max-width:270px;width:100%;margin:0 auto;background:var(--surface-2);border:2px dashed var(--border-s);border-radius:var(--r);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;transition:all .3s}
.qr-canvas.ready{border-style:solid;border-color:var(--border);background:#fff}
.qr-empty{text-align:center;padding:20px;color:var(--text-3)}
.qr-empty p{font-size:.8rem;margin-top:11px;line-height:1.5}
.qr-empty strong{color:var(--text-2)}
.qr-spinner{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* DOWNLOAD */
.dl-area{display:flex;flex-direction:column;gap:11px}
.dl-row{display:flex;align-items:center;gap:8px;min-width:0}
.dl-type-tag{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-size:.66rem;font-weight:800;padding:2px 9px;border-radius:100px;font-family:var(--font);text-transform:uppercase;flex-shrink:0}
.dl-data-lbl{font-size:.8rem;font-weight:600;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.dl-buttons{display:flex;gap:7px}
.dl-btn-png{flex:1;padding:9px 10px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-s);font-family:var(--font);font-size:.78rem;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:5px;transition:all var(--tr);box-shadow:0 2px 8px rgba(80,70,229,.3)}
.dl-btn-png:hover{background:var(--primary-d);transform:translateY(-1px)}
.dl-btn-svg{flex:1;padding:9px 10px;background:none;border:1.5px solid var(--border-s);color:var(--text);border-radius:var(--r-s);font-family:var(--font);font-size:.78rem;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:5px;transition:all var(--tr)}
.dl-btn-svg:hover{border-color:var(--primary);color:var(--primary)}
.dl-btn-copy{flex:1;padding:9px 8px;background:var(--surface-2);border:1.5px solid var(--border);color:var(--text-2);border-radius:var(--r-s);font-family:var(--font);font-size:.78rem;font-weight:700;cursor:pointer;text-align:center;transition:all var(--tr)}
.dl-btn-copy:hover{border-color:var(--accent);color:var(--accent)}
.scan-ok-note{font-size:.73rem;color:var(--success);font-weight:500;display:flex;align-items:center;gap:5px}
.scan-trigger-btn{width:100%;padding:9px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-s);font-family:var(--font);font-weight:600;font-size:.79rem;cursor:pointer;color:var(--text-2);transition:all var(--tr)}
.scan-trigger-btn:hover{border-color:var(--accent);color:var(--accent)}

/* SHARE BUTTONS */
.share-row{display:flex;gap:6px;flex-wrap:wrap}
.share-btn{flex:1;min-width:70px;padding:7px 8px;border-radius:var(--r-s);border:1.5px solid var(--border);background:none;font-family:var(--font);font-size:.72rem;font-weight:700;cursor:pointer;text-align:center;transition:all .15s;color:var(--text-2);text-decoration:none;display:flex;align-items:center;justify-content:center;gap:4px}
.share-btn:hover{transform:translateY(-1px);box-shadow:var(--sh-s)}
.share-wa{border-color:#25d366;color:#25d366}.share-wa:hover{background:#25d366;color:#fff}
.share-tw{border-color:#1da1f2;color:#1da1f2}.share-tw:hover{background:#1da1f2;color:#fff}
.share-fb{border-color:#1877f2;color:#1877f2}.share-fb:hover{background:#1877f2;color:#fff}
.share-em{border-color:var(--text-3);color:var(--text-2)}.share-em:hover{background:var(--text);color:#fff}

/* ALERT */
.alert-bar{padding:10px 14px;border-radius:var(--r-s);font-size:.865rem;font-weight:500}
.alert-bar.err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.alert-bar.ok{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
[data-theme="dark"] .alert-bar.err{background:rgba(239,68,68,.1);color:#fca5a5;border-color:rgba(239,68,68,.3)}
[data-theme="dark"] .alert-bar.ok{background:rgba(16,185,129,.1);color:#6ee7b7;border-color:rgba(16,185,129,.3)}

/* ── FEATURES ────────────────────────────── */
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feat-card{padding:24px;border-radius:var(--r-l);border:1.5px solid var(--border);background:var(--surface);transition:all .25s}
.feat-card:hover{border-color:var(--primary-l);box-shadow:var(--sh);transform:translateY(-3px)}
.feat-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:1.3rem}
.feat-card h3{font-family:var(--font);font-size:.94rem;font-weight:700;margin-bottom:6px}

/* TYPES SHOWCASE */
.types-showcase{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
.type-showcase-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:20px 14px;text-align:center;cursor:pointer;transition:all .25s}
.type-showcase-card:hover{border-color:var(--primary);box-shadow:var(--sh);transform:translateY(-3px)}

/* STATS BANNER */
.stats-banner-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}

/* HISTORY */
.hist-filt{padding:6px 13px;border-radius:100px;border:1.5px solid var(--border);background:none;font-family:var(--font);font-size:.77rem;font-weight:600;color:var(--text-2);cursor:pointer;transition:all .15s}
.hist-filt:hover,.hist-filt.active{background:var(--primary);border-color:var(--primary);color:#fff}
.hist-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;transition:all .2s}
.hist-card:hover{border-color:var(--primary-l);box-shadow:var(--sh);transform:translateY(-2px)}
.hist-qr-wrap{background:var(--surface-2);padding:18px;display:flex;align-items:center;justify-content:center;aspect-ratio:1}
.hist-qr-wrap img{max-width:140px;max-height:140px;object-fit:contain}
.hist-info{padding:12px 14px;border-top:1px solid var(--border)}
.hist-badge{display:inline-block;font-size:.66rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:100px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);margin-bottom:6px}
.hist-badge.dyn{background:rgba(16,185,129,.15);color:var(--success);border-color:var(--success)}
.hist-title{font-family:var(--font);font-size:.84rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px}
.hist-meta{font-size:.72rem;color:var(--text-3);display:flex;justify-content:space-between;margin-bottom:10px}
.hist-actions{display:flex;gap:5px}
.hist-action{flex:1;padding:5px 4px;border:1.5px solid var(--border);border-radius:6px;font-family:var(--font);font-size:.72rem;font-weight:600;cursor:pointer;background:none;text-align:center;transition:all .14s;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:3px;color:var(--text-2)}
.hist-action:hover{background:var(--primary);border-color:var(--primary);color:#fff}

/* ── MODALS ──────────────────────────────── */
.overlay{position:fixed;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(5px);z-index:2000;display:none;align-items:center;justify-content:center;padding:20px}
.overlay.open{display:flex}
.modal-box{background:var(--surface);border-radius:var(--r-xl);padding:34px;max-width:460px;width:100%;position:relative;box-shadow:var(--sh-l);max-height:90vh;overflow-y:auto;animation:slideUp .25s ease}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.modal-x{position:absolute;top:13px;right:13px;background:var(--surface-2);border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);font-size:.88rem;transition:all .15s}
.modal-x:hover{background:var(--border)}
.auth-tab.active{background:var(--surface)!important;color:var(--primary)!important;box-shadow:var(--sh-s)}
.auth-inp{display:block;width:100%;padding:11px 12px;border:1.5px solid var(--border);border-radius:var(--r-s);font-family:var(--font-b);font-size:.875rem;color:var(--text);background:var(--surface);outline:none;margin-bottom:13px;transition:border-color var(--tr)}
.auth-inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(80,70,229,.1)}
[data-theme="dark"] .auth-inp{background:var(--surface-2)}
.auth-submit{width:100%;padding:13px;background:linear-gradient(135deg,var(--primary),var(--primary-d));color:#fff;border:none;border-radius:var(--r-s);font-family:var(--font);font-size:.94rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px rgba(80,70,229,.3);margin-top:2px}
.auth-submit:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(80,70,229,.4)}
.auth-submit:disabled{opacity:.65;cursor:not-allowed;transform:none}

/* PROGRESS BAR */
.gen-progress{height:3px;background:var(--border);border-radius:100px;margin:12px 0 0;overflow:hidden;display:none}
.gen-progress.active{display:block}
.gen-progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:100px;transition:width .4s ease;animation:progressPulse 1.5s infinite}
@keyframes progressPulse{0%,100%{opacity:1}50%{opacity:.7}}

/* TOAST */
#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(120px);background:#0f172a;color:#fff;padding:11px 22px;border-radius:100px;font-family:var(--font);font-size:.84rem;font-weight:600;z-index:9999;transition:transform .35s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;box-shadow:0 8px 30px rgba(0,0,0,.25);pointer-events:none}
#toast.show{transform:translateX(-50%) translateY(0)}
[data-theme="dark"] #toast{background:#f1f5f9;color:#0f172a}

/* SCANNER */
#scanVideo{width:100%;border-radius:12px;background:#000;aspect-ratio:1;object-fit:cover}
.scan-result-box{background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-s);padding:12px 14px;margin-top:12px;font-size:.875rem;word-break:break-all}

/* FOOTER GRID */
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px}

/* ── RESPONSIVE ─────────────────────────── */
@media(max-width:1024px){
  .features-grid{grid-template-columns:repeat(2,1fr)}
  .types-showcase{grid-template-columns:repeat(4,1fr)}
  .stats-banner-inner{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:32px}
}
@media(max-width:768px){
  .nav-links,.nav-end .btn-outline,.nav-end .btn-primary-sm{display:none}
  .hamburger{display:flex}
  .gen-body{grid-template-columns:1fr}
  .form-panel{border-right:none;border-bottom:1px solid var(--border)}
  .frow2{grid-template-columns:1fr}
  .features-grid{grid-template-columns:1fr}
  .types-showcase{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .dl-buttons{flex-wrap:wrap}
  .share-row{justify-content:center}
}
@media(max-width:480px){
  .type-tab{padding:6px 9px;font-size:.72rem}
  .types-showcase{grid-template-columns:repeat(2,1fr)}
  .frame-grid{grid-template-columns:repeat(3,1fr)}
  .stats-banner-inner{grid-template-columns:repeat(2,1fr)}
  .hero h1{font-size:2rem}
}
