.beam-entry { padding:1.5rem; margin-bottom:1.5rem; border:1px solid var(--accent); border-radius:12px; background:#eef8f2; display:grid; gap:.65rem; }
.beam-entry .button { width:fit-content; text-decoration:none; }
.beam-page main { max-width:1400px; }
.beam-intro { display:flex; justify-content:space-between; gap:2rem; align-items:center; padding:2.5rem 0 1.5rem; }
.beam-intro h1 { font-family:var(--font-ui); text-transform:none; max-width:none; font-size:clamp(2rem,4vw,3.5rem); letter-spacing:-.045em; line-height:1.08; margin:.4rem 0 .8rem; }
.beam-intro p:not(.kicker) { color:var(--muted); max-width:55ch; }
.draft-badge { border:1px solid #94744c; color:#785223; padding:.5rem .75rem; border-radius:6px; font:700 .8rem var(--font-mono); white-space:nowrap; }
.safety-banner { padding:1rem 1.25rem; border-left:4px solid #b5521f; background:#fff4e8; color:#593818; margin-bottom:1.5rem; font-size:.95rem; }
.beam-card { background:#fff; border:1px solid var(--steel); border-radius:12px; padding:1.5rem; margin-bottom:1.5rem; box-shadow:0 8px 24px #15281a05; }
.beam-section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:1.25rem; }
.beam-section-heading h2 { font-size:clamp(1.4rem,3vw,1.8rem); margin-top:.4rem; line-height:1.2; }
.beam-project-row { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.beam-page label { display:grid; gap:.4rem; font-size:.925rem; font-weight:600; min-width:0; }
.beam-page input,.beam-page select,.beam-page textarea { font-size:1rem; min-width:0; }
.beam-help,.beam-source { color:var(--muted); font-size:.9rem; line-height:1.55; margin:.8rem 0; }
.beam-help b { color:var(--text); }
.beam-details { border-top:1px solid #dfe5df; padding-top:1rem; margin-top:1rem; }
.beam-details summary { font-size:1rem; font-weight:650; cursor:pointer; padding:.3rem 0; min-height:2.75rem; }
.beam-details .toolbar { justify-content:flex-start; margin:.75rem 0; }
.beam-details li { margin-bottom:.65rem; font-size:.9rem; }
.beam-file-label { position:relative; overflow:hidden; }
.beam-file-label input { opacity:0; position:absolute; inset:0; width:100%; cursor:pointer; }
.beam-file-label:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.face-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:.6rem; margin:1.5rem 0; }
.face-tabs button { text-align:left; background:#f3f5f2; border:1px solid #c7d1ca; border-radius:8px; padding:.8rem; color:var(--text); transition:background .18s, border-color .18s, transform .18s; }
.face-tabs button b,.face-tabs button small { display:block; }
.face-tabs button small { margin-top:.35rem; font-size:.8rem; }
.face-tabs button[aria-current="step"] { background:#006c49; border-color:#006c49; color:#fff; }
.face-tabs button:hover { transform:translateY(-2px); border-color:var(--accent); }
.face-editor-heading { display:flex; gap:1rem; align-items:end; justify-content:space-between; flex-wrap:wrap; margin-bottom:1rem; }
.face-editor-heading label { max-width:16rem; }
.beam-run-input { display:grid; grid-template-columns:2rem minmax(8rem,1.4fr) minmax(8rem,1fr) minmax(8rem,1fr) 5rem 2.75rem; gap:.7rem; align-items:start; padding:1rem 0; border-top:1px solid #e0e5df; }
.beam-run-input > strong { align-self:center; color:var(--accent); font:700 1.1rem var(--font-mono); }
.beam-run-input .remove-run { margin-top:1.7rem; border:1px solid #c4cbc5; background:white; border-radius:6px; }
.beam-run-input small { font-size:.8rem; font-weight:400; color:var(--muted); min-height:1.2rem; }
.beam-run-input small.invalid { color:#a22b22; }
.face-editor-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; margin-top:.8rem; }
.assumption-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.assumption-grid small { font-weight:400; color:var(--muted); font-size:.85rem; }
.beam-rule-summary { margin-top:1rem; padding:.85rem 1rem; background:#edf5ef; font-size:.925rem; }
.beam-stock-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; }
.beam-stock-item { border:1px solid #d4ddd5; border-radius:8px; padding:.8rem; }
.beam-stock-item > label:first-child { display:flex; align-items:center; gap:.65rem; }
.beam-stock-item input[type=checkbox] { width:1.2rem; min-height:1.2rem; accent-color:var(--accent); }
.beam-stock-item small { display:block; font-size:.8rem; color:var(--muted); margin:.2rem 0 .6rem; }
.beam-stock-item > label:last-child { font-size:.8rem; }
.beam-stock-item:has(input[type=checkbox]:not(:checked)) { background:#f4f5f3; }
.custom-stock { display:grid; grid-template-columns:1fr 1fr 1fr auto; align-items:end; gap:.75rem; }
.beam-notes { margin-top:1.5rem; }
.beam-notes textarea { resize:vertical; border:1px solid var(--steel); border-radius:8px; padding:.75rem; font:inherit; font-weight:400; }
.beam-submit { display:flex; gap:1.5rem; align-items:center; justify-content:space-between; margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--steel); }
.beam-submit p { max-width:60ch; font-size:.9rem; }
.beam-page .button-primary { background:linear-gradient(115deg,#006343,#14845d); transition:filter .2s,transform .2s; }
.beam-page .button-primary:hover:not(:disabled) { filter:brightness(1.12); transform:translateY(-1px); }
.beam-stats { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #ccd8cf; border-radius:8px; overflow:hidden; margin:1rem 0; }
.beam-stats div { padding:1rem; border-right:1px solid #ccd8cf; background:#f3f8f4; }
.beam-stats div:last-child { border:0; }
.beam-stats strong { display:block; font-size:2rem; letter-spacing:-.045em; }
.beam-stats span { font-size:.85rem; color:var(--muted); }
.beam-table-wrap { overflow:auto; border:1px solid var(--steel); border-radius:8px; margin:1rem 0; }
.beam-page table { width:100%; border-collapse:collapse; font-size:.875rem; }
.beam-page th { text-align:left; white-space:nowrap; background:#f0f4ef; }
.beam-page td,.beam-page th { padding:.7rem; border-bottom:1px solid #e0e6e0; }
.beam-page tr:last-child td { border-bottom:0; }
.beam-visual-controls { display:flex; flex-wrap:wrap; align-items:end; gap:1rem; margin:1.25rem 0; }
.beam-visual-controls label { flex:1 1 14rem; }
.beam-visual-controls .toolbar { flex-wrap:nowrap; }
.beam-visual-controls button[aria-pressed=true] { color:white; background:#006c49; }
.beam-drawing { background:#15271f; border-radius:10px; padding:.5rem; overflow-x:auto; }
.beam-drawing svg { display:block; width:100%; height:auto; max-height:480px; }
.beam-end-facts { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem; }
.beam-end-facts div { background:#f5f6f3; padding:1rem; border-radius:8px; }
.beam-end-facts b { display:block; margin-bottom:.3rem; }
.beam-review-warning { padding:1rem; border-left:3px solid #b5521f; background:#fff5ed; margin:1rem 0; font-size:.9rem; }
.beam-errors { padding:1.5rem; border:1px solid #cb744c; border-radius:8px; background:#fff6ee; }
.beam-errors li { margin-bottom:1rem; }
#beam-print-content { display:none; }
.beam-page [hidden] { display:none !important; }
@media(max-width:1000px) { .beam-stock-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .beam-run-input { grid-template-columns:2rem minmax(7rem,1fr) minmax(6rem,1fr) minmax(6rem,1fr) 4rem 2.75rem; } }
@media(max-width:720px) {
  .beam-page main { padding-inline:.75rem; }
  .beam-card { padding:1rem; }
  .beam-intro { display:block; padding:1.5rem 0; }
  .draft-badge { display:inline-block; margin-top:1rem; }
  .beam-project-row,.assumption-grid { grid-template-columns:1fr; gap:1rem; }
  .face-tabs { grid-template-columns:1fr 1fr; }
  .beam-run-input { grid-template-columns:1.5rem minmax(0,1fr) minmax(0,1fr) 2.75rem; }
  .beam-run-input .run-length { grid-column:2/4; }
  .beam-run-input .run-start { grid-column:2; }
  .beam-run-input .run-end { grid-column:3; }
  .beam-run-input .run-rows { grid-column:2/4; }
  .beam-run-input .remove-run { grid-column:4; grid-row:1; }
  .beam-run-input > strong { grid-row:1; }
  .beam-stock-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .custom-stock { grid-template-columns:1fr 1fr; }
  .beam-submit { align-items:stretch; flex-direction:column; gap:1rem; }
  .beam-stats { grid-template-columns:1fr 1fr; }
  .beam-stats div { border-bottom:1px solid #ccd8cf; }
  .beam-end-facts { grid-template-columns:1fr; gap:.5rem; }
  .beam-drawing svg { min-width:680px; }
  .beam-page .site-header { grid-template-columns:1fr auto; }
  .beam-page .header-mode { display:none; }
  .beam-page .header-notice { display:block; font-size:.8rem; text-align:right; }
}
@media print {
  @page { size:letter; margin:.4in; }
  .beam-page > *:not(#beam-print-content) { display:none !important; }
  .beam-page #beam-print-content { display:block !important; font:9pt Arial,sans-serif; color:#111; }
  #beam-print-content h1 { font:700 19pt Arial,sans-serif; text-transform:none; letter-spacing:0; max-width:none; margin-bottom:8pt; }
  #beam-print-content p { margin:5pt 0; }
  #beam-print-content table { font-size:8pt; width:100%; margin:8pt 0; }
  #beam-print-content th,#beam-print-content td { padding:4pt; }
  #beam-print-content tr { break-inside:avoid; }
}
