/* 新疆维吾尔自治区地质局 定制版 — 政务蓝白风（仿 xjdzkc.cn 门户风格）
   旧暗色油纸版快照：git tag ui-v1-dark-paper / 服务器 public-backup-ui-v1-20260814.tgz */
:root {
  --blue: #1e5aa8;          /* 政务主蓝 */
  --blue-dark: #164a8c;
  --blue-deep: #0f3a72;     /* banner 深蓝 */
  --blue-light: #e8f1fb;    /* 浅蓝衬底 */
  --bg: #f4f6f9;
  --surface: #ffffff;
  --border: #d9e2ec;
  --border-strong: #b9c9dc;
  --text: #333333;
  --text-dim: #555c66;
  --muted: #8a94a1;
  --gold: #ffd54d;          /* 待校对高亮（保留功能色） */
  --gold-strong: #e0af16;
  --green: #3d8b37;         /* 已确认 */
  --green-soft: #c9e5c4;
  --red: #d0392e;
  --paper: #ffffff;
  --paper-text: #2a2a2a;

  --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; --sp-8: 32px;
  --r-sm: 3px; --r-md: 4px; --r-lg: 6px;
  --shadow-sm: 0 1px 3px rgba(30,60,110,.08);
  --shadow-md: 0 3px 12px rgba(30,60,110,.12);
  --ease: cubic-bezier(.4,0,.2,1);
  --dur: 160ms;
}

* { box-sizing: border-box; }
body {
  margin:0; font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;
  background:var(--bg); color:var(--text); font-size:15px;
}
a { color:var(--blue); text-decoration:none; }
::selection { background:var(--blue); color:#fff; }
:focus-visible { outline:2px solid var(--blue); outline-offset:2px; border-radius:var(--r-sm); }
.muted { color:var(--muted); font-size:13px; }

/* ---------- 政务页头 ---------- */
.gov-banner {
  background:linear-gradient(135deg, #0f3a72 0%, #1e5aa8 55%, #2f74c9 100%);
  color:#fff; padding:34px 24px 30px; text-align:center;
}
.gov-banner .org {
  font-size:34px; font-weight:700; letter-spacing:.18em;
  font-family:"Microsoft YaHei","STZhongsong","SimHei",sans-serif;
  text-shadow:0 2px 6px rgba(0,20,50,.35); margin:0;
}
.gov-banner .org-en {
  font-size:12px; letter-spacing:.12em; opacity:.85; text-transform:uppercase; margin-top:6px;
}
.gov-banner .app {
  display:inline-block; margin-top:16px; font-size:19px; letter-spacing:.3em;
  padding:8px 28px; border:1px solid rgba(255,255,255,.55); border-radius:var(--r-md);
  background:rgba(255,255,255,.10);
}
.gov-nav {
  background:var(--blue); color:#fff; text-align:center;
  font-size:15px; letter-spacing:.1em; padding:11px 16px;
}
.gov-nav b { font-weight:600; }

/* ---------- 政务页脚 ---------- */
.gov-footer {
  margin-top:48px; background:var(--blue-deep); color:rgba(255,255,255,.85);
  text-align:center; font-size:13px; padding:18px 16px; line-height:2;
}
.gov-footer span { margin:0 18px; white-space:nowrap; display:inline-block; }

/* ---------- 按钮 ---------- */
.btn, button { font-family:inherit; cursor:pointer;
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease), opacity var(--dur) var(--ease); }
button:disabled { opacity:.5; cursor:default; }
.btn { padding:9px 22px; background:var(--blue); color:#fff; border:0; border-radius:var(--r-md);
  font-size:14px; white-space:nowrap; flex-shrink:0; }
.btn:hover:not(:disabled) { background:var(--blue-dark); }
.btn:active:not(:disabled) { transform:scale(.97); }
.btn.ghost { background:#fff; color:var(--blue); border:1px solid var(--blue); }
.btn.ghost:hover:not(:disabled) { background:var(--blue-light); }

/* ---------- 高亮标记 ---------- */
.hl { background:var(--gold); color:#4a3800; padding:0 4px; border-radius:2px; }
.hl-ok { background:var(--green-soft); color:#1d4019; padding:0 4px; border-radius:2px; }

/* ---------- 卡片（蓝色题头政务样式） ---------- */
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:var(--sp-6); margin-bottom:var(--sp-5); box-shadow:var(--shadow-sm); }
.card .card-title {
  margin:calc(var(--sp-6) * -1) calc(var(--sp-6) * -1) var(--sp-4);
  background:linear-gradient(90deg, var(--blue) 0%, #3a7ecf 100%);
  color:#fff; font-size:15px; letter-spacing:.08em;
  padding:10px var(--sp-6); border-radius:var(--r-lg) var(--r-lg) 0 0;
}

/* ---------- 输入 ---------- */
input[type=text], input[type=search] {
  width:100%; padding:11px 14px; background:#fff; border:1px solid var(--border-strong);
  border-radius:var(--r-md); color:var(--text); font-size:15px; font-family:inherit;
  transition:border-color var(--dur) var(--ease); }
input[type=text]:focus, input[type=search]:focus { border-color:var(--blue); }

/* ================= 首页 ================= */
.wrap { max-width:860px; margin:0 auto; padding:var(--sp-8) var(--sp-6) 0; }
.desc { text-align:center; line-height:2; color:var(--text-dim); font-size:15px; margin:0 0 var(--sp-8); }

.row { display:flex; gap:var(--sp-3); margin-top:14px; }
.task { display:flex; justify-content:space-between; align-items:center;
  padding:var(--sp-3) var(--sp-2); margin:0 calc(var(--sp-2) * -1);
  border-bottom:1px solid var(--blue-light); font-size:14px; border-radius:var(--r-sm);
  transition:background var(--dur) var(--ease); }
.task:hover { background:var(--blue-light); }
.status-review { color:var(--gold-strong); } .status-processing { color:var(--blue); }
.status-done { color:var(--green); } .status-failed { color:var(--red); }

#drop, #p2w {
  border:2px dashed var(--border-strong); border-radius:var(--r-lg); padding:34px; text-align:center;
  color:var(--muted); cursor:pointer;
  transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease); }
#drop:hover, #p2w:hover { border-color:var(--blue); color:var(--blue); background:var(--blue-light); }
#drop.on { border-color:var(--blue); color:var(--blue); background:var(--blue-light); }
.err { color:var(--red); font-size:14px; margin-top:10px; min-height:20px; }

/* ================= 校对页 ================= */
.topbar { display:flex; justify-content:space-between; align-items:center; padding:10px 20px;
  position:sticky; top:0; background:var(--blue); color:#fff; z-index:5; box-shadow:var(--shadow-sm); }
.topbar h2 { margin:0; font-size:16px; font-weight:600; letter-spacing:.06em; }
.topbar a { color:#fff; }
.topbar .muted { color:rgba(255,255,255,.75); }
.topbar .btn { background:#fff; color:var(--blue); }
.topbar .btn:hover:not(:disabled) { background:var(--blue-light); }
.topbar .btn.ghost { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.6); }
.topbar .btn.ghost:hover:not(:disabled) { background:rgba(255,255,255,.12); }

#prog-card { max-width:640px; margin:60px auto; }
.bar { height:8px; background:var(--blue-light); border-radius:4px; overflow:hidden; margin:12px 0; }
.bar i { display:block; height:100%; background:var(--blue); transition:width .5s var(--ease); }

#workspace { display:none; }
.cols { display:flex; gap:0; align-items:flex-start; }
#doc { flex:1 1 60%; min-width:0; padding:var(--sp-8) 40px; }
.paper { background:var(--paper); color:var(--paper-text); border:1px solid var(--border);
  border-radius:var(--r-md); padding:44px 52px; max-width:820px; margin:0 auto 18px;
  box-shadow:var(--shadow-md); line-height:2; font-size:15.5px;
  font-family:"Songti SC","Noto Serif CJK SC",serif; }
.paper h1,.paper h2,.paper h3,.paper h4 { font-family:"Microsoft YaHei","Heiti SC",sans-serif; line-height:1.5; }
.paper h1 { font-size:21px; text-align:center; } .paper h2 { font-size:18px; } .paper h3,.paper h4 { font-size:16px; }
.paper table { border-collapse:collapse; margin:12px 0; font-size:13px; max-width:100%; display:block; overflow-x:auto; }
.paper td,.paper th { border:1px solid #999; padding:4px 8px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.pagesep { text-align:center; color:var(--muted); font-size:12px; letter-spacing:.2em; margin:6px 0 14px; }
.hlw { background:var(--gold); color:#4a3800; padding:0 3px; border-radius:2px; cursor:pointer; font-weight:600;
  border-bottom:2px solid var(--gold-strong); transition:transform var(--dur) var(--ease); }
.hlw:hover { transform:translateY(-1px); }
.hlw.done { background:var(--green-soft); color:#1d4019; border-bottom-color:var(--green); }
.hlw.active { outline:2.5px solid var(--red); }

#side { flex:0 0 40%; max-width:520px; position:sticky; top:49px; height:calc(100vh - 49px);
  overflow-y:auto; border-left:1px solid var(--border); padding:var(--sp-5) var(--sp-6); background:var(--surface); }
.nav { display:flex; gap:var(--sp-2); align-items:center; margin-bottom:var(--sp-3); }
.nav .count { flex:1; text-align:center; font-size:14px; font-variant-numeric:tabular-nums; }
.nav .btn.ghost { background:#fff; color:var(--blue); border:1px solid var(--blue); }
.nav .btn.ghost:hover:not(:disabled) { background:var(--blue-light); }

.imgbox { position:relative; border:1px solid var(--border-strong); border-radius:var(--r-md); overflow:hidden;
  height:280px; background:#e9edf2; cursor:grab; box-shadow:var(--shadow-sm); }
.imgbox:active { cursor:grabbing; }
.imgbox img { width:100%; transform-origin:top left; position:relative; }
.imgband { position:absolute; left:0; right:0; border:2px dashed rgba(208,57,46,.85);
  border-left:none; border-right:none; background:rgba(208,57,46,.07); pointer-events:none; }
.imgtools { display:flex; gap:6px; margin:8px 0 14px; flex-wrap:wrap; }
.imgtools button { padding:5px 12px; font-size:13px; background:#fff; color:var(--text);
  border:1px solid var(--border-strong); border-radius:var(--r-sm); }
.imgtools button:hover { border-color:var(--blue); color:var(--blue); }

.ctx { background:var(--blue-light); border:1px solid var(--border); border-radius:var(--r-md);
  padding:12px 14px; font-size:15px; line-height:1.9; margin-bottom:var(--sp-4); }
.ctx .mark { background:var(--gold); color:#4a3800; padding:0 4px; border-radius:2px; font-weight:600; }

.cands { display:flex; gap:var(--sp-2); flex-wrap:wrap; align-items:center; }
.cands button.cand { padding:10px 22px; font-size:17px; background:#fff; color:var(--text);
  border:1px solid var(--border-strong); border-radius:var(--r-md); font-family:inherit;
  font-variant-numeric:tabular-nums; }
.cands button.cand:hover { border-color:var(--blue); color:var(--blue); }
.cands button.cand:active { transform:scale(.96); }
.cands button.cand kbd { font-size:10px; color:var(--muted); border:1px solid var(--border-strong);
  border-radius:3px; padding:0 4px; margin-right:8px; vertical-align:2px; font-family:inherit; }
.cands button.cand.sel { background:var(--green); color:#fff; font-weight:600; border-color:var(--green); }
.cands button.cand.sel kbd { color:#d9ecd4; border-color:#78ab72; }
.cands input { width:110px; padding:9px 12px; background:#fff; border:1px solid var(--border-strong);
  border-radius:var(--r-md); color:var(--text); font-family:inherit; font-size:16px; }
.alt { color:var(--blue); font-size:13px; margin-top:10px; }
.kbd-tip { margin-top:18px; }

#fullview { position:fixed; inset:0; background:rgba(10,25,50,.92); display:none; overflow:auto; z-index:99; }
#fullview img { display:block; width:96%; max-width:1400px; margin:16px auto; }
#fullview .close { position:fixed; top:14px; right:20px; font-size:26px; color:#fff; cursor:pointer; }

@media (max-width: 900px) {
  .cols { flex-direction:column-reverse; }
  #side { position:static; height:auto; max-width:none; width:100%; }
  .gov-banner .org { font-size:24px; letter-spacing:.1em; }
  .gov-footer span { margin:0 8px; }
}
