.docs-root{--d-brand:#087e8b;--d-brand-hover:#0f606a;--d-brand-deep:#074850;--d-brand-soft:#eff9fb;--d-brand-100:#ddf1f4;--d-brand-200:#bee2e8;--d-brand-300:#93ccd5;--d-brand-900:#033238;--d-brand-950:#001d21;--d-focus:#3195a3;--d-ink:#18181b;--d-body:#3f3f46;--d-soft:#52525b;--d-mute:#71717a;--d-line:#e4e4e7;--d-paper:#f6f5f2;--d-white:#fff;--d-ease:var(--ease-out,cubic-bezier(.2, .8, .2, 1));--d-micro:var(--motion-micro,.12s);background:var(--d-paper);min-height:100vh;color:var(--d-ink);font-family:var(--font-brand-sans,"Google Sans", system-ui, sans-serif);-webkit-font-smoothing:antialiased}.docs-root :where(a,button):focus-visible{outline:2px solid var(--d-focus);outline-offset:2px;border-radius:6px}.docs-top{z-index:30;-webkit-backdrop-filter:saturate(150%)blur(10px);backdrop-filter:saturate(150%)blur(10px);border-top:3px solid var(--d-brand);border-bottom:1px solid var(--d-line);background:#ffffffeb;justify-content:space-between;align-items:center;gap:16px;height:60px;padding:0 22px;display:flex;position:sticky;top:0}.docs-brand{color:var(--d-ink);align-items:center;gap:14px;text-decoration:none;display:inline-flex}.docs-brand .sep{background:var(--d-line);width:1px;height:20px}.docs-brand .tag{color:var(--d-soft);font-size:14px;font-weight:500}.docs-top-links{align-items:center;gap:6px;display:flex}.docs-top-links a{height:32px;color:var(--d-soft);transition:background-color var(--d-micro) var(--d-ease), color var(--d-micro) var(--d-ease);border-radius:8px;align-items:center;padding:0 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.docs-top-links a:hover{color:var(--d-ink);background:var(--d-paper)}.docs-top-links a.primary{color:var(--d-white);background:var(--d-brand)}.docs-top-links a.primary:hover{color:var(--d-white);background:var(--d-brand-hover)}.docs-shell{grid-template-columns:264px minmax(0,1fr);max-width:1240px;margin:0 auto;display:grid}.docs-side{border-right:1px solid var(--d-line);align-self:start;height:calc(100vh - 60px);padding:26px 16px 40px 22px;position:sticky;top:60px;overflow-y:auto}.docs-side-group{margin-bottom:22px}.docs-side-title{text-transform:uppercase;letter-spacing:.08em;color:var(--d-soft);margin-bottom:8px;padding:0 10px;font-size:11px;font-weight:600}.docs-side-link{color:var(--d-soft);transition:background-color var(--d-micro) var(--d-ease), color var(--d-micro) var(--d-ease);border-radius:8px;align-items:center;gap:9px;padding:7px 10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex}.docs-side-link:hover{color:var(--d-ink);background:#18181b0d}.docs-side-link.active{color:var(--d-brand-deep);background:var(--d-brand-soft);font-weight:600}.docs-side-link .ic{color:var(--d-mute);flex-shrink:0}.docs-side-link.active .ic{color:var(--d-brand)}.docs-main{max-width:860px;padding:36px 40px 90px}.docs-hero{margin-bottom:36px}.docs-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--d-brand-hover);margin-bottom:12px;font-size:12px;font-weight:600;display:inline-block}.docs-hero h1{letter-spacing:-.02em;color:var(--d-ink);margin:0 0 14px;font-size:36px;font-weight:700;line-height:1.1}.docs-hero p{color:var(--d-soft);max-width:640px;margin:0;font-size:16px;line-height:1.65}.docs-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:8px;display:grid}.docs-card{border:1px solid var(--d-line);background:var(--d-white);transition:border-color var(--d-micro) var(--d-ease), box-shadow var(--d-micro) var(--d-ease), transform var(--d-micro) var(--d-ease);border-radius:12px;padding:18px;text-decoration:none;display:block}.docs-card:hover{border-color:var(--d-brand-200);transform:translateY(-1px);box-shadow:0 8px 24px #18181b0f}.docs-card .ci{background:var(--d-brand-soft);width:38px;height:38px;color:var(--d-brand-hover);border-radius:8px;justify-content:center;align-items:center;margin-bottom:12px;display:inline-flex}.docs-card h3{color:var(--d-ink);margin:0 0 4px;font-size:15px;font-weight:600}.docs-card p{color:var(--d-soft);margin:0;font-size:12.5px;line-height:1.5}.docs-section{margin:40px 0}.docs-section h2{letter-spacing:-.015em;color:var(--d-ink);margin:0 0 14px;font-size:22px;font-weight:700}.doc-md{color:var(--d-ink);font-size:15px;line-height:1.7}.doc-h1{letter-spacing:-.02em;color:var(--d-ink);margin:0 0 18px;font-size:32px;font-weight:700;line-height:1.15}.doc-h2{letter-spacing:-.015em;color:var(--d-ink);border-top:1px solid var(--d-line);margin:38px 0 12px;padding-top:10px;scroll-margin-top:80px;font-size:21px;font-weight:700}.doc-h2:first-of-type{border-top:none;padding-top:0}.doc-h3{color:var(--d-ink);margin:26px 0 10px;scroll-margin-top:80px;font-size:16.5px;font-weight:600}.doc-h4{color:var(--d-ink);margin:20px 0 8px;font-size:14px;font-weight:600}.doc-p{color:var(--d-body);margin:0 0 14px}.doc-strong{color:var(--d-ink);font-weight:700}.doc-a{color:var(--d-brand-hover);transition:border-color var(--d-micro) var(--d-ease);border-bottom:1px solid #087e8b4d;font-weight:600;text-decoration:none}.doc-a:hover{border-bottom-color:var(--d-brand-hover)}.doc-ul,.doc-ol{color:var(--d-body);margin:0 0 16px;padding-left:22px}.doc-ul{list-style:outside}.doc-ol{list-style:decimal}.doc-li{margin:5px 0;line-height:1.65}.doc-li::marker{color:var(--d-mute)}.doc-hr{border:none;border-top:1px solid var(--d-line);margin:30px 0}.doc-inline-code{font-family:var(--font-brand-mono,"JetBrains Mono", ui-monospace, monospace);background:var(--d-white);color:var(--d-brand-deep);border:1px solid var(--d-line);white-space:nowrap;border-radius:6px;padding:2px 6px;font-size:.86em}.doc-quote{background:var(--d-brand-soft);border:1px solid var(--d-brand-100);border-left:3px solid var(--d-brand);color:var(--d-brand-deep);border-radius:8px;margin:0 0 18px;padding:13px 16px;font-size:14px}.doc-quote p{color:inherit;margin:0}.doc-quote .doc-inline-code{background:var(--d-white);border-color:var(--d-brand-100)}.doc-table-wrap{border:1px solid var(--d-line);background:var(--d-white);border-radius:12px;margin:0 0 18px;overflow-x:auto}.doc-table{border-collapse:collapse;width:100%;font-size:13.5px}.doc-table th{text-align:left;color:var(--d-soft);background:var(--d-paper);border-bottom:1px solid var(--d-line);white-space:nowrap;padding:10px 14px;font-weight:600}.doc-table td{border-bottom:1px solid var(--d-line);color:var(--d-body);vertical-align:top;padding:10px 14px}.doc-table tr:last-child td{border-bottom:none}.doc-table code{font-family:var(--font-brand-mono,"JetBrains Mono", ui-monospace, monospace);color:var(--d-brand-deep);font-size:12.5px}.doc-table .doc-inline-code{background:var(--d-paper)}.doc-code{border:1px solid var(--d-brand-900);background:var(--d-brand-950);border-radius:12px;margin:0 0 18px;overflow:hidden}.doc-code-bar{background:var(--d-brand-900);border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:8px 12px 8px 14px;display:flex}.doc-code-lang{text-transform:uppercase;letter-spacing:.08em;color:var(--d-brand-300);font-size:11px;font-weight:500;font-family:var(--font-brand-mono,"JetBrains Mono", monospace)}.doc-code-copy{color:var(--d-brand-100);cursor:pointer;transition:background-color var(--d-micro) var(--d-ease), color var(--d-micro) var(--d-ease);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600}.doc-code-copy:hover{color:var(--d-white);background:#ffffff1f}.doc-code pre{margin:0;padding:15px 16px;overflow-x:auto}.doc-code code{font-family:var(--font-brand-mono,"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace);color:#e4e4e7;white-space:pre;font-size:12.8px;line-height:1.65}@media (prefers-reduced-motion:reduce){.docs-card,.docs-card:hover{transition:none;transform:none}}@media (max-width:900px){.docs-top{padding:0 16px}.docs-shell{grid-template-columns:1fr}.docs-side{border-right:none;border-bottom:1px solid var(--d-line);height:auto;padding:16px;position:static}.docs-side-group{margin-bottom:14px}.docs-main{padding:26px 16px 70px}.docs-hero h1{font-size:28px}.doc-h1{font-size:26px}.docs-top-links a:not(.primary){display:none}}@media (max-width:420px){.docs-brand .sep,.docs-brand .tag{display:none}}