:root {
  --c-bg: #f8fafc;
  --c-surface: #fff;
  --c-text: #1e293b;
  --c-heading: #0f172a;
  --c-muted: #64748b;
  --c-border: #e2e8f0;
  --c-accent: #2563eb;
  --c-accent-light: #eff6ff;
  --c-green: #16a34a;
  --c-green-bg: #f0fdf4;
  --c-orange: #ea580c;
  --c-orange-bg: #fff7ed;
  --c-red: #dc2626;
  --radius: 10px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,.06);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:3.5rem}

body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Display','PingFang SC','Microsoft YaHei',sans-serif;
  background:var(--c-bg);color:var(--c-text);line-height:1.75;padding:5rem 1rem 1.5rem;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}

/* 顶部导航 */
.top-nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:#0f172a;backdrop-filter:blur(12px);
  box-shadow:0 1px 8px rgba(0,0,0,.15);
}
.nav-inner{
  max-width:960px;margin:0 auto;display:flex;align-items:center;gap:.8rem;
  padding:0 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;
}
.nav-inner a{
  color:rgba(255,255,255,.75);text-decoration:none;font-size:.82rem;font-weight:500;
  padding:.75rem .4rem;white-space:nowrap;border-bottom:2px solid transparent;
  transition:all .2s;flex-shrink:0;
}
.nav-inner a:hover,.nav-inner a.active{color:#fff;border-bottom-color:#3b82f6;text-decoration:none}
.nav-title{color:#fff;font-weight:700;font-size:.9rem;margin-right:auto;white-space:nowrap;flex-shrink:0}
.nav-home{color:rgba(255,255,255,.6)!important;font-size:.8rem!important}
.nav-home:hover{color:#fff!important}

.container{
  max-width:960px;margin:0 auto;background:var(--c-surface);
  border-radius:16px;box-shadow:var(--shadow-md);padding:2.5rem 3rem;
  border:1px solid var(--c-border);
}

/* Typography */
h1{
  text-align:center;font-size:1.8rem;font-weight:800;letter-spacing:-.02em;
  color:var(--c-heading);margin-bottom:1.5rem;padding-bottom:1.2rem;
  border-bottom:2px solid var(--c-border);
}
h2{
  font-size:1.3rem;font-weight:700;color:var(--c-heading);margin:2.5rem 0 1rem;
  padding:.5rem 0 .5rem 1rem;border-left:4px solid var(--c-accent);
  background:var(--c-accent-light);border-radius:0 6px 6px 0;
}
h3{font-size:1.1rem;font-weight:600;color:var(--c-heading);margin:1.5rem 0 .6rem}
h2:first-of-type{margin-top:0}

p,li{font-size:.95rem;margin-bottom:.5rem}
ul,ol{margin-left:1.5rem;margin-bottom:1rem}
li{margin-bottom:.25rem}
strong,b{color:var(--c-red);font-weight:700}

/* Back link */
.back-link{
  display:inline-flex;align-items:center;gap:.3rem;color:var(--c-accent);
  text-decoration:none;font-size:.88rem;font-weight:500;margin-bottom:1rem;
  transition:gap .2s;
}
.back-link:hover{gap:.5rem;text-decoration:none}

/* TOC */
.toc{
  background:var(--c-accent-light);border:1px solid #bfdbfe;border-radius:var(--radius);
  padding:1rem 1.5rem;margin:1.5rem 0 2rem;
}
.toc h3{margin:0 0 .6rem;color:var(--c-accent);font-size:.95rem}
.toc ol{margin-left:1.3rem;margin-bottom:0}
.toc li{margin-bottom:.2rem}
.toc a{text-decoration:none;color:var(--c-text);font-size:.9rem;font-weight:500;transition:color .15s}
.toc a:hover{color:var(--c-accent);text-decoration:none}

/* Search */
.search-box{margin:0 0 1.5rem}
.search-box input{
  width:100%;padding:.7rem 1rem;border:1.5px solid var(--c-border);border-radius:var(--radius);
  font-size:.92rem;transition:all .2s;font-family:inherit;background:var(--c-bg);
}
.search-box input:focus{
  outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px rgba(37,99,235,.1);
  background:var(--c-surface);
}
.search-highlight{background:#fef08a;padding:0 2px;border-radius:2px}
.search-result-count{text-align:center;font-size:.8rem;color:var(--c-muted);margin-top:.25rem}

/* Tables */
table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.9rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--c-border)}
th{background:#1e3a5f;color:#fff;padding:10px 12px;text-align:center;font-weight:600;font-size:.82rem}
td{border:1px solid var(--c-border);padding:8px 12px;vertical-align:top;background:var(--c-surface)}
tr:nth-child(even) td{background:#f8fafc}
td:first-child{font-weight:600;color:var(--c-heading)}

/* Images */
.screenshot-img{
  display:block;max-width:100%;height:auto;margin:1.2rem auto .3rem;
  border-radius:8px;box-shadow:var(--shadow-sm);border:1px solid var(--c-border);
}
.caption{text-align:center;font-size:.82rem;color:var(--c-muted);margin-bottom:1rem;font-weight:500}

/* Callout: flow summary (green) */
.flow-summary{
  background:var(--c-green-bg);border-left:4px solid var(--c-green);
  padding:.8rem 1.2rem;border-radius:0 8px 8px 0;margin:1rem 0;font-weight:600;
}

/* Callout: warning (orange) */
.highlight-box{
  background:var(--c-orange-bg);border-left:4px solid var(--c-orange);
  padding:.9rem 1.2rem;margin:1rem 0;border-radius:0 8px 8px 0;
  display:flex;align-items:flex-start;gap:.6rem;font-weight:500;
}
.highlight-box::before{content:"⚠️";font-size:1.2rem;flex-shrink:0}

/* Callout: note (blue) */
.note-box{
  background:var(--c-accent-light);border-left:4px solid var(--c-accent);
  padding:.9rem 1.2rem;margin:1rem 0;border-radius:0 8px 8px 0;
  display:flex;align-items:flex-start;gap:.6rem;font-weight:500;
}
.note-box::before{content:"💡";font-size:1.2rem;flex-shrink:0}

/* Flow text */
.flow-text{
  background:#f1f5f9;padding:1rem 1.5rem;border-radius:var(--radius);
  font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:.85rem;
  white-space:pre-line;line-height:2;margin:1rem 0;border:1px solid var(--c-border);
  color:var(--c-heading);
}

/* Image placeholder */
.img-placeholder{
  text-align:center;padding:2rem;background:var(--c-accent-light);
  border:2px dashed var(--c-accent);border-radius:var(--radius);margin:1rem 0;
  color:var(--c-muted);font-size:.9rem;min-height:100px;
  display:flex;align-items:center;justify-content:center;
}

/* Footer */
.footer{
  text-align:center;color:var(--c-muted);font-size:.82rem;margin-top:3rem;
  border-top:1px solid var(--c-border);padding-top:1.5rem;
}
.footer .print-btn{
  display:inline-block;margin-top:.5rem;padding:.45rem 1.2rem;
  background:var(--c-accent);color:#fff;border:none;border-radius:6px;
  cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s;font-family:inherit;
}
.footer .print-btn:hover{background:#1d4ed8;transform:translateY(-1px)}

/* Back to top */
.back-to-top{
  position:fixed;bottom:2rem;right:2rem;width:42px;height:42px;
  background:var(--c-accent);color:#fff;border:none;border-radius:50%;
  font-size:1.2rem;cursor:pointer;box-shadow:var(--shadow-md);
  opacity:0;visibility:hidden;transition:all .3s;z-index:100;
  display:flex;align-items:center;justify-content:center;
}
.back-to-top.show{opacity:1;visibility:visible}
.back-to-top:hover{background:#1d4ed8;transform:translateY(-2px)}

/* Watermark */
body::after{
  content:'';position:fixed;top:-50%;left:-50%;width:200%;height:200%;
  background:url('../images/logo-transparent.png') repeat;
  background-size:400px auto;opacity:.05;transform:rotate(-45deg);
  pointer-events:none;z-index:999;
}

/* Print */
@media print{
  .back-to-top,.footer .print-btn,.search-box{display:none!important}
  body::after{display:none}
  body{background:#fff;padding:0}
  .container{box-shadow:none;border-radius:0;padding:1rem;border:none}
  .screenshot-img{border:1px solid #ccc;box-shadow:none}
  .highlight-box,.note-box{background:#f9f9f9;border-left:2px solid #333}
  .highlight-box::before,.note-box::before{display:none}
  .toc,.footer{display:none}
  h2{border-left:none;padding-left:0;background:none}
}

/* Mobile */
@media(max-width:640px){
  .container{padding:1.3rem;border-radius:12px}
  h1{font-size:1.4rem}
  table{font-size:.78rem}
  th,td{padding:6px 8px}
  .flow-summary,.highlight-box,.note-box{padding:.6rem .9rem}
}

/* Dark mode */
@media(prefers-color-scheme:dark){
  :root{
    --c-bg:#0f172a;--c-surface:#1e293b;--c-text:#cbd5e1;--c-heading:#e2e8f0;
    --c-muted:#94a3b8;--c-border:#334155;--c-accent:#3b82f6;--c-accent-light:#1e3a5f;
    --c-green-bg:#14532d;--c-orange-bg:#431407;
  }
  .container{border-color:var(--c-border)}
  .toc{background:var(--c-accent-light);border-color:#1e3a5f}
  .search-box input{background:var(--c-surface)}
  tr:nth-child(even) td{background:#1a2332}
  td{background:var(--c-surface)}
  .flow-text{background:#1a2332;color:var(--c-text)}
  .back-to-top{background:#3b82f6}
}
