/* ===================== 基础样式 ===================== */
/* 包含：:root 变量、通配/标签选择器、滚动条、通用工具类（.scrim/.toast/.chip/.skeleton/.mini/.btn-* 等）、
   通用 @keyframes（spin/fadeUp/scaleIn/rippleSpread/skeleton/toastIc 等）、
   @media (prefers-reduced-motion:reduce)、@supports (safe-area)、暗色主题、文本溢出/焦点/ripple 等通用工具 */

:root{
  
  --md-primary:#8B5CF6; --md-on-primary:#FFFFFF;
  --md-primary-container:#EDE9FE; --md-on-primary-container:#5B21B6;
  
  --brand-cyan:#A78BFA; --brand-cyan-soft:#F5F3FF;
  --grad-primary:linear-gradient(135deg,#8B5CF6,#A78BFA);
  --grad-primary-hover:linear-gradient(135deg,#7C3AED,#8B5CF6);
  --grad-primary-soft:linear-gradient(135deg,var(--md-primary-container),var(--brand-cyan-soft));
  
  --md-secondary:#C4B5FD; --md-on-secondary:#3C1670;
  --md-secondary-container:#F3E8FF; --md-on-secondary-container:#5B21B6;
  
  --md-surface:#FFFFFF; --md-surface-dim:#E5DEF5;
  --md-surface-container:#FFFFFF; --md-surface-container-low:#FBFAFF;
  --md-surface-container-high:#EFE8FA; --md-surface-container-highest:#E2D8F4;
  --md-outline:#7C6FA8; --md-outline-var:#C9BBE8;
  
  --md-on-surface:#1B2733; --md-on-surface-variant:#5F5878;
  
  --md-error:#E5484D; --md-on-error:#FFF;
  --md-error-container:#FDE4E4; --md-on-error-container:#8C1A1F;
  --md-ok:#12A150; --md-on-ok:#FFF;
  --md-ok-container:#D3F5E0; --md-on-ok-container:#053D22;
  --md-warn:#F57B00; --md-on-warn:#FFF;
  --md-warn-container:#FFF3E0; --md-on-warn-container:#5C2D00;
  --md-info:#0EA5E9; --md-on-info:#FFF;
  --md-info-container:#E0F2FE; --md-on-info-container:#075985;
  
  --md-vip:#F9D048; --md-on-vip:#3C2000; --md-vip-container:#FEF3C7;
  
  --md-scrollbar:#DCD1F5; --md-scrollbar-hover:#C4B5FD;
  
  --shadow-rgb:91,64,240;
  
  --primary:var(--md-primary); --primary-2:#7C3AED; --primary-soft:var(--md-primary-container);
  --ink:#1B2733; --muted:#5F5878; --muted-2:#9A90B3; --line:var(--md-outline-var); --line-2:var(--md-surface-container-high);
  --md-ink:var(--ink); --md-muted:var(--muted); --md-muted-2:var(--muted-2);
  --ok:var(--md-ok); --err:var(--md-error); --warn:var(--md-warn);
  --bg:linear-gradient(180deg,#F8F5FF 0%,#EFE7FC 100%); --card:var(--md-surface-container);
  --radius:18px; --radius-sm:14px; --radius-lg:26px;
  --sidebar-w:80px; --mobile-sidebar-w:240px;
  --shadow-sm:0 1px 2px rgba(var(--shadow-rgb),.06),0 1px 3px rgba(var(--shadow-rgb),.05);
  --shadow:0 2px 6px rgba(var(--shadow-rgb),.08),0 6px 16px rgba(var(--shadow-rgb),.06);
  --shadow-lg:0 6px 20px rgba(var(--shadow-rgb),.12),0 12px 36px rgba(var(--shadow-rgb),.10);
  --shadow-brand:0 8px 20px -6px rgba(139,92,246,.45);
  --shadow-brand-hover:0 10px 24px -6px rgba(139,92,246,.55);
  --shadow-brand-press:0 4px 14px -2px rgba(139,92,246,.4);
  --shadow-error:0 8px 20px -6px rgba(229,72,77,.45);
  --shadow-error-hover:0 10px 24px -6px rgba(229,72,77,.55);
  --brand-rgb:139,92,246;
  --error-rgb:229,72,77;
  
  --md-rs-full:28px; --md-rs-lg:26px; --md-rs-md:22px; --md-rs-sm:14px; --md-rs-xs:10px;
  
  --md-elevation-1:0 1px 2px rgba(var(--shadow-rgb),.12),0 1px 3px rgba(var(--shadow-rgb),.08);
  --md-elevation-2:0 2px 6px rgba(var(--shadow-rgb),.12),0 4px 12px rgba(var(--shadow-rgb),.08);
  --md-elevation-3:0 4px 12px rgba(var(--shadow-rgb),.15),0 8px 24px rgba(var(--shadow-rgb),.10);
}
*{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

*{-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:"Roboto","PingFang SC","Microsoft YaHei",-apple-system,system-ui,sans-serif;
  color:var(--ink); background:var(--bg); -webkit-font-smoothing:antialiased;
  overflow:hidden; font-size:14px; line-height:1.5;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}
svg{display:block}

.chip{font-size:12.5px;font-weight:500;color:var(--muted);background:transparent;border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);
  padding:6px 14px;border-radius: 14px;
  border-radius:var(--md-rs-sm);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;
  height:32px}


.chip > * + *{margin-left:5px}
.chip svg{width:15px;height:15px}
.chip.active{color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}

.mini{border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);background:transparent;color:var(--ink);font-size:13px;font-weight:500;
  padding:7px 14px;border-radius: 28px;
  border-radius:var(--md-rs-full);transition:all .15s;display:inline-flex;align-items:center;
  height:36px;line-height:1}


.mini > * + *{margin-left:4px}
.mini svg{width:15px;height:15px}
.mini:hover{background:var(--md-surface-container-high)}
.mini.danger:hover{color:var(--err);background:var(--md-error-container);border-color:transparent}
.mini.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.mini.ghost:hover{background:var(--md-surface-container-high)}

.scrim{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.32);opacity:0;
  pointer-events:none;transition:opacity .25s;z-index:45}
.scrim.show{opacity:1;pointer-events:auto}

.btn-ghost{background:transparent;color:var(--md-primary);border-radius:20px}
.btn-ghost:hover{background: #EDE9FE;
  background:var(--md-primary-container);}

.btn-conf{background:var(--grad-primary);color:var(--md-on-primary);box-shadow:var(--shadow-brand);border-radius:20px}
.btn-conf:hover{background:var(--grad-primary-hover);box-shadow:var(--shadow-brand-hover);transform:translateY(-1px)}
.btn-conf:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-conf.danger{background:var(--md-error);box-shadow:var(--shadow-error)}
.btn-conf.danger:hover{background:var(--md-error);filter:brightness(1.05);box-shadow:var(--shadow-error-hover);transform:translateY(-1px)}
.btn-ghost:active{background: #EDE9FE;
  background:var(--md-primary-container);transform:scale(.97)}
.btn-conf:active{transform:translateY(0) scale(.97)}
.btn-conf.danger:active{transform:scale(.97)}

.toast{position:fixed;top:20px;left:50%;transform:translate(-50%,-20px);background: #FFFFFF;
  background:var(--md-surface);color:var(--ink);
  padding:12px 20px;border-radius:var(--radius);font-size:13.5px;font-weight:600;z-index:2000;display:flex;align-items:center;
  max-width:calc(100vw - 28px);box-sizing:border-box;
  box-shadow:var(--shadow-lg);opacity:0;transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1);
  border-left: 4px solid #8B5CF6;
  border-left:4px solid var(--md-primary);pointer-events:none}


.toast > * + *{margin-left:8px}
.toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
/* ===================== Toast 颜色随主题色 ===================== */
/* 成功消息使用主题色（--md-primary），随用户切换主题动态变化；
   错误消息仍用红色（--err），保持错误信号的明确性。 */
.toast.ok{border-left-color: #8B5CF6;
  border-left-color:var(--md-primary);}.toast.ok .ic{color:var(--md-primary)}
.toast.err{border-left-color:var(--err)}.toast.err .ic{color:var(--err)}
.toast .ic{width:17px;height:17px;flex:none}

.btn-copy{border:none;border-radius:20px;padding:0 16px;height:38px;font-size:12.5px;font-weight:600;color:var(--md-on-primary);
  background:var(--grad-primary);display:inline-flex;align-items:center;flex:none;
  transition:all .15s;white-space:nowrap;line-height:1;box-shadow:var(--shadow-brand)}


.btn-copy > * + *{margin-left:5px}
.btn-copy:hover{background:var(--grad-primary-hover);box-shadow:var(--shadow-brand-hover);transform:translateY(-1px)}
.btn-copy:active{transform:translateY(0) scale(.97);box-shadow:var(--shadow-brand)}
.btn-copy svg{width:14px;height:14px}

@keyframes scaleIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}

@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.modal,.menu,.toast{border-radius: 26px;
  border-radius:var(--md-rs-lg);}

.tb-titles b,.tb-titles small,.ttl,.card .ttl,.modal h3,
.p-head h2,.p-head .p-sub,.gate h2,.k-name,.k-doc,.limit-name,.share-note,.fmt-lock{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

input::placeholder,textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
input,textarea,.sel-doc,.search-overlay-field input{max-width:100%}

button,.btn-new,.btn-multi,.btn-ghost,.btn-conf,.btn-copy,.d-save,.ai-bar button,.gate a,
.ai-clear,.msg-acts button,.chip,.seg button{
  white-space:nowrap}
.m-acts button,.btn-new,.btn-multi,.btn-ghost,.btn-conf,.btn-copy,.d-save,.ai-bar button,.gate a,
.ai-clear,.msg-acts button,.chip,.seg button{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;min-width:0}

.btn-new svg,.btn-multi svg,.ai-bar button svg,.gate a svg{flex:none}
.btn-new span{overflow:hidden;text-overflow:ellipsis;min-width:0}

input:focus-visible,select:focus-visible,textarea:focus-visible,
.modal input:focus-visible,.modal select:focus-visible,.modal textarea:focus-visible,
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,
.search-overlay-field input:focus-visible,.ac-sel:focus-visible,.sel-doc:focus-visible,
.copy-row input:focus-visible,.d-body textarea:focus-visible,.ai-doc-sel select:focus-visible,
.fmt-link input:focus-visible,.ai-input-wrap textarea:focus-visible{outline:none}

.btn-new:focus-visible,
.btn-conf:focus-visible,
.btn-ghost:focus-visible,
.btn-copy:focus-visible,
.d-save:focus-visible,
.fab-main:focus-visible,
.btn-multi:focus-visible,
.mini:focus-visible,
.c-act:focus-visible,
.d-close:focus-visible,
.m-close:focus-visible,
.pp-close:focus-visible,
.ai-send:focus-visible,
.ai-expand:focus-visible,
.ai-pick:focus-visible,
.ai-clear:focus-visible,
.ai-doc-btn:focus-visible,
.sb-item:focus-visible,
.ftab:focus-visible,
.seg button:focus-visible,
.row-acts a:focus-visible,
.grp-item:focus-visible,
.grp-add-bottom:focus-visible,
.grp-edit-bottom:focus-visible,
.grp-del:focus-visible,
.grp-rename:focus-visible,
.split-menu button:focus-visible{
  outline:2.5px solid var(--md-primary);
  outline-offset:2px;
  border-radius:9px;
}

.c-act:focus-visible,
.d-close:focus-visible,
.m-close:focus-visible,
.pp-close:focus-visible,
.ai-send:focus-visible,
.ai-expand:focus-visible,
.fab-main:focus-visible,
.btn-new:focus-visible,
.btn-conf:focus-visible,
.btn-ghost:focus-visible,
.btn-copy:focus-visible,
.d-save:focus-visible,
.btn-multi:focus-visible,
.mini:focus-visible{
  outline-offset:3px;
}

.c-act svg,
.d-close svg,
.m-close svg,
.pp-close svg,
.ai-expand svg,
.ai-pick-ic svg,
.ai-doc-btn svg,
.ai-clear svg,
.grp-del svg,
.row-acts a::before{
  transition:transform .18s cubic-bezier(.34,1.56,.64,1);
}
.c-act:hover svg{transform:scale(1.12)}
.d-close:hover svg,
.m-close:hover svg,
.pp-close:hover svg{transform:scale(1.1) rotate(0deg)}
.ai-expand:hover svg{transform:scale(1.12)}
.ai-pick:hover .ai-pick-ic svg{transform:scale(1.1)}
.ai-clear:hover svg{transform:scale(1.12)}
.grp-del:hover svg{transform:scale(1.15)}
.grp-rename:hover svg{transform:scale(1.15)}

.btn-new, .btn-conf, .btn-ghost, .btn-copy, .d-save, .fab-main, .btn-multi, .ai-send,
.ai-doc-btn, .ai-pick, .ai-clear, .mini, .c-act, .row-acts a,
.modal .m-acts button, .split-menu button, .gate a, .grp-add-bottom, .grp-edit-bottom, .grp-del,
.d-expand, .d-close, .d-tool{
  position:relative;overflow:hidden;
}
.ripple{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.45);
  pointer-events:none;transform:scale(0);
  animation:rippleSpread .55s cubic-bezier(.2,.8,.2,1) forwards;
}

.btn-new.outline .ripple,
.btn-ghost .ripple,
.btn-multi .ripple,
.mini .ripple,
.c-act .ripple,
.row-acts a .ripple,
.ai-pick .ripple,
.split-menu button .ripple,
.d-expand .ripple,
.d-close .ripple,
.d-tool .ripple{
  background:rgba(var(--brand-rgb),.22);
}
.ai-clear .ripple{background:rgba(var(--error-rgb),.22)}
@keyframes rippleSpread{
  to{transform:scale(2.4);opacity:0}
}

.is-loading{
  pointer-events:none;color:transparent!important;
  position:relative;opacity:.85;
}
.is-loading::after{
  content:'';position:absolute;top:50%;left:50%;
  width:16px;height:16px;margin:-8px 0 0 -8px;
  border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff;border-radius:50%;
  animation:spin .6s linear infinite;
}

.btn-new.outline.is-loading::after,
.btn-ghost.is-loading::after,
.btn-multi.is-loading::after,
.mini.is-loading::after,
.d-tool.is-loading::after{
  border-color:rgba(var(--brand-rgb),.25);
  border-top-color: #8B5CF6;
  border-top-color:var(--md-primary);
}
@keyframes spin{to{transform:rotate(360deg)}}

.btn-new:disabled, .btn-conf:disabled, .btn-ghost:disabled, .btn-copy:disabled,
.d-save:disabled, .fab-main:disabled, .btn-multi:disabled, .mini:disabled,
.ai-send:disabled, .ai-doc-btn:disabled, .btn-new[disabled]{
  opacity:.5;cursor:not-allowed;transform:none!important;
  box-shadow:none;filter:grayscale(.3);
}
.btn-new:disabled:hover, .btn-conf:disabled:hover, .btn-copy:disabled:hover,
.d-save:disabled:hover, .fab-main:disabled:hover{
  transform:none;box-shadow:none;
}

.toast{
  transform:translate(-50%,-24px) scale(.96);
  transition:opacity .25s,transform .35s cubic-bezier(.34,1.4,.64,1);
}
.toast.show{
  transform:translate(-50%,0) scale(1);
}
.toast .ic{animation:toastIc .4s cubic-bezier(.34,1.56,.64,1) both}
@keyframes toastIc{
  0%{transform:scale(0) rotate(-90deg);opacity:0}
  100%{transform:scale(1) rotate(0);opacity:1}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  
}


:root[data-color-scheme=dark]{
    --md-primary:#A78BFA; --md-on-primary:#1A0F2E;
    --md-primary-container:#3A2D5C; --md-on-primary-container:#E6E1FA;
    --brand-cyan:#8B5CF6; --brand-cyan-soft:#2A2440;
    --grad-primary:linear-gradient(135deg,#A78BFA,#8B5CF6);
    --grad-primary-hover:linear-gradient(135deg,#8B5CF6,#7C3AED);
    --grad-primary-soft:linear-gradient(135deg,#2A2440,#1F1A2E);
    --md-secondary:#C4B5FD; --md-on-secondary:#1A0F2E;
    --md-secondary-container:#2D2447; --md-on-secondary-container:#E6E1FA;
    --md-surface:#1F1A2E; --md-surface-dim:#161127;
    --md-surface-container:#2A2440; --md-surface-container-low:#241F38;
    --md-surface-container-high:#332B4D; --md-surface-container-highest:#3D3458;
    --md-outline:#7C6FA8; --md-outline-var:#4D4369;
    --md-on-surface:#E6E1FA; --md-on-surface-variant:#B8AED4;
    --md-error:#F87171; --md-on-error:#2E0A0A;
    --md-error-container:#4A1F1F; --md-on-error-container:#FECACA;
    --error-rgb:248,113,113;
    --md-ok:#34D399; --md-on-ok:#052E1A;
    --md-ok-container:#1A3A2A; --md-on-ok-container:#A7F3D0;
    --md-warn:#FBBF24; --md-on-warn:#1A0F00;
    --md-warn-container:#3D2E0A; --md-on-warn-container:#FCD34D;
    --md-scrollbar:#4A3D6A; --md-scrollbar-hover:#5A4D7A;
    --ink:#E6E1FA; --muted:#B8AED4; --muted-2:#8B7FA8;
    --line:#3D3458; --line-2:#332B4D;
    --bg:#161127;
    --shadow-rgb:0,0,0;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.3);
    --shadow:0 2px 6px rgba(0,0,0,.5),0 6px 16px rgba(0,0,0,.4);
    --shadow-lg:0 6px 20px rgba(0,0,0,.6),0 12px 36px rgba(0,0,0,.5);
    --shadow-brand:0 8px 20px -6px rgba(167,139,250,.5);
    --shadow-brand-hover:0 10px 24px -6px rgba(167,139,250,.6);
    --brand-rgb:167,139,250;
}

:root[data-color-scheme=dark] ::selection{background:rgba(var(--brand-rgb),.35);color:#fff}

:root[data-color-scheme=dark] body::before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 800px 400px at 50% -10%, rgba(var(--brand-rgb),.08), transparent 60%);}


:root[data-color-scheme=dark] input,:root[data-color-scheme=dark] textarea,:root[data-color-scheme=dark] select{background:var(--md-surface-container)!important;color:var(--ink)!important}
:root[data-color-scheme=dark] input:focus,:root[data-color-scheme=dark] textarea:focus,:root[data-color-scheme=dark] select:focus{background: #FFFFFF;
  background:var(--md-surface);!important}

:root[data-color-scheme=dark] .codeblk pre{background: #FBFAFF;
  background:var(--md-surface-container-low);color:var(--ink)}

/* ===================== 夜间模式：光标行高亮增强 ===================== */
:root[data-color-scheme=dark] .editor-active-line{background:var(--md-surface-container-highest);opacity:.7}

:root[data-color-scheme=dark] .gate{background:var(--bg)}
:root[data-color-scheme=dark] .gate .lg-card{background:rgba(31,26,46,.92);border-color: #C9BBE8;
  border-color:var(--md-outline-var);}
:root[data-color-scheme=dark] .gate .lg-mode-btn{background:var(--md-surface-container)}

::selection{background:rgba(var(--brand-rgb),.25);color:inherit}



.skeleton{
  background:linear-gradient(90deg,var(--md-surface-container) 25%,var(--md-surface-container-high) 50%,var(--md-surface-container) 75%);
  background-size:200% 100%;
  animation:skeleton 1.4s ease infinite;
  color:transparent!important;
  pointer-events:none;
  border-radius: 14px;
  border-radius:var(--md-rs-sm);
}
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}

.btn-new:active,.btn-conf:active,.btn-ghost:active,.btn-copy:active,
.d-save:active,.fab-main:active,.btn-multi:active,.mini:active,
.c-act:active,.ai-send:active,.ai-pick:active,.ai-clear:active,
.ai-doc-btn:active,.split-menu button:active,
.modal .m-acts button:active,.gate a:active,
.grp-add-bottom:active,.grp-edit-bottom:active,.grp-del:active,
.es-act:active{transform:scale(.97)}

.empty-state{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:48px 24px;text-align:center;
  animation:fadeUp .4s cubic-bezier(.2,.9,.3,1) both;
}


.empty-state > * + *{margin-top:12px}
.empty-state .es-icon{
  width:72px;height:72px;border-radius:50%;
  background:var(--grad-primary-soft);
  display:grid;place-items:center;color:var(--md-primary);
  margin-bottom:4px;
}
.empty-state .es-icon svg{width:32px;height:32px}
.empty-state .es-title{font-size:15px;font-weight:600;color:var(--ink)}
.empty-state .es-desc{font-size:13px;color:var(--muted);line-height:1.6;max-width:280px}
.empty-state .es-act{
  margin-top:8px;padding:9px 20px;border-radius: 28px;
  border-radius:var(--md-rs-full);
  background:var(--grad-primary);color:var(--md-on-primary);
  font-size:13px;font-weight:600;border:none;cursor:pointer;
  box-shadow:var(--shadow-brand);transition:all .18s;
}
.empty-state .es-act:hover{transform:translateY(-1px);box-shadow:var(--shadow-brand-hover)}

.empty-state .es-ic{margin-bottom:4px;opacity:.9}
.empty-state .es-tt{font-size:14px;color:var(--muted);line-height:1.6;max-width:320px}

@supports (padding: env(safe-area-inset-bottom)){
  .ai-bar{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .ai-pick-panel{padding-bottom:env(safe-area-inset-bottom,0px)}
}

/* ===================== 精简模式（低端机性能优化） =====================
 * 通过 <html data-lite="1"> 启用。覆盖范围：
 *   1. 关闭 backdrop-filter（模态遮罩 / loading / 登录卡 / 账号中心头像等）—— GPU 模糊最耗性能
 *   2. 关闭 transform 装饰动画（卡片 hover 缩放、按钮按压、modal 弹入缩放等）
 *   3. 简化 transition 为颜色/透明度过渡（保留视觉反馈，去掉 transform 重排）
 *   4. 移除 will-change 预分配（编辑器 / 行号容器 / 抽屉）
 *   5. 关闭装饰性 @keyframes（fadeUp / scaleIn / rippleSpread / glIn / toastIc / aiStopPulse / selFloatIn / skeleton）
 *   6. 关闭卡片错峰入场动画
 *   7. 简化 hover 阴影增强（保留基础阴影，去掉 hover 时额外大阴影）
 * 保留：opacity 过渡、滚动、焦点轮廓、关键状态颜色变化 —— 确保可用性不下降。 */

[data-lite="1"] .modal-scrim,
[data-lite="1"] .global-loading,
[data-lite="1"] .gate .lg-card,
[data-lite="1"] .ac-hero .ac-ava,
[data-lite="1"] .ac-hero .ac-vip-tag,
[data-lite="1"] .ac-hero .ac-donate,
[data-lite="1"] .scrim{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

[data-lite="1"] .card,
[data-lite="1"] .row-item,
[data-lite="1"] .c-act,
[data-lite="1"] .row-acts a,
[data-lite="1"] .mini,
[data-lite="1"] .chip,
[data-lite="1"] .btn-new,
[data-lite="1"] .btn-conf,
[data-lite="1"] .btn-ghost,
[data-lite="1"] .btn-copy,
[data-lite="1"] .btn-multi,
[data-lite="1"] .d-save,
[data-lite="1"] .d-tool,
[data-lite="1"] .d-tool-pill,
[data-lite="1"] .d-toggle-tools,
[data-lite="1"] .d-expand,
[data-lite="1"] .d-close,
[data-lite="1"] .m-close,
[data-lite="1"] .pp-close,
[data-lite="1"] .ai-send,
[data-lite="1"] .ai-pick,
[data-lite="1"] .ai-clear,
[data-lite="1"] .ai-doc-btn,
[data-lite="1"] .fab-main,
[data-lite="1"] .grp-add-bottom,
[data-lite="1"] .grp-edit-bottom,
[data-lite="1"] .grp-del,
[data-lite="1"] .grp-rename,
[data-lite="1"] .grp-item,
[data-lite="1"] .split-menu button,
[data-lite="1"] .modal .m-acts button,
[data-lite="1"] .gate a,
[data-lite="1"] .es-act,
[data-lite="1"] .ac-mode-row,
[data-lite="1"] .ac-row,
[data-lite="1"] .ac-theme-btn,
[data-lite="1"] .m-tab,
[data-lite="1"] .m-mini,
[data-lite="1"] .ds-list button,
[data-lite="1"] .menu,
[data-lite="1"] .modal,
[data-lite="1"] .doc-sheet{
  transition:opacity .12s ease, background-color .12s ease, border-color .12s ease, color .12s ease !important;
}

[data-lite="1"] .card:hover,
[data-lite="1"] .row-item:hover,
[data-lite="1"] .card:active,
[data-lite="1"] .row-item:active,
[data-lite="1"] .btn-new:active,
[data-lite="1"] .btn-conf:active,
[data-lite="1"] .btn-ghost:active,
[data-lite="1"] .btn-copy:active,
[data-lite="1"] .d-save:active,
[data-lite="1"] .fab-main:active,
[data-lite="1"] .btn-multi:active,
[data-lite="1"] .mini:active,
[data-lite="1"] .c-act:active,
[data-lite="1"] .ai-send:active,
[data-lite="1"] .ai-pick:active,
[data-lite="1"] .ai-clear:active,
[data-lite="1"] .ai-doc-btn:active,
[data-lite="1"] .split-menu button:active,
[data-lite="1"] .modal .m-acts button:active,
[data-lite="1"] .gate a:active,
[data-lite="1"] .grp-add-bottom:active,
[data-lite="1"] .grp-edit-bottom:active,
[data-lite="1"] .grp-del:active,
[data-lite="1"] .es-act:active,
[data-lite="1"] .es-act:hover,
[data-lite="1"] .btn-new.outline .ripple,
[data-lite="1"] .btn-ghost .ripple,
[data-lite="1"] .btn-multi .ripple,
[data-lite="1"] .mini .ripple,
[data-lite="1"] .c-act .ripple,
[data-lite="1"] .row-acts a .ripple,
[data-lite="1"] .ai-pick .ripple,
[data-lite="1"] .split-menu button .ripple,
[data-lite="1"] .d-expand .ripple,
[data-lite="1"] .d-close .ripple,
[data-lite="1"] .d-tool .ripple,
[data-lite="1"] .ai-clear .ripple{
  transform:none !important;
}

[data-lite="1"] .modal{
  transform:none !important;
}
[data-lite="1"] .modal-scrim.show .modal{transform:none !important}

[data-lite="1"] .menu{
  transform:none !important;
}
[data-lite="1"] .menu.show{transform:none !important}

[data-lite="1"] .toast{
  transition:opacity .15s ease !important;
  transform:translate(-50%,0) scale(1) !important;
}
[data-lite="1"] .toast.show{
  transform:translate(-50%,0) scale(1) !important;
}
[data-lite="1"] .toast .ic{animation:none !important}

[data-lite="1"] .gl-card{animation:none !important;transform:none !important}
[data-lite="1"] .gl-spinner{animation:spin .6s linear infinite}

[data-lite="1"] .card,
[data-lite="1"] .row-item,
[data-lite="1"] .grp-item,
[data-lite="1"] .doc-card{
  animation:none !important;
}

[data-lite="1"] .empty-state{animation:none !important}

[data-lite="1"] .ripple{display:none !important}

[data-lite="1"] .skeleton{
  animation:none !important;
  background:var(--md-surface-container-high) !important;
}

[data-lite="1"] .editor-active-line{transition:none !important}

[data-lite="1"] .drawer,
[data-lite="1"] #editor,
[data-lite="1"] .ln-container,
[data-lite="1"] .editor-mirror,
[data-lite="1"] .topbar,
[data-lite="1"] .toolbar-wrap,
[data-lite="1"] .fab-main,
[data-lite="1"] .group-panel,
[data-lite="1"] .sidebar{
  will-change:auto !important;
}

[data-lite="1"] .btn-new:hover,
[data-lite="1"] .btn-conf:hover,
[data-lite="1"] .btn-copy:hover,
[data-lite="1"] .fab-main:hover,
[data-lite="1"] .es-act:hover{
  transform:none !important;
  box-shadow:var(--shadow-brand) !important;
}
[data-lite="1"] .btn-conf:hover{box-shadow:var(--shadow-brand) !important}
[data-lite="1"] .btn-copy:hover{box-shadow:var(--shadow-brand) !important}

[data-lite="1"] .c-act:hover svg,
[data-lite="1"] .d-close:hover svg,
[data-lite="1"] .m-close:hover svg,
[data-lite="1"] .pp-close:hover svg,
[data-lite="1"] .ai-expand:hover svg,
[data-lite="1"] .ai-pick:hover .ai-pick-ic svg,
[data-lite="1"] .ai-doc-btn:hover svg,
[data-lite="1"] .ai-clear:hover svg,
[data-lite="1"] .grp-del:hover svg,
[data-lite="1"] .grp-rename:hover svg,
[data-lite="1"] .d-expand svg,
[data-lite="1"] .d-head-actions .d-expand svg,
[data-lite="1"] .d-toggle-tools svg{
  transition:none !important;
  transform:none !important;
}

[data-lite="1"] .d-toggle-tools.collapsed svg,
[data-lite="1"] .d-toggle-tools svg{
  transform:none !important;
}

[data-lite="1"] .d-tools-row{
  transition:max-height .15s ease, opacity .15s ease !important;
}

[data-lite="1"] .row-cb,
[data-lite="1"] .card .row-cb{
  transition:opacity .12s ease, border-color .12s ease, background .12s ease !important;
}

[data-lite="1"] .ai-stop-btn{
  animation:none !important;
}

[data-lite="1"] .sel-float{
  animation:none !important;
}

[data-lite="1"] .doc-sheet{
  transform:translateY(100%) !important;
}
[data-lite="1"] .doc-sheet-scrim.show .doc-sheet{
  transform:translateY(0) !important;
}

/* ===== 全局加载遮罩 ===== */
#globalLoading{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(15,15,25,.45);opacity:0;pointer-events:none;transition:opacity .18s}
#globalLoading.show{opacity:1;pointer-events:auto}
#globalLoading .gl-box{display:flex;flex-direction:column;align-items:center;padding:22px 30px;border-radius:16px;background: #FFFFFF;
  background:var(--md-surface);box-shadow:0 10px 40px rgba(0,0,0,.18)}

#globalLoading .gl-box > * + *{margin-top:12px}
#globalLoading .gl-spinner{width:34px;height:34px;border:3px solid rgba(139,92,246,.2);border-top-color:#8b5cf6;border-radius:50%;animation:glspin .8s linear infinite}
@keyframes glspin{to{transform:rotate(360deg)}}
#globalLoadingText{font-size:14px;color:#333;font-weight:600}




/* ===================== 浏览器工具栏防闪：明确告知页面明暗配色 ===================== */
:root[data-color-scheme="dark"]{ color-scheme: dark; }
:root[data-color-scheme="light"]{ color-scheme: light; }

/* ===================== 文档/图片/回收站列表防闪 =====================
 * 列表卡片不做入场动画：数据加载/重渲染时内容直接显示，避免每次渲染重播动画造成闪烁。 */
#viewBox .card,#viewBox .row-item,#viewBox .doc-card,#viewBox .img-card,#viewBox .recycle-item{
  animation:none !important;
}

/* ===== 底部导航栏 ===== */
*:focus{outline:none!important;-webkit-tap-highlight-color:transparent}
button,a,.bn-item,.up-tile,.img-act,.doc-fab,.search-btn,.seg-btn,.theme-btn{outline:none!important;-webkit-tap-highlight-color:transparent}
body.gate-shown .bottom-nav{display:none!important}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:900;display:none!important;background:linear-gradient(180deg,rgba(139,92,246,.05),rgba(139,92,246,.12));border-top:1px solid rgba(139,92,246,.15);padding:6px 0 calc(6px + env(safe-area-inset-bottom));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.bn-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:6px 12px;cursor:pointer;color:var(--md-on-surface-variant,#666);font-size:11px;transition:all .25s;border:none;background:none;border-radius:999px;margin:0 4px}

.bn-item > * + *{margin-top:2px}
.bn-item.active{color:var(--md-primary,#8B5CF6);font-weight:600;background:var(--md-primary-container,#EDE9FE);box-shadow:0 2px 8px rgba(139,92,246,.15)}
.bn-item svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bn-item.active svg{stroke-width:2.2}
/* 主内容区底部留出空间 */
body.has-bottom-nav #content{padding-bottom:0!important}
body.has-bottom-nav .topbar{padding-bottom:6px}

/* ===================== 登录页 ===================== */
/* 包含：.gate、.gate .lg-*（lg-card/lg-tabs/lg-tab/lg-indicator/lg-panel/lg-forms/lg-field/lg-input-wrap/
   lg-eye/lg-btn-primary/lg-btn-code/lg-link/lg-row-between/lg-remember/lg-agree/lg-code-row/lg-reveal/
   lg-sub/lg-brand/lg-dot/lg-mode-btn 等）、@keyframes cardIn */

.gate{position:fixed;top:0;left:0;right:0;bottom:0;z-index:80;background:var(--bg);
  display:-webkit-box;display:-webkit-flex;display:flex;
  -webkit-box-align:center;-webkit-align-items:center;align-items:center;
  -webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding:24px}
.gate .g-card{background: #FFFFFF;
  background:var(--md-surface);border-radius:var(--radius-lg);padding:38px 32px;text-align:center;max-width:380px;
  box-shadow:var(--shadow-lg)}
.gate .g-card .dot{width:52px;height:52px;border-radius:14px;background:var(--grad-primary);
  margin:0 auto 14px;display:grid;place-items:center}
.gate .g-card .dot svg{width:26px;height:26px;color:#fff}
.gate h2{font-size:18px;margin-bottom:8px;font-weight:700}
.gate p{font-size:13px;color:var(--muted);margin-bottom:22px;line-height:1.6}
.gate a{display:inline-block;padding:12px 26px;border-radius:var(--radius-sm);font-size:14.5px;font-weight:700;color:#fff;
  background:var(--grad-primary);text-decoration:none;transition:all .15s;box-shadow:var(--shadow-brand)}
.gate a:hover{background:var(--grad-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-brand-hover)}

.gate .lg-card a{display:inline;padding:0;border-radius:0;font-size:inherit;font-weight:600;color:var(--md-primary);
  background:transparent;box-shadow:none;text-decoration:none;transition:opacity .15s}
.gate .lg-card a:hover{background:transparent;transform:none;box-shadow:none;opacity:.75;text-decoration:underline;text-underline-offset:3px}

.gate .lg-card{width:100%;max-width:min(440px,94vw);flex:none;background:rgba(255,255,255,.92);backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:42px 36px 30px;position:relative;overflow:hidden;animation:cardIn .55s cubic-bezier(.2,.9,.3,1) both}
@keyframes cardIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.gate .lg-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad-primary);opacity:.92}
.gate .lg-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:6px}

.gate .lg-brand > * + *{margin-top:10px}
.gate .lg-brand .lg-dot{width:38px;height:38px;border-radius:12px;background:var(--grad-primary);
  box-shadow:var(--shadow-brand);position:relative;display:grid;place-items:center}
.gate .lg-brand .lg-logo{width:72px;height:72px;border-radius:20px;object-fit:cover;box-shadow:var(--shadow-brand);flex:none}
.gate .lg-brand .lg-dot::after{content:"";position:absolute;top:10px;left:10px;right:10px;bottom:10px;border-radius:7px;background:rgba(255,255,255,.92)}
.gate .lg-brand h1{font-size:21px;font-weight:700;letter-spacing:.4px;background:var(--grad-primary);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.gate .lg-sub{color:var(--muted);font-size:13.5px;margin:2px 0 24px;display:flex;align-items:center;justify-content:center;}

.gate .lg-sub > * + *{margin-left:6px}
.gate .lg-sub::before{content:"";width:5px;height:5px;border-radius:50%;background: #8B5CF6;
  background:var(--md-primary);box-shadow:0 0 8px rgba(var(--brand-rgb),.6)}
.gate .lg-tabs{position:relative;display:flex;background: #EDE9FE;
  background:var(--md-primary-container);
  border-radius: 28px;
  border-radius:var(--md-rs-full);padding:5px;margin-bottom:24px}
.gate .lg-tab{flex:1;text-align:center;padding:10px 0;font-size:14px;font-weight:600;
  color:var(--md-on-primary-container);cursor:pointer;position:relative;z-index:2;
  transition:color .35s ease;;opacity:.7}
.gate .lg-tab:hover{opacity:1}
.gate .lg-tab.active{color:#fff;opacity:1}
.gate .lg-indicator{position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px)/3);
  background:var(--grad-primary);border-radius: 28px;
  border-radius:var(--md-rs-full);z-index:1;
  transition:transform .42s cubic-bezier(.2,.9,.3,1);box-shadow:0 4px 12px -2px rgba(var(--brand-rgb),.55)}
.gate .lg-forms{position:relative;transition:height .42s cubic-bezier(.2,.9,.3,1)}
.gate .lg-panel{position:absolute;top:0;left:0;width:100%;opacity:0;transform:translateX(24px);
  transition:opacity .38s ease,transform .42s cubic-bezier(.2,.9,.3,1);pointer-events:none}
.gate .lg-panel.active{opacity:1;transform:translateX(0);pointer-events:auto;position:relative}
.gate .lg-field{margin-bottom:16px}
.gate .lg-field label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:7px;letter-spacing:.2px}
.gate .lg-input-wrap{position:relative}
.gate .lg-input-wrap input[type=text],.gate .lg-input-wrap input[type=password],.gate .lg-input-wrap input[type=email]{
  width:100%;padding:13px 14px;font-size:14.5px;color:var(--ink);
  border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FBFAFF;
  background:var(--md-surface-container-low);
  transition:border-color .2s,box-shadow .2s,background .2s;outline:none}
.gate .lg-input-wrap input::placeholder{color:var(--muted-2)}
.gate .lg-input-wrap input:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #FFFFFF;
  background:var(--md-surface);
  box-shadow:0 0 0 4px rgba(var(--brand-rgb),.13)}
.gate .lg-input-wrap input.with-eye{padding-right:46px}
.gate .lg-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:32px;height:32px;display:grid;place-items:center;border:none;cursor:pointer;
  background:transparent;color:var(--muted-2);border-radius:9px;transition:color .2s,background .2s}
.gate .lg-eye:hover{color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.gate .lg-eye svg{width:19px;height:19px}
.gate input[type=password]::-ms-reveal,.gate input[type=password]::-ms-clear{display:none!important}
.gate input[type=password]::-webkit-credentials-auto-fill-button{display:none!important;visibility:hidden;pointer-events:none}
.gate .lg-code-row{display:flex;}

.gate .lg-code-row > * + *{margin-left:10px}
.gate .lg-code-row .lg-input-wrap{flex:1}
.gate .lg-btn-code{flex:none;padding:0 16px;border:none;cursor:pointer;white-space:nowrap;
  font-size:13px;font-weight:600;color:var(--md-on-primary);background:var(--grad-primary);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);transition:all .2s;box-shadow:0 4px 10px -2px rgba(var(--brand-rgb),.4)}
.gate .lg-btn-invite{flex:none;padding:0 14px;border:none;cursor:pointer;white-space:nowrap;
  font-size:13px;font-weight:600;color:var(--md-on-primary);background:var(--grad-primary);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);transition:all .2s;box-shadow:0 4px 10px -2px rgba(var(--brand-rgb),.4)}
.gate .lg-btn-code:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px -2px rgba(var(--brand-rgb),.5)}
.gate .lg-btn-code:disabled{background:var(--md-surface-container-high);color:var(--muted-2);cursor:not-allowed;box-shadow:none}
.gate .lg-reveal{overflow:hidden;max-height:0;opacity:0;transform:translateY(-6px);
  transition:max-height .42s ease,opacity .35s ease,transform .35s ease,margin .3s}
.gate .lg-reveal.show{max-height:200px;opacity:1;transform:translateY(0);margin-top:2px}
.gate .lg-row-between{display:flex;align-items:center;justify-content:space-between;margin:4px 0 22px}
.gate .lg-remember{display:flex;align-items:center;cursor:pointer;font-size:13px;color:var(--muted);}

.gate .lg-remember > * + *{margin-left:8px}
.gate .lg-remember input{width:17px;height:17px;accent-color:var(--md-primary);cursor:pointer}
.gate .lg-link{color:var(--md-primary);font-size:13px;font-weight:600;cursor:pointer;background:none;border:none;transition:opacity .15s}
.gate .lg-link:hover{opacity:.75;text-decoration:underline;text-underline-offset:3px}
.gate .lg-btn-primary{width:100%;padding:14px 0;border:none;border-radius: 28px;
  border-radius:var(--md-rs-full);cursor:pointer;
  font-size:15.5px;font-weight:700;color:var(--md-on-primary);letter-spacing:.5px;
  background:var(--grad-primary);box-shadow:var(--shadow-brand);transition:transform .15s,box-shadow .2s;position:relative;overflow:hidden}
.gate .lg-btn-primary::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);
  transform:translateX(-100%);transition:transform .6s}
.gate .lg-btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-brand-hover)}
.gate .lg-btn-primary:hover::after{transform:translateX(100%)}
.gate .lg-btn-primary:disabled{opacity:.6;cursor:wait;transform:none}
.gate .lg-btn-primary.is-loading{color:transparent!important;opacity:1}
.gate .lg-btn-primary.is-loading::after{content:'';position:absolute;top:auto;left:auto;right:auto;bottom:auto;top:50%;left:50%;
  width:18px;height:18px;margin:-9px 0 0 -9px;background:none;
  border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;
  transform:translateX(0);animation:spin .6s linear infinite}
.gate .lg-btn-code{position:relative}
.gate .lg-btn-code.is-loading{color:transparent!important}
.gate .lg-btn-code.is-loading::after{content:'';position:absolute;top:auto;left:auto;right:auto;bottom:auto;top:50%;left:50%;
  width:14px;height:14px;margin:-7px 0 0 -7px;
  border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;
  animation:spin .6s linear infinite}

.gate .lg-agree{display:flex;align-items:flex-start;margin:4px 0 18px;cursor:pointer;
  font-size:12.5px;color:var(--muted);line-height:1.55;}


.gate .lg-agree > * + *{margin-left:9px}
.bind-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:120;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:20px}
.bind-ov .bind-box{width:min(360px,92vw);background:var(--md-surface,#fff);border-radius:16px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.25)}
.bind-ov .bind-head{display:flex;align-items:center;justify-content:space-between;font-size:16px;color:var(--ink,#1f2329)}
.bind-ov .bind-head b{font-size:16px}
.bind-ov .bind-close{border:none;background:none;font-size:20px;color:#999;cursor:pointer;line-height:1}
.bind-ov .bind-tip{margin:10px 0 14px;font-size:12.5px;color:#888;line-height:1.5}
.bind-ov .bind-row{margin-bottom:12px}
.bind-ov .bind-row input{width:100%;box-sizing:border-box;height:40px;border:1px solid #e3e3e8;border-radius:10px;padding:0 12px;font-size:14px;color:var(--ink,#1f2329);background:var(--md-surface,#fff)}
.bind-ov .bind-code-row{display:flex;}

.bind-ov .bind-code-row > * + *{margin-left:8px}
.bind-ov .bind-code-row input{flex:1}
.bind-ov .bind-send{flex:none;padding:0 12px;border:none;border-radius:10px;background:var(--grad-primary,#7c3aed);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.bind-ov .bind-send:disabled{opacity:.6}
.bind-ov .bind-ok{width:100%;height:42px;border:none;border-radius:10px;background:var(--grad-primary,#7c3aed);color:#fff;font-size:14.5px;font-weight:700;cursor:pointer;margin-top:4px}
.bind-ov .bind-ok:disabled{opacity:.6}
.gate .lg-agree input{flex:none;width:17px;height:17px;margin-top:1px;accent-color:var(--md-primary);cursor:pointer}

.gate .lg-tools{display:flex;align-items:center;justify-content:space-between;margin-top:18px}


.gate .lg-tools > * + *{margin-left:12px}
.gate .lg-tool-grp{display:flex;align-items:center;}

.gate .lg-tool-grp > * + *{margin-left:8px}
.gate .lg-tool-label{font-size:12px;color:var(--muted);}
.gate .lg-theme-btn{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;
  position:relative;padding:0;box-shadow:0 2px 5px rgba(0,0,0,.15);transition:transform .15s,border-color .15s}
.gate .lg-theme-btn:hover{transform:scale(1.12)}
.gate .lg-theme-btn.active{border-color:rgba(255,255,255,.85);box-shadow:0 0 0 1.5px var(--md-primary),0 2px 5px rgba(0,0,0,.2)}
.gate .lg-theme-btn.active::after{content:"";position:absolute;top:50%;left:50%;width:8px;height:4px;
  border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translate(-50%,-70%) rotate(-45deg)}
.gate .lg-mode-btn{width:32px;height:32px;border-radius:50%;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);
  background: #FFFFFF;
  background:var(--md-surface);color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:all .15s}
.gate .lg-mode-btn:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);color:var(--md-primary)}
.gate .lg-mode-btn.active{background:var(--grad-primary);color:#fff;border-color:transparent;box-shadow:var(--shadow-brand)}
.gate .lg-mode-btn svg{width:17px;height:17px}

.gate .g-card{overflow:hidden}

/* ---- QQ 登录按钮 ---- */
.gate .lg-divider{display:flex;align-items:center;margin:20px 0 14px}


/* ---- QQ 登录按钮 ---- */
.gate .lg-divider > * + *{margin-left:12px}
.gate .lg-divider::before,.gate .lg-divider::after{content:"";flex:1;height:1px;background: #C9BBE8;
  background:var(--md-outline-var);}
.gate .lg-divider span{font-size:12px;color:var(--muted-2);white-space:nowrap}
.gate .lg-quick-row{display:flex;margin:0}

.gate .lg-quick-row > * + *{margin-left:12px}
.gate .lg-quick-row>*{flex:1}
.gate .lg-btn-qq,.gate .lg-btn-wx{width:100%;padding:12px 0;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius: 28px;
  border-radius:var(--md-rs-full);cursor:pointer;
  font-size:14px;font-weight:600;letter-spacing:.3px;color:var(--ink);background:#fff;display:flex;align-items:center;justify-content:center;white-space:nowrap;
  transition:all .15s}

.gate .lg-btn-qq > * + *, .gate .lg-btn-wx > * + *{margin-left:8px}
.gate .lg-btn-qq:hover,.gate .lg-btn-wx:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #FBFAFF;
  background:var(--md-surface-container-low);transform:translateY(-1px)}
.gate .lg-btn-qq:active,.gate .lg-btn-wx:active{transform:scale(.97)}
.gate .lg-btn-qq:disabled,.gate .lg-btn-wx:disabled{opacity:.5;cursor:not-allowed;transform:none}
.gate .lg-btn-qq-ico{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.92);overflow:hidden}
.gate .lg-btn-qq svg{height:18px;width:auto;display:block}

/* ---- 个人中心 QQ 绑定按钮 ---- */
.pc-qq-bind-btn{padding:4px 12px;border-radius: 28px;
  border-radius:var(--md-rs-full);border: 1px solid #8B5CF6;
  border:1px solid var(--md-primary);
  background:transparent;color:var(--md-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}
.pc-qq-bind-btn:hover{background: #8B5CF6;
  background:var(--md-primary);color:var(--md-on-primary)}
/* ===================== 管理后台 ===================== */
.admin-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:400;display:flex;align-items:center;justify-content:center;padding:20px}
.cf-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:600;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:fadeUp .18s ease}
.cf-box{width:min(420px,92vw);margin:auto;background: #FFFFFF;
  background:var(--md-surface);border-radius:20px;padding:20px;box-shadow:0 12px 40px rgba(0,0,0,.25);animation:scaleIn .18s ease}
.cf-box.cf-purple{background:linear-gradient(160deg,#7c3aed,#6d28d9);color:#fff}
.cf-box.cf-purple .cf-tit h3{color:#fff}
.cf-box.cf-purple .cf-tit p{color:rgba(255,255,255,.88)}
.cf-box.cf-purple .cf-head .cf-ic{background:rgba(255,255,255,.18);color:#fff}
.cf-box.cf-purple .btn-ghost{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.4)}
.cf-box.cf-purple .btn-conf{background:#fff;color:#6d28d9;box-shadow:0 4px 12px -3px rgba(0,0,0,.35)}
.cf-head{display:flex;align-items:flex-start;margin-bottom:14px}

.cf-head > * + *{margin-left:12px}
.cf-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none}
.cf-ic.danger{background:var(--md-error-container);color:var(--md-error)}
.cf-ic svg{width:22px;height:22px}
.cf-tit{flex:1;min-width:0}
.cf-tit h3{font-size:16.5px;font-weight:700;color:var(--ink);margin:0 0 3px}
.cf-tit p{font-size:13px;color:var(--muted);margin:0;line-height:1.5;word-break:break-word}
.cf-close{width:28px;height:28px;border:none;background:transparent;color:var(--muted-2);font-size:22px;line-height:1;cursor:pointer;border-radius:50%;flex:none}
.cf-close:hover{background:var(--md-surface-container);color:var(--ink)}
.cf-acts{display:flex;justify-content:flex-end;margin-top:18px}

.cf-acts > * + *{margin-left:10px}
.cf-acts button{flex:none;min-width:104px;padding:0 26px;height:42px;border-radius:20px;font-size:14.5px;font-weight:600;line-height:1;cursor:pointer}
.cf-acts .btn-conf{color:#fff;background:var(--grad-primary);box-shadow:0 4px 12px -3px rgba(139,92,246,.5)}
.cf-acts .btn-conf.danger{background:var(--md-error);box-shadow:0 4px 12px -3px rgba(229,72,77,.5)}
.cf-acts .btn-ghost{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.cf-body input{width:100%;box-sizing:border-box;margin:12px 0;padding:12px 14px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius:12px;font-size:14px;background: #FBFAFF;
  background:var(--md-surface-container-low);color:var(--ink)}
.cf-body input:focus{outline:none;border-color: #8B5CF6;
  border-color:var(--md-primary);box-shadow:0 0 0 3px rgba(139,92,246,.15)}
.admin-panel{width:100%;max-width:860px;max-height:76vh;background: #FFFFFF;
  background:var(--md-surface);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.admin-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid #eee;background:linear-gradient(135deg,#8B5CF6,#A78BFA)}
.admin-head h3{color:#fff;font-size:17px;font-weight:700;margin:0}
.admin-close{width:32px;height:32px;border:none;background:rgba(255,255,255,.2);color:#fff;border-radius:8px;cursor:pointer;font-size:18px;display:grid;place-items:center;transition:background .15s}
.admin-close:hover{background:rgba(255,255,255,.35)}
.ban-panel{max-width:720px}
.ban-body{flex:1;overflow:auto;padding:20px 24px}
.ban-row{display:flex;align-items:center;margin-bottom:10px;flex-wrap:wrap}

.ban-row > * + *{margin-left:10px}
.ban-search-item{background:#f8f5ff;border-radius:10px;padding:10px 12px}
.ban-uname{font-weight:600;color:#333;flex:1;min-width:80px;word-break:break-all}
.ban-forever{font-size:12px;color:#666;display:flex;align-items:center;white-space:nowrap}

.ban-forever > * + *{margin-left:4px}
.ban-item{border-bottom:1px solid #f0f0f0;padding:10px 0}
.ban-until{color:#e74c3c;font-size:12px;font-weight:600;flex:1;white-space:nowrap}
.ban-sec-title{margin:18px 0 10px;color:#333;font-size:14px;font-weight:600}
.ban-empty{text-align:center;padding:14px;color:#aaa;font-size:13px}
.admin-tabs{display:flex;flex-wrap:nowrap;padding:12px 24px 0;border-bottom:1px solid #eee;background:#fafafa;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex:0 0 auto}

.admin-tabs > * + *{margin-left:4px}
.admin-tabs::-webkit-scrollbar{display:none;height:0}
.admin-tab{flex:0 0 auto;white-space:nowrap;padding:10px 18px;border:none;background:transparent;color:#666;font-size:14px;font-weight:600;cursor:pointer;border-radius:8px 8px 0 0;transition:all .15s;line-height:1.5}
.admin-tab.active{color:#8B5CF6;background: #FFFFFF;
  background:var(--md-surface);border-top:2px solid #8B5CF6}
.admin-body{flex:1;overflow:auto;padding:16px 14px}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:20px}
.admin-stat-card{background:#f8f5ff;border-radius:14px;padding:16px;text-align:center}
.admin-stat-card .num{font-size:28px;font-weight:800;color:#8B5CF6}
.admin-stat-card .label{font-size:12px;color:#888;margin-top:4px}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th,.admin-table td{white-space:nowrap}
.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:8px}
.admin-sys-info{background:#f8fafc;border-radius:12px;padding:16px;margin-bottom:16px}
.sys-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e2e8f0}
.sys-row:last-child{border-bottom:none}
.sys-label{color:#64748b;font-size:14px}
.sys-value{color:#1e293b;font-size:14px;font-weight:500}
.admin-code-box{background:#f5f3ff;border:1px solid #c4b5fd;border-radius:10px;padding:12px;margin-bottom:16px}
.admin-table th{text-align:left;padding:10px 12px;background:#f5f3ff;color:#666;font-weight:600;border-bottom:2px solid #e0d8f5}
.admin-table td{padding:10px 12px;border-bottom:1px solid #f0f0f0}
.admin-table tr:hover td{background:#faf8ff}
.admin-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}
.admin-badge.admin{background:#e74c3c;color:#fff}
.admin-badge.vip{background:#8B5CF6;color:#fff}
.admin-badge.user{background:#e8e8e8;color:#666}
.admin-badge.used{background:#fde4e4;color:#c0392b}
.admin-badge.unused{background:#d3f5e0;color:#053D22}
.admin-actions{display:flex;margin-bottom:16px;align-items:center;flex-wrap:wrap}

.admin-actions > * + *{margin-left:10px}
.admin-btn{padding:8px 16px;border:none;border-radius:8px;background:#8B5CF6;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.admin-btn.warning{background:#f59e0b;color:#fff}
.admin-btn.warning:hover{background:#d97706}
.admin-badge.disabled{background:#fee2e2;color:#dc2626}
.admin-btn:hover{background:#7C3AED;transform:translateY(-1px)}
.admin-btn.secondary{background:#f0f0f0;color:#666}
.admin-btn.secondary:hover{background:#e0e0e0}
.admin-btn.danger{background:#e74c3c}
.admin-btn.danger:hover{background:#c0392b}
.admin-input{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:13px;width:80px}
.admin-code-box{background:#f8f5ff;border:1px dashed #c4b5fd;border-radius:10px;padding:12px;margin-bottom:16px;font-family:monospace;font-size:14px;color:#5B21B6;word-break:break-all}
.admin-empty{text-align:center;padding:40px;color:#aaa;font-size:14px}

/* ===================== 宽屏自适应（平板/桌面/必应等） ===================== */
@media (min-width:768px){
  .gate .lg-card{max-width:520px;padding:46px 44px;flex:none}
  .gate .lg-brand h1{font-size:24px}
  .gate .lg-brand .lg-logo{width:84px;height:84px}
  .gate .lg-sub{font-size:14.5px;margin:4px 0 28px}
  .gate .lg-tab{font-size:15px;padding:12px 0}
  .gate .lg-field label{font-size:13.5px}
  .gate .lg-input-wrap input[type=text],.gate .lg-input-wrap input[type=password],.gate .lg-input-wrap input[type=email]{padding:15px 16px;font-size:15.5px}
  .gate .lg-btn-primary{font-size:16.5px;padding:15px 0}
}
@media (max-width:767px){
  .gate .lg-card{max-width:min(440px,94vw)}
}


/* ===== 夜间模式：管理后台深色适配 ===== */
:root[data-color-scheme=dark] .admin-tabs{background: #FBFAFF;
  background:var(--md-surface-container-low);border-bottom-color: #C9BBE8;
  border-bottom-color:var(--md-outline-var);}
:root[data-color-scheme=dark] .admin-tab{color:var(--muted)}
:root[data-color-scheme=dark] .admin-tab.active{color:var(--md-primary);background: #FFFFFF;
  background:var(--md-surface);}
:root[data-color-scheme=dark] .admin-stat-card{background: #FBFAFF;
  background:var(--md-surface-container-low);}
:root[data-color-scheme=dark] .admin-stat-card .label{color:var(--muted)}
:root[data-color-scheme=dark] .admin-sys-info{background: #FBFAFF;
  background:var(--md-surface-container-low);}
:root[data-color-scheme=dark] .admin-code-box{background: #FBFAFF;
  background:var(--md-surface-container-low);border-color: #C9BBE8;
  border-color:var(--md-outline-var);color:var(--md-primary)}
:root[data-color-scheme=dark] .admin-table th{background: #FBFAFF;
  background:var(--md-surface-container-low);color:var(--ink);border-bottom-color: #C9BBE8;
  border-bottom-color:var(--md-outline-var);}
:root[data-color-scheme=dark] .admin-table td{border-bottom-color:var(--line);color:var(--ink)}
:root[data-color-scheme=dark] .admin-table tr:hover td{background:var(--md-surface-container-high)}
:root[data-color-scheme=dark] .admin-btn.secondary{background:var(--md-surface-container-high);color:var(--ink)}
:root[data-color-scheme=dark] .admin-input{background:var(--md-surface-container);color:var(--ink);border-color: #C9BBE8;
  border-color:var(--md-outline-var);}
:root[data-color-scheme=dark] .admin-empty{color:var(--muted)}
:root[data-color-scheme=dark] .admin-badge.user{background:var(--md-surface-container-high);color:var(--muted)}

:root[data-color-scheme=dark] .admin-btn.secondary{background:var(--md-surface-container-high)!important;color:var(--ink)!important;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);!important}
:root[data-color-scheme=dark] .admin-stat-card.used{background:rgba(52,211,153,.15)!important;color:var(--ink)!important}
:root[data-color-scheme=dark] .admin-stat-card.unused{background:rgba(251,191,36,.15)!important;color:var(--ink)!important}
:root[data-color-scheme=dark] .admin-stat-card.used .label,:root[data-color-scheme=dark] .admin-stat-card.unused .label{color:var(--muted)!important}
:root[data-color-scheme=dark] .admin-stat-card.used .num{color:#34D399!important}
:root[data-color-scheme=dark] .admin-stat-card.unused .num{color:#FBBF24!important}

:root[data-color-scheme=dark] .admin-stat-card.stat-used{background:rgba(52,211,153,.15)!important}
:root[data-color-scheme=dark] .admin-stat-card.stat-used .num{color:#34D399!important}
:root[data-color-scheme=dark] .admin-stat-card.stat-unused{background:rgba(251,191,36,.15)!important}
:root[data-color-scheme=dark] .admin-stat-card.stat-unused .num{color:#FBBF24!important}

:root[data-color-scheme=dark] .admin-btn-secondary{background:var(--md-surface-container-high)!important;color:var(--ink)!important;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);!important}

/* ===================== 主框架布局 ===================== */
/* 包含：.app、.sidebar、.sb-*、.group-panel、.grp-*、.topbar、.search-overlay*、.toolbar-wrap、
   .filter-tabs、.btn-new、.btn-multi、.tb-*、.content、#content、#viewBox、.fab-*、.to-top、
   .side-scrim、.btn-new-split、.split-menu、.vip-lock-badge、.vip-locked 等 */

#content{scroll-behavior:smooth}

.app{display:flex;height:100vh;height:100dvh}

.sidebar{
  width:var(--sidebar-w);flex:none;background:#FFFFFF;
  border-right:1px solid #eee;display:flex;flex-direction:column;padding:0;
  align-items:center;position:relative;overflow:hidden;z-index:19;height:100%
}
.sb-brand{padding:12px 0 8px;display:flex;flex-direction:column;align-items:center;border-bottom:none;width:100%}

.sb-brand > * + *{margin-top:2px}
.sb-logo{width:64px;height:64px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background:var(--grad-primary);
  display:grid;place-items:center;flex:none}
.sb-logo img{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block}
.sb-logo svg{width:34px;height:34px;color:#fff}
.sb-brand-text b{font-size:16px;font-weight:600;display:block;line-height:1.1;text-align:center;max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.sb-brand-text small{font-size:12px;color:var(--muted);font-weight:500;display:block;text-align:center;margin-top:0}

.sb-nav{flex:1;overflow-y:auto;padding:10px 4px;width:100%;display:flex;flex-direction:column;align-items:center;}


.sb-nav > * + *{margin-top:2px}

.sb-item{display:flex;flex-direction:column;align-items:center;
  padding:10px 6px 8px;border-radius: 14px;
  border-radius:var(--md-rs-sm);
  font-size:11px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .2s cubic-bezier(.2,0,0,1);
  margin-bottom:1px;position:relative;width:56px;text-align:center;border:1px solid transparent}


.sb-item > * + *{margin-top:3px}
.sb-item:hover{background:var(--md-surface-container-high)}
.sb-item.active{
  color:var(--md-primary);font-weight:600;
  background:linear-gradient(to left, var(--brand-cyan-soft), var(--md-primary-container));
  border-color:transparent
}
.sb-item.active::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;
  border-radius:0 2px 2px 0;background:var(--grad-primary)}
.sb-icon{width:28px;height:28px;border-radius: 14px;
  border-radius:var(--md-rs-sm);display:grid;place-items:center;flex:none;background:transparent}
.sb-icon svg{width:20px;height:20px;color:inherit;stroke-width:2}

.sb-lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10.5px;line-height:1.2;width:100%}

.sb-item.sb-group-mgr{display:none}
.sb-count{position:absolute;top:4px;right:2px;font-size:9px;font-weight:700;padding:1px 5px;border-radius:999px;
  background:var(--err);color:#fff;min-width:16px;text-align:center;line-height:1.4;height:16px;display:grid;place-items:center}
.sb-count:empty,.sb-item:not(.active) .sb-count{display:none}
.sb-msg-badge{position:absolute;top:4px;right:2px;font-size:9px;font-weight:700;padding:1px 5px;border-radius:999px;background:var(--err,#E5484D);color:#fff;min-width:16px;text-align:center;line-height:1.4;height:16px;display:grid;place-items:center;z-index:3}
.sb-msg-badge:empty{display:none}
.sb-item.vip-locked{opacity:.5;cursor:not-allowed}
.sb-item.vip-locked:hover{background:transparent}
.sb-item.vip-locked .sb-vip-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background: #8B5CF6;
  background:var(--md-primary);box-shadow:0 0 0 2px var(--md-surface)}
.ac-row.vip-locked{opacity:.55}
.ac-row.vip-locked .r-arrow{color:var(--md-primary)}
.vip-lock-badge{font-size:10px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--md-primary),var(--md-secondary));padding:2px 8px;border-radius:999px;margin-left:auto;align-self:center}
.bk-card.vip-locked{opacity:.7}
.bk-card.vip-locked .bk-head{padding-right:0}

.group-panel{width:220px;flex:none;background: #FBFAFF;
  background:var(--md-surface-container-low);border-right: 1px solid #C9BBE8;
  border-right:1px solid var(--md-outline-var);
  display:flex;flex-direction:column;overflow:hidden;z-index:18;height:100%}
.group-panel.hidden{display:none}
.gp-head{padding:16px 16px 12px;display:flex;align-items:center;justify-content:space-between;flex:none}
.gp-head span{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:.2px}
.gp-body{flex:1;overflow-y:auto;padding:8px 10px}

.grp-list{padding:0;display:flex;flex-direction:column;}


.grp-list > * + *{margin-top:2px}
.grp-item{display:flex;align-items:center;padding:10px 12px;border-radius: 14px;
  border-radius:var(--md-rs-sm);
  font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;transition:all .18s;
  border:1.5px solid transparent;position:relative;touch-action:manipulation}

.grp-item > * + *{margin-left:10px}
.grp-item .g-ic{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  flex:none}
.grp-item .g-ic svg{width:16px;height:16px;color:#fff}
.grp-item:hover{background:var(--md-surface-container-high)}

.grp-item.active{
  color:var(--md-primary);font-weight:600;
  background:linear-gradient(to left, var(--brand-cyan-soft), var(--md-primary-container));border-color:transparent
}
.grp-item.active::before{content:none} 
.grp-label{flex:1;min-width:0;white-space:nowrap;overflow:visible;text-overflow:clip;font-size:13px;line-height:1.3}
.grp-del{margin-left:6px;width:20px;height:20px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:transparent;
  color:var(--muted-2);display:grid;place-items:center;opacity:0;flex:none;transition:all .15s}
.grp-item:hover .grp-del{opacity:1}
.grp-del:hover{background:var(--md-error-container);color:var(--md-error)}

.grp-rename{margin-left:6px;width:20px;height:20px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:transparent;
  color:var(--muted-2);display:grid;place-items:center;opacity:0;flex:none;transition:all .15s}
.grp-item:hover .grp-rename{opacity:1}
.grp-rename:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}

.grp-list.editing .grp-item{padding-right:8px;border-color: #C9BBE8;
  border-color:var(--md-outline-var);background: #FFFFFF;
  background:var(--md-surface);}
.grp-list.editing .grp-item.active{background: #EDE9FE;
  background:var(--md-primary-container);}
.grp-list.editing .grp-del{opacity:1}
.grp-list.editing .grp-rename{opacity:1}
.grp-list.editing .grp-item.dragging{opacity:.5;background:var(--md-surface-container-high);box-shadow:var(--shadow)}
.grp-list.editing .grp-item.drag-over{border-top: 2px solid #8B5CF6;
  border-top:2px solid var(--md-primary);padding-top:8px}
.grp-edit-exit{flex:none;width:28px;height:28px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:transparent;color:var(--muted);display:none;place-items:center;cursor:pointer;transition:all .15s}
.grp-edit-exit.show{display:grid}
.grp-edit-exit:hover{background:var(--md-surface-container-high);color:var(--ink)}
.grp-edit-exit svg{width:16px;height:16px}

.gp-head-acts{display:flex;align-items:center;}


.gp-head-acts > * + *{margin-left:4px}

.grp-list.editing .grp-item[data-group]:not([data-group="__all"]){cursor:grab}
.grp-list.editing .grp-item.dragging{cursor:grabbing}

.grp-panel-close{display:none !important}
.grp-empty{font-size:12px;color:var(--muted);padding:14px 12px;line-height:1.5;text-align:center}
.grp-add-bottom{display:flex;align-items:center;justify-content:center;width:calc(100% - 16px);margin:8px auto 0;padding:9px 12px;border: 1.5px dashed #7C6FA8;
  border:1.5px dashed var(--md-outline);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);color:var(--md-primary);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .14s}

.grp-add-bottom > * + *{margin-left:6px}
.grp-add-bottom:hover{background: #EDE9FE;
  background:var(--md-primary-container);border-style:solid}

.grp-edit-bottom{display:flex;align-items:center;justify-content:center;width:calc(100% - 16px);margin:8px auto 0;padding:9px 12px;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .14s}


.grp-edit-bottom > * + *{margin-left:6px}
.grp-edit-bottom svg{width:15px;height:15px}
.grp-edit-bottom:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.grp-edit-bottom.editing{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}

.main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden;height:100%}

.topbar{display:flex;align-items:center;padding:8px 20px;background: #FFFFFF;
  background:var(--md-surface);
  position:sticky;top:0;z-index:10;flex:none;
  height:64px;overflow:hidden;transition:height .25s ease,padding .25s ease,opacity .25s ease;will-change:height,opacity}


.topbar > * + *{margin-left:12px}

/* ===================== 顶栏隐藏动画 ===================== */
/* 用 height:0 折叠布局空间（box-sizing:border-box 下 padding 也被包含），
   替代 margin-top:-64px 瞬间切换，避免下方分组标签突兀上移。
   不用 transform:translateY(-100%) 是因为它与 height 同步 transition 会在
   中间帧产生视觉间隙（topbar 视觉底边与 content 顶部之间出现背景色空白）。 */
.topbar.hide{height:0;padding-top:0;padding-bottom:0;opacity:0;pointer-events:none}
.hamb{display:none;width:40px;height:40px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:transparent;
  color:var(--muted);place-items:center;flex:none;transition:background .15s}
.hamb:hover{background:var(--md-surface-container-high)}
.hamb svg{width:22px;height:22px}
.tb-header{display:flex;align-items:center;flex:1;min-width:0}

.tb-header > * + *{margin-left:10px}
.tb-icon{width:40px;height:40px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background:var(--grad-primary);
  display:grid;place-items:center;flex:none}
.tb-icon svg{width:22px;height:22px;color:#fff}
.tb-titles{min-width:0}
.tb-titles b{font-size:16px;font-weight:600;display:block;line-height:1.3;color:var(--ink)}
.tb-titles small{font-size:12px;color:var(--muted);font-weight:400}


.tb-search{width:40px;height:40px;border-radius: 28px;
  border-radius:var(--md-rs-full);border:none;background:transparent;color:var(--md-on-surface-variant);cursor:pointer;display:grid;place-items:center;flex:none;transition:background .15s}
.tb-search:hover{background:var(--md-surface-container-high)}
.tb-search svg{width:20px;height:20px}

.search-overlay{position:absolute;left:0;right:0;top:0;bottom:0;background: #FFFFFF;
  background:var(--md-surface);display:flex;align-items:center;padding:0 16px;z-index:10;transform:translateY(-100%);opacity:0;visibility:hidden;transition:transform .25s cubic-bezier(.2,.9,.3,1),opacity .2s,visibility .2s}


.search-overlay > * + *{margin-left:8px}
.search-overlay.open{transform:translateY(0);opacity:1;visibility:visible}
.search-overlay-back{width:40px;height:40px;border-radius: 28px;
  border-radius:var(--md-rs-full);border:none;background:transparent;color:var(--md-on-surface-variant);cursor:pointer;display:grid;place-items:center;flex:none;transition:background .15s}
.search-overlay-back:hover{background:var(--md-surface-container-high)}
.search-overlay-back svg{width:22px;height:22px}
.search-overlay-field{flex:1;display:flex;align-items:center;background:var(--md-surface-container);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:0 14px;height:42px;transition:border-color .15s}

.search-overlay-field > * + *{margin-left:8px}
.search-overlay-field:focus-within{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.search-overlay-icon{width:18px;height:18px;color:var(--md-muted);flex:none}
.search-overlay-field input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;color:var(--md-on-surface);height:100%;font-family:inherit}
.search-overlay-field input::placeholder{color:var(--md-muted)}
.search-overlay-clear{width:24px;height:24px;border-radius:50%;border:none;background:transparent;color:var(--md-muted);cursor:pointer;display:grid;place-items:center;flex:none;transition:background .15s}
.search-overlay-clear:hover{background:var(--md-surface-container-high)}
.search-overlay-clear svg{width:16px;height:16px}

.toolbar-wrap{display:flex;align-items:center;padding:10px 20px;flex-shrink:0;flex-wrap:wrap;justify-content:space-between;background: #FFFFFF;
  background:var(--md-surface);
  position:relative;z-index:5}


.toolbar-wrap > * + *{margin-left:10px}

.filter-tabs{display:flex;flex-wrap:wrap}


.filter-tabs > * + *{margin-left:6px}
.ftab{padding:7px 16px;border-radius: 28px;
  border-radius:var(--md-rs-full);font-size:13px;font-weight:500;
  border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);background: #FFFFFF;
  background:var(--md-surface);color:var(--muted);cursor:pointer;transition:all .18s;white-space:nowrap;
  height:36px;display:inline-flex;align-items:center}
.ftab:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);color:var(--md-primary)}
.ftab.active{background:var(--grad-primary-soft);color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);font-weight:600}

.tool-right{display:flex;align-items:center;margin-left:auto;flex-wrap:wrap;position:relative}


.tool-right > * + *{margin-left:8px}
.seg{display:flex;background:var(--md-surface-container-high);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:4px;}

.seg > * + *{margin-left:2px}
.seg button{border:none;background:transparent;color:var(--muted);padding:7px 11px;border-radius:8px;
  display:grid;place-items:center;transition:all .15s;font-size:13px}
.seg button svg{width:17px;height:17px}
.seg button.active{background: #FFFFFF;
  background:var(--md-surface);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}
.seg button:active{transform:scale(.94)}


.btn-new{border-radius:20px;padding:0 24px;height:40px;font-size:14px;font-weight:600;color:var(--md-on-primary);
  background:var(--grad-primary);display:inline-flex;align-items:center;transition:all .2s cubic-bezier(.2,0,0,1);
  letter-spacing:.03em;line-height:1;box-shadow:var(--shadow-brand)}



.btn-new > * + *{margin-left:8px}
.btn-new svg{width:18px;height:18px}
.btn-new:hover{background:var(--grad-primary-hover);box-shadow:var(--shadow-brand-hover);transform:translateY(-1px)}
.btn-new:active{transform:translateY(0) scale(.97);box-shadow:var(--shadow-brand)}

.btn-new.outline{background:transparent;color:var(--md-primary);border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);
  box-shadow:none}
.btn-new.outline:hover{background: #EDE9FE;
  background:var(--md-primary-container);box-shadow:none}

.btn-multi{border-radius:20px;padding:0 16px;height:36px;font-size:13px;font-weight:600;color:var(--md-primary);
  background:transparent;border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);display:inline-flex;align-items:center;cursor:pointer;
  transition:all .15s;flex:none;letter-spacing:.02em}


.btn-multi > * + *{margin-left:6px}
.btn-multi svg{width:17px;height:17px}
.btn-multi:hover{background: #EDE9FE;
  background:var(--md-primary-container);}
.btn-multi.active{background: #8B5CF6;
  background:var(--md-primary);color:var(--md-on-primary);border-color:transparent;box-shadow:var(--shadow-brand)}
.btn-multi:active{transform:scale(.96)}

.tb-account{display:inline-flex;align-items:center;margin-left:auto;background:var(--md-surface-container-high);
  border:1.5px solid transparent;border-radius: 28px;
  border-radius:var(--md-rs-full);padding:4px 12px 4px 5px;cursor:pointer;
  transition:all .15s;flex:none;height:40px}


.tb-account > * + *{margin-left:8px}
.tb-account:hover{background:var(--md-surface-container-high);border-color: #C9BBE8;
  border-color:var(--md-outline-var);}
.tb-account .ava{width:32px;height:32px;border-radius:50%;background:var(--grad-primary);
  color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none;overflow:hidden}
.tb-account .ava img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.tb-account-info{text-align:left;line-height:1.2}
.tb-account-info b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.tb-account-info small{font-size:10.5px;color:var(--muted);display:block}

.tb-more{display:none;width:40px;height:40px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:transparent;color:var(--muted);
  align-items:center;justify-content:center;cursor:pointer;transition:background .15s;flex:none;margin-left:4px}
.tb-more:hover{background:var(--md-surface-container-high)}
.tb-more svg{width:22px;height:22px}
.tb-more-menu{position:fixed;top:auto;right:auto;z-index:50;background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);
  border-radius: 22px;
  border-radius:var(--md-rs-md);box-shadow:var(--shadow-lg);padding:8px;min-width:150px;display:none;flex-direction:column}
.tb-more-menu > * + *{margin-top:2px}
.tb-more-menu.open{display:flex}
.tbm-item{display:flex;align-items:center;width:100%;padding:10px 12px;border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:13.5px;
  font-weight:600;color:var(--ink);background:transparent;cursor:pointer;transition:background .15s;border:none}

.tbm-item > * + *{margin-left:10px}
.tbm-item:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container)}
.tbm-item.active{background:var(--grad-primary-soft);color:var(--md-primary)}
.tbm-item svg{width:17px;height:17px;flex:none}

.sub-filter{display:flex;align-items:center;padding:8px 20px 0;flex-shrink:0;flex-wrap:wrap}


.sub-filter > * + *{margin-left:10px}

.stats-row{display:flex;align-items:center;padding:8px 20px;font-size:12.5px;color:var(--muted);flex-shrink:0;flex-wrap:wrap}


.stats-row > * + *{margin-left:16px}
.stats-row b{font-weight:600}
.stat-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.stat-dot.blue{background: #8B5CF6;
  background:var(--md-primary);}
.stat-dot.purple{background:var(--md-secondary)}
.stat-dot.red{background:var(--err)}

.content{flex:1;min-height:0;overflow-y:auto;padding:20px 24px;background:var(--bg)}
#viewBox{transition:opacity .2s ease, transform .2s ease}
#viewBox.switching{opacity:0;transform:translateY(8px)}

#viewBox.no-anim .card,
#viewBox.no-anim .row-item,
#viewBox.no-anim .img-card,
#viewBox.no-anim .key-card,
#viewBox.no-anim .card-soft,
#viewBox.no-anim .recycle-item,
#viewBox.no-anim .doc-empty{animation:none!important}

.side-scrim{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.35);z-index:18;opacity:0;pointer-events:none;transition:opacity .25s}
.side-scrim.show{opacity:1;pointer-events:auto}

.float-fab{position:fixed;right:20px;bottom:calc(120px + env(safe-area-inset-bottom,0px));z-index:18;transition:opacity .25s,transform .25s}

body.multi-on .float-fab,
body.fab-hide .float-fab,
body.side-open .float-fab{opacity:0;transform:translateY(120%);pointer-events:none}

.to-top{position:fixed;right:20px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:41;
  width:42px;height:42px;border-radius:50%;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);
  background: #FFFFFF;
  background:var(--md-surface);color:var(--md-primary);display:grid;place-items:center;
  cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s,transform .2s,visibility 0s linear .2s}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .2s,transform .2s}
.to-top:hover{background: #EDE9FE;
  background:var(--md-primary-container);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.to-top svg{width:18px;height:18px}
body.multi-on .to-top{opacity:0;pointer-events:none}
.fab-main{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;padding:0;border-radius:50%;background:var(--grad-primary);color:#fff;
  font-size:0;box-shadow:var(--shadow-brand);transition:all .18s;cursor:pointer;border:none}
.fab-main svg{width:27px;height:27px;flex:none}
.fab-main:disabled,.fab-main[hidden]{display:none}

.btn-new-split{display:none}

.btn-new-split .btn-new{border-radius: 28px;
  border-radius:var(--md-rs-full); 0 0 var(--md-rs-full);padding-right:16px}

.btn-new-caret{width:32px;margin-left:0;border:none;border-radius:0 var(--md-rs-full) var(--md-rs-full) 0;
  background:var(--grad-primary);color:var(--md-on-primary);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .15s;flex:none;
  border-left:1.5px solid rgba(255,255,255,.42)}
.btn-new-caret svg{width:15px;height:15px;transition:transform .15s}
.btn-new-caret.open svg{transform:rotate(180deg)}

.btn-new-split:not(.no-caret){box-shadow:var(--shadow-brand);border-radius: 28px;
  border-radius:var(--md-rs-full);transition:all .2s cubic-bezier(.2,0,0,1)}
.btn-new-split:not(.no-caret):hover{transform:translateY(-1px);box-shadow:var(--shadow-brand-hover)}
.btn-new-split:not(.no-caret) .btn-new,
.btn-new-split:not(.no-caret) .btn-new-caret{box-shadow:none}
.btn-new-split:not(.no-caret) .btn-new:hover,
.btn-new-split:not(.no-caret) .btn-new-caret:hover{transform:none;background:var(--grad-primary-hover)}

.btn-new-split.no-caret .btn-new{border-radius: 28px;
  border-radius:var(--md-rs-full);padding-right:24px}
.btn-new-split.no-caret .btn-new-caret{display:none}
.btn-new-split.no-caret{box-shadow:none}
.split-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:45;min-width:196px;
  background: #FFFFFF;
  background:var(--md-surface);border:1.5px solid var(--line);border-radius: 22px;
  border-radius: 22px;
  border-radius:var(--md-rs-md);
  box-shadow:var(--shadow-lg);padding:6px;display:none;animation:fadeUp .16s ease both}
.split-menu.show{display:block}
.split-menu button{display:flex;align-items:center;width:100%;border:none;background:transparent;
  padding:10px 12px;border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:13.5px;font-weight:600;color:var(--ink);text-align:left;
  cursor:pointer;transition:background .12s;white-space:nowrap}

.split-menu button > * + *{margin-left:10px}
.split-menu button svg{width:17px;height:17px;color:var(--md-primary);flex:none}
.split-menu button:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.split-menu button:active{transform:scale(.98)}

.sb-item.active::before{animation:barIn .25s cubic-bezier(.34,1.4,.64,1) both}
@keyframes barIn{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}

.fab-main{animation:fabIn .35s cubic-bezier(.34,1.4,.64,1) both}
@keyframes fabIn{from{transform:scale(.6) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}

/* ===================== 文档列表 ===================== */
/* 包含：.card、.card-*、.row-table、.row-item、.row-cb、.row-tag、.row-info、.row-status、.row-acts、
   .empty、.em-ic、.grid、.list-mode、.doc-grid、.doc-card 等 */

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.list-mode .grid{grid-template-columns:1fr}

.card{background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:14px 16px;
  position:relative;cursor:pointer;transition:all .2s cubic-bezier(.2,0,0,1);overflow:hidden;
  box-shadow:none;outline:2px solid transparent;outline-offset:-2px;display:flex;flex-direction:column;touch-action:manipulation}


.card > * + *{margin-top:8px}
.card:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);box-shadow:none;transform:translateY(-1px)}
.card:active{transform:scale(.985)}

.card-head{display:flex;align-items:center;justify-content:space-between;}


.card-head > * + *{margin-left:10px}

.card .ttl{font-size:17px;font-weight:500;letter-spacing:.1px;line-height:1.4;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.card-acts{display:flex;flex:none;margin-left:auto}

.card-acts > * + *{margin-left:4px}

.c-act{width:34px;height:34px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:var(--md-surface-container-high);color:var(--muted);
  display:grid;place-items:center;border:none;cursor:pointer;transition:all .15s;flex:none}
.c-act:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.c-act svg{width:17px;height:17px}
.c-act:active{transform:scale(.9);background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.c-act.danger:hover{background:var(--md-error-container);color:var(--md-error)}
.c-act.danger:active{background:var(--md-error-container);color:var(--md-error)}
.c-act:disabled{opacity:.35;cursor:not-allowed}
.c-act:disabled:hover{background:var(--md-surface-container-high);color:var(--muted)}
.c-act:disabled:active{transform:none;background:var(--md-surface-container-high);color:var(--muted)}

.card-stats{display:flex;align-items:center;font-size:13px;color:var(--muted);
  flex-wrap:wrap}


.card-stats > * + *{margin-left:10px}
.card-stats span{display:inline-flex;align-items:center;white-space:nowrap}

.card-stats span > * + *{margin-left:2px}

.card-stats svg{display:none}
.card-stats b{color:var(--ink);font-weight:600}
.stat-sep{color:var(--md-outline-var);font-weight:300}

.card-time{font-size:12.5px;color:var(--muted-2)}
.card .tags{display:flex;flex-wrap:wrap;align-items:center}

.card .tags > * + *{margin-left:6px}

.tag{font-size:11.5px;font-weight:500;opacity:.85;padding:4px 11px;border-radius: 10px;
  border-radius:var(--md-rs-xs);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.tag.html{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.tag.lock{background:var(--md-error-container);color:var(--md-error)}
.card .more{position:absolute;top:10px;right:10px;width:28px;height:28px;border:none;border-radius: 28px;
  border-radius:var(--md-rs-full);
  background: #FFFFFF;
  background:var(--md-surface);color:var(--muted-2);display:grid;place-items:center;opacity:0;transition:opacity .15s;
  border:1.5px solid var(--md-outline-var)}
.card:hover .more{opacity:1}
.card .more:hover{background:var(--md-surface-container-high);color:var(--ink)}
.card .more svg{width:17px;height:17px}
.list-mode .card{padding:14px 18px}
.list-mode .card .card-head{align-items:center}

.card.selected{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);box-shadow:none;position:relative;outline-color:var(--md-primary)}
.row-item.selected{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);position:relative;outline-color:var(--md-primary)}

.row-table{display:flex;flex-direction:column;gap:0}

.row-item{display:flex;align-items:center;background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:14px 18px;margin-bottom:10px;transition:all .2s cubic-bezier(.2,0,0,1);
  outline:2px solid transparent;outline-offset:-2px;cursor:pointer;touch-action:manipulation}


.row-item > * + *{margin-left:14px}
.row-item:last-child{margin-bottom:0}
.row-item:hover{background:var(--md-surface-container-high);transform:translateX(2px)}
.row-item:active{transform:scale(.99)}
.row-cb{flex:none;width:18px;height:18px;border: 2px solid #7C6FA8;
  border:2px solid var(--md-outline);border-radius:4px;
  transition:opacity .2s cubic-bezier(.2,.9,.3,1),border-color .2s cubic-bezier(.2,.9,.3,1),background .2s cubic-bezier(.2,.9,.3,1);cursor:pointer;display:grid;place-items:center;opacity:0;pointer-events:none}
.multi-on .row-cb{opacity:1;pointer-events:auto}
.row-cb.checked{background: #8B5CF6;
  background:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.row-cb.checked::after{content:'';width:10px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.row-tag{font-size:12px;font-weight:600;padding:4px 12px;border-radius: 28px;
  border-radius:var(--md-rs-full);flex:none;white-space:nowrap}
.row-tag.blue{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.row-tag.green{background:var(--md-ok-container);color:var(--ok)}
.row-tag.red{background:var(--md-error-container);color:var(--err)}
.row-info{flex:1;min-width:0}

.row-info b{font-size:15px;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.row-info small{font-size:12px;color:var(--muted)}
.row-status{flex:none;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius: 28px;
  border-radius:var(--md-rs-full);white-space:nowrap}
.row-status.ok{background:var(--md-ok-container);color:var(--ok)}
.row-status.warn{background:var(--md-warn-container);color:var(--md-warn)}
.row-status.err{background:var(--md-error-container);color:var(--err)}
.row-status.muted{background:var(--md-surface-container-high);color:var(--muted)}
.row-acts{display:flex;flex:none}

.row-acts > * + *{margin-left:4px}

.row-acts a{font-size:12.5px;font-weight:500;color:var(--muted);text-decoration:none;padding:6px 14px;
  border-radius: 28px;
  border-radius:var(--md-rs-full);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);background:transparent;
  transition:all .15s;white-space:nowrap;cursor:pointer;line-height:1.4}
.row-acts a:hover{color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);border-color:transparent}
.row-acts a.danger:hover{color:var(--err);background:var(--md-error-container);border-color:transparent}
.row-acts a:active{transform:scale(.95)}

.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty .em-ic{width:56px;height:56px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);
  display:grid;place-items:center;margin:0 auto 14px}
.empty .em-ic svg{width:28px;height:28px}
.empty h3{font-size:15px;color:var(--ink);margin-bottom:6px;font-weight:600}
.empty p{font-size:13px}

.doc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.doc-card{display:flex;align-items:center;padding:12px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);
  border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);cursor:pointer;transition:all .15s;text-align:left;font-family:inherit;color:var(--ink)}

.doc-card > * + *{margin-left:11px}
.doc-card:hover{background:var(--md-surface-container-high);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.doc-card.active{background:var(--grad-primary-soft);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.doc-card .d-ic{width:34px;height:34px;border-radius:10px;background:var(--grad-primary);color:#fff;display:grid;place-items:center;flex:none}
.doc-card .d-ic svg{width:18px;height:18px}
.doc-card .d-meta{min-width:0}
.doc-card .d-meta b{font-size:13.5px;font-weight:600;display:block;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-card .d-meta small{font-size:11px;color:var(--md-muted);display:block}

/* ===================== 文档编辑器 ===================== */
/* 包含：#drawer、.drawer、.d-*（d-head/d-head-actions/d-expand/d-close/d-back/d-body/d-foot/d-tools/d-tool/
   d-foot-drag/d-foot-tools/d-tools-row/d-expand-in-foot/d-save/d-collapse 等）、
   #editor、.editor-*（editor-wrap/editor-active-line/editor-gutter/editor-mirror/editor-search）、
   .ln-container/.ln-gutter、.drawer .preview-box、@keyframes blink 等 */

.drawer{position:fixed;top:0;right:0;height:100%;height:100vh;height:100dvh;width:92vw;width:min(540px,92vw);background:#fff;background:var(--md-surface-container);z-index:46;
  display:flex;flex-direction:column;transform:translateX(102%);transition:transform .3s cubic-bezier(.2,.9,.3,1),width .2s ease,height .25s ease;
  border-radius: 26px;
  border-radius:var(--md-rs-lg); 0 0 var(--md-rs-lg);overflow:hidden;will-change:transform}
.drawer.show{transform:translateX(0)}

.drawer.half{width:75%!important;border-radius:0}

.drawer.fullscreen{width:100%!important;border-radius:0}
.drawer .d-head{display:flex;align-items:center;padding:6px 12px;border-bottom:1px solid rgba(0,0,0,.08);background: #FFFFFF;
  background:var(--md-surface);}

.drawer .d-head > * + *{margin-left:8px}
.drawer .d-head .d-ic{width:36px;height:36px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);
  display:grid;place-items:center;flex:none}
.drawer .d-head .d-ic svg{width:18px;height:18px}
.drawer .d-head h2{font-size:15px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}

.d-head-actions{display:flex;align-items:center;flex:none;background: #EDE9FE;
  background:var(--md-primary-container);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 28px;
  border-radius:var(--md-rs-full);padding:0}


.d-head-actions > * + *{margin-left:2px}
.d-head-actions .d-expand{width:36px;height:36px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:transparent;color:var(--md-on-primary-container);box-shadow:none}
.d-head-actions .d-expand:hover{background:var(--md-surface-container-highest);color:var(--md-primary);box-shadow:none;transform:none}
.d-head-actions .d-expand:active{background: #8B5CF6;
  background:var(--md-primary);color:var(--md-on-primary);transform:scale(.95)}
.d-head-actions .d-expand:disabled{opacity:.4;box-shadow:none;transform:none}
.d-head-actions .d-expand svg{width:18px;height:18px;transition:transform .15s}
.d-expand{width:38px;height:38px;border:none;border-radius: 28px;
  border-radius:var(--md-rs-full);background:var(--md-surface-container);color:var(--md-muted);
  display:grid;place-items:center;transition:background .15s,color .15s;flex:none;cursor:pointer}
.d-expand:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
.d-expand:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.d-expand:active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.d-expand svg{width:18px;height:18px;transition:transform .2s}
.d-close{width:38px;height:38px;border:none;border-radius: 28px;
  border-radius:var(--md-rs-full);background:var(--md-surface-container);color:var(--md-muted);
  display:grid;place-items:center;transition:background .15s,color .15s;flex:none;cursor:pointer}
.d-close:hover{background:var(--md-error-container);color:var(--err)}
.d-close:active{background:var(--md-error-container);color:var(--err)}
.d-close svg{width:18px;height:18px}

.d-back{width:38px;height:38px;border:none;border-radius: 28px;
  border-radius:var(--md-rs-full);background:var(--md-surface-container);color:var(--md-muted);
  display:grid;place-items:center;transition:background .15s,color .15s;flex:none;cursor:pointer}
.d-back:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
.d-back:active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.d-back svg{width:18px;height:18px}

.d-head-spacer{flex:1;min-width:0}
.d-tools{display:flex;align-items:center;padding:8px 16px;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);background:var(--md-surface-container);position:relative;flex-wrap:wrap}

.d-tools > * + *{margin-left:6px}
.d-tool{width:38px;height:38px;border:none;border-radius: 28px;
  border-radius:var(--md-rs-full);background:var(--md-surface-container);color:var(--md-muted);
  display:grid;place-items:center;transition:background .15s,color .15s;flex:none;cursor:pointer}
.d-tool:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
.d-tool.active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.d-tool:active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.d-tool svg{width:18px;height:18px}
.d-tool-sep{width:1px;height:22px;background: #C9BBE8;
  background:var(--md-outline-var);margin:0 4px;flex:none}
.d-body{flex:1;padding:12px 12px;display:flex;flex-direction:column;min-height:0}


.editor-wrap{display:flex;flex:1;min-height:0;position:relative;background: #FFFFFF;
  background:var(--md-surface);flex-direction:column}
.editor-code-area{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}
.editor-wysiwyg{display:none;flex:1;min-height:0;overflow:auto;padding:18px 22px;line-height:1.8;font-size:14.5px;
  word-break:break-word;background: #FBFAFF;
  background:var(--md-surface-container-low);border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);}
.editor-wysiwyg.show{display:block}
.editor-wysiwyg h1,.editor-wysiwyg h2,.editor-wysiwyg h3,.editor-wysiwyg h4,.editor-wysiwyg h5,.editor-wysiwyg h6{margin:.65em 0 .4em;font-weight:700;line-height:1.35}
.editor-wysiwyg h1{font-size:1.65em}.editor-wysiwyg h2{font-size:1.4em}.editor-wysiwyg h3{font-size:1.2em}.editor-wysiwyg h4{font-size:1.05em}
.editor-wysiwyg p{margin:.45em 0}
.editor-wysiwyg ul,.editor-wysiwyg ol{margin:.45em 0;padding-left:1.6em}
.editor-wysiwyg li{margin:.2em 0}
.editor-wysiwyg blockquote{border-left: 3px solid #8B5CF6;
  border-left:3px solid var(--md-primary);padding:3px 14px;color:var(--md-muted);margin:.55em 0;background:var(--md-surface-container);border-radius:0 8px 8px 0}
.editor-wysiwyg code{background:var(--md-surface-container-high);padding:1px 6px;border-radius:6px;font-size:.9em;font-family:ui-monospace,Consolas,Menlo,monospace}
.editor-wysiwyg pre{background:var(--md-surface-container-high);padding:12px 14px;border-radius:10px;overflow:auto;margin:.55em 0;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);}
.editor-wysiwyg pre code{background:none;padding:0;display:block}
.editor-wysiwyg a{color:var(--md-primary);text-decoration:underline}
.editor-wysiwyg hr{border:none;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);margin:1.1em 0}
.editor-wysiwyg table{border-collapse:collapse;margin:.55em 0;max-width:100%}
.editor-wysiwyg th,.editor-wysiwyg td{border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);padding:6px 11px;text-align:left}
.editor-wysiwyg img{max-width:100%;border-radius:8px}
.editor-wysiwyg .wy-empty{color:var(--md-muted);text-align:center;padding:40px 0;font-size:13px}


.editor-active-line{position:absolute;left:0;right:0;background: #EDE9FE;
  background:var(--md-primary-container);opacity:.35;
  pointer-events:none;z-index:0;border-radius:3px;transition:top .08s ease;height:0}

.editor-gutter{
  flex:none;width:42px;overflow:hidden;position:relative;z-index:1;
  font-family:inherit;font-size:14px;line-height:1.75;
  color:var(--md-muted-2);
  background: #FBFAFF;
  background:var(--md-surface-container-low);
  border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-right: 1px solid #C9BBE8;
  border-right:1px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm); 0 0 var(--md-rs-sm)
}
.ln-container{position:absolute;top:0;left:0;right:0;padding:0 8px 0 0;text-align:right;will-change:transform;display:flex;flex-direction:column}
.ln-container .ln{height:var(--lh,24px);line-height:var(--lh,24px);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}

.d-body textarea{flex:1;width:100%;resize:none;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-left:none;
  border-radius:0;position:relative;z-index:1;
  padding:0;font-size:14px;line-height:1.75;color:var(--ink);outline:none;font-family:inherit;
  background:transparent;transition:color .2s}

.d-body textarea:focus{border-color: #C9BBE8;
  border-color:var(--md-outline-var);background:transparent}

.editor-search{position:absolute;top:8px;right:12px;z-index:5;display:none;flex-direction:column;
  background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);
  padding:6px;box-shadow:var(--shadow);width:min(420px,calc(100% - 24px));max-width:calc(100% - 24px)}
.editor-search > * + *{margin-top:4px}
.editor-search.show{display:flex}
.editor-search-row{display:flex;align-items:center;width:100%}

.editor-search-row > * + *{margin-left:3px}
.editor-search input{flex:1;min-width:0;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);outline:none;
  background: #FBFAFF;
  background:var(--md-surface-container-low);font-size:13px;color:var(--ink);padding:6px 9px;
  border-radius: 10px;
  border-radius:var(--md-rs-xs);transition:border-color .15s,background .15s}
.editor-search input:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #FFFFFF;
  background:var(--md-surface);}
.editor-search .search-count{font-size:12px;color:var(--md-muted);flex:none;font-variant-numeric:tabular-nums;
  min-width:38px;text-align:center;padding:0 2px}
.editor-search button{width:28px;height:28px;border:none;border-radius:50%;background:transparent;
  color:var(--md-muted);cursor:pointer;display:grid;place-items:center;flex:none;transition:background .15s}
.editor-search button:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
.editor-search button:active{background: #EDE9FE;
  background:var(--md-primary-container);}
.editor-search button svg{width:14px;height:14px}
.editor-search .s-text-btn{width:auto;padding:0 10px;border-radius: 28px;
  border-radius:var(--md-rs-full);font-size:12px;
  font-weight:500;color:var(--md-muted)}
.editor-search .s-text-btn:hover{color:var(--md-primary)}
/* ===================== 大小写切换按钮 =====================
 * 默认不区分大小写（aria-pressed=false），点击后区分大小写（aria-pressed=true，主题色高亮） */
.editor-search .s-case-btn{width:auto;min-width:30px;padding:0 7px;border-radius: 10px;
  border-radius:var(--md-rs-xs);
  font-size:12px;font-weight:700;letter-spacing:.5px;color:var(--md-muted)}
.editor-search .s-case-btn:hover{color:var(--md-primary)}
.editor-search .s-case-btn[aria-pressed="true"]{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.editor-search .s-case-btn[aria-pressed="true"]:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}

.editor-mirror{position:absolute;left:-99999px;top:0;visibility:hidden;pointer-events:none;
  font-family:inherit;font-size:14px;line-height:1.75;padding:0;
  white-space:pre-wrap;overflow-wrap:break-word;box-sizing:border-box}

#editor{scrollbar-width:none;touch-action:pan-y;will-change:scroll-position}
#editor::-webkit-scrollbar{width:0;height:0;display:none}
.d-foot{display:flex;align-items:center;padding:6px 14px;border-top:1px solid rgba(0,0,0,.08);position:relative;overflow:hidden;background: #FFFFFF;
  background:var(--md-surface);}

.d-foot > * + *{margin-left:10px}

.d-foot::before{content:'';position:absolute;top:0;left:0;bottom:0;width:100%;
  transform:translateZ(0) scaleX(var(--editor-progress,0));transform-origin:left center;
  background:linear-gradient(90deg,var(--md-primary-container),var(--md-secondary));opacity:.35;pointer-events:none;
  will-change:transform;z-index:0}

.d-foot .d-foot-drag{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;cursor:pointer;touch-action:none}
.d-foot>.saved,.d-foot>.char-count,.d-foot>.d-expand-in-foot,.d-foot>.d-save,.d-foot>.d-toggle-tools{position:relative;z-index:1}

.d-foot .saved{font-size:12px;color:var(--muted);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.d-foot .char-count{font-size:12px;color:var(--md-muted);flex:none;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.01em;pointer-events:none}

/* ===================== 底部工具栏：椭圆按钮组合 =====================
 * .d-tools-row 作为容器，内部按钮组/独立按钮之间用 gap 间隔
 * 缩放按钮组(.d-foot-tools)保持椭圆容器;换行/AI 工具为独立椭圆单个按钮(.d-tool-pill)
 * 窄屏时整个 .d-tools-row 横向滑动 */
.d-tools-row{display:flex;align-items:center;padding:0 16px;margin:8px 16px 0;background:transparent;max-height:52px;overflow:hidden;border-radius:0;transition:max-height .25s cubic-bezier(.2,.9,.3,1),margin .25s cubic-bezier(.2,.9,.3,1)}


/* ===================== 底部工具栏：椭圆按钮组合 =====================
 * .d-tools-row 作为容器，内部按钮组/独立按钮之间用 gap 间隔
 * 缩放按钮组(.d-foot-tools)保持椭圆容器;换行/AI 工具为独立椭圆单个按钮(.d-tool-pill)
 * 窄屏时整个 .d-tools-row 横向滑动 */
.d-tools-row > * + *{margin-left:10px}
.d-tools-row.collapsed{max-height:0;margin:0 16px}

/* 椭圆单个按钮:换行/AI 工具按钮 */
.d-tool-pill{display:inline-flex;align-items:center;justify-content:center;height:38px;min-width:38px;padding:0 14px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 28px;
  border-radius:var(--md-rs-full);
  background: #FFFFFF;
  background:var(--md-surface);color:var(--md-on-surface-variant);cursor:pointer;transition:all .15s;font-family:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;flex:none}


/* 椭圆单个按钮:换行/AI 工具按钮 */
.d-tool-pill > * + *{margin-left:5px}
.d-tool-pill svg{width:16px;height:16px;flex:none}
.d-tool-pill:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.d-tool-pill.active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.d-tool-pill:active{transform:scale(.96)}

.d-foot-tools{display:flex;align-items:center;gap:0;padding:0;flex:none;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 28px;
  border-radius:var(--md-rs-full);overflow:hidden;background: #FFFFFF;
  background:var(--md-surface);}
.d-foot-tools .d-tool{width:38px;height:38px;border-radius:0;border:none;background:transparent;color:var(--md-on-surface-variant);cursor:pointer;transition:all .15s;display:grid;place-items:center;flex:none}
.d-foot-tools .d-tool:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.d-foot-tools .d-tool svg{width:18px;height:18px}
.d-foot-tools .d-tool-text{font-size:12px;min-width:32px}

/* AI 工具容器:内部按钮为椭圆单个按钮,gap 间隔 */
.ai-doc-tools{display:flex;align-items:center;padding:0;flex:none}


/* AI 工具容器:内部按钮为椭圆单个按钮 > * + *, gap 间隔 */
.ai-doc-tools > * + *{margin-left:8px}

/* 展开收起按钮:固定在底部 .d-foot 中 */
.d-toggle-tools{width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--md-muted);cursor:pointer;display:grid;place-items:center;flex:none;transition:all .15s}
.d-toggle-tools:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
.d-toggle-tools svg{width:18px;height:18px;transition:transform .25s cubic-bezier(.2,.9,.3,1)}
.d-toggle-tools.collapsed svg{transform:rotate(180deg)}

.d-save{border:none;border-radius:20px;padding:0 24px;height:40px;font-size:14px;font-weight:600;color:var(--md-on-primary);
  background:var(--grad-primary);transition:all .18s;letter-spacing:.02em;display:inline-flex;align-items:center;box-shadow:var(--shadow-brand);flex:none}
.d-save:hover{background:var(--grad-primary-hover);box-shadow:var(--shadow-brand-hover);transform:translateY(-1px)}
.d-save:disabled{opacity:.5;cursor:not-allowed}

.drawer .preview-box{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13px;line-height:1.6;color:var(--md-ink);background: #FBFAFF;
  background:var(--md-surface-container-low);
  white-space:pre-wrap;word-break:break-word}

@keyframes blink{50%{opacity:0}}

/* ===================== 编辑器增强（保存图标/更多/符号栏） ===================== */
.d-doc-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#8b5cf6;font-weight:600;text-align:center;padding:0 6px}
.d-symbar{display:flex;align-items:center;padding:5px 8px;background:var(--bg2,#fff);border-top:1px solid rgba(0,0,0,.05);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}

.d-symbar > * + *{margin-left:2px}
.d-symbar::-webkit-scrollbar{display:none}
.d-sym{flex:0 0 auto;min-width:34px;height:30px;padding:0 6px;border:1px solid rgba(139,92,246,.18);border-radius:7px;background:linear-gradient(180deg,#fff,#f7f5ff);color:#5b4a8a;font-size:13px;font-family:ui-monospace,Consolas,monospace;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s}
.d-sym:active{transform:scale(.94);background:linear-gradient(180deg,#ede9fe,#ddd6fe)}
.d-sym.d-sym-img{color:#8b5cf6}
.d-sym.d-sym-img svg{width:17px;height:17px}
[data-theme="dark"] .d-sym{background:linear-gradient(180deg,#2a2440,#221c38);border-color:rgba(139,92,246,.35);color:#c4b5fd}
[data-theme="dark"] .d-symbar{background:var(--bg2,#1c1729);border-top-color:rgba(255,255,255,.06)}
[data-theme="dark"] .d-doc-title{color:#c4b5fd}
#toolMore svg{width:20px;height:20px}
.editor-more-menu{position:fixed;z-index:99998;min-width:200px;background:var(--bg2,#fff);border:1px solid rgba(139,92,246,.2);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px;animation:menuIn .14s ease}
.editor-more-menu button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 14px;border:0;background:transparent;border-radius:10px;cursor:pointer;text-align:left}

.editor-more-menu button > * + *{margin-top:1px}
.editor-more-menu button:hover{background:rgba(139,92,246,.08)}
.editor-more-menu button b{font-size:14px;color:var(--tx,#3a2f55)}
.editor-more-menu button span{font-size:12px;color:var(--tx3,#9a90b8)}
.editor-more-menu .mm-danger b{color:#ef4444}

/* ===================== 顶栏调整（用户要求） =====================
 * 1) 隐藏左上角退出箭头（如需恢复显示，删除下面 #drawerBack 一行即可）
 * 2) 顶栏按钮组居中显示在屏幕最上方 */
#drawerBack{display:none !important}
.d-head-spacer{display:none}
.d-head{justify-content:center}
/* ===================== 底部快捷符号栏折叠（用户要求） =====================
 * 点击符号栏最左侧的切换图标可隐藏/显示整排快捷符号 */
#symToggle{width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:var(--md-muted);cursor:pointer;display:grid;place-items:center;flex:none;transition:all .15s;position:relative;z-index:1}
#symToggle:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
#symToggle svg{width:18px;height:18px;transition:transform .25s cubic-bezier(.2,.9,.3,1)}
.d-symbar.collapsed{max-height:38px;overflow:hidden;padding:3px 6px}
.d-symbar.collapsed .d-sym{display:none}

/* ===================== 通用组件 ===================== */
/* 包含：.modal-scrim、.modal、.m-*（m-head/m-icon/m-titles/m-acts/m-close/m-warn/m-step/m-tab/m-mini 等）、
   .sheet、.sheet-*（.doc-sheet-scrim/.doc-sheet/.ds-*）、.menu、.menu-*、
   .global-loading、.gl-*、菜单/底部菜单 vip-locked 等 */

.modal-scrim{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(20,28,44,.42);backdrop-filter:blur(4px);
  display:grid;place-items:center;z-index:300;opacity:0;pointer-events:none;transition:opacity .22s;padding:24px}
.modal-scrim.show{opacity:1;pointer-events:auto}

.modal{background: #FFFFFF;
  background:var(--md-surface);border-radius: 26px;
  border-radius:var(--md-rs-lg);padding:24px 24px 18px;width:100%;max-width:460px;
  box-shadow:var(--shadow-lg);transform:scale(.96) translateY(8px);transition:transform .26s cubic-bezier(.2,.9,.3,1);
  max-height:88vh;max-height:88dvh;overflow:auto;position:relative}
.modal-scrim.show .modal{transform:scale(1) translateY(0)}

/* ===================== AI 文档处理大弹窗（PC 端加宽，移动端全屏） ===================== */
.modal-scrim.ai-doc-modal{padding:32px}
.modal-scrim.ai-doc-modal .modal{max-width:880px;max-height:88vh;display:flex;flex-direction:column;padding:22px 24px 16px}
.modal-scrim.ai-doc-modal .modal .m-head{flex:none}
.modal-scrim.ai-doc-modal .modal .m-acts{flex:none;margin-top:14px}

/* ===================== 分享弹窗（双栏加宽） ===================== */
.modal-scrim.share-modal-scrim{padding:28px}
.modal-scrim.share-modal-scrim .modal{max-width:660px;display:flex;flex-direction:column}

.m-head{display:flex;align-items:flex-start;margin-bottom:18px}


.m-head > * + *{margin-left:12px}
.m-icon{width:40px;height:40px;border-radius:12px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);
  display:grid;place-items:center;flex:none}
.m-icon svg{width:21px;height:21px}
.m-icon.danger{background:var(--md-error-container);color:var(--md-error)}
.m-titles{flex:1;min-width:0;padding-top:2px}
.m-titles h3{font-size:17px;font-weight:700;line-height:1.3;margin:0}
.m-titles p{font-size:12.5px;color:var(--md-muted);margin-top:3px;line-height:1.5}

.m-warn{display:flex;align-items:flex-start;margin:12px 0 0;padding:11px 13px;border-radius:12px;
  background:rgba(197,34,40,.07);border:1px solid rgba(197,34,40,.22);color:var(--md-on-surface);font-size:12.5px;line-height:1.55}


.m-warn > * + *{margin-left:9px}
.m-warn svg{flex:none;width:16px;height:16px;color:var(--md-error);margin-top:1px}
.m-close{position:absolute;top:16px;right:16px;width:30px;height:30px;border:none;border-radius:9px;
  background:var(--md-surface-container-high);color:var(--md-muted);display:grid;place-items:center;transition:all .15s;cursor:pointer;font-size:20px;line-height:1}
.m-close:hover{background:var(--md-error-container);color:var(--md-error)}
.m-close svg{width:15px;height:15px}
.modal h3{font-size:17px;font-weight:700;margin:0 0 4px}
.modal label{display:block;font-size:12.5px;font-weight:600;color:var(--md-muted);margin:0 0 6px 2px}

.modal input[type=text],.modal select,.modal textarea{width:100%;padding:11px 13px;font-size:14px;border:1.5px solid #d0c4f0;
  border-radius:9px;background:#fff;outline:none;transition:border-color .15s;color:#333}
.modal input:focus,.modal select:focus,.modal textarea:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #FFFFFF;
  background:var(--md-surface);}

.modal select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237B67A0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px}

.m-step{margin-bottom:16px}
.m-step-label{font-size:12.5px;font-weight:700;color:var(--md-muted);margin-bottom:10px;display:flex;align-items:center;}

.m-step-label > * + *{margin-left:7px}
.m-step-num{width:20px;height:20px;border-radius:50%;background:var(--grad-primary);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;flex:none}
.m-step-extra{margin-left:auto;display:flex;align-items:center;flex:none}

.m-step-extra > * + *{margin-left:6px}
.m-step-hint{font-size:11px;color:var(--muted-2);font-weight:500;padding:2px 8px;background:var(--md-surface-container-high);border-radius:999px}
.m-mini{border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);background:var(--md-surface-container-high);color:var(--md-muted);font-size:11.5px;font-weight:600;padding:4px 11px;border-radius:999px;cursor:pointer;transition:all .15s;font-family:inherit;white-space:nowrap}
.m-mini:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);color:var(--md-primary)}

.m-tabs{display:flex;background:var(--md-surface-container-high);border-radius:12px;padding:4px}


.m-tabs > * + *{margin-left:8px}
.m-tab{flex:1;border:none;background:transparent;color:var(--md-muted);padding:9px 8px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit}
.m-tab.active{background: #FFFFFF;
  background:var(--md-surface);color:var(--ink);box-shadow:var(--shadow-sm)}

.modal .m-acts{display:flex;justify-content:flex-end;margin-top:24px;padding-top:14px;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);}


.modal .m-acts > * + *{margin-left:12px}
.modal .m-acts button{flex:none;min-width:96px;padding:0 24px;height:40px;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none;line-height:1}

.menu{position:fixed;z-index:50;background: #FFFFFF;
  background:var(--md-surface);border:1.5px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:5px;min-width:170px;opacity:0;transform:scale(.96) translateY(-4px);
  transform-origin:top right;pointer-events:none;transition:opacity .14s,transform .14s}
.menu.show{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}
.menu button{display:flex;align-items:center;width:100%;border:none;background:transparent;
  padding:9px 11px;border-radius: 10px;
  border-radius:var(--md-rs-xs);font-size:13px;font-weight:600;color:var(--ink);text-align:left;transition:background .12s}

.menu button > * + *{margin-left:9px}
.menu button svg{width:15px;height:15px;color:var(--muted);flex:none}
.menu button:hover{background:var(--md-secondary-container);color:var(--primary)}
.menu button.danger{color:var(--md-error)}
.menu button.danger:hover{background:var(--md-error-container);color:var(--md-error)}
.menu button:active{transform:scale(.98)}
.menu .sep{height:1px;background:var(--line);margin:4px 3px}
.menu-toggle .mt-badge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--md-surface-container-high);color:var(--muted);flex:none;margin-left:auto}
.menu-toggle.on .mt-badge{background:var(--md-ok-container);color:var(--ok)}

.doc-sheet-scrim{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background:rgba(20,28,44,.42);
  opacity:0;transition:opacity .22s;display:flex;align-items:flex-end;justify-content:center}
.doc-sheet-scrim.show{opacity:1}
.doc-sheet{background: #FFFFFF;
  background:var(--md-surface);width:100%;max-width:480px;border-radius: 22px;
  border-radius:var(--md-rs-md); var(--md-rs-md) 0 0;
  padding:8px 0 14px;box-shadow:var(--shadow-lg);transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.9,.3,1);
  max-height:80vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
.doc-sheet-scrim.show .doc-sheet{transform:translateY(0)}
.ds-handle{width:38px;height:4px;background: #8B5CF6;
  background:var(--md-primary);border-radius:2px;margin:6px auto 8px;
  opacity:.45;cursor:grab;touch-action:none;position:relative;transition:opacity .15s}
.ds-handle::before{content:'';position:absolute;top:-10px;left:-16px;right:-16px;bottom:-10px;}
.ds-handle:active{opacity:.8;cursor:grabbing}
.ds-head{padding:4px 18px 8px}
.ds-ttl{font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-list{padding:0 8px}
.ds-sep{height:1px;background: #C9BBE8;
  background:var(--md-outline-var);margin:4px 8px}
.ds-list button{display:flex;align-items:center;width:100%;border:none;background:transparent;
  padding:13px 11px;border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:14.5px;font-weight:600;color:var(--ink);text-align:left;transition:background .12s;min-height:44px}

.ds-list button > * + *{margin-left:11px}
.ds-list button svg{width:18px;height:18px;color:var(--muted);flex:none}
.ds-list button:hover{background:var(--md-secondary-container)}
.ds-list button.danger{color:var(--md-error)}
.ds-list button.danger:hover{background:var(--md-error-container);color:var(--md-error)}
.ds-list button:active{transform:scale(.98)}
.ds-toggle .ds-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--md-surface-container-high);color:var(--muted);flex:none;margin-left:auto}
.ds-toggle.on .ds-badge{background:var(--md-ok-container);color:var(--ok)}

/* ===================== 菜单/底部菜单 会员锁定 ===================== */
.menu button.vip-locked,.ds-list button.vip-locked{opacity:.5;position:relative}
.menu button.vip-locked:hover,.ds-list button.vip-locked:hover{background:transparent}
.menu button.vip-locked::after,.ds-list button.vip-locked::after{content:'会员';
  margin-left:auto;font-size:10px;font-weight:700;color:#fff;background: #8B5CF6;
  background:var(--md-primary);
  padding:1px 6px;border-radius:999px;letter-spacing:.02em}
.ds-list button.vip-locked::after{font-size:10.5px;padding:2px 7px}

.global-loading{position:fixed;top:0;left:0;right:0;bottom:0;z-index:70;background:rgba(20,28,44,.35);backdrop-filter:blur(2px);
  display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .2s}
.global-loading.show{opacity:1;pointer-events:auto}
.gl-card{background: #FFFFFF;
  background:var(--md-surface);border-radius:20px;padding:24px 32px;display:flex;align-items:center;
  box-shadow:var(--shadow-lg);min-width:200px;animation:glIn .25s cubic-bezier(.2,.9,.3,1.1) both}

.gl-card > * + *{margin-left:14px}
@keyframes glIn{from{opacity:0;transform:scale(.9) translateY(8px)}to{opacity:1;transform:none}}
.gl-spinner{width:22px;height:22px;border: 2.5px solid #EDE9FE;
  border:2.5px solid var(--md-primary-container);
  border-top-color: #8B5CF6;
  border-top-color:var(--md-primary);border-radius:50%;animation:spin .6s linear infinite;flex:none}
.gl-text{font-size:14px;font-weight:600;color:var(--ink)}

/* ===================== 各功能视图 ===================== */
/* 包含：
   - 账号中心：.pc-*、.ac-*（ac-page/ac-hero/ac-upgrade/ac-stats/ac-section/ac-list/ac-row/ac-sel/ac-seg/ac-theme-*/ac-mode-*）
   - 图片：.img-grid、.img-card、.img-*、.img-preview-*、.up-tile*
   - 回收站：.recycle-item、.recycle-batch、.rb-*、#rbCount、#dbCount、.rc-cb
   - 密钥/分享：.key-*、.limit-*、.lg-*（limit-group 系列）、.share-*、.fmt-*、.card-soft、.copy-row、.switch、.panel、.sel-doc、.field
   - 备份：.bk-*、.backup-status、.progress
   - AI 助手：.ai-*（ai-doc-tools/ai-doc-btn/ai-doc-result-*/ai-doc-stop-btn/ai-ctx/ai-quota/ai-clear/ai-pick/ai-msgs/
     ai-empty/ai-bar/ai-input-*/ai-expand/ai-send/ai-pick-panel/ai-expand-overlay/ae-*/ai-wide/ai-split/ai-doc*/ai-ctx-list/
     ai-chat/ai-view-btn 等）、.bubble、.bubble-wrap、.msg-acts、.codeblk、.sel-float、.cursor、@keyframes aiStopPulse/selFloatIn
   - 会员：.upg-*（upg-features/upg-feat/upg-pricing/upg-price/upg-qr）、.m-doc-list、.m-doc-item
*/

/* ===================== 个人中心 modal（顶部按钮打开） ===================== */
/* 个人中心复用账号中心 .ac-hero / .ac-ava / .ac-info / .ac-vip-tag 结构，
   .ac-hero.is-vip 为会员用户使用柔和渐变（账号中心 .ac-hero 未用 is-vip，此处单独定义）。 */
.ac-hero.is-vip{background:var(--grad-primary-soft);color:var(--md-on-primary-container);box-shadow:0 4px 14px rgba(var(--brand-rgb),.18)}
.ac-hero.is-vip .ac-ava{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.ac-hero.is-vip .ac-info .ac-vip-tag{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
/* ===================== 用户名行（b + 编辑按钮 + 内联编辑表单） =====================
   .ac-hero .ac-info b 默认 display:block，此处重置为 inline 让 b 与编辑按钮共处一行。 */
.pc-name-row{display:flex;align-items:center;flex-wrap:wrap;margin-bottom:3px}

/* ===================== 用户名行（b + 编辑按钮 + 内联编辑表单） =====================
   .ac-hero .ac-info b 默认 display:block，此处重置为 inline 让 b 与编辑按钮共处一行。 */
.pc-name-row > * + *{margin-left:6px}
.ac-hero .ac-info .pc-name-row b{display:inline;margin-bottom:0}
.pc-edit-btn{display:grid;place-items:center;width:24px;height:24px;border:none;border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:all .15s;opacity:.85}
.pc-edit-btn:hover{background:rgba(255,255,255,.22);opacity:1}
.ac-hero.is-vip .pc-edit-btn:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.pc-edit-btn:disabled{opacity:.4;cursor:not-allowed}
.pc-edit-btn svg{width:13px;height:13px}
.pc-name-edit{display:flex;align-items:center;flex:1;min-width:160px}

.pc-name-edit > * + *{margin-left:6px}
.pc-name-edit input{flex:1;min-width:0;padding:5px 10px;border: 1.5px solid #8B5CF6;
  border:1.5px solid var(--md-primary);border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);color:var(--ink);font-size:14px;font-family:inherit;outline:none}
.pc-name-ok{padding:5px 12px;border:none;border-radius: 14px;
  border-radius:var(--md-rs-sm);background:var(--grad-primary);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.pc-name-cancel{padding:5px 12px;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}

/* ===================== 信息列表：邮箱 / 会员状态 / 用户名修改次数 ===================== */
/* 每行带图标 + 标签 + 值，清晰分层，避免数据堆叠 */
.pc-info-list{display:flex;flex-direction:column;background:var(--md-surface-container);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);
  border-radius: 22px;
  border-radius:var(--md-rs-md);padding:4px 14px;margin-bottom:14px}


/* ===================== 信息列表：邮箱 / 会员状态 / 用户名修改次数 ===================== */
/* 每行带图标 + 标签 + 值，清晰分层，避免数据堆叠 */
.pc-info-list > * + *{margin-top:2px}
.pc-info-row{display:flex;align-items:center;padding:10px 0;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);}

.pc-info-row > * + *{margin-left:12px}
.pc-info-row:last-child{border-bottom:none}
.pc-ir-ic{width:30px;height:30px;border-radius:8px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);
  display:grid;place-items:center;flex:none}
.pc-ir-ic svg{width:16px;height:16px}
.pc-ir-label{font-size:13px;color:var(--md-muted);flex:none;min-width:72px}
.pc-ir-val{font-size:13.5px;color:var(--ink);font-weight:500;flex:1;min-width:0;word-break:break-all;text-align:right}

.pc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.pc-stat{background:var(--md-surface-container);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:16px 12px;text-align:center}
.pc-stat b{font-size:22px;font-weight:700;color:var(--md-primary);display:block}
.pc-stat span{font-size:12.5px;color:var(--muted)}

.ac-page{max-width:640px;margin:0 auto;display:flex;flex-direction:column;}


.ac-page > * + *{margin-top:16px}.ac-page>.ac-section,.ac-page>.ac-hero,.ac-page>.ac-stats{margin-bottom:16px}.ac-page>*:last-child{margin-bottom:0}
.ac-hero,.ac-stats{flex:none}
.ac-grid{display:flex;flex-direction:column;}

.ac-grid > * + *{margin-top:16px}

.ac-hero{position:relative;overflow:hidden;background:var(--grad-primary);border:none;border-radius: 26px;
  border-radius:var(--md-rs-lg);padding:24px;color:var(--md-on-primary);display:flex;align-items:center;}


.ac-hero > * + *{margin-left:16px}
.ac-hero::before{content:"";position:absolute;top:-40%;right:-20%;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.1);pointer-events:none}
.ac-hero::after{content:"";position:absolute;bottom:-30%;left:-10%;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.ac-hero .ac-ava{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.2);backdrop-filter:blur(8px);
  display:grid;place-items:center;font-weight:700;font-size:24px;color:#fff;flex:none;border:2px solid rgba(255,255,255,.3);z-index:1;overflow:hidden}
.ac-hero .ac-ava img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.ac-hero .ac-info{flex:1;min-width:0;z-index:1}
.ac-hero .ac-info b{font-size:18px;font-weight:700;display:block;margin-bottom:3px}
.ac-hero .ac-info .ac-email{font-size:12px;opacity:.85;display:block;margin-bottom:6px;word-break:break-all}
.ac-hero .ac-info .ac-vip-tag{font-size:11px;font-weight:600;padding:3px 10px;border-radius: 28px;
  border-radius:var(--md-rs-full);background:rgba(255,255,255,.22);display:inline-flex;align-items:center;backdrop-filter:blur(4px)}

.ac-hero .ac-info .ac-vip-tag > * + *{margin-left:4px}
.ac-hero .ac-info .ac-vip-tag.not-vip{background:rgba(0,0,0,.15)}
.ac-hero .ac-info small{font-size:11.5px;opacity:.8;display:block;margin-top:4px}

.ac-hero .ac-donate{position:relative;z-index:1;flex:none;display:flex;flex-direction:column;align-items:center;padding:10px 12px;border-radius: 22px;
  border-radius:var(--md-rs-md);background:rgba(255,255,255,.18);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);cursor:pointer;transition:background .2s,transform .15s;color:#fff}


.ac-hero .ac-donate > * + *{margin-top:4px}
.ac-hero .ac-donate:hover{background:rgba(255,255,255,.28)}
.ac-hero .ac-donate:active{transform:scale(.96)}
.ac-hero .ac-donate svg{width:22px;height:22px}
.ac-hero .ac-donate span{font-size:11px;font-weight:600;line-height:1.2;text-align:center}

/* ===================== 开通会员横幅 ===================== */
.ac-upgrade{display:flex;align-items:center;width:100%;padding:14px 18px;border-radius: 22px;
  border-radius:var(--md-rs-md);
  background:var(--grad-primary);color:var(--md-on-primary);border:none;cursor:pointer;text-align:left;
  box-shadow:var(--shadow-brand);transition:transform .15s,box-shadow .2s;font-family:inherit}


/* ===================== 开通会员横幅 ===================== */
.ac-upgrade > * + *{margin-left:14px}
.ac-upgrade:hover{transform:translateY(-1px);box-shadow:var(--shadow-brand-hover)}
.ac-upgrade:active{transform:scale(.99)}
.ac-upgrade .up-ic{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.25);display:grid;place-items:center;flex:none}
.ac-upgrade .up-ic svg{width:21px;height:21px;color:var(--md-on-primary)}
.ac-upgrade[data-forever='1'] .up-ic svg{color:#FFD700}
.ac-upgrade .up-meta{flex:1;min-width:0}
.ac-upgrade .up-meta b{display:block;font-size:14.5px;font-weight:700;color:inherit;line-height:1.3}
.ac-upgrade .up-meta small{display:block;font-size:11.5px;color:rgba(255,255,255,.88);margin-top:2px;line-height:1.4}
.ac-upgrade .up-arrow{flex:none;color:var(--md-on-primary);display:grid;place-items:center}
.ac-upgrade .up-arrow svg{width:18px;height:18px}
/* ===================== 已开通会员：柔和主题色 ===================== */
.ac-upgrade.is-vip{background:var(--grad-primary-soft);color:var(--md-on-primary-container);box-shadow:0 4px 14px rgba(var(--brand-rgb),.18)}
.ac-upgrade.is-vip .up-ic{background:rgba(var(--brand-rgb),.14)}
.ac-upgrade.is-vip .up-ic svg{color:var(--md-primary)}
.ac-upgrade.is-vip .up-meta b{color:var(--md-on-primary-container)}
.ac-upgrade.is-vip .up-meta small{color:var(--md-primary)}
.ac-upgrade.is-vip .up-arrow{color:var(--md-primary)}
/* ===================== 永久会员卡片：信息展示态，无点击反馈 ===================== */
.ac-upgrade[data-forever="1"]{cursor:default}
.ac-upgrade[data-forever="1"]:hover{transform:none;box-shadow:0 4px 14px rgba(var(--brand-rgb),.18)}
.ac-upgrade[data-forever="1"]:active{transform:none}

.ac-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--md-surface-container);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 22px;
  border-radius:var(--md-rs-md);overflow:hidden}
.ac-stat-item{padding:14px 8px;text-align:center;position:relative}
.ac-stat-item:not(:last-child)::after{content:"";position:absolute;right:0;top:20%;height:60%;width:1px;background: #C9BBE8;
  background:var(--md-outline-var);}
.ac-stat-item b{font-size:20px;font-weight:700;color:var(--md-primary);display:block;line-height:1.2}
.ac-stat-item span{font-size:11.5px;color:var(--md-muted)}

.ac-section{display:flex;flex-direction:column}
.ac-sec-title{font-size:12.5px;font-weight:700;color:var(--md-muted);margin-bottom:8px;letter-spacing:.04em;padding:0 4px}
.ac-collapsible .ac-sec-title{cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;transition:color .2s}
.ac-collapsible .ac-sec-title::after{content:"▾";font-size:11px;color:var(--md-muted);transition:transform .25s;flex:none}
.ac-collapsible.ac-collapsed .ac-sec-title::after{transform:rotate(-90deg)}
.ac-collapsible.ac-collapsed .ac-list{display:none}

.ac-list{display:block!important}.ac-list .ac-row{margin-bottom:10px!important}.ac-list .ac-row:last-child{margin-bottom:0!important}
.ac-row{display:flex;align-items:center;width:100%;padding:12px 14px;background: #FFFFFF;border: 1px solid #C9BBE8;border-radius: 14px;cursor:pointer;transition:all .15s;font-size:13.5px;font-weight:600;text-align:left;min-height:56px;line-height:1.5;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row{
  background:var(--md-surface);
  border:1px solid var(--md-outline-var);
  border-radius:var(--md-rs-sm);color:var(--md-on-surface);
}}

.ac-row > * + *{margin-left:12px}
.ac-row:hover{background: #EDE9FE;border-color: #8B5CF6;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row:hover{
  background:var(--md-primary-container);
  border-color:var(--md-primary);
}}
.ac-row .r-ic{width:32px;height:32px;border-radius: 14px;background: #EDE9FE;display:grid;place-items:center;flex:none;transition:all .15s;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row .r-ic{
  border-radius:var(--md-rs-sm);
  background:var(--md-primary-container);color:var(--md-primary);
}}
.ac-row:hover .r-ic{background: #8B5CF6;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row:hover .r-ic{
  background:var(--md-primary);color:var(--md-on-primary);
}}
.ac-row .r-ic svg{width:16px;height:16px}
.ac-row .r-meta{flex:1;min-width:0}
/* ===================== 显式 line-height 确保 button 与 div 卡片高度一致 ===================== */
/* <button> 默认 line-height:normal (~1.2)，<div> 继承 ~1.5，会导致 .r-meta 内 b+small 高度不同，
   从而使快捷功能（button）与文档偏好（div）卡片高度不对齐。显式设置 line-height 统一。 */
.ac-row .r-meta b{font-size:13.5px;font-weight:600;display:block;line-height:1.4}
.ac-row .r-meta small{font-size:11.5px;font-weight:400;line-height:1.4;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row .r-meta small{color:var(--md-muted);
}}
.ac-row .r-arrow{flex:none;transition:transform .15s;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row .r-arrow{color:var(--md-muted);
}}
.ac-row:hover .r-arrow{transform:translateX(3px);
}
@supports (--md-outline-var: #C9BBE8){
.ac-row:hover .r-arrow{color:var(--md-primary);
}}
.ac-row .r-arrow svg{width:16px;height:16px}@supports (--md-outline-var: #C9BBE8){
.ac-row.danger{color:var(--md-error);
}}@supports (--md-outline-var: #C9BBE8){
.ac-row.danger .r-ic{background:var(--md-error-container);color:var(--md-error);
}}@supports (--md-outline-var: #C9BBE8){
.ac-row.danger:hover{background:var(--md-error-container);border-color:var(--md-error);
}}
.ac-row.danger:hover .r-ic{color:#fff;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row.danger:hover .r-ic{background:var(--md-error);
}}

.ac-row.ac-setting{cursor:default}
.ac-row.ac-setting:hover{background: #FFFFFF;border-color: #C9BBE8;
}
@supports (--md-outline-var: #C9BBE8){
.ac-row.ac-setting:hover{
  background:var(--md-surface);
  border-color:var(--md-outline-var);
}}
.ac-row.ac-setting > span:not(.r-ic):not(.ac-seg){flex:1;min-width:0}
.ac-row.ac-setting .ac-seg{flex:none}
.ac-sel{padding:7px 10px;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius:9px;background: #FFFFFF;
  background:var(--md-surface);color:var(--md-on-surface);font-size:13px;outline:none;cursor:pointer}
.ac-sel:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.ac-seg{display:inline-flex;align-items:stretch;gap:0;background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius:9px;overflow:hidden;height:32px}
.ac-seg button{padding:0 12px;font-size:13px;font-weight:600;color:var(--md-muted);background:transparent;cursor:pointer;transition:all .15s;border:none;min-height:0;line-height:1}
.ac-seg button.active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}

.ac-theme-grid{display:flex;flex-wrap:wrap;padding:12px 14px;background: #FFFFFF;border: 1px solid #C9BBE8;border-radius: 14px;
}
@supports (--md-outline-var: #C9BBE8){

.ac-theme-grid{
  background:var(--md-surface);
  border:1px solid var(--md-outline-var);
  border-radius:var(--md-rs-sm);
}}


.ac-theme-grid > * + *{margin-left:10px}
.ac-theme-btn{width:36px;height:36px;border-radius:50%;border:2px solid transparent;cursor:pointer;
  position:relative;padding:0;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:transform .15s,border-color .15s}
.ac-theme-btn:hover{transform:scale(1.1)}@supports (--md-outline-var: #C9BBE8){
.ac-theme-btn.active{border-color:var(--md-on-surface);
}}
.ac-theme-btn.active::after{content:"";position:absolute;top:50%;left:50%;width:13px;height:7px;
  border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;
  transform:translate(-50%,-70%) rotate(-45deg)}

.ac-mode-row{display:flex;align-items:center;width:100%;padding:12px 14px;background: #FFFFFF;
  background:var(--md-surface);
  border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);cursor:pointer;transition:all .15s}


.ac-mode-row > * + *{margin-left:12px}
.ac-mode-row:hover{background: #EDE9FE;
  background:var(--md-primary-container);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.ac-mode-row .r-ic{width:32px;height:32px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);
  display:grid;place-items:center;flex:none;transition:all .15s}
.ac-mode-row:hover .r-ic{background: #8B5CF6;
  background:var(--md-primary);color:var(--md-on-primary)}
.ac-mode-row .r-ic svg{width:16px;height:16px}
.ac-mode-row .r-meta{flex:1;min-width:0}
.ac-mode-row .r-meta b{font-size:13.5px;font-weight:600;display:block}
.ac-mode-row .r-meta small{font-size:11.5px;color:var(--md-muted);font-weight:400}
.ac-mode-seg{display:inline-flex;gap:0;background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius:9px;overflow:hidden;flex:none}
.ac-mode-seg button{padding:6px 12px;font-size:13px;font-weight:600;color:var(--md-muted);background:transparent;cursor:pointer;transition:all .15s;border:none}
.ac-mode-seg button.active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
/* ===================== 精简模式开关 ===================== */
.ac-switch{position:relative;display:inline-block;width:52px;height:30px;flex:none;cursor:pointer}
.ac-switch input{opacity:0;width:0;height:0;position:absolute}
.ac-sw-slider{position:absolute;top:0;left:0;right:0;bottom:0;background: #C9BBE8;border-radius:30px;transition:background .2s;
}
@supports (--md-outline-var: #C9BBE8){
.ac-sw-slider{
  background:var(--md-outline-var);
}}
.ac-sw-slider::before{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .2s}
.ac-switch input:checked + .ac-sw-slider{background: #8B5CF6;
}
@supports (--md-outline-var: #C9BBE8){
.ac-switch input:checked + .ac-sw-slider{
  background:var(--md-primary);
}}
.ac-switch input:checked + .ac-sw-slider::before{transform:translateX(22px)}
.ac-pick{flex:none;display:inline-flex;align-items:center;min-width:96px;justify-content:flex-end;padding:8px 12px;border: 1.5px solid #C9BBE8;border-radius:12px;background: #FFFFFF;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s;
}
@supports (--md-outline-var: #C9BBE8){
.ac-pick{
  border:1.5px solid var(--md-outline-var);
  background:var(--md-surface);color:var(--md-on-surface);
}}

.ac-pick > * + *{margin-left:6px}
.ac-pick:hover{border-color: #8B5CF6;background: #EDE9FE;
}
@supports (--md-outline-var: #C9BBE8){
.ac-pick:hover{
  border-color:var(--md-primary);
  background:var(--md-primary-container);
}}
.ac-pick .r-arrow{display:inline-flex;
}
@supports (--md-outline-var: #C9BBE8){
.ac-pick .r-arrow{color:var(--md-muted);
}}
.ac-pick .r-arrow svg{width:15px;height:15px}
.pk-box{width:min(360px,92vw)!important}
.pk-list{display:flex;flex-direction:column;padding-top:2px}

.pk-list > * + *{margin-top:8px}
.pk-item{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:13px 14px;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius:14px;background: #FFFFFF;
  background:var(--md-surface);
  color:var(--md-on-surface);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;text-align:left}

.pk-item > * + *{margin-left:10px}
.pk-item:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.pk-item.active{border-color: #8B5CF6;
  border-color:var(--md-primary);background:var(--grad-primary-soft);color:var(--md-primary)}
.pk-item b{color:var(--md-primary);font-size:15px}


/* ===================== 图片 ===================== */
.img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.img-card{background: #FFFFFF;
  background:var(--md-surface);border:none;border-radius: 14px;
  border-radius:var(--md-rs-sm);overflow:hidden;
  position:relative;transition:all .15s;touch-action:manipulation}
.img-card:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);box-shadow:none}
.img-card .img-at{display:block;font-size:10.5px;color:var(--muted);margin-top:5px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.img-card .thumb{width:100%;height:0;padding-bottom:100%;background: #FFFFFF;
  background:var(--md-surface);display:block;overflow:hidden;cursor:pointer;position:relative}
.img-card .thumb img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;border:0}
.img-card .thumb img.img-broken{width:48px;height:48px;object-fit:contain;opacity:.35;filter:grayscale(1);top:50%;left:50%;transform:translate(-50%,-50%)}
.recy-thumb{width:46px;height:46px;border-radius:8px;overflow:hidden;flex:0 0 auto;background:var(--md-surface-container-high);display:grid;place-items:center}
.recy-thumb img{width:100%;height:100%;object-fit:cover}
.recy-thumb-card{width:100%;height:0;padding-bottom:100%;background:#f0f0f5;background:var(--md-surface-container-high);overflow:hidden;border-radius:10px}
.recy-thumb-card{position:relative}
.recy-delete-at{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;font-size:10.5px;text-align:center;padding:16px 4px 5px;line-height:1.5;pointer-events:none;z-index:2}
.recy-card .recy-acts{display:none}
.recy-card.show-acts .recy-acts{display:flex}
.recy-row .recy-acts{display:none}
.recy-row.show-acts .recy-acts{display:flex}
.recy-thumb-card img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.img-card .cap-actions{display:flex;gap:0;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);}
.img-card .img-act{flex:1;display:flex;align-items:center;justify-content:center;padding:9px 4px;border:none;background:var(--md-surface-container);
  color:var(--muted);font-size:11.5px;font-weight:600;cursor:pointer;transition:background .12s}

.img-card .img-act > * + *{margin-left:5px}
.img-card .img-act svg{width:14px;height:14px;flex:none}
.img-card .img-act:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
.img-card .img-act.danger:hover{background:var(--md-error-container);color:var(--err)}
.img-card .img-act + .img-act{border-left: 1px solid #C9BBE8;
  border-left:1px solid var(--md-outline-var);}
.up-tile{border: 2px dashed #8B5CF6;
  border:2px dashed var(--md-primary);border-radius: 14px;
  border-radius:var(--md-rs-sm);display:flex;flex-direction:column;justify-content:center;align-items:center;
  color:var(--md-primary);cursor:pointer;width:100%;height:180px;transition:all .18s;font-size:13px;text-align:center;background:var(--grad-primary-soft)}

.up-tile > * + *{margin-top:6px}
.up-tile:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.up-tile svg{width:26px;height:26px;flex:none}
/* 空状态上传按钮：限定宽度，避免 aspect-ratio:1/1 撑满整个区域 */
.up-tile-empty{max-width:180px;margin:8px auto 0}
.up-tile-empty .up-tile{aspect-ratio:auto;min-height:120px;padding:20px}

.img-preview-scrim{position:fixed;top:0;left:0;right:0;bottom:0;z-index:60;background:rgba(0,0,0,.86);
  display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .22s;
  -webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px)}
.img-preview-scrim.show{opacity:1;pointer-events:auto}
.img-preview-box{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}
.img-preview-box img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius: 14px;
  border-radius:var(--md-rs-sm);box-shadow:0 8px 32px rgba(0,0,0,.5);transition:opacity .2s ease}
.img-preview-loading{position:absolute;width:32px;height:32px;border:3px solid rgba(255,255,255,.15);border-top-color:rgba(255,255,255,.8);border-radius:50%;animation:img-spin .8s linear infinite}
@keyframes img-spin{to{transform:rotate(360deg)}}

/* ===================== 回收站 ===================== */
.recycle-item{display:flex;align-items:center;background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:14px 16px;margin-bottom:8px;transition:all .15s}


/* ===================== 回收站 ===================== */
.recycle-item > * + *{margin-left:14px}
.recycle-item:hover{background:var(--md-surface-container-high);border-color: #8B5CF6;
  border-color:var(--md-primary);}
/* 多选模式下禁用回收站卡片的单篇恢复/永久删除按钮，点击穿透到卡片切换选中 */
body.multi-on [data-restore],
body.multi-on [data-purge]{pointer-events:none;opacity:.3}
.recycle-item .ic{width:36px;height:36px;border-radius: 14px;
  border-radius:var(--md-rs-sm);background:var(--md-error-container);color:var(--err);display:grid;place-items:center;flex:none}
.recycle-item .ic svg{width:18px;height:18px}
.recycle-item .info{flex:1;min-width:0}
.recycle-item .info b{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.recycle-item .info small{font-size:11.5px;color:var(--muted)}
.recycle-item .acts{display:flex;flex:none}

.recycle-item .acts > * + *{margin-left:6px}

.recycle-batch{display:flex;align-items:center;justify-content:space-between;
  background:transparent;border:0 solid transparent;border-radius: 14px;
  border-radius:var(--md-rs-sm);
  max-height:0;padding:0 20px;margin:0 20px 0;overflow:hidden;
  box-shadow:none;opacity:0;pointer-events:none;transform:translateY(-16px);
  transition:max-height .25s cubic-bezier(.2,.9,.3,1),transform .25s cubic-bezier(.2,.9,.3,1),padding .25s cubic-bezier(.2,.9,.3,1),margin .25s cubic-bezier(.2,.9,.3,1),border-color .2s ease,opacity .2s ease}


.recycle-batch > * + *{margin-left:12px}
.recycle-batch.show{
  max-height:220px;padding:10px 20px;margin:0 20px 10px;
  border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-top:none;border-radius:0 0 var(--md-rs-sm) var(--md-rs-sm);
  opacity:1;pointer-events:auto;transform:translateY(0);

  position:sticky;top:64px;z-index:4;background: #FFFFFF;
  background:var(--md-surface);
  transition:max-height .25s cubic-bezier(.2,.9,.3,1),transform .25s cubic-bezier(.2,.9,.3,1),padding .25s cubic-bezier(.2,.9,.3,1),margin .25s cubic-bezier(.2,.9,.3,1),border-color .2s ease,opacity .2s ease}

body.topbar-hide .recycle-batch.show{top:0;transition:max-height .25s cubic-bezier(.2,.9,.3,1),transform .25s cubic-bezier(.2,.9,.3,1),padding .25s cubic-bezier(.2,.9,.3,1),margin .25s cubic-bezier(.2,.9,.3,1),border-color .2s ease,opacity .2s ease,top .25s cubic-bezier(.2,.9,.3,1)}
.recycle-batch #rbCount{font-size:13px;font-weight:500;color:var(--ink)}
.recycle-batch #rbCount.hint{color:var(--muted);font-weight:500}
.recycle-batch #dbCount.hint{color:var(--muted);font-weight:500}
.recycle-batch .rb-acts{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}

.recycle-batch .rb-acts > * + *{margin-left:8px}
.recycle-batch .rb-acts::-webkit-scrollbar{display:none}
.recycle-batch .rb-acts .mini{flex:none;white-space:nowrap}
.recycle-batch .rb-acts .mini:disabled{opacity:.45;cursor:not-allowed}

.rc-cb{flex:none;width:18px;height:18px;border: 2px solid #7C6FA8;
  border:2px solid var(--md-outline);border-radius:4px;cursor:pointer;
  transition:.12s;display:grid;place-items:center}
.rc-cb.checked{background: #8B5CF6;
  background:var(--md-primary);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.rc-cb.checked::after{content:'';width:10px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;
  transform:rotate(-45deg) translate(1px,-1px)}

/* ===================== 密钥/分享 ===================== */
.panel{padding:2px;max-width:920px;width:100%;margin:0 auto;border-radius: 26px;
  border-radius:var(--md-rs-lg);}
.p-head{display:flex;align-items:center;margin-bottom:16px;flex-wrap:wrap}

.p-head > * + *{margin-left:12px}
.p-head-acts{display:flex;align-items:center;margin-left:auto;flex-wrap:wrap}

.p-head-acts > * + *{margin-left:8px}
.p-head h2{font-size:16px;font-weight:700;display:flex;align-items:center;color:var(--md-primary)}

.p-head h2 > * + *{margin-left:8px}
.p-head h2 svg{width:19px;height:19px;color:var(--md-primary);flex:none}
.p-head .p-sub{font-size:12px;color:var(--md-muted-2);margin-left:auto}

.sel-doc{width:100%;max-width:340px;padding:10px 12px;font-size:13.5px;border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);
  border-radius:9px;background: #FFFFFF;
  background:var(--md-surface);outline:none;color:var(--md-ink);cursor:pointer;transition:border-color .15s}
.sel-doc:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--md-muted);margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;padding:11px 13px;font-size:14px;border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);
  border-radius:9px;background: #FFFFFF;
  background:var(--md-surface);outline:none;transition:border-color .15s;color:var(--md-ink);font-family:inherit}
.field input:focus,.field textarea:focus,.field select:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #FFFFFF;
  background:var(--md-surface);}
.row2{display:flex;flex-wrap:wrap}

.row2 > * + *{margin-left:12px}
.row2>*{flex:1;min-width:210px}

.limit-group{margin-bottom:20px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);overflow:hidden;background: #FFFFFF;
  background:var(--md-surface);transition:border-color .15s}
.limit-group:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.lg-head{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;min-height:44px;
  background: #FFFFFF;
  background:var(--md-surface);border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);transition:border-bottom-color .25s}

.lg-head > * + *{margin-left:10px}
.lg-head-l{display:flex;align-items:center;}

.lg-head-l > * + *{margin-left:8px}
.lg-head-r{display:flex;align-items:center;flex:none}

.lg-head-r > * + *{margin-left:8px}
.lg-name{font-size:14px;font-weight:700;color:var(--md-ink);cursor:pointer;;display:flex;align-items:center;}

.lg-name > * + *{margin-left:6px}
.lg-name:hover{color:var(--md-primary)}
.lg-count{font-size:11.5px;color:var(--md-muted);font-weight:600;background:var(--md-surface-container);padding:2px 8px;border-radius:999px}
.lg-fold{width:32px;height:32px;border:none;border-radius: 10px;
  border-radius:var(--md-rs-xs);background:var(--md-surface-container);color:var(--md-muted);display:grid;place-items:center;cursor:pointer;transition:background .12s;flex:none}
.lg-fold:hover{background:var(--md-surface-container-high)}
.lg-fold svg{transition:transform .25s cubic-bezier(.2,.9,.3,1)}
.limit-group.folded .lg-fold svg{transform:rotate(-90deg)}
.lg-body{padding:0;overflow:hidden;transition:max-height .25s cubic-bezier(.2,.9,.3,1),opacity .2s}
.lg-foot{display:flex;align-items:center;padding:11px 16px;min-height:44px;flex-wrap:wrap;background: #FFFFFF;
  background:var(--md-surface);border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);overflow:hidden;transition:max-height .25s cubic-bezier(.2,.9,.3,1),opacity .2s}

.lg-foot > * + *{margin-left:10px}
.limit-group.folded .lg-body{max-height:0;padding-top:0;padding-bottom:0;opacity:0}
.limit-group.folded .lg-foot{max-height:0;min-height:0;padding-top:0;padding-bottom:0;opacity:0;border-top-color:transparent}

.limit-group.folded .lg-head{border-bottom-color:transparent;background: #FFFFFF;
  background:var(--md-surface);}
.lg-batch{display:flex;}

.lg-batch > * + *{margin-left:6px}
.limit-row{display:flex;align-items:center;padding:9px 16px;border:1.5px solid transparent;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);transition:all .15s;cursor:pointer}

.limit-row > * + *{margin-left:10px}
.limit-row:hover{background:var(--md-surface-container-high)}
.limit-row.selected{border-color:var(--md-surface-container-high);background:var(--md-surface-container-high)}
.limit-row:last-child{border-bottom:none}
.limit-name{flex:1;font-size:13.5px;font-weight:600;color:var(--md-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.limit-badge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--md-surface-container);color:var(--muted);flex:none}
/* ===================== 仅HTML访问开启状态使用主题色 ===================== */
/* 原来用固定绿色 --md-ok，改为主题色 --md-primary，随主题切换动态变化。 */
.limit-badge.on{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);flex:none}
.lg-sel{font-size:12px;color:var(--md-muted);font-weight:600}
.lg-sep{margin-left:auto} 
.card-soft{background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 26px;
  border-radius:var(--md-rs-lg);padding:18px 20px;margin-bottom:14px;animation:fadeUp .35s ease both}
.card-soft h3{font-size:14.5px;margin-bottom:4px;display:flex;align-items:center;font-weight:700}

.card-soft h3 > * + *{margin-left:8px}
.card-soft h3 svg{width:17px;height:17px;color:var(--md-primary)}
.card-soft .sub{font-size:12px;color:var(--md-muted);margin-bottom:14px;line-height:1.6}
.copy-row{display:flex;align-items:center}

.copy-row > * + *{margin-left:8px}
.copy-row input{flex:1;background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #7C6FA8;
  border:1.5px solid var(--md-outline);font-size:12.5px;color:var(--md-ink);padding:10px 12px;border-radius:9px;outline:none}
.copy-row input:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}

.panel-wide{max-width:none}
.limit-grid{display:flex;margin-top:4px;align-items:flex-start}

.limit-grid > * + *{margin-left:16px}
.limit-grid>.mcol{flex:1;min-width:0;display:flex;flex-direction:column;}

.limit-grid>.mcol > * + *{margin-top:16px}
.limit-grid>.mcol>.limit-group{margin-bottom:0}
/* 仅一个分组时(applyMasonry 跳过,.limit-group 直接作为 .limit-grid 子元素),撑满容器宽度 */
.limit-grid>.limit-group{flex:1;min-width:0;margin-bottom:0}

.share-note{font-size:11.5px;color:var(--muted);background:var(--bg);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:7px 10px;margin-bottom:12px;line-height:1.5}

/* ===================== 分享弹窗双栏布局（紧凑版） ===================== */
.share-cols{display:flex;align-items:stretch}


/* ===================== 分享弹窗双栏布局（紧凑版） ===================== */
.share-cols > * + *{margin-left:18px}
.share-col{flex:1;min-width:0;display:flex;flex-direction:column}
.share-col--links{border-right:1px solid var(--line);padding-right:18px}
.share-col--qr{justify-content:center}
.share-col--qr > * + *{margin-top:14px}
.sc-head{font-size:11.5px;font-weight:700;letter-spacing:.4px;color:var(--muted);
  margin-bottom:9px;text-transform:uppercase}

/* ---- 左栏：主链接 + 格式药丸 ---- */
.fmt-primary{display:flex;align-items:center;margin-bottom:10px}


/* ---- 左栏：主链接 + 格式药丸 ---- */
.fmt-primary > * + *{margin-left:8px}
.fmt-main-input{flex:1;min-width:0;background:var(--bg);border:1.5px solid var(--line);
  font-size:12px;color:var(--ink);padding:9px 11px;border-radius:9px;outline:none;
  font-family:ui-monospace,Menlo,Consolas,monospace}
.fmt-main-input:focus{border-color:var(--primary)}
.fmt-main-copy{flex:none;padding:8px 16px;font-size:12.5px;font-weight:600;border-radius:9px;
  background:var(--primary);color:#fff;border:none;cursor:pointer;transition:opacity .18s}
.fmt-main-copy:hover{opacity:.88}

.fmt-pills{display:flex;flex-wrap:wrap;}


.fmt-pills > * + *{margin-left:6px}
.fmt-pill{font-size:11px;font-weight:600;padding:5px 10px;border:1.5px solid var(--line);
  background:var(--bg);color:var(--muted);border-radius:6px;cursor:pointer;
  transition:all .15s;font-family:inherit}
.fmt-pill:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}
.fmt-pill:disabled{opacity:.4;cursor:not-allowed}

/* ---- 分享到 QQ 按钮（网页版调起 QQ 互联分享组件） ---- */
.fmt-qq{display:inline-flex;align-items:center;margin-top:14px;height:40px;padding:0 18px;
  border:none;border-radius:9px;background:linear-gradient(135deg,#12b7f5,#0a8fd6);color:#fff;
  font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;
  transition:opacity .18s,transform .12s,box-shadow .18s;box-shadow:0 2px 8px rgba(18,183,245,.28)}


/* ---- 分享到 QQ 按钮（网页版调起 QQ 互联分享组件） ---- */
.fmt-qq > * + *{margin-left:7px}
.fmt-qq:hover{opacity:.94;transform:translateY(-1px);box-shadow:0 4px 12px rgba(18,183,245,.36)}
.fmt-qq:active{transform:translateY(0) scale(.98)}
.fmt-qq-ico{display:inline-flex;line-height:0}
.fmt-qq-ico svg{width:18px;height:22px;display:block}

/* ---- 右栏：二维码 ---- */
.share-qr{}
.share-qr .qr-head{font-size:12.5px;font-weight:600;color:var(--primary);margin-bottom:7px}
.share-qr .qr-box{display:flex;justify-content:center;align-items:center;padding:12px;background: #FFFFFF;
  background:var(--md-surface);
  border:1px solid var(--line);border-radius:8px}
.share-qr .qr-box img,.share-qr .qr-box canvas{display:block}
.share-qr .qr-err{color:#d33;font-size:11.5px;padding:14px 0;text-align:center}
.share-qr .qr-acts{display:flex;align-items:center;margin-top:8px}

.share-qr .qr-acts > * + *{margin-left:10px}
.share-qr .qr-acts .btn-copy{font-size:11.5px;padding:6px 13px}
.share-qr .qr-link{font-size:11.5px;color:var(--primary);text-decoration:none}
.share-qr .qr-link:hover{text-decoration:underline}

/* ===================== 分享样式选择器 ===================== */
.share-theme{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.share-theme .st-head{font-size:13px;font-weight:600;color:var(--primary);margin-bottom:9px}
.share-theme .st-row{display:flex;flex-wrap:wrap;align-items:center}

.share-theme .st-row > * + *{margin-left:8px}
.share-theme .st-chip{border:1px solid var(--line);background:var(--bg);color:var(--muted);
  border-radius:999px;padding:6px 13px;font-size:12.5px;cursor:pointer;transition:all .18s;font-family:inherit}
.share-theme .st-chip:hover{border-color:var(--primary);color:var(--primary)}
.share-theme .st-chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.share-theme .st-hint{font-size:11.5px;color:var(--muted);margin-left:4px}
/* 会员专享风格：锁标 + 非会员禁用态 */
.share-theme .st-chip.st-vip{position:relative;border-style:dashed}
.share-theme .st-chip.st-vip .st-lock{font-size:11px;margin-left:3px;opacity:.7}
body:not(.is-vip) .share-theme .st-chip.st-vip{cursor:not-allowed;opacity:.65}
body:not(.is-vip) .share-theme .st-chip.st-vip:hover{border-color:var(--line);color:var(--muted)}
body.is-vip .share-theme .st-chip.st-vip{border-color:var(--primary);color:var(--primary)}

/* ---- 主题选择器（保持不变） ---- */

.keys-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px}
.key-card{background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:14px 16px;position:relative;animation:fadeUp .35s ease both;box-shadow:none;transition:all .18s ease}
.key-card:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);box-shadow:none;transform:translateY(-1px)}
.key-card.k-on{border-color: #EDE9FE;
  border-color:var(--md-primary-container);}
.key-card .k-head{display:flex;align-items:center;min-width:0;margin-bottom:0}

.key-card .k-head > * + *{margin-left:9px}
.key-card .k-ic{width:28px;height:28px;border-radius:7px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);display:grid;place-items:center;flex:none}
.key-card .k-ic svg{width:15px;height:15px}
.key-card .k-name{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--md-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.key-card .k-clear-x{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:none;padding:0;font-size:16px;line-height:1;border:none;background:var(--md-surface-container);color:var(--md-error);cursor:pointer;transition:background .15s}
.key-card .k-clear-x:hover{background:var(--md-error-container)}

.key-card .k-pc-only{display:none !important}

.key-card .k-inline-fields{flex-direction:column;margin-top:12px;padding-top:12px;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);}
.key-card .k-inline-fields > * + *{margin-top:10px}
.key-card .k-inline-fields .key-field input{font-size:12.5px}

.switch{position:relative;width:44px;height:24px;border-radius:999px;background:var(--md-surface-container-high);cursor:pointer;
  transition:background .2s;flex:none;border:none;padding:0}
.switch.on{background: #8B5CF6;
  background:var(--md-primary);}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;
  transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch.on::after{left:22px}

.key-fields{display:flex;flex-direction:column;}


.key-fields > * + *{margin-top:16px}
.key-field{position:relative;display:flex;align-items:center}
.key-field input{width:100%;padding:14px 56px 14px 14px;font-size:13.5px;background:#FFFFFF;
  border:1.5px solid #7C6FA8;border-radius:14px;outline:none;color:#1f1f1f;
  transition:border-color .15s;font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:.5px}
@supports (--md-outline:#C9BBE8){
  .key-field input{background:var(--md-surface);border:1.5px solid var(--md-outline);border-radius:var(--md-rs-sm);color:var(--md-ink)}
}
.key-field input:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.key-field .switch{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:36px;height:20px;flex:none}
.key-field .switch::after{top:2px;left:2px;width:16px;height:16px}
.key-field .switch.on::after{left:18px}
.key-field .kf-label{position:absolute;left:13px;top:-7px;font-size:10px;font-weight:700;color:var(--md-primary);
  background: #FFFFFF;
  background:var(--md-surface);padding:0 5px;pointer-events:none;letter-spacing:.02em;z-index:1;display:none}

.key-field.has-val .kf-label{display:block}
.key-hint{font-size:12px;color:var(--md-muted);line-height:1.6;padding:0 2px;margin-top:14px}
.key-hint b{color:var(--md-on-surface);font-weight:600}
.key-acts-row{display:flex;margin-top:14px;padding-top:14px;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);}

.key-acts-row > * + *{margin-left:8px}
.key-acts-row .mini{flex:1;height:38px;font-size:13px}

/* ===================== 加密模式选择器 ===================== */
/* 内联网格中的加密模式行（PC 端 .k-pc-only 可见） */
.k-mode-row{display:flex;align-items:center;}


/* ===================== 加密模式选择器 ===================== */
/* 内联网格中的加密模式行（PC 端 .k-pc-only 可见） */
.k-mode-row > * + *{margin-left:8px}
.km-label{font-size:11px;font-weight:600;color:var(--md-muted);flex:none;white-space:nowrap}
.km-select{flex:1;min-width:0;padding:8px 10px;font-size:12.5px;background:#FFFFFF;
  border:1.5px solid #7C6FA8;border-radius:14px;color:#1f1f1f;
  outline:none;cursor:pointer;font-family:inherit;transition:border-color .15s}
@supports (--md-outline:#C9BBE8){
  .km-select{background:var(--md-surface);border:1.5px solid var(--md-outline);border-radius:var(--md-rs-sm);color:var(--md-on-surface)}
}
.km-select:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.km-code{flex:none;padding:6px 12px;font-size:11.5px;font-weight:600;color:var(--md-primary);
  background: #EDE9FE;
  background:var(--md-primary-container);border:none;border-radius: 14px;
  border-radius:var(--md-rs-sm);cursor:pointer;
  transition:background .15s;font-family:inherit;white-space:nowrap}
.km-code:hover{background: #8B5CF6;
  background:var(--md-primary);color:var(--md-on-primary)}

/* 弹窗中的加密模式字段 */
.key-mode-field{position:relative;display:flex;align-items:center;}


/* 弹窗中的加密模式字段 */
.key-mode-field > * + *{margin-left:8px}
.key-mode-field .kf-label{position:absolute;left:13px;top:-7px;font-size:10px;font-weight:700;color:var(--md-primary);
  background: #FFFFFF;
  background:var(--md-surface);padding:0 5px;pointer-events:none;letter-spacing:.02em;z-index:1;display:block}
.key-mode-field .km-select{flex:1;padding:14px 14px;font-size:13.5px}
.key-mode-field .km-code{padding:10px 14px;font-size:12.5px}

/* ===================== 解密代码弹窗 ===================== */
.dc-info{font-size:11.5px;color:var(--md-muted);line-height:1.7;background:var(--md-surface-container);
  border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:10px 14px;margin-bottom:14px;
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;white-space:pre-line}
.dc-tabs{display:flex;gap:0;margin-bottom:12px;border-bottom: 1.5px solid #C9BBE8;
  border-bottom:1.5px solid var(--md-outline-var);}
.dc-tab{padding:8px 16px;font-size:13px;font-weight:600;color:var(--md-muted);background:transparent;
  border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;margin-bottom:-1.5px;
  font-family:inherit}
.dc-tab:hover{color:var(--md-on-surface)}
.dc-tab.active{color:var(--md-primary);border-bottom-color: #8B5CF6;
  border-bottom-color:var(--md-primary);}
.dc-code-wrap{background:var(--md-surface-container);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);overflow:auto;max-height:420px;margin-bottom:14px}
.dc-code{margin:0;padding:14px;font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--md-ink)}

/* ===================== 备份 ===================== */
.bk-grid{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}
.bk-card{background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #8B5CF6;
  border:1.5px solid var(--md-primary);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:20px 22px;animation:fadeUp .35s ease both;transition:border-color .15s}
.bk-card:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.bk-head{display:flex;align-items:center;margin-bottom:18px}

.bk-head > * + *{margin-left:12px}
.bk-ic{width:40px;height:40px;border-radius:12px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);display:grid;place-items:center;flex:none}
.bk-ic svg{width:20px;height:20px}
.bk-info{flex:1;min-width:0}
.bk-info b{font-size:16px;font-weight:700;color:var(--md-ink);display:block}
.bk-info small{font-size:12.5px;color:var(--md-muted);display:block;margin-top:2px}
.bk-body{margin-bottom:16px}
.bk-status{font-size:13px;color:var(--md-muted);margin-bottom:8px;flex-wrap:wrap;display:flex;align-items:center;}

.bk-status > * + *{margin-left:8px}
.bk-status b{color:var(--md-ink);font-weight:600}
.bk-acts{display:flex;flex-wrap:wrap;justify-content:space-between;padding-top:16px;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);gap:12px;}
.bk-acts > :only-child{margin-left:auto;margin-right:auto}

.bk-acts > * + *{margin-top:0}
.bk-acts .btn-new{flex:0 1 auto;min-width:0;padding:0 14px;justify-content:center}
.bk-tips{background: #FBFAFF;
  background:var(--md-surface-container-low);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);padding:16px 18px;animation:fadeUp .35s ease both}
.bk-tips-title{font-size:13px;font-weight:600;color:var(--md-ink);margin-bottom:12px;display:flex;align-items:center;}

.bk-tips-title > * + *{margin-left:8px}
.bk-tips-title svg{width:15px;height:15px;color:var(--md-primary)}
.bk-tip-row{display:flex;align-items:flex-start;font-size:12.5px;color:var(--md-muted);line-height:1.6;margin-bottom:10px}

.bk-tip-row > * + *{margin-left:8px}
.bk-tip-row:last-child{margin-bottom:0}
.bk-dot{width:5px;height:5px;border-radius:50%;background: #8B5CF6;
  background:var(--md-primary);flex:none;margin-top:7px}
.backup-status{display:flex;align-items:center;font-size:12.5px;color:var(--muted);margin-bottom:6px;flex-wrap:wrap}

.backup-status > * + *{margin-left:10px}
.backup-status b{color:var(--ink)}
.progress{height:8px;border-radius:999px;background:var(--line-2);overflow:hidden;margin:10px 0 4px;max-width:420px}
.progress>i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--md-primary),var(--brand-cyan));border-radius:999px;transition:width .3s}

/* ===================== AI 助手 ===================== */
/* AI 文档工具：在 .d-tools-row 卡片内贴边，与 .d-foot-tools 一致 flex:none */
.ai-doc-tools{display:flex;align-items:center;gap:0;padding:0;flex:none}
.ai-doc-btn{display:inline-flex;align-items:center;height:38px;padding:0 14px;border:none;border-radius:0;
  background:transparent;color:var(--md-on-primary-container);font-size:12.5px;font-weight:600;cursor:pointer;
  transition:all .15s;font-family:inherit;white-space:nowrap;flex:none}

.ai-doc-btn > * + *{margin-left:5px}
/* ===================== 编辑器底部 AI 按钮 hover =====================
   * 用 .d-tool-pill.ai-doc-btn 双类选择器提高特异性，覆盖下方 AI 助手 .ai-doc-btn:hover
   * hover 样式与 .d-tool-pill:hover 一致（浅紫容器），不用深紫填充避免突兀 */
.d-tool-pill.ai-doc-btn:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.ai-doc-btn:active{transform:scale(.96)}
.ai-doc-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.ai-doc-btn svg{width:14px;height:14px;flex:none}
.ai-doc-btn.loading{pointer-events:none;opacity:.7}

/* ===================== AI 文档处理结果展示区 ===================== */
.ai-doc-result-wrap{margin-top:14px;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}


/* ===================== AI 文档处理结果展示区 ===================== */
.ai-doc-result-wrap > * + *{margin-top:10px}
.ai-doc-result-view{flex:1;min-height:280px;max-height:62vh;overflow:auto;padding:14px 16px;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FBFAFF;
  background:var(--md-surface-container-low);transition:border-color .15s}
.ai-doc-result-view.streaming{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.ai-doc-result-view.editing{display:none}
.ai-doc-result-area{width:100%;flex:1;min-height:280px;max-height:62vh;padding:12px 14px;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);
  border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);color:var(--ink);font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;line-height:1.6;resize:none;outline:none;transition:border-color .15s;box-sizing:border-box}
.ai-doc-result-area:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.ai-doc-result-wrap.editing .ai-doc-result-view{display:none}
.ai-doc-result-wrap.editing .ai-doc-result-area{display:block}

/* 复用 AI 助手 .bubble.ai .md 的渲染样式 */
.ai-doc-result-view .md p{margin:0 0 9px;word-wrap:break-word;overflow-wrap:break-word}
.ai-doc-result-view .md p:last-child{margin-bottom:0}
.ai-doc-result-view .md h1,.ai-doc-result-view .md h2,.ai-doc-result-view .md h3{margin:14px 0 7px;line-height:1.35;font-weight:700;color:var(--ink)}
.ai-doc-result-view .md h1{font-size:18px;padding-bottom:.35em;border-bottom: 2px solid #C9BBE8;
  border-bottom:2px solid var(--md-outline-var);position:relative}
.ai-doc-result-view .md h1::after{content:'';position:absolute;left:0;bottom:-2px;width:54px;height:2px;background:var(--grad-primary);border-radius:999px}
.ai-doc-result-view .md h2{font-size:16px;padding-left:.8em;border-left: 3px solid #8B5CF6;
  border-left:3px solid var(--md-primary);border-radius:3px}
.ai-doc-result-view .md h3{font-size:14.5px}
.ai-doc-result-view .md ul,.ai-doc-result-view .md ol{margin:7px 0 11px;padding-left:1.6rem}
.ai-doc-result-view .md li{margin:.32rem 0}
.ai-doc-result-view .md li::marker{color:var(--md-primary)}
.ai-doc-result-view .md a{color:var(--md-primary);text-decoration:none;border-bottom:1.5px solid rgba(var(--brand-rgb),.3)}
.ai-doc-result-view .md blockquote{margin:10px 0;padding:.6rem 1rem;border-left: 3px solid #8B5CF6;
  border-left:3px solid var(--md-primary);border-radius:0 var(--md-rs-md) var(--md-rs-md) 0;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:.95em}
.ai-doc-result-view .md blockquote p{margin:.4em 0}
.ai-doc-result-view .md :not(pre)>code{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);padding:1.5px 6px;border-radius:5px;font-size:12.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.ai-doc-result-view .md pre{background:var(--md-surface-container-highest);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 22px;
  border-radius:var(--md-rs-md);padding:12px 14px;overflow-x:auto;margin:11px 0}
.ai-doc-result-view .md pre code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;color:var(--ink);background:none;padding:0}
.ai-doc-result-view .md hr{border:none;height:1.5px;background:linear-gradient(90deg,transparent,var(--md-outline-var) 20%,var(--md-outline-var) 80%,transparent);margin:13px 0;border-radius:999px}
/* 表格横向滚动:由 .md-table-wrap 提供 overflow-x:auto,table 不再自带 overflow:hidden */
.ai-doc-result-view .md .md-table-wrap{margin:11px 0;overflow-x:auto;border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch}
.ai-doc-result-view .md table{border-collapse:separate;border-spacing:0;font-size:12.5px;width:100%;min-width:280px;margin:0}
.ai-doc-result-view .md th,.ai-doc-result-view .md td{border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);border-right: 1px solid #C9BBE8;
  border-right:1px solid var(--md-outline-var);padding:7px 11px;text-align:left;vertical-align:top}
.ai-doc-result-view .md th:last-child,.ai-doc-result-view .md td:last-child{border-right:none}
.ai-doc-result-view .md tr:last-child td{border-bottom:none}
.ai-doc-result-view .md thead th{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);font-weight:700}
.ai-doc-result-view .md tbody tr:nth-child(even){background: #FBFAFF;
  background:var(--md-surface-container-low);}

/* 暂停按钮样式 */
.ai-doc-stop-btn{display:inline-flex;align-items:center;padding:0 18px;height:40px;border:none;border-radius:20px;
  background:rgba(179,38,38,.12);color:var(--err);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;flex:none}


/* 暂停按钮样式 */
.ai-doc-stop-btn > * + *{margin-left:6px}
.ai-doc-stop-btn:hover{background:rgba(179,38,38,.2)}
.ai-doc-stop-btn svg{width:14px;height:14px;flex:none}
.ai-doc-stop-btn[hidden]{display:none}

/* ===================== 开通会员弹窗 ===================== */
.upg-features{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0 0 12px;padding:14px 14px 12px;
  background:var(--md-surface-container);border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);}
.upg-feat{display:flex;align-items:center;font-size:12.5px;font-weight:600;color:var(--md-on-surface)}

.upg-feat > * + *{margin-left:8px}
.upg-feat svg{width:15px;height:15px;color:var(--md-primary);flex:none}
.upg-tiers{margin:0 0 12px;border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);overflow:hidden}
.upg-table{width:100%;border-collapse:collapse;font-size:12px}
.upg-table th{padding:8px 4px;font-size:11px;font-weight:700;color:var(--md-muted);background: #FFFFFF;
  background:var(--md-surface);}
.upg-table td{padding:7px 4px;text-align:center;color:var(--md-on-surface);font-weight:600;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);}
.upg-table td:first-child{font-weight:700;color:var(--md-primary)}
.upg-table td:nth-child(2){font-weight:800;color:var(--md-primary)}
.upg-pricing{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}
.upg-price{display:flex;flex-direction:column;align-items:center;padding:11px 4px 9px;
  background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius: 22px;
  border-radius:var(--md-rs-md);transition:all .15s;
  cursor:pointer;font-family:inherit;width:100%}

.upg-price > * + *{margin-top:2px}
.upg-price:focus-visible{outline:2px solid var(--md-primary);outline-offset:2px}
.upg-price:hover{transform:translateY(-2px);border-color: #8B5CF6;
  border-color:var(--md-primary);box-shadow:0 2px 8px rgba(103,80,164,.15)}
.upg-price:active{transform:translateY(0)}
.upg-price:disabled{opacity:.6;cursor:wait;transform:none}
.upg-price b{font-size:12px;font-weight:600;color:var(--md-muted)}
.upg-price span{font-size:17px;font-weight:800;color:var(--md-primary);line-height:1.1}
.upg-price span small{font-size:11px;font-weight:600;color:var(--md-muted)}
.upg-price.hot{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);position:relative}
.upg-price.hot::before{content:'推荐';position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  font-size:9.5px;font-weight:700;color:#fff;background: #8B5CF6;
  background:var(--md-primary);padding:1px 7px;border-radius:999px;white-space:nowrap}
.upg-price.hot span{color:var(--md-primary)}
.upg-qr{display:flex;flex-direction:column;align-items:center;padding:14px;
  background:var(--md-surface-container);border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);}

.upg-qr > * + *{margin-top:8px}
.upg-qr img{width:170px;height:170px;object-fit:contain;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);padding:6px;cursor:zoom-in;transition:transform .15s}
.upg-qr img:hover{transform:scale(1.02)}
.upg-qr p{margin:0;font-size:12px;color:var(--md-muted);text-align:center;line-height:1.5}
.upg-qr p b{display:block;color:var(--md-on-surface);font-size:13px;margin-bottom:2px}
/* ===================== 会员卡密兑换 ===================== */
.upg-redeem{margin:0 0 14px;padding:14px;border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px dashed #8B5CF6;
  border:1px dashed var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.upg-redeem-t{font-size:13px;font-weight:700;color:var(--md-primary);margin-bottom:10px}
.upg-redeem-row{display:flex;}

.upg-redeem-row > * + *{margin-left:8px}
.upg-redeem-row input{flex:1;min-width:0;padding:10px 12px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:14px;font-family:monospace;letter-spacing:1px;background: #FFFFFF;
  background:var(--md-surface);color:var(--md-on-surface)}
.upg-redeem-row .btn-conf{flex:none;padding:10px 18px;border:0;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #8B5CF6;
  background:var(--md-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.upg-redeem-row .btn-conf:disabled{opacity:.6;cursor:wait}
@media(max-width:560px){.upg-redeem-row{display:block;text-align:center}.upg-redeem-row input{display:block;width:100%;margin-bottom:12px;text-align:left}.upg-redeem-row .btn-conf{display:block;width:100%;min-width:0;max-width:none;padding:12px 20px;margin:0 auto}}

.ai-ctx{display:flex;align-items:center;padding:10px 18px;background: #FFFFFF;
  background:var(--md-surface);flex:none;border-bottom:1.5px solid var(--line);height:60px}


.ai-ctx > * + *{margin-left:10px}
.ai-ctx-label{font-size:12px;color:var(--muted);font-weight:600;flex:none}
.ctx-chip{display:inline-flex;align-items:center;padding:7px 13px;border-radius: 28px;
  border-radius:var(--md-rs-full);font-size:12.5px;font-weight:600;
  background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);cursor:pointer;border:none;transition:all .15s;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}

.ctx-chip > * + *{margin-left:6px}
.ctx-chip:hover{filter:brightness(.97)}
.ctx-chip.empty{background:var(--md-surface-container-high);color:var(--md-primary);border: 1.5px dashed #C9BBE8;
  border:1.5px dashed var(--md-outline-var);border-radius: 28px;
  border-radius:var(--md-rs-full);}
.ctx-chip.active{background: #8B5CF6;
  background:var(--md-primary);color:#fff}
.ctx-chip svg{width:13px;height:13px;flex:none}
.ctx-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* ===================== 顶栏额度次数（移动端 AI 视图） ===================== */
.ai-quota-top{display:none;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--md-surface-container);padding:4px 10px;border-radius:999px;white-space:nowrap;flex:none}
.ai-quota-top.low{color:var(--err);background:rgba(179,38,38,.08)}
.ai-quota-top.vip{color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}

.ai-quota{font-size:11.5px;font-weight:600;color:var(--muted);background:var(--md-surface-container);padding:4px 10px;border-radius:999px;white-space:nowrap;flex:none;margin-left:auto}
.ai-quota.low{color:var(--err);background:rgba(179,38,38,.08)}
.ai-quota.vip{color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.ai-clear{display:inline-flex;align-items:center;font-size:12.5px;color:var(--muted-2);background: #FFFFFF;
  background:var(--md-surface);
  border:1.5px solid var(--line);padding:7px 13px;border-radius:10px;cursor:pointer;transition:all .15s;flex:none;white-space:nowrap}

.ai-clear > * + *{margin-left:5px}

.ai-clear:hover{border-color:var(--md-error);color:var(--md-error);background:var(--md-error-container)}
.ai-clear svg{width:13px;height:13px}

.ai-pick{display:inline-flex;align-items:center;width:100%;padding:9px 14px;border-radius: 14px;
  border-radius:var(--md-rs-sm);
  background:var(--md-surface-container-high);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);cursor:pointer;
  font-size:13.5px;color:var(--md-primary);font-weight:600;transition:all .15s;}


.ai-pick > * + *{margin-left:8px}
.ai-pick:hover{background: #EDE9FE;
  background:var(--md-primary-container);border-color:transparent}
.ai-pick-ic{display:grid;place-items:center;flex:none}
.ai-pick-ic svg{width:17px;height:17px}
.ai-pick-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-msgs{flex:1;min-height:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column;background: #FBFAFF;
  background:var(--md-surface-container-low);}

.ai-empty{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;flex:1;min-height:220px;padding:20px 20px 8vh;color:var(--muted)}


.ai-empty > * + *{margin-top:14px}
.ai-empty .ae-icon{width:58px;height:58px;border-radius:18px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);display:grid;place-items:center;box-shadow:var(--shadow-sm)}
.ai-empty .ae-icon svg{width:28px;height:28px}
.ai-empty b{font-size:15px;color:var(--ink);font-weight:700}
.ai-empty p{font-size:13px;line-height:1.7;max-width:280px;margin:0}
.ai-empty-tips{display:flex;flex-direction:column;width:100%;max-width:300px;margin-top:4px}

.ai-empty-tips > * + *{margin-top:8px}
.ai-empty-tip{display:flex;align-items:center;padding:10px 14px;border-radius:10px;background: #FFFFFF;
  background:var(--md-surface);border:1.5px solid var(--line);font-size:13px;color:var(--ink);cursor:pointer;transition:all .15s;text-align:left}

.ai-empty-tip > * + *{margin-left:10px}
.ai-empty-tip:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.ai-empty-tip svg{width:16px;height:16px;flex:none;color:var(--md-primary)}
.bubble{max-width:86%;padding:12px 15px;border-radius:14px;font-size:14px;line-height:1.7;margin-bottom:12px;
  white-space:pre-wrap;word-break:break-word;animation:fadeUp .25s ease both}
.bubble.user{align-self:flex-end;background:var(--grad-primary);color:#fff;border-bottom-right-radius:5px;box-shadow:var(--shadow-brand)}
.bubble.ai{align-self:flex-start;background: #FFFFFF;
  background:var(--md-surface);border:1.5px solid var(--line);border-bottom-left-radius:5px;box-shadow:var(--shadow-sm)}
.bubble.ai code{font-family:ui-monospace,Menlo,Consolas,monospace}
.bubble.ai .raw-text{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12.5px;line-height:1.6;color:var(--md-muted)}
.cursor{display:inline-block;width:7px;height:15px;background:var(--primary);border-radius:2px;vertical-align:text-bottom;
  animation:blink 1s steps(2) infinite;margin-left:2px}
.ai-bar{display:flex;flex-direction:column;padding:12px 18px;background: #FFFFFF;
  background:var(--md-surface);border-top:1.5px solid var(--line);margin-top:auto}

.ai-bar > * + *{margin-top:10px}
.ai-input-row{display:flex;align-items:flex-end;}

.ai-input-row > * + *{margin-left:10px}
.ai-input-wrap{flex:1;display:flex;align-items:center;background:var(--md-surface-container);border:1.5px solid transparent;border-radius:16px;padding:4px 6px 4px 18px;transition:border-color .18s,background-color .18s;min-width:0}

.ai-input-wrap > * + *{margin-left:4px}
.ai-input-wrap:focus-within{border-color: #8B5CF6;
  border-color:var(--md-primary);background:var(--md-surface-container-high)}
.ai-input-wrap textarea{flex:1;resize:none;border:none;outline:none;background:transparent;padding:8px 0;font-size:14.5px;line-height:1.5;height:auto;min-height:44px;max-height:160px;font-family:inherit;color:var(--ink);min-width:0;overflow-y:auto;transition:height .1s ease}
.ai-input-wrap textarea::placeholder{color:var(--md-muted)}
.ai-expand{display:grid;place-items:center;width:34px;height:34px;flex:none;border:none;border-radius:50%;background:transparent;color:var(--md-muted);cursor:pointer;transition:all .15s}
.ai-expand:hover{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
.ai-expand svg{width:19px;height:19px}
.ai-send{display:grid;place-items:center;width:44px;height:44px;flex:none;border:none;border-radius:50%;background:var(--grad-primary);color:#fff;cursor:pointer;transition:all .15s;box-shadow:var(--shadow-brand)}
.ai-send:hover{background:var(--grad-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-brand-hover)}
.ai-send svg{width:18px;height:18px}
.ai-send:disabled{opacity:.55;cursor:wait;transform:none}

.ai-send.stop{background:var(--md-surface-container-high);color:var(--md-error);box-shadow:var(--shadow-sm);animation:aiStopPulse 1.6s ease-in-out infinite}
.ai-send.stop:hover{background:var(--md-error-container);color:var(--md-error);transform:none}
.ai-send.stop svg{width:14px;height:14px}
@keyframes aiStopPulse{0%,100%{box-shadow:var(--shadow-sm)}50%{box-shadow:0 0 0 6px rgba(var(--error-rgb),.12)}}

/* ===================== AI 选文档面板（移动端抽屉 / PC 居中 modal） =====================
 * 遮罩用 opacity 过渡（与长按菜单 .doc-sheet-scrim 一致），与 .pp-card 动画同步。
 * 原方案用 visibility 瞬时切换会导致"遮罩瞬间显示再显示弹窗"的视觉不同步。 */
.ai-pick-panel{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background:rgba(20,28,44,.42);
  display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow:auto;
  opacity:0;pointer-events:none;transition:opacity .22s cubic-bezier(.2,.9,.3,1)}
.ai-pick-panel.open{opacity:1;pointer-events:auto}

.pp-card{position:relative;display:flex;flex-direction:column;width:100%;max-width:min(1000px,calc(100vw - 48px));max-height:min(780px,calc(100vh - 48px));margin:auto;overflow:hidden;background: #FFFFFF;
  background:var(--md-surface);
  border-radius: 26px;
  border-radius:var(--md-rs-lg);box-shadow:var(--shadow-lg);padding:24px 24px 18px;
  opacity:0;transform:scale(.98);transition:opacity .22s cubic-bezier(.2,.9,.3,1),transform .22s cubic-bezier(.2,.9,.3,1)}
.ai-pick-panel.open .pp-card{opacity:1;transform:scale(1)}
#ppBody{flex:1;overflow:auto;min-height:0;padding:14px 0}
.ai-pick-panel .pp-card .doc-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
/* PC 端 AI 选文档弹窗是居中 modal，隐藏底部抽屉的拖拽把手 */
.ai-pick-panel .pp-card .ds-handle{display:none}
.ai-pick-panel .pp-card .doc-card{min-width:0}

.ai-pick-panel .pp-card .m-acts{display:flex;justify-content:space-between;align-items:center;position:relative;flex:none;background:var(--md-surface-container);border-radius: 22px;
  border-radius:var(--md-rs-md);padding:10px 14px;margin:14px 0 0;box-shadow:var(--shadow-sm);flex-wrap:wrap;row-}


.ai-pick-panel .pp-card .m-acts > * + *{margin-left:12px}
.ai-pick-panel .pp-card .m-acts .m-acts-left{display:flex;align-items:center;flex-wrap:wrap}

.ai-pick-panel .pp-card .m-acts .m-acts-left > * + *{margin-left:8px}
.ai-pick-panel .pp-card .m-acts .m-acts-right{display:flex;align-items:center;margin-left:auto}

.ai-pick-panel .pp-card .m-acts .m-acts-right > * + *{margin-left:8px}
.ai-pick-panel .pp-card .m-acts .m-acts-count{font-size:12.5px;color:var(--md-on-surface-variant);font-weight:500;padding:0 4px;min-width:62px}
.ai-pick-panel .pp-card .m-acts .m-mini{flex:none;min-width:auto;height:32px;padding:0 12px;border-radius:16px;font-size:13px;font-weight:600;cursor:pointer;border: 1px solid #7C6FA8;
  border:1px solid var(--md-outline);background:transparent;color:var(--md-on-surface);transition:all .2s}
.ai-pick-panel .pp-card .m-acts .m-mini:hover{background:var(--md-surface-container-highest)}
.ai-pick-panel .pp-card .m-acts button:not(.m-mini){flex:none;min-width:96px;height:40px;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;border:none;line-height:1;transition:all .2s}

.ai-pick-panel .pp-card .pp-sticky-head{flex:none;position:static;background: #FFFFFF;
  background:var(--md-surface);padding-bottom:10px;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);}
.ai-pick-panel .pp-card .pp-sticky-head .m-head,
.ai-pick-panel .pp-card .pp-sticky-head .m-tabs{position:static}

.ai-expand-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:60;background: #FFFFFF;
  background:var(--md-surface);display:flex;flex-direction:column;
  opacity:0;visibility:hidden;transform:translateY(8px) scale(.99);
  transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}
.ai-expand-overlay.open{opacity:1;visibility:visible;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .22s ease,visibility 0s}
.ae-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1.5px solid var(--line)}

.ae-head > * + *{margin-left:10px}
.ae-head > span{font-size:15px;font-weight:700;color:var(--ink)}
.ae-close{display:flex;align-items:center;border:none;background:var(--grad-primary);color:#fff;border-radius:var(--radius-sm);
  padding:9px 16px;font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-brand)}

.ae-close > * + *{margin-left:6px}
.ae-close svg{width:16px;height:16px}
.ae-input{flex:1;width:100%;border:none;outline:none;resize:none;padding:18px;font-size:16px;line-height:1.7;
  font-family:inherit;background:transparent;color:var(--ink)}

.ai-wide{display:flex;flex-direction:column;flex:1;min-height:0;padding:0;max-width:none}
.ai-split{display:flex;width:100%;min-height:0;
  
  flex-direction:row-reverse;
  border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 26px;
  border-radius:var(--md-rs-lg);overflow:hidden;background: #FFFFFF;
  background:var(--md-surface);}
.content.ai-view{padding:0;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.content.ai-view > #viewBox{flex:1;min-height:0;display:flex;flex-direction:column}
.content.ai-view .ai-split{flex:1;min-height:0;border-radius:0;border:none}
.ai-doc{display:flex;flex-direction:column;width:50%;min-width:0;min-height:0;background: #FBFAFF;
  background:var(--md-surface-container-low);}
.ai-doc-head{display:flex;align-items:center;padding:12px 18px;border-bottom:1.5px solid var(--line);background: #FFFFFF;
  background:var(--md-surface);height:60px}

.ai-doc-head > * + *{margin-left:10px}
.ai-doc-sel{display:flex;align-items:center;flex:1;min-width:0}

.ai-doc-sel > * + *{margin-left:7px}
.ai-doc-sel svg{width:17px;height:17px;color:var(--md-primary);flex:none}
.ai-doc-sel select{flex:1;min-width:0;max-width:100%;border:1.5px solid var(--line);border-radius:9px;
  padding:8px 10px;font-size:13px;font-family:inherit;background: #FFFFFF;
  background:var(--md-surface);color:var(--ink);outline:none;
  white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.ai-doc-sel select:focus{border-color:var(--primary)}
.ai-doc-acts{display:flex;flex:none}

.ai-doc-acts > * + *{margin-left:7px}
.ai-doc-close{display:none;width:34px;height:34px;border:none;border-radius:9px;align-items:center;justify-content:center;
  font-size:20px;line-height:1;color:var(--muted);background:var(--md-surface-container-high);cursor:pointer;flex:none;transition:all .15s}
.ai-doc-close:hover{background:var(--md-error-container);color:var(--md-error)}
.ai-doc-btn{border:1.5px solid var(--line);background: #FFFFFF;
  background:var(--md-surface);color:var(--muted);font-size:12.5px;font-weight:600;
  padding:6px 12px;border-radius:9px;cursor:pointer;transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;}

.ai-doc-btn > * + *{margin-left:4px}
.ai-doc-btn:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);color:var(--md-primary)}
.ai-doc-btn.primary{background:var(--grad-primary);color:#fff;border-color:transparent;box-shadow:var(--shadow-brand)}
.ai-doc-btn.primary:hover{background:var(--grad-primary-hover);color:#fff}
.ai-doc-editor{flex:1;width:100%;min-height:0;border:none;outline:none;resize:none;padding:16px 18px;font-size:14px;line-height:1.7;
  font-family:inherit;background:transparent;color:var(--ink);overflow:auto}
.ai-doc-foot{padding:8px 18px;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);font-size:12px;color:var(--muted-2);
  background: #FFFFFF;
  background:var(--md-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ai-ctx-list{flex:1;min-height:0;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;}


.ai-ctx-list > * + *{margin-top:8px}
.ai-ctx-list-head{font-size:12px;font-weight:700;color:var(--md-muted);padding:0 4px 6px;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);margin-bottom:6px;letter-spacing:.02em}
.ai-ctx-list-item{display:flex;align-items:center;padding:10px 12px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #FFFFFF;
  background:var(--md-surface);cursor:pointer;transition:all .15s;text-align:left;font-family:inherit;width:100%}

.ai-ctx-list-item > * + *{margin-left:10px}
.ai-ctx-list-item:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.ai-ctx-list-item .cl-ic{width:28px;height:28px;border-radius:8px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);display:grid;place-items:center;flex:none}
.ai-ctx-list-item .cl-ic svg{width:15px;height:15px}
.ai-ctx-list-item .cl-name{flex:1;min-width:0;font-size:13.5px;font-weight:600;color:var(--md-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-ctx-list-item .cl-arrow{color:var(--md-muted);flex:none}
.ai-ctx-list-item .cl-arrow svg{width:16px;height:16px}
.ai-ctx-list-empty{padding:24px 16px;text-align:center;color:var(--md-muted);font-size:13px}
.ai-chat{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;background: #FFFFFF;
  background:var(--md-surface);border-right:1.5px solid var(--line)}
.ai-doc-toggle{display:none}

.ai-view-btn{display:inline-flex;align-items:center;padding:7px 13px;border-radius: 28px;
  border-radius:var(--md-rs-full);
  font-size:12.5px;font-weight:600;background:var(--md-surface-container-high);color:var(--md-primary);
  border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);cursor:pointer;transition:all .15s;font-family:inherit;white-space:nowrap;flex:none}


.ai-view-btn > * + *{margin-left:6px}
.ai-view-btn:hover{border-color: #8B5CF6;
  border-color:var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.ai-view-btn:disabled{opacity:.4;cursor:not-allowed}
.ai-view-btn svg{width:14px;height:14px;flex:none}
.ai-view-btn .cnt{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background: #8B5CF6;
  background:var(--md-primary);color:#fff;
  font-size:10.5px;font-weight:700;display:grid;place-items:center;flex:none}
.ai-view-btn:disabled .cnt{background: #7C6FA8;
  background:var(--md-outline);}

.m-doc-list{display:flex;flex-direction:column;margin-top:4px}


.m-doc-list > * + *{margin-top:6px}
.m-doc-item{display:flex;align-items:center;width:100%;padding:12px 14px;border-radius: 14px;
  border-radius:var(--md-rs-sm);
  background: #FFFFFF;
  background:var(--md-surface);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);cursor:pointer;transition:all .15s;
  font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink);text-align:left}

.m-doc-item > * + *{margin-left:10px}
.m-doc-item:hover{background:var(--md-surface-container-high);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.m-doc-item .v-ic{width:30px;height:30px;border-radius:8px;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);
  display:grid;place-items:center;flex:none}
.m-doc-item .v-ic svg{width:15px;height:15px}
.m-doc-item .v-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-doc-item .v-arrow{color:var(--md-muted);flex:none}
.m-doc-item .v-arrow svg{width:16px;height:16px}

.bubble.ai .md p{margin:0 0 9px;word-wrap:break-word;overflow-wrap:break-word}
.bubble.ai .md p:last-child{margin-bottom:0}
.bubble.ai .md h1,.bubble.ai .md h2,.bubble.ai .md h3{margin:14px 0 7px;line-height:1.35;font-weight:700;color:var(--ink)}
.bubble.ai .md h1{font-size:18px;padding-bottom:.35em;border-bottom: 2px solid #C9BBE8;
  border-bottom:2px solid var(--md-outline-var);position:relative}
.bubble.ai .md h1::after{content:'';position:absolute;left:0;bottom:-2px;width:54px;height:2px;background:var(--grad-primary);border-radius:999px}
.bubble.ai .md h2{font-size:16px;padding-left:.8em;border-left: 3px solid #8B5CF6;
  border-left:3px solid var(--md-primary);border-radius:3px;transition:all .2s}
.bubble.ai .md h2:hover{padding-left:1em;border-left-color:var(--brand-cyan)}
.bubble.ai .md h3{font-size:14.5px;transition:all .2s}
.bubble.ai .md h3::before{content:'';display:inline-block;width:7px;height:7px;margin-right:.5em;vertical-align:middle;background: #8B5CF6;
  background:var(--md-primary);border-radius:50%;opacity:.55;transition:all .2s}
.bubble.ai .md h3:hover::before{opacity:1;transform:scale(1.3)}
.bubble.ai .md ul,.bubble.ai .md ol{margin:7px 0 11px;padding-left:1.6rem}
.bubble.ai .md li{margin:.32rem 0}
.bubble.ai .md li::marker{color:var(--md-primary)}
.bubble.ai .md a{color:var(--md-primary);text-decoration:none;border-bottom:1.5px solid rgba(var(--brand-rgb),.3);transition:all .2s}
.bubble.ai .md a:hover{background: #EDE9FE;
  background:var(--md-primary-container);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.bubble.ai .md blockquote{margin:10px 0;padding:.6rem 1rem;border-left: 3px solid #8B5CF6;
  border-left:3px solid var(--md-primary);border-radius:0 var(--md-rs-md) var(--md-rs-md) 0;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);font-size:.95em}
.bubble.ai .md blockquote p{margin:.4em 0;opacity:1}
.bubble.ai .md :not(pre)>code{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);padding:1.5px 6px;border-radius:5px;font-size:12.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.bubble.ai .md hr{border:none;height:1.5px;background:linear-gradient(90deg,transparent,var(--md-outline-var) 20%,var(--md-outline-var) 80%,transparent);margin:13px 0;border-radius:999px}

.bubble.ai .md .md-table-wrap{margin:11px 0;overflow-x:auto;border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);box-shadow:var(--shadow-sm)}
.bubble.ai .md table{border-collapse:separate;border-spacing:0;font-size:12.5px;width:100%;min-width:280px;overflow:hidden;border-radius: 22px;
  border-radius:var(--md-rs-md);}
.bubble.ai .md th,.bubble.ai .md td{border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);border-right: 1px solid #C9BBE8;
  border-right:1px solid var(--md-outline-var);padding:7px 11px;text-align:left;vertical-align:top;transition:background-color .2s}
.bubble.ai .md th:last-child,.bubble.ai .md td:last-child{border-right:none}
.bubble.ai .md tr:last-child td{border-bottom:none}
.bubble.ai .md thead th{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-on-primary-container);font-weight:700;white-space:nowrap;border-bottom: 2px solid #EDE9FE;
  border-bottom:2px solid var(--md-primary-container);}
.bubble.ai .md tbody tr:nth-child(even){background: #FBFAFF;
  background:var(--md-surface-container-low);}
.bubble.ai .md tbody tr:hover td{background: #EDE9FE;
  background:var(--md-primary-container);}

.codeblk{position:relative;margin:10px 0;border-radius: 22px;
  border-radius:var(--md-rs-md);overflow:hidden;border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);background: #FBFAFF;
  background:var(--md-surface-container-low);}
.codeblk .cb-top{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--md-surface-container);border-bottom: 1.5px solid #C9BBE8;
  border-bottom:1.5px solid var(--md-outline-var);}

.codeblk .cb-top > * + *{margin-left:8px}
.codeblk .cb-lang{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.4px;text-transform:uppercase;font-family:ui-monospace,Menlo,Consolas,monospace}
.codeblk .cb-acts{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end}

.codeblk .cb-acts > * + *{margin-left:6px}
.codeblk .cb-copy,.codeblk .cb-write{display:flex;align-items:center;background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);
  color:var(--md-primary);font-size:11px;font-weight:600;padding:5px 9px;border-radius: 14px;
  border-radius:var(--md-rs-sm);cursor:pointer;transition:all .14s}

.codeblk .cb-copy > * + *, .codeblk .cb-write > * + *{margin-left:4px}
.codeblk .cb-copy:hover,.codeblk .cb-write:hover{background: #EDE9FE;
  background:var(--md-primary-container);border-color: #8B5CF6;
  border-color:var(--md-primary);}
.codeblk .cb-copy svg,.codeblk .cb-write svg{width:12px;height:12px}
.codeblk pre{margin:0;background: #FBFAFF;
  background:var(--md-surface-container-low);color:var(--ink);padding:12px 14px;overflow:auto;
  font-size:12.5px;line-height:1.6;font-family:ui-monospace,Menlo,Consolas,monospace}

.bubble-wrap{display:flex;flex-direction:column;max-width:86%;align-self:flex-start;margin-bottom:12px}
.bubble-wrap.user-msg{align-self:flex-end;align-items:flex-end}
.bubble-wrap .bubble{max-width:100%;margin-bottom:0}
.msg-acts{display:flex;margin-top:6px;padding-left:4px;opacity:0;transition:opacity .16s}

.msg-acts > * + *{margin-left:7px}
.bubble-wrap:hover .msg-acts{opacity:1}
.msg-acts button{display:flex;align-items:center;background: #FFFFFF;
  background:var(--md-surface);border:1.5px solid var(--line);
  color:var(--muted-2);font-size:11.5px;padding:4px 10px;border-radius:8px;cursor:pointer;transition:all .14s}

.msg-acts button > * + *{margin-left:4px}
.msg-acts button:hover{border-color:var(--primary);color:var(--primary);background:var(--md-secondary-container)}
.msg-acts button svg{width:12px;height:12px}

.sel-float{position:absolute;z-index:60;display:inline-flex;align-items:center;
  background:var(--primary);color:#fff;border:none;border-radius:8px;
  padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;
  box-shadow:var(--shadow-brand);opacity:0;transform:translateY(4px);
  animation:selFloatIn .12s ease forwards;font-family:inherit}


.sel-float > * + *{margin-left:5px}
.sel-float:hover{filter:brightness(1.08)}
.sel-float svg{width:13px;height:13px}
@keyframes selFloatIn{to{opacity:1;transform:translateY(0)}}

/* ===================== 开通会员 v2（套餐按钮 + 详情 + 支付） ===================== */
.upg-plans{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.upg-plan{display:flex;flex-direction:column;align-items:center;padding:13px 8px 11px;
  background: #FFFFFF;
  background:var(--md-surface);border: 1.5px solid #C9BBE8;
  border:1.5px solid var(--md-outline-var);border-radius: 22px;
  border-radius:var(--md-rs-md);transition:all .15s;
  cursor:pointer;font-family:inherit;width:100%}

.upg-plan > * + *{margin-top:3px}
.upg-plan:focus-visible{outline:2px solid var(--md-primary);outline-offset:2px}
.upg-plan:hover{transform:translateY(-2px);border-color: #8B5CF6;
  border-color:var(--md-primary);box-shadow:0 2px 8px rgba(103,80,164,.15)}
.upg-plan:active{transform:translateY(0)}
.upg-plan.sel{border-color: #8B5CF6;
  border-color:var(--md-primary);background:color-mix(in srgb,var(--md-primary) 10%,var(--md-surface));box-shadow:0 0 0 1.5px var(--md-primary) inset}
.upg-plan b{font-size:14px;font-weight:700;color:var(--md-on-surface)}
.upg-plan span{font-size:17px;font-weight:800;color:var(--md-primary)}
.upg-plan span small{font-size:11px;font-weight:600}
.upg-plan.hot::before{content:'推荐';position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  font-size:9.5px;font-weight:700;color:#fff;background: #8B5CF6;
  background:var(--md-primary);padding:1px 7px;border-radius:999px;white-space:nowrap}
.upg-plan.hot{position:relative}
.upg-detail{display:flex;flex-direction:column;padding:14px;margin-bottom:14px;
  background:var(--md-surface-container);border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px solid #8B5CF6;
  border:1px solid var(--md-primary);animation:fadeUp .18s ease}

.upg-detail > * + *{margin-top:10px}
.upg-detail-title{font-size:14px;font-weight:700;color:var(--md-primary);text-align:center}
.upg-fields{display:flex;flex-direction:column;}

.upg-fields > * + *{margin-top:8px}
.upg-field{display:flex;align-items:center;}

.upg-field > * + *{margin-left:8px}
.upg-field label{width:64px;flex:none;font-size:12.5px;color:var(--md-on-surface-var);text-align:right}
.upg-field input{flex:1;min-width:0;padding:9px 10px;border-radius: 14px;
  border-radius:var(--md-rs-sm);border: 1px solid #7C6FA8;
  border:1px solid var(--md-outline);
  background: #FFFFFF;
  background:var(--md-surface);color:var(--md-on-surface);font-size:13px;font-family:inherit;outline:none}
.upg-field input:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.upg-pay-btns{display:flex;margin-top:2px}

.upg-pay-btns > * + *{margin-left:10px}
.upg-pay{flex:1;padding:11px 6px;border:none;border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:14px;font-weight:700;color:#fff;cursor:pointer;font-family:inherit;transition:opacity .15s}
.upg-pay:active{opacity:.8}
.upg-pay-wx{background:#07C160}
.upg-pay-ali{background:#1677FF}
.upg-ic svg{width:26px;height:26px}
/* ===================== 会员卡密兑换 ===================== */
.upg-redeem{margin:0 0 14px;padding:14px;border-radius: 22px;
  border-radius:var(--md-rs-md);border: 1px dashed #8B5CF6;
  border:1px dashed var(--md-primary);background: #EDE9FE;
  background:var(--md-primary-container);}
.upg-redeem-t{font-size:13px;font-weight:700;color:var(--md-primary);margin-bottom:10px}
.upg-redeem-row{display:flex;}

.upg-redeem-row > * + *{margin-left:8px}
.upg-redeem-row input{flex:1;min-width:0;padding:10px 12px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:14px;font-family:monospace;letter-spacing:1px;background: #FFFFFF;
  background:var(--md-surface);color:var(--md-on-surface)}
.upg-redeem-row .btn-conf{flex:none;padding:10px 18px;border:0;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #8B5CF6;
  background:var(--md-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.upg-redeem-row .btn-conf:disabled{opacity:.6;cursor:wait}
@media(max-width:560px){.upg-redeem-row{display:block;text-align:center}.upg-redeem-row input{display:block;width:100%;margin-bottom:12px;text-align:left}.upg-redeem-row .btn-conf{display:block;width:100%;min-width:0;max-width:none;padding:12px 20px;margin:0 auto}}
/* ===================== 微信扫码支付弹窗 ===================== */
.wxpay-body{display:flex;flex-direction:column;align-items:center;padding:6px 2px 2px}

/* ===================== 微信扫码支付弹窗 ===================== */
.wxpay-body > * + *{margin-top:10px}
.wxpay-qr{width:280px;height:280px;border-radius: 22px;
  border-radius:var(--md-rs-md);background: #FFFFFF;
  background:var(--md-surface);display:flex;align-items:center;justify-content:center;overflow:hidden;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);}
.wxpay-qr img{width:100%;height:100%;object-fit:contain}
.wxpay-save{margin-top:14px;background:linear-gradient(135deg,#8B5CF6,#6D28D9);color:#fff;border:none;padding:11px 30px;border-radius:999px;font-size:14.5px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(139,92,246,.35)}
.wxpay-save:disabled{opacity:.6;cursor:default}
.wxpay-loading{font-size:12.5px;color:#999}
.wxpay-err{font-size:12.5px;color:#d9534f;padding:12px;text-align:center}
.wxpay-tip{font-size:12.5px;color:var(--md-on-surface-var);text-align:center;line-height:1.5;margin:0}
.wxpay-tip2{font-size:12px;color:var(--md-primary);text-align:center;line-height:1.5;margin:0}
.wxpay-acts{display:flex;width:100%;justify-content:center;margin-top:4px}

.wxpay-acts > * + *{margin-left:10px}
.wxpay-acts .btn-ghost,.wxpay-acts .btn-conf{min-width:100px}
/* ===================== 回收站：右上角 … 按钮 + 剩余天数 ===================== */
.recy-thumb-card{position:relative}
.recy-thumb{position:relative}
.recy-more{position:absolute;top:6px;right:6px;z-index:3;width:26px;height:26px;border-radius:50%;
  border:none;background:rgba(0,0,0,.42);color:#fff;font-size:15px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0}
.recy-more:active{background:rgba(0,0,0,.62)}
.recy-delete-at{position:absolute;left:8px;right:8px;bottom:26px;font-size:10.5px;color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.recy-remain{position:absolute;left:8px;bottom:8px;font-size:10px;font-weight:700;color:#FFE082;
  background:rgba(0,0,0,.45);padding:1px 7px;border-radius:999px;white-space:nowrap;text-shadow:none}
.card-remain{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;color:#B8860B;
  background:color-mix(in srgb,var(--md-primary) 12%,transparent);padding:1px 7px;border-radius:999px;white-space:nowrap}
/* ===================== 账号中心 UID ===================== */
.ac-uid{font-size:15px;color:var(--md-on-surface-var);margin-top:3px;letter-spacing:.4px;font-weight:600}
/* ===================== 管理后台：收款配置 ===================== */
.admin-pay-cfg{display:flex;flex-direction:column;padding:14px;max-width:560px;margin:0 auto;width:100%;box-sizing:border-box}

/* ===================== 管理后台：收款配置 ===================== */
.admin-pay-cfg > * + *{margin-top:10px}
.admin-pay-title{font-size:15px;font-weight:700;color:var(--md-on-surface);text-align:center}
.admin-pay-tip{font-size:12px;color:var(--md-on-surface-var);line-height:1.6;text-align:center}
.admin-pay-label{font-size:12.5px;color:var(--md-on-surface-var);font-weight:600;margin-top:2px}
.admin-pay-qrrow{display:flex;align-items:center;}

.admin-pay-qrrow > * + *{margin-left:10px}
.admin-pay-state{font-size:12.5px;color:var(--md-primary);font-weight:600}
.admin-pay-acts{display:flex;justify-content:center;margin-top:8px}

.admin-pay-acts > * + *{margin-left:10px}
.admin-pay-acts .btn-ghost,.admin-pay-acts .btn-conf{min-width:110px}
.admin-pay-cfg .admin-input{width:100%;box-sizing:border-box}
.admin-pay-choose{display:flex;margin:6px 0 2px}

.admin-pay-choose > * + *{margin-left:12px}
.admin-pay-big{flex:1;display:flex;align-items:center;justify-content:center;padding:13px 10px;border:none;border-radius:12px;color:#fff;font-size:13.5px;font-weight:800;letter-spacing:1px;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.14);transition:transform .15s}

.admin-pay-big > * + *{margin-left:9px}
.admin-pay-big:active{transform:scale(.97)}
.admin-pay-big .apb-ic{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.22);font-size:15px;font-weight:900}
.admin-pay-big.pay-wx{background:linear-gradient(135deg,#12A150,#0E8A43)}
.admin-pay-big.pay-ali{background:linear-gradient(135deg,#1677FF,#0E5FD8)}
.admin-pay-sub{margin-top:4px;display:flex;flex-direction:column;padding:14px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius:14px;background: #FFFFFF;
  background:var(--md-surface);}

.admin-pay-sub > * + *{margin-top:8px}
.admin-pay-subt{font-size:14.5px;font-weight:800;color:var(--md-primary);text-align:center}


/* ===================== 第 13 轮：开通会员详情表格 / 微信按钮 / 换绑邮箱 ===================== */
.upg-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:15px;background: #FFFFFF;
  background:var(--md-surface);border-radius: 14px;
  border-radius:var(--md-rs-sm);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);overflow:hidden}
.upg-table th{padding:13px 2px;font-size:14px;font-weight:700;color:var(--md-on-primary-container);background: #EDE9FE;
  background:var(--md-primary-container);white-space:nowrap}
.upg-table td{padding:13px 2px;text-align:center;color:var(--md-on-surface);font-weight:600;border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);white-space:nowrap}
.upg-table td:first-child{font-weight:700;color:var(--md-primary)}
.upg-table td:nth-child(2){font-weight:600;color:var(--md-on-surface)}
.upg-tr{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:5px 4px;border-bottom: 1px dashed #C9BBE8;
  border-bottom:1px dashed var(--md-outline-var);}
.upg-tr:last-child{border-bottom:none}
.upg-tr span{color:var(--md-on-surface-var)}
.upg-tr b{color:var(--md-primary);font-weight:700}
.wxpay-acts #wxpayPaid{flex:1;min-width:0;padding:13px 8px;font-size:16px;font-weight:800;border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:inherit;background:linear-gradient(135deg,#07C160,#059B4F);box-shadow:0 4px 14px rgba(7,193,96,.45);animation:pulseWx 1.6s ease-in-out infinite;white-space:normal;line-height:1.35;overflow-wrap:break-word;word-break:break-all}
.wxpay-acts #wxpayPaid:disabled{opacity:.7;animation:none}
@keyframes pulseWx{0%,100%{transform:scale(1)}50%{transform:scale(1.03)}}
.rebind-wrap{display:flex;flex-direction:column;padding:4px 0 2px}

.rebind-wrap > * + *{margin-top:12px}
.rebind-step{display:flex;flex-direction:column;}

.rebind-step > * + *{margin-top:10px}
.rebind-t{font-size:13.5px;font-weight:700;color:var(--md-primary)}
.rebind-cur{font-size:12.5px;color:var(--md-on-surface-var);word-break:break-all}
.rebind-row{display:flex;}

.rebind-row > * + *{margin-left:8px}
.rebind-row input{flex:1;min-width:0;padding:10px 12px;border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:13.5px;background: #FFFFFF;
  background:var(--md-surface);color:var(--md-on-surface);outline:none}
.rebind-row input:focus{border-color: #8B5CF6;
  border-color:var(--md-primary);}
.rebind-send{flex:none;padding:9px 14px;border:none;border-radius: 14px;
  border-radius:var(--md-rs-sm);background: #8B5CF6;
  background:var(--md-primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.rebind-send:disabled{opacity:.6}

/* ===================== 图片页 v2：空状态 + 悬浮上传 + 预览删除 ===================== */
.img-empty-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:130px 20px 60px;color:var(--muted)}
.img-empty-v2 .img-empty-ic{width:96px;height:96px;border-radius:50%;background:rgba(139,92,246,.12);color:#a78bfa;display:grid;place-items:center;margin-bottom:18px}
.img-empty-v2 .img-empty-ic svg{width:44px;height:44px}
.img-empty-v2 p{font-size:14px;color:var(--muted)}
.img-upload-fab{position:fixed;right:22px;bottom:calc(120px + env(safe-area-inset-bottom,0px));z-index:30}
.img-up-fab{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;padding:0;border-radius:50%;background:var(--grad-primary);color:#fff;box-shadow:0 8px 20px rgba(139,92,246,.35);cursor:pointer;border:none}
.img-up-fab .img-up-ic{width:24px;height:24px}
.img-up-plus{position:absolute;top:-5px;right:-5px;width:19px;height:19px;padding:3px;box-sizing:border-box;border-radius:50%;background:#fff;color:#8B5CF6;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.img-preview-box{position:relative;width:100%;height:100%;display:grid;place-items:center}
.img-preview-box img{max-width:94%;max-height:88%;border-radius:10px;object-fit:contain}
.img-preview-del{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;padding:10px 24px;border:none;border-radius:999px;background:rgba(239,68,68,.92);color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(239,68,68,.4)}
.img-preview-del svg{width:17px;height:17px}
@media(max-width:620px){
  .img-upload-fab{right:16px;bottom:calc(88px + env(safe-area-inset-bottom,0px))}
}

/* ===================== 文档菜单：仅HTML访问开关 + 状态提示 ===================== */
.ds-toggle{display:flex;align-items:center;width:100%}
.ds-toggle .ds-tx{display:flex;flex-direction:column;align-items:flex-start;flex:1;text-align:left}
.ds-toggle .ds-tx b{font-size:14px}
.ds-toggle .ds-tx small{font-size:11px;color:var(--muted)}
.ds-switch{width:42px;height:24px;border-radius:999px;background:rgba(0,0,0,.16);position:relative;transition:background .18s;flex:none}
.ds-switch i{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .18s}
.ds-switch.on{background:#22c55e}
.ds-switch.on i{left:20px}
.menu-toggle .mt-tx{display:flex;flex-direction:column;align-items:flex-start;flex:1;text-align:left}
.menu-toggle .mt-tx b{font-size:13.5px}
.menu-toggle .mt-tx small{font-size:11px;color:var(--muted)}
.mt-switch{width:40px;height:22px;border-radius:999px;background:rgba(0,0,0,.16);position:relative;transition:background .18s;flex:none}
.mt-switch i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .18s}
.mt-switch.on{background:#22c55e}
.mt-switch.on i{left:20px}

/* ===================== 识别链接弹窗 ===================== */
.lr-row{display:flex;margin-top:4px}
.lr-row input{flex:1;min-width:0}
.lr-hint{font-size:12px;color:var(--muted);margin:10px 0 6px;line-height:1.5}

/* ===================== 编辑器长按菜单：全选/复制/粘贴/剪切 ===================== */
.editor-lp-menu{position:fixed;z-index:9999;display:flex;padding:8px;border-radius:14px;background: #FFFFFF;
  background:var(--md-surface);border:1px solid rgba(0,0,0,.08);box-shadow:0 8px 24px rgba(0,0,0,.18);opacity:0;transform:translateY(6px) scale(.96);transition:opacity .16s,transform .16s}
.editor-lp-menu.show{opacity:1;transform:translateY(0) scale(1)}
.editor-lp-menu button{display:flex;flex-direction:column;align-items:center;min-width:56px;padding:9px 8px 7px;border:none;border-radius:10px;background:transparent;color:var(--ink,#1f2329);cursor:pointer;transition:background .12s}
.editor-lp-menu button:hover{background:var(--md-primary-container,rgba(139,92,246,.1))}
.editor-lp-menu button svg{width:21px;height:21px;color:var(--md-primary,#8B5CF6)}
.editor-lp-menu button span{font-size:11px;font-weight:600;color:var(--ink,#1f2329)}
@media(max-width:620px){ .editor-lp-menu button{min-width:52px;padding:8px 6px 6px} }

/* ===================== 消息未读红点闪动 ===================== */
.msg-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:#E5484D;color:#fff;font-size:11px;font-weight:700;margin-left:6px;vertical-align:1px;animation:msgBadgePulse 1s ease-in-out infinite}
@keyframes msgBadgePulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ===================== 识别链接：按钮加大，输入框缩小 ===================== */
.lr-row button{flex:none;min-width:104px;padding:13px 22px;border:none;border-radius:12px;background:var(--grad-primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(139,92,246,.3)}
.lr-row button:disabled{opacity:.6}

/* ===================== 密钥管理：清除密钥红色按钮（替代原 × 图标） ===================== */
.key-card .k-clear-btn{min-width:80px !important;min-height:30px !important;width:auto !important;height:30px !important;padding:0 12px !important;border-radius:15px !important;font-size:12px !important;font-weight:600 !important;line-height:1 !important;color:#fff !important;background:#E5484D !important;border:none !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;flex:0 0 auto !important;cursor:pointer !important;transition:background .15s,opacity .15s}
.key-card .k-clear-btn:hover{background:#d03a40 !important}
.key-card .k-clear-btn:active{background:#c3353b !important}
.key-card .k-clear-btn:disabled{opacity:.45 !important;cursor:not-allowed !important;background:#E5484D !important}

/* ===================== 密钥管理：非会员顶部提示条 ===================== */
.key-vip-hint{background:linear-gradient(90deg,#fde8ef,#ffe4ec);color:#d6336c;font-size:13px;font-weight:600;text-align:center;padding:9px 12px;border-radius:12px;margin-bottom:12px;border:1px solid rgba(214,51,108,.18)}
[data-theme="dark"] .key-vip-hint{background:rgba(214,51,108,.14);color:#ff8fb3;border-color:rgba(255,143,179,.25)}


/* ===== 旧内核兼容：弹窗卡片边框/底色/间距 写死覆盖（与日间 var 值一致） ===== */
.ac-row,.ac-theme-grid{background:#FFFFFF!important;border:1px solid #C9BBE8!important;border-radius:14px!important}
.ac-pick{background:#FFFFFF!important;border:1.5px solid #C9BBE8!important;border-radius:12px!important}
.ac-row:hover,.ac-pick:hover{background:#EDE9FE!important;border-color:#8B5CF6!important}
.ac-sw-slider{background:#C9BBE8!important}
.ac-switch input:checked + .ac-sw-slider{background:#8B5CF6!important}
.ac-row .r-ic{background:#EDE9FE!important;color:#8B5CF6!important}
.ac-list .ac-row{margin-bottom:10px!important}
.ac-list .ac-row:last-child{margin-bottom:10px!important}
.ac-theme-btn{border:1.5px solid #C9BBE8!important}
.ac-theme-btn.active{border-color:#8B5CF6!important}
.bk-acts .btn-new{border:1.5px solid #7C6FA8!important;background:transparent!important}

/* ===================== 回收站多选：全选/批量操作栏 ===================== */
.recycle-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:8px 12px;background:var(--md-primary-container);border-radius:12px;flex-wrap:wrap}
.recycle-toolbar .rt-btn{flex:none;min-height:32px;padding:0 14px;border-radius:9px;border:1px solid rgba(139,92,246,.35);background:rgba(255,255,255,.85);color:var(--md-primary);font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
.recycle-toolbar .rt-btn:active{transform:scale(.96)}
.recycle-toolbar .rt-btn.rt-danger{border-color:rgba(229,72,77,.45);color:#E5484D}
.recycle-toolbar .rt-count{flex:none;font-size:13px;font-weight:600;color:var(--ink)}
.recycle-toolbar .rt-acts{display:flex;gap:8px;margin-left:auto}
.recy-card{position:relative}
.recy-card .rc-cb{position:absolute;top:10px;left:10px;z-index:4;background:rgba(255,255,255,.92)}
.recy-row .rc-cb{margin:0 12px 0 0;flex:none;align-self:center;background:rgba(255,255,255,.92)}
.recy-row{display:flex;align-items:center}

/* ===================== 回收站图片勾选框：选中态紫色背景+白色对号（覆盖白底规则，保证对号可见） ===================== */
.recy-card .rc-cb.checked,
.recy-row .rc-cb.checked{background:var(--md-primary);border-color:var(--md-primary)}

/* ===================== 媒体查询 ===================== */
/* 包含：所有 @media 断点规则（min-width/max-width）。
   注意：@media (prefers-reduced-motion:reduce) 和 @supports 在 base.css 中 */

@media(min-width:880px){
  .ac-page{max-width:960px}
  .ac-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .ac-grid .ac-section.span-2{grid-column:1 / -1}
}

@media(max-width:720px){
  .grid{grid-template-columns:1fr;gap:12px}
}

@media(max-width:400px){
  .grid{grid-template-columns:1fr;gap:10px}
}

@media(max-width:680px){
  .modal-scrim.ai-doc-modal{padding:0}
  .modal-scrim.ai-doc-modal .modal{max-width:100%;max-height:100vh;max-height:100dvh;border-radius:0;height:100vh;height:100dvh;padding:14px 14px 12px}
  /* ===================== AI 文档处理弹窗移动端适配 =====================
   * 取消内容框的 max-height 和 min-height 限制，让它撑满弹窗剩余空间，
   * 避免内容框底部和按钮中间留出大面积空白 */
  .modal-scrim.ai-doc-modal .modal .ai-doc-result-wrap{margin-top:10px;}

  /* ===================== AI 文档处理弹窗移动端适配 =====================
   * 取消内容框的 max-height 和 min-height 限制，让它撑满弹窗剩余空间，
   * 避免内容框底部和按钮中间留出大面积空白 */
  .modal-scrim.ai-doc-modal .modal .ai-doc-result-wrap > * + *{margin-top:8px}
  .modal-scrim.ai-doc-modal .modal .ai-doc-result-view,
  .modal-scrim.ai-doc-modal .modal .ai-doc-result-area{min-height:0;max-height:none;flex:1}
  .modal-scrim.ai-doc-modal .modal .m-acts{margin-top:10px;flex-wrap:nowrap;}

  .modal-scrim.ai-doc-modal .modal .m-acts > * + *{margin-left:8px}
  .modal-scrim.ai-doc-modal .modal .m-acts button:not(.ai-doc-stop-btn){flex:1;min-width:0}
}

@media(max-width:460px){
  .gate{padding:16px}
  .gate .lg-card{padding:32px 22px 26px;border-radius:20px}
  .gate .lg-brand h1{font-size:19px}
  .upg-pricing{grid-template-columns:repeat(2,1fr);gap:10px}
  .upg-price.span2{grid-column:1/-1}
  .upg-features{grid-template-columns:1fr}
}
/* ===================== 移动端登录页整屏铺满 ===================== */
/* 窄屏下让登录白卡片占满整个视口、内容垂直居中，不再是浮在背景上的小卡片 */
@media(max-width:620px){
  .gate{padding:0;display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .gate .lg-card{width:100%;max-width:none;min-height:100vh;min-height:100dvh;border-radius:0;
    padding:44px 24px calc(34px + env(safe-area-inset-bottom,0px));
    display:flex;flex-direction:column;justify-content:flex-start;overflow:visible}
  .gate .lg-card .lg-brand{margin-top:auto}
  .gate .lg-card .lg-forms{margin-bottom:auto}
  .gate .lg-forms{height:auto !important;overflow:visible}
  .gate .lg-panel{position:relative;top:auto;left:auto;transform:none;width:100%}
  .gate .lg-panel:not(.active){display:none}
}
/* ===================== 移动端隐藏会员功能列表 ===================== */
/* 移动端屏幕空间有限，会员功能列表会挤压价格和二维码的展示空间，直接隐藏。 */
@media(max-width:768px){
  .upg-features{display:none}
}

@media(min-width:900px){
  .key-card .k-pc-only{display:flex !important}
  .key-card{cursor:default}
}

@media(max-width:899px){
  .keys-grid{grid-template-columns:1fr;gap:8px}
  .key-card{padding:11px 13px;cursor:pointer}
}

@media (min-width:1200px){
  .pp-card{max-width:min(1100px,calc(100vw - 80px));padding:28px 30px 22px}
  .ai-pick-panel .pp-card .doc-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
}
@media (min-width:1600px){
  .pp-card{max-width:1300px;max-height:min(860px,88vh)}
  .ai-pick-panel .pp-card .doc-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
}

@media(max-width:768px){
  
  .modal input[type=text],.modal select,.modal textarea,
  .field input,.field textarea,.field select,
  .search-overlay-field input,
  .key-field input,
  .ac-row input,
  #aeInput,
  #aiDocEditor{font-size:16px !important}
  .ai-input-wrap textarea{font-size:16px}
  
  .drawer.half{width:100%!important;border-radius:0}
  
  .c-act,.m-close,.ai-doc-close,
  .key-card .k-clear-x{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  
  .d-head-actions{padding:0;background: #EDE9FE;
  background:var(--md-primary-container);border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);}
  .d-head-actions .d-expand{width:36px;height:36px;min-width:44px;min-height:44px}
  .d-head-actions .d-expand svg{width:18px;height:18px}
  .d-close{width:44px;height:44px;min-width:44px;min-height:44px}
  .d-close svg{width:20px;height:20px}
  .d-back{width:44px;height:44px;min-width:44px;min-height:44px}
  .d-back svg{width:20px;height:20px}
  
  /* ===================== 移动端工具栏整体横向滑动 =====================
   * 整个 .d-tools-row 一起滑动，保证用户从左滑到右能看到所有按钮（换行/缩放/AI工具）
   * 椭圆按钮保持椭圆形态，缩放按钮组保持椭圆容器 */
  .d-tools-row{padding:0 12px;margin:8px 12px 0;max-height:64px;background:transparent;border-radius:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}

  
  /* ===================== 移动端工具栏整体横向滑动 =====================
   * 整个 .d-tools-row 一起滑动，保证用户从左滑到右能看到所有按钮（换行/缩放/AI工具）
   * 椭圆按钮保持椭圆形态，缩放按钮组保持椭圆容器 */
  .d-tools-row > * + *{margin-left:8px}
  .d-tools-row::-webkit-scrollbar{display:none}
  .d-tools-row.collapsed{max-height:0;margin:0 12px}
  .d-tool-pill{height:44px;min-width:44px;padding:0 14px;font-size:13px;flex:none}
  .d-tool-pill svg{width:18px;height:18px}
  .d-foot-tools{flex:none;overflow:hidden}
  .d-foot-tools .d-tool{width:44px;height:44px;flex:none;min-width:44px}
  .d-foot-tools .d-tool svg{width:20px;height:20px}
  .d-foot-tools .d-tool-text{font-size:13px;font-weight:600;min-width:36px}
  .d-foot-tools .d-tool + .d-tool{border-left: 1px solid #C9BBE8;
  border-left:1px solid var(--md-outline-var);}
  .d-foot-tools .d-tool:active{background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary)}
  .ai-doc-tools{flex:none;min-width:0;}

  .ai-doc-tools > * + *{margin-left:8px}
  .ai-doc-btn{height:44px;padding:0 14px;font-size:13px}
  /* active 状态与其他 .d-tool-pill 一致：仅 scale 反馈，不改变填充色（避免深紫色突兀） */
  .ai-doc-btn:active{transform:scale(.96)}

  .editor-gutter{width:36px;border-radius:0;border-left:none;border-top:none;border-bottom:none}
  .ln-container{padding-right:6px}

  /* ===================== 移动端编辑区域去边距：textarea 和 gutter 贴满 drawer ===================== */
  .d-body{padding:0}
  .d-body textarea{border-right:none;border-top:none;border-bottom:none;border-radius:0}

  /* ===================== 移动端搜索 UI =====================
   * 不再撑满宽度（避免太宽），右对齐 + 限宽 320px；
   * 增大 input padding 让输入框更高（避免太矮），方便触控 */
  .editor-search{left:auto;right:8px;top:8px;width:min(320px,calc(100% - 16px));max-width:none;padding:8px}
  .editor-search > * + *{margin-top:6px}
  .editor-search input{padding:8px 10px;font-size:14px}
  .editor-search button{width:32px;height:32px}
  .editor-search button svg{width:16px;height:16px}
  .editor-search .s-case-btn{min-width:34px;height:32px;padding:0 8px;font-size:13px}
  .editor-search .s-text-btn{height:32px;line-height:32px;padding:0 12px;font-size:13px}
}

@media(max-width:768px){
  .ai-split{flex:1;height:auto;min-height:0;flex-direction:column;border-radius:0;border:none}
  .ai-chat{order:1}
  .ai-doc{position:fixed;top:0;right:0;height:100dvh;width:min(440px,92vw);z-index:40;
    border-right:none;border-left:1.5px solid var(--line);transform:translateX(102%);
    transition:transform .3s cubic-bezier(.2,.9,.3,1);box-shadow:var(--shadow-lg)}
  .ai-doc.open{transform:translateX(0)}
  .ai-doc-head{padding:10px 12px;height:auto;min-height:54px}

  .ai-doc-head > * + *{margin-left:6px}
  .ai-doc-close{display:flex}
  .ai-doc-acts{}

  .ai-doc-acts > * + *{margin-left:5px}
  .ai-doc-btn{padding:6px 10px;font-size:12px}
  .ai-doc-editor{padding:12px}
  .ai-doc-toggle{display:none !important}
  /* ===================== 移动端隐藏 AI 文档栏的分享/预览按钮 =====================
   * 移动端 AI 文档面板宽度有限（min(440px,92vw)），保留核心按钮（问AI/撤销/恢复/保存）。
   * 分享和预览功能可在主编辑器中使用。 */
  #aiDocShare,#aiDocPreview{display:none !important}
  .ai-chat{width:100%;min-width:0;max-width:none;border-left:none}
  
  .ai-ctx{padding:10px 14px;border-bottom:1.5px solid var(--line);height:auto;min-height:54px}

  
  .ai-ctx > * + *{margin-left:8px}
  .ai-ctx-label{display:none}
  .ctx-chip{max-width:none;flex:1;justify-content:flex-start}
  .ai-ctx .ai-quota{display:none}
  .ai-ctx .ai-clear span{display:none}
  .ai-ctx .ai-clear{padding:8px 10px}
  body.view-ai .ai-quota-top{display:inline-flex;align-items:center;order:4}
  /* ===================== 移动端 AI 视图：显示账号中心按钮（带头像），额度次数紧贴其左边 ===================== */
  body.view-ai .tb-account{display:inline-flex;order:5;margin-left:0;padding:3px 5px;height:34px}
  body.view-ai .tb-account .ava{width:28px;height:28px;font-size:12px}
  .ai-msgs{padding:12px}
  .ai-empty{padding:16px 16px 5vh}
  .bubble{max-width:92%;padding:9px 12px;font-size:13px;line-height:1.6;margin-bottom:8px}
  .bubble.ai .raw-text{font-size:12px}

  .ai-bar{padding:10px 14px;}


  .ai-bar > * + *{margin-top:8px}
  .ai-input-wrap textarea{height:auto;min-height:38px;max-height:140px;padding:6px 0;font-size:13.5px;line-height:1.5}
  .ai-expand{width:30px;height:30px}
  .ai-expand svg{width:18px;height:18px}
  .ai-send{width:38px;height:38px}
  .ai-send svg{width:16px;height:16px}
  
  .ai-pick-panel{align-items:flex-end;justify-content:center;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);overflow:hidden}
  /* ===================== 移动端卡片使用 100vh 而非 100dvh ===================== */
  /* 100dvh 在 URL 栏显隐时会变化，导致卡片 max-height 重算 + translateY(100%) 位移变化，
     配合 history.pushState 触发的 URL 栏显隐会造成视觉抖动。改用 100vh 保持稳定。 */
  .ai-pick-panel .pp-card{width:100%;max-width:none;margin:0;max-height:calc(100vh - env(safe-area-inset-bottom,0px));border-radius: 26px;
  border-radius:var(--md-rs-lg); var(--md-rs-lg) 0 0;padding:8px 0 calc(14px + env(safe-area-inset-bottom,0px));opacity:1;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);overflow:hidden}
  .ai-pick-panel.open .pp-card{transform:translateY(0)}
  
  .ai-pick-panel .pp-card .m-head{margin:0;padding:14px 16px 12px;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);position:relative;flex-shrink:0}

  
  .ai-pick-panel .pp-card .m-head > * + *{margin-left:10px}
  /* 移动端 .ds-handle 显示为顶部小白条（与长按菜单一致），替代原 ::before 伪元素 */
  .ai-pick-panel .pp-card .ds-handle{display:block;margin:6px auto 8px;flex-shrink:0}
  .ai-pick-panel .pp-card .m-head .m-icon{width:32px;height:32px;border-radius:9px}
  .ai-pick-panel .pp-card .m-head .m-icon svg{width:17px;height:17px}
  .ai-pick-panel .pp-card .m-head .m-titles{padding-top:0}
  .ai-pick-panel .pp-card .m-head .m-titles b{font-size:15px;font-weight:700;display:block;line-height:1.3}
  .ai-pick-panel .pp-card .m-head .m-titles small{font-size:11.5px;color:var(--md-muted);display:block;margin-top:2px}
  .ai-pick-panel .pp-card .m-head .m-close{top:14px;right:14px;width:28px;height:28px;font-size:18px}
  
  .ai-pick-panel .pp-card .pp-sticky-head{padding:0;border-bottom:none;background: #FFFFFF;
  background:var(--md-surface);flex-shrink:0}
  .ai-pick-panel .pp-card .m-tabs{margin:0;padding:6px 16px;border-bottom: 1px solid #C9BBE8;
  border-bottom:1px solid var(--md-outline-var);background: #FFFFFF;
  background:var(--md-surface);}
  .ai-pick-panel .pp-card .m-tab{padding:7px 8px;font-size:12.5px;border-radius:8px}
  
  .ai-pick-panel .pp-card #ppBody{padding:12px 16px}
  .ai-pick-panel .pp-card .doc-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .ai-pick-panel .pp-card .doc-card{padding:10px;}

  .ai-pick-panel .pp-card .doc-card > * + *{margin-left:8px}
  .ai-pick-panel .pp-card .doc-card .d-ic{width:30px;height:30px}
  .ai-pick-panel .pp-card .doc-card .d-ic svg{width:16px;height:16px}
  .ai-pick-panel .pp-card .doc-card .d-meta b{font-size:12.5px}
  .ai-pick-panel .pp-card .doc-card .d-meta small{font-size:10.5px}
  
  .ai-pick-panel .pp-card .m-acts{margin:0;border-radius:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:none;background:var(--md-surface-container);border-top: 1px solid #C9BBE8;
  border-top:1px solid var(--md-outline-var);flex-wrap:nowrap;overflow-x:auto;flex-shrink:0}

  
  .ai-pick-panel .pp-card .m-acts > * + *{margin-left:8px}
  .ai-pick-panel .pp-card .m-acts .m-acts-left{order:1;width:auto;flex:1;justify-content:flex-start;min-width:0}

  .ai-pick-panel .pp-card .m-acts .m-acts-left > * + *{margin-left:6px}
  .ai-pick-panel .pp-card .m-acts .m-acts-count{font-size:11.5px;min-width:auto;padding:0;margin-left:2px}
  .ai-pick-panel .pp-card .m-acts .m-mini{height:30px;padding:0 10px;font-size:12px;border-radius:15px;flex:none}
  .ai-pick-panel .pp-card .m-acts .m-acts-right{order:2;width:auto;flex:none}

  .ai-pick-panel .pp-card .m-acts .m-acts-right > * + *{margin-left:8px}
  .ai-pick-panel .pp-card .m-acts button:not(.m-mini){flex:none;min-width:auto;height:34px;padding:0 16px;border-radius:17px;font-size:13px}
  
  .recycle-batch.show{
    position:sticky;top:64px;
    margin:0 0 8px;
    border: 1px solid #C9BBE8;
  border:1px solid var(--md-outline-var);border-top:none;border-radius:0 0 var(--md-rs-sm) var(--md-rs-sm);
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
    background: #FFFFFF;
  background:var(--md-surface);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    box-shadow:var(--shadow-sm);
    flex-direction:row;align-items:center;
    z-index:4;max-height:220px;
    transition:max-height .25s cubic-bezier(.2,.9,.3,1),transform .25s cubic-bezier(.2,.9,.3,1),padding .25s cubic-bezier(.2,.9,.3,1),margin .25s cubic-bezier(.2,.9,.3,1),border-color .2s ease,opacity .2s ease,top .25s cubic-bezier(.2,.9,.3,1);
  }
.recycle-batch.show > * + *{margin-left:10px}
  
  body.topbar-hide .recycle-batch.show{top:0;border-top:none}

  .recycle-batch.show #rbCount,
  .recycle-batch.show #dbCount{
    flex:none;min-width:0;
    font-size:13px;font-weight:500;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }

  .recycle-batch.show .rb-acts{
    flex:1 1 0;min-width:0;flex-direction:row;flex-wrap:nowrap;
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }


  .recycle-batch.show .rb-acts > * + *{margin-left:6px}
  .recycle-batch.show .rb-acts::-webkit-scrollbar{display:none}
  
  .recycle-batch.show .rb-acts .mini{
    flex:0 0 auto;min-width:auto;
    padding:0 12px;height:34px;line-height:34px;
    border-radius:17px;font-size:12.5px;white-space:nowrap;
  }
  
  .recycle-batch.show .rb-acts #rbClear,
  .recycle-batch.show .rb-acts #dbClear{
    position:relative;
    width:34px;padding:0;flex:0 0 34px;
    border-radius:50%;font-size:0;
    background:var(--md-surface-container-high);border-color:transparent;
    overflow:hidden;
  }
  .recycle-batch.show .rb-acts #rbClear::before,
  .recycle-batch.show .rb-acts #dbClear::before{
    content:'';position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;
    width:14px;height:14px;
    background:var(--md-on-surface-variant);
    -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'><path d='M18 6 6 18M6 6l12 12'/></svg>") center/contain no-repeat;
    mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'><path d='M18 6 6 18M6 6l12 12'/></svg>") center/contain no-repeat;
  }
  
  body.multi-on .content{padding-bottom:0}
  
  .content{padding-bottom:80px}
  .content.ai-view{padding-bottom:0}
}
@media(max-width:420px){
  .btn-new{padding:8px 12px}
  .seg button{padding:6px 8px;font-size:12px}
  .topbar{}

  .topbar > * + *{margin-left:8px}
  
  .ai-pick-panel .pp-card .doc-grid{grid-template-columns:1fr}
}

@media(max-width:620px){ .msg-acts{opacity:1} }

.float-fab{position:fixed;right:20px;bottom:calc(120px + env(safe-area-inset-bottom,0px));z-index:18;transition:opacity .25s,transform .25s}

body.multi-on .float-fab,
body.fab-hide .float-fab,
body.side-open .float-fab{opacity:0;transform:translateY(120%);pointer-events:none}

@media(max-width:620px){ .fab-main{width:54px;height:54px} .fab-main svg{width:24px;height:24px} }

@media(max-width:900px){

  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:20;width:50%;transform:translateX(-101%);box-shadow:var(--shadow-lg);height:100dvh;transition:transform .3s cubic-bezier(.2,.9,.3,1);
    background:linear-gradient(to right,#FFFFFF,#F3E8FF 90%)}
  .sidebar.open{transform:translateX(0)}
  
  .group-panel{display:flex !important;position:fixed;left:50%;top:0;bottom:0;right:0;z-index:20;width:50%;transform:translateX(101%);box-shadow:var(--shadow-lg);border-right:none;border-left:none;pointer-events:none;background:linear-gradient(to left,#FFFFFF,#F3E8FF 90%);transition:transform .3s cubic-bezier(.2,.9,.3,1)}
  .group-panel.hidden{display:flex !important;transform:translateX(101%)}
  .group-panel.show{transform:translateX(0);pointer-events:auto}
  
  .side-scrim{z-index:15}
  .side-scrim.show{pointer-events:auto}
  .hamb{display:grid}
  .tb-search{display:grid}
  
  .grp-panel-close{display:grid !important}
  .main{transition:transform .3s cubic-bezier(.2,.9,.3,1)}
  .main.push{transform:translateX(50%)}
  
  .sb-nav{align-items:stretch;padding:12px}
  .sb-item{flex-direction:row;align-items:center;padding:10px 14px;width:100%;text-align:left;border-radius: 14px;
  border-radius:var(--md-rs-sm);font-size:13px}

  .sb-item > * + *{margin-top:12px}
  .sb-icon{width:32px;height:32px}
  .sb-lbl{font-size:13px;flex:1}
  .sb-count{position:static;margin-left:auto}
  .sb-brand{padding:20px 16px}
  
  .float-fab{right:16px;bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:680px){
  .search-overlay{padding:0 12px}
  .tb-account-info{display:none}
  .seg{order:3}
  .btn-new{order:0;padding:8px 14px}
  .btn-new span{display:none}
  
  .bk-acts .btn-new span{display:inline}
  .btn-new-split{order:5}
  .ac-page{}

  .ac-page > * + *{margin-top:12px}
  .ac-hero{padding:18px;}

  .ac-hero > * + *{margin-left:12px}
  .ac-hero .ac-ava{width:48px;height:48px;font-size:20px}
  .ac-hero .ac-info b{font-size:16px}
  .ac-stat-item{padding:12px 6px}
  .ac-stat-item b{font-size:17px}
  .ac-row{padding:11px 12px}
  .content{padding:14px}
  .toolbar-wrap{padding:8px 14px}
  .sub-filter{padding:6px 14px 0}
  .stats-row{padding:6px 14px 0}
}

@media(max-width:680px){
  .modal-scrim{padding:14px}
  .modal{width:100%;max-width:100%;padding:22px 18px 18px}
  .menu{max-width:calc(100vw - 20px)}
  .ttl,.card .ttl{font-size:13.5px}
  .tb-titles b{font-size:15px}

  /* 分享弹窗：窄屏改为上下堆叠，分隔线转横向 */
  .modal-scrim.share-modal-scrim .modal{max-width:100%}
  .share-cols{flex-direction:column;}

  .share-cols > * + *{margin-left:16px}
  .share-col--links{border-right:none;padding-right:0;border-bottom:1px solid var(--line);padding-bottom:16px}

  .grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .card{padding:12px 13px;border-radius: 14px;
  border-radius:var(--md-rs-sm);}

  .card > * + *{margin-top:6px}
  .card-head{}

  .card-head > * + *{margin-left:6px}
  .card .ttl{font-size:14px;line-height:1.35}
  .card-stats{font-size:11.5px;}

  .card-stats > * + *{margin-left:8px}
  .card-stats b{font-size:12px}
  .card-time{font-size:11px}
  .tag{font-size:10.5px;padding:2px 8px}
  
  .card .c-act{width:28px;height:28px}
  .card .c-act svg{width:15px;height:15px}

  
  .topbar{padding:10px 14px;flex-wrap:nowrap;overflow:visible}
  .tb-header{order:2;flex:1;min-width:0}
  .hamb{order:1}
  .search-overlay{padding:0 12px}
  .toolbar-wrap{padding:8px 14px;}

  .toolbar-wrap > * + *{margin-left:8px}
  .seg{display:none}
  
  .filter-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}

  
  .filter-tabs > * + *{margin-left:8px}
  .filter-tabs::-webkit-scrollbar{display:none}
  .ftab{flex:none;white-space:nowrap}
  
  .btn-new-split{order:5;flex:none}
  .btn-new-split .btn-new{padding:0;width:40px;height:40px;justify-content:center;border-radius: 28px;
  border-radius:var(--md-rs-full);}
  .btn-new-split .btn-new span{display:none}
  .btn-new-split .btn-new svg{width:20px;height:20px}
  .btn-new-split .btn-new-caret{width:34px;height:40px;border-radius:0 var(--md-rs-full) var(--md-rs-full) 0}
  .split-menu{right:0;left:auto;min-width:180px}
  .split-menu button{padding:10px 12px}
  
  .tb-search{order:3;flex:none;width:40px;height:40px}
  .tb-more{display:inline-flex;order:4;flex:none;margin-left:auto}
  #btnMulti{display:none !important}
  
  .tool-right{display:none}
  
  .tb-account{display:none}
  .sub-filter{padding:6px 14px 0}
  .stats-row{padding:6px 14px 0}
  .content{padding:14px}


  
  .recycle-item{flex-wrap:wrap;10px;padding:12px 14px}



  
  .recycle-item > * + *{margin-left:8px}
  .recycle-item .info{flex:1 1 100%;min-width:0}
  .recycle-item .acts{width:100%;justify-content:flex-end}
  .recycle-item .acts .mini{padding:5px 10px;font-size:12px}

  .limit-grid{flex-direction:column;}


  .limit-grid > * + *{margin-left:14px}
  .limit-grid>.mcol{width:100%;}

  .limit-grid>.mcol > * + *{margin-top:14px}
  /* ===================== 移动端单分组时宽度撑满 =====================
   * column flex 布局下 flex:1 影响高度而非宽度，单分组时 .limit-group 宽度由内容决定（可能半屏）。
   * 显式设置 width:100% 确保撑满容器宽度，flex:none 避免不必要的高度撑满。 */
  .limit-grid>.limit-group{width:100%;flex:none}
  .limit-row{padding:9px 14px}
  .limit-badge{max-width:90px;text-overflow:ellipsis;overflow:hidden}
  .lg-head{padding:10px 14px;min-height:42px}
  .lg-foot{padding:10px 14px;min-height:42px}
  .lg-foot .mini{padding:6px 10px;font-size:12px}
  
  .bk-grid{grid-template-columns:1fr;gap:12px}
  .bk-acts .btn-new{flex:0 1 auto;min-width:0}

  .ai-bar{padding:8px 12px;}


  .ai-bar > * + *{margin-top:8px}
  .ai-input-wrap textarea{height:auto;min-height:28px;max-height:96px;padding:4px 0;font-size:13px;line-height:1.5}
  .ai-expand{width:28px;height:28px}
  .ai-expand svg{width:16px;height:16px}
  .ai-send{width:34px;height:34px}
  .ai-send svg{width:15px;height:15px}
  .ai-doc-toggle{display:none !important;right:8px;bottom:72px;padding:9px 12px;font-size:12px}
  .ai-doc-toggle svg{width:16px;height:16px}
}
@media(max-width:400px){
  .btn-new{padding:8px 12px}
  .seg button{padding:6px 8px;font-size:12px}
  .topbar{}

  .topbar > * + *{margin-left:8px}
  
  .card{padding:13px 14px;}

  
  .card > * + *{margin-top:8px}
  .card .ttl{font-size:15px}
  .card-stats{font-size:12px}
  .card-time{font-size:11.5px}
  .card .c-act{width:32px;height:32px}
  .card .c-act svg{width:17px;height:17px}
}
/* ===================== 第七轮新增样式 ===================== */
/* 账号中心 VIP/普通用户徽标 */
.ac-vip-gold{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:linear-gradient(135deg,#F36B6B,#E53935);color:#fff;font-size:12px;font-weight:700;letter-spacing:1px;position:relative;overflow:hidden}
.ac-vip-gold::after{content:'';position:absolute;top:-60%;left:-40%;width:60%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,215,0,.6),transparent);transform:rotate(25deg) translateX(-160%);animation:vipShine 5s ease-in-out infinite}
@keyframes vipShine{0%{transform:rotate(25deg) translateX(-160%)}6%{transform:rotate(25deg) translateX(340%)}100%{transform:rotate(25deg) translateX(340%)}}
.ac-vip-plain{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:rgba(139,92,246,.12);color:#8B5CF6;font-size:12px;font-weight:600}
.ac-info{display:flex;align-items:center;justify-content:center}
/* 消息角标 */
.st-badge,.r-badge-msg{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#E53935;color:#fff;font-size:11px;font-weight:700;margin-left:auto;margin-right:8px}
.blink-msg{animation:blinkMsg 1s ease-in-out infinite}
@keyframes blinkMsg{0%,100%{opacity:1}50%{opacity:.35}}
/* 设置页 */
.modal.st-modal{background:linear-gradient(180deg,#F8F5FF 0%,#EFE7FC 100%)}
.st-wrap{display:flex;flex-direction:column;padding:4px 0}.st-wrap .st-row+.st-row{margin-top:12px}
.st-row{display:flex;align-items:center;width:100%;padding:13px 14px;border:1px solid rgba(120,120,128,.12);border-radius:14px;background:var(--md-surface,#fff);text-align:left;cursor:pointer;transition:background .15s}
.st-row:active{background:rgba(120,120,128,.08)}
.st-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(139,92,246,.1);color:var(--md-primary,#8B5CF6);font-size:16px;flex:none;margin-right:12px}
.st-tx{flex:1;display:flex;flex-direction:column;min-width:0}

.st-tx > * + *{margin-top:2px}
.st-tx b{font-size:14.5px;color:var(--md-on-surface,#1f1f1f)}
.st-tx small{font-size:12px;color:var(--md-muted,#8e8e93);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-ar{color:#c7c7cc;font-size:18px;flex:none;margin-left:12px}
.st-logout{border-color:rgba(229,57,53,.35);background:rgba(229,57,53,.06)}
.st-logout .st-ic{background:#E53935;color:#fff}
.st-logout .st-tx b{color:#E53935}
.st-logout .st-ar{color:#E53935}
.st-sec-title{font-size:12px;font-weight:700;color:var(--md-muted,#8e8e93);margin:6px 4px 0 4px;letter-spacing:.04em}
.st-danger{border-color:rgba(229,57,53,.35)}
.st-danger .st-tx b{color:#E53935}
.st-danger .st-ar{color:#E53935}
.st-ic-cancel{background:#E53935;color:#fff}
/* ===================== 切换账号底部弹窗 ===================== */
.switch-box{max-width:480px!important;width:92%!important;padding:0!important;border-radius:20px!important;overflow:hidden}
.switch-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(120,120,128,.12)}
.switch-head .sw-tit{font-size:16px;font-weight:700;color:var(--md-on-surface,#1f1f1f)}
.switch-head button{padding:6px 14px;border:none;background:transparent;color:var(--md-primary,#8B5CF6);font-size:14px;cursor:pointer}
.switch-accounts{padding:16px 16px 6px}
.switch-acc{display:flex;align-items:center;padding:13px 14px;border:1px solid rgba(120,120,128,.14);border-radius:14px;background:var(--md-surface,#fff)}

.switch-acc > * + *{margin-left:12px}
.switch-acc img,.switch-acc .sa-avatar{width:42px;height:42px;border-radius:50%;background: #EDE9FE;
  background:var(--md-primary-container);color:var(--md-primary);display:grid;place-items:center;font-size:17px;font-weight:700;flex:none;object-fit:cover}
.switch-acc .sa-meta{flex:1;min-width:0}
.switch-acc .sa-meta b{display:block;font-size:15px;color:var(--md-on-surface,#1f1f1f)}
.switch-acc .sa-meta small{font-size:12px;color:var(--md-muted,#8e8e93)}
.switch-acc .sa-ok{color:var(--md-primary,#8B5CF6);font-weight:700;font-size:15px}
.switch-add{display:flex;align-items:center;width:calc(100% - 32px);margin:10px 16px 16px;padding:13px 14px;border:1px dashed rgba(139,92,246,.5);border-radius:14px;background:rgba(139,92,246,.05);color:var(--md-primary,#8B5CF6);font-size:14px;font-weight:600;cursor:pointer;text-align:left}

.switch-add > * + *{margin-left:10px}
.switch-add:hover{background:rgba(139,92,246,.12)}
.cf-back{width:28px;height:28px;border:none;background:transparent;color:var(--md-muted-2,#9a90b3);font-size:20px;line-height:1;cursor:pointer;border-radius:50%;flex:none}
.cf-back:hover{background:var(--md-surface-container,#f1edf9);color:var(--md-ink,#1b2733)}
.cancel-box{width:min(430px,94vw)!important;max-height:88vh;overflow-y:auto}
.cancel-body{padding:4px 2px}
.cancel-tip{font-size:13px;color:var(--md-muted,#5f5878);line-height:1.6;margin-bottom:14px}
.cancel-item{background:var(--md-surface-container-low,#fbfaff);border:1px solid var(--md-outline-var,#c9bbe8);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.cancel-item b{display:block;font-size:13.5px;color:var(--md-on-surface,#1b2733);margin-bottom:4px}
.cancel-item small{font-size:12px;color:var(--md-muted,#5f5878);line-height:1.55;display:block}
.cancel-agree{display:flex;align-items:center;font-size:13px;color:var(--md-muted,#5f5878);cursor:pointer;margin:14px 2px 0}

.cancel-agree > * + *{margin-left:8px}
.cancel-agree input{width:17px;height:17px;accent-color:var(--md-primary,#8B5CF6);cursor:pointer}
.cancel-agree a{color:var(--md-primary,#8B5CF6);font-weight:600;text-decoration:none}
.cancel-foot{padding-top:14px;display:flex;justify-content:center}
.cancel-next{width:100%;height:46px;border-radius:999px!important}

/* 搜索用户 */
.su-wrap{display:flex;flex-direction:column;padding:2px 0 4px}


/* 搜索用户 */
.su-wrap > * + *{margin-top:12px}
.su-bar{display:flex;align-items:center}

.su-bar > * + *{margin-left:10px}
.su-input{flex:1;min-width:0;height:44px;padding:0 14px;border:1px solid rgba(120,120,128,.2);border-radius:12px;background:var(--md-surface,#fff);font-size:15px;color:var(--md-text,#1f2329);outline:none}
.su-input:focus{border-color:var(--md-primary,#8B5CF6)}
.su-btn{flex:none;height:44px;padding:0 22px}
.su-list{display:flex;flex-direction:column;max-height:46vh;overflow-y:auto}

.su-list > * + *{margin-top:8px}
.su-fill{max-height:54vh}
.su-item{display:flex;align-items:center;width:100%;padding:12px 14px;border:1px solid rgba(120,120,128,.12);border-radius:12px;background:var(--md-surface,#fff);text-align:left;cursor:pointer;transition:background .15s}

.su-item > * + *{margin-left:10px}
.su-item:active{background:rgba(120,120,128,.08)}
.su-name{font-size:15px;font-weight:600;color:var(--md-text,#1f2329);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.su-sub{font-size:12px;color:#86868b;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.su-ic{font-size:16px}
.su-ar{margin-left:auto;color:#c7c7cc;font-size:18px}
.su-empty{padding:26px 0;text-align:center;color:#a0a0a8;font-size:14px}
.su-loading{padding:30px 0;text-align:center;color:#a0a0a8;font-size:14px}
.su-detail{display:flex;flex-direction:column;padding:2px 0 4px}

.su-detail > * + *{margin-top:14px}
.su-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.su-cell{display:flex;flex-direction:column;padding:11px 12px;border:1px solid rgba(120,120,128,.12);border-radius:12px;background:var(--md-surface,#fff)}

.su-cell > * + *{margin-top:4px}
.su-cell small{font-size:12px;color:#86868b}
.su-cell b{font-size:14px;color:var(--md-text,#1f2329);word-break:break-all}
.su-counts{display:flex;}

.su-counts > * + *{margin-left:10px}
.su-count{flex:1;display:flex;flex-direction:column;align-items:center;padding:13px 6px;border:1px solid rgba(139,92,246,.35);border-radius:12px;background:rgba(139,92,246,.07);cursor:pointer;transition:background .15s}

.su-count > * + *{margin-top:2px}
.su-count:active{background:rgba(139,92,246,.16)}
.su-count b{font-size:20px;color:var(--md-primary,#8B5CF6)}
.su-count small{font-size:12px;color:#6b7280}
.su-hint{font-size:12px;color:#a0a0a8;text-align:center}
.su-docview{max-height:52vh;overflow-y:auto;padding:14px;border:1px solid rgba(120,120,128,.14);border-radius:12px;background:var(--md-surface,#fff);font-size:14px;line-height:1.7;color:var(--md-text,#1f2329);white-space:pre-wrap;word-break:break-word}
.su-img-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;overflow-y:auto}
.su-img-item{display:flex;flex-direction:column;align-items:center;padding:10px;border:1px solid rgba(120,120,128,.14);border-radius:12px;background:var(--md-surface,#fff);cursor:pointer}

.su-img-item > * + *{margin-top:6px}
.su-img-item img{width:100%;height:96px;object-fit:contain;border-radius:8px;background:#f4f4f5}
.su-img-item span{font-size:11px;color:#86868b;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.su-imgview{align-items:center;max-height:56vh;overflow-y:auto}
.su-imgview img{max-width:100%;max-height:52vh;object-fit:contain;border-radius:12px}
/* 消息面板 */
.msg-tabs{display:flex;margin:14px 0 10px}.msg-tab+.msg-tab{margin-left:10px}
.msg-tab{flex:1;padding:9px 0;border:1px solid #C9BBE8;border-radius:10px;background:transparent;color:var(--md-muted,#8e8e93);font-size:13.5px;cursor:pointer}
.msg-tab.active{background:var(--md-primary,#8B5CF6);border-color:var(--md-primary,#8B5CF6);color:#fff;font-weight:600}
.msg-body{max-height:52vh;overflow-y:auto}
/* 加密私聊：弹窗全屏模式 */
.modal-scrim.secchat-modal-scrim{padding:0!important}
.modal-scrim.secchat-modal-scrim .modal{width:100%!important;max-width:100%!important;max-height:100vh!important;max-height:100dvh!important;height:100vh!important;height:100dvh!important;border-radius:0!important;padding:18px 16px 12px!important;display:flex;flex-direction:column;background:linear-gradient(180deg,#F8F5FF 0%,#EFE7FC 100%)!important}
.modal-scrim.secchat-modal-scrim .m-head{flex:none}
.modal-scrim.secchat-modal-scrim .m-titles h3{color:#232733!important}
.modal-scrim.secchat-modal-scrim .m-titles p{color:#7a7488!important}
.modal-scrim.secchat-modal-scrim .msg-tabs{flex:none}
.modal-scrim.secchat-modal-scrim .msg-tab{border-color:#C9BBE8;color:#7a7488;background:#ffffff}
.modal-scrim.secchat-modal-scrim .msg-tab.active{background:#8B5CF6;border-color:#8B5CF6;color:#fff}
.modal-scrim.secchat-modal-scrim .msg-body{max-height:none!important;flex:1;min-height:0;overflow-y:auto;background:#f4f1fa}
.modal-scrim.secchat-modal-scrim .secchat-pad{padding:14px 0 4px;height:100%;display:flex;flex-direction:column}
.modal-scrim.secchat-modal-scrim .secchat-frame-box{flex:1;min-height:420px;border:1px solid #e3daf5;border-radius:14px;overflow:hidden;background:#f4f1fa}
.modal-scrim.secchat-modal-scrim .msg-clear-tip{color:#7a7488;font-size:12px;padding:10px 4px 2px;line-height:1.6}
.modal-scrim.secchat-modal-scrim .m-close{color:#232733!important}
.msg-empty{padding:36px 0;text-align:center;color:var(--md-muted,#8e8e93);font-size:13px}
.msg-peer-list{display:flex;flex-direction:column}.msg-peer+.msg-peer{margin-top:10px}
.msg-peer{display:flex;flex-direction:column;width:100%;padding:12px 14px;border:1px solid rgba(120,120,128,.12);border-radius:12px;background:var(--md-surface,#fff);text-align:left;cursor:pointer}
.msg-peer-name{font-size:14px;font-weight:600;color:var(--md-on-surface,#1f1f1f);display:flex;align-items:center;}

.msg-peer-name > * + *{margin-left:8px}
.msg-unread{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#E53935;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;margin-left:8px}
.msg-peer-last{font-size:12px;color:var(--md-muted,#8e8e93);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}
.msg-pub-list{display:flex;flex-direction:column}.msg-pub+.msg-pub{margin-top:10px}
.msg-pub{padding:12px 14px;border:1px solid rgba(120,120,128,.12);border-radius:12px;background:var(--md-surface,#fff)}
.msg-pub-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.msg-pub-head b{font-size:13.5px;color:var(--md-primary,#8B5CF6)}
.msg-pub-head time{font-size:11.5px;color:var(--md-muted,#8e8e93)}
.msg-pub-text{font-size:13.5px;color:var(--md-on-surface,#1f1f1f);line-height:1.6;white-space:pre-wrap;word-break:break-word}
.chat-head{display:flex;align-items:center;padding-bottom:10px;border-bottom:1px solid rgba(120,120,128,.12)}

.chat-head > * + *{margin-left:10px}
.chat-back{border:none;background:none;color:var(--md-primary,#8B5CF6);font-size:13.5px;cursor:pointer;padding:4px 6px}
.chat-head b{font-size:15px;color:var(--md-on-surface,#1f1f1f)}
.chat-list{display:flex;flex-direction:column;padding:12px 0;max-height:36vh;overflow-y:auto}

.chat-list > * + *{margin-top:8px}
.chat-item{display:flex;flex-direction:column;max-width:82%}

.chat-item > * + *{margin-top:3px}
.chat-item.me{align-self:flex-end;align-items:flex-end}
.chat-item.peer{align-self:flex-start;align-items:flex-start}
.chat-bubble{padding:9px 13px;border-radius:14px;font-size:13.5px;line-height:1.55;word-break:break-word;white-space:pre-wrap}
.chat-item.me .chat-bubble{background:var(--md-primary,#8B5CF6);color:#fff;border-bottom-right-radius:4px}
.chat-item.peer .chat-bubble{background:rgba(120,120,128,.12);color:var(--md-on-surface,#1f1f1f);border-bottom-left-radius:4px}
.chat-item time{font-size:11px;color:var(--md-muted,#8e8e93)}
.chat-input{display:flex;padding-top:10px;border-top:1px solid rgba(120,120,128,.12)}

.chat-input > * + *{margin-left:8px}
.chat-emoji-panel{display:flex;flex-wrap:wrap;padding:10px 12px;background:var(--md-surface-container-high,#f4f1fa);border-radius:12px;margin-bottom:8px;max-height:190px;overflow-y:auto}

.chat-emoji-panel > * + *{margin-left:6px}
.chat-emoji-panel button{font-size:22px;width:38px;height:38px;display:grid;place-items:center;border:none;background:transparent;border-radius:9px;cursor:pointer;transition:background .12s}
.chat-emoji-panel button:hover{background:#fff}
.space-body{padding:6px 2px 10px}
.space-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--md-surface-container-high,#f4f1fa);border-radius:12px;margin-bottom:8px;font-size:14px}
.space-row span{color:var(--muted,#5F5878);font-weight:500}
.space-row b{color:var(--ink,#1B2733);font-size:14.5px;font-weight:700}
.space-bar{height:14px;background:var(--md-surface-container-high,#efe8fa);border-radius:999px;overflow:hidden;margin:12px 2px 8px}
.space-bar-in{height:100%;background:var(--grad-primary,linear-gradient(135deg,#8B5CF6,#A78BFA));border-radius:999px;transition:width .3s}
.space-sub{margin:16px 2px 2px}
.space-sub-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted,#5F5878);font-weight:600;margin-bottom:6px}
.space-sub-head b{color:var(--ink,#1B2733);font-size:13px;font-weight:700}
.space-sub-bar{height:9px;background:var(--md-surface-container-high,#efe8fa);border-radius:999px;overflow:hidden}
.space-sub-bar-in{height:100%;background:var(--grad-primary,linear-gradient(135deg,#8B5CF6,#A78BFA));border-radius:999px;transition:width .3s}
.space-tip{font-size:12px;color:var(--muted-2,#9A90B3);line-height:1.6;padding:0 4px}
.space-sub-head{display:flex;align-items:center;gap:6px}
.space-sub-head b{flex:1;text-align:right}
.space-view{margin-left:6px;padding:5px 10px;border:1px solid rgba(124,111,168,.45);border-radius:8px;background:var(--md-surface-container-high,#f4f1fa);color:var(--md-primary,#7C6FA8);font-size:12px;font-weight:600;cursor:pointer;flex:none;line-height:1.2}
.space-detail{max-height:56vh;overflow:auto;padding:4px 2px}
.space-detail-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--md-surface-container-high,#f4f1fa);border-radius:10px;margin-bottom:6px;font-size:13px;cursor:pointer;border:1px solid rgba(124,111,168,.18)}
.space-detail-item:active{background:var(--md-surface-variant,#E6DCF6)}
.sdi-name{flex:1;font-weight:600;color:var(--ink,#1B2733);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sdi-user{color:var(--muted,#5F5878);font-size:12px;flex:none;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sdi-time{color:var(--muted-2,#9A90B3);font-size:11px;flex:none}
.space-empty{text-align:center;color:var(--muted-2,#9A90B3);padding:24px 0;font-size:13px}
.space-img-view{text-align:center;padding:12px}
.space-img-view img{max-width:100%;max-height:58vh;border-radius:12px;object-fit:contain;background:#fff}
.space-doc-view{max-height:56vh;overflow:auto;padding:12px 14px;line-height:1.7;white-space:pre-wrap;word-break:break-word;font-size:14px;color:var(--ink,#1B2733);background:var(--md-surface-container-high,#f4f1fa);border-radius:12px}
.chat-input input{flex:1;padding:9px 12px;border:1px solid rgba(120,120,128,.2);border-radius:10px;font-size:14px;background:var(--md-surface,#fff);color:var(--md-on-surface,#1f1f1f)}
.chat-input button{padding:9px 18px;border:none;border-radius:10px;background:var(--md-primary,#8B5CF6);color:#fff;font-size:14px;cursor:pointer}
.chat-head{background:var(--grad-primary,#8B5CF6);padding:10px 12px;border-radius:14px;border-bottom:none;}

.chat-head > * + *{margin-left:8px}
.chat-back{color:#fff;font-size:20px;padding:2px 6px;line-height:1}
.chat-head-user{display:flex;align-items:center;flex:1;min-width:0}

.chat-head-user > * + *{margin-left:9px}
.chat-head-ava{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.28);color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px;flex:none}
.chat-head-info{min-width:0}
.chat-head-info b{color:#fff;font-size:14px;display:block;line-height:1.2}
.chat-head-info small{color:rgba(255,255,255,.88);font-size:11px}
.chat-empty{text-align:center;padding:44px 0;color:var(--md-muted,#8e8e93)}
.chat-empty-ic{font-size:36px;display:block;margin-bottom:8px}
.chat-empty p{margin:2px 0;font-size:13px;line-height:1.5}
.chat-emoji{border:none;background:none;font-size:20px;padding:6px;cursor:pointer;line-height:1;flex:none}
.chat-input textarea{flex:1;padding:10px 12px;border:1px solid rgba(120,120,128,.2);border-radius:14px;font-size:14px;background:var(--md-surface,#fff);color:var(--md-on-surface,#1f1f1f);resize:none;min-height:40px;max-height:96px;line-height:1.4}
.chat-sent-pending{font-size:11px;color:var(--md-muted,#8e8e93);margin-top:2px}
.chat-sent-ok{font-size:11px;color:#16a34a;font-weight:600;margin-top:2px}
.chat-sent-fail{font-size:11px;color:#E53935;margin-top:2px;display:inline-flex;align-items:center;}

.chat-sent-fail > * + *{margin-left:4px}
.chat-fail-ic{width:15px;height:15px;border-radius:50%;background:#E53935;color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.msg-clear-row{display:flex;flex-direction:column;align-items:center;padding:12px 12px 4px;border-top:1px solid rgba(0,0,0,.05)}
.msg-clear-btn{border:none;border-radius:999px;padding:10px 26px;margin-bottom:8px;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#8B5CF6,#7C3AED);cursor:pointer;box-shadow:0 3px 10px rgba(139,92,246,.28)}
.msg-clear-tip{font-size:11px;color:var(--md-muted,#8e8e93);text-align:center;line-height:1.5}
/* 弹窗公告 */
.ann-content{padding:14px 2px;font-size:14px;line-height:1.7;color:var(--md-on-surface,#1f1f1f);white-space:pre-wrap;word-break:break-word;max-height:44vh;overflow-y:auto}
.ann-edit{display:flex;flex-direction:column;padding:14px 0 4px}

.ann-edit > * + *{margin-top:8px}
.ann-label{font-size:12.5px;color:var(--md-muted,#8e8e93);margin-top:6px}
.ann-textarea{min-height:110px;resize:vertical}
.ann-btn-row{display:flex;align-items:center}

.ann-btn-row > * + *{margin-left:8px}
.ann-btn-row .admin-input{flex:1}
.ann-hide{display:inline-flex;align-items:center;font-size:12px;color:var(--md-muted,#8e8e93);white-space:nowrap}

.ann-hide > * + *{margin-left:4px}
.ann-hide input{width:15px;height:15px;accent-color:var(--md-primary,#8B5CF6)}
/* 头像编辑 */
.ava-editor{display:flex;flex-direction:column;align-items:center;padding:10px 0;max-height:74vh;overflow-y:auto}

/* 头像编辑 */
.ava-editor > * + *{margin-top:12px}
.ava-preview{width:110px;height:110px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:rgba(120,120,128,.1);font-size:34px;color:var(--md-muted,#8e8e93)}
.ava-preview img{width:100%;height:100%;object-fit:cover}
.ava-tip{font-size:12px;color:var(--md-muted,#8e8e93);text-align:center}
.ava-zoom-row{display:flex;align-items:center;width:100%;font-size:12.5px;color:var(--md-muted,#8e8e93)}

.ava-zoom-row > * + *{margin-left:10px}
.ava-editor #avaCanvas{display:block;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;width:min(280px,86vw);height:min(280px,86vw);margin:4px auto;border-radius:14px;background:#000}
.ava-zoom-row input{flex:1;accent-color:var(--md-primary,#8B5CF6)}
/* 屏蔽词 */
.bw-label{display:block;font-size:13px;color:var(--md-on-surface,#1f1f1f);margin:12px 0 6px}
.bw-input{width:100%;min-height:120px;padding:10px 12px;border:1px solid rgba(120,120,128,.2);border-radius:10px;font-size:13.5px;background:var(--md-surface,#fff);color:var(--md-on-surface,#1f1f1f);resize:vertical}
/* ===================== 会员横幅：未开紫色 / 已开金色（图三样式） ===================== */
.ac-upgrade.is-vip{background:linear-gradient(135deg,#F9E7A8,#F6C945 55%,#D9A427);color:#5C4308;box-shadow:0 6px 18px rgba(217,164,39,.35);border:1px solid rgba(214,158,32,.55)}
.ac-upgrade.is-vip .up-ic{background:rgba(255,255,255,.4)}
.ac-upgrade.is-vip .up-ic svg{color:#7A5B10}
.ac-upgrade.is-vip .up-meta b{color:#5C4308}
.ac-upgrade.is-vip .up-meta small{color:#8a6a1a}
.ac-upgrade.is-vip .up-arrow{color:#7A5B10}
.ac-upgrade[data-forever="1"]{cursor:default}
.ac-upgrade[data-forever="1"]:hover{transform:none;box-shadow:0 6px 18px rgba(217,164,39,.35)}
.ac-upgrade[data-forever="1"]:active{transform:none}
.msg-pub-send{display:flex;flex-direction:column;padding:12px;border:1px solid rgba(120,120,128,.12);border-radius:12px;background:rgba(120,120,128,.04);margin-bottom:10px}
.msg-pub-ta{width:100%;min-height:64px;padding:9px 12px;border:1px solid rgba(120,120,128,.2);border-radius:10px;font-size:13.5px;background:var(--md-surface,#fff);color:var(--md-on-surface,#1f1f1f);resize:vertical;font-family:inherit}
.msg-pub-send-btn{align-self:flex-end;padding:8px 20px;margin-top:8px;border:none;border-radius:10px;background:var(--md-primary,#8B5CF6);color:#fff;font-size:13.5px;cursor:pointer}

/* ============ 第九轮样式 ============ */
/* 账号中心头像区：用户名紧贴头像、VIP 标识在用户名下方 */
.ac-hero{justify-content:flex-start;}


/* ============ 第九轮样式 ============ */
/* 账号中心头像区：用户名紧贴头像、VIP 标识在用户名下方 */
.ac-hero > * + *{margin-left:14px}
.ac-hero .ac-info{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0}

.ac-hero .ac-info > * + *{margin-top:6px}
.ac-name-main{font-size:17px;font-weight:700;color:var(--md-on-surface,#1f1f1f);line-height:1.25;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-vip-sub{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.3px;line-height:1.4;margin-top:2px}
.ac-vip-sub.vip{background:linear-gradient(135deg,#FDE68A,#F6C945);color:#7A4E00}
.ac-vip-sub.plain{background:rgba(139,92,246,.12);color:#7C3AED}
.ac-vip-sub.admin{background:linear-gradient(135deg,#FF4D4F,#E53935);color:#fff;box-shadow:0 0 10px rgba(229,57,53,.55),0 0 20px rgba(229,57,53,.35);text-shadow:0 0 6px rgba(255,255,255,.45);font-weight:700}
/* 会员有效期文字：放不下自动缩小 */
.ac-upgrade .up-meta{min-width:0;flex:1}
.ac-upgrade .up-meta b{font-size:12.5px;line-height:1.35;word-break:break-all;white-space:normal}
.ac-upgrade .up-ic{flex:0 0 auto}
.ac-upgrade .up-ic svg{width:30px;height:30px;display:block}
/* 设置页退出登录：浅粉圆底红色图标 */
.st-ic-logout{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#FEE2E2;color:#EF4444;flex:0 0 auto}
.st-ic-logout svg{width:18px;height:18px}
/* 我的消息搜索 */
.msg-search{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(0,0,0,.06)}
.msg-search input{flex:1;min-width:0;border:1px solid rgba(139,92,246,.3);border-radius:10px;padding:8px 12px;font-size:13px;background:var(--md-surface,#fff);outline:none;color:var(--md-on-surface,#1f1f1f)}
.msg-search input:focus{border-color:#8B5CF6}
.msg-search button{flex:0 0 auto;margin-left:10px;background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}
.msg-search-title{font-size:12px;color:var(--md-muted,#8e8e93);padding:8px 14px 2px;font-weight:600}
.msg-search-row{display:flex;align-items:center;padding:10px 14px;border:1px solid rgba(120,120,128,.12);border-radius:12px;background:var(--md-surface,#fff);margin-bottom:8px}
.msg-search-info{flex:1;min-width:0;display:flex;flex-direction:column}.msg-search-info b{margin-bottom:2px}
.msg-search-info b{font-size:14px;font-weight:600;color:var(--md-on-surface,#1f1f1f)}
.msg-search-info small{font-size:11.5px;color:var(--md-muted,#8e8e93)}
.msg-send-btn{flex:none;padding:7px 20px;margin-left:10px;border:none;border-radius:999px;color:#fff;font-size:13px;font-weight:700;background:linear-gradient(135deg,#22C55E,#16A34A);cursor:pointer;box-shadow:0 2px 8px rgba(34,197,94,.35)}
.msg-send-btn:active{transform:scale(.96)}
/* 弹窗公告：标题内容居中、紫色主题、边框加大 */
.modal-scrim .modal:has(.ann-btns){border:2.5px solid rgba(139,92,246,.55);border-radius:20px;box-shadow:0 12px 40px rgba(139,92,246,.25);background:linear-gradient(180deg,#FDFBFF,#F7F2FE)}
.ann-head{justify-content:center;text-align:center}
.ann-head .m-icon{display:none}
.ann-content{text-align:center;padding:14px 10px}
.ann-btns{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;padding:4px 8px 14px}

.ann-btns > * + *{margin-left:10px}
.ann-btn{background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff;border:none;border-radius:999px;padding:7px 22px;font-size:13px;font-weight:600;cursor:pointer;min-width:0}
.ann-btn:hover{opacity:.9}
/* 公告编辑面板：按钮行带链接输入、发布按钮缩小留白 */
.ann-edit{padding:14px 16px}
.ann-btn-row{flex-wrap:nowrap}
.ann-btn-row .ann-link{flex:1 1 0}
.ann-save-btn{width:auto !important;min-width:130px;margin:12px auto 4px !important;display:block;padding:8px 30px !important;border-radius:999px !important;font-size:13px}

/* ===================== 第 13 轮：弹窗公告编辑框加大 ===================== */
.ann-edit .admin-input{width:100%;box-sizing:border-box;padding:13px 14px;font-size:14px;border-radius:10px}
.maint-wrap .admin-input{width:100%;box-sizing:border-box;padding:13px 14px;font-size:14px;border-radius:10px}
.ann-textarea{min-height:190px !important;font-size:14px;line-height:1.6;resize:vertical}
.ann-btn-row .admin-input{padding:11px 12px !important;font-size:13.5px}
.ann-save-btn{width:auto !important;min-width:180px;margin:16px auto 6px !important;display:block;padding:13px 46px !important;border-radius:999px !important;font-size:15px;font-weight:700;background:linear-gradient(135deg,#8B5CF6,#6D28D9);border:none;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.38)}

.ann-hint{font-size:12px;color:var(--md-muted,#8e8e93);margin:-2px 0 2px;line-height:1.5}
/* ===================== 第 15 轮：公告编辑可滚动 + 弹出方式选择 + 大按钮 ===================== */
.ann-edit{max-height:calc(76vh - 66px);overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.ann-mode-row{display:flex;flex-wrap:nowrap;align-items:center;margin:2px 0 4px;width:100%}

.ann-mode-row > * + *{margin-left:8px}
.ann-mode{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;font-size:13px;color:var(--md-on-surface,#1f1f1f);background:rgba(120,120,128,.06);padding:9px 4px;border-radius:999px;cursor:pointer;border:1.5px solid transparent;transition:all .15s;white-space:nowrap}

.ann-mode > * + *{margin-left:6px}
.ann-mode input{width:16px;height:16px;accent-color:var(--md-primary,#8B5CF6)}
.ann-mode:has(input:checked){background:rgba(139,92,246,.12);border-color:rgba(139,92,246,.45);color:#7C3AED;font-weight:600}
.ann-save-btn{width:auto !important;min-width:300px !important;margin:20px auto 10px !important;display:block;padding:20px 84px !important;border-radius:999px !important;font-size:18px !important;font-weight:700;background:linear-gradient(135deg,#8B5CF6,#6D28D9);border:none;color:#fff;box-shadow:0 5px 16px rgba(139,92,246,.42)}

/* 第 15 轮补充：公告按钮显示开关 */
.ann-btn-switch{display:flex;align-items:center;justify-content:space-between;margin-top:10px}


/* 第 15 轮补充：公告按钮显示开关 */
.ann-btn-switch > * + *{margin-left:8px}
.ann-btn-switch .ann-label{margin:0}
#annBtnWrap{display:block}

/* 第 16 轮补充：公告发布 + 关闭弹窗按钮区 */
.ann-acts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;padding:6px 0 2px}


/* 第 16 轮补充：公告发布 + 关闭弹窗按钮区 */
.ann-acts > * + *{margin-left:14px}

/* ===================== 空间容量明细（点击查看详细） ===================== */
/* ===================== 升级弹窗（仿简函云记版本更新样式） ===================== */
.upd-overlay{position:fixed;left:0;top:0;right:0;bottom:0;z-index:99999;background:rgba(0,0,0,.55);display:-webkit-box;display:-webkit-flex;display:flex;align-items:center;justify-content:center;padding:20px}
.upd-card{width:400px;max-width:92vw;background: #FFFFFF;
  background:var(--md-surface);border-radius:18px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);animation:updIn .25s ease}
@keyframes updIn{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.upd-head{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff;padding:18px 20px 14px;position:relative}
.upd-head-text{font-size:13px;opacity:.92}
.upd-title{font-size:19px;font-weight:700;margin-top:2px;padding-right:70px;line-height:1.35}
.upd-ver{position:absolute;right:14px;top:14px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.5);border-radius:999px;font-size:12px;padding:2px 10px;font-weight:600}
.upd-verinfo{display:flex;justify-content:space-around;padding:12px 0 6px;font-size:13px;color:#666}
.upd-verinfo b{color:#1f1f1f;font-size:15px;margin-left:4px}
.upd-items-title{font-weight:700;color:#1f1f1f;padding:8px 20px 2px;font-size:14px}
.upd-items{list-style:none;margin:0;padding:6px 20px 10px;max-height:34vh;overflow-y:auto}
.upd-items li{font-size:13.5px;color:#444;line-height:1.75;word-break:break-all;display:flex;align-items:flex-start;}

.upd-items li > * + *{margin-left:8px}
.upd-items li::before{content:'';width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#6d28d9);flex-shrink:0;margin-top:9px}
.upd-meta{display:flex;justify-content:space-between;padding:4px 20px 12px;font-size:12px;color:#999}
.upd-btns{display:flex;padding:0 20px 18px}

.upd-btns > * + *{margin-left:10px}
.upd-btn1{-webkit-box-flex:1;-webkit-flex:1;flex:1;background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff;border:none;border-radius:999px;padding:11px 0;font-size:15px;font-weight:600;cursor:pointer}
.upd-btn1:active{transform:scale(.97)}
.upd-btn2{-webkit-box-flex:1;-webkit-flex:1;flex:1;background:#f1f0f5;color:#555;border:none;border-radius:999px;padding:11px 0;font-size:15px;cursor:pointer}
.upd-btn2:active{transform:scale(.97)}
.ann-acts .ann-save-btn{margin:0 !important}
.ann-close-btn{background:linear-gradient(135deg,#F87171,#EF4444)!important;color:#fff!important;border:none!important;border-radius:999px!important;min-width:300px !important;padding:20px 84px !important;font-size:18px !important;font-weight:700;box-shadow:0 5px 16px rgba(239,68,68,.38)}
.ann-close-btn:disabled{opacity:.6}

.ann-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;background:rgba(20,12,40,.55);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeUp .2s ease}
.ann-p-card{width:min(400px,92vw);background: #FFFFFF;
  background:var(--md-surface);border-radius:20px;box-shadow:0 12px 40px rgba(139,92,246,.28);overflow:hidden;border:2px solid rgba(139,92,246,.35)}
.ann-p-head{padding:16px 18px 10px;text-align:center;font-size:16px;font-weight:700;color:var(--md-on-surface,#1f1f1f);border-bottom:1px solid var(--line)}
.ann-p-body{padding:16px 18px;font-size:14px;line-height:1.7;color:var(--md-on-surface,#1f1f1f);white-space:pre-wrap;word-break:break-word;text-align:center;max-height:44vh;overflow-y:auto}
.ann-p-btns{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;padding:4px 8px 16px}

.ann-p-btns > * + *{margin-left:10px}
.ann-p-btn{background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff;border:none;border-radius:999px;padding:8px 24px;font-size:13.5px;font-weight:600;cursor:pointer}
.ann-p-btn:hover{opacity:.9}
.upd-banmsg{margin:14px 16px 6px;text-align:center;color:var(--tx,#e5e7eb);font-size:14px;line-height:1.75;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:16px 12px;word-break:break-word}
/* ===== 维护页增强：输入框加大 + 动态水珠 ===== */

.maint-btn.alt{background:linear-gradient(135deg,#34D399,#10B981);box-shadow:0 6px 18px rgba(16,185,129,.3)}
.maint-drop{position:absolute;top:-14%;border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(160,170,255,.38) 55%,rgba(210,220,255,.55));filter:blur(.4px);box-shadow:0 0 6px rgba(150,160,255,.25);animation:maintFall linear infinite}
@keyframes maintFall{0%{transform:translateY(-6vh)}100%{transform:translateY(118vh)}}

/* ===== 留言反馈 ===== */
.msg-wrap{display:flex;flex-direction:column;padding:4px 2px 8px}


/* ===== 留言反馈 ===== */
.msg-wrap > * + *{margin-top:10px}
.msg-admin{display:flex;flex-direction:column;background:rgba(139,92,246,.06);border:1px solid rgba(139,92,246,.25);border-radius:14px;padding:12px}

.msg-admin > * + *{margin-top:8px}
.msg-count{font-size:13px;font-weight:700;color:var(--md-primary,#7C3AED);padding:2px 4px}
.msg-list{display:flex;flex-direction:column;max-height:44vh;overflow-y:auto;-webkit-overflow-scrolling:touch}

.msg-list > * + *{margin-top:10px}
.msg-item{background:var(--md-surface,#fff);border:1px solid rgba(139,92,246,.18);border-radius:14px;padding:12px}
.msg-head{display:flex;align-items:center;}

.msg-head > * + *{margin-left:10px}
.msg-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#8B5CF6,#6D28D9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex:none}
.msg-meta{flex:1;min-width:0;display:flex;flex-direction:column;}

.msg-meta > * + *{margin-top:1px}
.msg-name{font-size:14px;font-weight:700;color:var(--md-on-surface,#1f1f1f);display:flex;align-items:center;}

.msg-name > * + *{margin-left:6px}
.msg-time{font-size:11.5px;color:var(--md-muted,#8e8e93)}
.msg-adm{font-style:normal;font-size:10px;background:linear-gradient(135deg,#F59E0B,#EF4444);color:#fff;border-radius:999px;padding:1px 7px;font-weight:700}
.msg-ops{display:flex;flex:none}

.msg-ops > * + *{margin-left:6px}
.msg-mini{border:1px solid rgba(139,92,246,.4);background:transparent;color:var(--md-primary,#7C3AED);border-radius:999px;padding:4px 11px;font-size:12px;cursor:pointer}
.msg-mini.danger{border-color:rgba(239,68,68,.45);color:#EF4444}
.msg-content{font-size:14px;color:var(--md-on-surface,#1f1f1f);line-height:1.6;margin:9px 0 4px;white-space:pre-wrap;word-break:break-word}
.msg-replies{margin-top:8px;display:flex;flex-direction:column;background:rgba(139,92,246,.05);border-radius:10px;padding:8px 10px}

.msg-replies > * + *{margin-top:6px}
.msg-reply{display:flex;flex-wrap:wrap;align-items:center;font-size:13px}

.msg-reply > * + *{margin-left:6px}
.msg-rname{font-weight:700;color:var(--md-primary,#7C3AED);display:flex;align-items:center;}

.msg-rname > * + *{margin-left:5px}
.msg-rc{flex:1;min-width:60%;color:var(--md-on-surface,#1f1f1f);word-break:break-word}
.msg-rtime{font-size:11px;color:var(--md-muted,#8e8e93);width:100%}
.msg-u-ban{margin-top:8px;display:inline-flex;align-items:center;font-size:12px;color:#EF4444;cursor:pointer}

.msg-u-ban > * + *{margin-left:6px}
.msg-editbox,.msg-replybox{margin-top:8px;display:flex;flex-direction:column;}

.msg-editbox > * + *, .msg-replybox > * + *{margin-top:8px}
.msg-compose{display:flex;flex-direction:column;border-top:1px solid rgba(139,92,246,.15);padding-top:10px}
.msg-input{width:100%;min-height:84px;border:1.5px solid rgba(139,92,246,.35);border-radius:12px;padding:10px 12px;font-size:14px;background:var(--md-surface,#fff);color:var(--md-on-surface,#1f1f1f);resize:vertical;box-sizing:border-box}
.msg-input.small{min-height:64px}
.msg-send{background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff;border:none;border-radius:999px;padding:11px 20px;font-size:14.5px;font-weight:700;cursor:pointer;width:100%;margin-top:8px}
.msg-send.small{width:auto;align-self:flex-end;padding:8px 22px;font-size:13px}
.msg-urow{display:flex;align-items:center;justify-content:space-between;background:var(--md-surface,#fff);border-radius:10px;padding:9px 12px;margin-top:8px}

.msg-urow > * + *{margin-left:10px}
.msg-uname{display:flex;flex-direction:column;font-size:14px;font-weight:700;color:var(--md-on-surface,#1f1f1f)}

.msg-uname > * + *{margin-top:2px}
.msg-uname small{font-size:11.5px;color:var(--md-muted,#8e8e93);font-weight:400}


/* ===================== 限制上传面板 ===================== */
.banup-wrap{display:flex;flex-direction:column;padding:6px 2px 8px}



/* ===================== 限制上传面板 ===================== */
.banup-wrap > * + *{margin-top:12px}
.banup-global{display:flex;align-items:center;justify-content:space-between;background:rgba(139,92,246,.08);border:1.5px solid rgba(139,92,246,.35);border-radius:14px;padding:12px 14px;transition:border-color .2s}

.banup-global > * + *{margin-left:12px}
.banup-grow{display:flex;flex-direction:column;min-width:0}

.banup-grow > * + *{margin-top:2px}
.banup-glabel{font-size:14.5px;font-weight:700;color:var(--md-on-surface,#1f1f1f)}
.banup-gdesc{font-size:12px;color:var(--md-muted,#8e8e93);line-height:1.4}
.banup-sw{position:relative;display:inline-flex;flex:none;cursor:pointer}
.banup-sw input{position:absolute;opacity:0;width:0;height:0}
.banup-sw span{display:inline-block;width:48px;height:27px;border-radius:999px;background:rgba(120,120,128,.28);position:relative;transition:background .2s}
.banup-sw span::after{content:'';position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.banup-sw input:checked + span{background:linear-gradient(135deg,#8B5CF6,#7C3AED)}
.banup-sw input:checked + span::after{transform:translateX(21px)}
.banup-list{display:flex;flex-direction:column;max-height:46vh;overflow-y:auto}

.banup-list > * + *{margin-top:10px}
.banup-item{background:rgba(120,120,128,.05);border:1px solid var(--line,rgba(120,120,128,.18));border-radius:14px;padding:12px}
.banup-info{display:flex;flex-direction:column;margin-bottom:10px}

.banup-info > * + *{margin-top:2px}
.banup-info b{font-size:15px;color:var(--md-on-surface,#1f1f1f)}
.banup-info small{font-size:12.5px;color:var(--md-muted,#8e8e93)}
.banup-ops{display:flex;flex-wrap:wrap}

.banup-ops > * + *{margin-left:8px}
.banup-opt{display:inline-flex;align-items:center;font-size:12.5px;font-weight:600;color:var(--md-on-surface,#1f1f1f);background:rgba(120,120,128,.08);padding:7px 11px;border-radius:999px;cursor:pointer;border:1.5px solid transparent;transition:all .15s}

.banup-opt > * + *{margin-left:5px}
.banup-opt input{width:15px;height:15px;accent-color:#EF4444}
.banup-opt:has(input:checked){background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.45);color:#DC2626}
.banup-save{width:100%;margin-top:2px}
.maint-wrap{display:flex;flex-direction:column;padding:6px 2px 8px}

.maint-wrap > * + *{margin-top:10px}
/* ===================== 网站升级维护页 ===================== */
.maint-page{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999999;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:linear-gradient(180deg,#0a1a3f 0%,#123066 45%,#1b4b96 78%,#2b6fc4 100%)}
.maint-rain{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;background-image:radial-gradient(circle 2px at 8% 12%,rgba(255,255,255,.28) 0 0,transparent 100%),radial-gradient(circle 2px at 23% 34%,rgba(255,255,255,.2) 0 0,transparent 100%),radial-gradient(circle 1.5px at 41% 8%,rgba(255,255,255,.32) 0 0,transparent 100%),radial-gradient(circle 2px at 58% 22%,rgba(255,255,255,.22) 0 0,transparent 100%),radial-gradient(circle 1.5px at 71% 47%,rgba(255,255,255,.26) 0 0,transparent 100%),radial-gradient(circle 2px at 86% 15%,rgba(255,255,255,.3) 0 0,transparent 100%),radial-gradient(circle 1.5px at 12% 62%,rgba(255,255,255,.2) 0 0,transparent 100%),radial-gradient(circle 2px at 33% 78%,rgba(255,255,255,.24) 0 0,transparent 100%),radial-gradient(circle 1.5px at 66% 84%,rgba(255,255,255,.26) 0 0,transparent 100%),radial-gradient(circle 2px at 91% 66%,rgba(255,255,255,.22) 0 0,transparent 100%),radial-gradient(circle 1.5px at 49% 55%,rgba(255,255,255,.18) 0 0,transparent 100%)}
.maint-city{position:absolute;left:0;right:0;bottom:0;height:130px;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(8,16,40,.85) 30%,rgba(6,12,30,.95) 100%)}
.maint-city::before{content:'';position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(90deg,rgba(20,30,60,.9) 0 8%,transparent 8% 12%,rgba(20,30,60,.9) 12% 20%,transparent 20% 26%,rgba(20,30,60,.9) 26% 38%,transparent 38% 44%,rgba(20,30,60,.9) 44% 52%,transparent 52% 60%,rgba(20,30,60,.9) 60% 70%,transparent 70% 76%,rgba(20,30,60,.9) 76% 88%,transparent 88% 94%,rgba(20,30,60,.9) 94% 100%)}
.maint-city::after{content:'';position:absolute;left:0;right:0;bottom:0;height:130px;background-image:radial-gradient(circle 2px at 15% 55%,rgba(255,220,120,.5) 0 0,transparent 100%),radial-gradient(circle 2px at 35% 40%,rgba(255,220,120,.4) 0 0,transparent 100%),radial-gradient(circle 1.5px at 55% 60%,rgba(255,220,120,.5) 0 0,transparent 100%),radial-gradient(circle 2px at 75% 45%,rgba(255,220,120,.4) 0 0,transparent 100%),radial-gradient(circle 1.5px at 90% 58%,rgba(255,220,120,.5) 0 0,transparent 100%)}
.maint-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;padding:20px;max-width:360px}
.maint-logo{width:104px;height:104px;border-radius:24px;object-fit:cover;box-shadow:0 10px 34px rgba(0,0,0,.35);margin-bottom:18px}
.maint-name{font-size:24px;font-weight:800;letter-spacing:1px;margin-bottom:10px}
.maint-tip{font-size:14px;color:rgba(255,255,255,.82);margin-bottom:26px}
.maint-btns{display:flex;flex-wrap:wrap;justify-content:center}

.maint-btns > * + *{margin-left:14px}
.maint-btn{display:inline-block;padding:11px 26px;border-radius:999px;font-size:14.5px;font-weight:700;text-decoration:none;transition:all .15s;background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.maint-btn:hover{opacity:.9;transform:translateY(-1px)}
.maint-btn.alt{background:linear-gradient(135deg,#34D399,#10B981)}
.maint-admin{margin-top:34px;padding:8px 18px;border-radius:999px;font-size:12.5px;color:rgba(255,255,255,.75);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);cursor:pointer}


/* ===== 管理后台·用户资料：单条强制删除 ===== */
.su-item-row{display:flex;align-items:center;padding:6px 8px 6px 6px}



/* ===== 管理后台·用户资料：单条强制删除 ===== */
.su-item-row > * + *{margin-left:6px}
.su-item-row .su-open{flex:1;display:flex;align-items:center;padding:8px 6px;border:none;background:none;text-align:left;cursor:pointer;color:inherit;min-width:0}

.su-item-row .su-open > * + *{margin-left:10px}
.su-item-row .su-open .su-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.su-item-row .su-open .su-sub{flex:none;font-size:11px;color:var(--muted,#8a8a8e);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.su-item-row .su-open .su-ar{flex:none;color:var(--muted-2,#b0b0b5)}
.su-del{flex:none;padding:7px 12px;border:none;border-radius:8px;background:#e5484d;color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.su-del:active{opacity:.8}
.su-img-item{position:relative}
.su-img-item .su-del{position:absolute;top:5px;right:5px;padding:4px 9px;font-size:11px;z-index:2}
.su-img-item .su-name-t{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--md-text,#1f2329)}
.su-del-full{width:100%;margin-top:12px;padding:12px;border:none;border-radius:10px;background:linear-gradient(135deg,#e5484d,#c81e1e);color:#fff;font-size:14px;font-weight:700;cursor:pointer}
.su-del-full:active{opacity:.85}

/* ===== 旧内核 CSS 变量兜底（不支持 var() 的老浏览器使用固定色，现代浏览器不受影响）===== */
html,body{background:linear-gradient(180deg,#F8F5FF 0%,#EFE7FC 100%)}
body{color:#1f2329}
.gate{background:linear-gradient(180deg,#F8F5FF 0%,#EFE7FC 100%)}
.topbar{background: #FBFAFF;
  background:var(--md-surface-container-low);}

.st-row,.m-row,.card,.lg-card,.modal,.sheet{background: #FFFFFF;
  background:var(--md-surface);}
.recycle-batch.show{background: #FFFFFF;
  background:var(--md-surface);}
.msg-tab.active{background:#8B5CF6;color:#fff}
.btn,button.btn{background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff}

  body{color:#1f2329}
  .gate{background:linear-gradient(180deg,#F8F5FF 0%,#EFE7FC 100%)}
  .topbar{background: #FBFAFF;
  background:var(--md-surface-container-low);}
  .sidebar,.group-panel{background: #FFFFFF;
  background:var(--md-surface);}
  .st-row,.m-row,.card,.lg-card,.modal,.sheet{background: #FFFFFF;
  background:var(--md-surface);}
  .recycle-batch.show{background: #FFFFFF;
  background:var(--md-surface);}
  .msg-tab.active{background:#8B5CF6}
  .btn,button.btn{background:linear-gradient(135deg,#8B5CF6,#7C3AED)}
}

/* === 老浏览器 gap 兼容（via/必应/stay/X 等） === */
.st-wrap .st-row+.st-row{margin-top:12px}
.m-list .m-item+.m-item{margin-top:8px}
.acc-row+.acc-row{margin-top:8px}
.banup-item+.banup-item{margin-top:8px}
.set-row+.set-row{margin-top:8px}
.modal-list .ml-item+.ml-item{margin-top:8px}
.card-stats{display:flex;align-items:center}

.card-stats > * + *{margin-left:8px}.card-stats span+span{margin-left:8px}
.card-stats span{white-space:nowrap}
/* 维护页居中兼容 */
.maint-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100vh;padding:20px}
.maint-card{width:100%;max-width:420px;margin:0 auto}

.ac-list .ac-theme-grid{margin-bottom:6px!important}
.ac-list .ac-mode-row{margin-bottom:6px!important}