:root { 
  --paper:#F4F3EF; 
  --paper2:#F8F7F2; 
  --ink:#0F0F0F; 
  --grid:#E0DDD5; 
  --accent:#FF4500; 
  --blue:#2563EB; 
  --red:#DC2626; 
}
* { box-sizing:border-box; }
body { margin:0; font-family:'Inter',sans-serif; background:var(--paper); color:var(--ink); overflow-x:hidden; }
.mono { font-family:'JetBrains Mono',monospace; }
.gridbg { background:var(--paper2); background-image:linear-gradient(to right,rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.06) 1px,transparent 1px); background-size:1in 1in; }
.border2 { border:2px solid var(--ink); }
.shadow2 { box-shadow:4px 4px 0 var(--ink); }
.shadow1 { box-shadow:2px 2px 0 var(--ink); }
.btn { border:2px solid var(--ink); background:#fff; font-weight:800; text-transform:uppercase; transition:.1s; }
.btn:hover { background:var(--ink); color:#fff; transform:translate(-1px,-1px); box-shadow:3px 3px 0 var(--ink); }
.btn.active { background:var(--ink); color:#fff; }
.field { width:100%; border:2px solid var(--ink); background:#fff; padding:6px 8px; font-family:'JetBrains Mono',monospace; font-size:12px; }
.field:focus { outline:2px solid var(--accent); outline-offset:1px; }
.check { accent-color:#000; }
.section-title { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; border-bottom:2px solid var(--ink); padding-bottom:2px; }
.mini { font-family:'JetBrains Mono',monospace; font-size:10px; }
.notice { background:#fff6bf; border:2px solid var(--ink); }

@media print {
  body { background:#fff!important; color:#000!important; }
  #app, #modal, #guideModal { display:none!important; }
  #printout { display:block!important; }
  .print-page { page-break-after:always; width:8.5in; height:11in; padding:0.25in; position:relative; background:#fff; box-sizing:border-box; }
  .print-page svg { width:8.0in; height:10.5in; }
}
#printout { display:none; }
