:root {
  color-scheme: light;
  --forest: #173d30;
  --forest-2: #245944;
  --cream: #f7f5ee;
  --paper: #fffefb;
  --ink: #17231d;
  --muted: #657168;
  --line: #e1e5dc;
  --accent: #d5ef9c;
  --danger: #a33a2f;
  --ok: #247747;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--cream); color: var(--ink); font: 15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:1140px; margin:auto; padding:20px 22px; }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--forest); }
.brand-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:var(--forest); color:var(--accent); font-weight:900; letter-spacing:-1px; }
.brand strong,.brand small { display:block; }
.brand strong { font-size:12px; letter-spacing:.08em; }
.brand small { color:var(--muted); font-size:12px; margin-top:2px; }
.environment-label,.status-label { color:var(--forest-2); font-size:10px; font-weight:850; letter-spacing:.14em; }
.environment-label { border:1px solid var(--line); border-radius:999px; background:var(--paper); padding:7px 10px; white-space:nowrap; }
.shell { width:min(1100px,100%); margin:auto; padding:10px 22px 48px; }
.intro { padding:24px 0 24px; max-width:690px; }
.eyebrow { margin:0 0 8px; color:var(--forest-2); font-size:11px; font-weight:850; letter-spacing:.15em; }
h1 { margin:0; color:var(--forest); font-size:clamp(35px,6vw,54px); letter-spacing:-.05em; line-height:1.04; }
h2 { margin:6px 0 10px; font-size:27px; line-height:1.2; letter-spacing:-.035em; }
h3 { margin:4px 0 0; font-size:22px; letter-spacing:-.025em; }
.muted { color:var(--muted); font-size:13px; }
.intro .muted { max-width:600px; font-size:15px; margin:16px 0 0; }
.panel { margin:16px 0; padding:22px; border:1px solid var(--line); border-radius:18px; background:var(--paper); box-shadow:0 10px 26px rgba(23,61,48,.035); }
.auth-panel { max-width:500px; }
.form-stack,.form-grid { display:grid; gap:14px; }
.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin:20px 0; }
label { display:grid; gap:6px; font-size:12px; font-weight:750; }
label small { color:var(--muted); font-size:11px; font-weight:400; }
input,textarea { width:100%; min-width:0; padding:11px 12px; border:1px solid #cfd7cd; border-radius:10px; background:#fff; color:var(--ink); font:inherit; font-size:14px; }
input:focus,textarea:focus { outline:3px solid rgba(36,89,68,.16); border-color:var(--forest-2); }
textarea { resize:vertical; }
.wide { grid-column:1 / -1; }
button { cursor:pointer; border:0; border-radius:10px; padding:11px 15px; font:inherit; font-size:13px; font-weight:800; }
button:disabled { opacity:.55; cursor:wait; }
.primary { background:var(--forest); color:white; }
.primary:hover { background:var(--forest-2); }
.secondary { background:#e9eee5; color:var(--forest); border:1px solid #d6dfd3; }
.form-message { min-height:18px; margin:10px 0 0; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.form-message.error { color:var(--danger); }
.form-message.success { color:var(--ok); }
.warning-panel { border-color:#e7c777; background:#fff7e2; }
.dashboard-heading { display:flex; justify-content:space-between; gap:15px; align-items:center; margin:18px 0 8px; }
.dashboard-heading h2 { margin-bottom:2px; }
.section-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.record-list { display:grid; gap:10px; margin-top:16px; }
.record-card { border:1px solid var(--line); border-radius:13px; padding:14px; background:#fcfcf7; min-width:0; }
.record-title { display:flex; justify-content:space-between; gap:12px; align-items:start; margin-bottom:10px; }
.record-title strong { font-size:15px; overflow-wrap:anywhere; }
.record-title small { display:block; color:var(--muted); font-size:11px; margin-top:2px; overflow-wrap:anywhere; }
.record-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.record-form label { font-size:11px; }
.check-row { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:650; }
.check-row input { width:17px; height:17px; padding:0; }
.record-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.status-pill { font-size:10px; font-weight:800; padding:4px 8px; border-radius:999px; background:#e7eee6; color:var(--forest-2); white-space:nowrap; }
.status-pill.inactive { background:#fbe9e5; color:var(--danger); }
fieldset { border:1px solid var(--line); border-radius:12px; padding:12px; }
legend { font-size:12px; font-weight:750; padding:0 5px; }
.stall-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.stall-choice { display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:9px; padding:8px; font-size:12px; font-weight:600; }
.stall-choice input { width:16px; height:16px; }
.footnote { color:var(--muted); font-size:11px; padding:8px 2px; }
@media (max-width:650px) {
  .topbar { padding:15px 14px; }
  .shell { padding:8px 14px 32px; }
  .panel { padding:16px; border-radius:15px; }
  .form-grid { grid-template-columns:1fr; }
  .wide { grid-column:auto; }
  .record-form { grid-template-columns:1fr; }
  .stall-options { grid-template-columns:1fr; }
  .dashboard-heading { align-items:flex-start; }
  .environment-label { font-size:9px; padding:6px 8px; }
}
