@page { size: A4 portrait; margin: 0; }
:root { --ink:#25332e; --muted:#52625a; --line:#d5dcd4; --accent:#2c5948; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:#edf0eb; color:var(--ink); font:15px/1.5 system-ui,sans-serif; }
a { color:var(--accent); text-underline-offset:.18em; }
:is(a,button,summary,input,select):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
h1, h2, p { margin:0; }
.print-header { background:#fcfcf8; border-bottom:1px solid var(--line); padding:16px max(16px,calc((100% - 1150px)/2)) 20px; }
.print-header h1 { font-size:clamp(1.65rem,4vw,2.45rem); line-height:1.13; margin:4px 0 10px; }
.print-back { display:flex; gap:7px 18px; flex-wrap:wrap; margin-bottom:14px; font-size:.86rem; }
.print-kicker { font-size:.72rem; letter-spacing:.09em; font-weight:740; color:var(--muted); }
.print-format { display:inline-block; padding:3px 7px; margin-right:4px; border-radius:5px; background:#e7ede4; color:var(--accent); font-size:.8rem; font-weight:700; }
.print-workspace { display:grid; grid-template-columns:minmax(240px,295px) minmax(0,1fr); align-items:start; gap:clamp(16px,3vw,30px); max-width:1182px; margin:auto; padding:20px 16px; }
.print-settings { min-width:0; padding:15px; background:#fcfcf8; border:1px solid var(--line); border-radius:10px; }
.print-settings h2 { font-size:1.15rem; margin-bottom:8px; }
.print-settings p { font-size:.88rem; margin:7px 0; }
.print-settings .print-scale { --accent:#78421e; }
.print-primary { display:flex; justify-content:center; align-items:center; gap:9px; width:100%; min-height:46px; margin:12px 0; padding:9px 13px; border:0; border-radius:6px; background:var(--accent); color:white; font:inherit; font-weight:720; cursor:pointer; }
.print-primary:hover { background:#1d4436; }
.print-stock { font-weight:720; }
.print-page-links { display:flex; flex-wrap:wrap; gap:5px; margin:12px 0; }
.print-page-links a { background:#e7ede4; border-radius:4px; padding:4px 7px; font-size:.8rem; text-decoration:none; }
.print-page-links a:hover { text-decoration:underline; }
.print-settings details { margin-top:10px; border-top:1px solid var(--line); padding:8px 0 0; }
.print-settings summary { font-weight:650; cursor:pointer; }
.print-parts ul { margin:6px 0; padding-left:22px; }
.hand-cut-option { display:flex; align-items:start; gap:6px; font-size:.86rem; }
.hand-cut-option input { margin:4px 0 0; }
.print-paper { min-width:0; display:grid; gap:16px; }
.page { width:min(100%,210mm); aspect-ratio:210/297; margin:0 auto; background:white; box-shadow:0 2px 12px #24342b20; scroll-margin-top:12px; }
.page > svg { display:block; width:100%; height:auto; }
#hand-cut { max-width:940px; margin:20px auto; padding:18px; background:white; }
#hand-cut > p { margin:8px 0; }
.measurement-part { border-top:1px solid var(--line); padding:10px 0; }
.measurement-part h3, .measurement-part p { margin:4px 0; }
.measurement-guide { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:14px; align-items:center; margin-top:8px; }
.measurement-drawing { background:#f8f5ed; border-radius:6px; padding:8px; }
.measurement-drawing svg { display:block; width:100%; height:auto; max-height:380px; }
.measurement-tables { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:10px; align-items:start; }
.measurement-tables table { width:100%; border-collapse:collapse; font-size:.86em; }
.measurement-tables caption { text-align:left; font-weight:700; }
.measurement-tables th, .measurement-tables td { text-align:left; padding:3px 4px; border-bottom:1px solid var(--line); }
@media screen and (min-width:801px) {
  .print-settings { position:sticky; top:12px; max-height:calc(100dvh - 24px); overflow:auto; }
}
@media screen and (max-width:800px) {
  .print-workspace { grid-template-columns:minmax(0,1fr); padding:14px; }
  #hand-cut { margin:14px; padding:14px; }
}
@media screen and (max-width:600px) {
  .measurement-guide { grid-template-columns:minmax(0,1fr); gap:2px; }
}
@media print {
  .screen-only { display:none !important; }
  body { background:white; }
  .print-workspace, .print-paper { display:block; width:auto; max-width:none; padding:0; margin:0; }
  .page, .page > svg { width:210mm; height:297mm; margin:0; box-shadow:none; print-color-adjust:exact; }
  .page + .page { break-before:page; }
  #hand-cut { display:none; break-before:page; margin:0; padding:10mm; font-size:10pt; }
  body:has(#print-hand-cut:checked) #hand-cut { display:block; }
  .measurement-tables { grid-template-columns:1fr 1fr; }
  .measurement-card { break-inside:avoid; }
  .measurement-drawing svg { max-height:92mm; }
  .cut-guide-reference:not([open]) { display:none; }
  .measurement-tables th, .measurement-tables td { padding:1px 3px; }
  thead { display:table-header-group; }
}
