/* ARKIV 360 client delivery door - self-hosted Inter (brand guide), deep-blue
   headings, ink body, white background, sans-serif everywhere. No third-party
   fonts or CDNs in the client path. */
@font-face {
  font-family: "Inter";
  src: url("/static/inter.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --blue: #1B4F72;
  --ink: #1a1a1a;
  --muted: #64748b;
  --line: #e2e8f0;
}
* { box-sizing: border-box; }
body {
  font-family: "Inter", -apple-system, "Helvetica Neue", Arial, sans-serif;
  color: var(--ink);
  background: #fff;
  margin: 0;
  line-height: 1.55;
}
main { max-width: 46rem; margin: 3rem auto; padding: 0 1.25rem; }
.logo { height: 2.1rem; margin-bottom: 1.5rem; }
h1 { color: var(--blue); font-size: 1.7rem; margin: 0 0 .3rem; }
h2 { color: var(--blue); font-size: 1.15rem; margin: 2.2rem 0 .6rem; }
.sub { color: var(--muted); margin-top: .2rem; }
.foot { color: var(--muted); font-size: .85rem; margin-top: 3rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.error { color: #922B21; background: #fdf3f2; border: 1px solid #f2d7d5; padding: .6rem .9rem; border-radius: 5px; }
input, button {
  font: inherit;
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: .55rem .8rem;
}
input.code {
  width: 100%; letter-spacing: .06em; font-size: 1.05rem;
  border-color: var(--blue); text-align: center; margin: .8rem 0;
}
button {
  background: var(--blue); color: #fff; border: none; cursor: pointer;
  padding: .6rem 1.3rem;
}
button:disabled { background: var(--line); color: var(--muted); cursor: default; }
button.unlockbtn { margin-right: .6rem; }
a { color: var(--blue); }
a.plain { color: var(--muted); text-decoration: none; border-bottom: 1px dotted var(--muted); }
form { margin-top: 1rem; }
ol.rules { padding-left: 1.3rem; }
ol.rules li { margin-bottom: .7rem; }
.panel {
  background: #EBF5FB; border: 1px solid #d4e6f1; border-radius: 5px;
  padding: 1rem 1.3rem; margin-top: 1.8rem;
}
.panel h2 { margin-top: .1rem; }
table { width: 100%; border-collapse: collapse; margin-top: .4rem; }
td { padding: .5rem .6rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
td:first-child { font-weight: 600; }
td:nth-child(2) { color: var(--muted); white-space: nowrap; width: 6rem; }
td:last-child { text-align: right; white-space: nowrap; }

/* ── batch-first layout (Oct 13, 2026): cards at top, lists collapsed,
   status always visible ─────────────────────────────────────────────── */
.batchcard {
  border: 1px solid var(--line); border-left: 4px solid var(--blue);
  border-radius: 5px; padding: 1rem 1.25rem; margin: 1.4rem 0 .6rem;
}
.batchcard h2 { margin: 0 0 .35rem; }
button.primary { background: var(--blue); color: #fff; border-color: var(--blue); }
button.primary:hover { background: #16406c; }
details.parts { margin: 0 0 1.2rem; }
details.parts summary { color: var(--muted); cursor: pointer; padding: .35rem 0; }
details.parts table { margin-top: .5rem; }
#runbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 10;
  background: #fff; border-top: 1px solid var(--line);
  padding: .55rem 1.25rem; margin: 0; box-shadow: 0 -2px 8px rgba(0,0,0,.06);
}
#runbar:not(:has(p:not(:empty))) { display: none; }
#runbar p { margin: 0; }
#wordsline {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  background: #fff; border: 1px solid var(--line); border-radius: 5px;
  padding: 1.2rem 1.5rem; box-shadow: 0 8px 30px rgba(0,0,0,.18);
  z-index: 20; width: min(30rem, 90vw); margin: 0;
}
