/*
 * UNET API docs: TypeDoc's own page, dressed like unet.social's public pages: the same `--mkt-*` palette as the Developers site (social-v3 app/globals.css),
 * system font, hairlines, rounded cards, a pill search and the accent blue. Light and dark follow the system or TypeDoc's switch.
 */

:root {
  --font-sans: system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  --light-color-background: #ffffff;
  --light-color-background-secondary: #f7f7f5;
  --light-color-background-active: #f2f2ef;
  --light-color-accent: #e5e5e5;
  --light-color-text: #0f0f0f;
  --light-color-contrast-text: #0f0f0f;
  --light-color-text-aside: #6b6b6b;
  --light-color-link: #2d6bff;
  --light-color-focus-outline: #2d6bff;
  --light-color-active-menu-item: #f2f2ef;
  --light-color-icon-background: #f7f7f5;
  --light-color-comment-tag: #f7f7f5;
  --light-color-ts-keyword: #2d6bff;
  --light-color-ts-class: #2d6bff;
  --light-color-ts-interface: #1f9d5b;
  --light-color-ts-type-alias: #c2307a;
  --light-color-ts-function: #6d4aff;
  --light-color-ts-method: #6d4aff;
  --light-color-ts-property: #9a5b1f;

  --dark-color-background: #111110;
  --dark-color-background-secondary: #161615;
  --dark-color-background-active: #242422;
  --dark-color-accent: #2a2a28;
  --dark-color-text: #f5f4f0;
  --dark-color-contrast-text: #ffffff;
  --dark-color-text-aside: #a8a29e;
  --dark-color-link: #5a96ff;
  --dark-color-focus-outline: #5a96ff;
  --dark-color-active-menu-item: #242422;
  --dark-color-icon-background: #1c1c1a;
  --dark-color-comment-tag: #1c1c1a;
  --dark-color-ts-keyword: #5a96ff;
  --dark-color-ts-class: #5a96ff;
  --dark-color-ts-interface: #3ecb83;
  --dark-color-ts-type-alias: #ff7ab8;
  --dark-color-ts-function: #a78bfa;
  --dark-color-ts-method: #a78bfa;
  --dark-color-ts-property: #e0a96d;

  /* the card the content sits in, as the web version's feed column */
  --unet-card: #ffffff;
  --unet-hair: #e5e5e5;
  --unet-wash: #f7f7f5;
}
:root[data-theme="dark"] { --unet-card: #1c1c1a; --unet-hair: #2a2a28; --unet-wash: #161615; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --unet-card: #1c1c1a; --unet-hair: #2a2a28; --unet-wash: #161615; } }

body { font-family: var(--font-sans); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
code, pre, .tsd-signature, .tsd-kind-icon + span { font-family: var(--font-mono); }

/* header: logo, name, a pill search */
.tsd-page-toolbar { background: color-mix(in srgb, var(--color-background) 88%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--unet-hair); }
.tsd-page-toolbar a.title { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: 0.04em; }
.tsd-page-toolbar a.title::before { content: ""; width: 26px; height: 26px; background: url("unet-logo.svg") center / contain no-repeat; flex: none; }
.tsd-toolbar-links a { font-weight: 500; }
#tsd-search-field, .tsd-page-toolbar input[type="search"] { border-radius: 999px; border: 1px solid var(--unet-hair); background: var(--unet-wash); color: var(--color-text); }
#tsd-search .results li { border-radius: 12px; }
#tsd-search .field input { border-radius: 999px; }

/* content: a rounded card, like the feed column of the web version */
.col-content { background: var(--unet-card); border: 1px solid var(--unet-hair); border-radius: 24px; padding: 24px 28px 28px; margin-bottom: 24px; }
.container-main { margin-top: 20px; }
@media (max-width: 769px) { .col-content { border-radius: 18px; padding: 16px 16px 20px; } }
.tsd-page-title h1, .col-content > h1 { letter-spacing: -0.02em; font-weight: 700; }
h1, h2, h3, h4 { letter-spacing: -0.015em; }

/* each method / type is a card with a hairline */
.tsd-panel.tsd-member { border: 1px solid var(--unet-hair); border-radius: 16px; padding: 16px 18px; margin-bottom: 14px; background: var(--unet-card); }
.tsd-panel.tsd-member > h3 { font-size: 1.05rem; }
.tsd-signature { background: var(--unet-wash); border: 1px solid var(--unet-hair); border-radius: 12px; padding: 10px 14px; }
.tsd-signatures .tsd-signature { margin: 8px 0; }
.tsd-description .tsd-comment p:first-child { margin-top: 0; }
.tsd-index-panel { border: 0; background: transparent; padding: 0; margin: 20px 0; }
.tsd-index-panel .tsd-index-content, .tsd-panel-group.tsd-index-group { border: 1px solid var(--unet-hair); border-radius: 16px; background: var(--unet-card); padding: 12px 16px; }
.tsd-index-panel a, .tsd-index-panel .tsd-index-link { border-radius: 999px; }
.tsd-accordion-summary, details.tsd-accordion { border-radius: 12px; }
.tsd-parameters .tsd-parameter-list li, .tsd-type-declaration ul.tsd-parameters > li { border-left: 2px solid var(--unet-hair); }
.tsd-kind-icon { border-radius: 8px; }
table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--unet-hair); border-radius: 12px; overflow: hidden; }
th, td { border-bottom: 1px solid var(--unet-hair); padding: 8px 12px; text-align: left; }
tr:last-child td { border-bottom: 0; }

/* code in the README / guides */
.tsd-typography pre, pre { border: 1px solid var(--unet-hair); border-radius: 14px; background: var(--unet-wash); padding: 14px 16px; }
.tsd-typography code, :not(pre) > code { background: var(--unet-wash); border-radius: 6px; padding: 0.1em 0.4em; }
.tsd-typography blockquote { border-left: 3px solid var(--color-link); border-radius: 0 8px 8px 0; background: var(--unet-wash); padding: 8px 14px; }
a { text-underline-offset: 3px; }
a:hover { text-decoration: underline; }

/* sidebar menu: pills, like the web version's left rail */
.site-menu a, .tsd-navigation a { border-radius: 999px; padding: 4px 10px; }
.tsd-navigation a.current, .tsd-navigation .current > a, .site-menu a.current { background: var(--unet-wash); font-weight: 600; }
.page-menu a, .tsd-page-navigation a { border-radius: 999px; }
.tsd-navigation summary, .tsd-accordion-summary { cursor: pointer; }

footer { border-top: 1px solid var(--unet-hair); }
::selection { background: color-mix(in srgb, var(--color-link) 30%, transparent); }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }
