/* Fontags — Inter UI, slate/sky theme (fontrial.com-like), light+dark */
@font-face { font-family: Inter; font-weight: 400; font-style: normal; font-display: block; src: url('../fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: Inter; font-weight: 500; font-style: normal; font-display: block; src: url('../fonts/inter-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: Inter; font-weight: 600; font-style: normal; font-display: block; src: url('../fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: Inter; font-weight: 700; font-style: normal; font-display: block; src: url('../fonts/inter-latin-700-normal.woff2') format('woff2'); }

:root {
  --bg: #ffffff;
  --bg-soft: #f8fafc;
  --fg: #0f172a;
  --muted: #64748b;
  --line: #e2e8f0;
  --accent: #0ea5e9;
  --accent-2: #38bdf8;
  --card: #ffffff;
}
html.dark {
  /* shadcn "Neutral" dark scale */
  --bg: #0a0a0a;          /* neutral-950 */
  --bg-soft: #171717;     /* neutral-900 */
  --fg: #fafafa;          /* neutral-50 */
  --muted: #a3a3a3;       /* neutral-400 */
  --line: #262626;        /* neutral-800 */
  --accent: #e5e5e5;      /* neutral-200 */
  --accent-2: #a3a3a3;
  --card: #0a0a0a;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body { margin: 0; font: 15px/1.6 Inter, system-ui, -apple-system, sans-serif; color: var(--fg); background: var(--bg); }
a { color: inherit; }
button { font: inherit; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 8px; top: 8px; }

/* ---------- header / nav (fontrial-like) ---------- */
.site-header {
  position: sticky; top: 0; z-index: 20;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
html.dark .site-header { background: rgba(2,6,23,.86); }
.topnav {
  max-width: 1200px; margin: 0 auto; padding: 10px 20px;
  display: flex; align-items: center; gap: 14px;
}
.brand {
  font-weight: 700; font-size: 21px; text-decoration: none; line-height: 1;
  color: var(--fg); font-family: Inter, system-ui, sans-serif;
}
.nav-cats { display: flex; align-items: center; gap: 4px; flex: 1; flex-wrap: wrap; }
.nav-cats a {
  text-decoration: none; color: var(--muted); font-size: 13.5px; font-weight: 500;
  padding: 6px 12px; border-radius: 999px; line-height: 1.2;
}
.nav-cats a:hover { color: var(--fg); background: var(--bg-soft); }
.topnav form.search { display: flex; align-items: center; margin: 0; }
.topnav input[type="search"] {
  border: 1px solid var(--line); background: var(--bg-soft); color: var(--fg);
  border-radius: 999px; padding: 7px 16px; font: inherit; font-size: 14px; width: 200px;
  height: 36px; box-sizing: border-box;
}
.topnav input[type="search"]:focus { outline: 2px solid var(--accent); outline-offset: 0; border-color: transparent; }
.theme-toggle {
  border: 1px solid var(--line); background: transparent; color: var(--fg);
  width: 36px; height: 36px; border-radius: 999px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; margin: 0; flex-shrink: 0;
}
.theme-toggle svg { display: block; }
.theme-toggle:hover { border-color: var(--accent); color: var(--accent); }
html.dark .icon-moon { display: none; }
html:not(.dark) .icon-sun { display: none; }
@media (max-width: 760px) {
  .topnav { flex-wrap: wrap; }
  .topnav input[type="search"] { flex: 1; width: auto; }
}

/* ---------- grid / cards ---------- */
.grid {
  display: grid; gap: 20px;
  padding: 24px 20px; max-width: 1200px; margin: 0 auto;
}
.grid.cols-1 { grid-template-columns: repeat(1, 1fr); }
.grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.grid.cols-5 { grid-template-columns: repeat(5, 1fr); }
.grid.cols-6 { grid-template-columns: repeat(6, 1fr); }
.grid.no-round .card, .grid.no-round .card img { border-radius: 0; }
.card { text-decoration: none; display: block; border-radius: 12px; overflow: hidden; background: var(--card); border: 1px solid var(--line); }
.card:hover { border-color: var(--accent); }
.card img { width: 100%; height: auto; display: block; background: var(--bg-soft); }
.card-meta { padding: 10px 12px 12px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.card-title { font-weight: 600; font-size: 14.5px; }
.card-cat { color: var(--muted); font-size: 12px; white-space: nowrap; }

.page-title { max-width: 1200px; margin: 26px auto 0; padding: 0 20px; font-size: 26px; letter-spacing: -.02em; }

.pager { display: flex; gap: 6px; justify-content: center; align-items: center; padding: 14px 0 36px; }
.pager a { border: 1px solid var(--line); padding: 6px 12px; border-radius: 999px; text-decoration: none; font-size: 13.5px; color: var(--muted); }
.pager a:hover { color: var(--fg); }
.pager a.on { background: var(--fg); border-color: var(--fg); color: var(--bg); }
.pager a.pager-nav { font-weight: 500; }
.pager .pager-dots { color: var(--muted); padding: 0 2px; user-select: none; }

/* ---------- single font page ---------- */
.single { max-width: 1200px; margin: 0 auto; padding: 10px 20px 40px; }
/* full-bleed: stretch the carousel to the browser edges */
.carousel {
  position: relative; overflow: hidden;
  width: 100vw; margin-left: calc(50% - 50vw);
}
.carousel-track { display: flex; transition: transform .35s ease; }
.carousel-slide { flex: 0 0 33.333%; box-sizing: border-box; }
.carousel-slide img { width: 100%; height: auto; display: block; background: var(--bg-soft); }
.car-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  border: 1px solid var(--line); background: var(--card);
  color: var(--fg); width: 40px; height: 40px; border-radius: 999px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; margin: 0; z-index: 2;
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
}
.car-arrow svg { display: block; }
.car-arrow:hover { border-color: var(--accent); color: var(--accent); }
.car-arrow[disabled] { opacity: .35; cursor: default; }
.car-prev { left: 20px; } .car-next { right: 20px; }
.car-dots { display: flex; gap: 6px; justify-content: center; padding: 12px 0 0; }
.car-dots button { width: 8px; height: 8px; padding: 0; margin: 0; border-radius: 999px; border: 0; background: var(--line); cursor: pointer; }
.car-dots button.on { background: var(--accent); }

.font-info h1 { margin: 30px 0 4px; font-size: 34px; letter-spacing: -.02em; }
.font-info .cat a { color: var(--accent); text-decoration: none; font-weight: 500; }
.font-info .license { color: var(--muted); font-size: 13px; margin-left: 8px; }
.info-row { display: flex; align-items: flex-start; gap: 32px; margin-top: 8px; }
.info-row .desc { flex: 0 1 80%; min-width: 0; max-width: none; }
.info-row .cta { flex: 0 0 20%; margin-top: 4px; text-align: right; }
.info-row .btn { white-space: nowrap; }
.desc { max-width: 720px; }
.desc p { margin: 8px 0; color: var(--fg); }
.cta { margin-top: 24px; }
.btn {
  display: inline-block; background: var(--fg); color: var(--bg); padding: 12px 36px;
  border-radius: 999px; text-decoration: none; letter-spacing: .08em; font-weight: 600; font-size: 14px;
}
.btn:hover { background: var(--accent); color: var(--bg); }

/* ---------- related fonts ---------- */
.related { margin-top: 48px; }
.related h2 { font-size: 20px; letter-spacing: -.02em; margin: 0 0 14px; }
.single .related .grid { padding: 0; max-width: none; }

/* ---------- articles / misc ---------- */
.article, .notfound { max-width: 760px; margin: 0 auto; padding: 30px 20px; }
.art-list { max-width: 760px; margin: 20px auto; padding: 0 20px; list-style: none; }
.art-list li { padding: 10px 0; border-bottom: 1px solid var(--line); }
.art-list time { color: var(--muted); font-size: 13px; margin-left: 8px; }

.site-footer { border-top: 1px solid var(--line); text-align: center; padding: 20px; color: var(--muted); font-size: 13.5px; margin-top: 40px; }

@media (max-width: 1000px) {
  .grid.cols-4, .grid.cols-5, .grid.cols-6 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .grid.cols-2, .grid.cols-3, .grid.cols-4, .grid.cols-5, .grid.cols-6 { grid-template-columns: repeat(2, 1fr); }
  .carousel-slide { flex-basis: 50%; }
  .info-row { flex-direction: column; gap: 8px; }
  .info-row .desc, .info-row .cta { flex: 1 1 auto; text-align: left; }
}
@media (max-width: 520px) {
  .grid.cols-3, .grid.cols-4, .grid.cols-5, .grid.cols-6 { grid-template-columns: repeat(2, 1fr); }
  .grid.cols-1 { grid-template-columns: 1fr; }
  .carousel-slide { flex-basis: 100%; }
}

/* ---------- admin (keeps working, dark-aware) ---------- */
body.admin, body.admin-login { max-width: 1200px; margin: 0 auto; padding: 10px 20px; }
.admin-nav { display: flex; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.admin-nav a { text-decoration: none; color: var(--muted); }
.admin-nav a.on { font-weight: 600; color: var(--accent); }
.login-box { max-width: 340px; margin: 12vh auto; }
.login-box label, .admin label { display: block; margin: 10px 0; }
.admin input, .admin select, .admin textarea, .login-box input {
  width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px;
  font: inherit; background: var(--bg-soft); color: var(--fg);
}
button, .admin button { margin-top: 10px; padding: 8px 16px; border: 0; background: var(--fg); color: var(--bg); border-radius: 999px; cursor: pointer; font-weight: 500; }
button.danger { background: #b3261e; }
button.danger-sm { margin-top: 0; padding: 3px 10px; font-size: 12.5px; margin-left: 8px; }
.icon-btn { margin: 0 0 0 8px; padding: 5px; line-height: 0; background: transparent; }
.icon-btn svg { display: block; }
.danger-icon { color: #b3261e; }
html.dark .danger-icon { color: #ef4444; }
.danger-icon:hover { color: #fff; background: #b3261e; }
.ok { color: #16a34a; } .error { color: #ef4444; }
table.list { width: 100%; border-collapse: collapse; font-size: 14px; }
table.list th, table.list td { text-align: left; border-bottom: 1px solid var(--line); padding: 6px 4px; }
.filter input { width: 240px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; }
