:root { --navy:#3B4764; --line:#c9cfda; }
* { box-sizing:border-box; }
body { font-family:"Segoe UI", Arial, sans-serif; margin:0; color:#1c2230; background:#eef1f5; font-size:14px; }
header.topbar { background:var(--navy); color:#fff; }
header .bar { display:flex; align-items:center; justify-content:space-between; padding:8px 16px; flex-wrap:wrap; gap:8px; }
.brand { display:flex; align-items:center; gap:12px; color:#fff; text-decoration:none; font-weight:600; font-size:18px; }
.brand img { height:34px; }
nav { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
nav a { color:#dfe4ee; text-decoration:none; }
nav a:hover { color:#fff; text-decoration:underline; }
nav .who { color:#aab3c5; font-size:13px; }
main { max-width:1100px; margin:16px auto; padding:0 12px; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px; margin-bottom:16px; }
h1 { font-size:20px; color:var(--navy); margin:0 0 12px; }
h2 { font-size:13px; color:var(--navy); text-transform:uppercase; letter-spacing:.04em; margin:10px 0 6px; }
label { display:block; margin:6px 0; font-size:12px; color:#3a4354; }
label.chk { margin:3px 0; font-size:13px; color:#1c2230; }
input, select, textarea { font:inherit; padding:5px 7px; border:1px solid var(--line); border-radius:4px; width:100%; }
input[type=checkbox], input[type=radio] { width:auto; }
textarea { resize:vertical; }
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:4px 16px; }
.grid3 .wide, .wide { grid-column:1 / -1; }
.row { display:flex; align-items:center; }
.row.spread { justify-content:space-between; }
.row.gap { gap:12px; flex-wrap:wrap; }
.grow { flex:1; min-width:260px; }
fieldset { border:1px solid var(--line); border-radius:6px; }
fieldset legend { font-size:12px; color:#3a4354; padding:0 6px; }
.row3 { display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:20px; }
.btn { background:var(--navy); color:#fff; border:0; border-radius:4px; padding:8px 14px; cursor:pointer; font:inherit; text-decoration:none; display:inline-block; }
.btn:hover { background:#2c3650; }
.btn.ghost { background:#fff; color:var(--navy); border:1px solid var(--navy); }
.btn.danger { color:#a12; border-color:#a12; }
.inline { display:inline-flex; gap:6px; align-items:center; }
table.grid { width:100%; border-collapse:collapse; margin-top:8px; }
table.grid th, table.grid td { border:1px solid var(--line); padding:6px; text-align:left; font-size:13px; vertical-align:top; }
table.grid th { background:var(--navy); color:#fff; }
table.grid input, table.grid select, table.grid textarea { margin:0; }
.clip { max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tag { padding:2px 8px; border-radius:10px; font-size:11px; background:#8a93a6; color:#fff; }
.tag.submitted { background:#1a7f37; }
.tag.draft { background:#b07d1a; }
.flashes div { background:#fdf3d7; border:1px solid #e3c668; padding:8px 12px; border-radius:6px; margin-bottom:10px; }
.err { background:#fde1e1; border:1px solid #c33; color:#911; padding:8px 12px; border-radius:6px; margin-bottom:10px; }
.muted { color:#77809a; font-size:12px; }
.auth { max-width:380px; margin:60px auto; }
.toolbar { display:flex; gap:10px; align-items:center; margin-bottom:12px; flex-wrap:wrap; }
.toolbar input[type=email] { width:240px; }

/* printable sheet */
.sheet { background:#fff; border:1px solid var(--line); border-radius:8px; padding:24px; }
.sheet .head { display:flex; align-items:center; gap:16px; border-bottom:3px solid var(--navy); padding-bottom:10px; margin-bottom:12px; }
.sheet .head img { height:44px; }
.sheet .head h1 { margin:0; }
.sheet .sub { color:#556; font-size:12px; }
.sheet .formno { margin-left:auto; font-size:11px; text-align:right; }
table.kv { width:100%; border-collapse:collapse; margin:8px 0; }
table.kv th, table.kv td { border:1px solid var(--line); padding:5px 7px; font-size:12px; text-align:left; vertical-align:top; }
table.kv th { background:#e8ebf1; color:var(--navy); white-space:nowrap; }
.cols3 { display:grid; grid-template-columns:1fr 1.1fr 1fr; gap:18px; }
ul.chk { list-style:none; padding:0; margin:4px 0; columns:1; }
ul.chk li { padding:2px 0 2px 20px; position:relative; font-size:12.5px; }
ul.chk li::before { content:"\2610"; position:absolute; left:0; font-size:14px; }
ul.chk li.on::before { content:"\2612"; color:var(--navy); font-weight:bold; }
.star { font-size:12px; }
.stop { color:#a12; font-weight:600; }
.pagebreak { display:none; }

@media print {
  @page { size:letter landscape; margin:10mm; }
  body { background:#fff; }
  .no-print { display:none !important; }
  main { max-width:none; margin:0; padding:0; }
  .sheet { border:0; padding:0; }
  .pagebreak { page-break-before:always; display:block; }
  table.grid th, table.kv th { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
