/* 文件智能归档系统 轻量化样式 */
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: 'PingFang SC', 'Microsoft YaHei', 'Segoe UI', Arial, sans-serif;
  background: #f4f6fb; color: #1f2d3d; font-size: 14px; line-height: 1.6;
}
a { color: #2b6cb0; text-decoration: none; }
.container { max-width: 980px; margin: 0 auto; padding: 16px; }

/* 顶部导航 */
.topbar {
  background: #1b3a6b; color: #fff;
  padding: 14px 24px; display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
}
.topbar .brand { font-size: 17px; font-weight: 600; letter-spacing: .5px; }
.topbar .brand small { font-weight: 400; opacity: .75; margin-left: 8px; font-size: 12px; }
.topbar nav { display: flex; gap: 6px; margin-left: auto; }
.topbar nav a {
  color: #cfe0f5; padding: 6px 14px; border-radius: 8px; font-size: 13px;
}
.topbar nav a.active { background: rgba(255,255,255,.16); color: #fff; font-weight: 500; }
.topbar nav a:hover { background: rgba(255,255,255,.1); }

/* 状态条 */
.banner { background: #eaf2fd; border: 1px solid #c9dcf5; color: #1b3a6b; border-radius: 10px; padding: 10px 14px; font-size: 13px; margin: 14px 0; }
.banner .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #e6a23c; margin-right: 6px; }

/* 上传区 */
.upload-zone {
  border: 2px dashed #b8cbe4; border-radius: 14px; background: #fff;
  padding: 40px 20px; text-align: center; cursor: pointer; transition: all .2s;
}
.upload-zone:hover, .upload-zone.dragover { border-color: #2b6cb0; background: #f0f6ff; }
.upload-zone .big { font-size: 30px; margin-bottom: 8px; }
.upload-zone .tip { color: #7a8aa0; font-size: 13px; }
.upload-zone .accept { color: #2b6cb0; font-size: 12px; margin-top: 8px; }

/* 卡片 */
.card { background: #fff; border: 1px solid #e4e9f2; border-radius: 12px; padding: 16px; margin: 12px 0; }
.card h3 { font-size: 15px; margin-bottom: 10px; color: #1b3a6b; }

/* 文件项 */
.file-item { border: 1px solid #e4e9f2; border-radius: 12px; background: #fff; margin: 12px 0; overflow: hidden; }
.file-head { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: #f8fafd; border-bottom: 1px solid #eef2f8; flex-wrap: wrap; }
.file-head .fname { font-weight: 600; word-break: break-all; flex: 1; min-width: 160px; }
.file-head .ftag { font-size: 11px; background: #eaf2fd; color: #2b6cb0; padding: 2px 8px; border-radius: 20px; }
.file-body { padding: 14px 16px; }

/* 建议展示 */
.suggest-box { background: #f4f8ff; border: 1px solid #d8e6f7; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.suggest-box .row { display: flex; gap: 8px; align-items: baseline; margin: 4px 0; font-size: 13px; flex-wrap: wrap; }
.suggest-box .label { color: #7a8aa0; width: 70px; flex: none; }
.suggest-box .val { font-weight: 500; color: #1f2d3d; }

/* 表单 */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.form-grid .full { grid-column: 1 / -1; }
.field label { display: block; font-size: 12px; color: #7a8aa0; margin-bottom: 4px; }
select, input[type=text] {
  width: 100%; padding: 8px 10px; border: 1px solid #cdd7e5; border-radius: 8px;
  font-size: 13px; background: #fff; color: #1f2d3d;
}
select:focus, input[type=text]:focus { outline: none; border-color: #2b6cb0; box-shadow: 0 0 0 2px rgba(43,108,176,.12); }

/* 有效期 */
.validity { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 3px 10px; border-radius: 20px; }
.validity.valid { background: #e8f7ee; color: #2c9a4e; }
.validity.expiring { background: #fdf3e2; color: #c07f10; }
.validity.expired { background: #fdeaea; color: #d14343; }
.validity.unknown { background: #eef1f6; color: #7a8aa0; }

/* 选项 */
.options { display: flex; gap: 16px; flex-wrap: wrap; margin: 10px 0; }
.options label { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #44536b; cursor: pointer; }

/* 按钮 */
.btn {
  display: inline-block; padding: 9px 18px; border-radius: 8px; border: none;
  font-size: 13px; cursor: pointer; transition: all .15s; font-weight: 500;
}
.btn-primary { background: #2b6cb0; color: #fff; }
.btn-primary:hover { background: #245a94; }
.btn-ghost { background: #fff; color: #44536b; border: 1px solid #cdd7e5; }
.btn-ghost:hover { background: #f4f8ff; }
.btn-success { background: #2c9a4e; color: #fff; }
.btn-success:hover { background: #258043; }
.btn-danger { background: #d14343; color: #fff; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* 提示 */
.msg { padding: 8px 12px; border-radius: 8px; font-size: 13px; margin: 8px 0; display: none; }
.msg.show { display: block; }
.msg.ok { background: #e8f7ee; color: #2c9a4e; }
.msg.err { background: #fdeaea; color: #d14343; }

/* 状态 */
.status-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.spin { width: 14px; height: 14px; border: 2px solid #cdd7e5; border-top-color: #2b6cb0; border-radius: 50%; animation: rot .7s linear infinite; display: none; }
.spin.on { display: inline-block; }
@keyframes rot { to { transform: rotate(360deg); } }

/* 搜索 */
.search-bar { display: flex; gap: 10px; margin: 14px 0; }
.search-bar input { flex: 1; padding: 12px 14px; border: 1px solid #cdd7e5; border-radius: 10px; font-size: 14px; }
.search-result { border: 1px solid #e4e9f2; border-radius: 10px; padding: 12px 14px; margin: 8px 0; background: #fff; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.search-result .r-name { flex: 1; min-width: 180px; font-weight: 500; }
.search-result .r-meta { font-size: 12px; color: #7a8aa0; }
.search-result .ops { display: flex; gap: 6px; }

/* 表格（历史） */
table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #eef2f8; }
th { color: #7a8aa0; font-weight: 500; background: #f8fafd; }

.empty { color: #9aa7ba; text-align: center; padding: 30px 0; font-size: 13px; }

@media (max-width: 640px) {
  .form-grid { grid-template-columns: 1fr; }
  .topbar nav { margin-left: 0; width: 100%; }
}

/* ---------- Word 拆解 ---------- */
.split-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0 6px; }
.split-head .info { font-size: 12px; color: #7a8aa0; }
.split-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin-top: 12px; }
.split-card { border: 1px solid #e4e9f2; border-radius: 12px; background: #fff; overflow: hidden; display: flex; flex-direction: column; }
.split-card .s-thumb { background: #f8fafd; border-bottom: 1px solid #eef2f8; padding: 8px; text-align: center; position: relative; }
.split-card .s-thumb img { max-width: 100%; max-height: 160px; border-radius: 6px; }
.split-card .s-thumb .s-num { position: absolute; top: 10px; left: 10px; background: rgba(27,58,107,.8); color: #fff; font-size: 11px; padding: 2px 8px; border-radius: 12px; }
.split-card .s-ctx { font-size: 11.5px; color: #7a8aa0; background: #f8fafd; padding: 8px 12px; border-bottom: 1px solid #eef2f8; max-height: 44px; overflow: hidden; }
.split-card .s-body { padding: 12px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.split-card .s-row { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #44536b; flex-wrap: wrap; }
.split-card .s-row .lbl { color: #7a8aa0; width: 58px; flex: none; }
.split-card .s-name input { padding: 6px 8px; font-size: 12.5px; }
.split-card .s-ops { display: flex; gap: 8px; margin-top: 4px; }
.split-card .s-ops .btn { flex: 1; text-align: center; padding: 7px 10px; font-size: 12.5px; }
.split-check { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #44536b; cursor: pointer; }
