:root{
  --slate:#0f172a; --slate2:#1e293b; --teal:#14a4ad; --teal-d:#0e7a81;
  --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb; --soft:#f8fafc; --soft2:#f1f5f9;
  --amber:#b45309; --amber-bg:#fffbeb; --amber-l:#fde68a;
  --blue:#0e7490; --blue-bg:#ecfeff; --blue-l:#a5f3fc;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Segoe UI',-apple-system,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.55;font-size:15px}
a{color:var(--teal-d);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- top bar ---------- */
.topbar{position:sticky;top:0;z-index:30;background:var(--slate2);border-bottom:3px solid var(--teal);display:flex;align-items:center;gap:18px;padding:12px 22px}
.topbar .brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:16px;letter-spacing:.3px}
.topbar .brand b{color:var(--teal)}
.topbar .brand .wm{display:inline-flex;align-items:center;gap:1px}
.topbar .brand .wm .cx{color:var(--teal)}
.topbar .brand .sub{font-weight:600;font-size:11px;color:#7dd3d8;border:1px solid rgba(125,211,216,.4);padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:1.5px}
.topbar .search{margin-left:auto;position:relative}
.topbar .search input{width:280px;max-width:40vw;padding:8px 12px 8px 32px;border-radius:8px;border:1px solid #33465f;background:#0f1e30;color:#e2e8f0;font-size:13px}
.topbar .search input::placeholder{color:#7788a0}
.topbar .search svg{position:absolute;left:9px;top:9px;color:#7788a0}

/* ---------- layout ---------- */
.layout{display:grid;grid-template-columns:290px 1fr;max-width:1320px;margin:0 auto}
.nav{border-right:1px solid var(--line);padding:18px 10px 60px;height:calc(100vh - 52px);overflow-y:auto;position:sticky;top:52px}
.nav .sec{margin-bottom:4px}
.nav .sec > .sec-h{display:flex;flex-direction:column;padding:9px 12px 4px}
.nav .sec-h .t{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--slate)}
.nav .sec-h .s{font-size:10.5px;color:var(--muted)}
.nav a.item{display:block;padding:6px 12px 6px 22px;border-radius:7px;font-size:13.5px;color:#475569;position:relative}
.nav a.item::before{content:"";position:absolute;left:10px;top:14px;width:4px;height:4px;border-radius:50%;background:#cbd5e1}
.nav a.item:hover{background:var(--soft2);text-decoration:none;color:var(--slate)}
.nav a.item.active{background:#e6f7f8;color:var(--teal-d);font-weight:700}
.nav a.item.active::before{background:var(--teal)}

/* ---------- content ---------- */
.content{padding:26px 40px 80px;min-width:0}
.crumb{font-size:12px;color:var(--muted);margin-bottom:10px}
.crumb b{color:var(--slate)}
h1.title{font-size:27px;font-weight:800;color:var(--slate);line-height:1.15}
.lead{margin-top:9px;font-size:15px;color:#374151;max-width:70ch}
.shot{margin:20px 0 6px;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 6px 24px rgba(15,23,42,.08)}
.shot img{width:100%;display:block}
.shot-cap{font-size:11.5px;color:var(--muted);margin:6px 2px 0;text-align:center}

h2.blk{font-size:16px;color:var(--slate);margin:26px 0 10px;display:flex;align-items:center;gap:9px}
h2.blk .ic{width:24px;height:24px;border-radius:7px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;flex:0 0 auto}
p.txt{color:#374151;margin:6px 0;max-width:74ch}
ul.uses{list-style:none;margin:6px 0;max-width:74ch}
ul.uses li{position:relative;padding:4px 0 4px 22px;color:#374151}
ul.uses li::before{content:"›";position:absolute;left:4px;color:var(--teal);font-weight:800}

ol.steps{list-style:none;counter-reset:s;margin:8px 0;max-width:74ch}
ol.steps li{counter-increment:s;position:relative;padding:8px 0 8px 40px;border-bottom:1px dashed var(--line)}
ol.steps li:last-child{border-bottom:0}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:7px;width:26px;height:26px;border-radius:50%;background:var(--slate);color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
ol.steps b{color:var(--slate)}

.callout{border-radius:10px;padding:12px 15px;margin:16px 0;font-size:14px;display:flex;gap:11px;align-items:flex-start}
.callout .ci{font-size:16px;flex:0 0 auto;line-height:1.4}
.callout.tip{background:var(--blue-bg);border:1px solid var(--blue-l);color:#155e63}
.callout.tip b{color:var(--blue)}
.callout.warn{background:var(--amber-bg);border:1px solid var(--amber-l);color:#7c4a03}
.callout.warn b{color:var(--amber)}

.pager{display:flex;justify-content:space-between;gap:12px;margin-top:34px;border-top:1px solid var(--line);padding-top:16px}
.pager a{flex:1;border:1px solid var(--line);border-radius:10px;padding:11px 14px;font-size:13px}
.pager a:hover{border-color:var(--teal);text-decoration:none;background:var(--soft)}
.pager a.next{text-align:right}
.pager .k{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.pager .v{display:block;font-weight:700;color:var(--slate)}

/* ---------- hub ---------- */
.hub-hero{background:linear-gradient(135deg,#0f172a,#134e52);color:#fff;padding:40px;border-radius:16px;margin:26px 0 8px}
.hub-hero h1{font-size:30px;font-weight:800}
.hub-hero h1 span{color:#7dd3d8}
.hub-hero p{margin-top:12px;font-size:15px;color:#cbd5e1;max-width:72ch}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}
.card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;transition:.15s}
.card:hover{border-color:var(--teal);box-shadow:0 6px 20px rgba(15,23,42,.07)}
.card h3{font-size:15px;color:var(--slate);display:flex;flex-direction:column}
.card h3 .s{font-weight:500;font-size:11.5px;color:var(--muted);text-transform:none;letter-spacing:0}
.card ul{list-style:none;margin-top:10px}
.card ul li{padding:3px 0;font-size:13.5px}
.card ul li a{color:#475569}
.card ul li a:hover{color:var(--teal-d)}

footer.foot{border-top:1px solid var(--line);margin-top:40px;padding:18px 40px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted);max-width:1320px;margin-left:auto;margin-right:auto}
footer.foot b{color:var(--slate)}
.hidden{display:none!important}
@media (max-width:900px){.layout{grid-template-columns:1fr}.nav{display:none}.content{padding:20px}.grid{grid-template-columns:1fr}}
