.cut { padding-bottom: 2rem; }
.cut-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.cut .panel { min-width: 0; padding: 1rem; }
.cut fieldset { min-width: 0; margin: 1.2rem 0; padding: .8rem; border: 1px solid var(--border, #d8dee8); border-radius: .7rem; }
.cut legend { font-weight: 700; padding: 0 .25rem; }
.cut-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.cut-field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.cut input:not([type=checkbox]), .cut select, .cut textarea { width: 100%; min-width: 0; max-width: 100%; min-height: 44px; font-size: 1rem; }
.cut textarea { min-height: 100px; }
.cut-check { flex-direction: row; align-items: center; min-height: 44px; cursor: pointer; }
.cut-check input { width: 24px; height: 24px; flex-shrink: 0; }
.cut-row { border-bottom: 1px solid var(--border, #d8dee8); padding: 1rem 0; }
.cut-row:first-of-type { padding-top: 0; }
.cut-actions { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; margin: .8rem 0; }
.cut .btn { min-height: 44px; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.cut p, .cut li, .cut dd, .cut dt { overflow-wrap: anywhere; }
.cut details { margin: 1rem 0; }
.cut summary { cursor: pointer; min-height: 44px; padding: .7rem 0; font-weight: 600; }
.cut-stats { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .4rem 1rem; font-variant-numeric: tabular-nums; }
.cut-stats dd { margin: 0; text-align: right; font-weight: 700; }
.cut-viewport { background: var(--surface, #fff); overflow: hidden; border: 1px solid var(--border, #d8dee8); border-radius: .6rem; }
.cut-viewport svg { display: block; width: 100%; height: auto; min-height: 180px; max-height: 65vh; max-height: 65dvh; touch-action: none; }
.cut-viewport:fullscreen { display: grid; align-items: center; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.cut-viewport:fullscreen svg { max-height: 95vh; max-height: 95dvh; }
.cut svg [role=button]:focus-visible { outline: 3px solid var(--primary, #2563eb); outline-offset: -3px; }
.cut-dialog { width: min(800px, calc(100% - 24px)); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow: auto; padding: 1rem; border: 1px solid var(--border, #d8dee8); border-radius: 1rem; }
.cut-dialog::backdrop { background: #0f172a99; }
.cut-dialog svg { width: 100%; height: auto; max-height: 40vh; max-height: 40dvh; }
.cut-workshop { font-size: 1.2rem; }
.cut-workshop .btn { min-height: 52px; }
.cut .hint { font-size: .95rem; }
.cut-print { display: none; }
.cut-guide-table { max-width: 100%; overflow-x: auto; }
@media (min-width: 1100px) { .cut-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } .cut-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 359px) { .cut-fields { grid-template-columns: minmax(0, 1fr); } }
@media print {
    body:has([data-cut]) .site-header, body:has([data-cut]) .site-footer, body:has([data-cut]) .page-head, body:has([data-cut]) .guide, body:has([data-cut]) .ad-slot { display: none !important; }
    .cut > :not(.cut-print) { display: none !important; }
    .cut-print { display: block; }
    .cut-print section { break-after: page; }
    .cut-print svg { width: 100%; height: auto; max-height: 85vh; }
    .cut-print p { font-size: 10pt; break-inside: avoid; }
}
