/* ════════════════════════════════════════════════════════════════════
   Guide Ogerant — centre d'aide statique.
   Design system: "Mare" (mêmes tokens que l'app + tenderscan/dummy/brand.css).
   Inter partout · violet #8B69D9 · deep #6B4BC1 · tint #F4EFFC ·
   page #F8F8F8 · cartes #FFF, 1px #E8E8E8, radius 12px, sans ombre ·
   action sombre #1A1A1A. `.dark` sur <html> bascule le mode.
   Zéro build, zéro dépendance.
   ════════════════════════════════════════════════════════════════════ */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Cairo:wght@400;500;600;700&display=swap");

:root {
	/* ── Mode clair — Mare ── */
	--background: 0 0% 97.3%;
	--foreground: 0 0% 10.2%;
	--card: 0 0% 100%;
	--muted: 0 0% 95%;
	--muted-foreground: 240 4% 45%;
	--faint: 240 4% 58%;
	--border: 0 0% 91%;

	--primary: 258 60% 63%;          /* #8B69D9 */
	--accent: 258 60% 63%;
	--accent-hover: 256 49% 53%;     /* #6B4BC1 */
	--accent-soft: 263 68% 96%;      /* #F4EFFC */
	--primary-foreground: 0 0% 100%;
	--ring: 258 60% 63%;

	--success: 153 57% 41%;
	--success-deep: 154 61% 21%;
	--success-soft: 136 33% 94%;
	--warn: 45 67% 36%;
	--warn-deep: 43 100% 19%;
	--warn-soft: 44 76% 95%;
	--danger: 357 54% 41%;
	--danger-soft: 0 70% 96%;
	--info: 256 49% 53%;

	--brand-gradient: linear-gradient(135deg, #8464d5 0%, #7f5fd0 100%);
	--text-gradient: linear-gradient(120deg, #6b4bc1 0%, #8b69d9 100%);

	--radius: 12px;
	--radius-lg: 16px;
	--font-body: "Inter var", Inter, "Cairo", ui-sans-serif, system-ui, sans-serif;

	--header-h: 60px;
	--sidebar-w: 268px;
	--toc-w: 220px;
	--content-max: 760px;
}

.dark {
	--background: 0 0% 7%;
	--foreground: 0 0% 96%;
	--card: 0 0% 10.2%;
	--muted: 0 0% 14.5%;
	--muted-foreground: 0 0% 65%;
	--faint: 0 0% 52%;
	--border: 0 0% 16.5%;

	--primary: 258 60% 63%;
	--accent: 258 68% 72%;
	--accent-hover: 258 75% 79%;
	--accent-soft: 258 26% 19%;
	--ring: 258 68% 72%;

	--success: 153 50% 52%;
	--success-deep: 145 45% 78%;
	--success-soft: 152 30% 13%;
	--warn: 44 75% 58%;
	--warn-deep: 45 80% 78%;
	--warn-soft: 44 40% 12%;
	--danger: 357 65% 64%;
	--danger-soft: 357 35% 14%;
	--info: 258 68% 72%;

	--text-gradient: linear-gradient(120deg, #a98ee8 0%, #cdbcf5 100%);
	color-scheme: dark;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html { scroll-padding-top: calc(var(--header-h) + 24px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	font-family: var(--font-body);
	background: hsl(var(--background));
	color: hsl(var(--foreground));
	line-height: 1.65;
	font-size: 15px;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
::selection { background: hsl(var(--primary) / 0.25); }

:focus-visible {
	outline: 2px solid hsl(var(--ring));
	outline-offset: 2px;
	border-radius: 6px;
}

/* ════════════════ Header ════════════════ */
.gd-header {
	position: fixed;
	inset-inline: 0;
	top: 0;
	z-index: 50;
	height: var(--header-h);
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 0 20px;
	background: hsl(var(--card) / 0.85);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid hsl(var(--border));
}
.gd-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
	font-weight: 700;
	letter-spacing: -0.02em;
	font-size: 16px;
}
.gd-brand img { height: 26px; width: auto; }
.gd-brand .gd-brand-guide {
	padding: 2px 8px;
	border-radius: 999px;
	background: hsl(var(--accent-soft));
	color: hsl(var(--accent-hover));
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0;
}
.dark .gd-brand .gd-brand-guide { color: hsl(var(--accent)); }

/* Recherche */
.gd-search {
	position: relative;
	flex: 1;
	max-width: 480px;
	margin-inline: auto;
}
.gd-search-input {
	width: 100%;
	height: 38px;
	padding: 0 38px;
	border: 1px solid hsl(var(--border));
	border-radius: 10px;
	background: hsl(var(--background));
	color: hsl(var(--foreground));
	font: inherit;
	font-size: 14px;
	transition: border-color 150ms ease, background 150ms ease;
}
.gd-search-input::placeholder { color: hsl(var(--faint)); }
.gd-search-input:focus {
	outline: none;
	border-color: hsl(var(--ring));
	background: hsl(var(--card));
}
.gd-search-icon {
	position: absolute;
	inset-inline-start: 12px;
	top: 50%;
	translate: 0 -50%;
	width: 16px;
	height: 16px;
	color: hsl(var(--faint));
	pointer-events: none;
}
.gd-search-kbd {
	position: absolute;
	inset-inline-end: 10px;
	top: 50%;
	translate: 0 -50%;
	font-size: 11px;
	font-weight: 500;
	color: hsl(var(--faint));
	border: 1px solid hsl(var(--border));
	border-radius: 5px;
	padding: 1px 5px;
	background: hsl(var(--card));
	pointer-events: none;
}
.gd-search-results {
	position: absolute;
	top: calc(100% + 8px);
	inset-inline: 0;
	background: hsl(var(--card));
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	padding: 6px;
	max-height: 420px;
	overflow-y: auto;
	display: none;
}
.gd-search-results.open { display: block; }
.gd-search-result {
	display: block;
	padding: 9px 12px;
	border-radius: 8px;
	transition: background 120ms ease;
}
.gd-search-result:hover, .gd-search-result.active { background: hsl(var(--accent-soft)); }
.gd-search-result .r-title { font-weight: 600; font-size: 13.5px; }
.gd-search-result .r-crumb { font-size: 12px; color: hsl(var(--muted-foreground)); }
.gd-search-empty {
	padding: 14px 12px;
	font-size: 13px;
	color: hsl(var(--muted-foreground));
	text-align: center;
}

.gd-header-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.gd-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	border: 1px solid hsl(var(--border));
	background: hsl(var(--card));
	color: hsl(var(--muted-foreground));
	transition: background 150ms ease, color 150ms ease;
}
.gd-icon-btn:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.gd-icon-btn svg { width: 16px; height: 16px; }
.gd-header .icon-sun { display: none; }
.dark .gd-header .icon-sun { display: block; }
.dark .gd-header .icon-moon { display: none; }
.gd-app-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 34px;
	padding: 0 14px;
	border-radius: 9px;
	background: hsl(var(--primary));
	color: hsl(var(--primary-foreground));
	font-size: 13px;
	font-weight: 600;
	transition: background 150ms ease;
}
.gd-app-link:hover { background: hsl(var(--accent-hover)); }
.gd-app-link svg { width: 14px; height: 14px; }

/* Burger mobile */
.gd-burger { display: none; }

/* ════════════════ Layout ════════════════ */
.gd-shell {
	display: grid;
	grid-template-columns: var(--sidebar-w) minmax(0, 1fr);
	max-width: 1360px;
	margin-inline: auto;
	padding-top: var(--header-h);
	min-height: 100vh;
}

/* ── Sidebar ── */
.gd-sidebar {
	position: sticky;
	top: var(--header-h);
	height: calc(100vh - var(--header-h));
	overflow-y: auto;
	padding: 24px 16px 40px 20px;
	border-inline-end: 1px solid hsl(var(--border));
	scrollbar-width: thin;
}
.gd-nav-group { margin-bottom: 22px; }
.gd-nav-group-label {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: hsl(var(--faint));
	padding: 0 10px;
	margin-bottom: 6px;
}
.gd-nav a {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 7px 10px;
	border-radius: 8px;
	font-size: 13.5px;
	font-weight: 500;
	color: hsl(var(--muted-foreground));
	transition: background 120ms ease, color 120ms ease;
}
.gd-nav a:hover { background: hsl(var(--muted)); color: hsl(var(--foreground)); }
.gd-nav a.active {
	background: hsl(var(--accent-soft));
	color: hsl(var(--accent-hover));
	font-weight: 600;
}
.dark .gd-nav a.active { color: hsl(var(--accent)); }
.gd-nav a svg { width: 15px; height: 15px; flex-shrink: 0; opacity: 0.8; }

/* Sous-sections de la page courante */
.gd-nav-sub { margin: 2px 0 4px; padding-inline-start: 24px; }
.gd-nav-sub a {
	padding: 4px 10px;
	font-size: 12.5px;
	font-weight: 400;
	color: hsl(var(--faint));
}
.gd-nav-sub a:hover { background: none; color: hsl(var(--foreground)); }
.gd-nav-sub a.sub-active { color: hsl(var(--accent-hover)); font-weight: 600; background: none; }
.dark .gd-nav-sub a.sub-active { color: hsl(var(--accent)); }

/* ── Zone contenu + TOC ── */
.gd-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--toc-w);
	gap: 40px;
	padding: 36px 40px 80px;
}
.gd-main.no-toc { grid-template-columns: minmax(0, 1fr); }
.gd-article { max-width: var(--content-max); width: 100%; margin-inline: auto; }

/* TOC droite */
.gd-toc {
	position: sticky;
	top: calc(var(--header-h) + 36px);
	align-self: start;
	max-height: calc(100vh - var(--header-h) - 72px);
	overflow-y: auto;
	font-size: 12.5px;
	scrollbar-width: thin;
}
.gd-toc-label {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: hsl(var(--faint));
	margin-bottom: 8px;
}
.gd-toc a {
	display: block;
	padding: 4px 0 4px 12px;
	color: hsl(var(--muted-foreground));
	border-inline-start: 2px solid hsl(var(--border));
	transition: color 120ms ease, border-color 120ms ease;
}
.gd-toc a:hover { color: hsl(var(--foreground)); }
.gd-toc a.active {
	color: hsl(var(--accent-hover));
	border-inline-start-color: hsl(var(--primary));
	font-weight: 600;
}
.dark .gd-toc a.active { color: hsl(var(--accent)); }

/* ════════════════ Typographie article ════════════════ */
.gd-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	font-size: 12.5px;
	color: hsl(var(--muted-foreground));
	margin-bottom: 14px;
}
.gd-breadcrumb a:hover { color: hsl(var(--accent-hover)); }
.gd-breadcrumb .sep { color: hsl(var(--faint)); }
.gd-breadcrumb .current { color: hsl(var(--foreground)); font-weight: 500; }

.gd-eyebrow {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: hsl(var(--accent-hover));
	margin-bottom: 8px;
}
.dark .gd-eyebrow { color: hsl(var(--accent)); }

.gd-article h1 {
	font-size: 30px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.2;
	margin-bottom: 10px;
}
.gd-lead {
	font-size: 16px;
	color: hsl(var(--muted-foreground));
	margin-bottom: 28px;
}
.gd-article h2 {
	font-size: 21px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 44px 0 12px;
	padding-top: 20px;
	border-top: 1px solid hsl(var(--border));
	scroll-margin-top: calc(var(--header-h) + 20px);
}
.gd-article h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 28px; }
.gd-article h3 {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 26px 0 8px;
	scroll-margin-top: calc(var(--header-h) + 20px);
}
.gd-article h4 {
	font-size: 14px;
	font-weight: 600;
	margin: 18px 0 6px;
}
.gd-article p { margin-bottom: 12px; }
.gd-article p, .gd-article li { overflow-wrap: break-word; hyphens: auto; }
.gd-article ul, .gd-article ol { padding-inline-start: 22px; margin-bottom: 14px; }
.gd-article li { margin-bottom: 5px; }
.gd-article li::marker { color: hsl(var(--faint)); }
.gd-article a.gd-link, .gd-article p a, .gd-article li a {
	color: hsl(var(--accent-hover));
	font-weight: 500;
	text-decoration: underline;
	text-decoration-color: hsl(var(--primary) / 0.35);
	text-underline-offset: 3px;
	transition: text-decoration-color 120ms ease;
}
.dark .gd-article p a, .dark .gd-article li a, .dark .gd-article a.gd-link { color: hsl(var(--accent)); }
.gd-article p a:hover, .gd-article li a:hover { text-decoration-color: currentColor; }
.gd-article strong { font-weight: 600; }

/* Ancre au survol des titres */
.gd-anchor {
	margin-inline-start: 8px;
	color: hsl(var(--faint));
	opacity: 0;
	font-weight: 400;
	transition: opacity 120ms ease;
	text-decoration: none;
}
h2:hover .gd-anchor, h3:hover .gd-anchor { opacity: 1; }

/* Étiquette d'interface (nom de bouton/menu tel qu'affiché dans l'app) */
.ui {
	display: inline-block;
	padding: 1px 7px;
	border-radius: 6px;
	background: hsl(var(--muted));
	border: 1px solid hsl(var(--border));
	font-size: 0.88em;
	font-weight: 500;
	white-space: nowrap;
}
kbd {
	font-family: var(--font-body);
	font-size: 0.82em;
	font-weight: 600;
	padding: 1px 6px;
	border-radius: 5px;
	border: 1px solid hsl(var(--border));
	border-bottom-width: 2px;
	background: hsl(var(--card));
}

/* Badge de route (URL d'écran) */
.gd-route {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 500;
	color: hsl(var(--muted-foreground));
	background: hsl(var(--muted));
	border: 1px solid hsl(var(--border));
	border-radius: 999px;
	padding: 2px 10px;
	vertical-align: 2px;
	font-variant-numeric: tabular-nums;
}
.gd-route::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: hsl(var(--primary));
}

/* ── Étapes numérotées (tutoriels) ── */
.gd-steps {
	list-style: none;
	padding: 0;
	margin: 14px 0 22px;
	counter-reset: step;
}
.gd-steps > li {
	position: relative;
	counter-increment: step;
	padding: 0 0 18px 44px;
	margin: 0;
}
.gd-steps > li::before {
	content: counter(step);
	position: absolute;
	inset-inline-start: 0;
	top: -1px;
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: hsl(var(--accent-soft));
	color: hsl(var(--accent-hover));
	font-size: 12.5px;
	font-weight: 700;
}
.dark .gd-steps > li::before { color: hsl(var(--accent)); }
.gd-steps > li::after {
	content: "";
	position: absolute;
	inset-inline-start: 12.5px;
	top: 29px;
	bottom: 3px;
	width: 1px;
	background: hsl(var(--border));
}
.gd-steps > li:last-child::after { display: none; }
.gd-steps > li > strong:first-child { display: block; margin-bottom: 2px; }

/* ── Callouts ── */
.gd-callout {
	display: flex;
	gap: 12px;
	padding: 13px 16px;
	border-radius: var(--radius);
	border: 1px solid hsl(var(--border));
	background: hsl(var(--card));
	margin: 16px 0 20px;
	font-size: 14px;
}
.gd-callout svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 2px; }
.gd-callout p { margin: 0; }
.gd-callout p + p { margin-top: 6px; }
.gd-callout .co-title { font-weight: 600; display: block; margin-bottom: 2px; }
.gd-callout.tip { background: hsl(var(--accent-soft) / 0.5); border-color: hsl(var(--primary) / 0.25); }
.gd-callout.tip svg { color: hsl(var(--accent-hover)); }
.dark .gd-callout.tip svg { color: hsl(var(--accent)); }
.gd-callout.info { background: hsl(var(--muted) / 0.6); }
.gd-callout.info svg { color: hsl(var(--muted-foreground)); }
.gd-callout.warn { background: hsl(var(--warn-soft)); border-color: hsl(var(--warn) / 0.3); }
.gd-callout.warn svg { color: hsl(var(--warn)); }
.gd-callout.success { background: hsl(var(--success-soft)); border-color: hsl(var(--success) / 0.3); }
.gd-callout.success svg { color: hsl(var(--success)); }

/* ── Cartes écran (zones / fiches) ── */
.gd-card {
	background: hsl(var(--card));
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	padding: 18px 20px;
	margin: 14px 0 20px;
}
.gd-card > :last-child { margin-bottom: 0; }

/* Grille de définitions (zones d'écran) */
.gd-zones {
	display: grid;
	gap: 0;
	margin: 14px 0 20px;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	overflow: hidden;
	background: hsl(var(--card));
}
.gd-zone {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 16px;
	padding: 11px 16px;
	font-size: 13.5px;
}
.gd-zone + .gd-zone { border-top: 1px solid hsl(var(--border)); }
.gd-zone dt { font-weight: 600; }
.gd-zone dd { color: hsl(var(--muted-foreground)); }
@media (max-width: 560px) {
	.gd-zone { grid-template-columns: 1fr; gap: 2px; }
}

/* ── Tableaux ── */
.gd-table-wrap { overflow-x: auto; margin: 14px 0 20px; border: 1px solid hsl(var(--border)); border-radius: var(--radius); }
table.gd-table { width: 100%; border-collapse: collapse; font-size: 13.5px; background: hsl(var(--card)); }
.gd-table th {
	text-align: start;
	font-weight: 600;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: hsl(var(--muted-foreground));
	padding: 10px 14px;
	border-bottom: 1px solid hsl(var(--border));
	background: hsl(var(--muted) / 0.5);
	white-space: nowrap;
}
.gd-table td { padding: 10px 14px; border-bottom: 1px solid hsl(var(--border)); vertical-align: top; }
.gd-table tr:last-child td { border-bottom: 0; }

/* ── Pagination bas de page ── */
.gd-pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-top: 56px;
	padding-top: 24px;
	border-top: 1px solid hsl(var(--border));
}
.gd-pager a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 14px 16px;
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	background: hsl(var(--card));
	transition: border-color 150ms ease, background 150ms ease;
}
.gd-pager a:hover { border-color: hsl(var(--primary) / 0.45); background: hsl(var(--accent-soft) / 0.4); }
.gd-pager .pager-dir { font-size: 12px; color: hsl(var(--muted-foreground)); }
.gd-pager .pager-title { font-weight: 600; font-size: 14px; color: hsl(var(--accent-hover)); }
.dark .gd-pager .pager-title { color: hsl(var(--accent)); }
.gd-pager a.next { text-align: end; align-items: flex-end; }
.gd-pager .spacer { visibility: hidden; }

/* ════════════════ Accueil ════════════════ */
.gd-hero {
	text-align: center;
	padding: 56px 20px 40px;
	max-width: 720px;
	margin-inline: auto;
}
.gd-hero h1 {
	font-size: 36px;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.15;
	margin-bottom: 12px;
}
.gd-hero h1 .grad {
	background: var(--text-gradient);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.gd-hero p { color: hsl(var(--muted-foreground)); font-size: 16px; margin-bottom: 26px; }
.gd-hero .gd-search { max-width: 540px; }
.gd-hero .gd-search-input { height: 46px; font-size: 15px; border-radius: 12px; }

.gd-home-section { max-width: 1080px; margin-inline: auto; padding: 12px 24px 40px; }
.gd-home-label {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: hsl(var(--faint));
	margin: 26px 0 14px;
}
.gd-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}
.gd-cat-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: hsl(var(--card));
	border: 1px solid hsl(var(--border));
	border-radius: var(--radius);
	padding: 20px;
	transition: border-color 150ms ease, translate 150ms ease;
}
.gd-cat-card:hover { border-color: hsl(var(--primary) / 0.45); translate: 0 -2px; }
.gd-cat-icon {
	width: 38px;
	height: 38px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background: hsl(var(--accent-soft));
	color: hsl(var(--accent-hover));
}
.dark .gd-cat-icon { color: hsl(var(--accent)); }
.gd-cat-icon svg { width: 19px; height: 19px; }
.gd-cat-card h3 { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; }
.gd-cat-card p { font-size: 13px; color: hsl(var(--muted-foreground)); flex: 1; }
.gd-cat-card .cat-count { font-size: 12px; font-weight: 600; color: hsl(var(--accent-hover)); }
.dark .gd-cat-card .cat-count { color: hsl(var(--accent)); }

/* Liens rapides accueil */
.gd-quick {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 10px;
}
.gd-quick a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px;
	border: 1px solid hsl(var(--border));
	border-radius: 10px;
	background: hsl(var(--card));
	font-size: 13.5px;
	font-weight: 500;
	transition: border-color 150ms ease, background 150ms ease;
}
.gd-quick a:hover { border-color: hsl(var(--primary) / 0.45); background: hsl(var(--accent-soft) / 0.4); }
.gd-quick a svg { width: 15px; height: 15px; color: hsl(var(--accent-hover)); flex-shrink: 0; }
.dark .gd-quick a svg { color: hsl(var(--accent)); }

/* ════════════════ Footer ════════════════ */
.gd-footer {
	border-top: 1px solid hsl(var(--border));
	padding: 28px 24px 40px;
	text-align: center;
	font-size: 13px;
	color: hsl(var(--muted-foreground));
}
.gd-footer a { color: hsl(var(--accent-hover)); font-weight: 500; }
.dark .gd-footer a { color: hsl(var(--accent)); }
.gd-footer .foot-links { display: flex; justify-content: center; gap: 18px; margin-top: 8px; }

/* ════════════════ Responsive ════════════════ */
@media (max-width: 1120px) {
	.gd-main { grid-template-columns: minmax(0, 1fr); }
	.gd-toc { display: none; }
}
@media (max-width: 860px) {
	.gd-shell { grid-template-columns: minmax(0, 1fr); }
	.gd-sidebar {
		position: fixed;
		inset-inline-start: 0;
		top: var(--header-h);
		bottom: 0;
		width: min(300px, 84vw);
		background: hsl(var(--card));
		z-index: 40;
		translate: -105% 0;
		transition: translate 220ms ease;
	}
	.gd-sidebar.open { translate: 0 0; }
	.gd-scrim {
		position: fixed;
		inset: 0;
		top: var(--header-h);
		background: rgb(0 0 0 / 0.35);
		z-index: 35;
		opacity: 0;
		pointer-events: none;
		transition: opacity 200ms ease;
	}
	.gd-scrim.open { opacity: 1; pointer-events: auto; }
	.gd-burger { display: inline-flex; }
	.gd-search-kbd { display: none; }
	.gd-main { padding: 24px 18px 60px; }
	.gd-hero h1 { font-size: 28px; }
	.gd-app-link span { display: none; }
	.gd-app-link { padding: 0 10px; }
}
