:root{--bg: #f8f9ff;--surface: #ffffff;--subtle: #eff4ff;--subtle-2: #e5eeff;--border: #e2e8f0;--border-soft: #eef1f6;--fg: #0b1c30;--muted: #45464d;--faint: #64748b;--ink: #0f172a;--ink-fg: #ffffff;--ink-hover: #1e293b;--accent: #0051d5;--focus: #2563eb;--ok-bg: #f0fdf4;--ok-border: #bbf7d0;--ok-fg: #166534;--warn-bg: #fefce8;--warn-border: #fef08a;--warn-fg: #854d0e;--warn-icon: #ca8a04;--star: #f59e0b;--shadow: 0 1px 2px rgba(15,23,42,0.04);--shadow-pop: 0 12px 28px -10px rgba(15,23,42,0.22);--font-sans: "Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans","Hiragino Kaku Gothic ProN","Apple SD Gothic Neo","Microsoft YaHei","Yu Gothic UI","Malgun Gothic","Noto Sans CJK SC",sans-serif;--font-mono: "JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;color-scheme: light}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg: #0c1220;--surface: #131b2b;--subtle: #182235;--subtle-2: #1f2b42;--border: #283449;--border-soft: #1f2a3d;--fg: #e6ebf5;--muted: #b0b9c8;--faint: #8b96a9;--ink: #e6ebf5;--ink-fg: #0c1220;--ink-hover: #c9d2e3;--accent: #86adff;--focus: #86adff;--ok-bg: #0f2a1c;--ok-border: #1f5a39;--ok-fg: #86e3ac;--warn-bg: #2a2310;--warn-border: #5b4913;--warn-fg: #f0d27c;--warn-icon: #e0b23a;--star: #fbbf24;--shadow: 0 1px 2px rgba(0,0,0,0.3);--shadow-pop: 0 12px 28px -10px rgba(0,0,0,0.6);color-scheme: dark}}:root[data-theme="dark"]{--bg: #0c1220;--surface: #131b2b;--subtle: #182235;--subtle-2: #1f2b42;--border: #283449;--border-soft: #1f2a3d;--fg: #e6ebf5;--muted: #b0b9c8;--faint: #8b96a9;--ink: #e6ebf5;--ink-fg: #0c1220;--ink-hover: #c9d2e3;--accent: #86adff;--focus: #86adff;--ok-bg: #0f2a1c;--ok-border: #1f5a39;--ok-fg: #86e3ac;--warn-bg: #2a2310;--warn-border: #5b4913;--warn-fg: #f0d27c;--warn-icon: #e0b23a;--star: #fbbf24;--shadow: 0 1px 2px rgba(0,0,0,0.3);--shadow-pop: 0 12px 28px -10px rgba(0,0,0,0.6);color-scheme: dark}*{box-sizing: border-box}html{-webkit-text-size-adjust: 100%}body{margin: 0;background: var(--bg);color: var(--fg);font-family: var(--font-sans);font-size: 14px;line-height: 20px;-webkit-font-smoothing: antialiased;font-variant-numeric: tabular-nums;padding-bottom: env(safe-area-inset-bottom,0px)}body::before{content: "";position: fixed;inset: 0 0 auto;height: env(safe-area-inset-top,0px);z-index: 50;background: var(--surface)}[hidden]{display: none !important}a{color: var(--accent);text-decoration: none}a:hover{text-decoration: underline}button,input{font: inherit;color: inherit}:focus-visible{outline: 2px solid var(--focus);outline-offset: 2px}svg{flex-shrink: 0}.i{fill: none;stroke: currentColor;stroke-linecap: round;stroke-linejoin: round}.sprite{position: absolute;width: 0;height: 0;overflow: hidden}.mono{font-family: var(--font-mono)}.wrap{max-width: 1344px;margin: 0 auto;padding-left: max(24px,env(safe-area-inset-left,0px));padding-right: max(24px,env(safe-area-inset-right,0px))}@media (max-width: 640px){.wrap{padding-left: max(16px,env(safe-area-inset-left,0px));padding-right: max(16px,env(safe-area-inset-right,0px))}}.sep{color: var(--border)}.hdr{position: sticky;top: env(safe-area-inset-top,0px);z-index: 40;background: var(--surface);border-bottom: 1px solid var(--border)}.hdr .wrap{min-height: 56px;display: flex;align-items: center;justify-content: space-between;gap: 8px 12px;flex-wrap: wrap;padding-block: 8px}.brand{display: flex;align-items: center;gap: 10px;color: inherit;min-width: 0}.brand:hover{text-decoration: none}.brand-mark{width: 28px;height: 28px}.brand-mark .tile{fill: var(--ink)}.brand-mark .stroke{stroke: var(--ink-fg)}.brand-name{display: block;font-size: 18px;line-height: 20px;font-weight: 700;letter-spacing: -0.015em}.brand-sub{display: block;font-size: 12px;line-height: 16px;color: var(--muted)}.hdr-actions{display: flex;align-items: center;gap: 10px;flex-wrap: wrap}.langmenu{position: relative}.langmenu summary{display: inline-flex;align-items: center;gap: 6px;height: 32px;padding: 0 10px;border: 1px solid var(--border);border-radius: 4px;background: var(--surface);font-size: 13px;cursor: pointer;list-style: none;white-space: nowrap}.langmenu summary::-webkit-details-marker{display: none}.langmenu summary svg{color: var(--muted)}.langmenu ul{position: absolute;right: 0;top: calc(100% + 6px);z-index: 45;margin: 0;padding: 4px;list-style: none;min-width: 140px;background: var(--surface);border: 1px solid var(--border);border-radius: 8px;box-shadow: var(--shadow-pop)}.langmenu a{display: block;padding: 8px 10px;border-radius: 6px;color: var(--fg);font-size: 13px}.langmenu a:hover{background: var(--subtle);text-decoration: none}.langmenu a[aria-current="true"]{font-weight: 600;background: var(--subtle-2)}.btn-ink{display: inline-flex;align-items: center;gap: 6px;height: 32px;padding: 0 12px;border-radius: 4px;border: 0;background: var(--ink);color: var(--ink-fg);font-size: 13px;font-weight: 500;cursor: pointer;white-space: nowrap}.btn-ink:hover{background: var(--ink-hover);color: var(--ink-fg);text-decoration: none}main.wrap{padding-block: 24px;display: flex;flex-direction: column;gap: 24px}.intro{display: flex;flex-direction: column;gap: 6px;max-width: 760px;margin: 0 auto;text-align: center}.intro h1{margin: 0;font-size: 26px;line-height: 34px;font-weight: 700;letter-spacing: -0.02em;text-wrap: balance}.intro p{margin: 0;font-size: 14px;line-height: 22px;color: var(--muted);text-wrap: pretty}.toolbar{display: flex;flex-direction: column;gap: 16px}.search{position: relative;max-width: 672px;width: 100%;margin: 0 auto}.search>svg{position: absolute;left: 14px;top: 50%;transform: translateY(-50%);color: var(--faint);pointer-events: none}.search input{width: 100%;height: 44px;padding: 0 72px 0 40px;background: var(--surface);border: 1px solid var(--border);border-radius: 8px;font-size: 16px;outline: none;box-shadow: var(--shadow)}.search input::placeholder{color: var(--faint)}.search input:focus{border-color: var(--focus);box-shadow: 0 0 0 1px var(--focus)}.search kbd{position: absolute;right: 12px;top: 50%;transform: translateY(-50%);padding: 2px 6px;font-family: var(--font-mono);font-size: 11px;color: var(--muted);background: var(--subtle-2);border: 1px solid var(--border);border-radius: 4px;pointer-events: none}@media (max-width: 640px){.search kbd{display: none}.search input{padding-right: 12px}}.chips{display: flex;flex-wrap: wrap;gap: 6px;padding: 4px 0 10px;border-bottom: 1px solid var(--border)}.chip{display: inline-flex;align-items: center;gap: 5px;min-height: 30px;padding: 4px 10px;border-radius: 6px;border: 1px solid var(--border-soft);background: transparent;color: var(--muted);font-size: 12px;line-height: 16px;font-weight: 500;cursor: pointer;white-space: nowrap}.chip:hover{color: var(--fg);background: var(--subtle);border-color: var(--border)}.chip .n,.chip .c{font-family: var(--font-mono);font-size: 11px;color: var(--faint)}.chip[aria-pressed="true"]{background: var(--ink);border-color: var(--ink);color: var(--ink-fg)}.chip[aria-pressed="true"] .n,.chip[aria-pressed="true"] .c{color: var(--ink-fg);opacity: 0.65}.meta-row{display: flex;align-items: center;justify-content: space-between;gap: 8px 16px;flex-wrap: wrap;font-size: 13px;line-height: 18px;color: var(--muted)}.meta-row .left{display: flex;align-items: center;gap: 8px;flex-wrap: wrap;min-width: 0}.meta-row .count{color: var(--fg);font-weight: 500}.meta-row .note{font-size: 12px;color: var(--faint)}.meta-row .right{display: flex;align-items: center;gap: 12px}.link-btn{background: none;border: 0;padding: 0;font-size: 12px;color: var(--muted);text-decoration: underline;cursor: pointer}.link-btn:hover{color: var(--fg)}.sort{display: inline-flex;align-items: center;gap: 4px;font-size: 12px;color: var(--faint)}.grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,340px),1fr));gap: 16px;margin: 0;padding: 0;list-style: none}.card{background: var(--surface);border: 1px solid var(--border);border-radius: 8px;padding: 16px;display: flex;flex-direction: column;justify-content: space-between;gap: 14px;box-shadow: var(--shadow);transition: border-color .15s ease;min-width: 0}.card:hover{border-color: var(--faint)}.row{display: flex;align-items: center;justify-content: space-between;gap: 8px;min-width: 0}.row-l{display: flex;align-items: center;gap: 8px;min-width: 0}.cat-pill{display: inline-flex;align-items: center;gap: 5px;padding: 2px 8px;border-radius: 4px;font-size: 12px;line-height: 16px;font-weight: 500;background: var(--subtle);color: var(--muted);border: 1px solid var(--border);white-space: nowrap}.cat-pill svg{color: var(--accent)}.src{display: inline-flex;align-items: center;gap: 4px;font-size: 12px;color: var(--faint);min-width: 0}.src span{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.src .ok{color: var(--ok-fg);display: inline-flex}.stars{display: inline-flex;align-items: center;gap: 4px;font-family: var(--font-mono);font-size: 11px;color: var(--muted);white-space: nowrap}.stars svg{color: var(--star);fill: var(--star)}.name-row{margin-top: 8px;display: flex;align-items: baseline;justify-content: space-between;gap: 8px;flex-wrap: wrap}.name{display: flex;align-items: center;gap: 5px;min-width: 0}.name h3{margin: 0;font-family: var(--font-mono);font-weight: 500;font-size: 14px;letter-spacing: -0.01em;overflow-wrap: anywhere}.name h3 a{color: var(--fg)}.tags{display: flex;gap: 4px;flex-wrap: wrap}.tag{padding: 1px 6px;border-radius: 4px;font-size: 11px;line-height: 15px;font-weight: 500;background: var(--subtle-2);color: var(--muted);border: 1px solid var(--border);white-space: nowrap}.tip{position: relative;display: inline-flex}.tip button{display: inline-flex;padding: 2px;border: 0;background: none;color: var(--warn-icon);cursor: help;border-radius: 4px}.tip-body{position: absolute;bottom: calc(100% + 6px);left: -8px;z-index: 30;width: max-content;max-width: min(260px,70vw);padding: 6px 10px;border-radius: 4px;background: var(--warn-bg);border: 1px solid var(--warn-border);color: var(--warn-fg);font-size: 12px;line-height: 17px;box-shadow: var(--shadow-pop);visibility: hidden;opacity: 0;transition: opacity .12s ease}.tip:hover .tip-body,.tip:focus-within .tip-body{visibility: visible;opacity: 1}.desc{margin: 8px 0 0;font-size: 13px;line-height: 19px;color: var(--muted)}.status-row{margin-top: 12px}.listed{display: inline-flex;align-items: center;gap: 6px;padding: 2px 8px;border-radius: 4px;font-size: 12px;line-height: 16px;font-weight: 500;background: var(--subtle-2);color: var(--muted);border: 1px solid var(--border);white-space: nowrap}.small-note{font-size: 11px;color: var(--faint);font-family: var(--font-mono);white-space: nowrap}.perm-row{margin-top: 12px;padding-top: 10px;border-top: 1px solid var(--border-soft);display: flex;align-items: center;justify-content: space-between;gap: 6px 8px;flex-wrap: wrap}.perm-label{font-size: 12px;color: var(--faint);white-space: nowrap}.perms{display: flex;flex-wrap: wrap;gap: 6px;margin: 0;padding: 0;list-style: none;font-family: var(--font-mono);font-size: 11px}.perm{padding: 1px 6px;border-radius: 4px;border: 1px solid var(--border);color: var(--fg);white-space: nowrap;background: var(--surface)}.perm.off{border-color: var(--border-soft);color: var(--faint);text-decoration: line-through;background: transparent}.card-foot{padding-top: 12px;border-top: 1px solid var(--border);display: flex;align-items: center;justify-content: space-between;gap: 8px;font-size: 12px;color: var(--muted)}.card-foot .l{display: flex;align-items: center;gap: 8px;min-width: 0}.card-foot .tools{font-size: 11px;color: var(--faint);font-family: var(--font-mono);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.btn-soft{display: inline-flex;align-items: center;gap: 4px;padding: 5px 10px;border-radius: 6px;border: 1px solid var(--border);background: var(--subtle);color: var(--fg);font-size: 12px;line-height: 16px;font-weight: 500;cursor: pointer;white-space: nowrap}.btn-soft:hover{background: var(--subtle-2);text-decoration: none}.btn-soft svg{color: var(--faint)}.empty{padding: 48px 16px;text-align: center;color: var(--faint);font-size: 13px;border: 1px dashed var(--border);border-radius: 8px;background: var(--surface)}.audit{border: 1px solid var(--border);background: var(--surface);border-radius: 8px;padding: 16px}.criteria{margin: 0;padding: 0;list-style: none;display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr));gap: 10px}.criteria li{padding: 12px 14px;border: 1px solid var(--border-soft);border-radius: 8px;background: var(--bg);font-size: 13px;line-height: 19px;color: var(--muted)}.criteria strong{display: block;color: var(--fg);font-weight: 600;margin-bottom: 2px}.doc{max-width: 896px;width: 100%;margin: 0 auto;display: flex;flex-direction: column;gap: 24px}.crumbs ol{margin: 0;padding: 0;list-style: none;display: flex;flex-wrap: wrap;gap: 6px;font-size: 13px;color: var(--faint)}.crumbs li + li::before{content: "/";margin-right: 6px;color: var(--border)}.crumbs a{color: var(--muted)}.doc-head{display: flex;flex-direction: column;gap: 12px;padding-bottom: 20px;border-bottom: 1px solid var(--border-soft)}.doc-id{display: flex;align-items: center;gap: 10px;flex-wrap: wrap;margin: 0;font-family: var(--font-mono);font-size: 13px;color: var(--muted)}.doc-id strong{color: var(--fg);font-weight: 600}.doc-id .commit{color: var(--faint);font-size: 12px}.vbar{width: 1px;height: 14px;background: var(--border)}.doc-head h1{margin: 0;font-size: 28px;line-height: 36px;font-weight: 700;letter-spacing: -0.02em;text-wrap: balance}.doc-head .lead{margin: 0;color: var(--muted);font-size: 15px;line-height: 23px;max-width: 72ch}.install{display: flex;align-items: stretch;border: 1px solid var(--border);border-radius: 6px;overflow: hidden;background: var(--surface)}.install code{flex: 1;min-width: 0;padding: 9px 12px;font-family: var(--font-mono);font-size: 13px;line-height: 18px;overflow-x: auto;white-space: nowrap;user-select: all}.install button{flex-shrink: 0;padding: 0 16px;border: 0;border-left: 1px solid var(--border);background: var(--subtle);color: var(--accent);font-size: 13px;font-weight: 500;cursor: pointer;white-space: nowrap}.install button:hover{background: var(--subtle-2)}.install button.done{background: var(--ok-bg);color: var(--ok-fg);border-left-color: var(--ok-border)}.copy-hint{margin: 0;font-size: 12px;color: var(--warn-fg)}.facts{margin: 0;padding: 14px 16px;background: var(--surface);border: 1px solid var(--border);border-radius: 8px;display: grid;grid-template-columns: repeat(4,minmax(0,1fr));gap: 12px 28px}@media (max-width: 720px){.facts{grid-template-columns: repeat(2,minmax(0,1fr))}}.fact{display: flex;flex-direction: column;gap: 4px;min-width: 0}.fact.wide{grid-column: span 2}.fact dt{font-size: 11px;line-height: 14px;color: var(--faint)}.fact dd{margin: 0;font-size: 12px;line-height: 18px;color: var(--fg);overflow-wrap: anywhere}.fact dd.listed{display: inline-flex;align-items: center;gap: 5px;color: var(--muted);font-weight: 500}.law{padding: 14px;border-radius: 8px;background: var(--subtle);border: 1px solid var(--border);display: flex;align-items: flex-start;gap: 12px}.law svg{color: var(--accent);margin-top: 2px}.law h2{margin: 0;font-size: 15px;line-height: 22px;font-weight: 600}.law p{margin: 2px 0 0;font-size: 13px;line-height: 19px;color: var(--muted);font-weight: 500}.sec h2{margin: 0 0 12px;font-size: 17px;line-height: 24px;font-weight: 600;display: flex;align-items: center;gap: 6px}.sec h2 svg{color: var(--accent)}.phases{margin: 0;padding: 0;list-style: none;display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr));gap: 12px}.phase{padding: 14px;border-radius: 8px;border: 1px solid var(--border-soft);background: var(--surface);display: flex;flex-direction: column;gap: 4px}.phase h3{margin: 0;display: flex;align-items: center;gap: 8px;font-size: 13px;line-height: 18px;font-weight: 600}.phase .num{padding: 1px 6px;background: var(--ink);color: var(--ink-fg);border-radius: 4px;font-size: 10px;font-family: var(--font-mono);white-space: nowrap}.phase p{margin: 0;font-size: 13px;line-height: 19px;color: var(--muted)}.tbl-wrap{border: 1px solid var(--border-soft);border-radius: 8px;overflow-x: auto;background: var(--surface)}table{width: 100%;border-collapse: collapse;text-align: left;font-size: 12px;min-width: 520px}th{padding: 8px 12px;font-weight: 500;font-family: var(--font-mono);font-size: 11px;background: var(--subtle);border-bottom: 1px solid var(--border-soft);color: var(--fg)}td{padding: 9px 12px;border-bottom: 1px solid var(--border-soft);color: var(--muted);vertical-align: top}tr:last-child td{border-bottom: 0}td.cap{font-family: var(--font-mono);color: var(--fg);white-space: nowrap}.st{display: inline-block;padding: 1px 6px;border-radius: 4px;font-size: 11px;font-weight: 500;white-space: nowrap;border: 1px solid var(--border)}.st.permitted{background: var(--ok-bg);border-color: var(--ok-border);color: var(--ok-fg)}.st.restricted,.st.restrictedTest{background: var(--warn-bg);border-color: var(--warn-border);color: var(--warn-fg)}.st.prohibited,.st.disabled{background: var(--subtle);color: var(--muted)}.code-box{border: 1px solid var(--border-soft);border-radius: 8px;overflow: hidden;background: var(--subtle);font-family: var(--font-mono);font-size: 12px}.code-box .bar{padding: 6px 14px;border-bottom: 1px solid var(--border-soft);background: var(--subtle-2);display: flex;align-items: center;justify-content: space-between;gap: 8px;color: var(--muted);font-size: 11px}.code-box pre{margin: 0;padding: 14px;color: var(--muted);overflow-x: auto;white-space: pre;line-height: 18px}.related{margin: 0;padding: 0;list-style: none;display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,200px),1fr));gap: 12px}.related a{display: flex;flex-direction: column;gap: 4px;padding: 12px 14px;border: 1px solid var(--border);border-radius: 8px;background: var(--surface);color: var(--fg);height: 100%}.related a:hover{border-color: var(--faint);text-decoration: none}.related .rid{font-family: var(--font-mono);font-size: 13px;font-weight: 500}.related .rdesc{font-size: 12px;line-height: 18px;color: var(--muted)}.doc-foot{display: flex;align-items: center;justify-content: space-between;gap: 12px;flex-wrap: wrap;padding: 14px 16px;border: 1px solid var(--border-soft);border-radius: 8px;background: var(--subtle);font-size: 12px}.doc-foot .note{display: flex;align-items: center;gap: 8px;color: var(--faint)}.doc-foot .note svg{color: var(--ok-fg)}footer{border-top: 1px solid var(--border);background: var(--subtle);margin-top: 48px}footer .wrap{padding-block: 24px;display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: 16px}.f-name{font-size: 15px;line-height: 22px;font-weight: 600}.f-copy{margin: 4px 0 0;font-size: 13px;line-height: 18px;color: var(--muted);max-width: 64ch}.f-disc{margin: 2px 0 0;font-size: 12px;line-height: 16px;color: var(--faint)}.f-links{display: flex;gap: 8px 20px;flex-wrap: wrap;font-size: 12px;font-weight: 500}.f-links a{color: var(--muted);display: inline-flex;align-items: center;gap: 4px}.f-links a:hover{color: var(--fg)}.chooser{max-width: 520px;margin: 64px auto;padding: 24px;background: var(--surface);border: 1px solid var(--border);border-radius: 12px;display: flex;flex-direction: column;gap: 14px}.chooser h1{margin: 0;font-size: 20px;line-height: 28px}.chooser p{margin: 0;color: var(--muted)}.chooser ul{margin: 0;padding: 0;list-style: none;display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 8px}.chooser a{display: block;padding: 10px 12px;border: 1px solid var(--border);border-radius: 8px;color: var(--fg);font-weight: 500}.chooser a:hover{background: var(--subtle);text-decoration: none}.sr-only{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap;border: 0}.grid>li{display: flex;min-width: 0}.grid>li>.card{flex: 1}.tags{margin: 0;padding: 0;list-style: none}.doc-foot .f-links{align-items: center}.doc-foot .btn-ink:hover{text-decoration: none}.doc-foot .btn-ink,.doc-foot .btn-ink:hover{color: var(--ink-fg)}.caution{margin: 0;display: flex;align-items: flex-start;gap: 8px;padding: 10px 12px;border-radius: 6px;background: var(--warn-bg);border: 1px solid var(--warn-border);color: var(--warn-fg);font-size: 13px;line-height: 19px}.caution svg{color: var(--warn-icon);margin-top: 2px}@media (max-width: 640px){.intro h1{font-size: 22px;line-height: 30px}.doc-head h1{font-size: 24px;line-height: 32px}.chips{flex-wrap: nowrap;overflow-x: auto;scrollbar-width: none;margin-right: calc(-1 * max(16px,env(safe-area-inset-right,0px)));padding-right: 16px}.chips::-webkit-scrollbar{display: none}}a.chip{text-decoration: none}a.chip[aria-current="page"]{background: var(--ink);border-color: var(--ink);color: var(--ink-fg)}a.chip[aria-current="page"] .n,a.chip[aria-current="page"] .c{color: var(--ink-fg);opacity: 0.65}.chip.is-empty{cursor: default;opacity: 0.55}.chip.is-empty:hover{background: transparent;color: var(--muted);border-color: var(--border-soft)}main.wrap>.crumbs{margin-bottom: -12px}.fact dd a{color: var(--accent)}.chips{position: relative}.tip-body{display: none}.tip:hover .tip-body,.tip:focus-within .tip-body{display: block}
