:root {
  --bg-primary: #0A0E1A;
  --bg-secondary: #111827;
  --bg-card: rgba(17, 24, 39, 0.7);
  --bg-card-hover: rgba(25, 35, 55, 0.8);
  --bg-card-solid: #111827;
  --accent-cyan: #09ADC3;
  --accent-blue: #6366F1;
  --accent-pink: #FF00A1;
  --gradient-primary: linear-gradient(135deg, #09ADC3 0%, #6366F1 50%, #FF00A1 100%);
  --gradient-subtle: linear-gradient(135deg, rgba(9,173,195,0.15) 0%, rgba(99,102,241,0.15) 50%, rgba(255,0,161,0.15) 100%);
  --gradient-cyan-blue: linear-gradient(135deg, #09ADC3 0%, #6366F1 100%);
  --gradient-blue-pink: linear-gradient(135deg, #6366F1 0%, #FF00A1 100%);
  --text-primary: #F1F5F9;
  --text-secondary: #94A3B8;
  --text-muted: #64748B;
  --border-subtle: rgba(148, 163, 184, 0.08);
  --border-glow: rgba(9, 173, 195, 0.3);
  --border-active: rgba(9, 173, 195, 0.5);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --sidebar-width: 240px;
  --sidebar-collapsed: 64px;
  --font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --success: #22C55E;
  --warning: #F59E0B;
  --error: #EF4444;
}
@keyframes meshGradient {
  0%,100%{transform:translate(0,0) scale(1)}
  25%{transform:translate(30px,-50px) scale(1.1)}
  50%{transform:translate(-20px,20px) scale(.95)}
  75%{transform:translate(50px,30px) scale(1.05)}
}
@keyframes meshGradient2 {
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(-40px,30px) scale(1.15)}
  66%{transform:translate(30px,-40px) scale(.9)}
}
@keyframes meshGradient3 {
  0%,100%{transform:translate(0,0) scale(1.05)}
  50%{transform:translate(40px,20px) scale(.95)}
}
@keyframes shimmer {
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}
@keyframes pulse {
  0%,100%{opacity:1}
  50%{opacity:.5}
}
@keyframes pulseGlow {
  0%,100%{box-shadow:0 0 4px rgba(9,173,195,.4)}
  50%{box-shadow:0 0 12px rgba(9,173,195,.8)}
}
@keyframes float {
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}
@keyframes floatSlow {
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-8px) rotate(1deg)}
}
@keyframes fadeInUp {
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes gradientShift {
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes dashMove {
  to{stroke-dashoffset:-20}
}
@keyframes particleFloat1 {
  0%,100%{transform:translate(0,0) scale(1);opacity:.3}
  25%{transform:translate(80px,-120px) scale(1.5);opacity:.6}
  50%{transform:translate(-30px,-200px) scale(.8);opacity:.2}
  75%{transform:translate(60px,-80px) scale(1.2);opacity:.5}
}
@keyframes particleFloat2 {
  0%,100%{transform:translate(0,0) scale(1);opacity:.2}
  33%{transform:translate(-60px,-150px) scale(1.3);opacity:.5}
  66%{transform:translate(40px,-100px) scale(.9);opacity:.3}
}
@keyframes streak {
  0%{transform:translateX(-100px) translateY(100px);opacity:0}
  10%{opacity:.6}
  90%{opacity:.6}
  100%{transform:translateX(400px) translateY(-400px);opacity:0}
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(148,163,184,.2);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.35)}
.dot-pattern{position:relative}
.dot-pattern::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(148,163,184,.06) 1px,transparent 1px);background-size:24px 24px;pointer-events:none;z-index:0}
.gradient-text{background:var(--gradient-primary);background-size:200% 200%;animation:gradientShift 6s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.glass-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all .3s ease}
.glass-card:hover{background:var(--bg-card-hover);border-color:rgba(148,163,184,.12)}
.btn-gradient{background:var(--gradient-primary);background-size:200% 200%;color:#fff;border:none;padding:12px 28px;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px;position:relative;overflow:hidden;font-family:var(--font-sans)}
.btn-gradient::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);background-size:200% 100%;opacity:0}
.btn-gradient:hover::before{opacity:1;animation:shimmer 3s infinite}
.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(9,173,195,.3),0 4px 16px rgba(99,102,241,.2);background-position:100% 0}
.btn-gradient:active{transform:translateY(0)}
.btn-glass{background:rgba(17,24,39,.6);backdrop-filter:blur(12px);color:var(--text-primary);border:1px solid var(--border-subtle);padding:12px 28px;border-radius:var(--radius-md);font-size:15px;font-weight:500;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans)}
.btn-glass:hover{background:rgba(25,35,55,.8);border-color:var(--border-glow);box-shadow:0 4px 20px rgba(9,173,195,.15)}
.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid rgba(148,163,184,.15);padding:10px 24px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans)}
.btn-outline:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:rgba(9,173,195,.05)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}
.badge-success{background:rgba(34,197,94,.12);color:#22C55E}
.badge-generating{background:rgba(9,173,195,.12);color:#09ADC3}
.badge-failed{background:rgba(239,68,68,.12);color:#EF4444}
.badge-error{background:rgba(239,68,68,.12);color:#EF4444}
.badge-style{background:rgba(99,102,241,.12);color:#818CF8}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.badge .dot-pulse{animation:pulse 1.5s infinite}
#landing-page{display:block;min-height:100vh}
#landing-page.hidden{display:none}
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:40px}
.hero-bg{position:absolute;inset:0;overflow:hidden;z-index:0}
.hero-blob{position:absolute;border-radius:50%;filter:blur(48px);opacity:.35;contain:paint;transform:translateZ(0)}
.hero-blob-1{width:600px;height:600px;background:radial-gradient(circle,rgba(9,173,195,.5) 0%,transparent 70%);top:-10%;left:-5%;animation:meshGradient 20s ease-in-out infinite}
.hero-blob-2{width:500px;height:500px;background:radial-gradient(circle,rgba(99,102,241,.5) 0%,transparent 70%);top:20%;right:-10%;animation:meshGradient2 25s ease-in-out infinite}
.hero-blob-3{width:450px;height:450px;background:radial-gradient(circle,rgba(255,0,161,.3) 0%,transparent 70%);bottom:-5%;left:30%;animation:meshGradient3 18s ease-in-out infinite}
.hero-particle{position:absolute;border-radius:50%;pointer-events:none}
.hero-particle-1{width:4px;height:4px;background:var(--accent-cyan);top:30%;left:15%;animation:particleFloat1 12s ease-in-out infinite;opacity:.3}
.hero-particle-2{width:3px;height:3px;background:var(--accent-blue);top:60%;left:75%;animation:particleFloat2 15s ease-in-out infinite;opacity:.25}
.hero-particle-3{width:5px;height:5px;background:var(--accent-pink);top:20%;right:20%;animation:particleFloat1 18s ease-in-out infinite reverse;opacity:.2}
.hero-particle-4{width:3px;height:3px;background:var(--accent-cyan);top:70%;left:40%;animation:particleFloat2 14s ease-in-out infinite;opacity:.35}
.hero-particle-5{width:4px;height:4px;background:var(--accent-blue);top:45%;left:55%;animation:particleFloat1 16s ease-in-out infinite reverse;opacity:.2}
.hero-streak{position:absolute;width:120px;height:1px;background:linear-gradient(90deg,transparent,rgba(9,173,195,.4),transparent)}
.hero-streak-1{top:25%;left:10%;transform:rotate(-35deg);animation:streak 8s linear infinite}
.hero-streak-2{top:55%;right:15%;transform:rotate(-40deg);animation:streak 12s linear infinite 3s}
.hero-streak-3{top:75%;left:25%;transform:rotate(-30deg);animation:streak 10s linear infinite 6s}
.hero-content{position:relative;z-index:2;display:flex;align-items:center;gap:80px;max-width:1200px;width:100%}
.hero-text{flex:1}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:rgba(9,173,195,.1);border:1px solid rgba(9,173,195,.2);border-radius:20px;font-size:13px;color:var(--accent-cyan);margin-bottom:28px;animation:fadeInUp .8s ease both}
.hero-title{font-size:56px;font-weight:800;line-height:1.15;letter-spacing:-1px;margin-bottom:20px;animation:fadeInUp .8s ease .15s both}
.hero-subtitle{font-size:18px;color:var(--text-secondary);line-height:1.7;margin-bottom:36px;max-width:480px;animation:fadeInUp .8s ease .3s both}
.hero-benefits{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-18px 0 30px;animation:fadeInUp .8s ease .38s both}
.hero-benefits span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(148,163,184,.06);border:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}
.hero-benefits svg{width:14px;height:14px;color:var(--accent-cyan)}
.hero-actions{display:flex;gap:16px;animation:fadeInUp .8s ease .45s both}
.hero-actions .btn-gradient,.hero-actions .btn-glass{padding:14px 32px;font-size:16px;border-radius:var(--radius-md)}
.hero-phone{flex-shrink:0;animation:fadeInUp 1s ease .6s both,floatSlow 6s ease-in-out infinite}
.phone-frame{width:240px;height:480px;background:#1a1f2e;border-radius:32px;padding:8px;border:2px solid rgba(148,163,184,.1);box-shadow:0 24px 80px rgba(0,0,0,.5),0 0 60px rgba(9,173,195,.08);position:relative}
.phone-notch{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:80px;height:22px;background:#1a1f2e;border-radius:0 0 14px 14px;z-index:3}
.phone-screen{width:100%;height:100%;border-radius:24px;overflow:hidden;position:relative}
.phone-screen-content{width:100%;height:100%;background:linear-gradient(180deg,#1a0a2e 0%,#0d1b3e 30%,#091525 60%,#1a0520 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:20px 16px}
.phone-overlay-text{color:#fff;font-size:13px;font-weight:600;margin-bottom:4px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.phone-overlay-sub{color:rgba(255,255,255,.6);font-size:10px;margin-bottom:12px}
.phone-flow-label{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:5px 8px;margin-bottom:10px;border-radius:999px;background:rgba(9,173,195,.13);border:1px solid rgba(9,173,195,.24);color:#67E8F9;font-size:9px}
.phone-flow-label span{width:5px;height:5px;border-radius:50%;background:#22D3EE;box-shadow:0 0 8px rgba(34,211,238,.85)}
.phone-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2)}
.phone-play-btn::after{content:'';width:0;height:0;border-style:solid;border-width:8px 0 8px 14px;border-color:transparent transparent transparent #fff;margin-left:3px}
.phone-progress{width:100%;height:3px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden}
.phone-progress-fill{width:35%;height:100%;background:var(--gradient-primary);border-radius:2px}
.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;background:rgba(10,14,26,.8);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle)}
.landing-nav .brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;color:var(--text-primary);text-decoration:none}
.landing-nav .brand-icon,.auth-nav .brand-icon,.brand-icon{width:32px;height:32px;background:var(--gradient-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;font-weight:800}
.landing-nav .nav-links{display:flex;align-items:center;gap:32px;list-style:none}
.landing-nav .nav-links a{color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s;cursor:pointer}
.landing-nav .nav-links a:hover{color:var(--text-primary)}
.landing-nav .nav-actions{display:flex;align-items:center;gap:12px}
.landing-section{padding:100px 40px;max-width:1200px;margin:0 auto;position:relative}
.section-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--accent-cyan);text-transform:uppercase;letter-spacing:2px;margin-bottom:16px}
.section-title{font-size:36px;font-weight:700;margin-bottom:16px;letter-spacing:-.5px}
.section-desc{font-size:16px;color:var(--text-secondary);max-width:560px;line-height:1.7}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.features-grid-five{grid-template-columns:repeat(6,minmax(0,1fr))}
.features-grid-five .feature-card{grid-column:span 2}
.features-grid-five .feature-card:nth-last-child(-n+2){grid-column:span 3}
.feature-card{padding:32px;position:relative;overflow:hidden}
.feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:0;transition:opacity .3s}
.feature-card:hover::before{opacity:1}
.feature-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.3)}
.feature-icon{width:48px;height:48px;background:var(--gradient-subtle);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--accent-cyan)}
.feature-title{font-size:18px;font-weight:600;margin-bottom:10px}
.feature-desc{font-size:14px;color:var(--text-secondary);line-height:1.7}
.feature-visual{margin-top:20px;height:80px;border-radius:var(--radius-sm);background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px}
.workflow-section{padding:100px 40px;position:relative}
.workflow-section::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(148,163,184,.04) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.workflow-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1}
.workflow-steps{display:flex;align-items:flex-start;justify-content:space-between;margin-top:56px;position:relative}
.workflow-line{position:absolute;top:32px;left:60px;right:60px;height:2px;background:repeating-linear-gradient(90deg,rgba(9,173,195,.3) 0px,rgba(99,102,241,.3) 8px,transparent 8px,transparent 16px);z-index:0}
.workflow-step{display:flex;flex-direction:column;align-items:center;gap:16px;position:relative;z-index:1;flex:1}
.workflow-step-icon{width:64px;height:64px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 24px rgba(9,173,195,.3);position:relative}
.workflow-step-icon::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(9,173,195,.15)}
.workflow-step-num{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:var(--bg-primary);border:2px solid var(--accent-cyan);border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;color:var(--accent-cyan)}
.workflow-step-title{font-size:16px;font-weight:600;text-align:center}
.workflow-step-desc{font-size:13px;color:var(--text-muted);text-align:center;max-width:160px}
.stats-bar{display:flex;justify-content:center;gap:80px;padding:60px 40px;position:relative}
.stats-bar::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--border-subtle),transparent)}
.stat-item{text-align:center}
.stat-number{font-size:42px;font-weight:800;margin-bottom:4px}
.stats-bar .stat-number{font-size:30px}
.stat-label{font-size:14px;color:var(--text-muted)}
.stat-underline{width:40px;height:3px;background:var(--gradient-primary);border-radius:2px;margin:12px auto 0}
.pricing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:720px;margin:48px auto 0}
.pricing-card{padding:36px;position:relative;transition:all .3s}
.pricing-card.featured{border:2px solid transparent;background-clip:padding-box}
.pricing-card.featured::before{content:'';position:absolute;inset:-2px;border-radius:calc(var(--radius-lg) + 2px);background:var(--gradient-primary);z-index:-1}
.pricing-card.featured::after{content:'';position:absolute;inset:0;border-radius:var(--radius-lg);background:var(--bg-card-solid);z-index:-1}
.pricing-card:hover{transform:translateY(-6px);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.pricing-tag{position:absolute;top:-1px;right:24px;background:var(--gradient-primary);color:#fff;padding:4px 14px;border-radius:0 0 8px 8px;font-size:11px;font-weight:600}
.pricing-name{font-size:20px;font-weight:700;margin-bottom:8px}
.pricing-price{font-size:36px;font-weight:800;margin-bottom:4px}
.pricing-price span{font-size:14px;font-weight:400;color:var(--text-muted)}
.pricing-desc{font-size:14px;color:var(--text-secondary);margin-bottom:24px}
.pricing-features{list-style:none;margin-bottom:28px}
.pricing-features li{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14px;color:var(--text-secondary)}
.pricing-features li .check{color:var(--accent-cyan);font-size:16px;flex-shrink:0}
.landing-footer{padding:40px;text-align:center;position:relative}
.landing-footer::before{content:'';position:absolute;top:0;left:10%;right:10%;height:1px;background:var(--gradient-primary);opacity:.3}
.landing-footer p{color:var(--text-muted);font-size:13px}
@media(max-width:960px){
  .landing-nav{padding:14px 24px}
  .landing-nav .nav-links{display:none}
  .hero{min-height:auto;padding:130px 28px 80px}
  .hero-content{gap:48px}
  .hero-title{font-size:44px}
  .features-grid,.features-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}
  .features-grid-five .feature-card,.features-grid-five .feature-card:nth-last-child(-n+2){grid-column:span 1}
  .features-grid-five .feature-card:first-child{grid-column:1/-1}
  .workflow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
  .stats-bar{gap:36px}
}
@media(max-width:700px){
  .landing-nav{padding:12px 16px}
  .landing-nav .nav-actions .btn-glass{display:none}
  .landing-nav .nav-actions .btn-gradient{padding:9px 13px;font-size:12px}
  .hero{padding:112px 20px 64px}
  .hero-content{display:block}
  .hero-title{font-size:38px;line-height:1.2}
  .hero-subtitle{font-size:16px}
  .hero-actions{flex-direction:column;align-items:stretch}
  .hero-actions .btn-gradient,.hero-actions .btn-glass{justify-content:center}
  .hero-phone{display:none}
  .landing-section,.workflow-section{padding:72px 20px}
  .section-title{font-size:28px}
  .features-grid,.features-grid-five{grid-template-columns:1fr;gap:16px;margin-top:32px}
  .features-grid-five .feature-card,.features-grid-five .feature-card:nth-last-child(-n+2),.features-grid-five .feature-card:first-child{grid-column:auto}
  .workflow-steps{grid-template-columns:1fr;margin-top:36px;gap:18px}
  .workflow-line{display:none}
  .workflow-step{display:grid;grid-template-columns:54px 1fr;column-gap:14px;row-gap:3px;align-items:center;text-align:left}
  .workflow-step-icon{width:52px;height:52px;grid-row:1/3}
  .workflow-step-title,.workflow-step-desc{text-align:left;max-width:none}
  .stats-bar{display:grid;grid-template-columns:1fr;padding:48px 20px;gap:28px}
  .pricing-grid{grid-template-columns:1fr;margin-top:32px}
}
/* Multi-page: show by default (do not hide — remote/cache partial CSS would blank the UI) */
.app-layout{display:flex;min-height:100vh}
.app-layout.active,.app-layout.app-shell{display:flex}
.sidebar{width:var(--sidebar-width);height:100vh;position:fixed;left:0;top:0;background:rgba(10,14,26,.9);backdrop-filter:blur(16px);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;z-index:50;transition:width .3s ease}
.sidebar.collapsed{width:var(--sidebar-collapsed)}
.sidebar-header{padding:20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border-subtle);min-height:64px}
.sidebar-brand-icon{width:32px;height:32px;background:var(--gradient-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;flex-shrink:0}
.sidebar-brand-text{font-size:18px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;transition:opacity .2s}
.sidebar.collapsed .sidebar-brand-text{opacity:0;width:0}
.sidebar-nav{flex:1;padding:12px;display:flex;flex-direction:column;gap:4px}
.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;position:relative;white-space:nowrap;overflow:hidden}
.sidebar-nav-item:hover{background:rgba(148,163,184,.06);color:var(--text-primary)}
.sidebar-nav-item.active{background:rgba(9,173,195,.08);color:var(--accent-cyan)}
.sidebar-nav-item.active::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--gradient-primary);border-radius:0 3px 3px 0}
.sidebar-nav-item .nav-icon{width:20px;height:20px;flex-shrink:0}
.sidebar-nav-item .nav-label{transition:opacity .2s}
.sidebar.collapsed .nav-label{opacity:0}
.sidebar-footer{padding:16px;border-top:1px solid var(--border-subtle)}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}
.sidebar-user:hover{background:rgba(148,163,184,.06)}
.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:var(--gradient-cyan-blue);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}
.sidebar-user-info{overflow:hidden;transition:opacity .2s}
.sidebar.collapsed .sidebar-user-info{opacity:0;width:0}
.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text-primary)}
.sidebar-user-credits{font-size:11px;color:var(--accent-cyan);display:flex;align-items:center;gap:4px}
.main-content{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left .3s ease;width:calc(100% - var(--sidebar-width))}
.sidebar.collapsed ~ .main-content{margin-left:var(--sidebar-collapsed);width:calc(100% - var(--sidebar-collapsed))}
/* 服务端已渲染当前页：默认显示，避免 CSS 下载截断停在 display:none 时整页空白 */
.page{display:block;padding:0;animation:fadeInUp .4s ease}
.page.active{display:block}
.page-header{padding:24px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);background:rgba(10,14,26,.6);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}
.page-header-left{display:flex;align-items:center;gap:16px}
.page-header h1{font-size:20px;font-weight:700}
.page-header .subtitle{font-size:13px;color:var(--text-muted)}
.search-bar{display:flex;align-items:center;gap:10px;background:rgba(17,24,39,.6);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:8px 16px;width:280px;transition:border-color .2s}
.search-bar:focus-within{border-color:var(--border-glow)}
.search-bar input{background:none;border:none;outline:none;color:var(--text-primary);font-size:13px;width:100%;font-family:var(--font-sans)}
.search-bar input::placeholder{color:var(--text-muted)}
.search-bar .search-icon{color:var(--text-muted);flex-shrink:0}
.page-body{padding:28px 32px}
.welcome-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.welcome-text h2{font-size:24px;font-weight:700;margin-bottom:4px}
.welcome-text p{font-size:14px;color:var(--text-muted)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}
.stat-card{padding:20px;display:flex;align-items:center;gap:16px}
.stat-card-icon{width:42px;height:42px;border-radius:var(--radius-md);background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-card-value{font-size:24px;font-weight:700;line-height:1.2}
.stat-card-label{font-size:13px;color:var(--text-muted)}
.stat-card-trend{font-size:11px;font-weight:600;display:flex;align-items:center;gap:2px}
.stat-card-trend.up{color:var(--success)}
.projects-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.projects-header h3{font-size:18px;font-weight:600}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.project-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card-solid);border:1px solid var(--border-subtle);cursor:pointer;transition:all .3s ease}
.project-card:hover{transform:translateY(-4px);border-color:var(--border-glow);box-shadow:0 12px 40px rgba(0,0,0,.3),0 0 20px rgba(9,173,195,.08)}
.project-thumb{height:160px;position:relative;overflow:hidden}
.project-thumb-overlay{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:flex-start;padding:12px}
.project-duration{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);padding:2px 8px;border-radius:4px;font-size:11px;color:#fff;font-weight:500}
.project-info{padding:14px 16px}
.project-title{font-size:14px;font-weight:600;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.project-meta{display:flex;align-items:center;justify-content:space-between}
.project-date{font-size:12px;color:var(--text-muted)}
.project-card-new{border:2px dashed rgba(148,163,184,.15);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;cursor:pointer;transition:all .3s;border-radius:var(--radius-lg)}
.project-card-new:hover{border-color:var(--accent-cyan);background:rgba(9,173,195,.04)}
.project-card-new .plus-icon{width:48px;height:48px;border-radius:50%;background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;color:var(--accent-cyan);margin-bottom:12px}
.project-card-new span{font-size:14px;color:var(--text-muted)}
.wizard-progress{padding:24px 32px;border-bottom:1px solid var(--border-subtle);background:rgba(10,14,26,.6)}
.wizard-steps{display:flex;align-items:center;justify-content:center;gap:0;max-width:600px;margin:0 auto}
.wizard-step{display:flex;align-items:center;gap:10px;position:relative}
.wizard-step-circle{width:36px;height:36px;border-radius:50%;border:2px solid rgba(148,163,184,.15);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--text-muted);transition:all .3s;flex-shrink:0;background:var(--bg-primary);position:relative;z-index:2}
.wizard-step.active .wizard-step-circle{border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 16px rgba(9,173,195,.3)}
.wizard-step.completed .wizard-step-circle{border-color:var(--success);background:var(--success);color:#fff}
.wizard-step-label{font-size:13px;font-weight:500;color:var(--text-muted);white-space:nowrap}
.wizard-step.active .wizard-step-label{color:var(--text-primary)}
.wizard-step.completed .wizard-step-label{color:var(--success)}
.wizard-connector{flex:1;height:2px;background:rgba(148,163,184,.1);margin:0 12px;min-width:30px;position:relative;overflow:hidden}
.wizard-connector-fill{height:100%;background:var(--gradient-primary);width:0%;transition:width .5s ease}
.wizard-connector.filled .wizard-connector-fill{width:100%}
.wizard-body{padding:32px;max-width:960px;margin:0 auto}
.wizard-panel{display:none;animation:fadeInUp .4s ease}
.wizard-panel.active{display:block}
.creative-textarea{width:100%;min-height:160px;background:var(--bg-card);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;color:var(--text-primary);font-size:15px;font-family:var(--font-sans);line-height:1.7;resize:vertical;outline:none;transition:border-color .2s}
.creative-textarea:focus{border-color:var(--border-glow)}
.creative-textarea::placeholder{color:var(--text-muted)}
.char-counter{text-align:right;font-size:12px;color:var(--text-muted);margin-top:8px}
.style-selector-label{font-size:15px;font-weight:600;margin:28px 0 16px}
.style-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.style-card{padding:16px;border-radius:var(--radius-md);background:var(--bg-card);border:2px solid var(--border-subtle);cursor:pointer;transition:all .3s;position:relative;overflow:hidden}
.style-card:hover{border-color:rgba(148,163,184,.15);transform:translateY(-2px)}
.style-card.selected{border-color:var(--accent-cyan);box-shadow:0 0 20px rgba(9,173,195,.15)}
.style-card.selected::after{content:'\2713';position:absolute;top:8px;right:8px;width:22px;height:22px;background:var(--accent-cyan);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:700}
.style-thumb{height:60px;border-radius:var(--radius-sm);margin-bottom:10px}
.style-name{font-size:14px;font-weight:600;margin-bottom:4px}
.style-desc{font-size:12px;color:var(--text-muted)}
.duration-selector{margin-top:28px}
.duration-label{font-size:15px;font-weight:600;margin-bottom:12px}
.duration-pills{display:flex;gap:10px}
.duration-pill{padding:10px 24px;border-radius:24px;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--font-sans)}
.duration-pill:hover{border-color:rgba(148,163,184,.15)}
.duration-pill.selected{background:rgba(9,173,195,.12);border-color:var(--accent-cyan);color:var(--accent-cyan)}
.wizard-actions{margin-top:32px;display:flex;justify-content:flex-end;gap:12px}
.wizard-actions .btn-gradient{min-width:180px;justify-content:center}
.script-layout{display:grid;grid-template-columns:1fr 320px;gap:20px;min-height:500px}
.script-viewer{padding:28px;max-height:560px;overflow-y:auto}
.script-act{margin-bottom:28px}
.script-act-header{font-size:16px;font-weight:700;color:var(--accent-cyan);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}
.script-scene{margin-bottom:16px}
.script-scene-desc{font-size:13px;color:var(--text-muted);font-style:italic;margin-bottom:8px;padding-left:12px;border-left:2px solid rgba(148,163,184,.1)}
.script-dialogue{margin-bottom:10px}
.script-character{font-size:12px;font-weight:700;color:var(--accent-blue);text-transform:uppercase;margin-bottom:2px}
.script-line{font-size:14px;color:var(--text-primary);line-height:1.6}
.character-panel{padding:20px;max-height:560px;overflow-y:auto}
.character-panel h3{font-size:15px;font-weight:600;margin-bottom:16px}
.character-card{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:var(--radius-sm);background:rgba(148,163,184,.04);margin-bottom:10px}
.character-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0}
.character-name{font-size:13px;font-weight:600;margin-bottom:2px}
.character-desc{font-size:12px;color:var(--text-muted);line-height:1.4}
.character-lock{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11px;color:var(--text-muted)}
.toggle-switch{width:32px;height:18px;background:rgba(148,163,184,.15);border-radius:9px;position:relative;cursor:pointer;transition:background .2s}
.toggle-switch.on{background:var(--accent-cyan)}
.toggle-switch::after{content:'';position:absolute;width:14px;height:14px;background:#fff;border-radius:50%;top:2px;left:2px;transition:transform .2s}
.toggle-switch.on::after{transform:translateX(14px)}
.storyboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.storyboard-frame{border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card);border:1px solid var(--border-subtle);transition:all .3s;position:relative}
.storyboard-frame:hover{border-color:var(--border-glow);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.storyboard-image{height:160px;position:relative;overflow:hidden}
.storyboard-regen{position:absolute;inset:0;background:rgba(10,14,26,.8);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.storyboard-frame:hover .storyboard-regen{opacity:1}
.storyboard-info{padding:12px 14px}
.storyboard-scene-num{font-size:11px;font-weight:700;color:var(--accent-cyan);margin-bottom:4px}
.storyboard-desc{font-size:13px;color:var(--text-secondary);line-height:1.5;margin-bottom:8px}
.storyboard-camera{display:inline-block;padding:2px 10px;background:rgba(99,102,241,.12);color:#818CF8;border-radius:4px;font-size:11px;font-weight:600}
.video-gen-center{display:flex;flex-direction:column;align-items:center;padding:20px 0}
.video-phone-frame{width:260px;height:520px;background:#1a1f2e;border-radius:36px;padding:10px;border:2px solid rgba(148,163,184,.1);box-shadow:0 24px 80px rgba(0,0,0,.5);margin-bottom:32px}
.video-phone-screen{width:100%;height:100%;border-radius:26px;overflow:hidden;position:relative}
.video-play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);cursor:pointer;transition:all .3s}
.video-play-overlay:hover{background:rgba(255,255,255,.2);transform:translate(-50%,-50%) scale(1.1)}
.video-play-overlay::after{content:'';width:0;height:0;border-style:solid;border-width:10px 0 10px 18px;border-color:transparent transparent transparent #fff;margin-left:4px}
.progress-timeline{display:flex;align-items:center;gap:0;max-width:560px;margin-bottom:20px}
.progress-stage{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;z-index:1}
.progress-stage-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.progress-stage.done .progress-stage-dot{background:var(--success);color:#fff}
.progress-stage.active .progress-stage-dot{background:var(--accent-cyan);color:#fff;animation:pulseGlow 2s infinite}
.progress-stage.pending .progress-stage-dot{background:rgba(148,163,184,.1);color:var(--text-muted);border:2px solid rgba(148,163,184,.15)}
.progress-stage-label{font-size:12px;color:var(--text-muted);white-space:nowrap}
.progress-stage.done .progress-stage-label{color:var(--success)}
.progress-stage.active .progress-stage-label{color:var(--accent-cyan)}
.progress-connector{flex:1;height:2px;background:rgba(148,163,184,.1);min-width:40px;margin-bottom:24px}
.progress-connector.done{background:var(--success)}
.progress-connector.active{background:linear-gradient(90deg,var(--success),var(--accent-cyan));position:relative;overflow:hidden}
.progress-connector.active::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);background-size:200% 100%;animation:shimmer 2s infinite}
.progress-bar-container{width:100%;max-width:400px;height:6px;background:rgba(148,163,184,.1);border-radius:3px;overflow:hidden;margin-bottom:12px}
.progress-bar-fill{height:100%;background:var(--gradient-primary);background-size:200% 100%;animation:shimmer 2s linear infinite;border-radius:3px;width:67%;transition:width .5s ease}
.estimated-time{font-size:14px;color:var(--text-secondary)}
.detail-header{padding:24px 32px;border-bottom:1px solid var(--border-subtle)}
.detail-title-row{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.detail-title{font-size:22px;font-weight:700}
.detail-meta{display:flex;align-items:center;gap:16px}
.detail-meta-item{font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.detail-tabs{display:flex;gap:0;padding:0 32px;border-bottom:1px solid var(--border-subtle)}
.detail-tab{padding:14px 20px;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.detail-tab:hover{color:var(--text-secondary)}
.detail-tab.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}
.detail-body{display:grid;grid-template-columns:1fr 300px;gap:24px;padding:28px 32px}
.detail-main{min-height:400px}
.detail-sidebar-card{padding:20px;height:fit-content;position:sticky;top:90px}
.detail-sidebar-card h4{font-size:14px;font-weight:600;margin-bottom:16px}
.detail-info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-subtle);font-size:13px}
.detail-info-row:last-of-type{border-bottom:none}
.detail-info-label{color:var(--text-muted)}
.detail-info-value{color:var(--text-primary);font-weight:500}
.detail-actions{margin-top:20px;display:flex;flex-direction:column;gap:8px}
.detail-actions .btn-gradient,.detail-actions .btn-outline{width:100%;justify-content:center}
.detail-tab-content{display:none}
.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.profile-card{padding:28px;display:flex;align-items:center;gap:20px}
.profile-avatar-lg{width:72px;height:72px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#fff;flex-shrink:0}
.profile-name{font-size:20px;font-weight:700;margin-bottom:2px}
.profile-email{font-size:13px;color:var(--text-muted);margin-bottom:4px}
.profile-since{font-size:12px;color:var(--text-muted)}
.credits-card{padding:28px}
.credits-balance{font-size:48px;font-weight:800;line-height:1;margin-bottom:4px}
.credits-label{font-size:14px;color:var(--text-muted);margin-bottom:20px}
.credits-meter{height:8px;background:rgba(148,163,184,.1);border-radius:4px;overflow:hidden;margin-bottom:8px}
.credits-meter-fill{height:100%;background:var(--gradient-cyan-blue);border-radius:4px;width:68%}
.credits-meter-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:20px}
.usage-card{padding:28px;grid-column:1/-1}
.usage-card h3{font-size:16px;font-weight:600;margin-bottom:20px}
.billing-balance-chip{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:10px 16px}
.billing-balance-chip strong{font-size:22px;font-weight:800;line-height:1.1;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.billing-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.billing-section-head h3{margin-bottom:0}
.billing-table-wrap{overflow-x:auto}
.usage-chart{display:flex;align-items:stretch;gap:6px;height:180px;padding-top:8px}
.usage-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;height:100%}
.usage-bar-track{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;min-height:0}
.usage-bar{width:100%;max-width:28px;border-radius:4px 4px 0 0;background:var(--gradient-cyan-blue);min-height:4px;transition:height .5s ease}
.usage-bar-label{flex:0 0 18px;height:18px;margin-top:6px;font-size:10px;line-height:18px;color:var(--text-muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.transaction-card{padding:28px;grid-column:1/-1}
.transaction-card h3{font-size:16px;font-weight:600;margin-bottom:16px}
.transaction-table{width:100%;border-collapse:collapse}
.transaction-table th{text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--border-subtle)}
.transaction-table td{padding:12px;font-size:13px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}
.transaction-table tr:hover td{background:rgba(148,163,184,.03)}
.settings-card{padding:28px;grid-column:1/-1}
.settings-card h3{font-size:16px;font-weight:600;margin-bottom:20px}
.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border-subtle)}
.settings-row:last-child{border-bottom:none}
.settings-label{font-size:14px;color:var(--text-primary)}
.settings-desc{font-size:12px;color:var(--text-muted);margin-top:2px}
.profile-links{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.profile-link-card{padding:22px 20px;display:flex;align-items:center;gap:16px;transition:border-color .2s,transform .2s,box-shadow .2s}
.profile-link-card:hover{border-color:var(--border-glow);transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.25)}
.profile-link-icon{width:44px;height:44px;border-radius:12px;background:rgba(148,163,184,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.profile-link-title{font-size:15px;font-weight:600;margin-bottom:2px}
.profile-link-desc{font-size:12px;color:var(--text-muted)}
.profile-link-arrow{width:18px;height:18px;color:var(--text-muted);margin-left:auto;flex-shrink:0}
.billing-plan-card{padding:28px}
.billing-plan-card h3,.billing-packages h3{font-size:16px;font-weight:600;margin-bottom:12px}
.billing-plan-name{font-size:22px;font-weight:700}
.billing-plan-tags{display:flex;gap:8px;flex-wrap:wrap}
.billing-packages{padding:28px;grid-column:1/-1}
.billing-package-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:8px}
.billing-package{position:relative;padding:22px 16px;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:rgba(148,163,184,.04);cursor:pointer;text-align:center;font-family:var(--font-sans);color:inherit;transition:border-color .2s,transform .2s,background .2s}
.billing-package:hover{border-color:rgba(9,173,195,.35);transform:translateY(-2px)}
.billing-package.featured{border-color:rgba(9,173,195,.45);background:rgba(9,173,195,.08)}
.billing-package-badge{position:absolute;top:10px;right:10px;font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--gradient-cyan-blue);color:#fff}
.billing-package-points{font-size:28px;font-weight:800;line-height:1;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
.billing-package-unit{font-size:12px;color:var(--text-muted);margin:4px 0 10px}
.billing-package-price{font-size:15px;font-weight:600}
.docs-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}
.docs-nav{padding:14px;position:sticky;top:24px}
.docs-nav-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}
.docs-nav-item{display:flex;align-items:center;gap:10px;padding:11px 10px;border-radius:10px;font-size:13px;color:var(--text-secondary);margin-bottom:4px;transition:background .2s,color .2s}
.docs-nav-item>svg:first-child{width:17px;height:17px;flex-shrink:0;color:var(--text-muted)}
.docs-nav-item>span{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.docs-nav-item strong{font-size:13px;font-weight:600;color:inherit}
.docs-nav-item small{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.docs-nav-item .docs-nav-arrow{width:14px;height:14px;flex-shrink:0;opacity:.35}
.docs-nav-item:hover{background:rgba(148,163,184,.06);color:var(--text-primary)}
.docs-nav-item.active{background:rgba(9,173,195,.12);color:var(--accent-cyan)}
.docs-nav-item.active>svg:first-child,.docs-nav-item.active small{color:var(--accent-cyan)}
.docs-content{display:flex;flex-direction:column;gap:16px}
.docs-section{padding:34px;min-height:520px}
.docs-section h2{font-size:18px;font-weight:700;margin-bottom:12px}
.docs-section p{font-size:14px;line-height:1.7;color:var(--text-secondary);margin-bottom:12px}
.docs-article-head{padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid var(--border-subtle)}
.docs-article-head>span{display:block;margin-bottom:7px;font-size:11px;font-weight:700;letter-spacing:1.2px;color:var(--accent-cyan)}
.docs-article-head h2{font-size:26px;margin-bottom:7px}
.docs-article-head p{margin:0;color:var(--text-muted)}
.docs-list{margin:0;padding-left:20px;color:var(--text-secondary);font-size:14px;line-height:1.9}
.docs-list strong{color:var(--text-primary)}
.docs-list-spacious li{margin-bottom:8px}
.docs-steps{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.docs-step{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(148,163,184,.06);border:1px solid var(--border-subtle);font-size:13px}
.docs-step span{width:22px;height:22px;border-radius:50%;background:var(--gradient-cyan-blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.docs-steps-vertical{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0}
.docs-steps-vertical .docs-step{border-radius:12px;padding:14px 16px;align-items:flex-start}
.docs-steps-vertical .docs-step span{flex-shrink:0;margin-top:1px}
.docs-steps-vertical .docs-step div{display:flex;flex-direction:column;gap:3px}
.docs-steps-vertical .docs-step strong{color:var(--text-primary);font-size:14px}
.docs-steps-vertical .docs-step small{color:var(--text-muted);line-height:1.5}
.docs-faq{display:flex;flex-direction:column;gap:14px}
.docs-faq-item{padding:14px 0;border-bottom:1px solid var(--border-subtle)}
.docs-faq-item:last-child{border-bottom:none;padding-bottom:0}
.docs-faq-q{font-size:14px;font-weight:600;margin-bottom:6px}
.docs-faq-a{font-size:13px;line-height:1.6;color:var(--text-muted)}
.docs-h3{font-size:15px;font-weight:650;margin:22px 0 10px;color:var(--text-primary)}
.docs-h4{font-size:14px;font-weight:650;margin:20px 0 8px;color:var(--text-primary)}
.docs-section-pricing .docs-h3:first-of-type{margin-top:8px}
.docs-formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.65;padding:12px 14px;border-radius:10px;background:rgba(9,173,195,.08);border:1px solid rgba(9,173,195,.2);color:var(--accent-cyan);margin:10px 0 14px;overflow-x:auto}
.docs-price-table-wrap{overflow-x:auto;margin:8px 0 14px;border:1px solid var(--border-subtle);border-radius:12px}
.docs-price-table{width:100%;border-collapse:collapse;font-size:13px}
.docs-price-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;background:rgba(148,163,184,.05);border-bottom:1px solid var(--border-subtle)}
.docs-price-table td{padding:11px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:top}
.docs-price-table tr:last-child td{border-bottom:none}
.docs-price-table strong{color:var(--text-primary);font-weight:700}
.docs-callout{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;background:rgba(9,173,195,.06);border:1px solid rgba(9,173,195,.18);margin-top:18px;font-size:13px;line-height:1.6;color:var(--text-secondary)}
.docs-callout>svg{width:18px;height:18px;flex-shrink:0;margin-top:2px;color:var(--accent-cyan)}
.docs-callout strong{color:var(--text-primary)}
.docs-section a.auth-link{color:var(--accent-cyan)}
.docs-section a.auth-link:hover{text-decoration:underline}
.docs-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 20px}
.docs-status-grid>div{padding:16px;border-radius:12px;background:rgba(148,163,184,.05);border:1px solid var(--border-subtle)}
.docs-status-grid p{margin:9px 0 0;font-size:13px}
.badge-warning{background:rgba(245,158,11,.12);color:#F59E0B}
.badge-info{background:rgba(59,130,246,.12);color:#60A5FA}
.badge-danger{background:rgba(239,68,68,.12);color:#F87171}
.docs-pricing-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}
.docs-pricing-hero>div{display:flex;flex-direction:column;gap:5px;padding:18px;border-radius:13px;background:var(--gradient-subtle);border:1px solid var(--border-subtle)}
.docs-pricing-hero span,.docs-pricing-hero small{font-size:11px;color:var(--text-muted)}
.docs-pricing-hero strong{font-size:22px;color:var(--accent-cyan)}
.docs-pagination{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.docs-page-link{display:flex;flex-direction:column;gap:6px;padding:14px 16px;transition:border-color .2s,transform .2s}
.docs-page-link:hover{border-color:rgba(9,173,195,.35);transform:translateY(-1px)}
.docs-page-link small{font-size:10px;color:var(--text-muted)}
.docs-page-link span{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-primary)}
.docs-page-link svg{width:14px;height:14px;color:var(--accent-cyan)}
.docs-page-link-next{text-align:right;align-items:flex-end}
.about-layout{display:flex;flex-direction:column;gap:20px}
.about-hero{padding:32px}
.about-brand{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.about-brand-icon{width:56px;height:56px;border-radius:16px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff}
.about-brand-name{font-size:22px;font-weight:700}
.about-brand-tag{font-size:13px;color:var(--text-muted);margin-top:2px}
.about-lead{font-size:14px;line-height:1.75;color:var(--text-secondary);max-width:720px}
.about-meta-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:22px}
.about-meta{font-size:13px;color:var(--text-primary)}
.about-meta-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.about-card{padding:24px}
.about-card h3{font-size:15px;font-weight:600;margin-bottom:14px}
.about-list{margin:0;padding-left:18px;font-size:13px;line-height:1.9;color:var(--text-secondary)}
.about-legal{display:flex;flex-wrap:wrap;gap:10px}
.about-legal button{background:none;border:1px solid var(--border-subtle);color:var(--text-secondary);padding:8px 14px;border-radius:8px;font-size:13px;cursor:pointer;font-family:var(--font-sans);transition:border-color .2s,color .2s}
.about-legal button:hover{border-color:rgba(9,173,195,.35);color:var(--accent-cyan)}
@media (max-width:960px){
  .profile-layout{grid-template-columns:1fr}
  .profile-links{grid-template-columns:1fr}
  .billing-package-grid{grid-template-columns:1fr 1fr}
  .docs-layout{grid-template-columns:1fr}
  .docs-nav{position:static}
  .docs-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
  .about-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .docs-nav nav,.docs-status-grid,.docs-pricing-hero,.docs-pagination{grid-template-columns:1fr}
  .docs-section{padding:22px;min-height:0}
  .docs-article-head h2{font-size:22px}
  .docs-pagination>span:empty{display:none}
}
/* ===== Extended styles for product framework ===== */
a{color:inherit;text-decoration:none}
.library-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}
.library-filters{display:flex;gap:8px;flex-wrap:wrap}
.filter-chip{padding:6px 14px;border-radius:20px;font-size:12px;font-weight:500;color:var(--text-muted);background:rgba(148,163,184,.06);border:1px solid var(--border-subtle);cursor:pointer;transition:all .2s;font-family:var(--font-sans)}
.filter-chip:hover{color:var(--text-secondary);border-color:rgba(148,163,184,.15)}
.filter-chip.active{color:var(--accent-cyan);background:rgba(9,173,195,.1);border-color:rgba(9,173,195,.3)}
.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.library-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card-solid);border:1px solid var(--border-subtle);transition:all .3s;cursor:pointer;position:relative}
.library-card:hover{transform:translateY(-4px);border-color:var(--border-glow);box-shadow:0 12px 40px rgba(0,0,0,.3),0 0 20px rgba(9,173,195,.08)}
.library-card.selected{border-color:var(--accent-cyan);box-shadow:0 0 0 1px var(--accent-cyan),0 8px 24px rgba(9,173,195,.15)}
.library-card-media{height:180px;position:relative;overflow:hidden}
.library-card-media.portrait{height:220px}
.library-card-check{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:rgba(10,14,26,.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}
.library-card.selected .library-card-check{opacity:1;background:var(--accent-cyan);border-color:var(--accent-cyan)}
.library-card-body{padding:14px 16px}
.library-card-title{font-size:14px;font-weight:600;margin-bottom:4px}
.library-card-meta{font-size:12px;color:var(--text-muted);line-height:1.5}
.library-card-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.library-card-actions .btn-outline,.library-card-actions .btn-glass{padding:6px 12px;font-size:12px}
.library-card-new{border:2px dashed rgba(148,163,184,.15);background:transparent;color:var(--text-muted);font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;cursor:pointer;transition:all .3s;border-radius:var(--radius-lg)}
.library-card-new:hover{border-color:var(--accent-cyan);background:rgba(9,173,195,.04)}
.library-card-new .plus-icon{width:48px;height:48px;border-radius:50%;background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;color:var(--accent-cyan);margin-bottom:12px}
.library-card-new span{font-size:14px;color:var(--text-muted)}
.empty-hint{text-align:center;padding:48px 24px;color:var(--text-muted);font-size:14px}
.confirm-bar{position:sticky;bottom:0;margin:24px -32px -28px;padding:16px 32px;background:rgba(10,14,26,.92);backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:20}
.confirm-bar-info{font-size:13px;color:var(--text-secondary)}
.confirm-bar-info strong{color:var(--accent-cyan);font-weight:600}
.form-group{margin-bottom:20px}
.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}
.form-hint{font-size:12px;color:var(--text-muted);margin-top:6px}
.form-input{width:100%;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 16px;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);outline:none;transition:border-color .2s}
.form-input:focus{border-color:var(--border-glow)}
.form-input::placeholder{color:var(--text-muted)}
.episode-list{display:flex;flex-direction:column;gap:12px}
.episode-row{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);cursor:pointer;transition:all .25s}
.episode-row:hover{border-color:var(--border-glow);background:var(--bg-card-hover);transform:translateX(4px)}
.episode-num{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--accent-cyan);flex-shrink:0}
.episode-info{flex:1;min-width:0}
.episode-title{font-size:15px;font-weight:600;margin-bottom:4px}
.episode-desc{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.episode-progress{display:flex;align-items:center;gap:6px;flex-shrink:0}
.step-dot{width:8px;height:8px;border-radius:50%;background:rgba(148,163,184,.2)}
.step-dot.done{background:var(--success)}
.step-dot.current{background:var(--accent-cyan);animation:pulse 1.5s infinite}
.pipeline-header{padding:20px 32px;border-bottom:1px solid var(--border-subtle);background:rgba(10,14,26,.6);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}
.pipeline-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}
.pipeline-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}
.pipeline-breadcrumb a{color:var(--text-secondary);transition:color .2s}
.pipeline-breadcrumb a:hover{color:var(--accent-cyan)}
.pipeline-breadcrumb .sep{opacity:.4}
.pipeline-steps{display:flex;align-items:center;justify-content:center;gap:0;max-width:900px;margin:0 auto;overflow-x:auto;padding-bottom:4px}
.pipeline-step{display:flex;align-items:center;gap:8px;position:relative;flex-shrink:0}
.pipeline-step-circle{width:32px;height:32px;border-radius:50%;border:2px solid rgba(148,163,184,.15);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-muted);background:var(--bg-primary);z-index:2;transition:all .3s}
.pipeline-step.active .pipeline-step-circle{border-color:var(--accent-cyan);color:var(--accent-cyan);box-shadow:0 0 16px rgba(9,173,195,.3)}
.pipeline-step.completed .pipeline-step-circle{border-color:var(--success);background:var(--success);color:#fff}
.pipeline-step-label{font-size:12px;font-weight:500;color:var(--text-muted);white-space:nowrap}
.pipeline-step.active .pipeline-step-label{color:var(--text-primary)}
.pipeline-step.completed .pipeline-step-label{color:var(--success)}
.pipeline-connector{flex:1;height:2px;background:rgba(148,163,184,.1);margin:0 8px;min-width:20px;max-width:48px;position:relative;overflow:hidden}
.pipeline-connector.filled{background:var(--gradient-primary)}
.pipeline-body{padding:28px 32px;max-width:1100px;margin:0 auto}
.pipeline-panel{display:none;animation:fadeInUp .4s ease}
.pipeline-panel.active{display:block}
.panel-title{font-size:22px;font-weight:700;margin-bottom:6px}
.panel-desc{font-size:14px;color:var(--text-muted);margin-bottom:24px}
.fragment-list{display:flex;flex-direction:column;gap:16px}
.fragment-card{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-subtle);overflow:hidden;transition:border-color .25s}
.fragment-card:hover{border-color:rgba(148,163,184,.15)}
.fragment-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-subtle);gap:12px}
.fragment-card-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.fragment-index{width:28px;height:28px;border-radius:6px;background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--accent-cyan)}
.fragment-card-body{padding:16px 18px;display:grid;grid-template-columns:1fr 200px;gap:16px}
.fragment-script{font-size:13px;color:var(--text-secondary);line-height:1.7;max-height:120px;overflow-y:auto}
.fragment-preview{height:120px;border-radius:var(--radius-sm);background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;position:relative;overflow:hidden}
.fragment-card-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--border-subtle);gap:12px;flex-wrap:wrap}
.two-col{display:grid;grid-template-columns:1fr 320px;gap:20px}
.asset-picker{max-height:520px;overflow-y:auto;padding:16px}
.asset-picker h3{font-size:14px;font-weight:600;margin-bottom:12px}
.asset-pick-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .2s;margin-bottom:8px;background:rgba(148,163,184,.03)}
.asset-pick-item:hover{background:rgba(148,163,184,.06)}
.asset-pick-item.picked{border-color:var(--accent-cyan);background:rgba(9,173,195,.08)}
.asset-pick-thumb{width:40px;height:40px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:13px}
.asset-pick-name{font-size:13px;font-weight:600}
.asset-pick-meta{font-size:11px;color:var(--text-muted)}
.export-center{display:flex;flex-direction:column;align-items:center;padding:20px 0}
.export-timeline{width:100%;max-width:640px;margin:28px 0}
.export-clip{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border-subtle)}
.export-clip:last-child{border-bottom:none}
.export-clip-thumb{width:48px;height:72px;border-radius:6px;background:var(--gradient-subtle);flex-shrink:0}
.export-clip-info{flex:1}
.export-clip-title{font-size:13px;font-weight:600;margin-bottom:2px}
.export-clip-meta{font-size:12px;color:var(--text-muted)}
.flow-overview{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:32px}
.flow-step-card{padding:16px;text-align:center;position:relative;text-decoration:none;color:inherit;display:block;transition:border-color .2s,transform .2s,box-shadow .2s}
.flow-step-card:hover{border-color:rgba(9,173,195,.35);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.flow-step-card .flow-num{width:28px;height:28px;border-radius:50%;background:var(--gradient-subtle);color:var(--accent-cyan);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-bottom:10px}
.flow-step-card h4{font-size:13px;font-weight:600;margin-bottom:4px}
.flow-step-card p{font-size:11px;color:var(--text-muted);line-height:1.4}
.dashboard-search-empty{grid-column:1/-1;padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.dashboard-search-empty p{font-size:14px;color:var(--text-muted);margin:0}
.project-cover-img{width:100%;height:100%;object-fit:cover;display:block}
.gen-status-banner{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--radius-md);background:rgba(9,173,195,.08);border:1px solid rgba(9,173,195,.2);margin-bottom:20px;font-size:13px;color:var(--accent-cyan)}
.breadcrumb-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:8px;cursor:pointer;transition:color .2s}
.breadcrumb-back:hover{color:var(--accent-cyan)}
@media (max-width:960px){
  .two-col,.fragment-card-body{grid-template-columns:1fr}
  .flow-overview{grid-template-columns:repeat(2,1fr)}
  .pipeline-step-label{display:none}
  .confirm-bar{flex-direction:column;align-items:stretch}
}

.sidebar-nav-item{text-decoration:none}

/* ===== Resources (folder browser) ===== */
.res-layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 73px)}
.res-tree{border-right:1px solid var(--border-subtle);background:rgba(10,14,26,.4);padding:16px 12px;overflow-y:auto}
.res-tree-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;padding:4px 10px 12px}
.res-tree-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .2s;margin-bottom:2px}
.res-tree-item:hover{background:rgba(148,163,184,.06);color:var(--text-primary)}
.res-tree-item.active{background:rgba(9,173,195,.08);color:var(--accent-cyan)}
.res-tree-item .tree-icon{width:16px;height:16px;flex-shrink:0}
.res-tree-item.nested{padding-left:28px;font-size:12px}
.res-main{display:flex;flex-direction:column;min-width:0}
.res-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}
.res-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);flex-wrap:wrap}
.res-breadcrumb a,.res-breadcrumb button{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:13px;padding:0}
.res-breadcrumb a:hover,.res-breadcrumb button:hover{color:var(--accent-cyan)}
.res-breadcrumb .sep{opacity:.4}
.res-breadcrumb .current{color:var(--text-primary);font-weight:500}
.res-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.res-view{padding:20px 24px;flex:1}
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.res-item{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-card);padding:12px;cursor:pointer;transition:all .25s;text-align:center}
.res-item:hover{border-color:var(--border-glow);transform:translateY(-2px);background:var(--bg-card-hover)}
.res-item.selected{border-color:var(--accent-cyan);box-shadow:0 0 0 1px rgba(9,173,195,.35)}
.res-item-icon{width:56px;height:56px;margin:8px auto 12px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--gradient-subtle);color:var(--accent-cyan)}
.res-item-icon.folder{color:#F59E0B;background:rgba(245,158,11,.12)}
.res-item-icon.image{color:#818CF8;background:rgba(99,102,241,.12)}
.res-item-icon.video{color:var(--accent-pink);background:rgba(255,0,161,.1)}
.res-item-icon.script{color:var(--accent-cyan);background:rgba(9,173,195,.12)}
.res-item-name{font-size:13px;font-weight:500;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.res-item-meta{font-size:11px;color:var(--text-muted)}
.res-status{padding:10px 24px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-muted);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:rgba(10,14,26,.5)}
.res-quota{flex:1;min-width:220px;max-width:420px;display:flex;flex-direction:column;gap:6px}
.res-quota-meta{display:flex;justify-content:space-between;align-items:center;gap:12px}
.res-quota-pct{font-variant-numeric:tabular-nums;color:var(--text-secondary);flex-shrink:0}
.res-quota-track{height:8px;border-radius:999px;background:rgba(148,163,184,.12);overflow:hidden}
.res-quota-fill{height:100%;width:0;border-radius:999px;background:var(--gradient-cyan-blue);transition:width .35s ease,background .25s ease}
.res-quota.warn .res-quota-fill{background:linear-gradient(90deg,#F59E0B,#F97316)}
.res-quota.warn .res-quota-pct{color:var(--warning)}
.res-quota.danger .res-quota-fill{background:linear-gradient(90deg,#F97316,#EF4444)}
.res-quota.danger .res-quota-pct{color:var(--error)}

/* ===== Studio chat (script / image / video) ===== */
.studio-layout{display:grid;grid-template-columns:260px 1fr;height:calc(100vh - 0px);min-height:calc(100vh)}
.studio-sessions{border-right:1px solid var(--border-subtle);background:rgba(10,14,26,.45);display:flex;flex-direction:column;min-height:0}
.studio-sessions-header{padding:16px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:12px}
.studio-sessions-header h2{font-size:15px;font-weight:600}
.studio-session-list{flex:1;overflow-y:auto;padding:10px}
.studio-session{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;margin-bottom:4px;border:1px solid transparent}
.studio-session:hover{background:rgba(148,163,184,.06)}
.studio-session.active{background:rgba(9,173,195,.08);border-color:rgba(9,173,195,.25)}
.studio-session-icon{width:32px;height:32px;border-radius:8px;background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;color:var(--accent-cyan);flex-shrink:0}
.studio-session-title{font-size:13px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.studio-session-meta{font-size:11px;color:var(--text-muted)}
.studio-chat{display:flex;flex-direction:column;min-height:0;min-width:0;height:100vh}
.studio-chat-header{padding:16px 24px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(10,14,26,.55);backdrop-filter:blur(12px);flex-shrink:0}
.studio-chat-header h1{font-size:16px;font-weight:700}
.studio-chat-header .subtitle{font-size:12px;color:var(--text-muted);margin-top:2px}
.studio-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:18px}
.msg{display:flex;gap:12px;max-width:780px;animation:fadeInUp .35s ease}
.msg.user{align-self:flex-end;flex-direction:row-reverse}
.msg-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.msg.assistant .msg-avatar{background:var(--gradient-primary)}
.msg.user .msg-avatar{background:var(--gradient-cyan-blue)}
.msg-bubble{padding:12px 16px;border-radius:var(--radius-md);font-size:14px;line-height:1.65;color:var(--text-primary);max-width:100%}
.msg.assistant .msg-bubble{background:var(--bg-card);border:1px solid var(--border-subtle);border-top-left-radius:4px}
.msg.user .msg-bubble{background:rgba(9,173,195,.12);border:1px solid rgba(9,173,195,.2);border-top-right-radius:4px}
.msg-meta{font-size:11px;color:var(--text-muted);margin-top:6px;white-space:nowrap}
.msg-media{margin-top:12px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-card-solid)}
.msg-media-img{height:220px;background:linear-gradient(135deg,#1a0a2e,#2d1b69,#0d1b3e);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;position:relative}
.msg-media-video{height:260px;background:linear-gradient(180deg,#1a0a2e,#0d1b3e,#091525);display:flex;align-items:center;justify-content:center;position:relative}
.msg-media-actions{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border-subtle);flex-wrap:wrap}
.msg-media-actions .btn-outline,.msg-media-actions .btn-glass{padding:6px 12px;font-size:12px}
.studio-composer{padding:16px 24px 20px;border-top:1px solid var(--border-subtle);background:rgba(10,14,26,.7);backdrop-filter:blur(12px);flex-shrink:0}
.composer-box{display:flex;flex-direction:column;gap:10px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px 14px;transition:border-color .2s}
.composer-box:focus-within{border-color:var(--border-glow)}
.composer-box textarea{width:100%;min-height:56px;max-height:160px;resize:none;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);font-weight:400;line-height:1.6;letter-spacing:normal;padding:0;margin:0;box-sizing:border-box;white-space:pre-wrap;overflow-wrap:break-word;word-wrap:break-word;word-break:normal}
.composer-box textarea::placeholder{color:var(--text-muted)}
.composer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.composer-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.composer-tool{background:rgba(148,163,184,.06);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:6px 10px;border-radius:8px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-sans);transition:all .2s}
.composer-select{background:rgba(148,163,184,.06);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:6px 10px;border-radius:8px;font-size:12px;font-family:var(--font-sans);max-width:320px;height:32px}
.composer-select-sm{max-width:148px;min-width:96px}
.model-picker{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.model-estimate{font-size:12px;color:var(--accent-cyan);white-space:nowrap}
.form-group .model-estimate{display:block;margin-top:6px}
.composer-hint{font-size:11px;color:var(--text-muted);margin-top:8px;text-align:center}
.page.fill-viewport{padding:0!important;display:block}
.page.fill-viewport .page-header{display:none}
@media (max-width:960px){
  .res-layout,.studio-layout{grid-template-columns:1fr}
  .res-tree,.studio-sessions{display:none}
}

/* ===== Character Looks (妆造 = costume + makeup) ===== */
.look-count{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--accent-cyan);margin-top:8px}
.char-card-looks{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.look-mini{width:28px;height:28px;border-radius:6px;border:1px solid var(--border-subtle);flex-shrink:0}
.look-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.look-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card-solid);border:1px solid var(--border-subtle);transition:all .25s;cursor:pointer}
.look-card:hover{border-color:var(--border-glow);transform:translateY(-2px)}
.look-card.selected{border-color:var(--accent-cyan);box-shadow:0 0 0 1px rgba(9,173,195,.35)}
.look-card-media{height:220px;position:relative}
.look-card-body{padding:14px 16px}
.look-card-title{font-size:14px;font-weight:600;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.look-card-desc{font-size:12px;color:var(--text-muted);line-height:1.55}
.look-tag{font-size:10px;padding:2px 8px;border-radius:10px;background:rgba(99,102,241,.12);color:#818CF8;font-weight:500;white-space:nowrap}
.char-detail-hero{display:flex;gap:20px;align-items:flex-start;padding:24px;margin-bottom:24px;flex-wrap:wrap}
.char-detail-avatar{width:88px;height:88px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;color:#fff;flex-shrink:0}
.char-detail-name{font-size:22px;font-weight:700;margin-bottom:4px}
.char-detail-bio{font-size:14px;color:var(--text-secondary);line-height:1.6;max-width:560px}
.char-look-binding{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm);background:rgba(9,173,195,.06);border:1px solid rgba(9,173,195,.15);font-size:12px;color:var(--text-secondary);margin-bottom:20px}
.episode-look-row{display:flex;flex-direction:column;gap:12px}
.episode-char-block{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-card);overflow:hidden}
.episode-char-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle);gap:12px}
.episode-char-head-left{display:flex;align-items:center;gap:10px}
.episode-char-looks{display:flex;flex-direction:column;gap:8px;padding:12px 16px}
.look-pick-row{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-sm);border:1px solid transparent;background:rgba(148,163,184,.03);cursor:pointer;transition:all .2s}
.look-pick-row:hover{background:rgba(148,163,184,.06)}
.look-pick-row.picked{border-color:var(--accent-cyan);background:rgba(9,173,195,.08)}

/* 我的项目：真实项目/分集数据与单集前两步 */
.project-cover-fallback{width:100%;height:100%}
.style-card:is(button){appearance:none;color:inherit;font:inherit;text-align:left}
.project-form-error{padding:10px 12px;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-sm);background:rgba(239,68,68,.08);color:#fca5a5}
.project-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}
.project-logline{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-subtle);font-size:12px;line-height:1.7;color:var(--text-secondary)}
.project-flow-note{display:flex;flex-direction:column;gap:10px;font-size:12px;color:var(--text-secondary)}
.project-flow-note span{display:flex;align-items:center;gap:8px}
.project-flow-note strong{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(9,173,195,.12);color:var(--accent-cyan)}
.project-flow-note .muted{display:block;padding-top:8px;border-top:1px solid var(--border-subtle);color:var(--text-muted);line-height:1.6}
.project-episode-row{padding:0;overflow:hidden;gap:0}
.project-episode-main{display:flex;align-items:center;gap:16px;min-width:0;flex:1;padding:16px 10px 16px 20px}
.project-episode-actions{display:flex;gap:6px;padding:0 12px}
.project-episode-actions .btn-glass{padding:7px;width:30px;height:30px}
.project-episode-actions svg{width:13px;height:13px}
.project-delete-button{color:#fca5a5}
.project-episode-dialog{max-width:520px}
.pipeline-step:is(button){appearance:none;background:none;border:0;color:inherit;font:inherit;padding:0}
.pipeline-step-locked{opacity:.42}
.episode-selection-summary{min-height:34px;align-content:flex-start}
.episode-selection-count{padding-top:12px;margin-top:12px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-muted)}
.episode-no-selection{font-size:12px;color:var(--text-muted)}
.episode-look-copy{display:flex;flex:1;min-width:0;flex-direction:column;text-align:left}
.episode-look-thumb{overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--accent-cyan);background:var(--gradient-subtle);flex-shrink:0}
.episode-look-thumb img{width:100%;height:100%;object-fit:cover}
.episode-scene-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.episode-scene-card{cursor:pointer}
.episode-scene-card.is-disabled{opacity:.62;cursor:not-allowed}
.episode-scene-card.is-disabled:hover{transform:none}
.episode-scene-card .library-card-media img{width:100%;height:100%;object-fit:cover}
.episode-scene-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111827,#1e293b);color:var(--text-muted)}
.episode-scene-placeholder svg{width:28px;height:28px}
.episode-scene-description{margin:10px 0 0;min-height:38px;font-size:12px;line-height:1.55;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.episode-scene-note{width:100%;min-height:68px;margin-top:12px;padding:9px 10px;resize:vertical;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:rgba(2,6,23,.45);color:var(--text-primary);font:inherit;font-size:12px;line-height:1.5}
.episode-scene-note:focus{outline:none;border-color:var(--accent-cyan)}
.project-toast{position:fixed;bottom:28px;left:50%;z-index:1200;transform:translateX(-50%);padding:12px 20px;border:1px solid rgba(9,173,195,.35);border-radius:12px;background:rgba(17,24,39,.97);box-shadow:0 12px 40px rgba(0,0,0,.4);color:#f1f5f9;font-size:13px}
.project-toast.error{border-color:rgba(239,68,68,.45);color:#fecaca}

/* 单集步骤一：角色妆造选择 */
.episode-look-stage{position:relative}
.episode-stage-heading{display:grid;grid-template-columns:minmax(0,1fr) 112px 112px;align-items:center;gap:12px;margin-bottom:22px;padding:22px 24px;border:1px solid rgba(99,102,241,.18);border-radius:20px;background:radial-gradient(circle at 85% 0,rgba(99,102,241,.16),transparent 38%),linear-gradient(135deg,rgba(9,173,195,.07),rgba(99,102,241,.05));overflow:hidden}
.episode-stage-heading .panel-title{margin:4px 0 6px;font-size:22px}
.episode-stage-heading .panel-desc{margin:0}
.episode-stage-eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--accent-cyan)}
.episode-stage-stat{min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:14px;background:rgba(2,6,23,.35)}
.episode-stage-stat span{font-size:25px;font-weight:750;line-height:1;color:var(--text-primary)}
.episode-stage-stat small{margin-top:8px;font-size:11px;color:var(--text-muted)}
.episode-stage-stat.accent{border-color:rgba(9,173,195,.25);background:rgba(9,173,195,.08)}
.episode-stage-stat.accent span{color:var(--accent-cyan)}
.episode-look-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.episode-look-search{height:40px;display:flex;align-items:center;gap:9px;flex:1;max-width:420px;padding:0 13px;border:1px solid var(--border-subtle);border-radius:12px;background:rgba(15,23,42,.62);transition:border-color .2s,box-shadow .2s}
.episode-look-search:focus-within{border-color:rgba(9,173,195,.55);box-shadow:0 0 0 3px rgba(9,173,195,.08)}
.episode-look-search svg{width:15px;height:15px;color:var(--text-muted)}
.episode-look-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit;font-size:13px}
.episode-look-search input::placeholder{color:var(--text-muted)}
#episode-selected-only{height:40px;display:inline-flex;align-items:center;gap:6px}
#episode-selected-only svg{width:14px;height:14px}
#episode-selected-only.active{border-color:var(--accent-cyan);background:rgba(9,173,195,.1);color:var(--accent-cyan)}
.episode-look-tip{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--text-muted)}
.episode-look-tip svg{width:13px;height:13px}
.episode-look-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start}
.episode-look-library{min-width:0}
.episode-look-row{gap:16px}
.episode-char-block{border-radius:16px;background:linear-gradient(145deg,rgba(30,41,59,.52),rgba(15,23,42,.4));box-shadow:0 8px 24px rgba(0,0,0,.08)}
.episode-char-head{min-height:66px;padding:12px 14px;background:rgba(15,23,42,.38)}
.episode-character-avatar{background:linear-gradient(135deg,rgba(9,173,195,.9),rgba(99,102,241,.9));box-shadow:0 5px 16px rgba(9,173,195,.18);color:#fff}
.episode-character-selected{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:4px 8px;border:1px solid rgba(16,185,129,.18);border-radius:999px;background:rgba(16,185,129,.08);font-size:10px;color:#6ee7b7}
.episode-character-selected svg{width:11px;height:11px}
.episode-char-looks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}
.look-pick-row{min-width:0;display:flex;align-items:stretch;flex-direction:column;gap:0;padding:0;position:relative;overflow:hidden;border:1px solid rgba(148,163,184,.11);border-radius:12px;background:rgba(2,6,23,.3);text-align:left}
.look-pick-row:hover{border-color:rgba(148,163,184,.3);background:rgba(30,41,59,.55);transform:translateY(-2px);box-shadow:0 9px 24px rgba(0,0,0,.18)}
.look-pick-row.picked{border-color:rgba(9,173,195,.72);background:rgba(9,173,195,.07);box-shadow:0 0 0 1px rgba(9,173,195,.16),0 10px 28px rgba(9,173,195,.1)}
.episode-look-thumb{width:100%;height:138px;border-radius:0;background:linear-gradient(145deg,#172033,#0f172a)}
.episode-look-thumb img{transition:transform .35s ease}
.look-pick-row:hover .episode-look-thumb img{transform:scale(1.035)}
.episode-look-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:rgba(148,163,184,.45)}
.episode-look-placeholder svg{width:30px;height:30px}
.episode-look-copy{padding:11px 12px 13px}
.episode-look-copy .look-pick-name{font-size:13px;color:var(--text-primary)}
.episode-look-copy .look-pick-meta{min-height:34px;margin-top:5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.episode-look-check{position:absolute;top:9px;right:9px;width:25px;height:25px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(2,6,23,.68);backdrop-filter:blur(6px);color:#fff;transition:all .2s}
.episode-look-check svg{width:13px;height:13px}
.look-pick-row.picked .episode-look-check{border-color:var(--accent-cyan);background:var(--accent-cyan);box-shadow:0 0 14px rgba(9,173,195,.45)}
.look-pick-row.is-disabled{opacity:.62;cursor:not-allowed}
.look-pick-row.is-disabled:hover{transform:none;border-color:rgba(148,163,184,.11);background:rgba(2,6,23,.3);box-shadow:none}
.look-pick-row.is-disabled:hover .episode-look-thumb img{transform:none}
.episode-look-selection{position:sticky;top:145px;max-height:calc(100vh - 175px);padding:16px;border-color:rgba(9,173,195,.15);background:linear-gradient(160deg,rgba(17,24,39,.92),rgba(10,14,26,.88))}
.episode-selection-title{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:13px;border-bottom:1px solid var(--border-subtle)}
.episode-selection-title h3{margin:0 0 3px}
.episode-selection-title p{margin:0;font-size:10px;color:var(--text-muted)}
.episode-selection-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px;background:rgba(9,173,195,.1);color:var(--accent-cyan)}
.episode-selection-icon svg{width:17px;height:17px}
.episode-selection-summary{display:flex;flex-direction:column;gap:7px;flex-wrap:nowrap}
.episode-selected-look{width:100%;display:flex;align-items:center;gap:9px;padding:7px;border:1px solid transparent;border-radius:10px;background:rgba(148,163,184,.045);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:all .2s}
.episode-selected-look:hover{border-color:rgba(239,68,68,.2);background:rgba(239,68,68,.06)}
.episode-selected-look-thumb{width:34px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border-radius:7px;background:var(--gradient-subtle);font-size:12px;color:var(--accent-cyan)}
.episode-selected-look-thumb img{width:100%;height:100%;object-fit:cover}
.episode-selected-look>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}
.episode-selected-look strong,.episode-selected-look small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.episode-selected-look strong{font-size:11px;font-weight:600}
.episode-selected-look small{margin-top:2px;font-size:10px;color:var(--text-muted)}
.episode-selected-look>svg{width:12px;height:12px;flex-shrink:0;color:var(--text-muted)}
.episode-selected-look:hover>svg{color:#fca5a5}
.episode-no-selection{min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;border:1px dashed var(--border-subtle);border-radius:12px;color:var(--text-muted);text-align:center}
.episode-no-selection svg{width:22px;height:22px;margin-bottom:3px;color:rgba(9,173,195,.55)}
.episode-no-selection strong{font-size:12px;color:var(--text-secondary)}
.episode-no-selection span{font-size:10px}
.episode-look-actions{position:sticky;bottom:0;z-index:5;margin:24px -8px -8px;padding:14px 8px 8px;background:linear-gradient(180deg,transparent,rgba(10,14,26,.96) 28%)}

@media(max-width:1100px){
  .episode-char-looks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .episode-look-tip{display:none}
}

@media(max-width:900px){
  .project-detail-layout{grid-template-columns:1fr}
  .episode-scene-grid{grid-template-columns:1fr}
  .project-episode-main{flex-wrap:wrap}
  .episode-look-layout{grid-template-columns:1fr}
  .episode-look-selection{position:static;max-height:none}
  .episode-stage-heading{grid-template-columns:minmax(0,1fr) 92px 92px}
}

@media(max-width:640px){
  .episode-stage-heading{grid-template-columns:1fr 1fr;padding:18px}
  .episode-stage-heading>div:first-child{grid-column:1/-1}
  .episode-look-toolbar{flex-wrap:wrap}
  .episode-look-search{max-width:none;flex-basis:100%}
  .episode-char-looks{grid-template-columns:1fr 1fr}
  .episode-look-thumb{height:120px}
  .episode-character-selected{display:none}
}
.look-pick-thumb{width:44px;height:56px;border-radius:6px;flex-shrink:0}
.look-pick-name{font-size:13px;font-weight:600}
.look-pick-meta{font-size:11px;color:var(--text-muted);margin-top:2px;line-height:1.4}
.ref-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:16px;background:rgba(9,173,195,.1);border:1px solid rgba(9,173,195,.25);font-size:12px;color:var(--accent-cyan);margin:2px}
.ref-chip .chip-x{opacity:.6;cursor:pointer;border:none;background:none;color:inherit;font-size:14px;line-height:1;padding:0 2px}
.ref-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;min-height:0}
.ref-chip-image{cursor:pointer;padding-left:4px}
.ref-chip-thumb{width:22px;height:22px;border-radius:6px;object-fit:cover;background:rgba(15,23,42,.6);flex-shrink:0}
.composer-input-wrap{position:relative}
.composer-highlight{position:absolute;left:0;top:0;overflow:hidden;pointer-events:none;color:var(--text-primary);font-size:14px;font-family:var(--font-sans);font-weight:400;line-height:1.6;letter-spacing:normal;padding:0;margin:0;box-sizing:border-box;white-space:pre-wrap;overflow-wrap:break-word;word-wrap:break-word;word-break:normal}
.composer-box textarea.composer-input-overlay{position:relative;z-index:1;color:transparent;caret-color:var(--text-primary);background:transparent}
.composer-box textarea.composer-input-overlay::placeholder{color:transparent}
.composer-highlight .ref-mention{padding:0;font-weight:inherit;border-radius:0;background:rgba(9,173,195,.18);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.mention-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:30;max-height:220px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-card-solid);box-shadow:0 12px 32px rgba(0,0,0,.35);padding:6px}
.mention-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--text-primary);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.mention-item:hover,.mention-item.active{background:rgba(9,173,195,.12)}
.mention-item img{width:28px;height:28px;border-radius:6px;object-fit:cover}
.mention-empty{padding:10px;font-size:12px;color:var(--text-muted)}
.ref-mention{color:#5eead4;background:rgba(9,173,195,.22);border-radius:4px;font-weight:650;padding:0 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.msg-bubble .ref-mention{padding:0 2px;font-weight:650}
.msg-ref-thumbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.msg-ref-thumbs img{width:44px;height:44px;border-radius:8px;object-fit:cover;border:1px solid var(--border-subtle)}
.ref-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.ref-picker-head h4{margin:0;font-size:12px;color:var(--text-muted);font-weight:600}
.ref-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;max-height:240px;overflow-y:auto}
.ref-picker-empty{grid-column:1/-1;font-size:12px;color:var(--text-muted);padding:12px 4px}
.ref-pick-card{border:1px solid var(--border-subtle);border-radius:10px;background:rgba(148,163,184,.06);padding:0;overflow:hidden;cursor:pointer;color:inherit;font:inherit;text-align:left}
.ref-pick-card:hover,.ref-pick-card.selected{border-color:rgba(9,173,195,.7);box-shadow:0 0 0 1px rgba(9,173,195,.2)}
.ref-pick-card img{width:100%;height:72px;object-fit:cover;display:block;background:#0f172a}
.ref-pick-card span{display:block;padding:6px 8px;font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ref-pick-card.txt .ref-pick-icon,.mention-item .mention-icon{display:flex;align-items:center;justify-content:center;background:rgba(9,173,195,.12);color:var(--accent-cyan);font-size:10px;font-weight:700;letter-spacing:.04em;flex-shrink:0}
.ref-pick-card.txt .ref-pick-icon{width:100%;height:56px}
.mention-item .mention-icon{width:28px;height:28px;border-radius:6px}
.ref-chip-txt{cursor:pointer}
.msg-ref-docs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.msg-ref-docs span{font-size:11px;padding:3px 8px;border-radius:999px;background:rgba(9,173,195,.12);color:var(--accent-cyan);border:1px solid rgba(9,173,195,.22)}
.picker-popover{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card-solid);padding:12px;margin-top:8px;display:none}
.picker-popover.open{display:block}
.picker-popover h4{font-size:12px;color:var(--text-muted);margin-bottom:10px;font-weight:600}
.fragment-look-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}

/* ===== Episode fragment scripts ===== */
.episode-fragment-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;margin-top:8px}
.episode-source-card{padding:18px 20px;margin-bottom:18px}
.episode-source-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.episode-source-head h3{font-size:15px;font-weight:650;margin:0 0 4px}
.episode-source-head p{font-size:12px;color:var(--text-muted);margin:0;line-height:1.5}
.episode-duration-field{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--text-muted);flex-shrink:0}
.episode-duration-field small{font-weight:400;color:var(--text-muted);opacity:.85}
.episode-source-controls{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.episode-duration-field select{min-width:160px;height:36px;padding:0 10px;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(15,23,42,.7);color:var(--text-primary);font:inherit;font-size:13px}
.episode-source-script{min-height:180px;margin-bottom:12px}
.episode-source-actions{display:flex;flex-wrap:wrap;gap:8px}
.episode-source-file-hint{margin:0 0 10px;color:var(--accent-cyan)}
.episode-fragment-aside{position:sticky;top:145px;max-height:calc(100vh - 175px);display:flex;flex-direction:column;overflow:hidden}
.episode-aside-subtitle{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:14px 0 8px}
.episode-fragment-nav{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0;flex:1;padding-right:2px}
.episode-fragment-nav-empty{min-height:120px}
.episode-fragment-nav-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:rgba(148,163,184,.045);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:all .2s}
.episode-fragment-nav-item:hover{border-color:rgba(9,173,195,.28);background:rgba(9,173,195,.08)}
.episode-fragment-nav-item.active{border-color:rgba(9,173,195,.72);background:rgba(9,173,195,.1);box-shadow:0 0 0 1px rgba(9,173,195,.16)}
.episode-fragment-nav-index{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:7px;background:rgba(9,173,195,.12);color:var(--accent-cyan);font-size:11px;font-weight:700}
.episode-fragment-nav-copy{display:flex;flex-direction:column;min-width:0;flex:1}
.episode-fragment-nav-copy strong,.episode-fragment-nav-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.episode-fragment-nav-copy strong{font-size:12px;font-weight:600}
.episode-fragment-nav-copy small{margin-top:2px;font-size:10px;color:var(--text-muted)}
#episode-fragment-list .fragment-card{scroll-margin-top:160px}
#episode-fragment-list .fragment-card.is-target{border-color:rgba(9,173,195,.7);box-shadow:0 0 0 1px rgba(9,173,195,.2),0 10px 28px rgba(9,173,195,.12)}
.episode-fragment-body{display:flex;flex-direction:column;gap:12px;grid-template-columns:1fr}
.episode-fragment-meta-grid{display:grid;grid-template-columns:140px 1fr;gap:12px}
.episode-fragment-look-checks{display:flex;flex-wrap:wrap;gap:8px}
.episode-fragment-check{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-subtle);border-radius:999px;background:rgba(148,163,184,.04);font-size:12px;color:var(--text-secondary);cursor:pointer}
.episode-fragment-check input{accent-color:var(--accent-cyan)}
.episode-fragment-summary{max-height:none;margin-top:2px;padding:10px 12px;border-radius:10px;background:rgba(148,163,184,.04)}
.episode-fragment-move{display:flex;gap:6px}
.fragment-list{margin-top:4px}
.episode-video-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.episode-video-body{display:grid;grid-template-columns:220px 1fr;gap:16px}
.episode-video-body-dual{grid-template-columns:minmax(0,220px) minmax(0,220px) minmax(0,1fr);align-items:start}
.episode-video-preview{min-width:0}
.episode-media-frame{width:100%;border-radius:12px;overflow:hidden;background:#0b1220;border:1px solid rgba(148,163,184,.12);aspect-ratio:9/16}
.episode-media-frame[data-aspect="16:9"]{aspect-ratio:16/9}
.episode-media-frame[data-aspect="1:1"]{aspect-ratio:1/1}
.episode-media-frame .episode-video-player,
.episode-media-frame .episode-keyframe-thumb{width:100%;height:100%;max-height:none;object-fit:contain;display:block;background:#000;border-radius:0}
.episode-media-frame .episode-video-placeholder{height:100%;min-height:0;margin:0;border:0;border-radius:0;background:transparent}
.episode-video-player{width:100%;border-radius:12px;background:#000;max-height:320px;object-fit:contain;display:block}
.episode-keyframe-thumb{width:100%;border-radius:12px;background:#111;max-height:320px;object-fit:contain;display:block}
.episode-video-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.fragment-video-duration-field{display:inline-flex;align-items:center;gap:8px;margin:8px 0 0;color:var(--text-muted)}
.fragment-video-duration-select{padding:6px 10px;font-size:12px;cursor:pointer}
.episode-keyframe-file-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.episode-video-placeholder{height:160px;flex-direction:column;gap:8px}
.episode-video-placeholder svg{width:28px;height:28px}
.episode-export-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,0.8fr);gap:16px;margin-top:8px}
.episode-export-preview-card,.episode-export-aside{padding:18px}
.episode-export-aside h3{margin:0 0 8px;font-size:15px}
.episode-export-aside p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.6}
.episode-export-points{margin:12px 0 0;padding-left:18px;color:var(--text-secondary);font-size:13px;line-height:1.7}
.episode-export-placeholder{min-height:280px;height:auto}
.episode-export-player{width:100%;max-height:520px;border-radius:12px;background:#000}
@media(max-width:900px){
  .episode-fragment-layout{grid-template-columns:1fr}
  .episode-fragment-aside{position:static;max-height:none}
  .episode-source-head{flex-direction:column}
  .episode-fragment-meta-grid{grid-template-columns:1fr}
  .episode-video-body{grid-template-columns:1fr}
  .episode-video-body-dual{grid-template-columns:1fr}
  .episode-export-layout{grid-template-columns:1fr}
}

/* ===== Auth (phone login) ===== */
.auth-body{min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}
.auth-page{position:relative;min-height:100vh;display:flex;flex-direction:column}
.auth-bg{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.auth-nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--border-subtle);background:rgba(10,14,26,.75);backdrop-filter:blur(16px)}
.auth-nav .brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;color:var(--text-primary);text-decoration:none}
.auth-center{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:32px 20px}
.auth-footer{position:relative;z-index:1;text-align:center;padding:20px;font-size:12px;color:var(--text-muted)}
.auth-footer a{color:var(--text-muted);text-decoration:none}
.auth-footer a:hover{color:var(--accent-cyan);text-decoration:underline}
.auth-card{width:100%;max-width:420px;padding:32px;border-radius:var(--radius-xl)}
.auth-card-sm{max-width:400px}
.auth-card-header{margin-bottom:24px}
.auth-card-header h1{font-size:24px;font-weight:700;margin-bottom:6px}
.auth-card-header p{font-size:14px;color:var(--text-muted);line-height:1.5}
.auth-card-header-center{text-align:center}
.auth-tabs{display:flex;gap:8px;margin-bottom:24px;padding:4px;background:rgba(148,163,184,.06);border-radius:var(--radius-md)}
.auth-mode-tabs{margin-top:-12px;margin-bottom:20px}
.auth-mode-tabs .auth-tab{border:none;background:transparent;cursor:pointer;font-family:inherit}
.auth-tab{flex:1;text-align:center;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-muted);text-decoration:none;transition:all .2s}
.auth-tab:hover{color:var(--text-secondary);background:rgba(148,163,184,.06)}
.auth-tab.active{color:var(--accent-cyan);background:rgba(9,173,195,.12);box-shadow:0 0 0 1px rgba(9,173,195,.25)}
.auth-form{display:flex;flex-direction:column;gap:16px}
.auth-submit{width:100%;justify-content:center;padding:12px 20px;font-size:15px}
.auth-row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.auth-check{display:inline-flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;line-height:1.4}
.auth-check input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent-cyan);flex-shrink:0}
.auth-check-block{margin:4px 0}
.auth-link{color:var(--accent-cyan);text-decoration:none;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:4px}
.auth-link:hover{text-decoration:underline}
.auth-switch{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-subtle);text-align:center;font-size:13px;color:var(--text-muted)}
.input-with-icon{position:relative;display:flex;align-items:center}
.input-with-icon .form-input{padding-left:42px;padding-right:42px}
.input-with-icon .input-icon{position:absolute;left:14px;color:var(--text-muted);width:16px;height:16px;pointer-events:none}
.input-action{position:absolute;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .2s}
.input-action:hover{color:var(--accent-cyan)}
.input-sms-row{display:flex;gap:10px;align-items:stretch}
.input-sms-row .flex-1{flex:1;min-width:0}
.sms-btn{white-space:nowrap;padding:0 14px;font-size:13px;flex-shrink:0}
.sms-btn:disabled{opacity:.55;cursor:not-allowed}
.auth-logout-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:rgba(239,68,68,.12);color:#EF4444;display:flex;align-items:center;justify-content:center}

/* ===== Public legal documents ===== */
.legal-layout{width:min(1180px,100%);display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start;margin:auto}
.legal-aside{position:sticky;top:90px;padding:16px;border-radius:var(--radius-lg)}
.legal-aside-label{margin:2px 8px 12px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.legal-doc-link{display:flex;align-items:center;gap:11px;padding:12px;border-radius:10px;color:var(--text-secondary);text-decoration:none;transition:background .2s,color .2s}
.legal-doc-link:hover{color:var(--text-primary);background:rgba(148,163,184,.07)}
.legal-doc-link.active{color:var(--accent-cyan);background:rgba(9,173,195,.12);box-shadow:inset 0 0 0 1px rgba(9,173,195,.2)}
.legal-doc-link svg{width:18px;height:18px;flex:0 0 auto}
.legal-doc-link span{display:flex;flex-direction:column;gap:3px;font-size:14px;font-weight:650}
.legal-doc-link small{color:var(--text-muted);font-size:11px;font-weight:400}
.legal-version-note{margin-top:14px;padding:14px 12px 2px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-muted)}
.legal-version-note strong{color:var(--text-secondary);font-size:12px;font-weight:500}
.legal-card{min-width:0;padding:42px 48px;border-radius:var(--radius-xl)}
.legal-header{padding-bottom:26px;border-bottom:1px solid var(--border-subtle)}
.legal-kicker{display:inline-flex;margin-bottom:10px;color:var(--accent-cyan);font-size:12px;font-weight:700;letter-spacing:.08em}
.legal-header h1{margin:0 0 10px;font-size:30px;line-height:1.25}
.legal-header p{margin:0;color:var(--text-muted);font-size:13px}
.legal-highlight{margin:26px 0;padding:18px 20px;border:1px solid rgba(9,173,195,.24);border-radius:12px;background:rgba(9,173,195,.07)}
.legal-highlight strong{display:block;margin-bottom:6px;color:var(--accent-cyan);font-size:14px}
.legal-highlight p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.8}
.legal-card a{color:var(--accent-cyan)}
.legal-section{padding:25px 0;border-bottom:1px solid var(--border-subtle);scroll-margin-top:90px}
.legal-section:last-child{border-bottom:0;padding-bottom:0}
.legal-section h2{margin:0 0 13px;font-size:19px;line-height:1.45}
.legal-section p,.legal-section li{color:var(--text-secondary);font-size:14px;line-height:1.9}
.legal-section p{margin:9px 0}
.legal-section ol,.legal-section ul{margin:8px 0;padding-left:22px}
.legal-section li+li{margin-top:7px}
.legal-section strong{color:var(--text-primary)}
.legal-table-wrap{margin:16px 0;overflow-x:auto;border:1px solid var(--border-subtle);border-radius:12px}
.legal-table{width:100%;min-width:680px;border-collapse:collapse;text-align:left}
.legal-table th,.legal-table td{padding:13px 15px;border-bottom:1px solid var(--border-subtle);vertical-align:top;font-size:13px;line-height:1.65}
.legal-table th{background:rgba(148,163,184,.07);color:var(--text-primary);font-weight:650}
.legal-table td{color:var(--text-secondary)}
.legal-table tr:last-child td{border-bottom:0}
.legal-table th:first-child,.legal-table td:first-child{width:18%}
.legal-table th:nth-child(2),.legal-table td:nth-child(2){width:44%}
.legal-contact{margin-top:12px;padding:22px;border:1px solid rgba(99,102,241,.2);border-radius:12px;background:rgba(99,102,241,.06)}
.legal-contact p{margin:5px 0}
.landing-legal-links{display:flex;justify-content:center;gap:9px;margin-top:8px}
.landing-legal-links a{color:var(--text-muted);text-decoration:none}
.landing-legal-links a:hover{color:var(--accent-cyan);text-decoration:underline}
@media (max-width:820px){
  .legal-layout{grid-template-columns:1fr}
  .legal-aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .legal-aside-label,.legal-version-note{grid-column:1/-1}
  .legal-card{padding:30px 24px}
}
@media (max-width:480px){
  .auth-nav{padding:12px 16px}
  .auth-card{padding:24px 20px}
  .input-sms-row{flex-direction:column}
  .sms-btn{width:100%;padding:10px}
  .auth-center{padding:20px 12px}
  .legal-aside{grid-template-columns:1fr;padding:10px}
  .legal-aside-label,.legal-version-note{grid-column:auto}
  .legal-version-note{display:none}
  .legal-card{padding:26px 18px}
  .legal-header h1{font-size:24px}
  .legal-section h2{font-size:17px}
  .legal-section p,.legal-section li{font-size:13px}
}

/* Character extraction and editable drafts */
.char-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.char-count{font-size:13px;color:var(--text-muted)}
.char-task-banner{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:14px 18px;border:1px solid rgba(9,173,195,.28);border-radius:var(--radius-md);background:rgba(9,173,195,.08);color:var(--text-secondary)}
.char-task-banner[hidden]{display:none!important}
.char-task-banner strong{display:block;color:var(--text-primary);font-size:14px;margin-bottom:3px}
.char-task-banner div div{font-size:12px}
.char-task-banner.done{border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.08)}
.char-task-banner.failed{border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.08)}
.char-task-spinner{width:18px;height:18px;border:2px solid rgba(9,173,195,.25);border-top-color:var(--accent-cyan);border-radius:50%;animation:char-spin .8s linear infinite;flex-shrink:0}
.char-task-banner.done .char-task-spinner{animation:none;border-color:#22C55E;position:relative}
.char-task-banner.failed .char-task-spinner{animation:none;border-color:#EF4444}
@keyframes char-spin{to{transform:rotate(360deg)}}
.char-empty{text-align:center;padding:54px 24px;color:var(--text-muted)}
.char-empty h3{color:var(--text-primary);font-size:17px;margin:12px 0 6px}
.char-empty p{font-size:13px}
.char-library-card{min-width:0}
.char-library-card:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:3px}
.char-text-avatar{height:180px;display:flex;align-items:center;justify-content:center;font-size:46px;font-weight:800;color:rgba(255,255,255,.4);background:linear-gradient(145deg,rgba(9,173,195,.28),rgba(99,102,241,.22));border-bottom:1px solid var(--border-subtle)}
.char-text-avatar img{width:100%;height:100%;display:block;object-fit:cover;object-position:top center}
.char-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.char-visual-preview{font-size:12px;line-height:1.65;color:var(--text-secondary);margin:12px 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;min-height:78px}
.char-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.char-source-label{font-size:11px;color:var(--text-muted)}
.char-modal-open{overflow:hidden}
.char-modal{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}
.char-modal[hidden]{display:none}
.char-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.78);backdrop-filter:blur(6px)}
.char-modal-dialog{position:relative;width:min(620px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#111827;border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:0 24px 80px rgba(0,0,0,.55);padding:24px}
.char-editor-dialog{width:min(780px,100%)}
.char-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}
.char-modal-header h2{font-size:20px;margin:0 0 5px}
.char-modal-header p{font-size:12px;color:var(--text-muted);margin:0}
.char-modal-close{border:0;background:transparent;color:var(--text-muted);font-size:28px;line-height:1;cursor:pointer;padding:0 4px}
.char-modal-close:hover{color:var(--text-primary)}
.char-modal label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:7px}
.char-modal input:not([type=radio]):not([type=checkbox]),.char-modal select,.char-modal textarea{width:100%;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(15,23,42,.72);color:var(--text-primary);padding:10px 12px;font:inherit;font-size:13px;outline:none;resize:vertical}
.char-modal input:focus,.char-modal select:focus,.char-modal textarea:focus{border-color:var(--accent-cyan)}
.char-source-types{display:flex;gap:10px}
.char-source-types label{margin:0;flex:1;cursor:pointer}
.char-source-types input{position:absolute;opacity:0}
.char-source-types span{display:block;text-align:center;padding:11px;border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-muted)}
.char-source-types input:checked+span{border-color:var(--accent-cyan);background:rgba(9,173,195,.1);color:var(--accent-cyan)}
.char-source-list{border:1px solid var(--border-subtle);border-radius:12px;max-height:280px;overflow:auto}
.char-source-item{display:flex!important;align-items:center;gap:12px;margin:0!important;padding:12px 14px;border-bottom:1px solid var(--border-subtle);cursor:pointer}
.char-source-item:last-child{border-bottom:0}
.char-source-item:hover{background:rgba(148,163,184,.05)}
.char-source-item input{accent-color:var(--accent-cyan);flex-shrink:0}
.char-source-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:rgba(9,173,195,.1);color:var(--accent-cyan);flex-shrink:0}
.char-source-icon svg{width:16px;height:16px}
.char-source-item strong{display:block;color:var(--text-primary);font-size:13px;font-weight:500}
.char-source-item small{display:block;color:var(--text-muted);font-size:11px;margin-top:3px}
.char-source-loading,.char-source-empty{padding:28px 18px;text-align:center;color:var(--text-muted);font-size:13px}
.char-source-empty a{color:var(--accent-cyan);margin:0 3px}
.char-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid var(--border-subtle)}
.char-actions-spacer{flex:1}
.char-delete-btn{color:#F87171!important;border-color:rgba(239,68,68,.3)!important}
.char-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.char-form-full{grid-column:1/-1}
.char-card-delete{color:#F87171!important;border-color:rgba(239,68,68,.28)!important;padding:6px 9px!important;margin-left:auto}
.char-look-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(9,173,195,.22),rgba(99,102,241,.2));font-size:42px;font-weight:800;color:rgba(255,255,255,.32)}
.char-look-image{overflow:hidden;background:rgba(15,23,42,.72)}
.char-look-image>img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.look-card{cursor:default}
.look-card.has-preview{cursor:pointer}
.look-card.has-preview:hover{border-color:var(--border-glow)}
.char-image-lightbox{z-index:1300}
.char-image-lightbox .char-modal-dialog{width:min(920px,96vw);max-height:calc(100vh - 48px);padding:18px;background:#0B1220}
.char-image-lightbox-frame{display:flex;align-items:center;justify-content:center;min-height:280px;max-height:calc(100vh - 140px);border-radius:12px;background:rgba(2,6,23,.72);overflow:auto}
.char-image-lightbox-frame img{max-width:100%;max-height:calc(100vh - 160px);width:auto;height:auto;object-fit:contain;display:block;border-radius:8px}
.char-look-image-progress{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:rgba(2,6,23,.68);color:#E2E8F0;font-size:12px;backdrop-filter:blur(2px)}
.char-look-image-progress svg{width:22px;height:22px;color:var(--accent-cyan);animation:char-spin .8s linear infinite}
.char-look-image-error{margin-top:10px;padding:7px 9px;border-radius:7px;background:rgba(239,68,68,.08);color:#FCA5A5;font-size:11px;line-height:1.45}
.char-image-dialog{max-width:780px}
.char-image-resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;max-height:56vh;overflow:auto;padding:2px}
.char-image-resource{display:flex;flex-direction:column;gap:7px;padding:7px;background:rgba(15,23,42,.72);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-secondary);cursor:pointer;text-align:left;transition:border-color .2s,transform .2s}
.char-image-resource:hover{border-color:var(--accent-cyan);transform:translateY(-2px)}
.char-image-resource img{width:100%;height:132px;object-fit:cover;border-radius:7px;background:#0F172A}
.char-image-resource span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.char-image-loading{grid-column:1/-1;padding:40px;text-align:center;color:var(--text-muted)}
.look-default-tag{position:absolute;top:10px;left:10px}
.look-scene-context{display:flex;align-items:flex-start;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-subtle);font-size:11px;line-height:1.5;color:var(--text-muted)}
.look-scene-context svg{width:12px;height:12px;flex-shrink:0;margin-top:2px;color:var(--accent-cyan)}
.look-default-check{display:flex!important;align-items:center;gap:9px;height:42px;margin-top:25px!important;cursor:pointer}
.look-default-check input{width:16px;height:16px;accent-color:var(--accent-cyan)}
#detail-avatar{background:linear-gradient(135deg,#09ADC3,#6366F1);overflow:hidden}
#detail-avatar img{width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:inherit}
#detail-avatar.has-preview{cursor:pointer}
.scene-library-card{min-width:0}
.scene-card-media{height:150px;background:radial-gradient(circle at 70% 20%,rgba(9,173,195,.2),transparent 36%),linear-gradient(145deg,#111827,#172554 55%,#0F172A)}
.scene-card-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:rgba(226,232,240,.38);font-size:11px}
.scene-card-placeholder svg{width:30px;height:30px;color:rgba(9,173,195,.55)}
.scene-card-image{width:100%;height:100%;display:block;object-fit:cover}
.scene-card-badges{position:absolute;left:12px;bottom:12px}
@media (max-width:760px){
  .char-header-actions{justify-content:flex-start}
  .char-header-actions .search-bar{width:100%}
  .char-modal{padding:12px}
  .char-modal-dialog{padding:18px;max-height:calc(100vh - 24px)}
  .char-form-grid{grid-template-columns:1fr}
  .char-form-full{grid-column:auto}
}

/* 弱网/旧设备：关闭持续动画，避免 blur+GPU 合成卡顿 */
html.reduce-motion .hero-blob,
html.reduce-motion .hero-particle,
html.reduce-motion .hero-streak,
html.reduce-motion .hero-phone,
html.reduce-motion .hero-badge,
html.reduce-motion .hero-title,
html.reduce-motion .hero-subtitle,
html.reduce-motion .hero-actions,
html.reduce-motion .gradient-text,
html.reduce-motion .page,
html.reduce-motion .wizard-panel,
html.reduce-motion .pipeline-panel,
html.reduce-motion .btn-gradient::before,
html.reduce-motion .dot-pulse{animation:none!important}
html.reduce-motion .hero-blob{filter:blur(32px);opacity:.28;transform:none!important}
html.reduce-motion .feature-card:hover,
html.reduce-motion .project-card:hover,
html.reduce-motion .pricing-card:hover,
html.reduce-motion .btn-gradient:hover{transform:none}
@media (prefers-reduced-motion: reduce){
  .hero-blob,.hero-particle,.hero-streak,.hero-phone,.hero-badge,.hero-title,.hero-subtitle,.hero-actions,
  .gradient-text,.page,.wizard-panel,.pipeline-panel,.btn-gradient::before,.dot-pulse{animation:none!important}
  .hero-blob{filter:blur(32px);opacity:.28;transform:none!important}
  .feature-card:hover,.project-card:hover,.pricing-card:hover,.btn-gradient:hover{transform:none}
}

/* 积分充值 / 微信 Native 支付 */
.recharge-dialog{width:min(760px,100%)}
.recharge-ratio-note{padding:11px 14px;border-radius:10px;background:rgba(9,173,195,.08);border:1px solid rgba(9,173,195,.18);font-size:12px;color:var(--text-secondary);margin-bottom:16px}
.recharge-package-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.recharge-package-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:158px;padding:20px 10px 14px;border:1px solid var(--border-subtle);border-radius:14px;background:rgba(148,163,184,.04);color:var(--text-primary);cursor:pointer;font-family:inherit;transition:.2s}
.recharge-package-card:hover{transform:translateY(-2px);border-color:rgba(9,173,195,.5);background:rgba(9,173,195,.08)}
.recharge-package-card:disabled{opacity:.55;cursor:wait;transform:none}
.recharge-package-card strong{font-size:26px;line-height:1.1;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
.recharge-package-card>span:not(.recharge-package-badge){font-size:11px;color:var(--text-muted)}
.recharge-package-card em{font-size:14px;font-weight:700;font-style:normal;margin-top:7px}
.recharge-package-card small{font-size:10px;color:var(--text-muted)}
.recharge-package-name{margin-bottom:5px!important;color:var(--text-secondary)!important;font-weight:600}
.recharge-package-badge{position:absolute;right:7px;top:7px;padding:2px 7px;border-radius:999px;background:linear-gradient(135deg,#10B981,#09ADC3);color:#fff;font-size:9px;font-weight:700}
.recharge-custom-card{padding:16px;border:1px solid var(--border-subtle);border-radius:14px;background:rgba(148,163,184,.035)}
.recharge-custom-card>div:first-child{display:flex;align-items:baseline;gap:9px;margin-bottom:11px}.recharge-custom-card>div:first-child span{font-size:11px;color:var(--text-muted)}
.recharge-custom-input{display:flex;align-items:center;gap:8px}.recharge-custom-input>span{font-size:18px;font-weight:700}.recharge-custom-input input{flex:1;min-width:0}.recharge-custom-input button{white-space:nowrap}
.recharge-error{padding:10px 12px;margin-top:12px;border-radius:9px;background:rgba(239,68,68,.09);border:1px solid rgba(239,68,68,.25);color:#FCA5A5;font-size:12px;line-height:1.5}
.recharge-unavailable{grid-column:1/-1;padding:28px;text-align:center;border:1px dashed rgba(245,158,11,.35);border-radius:12px;color:#FBBF24;font-size:13px}
.recharge-qr-layout{display:grid;grid-template-columns:280px 1fr;gap:30px;align-items:center;padding:10px 14px 24px}
.recharge-qr-frame{width:260px;height:260px;background:#fff;border-radius:16px;padding:10px;box-shadow:0 14px 45px rgba(0,0,0,.35)}.recharge-qr-frame img{width:100%;height:100%;display:block}
.recharge-pay-info{display:flex;flex-direction:column;align-items:flex-start}.recharge-wechat-title{display:flex;align-items:center;gap:11px;margin-bottom:18px}.recharge-wechat-title>div{display:flex;flex-direction:column;gap:2px}.recharge-wechat-title span{font-size:11px;color:var(--text-muted)}
.recharge-wechat-icon{display:flex!important;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:#07C160;color:#fff!important;font-weight:800;font-size:15px!important}
.recharge-pay-amount{font-size:34px;font-weight:800;margin-bottom:4px}.recharge-pay-points{font-size:13px;color:#34D399;margin-bottom:24px}.recharge-polling{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text-secondary)}
.recharge-success{text-align:center;padding:22px 20px 8px}.recharge-success-icon{width:76px;height:76px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(16,185,129,.14);border:1px solid rgba(16,185,129,.4);color:#34D399}.recharge-success h3{font-size:24px;margin:0 0 7px}.recharge-success p{color:var(--text-secondary);font-size:13px;margin:0 0 22px}.recharge-success-balance{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-radius:12px;background:rgba(148,163,184,.06);margin-bottom:20px}.recharge-success-balance span{font-size:12px;color:var(--text-muted)}.recharge-success-balance strong{font-size:22px}
@media(max-width:760px){.recharge-package-grid{grid-template-columns:1fr 1fr}.recharge-qr-layout{grid-template-columns:1fr;justify-items:center;text-align:center}.recharge-pay-info{align-items:center}.recharge-qr-frame{width:230px;height:230px}.recharge-custom-input{flex-wrap:wrap}.recharge-custom-input input{flex-basis:calc(100% - 35px)}.recharge-custom-input button{width:100%;justify-content:center}}
