.cutting-list-shell {
    --sidebar-width: 800px;
    flex: 1 1 auto;
    grid-template-columns: var(--sidebar-width) 10px minmax(0, 1fr);
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 100%;
}

body.fabrication-3d-page .cutting-list-shell {
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 100%;
}

body.fabrication-3d-page--embed .cutting-list-shell {
    --sidebar-width: clamp(440px, 32vw, 540px);
}

.cutting-list-sidebar {
    min-width: 0;
}

.cutting-list-sidebar-resizer {
    width: 10px;
}

.cutting-list-sidebar .sidebar-header-3d p {
    max-width: 42ch;
}

.cutting-list-file-actions {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.cutting-list-actions {
    grid-template-columns: 1fr;
}

.stock-length-toolbar {
    display: grid;
    grid-template-columns: max-content auto;
    gap: 10px;
    align-items: end;
    justify-content: start;
}

.stock-length-add {
    display: grid;
    gap: 6px;
    width: 170px;
}

.stock-length-add span {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-soft);
}

.stock-length-add input {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(122, 146, 170, 0.28);
    background:
        linear-gradient(180deg, rgba(35, 52, 68, 0.88), rgba(24, 36, 47, 0.94)),
        rgba(7, 12, 17, 0.42);
    color: #eef6ff;
    font-size: 14px;
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.stock-length-add input:focus {
    outline: none;
    border-color: rgba(126, 197, 255, 0.72);
    box-shadow: 0 0 0 3px rgba(70, 151, 224, 0.22);
}

.stock-length-add-btn {
    align-self: end;
    min-height: 42px;
}

.stock-length-tag {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 2px 6px;
    border-radius: 999px;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #d8ecff;
    background: rgba(121, 183, 255, 0.14);
    border: 1px solid rgba(121, 183, 255, 0.22);
}

.table-shell {
    overflow-x: auto;
    border: 1px solid rgba(126, 154, 184, 0.16);
    border-radius: 14px;
    background: rgba(8, 12, 17, 0.25);
}

.compact-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.compact-table--cuts {
    table-layout: fixed;
}

.compact-table--cuts .cut-col-view {
    width: 78px;
}

.compact-table--cuts .cut-col-qty {
    width: 58px;
}

.compact-table--cuts .cut-col-length {
    width: 82px;
}

.compact-table--cuts .cut-col-label {
    width: 76px;
}

.compact-table--cuts .cut-col-face {
    width: 88px;
}

.compact-table--cuts .cut-col-angle {
    width: 78px;
}

.compact-table--cuts .cut-col-direction {
    width: 84px;
}

.compact-table--cuts .cut-col-delete {
    width: 48px;
}

.compact-table thead th {
    padding: 10px 8px;
    text-align: left;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #9bb7d3;
    border-bottom: 1px solid rgba(126, 154, 184, 0.16);
    background: rgba(22, 31, 40, 0.78);
}

.compact-table tbody td {
    padding: 8px;
    border-bottom: 1px solid rgba(126, 154, 184, 0.12);
    vertical-align: middle;
}

.compact-table tbody tr:last-child td {
    border-bottom: none;
}

.compact-table input[type="number"],
.compact-table input[type="text"],
.compact-table select {
    width: 100%;
    min-height: 34px;
    padding: 6px 8px;
    border-radius: 10px;
    border: 1px solid rgba(122, 146, 170, 0.28);
    background: rgba(7, 12, 17, 0.52);
    color: var(--text);
}

.compact-table input[type="text"] {
    font-size: 12px;
}

.compact-table input[type="checkbox"] {
    width: 16px;
    height: 16px;
}

.compact-table--cuts th,
.compact-table--cuts td {
    white-space: nowrap;
}

.compact-table--cuts tbody td {
    padding: 6px;
}

.compact-table--cuts tbody tr.is-selected {
    background: rgba(121, 183, 255, 0.08);
}

.cut-select-btn {
    min-height: 34px;
    width: 100%;
    padding: 6px 10px;
    border-radius: 10px;
    background: linear-gradient(180deg, #e1a262, #c77e39);
    border: 1px solid rgba(185, 116, 52, 0.48);
    color: #1b0f04;
}

.cut-select-btn.active {
    background: linear-gradient(180deg, #e7ab6f, #cf8844);
    color: #1b0f04;
    border-color: rgba(185, 116, 52, 0.62);
}

.cut-select-btn:hover {
    background: linear-gradient(180deg, #e7ab6f, #cf8844);
}

.trash-btn {
    min-height: 34px;
    min-width: 34px;
    width: 34px;
    padding: 0;
    border-radius: 10px;
    background: rgba(118, 32, 32, 0.24);
    border: 1px solid rgba(255, 127, 127, 0.32);
    color: #ffd8d8;
}

.trash-btn svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.selected-cut-card {
    display: grid;
    gap: 6px;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid rgba(121, 183, 255, 0.16);
    background: linear-gradient(180deg, rgba(26, 39, 51, 0.94), rgba(19, 28, 37, 0.94));
}

.selected-cut-card__title {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: #dce9f6;
}

.selected-cut-card__meta {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-soft);
}

.cutting-list-viewport-shell {
    --results-panel-height: 420px;
    display: grid;
    grid-template-rows: minmax(320px, var(--results-panel-height)) 10px minmax(220px, 1fr);
    gap: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.cutting-list-top-panel,
.cutting-list-bottom-panel {
    min-height: 0;
    min-width: 0;
}

.cutting-list-viewport-resizer {
    position: relative;
    height: 10px;
    cursor: row-resize;
    background: linear-gradient(180deg, rgba(26, 34, 44, 0.95), rgba(18, 24, 32, 0.95));
    border-top: 1px solid #263240;
    border-bottom: 1px solid #10161d;
    z-index: 3;
}

.cutting-list-viewport-resizer::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 56px;
    height: 3px;
    border-radius: 2px;
    transform: translate(-50%, -50%);
    background: linear-gradient(90deg, #7f9ec0 0%, #4f6b86 100%);
    opacity: 0.85;
}

.cutting-list-viewport-resizer:hover::before,
.cutting-list-viewport-resizer:focus-visible::before {
    background: linear-gradient(90deg, #9bc8ff 0%, #6e9fd4 100%);
    opacity: 1;
}

.cutting-list-viewport-resizer:focus-visible {
    outline: 2px solid #7eb5ff;
    outline-offset: -2px;
}

.cutting-list-top-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 12px;
    padding: 18px;
    border-bottom: 1px solid rgba(126, 154, 184, 0.16);
    background: linear-gradient(180deg, rgba(18, 26, 35, 0.98), rgba(14, 21, 29, 0.96));
}

.cutting-list-top-panel__toolbar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 150px)) minmax(0, 220px) repeat(2, minmax(0, 132px));
    gap: 10px;
    align-items: end;
}

body.fabrication-3d-page--embed .cutting-list-top-panel__toolbar {
    grid-template-columns: repeat(3, minmax(102px, 116px)) minmax(162px, 1fr) repeat(2, minmax(132px, 146px));
    overflow-x: auto;
    padding-bottom: 2px;
}

body.fabrication-3d-page--embed .cutting-list-top-panel {
    padding: 14px;
}

body.fabrication-3d-page--embed .cutting-list-results-card,
body.fabrication-3d-page--embed .cutting-list-results-region,
body.fabrication-3d-page--embed .cutting-list-results-table-shell,
body.fabrication-3d-page--embed .cutting-list-viewport-card-shell {
    min-width: 0;
}

body.fabrication-3d-page--embed .cutting-list-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cutting-list-inline-field {
    display: grid;
    gap: 6px;
}

.cutting-list-inline-field span {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-soft);
}

.cutting-list-inline-field input {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(122, 146, 170, 0.28);
    background: rgba(7, 12, 17, 0.42);
    color: var(--text);
}

.cutting-list-inline-field select {
    width: 100%;
    min-height: 42px;
    padding: 10px 40px 10px 14px;
    border-radius: 12px;
    border: 1px solid rgba(122, 146, 170, 0.28);
    background:
        linear-gradient(180deg, rgba(35, 52, 68, 0.88), rgba(24, 36, 47, 0.94)),
        rgba(7, 12, 17, 0.42);
    color: #eef6ff;
    font-size: 14px;
    font-weight: 600;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
    background-image:
        linear-gradient(180deg, rgba(35, 52, 68, 0.88), rgba(24, 36, 47, 0.94)),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='%23d7e8fb' d='M3.1 4.8 7 8.7l3.9-3.9 1.1 1.1L7 10.9 2 5.9z'/%3E%3C/svg%3E");
    background-repeat: no-repeat, no-repeat;
    background-position: 0 0, right 14px center;
    background-size: auto, 14px 14px;
}

.cutting-list-inline-field select:hover {
    border-color: rgba(147, 183, 219, 0.42);
}

.cutting-list-inline-field select:focus {
    outline: none;
    border-color: rgba(126, 197, 255, 0.72);
    box-shadow: 0 0 0 3px rgba(70, 151, 224, 0.22);
}

.cutting-list-results-region {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px;
    min-height: 0;
}

.cutting-list-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.cutting-list-summary .metric {
    min-height: 78px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(121, 183, 255, 0.16);
    background: linear-gradient(180deg, rgba(26, 39, 51, 0.94), rgba(19, 28, 37, 0.94));
}

.cutting-list-summary .metric span {
    display: block;
    margin-bottom: 8px;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-soft);
}

.cutting-list-summary .metric strong {
    font-size: 18px;
    color: #dce9f6;
}

.cutting-list-results-table-shell {
    min-height: 0;
}

.compact-table--results tbody td {
    white-space: nowrap;
}

.compact-table--results tbody td:nth-child(3) {
    white-space: normal;
}

.cutting-list-results-note {
    margin: 0;
}

.cutting-list-results-card,
.cutting-list-viewport-card-shell {
    margin-bottom: 0;
    display: grid;
    gap: 12px;
}

.cutting-list-results-card > h2,
.cutting-list-viewport-card-shell > h2 {
    margin: 0;
}

.cutting-list-bottom-panel {
    position: relative;
    min-height: 0;
    background:
        linear-gradient(180deg, rgba(8, 12, 17, 0.35), rgba(8, 12, 17, 0.75)),
        radial-gradient(circle at top, rgba(121, 183, 255, 0.1), transparent 34%),
        linear-gradient(180deg, #121a22 0%, #0f151c 100%);
}

.cutting-list-bottom-panel .viewport-canvas {
    position: absolute;
    inset: 0;
}

.cutting-list-viewport-card-shell {
    position: relative;
    min-height: 100%;
}

.cutting-list-viewport-card-shell > .viewport-canvas {
    position: absolute;
    inset: 0;
}

.cutting-list-viewport-card-shell > h2 {
    position: relative;
    z-index: 2;
}

.cutting-list-viewport-overlay {
    align-items: flex-start;
    top: calc(48px + var(--viewport-toolbar-offset));
}

.viewport-card--compact {
    max-width: 360px;
}

.empty-cell {
    text-align: center;
    color: var(--text-soft);
    padding: 18px 10px;
}

.cutting-list-import-dialog {
    width: min(960px, calc(100vw - 32px));
    max-width: 960px;
    padding: 0;
    border: 1px solid rgba(126, 154, 184, 0.24);
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(18, 26, 35, 0.99), rgba(13, 19, 27, 0.99));
    color: var(--text);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}

.cutting-list-import-dialog::backdrop {
    background: rgba(4, 8, 12, 0.68);
    backdrop-filter: blur(4px);
}

.cutting-list-import-dialog__form {
    display: grid;
    gap: 18px;
    padding: 22px;
}

.cutting-list-import-dialog__header,
.cutting-list-import-dialog__toolbar,
.cutting-list-import-dialog__actions,
.cutting-list-import-dialog__preview-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cutting-list-import-dialog__header h2 {
    margin: 0 0 6px;
    font-size: 22px;
}

.cutting-list-import-dialog__header p,
.cutting-list-import-dialog__preview-header span {
    margin: 0;
    color: var(--text-soft);
}

.cutting-list-import-dialog__field {
    display: grid;
    gap: 8px;
}

.cutting-list-import-dialog__field span {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-soft);
}

.cutting-list-import-dialog__field textarea {
    width: 100%;
    min-height: 180px;
    resize: vertical;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid rgba(122, 146, 170, 0.28);
    background: rgba(7, 12, 17, 0.62);
    color: #eef6ff;
    font: inherit;
    line-height: 1.45;
}

.cutting-list-import-dialog__field textarea:focus {
    outline: none;
    border-color: rgba(126, 197, 255, 0.72);
    box-shadow: 0 0 0 3px rgba(70, 151, 224, 0.22);
}

.compact-table--import-preview tbody td {
    white-space: nowrap;
}

.cutting-list-import-dialog__actions {
    justify-content: flex-end;
}

@media (max-width: 900px) {
    body.fabrication-3d-page {
        overflow: auto;
    }

    body.fabrication-3d-page #app-shell.cutting-list-shell {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
        grid-template-columns: 1fr;
        grid-template-rows: none;
        overflow: visible;
    }

    .cutting-list-shell {
        --sidebar-width: 100%;
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .cutting-list-sidebar-resizer {
        display: none;
    }

    .cutting-list-sidebar,
    .cutting-list-sidebar > .sidebar-body,
    .cutting-list-viewport-shell,
    .cutting-list-top-panel,
    .cutting-list-bottom-panel {
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .cutting-list-sidebar {
        position: static;
        width: 100%;
        flex: 0 0 auto;
        z-index: auto;
        border-right: none;
        border-bottom: 1px solid var(--border);
    }

    .cutting-list-sidebar > .sidebar-body {
        min-height: 0;
        overflow-x: visible;
        overflow-y: visible;
        padding-bottom: 14px;
    }

    .cutting-list-file-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cutting-list-viewport-resizer {
        display: none;
    }

    .cutting-list-viewport-shell {
        width: 100%;
        flex: 0 0 auto;
        display: block;
        min-height: 0;
    }

    .cutting-list-summary {
        grid-template-columns: 1fr;
    }

    .cutting-list-top-panel__toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .cutting-list-top-panel__toolbar > #build-cut-list-btn,
    .cutting-list-top-panel__toolbar > #clear-cut-list-btn,
    .cutting-list-top-panel__toolbar > #print-cut-list-btn {
        width: 100%;
        justify-self: center;
    }

    .cutting-list-top-panel__toolbar > #print-cut-list-btn,
    .cutting-list-top-panel__toolbar > .cutting-list-inline-field {
        grid-column: 1 / -1;
    }

    .cutting-list-top-panel__toolbar > #print-cut-list-btn {
        width: calc((100% - 8px) / 2);
    }

    .cutting-list-results-card,
    .cutting-list-viewport-card-shell {
        gap: 14px;
    }

    .cutting-list-bottom-panel {
        margin-top: 12px;
        min-height: 56vh;
    }

    .cutting-list-bottom-panel .viewport-canvas,
    .cutting-list-viewport-card-shell > .viewport-canvas {
        position: relative;
        inset: auto;
        min-height: 56vh;
        height: auto;
        overflow: visible;
    }

    #cutting-list-results-region {
        grid-template-rows: auto auto auto;
        min-height: 0;
        overflow: visible;
    }

    .cutting-list-results-table-shell {
        min-height: 0;
        overflow-x: auto;
        overflow-y: visible;
    }

    .compact-table {
        min-width: 720px;
    }
}