:root{--brand:#10a37f;--brand-dark:#0d8467;--brand-soft:#e8f6f2;--ink:#1a1d21;--ink-2:#4a5158;--ink-3:#8b939b;--ink-4:#b3bac1;--line:#e6e9ec;--line-2:#f0f2f4;--bg:#fff;--bg-2:#fafbfc;--bg-3:#f4f6f8;--ok:#0b7a5e;--ok-bg:#f0f7f4;--warn:#a8641a;--warn-bg:#fdf6ec;--card:#fff;--card-line:#e2e7ec;--card-line-2:#eef1f5;--shadow-card:0 1px 2px rgba(16,24,40,.04),0 10px 28px -18px rgba(16,24,40,.22);--maxw:min(1420px,94vw);--pad:max(24px,3vw);--radius:10px;--shadow:0 1px 2px rgba(26,29,33,.04),0 4px 12px rgba(26,29,33,.05);--shadow-lift:0 3px 14px rgba(16,24,40,.07);--shadow-soft:0 1px 1px rgba(16,24,40,.03);--hero-grad:linear-gradient(180deg,#fff 0%,var(--bg-2) 100%);--tint:linear-gradient(180deg,var(--brand-soft) 0%,rgba(232,246,242,0) 100%);--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}@media (prefers-color-scheme:dark){:root{--brand:#2bbd97;--brand-dark:#10a37f;--brand-soft:#12241f;--ink:#e8eaed;--ink-2:#b6bcc4;--ink-3:#868e97;--ink-4:#5c646d;--line:#2a2f36;--line-2:#23272d;--bg:#15181c;--bg-2:#1a1e23;--bg-3:#20242a;--ok:#3fbf95;--ok-bg:#12241f;--warn:#d9a441;--warn-bg:#2a2114;--card:#1b1f24;--card-line:#2c3238;--card-line-2:#252a30;--shadow-card:0 1px 2px rgba(0,0,0,.35),0 12px 30px -20px rgba(0,0,0,.65);--shadow:none}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--brand)}header{background:var(--bg);border-bottom:1px solid var(--line)}.hwrap{max-width:var(--maxw);margin:0 auto;padding:12px var(--pad);display:flex;gap:22px;align-items:center;flex-wrap:wrap}.brand{font-weight:700;font-size:19px;letter-spacing:-.02em;white-space:nowrap;display:flex;align-items:center;gap:9px}.brand a{display:flex;align-items:center;gap:9px}.brand img{height:32px;width:auto;display:block;flex:none}@media (prefers-color-scheme:dark){.brand img{background:#fff;border-radius:7px;padding:2px 3px;height:32px}}.brand span{color:var(--brand)}nav{display:flex;gap:6px;font-size:14px;flex-wrap:wrap}nav a{padding:5px 11px;border-radius:8px;color:var(--ink-2)}nav a:hover{background:var(--bg-3);color:var(--ink)}main{max-width:var(--maxw);margin:0 auto;padding:30px var(--pad) 72px}h1{font-size:30px;margin:0 0 8px;letter-spacing:-.025em;line-height:1.25}h2{font-size:20px;margin:38px 0 14px;letter-spacing:-.015em}.hero{position:relative;text-align:center;padding:30px 0 28px;margin:0 0 30px;border-bottom:1px solid var(--line-2)}.hero>.wrap{position:relative;z-index:1}.hero-fx{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.hero-fx canvas{position:absolute;inset:0;width:100%;height:100%;display:block;background:transparent}.hero-fx::before{content:"";position:absolute;inset:-30% -10% auto;height:150%;background:radial-gradient(46% 58% at 50% 24%,var(--brand-soft),transparent 70%);opacity:.85}.hero-fx::after{content:"";position:absolute;inset:0;opacity:.6;background-image:linear-gradient(to right,rgba(125,135,145,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(125,135,145,.06) 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(70% 80% at 50% 30%,#000,transparent 78%);-webkit-mask-image:radial-gradient(70% 80% at 50% 30%,#000,transparent 78%)}@media (prefers-reduced-motion:reduce){.card,.panel,.tile{transition:none}.card:hover{transform:none}.hero-fx{display:none}}.hero h1{font-size:34px}.hero .sub{max-width:660px;margin:0 auto 22px}.sub{color:var(--ink-3);margin:0 0 22px;font-size:14.5px}input[type=search]{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:12px 16px;border-radius:var(--radius);font-size:15px;transition:border-color .15s,box-shadow .15s}input[type=search]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.stats{display:flex;gap:34px;flex-wrap:wrap;justify-content:center;margin:0 0 26px}.stats div{text-align:center;color:var(--ink-3);font-size:13px}.stats b{display:block;color:var(--ink);font-size:23px;font-weight:700;letter-spacing:-.02em}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.grid.compact{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.doc{max-width:920px;margin:0 auto}.doc h1{font-size:29px;margin:0 0 10px;letter-spacing:-.01em}.doc .lead{color:var(--ink-2);font-size:15px;line-height:1.75;margin:0 0 22px;max-width:74ch}.doc h2{font-size:19px;margin:38px 0 12px;padding-top:22px;border-top:1px solid var(--line);letter-spacing:-.005em}.doc h2:first-of-type{border-top:0;padding-top:0}.doc h3{font-size:15px;margin:22px 0 8px}.doc p{line-height:1.75;font-size:14px;color:var(--ink-2)}.doc .sub{color:var(--ink-3)}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 20px}.stat-strip>div{background:var(--bg);padding:12px 14px}.stat-strip span{display:block;color:var(--ink-3);font-size:12px;margin:0 0 4px}.stat-strip b{font-size:19px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.docnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}.docnav a{padding:5px 11px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;color:var(--ink-3);background:var(--bg)}.docnav a:hover{border-color:var(--brand);color:var(--brand-dark)}.steps{counter-reset:step;list-style:none;margin:0;padding:0}.steps li{counter-increment:step;position:relative;padding:0 0 14px 40px;font-size:14px;line-height:1.75;color:var(--ink-2)}.steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:1px;font-size:12px;color:var(--brand-dark);background:var(--brand-soft);border-radius:6px;padding:2px 7px}.layers{display:grid;gap:10px}.layer{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--bg)}.layer header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 6px}.layer header code{font-size:12px;color:var(--brand-dark);background:var(--brand-soft);border-radius:5px;padding:2px 7px;font-weight:600}.layer header h3{margin:0;font-size:15px}.layer header .state{margin-left:auto;font-size:11.5px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--ink-3)}.layer header .state.done{color:var(--ok);background:var(--ok-bg);border-color:transparent}.layer header .state.sample{color:var(--warn);background:var(--warn-bg);border-color:transparent}.layer .q{margin:0 0 10px;font-size:13.5px;color:var(--ink-2);line-height:1.7}.cov{display:flex;align-items:center;gap:10px;margin:0 0 10px}.cov .track{flex:1;height:6px;border-radius:3px;background:var(--bg-2);overflow:hidden}.cov .fill{height:100%;border-radius:3px;background:var(--brand)}.cov span{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.layer .res{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.layer .res li{font-size:12.5px;color:var(--ink-2);background:var(--bg-2);border-radius:6px;padding:3px 9px;font-variant-numeric:tabular-nums}.layer .res li b{font-weight:600}.layer .res li.flag{background:var(--warn-bg);color:var(--warn)}.layer .res li.bad{background:#fdecea;color:#b3261e}@media (prefers-color-scheme:dark){.layer .res li.bad{background:#3a1d1a;color:#f2b8b5}}.limits{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.limits article{border-left:3px solid var(--line);padding:2px 0 2px 12px}.limits h3{margin:0 0 4px;font-size:14px}.limits p{margin:0;font-size:13px;color:var(--ink-3);line-height:1.7}.doc table{width:100%;border-collapse:collapse;margin:6px 0 10px;font-size:13.5px}.doc table th{text-align:left;font-weight:600;color:var(--ink-3);font-size:12.5px;padding:0 12px 8px 0;border-bottom:1px solid var(--line)}.doc table td{padding:8px 12px 8px 0;border-bottom:1px solid var(--line-2);vertical-align:top}.doc table tr:last-child td{border-bottom:0}.trust{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}.tchip{padding:3px 10px;border-radius:999px;font-size:11.5px;white-space:nowrap;background:var(--bg-2);color:var(--ink-3);border:1px solid var(--line)}.tchip b{font-weight:600}.tchip.lv{color:#0b6b52;background:#e3f4ee;border-color:transparent}.tchip.lv.lv-l0{color:#25606b;background:#e2f1f3}.tchip.lv.lv-l1{color:#1f6b3f;background:#e5f5e9}.tchip.lv.lv-l2{color:#0b6b52;background:#ddf2ea}.tchip.lv.lv-l3{color:#0a5b46;background:#d2efe4}.tchip.lv.none{color:var(--ink-3);background:var(--bg-2);border-color:var(--line)}.tchip.scan{color:#1d5c96;background:#e6f0fa;border-color:transparent}.tchip.scan.pending{color:var(--warn);background:var(--warn-bg)}.tchip.grade{color:#8a5a00;background:#fdf1dc;border-color:transparent}.tchip.grade.g-s{color:#0b6b52;background:#ddf2ea}.tchip.grade.g-b{color:#8a5a00;background:#fdf1dc}.tchip.grade.low{color:#b3261e;background:#fdecea}.tchip.dl{color:var(--ink-3);background:var(--bg-2)}@media (prefers-color-scheme:dark){.tchip.lv,.tchip.lv.lv-l2,.tchip.lv.lv-l3,.tchip.grade.g-s{color:#8fe0c4;background:#12352c}.tchip.lv.lv-l1{color:#9fdcb4;background:#12301c}.tchip.lv.lv-l0{color:#9fd3dc;background:#123037}.tchip.scan{color:#9ec8ee;background:#12293c}.tchip.grade,.tchip.grade.g-b{color:#f0c98a;background:#3a2c12}.tchip.grade.low{color:#f2b8b5;background:#3a1d1a}}.ladder{list-style:none;margin:10px 0 0;padding:0}.ladder li{display:flex;gap:10px;padding:8px 10px;border-radius:7px;font-size:13px;align-items:baseline}.ladder li + li{margin-top:4px}.ladder .rung{flex:0 0 132px;color:var(--ink-3);display:flex;gap:6px;align-items:baseline}.ladder .rung b{font-weight:600}.ladder .mark{flex:0 0 16px;font-weight:600}.ladder .why{flex:1;color:var(--ink-3);word-break:break-word}.ladder .why .ev{display:block;font-size:11.5px;color:var(--warn);margin-top:2px}.ladder .yes{background:var(--bg-2)}.ladder .yes .mark{color:var(--ok)}.ladder .yes.lv-l0{background:#eef6f7}.ladder .yes.lv-l0 .rung b{color:#25606b}.ladder .yes.lv-l1{background:#eef8f1}.ladder .yes.lv-l1 .rung b{color:#1f6b3f}.ladder .yes.lv-l2{background:#e9f6f1}.ladder .yes.lv-l2 .rung b{color:#0b6b52}.ladder .yes.lv-l3{background:#e2f3ec}.ladder .yes.lv-l3 .rung b{color:#0a5b46}.ladder .partial{background:var(--bg-2)}.ladder .partial .mark{color:var(--warn)}.ladder .no{background:transparent;border:1px dashed var(--line)}.ladder .no .mark{color:var(--ink-3)}@media (prefers-color-scheme:dark){.ladder .yes.lv-l0{background:#12262b}.ladder .yes.lv-l1{background:#122a1c}.ladder .yes.lv-l2{background:#122b24}.ladder .yes.lv-l3{background:#102a23}.ladder .yes.lv-l0 .rung b{color:#9fd3dc}.ladder .yes.lv-l1 .rung b{color:#9fdcb4}.ladder .yes.lv-l2 .rung b,.ladder .yes.lv-l3 .rung b{color:#8fe0c4}}.lv-chip{font-size:12px;padding:2px 9px;border-radius:999px;background:var(--bg-2);color:var(--ink-2)}.lv-chip.lv-l0{background:#e2f1f3;color:#25606b}.lv-chip.lv-l1{background:#e5f5e9;color:#1f6b3f}.lv-chip.lv-l2{background:#ddf2ea;color:#0b6b52}.lv-chip.lv-l3{background:#d2efe4;color:#0a5b46}.lv-chip.lv-未评级{background:var(--bg-2);color:var(--ink-3)}.deduct{list-style:none;margin:10px 0 0;padding:0;font-size:13px}.deduct li{display:flex;gap:10px;padding:7px 0;border-top:1px solid var(--line-2)}.deduct li:first-child{border-top:0}.deduct .pts{flex:0 0 34px;color:#b3261e;font-variant-numeric:tabular-nums}@media (prefers-color-scheme:dark){.deduct .pts{color:#f2b8b5}}.deduct .reason{flex:1}.deduct .ev{display:block;margin-top:3px;color:var(--ink-3);font-size:12px;word-break:break-word}.scoreline{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 12px;margin:2px 0 0}.scoreline .big{font-size:34px;font-weight:600;line-height:1;color:var(--brand-dark)}.scoreline .big.low{color:#b3261e}@media (prefers-color-scheme:dark){.scoreline .big.low{color:#f2b8b5}}.scoreline .grade{font-size:15px;color:var(--brand-dark);white-space:nowrap}.scoreline .grade.low{color:#b3261e}.scoreline .grade-note{color:var(--ink-3);font-size:12.5px}.panel h3{margin:20px 0 0;font-size:14px;display:flex;align-items:center;gap:8px}.fold{margin:16px 0 0;border-top:1px solid var(--line);padding-top:12px}.fold summary{cursor:pointer;font-size:12.5px;color:var(--ink-3)}.fold summary:hover{color:var(--brand-dark)}.fold .kv{margin:10px 0 0}.disc{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:var(--bg-2);color:var(--ink-3);font-size:12.5px;line-height:1.65}.ptabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 22px;scrollbar-width:thin;min-width:0;max-width:100%}.ptabs[data-stuck]{position:sticky;top:0;z-index:20;background:var(--bg);box-shadow:0 6px 12px -8px rgba(16,24,40,.14)}.ptab{flex:0 0 auto;padding:9px 15px;font:inherit;font-size:14px;font-weight:500;color:var(--ink-3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.ptab:hover{color:var(--ink)}.ptab.on{color:var(--brand-dark);border-bottom-color:var(--brand)}.ptab:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:6px}.ppanel[hidden]{display:none}.readme-body{max-width:88ch}.readme-body img[align=center],.readme-body p[align=center]{display:block;margin:8px auto}.readme-body img[align=right]{float:right;margin:0 0 12px 16px}.readme-body img[align=left]{float:left;margin:0 16px 12px 0}@media (max-width:720px){.ptabs[data-stuck]{position:static;box-shadow:none}}@media (prefers-reduced-motion:no-preference){.ptabs[data-stuck]{transition:box-shadow .2s ease}}.rsum{background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;padding:14px 18px;margin:0;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.rsum-lead{display:flex;align-items:center;gap:12px;min-width:0}.rsum-ic{color:var(--tone);display:inline-flex;flex:none}.rsum-chips{display:flex;gap:8px;flex-wrap:wrap}.lvl-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;background:color-mix(in srgb,var(--tone) 10%,var(--bg));color:var(--tone);border:1px solid color-mix(in srgb,var(--tone) 22%,transparent)}.lvl-chip b{font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.lvl-chip.quiet{--tone:var(--ink-4)}.rsum-legend{margin-left:auto;display:flex;gap:14px;flex-wrap:wrap;color:var(--ink-3);font-size:12px}.lg-i{display:inline-flex;align-items:center;gap:4px;color:var(--tone)}.cap-ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;flex:none;color:var(--ink-2);background:color-mix(in srgb,var(--ink-4) 14%,var(--bg))}.cap-elevated .cap-ic{color:#d9534f;background:color-mix(in srgb,#d9534f 13%,var(--bg))}.cap-notable .cap-ic{color:#a8641a;background:color-mix(in srgb,#d9a441 16%,var(--bg))}@media (prefers-color-scheme:dark){.cap-elevated .cap-ic{color:#e07b76}.cap-notable .cap-ic{color:#d9b666}}.cap-n{display:inline-flex;align-items:center;gap:6px}.lvl{display:inline-flex;align-items:center}.cap-n b{font-size:14px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.pmain h3{font-size:14px;font-weight:650;color:var(--ink-2);margin:24px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line-2)}.caps{list-style:none;margin:0;padding:0;display:grid;gap:8px}.cap{border:1px solid var(--line);border-radius:9px;background:var(--bg);overflow:hidden}.cap-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:8px 12px;background:var(--bg-2);border-bottom:1px solid var(--line-2)}.cap-h b{font-size:13.5px;font-weight:650}.cap-h code{font-size:11.5px}.cap-n{margin-left:auto;font-size:12px;color:var(--ink-4);white-space:nowrap}.cap-b{padding:9px 12px 10px}.cap-elevated .cap-h{background:color-mix(in srgb,#d9534f 7%,var(--bg))}.cap-notable .cap-h{background:color-mix(in srgb,#d9a441 9%,var(--bg))}@media (prefers-color-scheme:dark){.cap-elevated .cap-h{background:color-mix(in srgb,#e07b76 12%,var(--bg))}.cap-notable .cap-h{background:color-mix(in srgb,#d9b666 12%,var(--bg))}}.ev{list-style:none;margin:7px 0 0;padding:0;display:grid;gap:3px}.ev li{display:flex;gap:9px;align-items:baseline;font-size:12px;min-width:0}.ev-loc{flex:0 0 auto;font-size:11.5px;color:var(--ink-4);background:none;border:none;padding:0;max-width:32%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-tx{flex:1 1 auto;min-width:0;font-size:11.5px;color:var(--ink-3);background:var(--bg-3);border:1px solid var(--line-2);border-radius:5px;padding:2px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.ev-note{font-size:12px;color:var(--ink-3)}.ev-advice{font-size:12px;color:var(--ink-3);line-height:1.65}.ev-advice::before{content:"→ ";color:var(--ink-4)}.ins{margin:0 0 6px}.ins .bdg{font-size:12px}.card{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.card:hover{border-color:color-mix(in srgb,var(--brand) 38%,var(--line));box-shadow:0 10px 26px rgba(16,24,40,.11);transform:translateY(-4px);z-index:2}.card:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.card-link{position:absolute;inset:0;z-index:1;border-radius:inherit}.card-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.card-inner{position:relative;z-index:2;pointer-events:none;padding:16px;display:flex;flex-direction:column;gap:10px;height:100%}.card-inner a,.card-inner button,.card-inner input{pointer-events:auto}.compact .card-inner{padding:12px 14px;gap:6px;border-radius:9px}.card-top{display:flex;gap:11px;align-items:flex-start}.card-dl{position:absolute;top:11px;right:12px;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;background:var(--bg-3);color:var(--ink-2);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.65;pointer-events:none}.card-dl svg{width:11px;height:11px;flex:0 0 11px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.card[data-dl] .card-top{padding-right:56px}@media (prefers-color-scheme:dark){.card-dl{background:var(--bg-2);color:var(--ink-3)}}.compact .card-top{gap:10px}.ico{width:36px;height:36px;flex:0 0 36px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;line-height:1;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}.compact .ico{width:32px;height:32px;flex:0 0 32px;border-radius:9px;font-size:15px}.card h3{margin:0;font-size:15px;font-weight:650;line-height:1.35}.card h3{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact .card h3{font-size:14px}.ns{margin-top:2px;font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact .ns{font-size:11.5px}.ccopy{display:inline-grid;place-items:center;flex:0 0 auto;width:28px;height:28px;padding:0;cursor:pointer;color:var(--ink-3);background:var(--bg);border:1px solid var(--line);border-radius:7px;transition:color .15s,border-color .15s,background .15s,opacity .15s}.card .ccopy{opacity:0}.card:hover .ccopy,.card:focus-within .ccopy,.ccopy:focus-visible{opacity:1}@media (hover:none){.card .ccopy,.codebox .ccopy{opacity:1}}.ccopy svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.ccopy:hover{color:var(--brand-dark);border-color:var(--brand);background:var(--bg)}.ccopy:active{background:var(--brand-soft)}.ccopy.done{color:var(--ok);border-color:var(--ok)}.ccopy.off{display:inline-flex;align-items:center;width:auto;height:auto;padding:2px 8px;color:var(--ink-4);background:var(--bg-3);border-color:transparent;font-size:11px;cursor:default;border-radius:99px}.compact .ccopy{width:26px;height:26px}.compact .ccopy svg{width:13px;height:13px}.compact .ccopy.off{width:auto;height:auto;padding:2px 8px}.badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.bdg{padding:2px 8px;font-size:11.5px;white-space:nowrap;color:var(--ink-3);background:var(--bg-3);border-radius:99px}.bdg.key{color:var(--brand-dark);background:var(--brand-soft)}.bdg.ok{color:var(--ok);background:var(--ok-bg)}.bdg.warn{color:var(--warn);background:var(--warn-bg)}.bdg.bad{color:#b3261e;background:#fdecea}@media (prefers-color-scheme:dark){.bdg.bad{color:#f2b8b5;background:#3a1d1a}}.tx{margin:0;font-size:13.5px;line-height:1.6;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.compact .tx{font-size:12.5px;line-height:1.5;-webkit-line-clamp:2}.en{margin:0;font-size:12px;line-height:1.5;color:var(--ink-4);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.compact .en{font-size:11.5px;-webkit-line-clamp:1}.card-inner>.tx{flex:1 0 auto}.card-inner>.en{flex:0 1 auto}.foot{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--line-2);padding-top:8px;margin-top:auto}.foot .lic{color:var(--ok)}.foot .lic.none{color:var(--ink-4)}.foot .cat-l{color:var(--ink-4)}.foot .ccopy{margin-left:auto}.compact .foot{font-size:11px;padding-top:7px;gap:6px}html{overflow-x:hidden}body{overflow-x:clip}.hero{position:relative;isolation:isolate}.hero::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;background:radial-gradient(900px 380px at 6% -12%,rgba(16,163,127,.20),transparent 62%),radial-gradient(780px 320px at 94% 2%,rgba(47,111,208,.17),transparent 64%),radial-gradient(720px 300px at 50% 110%,rgba(192,122,30,.14),transparent 62%),radial-gradient(520px 240px at 30% 100%,rgba(122,92,208,.10),transparent 66%),linear-gradient(180deg,#f2faf8 0%,#ffffff 82%)}@media (prefers-color-scheme:dark){.hero::before{background:radial-gradient(900px 340px at 8% -10%,rgba(43,189,151,.10),transparent 62%),radial-gradient(760px 300px at 92% 4%,rgba(96,149,222,.10),transparent 64%),linear-gradient(180deg,#14181d 0%,var(--bg) 78%)}}.stat{position:relative;overflow:hidden}.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--tone,var(--line));opacity:.85}.stat .k{color:var(--tone,var(--ink-3))}.stat .k svg{stroke:var(--tone,currentColor)}.stat .v{color:var(--ink)}.stat .v small{color:var(--ink-3)}.quickchips .chip[data-only="installable"].on{background:#e8f0fb;color:#1d5c96}.quickchips .chip[data-only="client"].on{background:#f0ebfb;color:#5b3fb0}.quickchips .chip[data-only="scanned"].on{background:#e6f4f6;color:#0e7383}.quickchips .chip[data-only=""].on{background:var(--brand-soft);color:var(--brand-dark)}.bigsearch{display:flex;align-items:center;gap:10px;max-width:680px;margin:0 auto 14px;background:var(--bg);border:1px solid var(--card-line);border-radius:99px;padding:0 0 0 18px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04),0 12px 28px -18px rgba(16,24,40,.22)}.bigsearch:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.bigsearch .mag{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:var(--ink-4);stroke-width:2;stroke-linecap:round}.bigsearch input{flex:1;min-width:0;border:none;background:none;padding:15px 0;font:inherit;font-size:15px;color:var(--ink)}.bigsearch input:focus{outline:none}.bigsearch .go{flex:0 0 auto;align-self:stretch;padding:0 30px;font:inherit;font-size:14.5px;font-weight:600;color:#fff;background:var(--brand);border:none;border-radius:0;cursor:pointer;transition:background .15s ease}.bigsearch .go:hover{background:var(--brand-dark)}.chiphint{color:var(--ink-3);font-size:12.5px;margin:0 0 9px;text-align:center}.quickchips{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin:0 0 22px}.quickchips .chip{padding:5px 13px;font-size:13px;color:var(--ink-2);background:var(--bg-3);border-radius:99px;border:1px solid transparent}.quickchips .chip[data-only=""]{background:#e8f6f2;color:#0b6b52}.quickchips .chip[data-only="installable"]{background:#e8f0fb;color:#1d5c96}.quickchips .chip[data-only="client"]{background:#f0ebfb;color:#5b3fb0}.quickchips .chip[data-only="scanned"]{background:#e6f4f6;color:#0e7383}.quickchips .chip[href="/categories.html"]{background:#fdf1dc;color:#8a5a00}.quickchips .chip:hover{filter:brightness(.97)}.quickchips .chip:hover{color:var(--brand-dark);background:var(--brand-soft)}.quickchips .chip.on{color:#fff;background:var(--brand)}.sec-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 14px}.sec-h h2,.sec-h h1{margin:0;font-size:19px}.sec-h .hint{color:var(--ink-3);font-size:12.5px}.sec-h .more{margin-left:auto;font-size:13px;color:var(--brand-dark)}.cattabs{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin:0 0 16px;padding:0;border-bottom:1px solid var(--line);scrollbar-width:none;-ms-overflow-style:none}.cattabs::-webkit-scrollbar{display:none}.cattabs .ctab{position:relative;flex:0 0 auto;border:none;background:none;font:inherit;font-size:13.5px;color:var(--ink-3);padding:8px 13px 11px;cursor:pointer;white-space:nowrap;transition:color .15s ease}.cattabs .ctab::after{content:"";position:absolute;left:13px;right:13px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:transparent;transition:background .15s ease}.cattabs .ctab:hover{color:var(--ink)}.cattabs .ctab:hover::after{background:var(--line)}.cattabs .ctab.on{color:var(--brand-dark);font-weight:600}.cattabs .ctab.on::after{background:var(--brand)}.cattabs .ctab i{font-style:normal;margin-left:6px;font-size:11.5px;color:var(--ink-4);font-variant-numeric:tabular-nums;letter-spacing:0}.cattabs .ctab.on i{color:var(--brand)}.cattabs .ctab:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.sec{margin:0 0 38px}.more-row .go{padding:9px 22px;font:inherit;font-size:14px;font-weight:600;color:#fff;background:var(--brand);border:none;border-radius:99px;cursor:pointer}.more-row .go:hover{background:var(--brand-dark)}#restPages[hidden]{display:none}.tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 6px}.tag{font-size:11.5px;padding:2.5px 9px;border-radius:99px;background:var(--bg-3);border:1px solid var(--line);color:var(--ink-3);white-space:nowrap}.tag.ok{color:var(--ok);background:var(--ok-bg);border-color:transparent}.tag.warn{color:var(--warn);background:var(--warn-bg);border-color:transparent}.tag.bad{color:#b3261e;background:#fdecea;border-color:transparent}.tag.acc{color:var(--brand-dark);background:var(--brand-soft);border-color:transparent}@media (prefers-color-scheme:dark){.tag.bad{color:#f2b8b5;background:#3a1d1a}}.lead-en{margin:0 0 12px}.lead-en>summary{font-size:12px;color:var(--ink-4)}.lead-en[open]>summary{margin-bottom:8px}.lead-en p{margin:0;color:var(--ink-3);font-size:13px;line-height:1.7;max-width:88ch}.lead{font-size:15.5px;color:var(--ink-2);margin:0 0 8px;line-height:1.7}.panel{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin:0 0 18px;box-shadow:var(--shadow-soft);transition:box-shadow .18s ease}.panel:hover{box-shadow:0 6px 18px rgba(16,24,40,.07)}.panel h2{margin:0 0 12px;font-size:16px;display:flex;align-items:center;gap:8px}.panel h2::before{content:"";width:3px;height:15px;border-radius:2px;background:var(--brand);flex:0 0 3px}.panel .note{margin:0 0 7px;color:var(--ink-3);font-size:13px}.panel .note.warn{color:var(--warn);background:var(--warn-bg);border-radius:8px;padding:10px 13px;margin:14px 0 0;font-size:13px;line-height:1.65}.cmd{display:flex;align-items:center;gap:9px;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:8px 8px 8px 12px;margin:0 0 12px}.cmd code{flex:1;min-width:0;overflow-x:auto;white-space:nowrap;background:none;padding:0;font-size:13px;color:var(--ink)}.cmd .ccopy{flex:0 0 auto}.phead{display:flex;gap:18px;align-items:flex-start;padding:26px 0 22px;border-bottom:1px solid var(--line-2);margin:0 0 26px}.phead .ico-lg{width:56px;height:56px;flex:0 0 56px;border-radius:15px;font-size:25px;display:flex}.phead h1{margin:0 0 5px;font-size:26px;letter-spacing:-.025em;line-height:1.2;overflow-wrap:anywhere}.phead .sub{margin:0 0 12px;font-size:13.5px}.phead .sub a{color:var(--ink-3);overflow-wrap:anywhere}.phead .sub a:hover{color:var(--brand-dark)}.phead .lead{font-size:15px;line-height:1.8;margin:0 0 10px;max-width:820px}.phead .lead-en{margin:0 0 12px;max-width:820px}.phead .phead-tx>p.sub:not(:first-of-type){font-size:12px;line-height:1.65;color:var(--ink-4);margin:0 0 12px;max-width:820px}[data-tip]{position:relative}[data-tip]::after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%) translateY(-2px);z-index:60;width:max-content;max-width:min(248px,62vw);padding:7px 10px;border-radius:8px;background:var(--ink);color:var(--bg);font-size:12px;font-weight:400;line-height:1.55;letter-spacing:0;text-align:left;white-space:normal;box-shadow:0 12px 26px -14px rgba(16,24,40,.6);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease .22s,transform .14s ease .22s,visibility 0s linear .36s}[data-tip]:hover::after,[data-tip]:focus-visible::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);transition:opacity .14s ease .22s,transform .14s ease .22s,visibility 0s}.phead-pills [data-tip]:nth-last-child(-n+2)::after,.trust [data-tip]:nth-last-child(-n+2)::after{left:auto;right:0;transform:translateY(-2px)}.phead-pills [data-tip]:nth-last-child(-n+2):hover::after,.trust [data-tip]:nth-last-child(-n+2):hover::after{transform:translateY(0)}#install [data-tip]::after,.pside [data-tip]::after{left:0;right:auto;transform:translateY(-2px)}#install [data-tip]:hover::after,.pside [data-tip]:hover::after{transform:translateY(0)}.phead-kw{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.kw{font-size:11.5px;color:var(--ink-3);background:var(--bg-3);border:1px solid var(--line-2);border-radius:99px;padding:2px 9px}.phead-meta{display:flex;flex-wrap:wrap;gap:10px 30px;margin:0;padding:0;justify-content:flex-start}.phead-meta>div{display:flex;align-items:baseline;gap:6px;min-width:0}.phead-meta dt{font-size:12px;color:var(--ink-4);white-space:nowrap;flex:0 0 auto;margin:0}.phead-meta dt::after{content:"："}.phead-meta dd{font-size:13.5px;font-weight:650;color:var(--brand-dark);flex:0 0 auto;margin:0}.pdetail{display:grid;grid-template-columns:minmax(0,780px) 380px;gap:34px;align-items:start;min-width:0}.pmain{min-width:0}.pmain .panel{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:20px 24px 22px;box-shadow:0 1px 2px rgba(16,24,40,.04);margin:0}.pmain .panel+.panel{margin-top:14px}.pmain .panel h2{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0 0 16px}.pmain .md{font-size:14.5px;line-height:1.9}.pmain .md p{margin:0 0 13px}.pmain .md,.pmain .sub{max-width:none}.pside .panel{padding:15px 16px;margin:0;border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.03);min-width:0}.pside .panel h2{font-size:13px;margin:0 0 10px}.pside .panel h2::before{height:13px}.pside #install .cmd{display:block;padding:9px 10px;margin:0 0 9px;position:relative}.pside #install .cmd code{display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-all;font-size:11.5px;line-height:1.6;padding-right:26px}.pside #install .cmd .ccopy{position:absolute;top:6px;right:6px}.pside .kv{display:grid;grid-template-columns:1fr;gap:0;margin:0}.pside .kv dt{font-size:11.5px;color:var(--ink-4);margin-top:9px}.pside .kv dt:first-child{margin-top:0}.pside .kv dd{margin:1px 0 0;font-size:13px;overflow-wrap:anywhere}.pside .md{font-size:12.5px;line-height:1.6}.pside .codebox code{font-size:11.5px}.pside .note{font-size:11.5px;line-height:1.6}.pback{margin:30px 0 0}.pmain .md,.phead .lead,.phead .lead-en,.phead .phead-tx>p.sub:not(:first-of-type),.phead-kw,.phead-meta{max-width:88ch}@media (max-width:1080px){.pdetail{grid-template-columns:minmax(0,1fr);gap:20px}.phead .ico-lg{width:46px;height:46px;flex:0 0 46px;font-size:20px;border-radius:12px}.phead h1{font-size:22px}}.phead{display:flex;align-items:flex-start;gap:15px;padding:22px 0 18px;margin:0 0 20px;border-bottom:1px solid var(--line-2)}.phead .ico-lg{width:52px;height:52px;flex:0 0 52px;border-radius:13px;font-size:23px}.phead h1{margin:0 0 5px;font-size:27px;letter-spacing:-.025em;line-height:1.2;overflow-wrap:anywhere}.phead .sub{margin:0;font-size:13.5px}.phead .sub a{color:var(--ink-3)}.phead .sub a:hover{color:var(--brand-dark)}.pill{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:4px 10px;border-radius:99px;background:var(--bg-3);color:var(--ink-2);border:1px solid var(--line-2);white-space:nowrap}.pill.soft{background:var(--brand-soft);color:var(--brand-dark);border-color:transparent}.pill.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}.pill.bad{background:#fdeceb;color:#b3261e;border-color:transparent}details.fold{margin:0}details.fold>summary{cursor:pointer;font-size:12.5px;color:var(--ink-3);list-style:none;display:flex;align-items:center;gap:6px;user-select:none;padding:7px 0}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary::before{content:"▸";font-size:10px;color:var(--ink-4);transition:transform .15s}details.fold[open]>summary::before{transform:rotate(90deg)}details.fold>summary:hover{color:var(--brand-dark)}details.fold>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}details.fold[open]>summary{margin-bottom:8px}.md{font-size:14px;line-height:1.78;color:var(--ink-2);overflow-wrap:anywhere}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{color:var(--ink);line-height:1.35;margin:24px 0 10px;letter-spacing:-.01em}.md h1{font-size:21px}.md h2{font-size:18px;padding-bottom:7px;border-bottom:1px solid var(--line-2)}.md h3{font-size:16px}.md h4,.md h5,.md h6{font-size:14.5px}.md p{margin:0 0 13px}.md ul,.md ol{margin:0 0 13px;padding-left:23px}.md li{margin:0 0 6px}.md li::marker{color:var(--ink-4)}.md a{color:var(--brand-dark);text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--brand) 34%,transparent)}.md a:hover{text-decoration-color:var(--brand)}.md blockquote{margin:0 0 15px;padding:3px 0 3px 15px;border-left:3px solid var(--line);color:var(--ink-3)}.md hr{border:none;border-top:1px solid var(--line-2);margin:22px 0}.md img.img-dead{display:none}.md img{max-width:100%;height:auto;border-radius:7px;margin:5px 0}.md table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;font-size:13px;margin:0 0 15px}.md th,.md td{border:1px solid var(--line);padding:7px 11px;text-align:left;vertical-align:top;white-space:nowrap}.md th{background:var(--bg-3);font-weight:640;color:var(--ink)}.md tbody tr:nth-child(even){background:var(--bg-2)}.md del{color:var(--ink-4)}.codebox{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 15px;background:var(--bg)}.codebox-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 7px 5px 12px;background:var(--bg-3);border-bottom:1px solid var(--line-2)}.codebox-lang{font-size:11.5px;font-weight:640;color:var(--ink-3);letter-spacing:.3px;font-family:var(--mono)}.codebox .ccopy{width:24px;height:24px;border-color:transparent;background:transparent}.codebox .ccopy svg{width:13px;height:13px}.codebox .ccopy:hover{background:var(--bg);border-color:var(--line)}.codebox:hover .ccopy,.codebox .ccopy:focus-visible{opacity:1}.codebox .ccopy{opacity:0;transition:opacity .15s,color .15s,border-color .15s,background .15s}.tok-k{color:#a626a4}.tok-s{color:#0a7d55}.tok-n{color:#b76b01}.tok-c{color:var(--ink-4);font-style:italic}.tok-f{color:#3b6fb5}.tok-p{color:var(--ink-3)}.md blockquote{margin:0 0 14px;padding:2px 0 2px 14px;border-left:3px solid var(--line);color:var(--ink-3)}.md hr{border:none;border-top:1px solid var(--line-2);margin:20px 0}.md img{max-width:100%;height:auto;border-radius:6px;margin:4px 0}.md table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;font-size:13px;margin:0 0 14px}.md th,.md td{border:1px solid var(--line);padding:6px 10px;text-align:left;vertical-align:top;white-space:nowrap}.md th{background:var(--bg-3);font-weight:600;color:var(--ink)}.md del{color:var(--ink-4)}.md code{font-family:var(--mono);font-size:.9em;background:var(--bg-3);padding:1.5px 5px;border-radius:5px;border:1px solid var(--line-2)}.md pre{margin:0;background:var(--bg);overflow-x:auto}.md pre code{display:block;background:none;border:none;padding:13px 15px;font-size:12.5px;line-height:1.65;color:var(--ink)}details.lang{margin:18px 0 0;border-top:1px solid var(--line-2);padding-top:12px}details.lang>summary{cursor:pointer;font-size:13px;color:var(--ink-3);list-style:none;display:flex;align-items:center;gap:7px;user-select:none}details.lang>summary::-webkit-details-marker{display:none}details.lang>summary::before{content:"▸";font-size:11px;color:var(--ink-4);transition:transform .15s}details.lang[open]>summary::before{transform:rotate(90deg)}details.lang>summary:hover{color:var(--brand-dark)}details.lang>summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}details.lang[open]>summary{margin-bottom:12px}details.lang .md{font-size:13.5px;color:var(--ink-3)}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}code{font-size:.92em;background:var(--bg-3);padding:1px 5px;border-radius:5px}pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px;overflow:auto;font-size:13px;margin:0;color:var(--ink)}pre code{background:none;padding:0}.filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 18px}.filters a{font-size:13px;padding:5.5px 13px;border:1px solid var(--line);border-radius:99px;color:var(--ink-2);background:var(--bg);cursor:pointer}.filters a:hover{border-color:var(--brand);color:var(--brand-dark)}.filters a.on{background:var(--brand);border-color:var(--brand);color:#fff}.filters a b{font-weight:600;opacity:.65;margin-left:3px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:top}th{color:var(--ink-3);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;border-bottom-color:var(--line)}.kv{display:grid;grid-template-columns:170px 1fr;gap:9px 18px;font-size:14px}.kv dt{color:var(--ink-3)}.kv dd{margin:0;word-break:break-word}.ic{vertical-align:-2px;flex:none}.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:22px auto 0;max-width:1020px}@media (max-width:980px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:620px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;text-align:left}.stat .k{display:flex;align-items:center;gap:6px;color:var(--ink-3);font-size:12.5px}.stat .v{margin-top:4px;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}.stat .v small{font-size:13px;font-weight:600;color:var(--ink-3);margin-left:2px}.stat.good .k{color:var(--ok)}.stat.warn .k{color:var(--warn)}.hbar{display:grid;grid-template-columns:190px 1fr 54px 52px;align-items:center;gap:10px;font-size:13px;padding:3px 0}.hbar .lbl{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar .track{height:9px;border-radius:5px;background:var(--bg-3);overflow:hidden}.hbar .fill{display:block;height:100%;border-radius:5px}.hbar .num{text-align:right;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.hbar .pct{text-align:right;color:var(--ink-3);font-variant-numeric:tabular-nums}@media (max-width:620px){.hbar{grid-template-columns:120px 1fr 44px 46px;font-size:12px}}.cov{display:flex;align-items:center;gap:8px;white-space:nowrap}.cov .track{width:56px;height:5px;border-radius:3px;background:var(--bg-3);overflow:hidden;flex:none}.cov .fill{display:block;height:100%;background:var(--brand)}.tag{font-size:11px;padding:1px 6px;border-radius:20px;border:1px solid var(--line);color:var(--ink-3);white-space:nowrap}.tag.full{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,transparent);background:var(--ok-bg)}.tag.sample{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent);background:var(--warn-bg)}table.verify{font-size:13.5px}table.verify td:first-child,table.verify th:first-child{width:64px;white-space:nowrap}table.verify td:nth-child(2){color:var(--ink-3);width:32%}table.verify td:nth-child(3){white-space:nowrap;color:var(--ink-3)}table.verify td:last-child b{color:var(--ink)}table.verify tr:last-child td{border-bottom:none}.notice{background:var(--warn-bg);border:1px solid color-mix(in srgb,var(--warn) 24%,transparent);border-radius:var(--radius);padding:13px 16px;color:var(--ink-2);font-size:13.5px;margin:0 0 24px}.notice.info{background:var(--bg-2);border-color:var(--line);border-left:3px solid var(--ink-4)}.notice a{color:var(--brand-dark)}.lead{font-size:15.5px;color:var(--ink-2);margin:0 0 18px}footer{border-top:1px solid var(--line);color:var(--ink-3);font-size:13px;text-align:center;padding:26px var(--pad);max-width:var(--maxw);margin:0 auto}footer p{margin:0 0 7px}.empty{color:var(--ink-3);padding:52px 0;text-align:center}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 22px;font-size:13px}.chips a{padding:4px 11px;border-radius:99px;background:var(--bg-3);color:var(--ink-2)}.chips a:hover{background:var(--brand-soft);color:var(--brand-dark)}.tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 24px;scrollbar-width:thin}.tab{flex:0 0 auto;padding:10px 15px;font:inherit;font-size:14px;font-weight:500;color:var(--ink-3);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.tab:hover{color:var(--ink)}.tab b{margin-left:6px;font-size:12px;font-weight:600;opacity:.7}.tab.on{color:var(--brand-dark);border-bottom-color:var(--brand)}.tab:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;border-radius:6px}@media (prefers-color-scheme:dark){.tab.on{color:var(--brand)}}.panel[hidden]{display:none}.compact .bdg{padding:2px 8px;font-size:11px}.compact .badges{display:none}.only-dense{display:none}.compact .only-dense{display:inline-block}.pdetail{gap:22px}.ppanel>.panel,.pside>.panel{background:var(--card);border:1px solid var(--card-line);border-radius:15px;box-shadow:var(--shadow-card);padding:20px 22px 22px}.panel:hover{box-shadow:var(--shadow-card)}.panel h2{margin:0 0 16px;font-size:16px;font-weight:650;letter-spacing:-.01em}.panel h2::before{width:4px;height:17px;border-radius:3px}.panel h3{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--card-line-2)}.phead{background:var(--card);border:1px solid var(--card-line);border-radius:15px;box-shadow:var(--shadow-card);padding:22px 24px;margin:0 0 20px}.phead .phead-meta{margin-top:14px;padding-top:14px;border-top:1px solid var(--card-line-2)}.phead-kw{margin-top:12px}.rsum{background:var(--card);border:1px solid var(--card-line);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.03);padding:14px 16px}.caps{gap:11px}.cap{background:var(--card);border:1px solid var(--card-line);border-radius:12px;border-left:3px solid var(--cap-tone,var(--card-line));box-shadow:0 1px 2px rgba(16,24,40,.035),0 6px 18px -14px rgba(16,24,40,.18);overflow:hidden}.cap + .cap{margin-top:0}.cap-h{padding:10px 14px;border-bottom:1px solid var(--card-line-2)}.cap-b{background:var(--bg-2);box-shadow:inset 0 1px 0 rgba(16,24,40,.03);padding:11px 14px 13px}.ev{gap:2px;margin:0}.ev li{position:relative;padding:5px 0 5px 15px;border-radius:6px;font-size:12px}.ev li:hover{background:var(--bg-3)}.ev li::before{content:"";position:absolute;left:2px;top:9px;width:8px;height:9px;border-left:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-bottom-left-radius:4px}.ev-loc{font-family:var(--mono);font-size:11px;color:var(--ink-2);background:var(--bg);border:1px solid var(--card-line-2);border-radius:5px;padding:1px 6px}.ev code,.ev .ev-code{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);background:var(--bg);border:1px solid var(--card-line-2);border-radius:5px;padding:1px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.ev-advice{margin-top:9px;padding:8px 11px;background:var(--bg);border:1px solid var(--card-line-2);border-radius:8px;font-size:12px}.scoreline{background:var(--bg-2);border:1px solid var(--card-line-2);border-radius:12px;padding:14px 16px;box-shadow:inset 0 1px 0 rgba(16,24,40,.03)}.deduct{gap:0}.deduct li{border-top:1px solid var(--card-line-2);padding:10px 0 10px 0}.deduct .pts{flex:0 0 40px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--card-line);border-radius:8px;height:26px;font-size:12.5px;font-weight:600}.deduct .ev{margin-top:6px;padding:7px 10px;background:var(--bg);border:1px solid var(--card-line-2);border-radius:7px;border-left:2px solid var(--warn)}.ladder{gap:8px;display:grid}.ladder li{border:1px solid var(--card-line);border-radius:10px;padding:10px 13px;border-left:3px solid var(--card-line);box-shadow:0 1px 2px rgba(16,24,40,.03)}.ladder li.yes.lv-l0{border-left-color:#25606b}.ladder li.yes.lv-l1{border-left-color:#1f6b3f}.ladder li.yes.lv-l2{border-left-color:#0b6b52}.ladder li.yes.lv-l3{border-left-color:#0a5b46}.ladder li.partial{border-left-color:var(--warn)}.ladder li.no{border-left-color:var(--line);border-style:dashed;background:transparent}.ladder .rung{flex:0 0 128px}.fold{background:var(--bg-2);border:1px solid var(--card-line-2);border-radius:11px;padding:2px 14px 14px;margin-top:18px}.fold summary{padding:11px 0 9px;font-weight:500}.fold .kv{margin-top:12px}.pside .panel{padding:18px 20px 20px}.kv{margin:0}.kv dt{font-size:11.5px;color:var(--ink-4);letter-spacing:.02em;margin:0}.kv dd{margin:2px 0 0;font-size:13px;color:var(--ink-2);word-break:break-word}.kv>div{display:grid;grid-template-columns:1fr;gap:0;padding:9px 0;border-top:1px solid var(--card-line-2)}.kv>div:first-child{border-top:0;padding-top:2px}.panel .cmd,.panel .co{background:var(--bg-2);border:1px solid var(--card-line);border-radius:10px;box-shadow:inset 0 1px 0 rgba(16,24,40,.03)}.panel .note.warn{border:1px solid #f0dfc4;background:var(--warn-bg);border-radius:10px;padding:10px 12px;margin-top:14px}.notice{border:1px solid var(--card-line);border-left:3px solid var(--warn);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.03)}.pback{margin-top:22px}@media (prefers-color-scheme:dark){.cap,.rsum,.ladder li,.deduct .pts{box-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 20px -16px rgba(0,0,0,.5)}.panel .note.warn{border-color:#5a4520}}body.pg-cards{background:var(--bg-3)}body.pg-cards main{padding-bottom:34px}.pg-cards .panel,.pg-cards .phead{background:var(--card)}.pg-cards .notice{background:var(--card)}@media (prefers-color-scheme:dark){body.pg-cards{background:#101317}}footer .icp{margin:6px 0 0;font-size:12.5px}footer .icp a{color:var(--ink-3)}footer .icp a:hover{color:var(--brand-dark);text-decoration:underline}.ins-why{background:var(--warn-bg);border-radius:8px;padding:8px 11px;color:var(--ink-2);font-size:12.5px;line-height:1.6}.doc-list,.points{list-style:none;margin:14px 0 0;padding:0;max-width:78ch}.points li{position:relative;padding:0 0 12px 20px;font-size:14px;line-height:1.75;color:var(--ink-2)}.points li::before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--brand);opacity:.65}.points li b{color:var(--ink)}.points li code{font-family:var(--mono);font-size:12.5px;background:var(--bg-3);border-radius:4px;padding:1px 5px}.sec>h2{margin:26px 0 0;font-size:16px;font-weight:650}.sec>p{max-width:78ch;line-height:1.8;color:var(--ink-2)}.totop{position:fixed;right:0;top:calc(50% - 22px);z-index:40;width:40px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--bg);border:1px solid var(--card-line);border-right:0;border-radius:12px 0 0 12px;cursor:pointer;color:var(--ink-2);box-shadow:0 1px 2px rgba(16,24,40,.05),0 10px 24px -14px rgba(16,24,40,.30);opacity:0;visibility:hidden;transform:translateX(12px);transition:opacity .18s ease,transform .18s ease,visibility .18s,border-color .15s ease}.totop.on{opacity:1;visibility:visible;transform:none}.totop:hover{border-color:var(--brand);color:var(--brand-dark)}.totop:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.totop svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media (max-width:760px){.totop{top:auto;right:16px;bottom:calc(80px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-right:1px solid var(--card-line);border-radius:14px;transform:translateY(8px)}.totop svg{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){.totop{transition:none;transform:none}}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 14px;font-size:13px;color:var(--ink-3)}.crumbs a{color:var(--ink-2)}.crumbs a:hover{color:var(--brand-dark);text-decoration:underline}.crumbs .sep{color:var(--ink-4)}.crumbs [aria-current]{color:var(--ink-3)}.related{margin:26px 0 0;padding:18px 20px;background:var(--card);border:1px solid var(--card-line);border-radius:14px;box-shadow:var(--shadow-card)}.related h2{margin:0 0 12px;font-size:15px;font-weight:650}.related .rel-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:980px){.related .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.related .rel-card{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--card-line);border-radius:11px;background:var(--bg);box-shadow:0 1px 2px rgba(16,24,40,.03);transition:border-color .15s ease,box-shadow .15s ease}.related .rel-card:hover{border-color:var(--brand);box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 20px -14px rgba(16,24,40,.28)}.related .rel-ico{flex:0 0 30px;width:30px;height:30px;border-radius:9px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.related .rel-body{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1 1 auto}.related .rel-body b{font-size:13.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.related .tchip{flex:none}.related ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.related li{display:flex;gap:10px;align-items:baseline;min-width:0}.related li a{font-size:13.5px;color:var(--brand-dark);font-weight:500;white-space:nowrap}.related li a:hover{text-decoration:underline}.related .rel-tx{color:var(--ink-3);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.related .rel-more{margin:14px 0 0;font-size:13px}@media (max-width:640px){.phead{padding:16px 16px 18px}.phead .ico-lg{width:44px;height:44px;flex-basis:44px;font-size:20px;border-radius:12px}.phead h1{font-size:20px;line-height:1.3}.grid{gap:12px}.card .tx{font-size:13.5px;line-height:1.6;-webkit-line-clamp:3}.card .foot{row-gap:6px}.ccopy,.chip,.ptab,.tchip,.pill{min-height:0}.ccopy{width:34px;height:34px}.chip{padding:8px 13px;font-size:13px}.ptab{padding:11px 13px;font-size:13.5px}.pager .pg{padding:9px 13px;min-width:40px}.related{padding:15px 15px}.related .rel-grid{grid-template-columns:1fr}.crumbs{font-size:12.5px}.lv-block{padding:13px 13px 15px}.ladder li{padding-left:15px}.ladder .rung{flex-basis:auto;display:block}.ladder li{display:block}.ladder .mark{float:right}}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:24px 0 0}.pager .pg{min-width:34px;text-align:center;padding:6px 11px;border:1px solid var(--card-line);border-radius:9px;font-size:13.5px;color:var(--ink-2);background:var(--card);font-family:inherit;cursor:pointer}.pager .pg:hover{border-color:var(--brand);color:var(--brand-dark)}.pager .pg.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.pager .pg-count{margin-left:auto;color:var(--ink-3);font-size:12.5px}.ladder li{position:relative;border-left:0;padding-left:18px;overflow:hidden}.ladder li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--bar,var(--card-line))}.ladder li.yes.lv-l0{--bar:#25606b}.ladder li.yes.lv-l1{--bar:#1f6b3f}.ladder li.yes.lv-l2{--bar:#0b6b52}.ladder li.yes.lv-l3{--bar:#0a5b46}.ladder li.partial{--bar:var(--warn)}.ladder li.no{--bar:var(--line)}.cap{position:relative;border-left:0;padding-left:0;overflow:hidden}.cap::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--cap-tone,var(--card-line));z-index:1}.deduct .ev{position:relative;border-left:0;padding-left:12px}.deduct .ev::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--warn)}.lv-block{margin:20px 0 0;padding:16px 18px 18px;background:var(--card);border:1px solid var(--card-line);border-radius:13px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 22px -16px rgba(16,24,40,.24)}.lv-block h3{margin:0 0 14px;padding:0;border-top:0}.lv-block .ladder{margin:0}@media (prefers-color-scheme:dark){.lv-block{box-shadow:0 1px 2px rgba(0,0,0,.35),0 10px 24px -18px rgba(0,0,0,.6)}}@keyframes dsh-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes dsh-card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes dsh-page-in{from{opacity:0}to{opacity:1}}@keyframes dsh-vt-out{to{opacity:0}}@keyframes dsh-vt-in{from{opacity:0}}@view-transition{navigation:auto}::view-transition-old(root){animation:dsh-vt-out .11s ease-in both}::view-transition-new(root){animation:dsh-vt-in .22s ease-out both}@media (prefers-reduced-motion:no-preference){main>*{animation:dsh-rise .34s cubic-bezier(.2,.7,.3,1) backwards}main>:nth-child(2){animation-delay:.03s}main>:nth-child(3){animation-delay:.06s}main>:nth-child(4){animation-delay:.09s}main>:nth-child(n+5){animation-delay:.11s}.card.card-in{animation:dsh-card-in .3s cubic-bezier(.2,.7,.3,1) backwards}.page-enter body{animation:dsh-page-in .2s ease-out backwards}.page-leave body{opacity:0;transition:opacity .12s ease}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}:root{--brand:#3b4fd8;--brand-dark:#3345c4;--brand-soft:#eef0ff;--ink:#15171c;--ink-2:#565d66;--ink-3:#858b96;--ink-4:#b7bcc9;--line:#e6e8f0;--line-2:#f1f3f8;--bg:#f6f7fb;--bg-2:#ffffff;--bg-3:#f1f3f8;--card:#ffffff;--card-line:#e6e8f0;--card-line-2:#f1f3f8;--ok:#1a7f37;--ok-bg:#daf5e6;--warn:#a4621a;--warn-bg:#fdf1e3;--bad:#b42318;--bad-bg:#fdeceb;--cat-ui:#3b4fd8;--cat-model:#1f8a5b;--cat-other:#8b93a3;--cat-session:#7a4fd0;--cat-market:#e08b2b;--cat-tools:#2b7fb8;--cat-skill:#b8496b;--cat-dev:#c9a227;--maxw:1200px;--pad:28px;--radius:14px;--radius-lg:18px;--radius-btn:9px;--radius-tag:6px;--shadow:none;--shadow-card:none;--shadow-soft:none;--shadow-lift:0 14px 30px -18px rgba(21,23,28,.35);--hero-grad:none;--tint:none;--font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}@media (prefers-color-scheme:dark){:root{--ink:#eceef3;--ink-2:#b3b9c4;--ink-3:#858b96;--ink-4:#646b76;--line:#2a2f3a;--line-2:#22262f;--bg:#12141a;--bg-2:#1a1d25;--bg-3:#22262f;--card:#1a1d25;--card-line:#2a2f3a;--card-line-2:#22262f;--brand:#7c8bf5;--brand-dark:#6b7ae8;--brand-soft:#1e2233;--ok:#57c98a;--ok-bg:#12241a;--warn:#e0a45c;--warn-bg:#2a2114;--bad:#f08a80;--bad-bg:#2a1614}}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.6;font-variant-numeric:tabular-nums}h1,h2,h3{letter-spacing:-.02em}a:hover{color:var(--brand)}body>header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line)}@media (prefers-color-scheme:dark){body>header{background:var(--bg-2)}}.hwrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);height:64px;display:flex;align-items:center;gap:24px;flex-wrap:nowrap}.brand{font-size:16px;font-weight:700;letter-spacing:-.01em;flex:none}.brand img{height:28px;width:auto}.brand span{color:var(--ink-3);font-weight:400}.hwrap nav{margin-left:auto;display:flex;gap:24px;align-items:center}.hwrap nav a{font-size:14px;color:var(--ink-2);padding:6px 0;position:relative}.hwrap nav a:hover{color:var(--ink)}.hwrap nav a[aria-current="page"]{color:var(--ink);font-weight:600}.hwrap nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--brand)}.hwrap .go-all{flex:none;height:38px;padding:0 16px;display:inline-flex;align-items:center;background:var(--brand);color:#fff;border-radius:var(--radius-btn);font-size:14px;font-weight:600;transition:background .14s ease}.hwrap .go-all:hover{background:var(--brand-dark);color:#fff}.hero-fx{display:none}.hero{background:var(--bg);border:0;padding:56px 0 40px}.hero .wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);text-align:center}.hero h1{font-size:44px;line-height:1.15;font-weight:700;margin:0 0 14px}.hero .sub{font-size:15px;color:var(--ink-2);max-width:560px;margin:0 auto;line-height:1.7}.bigsearch,.bigsearch:focus-within{position:relative;width:620px;max-width:100%;margin:28px auto 0;text-align:left;display:flex;align-items:center;background:none;border:0;border-radius:0;box-shadow:none;padding:0;overflow:visible}.bigsearch .mag{position:absolute;left:20px;width:20px;height:20px;color:var(--ink-3);stroke:currentColor;stroke-width:1.8;pointer-events:none}.bigsearch input{width:100%;height:58px;padding:0 168px 0 52px;border:1px solid #dfe2f0;border-radius:16px;background:#fff;color:var(--ink);font-size:15px;font-family:var(--font);outline:none;transition:border-color .14s ease,box-shadow .14s ease}.bigsearch input::placeholder{color:var(--ink-3)}.bigsearch input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(59,79,216,.12)}.bigsearch .go{position:absolute;top:7px;right:7px;bottom:7px;height:auto;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;border:0;border-radius:12px;font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:background .14s ease}.bigsearch .go:hover{background:var(--brand-dark)}.bigsearch .clear{position:absolute;right:96px;top:50%;transform:translateY(-50%);width:26px;height:26px;padding:0;border:0;border-radius:50%;background:var(--bg-3);color:var(--ink-3);font-size:15px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.bigsearch .clear:hover{background:#e6e9f2;color:var(--ink)}.bigsearch .clear[hidden]{display:none}@keyframes rz-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}.bigsearch.shake{animation:rz-shake .16s ease-in-out 1}@media (prefers-reduced-motion:reduce){.bigsearch.shake{animation:none}}.catsearch .mag{left:15px;width:18px;height:18px}@media (max-width:900px){.bigsearch{width:100%;margin:20px auto 0}.bigsearch input{height:50px;padding:0 132px 0 44px;font-size:14px;border-radius:14px}.bigsearch .go{top:6px;right:6px;bottom:6px;padding:0 16px;font-size:13px;border-radius:10px}.bigsearch .mag{left:16px;width:18px;height:18px}.bigsearch .clear{right:80px}}.chiphint{font-size:13px;color:var(--ink-3);margin:14px 0 10px}.quickchips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.quickchips .chip{height:32px;display:inline-flex;align-items:center;padding:0 14px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:13px;color:var(--ink-2);transition:border-color .14s ease,color .14s ease}.quickchips .chip:hover{border-color:var(--brand);color:var(--brand)}.quickchips .chip .num{color:var(--ink-3);margin-left:6px;font-size:12px}.stats{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}@media (prefers-color-scheme:dark){.stats{background:var(--bg-2)}}.stats .stat{padding:18px 8px;text-align:center;border-right:1px solid var(--line-2)}.stats .stat:last-child{border-right:0}.stats .stat .k{font-size:11.5px;color:var(--ink-3);display:flex;align-items:center;justify-content:center;gap:5px}.stats .stat .k svg{display:none}.stats .stat .v{font-size:22px;font-weight:650;line-height:1.2;margin-top:5px;color:var(--ink)}.stats .stat .v small{font-size:11.5px;font-weight:400;color:var(--ink-3);margin-left:3px}.sec{max-width:var(--maxw);margin:0 auto;padding:40px var(--pad) 0}.sec-h{display:flex;align-items:baseline;gap:12px;margin:0 0 16px}.sec-h h2{font-size:19px;font-weight:600;margin:0}.sec-h .more{margin-left:auto;font-size:12.5px;color:var(--brand)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.grid.compact{gap:16px}.bdg,.pill,.tchip,.kw,.lvl-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;line-height:1.3;font-weight:500;padding:3px 8px;border-radius:var(--radius-tag);border:0}.bdg.ok,.pill.ok{background:var(--ok-bg);color:var(--ok)}.bdg.warn,.pill.warn{background:var(--warn-bg);color:var(--warn)}.bdg.bad,.pill.bad{background:var(--bad-bg);color:var(--bad)}.bdg.soft,.pill.soft{background:var(--bg-3);color:var(--ink-2)}.lic{background:var(--brand-soft);color:var(--brand)}.kw{background:var(--bg-3);color:var(--ink-2)}.tchip{background:var(--bg-3);color:var(--ink-2)}.tchip.lv{background:var(--bg-3);color:var(--ink-2)}.tchip.grade.g-s{background:var(--ok-bg);color:var(--ok)}.tchip.grade.g-b{background:var(--brand-soft);color:var(--brand)}.tchip.grade.low{background:var(--warn-bg);color:var(--warn)}button,.ccopy,.pg,.pback,.rel-more{font-family:var(--font)}.ccopy{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-btn);background:#fff;color:var(--ink-2);font-size:12.5px;cursor:pointer;transition:border-color .14s ease,color .14s ease,background .14s ease}.ccopy:hover{border-color:var(--brand);color:var(--brand)}.ccopy svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7}.ccopy.done{background:var(--ok-bg);border-color:var(--ok-bg);color:var(--ok)}.pager{display:flex;gap:6px;justify-content:center;align-items:center;margin:34px 0 0;flex-wrap:wrap}.pager .pg,.pager .pg-count,.pager a.pg{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-2);font-size:13px}.pager .pg.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.pager .pg[aria-disabled="true"],.pager .pg:disabled{color:var(--ink-4);background:var(--bg-3)}footer.site{margin:56px 0 0;padding:40px 0 24px;background:#fff;border-top:1px solid var(--line)}@media (prefers-color-scheme:dark){footer.site{background:var(--bg-2)}}.fwrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}.fcol h3{font-size:13px;font-weight:600;color:var(--ink);margin:0 0 10px}.fcol p,.fcol li,.fcol a{font-size:12.5px;line-height:1.9;color:var(--ink-2)}.fcol ul{list-style:none;margin:0;padding:0}.fcol a:hover{color:var(--brand)}.fbar{max-width:var(--maxw);margin:28px auto 0;padding:16px var(--pad) 0;border-top:1px solid var(--line-2);display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}.mnav{display:none}@media (max-width:900px){.hwrap{height:56px;padding:0 18px}.hwrap nav,.hwrap .go-all{display:none}body>header{position:static}.mnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}@media (prefers-color-scheme:dark){.mnav{background:var(--bg-2)}}.mnav a{flex:1;height:54px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--ink-2)}.mnav a[aria-current="page"]{color:var(--brand);font-weight:600}body{padding-bottom:86px}.hero{padding:32px 0 24px}.hero h1{font-size:30px}.hero .sub{font-size:14px}.stats{grid-template-columns:repeat(3,1fr)}.stats .stat:nth-child(3n){border-right:0}.stats .stat:nth-child(-n+3){border-bottom:1px solid var(--line-2)}.sec{padding:28px 18px 0}.grid{grid-template-columns:1fr;gap:12px}.quickchips{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}.quickchips::-webkit-scrollbar{display:none}.fwrap{grid-template-columns:1fr 1fr;gap:20px}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.card:hover{transform:none}}.phead{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:32px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 28px}@media (prefers-color-scheme:dark){.phead{background:var(--bg-2)}}.phead .ico-lg,.phead-pills{display:none}.phead-main{min-width:0}.phead-kicker{font-size:11.5px;color:var(--brand);letter-spacing:.6px;margin:0 0 8px}.phead h1{font-size:32px;line-height:1.2;font-weight:700;margin:0 0 7px;overflow-wrap:anywhere}.phead-author{font-size:12.5px;color:var(--ink-3);margin:0 0 12px}.phead .lead{font-size:14px;line-height:1.7;color:var(--ink-2);max-width:560px;margin:0 0 10px}.phead .trust{margin:14px 0 0}.phead-meta{display:flex;flex-wrap:wrap;gap:26px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line-2);font-size:12px;color:var(--ink-3)}.phead-cmd{background:#141a35;border-radius:12px;padding:15px;color:#dfe3ff}.phead-cmd .cmd-label{font-size:10.5px;letter-spacing:1px;color:#8d97d8;margin:0 0 8px}.phead-cmd .cmd-line{display:block;font-family:var(--mono);font-size:12px;line-height:1.7;color:#dfe3ff;background:none;padding:0;margin:0 0 12px;overflow-wrap:anywhere}.phead-cmd .cmd-copy{width:100%;height:36px;justify-content:center;display:flex;align-items:center;background:var(--brand);color:#fff;border:0;border-radius:var(--radius-btn);font-size:13px;font-weight:600;cursor:pointer}.phead-cmd .cmd-copy:hover{background:var(--brand-dark);color:#fff}.phead-cmd .ins{margin:12px 0 0}.phead-cmd .ins .bdg{font-size:11px}.phead-cmd .ins-why,.phead-cmd>.sub{font-size:11.5px;color:#a9b1d8;margin:8px 0 0;line-height:1.6}.phead-caps{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:14px 0 0;padding:0 2px}.phead-caps .caps-label{font-size:11.5px;color:var(--ink-3);margin-right:4px}@media (max-width:900px){.phead{grid-template-columns:1fr;gap:18px;padding:20px 18px}.phead h1{font-size:24px}.phead-cmd{order:2}}.phead-chipline .trust{display:contents}.phead-chipline .tchip{font-size:11.5px;padding:3px 9px;border-radius:var(--radius-tag);background:var(--bg-3);color:var(--ink-2)}.phead-chipline .tchip b{font-weight:650}.phead-chipline .tchip.lv{background:var(--brand-soft);color:var(--brand)}.phead-chipline .tchip.grade.g-s{background:var(--ok-bg);color:var(--ok)}.phead-chiprow{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:14px 0 0}.phead-chiprow .trust{display:contents}.phead-chiprow .tchip{font-size:11.5px;padding:3px 9px;border-radius:var(--radius-tag);background:var(--bg-3);color:var(--ink-2)}.phead-chiprow .tchip b{font-weight:650}.phead-chiprow .tchip.lv{background:var(--brand-soft);color:var(--brand)}.phead-chiprow .tchip.grade.g-s{background:var(--ok-bg);color:var(--ok)}@media (prefers-reduced-motion:no-preference){@keyframes rz-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero h1{animation:rz-rise .55s cubic-bezier(.22,1,.36,1) backwards}.hero .sub{animation:rz-rise .55s cubic-bezier(.22,1,.36,1) .07s backwards}.hero .bigsearch{animation:rz-rise .55s cubic-bezier(.22,1,.36,1) .14s backwards}.hero .chiphint{animation:rz-rise .5s ease .2s backwards}.hero .quickchips{animation:rz-rise .5s ease .24s backwards}.stats .stat{animation:rz-rise .45s cubic-bezier(.22,1,.36,1) backwards}.stats .stat:nth-child(1){animation-delay:.26s}.stats .stat:nth-child(2){animation-delay:.30s}.stats .stat:nth-child(3){animation-delay:.34s}.stats .stat:nth-child(4){animation-delay:.38s}.stats .stat:nth-child(5){animation-delay:.42s}.stats .stat:nth-child(6){animation-delay:.46s}.sec{animation:rz-rise .5s cubic-bezier(.22,1,.36,1) backwards}.card{animation:rz-rise .45s cubic-bezier(.22,1,.36,1) backwards}.card:nth-child(3n+2){animation-delay:.06s}.card:nth-child(3n+3){animation-delay:.12s}.card:nth-child(n+7){animation-delay:.16s}.card:nth-child(n+10){animation-delay:.2s}.phead{animation:rz-rise .5s cubic-bezier(.22,1,.36,1) backwards}.phead-metrics,.phead-chiprow{animation:rz-rise .45s cubic-bezier(.22,1,.36,1) .08s backwards}.pdetail{animation:rz-rise .5s cubic-bezier(.22,1,.36,1) .12s backwards}body::after{content:"";position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:linear-gradient(90deg,transparent,var(--brand),transparent);transform:scaleX(0);transform-origin:0 50%;opacity:0;pointer-events:none}body.page-leave::after{animation:rz-load .5s ease forwards}@keyframes rz-load{0%{opacity:1;transform:scaleX(0)}60%{opacity:1;transform:scaleX(.7)}100%{opacity:0;transform:scaleX(1)}}}@media (prefers-reduced-motion:no-preference){@keyframes rz-shimmer{from{background-position:-200px 0}to{background-position:200px 0}}.card.is-loading{background-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.045) 50%,transparent 100%);background-size:200px 100%;background-repeat:no-repeat;animation:rz-shimmer 1.1s linear infinite}}@media (prefers-reduced-motion:reduce){.card,.hero h1,.hero .sub,.hero .bigsearch,.stats .stat,.sec,.phead,.pdetail{animation:none!important}}.rank{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.rank th{font-size:11.5px;font-weight:500;color:var(--ink-3);text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}.rank td{padding:12px 14px;border-bottom:1px solid var(--line-2);font-size:13.5px}.rank tr:last-child td{border-bottom:0}.rank .rk{width:44px;color:var(--ink-3);font-variant-numeric:tabular-nums}.rank .nm a{font-weight:600}.rank .sc span{margin-left:4px;font-size:11.5px;color:var(--ink-3)}.rank .dl,.rank .sc{text-align:right;font-variant-numeric:tabular-nums}@media (max-width:900px){.rank .cat,.rank .lic{display:none}}.count{font-size:13px;color:var(--ink-3);margin:8px 0 0}.count + .sub{margin-top:10px}.back{margin:26px 0 0;font-size:13px}.back a{color:var(--brand)}.back a:hover{color:var(--brand-dark)}.catcards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.catcard{display:flex;flex-direction:column;gap:3px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;text-decoration:none;transition:border-color .16s ease,transform .16s ease}.catcard b{font-size:14px;font-weight:600;color:var(--ink)}.catcard span{font-size:12px;color:var(--brand);font-variant-numeric:tabular-nums}.catcard i{font-size:12px;font-style:normal;color:var(--ink-3);line-height:1.6}.catcard-go{margin-top:8px;font-size:12px;color:var(--ink-3)}.catcard:hover .catcard-go{color:var(--brand)}.catcard:hover{border-color:var(--brand);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.catcard{transition:none}.catcard:hover{transform:none}}.catcards.tabs{display:grid;gap:12px;border-bottom:0;overflow:visible}.catcard.tab{flex:none;padding:14px 16px;font:inherit;font-weight:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:12px;border-bottom-color:var(--line)}.catcard.tab.on{background:var(--brand-soft);border-color:var(--brand)}.catcard.tab:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.searchpage h1{font-size:34px;line-height:1.25;font-weight:700;margin:0}.searchpage .bigsearch{margin:20px 0 0;width:100%;max-width:620px;text-align:left}.searchpage .count{margin:14px 0 0}.searchpage .grid{margin-top:18px}.searchpage .empty{max-width:560px;margin-top:20px}.searchpage .empty h2{font-size:19px;font-weight:600;margin:0 0 6px}.searchpage .empty p{font-size:13.5px;color:var(--ink-2);margin:0 0 14px}.searchpage .empty .quickchips{justify-content:flex-start}.pager .pg-gap{color:var(--ink-3);padding:0 2px}@media (max-width:900px){.catcards{grid-template-columns:1fr 1fr}.searchpage h1{font-size:25px}.searchpage .bigsearch{max-width:none}}@media (max-width:600px){.catcards{grid-template-columns:1fr}}.hero::before{display:none}.hero{background:var(--bg)}.hero h1{text-wrap:balance}.hero .sub{max-width:620px;text-wrap:balance}.hero{padding-bottom:8px}.hero + .wrap>.sec:first-child{padding-top:30px}.stats{grid-template-columns:repeat(var(--stat-cols,4),minmax(0,1fr));gap:0;background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0}.stats .stat{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;padding:16px 10px}.stats .stat::before{display:none}.stats .stat:last-child{border-right:0}.stats .stat .v small{display:inline}@media (max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats .stat{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}.stats .stat:nth-child(2n){border-right:0}.stats .stat:nth-last-child(-n+2){border-bottom:0}.stats .stat:last-child{border-right:0}}.quickchips .chip{flex:none;white-space:nowrap}@media (max-width:900px){.quickchips{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.quickchips::-webkit-scrollbar{display:none}}footer.site{max-width:none;width:100%;margin:56px 0 0;padding:40px 0 24px;text-align:left;background:var(--bg-2);border-top:1px solid var(--line)}.fwrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}.fcol:first-child p{text-align:left}.fbar{max-width:var(--maxw);margin:28px auto 0;padding:16px var(--pad) 0}footer.site .icp{max-width:var(--maxw);margin:8px auto 0;padding:0 var(--pad);text-align:left;font-size:12.5px}.rank th{white-space:nowrap}.rank th.rk,.rank td.rk{width:58px}.rank th.lic-c,.rank td.lic-c{width:112px;background:none;color:var(--ink-2);border-radius:0;font-size:13.5px;font-weight:400}.rank th.cat,.rank td.cat{width:120px}.rank th.sc,.rank td.sc{width:96px}.rank th.dl,.rank td.dl{width:92px}.rank td.nm{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-head{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}.page-head h1{font-size:34px;line-height:1.25;font-weight:700;margin:0 0 10px}.page-head .sub{font-size:15px;color:var(--ink-2);max-width:760px;margin:0}@media (max-width:900px){.rank th.cat,.rank td.cat,.rank th.lic-c,.rank td.lic-c{display:none}.rank th.rk,.rank td.rk{width:44px}.rank th,.rank td{padding:10px 10px}.rank td.nm{white-space:normal}.page-head h1{font-size:25px}}.nf{max-width:560px;margin:0 auto;padding-top:64px}.nf h1,.doc h1,.sec>h1{font-size:34px;line-height:1.25;font-weight:700;margin:0 0 10px}.nf .sub{margin:0 0 22px}@media (max-width:900px){.nf{padding-top:36px}.nf h1,.doc h1,.sec>h1{font-size:25px}}.sec-h h1{font-size:34px;line-height:1.25;font-weight:700;margin:0}.rank th.lic-c,.rank td.lic-c{width:132px;white-space:nowrap}@media (max-width:900px){.sec-h h1{font-size:25px}.rank td.nm{max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.rank td.nm a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.rank th.sc,.rank td.sc{display:none}}details.lang>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;font-size:12.5px;color:var(--ink-3)}details.lang>summary::-webkit-details-marker{display:none}details.lang>summary::before{content:"＋";font-size:12px;color:var(--ink-4)}details.lang[open]>summary::before{content:"－"}details.lang>summary:hover{color:var(--brand)}.sec{padding:40px 0 0}.hero .wrap{padding:0}.stats{padding:0}.page-head{padding:0}@media (max-width:900px){.sec{padding:28px 0 0}.stats{padding:0}}body.doc-page .crumbs{max-width:920px;margin-left:auto;margin-right:auto}.totop{position:fixed;right:24px;bottom:24px;z-index:45;width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-2);color:var(--ink-2);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 18px -10px rgba(21,23,28,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease,border-color .16s ease,color .16s ease}.totop.on{opacity:1;visibility:visible;transform:none}.totop:hover{border-color:var(--brand);color:var(--brand)}@media (max-width:900px){.totop{right:14px;bottom:calc(64px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.totop{transition:none}}.ptabs{display:flex;gap:4px;padding:4px;margin:0 0 18px;background:var(--bg-3);border:0;border-radius:12px;overflow-x:auto;scrollbar-width:none}.ptabs::-webkit-scrollbar{display:none}.ptabs[data-stuck]{position:sticky;top:8px;z-index:20;background:var(--bg-3);box-shadow:0 10px 24px -18px rgba(21,23,28,.45)}.ptab{flex:0 0 auto;padding:8px 14px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:background .14s ease,color .14s ease,box-shadow .14s ease}.ptab:hover{color:var(--ink);background:rgba(255,255,255,.6)}.ptab.on{background:var(--bg-2);color:var(--brand-dark);font-weight:600;box-shadow:0 1px 2px rgba(21,23,28,.08)}.ptab:focus-visible{outline:2px solid var(--brand);outline-offset:1px}@media (prefers-reduced-motion:reduce){.ptab{transition:none}}.layer{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:18px 20px}.layer header{align-items:center;margin:0 0 8px}.layer header .state{border-radius:6px;font-size:11.5px;padding:3px 9px}.card .foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line-2);font-size:11.5px}.card .foot .cat-l{margin-left:auto;color:var(--ink-3)}.card .foot .ccopy{margin-left:2px}.card-inner{height:100%}.ccopy{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:var(--bg-2);color:var(--ink-3);cursor:pointer}.ccopy svg{width:14px;height:14px}.compact .ccopy{width:28px;height:28px}.compact .ccopy svg{width:13px;height:13px}.phead-cmd .ccopy,.cmd .ccopy{width:100%;height:36px;padding:0 14px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#fff;background:var(--brand);border-color:transparent}.phead-cmd .ccopy:hover,.cmd .ccopy:hover{background:var(--brand-dark);color:#fff}.cattabs{display:inline-flex;flex-wrap:nowrap;gap:4px;padding:4px;background:var(--bg-3);border:0;border-radius:12px;max-width:100%;overflow-x:auto;scrollbar-width:none}.cattabs::-webkit-scrollbar{display:none}.cattabs .ctab{flex:0 0 auto;padding:7px 12px;border:0;border-radius:9px;background:transparent;color:var(--ink-2);font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .14s ease,color .14s ease}.cattabs .ctab::after{display:none}.cattabs .ctab:hover{color:var(--ink);background:rgba(255,255,255,.6)}.cattabs .ctab.on{background:var(--bg-2);color:var(--brand-dark);font-weight:600;box-shadow:0 1px 2px rgba(21,23,28,.08)}.cattabs .ctab i{color:var(--ink-3)}.cattabs .ctab.on i{color:var(--brand)}@media (prefers-reduced-motion:reduce){.cattabs .ctab{transition:none}}.stats{background:transparent}.searchpage .bigsearch{margin:18px 0 0;max-width:620px}.phead-cmd{background:var(--bg-3);border:1px solid var(--line);color:var(--ink)}.phead-cmd .cmd-label{color:var(--ink-3)}.phead-cmd .cmd-line{display:block;color:var(--ink);background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.phead-cmd .ins-why,.phead-cmd>.sub{color:var(--ink-2)}.phead-cmd .ins .bdg{background:var(--bg-2)}.ptabs[data-stuck]{position:static;top:auto;box-shadow:none;background:var(--bg-3)}.phead,.layer header{position:static;top:auto;z-index:auto}#homePager{margin-top:26px}.limits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.limits article{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.limits h3{font-size:14px;font-weight:650;margin:0 0 8px;line-height:1.45}.limits p{font-size:12.5px;line-height:1.75;color:var(--ink-2);margin:0}@media (max-width:1100px){.limits{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.limits{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.limits{grid-template-columns:1fr}}.rank-tabs{width:max-content;max-width:100%;margin:0 0 14px}.rank-tabs .src{font-size:11px;font-weight:500;color:var(--ink-3);margin-left:4px}.rank-tabs .ptab.on .src{color:var(--brand)}.rank-cats{margin:0 0 6px;justify-content:flex-start}.rank-app .count{margin:12px 0 6px}.rank-app .rank{margin-top:6px}.rank-app + .sec{margin-top:34px}.pdetail{column-gap:34px;row-gap:0;grid-template-columns:minmax(0,1fr)}.pdetail>.ptabs{grid-column:1 / -1;width:max-content;max-width:100%;margin:0 0 16px}.pmain{max-width:880px}.catpanel .grid{margin-top:12px}.kvt{width:100%;border-collapse:collapse;font-size:13.5px}.kvt th{width:150px;padding:9px 18px 9px 0;text-align:left;vertical-align:top;font-weight:400;font-size:13px;color:var(--ink-3);border-bottom:1px solid var(--line-2);text-transform:none;letter-spacing:0}.kvt td{padding:9px 0;vertical-align:top;color:var(--ink-2);line-height:20px;border-bottom:1px solid var(--line-2)}.kvt tr:last-child th,.kvt tr:last-child td{border-bottom:0}.kvt .kvt-n{display:block;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.kvt .peers{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.kvt .peer{font-size:12px;padding:3px 9px;border-radius:6px;background:var(--bg-3);border:1px solid var(--line);color:var(--ink-2)}.kvt .note{display:block;margin-top:7px;font-size:12px;color:var(--ink-3);line-height:1.6}.kvt-h{margin:26px 0 8px;font-size:13px;font-weight:600;color:var(--ink-3);letter-spacing:.02em}.compat-note{margin-top:20px}@media (max-width:600px){.kvt,.kvt tbody,.kvt tr,.kvt th,.kvt td{display:block;width:auto}.kvt th{padding:14px 0 2px;border-bottom:0}.kvt td{padding:0 0 12px;border-bottom:1px solid var(--line-2)}.kvt tr:last-child td{border-bottom:0}.kvt,.kvt td{font-size:13px}.kvt .peer{font-size:11.5px}.kvt .peers{margin-top:4px}}.t-short{display:none}@media (max-width:600px){.t-long{display:none}.t-short{display:inline}.ptab{padding:8px 9px;font-size:13px}.ptabs{gap:2px;padding:3px}}.doc{max-width:720px}.doc p,.doc li,.doc .lead,.doc .sub{font-size:15px;line-height:1.85}.doc .points li{font-size:15px;line-height:1.85}.doc h2{font-size:19px}.doc-page .crumbs{max-width:720px}@media (max-width:600px){.doc p,.doc li,.doc .lead,.doc .sub{font-size:14.5px;line-height:1.8}}.notice{border:1px solid var(--line);border-left:3px solid var(--brand);background:var(--brand-soft);color:var(--ink-2);padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.7}.points{margin:14px 0 0;padding:0;list-style:none}.points li{position:relative;padding:6px 0 6px 18px;line-height:1.8}.points li::before{content:"";position:absolute;left:0;top:14px;width:6px;height:6px;border-radius:2px;background:var(--brand)}.points li b{font-weight:600;color:var(--ink)}.searchpage [hidden]{display:none!important}.searchpage h1{overflow-wrap:anywhere;text-wrap:balance}.sec.searchpage{padding-top:18px}.searchpage .bigsearch{margin:18px 0 0;width:100%;max-width:620px}.searchpage .count{margin:10px 0 0;font-size:13px;color:var(--ink-3)}.searchpage .chiphint{margin:16px 0 8px;font-size:13px;color:var(--ink-3);text-align:left}.searchpage .grid{margin-top:18px}.searchpage .quickchips{justify-content:flex-start}.searchpage .pager{margin-top:28px}.searchpage .sp-cats{margin-top:10px}@media (max-width:900px){.searchpage .sp-cats{grid-template-columns:1fr 1fr;gap:10px}}@media (max-width:600px){.searchpage .sp-cats{grid-template-columns:1fr 1fr}.searchpage .sp-cats .catcard{padding:12px 14px}.searchpage .sp-cats .catcard i{display:none}}.sp-empty{margin-top:22px;padding:26px 28px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.sp-empty h2{font-size:19px;font-weight:600;line-height:1.4;margin:0 0 6px;color:var(--ink)}.sp-empty p{font-size:13.5px;line-height:1.7;color:var(--ink-2);margin:0 0 16px}.sp-empty .quickchips{justify-content:flex-start}@media (max-width:900px){.searchpage h1{font-size:25px}.searchpage .bigsearch{max-width:none;margin-top:16px}.searchpage .grid{margin-top:14px}}@media (max-width:600px){.sp-empty{padding:20px 18px}}.filterbar{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}.filterbar .chip{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:13px;color:var(--ink-2);transition:border-color .14s ease,color .14s ease,background .14s ease}.filterbar .chip:hover{border-color:var(--brand);color:var(--brand)}.filterbar .chip[aria-current="page"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}.filterbar .chip .num{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.filterbar .chip[aria-current="page"] .num{color:var(--brand)}@media (prefers-reduced-motion:reduce){.filterbar .chip{transition:none}}.filterbar + .grid{margin-top:18px}@media (max-width:900px){.filterbar{margin-top:16px;gap:6px}.filterbar .chip{height:32px;padding:0 12px;font-size:12.5px}}@media (max-width:600px){.bigsearch input,input[type=search]{font-size:16px}.pager .pg,.pager a.pg{min-width:44px;height:44px}.filterbar .chip,.quickchips .chip,.chips a,.sp-chips a{height:44px;display:inline-flex;align-items:center}.ptab{min-height:44px;display:inline-flex;align-items:center}.ctab{min-height:44px;display:inline-flex;align-items:center}.tabs .tab{min-height:44px;display:inline-flex;align-items:center}.ccopy{position:relative}.ccopy::after{content:"";position:absolute;inset:-8px;border-radius:10px}.bigsearch .clear::after{content:"";position:absolute;inset:-9px;border-radius:50%}.phead-kw .tag{position:relative}.phead-kw .tag::after{content:"";position:absolute;inset:-10px -6px}.pback a{display:inline-flex;align-items:center;min-height:44px}.rel-card{min-height:64px}}.pager,nav[aria-label="分页"]{justify-content:center;text-align:center}.pager .pg-count{flex-basis:100%;text-align:center;margin-top:6px}