/* Public shell. Colors, type and focus tokens are shared with docs.css. */
.site-header { gap:22px; }
.site-header .header-links { margin-left:0; gap:24px; }
.site-header .header-links a { padding:8px 0; }
.site-header .header-links a[aria-current] { color:var(--accent); }
.site-header .brand { white-space:nowrap; }
/* Marketing pages: header and footer line up with the content container
   (1200px, 1280px from 1600px wide; see marketing.css). */
@media(min-width:701px) { .marketing .site-header { padding-inline:max(40px,calc((100% - 1200px) / 2)); } }
@media(min-width:1600px) { .marketing .site-header { padding-inline:calc((100% - 1280px) / 2); }.marketing .site-footer-inner { max-width:1360px; } }
.site-language { display:grid;place-items:center;min-width:36px;min-height:36px;padding:4px 7px;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:6px;font:11px var(--mono); }
.site-language:hover { border-color:var(--accent);color:var(--text); }
.site-menu { display:none;position:relative; }
.site-menu summary { display:grid;place-items:center;min-width:36px;min-height:36px;list-style:none;color:var(--text);border:1px solid var(--border);border-radius:6px; }
.site-menu summary::-webkit-details-marker { display:none; }
.site-menu[open] summary { background:var(--surface);color:var(--accent); }
.site-menu nav { position:absolute;right:0;top:calc(100% + 12px);width:240px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow); }
.site-menu nav a { display:block;padding:12px 14px;color:var(--muted);font-size:14px;border-radius:5px; }
.site-menu nav a:hover,.site-menu nav a[aria-current] { background:var(--surface-hover);color:var(--accent); }
.site-footer { margin-top:40px;border-top:1px solid var(--border);background:var(--surface-alt); }
.site-footer-inner { max-width:1280px;margin:auto;padding:52px 40px 0;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px; }
.footer-brand .brand { font-size:20px; }
.footer-brand p { margin:18px 0 8px;font-size:14px;line-height:1.6;color:var(--muted); }
.footer-license { font:10px/1.7 var(--mono);color:var(--dim); }
.site-footer nav p { font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin:4px 0 16px; }
.site-footer nav a { display:block;width:fit-content;color:var(--muted);font-size:13px;margin:12px 0;line-height:1.6; }
.site-footer nav a:hover,.footer-bottom a:hover { color:var(--accent);text-decoration:underline;text-underline-offset:4px; }
.footer-bottom { grid-column:1/-1;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;padding:22px 0;color:var(--dim);font-size:11px; }
.footer-bottom a { color:var(--muted); }
@media(max-width:1050px) { .site-header .header-links { display:none; }.site-menu { display:block; }.site-header { gap:15px; } }
@media(max-width:700px) { .site-footer-inner { grid-template-columns:repeat(3,minmax(0,1fr));padding:36px 24px 0;gap:24px; }.footer-brand { grid-column:1/-1; }.site-footer nav a { font-size:12px; }.footer-brand p { margin-top:14px; } }
@media(max-width:600px) { .site-header { padding:0 16px;gap:10px; }.site-header .header-divider { display:none; }.site-header .brand { font-size:18px; }.site-header .search-trigger { width:34px; }.site-header .theme-button { min-width:32px; }.site-menu summary { min-width:32px; }.site-language { min-width:32px; }.site-header .header-install { display:none; } }
@media(max-width:360px) { .site-header { gap:6px;padding:0 12px; }.site-header .brand { gap:6px;font-size:16px; }.site-header .brand img { width:25px;height:25px; }.site-footer-inner { grid-template-columns:1fr 1fr; }.footer-bottom { flex-wrap:wrap; } }
@media print { .site-header,.site-footer { display:none; } }
