/* ============================================================================
 * Someli Documentation Theme
 * Re-skins MkDocs Material to match www.someli.ai design language.
 *
 * Source palette (from Elementor Kit on someli.ai):
 *   Primary  #F35154   coral red
 *   Secondary #FC6C4D  orange (gradient start)
 *   Accent    #ED3F56  rose red (gradient end / hover)
 *   Text      #6C6C6C
 *   Heading   #161616
 *   Bg        #FFFFFF
 *   CTA       linear-gradient(260deg, #FC6C4D 0%, #ED3F56 100%)
 *   Fonts     Manrope (headings/UI), Roboto (body)
 * ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Roboto:wght@300;400;500;700&family=Roboto+Mono:wght@400;500;700&display=swap");

/* Brand tokens */
:root,
[data-md-color-scheme="default"] {
  --someli-primary:    #F35154;
  --someli-secondary:  #FC6C4D;
  --someli-accent:     #ED3F56;
  --someli-text:       #2c2c2c;
  --someli-text-muted: #6C6C6C;
  --someli-heading:    #161616;
  --someli-bg:         #FFFFFF;
  --someli-bg-alt:     #FAFAFB;
  --someli-border:     #E6E6EA;
  --someli-cta-gradient: linear-gradient(260deg, #FC6C4D 0%, #ED3F56 100%);
  --someli-shadow-soft: 0 4px 16px rgba(22, 22, 22, 0.06);
  --someli-shadow-pill: 0 0 10px rgba(0, 0, 0, 0.23);

  --md-text-font: "Roboto", "Helvetica Neue", Arial, system-ui, sans-serif;
  --md-code-font: "Roboto Mono", "JetBrains Mono", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;

  --md-primary-fg-color:        var(--someli-primary);
  --md-primary-fg-color--light: var(--someli-secondary);
  --md-primary-fg-color--dark:  var(--someli-accent);
  --md-primary-bg-color:        #ffffff;
  --md-primary-bg-color--light: rgba(255,255,255,.7);

  --md-accent-fg-color:         var(--someli-accent);
  --md-accent-fg-color--transparent: rgba(237, 63, 86, 0.10);
  --md-accent-bg-color:         #ffffff;
  --md-accent-bg-color--light:  rgba(255,255,255,.7);

  --md-typeset-a-color: var(--someli-accent);
}

/* Global typography */
body, .md-typeset {
  font-family: var(--md-text-font);
  color: var(--someli-text);
}
.md-typeset { font-size: .78rem; line-height: 1.7; }
.md-typeset h1, .md-typeset h2, .md-typeset h3,
.md-typeset h4, .md-typeset h5, .md-typeset h6 {
  font-family: "Manrope", var(--md-text-font);
  color: var(--someli-heading);
  letter-spacing: -0.005em;
}
.md-typeset h1 { font-weight: 700; font-size: 1.85rem; line-height: 1.2; margin-top: 0; margin-bottom: 1.2rem; }
.md-typeset h2 { font-weight: 700; font-size: 1.4rem; border-bottom: 1px solid var(--someli-border); padding-bottom: .35rem; margin-top: 2.5rem; }
.md-typeset h3 { font-weight: 600; font-size: 1.1rem; margin-top: 2rem; }
.md-typeset h4 { font-weight: 600; font-size: .95rem; }
.md-typeset h5, .md-typeset h6 { font-weight: 600; font-size: .82rem; text-transform: none; letter-spacing: 0; }

.md-typeset em, .md-typeset i, .md-typeset cite,
.md-typeset blockquote, .md-typeset address {
  font-family: var(--md-text-font);
  font-style: italic;
}

.md-typeset a {
  color: var(--someli-accent);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .15s ease, border-color .15s ease;
}
.md-typeset a:hover { color: var(--someli-primary); border-bottom-color: var(--someli-primary); }

/* Someli top bar */
.someli-topbar {
  position: sticky; top: 0; z-index: 5;
  background: #ffffff;
  border-bottom: 1px solid var(--someli-border);
  box-shadow: 0 1px 0 rgba(0,0,0,0.02);
}
.someli-topbar__inner {
  max-width: 1440px; margin: 0 auto;
  display: flex; align-items: center; gap: 1rem;
  padding: .65rem 1.2rem;
}
.someli-topbar__brand {
  display: flex; align-items: center; gap: .55rem;
  text-decoration: none; color: var(--someli-heading); border: none;
}
.someli-topbar__brand:hover { color: var(--someli-primary); }
.someli-topbar__brand img, .someli-topbar__brand svg {
  height: 32px; width: auto; display: block;
}
.someli-topbar__nav {
  display: flex; align-items: center; gap: 1.4rem;
  margin-left: auto;
  padding: .35rem 1.2rem;
  border-radius: 30px;
  box-shadow: var(--someli-shadow-pill);
}
.someli-topbar__nav a {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 500; font-size: .85rem;
  color: var(--someli-heading);
  text-decoration: none; border: none;
  transition: color .15s ease;
}
.someli-topbar__nav a:hover { color: var(--someli-primary); }
.someli-topbar__cta-group {
  display: flex; align-items: center; gap: .85rem;
  margin-left: .8rem;
}
.someli-topbar__login {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 600; font-size: .85rem;
  color: var(--someli-heading);
  text-decoration: none; border: none;
}
.someli-topbar__login:hover { color: var(--someli-primary); }
.someli-topbar__signup {
  display: inline-block;
  padding: .55rem 1.1rem;
  border-radius: 5px;
  background: var(--someli-cta-gradient);
  color: #ffffff !important;
  font-family: "Manrope", var(--md-text-font);
  font-weight: 600; font-size: .82rem;
  text-decoration: none; border: none;
  transition: filter .15s ease, transform .1s ease;
  box-shadow: 0 4px 10px rgba(243, 81, 84, 0.25);
}
.someli-topbar__signup:hover { filter: brightness(1.05); transform: translateY(-1px); }

@media (max-width: 960px) {
  .someli-topbar__nav, .someli-topbar__login { display: none; }
  .someli-topbar__inner { padding: .55rem .9rem; }
}

/* MkDocs header re-skin */
.md-header {
  background: var(--someli-primary);
  color: #ffffff;
  box-shadow: 0 1px 0 rgba(0,0,0,0.08);
}
.md-header__title {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 600; letter-spacing: 0;
}
.md-header[data-md-state="shadow"], .md-header--shadow {
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}
.md-tabs { background: var(--someli-accent); color: #ffffff; }
.md-tabs__link { font-family: "Manrope", var(--md-text-font); opacity: .9; }
.md-tabs__link--active, .md-tabs__link:hover { opacity: 1; }

.md-search__form { background: rgba(255,255,255,0.16); border-radius: 6px; }
.md-search__form:hover { background: rgba(255,255,255,0.24); }
[data-md-toggle="search"]:checked ~ .md-header .md-search__form {
  background: #ffffff; color: var(--someli-heading);
}

/* Sidebar / nav */
.md-nav__title {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 700; font-size: .72rem;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--someli-heading);
}
.md-nav__item .md-nav__link {
  font-family: var(--md-text-font);
  font-size: .76rem;
  color: var(--someli-text);
  transition: color .12s ease;
}
.md-nav__item .md-nav__link:hover,
.md-nav__item .md-nav__link--active { color: var(--someli-primary); }
.md-nav__link--active { font-weight: 600; }
.md-nav--secondary .md-nav__title { font-size: .7rem; }

/* Content */
body[data-md-color-scheme="default"] .md-content { background: #ffffff; }

.md-typeset table:not([class]) {
  font-size: .74rem;
  border: 1px solid var(--someli-border);
  border-collapse: collapse;
  box-shadow: var(--someli-shadow-soft);
  border-radius: 6px;
  overflow: hidden;
}
.md-typeset table:not([class]) th {
  background-color: var(--someli-bg-alt);
  font-family: "Manrope", var(--md-text-font);
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  color: var(--someli-heading);
  border-bottom: 1px solid var(--someli-border);
}
.md-typeset table:not([class]) td {
  vertical-align: top;
  padding: .55em .8em;
  border-top: 1px solid var(--someli-border);
}
.md-typeset table:not([class]) td,
.md-typeset table:not([class]) th { font-variant-numeric: tabular-nums; }
.md-typeset table:not([class]) td code { white-space: nowrap; }

.md-typeset code {
  font-size: .85em;
  padding: .12em .35em;
  border-radius: 4px;
  background: #fff1f1;
  color: var(--someli-accent);
}
.md-typeset pre > code {
  line-height: 1.55;
  background: #1a1a1f;
  color: #f3f3f3;
  border-radius: 6px;
}
.md-typeset .highlight { border-radius: 6px; box-shadow: var(--someli-shadow-soft); }

.md-typeset .admonition, .md-typeset details {
  border-radius: 6px;
  border-left-width: 4px;
  box-shadow: var(--someli-shadow-soft);
  border-color: var(--someli-border);
}
.md-typeset .admonition.note, .md-typeset details.note { border-left-color: var(--someli-secondary); }
.md-typeset .admonition.warning, .md-typeset details.warning,
.md-typeset .admonition.danger, .md-typeset details.danger { border-left-color: var(--someli-accent); }
.md-typeset .admonition-title, .md-typeset summary {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 600; color: var(--someli-heading);
}

.md-typeset blockquote {
  border-left: 3px solid var(--someli-primary);
  color: var(--someli-text-muted);
  padding-left: 1em;
  font-style: italic;
}

.md-button {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 600;
  border-radius: 5px;
  padding: .55em 1.1em;
  border: 1px solid var(--someli-primary);
  color: var(--someli-primary);
  background: #ffffff;
  transition: background .15s ease, color .15s ease;
}
.md-button:hover { background: var(--someli-primary); color: #ffffff; border-color: var(--someli-primary); }
.md-button--primary {
  background: var(--someli-cta-gradient);
  color: #ffffff;
  border: none;
  box-shadow: 0 4px 10px rgba(243, 81, 84, 0.25);
}
.md-button--primary:hover {
  filter: brightness(1.05);
  color: #ffffff;
  background: var(--someli-cta-gradient);
}

/* Someli footer */
.md-footer { background: transparent; color: var(--someli-text); }
.md-footer-meta { display: none !important; }
.md-footer__inner { display: none !important; }

.someli-footer {
  background: #ffffff;
  border-top: 1px solid var(--someli-border);
  color: var(--someli-text);
  padding: 2.5rem 1.2rem 1.2rem;
  font-family: var(--md-text-font);
}
.someli-footer__inner {
  max-width: 1200px; margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2rem;
}
.someli-footer__brand { display: flex; flex-direction: column; gap: .8rem; }
.someli-footer__brand img, .someli-footer__brand svg { height: 36px; width: auto; }
.someli-footer__tagline {
  font-size: .8rem;
  color: var(--someli-text-muted);
  max-width: 22rem;
  line-height: 1.5;
}
.someli-footer h4 {
  font-family: "Manrope", var(--md-text-font);
  font-weight: 700;
  font-size: .9rem;
  color: var(--someli-heading);
  margin: 0 0 .8rem 0;
}
.someli-footer ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: .45rem;
}
.someli-footer a {
  color: var(--someli-text);
  text-decoration: none;
  font-size: .82rem;
  border: none;
  transition: color .15s ease;
}
.someli-footer a:hover { color: var(--someli-primary); }
.someli-footer__social { display: flex; gap: .8rem; margin-top: .6rem; }
.someli-footer__social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--someli-bg-alt);
  color: var(--someli-heading);
  transition: background .15s ease, color .15s ease;
}
.someli-footer__social a:hover { background: var(--someli-cta-gradient); color: #ffffff; }
.someli-footer__social svg { width: 16px; height: 16px; fill: currentColor; }

.someli-footer__bottom {
  max-width: 1200px;
  margin: 2.5rem auto 0;
  padding-top: 1.2rem;
  border-top: 1px solid var(--someli-border);
  display: flex; flex-wrap: wrap;
  justify-content: space-between; align-items: center;
  font-size: .75rem;
  color: var(--someli-text-muted);
  gap: .6rem;
}
.someli-footer__bottom a {
  color: var(--someli-text-muted);
  font-size: .75rem;
  text-decoration: none; border: none;
}
.someli-footer__bottom a:hover { color: var(--someli-primary); }

@media (max-width: 960px) {
  .someli-footer__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .someli-footer__inner { grid-template-columns: 1fr; }
}

/* Print */
@media print {
  .someli-topbar, .someli-footer, .md-sidebar, .md-header, .md-tabs { display: none !important; }
  .md-typeset { font-size: .7rem; color: #000; }
  a { color: #000 !important; border: none !important; }
}

/* ============================================================================
 * Dark scheme (data-md-color-scheme="slate")
 * In dark mode the page background is charcoal; ensure all our re-skinned
 * surfaces (especially tables) keep adequate contrast.
 * ========================================================================== */
body[data-md-color-scheme="slate"] {
  --someli-text:       whitesmoke;
  --someli-text-muted: #c5c5c5;
  --someli-heading:    #ffffff;
  --someli-bg:         #1f2129;
  --someli-bg-alt:     #2a2c36;
  --someli-border:     #3a3d49;
}

body[data-md-color-scheme="slate"] body,
body[data-md-color-scheme="slate"] .md-typeset {
  color: whitesmoke;
}

body[data-md-color-scheme="slate"] .md-typeset h1,
body[data-md-color-scheme="slate"] .md-typeset h2,
body[data-md-color-scheme="slate"] .md-typeset h3,
body[data-md-color-scheme="slate"] .md-typeset h4,
body[data-md-color-scheme="slate"] .md-typeset h5,
body[data-md-color-scheme="slate"] .md-typeset h6 {
  color: #ffffff;
}

/* Tables — dark surface, whitesmoke text */
body[data-md-color-scheme="slate"] .md-typeset table:not([class]) {
  background-color: #1f2129;
  border-color: #3a3d49;
  color: whitesmoke;
}
body[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
  background-color: #2a2c36;
  color: whitesmoke;
  border-bottom-color: #3a3d49;
}
body[data-md-color-scheme="slate"] .md-typeset table:not([class]) td {
  color: whitesmoke;
  border-top-color: #3a3d49;
}
/* Inline <code> inside dark tables — keep accent text but on a darker chip */
body[data-md-color-scheme="slate"] .md-typeset table:not([class]) td code,
body[data-md-color-scheme="slate"] .md-typeset code {
  background: #2f1e22;
  color: #ffb3b8;
}

/* Sidebar / nav contrast in dark mode */
body[data-md-color-scheme="slate"] .md-nav__title { color: #ffffff; }
body[data-md-color-scheme="slate"] .md-nav__item .md-nav__link { color: #d4d4d4; }
body[data-md-color-scheme="slate"] .md-nav__item .md-nav__link:hover,
body[data-md-color-scheme="slate"] .md-nav__item .md-nav__link--active { color: var(--someli-primary); }

/* Footer + topbar — keep white bg but dark text becomes readable */
body[data-md-color-scheme="slate"] .someli-topbar,
body[data-md-color-scheme="slate"] .someli-footer { background: #1f2129; border-color: #3a3d49; }
body[data-md-color-scheme="slate"] .someli-topbar__nav,
body[data-md-color-scheme="slate"] .someli-topbar__nav a,
body[data-md-color-scheme="slate"] .someli-topbar__login,
body[data-md-color-scheme="slate"] .someli-footer a,
body[data-md-color-scheme="slate"] .someli-footer h4 { color: whitesmoke; }
body[data-md-color-scheme="slate"] .someli-topbar__nav { box-shadow: 0 0 10px rgba(255,255,255,0.08); }
body[data-md-color-scheme="slate"] .someli-footer__social a { background: #2a2c36; color: whitesmoke; }
body[data-md-color-scheme="slate"] .someli-footer__bottom,
body[data-md-color-scheme="slate"] .someli-footer__bottom a { color: #b0b0b0; border-color: #3a3d49; }
