/* ===== 左侧栏布局（配色沿用你西南求职器那套蓝白：#41586f / #eef1f5） ===== */
.app-layout{display:flex;min-height:100vh;align-items:stretch}
.sidebar{width:220px;flex-shrink:0;background:#fff;border-right:1px solid #dde3ea;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow-y:auto}
.sidebar-brand{padding:18px 18px 14px;border-bottom:1px solid #e8edf2}
.sidebar-brand h1{font-size:16px;margin:0 0 3px;color:#41586f}
.sidebar-brand .subtitle{font-size:11.5px;color:#6b7280;line-height:1.5}
.sidebar-nav{list-style:none;margin:0;padding:8px 10px;flex:1}
.sidebar-nav li{margin-bottom:2px}
.nav-item{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:8px;color:#41505e;font-size:13.5px;cursor:pointer;text-decoration:none;border-left:3px solid transparent}
a.nav-item{text-decoration:none}
.nav-item:hover{background:#eef1f5;color:#41586f}
.nav-item.active{background:#e7edf4;color:#41586f;font-weight:600;border-left-color:#41586f}
.nav-item .nav-icon{font-size:15px}
.sidebar-footer{padding:12px 18px;font-size:11.5px;color:#6b7280;border-top:1px solid #e8edf2}
.main-content{flex:1;min-width:0;background:#eef1f5;padding-bottom:40px}
.page-head{background:#41586f;color:#fff;padding:13px 24px}
.page-head h1{font-size:18px;margin:0;color:#fff}
.page-head .sub{font-size:12px;color:rgba(255,255,255,.85);margin:3px 0 0;line-height:1.6}

/* 空结果兜底提示（2026-10-04）：严格条件筛不出东西时，说清卡在哪并给放宽后的打底结果 */
.fallback-note { background:#eef1f5; border:1px solid #d5dde6; border-radius:10px; padding:12px 16px; margin-bottom:12px; font-size:13px; line-height:1.6; color:#44505e; }
.fallback-note .fn-head { font-weight:700; color:#44505e; margin-bottom:4px; }
.fallback-note .fn-body { color:#44505e; }


/* ===== 偏好面板（由 style.css 并入，供所有页面使用） ===== */
/* ===== 云同步弹层 ===== */
.sync-modal {
  position: fixed; inset: 0; background: rgba(0, 0, 0, .4);
  display: flex; align-items: center; justify-content: center; z-index: 999;
}
.sync-modal-box {
  background: #fff; border-radius: 14px; padding: 24px 28px;
  width: 460px; max-width: 92vw; box-shadow: 0 10px 40px rgba(0, 0, 0, .18);
  position: relative;
}
.sync-modal-box h3 { font-size: 17px; margin-bottom: 6px; }
.sync-tip { font-size: 12px; color: #777; margin-bottom: 16px; line-height: 1.6; }
.sync-row { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; }
.sync-label { width: 70px; font-size: 13px; color: #444; flex-shrink: 0; }
.sync-input {
  flex: 1; border: 1px solid #d5dbe2; border-radius: 8px; padding: 8px 10px;
  font-size: 13px; font-family: monospace;
}
.sync-input:focus { outline: none; border-color: #1a5fa8; }
.sync-status { font-size: 12px; color: #1a5fa8; }
.btn-copy { background: #fff; border: 1px solid #1a5fa8; color: #1a5fa8; border-radius: 8px; padding: 7px 14px; font-size: 13px; cursor: pointer; }
.btn-copy:hover { background: #eef4fb; }
.btn-close { position: absolute; top: 10px; right: 14px; background: none; border: none; font-size: 15px; color: #999; cursor: pointer; }

/* ===== 偏好面板（行为学习） ===== */
.pref-box { width: 680px; }
.pref-body { max-height: 66vh; overflow-y: auto; margin-right: -8px; padding-right: 8px; }
.pref-foot { margin-top: 14px; padding-top: 12px; border-top: 1px solid #eef1f5; min-height: 20px; }

.pref-intro {
  background: #e8f0f6;
  border-left: 3px solid #41586f;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 18px;
  font-size: 13.5px;
  line-height: 1.7;
  color: #33414e;
}
.pref-sec { margin-bottom: 20px; }
.pref-sec-title {
  font-size: 13px; font-weight: 600; color: #1f2937; margin-bottom: 10px;
  display: flex; align-items: center; gap: 8px;
}
.pref-hint { font-size: 11px; font-weight: 400; color: #9aa3af; }
.pref-badge {
  background: #efecf4; color: #5d5490; border-radius: 10px;
  padding: 1px 8px; font-size: 11px; font-weight: 500;
}

.pref-modes { display: flex; gap: 10px; }
.pref-mode {
  flex: 1; min-width: 0; text-align: left; background: #f8fafc; border: 1px solid #e2e8f0;
  border-radius: 10px; padding: 12px 14px; cursor: pointer; font: inherit;
  display: flex; flex-direction: column; gap: 5px;
}
.pref-mode b { font-size: 13px; color: #334155; }
.pref-mode span { font-size: 12px; color: #64748b; line-height: 1.5; }
.pref-mode:hover { border-color: #b9c3d4; }
.pref-mode.active { background: #efecf4; border-color: #5d5490; }
.pref-mode.active b { color: #5d5490; }

.pref-stats { display: flex; gap: 10px; }
.pref-stat {
  flex: 1; background: #f8fafc; border-radius: 10px; padding: 10px;
  text-align: center; display: flex; flex-direction: column; gap: 2px;
}
.pref-stat b { font-size: 18px; color: #1f2937; }
.pref-stat span { font-size: 11px; color: #94a3b8; }
.pref-ev { margin-top: 8px; font-size: 11px; color: #64748b; }
.pref-tip {
  margin-top: 8px; font-size: 12px; color: #7a5a2c;
  background: #f7efe1; border: 1px solid #fde68a; border-radius: 8px; padding: 7px 10px;
}
.pref-empty { font-size: 12px; color: #94a3b8; padding: 14px; background: #f8fafc; border-radius: 10px; text-align: center; }

.pref-row {
  display: flex; gap: 12px; align-items: flex-start; justify-content: space-between;
  border: 1px solid #eef1f5; border-radius: 10px; padding: 10px 12px; margin-bottom: 8px;
  border-left: 3px solid #94a3b8;
}
.pref-row.up { border-left-color: #16a34a; background: #f6fdf8; }
.pref-row.down { border-left-color: #b05a52; background: #fffafa; }
.pref-row-main { flex: 1; min-width: 0; }
.pref-row-title { font-size: 13px; color: #1f2937; font-weight: 500; }
.pref-w { font-size: 12px; font-weight: 600; color: #5d5490; }
.pref-drift { font-size: 11px; color: #b45309; margin-left: 6px; }
.pref-row-exp { font-size: 11px; color: #64748b; margin-top: 3px; line-height: 1.5; }
.pref-row-act { display: flex; gap: 6px; align-items: center; flex-shrink: 0; }
.pref-ok, .pref-no {
  border-radius: 7px; padding: 5px 11px; font-size: 12px; cursor: pointer; font: inherit;
  font-size: 12px;
}
.pref-ok { background: #5d5490; color: #fff; border: 1px solid #5d5490; }
.pref-ok:hover { background: #7e22ce; }
.pref-no { background: #fff; color: #64748b; border: 1px solid #d5dbe2; }
.pref-no:hover { background: #f1f5f9; }
.pref-state { font-size: 11px; padding: 3px 8px; border-radius: 6px; }
.pref-state.ok { background: #e4efe9; color: #2c6049; }
.pref-state.no { background: #f1f5f9; color: #64748b; }

.pref-hard { background: #f8fafc; border-radius: 10px; padding: 12px; }
.pref-hard-row { display: flex; align-items: center; gap: 7px; font-size: 13px; color: #334155; cursor: pointer; flex-wrap: wrap; }
.pref-hard-list { margin-top: 8px; font-size: 11px; color: #94a3b8; line-height: 1.8; }

.pref-danger {
  background: #fff; color: #8f4a42; border: 1px solid #fecaca;
  border-radius: 8px; padding: 8px 14px; font-size: 12px; cursor: pointer; font: inherit;
}
.pref-danger:hover { background: #f1e6e4; }

#btnPrefBrain { position: relative; }
#btnPrefBrain.pref-on { background: #efecf4 !important; }
.pref-dot {
  position: absolute; top: -6px; right: -6px; min-width: 15px; height: 15px;
  background: #b05a52; color: #fff; border-radius: 8px; font-size: 10px;
  line-height: 15px; text-align: center; padding: 0 4px;
}

/* 卡片上的个性化加/减分标签 */
.badge-pref-up { background: #efecf4; color: #5d5490; cursor: help; }
.badge-pref-down { background: #f1f5f9; color: #64748b; cursor: help; }

