:root {
  color-scheme: light;
  --paper: #f5f6ef;
  --surface: #fffefa;
  --ink: #22271c;
  --sub: #58614f;
  --line: #dce0d1;
  --primary: #e1f39e;
  --accent: #edf3db;
  --warning: #ffefcc;
  --error: #842528;
  font: 15px/1.5 "DM Sans", system-ui, sans-serif;
  background: var(--paper);
  color: var(--ink);
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
a { color: #43571a; text-underline-offset: .2em; }
h1, h2, h3, p, dl { margin: 0; }
h1, h2, h3 { line-height: 1.18; letter-spacing: -.035em; }
h1 { font-size: clamp(1.95rem, 4vw, 2.8rem); }
h2 { font-size: 1.25rem; }
h3 { font-size: 1.1rem; }
dt, .sub { color: var(--sub); font-size: .88rem; }
dd { margin: .2rem 0 0; font-weight: 700; }
form, .row > * { min-width: 0; }
p, dd, strong { overflow-wrap: anywhere; }
:focus-visible { outline: 2px solid #596d2a; outline-offset: 4px; }
.header { min-height: 64px; padding: 12px clamp(14px, 3vw, 30px); background: #22271c; color: #f5f6ee; display: flex; align-items: center; gap: 13px; }
.brand { text-decoration: none; color: inherit; display: inline-flex; align-items: center; gap: 9px; font-size: 1.25rem; font-weight: 800; white-space: nowrap; }
.brand-mark { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: var(--primary); color: var(--ink); }
.demo { font-size: .78rem; color: #e0e6d2; }
.session { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.ghost { border-color: #5a6450; color: #f5f6ee; background: transparent; }
.ghost:hover { background: #363c2e; }
.shell { display: grid; grid-template-columns: 170px minmax(0,1fr); min-height: calc(100vh - 64px); }
.shell nav { display: flex; flex-direction: column; gap: 5px; border-right: 1px solid var(--line); padding: 24px 12px; }
nav a { display: block; padding: 10px 12px; border-radius: 9px; text-decoration: none; color: var(--sub); font-weight: 650; }
nav a:hover, nav a[aria-current="page"] { background: var(--accent); color: var(--ink); }
main { width: 100%; max-width: 1180px; padding: clamp(14px, 3.2vw, 35px); margin-inline: auto; min-width: 0; }
.guest main { max-width: 510px; margin-block: clamp(20px, 9vh, 100px); }
.guest .page-title { margin-bottom: 18px; }
.page-title p { margin-top: .38rem; color: var(--sub); }
.page-head, main > .page-title { margin-bottom: 20px; }
.row { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.board { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.stats > div, .panel { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
.stats dd { font-size: clamp(1.1rem, 3.1vw, 1.72rem); line-height: 1.2; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.panel, .next { margin-bottom: 14px; }
.panel h2 + p, .panel h3, .record details { margin-top: .45rem; }
.next { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; background: var(--accent); border-left: 3px solid #829744; border-radius: 10px; padding: 12px 15px; }
.overline { color: var(--sub); font-size: .82rem; margin-bottom: 3px; }
.next h3 + p { margin-top: 4px; }
.record { padding: 12px 0; border-bottom: 1px solid var(--line); }
.record:last-child { border-bottom: 0; padding-bottom: 0; }
.record :is(p, form) { margin-top: 4px; }
.badge { display: inline-flex; align-items: center; border-radius: 7px; background: var(--accent); color: #41521d; padding: 3px 8px; font-size: .82rem; font-weight: 650; }
.warning { color: #753f0a; }
.badge.warning { background: var(--warning); }
.plate { font-size: 1.03rem; font-weight: 800; }
.button, button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line); padding: 8px 12px; min-height: 40px; border-radius: 9px; background: var(--surface); color: var(--ink); text-decoration: none; font: inherit; font-weight: 680; cursor: pointer; }
.button:hover, button:hover { background: var(--accent); }
.primary { background: var(--primary); border-color: transparent; }
.primary:hover { background: #d0e988; }
button:disabled { cursor: default; opacity: .5; }
.fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,200px),1fr)); gap: 12px; margin-block: 12px; }
.fields .wide { grid-column: 1/-1; }
.facts { margin-bottom: 0; }
.form-stack { display: grid; gap: 14px; }
label { display: grid; gap: 5px; align-content: start; font-weight: 650; }
input, select, textarea { font: inherit; font-size: 16px; min-height: 43px; width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); padding: 8px 10px; }
input[type="file"] { max-width: 100%; }
textarea { min-height: 70px; resize: vertical; }
details > summary { font-weight: 700; cursor: pointer; }
.links { display: flex; flex-wrap: wrap; gap: 5px 13px; }
.notice { border-radius: 8px; background: var(--accent); padding: 9px 12px; margin-bottom: 12px; }
.notice.error { background: #fbe8e5; color: var(--error); }
:target { scroll-margin-top: 16px; }
@media (max-width: 730px) {
  .shell { display: block; min-height: 0; }
  .shell nav { padding: 5px 10px; flex-direction: row; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--line); }
  nav a { padding: 8px 9px; }
  .board { grid-template-columns: 1fr; }
  .stats { gap: 6px; }
  .stats > div { padding: 8px; }
}
@media (max-width: 370px) { .header { flex-wrap: wrap; gap: 7px; } .demo { font-size: .72rem; } .session { font-size: .83rem; } }
