:root{--bg:#fff;--bg2:#f3f6fb;--tx:#0f172a;--mu:#475569;--bd:#e2e8f0;--pr:#2563eb;--pr2:#1d4ed8;--r:12px}
[data-theme=dark]{--bg:#0b1220;--bg2:#111a2e;--tx:#e5e7eb;--mu:#9aa7bd;--bd:#22304a;--pr:#60a5fa;--pr2:#93c5fd}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--tx)}
a{color:var(--pr)}img{max-width:100%;height:auto}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}.narrow{max-width:760px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--pr);color:#fff;padding:8px;z-index:99}
.site-header{border-bottom:1px solid var(--bd);background:var(--bg);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;gap:12px;min-height:60px;flex-wrap:wrap}
.logo{font-weight:800;font-size:20px;text-decoration:none;color:var(--tx)}
.nav{display:flex;gap:14px;align-items:center}.nav a,.nav summary{color:var(--tx);text-decoration:none;cursor:pointer;list-style:none}
.dd{position:relative}.dd summary::-webkit-details-marker{display:none}
.dd-list{position:absolute;top:30px;left:0;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r);padding:8px;min-width:220px;max-height:70vh;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.dd-list a{display:block;padding:6px 8px;border-radius:8px}.dd-list a:hover{background:var(--bg2)}
.search{display:flex;gap:6px;margin-left:auto}
.search input{padding:8px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--bg2);color:var(--tx);width:200px}
button,.btn{background:var(--pr);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer;font:inherit;text-decoration:none;display:inline-block}
.theme,.burger{background:var(--bg2);color:var(--tx);border:1px solid var(--bd)}
.burger{display:none}
h1{font-size:clamp(26px,4vw,38px);line-height:1.2;margin:24px 0 8px}h2{font-size:clamp(20px,3vw,26px);margin:28px 0 10px}h3{font-size:18px}
.lead{color:var(--mu);margin:0 0 20px}
.crumbs{font-size:14px;color:var(--mu);margin:14px 0 0}.crumbs a{color:var(--mu)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:16px 0}
.card{display:block;border:1px solid var(--bd);background:var(--bg2);border-radius:var(--r);padding:16px;text-decoration:none;color:var(--tx);transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-2px);border-color:var(--pr)}
.card .ic{font-size:26px}.card strong{display:block;margin:6px 0 2px}.card span{color:var(--mu);font-size:14px}
.site-footer{margin-top:48px;border-top:1px solid var(--bd);background:var(--bg2);padding:24px 0}
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 18px}.foot-nav a{color:var(--mu)}
.copy{color:var(--mu);font-size:14px;margin:14px 0 0}
main{min-height:50vh;padding-bottom:16px}
@media(max-width:760px){
 .burger{display:inline-block;margin-left:auto}
 .nav{display:none;width:100%;flex-direction:column;align-items:flex-start;padding:8px 0}.nav.open{display:flex}
 .search{width:100%;margin-left:0}.search input{flex:1;width:auto}
 .dd-list{position:static;box-shadow:none;max-height:50vh}
}
.tool section{margin:0}.tool ol{padding-left:22px}.h-sm{font-size:17px;margin:0 0 8px}
.toolbox{border:1px solid var(--bd);background:var(--bg2);border-radius:var(--r);padding:16px;margin:16px 0}
.toolbox label{display:block;margin:10px 0 4px;font-weight:600}
.toolbox input[type=text],.toolbox input[type=url],.toolbox input[type=number],.toolbox textarea,.toolbox select{width:100%;padding:9px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx);font:inherit}
.toolbox textarea{min-height:90px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.alt{background:var(--bg);color:var(--tx);border:1px solid var(--bd)}
.cap{border-top:1px dashed var(--bd);margin-top:14px;padding-top:8px}.cap input{max-width:120px;padding:8px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx)}
.cap-msg{color:#dc2626;margin:6px 0 0;min-height:1em}
.result{margin-top:14px}.result pre{white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px solid var(--bd);border-radius:8px;padding:12px;margin:0;max-height:360px;overflow:auto}
.tool h3{margin:16px 0 4px}
.post-card img,.post-hero{width:100%;height:auto;border-radius:10px;display:block;margin-bottom:8px;aspect-ratio:16/9;object-fit:cover}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 18px}.chips a{padding:5px 12px;border:1px solid var(--bd);border-radius:99px;text-decoration:none;color:var(--tx);font-size:14px}.chips a.on{background:var(--pr);color:#fff;border-color:var(--pr)}
.meta{color:var(--mu);font-size:14px}.pager{display:flex;gap:10px;justify-content:center;margin:20px 0}
.article img{border-radius:10px}.article{overflow-wrap:anywhere}.article table{display:block;overflow-x:auto}
.share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0}.share span{color:var(--mu);font-size:14px}
.share a{padding:5px 12px;border:1px solid var(--bd);border-radius:99px;text-decoration:none;color:var(--tx);font-size:14px;background:var(--bg2)}
.adslot{margin:16px 0;text-align:center;min-height:0;overflow:hidden}
.notice{padding:10px 12px;border-radius:8px;background:#dcfce7;color:#14532d}.notice.err{background:#fee2e2;color:#7f1d1d}
[data-theme=dark] .notice{background:#14532d;color:#dcfce7}[data-theme=dark] .notice.err{background:#7f1d1d;color:#fee2e2}
.fb{border:1px solid var(--bd);border-radius:var(--r);padding:12px;margin:18px 0;background:var(--bg2)}.fb summary{cursor:pointer;font-weight:600}
.fb label{display:block;margin:10px 0 4px;font-weight:600}.fb select,.fb textarea,.fb input[type=email],.fb input[type=text]{width:100%;padding:9px;border:1px solid var(--bd);border-radius:8px;background:var(--bg);color:var(--tx);font:inherit}
