:root{
  --brand:#1f6fb2; --brand-dark:#155488; --ink:#1f2933; --muted:#6b7785;
  --bg:#f6f8fb; --card:#fff; --border:#e3e8ee; --radius:10px;
  --shadow:0 2px 8px rgba(15,30,60,.06);
  --shadow-lg:0 8px 24px rgba(15,30,60,.10);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.muted{color:var(--muted)}

.site-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.header-flex{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;gap:24px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700}
.brand:hover{text-decoration:none}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--brand);color:#fff;border-radius:8px;font-weight:800}
.brand-name{letter-spacing:.2px}
.brand-sub{font-weight:500;color:var(--muted)}
.site-nav{display:flex;align-items:center;gap:18px}
.site-nav a{color:var(--ink);font-weight:500}
.site-nav a:hover{color:var(--brand)}

.btn{display:inline-block;padding:9px 16px;border-radius:8px;font-weight:600;border:1px solid transparent;cursor:pointer;font-size:14px}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-dark);text-decoration:none}
.btn-outline{background:#fff;border:1px solid var(--border);color:var(--ink)}
.btn-outline:hover{border-color:var(--brand);color:var(--brand);text-decoration:none}

.hero{background:linear-gradient(135deg,var(--brand),#3c8dbc);color:#fff;padding:48px 0 36px;text-align:center}
.hero h1{margin:0 0 8px;font-size:32px;font-weight:700}
.hero .lead{margin:0 0 22px;font-size:16px;opacity:.92}
.search-bar{display:flex;max-width:620px;margin:0 auto;background:#fff;border-radius:50px;padding:6px;box-shadow:var(--shadow-lg)}
.search-bar input{flex:1;border:0;padding:12px 18px;font-size:15px;border-radius:50px;outline:none}
.search-bar button{border:0;background:var(--brand);color:#fff;border-radius:50px;padding:0 26px;font-weight:700;cursor:pointer}
.search-bar button:hover{background:var(--brand-dark)}
.search-results{max-width:620px;margin:14px auto 0;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;color:var(--ink);max-height:320px;overflow:auto}
.search-results ul{margin:0;padding:6px 0;list-style:none}
.search-results li a{display:block;padding:10px 16px;border-bottom:1px solid var(--border);color:var(--ink)}
.search-results li:last-child a{border-bottom:0}
.search-results li a:hover{background:#f0f5fb;text-decoration:none;color:var(--brand)}
.search-results .empty{padding:16px;color:var(--muted);text-align:center}

.main{padding:36px 0 56px}
.main h2{font-size:20px;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.main section{margin-bottom:36px}

.grid{display:grid;gap:14px}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:780px){.grid-3{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.grid-3{grid-template-columns:1fr}}

.card{display:block;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:transform .12s ease, box-shadow .12s ease;color:var(--ink)}
.card:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.card-icon{display:inline-flex;width:40px;height:40px;border-radius:8px;background:rgba(31,111,178,.10);color:var(--brand);align-items:center;justify-content:center;font-weight:800;margin-bottom:10px}
.card-name{display:block;font-weight:700;font-size:16px;margin-bottom:4px}
.card-desc{display:block;color:var(--muted);font-size:13px;line-height:1.5}
.card-meta{display:block;color:var(--brand);font-size:12px;font-weight:600;margin-top:10px}

.link-list{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.link-list li{border-bottom:1px solid var(--border)}
.link-list li:last-child{border-bottom:0}
.link-list li a{display:block;padding:12px 16px;color:var(--ink)}
.link-list li a:hover{background:#f0f5fb;color:var(--brand);text-decoration:none}

.faq{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:8px 16px;box-shadow:var(--shadow)}
.faq-item{padding:10px 0;border-bottom:1px solid var(--border)}
.faq-item:last-child{border-bottom:0}
.faq-item summary{cursor:pointer;font-weight:600;list-style:none;outline:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:'▸ ';color:var(--brand);transition:transform .15s}
.faq-item[open] summary::before{content:'▾ '}
.faq-body{padding-top:8px;color:var(--ink);font-size:14px;line-height:1.6}

.skel,.skel-row{background:linear-gradient(90deg,#eef2f6,#dde4ec,#eef2f6);background-size:200% 100%;animation:sk 1.4s infinite}
.skel{height:120px;border-radius:var(--radius)}
.skel-row{height:42px;border-bottom:1px solid var(--border)}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

.contact{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;text-align:center;box-shadow:var(--shadow)}
.contact h2{border-bottom:0;margin-bottom:6px}
.contact p{margin:6px 0}

.article{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.article h1{margin-top:0}
.article h2,.article h3{color:var(--ink)}
.article ul,.article ol{padding-left:22px}
.article code{background:#f0f5fb;padding:2px 6px;border-radius:4px;font-size:13px;color:var(--brand)}
.article-meta{color:var(--muted);font-size:13px;margin:6px 0 16px}
.feedback{margin-top:24px;padding:18px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);text-align:center}
.feedback button{margin:0 6px;background:#fff;border:1px solid var(--border);border-radius:50px;padding:8px 16px;font-size:15px;cursor:pointer}
.feedback button:hover{border-color:var(--brand);color:var(--brand)}

.site-footer{background:#fff;border-top:1px solid var(--border);padding:18px 0;font-size:13px;color:var(--muted)}
.footer-flex{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
