:root,[data-theme=light]{--bg:#f5f6f8;--surface:#ffffff;--surface-2:#f2f4f7;--surface-3:#e9edf2;--border:#e3e7ee;--border-strong:#cfd6e0;--text:#1b2430;--muted:#5a6675;--faint:#8b95a3;--on-accent:#ffffff;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-weak:rgba(37,99,235,0.09);--accent-border:rgba(37,99,235,0.28);--success:#1f7a45;--success-weak:rgba(31,122,69,0.10);--warning:#a9610a;--warning-weak:rgba(214,138,20,0.13);--danger:#c23934;--danger-hover:#a92f2b;--danger-weak:rgba(194,57,52,0.10);--code-bg:#f7f8fa;--code-text:#1b2430;--code-border:#e3e7ee;--shadow-sm:0 1px 2px rgba(16,24,40,0.05);--shadow:0 4px 14px rgba(16,24,40,0.08);--shadow-pop:0 8px 28px rgba(16,24,40,0.14);--ring:0 0 0 3px rgba(37,99,235,0.28);--accent-shadow-sm:0 2px 6px rgba(37,99,235,0.35);--accent-shadow-lift:0 4px 16px rgba(37,99,235,0.22);color-scheme:light}[data-theme=dark]{--bg:#0e1116;--surface:#161b22;--surface-2:#1c222b;--surface-3:#232b36;--border:#2a313c;--border-strong:#3a434f;--text:#e7edf4;--muted:#9aa6b3;--faint:#69737f;--on-accent:#0b1220;--accent:#60a5fa;--accent-hover:#82bcff;--accent-weak:rgba(96,165,250,0.14);--accent-border:rgba(96,165,250,0.34);--success:#46c47f;--success-weak:rgba(70,196,127,0.14);--warning:#e0a252;--warning-weak:rgba(224,162,82,0.15);--danger:#f2635c;--danger-hover:#f47f79;--danger-weak:rgba(242,99,92,0.14);--code-bg:#0d1117;--code-text:#e7edf4;--code-border:#2a313c;--shadow-sm:0 1px 2px rgba(0,0,0,0.35);--shadow:0 6px 20px rgba(0,0,0,0.4);--shadow-pop:0 10px 34px rgba(0,0,0,0.5);--ring:0 0 0 3px rgba(96,165,250,0.35);--accent-shadow-sm:none;--accent-shadow-lift:0 6px 20px rgba(0,0,0,0.4);color-scheme:dark}:root{--accent-2:var(--success);--warn:var(--warning);--panel:var(--surface);--panel-2:var(--surface-2);--panel-3:var(--surface-3);--accent-soft:var(--accent-weak);--accent-hot:var(--accent);--danger-soft:var(--danger-weak);--warn-soft:var(--warning-weak);--code:var(--code-bg);--radius-sm:6px;--radius:8px;--radius-lg:10px;--radius-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--t:130ms cubic-bezier(0.4,0,0.2,1);--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:"SF Mono","JetBrains Mono","Roboto Mono",Menlo,Consolas,monospace;--sidebar-w:232px;--topbar-h:52px}*{box-sizing:border-box;min-width:0}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none;transition:color var(--t)}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-weak)}h1,h2,h3,h4{font-weight:600;letter-spacing:-.01em}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;border-right:1px solid #1e2c4d;background:#0b132b;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:9px;height:var(--topbar-h);padding:0 var(--sp-4);border-bottom:1px solid #1e2c4d;font-weight:700;font-size:15px;letter-spacing:-.02em;color:#ffffff}.sidebar-brand .mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(180deg,var(--accent),var(--accent-hover));display:inline-flex;align-items:center;justify-content:center;color:var(--on-accent);font-size:13px;font-weight:800;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;gap:1px;padding:var(--sp-3) var(--sp-2);overflow-y:auto}.sidebar-section{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#7590c4;padding:var(--sp-3) var(--sp-3) var(--sp-1);font-weight:600}.sidebar-nav a{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-sm);color:#8fa3c4;font-size:13.5px;font-weight:500;transition:background var(--t),color var(--t)}.sidebar-nav a:hover{background:rgba(255,255,255,.06);color:#e5ecf6}.sidebar-nav a.active{background:rgba(37,99,235,.38);color:#ffffff;font-weight:600}.sidebar-nav a .ico{width:16px;height:16px;flex-shrink:0;opacity:.85}.sidebar-foot{margin-top:auto;padding:var(--sp-3);border-top:1px solid #1e2c4d}.app-main{display:flex;flex-direction:column;min-width:0}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:var(--topbar-h);justify-content:space-between;gap:var(--sp-4);padding:0 var(--sp-6);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar,.topbar-left{display:flex;align-items:center}.topbar-left{gap:10px;min-width:0;font-size:13px;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:10px}.content{padding:var(--sp-6);max-width:1500px;width:100%;margin:0 auto}.auth-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:var(--bg)}@media (max-width:820px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;flex-direction:column;border-right:none;border-bottom:1px solid var(--border)}.sidebar-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;-webkit-overflow-scrolling:touch}.sidebar-nav a{flex-shrink:0}.sidebar-section{display:none}.content{padding:var(--sp-4)}}@media (max-width:760px){.cmdk-hint,.topbar-left .muted{display:none}input,select,textarea{font-size:16px}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.page-header h2{font-size:19px;margin:0 0 3px}.page-header .sub{color:var(--muted);font-size:13px;margin:0;max-width:70ch}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:var(--shadow-sm)}.panel h2{font-size:12px;margin:0 0 var(--sp-3)}.panel h2,.panel-head{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);font-size:11px;font-family:var(--sans)}.container{width:100%}.layout{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);grid-gap:var(--sp-4);gap:var(--sp-4)}@media (max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}@media (max-width:1024px){.split{grid-template-columns:minmax(0,1fr)}}.muted{color:var(--muted)}.btn.primary,a.primary,button.primary{padding:9px 16px;border-radius:var(--radius);border:none;background:var(--accent);color:var(--on-accent);cursor:pointer;font:inherit;font-weight:600;font-size:13.5px;transition:background var(--t),box-shadow var(--t),opacity var(--t)}.btn.primary:hover:not(:disabled),a.primary:hover,button.primary:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent)}.btn.primary:focus-visible,button.primary:focus-visible{outline:none;box-shadow:var(--ring)}button.primary:disabled{opacity:.5;cursor:not-allowed}.btn.ghost,.btn.secondary,button.ghost{padding:7px 13px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;font-size:13.5px;font-weight:500;transition:background var(--t),border-color var(--t)}.btn.ghost:hover:not(:disabled),button.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}button.ghost:focus-visible{outline:none;box-shadow:var(--ring)}.btn.danger,button.danger{padding:7px 13px;border-radius:var(--radius);border:1px solid transparent;background:var(--danger);color:#fff;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;transition:background var(--t)}button.danger:hover:not(:disabled){background:var(--danger-hover)}button:disabled{cursor:not-allowed;opacity:.5}.toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-3)}.search,input[type=password],input[type=text],select,textarea{width:100%;padding:8px 11px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;transition:border-color var(--t),box-shadow var(--t)}.search{margin-bottom:var(--sp-2)}.search:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}select{width:auto;cursor:pointer;background:var(--surface)}::placeholder{color:var(--faint)}.badge,.org-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:3px 9px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);white-space:nowrap}.badge.accent,.org-badge.ok{color:var(--accent);border-color:var(--accent-border);background:var(--accent-weak)}.badge.success{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,transparent);background:var(--success-weak)}.badge.env,.badge.warning{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 40%,transparent);background:var(--warning-weak)}.badge.danger,.org-badge.bad{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:var(--danger-weak)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.class-list{list-style:none;margin:0;padding:0;max-height:72vh;overflow:auto;display:flex;flex-direction:column;gap:1px}.class-list li{padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);font-size:13px;transition:background var(--t)}.class-list li:hover{background:var(--surface-2)}.class-list li.active{background:var(--accent-weak);color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.class-list li .meta{font-size:11px;color:var(--faint);flex-shrink:0}pre.code{background:var(--code-bg);border:1px solid var(--code-border);border-radius:var(--radius);padding:var(--sp-3);overflow:auto;max-width:100%;max-height:75vh;font-family:var(--mono);font-size:12.5px;line-height:1.6;white-space:pre;color:var(--code-text)}.analysis,.markdown{word-wrap:break-word;overflow-wrap:anywhere;font-size:13.5px}.analysis{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-4);max-height:75vh;overflow:auto}.analysis h1,.analysis h2,.analysis h3,.markdown h1,.markdown h2,.markdown h3{font-family:var(--sans);margin-top:1.1em;margin-bottom:.4em;line-height:1.3}.analysis h2{font-size:15px}.markdown h1,.markdown h2,.markdown h3{font-size:14px;margin:12px 0 6px}.analysis>:first-child,.markdown>:first-child{margin-top:0}.markdown p{margin:8px 0}.analysis ul,.markdown ul{margin:8px 0;padding-left:20px}.analysis li,.markdown li{margin:3px 0}.analysis code,.markdown code{background:var(--surface-3);padding:1px 5px;border-radius:4px;font-family:var(--mono);font-size:12.5px}.analysis pre,.markdown pre{background:var(--code-bg);border:1px solid var(--code-border);padding:var(--sp-3);border-radius:var(--radius-sm);overflow:auto;margin:8px 0}.analysis pre code,.markdown pre code{background:none;padding:0}.notice{border-radius:var(--radius);padding:10px 13px;margin:var(--sp-2) 0;border:1px solid var(--border);background:var(--surface-2);font-size:13px}.notice.error{border-color:color-mix(in srgb,var(--danger) 40%,transparent);background:var(--danger-weak);color:var(--danger)}.notice.success{border-color:color-mix(in srgb,var(--success) 40%,transparent);background:var(--success-weak);color:var(--success)}.notice.warn{border-color:color-mix(in srgb,var(--warning) 40%,transparent);background:var(--warning-weak);color:var(--warning)}.notice.hint{color:var(--muted);background:var(--surface-2);font-size:12.5px;margin-top:6px}.table-wrap{overflow-x:auto}table.usage{width:100%;border-collapse:collapse;font-size:13px}table.usage td,table.usage th{text-align:left;padding:9px 11px;border-bottom:1px solid var(--border)}table.usage tbody tr{transition:background var(--t)}table.usage tbody tr:hover,table.usage th{background:var(--surface-2)}table.usage th{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:10.5px;letter-spacing:.05em;white-space:nowrap}table.usage td.num,table.usage th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:var(--sp-3);gap:var(--sp-3);margin-bottom:var(--sp-4)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;box-shadow:var(--shadow-sm)}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.stat .value{font-size:22px;font-weight:650;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.01em}.spinner{display:inline-block;width:13px;height:13px;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px;margin-right:6px}.btn.primary .spinner,.primary .spinner,button.primary .spinner{border-color:color-mix(in srgb,var(--on-accent) 40%,transparent);border-top-color:var(--on-accent)}@keyframes spin{to{transform:rotate(1turn)}}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);cursor:pointer;transition:background var(--t),color var(--t)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.qa-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:16px}@media (max-width:1100px){.qa-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.qa-grid{grid-template-columns:1fr}}.qa-tile{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),color-mix(in srgb,var(--accent) 3%,var(--surface)));border-color:color-mix(in srgb,var(--accent) 35%,transparent);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease}.qa-tile:hover{border-color:var(--accent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 15%,var(--surface)),color-mix(in srgb,var(--accent) 6%,var(--surface)));box-shadow:var(--accent-shadow-lift);transform:translateY(-1px)}.qa-tile:hover .qa-arrow{transform:translateX(3px)}.qa-title{color:var(--accent);font-size:14px;display:block}.qa-icon{flex-shrink:0;width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--on-accent);background:var(--accent);box-shadow:var(--accent-shadow-sm)}.qa-icon .ico{width:17px;height:17px}.qa-arrow{margin-left:auto;color:var(--accent);font-weight:600;transition:transform .15s ease}.home-section-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px 2px}.home-tiles{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}@media (max-width:1250px){.home-tiles{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.home-tiles{grid-template-columns:1fr}}.cmdk-overlay{position:fixed;inset:0;z-index:200;background:rgba(10,14,20,.45);display:flex;justify-content:center;align-items:flex-start;padding-top:14vh;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cmdk{width:min(580px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column}.cmdk-input{width:100%;border:none;outline:none;background:transparent;color:var(--text);font:inherit;font-size:15px;padding:15px 18px;border-bottom:1px solid var(--border);box-sizing:border-box}.cmdk-list{max-height:46vh;overflow-y:auto;padding:6px}.cmdk-group{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 12px 3px}.cmdk-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:13.5px;cursor:pointer;color:var(--text)}.cmdk-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.cmdk-foot{display:flex;gap:16px;padding:8px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--faint)}.cmdk-foot kbd,.cmdk-hint kbd{display:inline-block;padding:1px 5px;margin-right:3px;border:solid var(--border);border-width:1px 1px 2px;border-radius:4px;font-size:10px;font-family:inherit;background:var(--panel-3,transparent)}.cmdk-hint{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.pub{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.pub-header{gap:12px;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--surface)}.pub-brand,.pub-header{display:flex;align-items:center}.pub-brand{gap:9px;font-weight:700;font-size:16px;color:var(--text);text-decoration:none}.pub-main{flex:1 1;width:100%;max-width:1060px;margin:0 auto;padding:0 24px 56px}.pub-footer{border-top:1px solid var(--border);padding:18px 28px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted);background:var(--surface)}.pub-hero{text-align:center;padding:72px 20px 0;background:#0b132b;color:#eaf1fb;overflow:hidden}.pub-hero h1{font-weight:800;font-size:clamp(44px,8vw,88px);line-height:1;letter-spacing:-.03em;margin:20px 0 0;color:#fff}.pub-hero .tagline{font-family:var(--mono);font-size:clamp(10px,1.5vw,13px);letter-spacing:.26em;text-transform:uppercase;color:#8fa3c4;margin:24px 0 0}.pub-hero .tagline .ride{color:#22d3ee}.pub-hero p{font-size:15.5px;color:#9fb2cd;max-width:620px;margin:16px auto 26px;line-height:1.6}.pub-cta{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-size:15px;font-weight:600;padding:12px 26px;border-radius:10px;text-decoration:none;transition:background var(--t),transform var(--t)}.pub-cta:hover{background:linear-gradient(135deg,#1d4ed8,#0891b2);color:#fff;transform:translateY(-1px)}.pub-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-top:18px}@media (max-width:900px){.pub-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.pub-grid{grid-template-columns:1fr}}.pub-section-title{text-align:center;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:48px 0 6px}.pub-safety{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}.pub-safety span{border:1px solid #26405f;background:rgba(255,255,255,.04);border-radius:999px;padding:7px 14px;font-size:12.5px;color:#b8c8e0}.pub-steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-top:18px;counter-reset:step}@media (max-width:700px){.pub-steps{grid-template-columns:1fr}}.pub-prose{max-width:760px;margin:0 auto;padding-top:40px;font-size:14px;line-height:1.7}.pub-prose h1{font-size:28px;margin-bottom:4px}.pub-prose h2{font-size:17px;margin:26px 0 8px}.pub-prose li,.pub-prose p{color:var(--text)}.pub-prose .updated{color:var(--faint);font-size:12.5px;margin-bottom:24px}.guide section{margin-bottom:28px}.guide h2{font-size:17px;margin:0 0 8px;padding-top:8px;scroll-margin-top:calc(var(--topbar-h) + 16px)}.guide h3{font-size:14px;margin:14px 0 6px}.guide li,.guide p{font-size:13.5px;line-height:1.65;color:var(--text)}.guide ul{margin:6px 0;padding-left:20px}.guide .toc{display:flex;flex-wrap:wrap;gap:8px}.guide .toc a{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:12.5px}.guide .toc a:hover{border-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.grad-text{background:linear-gradient(90deg,#3b82f6,#22d3ee);-webkit-background-clip:text;background-clip:text;color:transparent}.tidelines{display:block;width:100%;height:110px;margin-top:44px}.tidelines path{fill:none;stroke-width:2}@media (prefers-reduced-motion:no-preference){.tl{animation:tide-drift 16s linear infinite}.tl2{animation-duration:23s;animation-direction:reverse}@keyframes tide-drift{0%{transform:translateX(0)}to{transform:translateX(-220px)}}}