/* ========== Reset & Base ========== */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:transparent;
  --bg-2:rgba(255,255,255,.05);
  --sidebar-bg:rgba(15,18,30,.6);
  --sidebar-w:64px;
  --card-bg:rgba(255,255,255,.04);
  --card-border:rgba(255,255,255,.08);
  --border:rgba(255,255,255,.1);
  --text:#e8ecf4;
  --text-secondary:#8b95a8;
  --text-tertiary:#5a6478;
  --primary:#6ba4ff;
  --primary-hover:#8fbcff;
  --primary-light:rgba(107,164,255,.12);
  --cyan:#22d4ee;
  --green:#34d399;
  --red:#f87171;
  --orange:#fbbf24;
  --gold:#e8b340;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 2px 12px rgba(0,0,0,.2);
  --shadow-md:0 4px 20px rgba(0,0,0,.25);
  --shadow-lg:0 20px 50px rgba(0,0,0,.35);
}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei','Segoe UI',Roboto,sans-serif;background:transparent;color:var(--text);font-size:14px;line-height:1.6;overflow:hidden}
button{cursor:pointer;font-family:inherit;border:none;outline:none}
input,textarea{font-family:inherit;outline:none;color:var(--text)}
a{text-decoration:none;color:inherit}

/* Starry sky background (North Pole view) */
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 0%,#1a2a4a 0%,#0d1117 50%,#060810 100%)}
body::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(1px 1px at 3% 8%,#fff,transparent),
    radial-gradient(1px 1px at 7% 22%,#cdd9ff,transparent),
    radial-gradient(1.5px 1.5px at 12% 5%,#fff,transparent),
    radial-gradient(1px 1px at 16% 35%,#b0c4ff,transparent),
    radial-gradient(1px 1px at 22% 12%,#fff,transparent),
    radial-gradient(2px 2px at 27% 28%,#e0e8ff,transparent),
    radial-gradient(1px 1px at 33% 6%,#fff,transparent),
    radial-gradient(1px 1px at 38% 42%,#cdd9ff,transparent),
    radial-gradient(1.5px 1.5px at 44% 18%,#fff,transparent),
    radial-gradient(1px 1px at 49% 3%,#b0c4ff,transparent),
    radial-gradient(1px 1px at 54% 38%,#fff,transparent),
    radial-gradient(2px 2px at 60% 15%,#e0e8ff,transparent),
    radial-gradient(1px 1px at 65% 32%,#fff,transparent),
    radial-gradient(1px 1px at 71% 8%,#cdd9ff,transparent),
    radial-gradient(1.5px 1.5px at 76% 25%,#fff,transparent),
    radial-gradient(1px 1px at 82% 40%,#b0c4ff,transparent),
    radial-gradient(1px 1px at 87% 12%,#fff,transparent),
    radial-gradient(2px 2px at 92% 30%,#e0e8ff,transparent),
    radial-gradient(1px 1px at 96% 5%,#fff,transparent),
    radial-gradient(1px 1px at 5% 48%,#cdd9ff,transparent),
    radial-gradient(1.5px 1.5px at 14% 55%,#fff,transparent),
    radial-gradient(1px 1px at 25% 62%,#b0c4ff,transparent),
    radial-gradient(1px 1px at 36% 70%,#fff,transparent),
    radial-gradient(2px 2px at 47% 58%,#e0e8ff,transparent),
    radial-gradient(1px 1px at 58% 75%,#fff,transparent),
    radial-gradient(1px 1px at 69% 65%,#cdd9ff,transparent),
    radial-gradient(1.5px 1.5px at 78% 82%,#fff,transparent),
    radial-gradient(1px 1px at 88% 72%,#b0c4ff,transparent),
    radial-gradient(1px 1px at 95% 88%,#fff,transparent),
    radial-gradient(1px 1px at 8% 78%,#fff,transparent),
    radial-gradient(1px 1px at 19% 90%,#cdd9ff,transparent),
    radial-gradient(1.5px 1.5px at 31% 85%,#fff,transparent),
    radial-gradient(1px 1px at 42% 95%,#b0c4ff,transparent),
    radial-gradient(1px 1px at 53% 88%,#fff,transparent),
    radial-gradient(2px 2px at 64% 92%,#e0e8ff,transparent),
    radial-gradient(1px 1px at 73% 96%,#fff,transparent),
    radial-gradient(1px 1px at 84% 90%,#cdd9ff,transparent),
    radial-gradient(1px 1px at 93% 55%,#fff,transparent),
    radial-gradient(1px 1px at 99% 68%,#b0c4ff,transparent);
  background-repeat:repeat;background-size:100% 100%}

/* Twinkle animation layer */
.stars-twinkle{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(1.5px 1.5px at 15% 20%,rgba(255,255,255,.9),transparent),
    radial-gradient(1.5px 1.5px at 45% 50%,rgba(255,255,255,.8),transparent),
    radial-gradient(1.5px 1.5px at 75% 15%,rgba(255,255,255,.9),transparent),
    radial-gradient(2px 2px at 30% 75%,rgba(255,255,255,.7),transparent),
    radial-gradient(1.5px 1.5px at 85% 60%,rgba(255,255,255,.8),transparent),
    radial-gradient(2px 2px at 60% 35%,rgba(200,220,255,.9),transparent),
    radial-gradient(1.5px 1.5px at 90% 85%,rgba(255,255,255,.7),transparent),
    radial-gradient(1.5px 1.5px at 10% 65%,rgba(200,220,255,.8),transparent),
    radial-gradient(2px 2px at 50% 10%,rgba(255,255,255,.9),transparent),
    radial-gradient(1.5px 1.5px at 70% 90%,rgba(255,255,255,.7),transparent);
  background-repeat:repeat;background-size:100% 100%;
  animation:twinkle 4s ease-in-out infinite alternate}
@keyframes twinkle{0%{opacity:.3}50%{opacity:1}100%{opacity:.5}}

/* Northern lights glow */
.aurora{position:fixed;top:-20%;left:50%;transform:translateX(-50%);width:120%;height:60%;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 50% 50%,rgba(6,182,212,.06) 0%,rgba(79,134,247,.04) 30%,transparent 70%);animation:auroraShift 15s ease-in-out infinite alternate}
@keyframes auroraShift{0%{transform:translateX(-50%) scale(1)}100%{transform:translateX(-48%) scale(1.1)}}

/* ========== Auth Modal ========== */
.modal-overlay{position:fixed;inset:0;background:rgba(5,8,16,.6);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(8px)}
.modal-box{background:rgba(20,25,40,.7);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:40px;max-width:420px;width:90%;box-shadow:var(--shadow-lg),0 0 60px rgba(107,164,255,.08)}
.auth-brand{text-align:center;margin-bottom:28px}
.auth-brand .brand-logo{width:56px;height:56px;margin:0 auto 12px;background:linear-gradient(135deg,var(--primary),var(--cyan));border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 4px 24px rgba(107,164,255,.3)}
.auth-brand h1{font-size:24px;font-weight:700;letter-spacing:1px;color:#fff}
.auth-brand p{font-size:11px;color:var(--text-tertiary);margin-top:6px;letter-spacing:3px}
.auth-brand .partner-badge{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:3px 12px;border:1px solid rgba(34,212,238,.25);border-radius:20px;font-size:10px;color:var(--cyan);background:rgba(34,212,238,.06)}
.auth-box .auth-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:24px}
.auth-tab{flex:1;padding:10px;text-align:center;font-size:15px;font-weight:600;color:var(--text-tertiary);background:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.2s}
.auth-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.auth-form .input-group{margin-bottom:16px}
.auth-form label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px;font-weight:500}
.auth-form input{width:100%;padding:12px 16px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;transition:.2s;color:var(--text)}
.auth-form input::placeholder{color:var(--text-tertiary)}
.auth-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);background:rgba(255,255,255,.08)}
.auth-hint{text-align:center;color:var(--text-tertiary);font-size:11px;margin-top:14px}

/* ========== Buttons ========== */
.btn-primary{padding:11px 28px;background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border-radius:var(--radius-sm);font-size:14px;font-weight:600;transition:.2s;box-shadow:0 2px 12px rgba(107,164,255,.25)}
.btn-primary:hover{box-shadow:0 4px 20px rgba(107,164,255,.4)}
.btn-primary:disabled{opacity:.4;cursor:not-allowed}
.btn-full{width:100%;text-align:center}
.btn-outline{padding:8px 16px;border:1px solid var(--border);background:var(--card-bg);border-radius:var(--radius-sm);font-size:13px;transition:.2s;color:var(--text-secondary)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-danger{padding:6px 12px;background:var(--red);color:#fff;border-radius:6px;font-size:12px}
.btn-cyan{background:linear-gradient(135deg,var(--cyan),#0891b2);box-shadow:0 2px 12px rgba(34,212,238,.25)}

/* ========== App Shell ========== */
#app{display:flex;height:100vh;overflow:hidden;position:relative;z-index:1}

/* ========== Sidebar (icon-only, starry sky compatible) ========== */
.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);backdrop-filter:blur(20px);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;flex-shrink:0;padding:16px 0}
.sidebar-logo{margin-bottom:20px}
.logo-mark{width:36px;height:36px;background:linear-gradient(135deg,var(--primary),var(--cyan));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 16px rgba(107,164,255,.3)}
.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:6px;width:100%;align-items:center}
.nav-item{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:pointer;transition:.15s;position:relative}
.nav-item:hover{background:rgba(255,255,255,.08);color:var(--text)}
.nav-item.active{background:var(--primary-light);color:var(--primary)}
.nav-item .nav-tooltip{position:absolute;left:52px;top:50%;transform:translateY(-50%);background:rgba(20,25,40,.95);color:#fff;padding:4px 10px;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:.15s;z-index:100;border:1px solid var(--border)}
.nav-item:hover .nav-tooltip{opacity:1}
.nav-badge{position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold)}
.sidebar-footer{padding-top:12px}
.user-avatar-sm{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 12px rgba(107,164,255,.2)}

/* ========== Main Content ========== */
.main-content{flex:1;overflow:hidden;position:relative}
.page{display:none;height:100%;overflow-y:auto}
.page.active{display:block}

/* ========== Chat - Welcome / Landing ========== */
.chat-layout{display:flex;height:100%}
.chat-sidebar{width:240px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:rgba(255,255,255,.5);backdrop-filter:blur(10px)}
.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.chat-messages{flex:1;overflow-y:auto}

/* Landing page inside chat */
.landing-page{max-width:1100px;margin:0 auto;padding:40px 48px;display:flex;gap:48px;align-items:flex-start;min-height:100%}
.landing-left{flex:1;padding-top:40px}
.announce-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(107,164,255,.08);border:1px solid rgba(107,164,255,.15);border-radius:20px;font-size:13px;color:var(--text-secondary);margin-bottom:40px;max-width:560px;cursor:pointer;transition:.2s}
.announce-bar:hover{background:rgba(107,164,255,.12);border-color:rgba(107,164,255,.25)}
.announce-bar svg{width:14px;height:14px;fill:var(--primary);flex-shrink:0}
.landing-headline{font-size:56px;font-weight:500;letter-spacing:4px;color:#fff;line-height:1.15;margin-bottom:32px;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.landing-headline .accent{background:linear-gradient(135deg,var(--primary),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.landing-cards{display:flex;gap:20px;margin-bottom:32px}
.landing-card{background:rgba(255,255,255,.04);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:28px;width:240px;cursor:pointer;transition:.3s;box-shadow:var(--shadow)}
.landing-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.08);border-color:rgba(107,164,255,.2);box-shadow:var(--shadow-lg),0 0 20px rgba(107,164,255,.08)}
.landing-card .card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:14px}
.landing-card .card-icon.blue{background:rgba(107,164,255,.12)}
.landing-card .card-icon.cyan{background:rgba(34,212,238,.12)}
.landing-card .card-icon.purple{background:rgba(139,92,246,.12)}
.landing-card .card-icon.gold{background:rgba(232,179,64,.12)}
.landing-card .lc-title{font-size:16px;font-weight:600;color:var(--primary);margin-bottom:8px}
.landing-card .lc-desc{font-size:13px;color:var(--text-secondary);line-height:1.5}
.landing-right{flex-shrink:0;width:360px;margin-top:60px}
.showcase-card{width:100%;height:440px;background:linear-gradient(135deg,#4b76c9 0%,#1e3a8a 100%);border-radius:24px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:36px;color:#fff;box-shadow:0 25px 50px -12px rgba(30,58,138,.2);cursor:pointer;transition:.3s}
.showcase-card:hover{transform:scale(1.02)}
.showcase-card::before{content:'';position:absolute;top:-40%;right:-40%;width:180%;height:180%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 60%);filter:blur(50px);animation:floatBg 12s infinite ease-in-out}
.showcase-card::after{content:'';position:absolute;bottom:-20%;left:-20%;width:140%;height:140%;background:radial-gradient(circle,rgba(6,182,212,.2) 0%,transparent 50%);filter:blur(40px)}
@keyframes floatBg{0%,100%{transform:translate(0,0)}50%{transform:translate(-20px,20px)}}
.showcase-card .sc-content{position:relative;z-index:1}
.showcase-card .sc-title{font-size:24px;font-weight:500;margin-bottom:6px}
.showcase-card .sc-sub{font-size:24px;font-weight:500;margin-bottom:24px;opacity:.9}
.showcase-card .sc-link{font-size:14px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:6px}
.showcase-card .sc-link::after{content:'→';font-size:16px;transition:.2s}
.showcase-card:hover .sc-link::after{transform:translateX(4px)}

/* Chat conversation list */
.btn-new-chat{margin:12px;padding:10px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px;transition:.2s}
.btn-new-chat:hover{border-color:var(--primary);color:var(--primary)}
.conv-list{flex:1;overflow-y:auto;padding:0 8px 8px}
.conv-item{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:.15s;font-size:13px;color:var(--text-secondary);margin-bottom:2px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.conv-item:hover{background:var(--bg-2);color:var(--text)}
.conv-item.active{background:var(--primary-light);color:var(--primary);font-weight:500}
.conv-item .conv-del{opacity:0;font-size:14px;transition:.15s;flex-shrink:0}
.conv-item:hover .conv-del{opacity:.5}
.conv-item .conv-del:hover{opacity:1;color:var(--red)}

/* Chat messages */
.msg-row{max-width:820px;margin:0 auto;padding:8px 24px;display:flex;gap:14px}
.msg-avatar{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;font-weight:600}
.msg-user .msg-avatar{background:linear-gradient(135deg,var(--primary),#3b82f6);color:#fff}
.msg-assistant .msg-avatar{background:linear-gradient(135deg,var(--cyan),#0891b2);color:#fff}
.msg-content{flex:1;min-width:0;padding-top:4px}
.msg-content p{margin-bottom:8px}
.msg-content pre{background:#1e293b;color:#e2e8f0;border-radius:8px;padding:14px;overflow-x:auto;margin:8px 0;font-size:13px}
.msg-content code{font-family:'SF Mono',Consolas,monospace;font-size:13px}
.msg-content :not(pre)>code{background:var(--bg-2);padding:2px 6px;border-radius:4px;color:var(--primary)}
.msg-content ul,.msg-content ol{padding-left:20px;margin-bottom:8px}
.msg-content table{border-collapse:collapse;margin:8px 0;width:100%}
.msg-content th,.msg-content td{border:1px solid var(--border);padding:6px 10px;font-size:13px}
.msg-content blockquote{border-left:3px solid var(--primary);padding-left:12px;color:var(--text-secondary);margin:8px 0}
.chat-input-area{border-top:1px solid var(--border);padding:16px 24px;background:rgba(15,18,30,.3);backdrop-filter:blur(12px)}
.chat-input-wrap{max-width:820px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:16px;padding:8px 8px 8px 16px;transition:.2s;backdrop-filter:blur(12px)}
.chat-input-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
#chat-input{flex:1;border:none;background:none;resize:none;font-size:14px;line-height:1.5;max-height:120px;color:var(--text)}
#chat-input::placeholder{color:var(--text-tertiary)}
#chat-input:focus{outline:none}
.btn-send{width:36px;height:36px;border-radius:10px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.2s}
.btn-send:hover{background:var(--primary-hover)}
.btn-send:disabled{opacity:.3;cursor:not-allowed}
.typing-indicator span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--primary);margin:0 2px;animation:blink 1.4s infinite}
.typing-indicator span:nth-child(2){animation-delay:.2s}
.typing-indicator span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

/* ========== Image Page ========== */
.image-page-layout{display:flex;gap:20px;padding:24px;max-width:1200px;margin:0 auto}
.image-gen-panel{flex:1;min-width:0}
.image-gallery-panel{width:360px;flex-shrink:0}
.page-title{font-size:22px;margin-bottom:20px;font-weight:700}
.panel-title{font-size:16px;font-weight:600;margin-bottom:12px}
.input-group{margin-bottom:16px}
.input-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px;font-weight:500}
.input-group textarea{width:100%;padding:10px 14px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;resize:vertical;transition:.2s;color:var(--text)}
.input-group textarea::placeholder{color:var(--text-tertiary)}
.input-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.style-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.style-card{padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;font-size:12px;cursor:pointer;transition:.2s;background:rgba(255,255,255,.03);color:var(--text-secondary)}
.style-card:hover{border-color:var(--primary);color:var(--text)}
.style-card.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}
.image-result{margin-top:20px}
.image-result img{max-width:100%;border-radius:var(--radius);box-shadow:var(--shadow-md)}
.image-result .loading{display:flex;align-items:center;justify-content:center;padding:60px;background:var(--bg-2);border-radius:var(--radius)}
.image-result .loading .spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:600px;overflow-y:auto}
.gallery-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;aspect-ratio:1;border:1px solid var(--border)}
.gallery-item img{width:100%;height:100%;object-fit:cover}
.gallery-item .gallery-info{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;padding:8px;font-size:11px;opacity:0;transition:.2s}
.gallery-item:hover .gallery-info{opacity:1}
.gallery-empty{text-align:center;color:var(--text-tertiary);padding:40px 0;grid-column:1/-1}

/* ========== Video Page ========== */
.video-page-layout{display:flex;gap:20px;padding:24px;max-width:1200px;margin:0 auto}
.video-gen-panel{flex:1;min-width:0}
.video-gallery-panel{width:320px;flex-shrink:0}
.premium-lock{text-align:center;padding:48px 32px;background:linear-gradient(135deg,rgba(212,160,23,.03),rgba(79,134,247,.03));border:1px solid rgba(212,160,23,.12);border-radius:var(--radius)}
.lock-icon{font-size:48px;margin-bottom:16px}
.premium-lock h3{font-size:22px;font-weight:700;margin-bottom:8px}
.premium-lock>p{color:var(--text-secondary);font-size:14px;margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto}
.premium-price{font-size:42px;font-weight:800;color:var(--gold);margin-bottom:20px}
.premium-price span{font-size:14px;font-weight:400;color:var(--text-tertiary)}
.premium-features{list-style:none;text-align:left;max-width:320px;margin:0 auto 24px}
.premium-features li{padding:5px 0;font-size:13px;color:var(--text-secondary);display:flex;align-items:flex-start;gap:6px}
.premium-features li::before{content:'✓';color:var(--green);font-weight:700;flex-shrink:0}
.duration-selector{display:flex;gap:8px}
.dur-btn{padding:8px 16px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);transition:.2s}
.dur-btn:hover{border-color:var(--primary);color:var(--text)}
.dur-btn.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}
.video-result{margin-top:20px}
.video-result video{max-width:100%;border-radius:var(--radius);box-shadow:var(--shadow-md)}
.video-result .v-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;background:var(--bg-2);border-radius:var(--radius);gap:12px}
.video-result .v-loading .spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}
.video-result .v-loading p{color:var(--text-tertiary);font-size:13px}
.video-gallery-grid{display:flex;flex-direction:column;gap:12px;max-height:600px;overflow-y:auto}
.video-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:1px solid var(--border);aspect-ratio:16/9}
.video-item img,.video-item video{width:100%;height:100%;object-fit:cover}
.video-item .v-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff}
.video-item .v-info{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;padding:8px;font-size:11px;opacity:0;transition:.2s}
.video-item:hover .v-info{opacity:1}

/* ========== Pricing ========== */
.pricing-container{max-width:1100px;margin:0 auto;padding:24px}
.pricing-header{text-align:center;margin-bottom:32px}
.pricing-header h2{font-size:32px;margin-bottom:10px;font-weight:700}
.pricing-header h2 span{background:linear-gradient(135deg,var(--primary),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.pricing-header p{color:var(--text-secondary);font-size:15px}
.pricing-header .partner-tag{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:4px 14px;border:1px solid rgba(6,182,212,.2);border-radius:20px;font-size:12px;color:var(--cyan);background:rgba(6,182,212,.04)}
.billing-toggle{display:flex;justify-content:center;gap:0;margin:24px auto 32px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:4px;width:fit-content}
.billing-toggle button{padding:8px 24px;font-size:13px;font-weight:600;color:var(--text-tertiary);background:none;border-radius:8px;transition:.2s}
.billing-toggle button.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(79,134,247,.2)}
.billing-toggle .save-badge{display:inline-block;margin-left:4px;padding:1px 6px;background:var(--green);color:#fff;border-radius:4px;font-size:10px;font-weight:700}
.banner-slideshow{margin-bottom:32px;border-radius:var(--radius);overflow:hidden;min-height:200px;display:none}
.banner-slideshow.has-banners{display:block}
.banner-slide{position:relative;display:none}
.banner-slide.active{display:block}
.banner-slide img{width:100%;height:200px;object-fit:cover}
.banner-slide .banner-title{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;padding:24px 20px 16px;font-size:20px;font-weight:600}
.banner-dots{display:flex;justify-content:center;gap:6px;margin-top:8px}
.banner-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;cursor:pointer;transition:.2s}
.banner-dot.active{background:var(--primary)}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.pricing-card{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:16px;padding:28px 24px;transition:.3s;position:relative;overflow:hidden;backdrop-filter:blur(12px)}
.pricing-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--border);transition:.3s}
.pricing-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg),0 0 30px rgba(107,164,255,.06);background:rgba(255,255,255,.06)}
.pricing-card:hover::before{background:linear-gradient(90deg,var(--primary),var(--cyan))}
.pricing-card.popular{border-color:rgba(107,164,255,.3);background:linear-gradient(135deg,rgba(107,164,255,.06),rgba(34,212,238,.03))}
.pricing-card.popular::before{background:linear-gradient(90deg,var(--primary),var(--cyan))}
.popular-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--primary),var(--cyan));color:#fff;padding:3px 14px;border-radius:0 0 10px 10px;font-size:11px;font-weight:700}
.pricing-card .pkg-name{font-size:18px;font-weight:700;margin-bottom:4px}
.pricing-card .pkg-tagline{font-size:11px;color:var(--text-tertiary);margin-bottom:16px}
.pricing-card .pkg-price{font-size:36px;font-weight:800;color:var(--text);margin-bottom:4px}
.pricing-card .pkg-price .currency{font-size:18px;font-weight:600;color:var(--text-secondary)}
.pricing-card .pkg-price .period{font-size:13px;font-weight:400;color:var(--text-tertiary)}
.pricing-card .pkg-original{font-size:13px;color:var(--text-tertiary);text-decoration:line-through;margin-bottom:16px}
.pricing-card .pkg-credits{font-size:13px;color:var(--cyan);margin-bottom:16px;font-weight:600}
.pkg-features{list-style:none;margin-bottom:20px}
.pkg-features li{padding:5px 0;font-size:12px;color:var(--text-secondary);display:flex;align-items:flex-start;gap:6px}
.pkg-features li::before{content:'✓';color:var(--green);font-weight:700;flex-shrink:0}
.pricing-card .btn-buy{width:100%;padding:11px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;transition:.2s;background:rgba(255,255,255,.05);border:1px solid var(--border);color:var(--text)}
.pricing-card .btn-buy:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}
.pricing-card.popular .btn-buy{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:#fff;border:none;box-shadow:0 2px 12px rgba(107,164,255,.2)}
.pricing-card.popular .btn-buy:hover{background:var(--primary-hover)}
.pricing-card.premium .btn-buy{background:linear-gradient(135deg,var(--gold),#b8860b);color:#fff;border:none}

/* ========== Profile ========== */
.profile-container{max-width:700px;margin:0 auto;padding:24px}
.profile-card{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--radius);padding:32px;text-align:center;margin-bottom:20px;backdrop-filter:blur(12px)}
.profile-avatar{width:72px;height:72px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:600;margin:0 auto 12px;box-shadow:0 4px 20px rgba(79,134,247,.15)}
.profile-card h2{font-size:20px;margin-bottom:4px}
.profile-phone{color:var(--text-tertiary);font-size:14px;margin-bottom:16px}
.profile-credits{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}
.credits-num{font-size:36px;font-weight:800;color:var(--primary)}
.credits-label{font-size:13px;color:var(--text-tertiary)}
.profile-orders{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--radius);padding:20px;backdrop-filter:blur(12px)}
.profile-orders h3{font-size:16px;margin-bottom:12px}
.orders-list{display:flex;flex-direction:column;gap:8px}
.order-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-2);border-radius:var(--radius-sm);font-size:13px}
.order-status{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.order-status.paid{background:rgba(52,211,153,.15);color:var(--green)}
.order-status.pending{background:rgba(251,191,36,.15);color:var(--orange)}

/* ========== Admin ========== */
.admin-layout{padding:20px;max-width:1200px;margin:0 auto}
.admin-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border);overflow-x:auto}
.admin-tab{padding:10px 16px;font-size:14px;font-weight:500;color:var(--text-secondary);background:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.2s;white-space:nowrap}
.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.admin-panel{display:none}
.admin-panel.active{display:block}
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--radius);padding:20px;backdrop-filter:blur(8px)}
.stat-card .stat-label{font-size:13px;color:var(--text-tertiary);margin-bottom:8px}
.stat-card .stat-value{font-size:28px;font-weight:700}
.admin-table{width:100%;border-collapse:collapse;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.admin-table th,.admin-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}
.admin-table th{background:var(--bg-2);font-weight:600;color:var(--text-secondary)}
.admin-table tr:hover{background:var(--bg)}
.admin-table img{width:40px;height:40px;border-radius:6px;object-fit:cover}
.admin-form-row{display:flex;gap:12px;margin-bottom:12px;align-items:flex-end;flex-wrap:wrap}
.admin-form-row .input-group{flex:1;min-width:180px}
.admin-form-row input,.admin-form-row textarea{width:100%;padding:8px 12px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text)}
.admin-form-row textarea{resize:vertical}
.settings-section{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;backdrop-filter:blur(8px)}
.settings-section h3{font-size:16px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.setting-row{display:grid;grid-template-columns:200px 1fr;gap:12px;margin-bottom:12px;align-items:start}
.setting-row label{font-size:13px;color:var(--text-secondary);padding-top:8px;font-weight:500}
.setting-row input,.setting-row textarea,.setting-row select{width:100%;padding:8px 12px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--text)}
.setting-row textarea{min-height:80px;font-family:monospace;resize:vertical}
.setting-row .hint{font-size:11px;color:var(--text-tertiary);margin-top:4px}

/* ========== Toast ========== */
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-100px);background:rgba(20,25,40,.95);border:1px solid var(--border);color:#fff;padding:10px 24px;border-radius:var(--radius-sm);font-size:14px;z-index:2000;transition:.3s;opacity:0;pointer-events:none;backdrop-filter:blur(12px)}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}

/* ========== Scrollbar ========== */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}

/* ========== Responsive ========== */
@media(max-width:900px){
  .landing-page{flex-direction:column;padding:24px}
  .landing-right{width:100%;margin-top:24px}
  .landing-headline{font-size:36px}
  .landing-cards{flex-direction:column}
  .image-page-layout,.video-page-layout{flex-direction:column}
  .image-gallery-panel,.video-gallery-panel{width:100%}
  .style-grid{grid-template-columns:repeat(3,1fr)}
  .pricing-grid{grid-template-columns:1fr}
}
