/* Shared brand tokens; semantic groups drive both contents and body. */
.cmp-reference{--cmp-text:var(--shell-text);--cmp-copy:var(--shell-copy);--cmp-muted:var(--shell-muted);--cmp-line:var(--shell-border);--cmp-link:var(--theme-link);font-family:var(--font-sans);color:var(--cmp-text);max-width:1180px;margin-inline:auto;padding:1.5rem 2rem 3rem;line-height:1.65;letter-spacing:normal}
.cmp-reference *{box-sizing:border-box;min-width:0;letter-spacing:normal}
.cmp-reference a{color:var(--cmp-link);text-underline-offset:.22em;overflow-wrap:anywhere}
.cmp-reference a:hover{color:var(--theme-link-hover)}
.cmp-reference a:focus-visible,.cmp-skip:focus-visible{outline:3px solid var(--shell-text);outline-offset:4px}
.cmp-reference h1,.cmp-reference h2,.cmp-reference h3{color:var(--shell-text);line-height:1.3;letter-spacing:normal}
.cmp-heading h1{font-size:2.75rem;margin:.7rem 0 1rem;font-weight:700}
.cmp-heading>p{font-size:1.125rem;line-height:1.7;max-width:80ch;margin:0;color:var(--cmp-copy)}
.cmp-crumbs{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.875rem;margin:.5rem 0 1rem}
.cmp-language{display:flex;justify-content:flex-end;gap:1rem;font-size:.875rem}
.cmp-language a{padding:.5rem 0;min-height:44px}.cmp-language a[aria-current]{font-weight:650}
.cmp-toc{scroll-margin-top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 1rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;padding:1.5rem 0;border-block:1px solid var(--cmp-line);margin:1.5rem 0 2rem}
.cmp-toc p,.cmp-group-label p{display:flex;align-items:center;gap:.55rem;margin:0 0 .65rem;font-size:.875rem;font-weight:650;color:var(--cmp-muted)}
.cmp-toc ul,.cmp-links,.cmp-related ul{list-style:none;padding:0;margin:0}
.cmp-toc li{margin:.3rem 0}.cmp-toc a{display:block;padding:.35rem 0;font-size:.9375rem}
.material-symbols-outlined{font-family:'Material Symbols Outlined';font-size:24px;line-height:1;display:inline-block;font-weight:normal;font-style:normal;font-feature-settings:'liga';font-variation-settings:'FILL' 0,'wght' 200,'GRAD' 0,'opsz' 24;white-space:nowrap;direction:ltr;flex-shrink:0}
.cmp-group{margin:0 0 2.75rem;scroll-margin-top:6rem}.cmp-group-label{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:2px solid var(--cmp-line)}
.cmp-group-label p{margin:0}.cmp-group-label>a{font-size:.875rem;padding:.35rem 0}
.cmp-section{display:grid;grid-template-columns:minmax(170px,25%) minmax(0,1fr);gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--cmp-line);scroll-margin-top:6rem}
.cmp-section h2{font-size:1.375rem;margin:0;font-weight:650}.cmp-copy{font-size:1rem;color:var(--cmp-copy);max-width:80ch}
.cmp-copy p{margin:0 0 .9rem}.cmp-copy p:last-child{margin-bottom:0}.cmp-copy h3{font-size:1.125rem;margin:1rem 0 .5rem}.cmp-copy li+li{margin-top:.6rem}
.cmp-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1rem}.cmp-links li{margin:0!important}.cmp-links a{display:inline-block;min-height:44px;padding:.5rem 0}
.cmp-cycle{margin:1.5rem 0}.cmp-cycle ol{counter-reset:cycle;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.cmp-cycle li{counter-increment:cycle;border-left:3px solid var(--theme-primary);background:var(--theme-soft-bg);padding:1rem;margin:0!important;position:relative}
.cmp-cycle li::before{content:counter(cycle);display:inline-flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;font-size:.875rem;font-weight:700;margin-right:.5rem;color:var(--shell-text)}
.cmp-cycle .material-symbols-outlined{vertical-align:middle;color:var(--shell-text);margin-right:.3rem}.cmp-cycle strong{display:block;font-size:1rem;margin:.5rem 0}.cmp-cycle p{font-size:.9375rem;margin:0}.cmp-cycle figcaption{font-size:.875rem;color:var(--cmp-muted);margin:.75rem 0 0;line-height:1.55}
.cmp-table-wrap{width:100%;overflow:auto;margin:1.25rem 0;overscroll-behavior-inline:contain}.cmp-reference table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.9375rem;line-height:1.55}.cmp-reference th,.cmp-reference td{text-align:left;vertical-align:top;padding:.75rem .65rem;border-bottom:1px solid var(--cmp-line);overflow-wrap:anywhere}.cmp-reference thead{background:var(--shell-surface-soft)}
.cmp-glossary{padding:1rem 0;scroll-margin-top:6rem}.cmp-glossary h2{font-size:1.5rem}.cmp-glossary dl{margin:0}.cmp-glossary dl>div{display:grid;grid-template-columns:minmax(170px,25%) minmax(0,1fr);gap:2rem;padding:.8rem 0;border-bottom:1px solid var(--cmp-line);scroll-margin-top:6rem}.cmp-glossary dt{font-weight:650}.cmp-glossary dd{margin:0;color:var(--cmp-copy)}
.cmp-related{padding:1.5rem 0;border-top:2px solid var(--cmp-line)}.cmp-related p{font-weight:650;margin:0 0 .5rem}.cmp-related li{padding:.5rem 0;color:var(--cmp-copy)}
.cmp-term-list{margin:0}.cmp-term-list>div{padding:.7rem 0;border-bottom:1px solid var(--cmp-line);scroll-margin-top:6rem}.cmp-term-list dt{font-weight:650;color:var(--shell-text)}.cmp-term-list dd{margin:.2rem 0 0}
.cmp-skip{position:absolute;top:-100px;left:1rem;padding:1rem;background:var(--shell-bg);color:var(--shell-text);z-index:1000}.cmp-skip:focus{top:1rem}
@media(max-width:900px){.cmp-toc{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.cmp-section{grid-template-columns:1fr;gap:.7rem}.cmp-reference{padding-inline:1.5rem}}
@media(max-width:600px){.cmp-reference{padding:1rem 1rem 2rem}.cmp-heading h1{font-size:2rem}.cmp-heading>p{font-size:1.0625rem}.cmp-toc{grid-template-columns:1fr;margin:1.25rem 0 1.5rem;padding:1.25rem 0;gap:1rem}.cmp-toc a{padding:.55rem 0;min-height:44px}.cmp-group{margin-bottom:2rem}.cmp-group-label{align-items:flex-start}.cmp-group-label p{font-size:.875rem}.cmp-section{padding:1.25rem 0}.cmp-section h2{font-size:1.25rem}.cmp-cycle ol{grid-template-columns:1fr}.cmp-glossary dl>div{grid-template-columns:1fr;gap:.3rem}.cmp-reference th,.cmp-reference td{padding:.55rem .3rem;font-size:.875rem}.cmp-table-wrap{margin:.8rem 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Preserve every header control while preventing logo overlap on narrow phones. */
@media(max-width:380px){.compressor-page .site-header .wrap.nav{flex-wrap:wrap;gap:.5rem 1rem;padding-block:.5rem;justify-content:space-between}.compressor-page .site-header .brand{flex:1 0 128px;min-width:128px}.compressor-page .site-header .grow{display:none}.compressor-page .site-header .header-icons{margin-left:auto}.compressor-page .app-content{padding-top:120px}.cmp-section,.cmp-toc{scroll-margin-top:9rem}}
