/* ==========================================================================
   Robi · 《智能机器人编程》课程知识问答智能体 —— 统一视觉样式（蓝白简洁风）
   设计基调：白底、浅蓝点缀、细边框、轻阴影、大留白
   ========================================================================== */
:root{
  --blue:#2563eb;
  --blue-dark:#1d4ed8;
  --blue-soft:#eaf2ff;
  --blue-soft-2:#f4f8ff;
  --sky:#0ea5e9;
  --navy:#0f2340;
  --text:#12294a;
  --text-2:#43618c;
  --muted:#7b90ad;
  --line:#e4ecf8;
  --line-2:#d3e0f4;
  --white:#ffffff;
  --ok:#10b981;
  --warn:#f59e0b;
  --danger:#dc2626;
  --r-sm:8px; --r:12px; --r-md:16px; --r-lg:20px;
  --shadow-1:0 1px 2px rgba(16,42,80,.05);
  --shadow-2:0 1px 2px rgba(16,42,80,.05), 0 10px 28px -16px rgba(16,42,80,.22);
  --shadow-3:0 16px 40px -18px rgba(16,42,80,.28);
  --maxw:1080px;
  --font:"PingFang SC","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--white);color:var(--text-2);
  font-family:var(--font);font-size:15.5px;line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{margin:0;color:var(--text);font-weight:700;line-height:1.35;letter-spacing:.1px}
p{margin:0}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-dark)}
img{max-width:100%;display:block}
hr{border:0;border-top:1px solid var(--line);margin:0}
::selection{background:#cfe2ff;color:var(--navy)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}

/* ---------- 布局 ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.wrap-wide{max-width:1280px;margin:0 auto;padding:0 24px}
.section{padding:64px 0}
.section-sm{padding:40px 0}
.center{text-align:center}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}.section{padding:48px 0}.wrap,.wrap-wide{padding:0 18px}}

/* ---------- 顶部导航 ---------- */
.topbar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.topbar-in{display:flex;align-items:center;gap:22px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--text)}
.brand .mark{width:34px;height:34px;border-radius:10px;background:var(--blue);display:grid;place-items:center;flex:0 0 auto}
.brand small{display:block;font-size:10.5px;font-weight:600;color:var(--muted);letter-spacing:1.2px;text-transform:uppercase;margin-top:-2px}
.nav{margin-left:auto;display:flex;gap:24px;font-size:14.5px}
.nav a{color:var(--text-2);padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--blue);border-bottom-color:var(--blue)}
@media(max-width:900px){.nav{display:none}}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;
  font-size:14.5px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:.18s;white-space:nowrap}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 6px 16px -8px rgba(37,99,235,.55)}
.btn-primary:hover{background:var(--blue-dark);color:#fff;box-shadow:0 8px 20px -8px rgba(37,99,235,.6)}
.btn-ghost{background:#fff;color:var(--blue);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--blue-soft);border-color:var(--blue);color:var(--blue-dark)}
.btn-lg{padding:13px 26px;font-size:15.5px;border-radius:12px}
.btn-sm{padding:7px 13px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-quiet{background:var(--blue-soft);color:var(--blue-dark);border-color:transparent}
.btn-quiet:hover{background:#dbe8ff;color:var(--blue-dark)}

/* ---------- 徽标 / 标签 ---------- */
.badge{display:inline-flex;align-items:center;gap:8px;padding:5px 13px;border-radius:999px;background:var(--blue-soft);
  color:var(--blue-dark);font-size:13px;font-weight:600}
.tag{display:inline-block;font-size:12px;font-weight:600;color:var(--blue-dark);background:var(--blue-soft-2);
  border:1px solid var(--line-2);padding:3px 10px;border-radius:999px;margin:0 6px 6px 0}
.dot{width:8px;height:8px;border-radius:50%;background:#c3d2e6;flex:0 0 auto}
.dot.on{background:var(--ok)}
.dot.off{background:var(--warn)}
.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;background:#fff;
  border:1px solid var(--line-2);font-size:13px;color:var(--text-2)}

/* ---------- 卡片 ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:22px;box-shadow:var(--shadow-1);transition:.2s}
.card-hover:hover{border-color:var(--line-2);box-shadow:var(--shadow-2);transform:translateY(-2px)}
.card-soft{background:var(--blue-soft-2);border-color:var(--line);box-shadow:none}
.card h4{font-size:16px;margin-bottom:8px}
.card p{font-size:14px;color:var(--text-2)}
.card .ico{width:38px;height:38px;border-radius:10px;background:var(--blue-soft);display:grid;place-items:center;margin-bottom:14px;font-size:18px}

/* ---------- 标题区 ---------- */
.eyebrow{font-size:13px;font-weight:700;color:var(--blue);letter-spacing:1.6px;text-transform:uppercase}
.h-sec{font-size:clamp(22px,3vw,30px);margin:8px 0 10px}
.sub{color:var(--muted);font-size:15px;max-width:720px}
.center .sub{margin-left:auto;margin-right:auto}

/* ---------- 表格 ---------- */
.table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:14px}
.table th,.table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.table th{background:var(--blue-soft-2);color:var(--text);font-size:13px;font-weight:700;white-space:nowrap}
.table tr:last-child td{border-bottom:0}
.table td b{color:var(--text)}
.table code{white-space:nowrap}

/* ---------- 键值行 ---------- */
.kv{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.kv:last-child{border-bottom:0}
.kv b{color:var(--text);font-weight:600}
.kv span{color:var(--text-2);text-align:right}

/* ---------- 代码 ---------- */
code{font-family:var(--mono);font-size:13px;background:var(--blue-soft);color:var(--blue-dark);padding:2px 6px;border-radius:5px}
pre{background:var(--blue-soft-2);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;overflow-x:auto;margin:0}
pre code{background:none;padding:0;color:var(--text);font-size:13px;line-height:1.7}

/* ---------- 列表 ---------- */
ul.clean{margin:0;padding-left:20px;color:var(--text-2);font-size:14.5px}
ul.clean li{margin-bottom:6px}
ul.clean li b{color:var(--text)}

/* ---------- 页脚 ---------- */
.foot{border-top:1px solid var(--line);background:var(--blue-soft-2);padding:34px 0 40px;font-size:13.5px;color:var(--muted)}
.foot b{display:block;color:var(--text);font-size:14px;margin-bottom:6px}
.foot .cols{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between}

/* ---------- 提示 ---------- */
.notice{display:none;margin-top:16px;padding:12px 16px;border-radius:var(--r);background:#fff8e6;border:1px solid #f6dfa8;color:#92600a;font-size:14px}
.notice.show{display:block}
.notice code{background:#fdf1d3;color:#92600a}

.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);z-index:99;max-width:90vw;
  background:#fff;border:1px solid var(--line-2);box-shadow:var(--shadow-3);color:var(--text-2);
  padding:12px 20px;border-radius:12px;font-size:14px;opacity:0;transition:.3s;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- 滚动出现 ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- 滚动条 ---------- */
.scroll::-webkit-scrollbar{width:8px;height:8px}
.scroll::-webkit-scrollbar-thumb{background:#d5e2f3;border-radius:8px}
.scroll::-webkit-scrollbar-thumb:hover{background:#c2d5ee}
.scroll::-webkit-scrollbar-track{background:transparent}
