:root{
  --paper:#F5F1E9; --card:#FCFAF5; --ink:#1B2A38; --muted:#6C737A;
  --line:#DED5C7; --green:#2F4A3F; --deep:#263D34; --gold:#9A774C;
  --wine:#6B3037; --red:#A44848; --amber:#A8762A; --blue:#557181;
  --purple:#6C5B7B; --slate:#7A7F84; --shadow:0 10px 30px rgba(39,46,42,.07);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);color:var(--ink);
  font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",sans-serif;
  font-size:14px;line-height:1.6;
}
a{color:inherit;text-decoration:none}
code,.code{font-family:Georgia,"Times New Roman",serif;letter-spacing:.04em}
code{background:#EFE9DD;padding:1px 5px;border-radius:3px;font-size:.9em}
pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:12.5px;color:#4B5257;background:#F7F2E8;padding:14px;border-radius:6px;max-height:260px;overflow:auto}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:.01em}
h1{font-size:30px;line-height:1.25}
h2{font-size:15px}
h3{font-size:16px}
p{margin:8px 0}
.muted{color:var(--muted)}
.tiny{font-size:11.5px;color:var(--muted)}
.ok{color:var(--green);font-weight:700}

/* sidebar */
.sidebar{
  position:fixed;left:0;top:0;bottom:0;width:232px;background:var(--green);
  color:#F3F1E9;padding:28px 22px;display:flex;flex-direction:column;z-index:20;
}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{
  width:38px;height:38px;border:1px solid #CBB489;color:#E4CEA6;
  display:flex;align-items:center;justify-content:center;
  font-family:Georgia,serif;font-size:20px;border-radius:3px;
}
.brand-cn{font-size:16px;font-weight:700;letter-spacing:.12em}
.brand-en{font-size:8px;letter-spacing:.26em;color:#B9C7B5;margin-top:2px}
.sidebar nav{margin-top:46px;display:flex;flex-direction:column;gap:6px}
.sidebar nav a{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:5px;
  color:#DCE5D9;font-size:13.5px;letter-spacing:.04em;transition:.18s;
}
.sidebar nav a span{font-family:Georgia,serif;font-size:10px;color:#C8AE84;width:18px}
.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.09);color:#fff}
.side-foot{margin-top:auto;color:#AFC1AC;font-size:11px;display:flex;flex-direction:column;gap:9px}
.side-foot a{color:#E1CBA6;font-size:11px;text-decoration:underline}
.dot{width:7px;height:7px;border-radius:50%;background:#8FC59A;box-shadow:0 0 0 4px rgba(143,197,154,.15)}

/* layout */
.main{margin-left:232px;padding:34px 42px 60px;min-height:100vh;max-width:1500px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:26px}
.kicker{font-family:Georgia,serif;font-size:10px;letter-spacing:.24em;color:var(--gold);margin-bottom:8px}
.head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pill,.badge{display:inline-flex;align-items:center;border-radius:20px;padding:4px 10px;font-size:11px;line-height:1.4;white-space:nowrap}
.pill{border:1px solid var(--line);background:#FBF8F1;color:var(--muted)}
.badge{font-size:11px}
.badge.green,.pill.green{background:#E7EFE6;color:#2F5A3B}
.badge.amber,.pill.amber{background:#F6ECD7;color:#8A5B18}
.badge.blue{background:#E6EDF1;color:#3E6272}
.badge.purple{background:#EEE9F2;color:#5B4B6C}
.badge.red{background:#F5E3E1;color:#8E3C35}
.badge.slate{background:#ECE9E2;color:#666A6D}

/* cards & grid */
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:22px 24px;box-shadow:var(--shadow)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:14px}
.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:7px;padding:16px 18px;display:flex;flex-direction:column;gap:5px}
.stat span{font-size:11.5px;color:var(--muted)}
.stat strong{font-family:Georgia,serif;font-size:27px;font-weight:400;color:var(--ink)}
.stat.danger strong{color:var(--red)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.detail-grid.lower{margin-top:18px;grid-template-columns:1fr 1fr}
.right-stack{display:flex;flex-direction:column;gap:18px}

/* table */
.table{width:100%;border-collapse:collapse}
.table th{font-size:11px;color:var(--muted);text-align:left;font-weight:400;border-bottom:1px solid var(--line);padding:9px 8px;letter-spacing:.04em}
.table td{padding:12px 8px;border-bottom:1px solid #ECE6DA;vertical-align:middle;font-size:13px}
.table tr:last-child td{border-bottom:none}
.click-row{cursor:pointer;transition:.12s}
.click-row:hover{background:#F7F2E8}
.subject-cell{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-mini{font-family:Georgia,serif;font-size:17px;color:var(--green);border-bottom:1px solid #B7C6B2}
.text-link{font-size:12px;color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#FBF8F1;color:var(--ink);padding:8px 13px;border-radius:5px;font-size:12.5px;font-family:inherit;cursor:pointer;transition:.15s}
.btn:hover{border-color:var(--gold);background:#F5EDDF}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.primary:hover{background:var(--deep)}
.btn.danger{background:#F5E3E1;border-color:#E4C5C1;color:#8E3C35}

/* dashboard */
.steps{margin:0;padding-left:18px;color:var(--muted);font-size:12.5px}
.steps li{margin:9px 0}
.steps b{color:var(--ink);display:inline-block;min-width:48px}
.steps span{display:block;margin-top:1px}
.steps.compact li{margin:6px 0}
.notice{margin:0;padding-left:18px;color:var(--muted);font-size:12.5px}
.notice li{margin:9px 0}
.empty{text-align:center;padding:50px 20px}
.empty-mark{width:54px;height:54px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-family:Georgia,serif;font-size:22px;color:var(--gold)}
.empty h3{margin-bottom:4px}

/* job detail */
.preview-card{min-width:0}
.preview-wrap{background:#EDE9E1;border-radius:5px;padding:14px;display:flex;justify-content:center}
.preview-wrap img{width:100%;max-width:540px;height:auto;box-shadow:0 8px 24px rgba(0,0,0,.12);background:#fff}
.preview-meta{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:9px}
.score-line{display:flex;align-items:center;gap:18px;padding:4px 0 12px}
.big-score{font-family:Georgia,serif;font-size:56px;line-height:1;color:var(--green)}
.verdict{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.dims{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}
.dim{display:grid;grid-template-columns:70px 1fr 26px;gap:8px;align-items:center;font-size:11.5px;color:var(--muted)}
.dim b{font-family:Georgia,serif;font-weight:400;color:var(--ink);text-align:right}
.bar{height:4px;background:#E9E2D5;border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--green)}
.callout{background:#F7F1E6;border-left:3px solid var(--gold);padding:12px 14px;border-radius:0 5px 5px 0;font-size:12.5px;color:var(--muted);margin:12px 0}
.asks-card{border-color:#E4C98F;background:#FCF7EC}
.asks-list{margin:6px 0 14px;padding-left:20px;font-size:13.5px;line-height:1.75;color:var(--ink);word-break:break-word;overflow-wrap:anywhere}
.asks-list li{margin-bottom:6px}
.asks-text{white-space:pre-wrap}
.callout.red{background:#F7E9E7;border-color:var(--red)}
.callout b{color:var(--ink)}
.callout ul{margin:5px 0 0;padding-left:18px}
.kv{display:grid;grid-template-columns:58px 1fr;gap:7px 12px;margin:0;font-size:12.5px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;color:var(--ink);word-break:break-all}
.subhead{font-size:11px;color:var(--gold);letter-spacing:.12em;margin:16px 0 8px;border-top:1px solid var(--line);padding-top:12px}
.mini-item{font-size:12px;padding:5px 0;border-bottom:1px dashed #E8E0D2;color:var(--muted)}
.mini-item b{color:var(--ink)}
.mini-item span{float:right;font-size:11px}
.mail{padding:12px 0;border-bottom:1px solid #ECE6DA}
.mail-head{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.mail-head b{color:var(--ink)}
.mail pre{background:transparent;padding:6px 0 0;max-height:150px}

/* 发件记录（A-66） */
.mail-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px}
.mail-filter label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.mail-filter input,.mail-filter select{padding:8px 10px;border:1px solid var(--line);border-radius:5px;background:#FBF8F1;font-size:13px;min-width:180px}
.mail-count{margin-left:auto}
.mail-list{display:flex;flex-direction:column;gap:8px}
.mail-item{display:block;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 14px;box-shadow:var(--shadow);text-decoration:none;color:inherit}
.mail-item:hover{border-color:var(--gold)}
.mail-line{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;color:var(--muted)}
.mail-kind{background:#F5EDDF;border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:11.5px;color:var(--ink)}
.mail-to{font-size:13.5px;color:var(--ink);margin:6px 0 4px;word-break:break-all}
.mail-meta{font-size:12px;color:var(--muted);word-break:break-word}
.mail-open{margin-left:8px;color:var(--gold);text-decoration:none;white-space:nowrap}
.mail-open:hover{text-decoration:underline}
.mail-toggle{margin-top:8px;border:1px solid var(--line);background:#FBF8F1;border-radius:5px;padding:5px 10px;font-size:12px;color:var(--ink);cursor:pointer}
.mail-toggle:hover{border-color:var(--gold)}
.mail-body{margin:8px 0 0;padding:10px 12px;background:#FFFDF8;border:1px dashed var(--line);border-radius:6px;font-size:12.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}
.mail-body[hidden]{display:none}

/* 后台「代客户修改」页：套一层留白容器（客户页的留白由 apply_base 提供，后台没有） */
.admin-revise-wrap{max-width:900px;margin:0 auto;padding:28px 24px 60px}
.admin-revise-wrap .form-shell{max-width:none}
@media (max-width:640px){
  .admin-revise-wrap{padding:18px 16px 48px}
}
@media (max-width:640px){
  .mail-filter input,.mail-filter select{min-width:0;width:100%}
  .mail-filter label{flex:1 1 100%}
  .mail-count{margin-left:0}
}
.file-list{list-style:none;margin:0;padding:0;font-size:12.5px}
.file-list li{padding:7px 0;border-bottom:1px dashed #E8E0D2}
.file-kind{display:inline-block;background:#EFE8DA;color:var(--gold);font-size:10px;padding:1px 6px;border-radius:3px;margin-right:6px}
.timeline{max-height:210px;overflow:auto}
.event{display:flex;gap:10px;font-size:11.5px;color:var(--muted);padding:4px 0}
.event span{font-family:Georgia,serif;color:#A19A8E;width:38px}
.event b{color:var(--ink);font-weight:400}

/* templates */
.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.template-card{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}
.template-img{background:#E9E4DA;padding:14px;display:flex;justify-content:center}
.template-img img{width:100%;height:auto;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.template-body{padding:15px 18px 18px}
.template-top{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.template-body p{font-size:12px;color:var(--muted);margin:4px 0}
.code{background:#EFE8DA;color:var(--gold);padding:2px 7px;border-radius:3px;font-size:11px}

/* A-79 任务详情：一单的完整病历（六块） */
.story-stuck{margin-bottom:18px}
.story-stuck.warn{border-color:#E4C98F;background:#FCF7EC}
.story-reason{margin:2px 0 6px;font-size:14px;line-height:1.7;color:var(--ink);word-break:break-word}
.story-next{margin:0;font-size:12.5px;color:var(--muted)}
.story-files{list-style:none;margin:0 0 10px;padding:0;font-size:12.5px}
.story-files li{padding:4px 0;border-bottom:1px solid #ECE6DA;word-break:break-all}
/* A-88：客户上传文件——行内「看内容」只读区 + 「下载原件」 */
.intake-summary{margin:0 0 8px;font-size:12.5px;color:var(--muted)}
.intake-files li{padding:9px 0;border-bottom:1px solid #ECE6DA;word-break:normal}
.intake-files li:last-child{border-bottom:0}
.intake-file-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px}
.intake-file-name{font-size:12.5px;color:var(--ink);word-break:break-word;overflow-wrap:anywhere}
.intake-file-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:6px}
.file-text{max-width:100%}
.file-text summary{cursor:pointer;font-size:11.5px;color:var(--gold)}
.file-text-body{
  margin:6px 0 0;max-width:100%;max-height:320px;overflow:auto;
  white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;
  background:#FFFDF8;border:1px dashed var(--line);border-radius:6px;
  padding:10px 12px;font-size:12px;line-height:1.7;
}
.file-text-note{margin:6px 0 0;color:var(--muted);line-height:1.6}
.intake-download{font-size:11.5px}
/* A-92：抽不出字的文件贴原页渲染图（手机上单页一行，点开看大图） */
.file-pages{display:grid;grid-template-columns:1fr;gap:10px;margin-top:8px;max-width:100%}
.file-page{display:block;background:#fff;border:1px solid var(--line);border-radius:6px;padding:4px;max-width:100%}
.file-page:hover{border-color:var(--gold)}
.file-page img{display:block;width:100%;height:auto;border-radius:4px}
@media (min-width:821px){
  .file-pages{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.story-tag{display:inline-block;background:#F1EADC;border:1px solid var(--line);border-radius:3px;padding:0 6px;margin-right:6px;font-size:11px;color:var(--muted)}
.story-fold{margin:10px 0 0;border-top:1px solid #ECE6DA;padding-top:8px}
.story-fold summary{cursor:pointer;font-size:12.5px;color:var(--ink)}
.story-pre{margin:8px 0 0;background:#FFFDF8;border:1px dashed var(--line);border-radius:6px;padding:10px 12px;font-size:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}
.story-dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0 0;font-size:12.5px}
.story-dl dt{color:var(--muted)}
.story-dl dd{margin:0;word-break:break-all}
.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:6px}
.story-grid div{background:#FBF8F1;border:1px solid var(--line);border-radius:6px;padding:8px 10px;min-width:0}
.story-grid span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.story-grid b{font-size:13px;color:var(--ink);word-break:break-word}
.story-list{margin:6px 0 0;padding-left:18px;font-size:12.5px;line-height:1.7;word-break:break-word}
/* A-83：「问过客户什么」正文和状态小字必须一眼分开（正文原样保留换行） */
.story-asks{list-style:none;margin:6px 0 0;padding:0}
.story-ask{padding:10px 0 12px;border-bottom:1px solid #ECE6DA}
.story-ask:last-child{padding-bottom:2px;border-bottom:0}
.story-ask .story-tag{margin-right:0;margin-bottom:2px}
.story-ask-body{
  margin-top:5px;font-size:12.5px;line-height:1.7;color:var(--ink);
  white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;
}
.story-ask-status{
  margin-top:7px;padding-top:6px;border-top:1px dashed #E4DCCB;
  font-size:11px;line-height:1.5;color:var(--muted);word-break:break-word;
}
.story-ask-status-label{color:var(--muted)}
/* A-87：顶部汇总 + 状态四色（灰=待发 / 绿=已发 / 浅灰=已取消 / 红=失败） */
.ask-summary{margin:0 0 10px;font-size:12.5px;color:var(--muted);word-break:break-word}
.ask-source{font-size:11px;color:var(--muted);word-break:break-word}
.ask-items{margin:6px 0 0}
.ask-items summary{cursor:pointer;font-size:11px;color:var(--muted)}
.ask-items ul{margin:6px 0 0;padding-left:18px;font-size:12px;line-height:1.7;color:var(--ink);word-break:break-word}
.ask-st{font-size:11px}
.ask-st-pending{color:#6C737A}
.ask-st-sent{color:#2F5A3B;font-weight:700}
.ask-st-cancelled{color:#9A9A94}
.ask-st-failed{color:#8E3C35;font-weight:700}
.story-version{margin:14px 0 0;padding-top:12px;border-top:1px solid #ECE6DA}
.story-version:first-of-type{border-top:0;padding-top:0;margin-top:6px}
.story-ver-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px;font-size:12.5px}
.story-shot{display:block;background:#EDE9E1;border-radius:5px;padding:10px;text-align:center}
.story-shot img{width:100%;max-width:520px;height:auto;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.12)}
@media (max-width:640px){
  .story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* settings */
form{margin:0}
label{display:block;font-size:12px;color:var(--muted);margin:14px 0 5px}
input[type=password]{width:100%;border:1px solid var(--line);background:#fff;border-radius:5px;padding:11px 12px;font-family:inherit;font-size:14px}
input[type=password]:focus{outline:none;border-color:var(--gold)}
.error{background:#F7E9E7;color:#8E3C35;padding:9px 12px;border-radius:4px;font-size:12px;margin:12px 0}

/* login */
.login-body{background:var(--green);display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:var(--card);width:420px;max-width:calc(100vw - 40px);padding:38px 38px 30px;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.login-card h1{font-size:24px;margin:28px 0 4px}
.login-card .btn{width:100%;margin-top:16px;padding:11px}
.login-card .tiny{margin-top:22px;text-align:center}

@media (max-width:1180px){
  .stat-grid{grid-template-columns:repeat(3,1fr)}
  .template-grid{grid-template-columns:repeat(2,1fr)}
  .detail-grid{grid-template-columns:1fr}
  .detail-grid.lower{grid-template-columns:1fr}
}
/* 运维状态：暂停横幅 + 总览页运行中细条 */
.ops-banner{position:sticky;top:0;z-index:99;background:#b42318;color:#fff;padding:10px 16px;
            font-size:14px;line-height:1.6;text-align:center}
.ops-banner code{background:rgba(255,255,255,.2);padding:1px 4px;border-radius:3px}
.ops-bar{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:7px 12px;
         border:1px solid #B7D7C3;background:#F1F8F2;color:#2F5A3B;border-radius:6px;
         font-size:12.5px;line-height:1.5}
.ops-bar-warn{border-color:#E4C98F;background:#FBF3E1;color:#8A5B18}
.ops-dot{width:7px;height:7px;border-radius:50%;background:#4E9E68;flex:0 0 auto}
.ops-bar-warn .ops-dot{background:#C08A2A}
@media (max-width:820px){
  .ops-bar{font-size:12px;padding:7px 10px}
  .ops-banner{font-size:13px;padding:9px 12px}
}

@media (max-width:820px){
  .sidebar{position:static;width:auto;flex-direction:row;align-items:center;padding:14px 16px;flex-wrap:wrap}
  .sidebar nav{flex-direction:row;margin:8px 0 0;gap:4px;flex-wrap:wrap}
  .sidebar nav a{padding:10px 12px;min-height:44px;white-space:nowrap}
  .sidebar nav a span{display:none}
  .side-foot{display:none}
  .main{margin-left:0;padding:22px 18px 50px}
  .two-col{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .template-grid{grid-template-columns:1fr}
  h1{font-size:24px}
  .page-head{flex-direction:column;align-items:flex-start}
  /* 8 列表格在手机上改为"卡片内横向滚动"，不再撑破整页 */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .table{min-width:680px}
  /* 关键操作触区统一 44（桌面不变） */
  .btn{min-height:44px}
  .link-btn{min-height:44px;min-width:44px;padding:10px 8px;display:inline-flex;align-items:center;justify-content:center}
  /* 导航类小链接（筛选、查看全部、表内编号/状态）在手机上也要点得到 */
  .text-link{display:inline-flex;align-items:center;min-height:44px}
  .file-text summary{min-height:44px;display:inline-flex;align-items:center}
  .filters{display:flex;flex-wrap:wrap;gap:2px 10px}
  .filter{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
  .table td a{display:inline-flex;align-items:center;min-height:44px}
  .table .badge{min-height:44px}
}

/* orders */
.order-form label{margin-top:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.order-form input,.order-form select{width:100%;border:1px solid var(--line);background:#fff;border-radius:5px;padding:9px 10px;font-family:inherit;font-size:13px;color:var(--ink)}
.order-form input:focus,.order-form select:focus{outline:none;border-color:var(--gold)}
.order-form .btn{margin-top:14px}
.order-code{font-family:Georgia,serif;font-size:40px;letter-spacing:.08em;color:var(--green);margin:8px 0 2px}
.order-meta{font-size:12px;color:var(--muted);margin-bottom:14px}
#order-message{background:#F7F2E8;border:1px solid var(--line);font-size:13px;line-height:1.7;max-height:240px}
.link-btn{border:none;background:transparent;color:var(--wine);font-size:12px;cursor:pointer;text-decoration:underline;font-family:inherit}
.apply-link{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#F7F2E8;border:1px dashed var(--line);padding:8px 10px;margin:12px 0 6px;font-size:11px;color:var(--muted)}
.apply-link code{font-size:11.5px;color:var(--green);word-break:break-all}

/* 排版诊断（任务详情） */
.diag-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:6px}
.diag-item{background:#FBF8F1;border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.diag-item span{font-size:11px;color:var(--muted);letter-spacing:.06em}
.diag-item strong{font-family:Georgia,serif;font-size:20px;font-weight:400;color:var(--ink)}
.diag-item em{font-style:normal;font-size:11px;color:var(--muted);min-height:14px}
.diag-item.warn{border-color:#E4C98F;background:#FBF3E1}
.diag-item.warn em{color:#8A5B18}
.diag-item.bad{border-color:#E4C5C1;background:#FBF0EE}
.diag-item.bad strong{color:#8E3C35}
.diag-list{margin:0 0 4px;padding-left:18px;font-size:12.5px;color:var(--ink-soft);line-height:1.7}
.diag-list li{margin:4px 0}
.diag-list.warn{color:#8A5B18}
.diag-empty{margin:0 0 4px}
@media(max-width:820px){
  .form-row{grid-template-columns:1fr}
  .diag-grid{grid-template-columns:repeat(2,1fr)}
}

/* A-86：手机端小字 11.5 → 12px（只动窄屏，桌面字号不变） */
@media (max-width:640px){
  .tiny{font-size:12px}
}
