/* ZippChat site theme — the app's palette (Client-Flutter
   lib/ui/theme/app_theme.dart): warm graphite dark, warm paper light, one
   flat amber accent used for state, IBM Plex. No gradients, no glow. */

@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/IBMPlexSans-Regular.ttf") format("truetype"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-style: italic; font-display: swap; src: url("fonts/IBMPlexSans-Italic.ttf") format("truetype"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-style: normal; font-display: swap; src: url("fonts/IBMPlexSans-Medium.ttf") format("truetype"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600 700; font-style: normal; font-display: swap; src: url("fonts/IBMPlexSans-SemiBold.ttf") format("truetype"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-style: normal; font-display: swap; src: url("fonts/IBMPlexMono-Regular.ttf") format("truetype"); }

:root {
  --md-text-font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --md-code-font-family: "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;
  --md-text-font: "IBM Plex Sans";
  --md-code-font: "IBM Plex Mono";
}
body, input { font-family: var(--md-text-font-family); }
code, kbd, pre { font-family: var(--md-code-font-family); }

[data-md-color-scheme="default"] {
  --zipp-bg: #F8F7F3;
  --zipp-surface: #FFFFFF;
  --zipp-sidebar: #EEECE6;
  --zipp-high: #E3E0D8;
  --zipp-border: #DEDAD1;
  --zipp-border-strong: #C9C4B9;
  --zipp-text: #1E1C19;
  --zipp-text-2: #55514A;
  --zipp-muted: #7A756C;
  --zipp-accent: #B8620F;
  --zipp-accent-hover: #A05409;
  --zipp-on-accent: #FFFBF5;
  --zipp-ok: #2E8F55;
  --zipp-danger: #C0392F;
  --zipp-info: #2F6DB5;
}
[data-md-color-scheme="slate"] {
  --zipp-bg: #1C1C1F;
  --zipp-surface: #242428;
  --zipp-sidebar: #17171A;
  --zipp-high: #2E2E33;
  --zipp-border: #2B2B30;
  --zipp-border-strong: #3C3C42;
  --zipp-text: #ECEAE5;
  --zipp-text-2: #ADA9A1;
  --zipp-muted: #7D7972;
  --zipp-accent: #E99A3C;
  --zipp-accent-hover: #F2AC57;
  --zipp-on-accent: #1C1206;
  --zipp-ok: #4DB879;
  --zipp-danger: #E5584F;
  --zipp-info: #6A9FE0;
}

[data-md-color-scheme] {
  --md-default-bg-color: var(--zipp-bg);
  --md-default-fg-color: var(--zipp-text);
  --md-default-fg-color--light: var(--zipp-text-2);
  --md-default-fg-color--lighter: var(--zipp-muted);
  --md-default-fg-color--lightest: var(--zipp-border);
  --md-primary-fg-color: var(--zipp-sidebar);
  --md-primary-fg-color--light: var(--zipp-sidebar);
  --md-primary-fg-color--dark: var(--zipp-sidebar);
  --md-primary-bg-color: var(--zipp-text);
  --md-primary-bg-color--light: var(--zipp-text-2);
  --md-accent-fg-color: var(--zipp-accent-hover);
  --md-accent-fg-color--transparent: color-mix(in srgb, var(--zipp-accent) 12%, transparent);
  --md-typeset-color: var(--zipp-text);
  --md-typeset-a-color: var(--zipp-accent);
  --md-code-bg-color: var(--zipp-surface);
  --md-code-fg-color: var(--zipp-text);
  --md-footer-bg-color: var(--zipp-sidebar);
  --md-footer-bg-color--dark: var(--zipp-sidebar);
  --md-footer-fg-color: var(--zipp-text);
  --md-footer-fg-color--light: var(--zipp-text-2);
  --md-footer-fg-color--lighter: var(--zipp-muted);
  --md-shadow-z1: none;
  --md-shadow-z2: none;
  --md-shadow-z3: none;
  --md-admonition-bg-color: var(--zipp-surface);
}

.md-header, .md-tabs { background-color: var(--zipp-sidebar); color: var(--zipp-text); box-shadow: none; border-bottom: 1px solid var(--zipp-border); }
.md-tabs__link { opacity: 1; color: var(--zipp-text-2); }
.md-tabs__item--active .md-tabs__link { color: var(--zipp-accent); }
.md-search__form { background-color: var(--zipp-high); }
.md-typeset code { border: 1px solid var(--zipp-border); border-radius: 4px; }
.md-typeset pre > code { border: 0; }
.md-typeset table:not([class]) { border: 1px solid var(--zipp-border); border-radius: 6px; font-size: .72rem; }
.md-typeset table:not([class]) th { background: var(--zipp-surface); }

/* Admonitions: flat, a coloured left rule, no tinted header. */
.md-typeset .admonition, .md-typeset details {
  border: 1px solid var(--zipp-border); border-left: 3px solid var(--zipp-border-strong);
  border-radius: 6px; box-shadow: none; font-size: .74rem;
}
.md-typeset .admonition-title, .md-typeset summary { background: transparent !important; font-weight: 600; }
.md-typeset .admonition.warning, .md-typeset .admonition.danger { border-left-color: var(--zipp-accent); }
.md-typeset .admonition.danger { border-left-color: var(--zipp-danger); }
.md-typeset .admonition.success { border-left-color: var(--zipp-ok); }
.md-typeset .admonition.info, .md-typeset .admonition.note { border-left-color: var(--zipp-info); }
.md-typeset .warning > .admonition-title::before { background-color: var(--zipp-accent); }

/* "source" — the provenance banner build.py adds to every rendered spec. */
:root { --md-admonition-icon--source: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6m4 18H6V4h7v5h5v11Z"/></svg>'); }
.md-typeset .admonition.source { border-left-color: var(--zipp-muted); }
.md-typeset .source > .admonition-title::before {
  background-color: var(--zipp-muted);
  -webkit-mask-image: var(--md-admonition-icon--source); mask-image: var(--md-admonition-icon--source);
}

/* ── Home ─────────────────────────────────────────────────────────────── */
.zipp-hero { max-width: 46rem; margin: 2.5rem 0 2rem; }
.zipp-hero h1 { font-size: 2.1rem; font-weight: 600; line-height: 1.15; margin: 0 0 .8rem; color: var(--zipp-text); letter-spacing: -.01em; }
.zipp-hero p.lede { font-size: 1rem; color: var(--zipp-text-2); margin: 0 0 1.4rem; }
.zipp-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.md-typeset .zipp-btn {
  display: inline-block; padding: .55rem 1rem; border-radius: 6px; font-weight: 600; font-size: .8rem;
  border: 1px solid var(--zipp-border-strong); color: var(--zipp-text); background: var(--zipp-surface);
}
.md-typeset .zipp-btn:hover { border-color: var(--zipp-accent); color: var(--zipp-text); }
.md-typeset .zipp-btn--primary { background: var(--zipp-accent); border-color: var(--zipp-accent); color: var(--zipp-on-accent); }
.md-typeset .zipp-btn--primary:hover { background: var(--zipp-accent-hover); border-color: var(--zipp-accent-hover); color: var(--zipp-on-accent); }
.zipp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .8rem; margin: 1.5rem 0; }
.zipp-card { border: 1px solid var(--zipp-border); border-radius: 8px; padding: .9rem 1rem; background: var(--zipp-surface); }
.md-typeset .zipp-card h3 { margin: 0 0 .35rem; font-size: .85rem; font-weight: 600; }
.md-typeset .zipp-card p { margin: 0; font-size: .75rem; color: var(--zipp-text-2); }
.zipp-tag { font-size: .65rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--zipp-accent); }
.md-typeset .zipp-small { font-size: .7rem; color: var(--zipp-muted); }
.md-typeset .zipp-small code { word-break: break-all; }
