:root {
   --font-body:
      "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
   --font-mono:
      "JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", "Consolas", "Liberation Mono", monospace;
   --font-size-base: 18px;
   --font-size-small: 16px;
   --font-size-smaller: 15px;
   --line-height: 1.65;
   --sidebar-width: 272px;
   --header-height: 54px;

   --bg-body: #f7f8fa;
   --bg-sidebar: #ffffff;
   --bg-content: #ffffff;
   --bg-header: #ffffff;
   --bg-code: #f0f3f7;
   --bg-code-block: #1e293b;
   --bg-hover: #f0f4ff;
   --bg-active: #e8edfa;
   --bg-badge-class: #dbeafe;
   --bg-badge-struct: #ccfbf1;
   --bg-badge-enum: #fef3c7;
   --bg-badge-interface: #ede9fe;
   --bg-badge-union: #ffe4e6;
   --bg-badge-alias: #f3f4f6;
   --bg-badge-template: #fce7f3;
   --bg-badge-attr: #f0fdf4;
   --bg-badge-private: #fee2e2;
   --bg-badge-initializer: #e0f2fe;
   --bg-badge-deprecated: #fef3c7;
   --bg-table-stripe: #f8fafc;
   --bg-search: #f0f3f7;
   --bg-footer: #f7f8fa;
   --bg-section-card: #ffffff;

   --text-primary: #1a1a2e;
   --text-secondary: #4a5568;
   --text-tertiary: #8892a4;
   --text-code-block: #e2e8f0;
   --text-badge-class: #1d4ed8;
   --text-badge-struct: #0f766e;
   --text-badge-enum: #b45309;
   --text-badge-interface: #7c3aed;
   --text-badge-union: #be123c;
   --text-badge-alias: #4b5563;
   --text-badge-template: #be185d;
   --text-badge-attr: #15803d;
   --text-badge-private: #dc2626;
   --text-badge-initializer: #0369a1;
   --text-badge-deprecated: #92400e;
   --bg-attr-tag: #e8f5e9;
   --text-attr-tag: #2e7d32;

   --accent: #3b82f6;
   --accent-hover: #2563eb;
   --accent-light: #eff6ff;
   --sidebar-active: #b8860b;

   --border: #e5e7eb;
   --border-light: #f0f0f4;
   --border-focus: #93c5fd;

   --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
   --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
   --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.08);

   --radius-sm: 4px;
   --radius-md: 6px;
   --radius-lg: 10px;

   --transition: 0.15s ease;
}

html.dark {
   --bg-body: #0c0e1a;
   --bg-sidebar: #111827;
   --bg-content: #111827;
   --bg-header: #0f172a;
   --bg-code: #1e293b;
   --bg-code-block: #0d1117;
   --bg-hover: #1e293b;
   --bg-active: #1e3a5f;
   --bg-badge-class: #1e3a5f;
   --bg-badge-struct: #134e4a;
   --bg-badge-enum: #78350f;
   --bg-badge-interface: #4c1d95;
   --bg-badge-union: #9f1239;
   --bg-badge-alias: #374151;
   --bg-badge-template: #831843;
   --bg-badge-attr: #14532d;
   --bg-badge-private: #7f1d1d;
   --bg-badge-initializer: #0c4a6e;
   --bg-badge-deprecated: #78350f;
   --bg-table-stripe: #1e293b;
   --bg-search: #1e293b;
   --bg-footer: #0c0e1a;
   --bg-section-card: #151c2c;

   --text-primary: #f1f5f9;
   --text-secondary: #cbd5e1;
   --text-tertiary: #94a3b8;
   --text-code-block: #e2e8f0;
   --text-badge-class: #60a5fa;
   --text-badge-struct: #5eead4;
   --text-badge-enum: #fbbf24;
   --text-badge-interface: #a78bfa;
   --text-badge-union: #fb7185;
   --text-badge-alias: #9ca3af;
   --text-badge-template: #f472b6;
   --text-badge-attr: #86efac;
   --text-badge-initializer: #7dd3fc;
   --text-badge-deprecated: #fbbf24;
   --text-badge-private: #86efac;
   --bg-attr-tag: #1e293b;
   --text-attr-tag: #7dd3fc;

   --accent: #60a5fa;
   --accent-hover: #3b82f6;
   --accent-light: #172554;
   --sidebar-active: #eab308;

   --border: #1e293b;
   --border-light: #1e293b;
   --border-focus: #3b82f6;

   --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
   --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
   --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.4);
}

*,
*::before,
*::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}

html {
   font-size: var(--font-size-base);
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   scroll-behavior: smooth;
}

body {
   font-family: var(--font-body);
   line-height: var(--line-height);
   color: var(--text-primary);
   background: var(--bg-body);
   min-height: 100vh;
   display: flex;
   flex-direction: column;
}

a {
   color: var(--accent);
   text-decoration: none;
   transition: color var(--transition);
}

a:hover {
   color: var(--accent-hover);
   text-decoration: underline;
}

code,
pre,
.mono {
   font-family: var(--font-mono);
}

code {
   font-size: 0.9em;
   background: var(--bg-code);
   padding: 2px 6px;
   border-radius: var(--radius-sm);
   color: var(--text-primary);
}

pre {
   background: var(--bg-code-block);
   color: var(--text-code-block);
   padding: 16px 20px;
   border-radius: var(--radius-md);
   overflow-x: auto;
   font-size: var(--font-size-small);
   line-height: 1.55;
   margin: 12px 0;
   box-shadow: var(--shadow-sm);
}

pre code {
   background: none;
   padding: 0;
   color: inherit;
   font-size: inherit;
}

/* ── Header ───────────────────────────────────────────────────── */

.header {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   height: var(--header-height);
   background: var(--bg-header);
   border-bottom: 1px solid var(--border);
   display: flex;
   align-items: center;
   padding: 0 24px;
   z-index: 100;
   box-shadow: var(--shadow-sm);
}

.header-logo {
   font-weight: 700;
   font-size: 1.1rem;
   color: var(--text-primary);
   margin-right: 32px;
   display: flex;
   align-items: center;
   gap: 8px;
   text-decoration: none;
}

.header-logo:hover {
   color: var(--accent);
   text-decoration: none;
}

.header-logo .logo-icon {
   font-size: 1.3rem;
}

.header-breadcrumb {
   font-size: var(--font-size-small);
   color: var(--text-secondary);
   display: flex;
   align-items: center;
   gap: 6px;
}

.header-breadcrumb a {
   color: var(--text-secondary);
}

.header-breadcrumb a:hover {
   color: var(--accent);
}

.header-breadcrumb .sep {
   color: var(--text-tertiary);
   font-size: 0.75rem;
}

.header-breadcrumb .current {
   color: var(--text-primary);
   font-weight: 600;
}

.header-search {
   margin-left: auto;
   position: relative;
}

.header-search input {
   font-family: var(--font-body);
   font-size: var(--font-size-small);
   width: 260px;
   padding: 7px 14px 7px 36px;
   border: 1px solid var(--border);
   border-radius: 20px;
   background: var(--bg-search);
   color: var(--text-primary);
   outline: none;
   transition:
      border-color var(--transition),
      box-shadow var(--transition);
}

.header-search input:focus {
   border-color: var(--border-focus);
   box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.header-search input::placeholder {
   color: var(--text-tertiary);
}

.header-search .search-icon {
   position: absolute;
   left: 12px;
   top: 50%;
   transform: translateY(-50%);
   color: var(--text-tertiary);
   font-size: 16px;
   pointer-events: none;
}

.search-results {
   position: absolute;
   top: calc(100% + 6px);
   right: 0;
   width: 420px;
   max-height: 400px;
   overflow-y: auto;
   background: var(--bg-content);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   box-shadow: var(--shadow-lg);
   display: none;
   z-index: 200;
}

.search-results.visible {
   display: block;
}

.search-result-item {
   display: block;
   padding: 10px 16px;
   border-bottom: 1px solid var(--border-light);
   cursor: pointer;
   transition: background var(--transition);
   text-decoration: none;
   color: inherit;
}

.search-result-item:hover {
   background: var(--bg-hover);
}

.search-result-item:last-child {
   border-bottom: none;
}

.search-result-name {
   font-weight: 600;
   font-size: 0.9rem;
   color: var(--text-primary);
}

.search-result-meta {
   font-size: var(--font-size-smaller);
   color: var(--text-tertiary);
   margin-top: 2px;
}

.theme-toggle {
   margin-left: 16px;
   background: none;
   border: 1px solid var(--border);
   border-radius: 50%;
   width: 34px;
   height: 34px;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1rem;
   color: var(--text-secondary);
   transition: all var(--transition);
}

.theme-toggle:hover {
   border-color: var(--accent);
   color: var(--accent);
   background: var(--bg-hover);
}

/* ── Layout ───────────────────────────────────────────────────── */

.layout {
   display: flex;
   margin-top: var(--header-height);
   min-height: calc(100vh - var(--header-height));
}

/* ── Sidebar ──────────────────────────────────────────────────── */

.sidebar {
   width: var(--sidebar-width);
   min-width: var(--sidebar-width);
   background: var(--bg-sidebar);
   border-right: 1px solid var(--border);
   position: fixed;
   top: var(--header-height);
   left: 0;
   bottom: 0;
   overflow-y: auto;
   padding: 16px 0;
   z-index: 50;
}

.sidebar::-webkit-scrollbar {
   width: 7px;
}

.sidebar::-webkit-scrollbar-thumb {
   background: var(--border-light);
   border-radius: 3px;
}

.sidebar::-webkit-scrollbar-track {
   background: transparent;
}

.sidebar-section {
   margin-bottom: 4px;
}

.sidebar-package {
   display: block;
   font-weight: 700;
   font-size: 0.72rem;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   color: var(--accent);
   padding: 6px 12px 4px;
   border-bottom: 1px solid var(--border-light);
   font-family: "SF Mono", "Consolas", "Menlo", "Monaco", monospace;
   text-decoration: none;
   cursor: pointer;
}

.sidebar-package:hover {
   color: var(--text-primary);
}

.sidebar-parent {
   cursor: default;
}

.sidebar-subpackage {
   display: block;
   padding: 3px 12px 2px 20px;
   color: var(--accent);
   font-weight: 600;
   font-size: 0.72rem;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   text-decoration: none;
   cursor: pointer;
   font-family: "SF Mono", "Consolas", "Menlo", "Monaco", monospace;
   line-height: 1.35;
}

.sidebar-subpackage:hover {
   color: var(--text-primary);
}

.sidebar-subpackage.active {
   color: var(--sidebar-active);
}

.sidebar-module {
   display: block;
   padding: 2px 12px 2px 20px;
   color: var(--text-secondary);
   font-size: 13.5px;
   text-decoration: none;
   cursor: pointer;
   line-height: 1.35;
   font-family: "SF Mono", "Consolas", "Menlo", "Monaco", monospace;
}

.sidebar-module:hover {
   background: var(--bg-hover);
   color: var(--text-primary);
   text-decoration: none;
}

.sidebar-module.active {
   color: var(--sidebar-active);
   font-weight: 700;
}

.sidebar-package-node {
   display: block;
   padding: 2px 12px 2px 20px;
   font-size: 13.5px;
   color: var(--accent);
   font-weight: 700;
   font-family: "SF Mono", "Consolas", "Menlo", "Monaco", monospace;
   line-height: 1.35;
}

.sidebar-tree {
   margin-left: 8px;
}

.sidebar-module-tree {
   margin-left: 8px;
}

.sidebar-package.active {
   color: var(--sidebar-active);
}

/* ── Main Content ─────────────────────────────────────────────── */

.main-content {
   flex: 1;
   margin-left: var(--sidebar-width);
   padding: 32px 40px 60px;
   max-width: calc(100% - var(--sidebar-width));
}

.content-header {
   margin-bottom: 32px;
   padding-bottom: 16px;
   border-bottom: 1px solid var(--border);
}

.content-header h1 {
   font-size: 1.75rem;
   font-weight: 700;
   color: var(--text-primary);
   margin-bottom: 4px;
   font-family: var(--font-mono);
}

.content-header .module-path {
   font-size: var(--font-size-small);
   color: var(--text-tertiary);
   font-family: var(--font-mono);
}

/* ── Module Documentation ─────────────────────────────────────── */

.module-doc {
   background: var(--bg-section-card);
   border: 1px solid var(--border-light);
   border-radius: var(--radius-lg);
   padding: 20px 24px;
   margin-bottom: 28px;
   box-shadow: var(--shadow-sm);
}

.module-doc p {
   margin-bottom: 10px;
}

.module-doc p:last-child {
   margin-bottom: 0;
}

.empty-module {
   background: var(--bg-section-card);
   border: 1px dashed var(--border-light);
   border-radius: var(--radius-lg);
   padding: 24px 28px;
   margin-bottom: 28px;
   color: var(--text-muted);
   font-style: italic;
   text-align: center;
}

/* ── Quick Summary ────────────────────────────────────────────── */

.quick-summary {
   background: var(--bg-section-card);
   border: 1px solid var(--border-light);
   border-radius: var(--radius-lg);
   padding: 16px 20px;
   margin-bottom: 36px;
   box-shadow: var(--shadow-sm);
}

.quick-summary .summary-row {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 8px;
   margin-bottom: 8px;
   line-height: 1.8;
}

.quick-summary .summary-row:last-child {
   margin-bottom: 0;
}

.quick-summary .summary-row .badge {
   flex-shrink: 0;
}

.quick-summary .summary-row a {
   color: var(--accent);
   text-decoration: none;
   font-family: var(--font-mono);
   font-size: var(--font-size-smaller);
}

.quick-summary .summary-row a:hover {
   text-decoration: underline;
}

/* ── Sections ─────────────────────────────────────────────────── */

.section {
   margin-bottom: 32px;
}

.section-title {
   font-size: 1.15rem;
   font-weight: 700;
   color: var(--text-primary);
   padding-bottom: 8px;
   margin-bottom: 16px;
   border-bottom: 2px solid var(--accent);
   display: flex;
   align-items: center;
   gap: 8px;
}

.section-title .count {
   font-size: var(--font-size-smaller);
   font-weight: 500;
   color: var(--text-tertiary);
   background: var(--bg-badge-alias);
   padding: 2px 8px;
   border-radius: 10px;
}

/* ── Declaration Cards ────────────────────────────────────────── */

.decl-card {
   background: var(--bg-section-card);
   border: 1px solid var(--border-light);
   border-radius: var(--radius-lg);
   margin-bottom: 10px;
   overflow: hidden;
   box-shadow: var(--shadow-sm);
   transition: box-shadow var(--transition);
}

.decl-card:hover {
   box-shadow: var(--shadow-md);
}

.decl-header {
   padding: 10px 16px;
   display: flex;
   align-items: center;
   gap: 10px;
   border-bottom: 1px solid var(--border-light);
}

.decl-header code {
   background: none;
   padding: 0;
   font-size: 1.05rem;
   font-weight: 500;
   color: var(--text-primary);
}

.decl-header .decl-name {
   font-family: var(--font-mono);
   font-size: 1.05rem;
   font-weight: 600;
   color: var(--text-primary);
}

.decl-body {
   padding: 10px 16px;
}

.decl-body .ddoc-content {
   font-size: 0.95rem;
   color: var(--text-secondary);
   line-height: 1.7;
}

.decl-body .ddoc-content p {
   margin-bottom: 8px;
}

/* ── Type Badges ──────────────────────────────────────────────── */

.badge {
   display: inline-block;
   font-size: 13px;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.5px;
   padding: 2px 8px;
   border-radius: var(--radius-sm);
   font-family: var(--font-body);
   line-height: 1.4;
}

.badge-class {
   background: var(--bg-badge-class);
   color: var(--text-badge-class);
}
.badge-struct {
   background: var(--bg-badge-struct);
   color: var(--text-badge-struct);
}
.badge-enum {
   background: var(--bg-badge-enum);
   color: var(--text-badge-enum);
}
.badge-interface {
   background: var(--bg-badge-interface);
   color: var(--text-badge-interface);
}
.badge-union {
   background: var(--bg-badge-union);
   color: var(--text-badge-union);
}
.badge-alias {
   background: var(--bg-badge-alias);
   color: var(--text-badge-alias);
}
.badge-template {
   background: var(--bg-badge-template);
   color: var(--text-badge-template);
}
.badge-attr {
   background: var(--bg-badge-attr);
   color: var(--text-badge-attr);
}
.badge-function {
   background: var(--bg-badge-class);
   color: var(--text-badge-class);
}
.badge-variable {
   background: var(--bg-badge-alias);
   color: var(--text-badge-alias);
}
.badge-constructor {
   background: var(--bg-badge-interface);
   color: var(--text-badge-interface);
}
.badge-destructor {
   background: var(--bg-badge-union);
   color: var(--text-badge-union);
}
.badge-private {
   background: var(--bg-badge-private);
   color: var(--text-badge-private);
   font-style: italic;
}
.badge-initializer {
   background: var(--bg-badge-initializer);
   color: var(--text-badge-initializer);
}
.badge-deprecated {
   background: var(--bg-badge-deprecated);
   color: var(--text-badge-deprecated);
}
.deprecated-notice {
   display: flex;
   align-items: center;
   gap: 8px;
   padding: 6px 12px;
   margin: 4px 0;
   background: var(--bg-badge-deprecated);
   border-radius: var(--radius-sm);
   font-size: var(--font-size-smaller);
}
.deprecated-msg {
   color: var(--text-badge-deprecated);
}

/* ── Summary Tables ───────────────────────────────────────────── */

.summary-table {
   width: 100%;
   border-collapse: collapse;
   font-size: var(--font-size-small);
}

.summary-table th {
   text-align: left;
   padding: 10px 16px;
   font-weight: 600;
   color: var(--text-secondary);
   border-bottom: 2px solid var(--border);
   font-size: var(--font-size-smaller);
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

.summary-table td {
   padding: 10px 16px;
   border-bottom: 1px solid var(--border-light);
   vertical-align: top;
}

.summary-table tr:hover td {
   background: var(--bg-hover);
}

.summary-table td:first-child {
   font-family: var(--font-mono);
   font-weight: 500;
   white-space: nowrap;
}

.summary-table td:last-child {
   color: var(--text-secondary);
   max-width: 400px;
   overflow: hidden;
   text-overflow: ellipsis;
}

/* ── Members inside Type Cards ────────────────────────────────── */

.members-section {
   margin-top: 8px;
   padding-top: 6px;
   border-top: 1px solid var(--border-light);
}

.members-section-title {
   font-size: var(--font-size-small);
   font-weight: 600;
   color: var(--text-secondary);
   margin-bottom: 8px;
   text-transform: uppercase;
   letter-spacing: 0.3px;
}

.member-row {
   display: block;
   padding: 3px 12px;
   padding-left: 32px;
   font-size: var(--font-size-smaller);
   line-height: 1.45;
   text-indent: -20px;
}

.member-row .badge,
.member-row code,
.member-row .attr-tag,
.member-row .member-brief {
   display: inline;
}

.member-row code {
   font-size: 0.92em;
}

.member-brief {
   color: var(--text-tertiary);
   white-space: normal;
}

.member-brief::before {
   content: " // ";
   color: var(--text-tertiary);
   opacity: 0.7;
}

.enum-member-brief {
   color: var(--text-tertiary);
   font-size: 14px;
   margin-left: 8px;
}

.type-link {
   color: var(--accent);
   text-decoration: none;
}

.type-link:hover {
   text-decoration: underline;
}

/* ── Attribute Tags ───────────────────────────────────────────── */

.attr-tag {
   display: inline-block;
   font-size: 13px;
   font-family: var(--font-mono);
   padding: 1px 6px;
   border-radius: var(--radius-sm);
   background: var(--bg-attr-tag);
   color: var(--text-attr-tag);
   margin-left: 4px;
}

.visibility-tag {
   font-size: 13px;
   font-family: var(--font-mono);
   padding: 1px 6px;
   border-radius: var(--radius-sm);
   background: var(--bg-badge-alias);
   color: var(--text-badge-alias);
   margin-right: 4px;
}

/* ── DDoc Sections ────────────────────────────────────────────── */

.ddoc-params h4,
.ddoc-returns h4,
.ddoc-throws h4,
.ddoc-examples h4,
.ddoc-see-also h4,
.ddoc-note h4,
.ddoc-bugs h4,
.ddoc-todo h4,
.ddoc-deprecated h4 {
   font-size: var(--font-size-small);
   font-weight: 700;
   color: var(--text-secondary);
   margin-bottom: 6px;
   text-transform: uppercase;
   letter-spacing: 0.3px;
}

.ddoc-params pre,
.ddoc-examples pre {
   background: var(--bg-code-block);
   color: var(--text-code-block);
   padding: 12px 16px;
   border-radius: var(--radius-md);
   font-size: var(--font-size-small);
   overflow-x: auto;
}

.ddoc-returns p,
.ddoc-throws p,
.ddoc-see-also p,
.ddoc-note p,
.ddoc-deprecated p {
   font-size: 0.92rem;
   color: var(--text-secondary);
}

.module-doc ul,
.module-doc ol,
.member-doc ul,
.member-doc ol,
.ddoc-returns ul,
.ddoc-returns ol,
.ddoc-returns .section-content,
.section-content ul,
.section-content ol {
   margin: 4px 0;
   padding-left: 24px;
}

.module-doc li,
.member-doc li,
.section-content li {
   margin: 2px 0;
}

/* ── Footer ───────────────────────────────────────────────────── */

.footer {
   margin-left: var(--sidebar-width);
   padding: 20px 40px;
   text-align: center;
   color: var(--text-tertiary);
   font-size: var(--font-size-smaller);
   border-top: 1px solid var(--border);
   background: var(--bg-footer);
}

.footer a {
   color: var(--accent);
}

/* ── Home Page ────────────────────────────────────────────────── */

.home-container {
   max-width: 720px;
   margin: 0 auto;
   padding: 40px 20px;
}

.home-title {
   font-size: 2rem;
   font-weight: 800;
   text-align: center;
   margin-bottom: 8px;
   color: var(--text-primary);
}

.home-subtitle {
   text-align: center;
   color: var(--text-secondary);
   margin-bottom: 36px;
   font-size: 1.05rem;
}

.package-card {
   background: var(--bg-section-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   padding: 20px 24px;
   margin-bottom: 12px;
   transition: all var(--transition);
   box-shadow: var(--shadow-sm);
   display: block;
   text-decoration: none;
   color: inherit;
}

.package-card:hover {
   box-shadow: var(--shadow-md);
   border-color: var(--accent);
   text-decoration: none;
}

.package-card-name {
   font-size: 1.15rem;
   font-weight: 700;
   color: var(--accent);
   margin-bottom: 4px;
}

.package-card-version {
   font-size: var(--font-size-smaller);
   color: var(--text-tertiary);
   font-family: var(--font-mono);
}

.package-card-desc {
   font-size: 0.92rem;
   color: var(--text-secondary);
   margin-top: 6px;
}

.package-card-meta {
   font-size: var(--font-size-smaller);
   color: var(--text-tertiary);
   margin-top: 8px;
}

/* ── Package Index Page ───────────────────────────────────────── */

.pkg-header {
   margin-bottom: 28px;
}

.pkg-header h1 {
   font-size: 1.5rem;
   font-weight: 700;
   margin-bottom: 4px;
}

.pkg-header .pkg-desc {
   color: var(--text-secondary);
   font-size: 0.95rem;
}

.pkg-header .pkg-meta {
   font-size: var(--font-size-smaller);
   color: var(--text-tertiary);
   margin-top: 4px;
}

.module-list {
   list-style: none;
}

.module-list li {
   padding: 10px 16px;
   border-bottom: 1px solid var(--border-light);
   transition: background var(--transition);
}

.module-list li:hover {
   background: var(--bg-hover);
}

.module-list a {
   font-family: var(--font-mono);
   font-weight: 500;
   font-size: 0.92rem;
}

.module-list .module-desc {
   font-size: var(--font-size-smaller);
   color: var(--text-tertiary);
   margin-top: 2px;
}

/* ── Enum Members ─────────────────────────────────────────────── */

.enum-members {
   margin-top: 12px;
   padding: 12px 16px;
   background: var(--bg-code);
   border-radius: var(--radius-md);
}

.enum-member {
   display: flex;
   align-items: baseline;
   padding: 4px 0;
   font-family: var(--font-mono);
   font-size: var(--font-size-small);
}

.enum-member-name {
   font-weight: 600;
   color: var(--text-primary);
}

.enum-member-value {
   color: var(--text-tertiary);
   margin-left: 8px;
}

.enum-member-doc {
   font-family: var(--font-body);
   font-size: var(--font-size-smaller);
   color: var(--text-secondary);
   margin-left: 12px;
}

/* ── Responsive ───────────────────────────────────────────────── */

.menu-toggle {
   display: none;
   background: none;
   border: none;
   font-size: 1.3rem;
   cursor: pointer;
   color: var(--text-primary);
   margin-right: 12px;
   padding: 4px;
}

@media (max-width: 768px) {
   .menu-toggle {
      display: block;
   }

   .sidebar {
      transform: translateX(-100%);
      transition: transform 0.25s ease;
   }

   .sidebar.open {
      transform: translateX(0);
      box-shadow: var(--shadow-lg);
   }

   .main-content {
      margin-left: 0;
      padding: 24px 16px 40px;
   }

   .footer {
      margin-left: 0;
   }

   .header-search input {
      width: 160px;
   }

   .search-results {
      width: 300px;
   }

   .content-header h1 {
      font-size: 1.3rem;
   }
}

@media (max-width: 480px) {
   .header-search input {
      width: 120px;
   }

   .header-breadcrumb {
      display: none;
   }
}

.overload-section {
   margin-bottom: 16px;
}

.overload-section + .overload-section {
   border-top: 2px solid var(--border);
   margin-top: 16px;
}

.no-docs {
   font-style: italic;
   color: var(--text-tertiary);
   padding: 8px 0;
   font-size: 0.9rem;
}

/* ── Utility ──────────────────────────────────────────────────── */

.anchor {
   display: block;
   position: relative;
   top: -70px;
   visibility: hidden;
}

.anchor-link {
   color: var(--text-tertiary);
   font-size: 0.85em;
   margin-left: 6px;
   opacity: 0;
   transition: opacity var(--transition);
}

*:hover > .anchor-link {
   opacity: 1;
}

.no-packages {
   text-align: center;
   padding: 60px 20px;
   color: var(--text-tertiary);
}

.no-packages .icon {
   font-size: 3rem;
   margin-bottom: 16px;
}

.no-packages p {
   font-size: 1.05rem;
   margin-top: 8px;
}

.no-packages code {
   background: var(--bg-code);
   padding: 4px 10px;
   border-radius: var(--radius-sm);
   font-size: 0.9rem;
}

/* ── Selection ────────────────────────────────────────────────── */

::selection {
   background: var(--accent);
   color: #ffffff;
}

html.dark .member-signature,
html.dark .decl-name,
html.dark .decl-header code,
html.dark .enum-member-name,
html.dark .ddoc-declaration {
   color: #b8f0c8;
}

::selection {
   background: var(--accent);
   color: #0f172a;
}
