:root{
 --bg:#f6f6f6;--paper:#fff;--ink:#202122;--muted:#54595d;--line:#a2a9b1;--line2:#eaecf0;
 --link:#0645ad;--visited:#0b0080;--side:#f8f9fa;--accent:#f7931a;--accentd:#b86a00;
 --info:#fdebd0;--up:#14866d;--down:#d33;--ph1:#f1f3f5;--ph2:#e9ecef;--note:#fef6e7;--noteb:#fc3;
}
@media (prefers-color-scheme:dark){:root{
 --bg:#0f1114;--paper:#16191d;--ink:#e6e8ea;--muted:#a2a9b1;--line:#3a3f45;--line2:#2a2e33;
 --link:#6aa9ff;--visited:#b49cff;--side:#121519;--accentd:#ffb04d;--info:#3a2c14;
 --up:#3dd6a8;--down:#ff7a7a;--ph1:#1d2126;--ph2:#23282e;--note:#2a2312;--noteb:#8a6d00}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 -apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}a:visited{color:var(--visited)}
img{max-width:100%;height:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:6px 10px;z-index:99}
/* header */
.top{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.top-in{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:8px 14px}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:4px;padding:6px 9px;font-size:18px;line-height:1;color:var(--ink);cursor:pointer}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)!important;text-decoration:none!important;min-width:0}
.brand svg{flex:none;width:40px;height:40px}
.brand b{display:block;font:400 1.35rem/1.1 "Linux Libertine",Georgia,"Times New Roman",serif;letter-spacing:.2px}
.brand small{display:block;font-size:.72rem;color:var(--muted)}
.search{margin-left:auto;position:relative;width:min(340px,42vw)}
.search form{display:flex}
.search input{width:100%;padding:8px 38px 8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;font-size:.92rem}
.search button{position:absolute;right:0;top:0;bottom:0;width:36px;border:0;background:none;cursor:pointer;color:var(--muted);font-size:16px}
.sugg{position:absolute;left:0;right:0;top:100%;background:var(--paper);border:1px solid var(--line);border-top:0;box-shadow:0 6px 14px rgba(0,0,0,.12);display:none;max-height:60vh;overflow:auto;z-index:40}
.sugg a{display:block;padding:8px 10px;color:var(--ink);border-top:1px solid var(--line2);font-size:.92rem}
.sugg a small{display:block;color:var(--muted);font-size:.78rem}
.sugg a:hover,.sugg a.on{background:var(--side);text-decoration:none}
.ticker{background:#1b1d21;color:#e9ecef;font-size:.84rem}
.ticker-in{max-width:1280px;margin:0 auto;padding:5px 14px;display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.ticker b{color:var(--accent)}.ticker .t{white-space:nowrap}
.ticker .u{color:#4fe3b5}.ticker .d{color:#ff8f8f}
.ticker small{color:#9aa0a6;margin-left:auto}
/* layout */
.wrap{max-width:1280px;margin:0 auto;display:flex;gap:0;align-items:flex-start}
.side{width:190px;flex:none;padding:14px 10px 30px 14px;font-size:.88rem;position:sticky;top:96px;max-height:calc(100vh - 100px);overflow:auto}
.side h3{font-size:.76rem;color:var(--muted);font-weight:600;margin:16px 0 4px;padding-bottom:3px;border-bottom:1px solid var(--line2)}
.side ul{list-style:none;margin:0;padding:0}.side li{margin:0;padding:3px 0}
.side a.cur{color:var(--ink);font-weight:600}
main{flex:1;min-width:0;background:var(--paper);border:1px solid var(--line);border-top:0;padding:20px 28px 28px;margin-top:0}
/* article */
h1.t1{font:400 2rem/1.25 "Linux Libertine",Georgia,"Times New Roman",serif;margin:0 0 .15em;padding-bottom:.15em;border-bottom:1px solid var(--line)}
.tag{font-size:.84rem;color:var(--muted);margin:2px 0 14px}
.bc{font-size:.8rem;color:var(--muted);margin-bottom:8px}
.art h2{font:400 1.5rem/1.3 "Linux Libertine",Georgia,"Times New Roman",serif;margin:1.4em 0 .5em;padding-bottom:.1em;border-bottom:1px solid var(--line)}
.art h3{font-size:1.15rem;font-weight:700;margin:1.2em 0 .3em}
.art p{margin:.6em 0 .9em}
.art ul,.art ol{margin:.4em 0 1em 1.4em;padding:0}.art li{margin:.2em 0}
.art table.wt{border-collapse:collapse;margin:1em 0;font-size:.92rem;background:var(--side);display:block;overflow-x:auto;max-width:100%}
.art table.wt th,.art table.wt td{border:1px solid var(--line);padding:6px 10px;vertical-align:top}
.art table.wt th{background:var(--info);text-align:left}
.art sup.ref{font-size:.72em;line-height:0}.art sup.ref a{padding:0 1px}
.art dl dt{font-weight:700;margin-top:.8em}.art dl dd{margin:0 0 0 1.2em}
/* infobox */
.infobox{float:right;clear:right;width:300px;margin:.3em 0 1em 1.3em;border:1px solid var(--line);background:var(--side);font-size:.86rem;line-height:1.45}
.infobox .ib-t{background:var(--info);text-align:center;font-weight:700;padding:7px 8px;font-size:1rem}
.infobox table{width:100%;border-collapse:collapse}
.infobox th,.infobox td{padding:4px 8px;vertical-align:top;text-align:left}
.infobox th{width:40%;font-weight:600;color:var(--ink)}
.infobox tr+tr th,.infobox tr+tr td{border-top:1px solid var(--line2)}
.infobox .ib-i{padding:8px}
figure.thumb{margin:0}
figure.thumb figcaption{font-size:.8rem;color:var(--muted);padding:5px 2px 0;line-height:1.4}
figure.fr{float:right;clear:right;width:300px;margin:.3em 0 1em 1.3em;border:1px solid var(--line);background:var(--side);padding:6px}
figure.wide{margin:1.2em 0;border:1px solid var(--line);background:var(--side);padding:6px}
figure.wide svg{width:100%;height:auto;display:block}
.ph{position:relative;overflow:hidden;background:repeating-linear-gradient(45deg,var(--ph1),var(--ph1) 10px,var(--ph2) 10px,var(--ph2) 20px);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.72rem;padding:6px;width:100%}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.ph.has{border:0;padding:0;background:var(--ph1)}
/* toc */
.toc{display:table;border:1px solid var(--line);background:var(--side);padding:8px 14px 10px;margin:1em 0;font-size:.9rem;max-width:100%}
.toc .th{font-weight:700;text-align:center;margin-bottom:4px}
.toc button{background:none;border:0;color:var(--link);cursor:pointer;font:inherit;font-size:.82rem;padding:0 0 0 4px}
.toc ol{list-style:none;margin:0;padding:0}.toc ol ol{margin-left:1.2em}.toc li{margin:1px 0}.toc .n{color:var(--muted);margin-right:.4em}
.toc.shut ol{display:none}
/* boxes */
.hat{font-size:.88rem;border-left:3px solid var(--line);padding:2px 0 2px 10px;margin:.4em 0 1em;color:var(--muted)}
.notice{display:flow-root;background:var(--note);border:1px solid var(--noteb);border-left-width:5px;padding:9px 14px;margin:1em 0;font-size:.92rem}
.notice b:first-child{display:block}
.refs{font-size:.88rem}.refs ol{margin-left:1.6em}
.catbox{border:1px solid var(--line);background:var(--side);padding:6px 10px;margin:1.6em 0 0;font-size:.88rem;clear:both}
.meta{font-size:.78rem;color:var(--muted);margin-top:14px}
.seealso li{margin:.15em 0}
/* home */
.hw{border:1px solid var(--line);background:var(--side);margin:0 0 18px}
.hw h2{margin:0;padding:8px 14px;background:var(--info);font:700 1.05rem/1.3 -apple-system,"Segoe UI",Arial,sans-serif;border-bottom:1px solid var(--line)}
.hw .in{padding:12px 14px}
.welcome{text-align:center;padding:18px 12px;border:1px solid var(--line);background:linear-gradient(180deg,var(--info),var(--side));margin:0 0 18px}
.welcome h1{font:400 1.9rem/1.25 "Linux Libertine",Georgia,serif;margin:0 0 6px}
.welcome p{margin:.3em auto;max-width:44em}
.welcome .stats{font-size:.85rem;color:var(--muted)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cols>div{min-width:0}
.price-main{display:flex;flex-wrap:wrap;gap:6px 26px;align-items:flex-end}
.pm{font:700 2.1rem/1.1 -apple-system,"Segoe UI",Arial,sans-serif}.pm small{font-size:.8rem;font-weight:400;color:var(--muted);display:block}
.chg.u{color:var(--up)}.chg.d{color:var(--down)}
.spark{width:100%;height:56px;display:block}.spark svg{width:100%;height:56px;display:block}
.pt{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:10px}
.pt th,.pt td{padding:6px 8px;border-top:1px solid var(--line2);text-align:right;white-space:nowrap}
.pt th:first-child,.pt td:first-child,.pt th:nth-child(2),.pt td:nth-child(2){text-align:left}.pt th{font-weight:600;color:var(--muted);font-size:.78rem}
.pt .cn{display:flex;align-items:center;gap:8px}.pt .cn i{flex:none;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font:700 .6rem/22px sans-serif;text-align:center;font-style:normal}
.pt .sp{width:90px;padding:2px 8px}.pt .sp svg{width:84px;height:26px;display:block}
.tw{overflow-x:auto}
.conv{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font-size:.9rem}
.conv input,.conv select{padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;max-width:100%}
.conv input{width:9em}
.note-s{font-size:.76rem;color:var(--muted);margin-top:8px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.cats section{border:1px solid var(--line);background:var(--side);padding:8px 12px}
.cats h3{margin:0 0 4px;font-size:1rem}.cats ul{margin:0;padding-left:1.1em;font-size:.92rem}
.dyk li{margin:.3em 0}
.cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.cols3>section{min-width:0}
.bcard{border:1px solid var(--line);background:var(--paper);padding:8px 12px;font-size:.9rem}
.bcard h3{margin:0 0 6px;font-size:1rem}.bcard ul{margin:0;padding-left:1.1em}.bcard li{margin:.3em 0}
.art dl.faq dt{margin-top:.9em}
.partner{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.partner img{width:240px;max-width:100%;height:auto;display:block}.partner>div{flex:1;min-width:220px}.partner p{margin:.2em 0}
/* footer */
.foot{max-width:1280px;margin:0 auto;padding:18px 14px 40px;font-size:.8rem;color:var(--muted)}
.foot a{color:var(--muted);text-decoration:underline}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:8px}
/* responsive */
@media (max-width:1000px){.infobox,figure.fr{width:260px}}
@media (max-width:860px){
 .burger{display:block}
 .side{position:fixed;left:0;top:0;bottom:0;width:260px;max-height:none;background:var(--paper);border-right:1px solid var(--line);z-index:50;transform:translateX(-105%);transition:transform .2s;padding-top:60px;box-shadow:4px 0 16px rgba(0,0,0,.2)}
 .side.open{transform:none}
 .veil{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:45}.veil.on{display:block}
 main{border-left:0;border-right:0;padding:16px 16px 24px}
 .infobox,figure.fr{float:none;width:100%;max-width:420px;margin:.6em auto 1.2em}
 .cols{grid-template-columns:1fr}
 .brand small{display:none}.brand b{font-size:1.1rem}
 .search{width:auto;flex:1;margin-left:0}
 h1.t1{font-size:1.65rem}
 .ticker small{display:none}
}
@media (max-width:480px){.search input{padding:8px 30px 8px 8px;min-width:0}.search button{width:30px}.brand b{font-size:.92rem}.brand svg{width:32px;height:32px}.brand b{font-size:1rem}.pm{font-size:1.7rem}.top-in{gap:8px;padding:8px 10px}}
@media print{.top,.ticker,.side,.foot nav,.search{display:none}main{border:0}}
