.print-toolbar { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 16px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.print-summary { margin:0; color:var(--muted); font-size:.9rem; font-weight:650; overflow-wrap:anywhere; }
.print-toolbar button { flex:0 0 auto; }
.print-toolbar #print-button { margin-left:auto; background:var(--accent); border-color:var(--accent); }
.print-toolbar #print-button:hover { background:var(--accent-hover); }
.print-toolbar #print-button:disabled { background:#ececf1; border-color:#dedee6; color:#767680; }
#choose-image-button { background:var(--accent); border-color:var(--accent); color:white; }
#choose-image-button:hover { background:var(--accent-hover); }
.file-drop::before { content:""; display:block; width:32px; height:32px; margin:0 auto 12px; background:var(--accent); mask:url('/assets/icons/upload.svg') center/contain no-repeat; }
.file-drop { margin-bottom:10px; padding:18px; border:1px dashed var(--control-line); border-radius:12px; background:#fafafd; text-align:center; transition:border-color .15s ease,background .15s ease; }
.file-drop.is-dragging { border-color:var(--accent); background:var(--accent-soft); }
.file-drop strong { display:block; margin-bottom:4px; }
.file-drop .hint { margin-bottom:12px; }
.file-actions,.preset-list { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.next-step { margin:10px 0 0; color:var(--ink); font-size:.86rem; }
.next-step strong { color:var(--positive); }
.settings-group { margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.settings-group>legend { padding-right:10px; }
.settings-group>label,.advanced-settings-body>label { display:flex; align-items:flex-start; font-size:.9rem; line-height:1.45; }
.settings-group>label input,.advanced-settings-body>label input { flex:0 0 auto; margin-top:2px; }
.preset-group { margin:0 0 20px; }
.preset-group>p:first-child { margin-bottom:8px; font-size:.82rem; font-weight:650; }
.preset-group .hint { margin:8px 0 0; }
.size-preset[aria-pressed="true"] { color:var(--accent); background:var(--accent-soft); border-color:var(--accent); }
.size-preset[aria-pressed="true"]:hover { background:var(--accent-soft); }
.advanced-settings { margin-top:18px; }
.advanced-settings-body { padding-top:16px; }
.advanced-settings-body .field { margin-bottom:0; }
.print-guidance { margin-top:20px; padding:18px; background:var(--paper); border-radius:12px; }
.print-guidance h3 { margin-bottom:8px; }
.print-guidance ol { margin:0; padding-left:20px; color:var(--muted); font-size:.82rem; }
.print-guidance li+li { margin-top:6px; }
.print-guidance .hint { margin:12px 0 0; }
.print-relationship { margin-top:18px; border-top:1px solid var(--line); padding-top:16px; }
.print-relationship p { margin:12px 0; font-size:.85rem; }
.print-relationship input { max-width:160px; min-height:44px; }
.print-relationship-diagram { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:start; gap:16px; }
#relationship-paper { display:block; width:100%; max-height:180px; overflow:visible; }
.relationship-paper-edge { fill:var(--surface); stroke:var(--ink); stroke-width:2; }
.relationship-usable { fill:var(--paper); stroke:var(--muted); stroke-width:1; stroke-dasharray:5 3; }
.relationship-card { fill:var(--accent-soft); stroke:var(--print); stroke-width:2; }
.relationship-card-reference { fill:none; stroke:var(--ink); stroke-width:2; stroke-dasharray:3 2; }
.relationship-ruler { display:block; width:100%; max-width:300px; }
.relationship-reference { stroke:var(--muted); stroke-width:4; }
.relationship-scaled-line { stroke:var(--accent); stroke-width:4; }
@media(max-width:400px) { .print-relationship-diagram { grid-template-columns:1fr; } #relationship-paper { width:110px; } }
.preview-panel { overflow:hidden; }
.preview-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.preview-header .eyebrow { margin-bottom:6px; }
.preview-header h2 { margin-bottom:8px; }
.metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:8px 0 18px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.metrics div { min-width:0; padding:12px; background:var(--surface); }
.metrics dt { color:var(--muted); font-size:.72rem; }
.metrics dd { margin:3px 0 0; font-size:.88rem; font-weight:700; overflow-wrap:anywhere; }
.preview-note { margin:0 0 10px; color:var(--muted); font-size:.82rem; }
.preview-area { margin:0 -24px -24px; padding:24px; overflow:auto; background:#e9e9f1; border-top:1px solid var(--line); }
.preview-pages { display:grid; justify-items:center; gap:24px; }
.page-frame { position:relative; width:min(100%,640px); min-width:0; overflow:hidden; background:white; box-shadow:0 8px 22px rgba(51,51,59,.15); }
.print-page { position:absolute; inset:0; overflow:hidden; background:white; }
.print-item { position:absolute; left:var(--x-screen); top:var(--y-screen); width:var(--width-screen); height:var(--height-screen); overflow:hidden; background:white; }
.print-item img { display:block; width:100%; height:100%; user-select:none; }
.has-cut-guides .print-item { outline:1px solid rgba(51,51,59,.72); outline-offset:-1px; }
.page-number { position:absolute; right:8px; bottom:8px; z-index:2; max-width:calc(100% - 16px); padding:3px 7px; color:white; background:rgba(51,51,59,.82); font-size:.65rem; line-height:1.35; }
.calibration-heading,.calibration-instructions { position:absolute; left:9.5%; right:9.5%; color:#111; }
.calibration-heading { top:8%; font:700 clamp(.85rem,2vw,1.4rem)/1.2 Georgia,"Times New Roman",serif; }
.calibration-instructions { top:13%; max-width:72%; font:clamp(.55rem,1.2vw,.9rem)/1.45 system-ui,sans-serif; }
.calibration-line { position:absolute; left:var(--calibration-left-screen); top:var(--calibration-top-screen); width:var(--calibration-width-screen); height:0; border-top:2px solid #111; }
.calibration-line::before,.calibration-line::after { content:""; position:absolute; top:-5px; width:2px; height:10px; background:#111; }
.calibration-line::before { left:0; }
.calibration-line::after { right:0; }
.calibration-line span { position:absolute; top:8px; left:50%; translate:-50% 0; color:#111; font:700 clamp(.55rem,1.25vw,.82rem)/1 system-ui,sans-serif; white-space:nowrap; }

@media(max-width:520px) {
  .print-toolbar { align-items:stretch; flex-direction:column; gap:10px; }
  .print-toolbar button { width:100%; margin-left:0; }
  .print-toolbar #print-button { margin-left:0; }
  .file-actions,.preset-list { flex-direction:column; }
  .field-row,.metrics { grid-template-columns:1fr; }
  .preview-area { margin-right:-18px; margin-left:-18px; padding:18px; }
  .page-frame { box-shadow:0 5px 14px rgba(51,51,59,.13); }
}

@media print {
  :root,body { background:white; }
  body { margin:0; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .screen-only { display:none!important; }
  main.shell,.workspace,.preview-panel,.preview-area,.preview-pages { display:block; width:auto; max-width:none; margin:0; padding:0; border:0; border-radius:0; background:none; overflow:visible; }
  .page-frame { width:var(--paper-width); height:var(--paper-height); margin:0; overflow:hidden; box-shadow:none; break-after:page; page-break-after:always; }
  .page-frame:last-child { break-after:auto; page-break-after:auto; }
  .print-item { left:var(--x-print); top:var(--y-print); width:var(--width-print); height:var(--height-print); }
  .has-cut-guides .print-item { outline:.2mm solid #222; outline-offset:-.2mm; }
  .calibration-heading { top:20mm; left:20mm; right:20mm; font-size:18pt; }
  .calibration-instructions { top:32mm; left:20mm; right:20mm; max-width:150mm; font-size:10pt; }
  .calibration-line { top:55mm; left:20mm; width:50mm; border-top:.3mm solid #111; }
  .calibration-line::before,.calibration-line::after { top:-2mm; width:.3mm; height:4mm; }
  .calibration-line span { top:4mm; font-size:9pt; }
}
