/* GEO Insight — 界面样式（浅色主题） */
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:#F4F6FA;color:#101828;font-size:14px;line-height:1.65;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:#2B5CE6;text-decoration:none}a:hover{text-decoration:underline}

/* ---------- 顶栏 ---------- */
.top{
  height:60px;display:flex;align-items:center;gap:18px;padding:0 22px;
  background:linear-gradient(100deg,#16309B,#2B5CE6 58%,#7C3AED);color:#fff;
  box-shadow:0 4px 18px rgba(43,92,230,.22);position:sticky;top:0;z-index:20;
}
.brandmark{font-size:18px;font-weight:800;letter-spacing:.02em}
.brandmark b{font-weight:400;opacity:.82}
.tagline{font-size:12.5px;opacity:.86;flex:1}
.status{
  font-size:12px;background:rgba(255,255,255,.16);padding:4px 12px;border-radius:99px;
  border:1px solid rgba(255,255,255,.22);white-space:nowrap;
}

/* ---------- 布局 ---------- */
.layout{
  display:grid;grid-template-columns:396px 1fr;gap:16px;
  padding:16px;max-width:1620px;margin:0 auto;align-items:start;
}
@media(max-width:1080px){.layout{grid-template-columns:1fr}}
.panel{background:#fff;border:1px solid #E7EAF0;border-radius:14px;
  box-shadow:0 1px 2px rgba(16,24,40,.04)}
.config{padding:20px;position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto}
.result{padding:22px 24px;min-height:calc(100vh - 92px)}

h2{font-size:13px;font-weight:700;color:#2B5CE6;margin:20px 0 10px;letter-spacing:.02em}
h2:first-child{margin-top:0}
h3{font-size:13.5px;margin:0 0 13px;color:#101828}

/* ---------- 表单 ---------- */
.fld{display:block;margin-bottom:13px}
.fld>span{display:block;font-size:12px;color:#475467;margin-bottom:5px}
.fld i{color:#D92D20;font-style:normal}
input[type=text],textarea,select{
  width:100%;border:1px solid #D0D5DD;border-radius:9px;padding:9px 11px;font-size:13px;
  font-family:inherit;color:#101828;background:#fff;transition:.14s;outline:none
}
input[type=text]:focus,textarea:focus,select:focus{
  border-color:#2B5CE6;box-shadow:0 0 0 3px rgba(43,92,230,.13)}
textarea{resize:vertical;line-height:1.55;font-size:12.5px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.hint{font-size:11.5px;color:#98A2B3;margin:6px 0 0;line-height:1.6}
.cap{font-style:normal;font-size:11px;color:#98A2B3;float:right}
.cap b{color:#2B5CE6}
.hint.over{color:#B42318;background:#FEF3F2;border:1px solid #FDA29B;
  border-radius:8px;padding:7px 10px;margin-top:9px;font-size:12px}
.count.over{color:#B42318;font-weight:700}
textarea.over{border-color:#F04438;box-shadow:0 0 0 3px rgba(240,68,56,.12)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.count{font-size:12px;color:#667085;margin-left:auto}

.btn{
  border:1px solid #D0D5DD;background:#fff;color:#344054;border-radius:9px;
  padding:8px 14px;font-size:12.5px;cursor:pointer;font-family:inherit;transition:.14s
}
.btn:hover{border-color:#2B5CE6;color:#2B5CE6;background:#F5F8FF}
.btn.primary{background:#2B5CE6;border-color:#2B5CE6;color:#fff;font-weight:600}
.btn.primary:hover{background:#1E45B8;color:#fff}
.btn.big{width:100%;padding:12px;font-size:14px;margin-top:16px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:disabled:hover{border-color:#D0D5DD;background:#fff;color:#344054}
.btn.primary:disabled:hover{background:#2B5CE6;color:#fff;border-color:#2B5CE6}

.llm{display:flex;gap:11px;align-items:center;background:#F8FAFC;border:1px solid #E7EAF0;
  border-radius:10px;padding:11px 13px}
.llm b{font-size:12.5px}
.llm-dot{width:9px;height:9px;border-radius:50%;background:#98A2B3;flex:none}
.llm-dot.on{background:#12B76A;box-shadow:0 0 0 4px rgba(18,183,106,.16)}

/* ---------- 进度 ---------- */
.progress{margin-top:14px}
.bar{height:7px;background:#EAECF0;border-radius:99px;overflow:hidden}
.bar>i{display:block;height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,#2B5CE6,#7C3AED);transition:width .35s}
.pmsg{font-size:12px;color:#667085;margin-top:7px}
.err{margin-top:12px;background:#FEF3F2;border:1px solid #FDA29B;color:#B42318;
  border-radius:9px;padding:11px 13px;font-size:12.5px;white-space:pre-wrap;word-break:break-word}

/* ---------- 空状态 ---------- */
.empty{text-align:center;padding:74px 30px;color:#667085}
.empty-ico{font-size:40px;margin-bottom:12px}
.empty h3{font-size:17px;color:#101828;margin-bottom:10px}
.empty p{font-size:13px;max-width:600px;margin:0 auto;line-height:1.85}
.flow{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:24px;font-size:12px}
.flow span{background:#F2F4F7;border-radius:7px;padding:5px 11px;color:#475467}
.flow i{color:#98A2B3;font-style:normal}

/* ---------- 看板 ---------- */
.dash-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.dash-head h2{margin:0;font-size:16px;color:#101828}
.dl{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:11px;margin-bottom:18px}
.kpi{background:#FBFCFE;border:1px solid #E7EAF0;border-radius:11px;padding:13px 15px}
.kpi .k{font-size:11.5px;color:#667085}
.kpi .v{font-size:23px;font-weight:700;margin:2px 0 1px;letter-spacing:-.01em}
.kpi .n{font-size:11px;color:#98A2B3}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.cols{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid #E7EAF0;border-radius:12px;padding:17px 19px;margin-bottom:16px}
.flexrow{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.legend{font-size:12.5px;color:#475467}
.legend div{display:flex;align-items:center;gap:8px;margin:5px 0}
.dot{width:10px;height:10px;border-radius:3px;flex:none}
.overflow{overflow:auto;max-height:420px}
.overflow.tall{max-height:600px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{background:#F2F4F7;border-radius:7px;padding:4px 10px;font-size:12px;color:#475467}
.muted{color:#98A2B3;font-size:12px;font-weight:400}
.search{max-width:280px}
.recbar{margin:9px 0}
.recbar .l{display:flex;justify-content:space-between;font-size:12.5px;color:#475467}
.recbar .t{height:8px;background:#EEF0F4;border-radius:99px;margin-top:4px;overflow:hidden}
.recbar .t>i{display:block;height:100%;border-radius:99px}

/* ---------- 表格 ---------- */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{text-align:left;font-size:11px;color:#667085;font-weight:600;padding:8px 9px;
  border-bottom:1px solid #E7EAF0;background:#FAFBFC;white-space:nowrap;position:sticky;top:0}
td{padding:9px;border-bottom:1px solid #F2F4F7;vertical-align:top}
tbody tr:hover{background:#FAFBFF}
.tag{display:inline-block;font-size:11px;padding:1.5px 8px;border-radius:99px;font-weight:600;white-space:nowrap}
.t-pos{background:#FEF3F2;color:#D92D20}
.t-neu{background:#F2F4F7;color:#667085}
.t-neg{background:#ECFDF3;color:#0E9F6E}
.t-miss{background:#F2F4F7;color:#98A2B3}
.t-pp{background:#EEF4FF;color:#2B5CE6}
.q{color:#475467;font-size:12px;background:#FAFBFC;border-left:3px solid #E4E7EC;
  padding:6px 10px;border-radius:0 6px 6px 0;margin:5px 0;word-break:break-word}
.riskgrp{border:1px solid #E7EAF0;border-radius:10px;padding:12px 14px;margin-bottom:10px}
.riskgrp .h{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}
.pill{font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px;color:#fff}

/* ===== Guide Banner ===== */
.guide-banner {
  display: flex;
  align-items: center;
  gap: 24px;
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
  border: 1px solid #d0dfff;
  border-radius: 12px;
  padding: 20px 28px;
  margin-bottom: 18px;
}
.guide-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  flex: 1;
}
.guide-icon {
  font-size: 28px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 2px;
}
.guide-item b {
  display: block;
  font-size: 15px;
  color: #1a2b4a;
  margin-bottom: 4px;
}
.guide-item p {
  font-size: 12px;
  color: #5a6a80;
  margin: 0 0 6px;
  line-height: 1.5;
}
.guide-item a {
  font-size: 13px;
  color: #2563eb;
  text-decoration: none;
  font-weight: 600;
  transition: color .2s;
}
.guide-item a:hover {
  color: #1d4ed8;
  text-decoration: underline;
}
.guide-divider {
  width: 1px;
  height: 56px;
  background: #c8d8f0;
  flex-shrink: 0;
}
@media (max-width: 720px) {
  .guide-banner { flex-direction: column; gap: 16px; }
  .guide-divider { width: 100%; height: 1px; }
}

/* ===== Contact Slot ===== */
#contactSlot { margin-top: 40px; display: flex; justify-content: center; }
#contactSlot .card.cta {
  display: flex; align-items: center; gap: 32px;
  background: linear-gradient(135deg, #f8fbff 0%, #eef5ff 100%);
  border: 1px solid #d6e4ff; border-radius: 16px;
  padding: 32px 40px; max-width: 720px; width: 100%;
}
#contactSlot .qrbox { text-align: center; flex-shrink: 0; }
#contactSlot .qrbox img { border-radius: 8px; }
#contactSlot .qrbox .cap {
  margin-top: 8px; font-size: 12px; color: #666; white-space: nowrap;
}
#contactSlot .body .kicker {
  font-size: 12px; color: #4a7cff; text-transform: uppercase;
  letter-spacing: 0.5px; margin-bottom: 6px;
}
#contactSlot .body h3 {
  margin: 0 0 8px; font-size: 20px; color: #1a1a1a; line-height: 1.4;
}
#contactSlot .body p {
  margin: 0 0 16px; font-size: 14px; color: #555; line-height: 1.6;
}
#contactSlot .btna {
  display: inline-block; font-size: 14px; font-weight: 600;
  color: #fff; background: #4a7cff; padding: 10px 24px;
  border-radius: 8px; text-decoration: none; transition: background 0.2s;
}
#contactSlot .btna:hover { background: #3566e0; }
@media (max-width: 720px) {
  #contactSlot .card.cta { flex-direction: column; text-align: center; padding: 24px; gap: 20px; }
}
