:root {
  --bg:#080b10; --bg2:#0d1117; --bg3:#111820;
  --surface:#141c26; --surface2:#1a2535;
  --border:rgba(255,255,255,0.07); --border2:rgba(255,255,255,0.12);
  --text:#e8edf5; --text2:#8fa3bc; --text3:#566a82;
  --accent:#4f9eff; --accent2:#a78bfa; --accent3:#34d399; --accent4:#fb923c;
  --font-display:'Syne',sans-serif; --font-body:'Inter',sans-serif;
  --radius:14px; --radius-sm:8px;
  --shadow:0 8px 40px rgba(0,0,0,0.5);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden;min-height:100vh}
a{color:inherit;text-decoration:none;transition:color 0.2s}
img{max-width:100%}

/* NAVBAR */
.navbar{position:fixed;top:0;left:0;right:0;z-index:999;display:flex;align-items:center;justify-content:space-between;padding:0 40px;height:64px;background:rgba(8,11,16,0.75);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:background 0.3s}
.navbar.scrolled{background:rgba(8,11,16,0.96)}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.25rem;font-weight:800}
.logo-icon{font-size:1.5rem;color:var(--accent);filter:drop-shadow(0 0 8px var(--accent))}
.logo-text{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.nav-links{display:flex;align-items:center;gap:8px}
.nav-link{padding:6px 14px;color:var(--text2);font-size:0.9rem;border-radius:var(--radius-sm);transition:all 0.2s}
.nav-link:hover{color:var(--text);background:var(--surface)}
.nav-points{color:var(--accent3)!important}
.pts-badge{font-family:var(--font-display);font-weight:700}
.nav-btn{padding:7px 18px;border-radius:var(--radius-sm);font-size:0.875rem;font-weight:500;cursor:pointer;transition:all 0.2s}
.nav-btn-ghost{border:1px solid var(--border2);color:var(--text2)}
.nav-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.nav-btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 20px rgba(79,158,255,0.35)}
.nav-btn-primary:hover{background:#3d8fe8;box-shadow:0 0 30px rgba(79,158,255,0.5)}
.nav-mobile-btn{display:none;background:none;border:none;color:var(--text);font-size:1.4rem;cursor:pointer}
.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:var(--bg2);border-bottom:1px solid var(--border);padding:16px 24px;z-index:998;flex-direction:column;gap:4px}
.mobile-menu a{padding:12px 16px;border-radius:var(--radius-sm);color:var(--text2);display:block}
.mobile-menu a:hover{background:var(--surface);color:var(--text)}
.mobile-menu.open{display:flex}
@media(max-width:768px){.nav-links{display:none}.nav-mobile-btn{display:block}.navbar{padding:0 20px}}

/* ANIMATIONS */
@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.3)}}
@keyframes scrollAnim{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@keyframes galleryScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* HERO */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px 24px 60px;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(79,158,255,0.12) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(167,139,250,0.10) 0%,transparent 60%),radial-gradient(ellipse 40% 30% at 10% 60%,rgba(52,211,153,0.06) 0%,transparent 60%)}
.hero-grid{position:absolute;inset:0;z-index:0;background-image:linear-gradient(rgba(255,255,255,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.025) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,black 20%,transparent 80%)}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(79,158,255,0.1);border:1px solid rgba(79,158,255,0.25);color:var(--accent);padding:6px 16px;border-radius:99px;font-size:0.8rem;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;margin-bottom:28px;position:relative;z-index:1;animation:fadeInDown 0.6s ease both}
.hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--accent3);animation:pulse 2s infinite}
.hero-title{font-family:var(--font-display);font-size:clamp(3rem,8vw,7rem);font-weight:800;line-height:1.05;letter-spacing:-0.03em;position:relative;z-index:1;animation:fadeInUp 0.7s ease 0.1s both}
.hero-title .line1{display:block;color:var(--text)}
.hero-title .line2{display:block;background:linear-gradient(135deg,var(--accent) 0%,var(--accent2) 50%,var(--accent3) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 30px rgba(79,158,255,0.4))}
.hero-sub{font-size:1.15rem;color:var(--text2);max-width:560px;margin:24px auto 48px;position:relative;z-index:1;animation:fadeInUp 0.7s ease 0.2s both}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1;animation:fadeInUp 0.7s ease 0.3s both}
.hero-stats{display:flex;gap:48px;justify-content:center;margin-top:72px;position:relative;z-index:1;animation:fadeInUp 0.7s ease 0.45s both}
.hero-stat{text-align:center}
.hero-stat-num{font-family:var(--font-display);font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-stat-label{font-size:0.8rem;color:var(--text3);margin-top:4px}
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text3);font-size:0.75rem;z-index:1}
.hero-scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--text3),transparent);animation:scrollAnim 2s infinite}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:var(--radius);font-weight:600;font-size:0.95rem;cursor:pointer;border:none;transition:all 0.25s;font-family:var(--font-body)}
.btn-primary{background:linear-gradient(135deg,var(--accent),#3d7fcf);color:#fff;box-shadow:0 0 40px rgba(79,158,255,0.4)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 50px rgba(79,158,255,0.55)}
.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text2)}
.btn-ghost:hover{border-color:var(--accent2);color:var(--accent2);transform:translateY(-2px)}
.btn-purple{background:linear-gradient(135deg,var(--accent2),#7c3aed);color:#fff;box-shadow:0 0 30px rgba(167,139,250,0.35)}
.btn-purple:hover{transform:translateY(-2px)}
.btn-green{background:linear-gradient(135deg,var(--accent3),#059669);color:#fff}
.btn-green:hover{transform:translateY(-2px)}
.btn-orange{background:linear-gradient(135deg,var(--accent4),#ea580c);color:#fff}
.btn-orange:hover{transform:translateY(-2px)}
.btn-sm{padding:9px 20px;font-size:0.85rem}
.btn-lg{padding:16px 40px;font-size:1rem}
.btn-block{width:100%;justify-content:center}
.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none!important}

/* TAGS */
.model-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;font-size:0.75rem;font-weight:500;border:1px solid}
.tag-blue{border-color:rgba(79,158,255,0.3);color:var(--accent);background:rgba(79,158,255,0.08)}
.tag-purple{border-color:rgba(167,139,250,0.3);color:var(--accent2);background:rgba(167,139,250,0.08)}
.tag-green{border-color:rgba(52,211,153,0.3);color:var(--accent3);background:rgba(52,211,153,0.08)}
.tag-orange{border-color:rgba(251,146,60,0.3);color:var(--accent4);background:rgba(251,146,60,0.08)}

/* SECTIONS */
.section{padding:100px 40px;max-width:1200px;margin:0 auto}
.section-full{padding:100px 40px}
.section-label{font-size:0.75rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.section-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.1;margin-bottom:16px}
.section-sub{color:var(--text2);font-size:1.05rem;max-width:600px}
.section-header{margin-bottom:60px}
.section-header.centered{text-align:center}
.section-header.centered .section-sub{margin:0 auto}

/* MODELS */
.models-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.model-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 28px;transition:all 0.3s;cursor:pointer;position:relative;overflow:hidden}
.model-card::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity 0.3s;background:radial-gradient(ellipse at top left,var(--card-glow,rgba(79,158,255,0.08)),transparent 70%)}
.model-card:hover{transform:translateY(-6px);border-color:var(--border2);box-shadow:var(--shadow)}
.model-card:hover::before{opacity:1}
.model-icon{font-size:2.2rem;margin-bottom:20px}
.model-name{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin-bottom:8px}
.model-desc{color:var(--text2);font-size:0.875rem;line-height:1.6;margin-bottom:20px}

/* FEATURES */
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2px;background:var(--border);border-radius:var(--radius);overflow:hidden}
.feature-item{background:var(--bg);padding:40px 36px;transition:background 0.2s}
.feature-item:hover{background:var(--surface)}
.feature-icon{font-size:1.8rem;margin-bottom:16px}
.feature-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;margin-bottom:10px}
.feature-desc{color:var(--text2);font-size:0.875rem;line-height:1.7}

/* GALLERY */
.gallery-section{background:var(--bg2)}
.gallery-strip{display:flex;gap:20px;overflow:hidden;mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}
.gallery-track{display:flex;gap:20px;animation:galleryScroll 30s linear infinite;flex-shrink:0}
.gallery-track2{animation-direction:reverse;animation-duration:40s}
.gallery-item{flex-shrink:0;width:220px;height:200px;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--border);position:relative}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item-label{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(to top,rgba(0,0,0,0.8),transparent);font-size:0.75rem;color:var(--text2)}

/* PRICING */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.price-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px 28px;text-align:center;position:relative;transition:all 0.3s}
.price-card.featured{border-color:var(--accent);background:linear-gradient(135deg,rgba(79,158,255,0.08),rgba(167,139,250,0.05));box-shadow:0 0 40px rgba(79,158,255,0.15)}
.price-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.price-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;padding:4px 16px;border-radius:99px;font-size:0.75rem;font-weight:600;white-space:nowrap}
.price-badge.purple{background:var(--accent2)}
.price-badge.green{background:var(--accent3);color:#1a2535}
.price-name{font-family:var(--font-display);font-size:1.1rem;font-weight:700;margin-bottom:4px}
.price-points{font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:var(--accent);margin:16px 0 4px}
.price-points span{font-size:1rem;color:var(--text3)}
.price-amount{font-size:1.3rem;font-weight:700;color:var(--text);margin-bottom:24px}
.price-list{list-style:none;text-align:left;color:var(--text2);font-size:0.875rem;margin-bottom:28px;display:flex;flex-direction:column;gap:10px}
.price-list li::before{content:'✓ ';color:var(--accent3);font-weight:700}

/* FORM */
.form-group{margin-bottom:20px}
.form-label{display:block;font-size:0.85rem;font-weight:500;color:var(--text2);margin-bottom:8px}
.form-control{width:100%;background:var(--surface);border:1px solid var(--border2);color:var(--text);padding:12px 16px;border-radius:var(--radius-sm);font-size:0.9rem;font-family:var(--font-body);transition:border-color 0.2s,box-shadow 0.2s;outline:none}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,158,255,0.15)}
.form-control::placeholder{color:var(--text3)}
textarea.form-control{resize:vertical;min-height:100px}
select.form-control{cursor:pointer}
.form-hint{font-size:0.8rem;color:var(--text3);margin-top:6px}

/* CARD */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.card-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-title{font-family:var(--font-display);font-size:1rem;font-weight:700}
.card-body{padding:24px}

/* PAGE HEADER */
.page-header{padding:120px 40px 60px;text-align:center;background:linear-gradient(to bottom,rgba(79,158,255,0.05),transparent);border-bottom:1px solid var(--border)}
.page-header h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:800;margin-bottom:12px}
.page-header p{color:var(--text2);font-size:1rem}

/* GENERATE PAGE */
.gen-layout{display:grid;grid-template-columns:380px 1fr;gap:0;min-height:calc(100vh - 64px);margin-top:64px}
.gen-sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:32px 28px;overflow-y:auto}
.gen-sidebar-title{font-size:0.75rem;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:24px;font-family:var(--font-display)}
.gen-main{background:var(--bg);display:flex;flex-direction:column}
.gen-output{flex:1;padding:32px;display:flex;align-items:center;justify-content:center}
.gen-empty{text-align:center;color:var(--text3)}
.gen-empty-icon{font-size:4rem;margin-bottom:16px;opacity:0.4}
.gen-empty p{font-size:0.9rem}
.gen-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;width:100%}
.gen-result-item{border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--border);position:relative}
.gen-result-item img{width:100%;display:block}
.gen-result-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.6);opacity:0;transition:opacity 0.2s;display:flex;align-items:center;justify-content:center;gap:12px}
.gen-result-item:hover .gen-result-overlay{opacity:1}

/* MODEL SELECTOR */
.model-selector{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.model-opt{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;transition:all 0.2s}
.model-opt:hover{border-color:var(--border2);background:var(--surface2)}
.model-opt.active{border-color:var(--accent);background:rgba(79,158,255,0.08)}
.model-opt-icon{font-size:1.4rem}
.model-opt-info{flex:1}
.model-opt-name{font-weight:600;font-size:0.875rem}
.model-opt-price{font-size:0.75rem;color:var(--text3);margin-top:2px}
.model-opt-check{width:18px;height:18px;border-radius:50%;border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:0.6rem;transition:all 0.2s}
.model-opt.active .model-opt-check{background:var(--accent);border-color:var(--accent);color:#fff}

/* RATIO SELECTOR */
.ratio-selector{display:flex;flex-wrap:wrap;gap:8px}
.ratio-opt{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:0.8rem;cursor:pointer;transition:all 0.2s;color:var(--text2)}
.ratio-opt:hover{border-color:var(--border2);color:var(--text)}
.ratio-opt.active{border-color:var(--accent);color:var(--accent);background:rgba(79,158,255,0.08)}

/* PROGRESS */
.progress-wrap{background:var(--surface2);border-radius:99px;height:6px;overflow:hidden}
.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:99px;transition:width 0.5s}
.progress-shimmer{background:linear-gradient(90deg,var(--surface2) 25%,var(--surface) 50%,var(--surface2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}

/* CHAT */
.chat-layout{display:flex;flex-direction:column;height:calc(100vh - 64px);margin-top:64px}
.chat-messages{flex:1;overflow-y:auto;padding:32px;display:flex;flex-direction:column;gap:24px}
.chat-msg{display:flex;gap:16px;max-width:800px}
.chat-msg.user{flex-direction:row-reverse;margin-left:auto}
.chat-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.9rem;flex-shrink:0}
.chat-avatar.ai{background:linear-gradient(135deg,var(--accent),var(--accent2))}
.chat-avatar.user{background:var(--surface2);border:1px solid var(--border2)}
.chat-bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;font-size:0.9rem;line-height:1.7;max-width:680px}
.chat-msg.user .chat-bubble{background:rgba(79,158,255,0.12);border-color:rgba(79,158,255,0.25)}
.chat-input-wrap{padding:20px 32px;border-top:1px solid var(--border);background:var(--bg2);display:flex;gap:12px;align-items:flex-end}
.chat-input{flex:1;background:var(--surface);border:1px solid var(--border2);color:var(--text);padding:14px 18px;border-radius:var(--radius);font-size:0.9rem;outline:none;resize:none;min-height:52px;max-height:160px;font-family:var(--font-body);transition:border-color 0.2s}
.chat-input:focus{border-color:var(--accent)}

/* TOAST */
.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:14px 20px;min-width:240px;font-size:0.875rem;box-shadow:0 8px 40px rgba(0,0,0,0.5);display:flex;align-items:center;gap:10px;animation:fadeInUp 0.3s ease}
.toast.success{border-color:rgba(52,211,153,0.4)}
.toast.error{border-color:rgba(239,68,68,0.4)}
.toast.info{border-color:rgba(79,158,255,0.4)}

/* TABLES */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:0.875rem}
th{background:var(--surface2);color:var(--text2);font-weight:600;padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}
td{padding:14px 16px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(255,255,255,0.02)}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;font-size:0.72rem;font-weight:600}
.badge-success{background:rgba(52,211,153,0.15);color:var(--accent3)}
.badge-warning{background:rgba(251,146,60,0.15);color:var(--accent4)}
.badge-danger{background:rgba(239,68,68,0.15);color:#f87171}
.badge-info{background:rgba(79,158,255,0.15);color:var(--accent)}
.badge-gray{background:var(--surface2);color:var(--text3)}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:1000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius);padding:40px;max-width:480px;width:90%;box-shadow:0 24px 60px rgba(0,0,0,0.6);animation:fadeInUp 0.3s ease}
.modal-title{font-family:var(--font-display);font-size:1.3rem;font-weight:800;margin-bottom:8px}
.modal-sub{color:var(--text2);font-size:0.875rem;margin-bottom:28px}

/* FOOTER */
.site-footer{background:var(--bg2);border-top:1px solid var(--border);padding:60px 40px 0}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 2fr;gap:60px;padding-bottom:48px}
.footer-brand p{color:var(--text3);font-size:0.875rem;margin-top:12px;max-width:260px}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.footer-col h4{font-family:var(--font-display);font-size:0.85rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text2);margin-bottom:16px}
.footer-col a{display:block;color:var(--text3);font-size:0.875rem;padding:4px 0;transition:color 0.2s}
.footer-col a:hover{color:var(--text)}
.footer-bottom{max-width:1200px;margin:0 auto;border-top:1px solid var(--border);padding:20px 0;font-size:0.8rem;color:var(--text3)}

/* AUTH */
.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:80px 24px;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(79,158,255,0.08),transparent 70%)}
.auth-box{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius);padding:48px 40px;width:100%;max-width:440px}
.auth-title{font-family:var(--font-display);font-size:1.6rem;font-weight:800;text-align:center;margin-bottom:8px}
.auth-sub{color:var(--text2);text-align:center;font-size:0.875rem;margin-bottom:32px}
.auth-footer{text-align:center;color:var(--text2);font-size:0.875rem;margin-top:24px}
.auth-footer a{color:var(--accent)}

/* SPINNER */
.spinner{width:24px;height:24px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin 0.8s linear infinite;display:inline-block}
.spinner-lg{width:48px;height:48px;border-width:3px}

/* ADMIN */
.admin-layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.admin-sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:20px 0;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin-logo{padding:12px 24px 28px;border-bottom:1px solid var(--border);margin-bottom:12px}
.admin-nav a{display:flex;align-items:center;gap:12px;padding:11px 24px;color:var(--text2);font-size:0.875rem;transition:all 0.2s;border-left:3px solid transparent}
.admin-nav a:hover{color:var(--text);background:rgba(255,255,255,0.03)}
.admin-nav a.active{color:var(--accent);background:rgba(79,158,255,0.06);border-left-color:var(--accent)}
.admin-nav .nav-section{padding:16px 24px 6px;font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--text3)}
.admin-content{background:var(--bg);padding:40px;overflow-y:auto}
.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}
.admin-title{font-family:var(--font-display);font-size:1.6rem;font-weight:800}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.stat-card-label{font-size:0.8rem;color:var(--text3);margin-bottom:8px;text-transform:uppercase;letter-spacing:0.06em}
.stat-card-value{font-family:var(--font-display);font-size:2rem;font-weight:800}
.stat-card-change{font-size:0.8rem;color:var(--accent3);margin-top:6px}

/* PROFILE */
.profile-layout{max-width:1000px;margin:0 auto;padding:100px 40px 60px}

/* FADE-IN */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease}

/* RESPONSIVE */
@media(max-width:900px){
  .gen-layout{grid-template-columns:1fr}
  .gen-sidebar{border-right:none;border-bottom:1px solid var(--border)}
  .footer-inner{grid-template-columns:1fr;gap:32px}
  .footer-links{grid-template-columns:repeat(2,1fr)}
  .admin-layout{grid-template-columns:1fr}
  .admin-sidebar{height:auto;position:relative}
  .section{padding:60px 20px}
}
@media(max-width:600px){
  .hero-stats{gap:24px}
  .hero-stat-num{font-size:1.5rem}
  .auth-box{padding:32px 24px}
  .chat-input-wrap{padding:16px}
  .chat-messages{padding:16px}
  .section-full{padding:60px 20px}
}
