html {
  font-size: 14px;
}

:root {
  --ink: #101828;
  --muted: #667085;
  --line: #e4e7ec;
  --blue: #175cd3;
  --blue-dark: #1849a9;
  --canvas: #f6f8fb;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  color: var(--ink);
  background: var(--canvas);
}

.landing, .admin-shell {
  max-width: 1080px;
  margin: 7rem auto 3rem;
}

.landing {
  max-width: 820px;
  margin-left: 0;
}

.eyebrow {
  color: var(--blue);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .14em;
}

.landing h1, .admin-shell h1 {
  max-width: 850px;
  margin: .55rem 0 1rem;
  font-size: clamp(2.5rem, 5vw, 4.7rem);
  font-weight: 650;
  line-height: 1.02;
  letter-spacing: -.045em;
}

.lead {
  max-width: 720px;
  color: var(--muted);
  font-size: 1.15rem;
  line-height: 1.7;
}

.primary-action {
  display: inline-block;
  margin-top: 1.4rem;
  padding: .8rem 1.15rem;
  color: white;
  background: var(--blue);
  border-radius: .35rem;
  text-decoration: none;
  font-weight: 650;
}

.primary-action:hover {
  color: white;
  background: var(--blue-dark);
}

.setup-shell { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(22rem, .8fr); gap:5rem; max-width:980px; margin:5rem auto; align-items:start; }
.setup-intro h1 { margin:.6rem 0 1rem; font-size:clamp(2.4rem, 5vw, 4rem); letter-spacing:-.04em; line-height:1.02; }
.setup-intro p { color:var(--muted); font-size:1.1rem; line-height:1.7; }
.setup-intro ol { margin:2rem 0 0; padding-left:1.2rem; color:var(--muted); line-height:2; }
.setup-form { padding:2rem; background:#fff; border:1px solid var(--line); border-top:4px solid var(--blue); }
.setup-form h2 { margin-top:0; }
.setup-form > p,.setup-form small { color:var(--muted); }
.setup-form label { display:block; margin:1.1rem 0 .35rem; font-weight:650; }
.setup-form .btn { width:100%; margin-top:1.5rem; padding:.75rem; }
@media (max-width: 800px) {
  .setup-shell { grid-template-columns:1fr; gap:2rem; margin:2rem auto; }
}

.admin-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 3.5rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.admin-grid section, .admin-grid > a {
  min-height: 230px;
  padding: 1.5rem;
  border-right: 1px solid var(--line);
}

.admin-grid section:last-child, .admin-grid > a:last-child {
  border-right: 0;
}

.admin-grid > a { color:inherit; text-decoration:none; }
.admin-grid > a:hover { background:#f4f7fc; }

.admin-grid h2 {
  margin-top: 2.4rem;
  font-size: 1.25rem;
}

.admin-grid p, .section-index {
  color: var(--muted);
}

@media (max-width: 760px) {
  .landing, .admin-shell { margin-top: 3.5rem; }
  .admin-grid { grid-template-columns: 1fr; }
  .admin-grid section, .admin-grid > a { border-right: 0; border-bottom: 1px solid var(--line); }
}

.catalog-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin:2.5rem 0 1.5rem; }
.catalog-heading h1 { margin:.2rem 0; font-size:2rem; }
.catalog-heading p { margin:0; color:var(--muted); }
.catalog-layout { display:grid; grid-template-columns:minmax(0, 1.7fr) minmax(19rem, .8fr); gap:1.5rem; align-items:start; }
.catalog-panel { background:#fff; border:1px solid var(--line); padding:1.5rem; }
.catalog-panel h2 { font-size:1.15rem; margin:0 0 1.25rem; }
.catalog-form { border-top:3px solid var(--blue); }
.catalog-form label { display:block; font-weight:600; margin-top:1rem; margin-bottom:.35rem; }
.catalog-form .btn { margin-top:1.25rem; width:100%; }
.form-hint,.empty-state { color:var(--muted); }
.catalogue-table { margin:0; }
.catalogue-table th { color:var(--muted); font-size:.75rem; letter-spacing:.04em; text-transform:uppercase; }
.catalogue-table td { vertical-align:middle; }
.catalogue-table small { display:block; color:var(--muted); margin-top:.2rem; }
.catalogue-table code { color:var(--ink); }
.status { display:inline-block; border-radius:2rem; padding:.2rem .6rem; font-size:.8rem; background:#e9edf4; }
.status-published { background:#d9f4e2; color:#11642d; }
.status-quarantined { background:#fff1cc; color:#6b4b00; }
.status-withdrawn { background:#f4dfe2; color:#7a1f2b; }
.catalog-actions { display:flex; gap:.4rem; white-space:nowrap; }
@media (max-width: 900px) {
  .catalog-layout { grid-template-columns:1fr; }
  .catalog-heading { align-items:flex-start; flex-direction:column; gap:1rem; }
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
