﻿/* ====== 宁夏高考志愿填报辅助系统 ====== */
:root {
  --primary: #1a3a5c;
  --primary-light: #2563eb;
  --primary-dark: #0f1f33;
  --accent: #3b82f6;
  --success: #10b981;
  --warning: #f59e0b;
  --danger: #ef4444;
  --gray-50: #f8fafc;
  --gray-100: #f1f5f9;
  --gray-200: #e2e8f0;
  --gray-300: #cbd5e1;
  --gray-400: #94a3b8;
  --gray-500: #64748b;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1e293b;
  --gray-900: #0f172a;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
  --shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06);
  --shadow-lg: 0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);
  --radius: 10px;
  --radius-sm: 6px;
  --radius-lg: 14px;
}
* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  background: var(--gray-50); color: var(--gray-800); line-height: 1.6; min-height: 100vh;
}
a { color: var(--primary-light); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--primary); }

/* Header */
.app-header {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--primary-light) 100%);
  color: #fff; padding: 0 32px; height: 68px; display: flex; align-items: center; justify-content: space-between;
  position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 16px rgba(26,58,92,0.35);
}
.app-header .logo { font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 12px; }
.app-header .logo .sub { font-size: 11px; opacity: 0.5; font-weight: 400; }
.app-header nav { display: flex; gap: 2px; height: 100%; align-items: stretch; }
.app-header nav a { color: rgba(255,255,255,0.75); padding: 0 18px; display: flex; align-items: center; font-size: 14px; font-weight: 500; transition: all 0.2s; border-bottom: 2px solid transparent; }
.app-header nav a:hover { color: #fff; background: rgba(255,255,255,0.08); text-decoration: none; }
.app-header nav a.active { color: #fff; background: rgba(255,255,255,0.12); border-bottom-color: #fff; }

/* Layout */
.main-container { max-width: 1360px; margin: 0 auto; padding: 28px 24px; }
.page-header { margin-bottom: 24px; }
.page-header h1 { font-size: 26px; font-weight: 800; color: var(--primary-dark); }
.page-header p { font-size: 14px; color: var(--gray-500); margin-top: 4px; }

/* Stat Cards */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-bottom: 24px; }
.stat-card { background: #fff; border-radius: var(--radius); padding: 22px 24px; box-shadow: var(--shadow); border: 1px solid var(--gray-100); transition: all 0.2s; position: relative; overflow: hidden; }
.stat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.stat-card .label { font-size: 13px; color: var(--gray-500); margin-bottom: 6px; font-weight: 500; }
.stat-card .value { font-size: 30px; font-weight: 800; color: var(--primary); line-height: 1.2; }
.stat-card .value .unit { font-size: 14px; font-weight: 400; color: var(--gray-400); }
.stat-card .desc { font-size: 12px; color: var(--gray-400); margin-top: 4px; }

/* Clickable stat cards */
.stat-link { cursor: pointer; }
.stat-link:hover { border-left: 3px solid var(--primary); padding-left: 21px; }
/* Cards */
.card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); border: 1px solid var(--gray-100); overflow: hidden; transition: box-shadow 0.2s; }
.card:hover { box-shadow: var(--shadow-md); }
.card-header { padding: 16px 22px; border-bottom: 1px solid var(--gray-100); display: flex; align-items: center; justify-content: space-between; }
.card-header h2 { font-size: 15px; font-weight: 700; color: var(--gray-800); }
.card-body { padding: 20px 22px; }
.card-body.no-pad { padding: 0; }

/* ====== 复选框组（地域偏好多选） ====== */
.region-checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px 8px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  min-height: 36px;
  align-items: center;
}
.region-checkbox-item {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.15s;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  user-select: none;
}
.region-checkbox-item:hover {
  background: #e0e7ff;
  border-color: #a5b4fc;
}
.region-checkbox-item input[type="checkbox"] {
  accent-color: var(--primary-light);
  width: 14px;
  height: 14px;
  cursor: pointer;
}
.region-checkbox-item:has(input:checked) {
  background: #e0e7ff;
  border-color: var(--primary-light);
  color: var(--primary-light);
  font-weight: 500;
}
/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 20px; border-radius: 8px; font-size: 14px; font-weight: 600; border: none; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.btn:active { transform: scale(0.97); }
.btn-primary { background: linear-gradient(135deg, var(--primary-light), #1d4ed8); color: #fff; box-shadow: 0 2px 8px rgba(37,99,235,0.25); }
.btn-primary:hover { box-shadow: 0 4px 14px rgba(37,99,235,0.4); transform: translateY(-1px); color: #fff; text-decoration: none; }
.btn-success { background: linear-gradient(135deg, var(--success), #059669); color: #fff; }
.btn-success:hover { box-shadow: 0 4px 14px rgba(16,185,129,0.35); transform: translateY(-1px); color: #fff; text-decoration: none; }
.btn-outline { background: transparent; color: var(--primary-light); border: 2px solid var(--primary-light); }
.btn-outline:hover { background: var(--primary-light); color: #fff; text-decoration: none; }
.btn-sm { padding: 5px 12px; font-size: 12px; border-radius: 6px; }
.btn-lg { padding: 12px 32px; font-size: 16px; border-radius: 10px; }

/* Forms */
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 13px; font-weight: 600; color: var(--gray-700); margin-bottom: 6px; }
.form-group .hint { font-size: 12px; color: var(--gray-400); margin-top: 4px; }

.multi-select { position: relative; width: 100%; }
.multi-select-trigger { text-align: left; color: var(--gray-800); cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-select-panel { display: none; position: absolute; z-index: 60; top: calc(100% + 6px); left: 0; right: auto; width: min(720px, calc(100vw - 48px)); max-height: 420px; overflow-y: auto; padding: 12px; background: #fff; border: 1.5px solid var(--gray-300); border-radius: 8px; box-shadow: 0 18px 36px rgba(15, 23, 42, 0.18); }
.multi-select.open .multi-select-panel { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)); gap: 8px; }
.multi-select-option { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 7px 9px; border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-700); cursor: pointer; user-select: none; background: #fff; font-size: 13px; }
.multi-select-option:hover { border-color: var(--primary-light); background: #eff6ff; }
.multi-select-option input { width: 14px; height: 14px; accent-color: var(--primary-light); }
.multi-select-option:has(input:checked) { border-color: var(--primary-light); background: #dbeafe; color: var(--primary-dark); font-weight: 700; }
@media (max-width: 760px) { .multi-select-panel { width: min(420px, calc(100vw - 32px)); } .multi-select.open .multi-select-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.form-control { width: 100%; padding: 10px 14px; border: 1.5px solid var(--gray-300); border-radius: 8px; font-size: 14px; transition: all 0.2s; outline: none; background: #fff; color: var(--gray-800); }
.form-control:focus { border-color: var(--primary-light); box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
select.form-control { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px; }
textarea.form-control { min-height: 80px; resize: vertical; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-row-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
@media (max-width: 768px) { .form-row, .form-row-3 { grid-template-columns: 1fr; } }

/* Tables */
table { width: 100%; border-collapse: separate; border-spacing: 0; }
thead th { background: var(--gray-50); padding: 12px 14px; font-size: 12px; font-weight: 700; color: var(--gray-600); text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 2px solid var(--gray-200); }
thead th:first-child { border-radius: 8px 0 0 0; }
thead th:last-child { border-radius: 0 8px 0 0; }
tbody td { padding: 11px 14px; font-size: 13px; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); }
tbody tr:hover td { background: var(--gray-50); }
tbody tr:last-child td:first-child { border-radius: 0 0 0 8px; }
tbody tr:last-child td:last-child { border-radius: 0 0 8px 0; }
.table-wrap { overflow-x: auto; }

/* Tags */
.tag { display: inline-block; padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.tag-985 { background: #dbeafe; color: #1e40af; }
.tag-211 { background: #dcfce7; color: #166534; }
.tag-reach { background: #fef2f2; color: #dc2626; }
.tag-target { background: #eff6ff; color: #2563eb; }
.tag-safety { background: #f0fdf4; color: #16a34a; }
.tag-prob-high { background: #dcfce7; color: #15803d; font-weight: 700; }
.tag-prob-mid { background: #fef3c7; color: #b45309; font-weight: 600; }
.tag-prob-low { background: #fee2e2; color: #b91c1c; font-weight: 600; }

/* Tabs */
.tab-bar { display: flex; border-bottom: 2px solid var(--gray-200); margin-bottom: 16px; }
.tab-item { padding: 10px 24px; cursor: pointer; font-size: 14px; font-weight: 600; color: var(--gray-500); border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all 0.2s; }
.tab-item:hover { color: var(--primary-light); }
.tab-item.active { color: var(--primary-light); border-bottom-color: var(--primary-light); }
.tab-content { display: none; }
.tab-content.active { display: block; }

/* Modal */
.modal-overlay { display: none; position: fixed; inset: 0; background: rgba(15,23,42,0.5); z-index: 1000; align-items: center; justify-content: center; padding: 20px; }
.modal-overlay.show { display: flex; }
.modal { background: #fff; border-radius: var(--radius-lg); max-width: 720px; width: 100%; max-height: 85vh; overflow: auto; box-shadow: var(--shadow-lg); }
.modal-header { padding: 18px 22px; border-bottom: 1px solid var(--gray-100); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; background: #fff; }
.modal-header h3 { font-size: 17px; font-weight: 700; }
.modal-body { padding: 22px; }
.modal-close { background: none; border: none; font-size: 24px; cursor: pointer; color: var(--gray-400); padding: 4px 8px; border-radius: 6px; }
.modal-close:hover { background: var(--gray-100); }

/* Alerts */
.alert { padding: 14px 18px; border-radius: 8px; font-size: 13px; margin-bottom: 16px; }
.alert-info { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.alert-success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.alert-warning { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }

/* Student items */
.student-item { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border: 1px solid var(--gray-100); border-radius: 8px; margin-bottom: 8px; cursor: pointer; transition: all 0.15s; background: #fff; }
.student-item:hover { border-color: var(--primary-light); }
.student-item .avatar { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--primary-light), #7c3aed); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 700; flex-shrink: 0; }
.student-item .info { flex: 1; }
.student-item .info .name { font-size: 15px; font-weight: 600; }
.student-item .info .meta { font-size: 12px; color: var(--gray-500); }
.student-item .score { font-size: 20px; font-weight: 800; color: var(--primary); }

/* Detail grid */
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-item { padding: 10px 14px; background: var(--gray-50); border-radius: 6px; }
.detail-item .label { font-size: 11px; color: var(--gray-500); font-weight: 500; }
.detail-item .value { font-size: 15px; font-weight: 700; margin-top: 2px; }

/* Empty state */
.empty-state { text-align: center; padding: 48px 20px; color: var(--gray-400); }
.loading { display: flex; align-items: center; justify-content: center; padding: 48px; color: var(--gray-500); gap: 10px; }
.spinner { width: 22px; height: 22px; border: 2.5px solid var(--gray-200); border-top-color: var(--primary-light); border-radius: 50%; animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Footer */
.app-footer { text-align: center; padding: 24px; color: var(--gray-400); font-size: 12px; border-top: 1px solid var(--gray-100); margin-top: 48px; }

/* Utilities */
.flex { display: flex; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-2 { gap: 8px; }
.gap-4 { gap: 16px; }
.mb-4 { margin-bottom: 16px; }
.mt-4 { margin-top: 16px; }
.text-center { text-align: center; }
.text-sm { font-size: 13px; }
.text-muted { color: var(--gray-500); }
.font-bold { font-weight: 700; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
@media (max-width: 768px) { .grid-2, .grid-3 { grid-template-columns: 1fr; } }
@media (max-width: 900px) {
  .app-header { padding: 0 16px; flex-wrap: wrap; height: auto; min-height: 56px; }
  .app-header nav a { padding: 10px 14px; font-size: 13px; }
  .main-container { padding: 16px; }
  .page-header h1 { font-size: 22px; }
}


/* ====== Print Styles ====== */
@media print {
  body { background: #fff; font-size: 11pt; line-height: 1.4; }
  .app-header, .app-footer, .plan-toolbar, .btn { display: none !important; }
  .main-container { max-width: 100%; padding: 0; margin: 0; }
  .card { break-inside: avoid; box-shadow: none; border: 1px solid #ddd; }
  .card-header { background: #f5f5f5; }
  .stats-grid { grid-template-columns: repeat(4, 1fr); }
  .stat-card { box-shadow: none; border: 1px solid #ddd; }
  table { font-size: 9pt; }
  thead th { background: #eee !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .tag-985, .tag-211, .tag-prob-high, .tag-prob-mid, .tag-prob-low { 
    -webkit-print-color-adjust: exact; print-color-adjust: exact; 
  }
  .page-header h1 { font-size: 18pt; }
  @page { margin: 1.5cm; }
}

/* ====== Export Modal ====== */
.export-modal { position: fixed; inset: 0; background: rgba(15,23,42,0.5); z-index: 2000; display: none; align-items: center; justify-content: center; padding: 20px; }
.export-modal.show { display: flex; }
.export-modal .modal { background: #fff; border-radius: 14px; max-width: 560px; width: 100%; padding: 24px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.export-modal h3 { font-size: 17px; font-weight: 700; margin-bottom: 12px; }
.export-modal textarea { width: 100%; height: 260px; border: 1.5px solid #d1d5db; border-radius: 8px; padding: 12px; font-size: 12px; font-family: "Courier New", monospace; resize: vertical; outline: none; }
.export-modal textarea:focus { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
.export-modal .actions { display: flex; gap: 8px; margin-top: 12px; justify-content: flex-end; }

/* MVP additions */
.split { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.action-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.filter-bar { display:grid; grid-template-columns: 1.3fr 1fr 1fr 1fr auto; gap:12px; align-items:end; }
.compact-list p { margin-bottom:8px; }
.btn-danger { background:#ef4444; color:#fff; }
.btn-danger:hover { background:#dc2626; color:#fff; }
.alert-danger { background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }
.text-xs { font-size:12px; }
.major-tag { display:inline-flex; align-items:center; gap:4px; background:#e0e7ff; color:#3730a3; border-radius:4px; padding:2px 8px; font-size:12px; }
.plan-table .order, td.order { font-weight:700; color:#64748b; }
@media (max-width: 900px) { .split { flex-direction:column; } .filter-bar { grid-template-columns:1fr; } .action-row .btn { width:auto; } }

/* Simulation module */
.simulation-layout { display:grid; grid-template-columns: 360px minmax(0, 1fr); gap:16px; align-items:start; }
.sim-panel { position: sticky; top: 84px; }
.sim-results { min-width:0; }
.segmented { display:grid; grid-template-columns: repeat(3, 1fr); gap:6px; background:var(--gray-100); padding:4px; border-radius:8px; }
.segment { border:0; background:transparent; color:var(--gray-600); padding:8px 10px; border-radius:6px; cursor:pointer; font-weight:700; }
.segment.active { background:#fff; color:var(--primary-light); box-shadow:var(--shadow-sm); }
.sim-stepper { display:grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap:10px; }
.sim-step { border:1px solid var(--gray-200); background:var(--gray-50); border-radius:8px; padding:12px; min-height:124px; }
.sim-step.done { background:#f0fdf4; border-color:#bbf7d0; }
.sim-step-no { width:26px; height:26px; border-radius:50%; background:var(--primary-light); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; margin-bottom:8px; }
.sim-step strong { font-size:13px; color:var(--gray-800); }
.sim-step p { font-size:12px; color:var(--gray-500); line-height:1.55; margin-top:4px; }
@media (max-width: 1100px) { .simulation-layout { grid-template-columns: 1fr; } .sim-panel { position: static; } .sim-stepper { grid-template-columns:1fr; } }

.sim-table-hint { padding:10px 14px; background:#eff6ff; color:#1e40af; border-bottom:1px solid #bfdbfe; font-size:13px; }
.clickable-row { cursor:pointer; }
.clickable-row:hover td { background:#eef6ff !important; }
.sim-detail-section { margin-top:16px; padding-top:14px; border-top:1px solid var(--gray-100); }
.sim-detail-section h4 { font-size:14px; color:var(--gray-800); margin-bottom:6px; }
.sim-detail-section p { font-size:13px; color:var(--gray-600); line-height:1.8; }

/* Batch simulation */
.batch-map { display:grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap:10px; margin-bottom:14px; }
.batch-card { text-align:left; border:1px solid var(--gray-200); background:#fff; border-radius:8px; padding:12px; cursor:pointer; min-height:138px; transition:all .18s; }
.batch-card:hover { border-color:var(--primary-light); box-shadow:var(--shadow-sm); }
.batch-card.active { border-color:var(--primary-light); background:#eff6ff; }
.batch-card span { display:inline-block; font-size:11px; font-weight:800; color:#1e40af; background:#dbeafe; padding:2px 7px; border-radius:4px; margin-bottom:8px; }
.batch-card strong { display:block; font-size:15px; color:var(--gray-900); margin-bottom:6px; }
.batch-card small { display:block; color:var(--gray-500); font-size:12px; line-height:1.55; }
.batch-info { border:1px solid var(--gray-100); border-radius:8px; background:var(--gray-50); padding:14px; }
.batch-info-title { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.batch-info-title h3 { font-size:17px; color:var(--primary-dark); }
.gaokao-form-table tbody tr:nth-child(-n+3) td { background:#fff7ed; }
.gaokao-form-table tbody tr:nth-last-child(-n+2) td { background:#f8fafc; }
@media (max-width: 1100px) { .batch-map { grid-template-columns:1fr 1fr; } }
@media (max-width: 640px) { .batch-map { grid-template-columns:1fr; } }

.capacity-summary { margin-bottom:14px; }
.capacity-table td:nth-child(2), .capacity-table td:nth-child(3) { min-width:220px; }
.capacity-table td { vertical-align:top; }

.form-preview-frame { width:100%; height:560px; border:1px solid var(--gray-200); border-radius:8px; background:#fff; }
@media (max-width: 900px) { .form-preview-frame { height:420px; } }

/* Brand logo */
.app-header .brand-logo { gap:10px; min-width:0; }
.brand-mark { display:inline-flex; align-items:center; justify-content:center; width:154px; height:42px; padding:5px 9px; background:#fff; border-radius:8px; box-shadow:0 1px 4px rgba(15,23,42,.18); flex-shrink:0; }
.brand-mark img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.brand-title { color:#fff; font-size:17px; font-weight:800; white-space:nowrap; }
.app-header .brand-logo .sub { color:#fff; opacity:.58; }
@media (max-width: 900px) { .brand-mark { width:126px; height:36px; } .brand-title { font-size:15px; } }
@media (max-width: 640px) { .brand-title { display:none; } .app-header .brand-logo .sub { display:none; } }

/* Brand logo refinement for dark navigation */
.app-header .brand-mark { background: transparent; box-shadow: none; border-radius:0; padding:0; width:150px; height:44px; }
.app-header .brand-mark img { filter:none; }
@media (max-width: 900px) { .app-header .brand-mark { width:126px; height:38px; } }

/* Refined wider brand mark after 百优升学 relayout */
.app-header .brand-mark { width:168px; height:44px; }
@media (max-width: 900px) { .app-header .brand-mark { width:142px; height:38px; } }


/* College search table */
.college-table { min-width: 1280px; table-layout: fixed; }
.college-table th:nth-child(1), .college-table td:nth-child(1) { width: 180px; }
.college-table th:nth-child(2), .college-table td:nth-child(2) { width: 76px; text-align:center; }
.college-table th:nth-child(3), .college-table td:nth-child(3) { width: 190px; }
.college-table th:nth-child(4), .college-table td:nth-child(4) { width: 86px; text-align:center; }
.college-table th:nth-child(5), .college-table td:nth-child(5),
.college-table th:nth-child(6), .college-table td:nth-child(6) { width: 96px; text-align:center; }
.college-table th:nth-child(7), .college-table td:nth-child(7) { width: 260px; }
.college-table th:nth-child(8), .college-table td:nth-child(8) { width: 296px; }
.eval-badge { display:inline-flex; align-items:center; justify-content:center; min-width:68px; padding:4px 10px; border-radius:4px; font-size:12px; font-weight:800; }
.eval-Aplus { background:#fee2e2; color:#991b1b; }
.eval-A { background:#ffedd5; color:#9a3412; }
.eval-Aminus { background:#fef3c7; color:#92400e; }
.eval-Bplus { background:#dbeafe; color:#1d4ed8; }
.eval-B { background:#e0f2fe; color:#0369a1; }
.eval-Bminus { background:#e0f7fa; color:#0f766e; }
.eval-Cplus { background:#ecfccb; color:#3f6212; }
.eval-C { background:#f7fee7; color:#4d7c0f; }
.eval-Cminus { background:#f1f5f9; color:#475569; }


/* Header layout refinement */
.app-header { gap:18px; }
.app-header .brand-logo { flex:0 0 auto; }
.brand-title { display:inline-flex; align-items:center; padding-left:10px; margin-left:2px; border-left:1px solid rgba(255,255,255,.28); font-size:18px; letter-spacing:0; }
.app-header nav { flex:1 1 auto; justify-content:flex-end; min-width:0; }
.app-header nav a { padding:0 13px; white-space:nowrap; }
@media (max-width: 1180px) { .app-header { padding:0 18px; } .brand-title { font-size:16px; } .app-header nav a { padding:0 9px; font-size:13px; } .app-header .brand-mark { width:148px; } }
@media (max-width: 940px) { .app-header { align-items:flex-start; padding-top:8px; padding-bottom:8px; } .app-header nav { width:100%; justify-content:flex-start; overflow-x:auto; height:auto; } .app-header nav a { padding:8px 10px; } }

.eval-fallback { background:#ecfeff; color:#0e7490; }
.college-table th, .college-table td { vertical-align:middle; }


/* License expiry page */
.license-page { background: #f8fafc; }
.license-container { min-height: calc(100vh - 68px); display:flex; align-items:center; justify-content:center; }
.license-card { width:min(560px, 100%); background:#fff; border:1px solid var(--gray-100); box-shadow:var(--shadow-lg); border-radius:10px; padding:34px; text-align:center; }
.license-status { display:inline-flex; align-items:center; justify-content:center; padding:4px 12px; border-radius:4px; background:#fee2e2; color:#991b1b; font-size:12px; font-weight:800; margin-bottom:14px; }
.license-card h1 { font-size:26px; color:var(--gray-900); margin-bottom:14px; }
.license-card p { color:var(--gray-600); font-size:15px; margin-bottom:8px; }
.license-card .license-muted { color:var(--gray-500); line-height:1.8; margin:16px 0; }
.license-actions { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:8px 16px; border-radius:6px; background:#eff6ff; color:#1e40af; font-weight:700; }


/* BY Shengxue logo */
.app-header .brand-mark {
  width: 232px;
  height: 46px;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.app-header .brand-mark img { width:100%; height:100%; object-fit:contain; }
@media (max-width: 1180px) { .app-header .brand-mark { width:198px; height:42px; } }
@media (max-width: 900px) { .app-header .brand-mark { width:176px; height:38px; } }


/* Subject selection helper */
.subject-layout { display:grid; grid-template-columns: 380px minmax(0, 1fr); gap:16px; align-items:start; }
.subject-panel { position:sticky; top:84px; }
.subject-results { min-width:0; }
.subject-primary { grid-template-columns: repeat(2, 1fr); }
.subject-check-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:8px; }
.subject-check, .interest-chip { display:flex; align-items:center; gap:8px; border:1px solid var(--gray-200); background:#fff; border-radius:8px; padding:10px 12px; cursor:pointer; transition:all .16s; }
.subject-check:hover, .interest-chip:hover { border-color:var(--primary-light); background:#eff6ff; }
.subject-check input, .interest-chip input { accent-color:var(--primary-light); width:16px; height:16px; }
.subject-check:has(input:checked), .interest-chip:has(input:checked) { background:#eff6ff; border-color:var(--primary-light); color:#1d4ed8; font-weight:700; }
.subject-interest-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:8px; }
.subject-score-line { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px; border:1px solid var(--gray-100); background:linear-gradient(135deg,#f8fbff,#eef6ff); border-radius:8px; }
.subject-score-line span { display:block; color:var(--gray-500); font-size:13px; margin-bottom:4px; }
.subject-score-line strong { display:block; color:var(--primary-dark); font-size:22px; }
.subject-ring { width:86px; height:86px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:conic-gradient(var(--primary-light) 0 78%, #e2e8f0 78% 100%); color:#fff; font-weight:900; font-size:20px; box-shadow:inset 0 0 0 10px rgba(255,255,255,.55); flex:0 0 auto; }
.fit-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid var(--gray-100); }
.fit-row:last-child { border-bottom:0; }
.fit-row strong { color:var(--gray-900); font-size:14px; }
.fit-row p { color:var(--gray-500); font-size:12px; margin-top:4px; line-height:1.6; }
.fit-score { flex:0 0 auto; min-width:48px; height:34px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; background:#dcfce7; color:#166534; font-weight:900; }
@media (max-width: 1100px) { .subject-layout { grid-template-columns:1fr; } .subject-panel { position:static; } }
@media (max-width: 720px) { .subject-check-grid, .subject-interest-grid { grid-template-columns:1fr; } .subject-score-line { align-items:flex-start; flex-direction:column; } }

/* Subject student test */

.test-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:12px 14px; }
.test-choice-row { display:flex; flex-wrap:wrap; gap:8px; }
.test-career-chip { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--gray-200); background:#fff; border-radius:8px; padding:8px 10px; cursor:pointer; font-size:13px; transition:all .16s; }
.test-career-chip:hover { border-color:var(--primary-light); background:#eff6ff; }
.test-career-chip input { accent-color:var(--primary-light); }
.test-career-chip:has(input:checked) { background:#eff6ff; border-color:var(--primary-light); color:#1d4ed8; font-weight:700; }
.subject-test-result { border:1px solid var(--gray-100); background:#fff; border-radius:8px; padding:14px; }
.test-score-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.test-score-chip { display:inline-flex; align-items:center; justify-content:center; padding:5px 9px; border-radius:999px; background:#f1f5f9; color:#334155; font-size:12px; font-weight:800; }
@media (max-width: 1100px) { .test-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .test-grid { grid-template-columns:1fr; } }


/* College special tracks */
.college-special-card .card-header { align-items:flex-start; }
.special-track-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:14px; }
.special-track-card { border:1px solid var(--gray-200); border-radius:8px; background:#fff; padding:16px; display:flex; flex-direction:column; gap:12px; }
.special-track-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.special-track-head span { display:inline-flex; font-size:12px; font-weight:800; color:#1d4ed8; background:#eff6ff; border-radius:4px; padding:3px 8px; margin-bottom:6px; }
.special-track-head h3 { font-size:18px; color:var(--primary-dark); }
.special-school-list { display:flex; flex-wrap:wrap; gap:6px; }
.special-school-list button { border:1px solid #dbeafe; background:#f8fbff; color:#1e40af; border-radius:4px; padding:5px 8px; font-size:12px; cursor:pointer; }
.special-school-list button:hover { background:#dbeafe; }
.special-intro { color:var(--gray-600); font-size:13px; line-height:1.75; }
.special-tags { display:flex; flex-wrap:wrap; gap:6px; }
.special-tags span { background:#f1f5f9; color:#334155; border-radius:4px; padding:4px 8px; font-size:12px; font-weight:700; }
.special-job-line { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.special-job-line strong { font-size:12px; color:var(--gray-700); margin-right:4px; }
.special-job-line em { font-style:normal; background:#ecfdf5; color:#047857; border-radius:4px; padding:3px 7px; font-size:12px; }
.salary-panel { background:#f8fafc; border:1px solid var(--gray-100); border-radius:8px; padding:12px; }
.salary-title { display:flex; justify-content:space-between; gap:10px; align-items:baseline; margin-bottom:8px; }
.salary-title strong { font-size:13px; color:var(--gray-800); }
.salary-title span { font-size:11px; color:var(--gray-500); }
.salary-row { display:grid; grid-template-columns:34px 1fr 64px; align-items:center; gap:8px; margin:7px 0; }
.salary-row span { font-size:12px; color:var(--gray-500); }
.salary-row b { font-size:12px; color:var(--primary); text-align:right; }
.salary-track { height:8px; border-radius:999px; background:#e2e8f0; overflow:hidden; }
.salary-track i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#10b981,#2563eb); }
.special-caution { background:#fffbeb; border:1px solid #fde68a; color:#92400e; border-radius:6px; padding:9px 10px; font-size:12px; line-height:1.65; }
@media (max-width: 1000px) { .special-track-grid { grid-template-columns:1fr; } }
@media (max-width: 640px) { .special-track-head, .salary-title { flex-direction:column; } .salary-row { grid-template-columns:32px 1fr 58px; } }

.ace-major-list { color:#1f2937; font-weight:700; line-height:1.8; }


/* Major introduction page */
.major-intro-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:14px; }
.major-intro-card { border:1px solid var(--gray-200); border-radius:8px; padding:16px; background:#fff; display:flex; flex-direction:column; gap:10px; }
.major-intro-head span { display:inline-flex; background:#eff6ff; color:#1d4ed8; font-size:12px; font-weight:800; border-radius:4px; padding:3px 8px; margin-bottom:6px; }
.major-intro-head h3 { font-size:18px; color:var(--primary-dark); }
.major-intro-card p { font-size:13px; color:var(--gray-600); line-height:1.75; }
.major-salary-bars { background:#f8fafc; border:1px solid var(--gray-100); border-radius:8px; padding:10px; }
.major-salary-bars div { display:grid; grid-template-columns:36px 1fr 62px; gap:8px; align-items:center; margin:7px 0; }
.major-salary-bars span, .major-salary-bars em { font-size:12px; color:var(--gray-500); font-style:normal; }
.major-salary-bars em { color:var(--primary); font-weight:800; text-align:right; }
.major-salary-bars i { height:8px; background:#e2e8f0; border-radius:999px; overflow:hidden; }
.major-salary-bars b { display:block; height:100%; background:linear-gradient(90deg,#10b981,#2563eb); border-radius:999px; }
@media (max-width: 900px) { .major-intro-grid { grid-template-columns:1fr; } }


/* Major intro selectable database */
.major-db-layout {
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.major-db-side {
  position: sticky;
  top: 86px;
}

.major-cat-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.major-cat-row button {
  border: 1px solid var(--gray-200);
  background: #fff;
  color: var(--gray-700);
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.major-cat-row button.active {
  background: var(--primary-light);
  border-color: var(--primary-light);
  color: #fff;
}

.major-list-box {
  max-height: 620px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 4px;
}

.major-list-item {
  width: 100%;
  text-align: left;
  border: 1px solid var(--gray-200);
  background: #fff;
  border-radius: 8px;
  padding: 12px 13px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.major-list-item strong {
  color: var(--gray-900);
  font-size: 15px;
}

.major-list-item span {
  color: var(--gray-500);
  font-size: 13px;
  line-height: 1.4;
}

.major-list-item.active {
  border-color: var(--primary-light);
  background: #eff6ff;
  box-shadow: 0 8px 18px rgba(37, 99, 235, 0.12);
}

.major-db-detail .card-header h2 {
  margin: 0 0 6px;
  font-size: 26px;
}

.major-db-detail .card-header p {
  margin: 0;
  color: var(--gray-500);
  font-weight: 600;
}

.major-db-detail .detail-item .value.text-sm {
  font-size: 16px;
  line-height: 1.8;
  font-weight: 500;
}

.salary-panel {
  margin-top: 18px;
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  padding: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.salary-panel h3 {
  margin: 0 0 6px;
  font-size: 18px;
}

.salary-panel p {
  margin: 0 0 16px;
  color: var(--gray-500);
}

.salary-bars {
  min-height: 142px;
  display: grid;
  grid-template-columns: repeat(4, minmax(52px, 1fr));
  gap: 14px;
  align-items: end;
}

.salary-bars div {
  display: grid;
  grid-template-rows: 22px 96px 24px;
  align-items: end;
  justify-items: center;
  gap: 6px;
}

.salary-bars span,
.salary-bars em {
  color: var(--gray-500);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
}

.salary-bars b {
  width: 100%;
  max-width: 54px;
  border-radius: 8px 8px 3px 3px;
  background: linear-gradient(180deg, #2563eb 0%, #10b981 100%);
  box-shadow: 0 8px 16px rgba(37, 99, 235, 0.18);
}

@media (max-width: 1000px) {
  .major-db-layout {
    grid-template-columns: 1fr;
  }
  .major-db-side {
    position: static;
  }
}


.college-salary-bars {
  background: #f8fafc;
  border: 1px solid var(--gray-100);
  border-radius: 8px;
  padding: 10px;
}

.college-salary-bars div {
  display: grid;
  grid-template-columns: 36px 1fr 78px;
  gap: 8px;
  align-items: center;
  margin: 7px 0;
}

.college-salary-bars span,
.college-salary-bars em {
  font-size: 12px;
  color: var(--gray-500);
  font-style: normal;
}

.college-salary-bars em {
  color: var(--primary);
  font-weight: 800;
  text-align: right;
}

.college-salary-bars i {
  height: 8px;
  background: #e2e8f0;
  border-radius: 999px;
  overflow: hidden;
}

.college-salary-bars b {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #10b981, #2563eb);
  border-radius: 999px;
}


.recommend-table th:nth-child(7),
.recommend-table td:nth-child(7) {
  min-width: 320px;
}

.rec-group-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rec-group-card {
  border: 1px solid var(--gray-100);
  background: #f8fafc;
  border-radius: 8px;
  padding: 9px 10px;
  min-width: 280px;
}

.rec-group-card strong {
  color: var(--gray-900);
  font-size: 13px;
}

.rec-group-card p {
  margin: 5px 0 0;
  color: var(--gray-500);
  font-size: 12px;
  line-height: 1.45;
}

.rec-group-empty {
  color: var(--gray-400);
  font-size: 12px;
  line-height: 1.6;
  max-width: 300px;
}


.rec-history-lines {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 150px;
}

.rec-history-lines span {
  color: var(--gray-600);
  font-size: 12px;
  line-height: 1.35;
  white-space: nowrap;
}

.recommend-table th:nth-child(7),
.recommend-table td:nth-child(7) {
  min-width: 170px;
}

.recommend-table th:nth-child(8),
.recommend-table td:nth-child(8) {
  min-width: 320px;
}


.rec-major-fallback {
  border: 1px dashed var(--gray-200);
  background: #ffffbf;
  border-radius: 8px;
  padding: 10px;
  min-width: 280px;
}

.rec-major-fallback strong {
  color: var(--gray-800);
  font-size: 13px;
}

.rec-major-fallback p {
  margin: 6px 0 8px;
  color: var(--gray-500);
  font-size: 12px;
  line-height: 1.55;
}

.rec-major-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.rec-major-tags span {
  display: inline-flex;
  border-radius: 999px;
  padding: 4px 8px;
  background: #eef2ff;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
}

.rec-major-tags span.matched {
  background: #dcfce7;
  color: #166534;
}

.rec-group-majors { color: #0f766e; font-weight: 700; margin: 6px 0 4px; line-height: 1.5; }


.recommend-filter-card { overflow: visible; }
.recommend-filter-card .card-body { overflow: visible; }
.recommend-filter-card .multi-select { position: relative; }
.recommend-filter-card .multi-select-panel { width: min(880px, calc(100vw - 64px)); max-height: none; overflow-y: visible; }
.recommend-filter-card .multi-select.open .multi-select-panel { grid-template-columns: repeat(5, minmax(104px, 1fr)); }
@media (max-width: 900px) { .recommend-filter-card .multi-select-panel { width: min(520px, calc(100vw - 32px)); max-height: 70vh; overflow-y: auto; } .recommend-filter-card .multi-select.open .multi-select-panel { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .recommend-filter-card .multi-select.open .multi-select-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.form-hint { margin-top: 6px; font-size: 12px; color: var(--gray-500); line-height: 1.5; }

/* Knowledge base */
.knowledge-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:16px; }
.knowledge-hero > div { background:#fff; border:1px solid var(--gray-100); border-left:4px solid #f97316; border-radius:8px; padding:18px 20px; box-shadow:var(--shadow); }
.knowledge-hero strong { display:block; color:var(--primary-dark); font-size:16px; margin-bottom:8px; }
.knowledge-hero p { color:var(--gray-600); line-height:1.75; }
.knowledge-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; }
.knowledge-card { background:#fff; border:1px solid var(--gray-100); border-radius:8px; padding:18px; box-shadow:var(--shadow); min-height:190px; display:flex; flex-direction:column; gap:10px; }
.knowledge-card span { width:34px; height:26px; display:inline-flex; align-items:center; justify-content:center; border-radius:4px; background:#eff6ff; color:#1d4ed8; font-weight:800; font-size:12px; }
.knowledge-card h2 { font-size:18px; color:var(--gray-900); }
.knowledge-card p { color:var(--gray-600); font-size:13px; line-height:1.75; flex:1; }
.knowledge-card a { font-size:13px; font-weight:700; color:var(--primary-light); }
.knowledge-mini-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.knowledge-mini { display:flex; flex-direction:column; gap:6px; padding:14px; border:1px solid var(--gray-100); border-radius:8px; background:#f8fafc; color:inherit; }
.knowledge-mini:hover { text-decoration:none; border-color:#bfdbfe; background:#eff6ff; }
.knowledge-mini strong { color:var(--gray-900); font-size:14px; }
.knowledge-mini span { color:var(--gray-600); font-size:12px; line-height:1.65; }
.knowledge-checklist p { padding:10px 12px; border-left:3px solid #f97316; background:#fff7ed; border-radius:6px; margin-bottom:10px; color:var(--gray-700); }
@media (max-width: 900px) { .knowledge-hero, .knowledge-grid, .knowledge-mini-grid { grid-template-columns:1fr; } }
/* Knowledge QA */
.knowledge-qa-card { overflow: visible; }
.knowledge-search-row { display:grid; grid-template-columns:180px 1fr auto; gap:12px; align-items:end; }
.knowledge-query { min-width:0; }
.knowledge-hot { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.knowledge-hot button { border:1px solid #bfdbfe; background:#eff6ff; color:#1d4ed8; border-radius:6px; padding:7px 10px; font-size:12px; font-weight:700; cursor:pointer; }
.knowledge-hot button:hover { background:#dbeafe; }
.knowledge-answer { margin-top:16px; display:grid; gap:12px; }
.knowledge-result { border:1px solid var(--gray-100); border-radius:8px; background:#fff; padding:18px; box-shadow:var(--shadow-sm); }
.knowledge-result-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.knowledge-result-head span { display:inline-flex; background:#fff7ed; color:#c2410c; border-radius:4px; padding:3px 8px; font-size:12px; font-weight:800; }
.knowledge-result-head h3 { font-size:18px; color:var(--gray-900); }
.knowledge-result p { color:var(--gray-700); line-height:1.8; margin-bottom:10px; }
.knowledge-result h4 { color:var(--primary-dark); font-size:14px; margin:12px 0 6px; }
.knowledge-result ul { margin:0 0 8px 18px; color:var(--gray-600); line-height:1.8; }
.knowledge-result blockquote { margin:0 0 12px; padding:10px 12px; background:#f8fafc; border-left:3px solid #2563eb; color:var(--gray-700); border-radius:6px; }
@media (max-width: 900px) { .knowledge-search-row { grid-template-columns:1fr; } .knowledge-search-row .btn { width:100%; } }
/* Knowledge data search */
.knowledge-data-status { margin:10px 0 4px; color:var(--gray-500); font-size:12px; }
.kb-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.kb-chip { display:inline-flex; align-items:center; border:1px solid #bfdbfe; background:#eff6ff; color:#1d4ed8; border-radius:6px; padding:7px 10px; font-size:12px; font-weight:800; }
.kb-chip:hover { background:#dbeafe; text-decoration:none; }
.knowledge-result .table-wrap { margin:10px 0 14px; border:1px solid var(--gray-100); border-radius:8px; overflow:auto; }
.knowledge-result table th, .knowledge-result table td { font-size:12px; vertical-align:top; }.kb-focused-result { border-color:#bfdbfe; }
.kb-focus-summary { display:grid; grid-template-columns:minmax(0,1fr) 160px; gap:14px; align-items:stretch; margin:12px 0 14px; }
.kb-focus-summary > div:first-child { background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; padding:12px 14px; }
.kb-focus-summary b { display:block; color:var(--gray-900); margin-bottom:4px; }
.kb-rating-card { border:1px solid #cbd5e1; border-radius:8px; padding:12px; background:#fff; display:flex; flex-direction:column; justify-content:center; text-align:center; }
.kb-rating-card small { color:var(--gray-500); font-weight:800; }
.kb-rating-card strong { font-size:34px; line-height:1.1; color:var(--gray-800); }
.kb-rating-card span { color:var(--gray-500); font-size:12px; }
.kb-rating-strong { background:#ecfdf5; border-color:#86efac; }
.kb-rating-strong strong { color:#047857; }
.kb-rating-good { background:#eff6ff; border-color:#93c5fd; }
.kb-rating-good strong { color:#1d4ed8; }
.kb-rating-normal { background:#fff7ed; border-color:#fdba74; }
.kb-rating-normal strong { color:#c2410c; }
.kb-focus-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:12px 0; }
.kb-focus-grid section { border:1px solid #e5e7eb; border-radius:8px; background:#fff; padding:12px 14px; }
.kb-focus-grid section p:last-child, .kb-focus-grid section ul:last-child { margin-bottom:0; }
.kb-badge-row { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.kb-badge { display:inline-flex; align-items:center; border-radius:6px; padding:5px 9px; background:#eef2ff; color:#3730a3; font-weight:800; font-size:12px; }
.kb-badge-orange { background:#fff7ed; color:#c2410c; }
.kb-point-list { background:#f8fafc; border-radius:8px; padding:10px 14px 10px 30px; }
@media (max-width: 900px) { .kb-focus-summary, .kb-focus-grid { grid-template-columns:1fr; } }
.kb-decision-card { border:1px solid #fed7aa; border-left:5px solid #f97316; background:#fff7ed; border-radius:8px; padding:14px 16px; margin:12px 0 14px; }
.kb-decision-card > div { display:flex; align-items:baseline; gap:10px; margin-bottom:8px; }
.kb-decision-card span { color:#9a3412; font-weight:800; font-size:13px; }
.kb-decision-card strong { color:#0f172a; font-size:24px; }
.kb-decision-card p { color:#334155; margin-bottom:8px; }
.kb-decision-card ul { margin-bottom:0; }

.app-version { color:#64748b; font-weight:800; }


/* B端机构授权 */
.login-page { background: linear-gradient(135deg, var(--primary-dark), var(--primary) 55%, var(--primary-light)); min-height: 100vh; }
.login-shell { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 32px; }
.login-card { width: min(460px, 100%); background: #fff; border-radius: 12px; padding: 34px; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.25); }
.login-brand { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; padding: 16px; border-radius: 10px; background: var(--primary); color: #fff; }
.login-brand img { width: 118px; height: 46px; object-fit: contain; }
.login-brand h1 { font-size: 22px; line-height: 1.2; }
.login-brand p { font-size: 13px; opacity: 0.82; margin-top: 4px; }
.full-width { width: 100%; }
.form-status { min-height: 24px; margin-top: 12px; color: var(--primary-light); font-weight: 700; }
.login-hint { margin-top: 16px; padding: 12px 14px; border-radius: 8px; background: var(--gray-50); color: var(--gray-500); font-size: 12px; }
.module-checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.module-check { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 8px 10px; border: 1px solid var(--gray-200); border-radius: 7px; background: var(--gray-50); color: var(--gray-700); cursor: pointer; }
.module-check input { accent-color: var(--primary-light); }
.page-header.split { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
@media (max-width: 980px) {
  .app-header { height: auto; min-height: 68px; flex-wrap: wrap; padding: 12px 18px; }
  .app-header nav { flex-wrap: wrap; height: auto; }
  .app-header nav a { min-height: 42px; }
  .module-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-header.split { display: block; }
}
@media (max-width: 640px) { .module-checks { grid-template-columns: 1fr; } .login-card { padding: 24px; } }
