.overlay-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200}
.overlay-backdrop.open{display:block;animation:fadeIn .2s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* 用户菜单打开的各侧边栏统一宽度（含可用模型、素材库等） */
:root{--overlay-side-width:640px}
/* 侧栏：毛玻璃（blur 叠在遮罩后的主界面上） */
.overlay-panel{display:none;position:fixed;top:0;right:0;bottom:0;width:var(--overlay-side-width);max-width:100vw;background:color-mix(in srgb,var(--bg2) 44%,transparent);border-left:1px solid var(--border);z-index:210;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,.25);transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(22px) saturate(1.12);-webkit-backdrop-filter:blur(22px) saturate(1.12)}
/* 浅色：侧栏实底白色，不用半透明+毛玻璃（否则会透成灰感） */
[data-theme="light"] .overlay-panel{background:var(--bg2);backdrop-filter:none;-webkit-backdrop-filter:none}
.overlay-panel.open{display:flex;transform:translateX(0);animation:slideIn .25s cubic-bezier(.4,0,.2,1)}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}

/* 居中弹窗样式（登录弹窗使用） */
.overlay-panel--center{top:50%;left:50%;right:auto;bottom:auto;width:480px;max-width:92vw;max-height:90vh;border-left:none;border:1px solid var(--border);border-radius:16px;transform:translate(-50%,-50%) scale(0.95);box-shadow:0 24px 80px rgba(0,0,0,.35);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1);opacity:0;overflow:hidden}
.overlay-panel--center.open{transform:translate(-50%,-50%) scale(1);opacity:1;animation:none}
.overlay-panel--center .ov-body{max-height:calc(90vh - 60px)}
.overlay-panel--center .ov-header{border-radius:16px 16px 0 0}

#overlay-assets .asset-wrap{padding:20px;max-width:none;margin:0}
#overlay-assets .asset-wrap h1{display:none}
#overlay-assets .asset-card{padding:16px}
#overlay-assets .asset-table th,#overlay-assets .asset-table td{padding:6px 10px;font-size:calc(12 * 1rem / 16)}

.ov-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0;background:color-mix(in srgb,var(--bg3) 38%,transparent);backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08)}
[data-theme="light"] .ov-header{background:var(--bg2);backdrop-filter:none;-webkit-backdrop-filter:none}
.ov-header h3{font-size:calc(16 * 1rem / 16);font-weight:700;color:var(--text);margin:0}
.ov-close{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--text3);font-size:calc(20 * 1rem / 16);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .12s}
.ov-close:hover{background:var(--bg3);color:var(--text)}
[data-theme="light"] .ov-close{transition:transform .14s ease,box-shadow .14s ease,background .12s,color .12s}
[data-theme="light"] .ov-close:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(14,18,24,.06),0 1px 0 rgba(255,255,255,.88) inset}

.ov-body{flex:1;overflow-x:hidden;overflow-y:auto;padding:16px 20px}

#overlay-login .ov-login-contact{margin-top:18px;font-size:13px;color:var(--text3);line-height:1.5;text-align:center}
#overlay-login .ov-login-contact-btn{padding:0;border:none;background:none;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px}
#overlay-login .ov-login-contact-btn:hover{opacity:0.9}
#overlay-login .ov-login-contact-hint{color:var(--text3);font-size:12px;margin-left:2px}
#overlay-login .ov-login-notice{margin-top:10px;font-size:11px;color:var(--text3);line-height:1.55;text-align:center}

/* 登录弹窗紧凑布局 */
.ov-body--login{padding:16px 24px !important}
.login-wechat-section{text-align:center;margin-bottom:8px}
.login-qr-container{margin-bottom:4px;min-height:40px;overflow:hidden;position:relative;width:100%;display:flex;justify-content:center;height:285px}
.login-qr-container #wechat-wx-login-container{width:280px;transform-origin:top center;transform:scale(0.9)}
.login-qr-container #wechat-wx-login-container iframe{border:none;display:block}
.login-status-text{color:var(--text3);font-size:13px;margin-bottom:4px;min-height:20px}
.login-refresh-btn{font-size:12px}

.login-divider{display:flex;align-items:center;margin:14px 0}
.login-divider-line{flex:1;height:1px;background:var(--border)}
.login-divider-text{padding:0 12px;color:var(--text3);font-size:12px;white-space:nowrap}

.login-key-section{text-align:center}
.login-key-title{color:var(--text3);font-size:13px;margin:0 0 12px}
.login-key-input-row{display:flex;gap:8px;max-width:400px;margin:0 auto}
.login-key-input-row .input{flex:1}

.login-bind-section{display:none;text-align:center;margin-top:14px;padding:14px;background:var(--bg2);border-radius:8px}
.login-bind-success{color:var(--accent2);font-size:14px;margin:0 0 10px}
.login-bind-msg{color:var(--text3);font-size:13px;margin:0 0 10px}
.login-bind-error{color:var(--red);font-size:12px;display:none;margin-top:6px}
.login-bind-hint{color:var(--text3);font-size:12px;margin:8px 0 0}
.login-bind-link{color:var(--accent);background:none;border:none;cursor:pointer;text-decoration:underline;font:inherit}
.login-bind-link--logout{color:var(--red)}

/* 绑定Key弹窗样式 */
.ov-body--bind{padding:24px 28px !important;text-align:center}
.bind-desc{font-size:14px;color:var(--text1);margin:0 0 18px;line-height:1.6}
.bind-hint{font-size:12px;color:var(--accent);background:rgba(0,188,212,0.08);padding:8px 12px;border-radius:6px;margin:0 0 18px;line-height:1.5}
.bind-input-row{display:flex;gap:8px;max-width:380px;margin:0 auto 12px}
.bind-input-row .input{flex:1}
.bind-error{color:var(--red);font-size:12px;margin-bottom:12px}
.bind-actions{display:flex;gap:10px;justify-content:center;margin-bottom:16px}
.bind-actions .btn{width:auto;min-width:140px}
.bind-actions .btn-text{color:var(--text3);font-size:13px}
.bind-contact{font-size:12px;color:var(--text3);margin:0}
.bind-contact-btn{color:var(--accent);background:none;border:none;cursor:pointer;text-decoration:underline;font:inherit}

.overlay-panel .acct-hero{margin-bottom:16px}
.overlay-panel .acct-row2{margin-bottom:16px}
.overlay-panel .acct-row2{grid-template-columns:1fr}
.overlay-panel .task-toolbar{padding:0;margin:0 0 16px;background:transparent;border:none}
.overlay-panel .task-list{max-height:none;overflow:visible;padding:0 0 8px}
.overlay-panel .task-card{margin-bottom:12px}
