/* =====================================================================
   墨章 · 长篇小说AI创作平台 — 原型设计系统
   双主题：浅色(管理/规划) + 深色(正文写作)
   ===================================================================== */

:root {
  /* 品牌与语义色（浅色主题） */
  --brand:        #2f6b5e;   /* 黛青/墨绿 主色 */
  --brand-600:    #275a4f;
  --brand-50:     #e9f3f0;
  --accent-warm:  #c98a2b;   /* 琥珀：爽点/钩子 */
  --accent-warm-50:#f8efdd;
  --danger:       #c0453b;   /* 朱红：AI痕迹高风险/红线 */
  --danger-50:    #f8e6e4;
  --warn:         #b6812a;
  --warn-50:      #f7efdc;
  --ok:           #3d8168;
  --ok-50:        #e6f1ec;
  --info:         #3a6ea5;
  --info-50:      #e6eef6;

  /* 中性（纸感暖白） */
  --bg:           #f5f3ee;
  --surface:      #ffffff;
  --surface-2:    #faf9f5;
  --border:       #e5e0d6;
  --border-strong:#d3ccbd;
  --text:         #24272b;
  --text-2:       #54595f;
  --text-3:       #767b83;   /* 加深以提升对比 (审计 P1) */

  --radius:   12px;
  --radius-sm:8px;
  --radius-lg:18px;
  --shadow-sm: 0 1px 2px rgba(30,25,15,.05), 0 1px 3px rgba(30,25,15,.06);
  --shadow-md: 0 4px 14px rgba(30,25,15,.08);
  --shadow-lg: 0 12px 40px rgba(30,25,15,.14);

  --font: -apple-system,"PingFang SC","Microsoft YaHei","Noto Sans SC",Segoe UI,Roboto,sans-serif;
  --font-serif: "Songti SC","STSong","Noto Serif SC",Georgia,serif;
  --sidebar-w: 232px;
}

* { box-sizing: border-box; }
html,body { margin:0; padding:0; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
h1,h2,h3,h4 { margin:0; font-weight:650; letter-spacing:.01em; }
::selection { background: var(--brand-50); }

/* ============ 应用外壳：侧边栏 + 主区 ============ */
.app { display:flex; min-height:100vh; }
.sidebar {
  width: var(--sidebar-w); flex:0 0 var(--sidebar-w);
  background: linear-gradient(180deg,#20302b 0%, #1a2823 100%);
  color:#cdd6d1; padding:18px 14px; position:sticky; top:0; height:100vh;
  display:flex; flex-direction:column; gap:4px;
}
.brand { display:flex; align-items:center; gap:10px; padding:6px 8px 18px; }
.brand .logo {
  width:32px;height:32px;border-radius:9px;
  background:linear-gradient(135deg,#3f8c78,#2f6b5e);
  display:grid;place-items:center;color:#fff;font-family:var(--font-serif);
  font-size:19px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.brand .name { color:#fff;font-size:16px;font-weight:700;letter-spacing:.04em;}
.brand .sub  { color:#7f9089;font-size:11px;letter-spacing:.12em; }
.nav-group-label{font-size:11.5px;color:#8a9a92;letter-spacing:.12em;padding:14px 10px 6px;}
.nav-item {
  display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;
  color:#b9c4be;font-size:13.5px;cursor:pointer;transition:.15s;
}
.nav-item .ic{width:18px;text-align:center;opacity:.85;font-size:15px;}
.nav-item:hover{background:rgba(255,255,255,.06);color:#eaf1ee;}
.nav-item.active{background:rgba(63,140,120,.22);color:#fff;box-shadow:inset 2px 0 0 var(--brand);}
.sidebar .spacer{flex:1;}
.side-foot{border-top:1px solid rgba(255,255,255,.08);padding-top:12px;margin-top:8px;
  display:flex;align-items:center;gap:10px;font-size:12.5px;color:#9fb0a9;}
.side-foot .avatar{width:28px;height:28px;border-radius:50%;background:#3f8c78;color:#fff;
  display:grid;place-items:center;font-size:12px;}

.main { flex:1; min-width:0; display:flex; flex-direction:column; }
.topbar{
  height:60px;display:flex;align-items:center;gap:16px;padding:0 28px;
  background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;
}
.topbar .title{font-size:17px;font-weight:680;}
.topbar .crumb{color:var(--text-3);font-size:13px;}
.topbar .spacer{flex:1;}
.content{padding:26px 28px 60px;max-width:1180px;width:100%;margin:0 auto;}

/* ============ 通用组件 ============ */
.btn{
  display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 15px;border-radius:9px;
  border:1px solid var(--border-strong);background:var(--surface);color:var(--text);
  font-size:13.5px;font-weight:550;cursor:pointer;transition:.15s;white-space:nowrap;
}
.btn:hover{border-color:var(--brand);color:var(--brand);}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn.primary:hover{background:var(--brand-600);color:#fff;}
.btn.warm{background:var(--accent-warm);border-color:var(--accent-warm);color:#fff;}
.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2);}
.btn.ghost:hover{background:var(--surface-2);color:var(--text);}
.btn.sm{height:30px;padding:0 11px;font-size:12.5px;border-radius:8px;}
.btn.danger:hover{border-color:var(--danger);color:var(--danger);}

.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:20px;
  font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);}
.badge.brand{background:var(--brand-50);color:var(--brand-600);border-color:transparent;}
.badge.warm{background:var(--accent-warm-50);color:var(--accent-warm);border-color:transparent;}
.badge.danger{background:var(--danger-50);color:var(--danger);border-color:transparent;}
.badge.ok{background:var(--ok-50);color:var(--ok);border-color:transparent;}
.badge.info{background:var(--info-50);color:var(--info);border-color:transparent;}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;}

.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
.card .card-h{padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}
.card .card-h h3{font-size:15px;}
.card .card-b{padding:18px;}
.card .card-h .spacer{flex:1;}

.grid{display:grid;gap:18px;}
.grid.c3{grid-template-columns:repeat(3,1fr);}
.grid.c2{grid-template-columns:repeat(2,1fr);}
.grid.c4{grid-template-columns:repeat(4,1fr);}

.input,.select,textarea.input{
  width:100%;height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:9px;
  background:var(--surface);color:var(--text);font-size:13.5px;font-family:var(--font);outline:none;transition:.15s;
}
textarea.input{height:auto;padding:10px 12px;line-height:1.7;resize:vertical;}
.input:focus,.select:focus,textarea.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-50);}
.field{margin-bottom:16px;}
.field > label{display:block;font-size:12.5px;color:var(--text-2);font-weight:600;margin-bottom:6px;}
.field .hint{font-size:11.5px;color:var(--text-3);margin-top:5px;}

.pill-row{display:flex;flex-wrap:wrap;gap:8px;}
.pill{padding:7px 13px;border:1px solid var(--border-strong);border-radius:20px;font-size:13px;cursor:pointer;color:var(--text-2);background:var(--surface);transition:.15s;}
.pill:hover{border-color:var(--brand);}
.pill.on{background:var(--brand);border-color:var(--brand);color:#fff;}

table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
table.tbl th{text-align:left;color:var(--text-3);font-weight:600;font-size:12px;padding:10px 12px;border-bottom:1px solid var(--border);letter-spacing:.03em;}
table.tbl td{padding:12px;border-bottom:1px solid var(--border);}
table.tbl tr:hover td{background:var(--surface-2);}

.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px;}
.seg button{border:none;background:transparent;padding:6px 13px;border-radius:7px;font-size:13px;color:var(--text-2);cursor:pointer;font-weight:550;}
.seg button.on{background:var(--surface);color:var(--brand-600);box-shadow:var(--shadow-sm);}

.progress{height:7px;background:var(--surface-2);border-radius:20px;overflow:hidden;border:1px solid var(--border);}
.progress > i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),#48987f);border-radius:20px;}

.muted{color:var(--text-3);}
.small{font-size:12.5px;}
.hr{height:1px;background:var(--border);border:none;margin:18px 0;}
.tag-dot{width:8px;height:8px;border-radius:50%;display:inline-block;}

/* ============ 页面提示条 ============ */
.page-head{display:flex;align-items:flex-end;gap:14px;margin-bottom:22px;}
.page-head h1{font-size:22px;}
.page-head p{color:var(--text-3);margin:2px 0 0;font-size:13px;}
.page-head .spacer{flex:1;}

/* =====================================================================
   深色写作主题（创作页 editor.html）
   ===================================================================== */
body.theme-dark{
  --bg:#0f1216; --surface:#171b21; --surface-2:#1e242c; --border:#2a323c; --border-strong:#38424e;
  --text:#e7ebef; --text-2:#a7b2bd; --text-3:#828d99;  /* 提亮以提升深色对比 (审计 P1) */
  --brand:#4db6a0; --brand-600:#3f9d89; --brand-50:#16302b;
  --accent-warm:#e0a54a; --accent-warm-50:#33280f;
  --danger:#e2685c; --danger-50:#3a1f1c; --ok:#5ec49f; --ok-50:#153029; --info:#5b9bd6; --info-50:#12283a;
  background:var(--bg);color:var(--text);
}

/* ---- 创作页三栏布局 ---- */
.editor-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.editor-top{
  height:52px;display:flex;align-items:center;gap:14px;padding:0 16px;
  background:#131820;border-bottom:1px solid var(--border);flex:0 0 auto;
}
.editor-top .e-brand{display:flex;align-items:center;gap:9px;font-weight:700;color:#fff;font-size:14px;}
.editor-top .e-brand .logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#4db6a0,#2f6b5e);display:grid;place-items:center;color:#fff;font-family:var(--font-serif);}
.editor-top .chap{color:var(--text-2);font-size:13px;}
.editor-top .chap b{color:var(--text);font-weight:600;}
.editor-top .spacer{flex:1;}
.save-state{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);}
.save-state .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);}
.model-select{display:flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:8px;padding:5px 10px;font-size:12.5px;color:var(--text-2);cursor:pointer;}
.model-select b{color:var(--text);font-weight:600;}

.editor-body{flex:1;display:flex;min-height:0;}

/* 左栏：章节/大纲树 */
.e-left{width:236px;flex:0 0 236px;background:#12171e;border-right:1px solid var(--border);overflow-y:auto;padding:12px 8px;}
.tree-h{font-size:11px;color:var(--text-3);letter-spacing:.14em;padding:8px 10px 6px;display:flex;align-items:center;}
.tree-h .spacer{flex:1;}
.vol{font-size:12.5px;color:var(--text-2);padding:8px 10px;font-weight:600;display:flex;gap:7px;align-items:center;}
.ch{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 24px;border-radius:7px;color:var(--text-2);font-size:13px;cursor:pointer;}
.ch:hover{background:var(--surface-2);color:var(--text);}
.ch.active{background:var(--brand-50);color:var(--text);box-shadow:inset 2px 0 0 var(--brand);}
.ch .st{width:6px;height:6px;border-radius:50%;flex:0 0 auto;}
.ch .st.final{background:var(--ok);} .ch .st.draft{background:var(--accent-warm);} .ch .st.empty{background:var(--text-3);opacity:.5;}
.ch .wc{margin-left:auto;font-size:11px;color:var(--text-3);}

/* 中栏：Composer 正文 */
.e-center{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);}
.composer-bar{height:44px;display:flex;align-items:center;gap:10px;padding:0 22px;border-bottom:1px solid var(--border);color:var(--text-3);font-size:12.5px;}
.composer-bar .spacer{flex:1;}
.ver-chip{padding:3px 9px;border-radius:20px;border:1px solid var(--border);font-size:11.5px;cursor:pointer;color:var(--text-2);}
.ver-chip.on{background:var(--brand-50);color:var(--text);border-color:var(--brand);}
.composer-scroll{flex:1;overflow-y:auto;padding:34px 0 120px;}
.manuscript{max-width:720px;margin:0 auto;padding:0 32px;font-family:var(--font-serif);font-size:17px;line-height:2.05;color:#dfe5e9;}
.manuscript h2{font-family:var(--font);font-size:20px;color:#fff;margin-bottom:6px;}
.manuscript .ch-meta{font-family:var(--font);font-size:12px;color:var(--text-3);margin-bottom:26px;padding-bottom:16px;border-bottom:1px solid var(--border);}
.manuscript p{margin:0 0 20px;text-indent:2em;}

/* 校验高亮 span */
.mark{border-radius:3px;padding:1px 2px;cursor:pointer;position:relative;}
/* 批注默认降噪：仅细虚下划线；悬停/聚焦才上底色 (审计 P1) */
.mark.ai   {border-bottom:1.5px dashed rgba(226,104,92,.7);}
.mark.pace {border-bottom:1.5px dashed rgba(224,165,74,.7);}
.mark.ooc  {border-bottom:1.5px dashed rgba(91,155,214,.7);}
.mark:hover{border-bottom-style:solid;}
.mark.ai:hover  {background:rgba(226,104,92,.14);}
.mark.pace:hover{background:rgba(224,165,74,.14);}
.mark.ooc:hover {background:rgba(91,155,214,.14);}

/* Composer 内嵌 diff 草稿卡 */
.draft-card{max-width:720px;margin:6px auto 26px;padding:0 32px;font-family:var(--font);}
.draft-inner{border:1px solid var(--brand);border-radius:12px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.35);}
.draft-head{background:var(--brand-50);padding:10px 14px;display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text);}
.draft-head .spacer{flex:1;}
.diff-body{font-family:var(--font-serif);font-size:15.5px;line-height:1.95;padding:14px 16px;background:var(--surface);}
.diff-line{padding:2px 8px;border-radius:5px;margin:2px 0;}
.diff-del{background:rgba(226,104,92,.12);color:#c99;text-decoration:line-through;text-decoration-color:rgba(226,104,92,.6);}
.diff-add{background:rgba(94,196,159,.12);color:#cfe9dd;}
.draft-foot{display:flex;gap:8px;padding:11px 14px;background:var(--surface-2);border-top:1px solid var(--border);align-items:center;}
.draft-foot .spacer{flex:1;}

/* 右栏：对话面板 */
.e-right{width:378px;flex:0 0 378px;background:#12171e;border-left:1px solid var(--border);display:flex;flex-direction:column;}
.chat-tabs{display:flex;gap:2px;padding:10px 12px 0;border-bottom:1px solid var(--border);}
.chat-tab{padding:8px 13px;font-size:12.5px;color:var(--text-3);cursor:pointer;border-radius:8px 8px 0 0;}
.chat-tab.on{color:var(--text);background:var(--surface-2);}
.chat-scroll{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:14px;}

.msg{display:flex;flex-direction:column;gap:6px;}
.msg .who{font-size:11px;color:var(--text-3);display:flex;align-items:center;gap:6px;}
.msg.user .bubble{background:var(--brand);color:#fff;align-self:flex-end;border-radius:12px 12px 3px 12px;}
.msg.user{align-items:flex-end;}
.bubble{background:var(--surface-2);border:1px solid var(--border);border-radius:12px 12px 12px 3px;padding:10px 13px;font-size:13.5px;line-height:1.7;color:var(--text);max-width:100%;}

/* Agent 事件流小组件 */
.evt{border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden;}
.evt-h{padding:8px 12px;font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:7px;background:var(--surface-2);}
.evt-b{padding:10px 12px;font-size:12.5px;color:var(--text-2);}
.thinking{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-3);font-style:italic;}
.thinking .spin{width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:sp 1s linear infinite;}
@keyframes sp{to{transform:rotate(360deg);}}
.ctx-chips{display:flex;flex-wrap:wrap;gap:6px;}
.ctx-chip{font-size:11px;padding:3px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);display:flex;align-items:center;gap:5px;}
.ctx-chip .ic{color:var(--brand);}
.check-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 0;}
.check-row .ic{width:16px;text-align:center;}
.gate{border:1px dashed var(--accent-warm);border-radius:10px;padding:12px;background:var(--accent-warm-50);}
.gate .g-t{font-size:12.5px;color:var(--text);font-weight:600;margin-bottom:9px;display:flex;align-items:center;gap:7px;}

/* 对话输入区 */
.chat-input{border-top:1px solid var(--border);padding:12px;background:#12171e;}
.chat-input .quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px;}
.qbtn{font-size:11.5px;padding:5px 10px;border-radius:20px;border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:var(--surface);}
.qbtn:hover{border-color:var(--brand);color:var(--text);}
.chat-box{background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;padding:10px 12px;}
.chat-box textarea{width:100%;border:none;background:transparent;resize:none;color:var(--text);font-size:13.5px;font-family:var(--font);outline:none;line-height:1.6;}
.chat-box .cb-foot{display:flex;align-items:center;gap:8px;margin-top:8px;}
.chat-box .cb-foot .spacer{flex:1;}
.op-select{display:flex;gap:5px;}
.op{font-size:11.5px;padding:4px 9px;border-radius:7px;border:1px solid var(--border);color:var(--text-2);cursor:pointer;}
.op.on{background:var(--brand-50);color:var(--text);border-color:var(--brand);}
.send{width:32px;height:32px;border-radius:8px;background:var(--brand);color:#fff;border:none;display:grid;place-items:center;cursor:pointer;font-size:15px;}

/* 右侧信息面板（台账/人物） */
.panel-sec{padding:14px;border-bottom:1px solid var(--border);}
.panel-sec .p-h{font-size:11px;color:var(--text-3);letter-spacing:.12em;margin-bottom:10px;display:flex;align-items:center;}
.panel-sec .p-h .spacer{flex:1;}
.ledger{display:flex;flex-direction:column;gap:8px;}
.ledger-item{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;}
.ledger-item .ic{margin-top:2px;}
.ledger-item .txt{color:var(--text-2);flex:1;}
.ledger-item .txt b{color:var(--text);font-weight:600;}
.char-mini{display:flex;align-items:center;gap:9px;padding:7px 0;}
.char-mini .av{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,#3f8c78,#2f6b5e);color:#fff;display:grid;place-items:center;font-size:12px;flex:0 0 auto;}
.char-mini .nm{font-size:13px;color:var(--text);font-weight:600;}
.char-mini .stt{font-size:11.5px;color:var(--text-3);}

/* 通用滚动条（深色） */
body.theme-dark ::-webkit-scrollbar{width:9px;height:9px;}
body.theme-dark ::-webkit-scrollbar-thumb{background:#2a323c;border-radius:10px;}
body.theme-dark ::-webkit-scrollbar-thumb:hover{background:#38424e;}

/* 浮层提示（校验详情） */
.tip{position:fixed;background:#0b0e12;border:1px solid var(--border-strong);border-radius:9px;padding:9px 12px;
  font-size:12px;color:var(--text);max-width:260px;box-shadow:var(--shadow-lg);z-index:99;line-height:1.5;}
.tip .tt{color:var(--danger);font-weight:600;margin-bottom:3px;font-size:11.5px;}

/* 空态占位（简版页面） */
.stub{border:1px dashed var(--border-strong);border-radius:14px;padding:40px;text-align:center;color:var(--text-3);background:var(--surface-2);}
.hidden{display:none!important;}

/* =====================================================================
   账户 / 订阅 / 积分（深色 · loomi 风：IDE 深底 + 渐变强调）
   ===================================================================== */
:root{ --grad:linear-gradient(135deg,#4db6a0 0%,#5b9bd6 55%,#7b6cf0 100%); }

/* ---- 登录页 ---- */
.auth-wrap{min-height:100vh;display:flex;background:#0d1014;}
.auth-hero{flex:1;position:relative;overflow:hidden;padding:56px;display:flex;flex-direction:column;justify-content:space-between;
  background:radial-gradient(1200px 500px at 10% 0%,rgba(123,108,240,.20),transparent 60%),radial-gradient(900px 500px at 90% 90%,rgba(77,182,160,.18),transparent 55%),#0b0e12;}
.auth-hero .glow{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(90px);opacity:.5;}
.auth-hero .g1{background:#7b6cf0;top:-80px;left:-60px;}
.auth-hero .g2{background:#4db6a0;bottom:-100px;right:-40px;}
.auth-hero .h-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:2;}
.auth-hero .h-brand .logo{width:42px;height:42px;border-radius:12px;background:var(--grad);display:grid;place-items:center;color:#fff;font-family:var(--font-serif);font-size:24px;font-weight:700;}
.auth-hero .h-brand .name{color:#fff;font-size:20px;font-weight:700;letter-spacing:.05em;}
.auth-hero .h-copy{position:relative;z-index:2;}
.auth-hero .h-copy h1{color:#fff;font-size:38px;line-height:1.25;font-weight:750;letter-spacing:.01em;}
.auth-hero .h-copy .grad-txt{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.auth-hero .h-copy p{color:#9aa6b2;font-size:15px;margin-top:16px;max-width:440px;line-height:1.8;}
.auth-hero .h-feats{display:flex;gap:22px;position:relative;z-index:2;color:#c7d0d8;font-size:13px;}
.auth-hero .h-feats .f{display:flex;align-items:center;gap:8px;}
.auth-hero .h-feats .f .ic{width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.08);display:grid;place-items:center;color:#4db6a0;}
.auth-panel{width:480px;flex:0 0 480px;background:#12171e;display:flex;align-items:center;justify-content:center;padding:40px;border-left:1px solid #202730;}
.auth-card{width:100%;max-width:360px;}
.auth-card h2{color:#fff;font-size:23px;margin-bottom:6px;}
.auth-card .sub{color:#7b8794;font-size:13.5px;margin-bottom:26px;}
.auth-tabs{display:flex;gap:24px;margin-bottom:22px;border-bottom:1px solid #232b34;}
.auth-tabs .t{padding:0 0 12px;color:#7b8794;font-size:14px;cursor:pointer;position:relative;font-weight:600;}
.auth-tabs .t.on{color:#fff;}
.auth-tabs .t.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--grad);border-radius:2px;}
.auth-field{margin-bottom:15px;}
.auth-field label{display:block;color:#8b97a3;font-size:12.5px;margin-bottom:7px;}
.auth-input{display:flex;align-items:center;gap:10px;background:#0e1319;border:1px solid #232b34;border-radius:10px;padding:0 13px;height:46px;transition:.15s;}
.auth-input:focus-within{border-color:#4db6a0;box-shadow:0 0 0 3px rgba(77,182,160,.15);}
.auth-input .ic{color:#5b6773;font-size:15px;}
.auth-input input{flex:1;background:transparent;border:none;outline:none;color:#e7ebef;font-size:14px;height:100%;font-family:var(--font);}
.auth-input .code-btn{color:#4db6a0;font-size:12.5px;cursor:pointer;white-space:nowrap;font-weight:600;}
.auth-btn{width:100%;height:47px;border:none;border-radius:11px;background:var(--grad);color:#fff;font-size:15px;font-weight:650;cursor:pointer;margin-top:6px;box-shadow:0 8px 24px rgba(91,155,214,.28);transition:.15s;}
.auth-btn:hover{filter:brightness(1.06);}
.auth-alt{display:flex;align-items:center;gap:12px;margin:22px 0;color:#5b6773;font-size:12px;}
.auth-alt:before,.auth-alt:after{content:"";flex:1;height:1px;background:#232b34;}
.auth-social{display:flex;gap:12px;}
.soc-btn{flex:1;height:46px;border-radius:10px;border:1px solid #232b34;background:#0e1319;color:#c7d0d8;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13.5px;cursor:pointer;}
.soc-btn:hover{border-color:#38424e;}
.soc-btn.wechat .ic{color:#3ec46d;}
.auth-foot{color:#5b6773;font-size:12px;margin-top:22px;text-align:center;line-height:1.7;}
.auth-foot a{color:#8b97a3;text-decoration:underline;}

/* ---- 订阅套餐卡 ---- */
.billing-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:4px;gap:3px;}
.billing-toggle button{border:none;background:transparent;color:var(--text-2);padding:8px 18px;border-radius:8px;font-size:13.5px;cursor:pointer;font-weight:600;}
.billing-toggle button.on{background:var(--grad);color:#fff;}
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch;}
.plan{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px 20px;display:flex;flex-direction:column;position:relative;}
.plan.featured{border-color:transparent;background:
  linear-gradient(var(--surface),var(--surface)) padding-box,
  var(--grad) border-box;border:1.5px solid transparent;box-shadow:0 16px 50px rgba(91,155,214,.16);}
.plan .p-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--grad);color:#fff;font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.05em;}
.plan .p-name{font-size:16px;font-weight:700;}
.plan .p-desc{font-size:12px;color:var(--text-3);margin-top:4px;min-height:32px;}
.plan .p-price{margin:14px 0 4px;display:flex;align-items:baseline;gap:4px;}
.plan .p-price .cur{font-size:16px;color:var(--text-2);}
.plan .p-price .num{font-size:34px;font-weight:750;letter-spacing:-.01em;}
.plan .p-price .per{font-size:13px;color:var(--text-3);}
.plan .p-credits{background:var(--surface-2);border-radius:9px;padding:9px 12px;font-size:12.5px;color:var(--text-2);margin:8px 0 16px;}
.plan .p-credits b{color:var(--accent-warm);font-size:15px;}
.plan .p-cta{height:42px;border-radius:10px;border:1px solid var(--border-strong);background:transparent;color:var(--text);font-weight:600;font-size:13.5px;cursor:pointer;transition:.15s;}
.plan .p-cta:hover{border-color:var(--brand);color:var(--brand);}
.plan.featured .p-cta{background:var(--grad);border-color:transparent;color:#fff;}
/* 当前/不可操作态：静默，不再像主按钮 (审计 P2) */
.plan .p-cta.current{background:var(--surface-2);border-color:var(--border);color:var(--text-3);cursor:default;}
.plan .p-cta.current:hover{border-color:var(--border);color:var(--text-3);}
.plan .p-feats{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:10px;font-size:12.5px;color:var(--text-2);}
.plan .p-feats li{display:flex;gap:9px;align-items:flex-start;line-height:1.5;}
.plan .p-feats li .ck{color:var(--brand);flex:0 0 auto;margin-top:1px;}
.plan .p-feats li.off{color:var(--text-3);opacity:.6;}

/* ---- 积分中心 ---- */
.cred-ring{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
  background:conic-gradient(#4db6a0 0 64%, var(--surface-2) 64% 100%);}
.cred-ring .inner{width:104px;height:104px;border-radius:50%;background:var(--surface);display:grid;place-items:center;text-align:center;}
.cred-ring .inner b{font-size:28px;font-weight:750;} .cred-ring .inner span{font-size:11px;color:var(--text-3);}
.usebar{display:flex;flex-direction:column;gap:11px;}
.usebar .u{display:flex;align-items:center;gap:11px;font-size:12.5px;}
.usebar .u .nm{width:96px;color:var(--text-2);}
.usebar .u .bar{flex:1;height:8px;background:var(--surface-2);border-radius:20px;overflow:hidden;}
.usebar .u .bar i{display:block;height:100%;border-radius:20px;}
.usebar .u .vl{width:78px;text-align:right;color:var(--text-3);}
.cost-cell{font-weight:600;color:var(--accent-warm);}

/* =====================================================================
   右上角账户 cluster（loomi 风：墨点 · 会员pill · 头像菜单）
   ===================================================================== */
.acct{display:flex;align-items:center;gap:10px;}
.acct .icon-btn{width:34px;height:34px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);
  display:grid;place-items:center;color:var(--text-2);cursor:pointer;font-size:15px;}
.acct .icon-btn:hover{color:var(--text);border-color:var(--border-strong);}
.credits-pill{display:flex;align-items:center;gap:6px;color:var(--text);font-weight:650;font-size:13.5px;
  padding:7px 12px;border-radius:20px;cursor:pointer;text-decoration:none;border:1px solid var(--border);background:var(--surface);}
.credits-pill .ic{color:var(--accent-warm);}
.credits-pill:hover{border-color:var(--accent-warm);}
.plan-pill{display:flex;align-items:center;gap:8px;background:#1c2128;color:#fff;border-radius:22px;
  padding:4px 4px 4px 13px;font-size:12.5px;font-weight:600;}
.plan-pill .up{background:var(--accent-warm);color:#fff;border-radius:16px;padding:5px 12px;font-size:12px;font-weight:650;text-decoration:none;}
.plan-pill .up:hover{filter:brightness(1.08);}
.avatar-wrap{position:relative;}
.avatar-btn{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;
  cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-serif);border:2px solid var(--surface);box-shadow:var(--shadow-sm);}
.user-menu{position:absolute;right:0;top:46px;width:236px;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;box-shadow:var(--shadow-lg);padding:7px;z-index:120;display:none;}
.user-menu.open{display:block;}
.user-menu .u-head{display:flex;align-items:center;gap:11px;padding:10px 10px 12px;border-bottom:1px solid var(--border);margin-bottom:6px;}
.user-menu .u-head .u-av{width:40px;height:40px;border-radius:11px;background:var(--grad);color:#fff;display:grid;place-items:center;font-family:var(--font-serif);font-size:17px;}
.user-menu .u-head b{font-size:14px;display:block;}
.user-menu .u-head span{font-size:11.5px;color:var(--text-3);}
.user-menu a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:var(--text-2);font-size:13.5px;text-decoration:none;}
.user-menu a .ic{width:16px;text-align:center;color:var(--text-3);}
.user-menu a:hover{background:var(--surface-2);color:var(--text);}
.user-menu a:hover .ic{color:var(--brand);}
.user-menu .u-sep{height:1px;background:var(--border);margin:6px 4px;}
.user-menu .u-credit{background:var(--surface-2);border-radius:9px;padding:9px 11px;margin:2px 2px 6px;font-size:12px;color:var(--text-2);display:flex;align-items:center;justify-content:space-between;}
.user-menu .u-credit b{color:var(--accent-warm);font-size:14px;}

/* 深色顶栏里的账户 cluster 适配（editor） */
body.theme-dark .plan-pill{background:#2a323c;}

/* loomi 风充值弹窗（橙色强调） */
.recharge{max-width:680px;}
.rc-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.rc-amt{position:relative;border:1.5px solid var(--border-strong);border-radius:11px;padding:14px 10px;text-align:center;cursor:pointer;transition:.15s;}
.rc-amt:hover{border-color:var(--accent-warm);}
.rc-amt.on{border-color:var(--accent-warm);background:var(--accent-warm-50);}
.rc-amt .a-num{font-size:20px;font-weight:750;}
.rc-amt .a-unit{font-size:11px;color:var(--text-3);}
.rc-amt .a-badge{position:absolute;top:-9px;right:-6px;background:var(--accent-warm);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;}
.rc-pay{background:var(--surface-2);border-radius:12px;padding:16px;}
.rc-pay .rc-to{font-size:12px;color:var(--text-3);}
.rc-pay .rc-big{font-size:26px;font-weight:750;margin:2px 0 14px;}
.pay-btn{width:100%;height:44px;border-radius:10px;border:none;background:var(--accent-warm);color:#fff;font-weight:650;font-size:14px;cursor:pointer;margin-bottom:9px;display:flex;align-items:center;justify-content:center;gap:8px;}
.pay-btn.alt{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);}

/* =====================================================================
   响应式 / 移动端（审计 P0）
   注入元素：.mobile-nav-btn 汉堡、.nav-scrim 遮罩、.ed-switch 编辑器分屏切换
   ===================================================================== */
.mobile-nav-btn,.nav-scrim,.ed-switch{display:none;}

/* ---- 统一图标（Lucide 内联 SVG，审计 P2）---- */
[data-icon]{display:inline-flex;align-items:center;justify-content:center;}
[data-icon] svg{width:1.05em;height:1.05em;}
.nav-item .ic[data-icon]{width:18px;}
.nav-item .ic[data-icon] svg{width:18px;height:18px;opacity:.9;}
.user-menu a .ic[data-icon] svg{width:16px;height:16px;}
.acct .icon-btn[data-icon] svg{width:17px;height:17px;}
.credits-pill .ic[data-icon] svg{width:15px;height:15px;}
.mobile-nav-btn svg{width:19px;height:19px;}
.ed-switch .i[data-icon] svg{width:17px;height:17px;}

/* ---- 平板：多列收敛为两列 ---- */
@media (max-width:1024px){
  .grid.c4{grid-template-columns:repeat(2,1fr);}
  .grid.c3{grid-template-columns:repeat(2,1fr);}
  .plans{grid-template-columns:repeat(2,1fr);}
  .content{padding:22px 20px 50px;}
}

/* ---- 手机：单列 + 抽屉侧栏 ---- */
@media (max-width:720px){
  /* 侧栏抽屉化 */
  .sidebar{position:fixed;top:0;left:0;z-index:300;transform:translateX(-100%);
    transition:transform .25s ease;box-shadow:0 0 40px rgba(0,0,0,.4);}
  body.nav-open .sidebar{transform:translateX(0);}
  .nav-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:250;opacity:0;pointer-events:none;transition:.25s;}
  body.nav-open .nav-scrim{opacity:1;pointer-events:auto;}
  .mobile-nav-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;
    border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:18px;cursor:pointer;flex:0 0 auto;}

  /* 顶栏精简 */
  .topbar{padding:0 14px;gap:10px;height:56px;position:sticky;}
  .topbar .crumb{display:none;}
  .topbar .title{font-size:16px;}
  /* 顶栏里页面级按钮在手机上收起，避免拥挤（保留账户 cluster 与主 CTA） */
  .topbar .btn:not(.primary):not(.mobile-keep){display:none;}
  .topbar .seg{display:none;}
  .acct .icon-btn,.acct .plan-pill,.acct .credits-pill{display:none;}  /* 账户信息收进头像菜单 */
  .acct .avatar-wrap{display:block;}
  .topbar .input{display:none;}   /* 顶栏搜索框收起 */
  /* 筛选/工具行换行，避免横向溢出 */
  .content > div[style*="display:flex"][style*="margin-bottom:20px"]{flex-wrap:wrap;}
  .seg{max-width:100%;overflow-x:auto;}

  /* 内容单列 */
  .content{padding:16px 14px 60px;}
  .grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr;}
  .plans{grid-template-columns:1fr;}
  .page-head{flex-wrap:wrap;gap:8px;}
  .page-head h1{font-size:19px;}

  /* 页内并排的 flex 两栏 → 堆叠 */
  .content > div[style*="display:flex"][style*="gap:20px"]{flex-direction:column;}
  div[style*="width:320px"]{width:100%!important;flex:1 1 auto!important;}

  /* 表格横向滚动兜底（ponytail: 滚动兜底，真要卡片化再说） */
  .card-b{overflow-x:auto;}
  table.tbl{min-width:560px;}

  /* 弹窗贴边 */
  .overlay{padding:12px;}
  .modal-b{padding:16px;}
  .rc-amounts{grid-template-columns:repeat(2,1fr);}
  #m-recharge .modal-b > div{grid-template-columns:1fr!important;}
  .modal.lg,.modal.recharge{max-width:100%;}

  /* 登录：隐藏 hero，表单占满 */
  .auth-hero{display:none;}
  .auth-panel{width:100%;flex:1;border-left:none;padding:28px 20px;}

  /* 立项步骤条可横滑 */
  .content > div[style*="align-items:center"][style*="font-size:13px"]{overflow-x:auto;white-space:nowrap;}

  /* ====== 编辑器：分屏切换 ====== */
  .editor-top{padding:0 12px;gap:8px;}
  .editor-top .chap{display:none;}
  .editor-top .model-select{display:none;}
  .e-left{position:fixed;top:52px;bottom:52px;left:0;z-index:200;width:80%;max-width:300px;
    transform:translateX(-100%);transition:transform .25s;}
  body.ed-left .e-left{transform:translateX(0);}
  .e-right{position:fixed;top:52px;bottom:52px;right:0;left:0;width:auto;flex:none;z-index:150;
    transform:translateX(100%);transition:transform .25s;}
  body.ed-chat .e-right{transform:translateX(0);}
  .e-center{width:100%;}
  /* 底部分屏切换条 */
  .ed-switch{display:flex;position:fixed;bottom:0;left:0;right:0;height:52px;z-index:210;
    background:#131820;border-top:1px solid var(--border);}
  .ed-switch button{flex:1;border:none;background:transparent;color:var(--text-2);font-size:12.5px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;}
  .ed-switch button.on{color:var(--brand);}
  .ed-switch button .i{font-size:16px;}
  .composer-scroll{padding-bottom:70px;}
}

/* ============ 弹窗 ============ */
.overlay{position:fixed;inset:0;background:rgba(6,9,12,.62);backdrop-filter:blur(3px);z-index:200;
  display:none;align-items:center;justify-content:center;padding:24px;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);
  width:100%;max-width:620px;max-height:86vh;overflow:hidden;display:flex;flex-direction:column;}
.modal.lg{max-width:760px;}
.modal-h{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}
.modal-h h3{font-size:16px;}
.modal-h .spacer{flex:1;}
.modal-h .x{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;cursor:pointer;color:var(--text-3);border:1px solid transparent;}
.modal-h .x:hover{background:var(--surface-2);color:var(--text);}
.modal-b{padding:20px;overflow-y:auto;}
.modal-f{padding:14px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--surface-2);}
.modal-f .spacer{flex:1;}

/* 分层去AI 选项 */
.layer-opt{display:flex;gap:13px;align-items:flex-start;padding:13px 14px;border:1px solid var(--border);border-radius:11px;margin-bottom:10px;cursor:pointer;transition:.15s;}
.layer-opt:hover{border-color:var(--brand);}
.layer-opt.on{border-color:var(--brand);background:var(--brand-50);}
.layer-opt .lv{width:30px;height:30px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;flex:0 0 auto;font-size:13px;}
.layer-opt .lt{font-weight:600;font-size:14px;}
.layer-opt .ld{font-size:12.5px;color:var(--text-2);margin-top:2px;line-height:1.6;}
.layer-opt .chk{margin-left:auto;color:var(--brand);font-size:16px;opacity:0;}
.layer-opt.on .chk{opacity:1;}

/* 五毒诊断条目 */
.diag{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--border);}
.diag:last-child{border-bottom:none;}
.diag .sev{width:44px;flex:0 0 auto;text-align:center;}
.diag .sev .lvl{font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;}
.diag .d-t{font-weight:600;font-size:13.5px;}
.diag .d-d{font-size:12.5px;color:var(--text-2);margin-top:3px;line-height:1.6;}
.diag .d-q{font-size:12px;color:var(--text-3);margin-top:5px;font-family:var(--font-serif);border-left:2px solid var(--border-strong);padding-left:9px;}

/* 朱雀检测进度环示意 */
.zq-score{display:flex;align-items:center;gap:16px;}
.zq-ring{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
  background:conic-gradient(var(--ok) 0 82%, var(--surface-2) 82% 100%);}
.zq-ring .inner{width:66px;height:66px;border-radius:50%;background:var(--surface);display:grid;place-items:center;text-align:center;}
.zq-ring .inner b{font-size:20px;} .zq-ring .inner span{font-size:10px;color:var(--text-3);}
