
:root{--reading-size:14px}html{background:var(--bg)}body{background:radial-gradient(ellipse at 0% 90%,var(--wash),transparent 55%),radial-gradient(ellipse at 90% 0%,var(--wash),transparent 55%),var(--bg);background-attachment:fixed;line-height:1.65}.topbar{background:#ffffff90;backdrop-filter:blur(25px);border-color:#ffffffcf}.topbar-inner{max-width:none;margin-left:224px;padding:16px 25px}.logo .mark{background:linear-gradient(135deg,var(--accent),var(--accent-b))}.logo .sub{display:none}.main{max-width:1800px;margin:0 18px 30px 244px;padding:0}.main .stack.narrow{max-width:none}.modes{position:fixed;left:14px;top:14px;bottom:14px;width:212px;max-width:none;margin:0;display:flex;flex-direction:column;gap:8px;padding:22px 12px;border-radius:18px;background:linear-gradient(135deg,#ffffffbb,#ffffff60);border:1px solid #ffffffcf;backdrop-filter:blur(24px);box-shadow:0 8px 32px #34506b0b;z-index:20}.side-brand{padding:7px 8px 30px;font-size:21px;font-weight:600;letter-spacing:1px}.side-brand small{display:block;font-size:12px;letter-spacing:0;color:var(--muted);font-weight:400}.mode-tab{flex:none;justify-content:flex-start;background:transparent;border-color:transparent;text-align:left}.mode-tab.active{background:linear-gradient(110deg,var(--accent),var(--accent-b));color:white;border-color:#ffffff70;box-shadow:0 6px 15px #45668f20}.side-label{font-size:12px;color:var(--muted);padding:22px 10px 5px}
.side-label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 10px 4px;
}
.side-label-row .side-label{padding:0}
.side-clear-btn{
  border:0;
  background:transparent;
  font:inherit;
  font-size:11px;
  color:var(--faint);
  cursor:pointer;
  padding:2px 6px;
  border-radius:6px;
}
.side-clear-btn:hover{color:var(--red);background:var(--red-bg)}
.history-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:2px;
  border-radius:10px;
}
.history-item:hover{background:rgba(255,255,255,.55)}
.history-del{
  width:28px;
  height:28px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--faint);
  font-size:18px;
  line-height:1;
  cursor:pointer;
  opacity:0;
  transition:opacity .15s,background .15s,color .15s;
}
.history-item:hover .history-del{opacity:1}
.history-del:hover{background:var(--red-bg);color:var(--red)}.task-link{display:block;width:100%;border:0;border-radius:9px;padding:10px;background:transparent;text-align:left;color:var(--text2);cursor:pointer;font:inherit}.task-link:hover{background:#ffffff99}.task-link small{display:block;color:var(--muted);font-size:11px}.side-bottom{margin-top:auto}.page-heading{padding:23px 26px;margin:16px 0;border:1px solid #ffffffc9;border-radius:18px;background:linear-gradient(110deg,#ffffffaa,#ffffff60);backdrop-filter:blur(24px)}.page-heading h1{font-size:28px;margin:0 0 4px;color:var(--text)}.page-heading p{color:var(--muted);margin:0}.card{background:linear-gradient(120deg,#ffffffed,#ffffffca);border:1px solid #ffffffd0;border-radius:16px;box-shadow:0 6px 25px #3854750b;overflow:hidden}.card-head{padding:16px 18px;font-size:15px;flex-wrap:wrap}.card-body{padding:18px}.card-empty,.placeholder{color:var(--muted);min-height:120px}.btn-primary{background:linear-gradient(110deg,var(--accent),var(--accent-b));border:1px solid #ffffff60;box-shadow:0 4px 10px #42557615}.btn{font-size:13px}.modal{background:var(--panel);max-height:90dvh;overflow:auto;border:1px solid #ffffffd9;box-shadow:0 25px 80px #152c4530}.modal-mask{background:#19304645;backdrop-filter:blur(8px);z-index:80}.login-mask{background:radial-gradient(ellipse at 10% 30%,var(--wash),transparent 70%),var(--bg);z-index:100}.login-box{background:#ffffffc9;border:1px solid #fff;box-shadow:0 20px 70px #38506a18;backdrop-filter:blur(24px)}textarea,input,select{color:var(--text);background:#ffffffc9;border-color:var(--border);font-family:inherit}textarea{font-size:14px}.login-box input{background:#ffffffdf}.theme-grid{margin:16px 0}.theme-opt{font:inherit;text-align:left;color:var(--text);background:var(--card);cursor:pointer}.theme-opt.active{border-color:var(--accent);background:var(--soft)}.setting-field{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0}.setting-field select{padding:8px;border-radius:8px;max-width:65%}.review-settings{display:flex;align-items:end;gap:15px;flex-wrap:wrap;padding:0 18px 18px}.review-settings>div{flex:1;min-width:190px}.review-settings textarea{width:100%;min-height:55px}.review-settings label{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:6px}.review-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.source-panel{padding:0;min-width:0}.source-tabs,.result-tabs{display:flex;align-items:center;gap:8px;padding:14px;border-bottom:1px solid var(--border2);flex-wrap:wrap}.result-tabs button.active,.source-tabs button.active{background:var(--soft3);color:var(--accent)}#sourceText{background:#fff;margin:15px;padding:25px;min-height:460px;max-height:780px;overflow:auto;color:#253047;font-size:var(--reading-size)}.source-paragraph{padding:9px 0;border-bottom:1px solid #edf0f5;white-space:pre-wrap;overflow-wrap:anywhere}.source-paragraph small{font-size:11px;color:#768295;display:block}.source-paragraph.highlight{background:#fff1c9;border-radius:5px}.pdf-frame{display:block;border:0;width:100%;height:730px;background:#e7ecf4}.results-grid,.results-grid.filled{display:block!important;min-width:0}.col-sum,.col-issue{width:100%!important;max-width:none!important}.results-grid .card{border-radius:0 0 15px 15px}.results-grid .card-body{padding:15px}.results-grid .issue-list,.results-grid.filled .issue-list{max-height:710px;min-height:200px;overflow:auto}.summary-body,.result-text,.issue-problem,.issue-original,.issue-fix{font-size:var(--reading-size)!important;line-height:1.8}.summary-body{max-height:780px!important}.issue{border:1px solid var(--border2);border-left:3px solid var(--accent);background:#ffffffdb;border-radius:12px;padding:15px;margin:10px 0}.issue-list{padding:0 15px}.issue-original{background:var(--soft);padding:10px;border-radius:8px}.issue-fix{padding:8px 10px;background:#f4f7fc;color:var(--text2)}.filter-row{flex-wrap:wrap}.counts-live{display:flex;gap:10px;padding:14px}.counts-live>span{flex:1;border-radius:10px;padding:10px;background:var(--soft);font-size:13px}.counts-live b{font-size:22px;margin-right:5px}.image-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.image-layout>.card:last-child{grid-column:1/-1}.upload-zone{background:#ffffff75;border-color:var(--border-strong)}.site-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.site-card{background:#ffffffb0;border:1px solid #ffffffdf}.site-acts{opacity:1}.action-row{display:flex;gap:10px;align-items:center;padding:0 18px 18px;flex-wrap:wrap}.source-message{padding:18px;color:var(--muted);font-size:13px}.modal-title{color:var(--text)}.export-row{flex-wrap:wrap}.source-panel [hidden]{display:none!important}.reading-note{padding:8px 15px;font-size:12px;color:var(--muted)}button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:1100px){.review-stage,.image-layout{grid-template-columns:1fr}.source-panel{order:0}.results-grid{order:1}.topbar-inner{margin-left:190px}.modes{width:175px}.main{margin-left:203px}#sourceText{max-height:420px;min-height:180px}.pdf-frame{height:500px}.hint{white-space:normal}}@media(max-width:700px){.modes{position:static;width:auto;flex-direction:row;margin:10px;padding:7px;border-radius:13px;gap:3px}.side-brand,.side-label,#recentTasks,.side-bottom{display:none}.mode-tab{flex:1;justify-content:center;padding:10px 5px;font-size:12px;gap:5px}.topbar-inner{margin:0;padding:12px}.main{margin:0 10px 20px}.page-heading{padding:18px}.page-heading h1{font-size:23px}.top-right{gap:5px}.status-pill{font-size:11px;padding:4px 7px}.logo{font-size:14px}.source-panel{min-width:0}.review-settings{display:block}.review-settings>div{margin-top:10px;min-width:0}.counts-live{gap:5px}.counts-live>span{padding:8px}.site-grid{grid-template-columns:1fr}.modal{max-width:calc(100vw - 24px);padding:20px}#sourceText{margin:9px;padding:16px}.card-head{padding:13px}.theme-grid{grid-template-columns:1fr 1fr}.image-layout{display:block}.image-layout>.card{margin-bottom:15px}}

/* 统一排版与视觉层级 */
body{
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:15px;line-height:1.7;letter-spacing:.01em
}
/* ===== 布局基准：以左侧导航栏为标准 ===== */
/* 侧栏: left=16 width=248 → 右缘 264；内容左=264+18=282，右=18 */
:root{
  --rail:16px;
  --rail-w:248px;
  --gap:16px;
  --content-l:280px;
  --content-r:16px;
  --content-t:16px;
  --content-b:16px;
}

/* ===== 顶栏已移除，操作块下沉到侧栏底部 ===== */
.topbar{display:none!important}
.topbar-inner{display:none!important}

.side-bottom{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.side-admin-btn{
  width:100%;
  min-height:40px;
  border:0;
  border-radius:12px;
  padding:9px 12px;
  font:inherit;
  font-size:13px;
  font-weight:650;
  color:#fff;
  cursor:pointer;
  background:linear-gradient(110deg,var(--accent),var(--accent-b));
  box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 28%,transparent);
  transition:filter .15s,transform .15s;
}
.side-admin-btn:hover{filter:brightness(1.06)}
.side-admin-btn:active{transform:translateY(1px)}
.side-ghost-btn{
  width:100%;
  min-height:36px;
  border:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  border-radius:11px;
  padding:7px 12px;
  font:inherit;
  font-size:12.5px;
  font-weight:600;
  color:var(--text2);
  cursor:pointer;
  background:linear-gradient(120deg,#ffffffb0,#ffffff70);
  transition:background .15s;
}
.side-ghost-btn:hover{background:rgba(255,255,255,.75)}
.side-status{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:7px 12px;
  border-radius:11px;
  background:linear-gradient(120deg,#ffffff90,#ffffff55);
  border:1px solid #ffffffb0;
  font-size:12.5px;
  font-weight:500;
  color:var(--muted);
}
.side-status .dot{width:7px;height:7px;flex:0 0 7px}
/* 管理员侧栏：保持「admin · 管理员」登录风格 */
.side-user-chip{
  width:100%;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);
  border-radius:12px;
  padding:9px 12px;
  font:inherit;
  font-size:13px;
  font-weight:650;
  color:var(--text);
  cursor:pointer;
  background:linear-gradient(120deg,#ffffffb8,#ffffff80);
  box-shadow:0 2px 10px rgba(40,60,90,.05);
  transition:background .15s,border-color .15s;
}
.side-user-chip:hover{
  background:rgba(255,255,255,.85);
  border-color:color-mix(in srgb,var(--accent) 55%,transparent);
}
/* 普通用户：头像 + 名字 + 状态点，单行 */
.side-user-merged{
  gap:10px;
}
.side-user-merged .side-avatar{
  flex:0 0 auto;
  font-size:16px;
  line-height:1;
}
.side-user-merged .side-name{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
}
.side-user-merged .side-live-dot{
  flex:0 0 8px;
  width:8px;
  height:8px;
  margin-left:auto;
}
/* 管理员面板内：设置 + 服务正常 */
.adm-extra-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 14px;
  padding:10px 12px;
  border-radius:12px;
  background:linear-gradient(120deg,#ffffffb0,#ffffff70);
  border:1px solid #ffffffc8;
}
.adm-extra-status{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:550;
  color:var(--muted);
}
.adm-extra-status .dot{width:8px;height:8px}
/* 侧栏与内容共用同一套边距变量 */
.modes{
  left:var(--rail);
  top:var(--rail);
  bottom:var(--rail);
  width:var(--rail-w);
  padding:18px 14px;
  border-radius:20px;
  gap:6px;
}
.main{
  max-width:none;
  margin:0 var(--content-r) 0 var(--content-l);
  padding:var(--content-t) 0 var(--content-b);
}
.side-brand{padding:4px 6px 16px}
.side-brand-row{display:flex;align-items:center;gap:10px;min-width:0}
.side-brand-mark{
  flex:0 0 36px;
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent-b));
  box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 28%,transparent);
}
.side-brand-text{min-width:0;display:flex;flex-direction:column;gap:1px}
.side-brand-title{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif;
  font-size:15px;
  font-weight:750;
  letter-spacing:-.02em;
  line-height:1.15;
  color:var(--text);
  white-space:nowrap;
}
.side-brand-sub{
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:10.5px;
  font-weight:500;
  letter-spacing:.04em;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.mode-tab{min-height:44px;padding:0 14px;border-radius:12px;font-size:14px;font-weight:600}
.mode-tab .icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--soft);color:var(--accent);text-align:center;font-size:12px;font-weight:750}
.mode-tab.active .icon{background:rgba(255,255,255,.2);color:#fff}
.side-label{padding:16px 10px 4px;font-size:11px;letter-spacing:.08em;color:var(--muted)}
.task-link{padding:9px 10px;border-radius:10px;line-height:1.4}
.modes{overflow:hidden}
.history-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 6px 6px;padding:3px;border-radius:10px;background:var(--soft)}
.history-filters button{height:26px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:11px;cursor:pointer}
.history-filters button.active{background:rgba(255,255,255,.9);color:var(--text);font-weight:650;box-shadow:0 1px 5px rgba(45,66,88,.1)}
#unifiedHistory{min-height:40px;overflow:auto;flex:1;padding:0 4px 8px}
.history-empty{padding:10px 12px;color:var(--faint);font-size:12px}
.history-record{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 9px}
.history-record>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--text2)}
.history-record>time{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
html,body{margin:0;padding:0;min-height:100%;height:auto}
html{
  background-color:var(--bg)!important;
  background-image:none!important;
}
body{
  min-height:100dvh;
  overflow-x:hidden;
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse at 0% 90%,var(--wash),transparent 55%),
    radial-gradient(ellipse at 90% 0%,var(--wash),transparent 55%);
  background-repeat:no-repeat;
  background-size:100% 100%;
  background-attachment:fixed;
}
/* 卡片与页面底色衔接，避免底部露出白块 */
.card,.results-grid .card,.col-sum>.card,.col-issue>.card{
  background-color:color-mix(in srgb,var(--card) 92%,var(--bg));
}
.tab-content{width:100%;max-width:1560px;margin:0 auto}
/* 图像检测与文档审阅共用主内容全宽，左右边距一致 */
.main .stack.narrow{max-width:none;margin:0}
.page-heading{max-width:1560px;margin:14px auto 12px;padding:18px 22px;text-align:center;border-radius:18px}
.page-heading h1{font-size:26px;line-height:1.25;font-weight:700;letter-spacing:-.025em;margin:0 0 4px}
.page-heading p{font-size:13px;letter-spacing:.04em}
.stack{gap:12px}
.card{border-radius:16px;box-shadow:0 6px 22px rgba(50,72,96,.06)}
.card-head{min-height:46px;padding:0 16px;font-size:14px;font-weight:650;letter-spacing:.01em}
.card-head::before{content:"";width:3px;height:14px;flex:0 0 3px;border-radius:99px;background:linear-gradient(180deg,var(--accent),var(--accent-b));box-shadow:0 3px 9px color-mix(in srgb,var(--accent) 22%,transparent)}
.card-head .hint{font-size:11.5px;line-height:1.45}
/* 说明性小字：上传/审阅提示 */
#selectionHint,
.action-row .hint,
.upload-hint{
  font-size:11px!important;
  font-weight:400!important;
  color:var(--faint)!important;
  letter-spacing:.02em;
  line-height:1.5;
}
.card-body{padding:14px 16px}
.upload-zone{min-height:132px;display:flex;align-items:center;justify-content:center;border-radius:13px;text-align:center}
.upload-zone.big{min-height:200px;padding:28px 20px}
.upload-icon{width:44px;height:44px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(135deg,var(--soft3),var(--soft));color:var(--accent);font-size:16px;font-weight:750;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 15%,transparent)}.upload-text{font-size:14px;font-weight:600}.upload-hint{margin-top:4px;font-size:11.5px}
.review-settings{padding:2px 16px 14px;gap:12px}.review-settings label{font-size:12.5px;font-weight:600;margin-bottom:6px}
.review-settings textarea{min-height:52px;padding:9px 11px;border-radius:10px;line-height:1.55}
.action-row{justify-content:center;padding:0 16px 16px;gap:8px}.action-row .btn-primary{min-width:112px;min-height:36px;font-size:13px;font-weight:650}
.review-stage{grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);gap:12px}
.source-tabs,.result-tabs{min-height:46px;padding:7px 12px;gap:6px}
.source-tabs .btn,.result-tabs .btn{min-height:32px;padding:5px 11px;border-radius:9px;font-weight:600}
.source-tabs .hint{margin-left:auto;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.pdf-shell{min-height:480px}
.results-grid .card{border-radius:0 0 14px 14px}
.counts-live{padding:10px 12px;gap:8px}.counts-live>span{text-align:center;padding:9px;border-radius:10px}.counts-live b{display:block;font-size:20px;line-height:1.1;margin:0 0 2px}
.filter-row{padding-left:12px;padding-right:12px;gap:6px}.chip{border-radius:999px;padding:5px 10px;font-size:12.5px}
.issue-list{padding:2px 12px 12px}.issue{padding:12px;border-radius:11px;margin:8px 0}
.btn{border-radius:9px;min-height:32px;padding:5px 11px;font-family:inherit;font-weight:550}
textarea,input,select{font-size:13.5px;border-radius:10px}
.modal{border-radius:22px;padding:24px}.modal-title{font-size:18px;font-weight:700}
.login-mask{align-items:center;justify-content:center;padding:24px}
.login-box{width:min(420px,calc(100vw - 32px));padding:40px 36px;border-radius:24px}
.login-title{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:26px;font-weight:700;letter-spacing:-.03em}
.login-sub{font-size:14px;letter-spacing:.03em;margin:8px 0 28px}
.login-box input{height:50px;padding:0 16px;margin-bottom:14px;border-radius:12px;font-size:15px}
.password-wrap input{padding-right:54px}.password-toggle{right:14px;margin-top:-6px}
/* 隐藏浏览器原生密码可见性眼睛，避免与自定义按钮叠成两个图标 */
.login-box input::-ms-reveal,
.login-box input::-ms-clear,
.password-wrap input::-ms-reveal,
.password-wrap input::-ms-clear{display:none!important;visibility:hidden!important}
.login-box .btn-primary{height:48px;margin-top:6px;font-size:15px;font-weight:650;letter-spacing:.08em}
.login-switch{margin-top:18px;font-size:13.5px}
.login-err{font-size:13px;margin-top:10px}
@media(max-width:1100px){.topbar-inner{margin-left:230px}.main{margin-left:236px;margin-right:16px}.modes{width:198px;padding:18px 12px}.review-stage{grid-template-columns:1fr}.tab-content,.page-heading{max-width:920px}.pdf-shell{min-height:460px}}
@media(max-width:700px){body{font-size:14px}.topbar{min-height:58px}.topbar-inner{margin:0;padding:10px 14px}.main{margin:0 10px 28px}.modes{margin:10px;min-height:50px}.page-heading{margin:12px 0;padding:20px 16px;border-radius:17px}.page-heading h1{font-size:24px}.page-heading p{font-size:12px}.card{border-radius:16px}.card-head{min-height:50px;padding:0 14px;font-size:14px}.card-head .hint{width:100%;margin:0 0 10px}.card-body{padding:14px}.review-settings{padding:0 14px 16px}.source-tabs .hint{order:3;max-width:100%;width:100%;text-align:left}.pdf-shell{min-height:360px}.login-box{padding:30px 24px}}

/* 文档审阅回归源码的双栏结构：总结在左，问题在右 */
.results-grid,.results-grid.filled{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:stretch;
  margin-top:12px;
}
.col-sum,.col-issue{width:auto!important;max-width:none!important;min-width:0;display:flex}
.col-sum>.card,.col-issue>.card{width:100%;height:100%;border-radius:16px}
#summaryCard,#issueCard{min-height:420px}
.summary-body,.results-grid .issue-list,.results-grid.filled .issue-list{max-height:720px;overflow:auto}
@media(max-width:900px){.results-grid,.results-grid.filled{grid-template-columns:1fr}.col-sum>.card,.col-issue>.card{min-height:0}}
.image-layout>.card:last-child{grid-column:auto}
#tab-image .image-layout.image-results-ready{height:calc(100dvh - 120px);min-height:560px;align-items:stretch}
#tab-image .image-results-ready>#imageResultCard{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#tab-image .image-results-ready>#imageResultCard .result-text{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}
#tab-image .image-results-ready>#imageResultCard .voice-row{flex:0 0 auto}
#tab-image .image-results-ready>#imageInputCard{height:100%;overflow:auto}

/* 图像检测：与文档审阅结果一致的满页双栏（等高、铺满、内部滚动） */
#tab-image .stack.narrow{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:stretch;
  height:calc(100dvh - var(--rail) * 2);
  min-height:520px;
}
#tab-image #imageInputCard,
#tab-image #imageResultCard{
  display:flex;
  flex-direction:column;
  min-height:0;
  min-width:0;
  height:100%;
  overflow:hidden;
}
#tab-image #imageInputCard{grid-column:1}
#tab-image #imageResultCard{grid-column:2}
#tab-image .image-layout>.card:last-child{grid-column:auto}
#tab-image #imageInputCard .card-body{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
  overflow:auto;
}
#tab-image #imageInputCard .upload-zone.big{
  flex:1;
  min-height:200px;
}
#tab-image #resultText,
#tab-image #placeholder{
  flex:1;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-right:6px;
  scrollbar-gutter:stable;
}
#tab-image #placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
#tab-image .voice-row{flex:0 0 auto}
@media(max-width:1100px){
  #tab-image .stack.narrow{
    grid-template-columns:1fr;
    height:auto;
    min-height:0;
  }
  #tab-image #imageInputCard,
  #tab-image #imageResultCard{grid-column:auto;height:auto;min-height:320px}
  #tab-image #imageResultCard{min-height:420px;max-height:70dvh}
}
#tab-image #resultText::-webkit-scrollbar,
#tab-image .result-text::-webkit-scrollbar,
#tab-review .summary-body::-webkit-scrollbar,
#tab-review .issue-list::-webkit-scrollbar{width:10px}
#tab-image #resultText::-webkit-scrollbar-track,
#tab-image .result-text::-webkit-scrollbar-track,
#tab-review .summary-body::-webkit-scrollbar-track,
#tab-review .issue-list::-webkit-scrollbar-track{
  background:transparent;border-radius:99px
}
#tab-image #resultText::-webkit-scrollbar-thumb,
#tab-image .result-text::-webkit-scrollbar-thumb,
#tab-review .summary-body::-webkit-scrollbar-thumb,
#tab-review .issue-list::-webkit-scrollbar-thumb{
  background:color-mix(in srgb,var(--thumb) 80%,transparent);
  border-radius:99px;border:2px solid transparent;background-clip:content-box
}
#tab-image #resultText::-webkit-scrollbar-thumb:hover,
#tab-image .result-text::-webkit-scrollbar-thumb:hover,
#tab-review .summary-body::-webkit-scrollbar-thumb:hover,
#tab-review .issue-list::-webkit-scrollbar-thumb:hover{background:var(--thumb-h);background-clip:content-box}
#tab-image #resultText,
#tab-image .result-text,
#tab-review .summary-body,
#tab-review .issue-list{scrollbar-width:thin;scrollbar-color:var(--thumb) transparent}
@media(max-width:700px){.history-filters,#unifiedHistory{display:none}}
.summary-body,.result-text,.issue-problem,.issue-original,.issue-fix{line-height:1.72!important}
.results-grid{scroll-margin-top:76px}
/* 审阅结果：保留上传栏；结果区高度与侧栏对齐（上下各 --rail） */
#tab-review .stack.results-ready{
  gap:12px;
}
#tab-review .stack.results-ready .results-grid{
  height:calc(100dvh - var(--rail) * 2);
  min-height:480px;
  margin-top:0;
  scroll-margin-top:var(--rail);
}
#tab-review .stack.results-ready .col-sum,
#tab-review .stack.results-ready .col-issue{
  height:100%;
  min-height:0;
  overflow:hidden;
}
#tab-review .stack.results-ready #summaryCard,
#tab-review .stack.results-ready #issueCard{
  height:100%!important;
  min-height:0;
  max-height:100%;
  overflow:hidden;
}
#tab-review .stack.results-ready .summary-body,
#tab-review .stack.results-ready .issue-list{
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
#tab-review .stack.results-ready::after{content:none;display:none}
.main:has(#tab-review .stack.results-ready){
  padding-top:var(--rail);
  padding-bottom:var(--rail);
  margin-bottom:0;
}
@media(max-width:900px){#tab-review .stack.results-ready .results-grid{height:auto;min-height:0}#tab-review .stack.results-ready .col-sum,#tab-review .stack.results-ready .col-issue{height:auto}#tab-image .image-layout.image-results-ready{height:auto;min-height:0}#tab-image .image-results-ready>#imageResultCard{height:auto;min-height:420px;max-height:70dvh}}

html[data-theme="glacier"]{--bg:#edf4fc;--wash:#a9c9f299;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#182e4b;--text2:#182e4b;--muted:#5a7190;--faint:#5a7190;--accent:#2364cc;--accent-b:#518de9;--border:#cdd7e5;--border2:#e0e6ed;--border-strong:#aebed2;--soft:#edf2f780;--soft2:#e7edf5;--soft3:#e1eafa;--red:#be4048;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#b6c5d5;--thumb-h:#8b9eb6;--topbar:#ffffff99;--loginA:#edf4fc;--loginB:#ffffff;--loginC:#edf4fc;}
html[data-theme="jade"]{--bg:#eef5f1;--wash:#a3cbbb80;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#203d36;--text2:#203d36;--muted:#617d73;--faint:#617d73;--accent:#237564;--accent-b:#4c9d88;--border:#cdd7e5;--border2:#e0e6ed;--border-strong:#aebed2;--soft:#edf2f780;--soft2:#e7edf5;--soft3:#e1eafa;--red:#be4048;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#b6c5d5;--thumb-h:#8b9eb6;--topbar:#ffffff99;--loginA:#eef5f1;--loginB:#ffffff;--loginC:#eef5f1;}
html[data-theme="champagne"]{--bg:#f7f4ed;--wash:#d9c8a882;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#363b43;--text2:#363b43;--muted:#7e7a71;--faint:#7e7a71;--accent:#374f71;--accent-b:#6d819b;--border:#cdd7e5;--border2:#e0e6ed;--border-strong:#aebed2;--soft:#edf2f780;--soft2:#e7edf5;--soft3:#e1eafa;--red:#be4048;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#b6c5d5;--thumb-h:#8b9eb6;--topbar:#ffffff99;--loginA:#f7f4ed;--loginB:#ffffff;--loginC:#f7f4ed;}
html[data-theme="silver"]{--bg:#f0f2f5;--wash:#bbc6d27a;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#25303e;--text2:#25303e;--muted:#697587;--faint:#697587;--accent:#3e526d;--accent-b:#74869f;--border:#cdd7e5;--border2:#e0e6ed;--border-strong:#aebed2;--soft:#edf2f780;--soft2:#e7edf5;--soft3:#e1eafa;--red:#be4048;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#b6c5d5;--thumb-h:#8b9eb6;--topbar:#ffffff99;--loginA:#f0f2f5;--loginB:#ffffff;--loginC:#f0f2f5;}
html[data-theme="violet"]{--bg:#edf0ff;--wash:#b4b9fa99;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#262e52;--text2:#262e52;--muted:#6c7398;--faint:#6c7398;--accent:#5354da;--accent-b:#8882f0;--border:#cdd7e5;--border2:#e0e6ed;--border-strong:#aebed2;--soft:#edf2f780;--soft2:#e7edf5;--soft3:#e1eafa;--red:#be4048;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#b6c5d5;--thumb-h:#8b9eb6;--topbar:#ffffff99;--loginA:#edf0ff;--loginB:#ffffff;--loginC:#edf0ff;}#pdfRegion[hidden],.col-sum[hidden],.col-issue[hidden]{display:none!important}#pdfToolbar{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:#ffffffa0;flex-wrap:wrap}#pdfToolbar input{width:56px;padding:4px;text-align:center;border:1px solid var(--border);border-radius:5px}#pdfToolbar select,#pdfToolbar button{padding:5px 9px;border:1px solid var(--border);border-radius:5px;background:white;color:var(--text)}.pdf-shell{position:relative;height:720px;background:#e3e9f1;overflow:hidden}#pdfContainer{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scroll-behavior:auto}#pdfEmpty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:25px;text-align:center;color:#5b6b81;background:#edf1f7;line-height:1.8}#pdfEmpty[hidden]{display:none}#pdfViewer .page{margin:14px auto!important;box-shadow:0 3px 10px #1b34451a}#pdfViewer *{box-sizing:content-box}#pdfToolbar button{cursor:pointer}.theme-opt{text-align:left}.theme-opt:hover{border-color:var(--accent)}@media(max-width:1100px){.pdf-shell{height:570px}}@media(max-width:700px){.pdf-shell{height:480px}.source-tabs .hint{width:100%;overflow-wrap:anywhere}}

/* ===== 手机端适配（覆盖前面所有 700px 规则）===== */
@media (max-width:700px){
  html,body{height:auto;min-height:100%}
  body{
    font-size:14px;
    overflow-x:hidden;
    -webkit-text-size-adjust:100%;
  }

  /* 顶部导航条：替换桌面左侧固定栏 */
  .modes{
    position:sticky!important;
    left:auto!important;
    top:0!important;
    right:auto!important;
    bottom:auto!important;
    width:auto!important;
    max-width:none;
    height:auto;
    margin:0!important;
    padding:calc(8px + env(safe-area-inset-top)) 10px 8px!important;
    border-radius:0 0 16px 16px;
    border-left:0;
    border-right:0;
    border-top:0;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 8px;
    overflow:visible!important;
    z-index:40;
    box-shadow:0 8px 24px rgba(40,60,90,.08);
  }

  .side-brand{
    display:flex!important;
    order:0;
    flex:1 1 auto;
    width:100%;
    padding:0 2px 4px;
    gap:8px;
  }
  .side-brand-user{max-width:46%}
  .side-brand-user .side-brand-user-btn .side-name{max-width:8ch}
  .side-section-head,.side-label,.side-label-row{display:none!important}
  #recentTasks{display:none!important}

  /* 模式切换：横向三等分，与账号同行 */
  .modes>.mode-tab,
  .modes .mode-tab{
    order:1;
    flex:1 1 0;
    min-width:0;
    min-height:44px;
    justify-content:center;
    padding:8px 4px;
    border-radius:12px;
    font-size:13px;
    gap:4px;
    text-align:center;
  }
  .modes .mode-tab .icon{width:22px;height:22px;font-size:11px}

  /* 历史记录：顶栏下横向滚动，不再塞进侧栏 */
  .history-filters{
    order:3;
    flex:1 1 100%;
    display:flex!important;
    grid-template-columns:none;
    margin:0;
    padding:0;
    background:transparent;
    gap:6px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .history-filters::-webkit-scrollbar{display:none}
  .history-filters button{
    flex:0 0 auto;
    min-height:30px;
    padding:0 12px;
    border-radius:999px;
    background:var(--soft);
    font-size:12px;
  }
  .history-filters button.active{
    background:rgba(255,255,255,.92);
    color:var(--text);
  }

  #unifiedHistory{
    order:4;
    flex:1 1 100%;
    display:flex!important;
    flex-direction:row;
    flex:1 1 auto;
    gap:6px;
    min-height:0;
    max-height:none;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0 0 2px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  #unifiedHistory::-webkit-scrollbar{display:none}
  .history-empty{display:none}
  .history-record{
    display:flex;
    flex:0 0 auto;
    max-width:70vw;
    grid-template-columns:none;
    gap:6px;
    margin:0;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.72);
    border:1px solid #fff;
    font-size:12px;
    white-space:nowrap;
  }
  .history-record>span{max-width:42vw}
  .history-record>time{display:none}
  .history-del{display:none}
  .task-link{
    display:inline-flex;
    align-items:center;
    max-width:70vw;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.72);
    border:1px solid #fff;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* 底部账号区：顶栏右侧一行 */
  .side-bottom{
    order:2;
    display:flex!important;
    flex:0 0 auto;
    align-items:center;
    margin:0 0 0 auto!important;
    width:auto;
    max-width:46%;
    gap:0;
  }
  .side-bottom .side-user-chip,
  .side-bottom .side-user-merged{
    width:auto;
    max-width:100%;
    min-height:40px;
    padding:8px 10px;
    border-radius:999px;
    font-size:12.5px;
  }
  .side-bottom .side-user-merged .side-avatar{font-size:15px}
  .side-bottom .side-user-merged .side-name{max-width:28vw}
  .side-bottom .side-ghost-btn{
    display:none;
  }
  .side-bottom .side-status{
    display:none;
  }
  /* 未登录时仍要能点设置 */
  .side-bottom .side-ghost-btn:only-child{
    display:inline-flex;
  }

  /* 主内容：全宽 + 顶栏下留白 */
  .main{
    margin:0!important;
    padding:12px 12px calc(28px + env(safe-area-inset-bottom))!important;
  }
  .main:has(#tab-review .stack.results-ready){
    padding-top:12px!important;
    padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;
  }
  .tab-content,.page-heading{max-width:none}
  .page-heading{
    margin:0 0 12px!important;
    padding:16px 14px!important;
    border-radius:16px;
    text-align:left;
  }
  .page-heading h1{font-size:20px;letter-spacing:-.02em}
  .page-heading p{font-size:12px;line-height:1.5}

  .card{border-radius:14px}
  .card-head{
    min-height:48px;
    padding:10px 14px;
    font-size:14px;
  }
  .card-body{padding:12px 14px}
  .card-empty,.placeholder{min-height:88px}

  /* 按钮/输入：加大点按区域 */
  .btn,.btn-primary,.btn-ghost,.btn-sm{
    min-height:40px;
    padding:8px 14px;
    font-size:13.5px;
  }
  .action-row{padding:0 14px 14px;gap:8px}
  .action-row .btn-primary{width:100%;min-height:44px}
  textarea,input[type="text"],input[type="password"],input[type="search"],select{
    font-size:16px; /* 避免 iOS 聚焦自动放大 */
    min-height:42px;
  }
  .review-settings{display:block;padding:0 14px 14px}
  .review-settings>div{margin-top:10px;min-width:0}
  .review-settings textarea{min-height:64px;width:100%}

  .upload-zone{min-height:120px;border-radius:12px}
  .upload-zone.big{min-height:150px;padding:20px 14px}
  .upload-text{font-size:13.5px;line-height:1.45}
  .upload-hint{font-size:11px;line-height:1.4}

  /* 结果双栏 → 单栏 */
  .results-grid,
  .results-grid.filled{
    grid-template-columns:1fr!important;
    gap:10px;
    height:auto!important;
    min-height:0!important;
    margin-top:10px;
  }
  .col-sum,.col-issue{height:auto!important;min-height:0}
  .col-sum>.card,.col-issue>.card{min-height:0;height:auto!important;max-height:none!important}
  #summaryCard,#issueCard{min-height:0}
  .summary-body,
  .results-grid .issue-list,
  .results-grid.filled .issue-list{
    max-height:none!important;
    min-height:0!important;
    overflow:visible!important;
  }
  #tab-review .stack.results-ready .results-grid{height:auto!important;min-height:0!important}
  #tab-review .stack.results-ready #summaryCard,
  #tab-review .stack.results-ready #issueCard{height:auto!important;max-height:none!important}

  .image-layout,
  #tab-image .stack.narrow{
    display:block!important;
    height:auto!important;
    min-height:0!important;
  }
  #tab-image .image-layout.image-results-ready,
  #tab-image .image-results-ready>#imageResultCard,
  #tab-image .image-results-ready>#imageResultCard .result-text,
  #tab-image .image-results-ready>#imageInputCard{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  #tab-image .image-layout>.card{margin-bottom:10px}
  .image-layout>.card:last-child{grid-column:auto}

  .counts-live{padding:10px;gap:6px}
  .counts-live>span{padding:8px 6px;font-size:12px}
  .counts-live b{font-size:18px}
  .filter-row{padding-left:10px;padding-right:10px;gap:5px}
  .chip{padding:7px 11px;font-size:12px}
  .issue{padding:12px;margin:8px 0}
  .issue-list{padding:0 10px 12px}

  .site-grid{grid-template-columns:1fr}
  .theme-grid{grid-template-columns:1fr 1fr;gap:8px}

  /* 弹窗：全屏友好 */
  .modal-mask{padding:12px;align-items:flex-end}
  .modal{
    width:100%;
    max-width:none;
    max-height:min(88dvh, calc(100dvh - env(safe-area-inset-top) - 24px));
    padding:18px 16px calc(18px + env(safe-area-inset-bottom));
    border-radius:18px 18px 14px 14px;
  }
  .modal-title{font-size:16px;margin-bottom:10px}
  .login-mask{padding:16px;align-items:center}
  .login-box{
    width:min(400px, calc(100vw - 24px));
    padding:32px 22px;
    border-radius:20px;
  }
  .login-title{font-size:22px!important}
  .login-sub{font-size:13px!important;margin-bottom:22px!important}
  .login-box input{height:48px;font-size:16px}
  .login-box .btn-primary{height:48px;font-size:15px}
  .login-switch{font-size:13px}
  .login-box .btn-primary{height:46px;width:100%}

  .pdf-shell{height:52vh;min-height:280px}
  #sourceText{
    margin:8px;
    padding:14px;
    min-height:160px;
    max-height:50vh;
  }
  .pdf-frame{height:50vh;min-height:280px}
  .source-tabs .hint,
  .result-tabs .hint{
    order:3;
    max-width:100%;
    width:100%;
    margin-left:0;
    text-align:left;
    white-space:normal;
  }
  .export-row{gap:8px}
  .export-row .btn{flex:1 1 auto}

  /* 进度条与提示 */
  .review-progress .card-body{padding:12px 14px}
  .prog-text{font-size:13px}

  /* 防止横滑 */
  .stack{overflow-x:hidden}
  .tab-content{overflow-x:hidden}
}

/* 更窄屏（小屏手机） */
@media (max-width:380px){
  .modes{padding-left:8px!important;padding-right:8px!important}
  .modes .mode-tab{font-size:12px;padding:8px 4px}
  .modes .mode-tab .icon{display:none}
  .side-bottom{max-width:38%}
  .side-bottom .side-user-merged .side-name{max-width:22vw}
  .page-heading h1{font-size:18px}
  .theme-grid{grid-template-columns:1fr}
}

/* 横屏手机：保留可用密度 */
@media (max-width:900px) and (orientation:landscape) and (max-height:500px){
  .modes{padding-top:6px!important;padding-bottom:6px!important}
  .page-heading{display:none}
  .pdf-shell{height:70vh;min-height:200px}
  #tab-image .image-layout.image-results-ready>#imageResultCard .result-text{max-height:50vh}
}

/* ===== 侧栏重设计：标题 / 导航 / 历史 / 底部账号 ===== */
/* ===== 侧栏：克制标题 + 清晰历史 ===== */
.side-brand{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px 6px 16px;
  min-width:0;
}
.side-brand-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.side-brand-title{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC",sans-serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.2;
  color:var(--text);
  white-space:nowrap;
}
.side-brand-sub{
  font-size:11.5px;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--muted);
  white-space:nowrap;
}
.side-brand-user{
  flex:0 0 auto;
  min-width:0;
  max-width:48%;
  overflow:hidden;
}
.side-brand-user .side-brand-user-btn{
  width:auto;
  max-width:100%;
  min-height:32px;
  padding:4px 6px;
  gap:6px;
  font-size:12.5px;
  overflow:hidden;
}
.side-brand-user .side-name{
  max-width:7.5em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:block;
  direction:ltr;
  unicode-bidi:plaintext;
}

.modes .mode-tab{
  min-height:44px;
  padding:0 14px;
  border-radius:12px;
  font-size:14.5px;
  font-weight:600;
}
.modes .mode-tab .icon{display:none!important}

.side-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 10px 8px;
  margin-top:2px;
  font-size:12.5px;
  font-weight:600;
  color:var(--muted);
}
.side-clear-btn{
  font-size:12px;
  padding:2px 6px;
  color:var(--faint);
  border-radius:6px;
}
.side-clear-btn:hover{color:var(--red);background:var(--red-bg)}

.history-filters{
  display:flex;
  gap:4px;
  margin:0 6px 8px;
  padding:3px;
  border-radius:10px;
  background:var(--soft);
}
.history-filters button{
  flex:1;
  height:28px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--muted);
  font:inherit;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
.history-filters button.active{
  background:rgba(255,255,255,.95);
  color:var(--text);
  box-shadow:0 1px 4px rgba(40,60,90,.08);
}

.history-list-box{
  flex:1 1 auto;
  min-height:60px;
  overflow:auto;
  overscroll-behavior:contain;
  padding:0 6px 8px;
}

.side-hist-row{
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:4px;
}
.side-hist-main{
  flex:1 1 auto;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  border:0;
  border-radius:10px;
  padding:10px 10px;
  margin:0;
  background:transparent;
  font:inherit;
  text-align:left;
  cursor:pointer;
  color:var(--text);
}
.side-hist-main:hover{background:rgba(255,255,255,.55)}
.side-hist-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
  font-weight:500;
  color:var(--text2);
  line-height:1.35;
}
.side-hist-time{
  flex:0 0 auto;
  font-size:11.5px;
  font-weight:500;
  color:var(--muted);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.side-hist-del{
  flex:0 0 28px;
  width:28px;
  height:28px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--faint);
  font-size:18px;
  line-height:1;
  cursor:pointer;
  opacity:0;
  transition:opacity .12s;
}
.side-hist-row:hover .side-hist-del{opacity:1}
.side-hist-del:hover{background:var(--red-bg);color:var(--red)}

.history-empty{
  padding:12px 8px;
  color:var(--faint);
  font-size:12.5px;
}

.side-bottom{
  margin-top:auto;
  padding-top:8px;
  display:none!important;
}
.side-user-chip,
.side-user-merged,
.side-bottom .side-user-chip,
.side-bottom .side-user-merged{
  width:100%!important;
  max-width:none!important;
  min-height:36px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  border:0!important;
  border-radius:0!important;
  padding:6px 8px!important;
  margin:0!important;
  font:inherit;
  font-size:14px!important;
  font-weight:600!important;
  color:var(--text);
  cursor:pointer;
  background:transparent!important;
  box-shadow:none!important;
}
.side-user-chip:hover,
.side-user-merged:hover,
.side-bottom .side-user-chip:hover,
.side-bottom .side-user-merged:hover{background:transparent!important;opacity:.75}
.side-user-merged .side-avatar,
.side-bottom .side-user-merged .side-avatar{
  flex:0 0 auto!important;
  font-size:18px!important;
  line-height:1;
}
.side-user-merged .side-name,
.side-bottom .side-user-merged .side-name,
.side-brand-user .side-name{
  flex:0 1 auto!important;
  min-width:0;
  max-width:7.5em;
  overflow:hidden!important;
  overflow-x:hidden!important;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
  display:block;
}
.side-brand-user .side-brand-user-btn,
.side-user-chip,
.side-user-merged{
  overflow:hidden!important;
  overflow-x:hidden!important;
}
/* 禁止侧栏顶部横向滚动导致名字左移 */
.side-brand,
.side-brand-copy,
.side-brand-user,
.modes{
  overflow-x:hidden!important;
}
.side-status{display:none!important}


/* ===== 顶部仅账号：头像 + 用户名 ===== */
.side-top-user{
  display:flex;
  align-items:center;
  min-width:0;
  width:100%;
  padding:2px 4px 12px;
  overflow:hidden;
}
.side-top-user .side-top-user-btn,
.side-top-user .side-user-chip,
.side-top-user .side-user-merged{
  width:100%;
  max-width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  border-radius:0;
  padding:6px 4px;
  margin:0;
  background:transparent;
  box-shadow:none;
  font:inherit;
  font-size:14.5px;
  font-weight:600;
  color:var(--text);
  cursor:pointer;
  overflow:hidden;
}
.side-top-user .side-top-user-btn:hover,
.side-top-user .side-user-chip:hover,
.side-top-user .side-user-merged:hover{
  background:transparent;
  opacity:.75;
}
.side-top-user .side-avatar{
  flex:0 0 auto;
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
}
.side-top-user .side-name{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  overflow-x:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:left;
  display:block;
}

/* 手机顶栏同样只保留账号 */
@media(max-width:700px){
  .side-top-user{
    order:2;
    flex:0 0 auto;
    width:auto;
    max-width:46%;
    padding:0;
    margin-left:auto;
  }
  .side-top-user .side-top-user-btn,
  .side-top-user .side-user-chip,
  .side-top-user .side-user-merged{
    width:auto;
    max-width:100%;
    min-height:36px;
    padding:4px 2px;
    font-size:13px;
  }
  .side-top-user .side-name{max-width:8em}
  .side-brand{display:none!important}
}

/* 登录标题：英文产品名，保证可读 */
.login-title{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:26px!important;
  font-weight:700!important;
  letter-spacing:-.03em;
  line-height:1.25;
  text-align:center;
  color:var(--text)!important;
  margin:0 0 8px;
  opacity:1;
}
.login-sub{
  font-size:14px!important;
  font-weight:400!important;
  letter-spacing:.03em;
  color:var(--muted)!important;
  margin:0 0 28px!important;
  text-align:center;
}

/* 顶部一行：左账号 + 右设置齿轮 */
.side-top-row{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  min-width:0;
}
.side-top-row .side-top-user-btn,
.side-top-row .side-user-chip,
.side-top-row .side-user-merged{
  flex:1 1 auto;
  width:auto;
  min-width:0;
}



@media(max-width:700px){
  .side-top-row{width:auto;max-width:100%}
  
  
}

/* 新增主题变量 */
html[data-theme="rose"]{--bg:#fdf0f3;--wash:#f9c9d499;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#4c0519;--text2:#4c0519;--muted:#9f5a6c;--faint:#9f5a6c;--accent:#be123c;--accent-b:#e11d48;--border:#f0d0d8;--border2:#f5dde3;--border-strong:#e2a8b6;--soft:#f8e4e980;--soft2:#f7dde4;--soft3:#f8d7e0;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#e2b0bc;--thumb-h:#c98898;--topbar:#ffffff99;--loginA:#fdf0f3;--loginB:#ffffff;--loginC:#fdf0f3;}
html[data-theme="peach"]{--bg:#fff4ec;--wash:#ffd7b099;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#431407;--text2:#431407;--muted:#9a5d42;--faint:#9a5d42;--accent:#c2410c;--accent-b:#f97316;--border:#f0d4c0;--border2:#f5e0d0;--border-strong:#e0b090;--soft:#ffe8d980;--soft2:#ffe4cc;--soft3:#ffdcc0;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#e5c0a8;--thumb-h:#c99878;--topbar:#ffffff99;--loginA:#fff4ec;--loginB:#ffffff;--loginC:#fff4ec;}
html[data-theme="mint"]{--bg:#eefbf6;--wash:#a7f3d099;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#042f2e;--text2:#042f2e;--muted:#4f7a6e;--faint:#4f7a6e;--accent:#0f766e;--accent-b:#14b8a6;--border:#c5e8dc;--border2:#d5efe6;--border-strong:#8fcfbf;--soft:#d9f5ec80;--soft2:#d2f0e6;--soft3:#c4ebde;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#a8d4c6;--thumb-h:#7fbbaa;--topbar:#ffffff99;--loginA:#eefbf6;--loginB:#ffffff;--loginC:#eefbf6;}
html[data-theme="sky"]{--bg:#eef8ff;--wash:#bae6fd99;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#082f49;--text2:#082f49;--muted:#5a7d96;--faint:#5a7d96;--accent:#0369a1;--accent-b:#38bdf8;--border:#c5e0f5;--border2:#d6ebfa;--border-strong:#8ec4e8;--soft:#e0f2fe80;--soft2:#d9eefb;--soft3:#cce8f8;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#a8cfe8;--thumb-h:#7eb0d4;--topbar:#ffffff99;--loginA:#eef8ff;--loginB:#ffffff;--loginC:#eef8ff;}
html[data-theme="lilac"]{--bg:#f6f1ff;--wash:#ddd6fe99;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#2e1065;--text2:#2e1065;--muted:#7b6b9a;--faint:#7b6b9a;--accent:#7c3aed;--accent-b:#a78bfa;--border:#ddd0f5;--border2:#e8def8;--border-strong:#c0a8e8;--soft:#ede9fe80;--soft2:#e9e0fb;--soft3:#e2d4fa;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#c4b0e0;--thumb-h:#a488c8;--topbar:#ffffff99;--loginA:#f6f1ff;--loginB:#ffffff;--loginC:#f6f1ff;}
html[data-theme="sand"]{--bg:#faf6ef;--wash:#e8d5a899;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#3b2a14;--text2:#3b2a14;--muted:#8a7354;--faint:#8a7354;--accent:#92400e;--accent-b:#d97706;--border:#e8dcc4;--border2:#f0e6d2;--border-strong:#d0bc96;--soft:#f5ebd880;--soft2:#f3e8d0;--soft3:#efe0c0;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#d4c4a0;--thumb-h:#b8a478;--topbar:#ffffff99;--loginA:#faf6ef;--loginB:#ffffff;--loginC:#faf6ef;}
html[data-theme="forest"]{--bg:#f0f7f1;--wash:#bbf7d099;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#052e16;--text2:#052e16;--muted:#5a7d62;--faint:#5a7d62;--accent:#166534;--accent-b:#4d7c0f;--border:#c8e0cc;--border2:#d8ecdb;--border-strong:#96c49e;--soft:#dcf5e280;--soft2:#d4efda;--soft3:#c6e8ce;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#a8c8b0;--thumb-h:#80b08c;--topbar:#ffffff99;--loginA:#f0f7f1;--loginB:#ffffff;--loginC:#f0f7f1;}
html[data-theme="slate"]{--bg:#f1f5f9;--wash:#cbd5e199;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#0f172a;--text2:#0f172a;--muted:#64748b;--faint:#64748b;--accent:#334155;--accent-b:#64748b;--border:#d0d8e2;--border2:#dde4ec;--border-strong:#a8b4c2;--soft:#e8eef580;--soft2:#e2e9f1;--soft3:#d8e2ec;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#b0bcc8;--thumb-h:#8898a8;--topbar:#ffffff99;--loginA:#f1f5f9;--loginB:#ffffff;--loginC:#f1f5f9;}
html[data-theme="coral"]{--bg:#fff1f0;--wash:#fecaca99;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#4c0519;--text2:#4c0519;--muted:#a05a62;--faint:#a05a62;--accent:#c2410c;--accent-b:#fb7185;--border:#f0c8c4;--border2:#f5d8d4;--border-strong:#e0a098;--soft:#ffe4e080;--soft2:#ffe0dc;--soft3:#ffd4ce;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#e0b0a8;--thumb-h:#c88880;--topbar:#ffffff99;--loginA:#fff1f0;--loginB:#ffffff;--loginC:#fff1f0;}
html[data-theme="ocean"]{--bg:#e8f1fb;--wash:#bfdbfe99;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#1e3a5f;--text2:#1e3a5f;--muted:#5a7398;--faint:#5a7398;--accent:#1e3a8a;--accent-b:#3b82f6;--border:#c5d8f0;--border2:#d6e6f8;--border-strong:#90b4e0;--soft:#dbeafe80;--soft2:#d4e6fa;--soft3:#c6dcf8;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#a0c0e0;--thumb-h:#78a0c8;--topbar:#ffffff99;--loginA:#e8f1fb;--loginB:#ffffff;--loginC:#e8f1fb;}
html[data-theme="honey"]{--bg:#fffbeb;--wash:#fde68a99;--panel:#fdfefe;--card:#ffffffdf;--card-hover:#fff;--text:#451a03;--text2:#451a03;--muted:#8a6a3a;--faint:#8a6a3a;--accent:#b45309;--accent-b:#f59e0b;--border:#f0e0b0;--border2:#f5eacc;--border-strong:#e0c888;--soft:#fef3c780;--soft2:#fdeec4;--soft3:#fce8b0;--red:#be123c;--red-bg:#ffeded;--amber:#97651b;--amber-bg:#fff4df;--blue:#3166b2;--blue-bg:#eaf2ff;--green:#238269;--thumb:#dcc890;--thumb-h:#c0a868;--topbar:#ffffff99;--loginA:#fffbeb;--loginB:#ffffff;--loginC:#fffbeb;}

/* 外观弹窗：更紧凑的色板网格 */
.theme-modal .modal{max-width:420px}
.theme-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin:8px 0 4px;
}
.theme-opt{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px;
  border-radius:14px;
  border:2px solid transparent;
  text-align:left;
  min-height:0;
}
.theme-opt.active{border-color:var(--accent)}
.theme-strip{display:flex;gap:4px;margin:0}
.theme-strip i{
  flex:1;
  height:22px;
  border-radius:6px;
  border:1px solid rgba(0,0,0,.04);
}
.theme-opt .tname{font-size:13px;font-weight:700;color:var(--text)}
.theme-opt .tdesc{font-size:11px;color:var(--muted);margin-top:2px}
@media(max-width:700px){
  .theme-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .theme-modal .modal{max-width:none}
}

/* 管理员面板：固定宽高观感 */
#adminModal .adm-modal{
  width:min(580px, calc(100vw - 28px));
  max-width:580px;
  max-height:min(720px, calc(100dvh - 40px));
  height:auto;
  padding:22px 22px 18px;
  overflow:auto;
}
@media(max-width:700px){
  #adminModal .adm-modal{
    width:100%;
    max-height:min(86dvh, calc(100dvh - 24px));
  }
}

/* 护眼绿 */
html[data-theme="eyecare"]{
  --bg:#e7f0e4;
  --wash:#c5dfc099;
  --panel:#f8fbf7;
  --card:#ffffffee;
  --card-hover:#fff;
  --text:#1f3326;
  --text2:#1f3326;
  --muted:#5d7564;
  --faint:#5d7564;
  --accent:#3f6b4a;
  --accent-b:#6a9a74;
  --border:#c8dcc8;
  --border2:#d7e8d6;
  --border-strong:#9fbfa3;
  --soft:#dcead880;
  --soft2:#d5e6d1;
  --soft3:#c9dfc5;
  --red:#b54d4d;
  --red-bg:#ffebeb;
  --amber:#8a6a2b;
  --amber-bg:#fff4df;
  --blue:#3166b2;
  --blue-bg:#eaf2ff;
  --green:#3f6b4a;
  --thumb:#a8c4a8;
  --thumb-h:#7fa484;
  --topbar:#ffffff99;
  --loginA:#e7f0e4;
  --loginB:#f8fbf7;
  --loginC:#e7f0e4;
}
/* 降低刺眼感：正文与卡片对比稍柔 */
html[data-theme="eyecare"] body{letter-spacing:.015em}
html[data-theme="eyecare"] .card,
html[data-theme="eyecare"] .modal{box-shadow:0 6px 22px rgba(60,90,60,.08)}

/* 历史区「清空」与删除叉号：不用红/粉 */
.side-section-head .side-clear-btn,
.side-clear-btn{
  color:var(--muted)!important;
  background:transparent!important;
}
.side-section-head .side-clear-btn:hover,
.side-clear-btn:hover{
  color:var(--text)!important;
  background:rgba(255,255,255,.55)!important;
}
.side-hist-del,
.history-del{
  color:var(--muted)!important;
  background:transparent!important;
}
.side-hist-row:hover .side-hist-del,
.history-item:hover .history-del,
.side-hist-del:hover,
.history-del:hover{
  color:var(--text)!important;
  background:rgba(255,255,255,.55)!important;
}

/* 三个标签页：与文档审阅一致的侧栏间距（左对齐，不额外居中） */
.tab-content{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  margin-top:0!important;
}
#tab-image .stack,
#tab-image .stack.narrow,
#tab-nav .stack,
#tab-review .stack{
  width:100%;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  margin-top:0!important;
}
/* 主内容左边距 = 侧栏右缘 + 标准间隙 18px */
.main{
  margin-left:calc(var(--rail) + var(--rail-w) + var(--gap))!important;
  margin-right:var(--content-r)!important;
}

/* 历史列表：占满侧栏剩余高度，可滚到底 */
.modes{
  overflow:hidden!important;
  min-height:0;
}
.modes > .side-top-user,
.modes > .mode-tab,
.modes > .side-section-head,
.modes > .history-filters,
.modes > .side-bottom{
  flex-shrink:0!important;
  flex-grow:0!important;
}
.modes > #unifiedHistory,
.modes > .history-list-box{
  flex:1 1 auto!important;
  flex-grow:1!important;
  flex-shrink:1!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.history-list-box{
  width:100%;
  padding-bottom:12px;
}

/* 历史底部清空按钮 */
.history-foot{
  flex:0 0 auto;
  padding:6px 6px 4px;
  margin-top:2px;
}
.history-clear-btn{
  width:100%;
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid color-mix(in srgb,var(--border) 70%,transparent);
  border-radius:10px;
  background:rgba(255,255,255,.45);
  color:var(--muted);
  font:inherit;
  font-size:12.5px;
  font-weight:600;
  cursor:pointer;
}
.history-clear-btn:hover{
  color:var(--text);
  background:rgba(255,255,255,.75);
}
@media(max-width:700px){
  .history-foot{display:none}
}

/* 外观弹窗：撑满高度，色板铺到底 */
#themeModal .modal{
  display:flex;
  flex-direction:column;
  width:min(420px, calc(100vw - 28px));
  max-width:420px;
  height:min(640px, calc(100dvh - 48px));
  max-height:min(720px, calc(100dvh - 40px));
  padding:18px 18px 16px;
  overflow:hidden;
}
#themeModal .modal-title{
  flex:0 0 auto;
  margin:0 0 8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
#themeModal .theme-grid{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  grid-auto-rows:minmax(0,1fr);
  gap:10px;
  margin:0;
  overflow:auto;
  align-content:stretch;
}
#themeModal .theme-opt{
  min-height:0;
  height:100%;
  justify-content:center;
  padding:14px 12px;
  border-radius:14px;
}
#themeModal .theme-strip i{height:26px;border-radius:7px}
#themeModal .tname{font-size:13.5px;font-weight:700}
#themeModal .tdesc{font-size:11px;color:var(--muted);margin-top:3px}
@media(max-width:700px){
  #themeModal .modal{
    width:100%;
    height:min(78dvh, calc(100dvh - 24px));
    max-height:calc(100dvh - 24px);
  }
}

/* 历史区：列表吃满剩余高度，清空贴底 */
.modes{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  min-height:0;
}
.modes > .side-top-user{order:1;flex:0 0 auto}
.modes > .mode-tab{order:2;flex:0 0 auto}
.modes > .side-section-head{order:3;flex:0 0 auto}
.modes > .history-filters{order:4;flex:0 0 auto}
.modes > #unifiedHistory,
.modes > .history-list-box{
  order:5;
  flex:1 1 auto!important;
  flex-grow:1!important;
  flex-shrink:1!important;
  min-height:120px!important;
  max-height:none!important;
  overflow:auto!important;
  width:100%;
  padding:0 4px 4px!important;
  margin:0!important;
}
.modes > .history-foot{
  order:6;
  flex:0 0 auto!important;
  margin-top:auto!important;
  padding:8px 4px calc(4px + env(safe-area-inset-bottom))!important;
}
.history-clear-btn{min-height:40px!important}
/* 历史条目在列表内从上往下排；列表本身已撑满 */
.side-hist-row{margin-bottom:6px}
.modes{
  padding-bottom:8px!important;
}
#themeModal h3{
  margin:12px 0 8px;
  font-size:13px;
  font-weight:700;
  color:var(--muted);
}
#themeModal #themePasswdBlock{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent);
}
#themeModal #themePasswdBlock label{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin:8px 0 4px;
  font-weight:600;
}
#themeModal #themePasswdBlock input{
  width:100%;
  min-height:42px;
  padding:0 12px;
  border-radius:10px;
  font-size:16px;
}
#themeModal:has(#themePasswdBlock:not([style*="display: none"])) .modal{
  height:auto;
  max-height:min(760px, calc(100dvh - 40px));
  overflow:auto;
}
