﻿*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root,[data-theme="warm"]{
--bg-primary:#F7F6F2;
--bg-secondary:#EFEDE7;
--bg-card:#FFFFFF;
--bg-card-hover:#FAFAF8;
--bg-elevated:#EFEDE7;
--bg-input:#F3F1EC;
--border:#E5E2DA;
--border-light:#D4D0C6;
--text-primary:#1C1917;
--text-secondary:#57534E;
--text-muted:#A8A29E;
--accent:#1C6B5A;
--accent-hover:#155748;
--accent-dim:rgba(28,107,90,.06);
--accent-glow:rgba(28,107,90,.12);
--blue:#2563EB;
--blue-dim:rgba(37,99,235,.06);
--purple:#7C3AED;
--purple-dim:rgba(124,58,237,.06);
--rose:#BE123C;
--rose-dim:rgba(190,18,60,.06);
--amber:#B45309;
--amber-dim:rgba(180,83,9,.06);
--navbar-bg:rgba(247,246,242,.88);
--navbar-scrolled:rgba(247,246,242,.96);
--navbar-shadow:0 1px 12px rgba(28,25,23,.05);
--logo-text-color:#1C1917;
--selection-bg:#1C6B5A;
--selection-color:#FFFFFF;
--noise-opacity:.02;
--card-preview-overlay:linear-gradient(transparent,rgba(28,25,23,.12));
--badge-bg:rgba(255,255,255,.92);
--badge-border-alpha:.12;
--badge-shadow:0 1px 4px rgba(28,25,23,.06);
--gradient-text-1:#1C6B5A;
--gradient-text-2:#2563EB;
--gradient-text-3:#7C3AED;
--hero-badge-bg:rgba(28,107,90,.06);
--hero-badge-border:rgba(28,107,90,.12);
--hero-badge-color:#1C6B5A;
--orb-1:rgba(28,107,90,.12);
--orb-2:rgba(37,99,235,.08);
--orb-3:rgba(124,58,237,.06);
--modal-overlay-bg:rgba(28,25,23,.25);
}
[data-theme="ocean"]{
--bg-primary:#F0F5FA;
--bg-secondary:#E2EAF3;
--bg-card:#FFFFFF;
--bg-card-hover:#F5F8FB;
--bg-elevated:#E8EFF6;
--bg-input:#EDF2F8;
--border:#D4DFE9;
--border-light:#BFCFDF;
--text-primary:#0C1B2E;
--text-secondary:#3D5268;
--text-muted:#8FA3B8;
--accent:#0C7489;
--accent-hover:#095E6E;
--accent-dim:rgba(12,116,137,.07);
--accent-glow:rgba(12,116,137,.14);
--blue:#1D6DD4;
--blue-dim:rgba(29,109,212,.07);
--purple:#6D4EC7;
--purple-dim:rgba(109,78,199,.07);
--rose:#C4364A;
--rose-dim:rgba(196,54,74,.07);
--amber:#C2850A;
--amber-dim:rgba(194,133,10,.07);
--navbar-bg:rgba(240,245,250,.88);
--navbar-scrolled:rgba(240,245,250,.96);
--navbar-shadow:0 1px 12px rgba(12,27,46,.05);
--logo-text-color:#0C1B2E;
--selection-bg:#0C7489;
--selection-color:#FFFFFF;
--noise-opacity:.015;
--card-preview-overlay:linear-gradient(transparent,rgba(12,27,46,.12));
--badge-bg:rgba(255,255,255,.92);
--badge-border-alpha:.12;
--badge-shadow:0 1px 4px rgba(12,27,46,.06);
--gradient-text-1:#0C7489;
--gradient-text-2:#1D6DD4;
--gradient-text-3:#6D4EC7;
--hero-badge-bg:rgba(12,116,137,.07);
--hero-badge-border:rgba(12,116,137,.14);
--hero-badge-color:#0C7489;
--orb-1:rgba(12,116,137,.1);
--orb-2:rgba(29,109,212,.07);
--orb-3:rgba(109,78,199,.05);
--modal-overlay-bg:rgba(12,27,46,.25);
}
[data-theme="forest"]{
--bg-primary:#F2F5F0;
--bg-secondary:#E4EAE2;
--bg-card:#FFFFFF;
--bg-card-hover:#F6F9F4;
--bg-elevated:#E8ECE5;
--bg-input:#EEF1EB;
--border:#D6DCD0;
--border-light:#C2C9BA;
--text-primary:#1A2016;
--text-secondary:#4A5640;
--text-muted:#99A68C;
--accent:#3D7A47;
--accent-hover:#2F6238;
--accent-dim:rgba(61,122,71,.07);
--accent-glow:rgba(61,122,71,.14);
--blue:#2B6CB0;
--blue-dim:rgba(43,108,176,.07);
--purple:#6B46C1;
--purple-dim:rgba(107,70,193,.07);
--rose:#C53030;
--rose-dim:rgba(197,48,48,.07);
--amber:#B7791F;
--amber-dim:rgba(183,121,31,.07);
--navbar-bg:rgba(242,245,240,.88);
--navbar-scrolled:rgba(242,245,240,.96);
--navbar-shadow:0 1px 12px rgba(26,32,22,.05);
--logo-text-color:#1A2016;
--selection-bg:#3D7A47;
--selection-color:#FFFFFF;
--noise-opacity:.018;
--card-preview-overlay:linear-gradient(transparent,rgba(26,32,22,.12));
--badge-bg:rgba(255,255,255,.92);
--badge-border-alpha:.12;
--badge-shadow:0 1px 4px rgba(26,32,22,.06);
--gradient-text-1:#3D7A47;
--gradient-text-2:#2B6CB0;
--gradient-text-3:#6B46C1;
--hero-badge-bg:rgba(61,122,71,.07);
--hero-badge-border:rgba(61,122,71,.14);
--hero-badge-color:#3D7A47;
--orb-1:rgba(61,122,71,.1);
--orb-2:rgba(43,108,176,.07);
--orb-3:rgba(107,70,193,.05);
--modal-overlay-bg:rgba(26,32,22,.25);
}
[data-theme="rose"]{
--bg-primary:#F8F3F4;
--bg-secondary:#F0E8EA;
--bg-card:#FFFFFF;
--bg-card-hover:#FBF7F8;
--bg-elevated:#F1ECEC;
--bg-input:#F5F0F1;
--border:#E4D9DB;
--border-light:#D2C4C7;
--text-primary:#1C1217;
--text-secondary:#5A4A50;
--text-muted:#A68E96;
--accent:#B05574;
--accent-hover:#934460;
--accent-dim:rgba(176,85,116,.07);
--accent-glow:rgba(176,85,116,.14);
--blue:#2B6CB0;
--blue-dim:rgba(43,108,176,.07);
--purple:#7C3AED;
--purple-dim:rgba(124,58,237,.07);
--rose:#C53030;
--rose-dim:rgba(197,48,48,.07);
--amber:#B7791F;
--amber-dim:rgba(183,121,31,.07);
--navbar-bg:rgba(248,243,244,.88);
--navbar-scrolled:rgba(248,243,244,.96);
--navbar-shadow:0 1px 12px rgba(28,18,23,.05);
--logo-text-color:#1C1217;
--selection-bg:#B05574;
--selection-color:#FFFFFF;
--noise-opacity:.018;
--card-preview-overlay:linear-gradient(transparent,rgba(28,18,23,.12));
--badge-bg:rgba(255,255,255,.92);
--badge-border-alpha:.12;
--badge-shadow:0 1px 4px rgba(28,18,23,.06);
--gradient-text-1:#B05574;
--gradient-text-2:#7C3AED;
--gradient-text-3:#2B6CB0;
--hero-badge-bg:rgba(176,85,116,.07);
--hero-badge-border:rgba(176,85,116,.14);
--hero-badge-color:#B05574;
--orb-1:rgba(176,85,116,.1);
--orb-2:rgba(124,58,237,.06);
--orb-3:rgba(43,108,176,.05);
--modal-overlay-bg:rgba(28,18,23,.25);
}
[data-theme="white"]{
--bg-primary:#FFFFFF;
--bg-secondary:#F5F5F5;
--bg-card:#FFFFFF;
--bg-card-hover:#F8FAFC;
--bg-elevated:#F1F5F9;
--bg-input:#F8FAFC;
--border:#E2E8F0;
--border-light:#CBD5E1;
--text-primary:#0F172A;
--text-secondary:#475569;
--text-muted:#94A3B8;
--accent:#2563EB;
--accent-hover:#1D4ED8;
--accent-dim:rgba(37,99,235,.06);
--accent-glow:rgba(37,99,235,.12);
--blue:#2563EB;
--blue-dim:rgba(37,99,235,.06);
--purple:#7C3AED;
--purple-dim:rgba(124,58,237,.06);
--rose:#DC2626;
--rose-dim:rgba(220,38,38,.06);
--amber:#D97706;
--amber-dim:rgba(217,119,6,.06);
--navbar-bg:rgba(255,255,255,.88);
--navbar-scrolled:rgba(255,255,255,.96);
--navbar-shadow:0 1px 12px rgba(15,23,42,.06);
--logo-text-color:#0F172A;
--selection-bg:#2563EB;
--selection-color:#FFFFFF;
--noise-opacity:0;
--card-preview-overlay:linear-gradient(transparent,rgba(15,23,42,.08));
--badge-bg:rgba(255,255,255,.95);
--badge-border-alpha:.1;
--badge-shadow:0 1px 4px rgba(15,23,42,.06);
--gradient-text-1:#2563EB;
--gradient-text-2:#7C3AED;
--gradient-text-3:#DC2626;
--hero-badge-bg:rgba(37,99,235,.06);
--hero-badge-border:rgba(37,99,235,.12);
--hero-badge-color:#2563EB;
--orb-1:rgba(37,99,235,.06);
--orb-2:rgba(124,58,237,.04);
--orb-3:rgba(220,38,38,.03);
--modal-overlay-bg:rgba(15,23,42,.2);
}
[data-theme="dark"]{
--bg-primary:#0E1117;
--bg-secondary:#161B22;
--bg-card:#1C2128;
--bg-card-hover:#242B35;
--bg-elevated:#2D333B;
--bg-input:#161B22;
--border:#2D333B;
--border-light:#3D444D;
--text-primary:#E6EDF3;
--text-secondary:#8B949E;
--text-muted:#6E7681;
--accent:#2EA88A;
--accent-hover:#268F76;
--accent-dim:rgba(46,168,138,.1);
--accent-glow:rgba(46,168,138,.2);
--blue:#58A6FF;
--blue-dim:rgba(88,166,255,.1);
--purple:#BC8CFF;
--purple-dim:rgba(188,140,255,.1);
--rose:#F47067;
--rose-dim:rgba(244,112,103,.1);
--amber:#D29922;
--amber-dim:rgba(210,153,34,.1);
--navbar-bg:rgba(14,17,23,.82);
--navbar-scrolled:rgba(14,17,23,.96);
--navbar-shadow:0 1px 12px rgba(0,0,0,.3);
--logo-text-color:#E6EDF3;
--selection-bg:#2EA88A;
--selection-color:#0E1117;
--noise-opacity:.03;
--card-preview-overlay:linear-gradient(transparent,rgba(0,0,0,.2));
--badge-bg:rgba(28,33,40,.92);
--badge-border-alpha:.2;
--badge-shadow:0 1px 4px rgba(0,0,0,.2);
--gradient-text-1:#2EA88A;
--gradient-text-2:#58A6FF;
--gradient-text-3:#BC8CFF;
--hero-badge-bg:rgba(46,168,138,.1);
--hero-badge-border:rgba(46,168,138,.2);
--hero-badge-color:#2EA88A;
--orb-1:rgba(46,168,138,.15);
--orb-2:rgba(88,166,255,.1);
--orb-3:rgba(188,140,255,.08);
--modal-overlay-bg:rgba(0,0,0,.5);
}
:root{
--radius-xs:4px;
--radius-s6:6px;
--radius-sm:8px;
--radius-md:12px;
--radius-lg:16px;
--radius-xl:20px;
  --radius-full:12px;
--shadow-xs:0 1px 3px rgba(0,0,0,.06);
--shadow-card:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.04);
--shadow-elevated:0 8px 32px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.05);
--shadow-glow:0 0 24px var(--accent-glow);
--font-display:'Space Grotesk',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
--font-body:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
--transition:all .3s cubic-bezier(.4,0,.2,1);
--transition-fast:.2s ease;
}
html{scroll-behavior:smooth;font-size:16px;scrollbar-gutter:stable}
body{
font-family:var(--font-body);
background:var(--bg-primary);
color:var(--text-primary);
line-height:1.6;
min-height:100vh;
overflow-x:hidden;
}
::selection{background:var(--selection-bg);color:var(--selection-color)}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--radius-xs)}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
a{color:inherit;text-decoration:none}
.bg-mesh{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-mesh .orb{position:absolute;border-radius:50%;filter:blur(140px);opacity:.4;animation:orbFloat 20s ease-in-out infinite}
.bg-mesh .orb:nth-child(1){width:600px;height:600px;background:radial-gradient(circle,var(--orb-1),transparent 70%);top:-10%;left:-5%;animation-delay:0s}
.bg-mesh .orb:nth-child(2){width:500px;height:500px;background:radial-gradient(circle,var(--orb-2),transparent 70%);top:40%;right:-10%;animation-delay:-7s;animation-duration:25s}
.bg-mesh .orb:nth-child(3){width:400px;height:400px;background:radial-gradient(circle,var(--orb-3),transparent 70%);bottom:-5%;left:30%;animation-delay:-14s;animation-duration:22s}
@keyframes orbFloat{
0%,100%{transform:translate(0,0) scale(1)}
25%{transform:translate(60px,-40px) scale(1.1)}
50%{transform:translate(-30px,60px) scale(.95)}
75%{transform:translate(40px,20px) scale(1.05)}
}
.noise-overlay{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:var(--noise-opacity);
background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
background-size:128px 128px;
}
.app{position:relative;z-index:2;display:flex;flex-direction:column;min-height:100vh}
.main-area{flex:1;min-width:0;margin-left:220px;box-sizing:border-box}
.theme-panel{
position:absolute;left:0;top:calc(100% + 8px);
padding:16px;border-radius:var(--radius-lg);
background:var(--bg-card);border:1px solid var(--border);
box-shadow:var(--shadow-elevated);
opacity:0;pointer-events:none;
transform:translateY(-4px) scale(.96);
transition:var(--transition);
z-index:550;min-width:200px;
}
.theme-panel.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.theme-panel-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.theme-options{display:flex;flex-direction:column;gap:4px}
.theme-option{
display:flex;align-items:center;gap:10px;
padding:8px 10px;border-radius:var(--radius-sm);
cursor:pointer;transition:var(--transition);
border:1.5px solid transparent;
}
.theme-option:hover{background:var(--bg-elevated)}
.theme-option.active{border-color:var(--accent);background:var(--accent-dim)}
.theme-swatch{
width:28px;height:28px;border-radius:var(--radius-s6);flex-shrink:0;
border:1px solid var(--border);overflow:hidden;
display:flex;
}
.theme-swatch-half{width:50%;height:100%}
.theme-option-label{font-size:13px;font-weight:500;color:var(--text-primary)}
.theme-option-sub{font-size:11px;color:var(--text-muted);margin-top:1px}
.sidebar{
position:fixed;top:0;left:0;bottom:0;z-index:120;
width:220px;display:flex;flex-direction:column;
background:var(--navbar-bg);backdrop-filter:blur(20px) saturate(1.4);
border-right:1px solid var(--border);
padding:20px 14px 16px;
}
.sidebar-logo{display:flex;align-items:center;gap:10px;cursor:pointer;padding:0 6px;margin-bottom:28px;position:relative}
.sidebar-logo .logo-icon{
width:34px;height:34px;border-radius:var(--radius-sm);
display:flex;align-items:center;justify-content:center;
box-shadow:0 2px 8px var(--accent-glow);transition:var(--transition);
flex-shrink:0;color:var(--accent);
}
.sidebar-logo .logo-icon svg{width:100%;height:100%;display:block}
.sidebar-logo:hover .logo-icon{transform:rotate(-8deg) scale(1.05)}
.sidebar-logo .logo-text{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.5px;color:var(--logo-text-color)}
.sidebar-logo .logo-text span{color:var(--accent)}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.sidebar-link{
display:flex;align-items:center;gap:10px;
padding:9px 12px;border-radius:var(--radius-sm);
font-size:14px;font-weight:500;color:var(--text-secondary);
cursor:pointer;transition:var(--transition-fast);position:relative;
}
.sidebar-link svg{width:18px;height:18px;flex-shrink:0}
.sidebar-link:hover{color:var(--text-primary);background:var(--accent-dim)}
.sidebar-link.active{color:var(--accent);background:var(--accent-dim);font-weight:600}
.sidebar-link .side-badge{
margin-left:auto;font-size:11px;font-weight:600;min-width:20px;height:20px;
display:flex;align-items:center;justify-content:center;
border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent);
}
.sidebar-divider{height:1px;background:var(--border);margin:8px 8px}
.sidebar-spacer{flex:1}
.sidebar-task-section{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;margin:8px 0 0}
.sidebar-task-header{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:0 4px;margin-bottom:6px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between}
.sidebar-task-header-clear{font-size:10px;font-weight:500;color:var(--text-muted);cursor:pointer;text-transform:none;letter-spacing:0;opacity:.6;transition:opacity .15s;background:none;border:none;padding:0}
.sidebar-task-header-clear:hover{opacity:1;color:var(--rose,#ef4444)}
.sidebar-task-list{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;display:flex;flex-direction:column;gap:4px;padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--border-light) transparent}
.sidebar-task-list::-webkit-scrollbar{width:3px}
.sidebar-task-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}
.sidebar-task-empty{font-size:11px;color:var(--text-muted);text-align:center;padding:12px 0;opacity:.6;flex-shrink:0}
.sidebar-task-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;flex-shrink:0;position:relative}
.sidebar-task-item:hover{background:var(--accent-dim)}
.sidebar-task-item.active{background:var(--accent-dim)}
.sidebar-task-thumb{width:36px;height:36px;border-radius:6px;overflow:hidden;flex-shrink:0;background:var(--bg-elevated);border:1px solid var(--border);position:relative}
.sidebar-task-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.sidebar-task-thumb-video{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--accent-dim,#eef2ff);color:var(--accent,#6366f1);font-size:14px}
.sidebar-task-thumb-audio{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--accent-dim,#fdf2f8);color:#ec4899;font-size:14px}
.sidebar-task-thumb-file{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated,#f3f4f6);color:var(--text-muted,#9ca3af);font-size:14px}
.sidebar-task-thumb-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--accent)}
.sidebar-task-thumb-loading .sk-spin{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
.sidebar-task-info{flex:1;min-width:0}
.sidebar-task-prompt{font-size:12px;color:var(--text-primary);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.sidebar-task-status{font-size:10px;color:var(--text-muted);margin-top:1px}
.sidebar-task-status.running{color:var(--accent)}
.sidebar-task-status.recovering{color:var(--text-muted)}
.sidebar-task-status.done{color:var(--green,#22c55e)}
.sidebar-task-status.failed{color:var(--rose,#ef4444)}
.sidebar-task-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-left:2px}
.sidebar-task-dot.running{background:var(--accent);animation:genTbPulse .8s ease-in-out infinite}
.sidebar-task-dot.recovering{background:var(--text-muted);animation:genTbPulse .8s ease-in-out infinite}
.sidebar-task-dot.done{background:var(--green,#22c55e)}
.sidebar-task-dot.failed{background:var(--rose,#ef4444)}
.sidebar-task-del{width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:opacity .15s,background .15s;font-size:14px;line-height:1;padding:0}
.sidebar-task-item:hover .sidebar-task-del{opacity:.7}
.sidebar-task-del:hover{opacity:1!important;background:var(--rose-dim,#fef2f2);color:var(--rose,#ef4444)}
.sidebar-footer{display:flex;flex-direction:column;gap:10px;padding:16px 4px 0;margin-top:8px;border-top:1px solid var(--border)}
.sidebar-footer-row{display:flex;align-items:center;gap:10px}
.sidebar-user-btn{
display:flex;align-items:center;gap:8px;width:100%;
padding:8px 10px;border-radius:var(--radius-sm);border:none;background:transparent;
color:var(--text-secondary);font-size:13px;cursor:pointer;transition:var(--transition-fast);
font-family:var(--font-body);
}
.sidebar-user-btn:hover{background:var(--accent-dim);color:var(--text-primary)}
.sidebar-user-btn .user-avatar-sm{
width:28px;height:28px;border-radius:50%;flex-shrink:0;
background:linear-gradient(135deg,var(--accent),var(--blue));
display:flex;align-items:center;justify-content:center;
font-size:12px;font-weight:600;color:#ffffff;overflow:hidden;
}
.sidebar-user-btn .user-avatar-sm .avatar-img{width:100%;height:100%;object-fit:cover}
.sidebar-login-btn{
width:100%;padding:9px;border-radius:var(--radius-sm);border:1.5px solid var(--accent);
background:transparent;color:var(--accent);font-size:13px;font-weight:600;
cursor:pointer;transition:var(--transition-fast);font-family:var(--font-body);
}
.sidebar-login-btn:hover{background:var(--accent);color:#ffffff}
.sidebar-theme-btn{
width:28px;height:28px;border-radius:var(--radius-s6);border:none;
background:transparent;color:var(--text-secondary);cursor:pointer;
display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);
flex-shrink:0;margin-left:auto;
}
.sidebar-theme-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}
.sidebar-theme-btn svg{width:16px;height:16px}
.sidebar-notify-icon{
position:relative;width:36px;height:36px;border-radius:var(--radius-sm);border:none;
background:transparent;color:var(--text-secondary);cursor:pointer;
display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);
flex-shrink:0;font-family:var(--font-body);
}
.sidebar-notify-icon:hover{color:var(--accent);background:var(--accent-dim)}
.sidebar-notify-icon svg{width:20px;height:20px}
.notify-bell-dot{
position:absolute;top:4px;right:5px;width:8px;height:8px;
border-radius:50%;background:#ef4444;
box-shadow:0 0 4px rgba(239,68,68,.5);
display:none;
}
.notify-bell-dot.show{display:block}
.sidebar-publish-btn{
flex:1;height:40px;padding:0 16px;border-radius:var(--radius-sm);border:none;
background:var(--accent);color:#ffffff;font-size:14px;font-weight:600;
cursor:pointer;transition:var(--transition-fast);font-family:var(--font-body);
box-shadow:0 2px 8px var(--accent-glow);
display:flex;align-items:center;justify-content:center;gap:6px;
}
.sidebar-publish-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;border-radius:10px;font-size:14px;font-weight:500;font-family:var(--font-body);cursor:pointer;border:none;transition:var(--transition);white-space:nowrap}
.btn-primary{background:var(--accent);color:#ffffff;font-weight:600;box-shadow:0 2px 8px var(--accent-glow)}
.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 16px var(--accent-glow);transform:translateY(-2px)}
.btn-primary:active{transform:translateY(0);box-shadow:0 1px 4px var(--accent-glow)}
.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}
.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-light);background:var(--bg-card);transform:translateY(-1px)}
.btn-outline{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}
.btn-outline:hover{background:var(--accent-dim);transform:translateY(-1px)}
.user-avatar{
width:34px;height:34px;border-radius:50%;cursor:pointer;
background:linear-gradient(135deg,var(--accent),var(--blue));
display:flex;align-items:center;justify-content:center;
font-size:14px;font-weight:600;color:#ffffff;
transition:var(--transition);position:relative;overflow:hidden;
}
.user-avatar .avatar-img{width:100%;height:100%;object-fit:cover}
.user-avatar:hover{transform:scale(1.08);box-shadow:var(--shadow-glow)}
.user-dropdown{
position:fixed;left:12px;bottom:50px;
width:260px;background:var(--bg-card);border:1px solid var(--border);
border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);
padding:0;overflow:hidden;z-index:550;
opacity:0;pointer-events:none;
transform:translateY(-8px) scale(.96);
transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.user-dropdown.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
.drop-header{
padding:20px 18px 14px;text-align:center;
background:linear-gradient(135deg,var(--accent-dim),var(--bg-card) 60%);
border-bottom:1px solid var(--border);
}
.drop-avatar{
width:48px;height:48px;border-radius:50%;margin:0 auto 10px;
background:linear-gradient(135deg,var(--accent),var(--blue));
display:flex;align-items:center;justify-content:center;
font-size:20px;font-weight:700;color:#ffffff;overflow:hidden;
}
.drop-avatar .avatar-img{width:100%;height:100%;object-fit:cover}
.drop-username{font-size:16px;font-weight:700;color:var(--text-primary)}
.drop-role{
display:inline-block;margin-top:4px;padding:2px 10px;border-radius:10px;
font-size:11px;font-weight:600;letter-spacing:.3px;
background:var(--accent-dim);color:var(--accent);
}
.drop-body{padding:8px 0}
.drop-row{
display:flex;align-items:center;justify-content:space-between;
padding:10px 18px;font-size:13px;color:var(--text-secondary);
transition:background .15s;
}
.drop-row:hover{background:var(--bg-elevated)}
.drop-row .drop-label{display:flex;align-items:center;gap:8px;color:var(--text-muted)}
.drop-row .drop-val{font-weight:600;color:var(--text-primary)}
.drop-row .drop-val.balance{color:var(--accent);font-size:15px}
.drop-row-clickable{cursor:pointer}
.drop-footer{padding:10px 12px;border-top:1px solid var(--border)}
.drop-logout{
width:100%;padding:9px;border-radius:var(--radius-sm);
border:none;background:transparent;color:var(--rose);
font-size:13px;font-weight:500;cursor:pointer;
display:flex;align-items:center;justify-content:center;gap:6px;
transition:var(--transition-fast);font-family:var(--font-body);
}
.drop-logout:hover{background:var(--rose-dim)}
/* 通知下拉面板 */
.notify-dropdown{
position:fixed;left:50%;top:50%;width:380px;max-width:calc(100vw - 32px);
max-height:80vh;
background:var(--bg-card);border:1px solid var(--border);
border-radius:var(--radius-xl);box-shadow:var(--shadow-elevated);
display:flex;flex-direction:column;
padding:0;overflow:hidden;z-index:550;
opacity:0;pointer-events:none;
transform:translate(-50%,-50%) scale(.94);
transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
-webkit-backface-visibility:hidden;backface-visibility:hidden;
will-change:transform;
}
.notify-dropdown.show{
opacity:1;pointer-events:auto;
transform:translate(-50%,-50%) scale(1);
}
.notify-drop-header{
display:flex;align-items:center;justify-content:space-between;
padding:14px 18px;border-bottom:1px solid var(--border);
}
.notify-drop-header h3{font-size:15px;font-weight:700;color:var(--text-primary);margin:0}
.notify-mark-read{
background:none;border:1px solid var(--border);color:var(--text-secondary);
font-size:11px;cursor:pointer;padding:4px 10px;border-radius:var(--radius-sm);
transition:var(--transition-fast);font-family:var(--font-body);
}
.notify-mark-read:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}
.notify-drop-close{
background:none;border:none;color:var(--text-muted);
cursor:pointer;padding:0;line-height:1;
transition:var(--transition-fast);width:32px;height:32px;
border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;
}
.notify-drop-close:hover{color:var(--text-primary);background:var(--bg-primary);transform:rotate(90deg)}
.notify-drop-body{flex:1;min-height:120px;max-height:360px;overflow-y:auto}
.notify-drop-tabs{
display:flex;gap:4px;padding:10px 18px;border-bottom:1px solid var(--border);
}
.notify-drop-tab{
font-size:12px;color:var(--text-muted);cursor:pointer;
padding:4px 12px;border-radius:12px;transition:var(--transition-fast);
user-select:none;font-family:var(--font-body);
}
.notify-drop-tab:hover{color:var(--text-primary);background:var(--accent-dim)}
.notify-drop-tab.active{color:var(--accent);background:var(--accent-dim);font-weight:600}
.notify-drop-body::-webkit-scrollbar{width:4px}
.notify-drop-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.notify-drop-empty{padding:40px 20px;text-align:center;color:var(--text-muted);font-size:13px}
.notify-drop-item{
display:flex;gap:12px;padding:12px 18px;margin:0 8px;
cursor:pointer;border-radius:var(--radius-md);
}
.notify-drop-item:first-child{margin-top:4px}
.notify-drop-item:last-child{margin-bottom:4px}
.notify-drop-item:hover{background:var(--accent-dim)}
.notify-drop-item.unread{background:var(--accent-dim)}
.notify-drop-dot{
width:7px;height:7px;border-radius:50%;background:var(--accent);
flex-shrink:0;margin-top:6px;box-shadow:0 0 6px var(--accent-glow);
}
.notify-drop-item.read .notify-drop-dot{visibility:hidden}
.notify-drop-text{flex:1;min-width:0}
.notify-drop-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:3px}
.notify-drop-desc{font-size:12px;color:var(--text-muted);line-height:1.5;word-break:break-word;overflow-wrap:break-word}
.notify-drop-time{font-size:10px;color:var(--text-muted);margin-top:4px}
.notify-drop-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:3px;font-weight:500;margin-left:6px;vertical-align:1px}
.notify-badge-system{background:rgba(77,171,247,0.15);color:#4dabf7}
.notify-badge-update{background:rgba(245,158,11,0.15);color:#f59e0b}
.notify-badge-activity{background:rgba(34,197,94,0.15);color:#22c55e}
.drop-edit-profile{
width:100%;padding:9px;border-radius:var(--radius-sm);
border:none;background:transparent;color:var(--accent);
font-size:13px;font-weight:500;cursor:pointer;
display:flex;align-items:center;justify-content:center;gap:6px;
transition:var(--transition-fast);font-family:var(--font-body);
margin-bottom:4px;
}
.drop-edit-profile:hover{background:var(--accent-dim)}
.hero{
padding:40px 24px 16px 24px;text-align:center;position:relative;
}
.hero h1{
font-family:var(--font-display);font-size:clamp(36px,5vw,56px);
font-weight:800;line-height:1.15;letter-spacing:-1.5px;
margin-bottom:6px;
}
.hero h1 .gradient-text{color:var(--accent)}
.hero p{
font-size:17px;color:var(--text-secondary);max-width:560px;
margin:0 auto 0;line-height:1.7;
}
@keyframes skShimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.skeleton-card{height:280px;border-radius:var(--radius-lg);background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-card) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:skShimmer 1.2s ease-in-out infinite;border:1px solid var(--border);box-shadow:var(--shadow-card);contain:layout style paint;break-inside:avoid;margin-bottom:12px}
@keyframes cardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.skeleton-nav-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-sm)}
.skeleton-nav-item .sk-dot{width:20px;height:20px;border-radius:var(--radius-s6);background:var(--bg-elevated)}
.hero-input-wrap{width:100%;position:relative}
.hero-input{
width:100%;padding:18px 60px 18px 52px;
border-radius:var(--radius-xl);
background:var(--bg-input);border:1.5px solid var(--border);
color:var(--text-primary);font-size:15px;font-family:var(--font-body);
outline:none;transition:var(--transition);
}
.hero-input:hover{border-color:var(--border-light);box-shadow:var(--shadow-xs)}
.hero-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim),0 4px 20px var(--accent-glow);background:var(--bg-card)}
.hero-input::placeholder{color:var(--text-muted);opacity:.7}
.hero-input-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.hero-input-btn{
position:absolute;right:8px;top:50%;transform:translateY(-50%);
width:40px;height:40px;border-radius:var(--radius-md);
background:var(--accent);border:none;cursor:pointer;
display:flex;align-items:center;justify-content:center;
color:var(--bg-primary);transition:var(--transition);
}
.hero-input-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-glow);transform:translateY(-50%) scale(1.05)}
.main-content{flex:1;padding:16px 24px 32px 24px}
.content-layout{display:flex;gap:24px;margin:0 auto}
.content-main{flex:1;min-width:0}
/* 分类栏 (sticky 横向) */
.category-bar{
position:sticky;top:0;z-index:50;
display:flex;align-items:center;gap:16px;
padding:8px 24px 8px 24px;
background:var(--navbar-bg);
border-bottom:1px solid var(--border);
backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.category-bar .hero-input-wrap{
flex-shrink:0;width:240px;
}
.category-bar .hero-input{
padding:8px 40px 8px 36px;font-size:13px;
border-radius:var(--radius-md);
}
.category-bar .hero-input-icon{left:12px;width:16px;height:16px}
.category-bar .hero-input-btn{width:32px;height:32px;right:4px;border-radius:var(--radius-sm)}
.category-bar .hero-input-btn svg{width:14px;height:14px}
.cat-nav{display:flex;gap:2px}
.cat-nav-horizontal{flex:1;min-width:0;display:flex;flex-direction:row;gap:4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;margin:0;cursor:grab;user-select:none}
.cat-nav-horizontal::-webkit-scrollbar{display:none}
.cat-nav-horizontal .cat-item{
white-space:nowrap;flex-shrink:0;
padding:8px 16px;border-radius:8px;
font-size:14px;font-weight:500;
color:var(--text-secondary);cursor:pointer;
transition:var(--transition);border:1px solid transparent;
background:transparent;
display:flex;align-items:center;gap:6px;
}
.cat-nav-horizontal .cat-item:hover{color:var(--text-primary);background:var(--bg-card);border-color:var(--border)}
.cat-nav-horizontal .cat-item.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent-dim)}
/* ===== AI 生成输入框（hero 下方 / 精致版） ===== */
.ai-gen-box{
max-width:720px;margin:28px auto 32px;padding:0;position:relative;
}
/* 外发光渐变环 */
.ai-gen-box::before{
content:'';position:absolute;inset:-3px;
border-radius:21px;padding:3px;
background:linear-gradient(135deg,var(--accent),var(--blue),#a78bfa,var(--accent));
-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
-webkit-mask-composite:xor;mask-composite:exclude;
opacity:0;transition:opacity .4s ease;
pointer-events:none;z-index:0;
}
.ai-gen-box:focus-within::before,
.ai-gen-box:hover::before{opacity:.35}
.ai-gen-box .gen-chat-card{
position:relative;z-index:1;
border-radius:12px;border:1.5px solid var(--border);
background:var(--bg-card);
box-shadow:0 2px 16px rgba(28,107,90,.05),0 1px 3px rgba(0,0,0,.04);
transition:box-shadow .3s,border-color .3s;
}
.ai-gen-box .gen-chat-card:focus-within{
border-color:var(--accent);
box-shadow:0 0 0 5px var(--accent-dim),0 4px 24px rgba(28,107,90,.08);
}
.ai-gen-box .gen-prompt-textarea{
font-size:16px;line-height:1.7;min-height:88px;
padding:2px 0;
}
.ai-gen-box .gen-prompt-textarea::placeholder{
color:var(--text-muted);opacity:.5;font-weight:400;
}
/* ref-chips 有图时才显示 */
.ai-gen-box .gen-ref-chips{border-top:none;margin-top:4px;padding-top:0;margin-bottom:0}
/* toolbar +号按钮 */
.ai-gen-box #aiGenRefAdd{transition:all .25s}
.ai-gen-box #aiGenRefAdd:hover{color:var(--accent);background:var(--accent-dim)}
/* toolbar tweaks */
.ai-gen-box .gen-chat-toolbar{margin-top:8px}
.ai-gen-box .gen-chat-send{
padding:0 18px;font-weight:600;font-size:14px;letter-spacing:.01em;
transition:all .25s cubic-bezier(.34,1.56,.64,1);
}
.ai-gen-box .gen-chat-send:hover:not(:disabled){
transform:translateY(-1px) scale(1.04);
box-shadow:0 6px 20px var(--accent-glow);
}
.ai-gen-box .gen-service-select{font-size:13px;font-weight:500}
/* 动态表单（宽高参数） */
.ai-gen-box .gen-dynamic-form{
display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;
}
.ai-gen-box .gen-dynamic-form:empty{display:none}
.ai-gen-box .gen-dynamic-form .gen-service-chip{margin:0}
.ai-gen-box .gen-dynamic-form .gen-input-chip{
display:flex;align-items:center;gap:5px;height:30px;padding:0 10px;
border-radius:8px;background:var(--bg-primary);color:var(--text-primary);
font-size:12px;white-space:nowrap;
}
.ai-gen-box .gen-dynamic-form .gen-input-chip input{
width:54px;border:none;background:transparent;color:var(--text-primary);
font-size:12px;text-align:center;outline:none;
}
.ai-gen-box .gen-dynamic-form .gen-input-chip input::-webkit-outer-spin-button,
.ai-gen-box .gen-dynamic-form .gen-input-chip input::-webkit-inner-spin-button{
-webkit-appearance:none;margin:0;
}

/* AI gen box loading bar */
.ai-gen-loading-bar{
height:2px;background:linear-gradient(90deg,var(--accent),#a78bfa,#f472b6,var(--accent));
background-size:200% 100%;animation:loadingShimmer 1.5s ease infinite;
border-radius:0 0 var(--radius-lg) var(--radius-lg);
}
@keyframes loadingShimmer{
0%{background-position:200% 0}
100%{background-position:-200% 0}
}

.cat-select{
padding:8px 32px 8px 14px;border-radius:8px;
font-size:13px;font-weight:500;
color:var(--text-secondary);cursor:pointer;
transition:var(--transition);border:1px solid var(--border);
background:transparent;
appearance:none;-webkit-appearance:none;-moz-appearance:none;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23949baf' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 10px center;
outline:none;flex-shrink:0;
}
.cat-select:hover{color:var(--text-primary);border-color:var(--accent);background-color:var(--bg-card)}
.cat-select:focus{color:var(--text-primary);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.cat-select option{background:var(--bg-card);color:var(--text-primary)}
.mobile-overlay{
position:fixed;inset:0;background:rgba(0,0,0,.35);
z-index:99;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
opacity:0;pointer-events:none;transition:opacity .25s ease;
-webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.mobile-menu-btn{
display:none;order:0;flex-shrink:0;
width:40px;height:40px;padding:0;border-radius:var(--radius-sm);
background:var(--bg-card);border:1px solid var(--border);
color:var(--text-primary);cursor:pointer;align-items:center;justify-content:center;
box-shadow:var(--shadow-xs);
}
.mobile-menu-btn .icon-close{display:none}
.prompt-grid{
column-count:8;
column-gap:12px;
}
@media(max-width:1920px){.prompt-grid{column-count:7}}
@media(max-width:1680px){.prompt-grid{column-count:6}}
@media(max-width:1440px){.prompt-grid{column-count:5}}
@media(max-width:1200px){.prompt-grid{column-count:4}}
@media(max-width:900px) {.prompt-grid{column-count:3}}
.load-more-wrap{column-span:all;display:flex;justify-content:center;padding:12px 0 0}
.load-more-wrap.done{display:none}
.load-more-btn{
padding:12px 48px;border:1.5px solid var(--border);border-radius:10px;
background:var(--bg-card);color:var(--text-secondary);
font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition);
}
.load-more-btn:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-xs)}
.load-more-btn.loading{pointer-events:none;opacity:.6}
.load-more-spinner{display:none;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
.load-more-btn.loading .load-more-spinner{display:inline-block}
.load-more-btn.loading .load-more-text{display:none}
.prompt-card{
background:var(--bg-card);border:1px solid var(--border);
border-radius:var(--radius-lg);padding:0;
overflow:visible;cursor:pointer;
transition:all .4s cubic-bezier(.34,1.56,.64,1);position:relative;
opacity:0;animation:cardIn .5s ease forwards;
display:flex;flex-direction:column;
box-shadow:var(--shadow-card);
break-inside:avoid;margin-bottom:12px;
}
/* 入场动画延迟改由 JS 按卡片序号生成内联 animation-delay（见 buildCardHTML），避免"全部"分类第10+张无延迟整批突现 */
.prompt-card::before{
content:'';position:absolute;inset:-1px;border-radius:inherit;
background:linear-gradient(135deg,var(--accent-dim),transparent 60%,var(--blue-dim));
opacity:0;z-index:-1;transition:opacity .4s ease;
}
@media(hover:hover){.prompt-card:hover{
border-color:transparent;transform:translateY(-6px);
box-shadow:var(--shadow-elevated);
}
.prompt-card:hover::before{opacity:1}}

.card-preview{
position:relative;overflow:hidden;
background:var(--bg-elevated);
border-radius:inherit;
}
@keyframes glowPulseCard{0%,100%{box-shadow:0 0 16px rgba(255,255,255,.03),0 0 40px rgba(255,255,255,.04),0 6px 24px rgba(0,0,0,.12)}50%{box-shadow:0 0 22px rgba(255,255,255,.06),0 0 60px rgba(255,255,255,.06),0 6px 28px rgba(0,0,0,.16)}}
.card-preview::before{content:'▶\00a0\00a0 制作';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.85);z-index:5;padding:10px 26px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;font-size:14px;font-weight:500;letter-spacing:.5px;opacity:0;pointer-events:none;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.25);box-shadow:0 0 16px rgba(255,255,255,.03),0 0 40px rgba(255,255,255,.04),0 6px 24px rgba(0,0,0,.12)}
@media(hover:hover){.prompt-card:hover .card-preview::before{opacity:1;transform:translate(-50%,-50%) scale(1);animation:glowPulseCard 2s ease-in-out infinite}
.prompt-card:hover .card-preview-inner{filter:brightness(.7)}
.prompt-card:hover .card-preview::after{opacity:1}
.card-preview-img{transition:transform .45s cubic-bezier(.25,.1,.25,1)}
.prompt-card:hover .card-preview-img{transform:scale(1.02)}}
/* 触摸端 :active 短反馈 */
.prompt-card:active .card-preview::before{opacity:.85;transform:translate(-50%,-50%) scale(1);transition:opacity .08s ease,transform .08s ease}
.prompt-card:active .card-preview-inner{filter:brightness(.75);transition:filter .08s ease}
.prompt-card:active .card-preview::after{opacity:1;transition:opacity .08s ease}
.prompt-card:active .card-preview-img{transform:scale(.97);transition:transform .12s ease}
.prompt-card:active{transform:scale(.97);transition:transform .12s ease}
.card-preview-inner{overflow:hidden;border-radius:inherit}
.card-preview::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.12) 88%,rgba(0,0,0,.25));pointer-events:none;z-index:2;opacity:0}
.card-preview-img{width:100%;height:auto;display:block;border-radius:inherit}
.card-category-badge{
position:absolute;top:12px;left:12px;
padding:4px 10px;border-radius:6px;
font-size:11px;font-weight:600;letter-spacing:.2px;
z-index:2;
background:rgba(0,0,0,.35);color:#fff;
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
border:1px solid rgba(255,255,255,.12);
}

.card-title{
position:absolute;bottom:0;left:0;right:0;
padding:36px 12px 10px;
background:linear-gradient(transparent, rgba(0,0,0,.65));
color:#fff;font-size:15px;font-weight:600;line-height:1.35;
z-index:3;pointer-events:none;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}


.card-author-pill{position:absolute;bottom:44px;left:10px;display:flex;align-items:center;gap:6px;z-index:4;pointer-events:none;padding:4px 10px 4px 4px;border-radius:20px;background:rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1)}
.card-author-avatar{width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.2);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.card-author-avatar .avatar-img{width:100%;height:100%;object-fit:cover}
.card-author-name{font-size:11px;color:rgba(255,255,255,.85);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80px}
.card-own-wrap{position:absolute;top:10px;right:10px;z-index:4}
.card-own-dot{
width:28px;height:28px;border-radius:10px;
background:var(--badge-bg);color:var(--text-secondary);
border:1px solid var(--border);
display:flex;align-items:center;justify-content:center;
cursor:pointer;box-shadow:var(--badge-shadow);
transition:transform .15s ease,background .15s ease;
}
.card-own-dot:hover{transform:scale(1.1);background:var(--bg-card);box-shadow:var(--shadow-card)}
.card-own-menu{
display:none;position:absolute;top:100%;right:0;margin-top:6px;
background:var(--bg-card);border:1px solid var(--border);
border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);
overflow:hidden;min-width:90px;white-space:nowrap;z-index:10;
}
.card-own-menu.show{display:block;animation:menuIn .15s ease}
@keyframes menuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.card-own-item{
padding:9px 16px;font-size:13px;color:var(--text-primary);cursor:pointer;
display:flex;align-items:center;gap:6px;transition:background .15s ease;
}
.card-own-item:hover{background:var(--bg-elevated)}
.card-own-item.del{color:var(--rose)}
.card-status-badge{
position:absolute;top:12px;right:12px;z-index:2;
padding:3px 10px;border-radius:10px;
font-size:10px;font-weight:600;letter-spacing:.2px;
pointer-events:none;
}
.badge-pending{
background:var(--amber-dim);color:var(--amber);
border:1px solid var(--amber-dim);
}
.badge-rejected{
background:var(--rose-dim);color:var(--rose);
border:1px solid var(--rose-dim);
}
.confirm-overlay{
position:fixed;inset:0;z-index:600;
background:var(--modal-overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
display:flex;align-items:center;justify-content:center;
opacity:0;pointer-events:none;transition:opacity .25s ease;
-webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.confirm-overlay.show{opacity:1;pointer-events:auto}
.confirm-box{
background:var(--bg-card);border:1px solid var(--border);
border-radius:var(--radius-lg);padding:28px 24px 20px;
width:380px;max-width:90vw;box-shadow:var(--shadow-elevated);
text-align:center;
opacity:0;transform:scale(.96) translateY(-8px);
transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.confirm-overlay.show .confirm-box{opacity:1;transform:scale(1) translateY(0)}
.confirm-box p{font-size:15px;color:var(--text-primary);margin:0 0 20px;line-height:1.6}
.confirm-btns{display:flex;gap:10px;justify-content:center}
.confirm-btn{
padding:9px 22px;border-radius:var(--radius-sm);border:none;font-size:14px;font-weight:500;
cursor:pointer;transition:var(--transition-fast);font-family:var(--font-body);
}
.confirm-btn-cancel{background:var(--bg-elevated);color:var(--text-secondary)}
.confirm-btn-cancel:hover{background:var(--border);color:var(--text-primary)}
.confirm-btn-danger{background:var(--rose);color:#ffffff}
.confirm-btn-danger:hover{filter:brightness(0.85);box-shadow:0 4px 14px var(--rose-dim)}
.confirm-btn-primary{background:var(--accent);color:#ffffff}
.confirm-btn-primary:hover{filter:brightness(0.9);box-shadow:0 4px 14px var(--accent-dim)}
.modal-overlay{
position:fixed;inset:0;z-index:550;
background:var(--modal-overlay-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
display:flex;align-items:center;justify-content:center;
opacity:0;pointer-events:none;transition:opacity .3s ease;
padding:20px;
-webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.modal-overlay.active{opacity:1;pointer-events:auto}
.modal{
background:var(--bg-secondary);border:1px solid var(--border);
border-radius:var(--radius-xl);padding:0;
width:100%;max-width:480px;
max-height:90vh;
display:flex;flex-direction:column;
transform:scale(.95) translateY(10px);
transition:transform .3s ease;
will-change:transform;
box-shadow:var(--shadow-elevated);
overflow:hidden;
}
.modal-overlay.active .modal{transform:scale(1) translateY(0)}
.modal-header{
display:flex;align-items:center;justify-content:space-between;
padding:24px 24px 12px;flex-shrink:0;
}
.modal-header h3{font-size:20px;font-weight:700;letter-spacing:-.3px}
.modal-close{
width:36px;height:36px;border-radius:var(--radius-sm);
display:flex;align-items:center;justify-content:center;
cursor:pointer;color:var(--text-muted);transition:var(--transition-fast);
background:none;border:none;
}
.modal-close:hover{background:var(--bg-primary);color:var(--text-primary);transform:rotate(90deg)}
.modal-body{padding:20px 24px 24px;overflow-y:auto;flex:1;min-height:0}
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.1px}
.form-input{
width:100%;padding:13px 16px;border-radius:var(--radius-md);
background:var(--bg-input);border:1.5px solid var(--border);
color:var(--text-primary);font-size:14px;font-family:var(--font-body);
outline:none;transition:var(--transition);
}
.form-input:hover{border-color:var(--border-light)}
.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim);background:var(--bg-card)}
.form-input::placeholder{color:var(--text-muted);opacity:.7}
.form-textarea{resize:vertical;min-height:100px;line-height:1.65;font-size:13px}
.form-row{display:flex;gap:12px}
.form-row .form-group{flex:1}
.modal-tabs{display:flex;border-bottom:1px solid var(--border);margin:0 24px 4px}
.modal-tab{flex:1;text-align:center;padding:10px;font-size:14px;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition);font-family:var(--font-body)}
.modal-tab:hover{color:var(--text-primary)}
.modal-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.modal-footer-text{text-align:center;font-size:12px;color:var(--text-muted);padding:0 24px 20px}
.modal-footer-text a{color:var(--accent);cursor:pointer;text-decoration:none}
.modal-footer-text a:hover{text-decoration:underline}
.form-select{
width:100%;padding:13px 38px 13px 16px;border-radius:var(--radius-md);
background:var(--bg-input);border:1.5px solid var(--border);
color:var(--text-primary);font-size:14px;font-family:var(--font-body);
outline:none;transition:var(--transition);cursor:pointer;
appearance:none;
background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat:no-repeat;background-position:right 14px center;
}
.form-select:hover{border-color:var(--border-light)}
.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim);background:var(--bg-card)}
.form-select option{background:var(--bg-secondary);color:var(--text-primary);padding:10px}
.btn-full{width:100%;padding:13px;font-weight:600;font-size:15px;border-radius:var(--radius-md);margin-top:4px}
.btn:disabled{opacity:.6;cursor:not-allowed}
.error-msg{display:none;padding:10px 14px;margin-bottom:12px;border-radius:var(--radius-sm);font-size:13px;color:var(--rose);background:var(--rose-dim);border:1px solid var(--rose-dim)}
.error-msg.show{display:block}
/* 编辑资料 */
.profile-avatar-area{position:relative;width:80px;height:80px;border-radius:50%;margin:0 auto 0;cursor:pointer;overflow:hidden;border:3px solid var(--border-light);transition:all .2s}
.profile-avatar-area:hover{border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-dim)}
.profile-avatar-letter{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),var(--blue))}
.profile-avatar-img-wrap{width:100%;height:100%}
.profile-avatar-img-wrap img{width:100%;height:100%;object-fit:cover}
.profile-avatar-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;opacity:0;transition:opacity .2s}
.profile-avatar-area:hover .profile-avatar-overlay{opacity:1}
.recharge-methods{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:6px;flex-wrap:wrap}
.recharge-method{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:var(--text-primary);white-space:nowrap;padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg-input)}
.recharge-method:hover{border-color:var(--border-light);background:var(--bg-card-hover)}
.recharge-method input[type=radio]{margin:0}
@media(max-width:480px){
.recharge-methods{flex-direction:column;align-items:stretch}
.recharge-method{justify-content:center}
.footer{padding:16px 12px;font-size:11px;gap:6px}
.footer-copy{font-size:11px}
}
.publish-modal .modal{max-width:560px}
.visibility-row{
display:flex;align-items:center;gap:10px;margin:20px 0;
padding:12px 16px;border-radius:var(--radius-md);
background:var(--bg-input);border:1px solid var(--border);
font-size:12px;color:var(--text-muted);
}
.vis-label{user-select:none;font-weight:500;font-size:13px;color:var(--text-secondary)}
.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.toggle-switch input{display:none}
.toggle-slider{
position:absolute;inset:0;background:var(--border-light);
border-radius:24px;cursor:pointer;transition:var(--transition);
}
.toggle-slider::before{
content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;
background:var(--bg-card);border-radius:50%;
transition:var(--transition);
box-shadow:var(--shadow-xs);
}
.toggle-switch input:checked+.toggle-slider{background:var(--accent)}
.toggle-switch input:checked+.toggle-slider::before{transform:translateX(20px)}
.char-count{font-size:12px;color:var(--text-muted);text-align:right;margin-top:4px}
.pub-image-area{position:relative;width:100%;min-height:100px;border-radius:var(--radius-md);overflow:hidden}
.pub-image-preview{position:relative;width:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border)}
.pub-image-preview img{width:100%;max-height:180px;object-fit:contain;display:block;background:var(--bg-input)}
.pub-image-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:none;background:var(--bg-card);color:var(--text-secondary);font-size:16px;line-height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);box-shadow:var(--shadow-xs)}
.pub-image-remove:hover{background:var(--rose)}
.pub-image-upload{
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
padding:28px 16px;border-radius:var(--radius-md);
border:2px dashed var(--border);cursor:pointer;
transition:var(--transition);color:var(--text-muted);
}
.pub-image-upload:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.pub-image-upload svg{width:24px;height:24px;opacity:.6}
.pub-image-upload span{font-size:13px;font-weight:500}
.pub-image-hint{font-size:11px!important;color:var(--text-muted)!important;font-weight:400!important;opacity:.7}
.gen-modal{z-index:500!important;align-items:center!important;justify-content:center;padding:0!important}
.gen-modal .modal{width:100%;max-width:960px;margin:0;border-radius:12px;border:1px solid var(--border);transform:translateY(20px);opacity:0;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .25s ease;box-shadow:0 12px 60px rgba(0,0,0,.18);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}
.gen-modal.active .modal{transform:translateY(0);opacity:1}
.gen-modal-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 20px;position:relative;flex-shrink:0}
.gen-modal-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0;justify-self:start}
.gen-handle{width:60px;height:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;justify-self:center}
.gen-handle-bar{width:40px;height:4px;background:var(--border);border-radius:2px}
.gen-modal-header .modal-close{justify-self:end;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);position:static;transform:none}
.gen-modal-header .modal-close:hover{background:var(--bg-primary);color:var(--text-primary)}
.gen-modal-body{flex:1;overflow-y:auto;padding:10px 24px;min-height:0}
.gen-input-panel{padding:16px 24px 24px;border-top:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}
.gen-chat-card{background:var(--bg-input);border:1.5px solid var(--border);border-radius:12px;padding:14px 14px 10px 18px;box-shadow:0 2px 12px rgba(0,0,0,.04);transition:box-shadow .2s,border-color .2s}
.gen-chat-card:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.gen-prompt-textarea{width:100%;border:none;background:transparent;color:var(--text-primary);font-size:15px;line-height:1.65;resize:none;min-height:60px;max-height:320px;outline:none;font-family:inherit;padding:0;margin:0;display:block}
.gen-chat-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:8px}
.gen-chat-tools{display:flex;align-items:center;gap:8px;flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;user-select:none}
.gen-chat-tools::-webkit-scrollbar{display:none}
.gen-chat-tool{width:36px;height:36px;border-radius:8px;border:none;background:var(--bg-primary);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}
.gen-chat-tool:hover{background:var(--bg-secondary);color:var(--accent)}
.gen-service-chip{position:relative;flex-shrink:0}
.gen-service-select{display:none}
/* Custom Select */
.custom-select{position:relative;flex-shrink:0;user-select:none}
.custom-select-btn{height:36px;padding:0 10px 0 12px;border:none;border-radius:999px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .18s ease;white-space:nowrap;line-height:1}
.custom-select-btn:hover{background:var(--border)}
.custom-select-btn .cs-label{color:var(--text-secondary);flex-shrink:0}
.custom-select-btn .cs-value{color:var(--text-primary)}
.custom-select-btn .cs-arrow{width:14px;height:14px;flex-shrink:0;color:var(--text-muted);transition:transform .2s ease;stroke-width:2.5}
.custom-select.open .cs-arrow{transform:rotate(180deg)}
.cs-global-dropdown{position:fixed;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.14);padding:4px;z-index:9999;overflow:hidden;animation:csFadeIn .12s ease}
@keyframes csFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.cs-option{padding:8px 12px;border-radius:7px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background .1s ease;white-space:nowrap}
.cs-option:hover{background:var(--bg-secondary)}
.cs-option.selected{color:var(--accent);font-weight:600;background:var(--accent-dim)}
.gen-cost-hint{font-size:12px;color:var(--text-muted);white-space:nowrap}
.gen-chat-send{height:36px;padding:0 12px;border-radius:10px;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:all .2s;flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.15);font-size:13px;font-weight:600;white-space:nowrap}
.gen-chat-send:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}
.gen-chat-send:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none;filter:none}
.gen-ref-chips{display:none;align-items:center;gap:6px;margin-top:8px;padding-top:6px;border-top:1px dashed var(--border);flex-wrap:wrap}
.gen-ref-chips.show{display:flex}
.gen-ref-chips-inner{display:flex;gap:6px;flex-wrap:wrap}
.gen-ref-chip{width:48px;height:48px;border-radius:10px;overflow:hidden;position:relative;border:1px solid var(--border);background:var(--bg-primary);flex-shrink:0;cursor:default}
.gen-ref-chip img{width:100%;height:100%;object-fit:cover}
.gen-ref-chip .gen-ref-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;background:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s}
.gen-ref-chip:hover .gen-ref-remove{opacity:1}
.gen-ref-add{width:48px;height:48px;border-radius:10px;border:1.5px dashed var(--border);background:var(--bg-primary);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}
.gen-ref-add:hover{border-color:var(--accent);color:var(--accent)}
.gen-loading{display:none;align-items:center;justify-content:center;gap:10px;padding:10px 14px;margin-bottom:10px;background:var(--bg-primary);border-radius:var(--radius-md);color:var(--text-muted);font-size:13px;border:1px solid var(--border)}
.gen-loading.show{display:flex}
.gen-loading-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:gen-spin .8s linear infinite}
@keyframes gen-spin{to{transform:rotate(360deg)}}
.gen-error{display:none;padding:12px 14px;background:var(--rose-dim);border:1px solid var(--rose-dim);border-radius:var(--radius-md);color:var(--rose);font-size:13px;margin-bottom:14px}
.gen-error.show{display:block}
.gen-result-area{margin-top:12px;display:none}
.gen-result-area.show{display:block}
.gen-result-img-wrap{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-input);border:1px solid var(--border);max-height:50vh;display:flex;align-items:center;justify-content:center}
.gen-result-img-wrap img{max-width:100%;max-height:50vh;display:block;object-fit:contain}
.gen-result-video-wrap{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-input);border:1px solid var(--border);max-height:50vh;display:flex;align-items:center;justify-content:center}
.gen-result-video-wrap video{max-width:100%;max-height:50vh;display:block;border-radius:var(--radius-md)}
.gen-result-audio-wrap{position:relative;border-radius:var(--radius-md);background:var(--bg-input);border:1px solid var(--border);padding:20px 16px;display:flex;align-items:center;justify-content:center}
.gen-result-audio-wrap audio{width:100%;max-width:400px}
.gen-result-actions{display:flex;gap:8px;margin-top:8px}
.gen-result-actions .btn{flex:1;font-size:12px}
.gen-taskbar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(120%);z-index:350;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.gen-taskbar.show{transform:translateX(-50%) translateY(0)}
.gen-taskbar-inner{display:flex;align-items:center;gap:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:4px 10px 4px 12px;box-shadow:0 6px 24px rgba(0,0,0,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;min-width:220px;max-width:360px;position:relative;overflow:hidden;transition:all .25s}
.gen-taskbar-inner:hover{box-shadow:0 8px 32px rgba(0,0,0,.14);border-color:var(--accent)}
.gen-taskbar-icon{width:22px;height:22px;border-radius:6px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gen-taskbar-icon svg{width:12px;height:12px}
.gen-taskbar-thumb{width:22px;height:22px;border-radius:5px;overflow:hidden;flex-shrink:0;border:1px solid var(--border)}
.gen-taskbar-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gen-taskbar-info{flex:1;min-width:0}
.gen-taskbar-title{font-size:11px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.gen-taskbar-status{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.gen-taskbar-pulse{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);opacity:0;transition:opacity .3s}
.gen-taskbar-pulse.active{opacity:1;animation:genTbPulse .8s ease-in-out infinite}
@keyframes genTbPulse{0%,100%{opacity:.2}50%{opacity:1}}
.gen-taskbar-close{width:20px;height:20px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;line-height:1}
.gen-taskbar-close:hover{background:var(--bg-primary);color:var(--text-primary)}
.gen-modal .gen-dynamic-form{display:flex;align-items:center;gap:8px;flex-shrink:0}.gen-modal .gen-dynamic-form:empty{display:none}.gen-modal .gen-dynamic-form .gen-service-chip{margin:0}.gen-modal .gen-dynamic-form .gen-input-chip{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:13px;white-space:nowrap}.gen-modal .gen-dynamic-form .gen-input-chip input{width:60px;border:none;background:transparent;color:var(--text-primary);font-size:13px;text-align:center;outline:none}.gen-modal .gen-dynamic-form .gen-input-chip input::-webkit-outer-spin-button,.gen-modal .gen-dynamic-form .gen-input-chip input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.toast-container{position:fixed;top:80px;right:24px;z-index:700;display:flex;flex-direction:column;gap:8px}
.toast{
padding:12px 20px;border-radius:var(--radius-md);
background:var(--bg-card);border:1px solid var(--border);
box-shadow:var(--shadow-elevated);
font-size:14px;color:var(--text-primary);
display:flex;align-items:center;gap:10px;
animation:toastIn .4s cubic-bezier(.34,1.56,.64,1) both;
min-width:240px;backdrop-filter:blur(12px);
}
.toast.success,.toast.error,.toast.warning{border-color:var(--accent-glow);background:linear-gradient(135deg,var(--accent-dim),var(--bg-card))}
.toast.success .toast-icon,.toast.error .toast-icon,.toast.warning .toast-icon{color:var(--accent)}
.toast.info{border-color:var(--border);background:var(--bg-card)}
.toast.info .toast-icon{color:var(--text-secondary)}
.toast.leaving{animation:toastOut .3s ease both}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes toastOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(40px)}}
.footer{
position:relative;z-index:2;
padding:32px 32px;
text-align:center;font-size:13px;color:var(--text-muted);
display:flex;flex-wrap:wrap;gap:4px 16px;justify-content:center;align-items:center;
}
.footer a{color:var(--text-secondary);transition:var(--transition-fast);cursor:pointer;text-decoration:none;white-space:nowrap;font-weight:500}
.footer a:hover{color:var(--accent)}
.footer-copy{color:var(--text-muted);font-size:12px;white-space:nowrap;opacity:.9}
.footer-divider{width:1px;height:12px;background:var(--border);display:inline-block;opacity:.7}
.info-popup-overlay{
position:fixed;inset:0;
background:var(--modal-overlay-bg);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:650;
display:flex;align-items:center;justify-content:center;
opacity:0;pointer-events:none;transition:opacity .25s ease;
-webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.info-popup-overlay.show{opacity:1;pointer-events:auto}
.info-popup{
background:var(--bg-card);border:1px solid var(--border);
border-radius:var(--radius-xl);width:440px;max-width:92vw;
max-height:80vh;display:flex;flex-direction:column;
box-shadow:var(--shadow-elevated);
opacity:0;transform:scale(.92) translateY(16px);
transition:opacity .25s ease, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.info-popup-overlay.show .info-popup{opacity:1;transform:scale(1) translateY(0)}
.info-popup-header{
display:flex;align-items:center;justify-content:space-between;
padding:16px 20px 10px;border-bottom:1px solid var(--border);
}
.info-popup-header h4{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}
.info-popup-close{
background:none;border:none;color:var(--text-muted);
cursor:pointer;padding:0;line-height:1;
transition:var(--transition-fast);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;
}
.info-popup-close:hover{color:var(--text-primary);background:var(--bg-primary);transform:rotate(90deg)}
.info-popup-body{
padding:16px 20px 20px;overflow-y:auto;flex:1;
font-size:14px;color:var(--text-primary);line-height:1.8;
white-space:pre-wrap;word-break:break-word;
}
@media(max-width:1200px){
.main-area{padding-right:0}
}
@media(max-width:900px){
.main-area{padding-right:0}
.content-layout{flex-direction:column}
.category-bar{padding:8px 16px 8px 16px;gap:12px}
.category-bar .hero-input-wrap{width:180px}
.cat-nav-horizontal .cat-item{padding:6px 12px;font-size:13px}
}
@media(max-width:768px){
.sidebar{width:200px}
.main-area{margin-left:200px;padding-right:0;box-sizing:border-box}
.hero{padding:32px 16px 16px 16px}
.hero h1{font-size:32px}
.ai-gen-box{max-width:100%;margin:20px 0 24px}
.ai-gen-box .gen-prompt-textarea{font-size:15px;min-height:64px}
.ai-gen-box .gen-chat-toolbar{margin-top:6px}
.ai-gen-box .gen-dynamic-form{gap:4px}
.main-content{padding:16px 16px 40px 16px}
.modal-overlay{padding:16px;align-items:center;backdrop-filter:none;-webkit-backdrop-filter:none}
.modal{max-height:90vh;border-radius:var(--radius-xl)}
.modal-header{padding:18px 18px 8px}
.modal-header h3{font-size:18px}
.modal-body{padding:16px 18px 20px;font-size:14px}
.form-group{margin-bottom:12px}
.form-row{flex-direction:column;gap:0}
.publish-modal .modal{max-width:100%}
.user-dropdown{left:12px}
.gen-modal{padding:0!important;align-items:flex-end!important;transition:opacity .25s ease!important}
.gen-modal .modal{border-radius:12px 12px 0 0;max-height:92vh;border:none;border-top:1px solid var(--border);transform:translateY(100%);opacity:1;box-shadow:0 -10px 60px rgba(0,0,0,.15);transition:transform .35s cubic-bezier(.25,.8,.25,1);will-change:transform}
.gen-modal.active .modal{transform:translateY(0)}
.gen-modal-header{padding:6px 16px}
.gen-modal-body{padding:6px 16px}
.gen-input-panel{padding:12px 16px 20px}
.gen-chat-card{border-radius:12px;padding:12px 12px 8px 16px}
.gen-modal-title{font-size:14px}
@media(max-width:640px){
.sidebar{transform:translateX(-100%);transition:transform .3s ease;z-index:100}
.sidebar.open{transform:translateX(0)}
.main-area{margin-left:0;padding-right:0}
.user-dropdown{left:8px}
.mobile-menu-btn{display:flex}
.sidebar.open ~ .mobile-overlay{opacity:1;pointer-events:auto}
body.sidebar-open .mobile-menu-btn{display:none}
.prompt-grid{column-count:2;column-gap:8px}
.hero-input{padding:10px 44px 10px 34px;font-size:13px}
.hero-input-icon{left:10px;width:16px;height:16px}
.hero-input-btn{width:30px;height:30px;right:4px}
  /* 手机端分类栏：搜索+热门下拉第一行，分类第二行 */
  .category-bar{padding:10px 16px;gap:8px;flex-wrap:wrap}
  .category-bar .cat-select{order:1;flex-shrink:0;height:40px;padding:0 28px 0 10px;font-size:13px;border-radius:8px}
  .category-bar .custom-select{order:1}
  .category-bar .hero-input-wrap{flex:1 1 0;min-width:0;order:2}
  .category-bar .cat-nav-horizontal{order:3;flex:1 1 100%;overflow-x:auto}
  .category-bar .cat-nav-horizontal::-webkit-scrollbar{display:none}
  .category-bar .hero-input{padding:10px 44px 10px 38px;font-size:14px}
  .category-bar .hero-input-icon{left:14px}
  .category-bar .hero-input-btn{width:36px;height:36px;right:6px}
  .category-bar .hero-input-btn svg{width:16px;height:16px}
  .cat-nav-horizontal .cat-item{padding:6px 12px;font-size:13px}
  .ai-gen-box{margin:16px 0 20px}
.ai-gen-box .gen-prompt-textarea{font-size:14px;min-height:56px}
.ai-gen-box .gen-chat-toolbar{gap:6px;margin-top:4px}
.ai-gen-box .gen-dynamic-form .gen-input-chip{padding:0 8px;height:28px;font-size:11px}
.ai-gen-box .gen-dynamic-form .gen-input-chip input{width:44px;font-size:11px}
.ai-gen-box .gen-service-select{font-size:12px}
.modal-overlay{padding:12px;align-items:center;backdrop-filter:none;-webkit-backdrop-filter:none}
.modal{max-height:90vh;border-radius:var(--radius-xl)}
.modal-header{padding:14px 14px 6px}
.modal-header h3{font-size:17px}
.modal-body{padding:12px 14px 16px}
.form-group{margin-bottom:10px}
.publish-modal .modal{max-width:100%}
.publish-modal .modal-header{padding:10px 12px 4px}
.publish-modal .modal-header h3{font-size:15px}
.publish-modal .modal-body{padding:8px 12px 12px}
.publish-modal .form-group{margin-bottom:8px}
.publish-modal .form-label{font-size:12px;margin-bottom:4px}
.publish-modal .form-input{padding:9px 12px;font-size:13px}
.publish-modal .form-textarea{min-height:80px;font-size:12px}
.publish-modal .form-select{padding:9px 34px 9px 12px;font-size:13px}
.publish-modal .visibility-row{margin:10px 0;padding:8px 12px;font-size:11px}
.publish-modal .vis-label{font-size:12px}
.publish-modal .pub-image-upload{padding:18px 12px;gap:4px}
.publish-modal .pub-image-upload span{font-size:12px}
.publish-modal .pub-image-preview img{max-height:120px}
.publish-modal .btn-full{padding:10px;font-size:14px;margin-top:2px}
.publish-modal .char-count{font-size:11px}
.footer{padding:20px 16px;font-size:12px;flex-direction:column;gap:8px;margin-left:0}
.footer-copy{white-space:normal}
}
@media(max-width:420px){
.category-bar{padding:8px 12px;gap:6px;flex-wrap:wrap}
  .category-bar .cat-select{order:1;flex-shrink:0;height:40px;padding:0 24px 0 8px;font-size:12px;border-radius:8px}
  .category-bar .custom-select{order:1}
  .category-bar .hero-input-wrap{flex:1 1 0;min-width:0;order:2}
.category-bar .cat-nav-horizontal{order:3;flex:1 1 100%;overflow-x:auto}
.category-bar .hero-input{padding:8px 40px 8px 34px;font-size:13px}
.category-bar .hero-input-btn{width:32px;height:32px;right:4px}
.category-bar .hero-input-icon{left:12px}
.cat-nav-horizontal .cat-item{padding:5px 10px;font-size:12px}
}