/*
 * Mirrors the public Ventry layout: one brand colour feeds the whole palette.
 * `--brand` is the Ilustrator Festiwal colour from tickets.ilustratorfestiwal.pl.
 */
:root {
  --brand: oklch(93.1% 0.1966 103.97);

  --surface: oklch(from var(--brand) 0.960 0.004 h);
  --surface-raised: oklch(from var(--brand) 1.000 0 h);
  --surface-sunken: oklch(from var(--brand) 0.905 0.005 h);
  --content: oklch(from var(--brand) 0.240 0.012 h);
  --content-muted: oklch(from var(--brand) 0.500 0.010 h);
  --line: oklch(from var(--brand) 0.922 0.005 h);
  --line-strong: oklch(from var(--brand) 0.620 0.008 h);

  --accent: var(--brand);
  --accent-hover: oklch(from var(--accent) calc(l * 0.94) c h);
  --accent-subtle: oklch(from var(--brand) 0.955 min(c, 0.04) h);
  --accent-text: oklch(from var(--brand) min(l, 0.48) c h);
  --accent-line: oklch(from var(--brand) min(l, 0.62) c h);
  --ring: var(--accent-line);
  --on-accent: oklch(from var(--accent) calc(1 - round(up, l)) 0 h);

  --danger: oklch(0.577 0.212 25);
  --success: oklch(0.560 0.140 152);
  --warning: oklch(0.700 0.160 70);
  --on-status: oklch(0.99 0 0);
}

@supports (color: contrast-color(red max)) {
  :root { --on-accent: contrast-color(var(--accent) max); }
}

/* Split into latin and latin-ext: Polish glyphs live in ext. */
@font-face {
  font-family: 'Geist Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/geist-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Geist Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/geist-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Geist Mono Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/geist-mono-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Geist Mono Variable';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/geist-mono-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  font-family: 'Geist Variable', ui-sans-serif, system-ui, sans-serif;
  background: var(--surface);
  color: var(--content);
  -webkit-font-smoothing: antialiased;
}

.column { width: 100%; max-width: 64rem; margin: 0 auto; padding-inline: 1.5rem; }

.topbar {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  min-height: 4rem;
  padding: .75rem 1.25rem;
  border-radius: .5rem;
  background: var(--accent);
  color: var(--on-accent);
}
.topbar img { display: block; height: 24px; width: auto; }

.card {
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: .5rem;
  padding: 1.5rem;
}

.field { display: flex; flex-direction: column; gap: .375rem; font-size: .875rem; font-weight: 500; }

.input {
  display: block;
  width: 100%;
  padding: .625rem .75rem;
  font: inherit;
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--content);
  background: var(--surface-raised);
  border: 1px solid var(--line);
  border-radius: .375rem;
  outline: none;
  transition: box-shadow .15s;
}
.input::placeholder { color: var(--content-muted); }
.input:focus { box-shadow: 0 0 0 1px var(--ring), 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .625rem 1.25rem;
  font: inherit;
  font-size: .875rem;
  font-weight: 500;
  border: 0;
  border-radius: .375rem;
  box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  cursor: pointer;
  transition: background-color .15s;
}
.btn-accent { background: var(--accent); color: var(--on-accent); }
.btn-accent:hover { background: var(--accent-hover); }
.btn-plain { background: var(--surface-raised); color: var(--content); border: 1px solid var(--line-strong); }
.btn-plain:hover { background: var(--surface); }
.btn:disabled { opacity: .8; cursor: progress; }

.footer {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .375rem;
  margin-top: 2rem;
  padding: 2rem 0;
  border-top: 1px solid var(--line);
  font-size: .875rem;
  color: var(--content-muted);
}
.footer a { color: inherit; font-weight: 500; text-decoration: none; transition: color .15s; }
.footer a:hover { color: var(--content); }
.footer svg { width: .875rem; height: .875rem; fill: oklch(63.7% 0.237 25.331); }

[hidden] { display: none !important; }
