:root {
    --ldo-bg: #f3f5f8;
    --ldo-surface: #ffffff;
    --ldo-dark: #171b20;
    --ldo-muted: #6c7683;
    --ldo-border: #dde3ea;
    --ldo-accent: #ffc107;
    --ldo-accent-soft: #fff4cf;
    --ldo-radius: 18px;
    --ldo-shadow: 0 14px 34px rgba(18, 28, 45, .08);
}

* { box-sizing: border-box; }

body {
    min-height: 100vh;
    background: var(--ldo-bg);
    color: #17202a;
}

a { text-decoration: none; }

.app-shell {
    min-height: 100vh;
    display: flex;
}

.app-sidebar {
    width: 280px;
    min-height: 100vh;
    background: linear-gradient(180deg, #171b20 0%, #222832 100%);
    color: #fff;
    position: sticky;
    top: 0;
    align-self: flex-start;
    padding: 20px 16px;
    overflow-y: auto;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    min-width: 0;
}

.brand:hover { color: inherit; }

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ldo-accent);
    color: #111;
    font-weight: 900;
    font-size: .8rem;
    box-shadow: 0 10px 20px rgba(255, 193, 7, .24);
    flex: 0 0 auto;
}

.brand-title {
    display: block;
    font-size: 1.05rem;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -.02em;
}

.brand-subtitle {
    display: block;
    font-size: .76rem;
    color: rgba(255,255,255,.55);
    margin-top: 2px;
}

.sidebar-section {
    color: rgba(255,255,255,.45);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 26px 10px 10px;
}

.sidebar-nav {
    display: grid;
    gap: 5px;
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.72);
    padding: 10px 12px;
    border-radius: 12px;
    font-size: .94rem;
    transition: .16s ease;
}

.sidebar-link span:first-child {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(255,255,255,.08);
    font-size: .72rem;
    font-weight: 800;
}

.sidebar-link:hover {
    color: #fff;
    background: rgba(255,255,255,.08);
}

.sidebar-link.active {
    color: #111;
    background: var(--ldo-accent);
    font-weight: 800;
}

.sidebar-link.active span:first-child {
    background: rgba(0,0,0,.10);
}

.sidebar-link.disabled,
.sidebar-link[aria-disabled="true"] {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

.sidebar-link small {
    font-size: .58rem;
    color: rgba(255,255,255,.60);
}

.app-main {
    flex: 1;
    min-width: 0;
}

.app-topbar {
    height: 78px;
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--ldo-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 28px;
    position: sticky;
    top: 0;
    z-index: 20;
}

.page-kicker {
    color: var(--ldo-muted);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.page-title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 850;
    letter-spacing: -.025em;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.user-pill {
    display: inline-flex;
    align-items: center;
    background: #eef2f6;
    border: 1px solid var(--ldo-border);
    padding: 7px 12px;
    border-radius: 999px;
    color: #374151;
    font-size: .86rem;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-content {
    padding: 28px;
    max-width: 1480px;
}

.public-navbar {
    height: 72px;
    background: rgba(255,255,255,.90);
    border-bottom: 1px solid var(--ldo-border);
    padding: 0 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.public-brand .brand-subtitle { color: var(--ldo-muted); }
.public-brand .brand-title { color: var(--ldo-dark); }

.public-content {
    max-width: 1120px;
    margin: 0 auto;
    padding: 28px 16px;
}

.card {
    border: 1px solid var(--ldo-border);
    border-radius: var(--ldo-radius);
    box-shadow: var(--ldo-shadow);
}

.card-header {
    border-top-left-radius: var(--ldo-radius) !important;
    border-top-right-radius: var(--ldo-radius) !important;
    font-weight: 800;
}

.btn {
    border-radius: 12px;
}

.btn-warning {
    color: #161616;
    font-weight: 800;
}

.form-control,
.form-select {
    border-radius: 12px;
    border-color: #d8dee7;
    padding: .65rem .8rem;
}

.form-control:focus,
.form-select:focus {
    border-color: #f2b705;
    box-shadow: 0 0 0 .22rem rgba(255, 193, 7, .18);
}

.table {
    margin-bottom: 0;
}

.table > :not(caption) > * > * {
    padding: .9rem .85rem;
    vertical-align: middle;
}

.table thead th {
    color: #566170;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: #f7f9fc;
    border-bottom-color: var(--ldo-border);
}

.badge {
    border-radius: 999px;
    padding: .45em .65em;
}

.dashboard-hero {
    border-radius: 24px;
    background: radial-gradient(circle at 15% 20%, rgba(255, 193, 7, .30), transparent 28%), linear-gradient(135deg, #171b20, #2b3442);
    color: #fff;
    padding: 28px;
    box-shadow: var(--ldo-shadow);
}

.dashboard-hero .text-muted,
.dashboard-hero .small {
    color: rgba(255,255,255,.68) !important;
}

.metric-card {
    position: relative;
    overflow: hidden;
}

.metric-card::after {
    content: "";
    position: absolute;
    right: -30px;
    top: -30px;
    width: 110px;
    height: 110px;
    border-radius: 999px;
    background: var(--ldo-accent-soft);
}

.metric-card .card-body { position: relative; z-index: 1; }

.module-card {
    transition: transform .16s ease, box-shadow .16s ease;
}

.module-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 42px rgba(18,28,45,.12);
}

@media (max-width: 991.98px) {
    .app-shell { display: block; }
    .app-sidebar {
        position: relative;
        width: 100%;
        min-height: auto;
        border-bottom-left-radius: 22px;
        border-bottom-right-radius: 22px;
    }
    .sidebar-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .app-topbar {
        height: auto;
        padding: 16px;
        flex-wrap: wrap;
        position: relative;
    }
    .app-content { padding: 18px; }
    .topbar-actions { width: 100%; justify-content: space-between; }
    .user-pill { max-width: 190px; }
}

@media (max-width: 575.98px) {
    .sidebar-nav { grid-template-columns: 1fr; }
    .public-navbar { padding: 0 14px; }
    .brand-title { font-size: .95rem; }
    .brand-subtitle { display: none; }
}

/* Sidebar grupe deschidere/închidere */
.sidebar-group {
    margin-top: 18px;
}

.sidebar-section-toggle {
    width: 100%;
    border: 0;
    background: transparent;
    color: rgba(255,255,255,.50);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 8px 10px;
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 10px;
    transition: .16s ease;
}

.sidebar-section-toggle:hover {
    color: rgba(255,255,255,.86);
    background: rgba(255,255,255,.06);
}

.sidebar-chevron {
    font-size: 1rem;
    line-height: 1;
    transition: transform .16s ease;
}

.sidebar-group.is-collapsed .sidebar-chevron {
    transform: rotate(-90deg);
}

.sidebar-group.is-collapsed .sidebar-group-content {
    display: none;
}

.cutting-table-wrap {
    max-height: 68vh;
    overflow: auto;
}

.cutting-table {
    min-width: 2600px;
    font-size: .82rem;
}

.cutting-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    white-space: nowrap;
    vertical-align: middle;
}

.cutting-grid-input { min-width: 180px; }
.cutting-grid-number { min-width: 110px; text-align: right; }
.cutting-grid-small { min-width: 105px; }

/* Liste debitare - grid compact profesional */
.app-content-wide {
    max-width: none;
    padding: 18px;
}

.cutting-workspace {
    width: 100%;
}

.cutting-grid-card {
    overflow: hidden;
}

.cutting-table-wrap {
    max-height: calc(100vh - 220px);
    min-height: 420px;
    overflow: auto;
    background: #fff;
}

.cutting-table {
    min-width: 1640px;
    table-layout: fixed;
    font-size: .66rem;
    border-color: #d7dde5;
}

.cutting-table th,
.cutting-table td {
    padding: 1px 2px !important;
    vertical-align: middle;
    background-clip: padding-box;
}

.cutting-table thead th {
    position: sticky;
    top: 0;
    z-index: 8;
    background: #eef2f6;
    color: #253041;
    font-size: .58rem;
    line-height: 1.05;
    font-weight: 800;
    white-space: normal;
    word-break: keep-all;
    text-align: center;
    height: 35px;
}

.cutting-table tbody tr:hover td,
.cutting-table tbody tr:hover .sticky-col {
    background-color: #fffaf0;
}

.cutting-table .new-row td,
.cutting-table .new-row .sticky-col {
    background: #fff3cd;
}

/* Marcaje verticale stânga: status linie + material dublat din import. Nu schimbă fundalul rândului. */
.cutting-table tbody tr.row-severity-ok td:first-child,
.cutting-table tbody tr.row-severity-ok .sticky-col-1 { box-shadow: inset 4px 0 0 #22c55e; }
.cutting-table tbody tr.row-severity-warning td:first-child,
.cutting-table tbody tr.row-severity-warning .sticky-col-1 { box-shadow: inset 4px 0 0 #f59e0b; }
.cutting-table tbody tr.row-severity-error td:first-child,
.cutting-table tbody tr.row-severity-error .sticky-col-1 { box-shadow: inset 4px 0 0 #ef4444; }
.cutting-table tbody tr.row-severity-empty td:first-child,
.cutting-table tbody tr.row-severity-empty .sticky-col-1 { box-shadow: inset 4px 0 0 #e2e8f0; }
.cutting-table tbody tr.import-duplicate-material-row.row-severity-ok td:first-child,
.cutting-table tbody tr.import-duplicate-material-row.row-severity-ok .sticky-col-1 { box-shadow: inset 4px 0 0 #0d6efd, inset 8px 0 0 #22c55e; }
.cutting-table tbody tr.import-duplicate-material-row.row-severity-warning td:first-child,
.cutting-table tbody tr.import-duplicate-material-row.row-severity-warning .sticky-col-1 { box-shadow: inset 4px 0 0 #0d6efd, inset 8px 0 0 #f59e0b; }
.cutting-table tbody tr.import-duplicate-material-row.row-severity-error td:first-child,
.cutting-table tbody tr.import-duplicate-material-row.row-severity-error .sticky-col-1 { box-shadow: inset 4px 0 0 #0d6efd, inset 8px 0 0 #ef4444; }
.cutting-table tbody tr.import-duplicate-material-row.row-severity-empty td:first-child,
.cutting-table tbody tr.import-duplicate-material-row.row-severity-empty .sticky-col-1 { box-shadow: inset 4px 0 0 #0d6efd, inset 8px 0 0 #e2e8f0; }

.grid-cell {
    width: 100%;
    height: 23px;
    min-height: 23px;
    border-radius: 4px;
    padding: 1px 3px !important;
    font-size: .64rem;
    border: 1px solid transparent;
    background: transparent;
}

.grid-cell:focus {
    background: #fff;
    border-color: #f2b705;
    box-shadow: 0 0 0 .12rem rgba(255, 193, 7, .18);
}

.col-nr { width: 38px; min-width: 38px; }
.col-corp { width: 116px; min-width: 116px; }
.col-placa { width: 124px; min-width: 124px; }
.col-dim { width: 58px; min-width: 58px; }
.col-cant { width: 54px; min-width: 54px; }
.col-fibra { width: 70px; min-width: 70px; }
.col-material { width: 112px; min-width: 112px; }
.col-small { width: 62px; min-width: 62px; }
.col-cant-text { width: 75px; min-width: 75px; }
.col-barcode { width: 95px; min-width: 95px; }
.col-obs { width: 120px; min-width: 120px; }
.col-desen { width: 58px; min-width: 58px; }
.col-mp { width: 50px; min-width: 50px; }
.col-actiuni { width: 230px; min-width: 230px; }

.sticky-col {
    position: sticky;
    z-index: 5;
    background: #fff;
}

.cutting-table thead .sticky-col {
    z-index: 10;
    background: #e8edf4;
}

.sticky-col-1 { left: 0; }
.sticky-col-2 { left: var(--sticky-left-2, 38px); }
.sticky-col-3 { left: var(--sticky-left-3, 154px); box-shadow: 6px 0 8px rgba(18, 28, 45, .06); }

.cell-saving {
    background: #fff8dc !important;
    border-color: #ffc107 !important;
}

.cell-saved {
    background: #e9f8ef !important;
    border-color: #2fb344 !important;
}

.cell-error {
    background: #ffecec !important;
    border-color: #dc3545 !important;
}

.autosave-state {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eef2f6;
    color: #607086;
    font-size: .64rem;
    font-weight: 700;
}

.autosave-ok { background: #e9f8ef; color: #146c43; }
.autosave-error { background: #ffecec; color: #b02a37; }
.autosave-saving { background: #fff3cd; color: #856404; }

.date-list-card .card-header {
    min-height: 36px;
}

.date-list-card .card-body {
    padding-top: .55rem !important;
    padding-bottom: .55rem !important;
}

.date-list-card .form-control-sm,
.date-list-card .form-select-sm {
    min-height: 30px;
    padding: .25rem .5rem;
    border-radius: 8px;
    font-size: .82rem;
}

.grid-select {
    padding-right: 1.1rem !important;
    background-position: right .25rem center;
    background-size: 10px 8px;
}

.cutting-table .btn-sm {
    padding: .15rem .35rem;
    font-size: .62rem;
    border-radius: 6px;
}

/* Liste debitare - status rapid si filtrare statusuri */
.status-select {
    font-weight: 800;
    border-radius: 999px;
    padding: .28rem 1.9rem .28rem .72rem;
    min-width: 132px;
}

.status-ciorna {
    color: #495057;
    background-color: #f1f3f5;
    border-color: #cfd4da;
}

.status-finalizata {
    color: #146c43;
    background-color: #e9f8ef;
    border-color: #9bd8b4;
}

.status-generata {
    color: #084298;
    background-color: #e7f1ff;
    border-color: #9ec5fe;
}

.status-anulata {
    color: #b02a37;
    background-color: #ffecec;
    border-color: #f1aeb5;
}


/* Liste debitare - resize coloane */
.cutting-table col {
    min-width: inherit;
}

.cutting-table .resizable-col {
    position: sticky;
}

.cutting-table thead th.resizable-col {
    user-select: none;
}

.col-resize-handle {
    position: absolute;
    top: 0;
    right: -2px;
    width: 6px;
    height: 100%;
    cursor: col-resize;
    z-index: 20;
}

.col-resize-handle:hover,
body.is-resizing-column .col-resize-handle {
    background: rgba(255, 193, 7, .28);
}

body.is-resizing-column {
    cursor: col-resize !important;
    user-select: none;
}

body.is-resizing-column * {
    cursor: col-resize !important;
}

/* Liste debitare - import Excel/CSV */
.import-preview-wrap {
    max-height: calc(100vh - 310px);
    overflow: auto;
}

.import-preview-table {
    min-width: 1900px;
    font-size: .72rem;
}

.import-preview-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #eef2f6;
    font-size: .64rem;
    text-align: center;
    white-space: normal;
}

.import-preview-table td,
.import-preview-table th {
    padding: .25rem .35rem !important;
}

/* Liste debitare - font, filtrare, sortare, navigare tip Excel */
.grid-toolbar .input-group-text,
.grid-toolbar .form-control,
.grid-toolbar .form-select {
    font-size: .72rem;
}

.grid-search-box { width: 260px; }
.grid-font-box { width: 310px; }
.grid-header-font-box { width: 360px; }
.grid-font-size-select { max-width: 72px; }

.cutting-table {
    font-family: var(--grid-font-family, Arial), sans-serif;
    font-size: var(--grid-font-size, 11px);
}

.cutting-table .grid-cell,
.cutting-table .grid-select,
.cutting-table .grid-filter-row input {
    font-family: var(--grid-font-family, Arial), sans-serif;
    font-size: var(--grid-font-size, 11px);
}

.cutting-table thead tr.grid-filter-row th {
    position: sticky;
    top: 35px;
    z-index: 9;
    height: 26px;
    padding: 1px 2px !important;
    background: #f8fafc;
}

.cutting-table thead tr.grid-filter-row .sticky-col {
    z-index: 12;
    background: #f8fafc;
}

.grid-filter-row input {
    width: 100%;
    height: 20px;
    border: 1px solid #ccd5df;
    border-radius: 4px;
    padding: 1px 3px;
    background: #fff;
}

.sortable-th {
    cursor: pointer;
}

.sortable-th::after {
    content: "↕";
    display: inline-block;
    margin-left: 3px;
    font-size: .62rem;
    color: #8a97a8;
}

.sortable-th[data-sort-direction="asc"]::after { content: "▲"; color: #0d6efd; }
.sortable-th[data-sort-direction="desc"]::after { content: "▼"; color: #0d6efd; }

/* Ascunde săgețile native de la inputurile numerice în toate browserele */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

/* Perechi canturi - culori discrete */
.cutting-table thead tr:first-child th:nth-child(10),
.cutting-table thead tr:first-child th:nth-child(11),
.cutting-table tbody tr:not(.new-row) td:nth-child(10),
.cutting-table tbody tr:not(.new-row) td:nth-child(11) {
    background-color: #f2fbf7;
}

.cutting-table thead tr:first-child th:nth-child(12),
.cutting-table thead tr:first-child th:nth-child(13),
.cutting-table tbody tr:not(.new-row) td:nth-child(12),
.cutting-table tbody tr:not(.new-row) td:nth-child(13) {
    background-color: #f3f7ff;
}

.cutting-table thead tr:first-child th:nth-child(14),
.cutting-table thead tr:first-child th:nth-child(15),
.cutting-table tbody tr:not(.new-row) td:nth-child(14),
.cutting-table tbody tr:not(.new-row) td:nth-child(15) {
    background-color: #fff8ee;
}

.cutting-table thead tr:first-child th:nth-child(16),
.cutting-table thead tr:first-child th:nth-child(17),
.cutting-table tbody tr:not(.new-row) td:nth-child(16),
.cutting-table tbody tr:not(.new-row) td:nth-child(17) {
    background-color: #fbf2ff;
}

.cutting-table tbody tr:hover td:nth-child(10),
.cutting-table tbody tr:hover td:nth-child(11),
.cutting-table tbody tr:hover td:nth-child(12),
.cutting-table tbody tr:hover td:nth-child(13),
.cutting-table tbody tr:hover td:nth-child(14),
.cutting-table tbody tr:hover td:nth-child(15),
.cutting-table tbody tr:hover td:nth-child(16),
.cutting-table tbody tr:hover td:nth-child(17) {
    filter: brightness(.985);
}

@media (max-width: 1200px) {
    .grid-search-box { width: 220px; }
    .grid-font-box { width: 280px; }
    .grid-header-font-box { width: 320px; }
}

/* Liste debitare - font separat pentru corp tabel și cap tabel */
.cutting-table thead th,
.cutting-table thead tr:first-child th,
.cutting-table thead tr.grid-filter-row th {
    font-family: var(--grid-header-font-family, var(--grid-font-family, Arial)), sans-serif !important;
    font-size: var(--grid-header-font-size, var(--grid-font-size, 11px)) !important;
}

.cutting-table .grid-filter-row input {
    font-family: var(--grid-font-family, Arial), sans-serif !important;
    font-size: var(--grid-font-size, 11px) !important;
}

.cutting-table thead th {
    line-height: 1.08;
}

/* Liste debitare - validare rânduri și meniu click dreapta */
.col-status-linie { width: 150px; min-width: 150px; }
.row-status-cell {
    font-size: .62rem;
    line-height: 1.05;
    max-width: 220px;
    overflow: hidden;
}
.row-status-cell.status-ok { background: #e9f8ef !important; }
.row-status-cell.status-warning { background: #fff3cd !important; }
.row-status-cell.status-error { background: #ffecec !important; }
.row-status-cell.status-empty { background: #fff !important; }
.row-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    padding: 2px 6px;
    border-radius: 999px;
    font-weight: 800;
    margin-right: 4px;
    white-space: nowrap;
}
.row-status-ok { background: #e9f8ef; color: #146c43; border: 1px solid #9bd8b4; }
.row-status-warning { background: #fff3cd; color: #856404; border: 1px solid #ffda6a; }
.row-status-error { background: #ffecec; color: #b02a37; border: 1px solid #f1aeb5; }
.row-status-ignored { background: #f1f5f9; color: #475569; border: 1px solid #cbd5e1; }
.row-status-cell.status-ignored,
.supplier-status-cell.status-ignored { background: #f8fafc !important; color: #64748b !important; }

.row-status-message {
    display: inline;
    color: #475569;
    white-space: nowrap;
}
.row-context-menu {
    position: absolute;
    z-index: 5000;
    min-width: 170px;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .18);
    padding: 5px;
}
.row-context-menu button {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 7px 10px;
    border-radius: 6px;
    font-size: .82rem;
}
.row-context-menu button:hover {
    background: #eef2ff;
}

/* Lista debitare - câmpuri completate automat din DB */
.cutting-table .auto-filled-cell[readonly] {
    background-color: #f3f6f8;
    color: #495057;
    cursor: not-allowed;
}


/* Liste debitare - butoane acțiuni și modal înlocuire valori */
.actions-cell { white-space: nowrap; }
.action-buttons-grid {
    display: flex;
    align-items: center;
    gap: 3px;
    flex-wrap: nowrap;
}
.action-buttons-grid .btn {
    white-space: nowrap;
    line-height: 1.1;
    min-height: 22px;
    padding: 2px 5px !important;
    font-size: .62rem;
}
.action-buttons-grid .action-delete-btn {
    width: 22px;
    height: 22px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    line-height: 1;
}
.replace-values-table th {
    background: #f8fafc;
    font-size: .78rem;
}
.replace-modal-fallback {
    position: fixed;
    inset: 0;
    z-index: 6000;
    background: rgba(15, 23, 42, .42);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.replace-modal-fallback-card {
    width: min(980px, 96vw);
    max-height: 90vh;
    overflow: auto;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .35);
    padding: 16px;
}

/* Lista debitare - coloane calculate needitabile cu aspect simplu ca MP */
.cutting-table .grid-readonly-cell {
    background: #f8fafc;
    color: #64748b;
    cursor: default;
    white-space: nowrap;
}
.cutting-table .grid-readonly-value {
    display: inline-block;
    min-height: 20px;
    padding: 2px 3px;
}

/* Evidențiere celule cu probleme în lista de debitare: contur clar, fără să coloreze fundalul celulei */
.cutting-table .cell-issue-error,
.cutting-table .td-issue-error {
    outline: 0 !important;
    border-color: #dc3545 !important;
    box-shadow: inset 0 0 0 2px #dc3545 !important;
}

.cutting-table .cell-issue-warning,
.cutting-table .td-issue-warning {
    outline: 0 !important;
    border-color: #ffc107 !important;
    box-shadow: inset 0 0 0 2px #ffc107 !important;
}

.cutting-table .cell-issue-error:focus,
.cutting-table .cell-issue-warning:focus {
    box-shadow: inset 0 0 0 2px currentColor, 0 0 0 .12rem rgba(13, 110, 253, .12) !important;
}

/* Popup propriu pentru sugestii în grid: stabil, fără flicker/dublare ca la datalist pe focus+click */
.cell-suggestions-popup {
    position: fixed;
    z-index: 3000;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, .18);
    border-radius: .375rem;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
    overflow-y: auto;
    padding: .25rem;
}

.cell-suggestion-item {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: .35rem .5rem;
    border-radius: .25rem;
    font-size: .875rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cell-suggestion-item:hover,
.cell-suggestion-item:focus,
.cell-suggestion-item.is-active {
    background: #e7f1ff;
    color: #084298;
    outline: 0;
}

/* Liste debitare: zonă de lucru tip grid/Excel.
   Tabelul are scroll propriu vertical + orizontal, iar capul și filtrele rămân fixe în același container.
   Nu clonăm headerul și nu folosim fallback JavaScript care dublează rânduri. */
.cutting-grid-card {
    overflow: hidden !important;
}

.cutting-grid-card .card-body {
    min-height: 0;
}

.cutting-table-wrap {
    height: var(--cutting-grid-shell-height, calc(100vh - 280px));
    max-height: var(--cutting-grid-shell-height, calc(100vh - 280px)) !important;
    min-height: 320px !important;
    overflow: auto !important;
    position: relative;
    background: #fff;
    overscroll-behavior: contain;
}

.cutting-table thead tr:first-child th {
    position: sticky;
    top: 0;
    z-index: 30;
    background: #eef2f6;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .12);
}

.cutting-table thead tr.grid-filter-row th {
    position: sticky;
    top: var(--cutting-header-row-height, 35px);
    z-index: 29;
    background: #f8fafc;
    box-shadow: 0 2px 4px rgba(15, 23, 42, .08);
}

.cutting-table thead tr:first-child th.sticky-col {
    z-index: 42;
}

.cutting-table thead tr.grid-filter-row th.sticky-col {
    z-index: 41;
}

.cutting-table tbody .sticky-col {
    z-index: 6;
}

.cell-suggestions-popup {
    z-index: 5000;
}

.cell-suggestions-popup.open-up {
    box-shadow: 0 -.5rem 1rem rgba(0, 0, 0, .14);
}

.cutting-table .cell-issue-error:focus {
    border-color: #dc3545 !important;
    box-shadow: inset 0 0 0 2px #dc3545, 0 0 0 .12rem rgba(220, 53, 69, .16) !important;
}

.cutting-table .cell-issue-warning:focus {
    border-color: #ffc107 !important;
    box-shadow: inset 0 0 0 2px #ffc107, 0 0 0 .12rem rgba(255, 193, 7, .22) !important;
}

/* Ștergere naturală rând: fără reload vizibil al tabelului */
.cutting-table tbody tr.row-deleting td,
.cutting-table tbody tr.row-deleting .sticky-col {
    pointer-events: none;
    opacity: .55;
}

.replace-values-table input.is-invalid {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 .12rem rgba(220, 53, 69, .16) !important;
}

/* Schimbă culori: contorul aparițiilor este afișat discret, diferit de codul materialului/cantului */
.replace-value-count {
    color: #0d6efd;
    font-weight: 700;
    margin-left: 4px;
    white-space: nowrap;
}

.replace-section-help {
    color: #475569;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 7px 9px;
}

/* Listă corpuri și plăci - denumiri predefinite pentru sugestii */
.preset-name-panel {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    padding: 12px;
    height: 100%;
}

.preset-name-table-wrap {
    max-height: 50vh;
    overflow: auto;
    border-radius: 8px;
}

.preset-name-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8fafc;
    font-size: .78rem;
}

.preset-name-table td {
    background: #fff;
}

.preset-name-table [data-preset-name] {
    min-width: 180px;
}

/* Grosimile de cant se aleg din popup, nu se tastează manual.
   Valoarea selectată și valoarea venită din import se afișează natural,
   aliniate la stânga, una după alta, fără poziționări stânga/dreapta care pot suprapune textul. */
.cutting-table .edge-thickness-picker[readonly] {
    background: transparent !important;
    border-color: transparent;
    box-shadow: none;
    cursor: pointer;
    caret-color: transparent;
    color: transparent !important;
}
.cutting-table .edge-thickness-picker[readonly]:focus {
    background: transparent !important;
    border-color: transparent;
    box-shadow: none;
}
.cutting-table .edge-thickness-picker[readonly]::selection {
    background: transparent;
}

.edge-thickness-cell {
    position: relative;
    min-width: 128px;
    text-align: left !important;
    white-space: nowrap;
    overflow: hidden;
    padding-left: .5rem !important;
    padding-right: .35rem !important;
}

.edge-thickness-cell .edge-thickness-picker[readonly] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    opacity: 0;
    z-index: 2;
}

.edge-selected-value {
    position: relative;
    z-index: 3;
    display: inline-block;
    vertical-align: middle;
    font-size: .82rem;
    font-weight: 500;
    color: #334155;
    pointer-events: none;
    white-space: nowrap;
    max-width: none;
    overflow: hidden;
    text-overflow: ellipsis;
}

.edge-import-badge {
    position: relative;
    z-index: 3;
    display: inline-block;
    vertical-align: middle;
    margin-left: .35rem;
    font-size: .66rem;
    line-height: 1;
    color: #2563eb;
    opacity: .78;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    pointer-events: none;
    white-space: nowrap;
}

/* Grosime material: afișare valoare selectată + valoare importată, similar cu grosimile de cant */
.material-thickness-cell {
    text-align: left !important;
    white-space: nowrap;
    overflow: hidden;
    padding-left: .5rem !important;
    padding-right: .35rem !important;
}

.material-selected-value {
    display: inline-block;
    vertical-align: middle;
    font-size: .82rem;
    font-weight: 500;
    color: #334155;
    white-space: nowrap;
    max-width: none;
    overflow: hidden;
    text-overflow: ellipsis;
}

.material-import-badge {
    display: inline-block;
    vertical-align: middle;
    margin-left: .35rem;
    font-size: .66rem;
    line-height: 1;
    color: #2563eb;
    opacity: .78;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    white-space: nowrap;
}


/* Canturi ignorate la import: text roșu, fără să coloreze rândul. */
.cutting-table td.import-ignored-edge .grid-cell,
.cutting-table td.import-ignored-edge .edge-selected-value,
.cutting-table td.import-ignored-edge .edge-import-badge {
    color: #dc2626 !important;
    font-weight: 700;
}
.cutting-table td.import-ignored-edge .grid-cell {
    border-color: inherit !important;
    box-shadow: none !important;
}

/* Cap de tabel solid la scroll: rândurile nu se mai văd prin header. */
.cutting-table { border-collapse: separate; border-spacing: 0; }
.cutting-table thead th { background-clip: padding-box; }
.cutting-table thead tr:first-child th,
.cutting-table thead tr.grid-filter-row th {
    background-color: #eef2f6 !important;
    isolation: isolate;
}
.cutting-table thead tr.grid-filter-row th { background-color: #f8fafc !important; }

/* Print listă debitare */
.print-page { background: #fff; color: #0f172a; }
.print-toolbar { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid #e2e8f0; padding: 10px 0; }
.print-cutting-table { font-size: 11px; }
.print-cutting-table th { background: #f1f5f9 !important; }
@media print {
    .sidebar, .navbar, .print-toolbar, .app-header, .app-sidebar { display: none !important; }
    .app-content, .app-content-wide { padding: 0 !important; max-width: none !important; }
    .print-page { margin: 0; }
    @page { size: A4 landscape; margin: 8mm; }
}

/* FIX: Liste debitare index - filtre aliniate în header și acțiuni mereu vizibile. */
.list-table-scroll {
    overflow: auto;
    max-height: calc(100vh - 270px);
    background: #fff;
}
.cutting-lists-table {
    min-width: 1180px;
    border-collapse: separate;
    border-spacing: 0;
}
.cutting-lists-table th,
.cutting-lists-table td {
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
    white-space: nowrap;
}
.cutting-lists-table thead th {
    position: sticky;
    top: 0;
    z-index: 8;
    background: #f8fafc;
    vertical-align: bottom;
    box-shadow: 0 1px 0 #dbe3ee;
}
.cutting-lists-table .list-th-title {
    font-size: .74rem;
    font-weight: 800;
    color: #334155;
    margin-bottom: 4px;
    white-space: nowrap;
}
.cutting-lists-table .list-col-filter .form-control,
.cutting-lists-table .list-actions-head .btn {
    min-width: 105px;
    font-size: .72rem;
}
.cutting-lists-table .list-status-col { min-width: 150px; }
.cutting-lists-table .list-date-col { min-width: 230px; }
.cutting-lists-table .list-actions-col {
    position: sticky;
    right: 0;
    z-index: 12;
    width: 255px;
    min-width: 255px;
    box-shadow: -8px 0 10px rgba(15, 23, 42, .06);
}
.cutting-lists-table thead .list-actions-col {
    z-index: 18;
    background: #f8fafc;
}
.cutting-lists-table .list-actions-buttons {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 4px;
}
.cutting-lists-table .list-actions-buttons .btn {
    white-space: nowrap;
    padding: 2px 7px;
    font-size: .74rem;
}

/* FIX: Editare listă - border-ele celulelor rămân vizibile chiar cu sticky header/coloane. */
.cutting-table.table-bordered,
.cutting-table.table-bordered th,
.cutting-table.table-bordered td {
    border-color: #cfd7e3 !important;
}
.cutting-table.table-bordered th,
.cutting-table.table-bordered td {
    border-right: 1px solid #cfd7e3 !important;
    border-bottom: 1px solid #cfd7e3 !important;
}
.cutting-table.table-bordered thead th {
    border-top: 1px solid #cfd7e3 !important;
}
.cutting-table.table-bordered tr > *:first-child {
    border-left: 1px solid #cfd7e3 !important;
}

/* FIX: coloana Acțiuni nu poate deveni mai îngustă decât cele 4 butoane. */
.col-actiuni { width: 310px !important; min-width: 310px !important; }
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 310px !important;
    min-width: 310px !important;
    max-width: 310px;
}
.actions-cell { white-space: nowrap !important; overflow: visible; }
.action-buttons-grid { min-width: 300px; justify-content: flex-start; }
.action-buttons-grid .btn { flex: 0 0 auto; }

/* FINAL FIX: Liste debitare revine la design curat, fără filtre în capul tabelului și fără coloană sticky. */
.list-table-scroll {
    overflow-x: auto;
    overflow-y: visible;
    max-height: none;
    background: #fff;
}
.cutting-lists-table {
    min-width: 1080px;
    border-collapse: collapse;
    border-spacing: 0;
}
.cutting-lists-table th,
.cutting-lists-table td {
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
    white-space: nowrap;
    vertical-align: middle;
}
.cutting-lists-table thead th {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    background: #f8fafc !important;
    color: #334155;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
    box-shadow: none !important;
}
.cutting-lists-table .list-actions-col {
    position: static !important;
    right: auto !important;
    z-index: auto !important;
    width: 235px !important;
    min-width: 235px !important;
    max-width: 235px !important;
    box-shadow: none !important;
}
.cutting-lists-table .list-actions-buttons {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 5px;
}
.cutting-lists-table .list-actions-buttons .btn {
    white-space: nowrap;
    padding: 2px 8px;
    font-size: .74rem;
    line-height: 1.25;
}

/* FINAL FIX: Editare listă - rămâne doar linia albastră pentru material dublat din import. */
.cutting-table tbody tr.row-severity-ok td:first-child,
.cutting-table tbody tr.row-severity-ok .sticky-col-1,
.cutting-table tbody tr.row-severity-warning td:first-child,
.cutting-table tbody tr.row-severity-warning .sticky-col-1,
.cutting-table tbody tr.row-severity-error td:first-child,
.cutting-table tbody tr.row-severity-error .sticky-col-1,
.cutting-table tbody tr.row-severity-empty td:first-child,
.cutting-table tbody tr.row-severity-empty .sticky-col-1 {
    box-shadow: none !important;
}
.cutting-table tbody tr.import-duplicate-material-row td:first-child,
.cutting-table tbody tr.import-duplicate-material-row .sticky-col-1 {
    box-shadow: inset 4px 0 0 #0d6efd !important;
}

/* FINAL FIX: coloana Acțiuni din editare exact cât trebuie pentru cele 4 butoane. */
.col-actiuni { width: 260px !important; min-width: 260px !important; max-width: 260px !important; }
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 260px !important;
    min-width: 260px !important;
    max-width: 260px !important;
}
.actions-cell { white-space: nowrap !important; overflow: hidden !important; }
.action-buttons-grid {
    min-width: 252px !important;
    width: 252px !important;
    gap: 3px !important;
    justify-content: flex-start;
}
.action-buttons-grid .btn {
    padding: 2px 5px !important;
    font-size: .60rem !important;
    line-height: 1.1 !important;
    min-height: 22px !important;
}
.action-buttons-grid .action-delete-btn {
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    padding: 0 !important;
}

/* Print profesional fișă listă debitare. */
.professional-print-page {
    background: #fff;
    color: #0f172a;
}
.print-columns-panel {
    background: #f8fafc;
    border: 1px solid #dbe3ee;
    border-radius: 12px;
    padding: 10px;
}
.print-column-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
    border-radius: 999px;
    padding: 4px 9px;
    font-size: .76rem;
    cursor: pointer;
    user-select: none;
}
.print-column-chip input { margin: 0; }
.print-column-chip.is-selected {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 700;
}
.print-sheet {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    padding: 14px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .08);
}
.print-sheet-header {
    display: grid;
    grid-template-columns: minmax(220px, 1.3fr) minmax(420px, 2fr);
    gap: 14px;
    align-items: start;
    border-bottom: 2px solid #0f172a;
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.print-kicker {
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .1em;
    color: #64748b;
    font-weight: 800;
}
.print-title-block h1 {
    margin: 2px 0;
    font-size: 1.35rem;
    line-height: 1.1;
    font-weight: 900;
}
.print-subtitle {
    font-weight: 800;
    color: #2563eb;
}
.print-meta-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}
.print-meta-grid div {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 5px 7px;
    background: #f8fafc;
}
.print-meta-grid span {
    display: block;
    font-size: .62rem;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
}
.print-meta-grid strong {
    display: block;
    font-size: .78rem;
    color: #0f172a;
}
.print-notes {
    border: 1px solid #fde68a;
    background: #fffbeb;
    border-radius: 8px;
    padding: 6px 8px;
    margin-bottom: 8px;
    font-size: .82rem;
}
.professional-print-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 8.8px;
    line-height: 1.15;
}
.print-density-relaxed .professional-print-table { font-size: 10px; }
.print-density-normal .professional-print-table { font-size: 8.8px; }
.print-density-compact .professional-print-table { font-size: 7.4px; }
.professional-print-table th,
.professional-print-table td {
    border: 1px solid #94a3b8;
    padding: 2px 3px;
    vertical-align: middle;
    overflow-wrap: anywhere;
    word-break: normal;
}
.professional-print-table th {
    background: #eaf0f7 !important;
    color: #0f172a;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .01em;
}
.professional-print-table tbody tr:nth-child(even) td { background: #f8fafc; }
.professional-print-table .print-col-nr { width: 28px; }
.professional-print-table .print-col-num { width: 52px; }
.print-density-compact .professional-print-table .print-col-num { width: 42px; }
.print-sheet-footer {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    border-top: 1px solid #cbd5e1;
    margin-top: 8px;
    padding-top: 6px;
    color: #64748b;
    font-size: .72rem;
    font-weight: 700;
}

/* Setări profesionale pentru print: selecție coloane + lățimi salvate pe utilizator. */
.print-column-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 7px;
}
.print-column-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-radius: 10px;
    padding: 6px 8px;
    min-width: 0;
}
.print-column-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    min-width: 0;
    flex: 1 1 auto;
    cursor: pointer;
}
.print-column-toggle span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.print-width-control {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin: 0;
    flex: 0 0 auto;
    color: #64748b;
    font-size: .68rem;
    font-weight: 800;
}
.print-width-control input {
    width: 50px;
    height: 26px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    padding: 2px 5px;
    font-size: .75rem;
    text-align: right;
    background: #fff;
    color: #0f172a;
}
.print-width-control input:disabled {
    opacity: .45;
    background: #f1f5f9;
}
.print-job-header {
    grid-template-columns: minmax(230px, .85fr) minmax(560px, 2.6fr);
}
.print-job-meta-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.print-job-meta-grid div {
    min-width: 0;
}
.print-job-meta-grid strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.professional-print-table col {
    min-width: 0;
}
.professional-print-table th,
.professional-print-table td {
    min-width: 0;
}

@media print {
    .sidebar, .navbar, .print-toolbar, .app-header, .app-sidebar, .topbar, nav { display: none !important; }
    body { background: #fff !important; }
    .app-content, .app-content-wide, main, .container, .container-fluid {
        padding: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }
    .professional-print-page { margin: 0 !important; padding: 0 !important; }
    .print-sheet {
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
    }
    .print-sheet-header {
        display: grid !important;
        grid-template-columns: .75fr 2.25fr;
        gap: 6px;
        padding-bottom: 4px;
        margin-bottom: 4px;
    }
    .print-title-block h1 { font-size: 14px; }
    .print-subtitle { font-size: 9px; }
    .print-meta-grid { gap: 2px; }
    .print-job-meta-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .print-meta-grid div { padding: 2px 4px; border-radius: 4px; }
    .print-meta-grid span { font-size: 5.6px; }
    .print-meta-grid strong { font-size: 7.2px; }
    .print-notes { font-size: 8px; padding: 3px 5px; margin-bottom: 4px; }
    .professional-print-table { page-break-inside: auto; }
    .professional-print-table tr { page-break-inside: avoid; page-break-after: auto; }
    .professional-print-table th,
    .professional-print-table td { padding: 1.4px 2px; }
    .print-sheet-footer { font-size: 7px; margin-top: 4px; padding-top: 3px; }
    @page { size: A4 landscape; margin: 7mm; }
}

/* PATCH: meniu lateral pliabil cu stare salvată pe utilizator/browser. */
.sidebar-shell-toggle {
    width: 36px;
    height: 36px;
    border: 1px solid var(--ldo-border);
    background: #fff;
    color: #1f2937;
    border-radius: 10px;
    font-size: 1.1rem;
    font-weight: 900;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}
.sidebar-shell-toggle:hover {
    background: #f8fafc;
    border-color: #cbd5e1;
}
.topbar-title-block { min-width: 0; margin-right: auto; }
html.sidebar-shell-collapsed .app-sidebar {
    width: 74px;
    min-width: 74px;
    padding: 18px 9px;
    overflow-x: hidden;
}
html.sidebar-shell-collapsed .app-sidebar .brand {
    justify-content: center;
}
html.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark) {
    display: none;
}
html.sidebar-shell-collapsed .sidebar-group {
    margin-top: 14px;
}
html.sidebar-shell-collapsed .sidebar-section-toggle {
    justify-content: center;
    padding: 8px 4px;
    font-size: 0;
}
html.sidebar-shell-collapsed .sidebar-section-toggle span:first-child,
html.sidebar-shell-collapsed .sidebar-section-toggle .sidebar-chevron {
    display: none;
}
html.sidebar-shell-collapsed .sidebar-link {
    justify-content: center;
    gap: 0;
    padding: 10px 4px;
    font-size: 0;
}
html.sidebar-shell-collapsed .sidebar-link span:first-child {
    width: 30px;
    height: 30px;
    font-size: .74rem;
}
html.sidebar-shell-collapsed .sidebar-link small {
    display: none;
}

/* PATCH: Editare listă - acțiuni după Nr, compacte, cu Nr colorat după status linie. */
.col-actiuni { width: 218px !important; min-width: 218px !important; max-width: 218px !important; }
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 218px !important;
    min-width: 218px !important;
    max-width: 218px !important;
}
.actions-cell {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-align: left;
}
.action-buttons-grid {
    min-width: 210px !important;
    width: 210px !important;
    gap: 2px !important;
    justify-content: flex-start;
}
.action-buttons-grid .btn {
    padding: 1px 4px !important;
    font-size: .56rem !important;
    line-height: 1.05 !important;
    min-height: 20px !important;
    border-radius: 5px !important;
}
.action-buttons-grid .action-delete-btn {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 !important;
}
.cutting-table tbody tr.row-severity-ok > td.row-number-cell {
    background-color: #dff6e8 !important;
    color: #146c43;
}
.cutting-table tbody tr.row-severity-warning > td.row-number-cell {
    background-color: #fff3cd !important;
    color: #856404;
}
.cutting-table tbody tr.row-severity-error > td.row-number-cell {
    background-color: #fde2e2 !important;
    color: #b02a37;
}
.cutting-table tbody tr.row-severity-empty > td.row-number-cell {
    background-color: #fff !important;
    color: #334155;
}
.cutting-table tbody tr.import-duplicate-material-row > td.row-number-cell {
    box-shadow: inset 4px 0 0 #0d6efd !important;
}

/* PATCH: după mutarea coloanei Acțiuni după Nr, culorile perechilor de cant rămân pe coloanele corecte. */
.cutting-table thead tr:first-child th:nth-child(11),
.cutting-table thead tr:first-child th:nth-child(12),
.cutting-table tbody tr:not(.new-row) td:nth-child(11),
.cutting-table tbody tr:not(.new-row) td:nth-child(12) {
    background-color: #f2fbf7;
}
.cutting-table thead tr:first-child th:nth-child(13),
.cutting-table thead tr:first-child th:nth-child(14),
.cutting-table tbody tr:not(.new-row) td:nth-child(13),
.cutting-table tbody tr:not(.new-row) td:nth-child(14) {
    background-color: #f3f7ff;
}
.cutting-table thead tr:first-child th:nth-child(15),
.cutting-table thead tr:first-child th:nth-child(16),
.cutting-table tbody tr:not(.new-row) td:nth-child(15),
.cutting-table tbody tr:not(.new-row) td:nth-child(16) {
    background-color: #fff8ee;
}
.cutting-table thead tr:first-child th:nth-child(17),
.cutting-table thead tr:first-child th:nth-child(18),
.cutting-table tbody tr:not(.new-row) td:nth-child(17),
.cutting-table tbody tr:not(.new-row) td:nth-child(18) {
    background-color: #fbf2ff;
}
.cutting-table tbody tr:hover td:nth-child(11),
.cutting-table tbody tr:hover td:nth-child(12),
.cutting-table tbody tr:hover td:nth-child(13),
.cutting-table tbody tr:hover td:nth-child(14),
.cutting-table tbody tr:hover td:nth-child(15),
.cutting-table tbody tr:hover td:nth-child(16),
.cutting-table tbody tr:hover td:nth-child(17),
.cutting-table tbody tr:hover td:nth-child(18) {
    filter: brightness(.985);
}
/* PATCH: coloana Grosime material nu trebuie colorată ca pereche de cant după mutarea Acțiuni. */
.cutting-table thead tr:first-child th:nth-child(10) { background-color: #eef2f6 !important; }
.cutting-table tbody tr:not(.new-row) td:nth-child(10) { background-color: #fff !important; }
.cutting-table tbody tr:hover td:nth-child(10) { background-color: #fffaf0 !important; filter: none !important; }

/* PATCH FIX: meniu stânga închis/deschis funcțional, cu stare salvată. */
.app-shell {
    --ldo-sidebar-open-width: 280px;
    --ldo-sidebar-collapsed-width: 74px;
}

.app-sidebar {
    flex: 0 0 var(--ldo-sidebar-open-width);
    width: var(--ldo-sidebar-open-width);
    min-width: var(--ldo-sidebar-open-width);
    max-width: var(--ldo-sidebar-open-width);
    transition: width .18s ease, min-width .18s ease, max-width .18s ease, padding .18s ease;
    z-index: 30;
}

.app-main {
    flex: 1 1 auto;
    min-width: 0;
    transition: none;
}

html.sidebar-shell-collapsed .app-shell,
body.sidebar-shell-collapsed .app-shell,
.app-shell.sidebar-shell-collapsed {
    --ldo-sidebar-open-width: var(--ldo-sidebar-collapsed-width);
}

html.sidebar-shell-collapsed .app-sidebar,
body.sidebar-shell-collapsed .app-sidebar,
.app-shell.sidebar-shell-collapsed .app-sidebar {
    width: var(--ldo-sidebar-collapsed-width) !important;
    min-width: var(--ldo-sidebar-collapsed-width) !important;
    max-width: var(--ldo-sidebar-collapsed-width) !important;
    flex-basis: var(--ldo-sidebar-collapsed-width) !important;
    padding: 18px 9px !important;
    overflow-x: hidden !important;
}

html.sidebar-shell-collapsed .app-sidebar .brand,
body.sidebar-shell-collapsed .app-sidebar .brand,
.app-shell.sidebar-shell-collapsed .app-sidebar .brand {
    justify-content: center;
}

html.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark),
body.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark),
.app-shell.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark) {
    display: none !important;
}

html.sidebar-shell-collapsed .sidebar-group,
body.sidebar-shell-collapsed .sidebar-group,
.app-shell.sidebar-shell-collapsed .sidebar-group {
    margin-top: 14px;
}

html.sidebar-shell-collapsed .sidebar-section-toggle,
body.sidebar-shell-collapsed .sidebar-section-toggle,
.app-shell.sidebar-shell-collapsed .sidebar-section-toggle {
    justify-content: center !important;
    padding: 8px 4px !important;
    font-size: 0 !important;
}

html.sidebar-shell-collapsed .sidebar-section-toggle span:first-child,
html.sidebar-shell-collapsed .sidebar-section-toggle .sidebar-chevron,
body.sidebar-shell-collapsed .sidebar-section-toggle span:first-child,
body.sidebar-shell-collapsed .sidebar-section-toggle .sidebar-chevron,
.app-shell.sidebar-shell-collapsed .sidebar-section-toggle span:first-child,
.app-shell.sidebar-shell-collapsed .sidebar-section-toggle .sidebar-chevron {
    display: none !important;
}

html.sidebar-shell-collapsed .sidebar-link,
body.sidebar-shell-collapsed .sidebar-link,
.app-shell.sidebar-shell-collapsed .sidebar-link {
    justify-content: center !important;
    gap: 0 !important;
    padding: 10px 4px !important;
    font-size: 0 !important;
}

html.sidebar-shell-collapsed .sidebar-link span:first-child,
body.sidebar-shell-collapsed .sidebar-link span:first-child,
.app-shell.sidebar-shell-collapsed .sidebar-link span:first-child {
    width: 30px !important;
    height: 30px !important;
    font-size: .74rem !important;
    margin: 0 !important;
}

html.sidebar-shell-collapsed .sidebar-link small,
body.sidebar-shell-collapsed .sidebar-link small,
.app-shell.sidebar-shell-collapsed .sidebar-link small {
    display: none !important;
}

.sidebar-shell-toggle[aria-pressed="true"] {
    background: #111827;
    color: #fff;
    border-color: #111827;
}

@media (max-width: 991.98px) {
    html.sidebar-shell-collapsed .app-sidebar,
    body.sidebar-shell-collapsed .app-sidebar,
    .app-shell.sidebar-shell-collapsed .app-sidebar {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        flex-basis: 100% !important;
        padding: 18px 16px !important;
    }

    html.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark),
    body.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark),
    .app-shell.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark) {
        display: inline-block !important;
    }

    html.sidebar-shell-collapsed .sidebar-section-toggle,
    body.sidebar-shell-collapsed .sidebar-section-toggle,
    .app-shell.sidebar-shell-collapsed .sidebar-section-toggle,
    html.sidebar-shell-collapsed .sidebar-link,
    body.sidebar-shell-collapsed .sidebar-link,
    .app-shell.sidebar-shell-collapsed .sidebar-link {
        font-size: inherit !important;
        justify-content: flex-start !important;
        gap: 10px !important;
    }
}

/* PATCH FIX: buton meniu pe bara laterală, cu săgeți stânga/dreapta. */
.sidebar-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}

.sidebar-header .brand {
    flex: 1 1 auto;
    min-width: 0;
}

.app-sidebar .sidebar-shell-toggle {
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .10);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin-left: auto;
    font-size: 1.7rem;
    font-weight: 900;
    line-height: 1;
    box-shadow: none;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.app-sidebar .sidebar-shell-toggle:hover,
.app-sidebar .sidebar-shell-toggle:focus-visible {
    background: var(--ldo-accent);
    border-color: var(--ldo-accent);
    color: #111111;
    outline: none;
}

.app-sidebar .sidebar-shell-toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    transform: translateY(-1px);
}

.app-sidebar .sidebar-shell-toggle[aria-pressed="true"] {
    background: rgba(255, 255, 255, .10);
    color: #ffffff;
    border-color: rgba(255, 255, 255, .22);
}

.app-sidebar .sidebar-shell-toggle[aria-pressed="true"]:hover,
.app-sidebar .sidebar-shell-toggle[aria-pressed="true"]:focus-visible {
    background: var(--ldo-accent);
    border-color: var(--ldo-accent);
    color: #111111;
}

html.sidebar-shell-collapsed .sidebar-header,
body.sidebar-shell-collapsed .sidebar-header,
.app-shell.sidebar-shell-collapsed .sidebar-header {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-bottom: 18px;
}

html.sidebar-shell-collapsed .sidebar-header .brand,
body.sidebar-shell-collapsed .sidebar-header .brand,
.app-shell.sidebar-shell-collapsed .sidebar-header .brand {
    flex: 0 0 auto;
}

html.sidebar-shell-collapsed .app-sidebar .sidebar-shell-toggle,
body.sidebar-shell-collapsed .app-sidebar .sidebar-shell-toggle,
.app-shell.sidebar-shell-collapsed .app-sidebar .sidebar-shell-toggle {
    margin-left: 0;
}


/* PATCH: săgeata de pliere meniu este puțin mai la dreapta, departe de textul logo-ului. */
.app-sidebar .sidebar-shell-toggle {
    margin-left: 18px !important;
    transform: translateX(4px);
}
html.sidebar-shell-collapsed .app-sidebar .sidebar-shell-toggle,
body.sidebar-shell-collapsed .app-sidebar .sidebar-shell-toggle,
.app-shell.sidebar-shell-collapsed .app-sidebar .sidebar-shell-toggle {
    transform: none;
}

/* PATCH: Liste debitare - coloana Acțiuni este prima coloană și rămâne compactă. */
.cutting-lists-table .list-actions-col {
    width: 210px !important;
    min-width: 210px !important;
    max-width: 210px !important;
    text-align: center !important;
}
.cutting-lists-table .list-actions-buttons {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 4px;
}
.cutting-lists-table .list-actions-buttons .btn {
    padding: 2px 7px !important;
    font-size: .72rem !important;
    line-height: 1.2 !important;
    white-space: nowrap;
}


/* PATCH FINAL: Nr. este centrat pentru rânduri importate și rânduri noi. */
.cutting-table th.col-nr,
.cutting-table td.row-number-cell {
    text-align: center !important;
    vertical-align: middle !important;
}

/* PATCH FINAL: conturul roșu la Grosime Cant arată ca la inputurile normale. */
.cutting-table td.edge-thickness-cell.td-issue-error,
.cutting-table td.edge-thickness-cell.td-issue-warning {
    box-shadow: none !important;
}
.cutting-table td.edge-thickness-cell .edge-thickness-picker.cell-issue-error[readonly],
.cutting-table td.edge-thickness-cell .edge-thickness-picker.cell-issue-warning[readonly] {
    opacity: 1 !important;
    background: transparent !important;
    color: transparent !important;
    caret-color: transparent !important;
    pointer-events: auto;
}
.cutting-table td.edge-thickness-cell .edge-thickness-picker.cell-issue-error[readonly] {
    border-color: #dc3545 !important;
    box-shadow: inset 0 0 0 2px #dc3545 !important;
}
.cutting-table td.edge-thickness-cell .edge-thickness-picker.cell-issue-warning[readonly] {
    border-color: #ffc107 !important;
    box-shadow: inset 0 0 0 2px #ffc107 !important;
}
.cutting-table td.edge-thickness-cell .edge-thickness-picker.cell-issue-error[readonly]:focus {
    border-color: #dc3545 !important;
    box-shadow: inset 0 0 0 2px #dc3545, 0 0 0 .12rem rgba(220, 53, 69, .16) !important;
}
.cutting-table td.edge-thickness-cell .edge-thickness-picker.cell-issue-warning[readonly]:focus {
    border-color: #ffc107 !important;
    box-shadow: inset 0 0 0 2px #ffc107, 0 0 0 .12rem rgba(255, 193, 7, .22) !important;
}

/* PATCH FINAL: butoanele din Liste debitare sunt aliniate perfect pe aceeași linie. */
.cutting-lists-table .list-actions-buttons form {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
}
.cutting-lists-table .list-actions-buttons .btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 24px !important;
    vertical-align: middle !important;
}

/* Setări cont + furnizori favoriți */
.settings-card {
    border-radius: 16px;
    overflow: hidden;
}
.favorite-supplier-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: .55rem;
}
.favorite-supplier-card {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 42px;
    padding: .55rem .7rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.favorite-supplier-card:hover {
    border-color: #f59e0b;
    background: #fffbeb;
}
.favorite-supplier-card.is-selected {
    border-color: #f59e0b;
    background: #fffbeb;
    box-shadow: 0 5px 14px rgba(245, 158, 11, .13);
}
.favorite-supplier-star {
    color: #f59e0b;
    font-size: 15px;
    line-height: 1;
}
.favorite-supplier-name {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 600;
}
.favorite-supplier-order {
    font-size: 12px;
    color: #6b7280;
    background: #f3f4f6;
    border-radius: 999px;
    padding: .1rem .45rem;
}
.generation-supplier-inline-form .input-group {
    flex-wrap: nowrap;
}
.generation-supplier-inline-form select {
    min-width: 0;
}

/* Date listă - generare furnizor evidențiată */
.generation-supplier-panel {
    border: 1px solid #facc15;
    background: linear-gradient(135deg, #fffbeb 0%, #fff7ed 100%);
    border-radius: 12px;
    padding: .55rem .65rem;
    box-shadow: 0 8px 18px rgba(245, 158, 11, .12);
}
.generation-supplier-controls {
    display: flex;
    align-items: stretch;
    gap: .35rem;
    min-width: 0;
}
.generation-supplier-dropdown {
    flex: 1 1 auto;
    min-width: 0;
}
.generation-supplier-dropdown-button {
    width: 100%;
    text-align: left;
    border-color: #f59e0b;
    background: #fff;
    font-weight: 700;
    color: #1f2937;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.generation-supplier-dropdown-button::after {
    float: right;
    margin-top: .45rem;
}
.generation-supplier-dropdown-button.has-value {
    border-color: #16a34a;
    box-shadow: 0 0 0 .12rem rgba(22, 163, 74, .14);
}
.generation-supplier-menu {
    width: 100%;
    min-width: 260px;
    max-height: 320px;
    overflow-y: auto;
}
.generation-supplier-option {
    font-weight: 600;
}
.favorite-star-gold {
    color: #d97706;
    font-weight: 900;
    text-shadow: 0 1px 0 rgba(255,255,255,.65);
}
@media (max-width: 991.98px) {
    .generation-supplier-controls {
        flex-wrap: wrap;
    }
    .generation-supplier-dropdown {
        flex: 1 0 100%;
    }
}

/* Verificare furnizor inline în editare listă debitare */
.col-status-furnizor { width: 230px; min-width: 230px; }
.supplier-status-cell {
    font-size: .62rem;
    line-height: 1.05;
    max-width: 260px;
    overflow: hidden;
    vertical-align: middle;
}
.supplier-status-cell.status-ok { background: #e9f8ef !important; }
.supplier-status-cell.status-warning { background: #fff3cd !important; }
.supplier-status-cell.status-error { background: #ffecec !important; }
.supplier-status-cell.status-empty { background: #f8fafc !important; }
.supplier-status-message {
    display: inline;
    color: #334155;
}
.supplier-validation-summary {
    margin: 0;
    padding: 8px 12px;
    border-bottom: 1px solid #e2e8f0;
    font-size: .82rem;
}
.supplier-validation-ok {
    background: #ecfdf5;
    color: #14532d;
    border-left: 4px solid #22c55e;
}
.supplier-validation-warning {
    background: #fffbeb;
    color: #78350f;
    border-left: 4px solid #f59e0b;
}
.supplier-validation-error {
    background: #fef2f2;
    color: #7f1d1d;
    border-left: 4px solid #ef4444;
}

/* PATCH: acțiuni X2 / Taie în două și marcaje speciale pe rând. */
.col-actiuni { width: 105px !important; min-width: 105px !important; max-width: 105px !important; }
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 105px !important;
    min-width: 105px !important;
    max-width: 105px !important;
}
.action-buttons-grid {
    min-width: 96px !important;
    width: 96px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 3px !important;
}
.action-buttons-grid .action-duplicate-x2 {
    min-width: 27px !important;
    font-weight: 800 !important;
    color: #5b21b6 !important;
    border-color: #7c3aed !important;
    background: #f5f3ff !important;
}
.action-buttons-grid .action-cut-two {
    width: 27px !important;
    min-width: 27px !important;
    color: #c2410c !important;
    border-color: #f97316 !important;
    background: #fff7ed !important;
}
.action-buttons-grid .action-cut-two.active {
    color: #fff !important;
    background: #f97316 !important;
    border-color: #ea580c !important;
}
.cut-two-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 20px;
    height: auto;
    position: relative;
    vertical-align: middle;
    font-weight: 900;
    font-size: .72rem;
    line-height: 1;
    text-align: center;
}
.cut-two-icon::before,
.cut-two-icon::after {
    content: none !important;
    display: none !important;
}
.manual-duplicate-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 31px;
    height: 20px;
    border-radius: 5px;
    background: #f5f3ff;
    color: #6d28d9;
    border: 1px solid #a78bfa;
    font-size: .58rem;
    font-weight: 800;
}
.cutting-table tbody tr.manual-duplicate-material-row > td.row-number-cell {
    box-shadow: inset 4px 0 0 #7c3aed !important;
}
.cutting-table tbody tr.cut-in-two-row > td.row-number-cell {
    box-shadow: inset 4px 0 0 #f97316 !important;
}
.cutting-table tbody tr.import-duplicate-material-row.manual-duplicate-material-row > td.row-number-cell {
    box-shadow: inset 4px 0 0 #0d6efd, inset 8px 0 0 #7c3aed !important;
}
.cutting-table tbody tr.import-duplicate-material-row.cut-in-two-row > td.row-number-cell {
    box-shadow: inset 4px 0 0 #0d6efd, inset 8px 0 0 #f97316 !important;
}
.cutting-table tbody tr.manual-duplicate-material-row.cut-in-two-row > td.row-number-cell {
    box-shadow: inset 4px 0 0 #7c3aed, inset 8px 0 0 #f97316 !important;
}
.manual-duplicate-locked-cell,
.manual-duplicate-locked-cell:disabled {
    background: #f8fafc !important;
    color: #94a3b8 !important;
    cursor: not-allowed !important;
}
#duplicateMaterialModal .duplicate-mode-option.active {
    background: #0d6efd;
    color: #fff;
    border-color: #0d6efd;
}


/* Loading global reutilizabil pentru procese lungi */
.ldo-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, .34);
    backdrop-filter: blur(2px);
}
.ldo-loading-overlay.d-none { display: none !important; }
.ldo-loading-card {
    min-width: 230px;
    border-radius: 18px;
    padding: 1.35rem 1.5rem;
    background: #fff;
    box-shadow: 0 20px 55px rgba(15, 23, 42, .28);
    text-align: center;
    border: 1px solid rgba(226, 232, 240, .9);
}
.ldo-loading-spinner {
    width: 54px;
    height: 54px;
    border-radius: 999px;
    border: 5px solid #e5e7eb;
    border-top-color: #f59e0b;
    margin: 0 auto .8rem;
    animation: ldo-spin .8s linear infinite;
}
.ldo-loading-text {
    font-weight: 800;
    color: #1f2937;
    font-size: .95rem;
}
.ldo-loading-active { cursor: progress; }
@keyframes ldo-spin { to { transform: rotate(360deg); } }

/* PATCH: Editare listă - Denumire Placă fixă și alinieri corecte. */
.sticky-col-4 {
    left: var(--sticky-left-4, 259px);
    box-shadow: 6px 0 8px rgba(18, 28, 45, .06);
}
.cutting-table thead th.col-placa,
.cutting-table thead tr:first-child th.col-placa {
    text-align: center !important;
    justify-content: center;
}
.cutting-table thead .sticky-col-4 {
    z-index: 42;
    background: #e8edf4;
}
.cutting-table thead tr.grid-filter-row .sticky-col-4 {
    z-index: 41;
    background: #f8fafc !important;
}
.cutting-table tbody .sticky-col-4 {
    z-index: 6;
    background: #fff;
}
.cutting-table tbody tr:hover .sticky-col-4 {
    background-color: #fffaf0;
}
.cutting-table .new-row .sticky-col-4 {
    background: #fff3cd;
}
/* păstrează Acțiuni compact; previne spațiul alb dintre Acțiuni și Denumire Corp */
.col-actiuni { width: 105px !important; min-width: 105px !important; max-width: 105px !important; }
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 105px !important;
    min-width: 105px !important;
    max-width: 105px !important;
}

/* PATCH FINAL: Editare listă - zonă superioară compactă + rânduri cu înălțime fixă. */
.cutting-workspace .compact-list-header {
    padding: 2px 0 4px;
}
.cutting-workspace .compact-list-header h2 {
    line-height: 1.1;
}
.cutting-workspace .compact-list-header .text-muted.small,
.cutting-workspace .compact-list-header .autosave-state {
    font-size: .62rem;
}
.compact-action-bar .btn {
    padding: .18rem .45rem !important;
    font-size: .72rem !important;
    line-height: 1.15 !important;
    white-space: nowrap;
}
.compact-date-list-card .card-header {
    min-height: 26px !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
}
.compact-date-list-card .card-body {
    padding: 4px 8px !important;
}
.compact-date-list-card .form-label {
    font-size: .66rem;
    margin-bottom: 1px !important;
}
.compact-date-list-card .form-control-sm,
.compact-date-list-card .form-select-sm {
    min-height: 24px !important;
    height: 24px !important;
    padding: 1px 6px !important;
    border-radius: 6px !important;
    font-size: .72rem !important;
}
.compact-date-list-card .generation-supplier-panel {
    padding: .28rem .4rem !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}
.compact-date-list-card .generation-supplier-panel .form-label {
    display: none;
}
.compact-date-list-card .generation-supplier-controls .btn,
.compact-date-list-card .generation-supplier-dropdown-button {
    min-height: 24px !important;
    padding: 1px 7px !important;
    font-size: .72rem !important;
}
.compact-date-toggle {
    color: #1f2937 !important;
    font-size: .78rem !important;
}
.compact-date-list-card.is-collapsed {
    margin-bottom: 4px !important;
}
.compact-danger-btn {
    padding: 1px 7px !important;
    font-size: .68rem !important;
}
.cutting-grid-card .card-header.grid-toolbar {
    padding: 4px 8px !important;
    min-height: 30px;
}
.grid-toolbar .input-group-text,
.grid-toolbar .form-control,
.grid-toolbar .form-select {
    min-height: 24px !important;
    height: 24px !important;
    font-size: .68rem !important;
    padding-top: 1px !important;
    padding-bottom: 1px !important;
}
.cutting-table th,
.cutting-table td {
    height: 24px !important;
    max-height: 24px !important;
    overflow: hidden !important;
}
.cutting-table .grid-cell,
.cutting-table .grid-select {
    height: 21px !important;
    min-height: 21px !important;
    max-height: 21px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.cutting-table td,
.cutting-table td *:not(.cell-suggestions-popup *) {
    white-space: nowrap;
}
.cutting-table .row-status-message,
.cutting-table .supplier-status-message,
.cutting-table .grid-readonly-value,
.cutting-table .material-import-badge,
.cutting-table .edge-selected-value,
.cutting-table .edge-import-badge {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

/* PATCH FINAL: X2 - marcaj violet pe rândul sursă și pe dublură, buton X2 folosit. */
.cutting-table tbody tr.manual-duplicate-source-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-source-row > .sticky-col-1,
.cutting-table tbody tr.manual-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-material-row > .sticky-col-1 {
    box-shadow: inset 4px 0 0 #7c3aed !important;
}
.action-buttons-grid .action-duplicate-x2.x2-used,
.action-buttons-grid .action-duplicate-x2.x2-used:disabled {
    color: #fff !important;
    border-color: #7c3aed !important;
    background: #7c3aed !important;
    opacity: .95 !important;
    cursor: not-allowed !important;
}
.manual-duplicate-locked-cell,
.manual-duplicate-locked-cell:disabled {
    background: #f8fafc !important;
    color: #64748b !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

/* PATCH FINAL: coloana Acțiuni mai îngustă. */
.col-actiuni,
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 90px !important;
    min-width: 90px !important;
    max-width: 90px !important;
}
.action-buttons-grid {
    min-width: 82px !important;
    width: 82px !important;
    gap: 2px !important;
}
.action-buttons-grid .action-duplicate-x2,
.action-buttons-grid .action-cut-two {
    width: 24px !important;
    min-width: 24px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.action-buttons-grid .action-delete-btn {
    width: 20px !important;
    min-width: 20px !important;
}

@media (max-width: 991.98px) {
    .app-content-wide { padding: 8px !important; }
    .compact-action-bar { width: 100%; }
    .compact-action-bar .btn { flex: 1 1 auto; }
    .compact-date-list-card .row.g-2 { --bs-gutter-y: .25rem; }
}

/* PATCH 2026-06-14: corecții finale editare listă */
/* Zona de sus rămâne compactă, dar fontul este un pic mai lizibil. */
.cutting-workspace .compact-list-header .text-muted.small,
.cutting-workspace .compact-list-header .autosave-state {
    font-size: .70rem !important;
}
.compact-action-bar .btn {
    font-size: .78rem !important;
    padding: .22rem .5rem !important;
}
.compact-date-list-card .form-label {
    font-size: .72rem !important;
}
.compact-date-list-card .form-control-sm,
.compact-date-list-card .form-select-sm,
.compact-date-list-card .generation-supplier-controls .btn,
.compact-date-list-card .generation-supplier-dropdown-button {
    font-size: .78rem !important;
    min-height: 26px !important;
    height: 26px !important;
}
.compact-date-toggle {
    font-size: .84rem !important;
}
.compact-danger-btn {
    font-size: .74rem !important;
}

/* Nu mai afișăm linii violet/oranj pe stânga pentru X2 / Taie în două. Evidențierea rămâne în butoane. */
.cutting-table tbody tr.manual-duplicate-source-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-source-row > .sticky-col-1,
.cutting-table tbody tr.manual-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-material-row > .sticky-col-1,
.cutting-table tbody tr.cut-in-two-row > td.row-number-cell,
.cutting-table tbody tr.cut-in-two-row > .sticky-col-1 {
    box-shadow: none !important;
}

/* Singurul marcaj special rămas este albastru pentru rândurile dublate/venite din import. */
.cutting-table tbody tr.import-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.import-duplicate-material-row > .sticky-col-1 {
    box-shadow: inset 4px 0 0 #0d6efd !important;
}

/* Dacă rândul are status linie, păstrăm marcajul de status doar pentru rândurile normale. */
.cutting-table tbody tr:not(.manual-duplicate-source-row):not(.manual-duplicate-material-row):not(.cut-in-two-row).row-severity-ok > td.row-number-cell,
.cutting-table tbody tr:not(.manual-duplicate-source-row):not(.manual-duplicate-material-row):not(.cut-in-two-row).row-severity-ok > .sticky-col-1 { box-shadow: inset 4px 0 0 #22c55e; }
.cutting-table tbody tr:not(.manual-duplicate-source-row):not(.manual-duplicate-material-row):not(.cut-in-two-row).row-severity-warning > td.row-number-cell,
.cutting-table tbody tr:not(.manual-duplicate-source-row):not(.manual-duplicate-material-row):not(.cut-in-two-row).row-severity-warning > .sticky-col-1 { box-shadow: inset 4px 0 0 #f59e0b; }
.cutting-table tbody tr:not(.manual-duplicate-source-row):not(.manual-duplicate-material-row):not(.cut-in-two-row).row-severity-error > td.row-number-cell,
.cutting-table tbody tr:not(.manual-duplicate-source-row):not(.manual-duplicate-material-row):not(.cut-in-two-row).row-severity-error > .sticky-col-1 { box-shadow: inset 4px 0 0 #ef4444; }

/* Fibra folosește doar popup-ul nostru, nu dropdown nativ dublat. */
.grid-fibra-picker {
    cursor: pointer !important;
    background: transparent !important;
}

/* Bara permanentă de status deasupra tabelului. */
.supplier-validation-summary.supplier-validation-live {
    display: block !important;
    padding: 6px 10px !important;
    font-size: .82rem !important;
    line-height: 1.25;
}

/* Scroll-ul orizontal trebuie să rămână activ după verificare/status. */
.cutting-table-wrap {
    overflow-x: auto !important;
    overflow-y: auto !important;
}
.cutting-table tbody tr.import-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.import-duplicate-material-row > .sticky-col-1 {
    box-shadow: inset 4px 0 0 #0d6efd !important;
}

/* PATCH 2026-06-14: bara de acțiuni mutată sub titlu, aliniată stânga, cu furnizor/verifică/generează lângă importuri. */
.cutting-workspace .compact-list-header {
    display: block !important;
    padding-bottom: 6px !important;
}
.compact-list-title-block {
    min-width: 0;
}
.compact-action-bar {
    width: 100%;
    justify-content: flex-start !important;
    align-items: center !important;
}
.compact-action-bar .btn,
.compact-generation-form .btn,
.compact-generation-form .generation-supplier-dropdown-button {
    font-size: .82rem !important;
    min-height: 28px !important;
    height: 28px !important;
    padding: .23rem .55rem !important;
    line-height: 1.15 !important;
}
.compact-generation-form {
    display: inline-flex;
    align-items: center;
    margin: 0;
    min-width: 360px;
    max-width: 520px;
}
.compact-generation-controls {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .3rem;
}
.compact-generation-dropdown {
    flex: 1 1 190px;
    min-width: 180px;
}
.compact-action-bar .generation-supplier-menu {
    min-width: 260px;
}
@media (max-width: 991.98px) {
    .compact-generation-form {
        flex: 1 1 100%;
        max-width: none;
        min-width: 0;
    }
    .compact-generation-controls {
        flex-wrap: nowrap;
    }
    .compact-generation-dropdown {
        flex: 1 1 auto;
        min-width: 170px;
    }
}

/* PATCH 2026-06-14: după ștergere dublură, butonul X2 redevine apăsabil și vizual normal. */
.action-buttons-grid .action-duplicate-x2:not(.x2-used):not(:disabled) {
    cursor: pointer !important;
    opacity: 1 !important;
}

/* PATCH FINAL STATUS AUTOMAT: elimină liniile X2/Taie în două; rămâne doar marcajul albastru de import. */
.cutting-table tbody tr.manual-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-material-row > .sticky-col-1,
.cutting-table tbody tr.manual-duplicate-source-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-source-row > .sticky-col-1,
.cutting-table tbody tr.cut-in-two-row > td.row-number-cell,
.cutting-table tbody tr.cut-in-two-row > .sticky-col-1,
.cutting-table tbody tr.import-duplicate-material-row.manual-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.import-duplicate-material-row.cut-in-two-row > td.row-number-cell,
.cutting-table tbody tr.manual-duplicate-material-row.cut-in-two-row > td.row-number-cell {
    box-shadow: none !important;
}
.cutting-table tbody tr.import-duplicate-material-row > td.row-number-cell,
.cutting-table tbody tr.import-duplicate-material-row > .sticky-col-1 {
    box-shadow: inset 4px 0 0 #0d6efd !important;
}
.action-buttons-grid .action-duplicate-x2.x2-used,
.action-buttons-grid .action-duplicate-x2:disabled.x2-used {
    color: #fff !important;
    background: #7c3aed !important;
    border-color: #6d28d9 !important;
    opacity: 1 !important;
}
.print-list-button,
.compact-action-bar .print-list-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
.supplier-validation-summary.supplier-validation-live {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    padding: 7px 10px !important;
    font-size: .84rem !important;
    line-height: 1.25 !important;
}
.status-summary-line,
.status-summary-supplier {
    display: block;
    white-space: normal;
}
.status-summary-line-ok,
.status-summary-supplier-ok { color: #14532d; }
.status-summary-line-warning,
.status-summary-supplier-warning { color: #78350f; }
.status-summary-line-error,
.status-summary-supplier-error { color: #7f1d1d; }
.status-summary-supplier-pending { color: #0f172a; }
.status-summary-supplier-empty { color: #64748b; }
.status-summary-global {
    border-top: 1px solid rgba(148, 163, 184, .35);
    padding-top: 3px;
}

/* PATCH 2026-06-14: status filters, active row and smooth X2 insert. */
.import-map-main-actions .card-body,
.import-final-actions-card .card-body {
    justify-content: flex-start !important;
}
.status-summary-row {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
}
.status-filter-toggle {
    padding: 2px 8px !important;
    line-height: 1.15 !important;
    font-size: .74rem !important;
    white-space: nowrap !important;
}
.status-filter-toggle.active {
    color: #fff !important;
    background: #dc3545 !important;
    border-color: #dc3545 !important;
}
.cutting-table tbody tr.ldo-active-row > td,
.cutting-table tbody tr.ldo-active-row > td.sticky-col {
    background-color: #fff7cc !important;
    box-shadow: inset 0 0 0 1px rgba(245, 158, 11, .55) !important;
}
.cutting-table tbody tr.ldo-active-row input.grid-cell:not(:disabled) {
    border-color: #f59e0b !important;
    box-shadow: 0 0 0 .12rem rgba(245, 158, 11, .24) !important;
}
.cutting-table tbody tr.x2-new-row-highlight > td,
.cutting-table tbody tr.x2-new-row-highlight > td.sticky-col {
    animation: ldoX2InsertedRow 1.6s ease-out;
}
@keyframes ldoX2InsertedRow {
    0% { background-color: #ede9fe; }
    45% { background-color: #f5f3ff; }
    100% { background-color: inherit; }
}
.ldo-auto-dismiss-alert {
    overflow: hidden;
}

/* PATCH 2026-06-14: status buttons left and generation warning modal. */
.status-summary-row strong {
    flex: 1 1 auto;
    text-align: left;
}
.generate-warning-modal .modal-body {
    font-size: .98rem;
}


/* PATCH 2026-06-14: ignorare manuală rânduri listă debitare. */
.cutting-table tbody tr.manually-ignored-row > td,
.cutting-table tbody tr.manually-ignored-row > td.sticky-col {
    background-color: #f8fafc !important;
    color: #64748b !important;
    opacity: .86;
}
.cutting-table tbody tr.manually-ignored-row input.grid-cell,
.cutting-table tbody tr.manually-ignored-row select.grid-cell {
    color: #64748b !important;
    background-color: #f8fafc !important;
}
.action-ignore-row.active,
.action-ignore-row.active:hover {
    color: #fff !important;
    background-color: #64748b !important;
    border-color: #64748b !important;
}
.cutting-table tbody tr.row-severity-ignored > td.row-number-cell,
.cutting-table tbody tr.row-severity-ignored > .sticky-col-1 {
    box-shadow: inset 4px 0 0 #94a3b8 !important;
}

/* PATCH 2026-06-14: Acțiuni cu 4 butoane + simbol ignorare. */
.col-actiuni,
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 128px !important;
    min-width: 128px !important;
    max-width: 128px !important;
}
.action-buttons-grid {
    min-width: 120px !important;
    width: 120px !important;
    gap: 3px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}
.action-buttons-grid .action-duplicate-x2,
.action-buttons-grid .action-cut-two,
.action-buttons-grid .action-ignore-row {
    width: 28px !important;
    min-width: 28px !important;
    height: 24px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
.action-buttons-grid .action-ignore-row {
    font-weight: 800 !important;
    color: #475569 !important;
    border-color: #94a3b8 !important;
    background: #f8fafc !important;
}
.action-buttons-grid .action-ignore-row.active {
    color: #fff !important;
    border-color: #64748b !important;
    background: #64748b !important;
}
.action-buttons-grid .action-delete-btn {
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
.manual-duplicate-chip {
    min-width: 30px !important;
    height: 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* PATCH X2 final: Acțiuni suficient de lată pentru X2 / taie / ignoră / șterge. */
.col-actiuni,
.cutting-table th.col-actiuni,
.cutting-table td.actions-cell {
    width: 142px !important;
    min-width: 142px !important;
    max-width: 142px !important;
}
.action-buttons-grid {
    min-width: 132px !important;
    width: 132px !important;
    gap: 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
}
.action-buttons-grid .action-duplicate-x2,
.action-buttons-grid .action-cut-two,
.action-buttons-grid .action-ignore-row {
    width: 30px !important;
    min-width: 30px !important;
    height: 24px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
.action-buttons-grid .action-delete-btn {
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

/* PATCH 2026-06-14: colorare separată doar pentru cele două bare de status de sus. Nu modifică fundalul rândurilor original/X2 din tabel. */
.supplier-validation-summary.supplier-validation-live {
    background: transparent !important;
    border-left: 0 !important;
    color: inherit !important;
}
.status-summary-row {
    border: 1px solid transparent !important;
    border-left-width: 4px !important;
    border-radius: 8px !important;
    padding: 5px 8px !important;
}
.status-summary-line-ok,
.status-summary-supplier-ok {
    background: #ecfdf5 !important;
    border-color: #bbf7d0 !important;
    border-left-color: #22c55e !important;
    color: #14532d !important;
}
.status-summary-line-warning,
.status-summary-supplier-warning {
    background: #fffbeb !important;
    border-color: #fde68a !important;
    border-left-color: #f59e0b !important;
    color: #78350f !important;
}
.status-summary-line-error,
.status-summary-supplier-error {
    background: #fef2f2 !important;
    border-color: #fecaca !important;
    border-left-color: #ef4444 !important;
    color: #7f1d1d !important;
}
.status-summary-supplier-pending {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    border-left-color: #3b82f6 !important;
    color: #1e3a8a !important;
}
.status-summary-supplier-empty {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
    border-left-color: #94a3b8 !important;
    color: #475569 !important;
}

/* PATCH: landing page public + meniu hamburger mobil. */
.public-body {
    background: #f4f7fb;
}
.public-navbar {
    position: sticky;
    top: 0;
    z-index: 1050;
    backdrop-filter: blur(14px);
}
.public-nav-menu {
    display: flex;
    align-items: center;
    gap: 14px;
}
.public-nav-menu > a:not(.btn) {
    color: #334155;
    font-size: .92rem;
    font-weight: 800;
}
.public-nav-menu > a:not(.btn):hover {
    color: #111827;
}
.public-menu-toggle,
.mobile-app-menu-toggle {
    width: 42px;
    height: 42px;
    border: 1px solid var(--ldo-border);
    background: #fff;
    border-radius: 12px;
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    padding: 0;
}
.public-menu-toggle span,
.mobile-app-menu-toggle span {
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #111827;
    display: block;
}
.public-content-wide {
    max-width: none;
    padding: 0;
}
.landing-hero {
    max-width: 1180px;
    margin: 26px auto 0;
    padding: 48px;
    border-radius: 32px;
    background: radial-gradient(circle at 18% 14%, rgba(255,193,7,.34), transparent 27%), linear-gradient(135deg, #151a22 0%, #293444 100%);
    color: #fff;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(330px, .92fr);
    gap: 34px;
    align-items: center;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .16);
}
.landing-eyebrow {
    display: inline-flex;
    align-items: center;
    color: #111827;
    background: var(--ldo-accent);
    border-radius: 999px;
    padding: 7px 12px;
    font-size: .78rem;
    font-weight: 900;
    margin-bottom: 18px;
}
.landing-eyebrow.dark {
    color: #111827;
    background: var(--ldo-accent-soft);
}
.landing-hero h1 {
    font-size: clamp(2.15rem, 5vw, 4.4rem);
    line-height: .98;
    letter-spacing: -.055em;
    font-weight: 900;
    margin: 0 0 20px;
}
.landing-hero p {
    color: rgba(255,255,255,.76);
    font-size: 1.08rem;
    line-height: 1.7;
    max-width: 720px;
    margin: 0;
}
.landing-actions {
    margin-top: 26px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.landing-trust-row {
    margin-top: 24px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.landing-trust-row span {
    color: rgba(255,255,255,.78);
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    padding: 7px 10px;
    font-size: .86rem;
    font-weight: 750;
}
.landing-window {
    background: rgba(255,255,255,.95);
    color: #111827;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 22px 48px rgba(0,0,0,.22);
    border: 1px solid rgba(255,255,255,.32);
}
.landing-window-top {
    height: 42px;
    background: #e8edf4;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
}
.landing-window-top span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #94a3b8;
}
.landing-window-top span:first-child { background: #ef4444; }
.landing-window-top span:nth-child(2) { background: #f59e0b; }
.landing-window-top span:nth-child(3) { background: #22c55e; }
.landing-window-body {
    padding: 18px;
    display: grid;
    gap: 12px;
}
.landing-status-card {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: .9rem;
}
.landing-status-card.ok { background: #eafaf0; }
.landing-status-card.warn { background: #fff7df; }
.landing-table-preview {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    font-size: .82rem;
}
.landing-table-preview > div {
    display: grid;
    grid-template-columns: 1.5fr .55fr .55fr 1fr;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid #edf2f7;
}
.landing-table-preview > div:first-child {
    background: #f8fafc;
    color: #475569;
}
.landing-table-preview > div:last-child { border-bottom: 0; }
.landing-section,
.landing-split,
.landing-cta {
    max-width: 1180px;
    margin: 28px auto 0;
}
.landing-section,
.landing-split,
.landing-cta {
    padding: 0 16px;
}
.landing-section-heading {
    text-align: center;
    margin: 48px auto 24px;
    max-width: 740px;
}
.landing-section-heading span {
    color: #b18400;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
}
.landing-section-heading h2,
.landing-split h2,
.landing-cta h2 {
    color: #111827;
    font-weight: 900;
    letter-spacing: -.035em;
    margin-top: 8px;
}
.landing-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.landing-feature-card,
.landing-advantage-grid > div,
.landing-split,
.landing-cta {
    background: #fff;
    border: 1px solid var(--ldo-border);
    border-radius: 24px;
    box-shadow: var(--ldo-shadow);
}
.landing-feature-card {
    padding: 22px;
}
.landing-converter-card {
    margin-top: 18px;
    padding: 26px;
    border-radius: 26px;
    background: linear-gradient(135deg, #111827 0%, #1f2937 55%, #b18400 140%);
    color: #fff;
    box-shadow: 0 22px 48px rgba(15, 23, 42, .20);
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .85fr);
    gap: 24px;
    align-items: center;
    overflow: hidden;
    position: relative;
}
.landing-converter-card::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    right: -72px;
    top: -86px;
}
.landing-converter-copy,
.landing-converter-points {
    position: relative;
    z-index: 1;
}
.landing-converter-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    padding: 7px 11px;
    background: rgba(250, 204, 21, .18);
    border: 1px solid rgba(250, 204, 21, .42);
    color: #fde68a;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 12px;
}
.landing-converter-card h3 {
    font-size: clamp(1.45rem, 2.4vw, 2.2rem);
    line-height: 1.08;
    letter-spacing: -.04em;
    font-weight: 950;
    margin: 0 0 12px;
}
.landing-converter-card p {
    color: rgba(255,255,255,.78);
    line-height: 1.68;
    margin: 0 0 14px;
}
.landing-converter-card strong {
    color: #fff;
    font-size: 1.02rem;
}
.landing-converter-points {
    display: grid;
    gap: 10px;
}
.landing-converter-points div {
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 17px;
    padding: 12px 13px;
    background: rgba(255,255,255,.11);
    border: 1px solid rgba(255,255,255,.16);
    color: rgba(255,255,255,.92);
    font-weight: 850;
}
.landing-converter-points span {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #facc15;
    color: #111827;
    font-weight: 950;
}
.landing-feature-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ldo-accent-soft);
    color: #111827;
    font-weight: 900;
    margin-bottom: 14px;
}
.landing-feature-card h3 {
    font-size: 1.05rem;
    font-weight: 900;
    letter-spacing: -.02em;
}
.landing-feature-card p,
.landing-split p,
.landing-cta p {
    color: #64748b;
    line-height: 1.65;
    margin-bottom: 0;
}
.landing-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    padding: 30px;
    align-items: center;
}
.landing-check-list {
    display: grid;
    gap: 10px;
}
.landing-check-list div {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 13px 14px;
    font-weight: 800;
    color: #334155;
}
.landing-check-list div::before {
    content: "✓";
    color: #16a34a;
    font-weight: 900;
    margin-right: 9px;
}
.landing-advantage-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.landing-advantage-grid > div {
    padding: 18px;
    display: grid;
    gap: 4px;
}
.landing-advantage-grid strong {
    color: #111827;
    font-size: 1.05rem;
}
.landing-advantage-grid span {
    color: #64748b;
    font-size: .92rem;
}
.landing-cta {
    text-align: center;
    padding: 36px 20px;
    margin-bottom: 42px;
}
.mobile-app-sidebar-backdrop {
    display: none;
}

@media (max-width: 991.98px) {
    .public-menu-toggle,
    .mobile-app-menu-toggle {
        display: inline-flex;
    }
    .public-navbar {
        height: 66px;
        padding: 0 16px;
    }
    .public-nav-menu {
        position: absolute;
        top: calc(100% + 8px);
        left: 12px;
        right: 12px;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        background: #fff;
        border: 1px solid var(--ldo-border);
        border-radius: 20px;
        padding: 14px;
        box-shadow: 0 18px 42px rgba(15,23,42,.14);
    }
    .public-nav-menu.is-open { display: flex; }
    .public-nav-menu > a:not(.btn) {
        padding: 10px 12px;
        border-radius: 12px;
        background: #f8fafc;
    }
    .landing-hero {
        grid-template-columns: 1fr;
        margin: 14px 12px 0;
        padding: 28px 20px;
        border-radius: 26px;
    }
    .landing-hero-panel { order: 2; }
    .landing-feature-grid,
    .landing-advantage-grid,
    .landing-split,
    .landing-converter-card {
        grid-template-columns: 1fr;
    }
    .landing-converter-card {
        padding: 22px;
    }
    .landing-section-heading { margin-top: 34px; }

    body.has-app-shell .app-shell {
        display: block !important;
    }
    body.has-app-shell .app-sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(86vw, 330px) !important;
        min-width: 0 !important;
        max-width: min(86vw, 330px) !important;
        height: 100vh !important;
        min-height: 100vh !important;
        border-radius: 0 24px 24px 0 !important;
        padding: 18px 16px !important;
        transform: translateX(-108%);
        transition: transform .22s ease !important;
        z-index: 1080 !important;
        overflow-y: auto !important;
        box-shadow: 24px 0 48px rgba(15,23,42,.24);
    }
    body.has-app-shell.mobile-app-menu-open .app-sidebar {
        transform: translateX(0);
    }
    body.has-app-shell .mobile-app-sidebar-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .52);
        z-index: 1070;
        display: none;
    }
    body.has-app-shell.mobile-app-menu-open .mobile-app-sidebar-backdrop {
        display: block;
    }
    body.has-app-shell .app-main {
        width: 100%;
    }
    body.has-app-shell .app-topbar {
        position: sticky !important;
        top: 0;
        min-height: 66px;
        padding: 12px 14px !important;
        gap: 10px;
        flex-wrap: nowrap;
    }
    body.has-app-shell .topbar-title-block {
        min-width: 0;
    }
    body.has-app-shell .page-kicker {
        display: none;
    }
    body.has-app-shell .page-title {
        font-size: 1.08rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    body.has-app-shell .topbar-actions {
        width: auto !important;
        margin-left: auto;
        justify-content: flex-end !important;
    }
    body.has-app-shell .user-pill {
        display: none;
    }
    body.has-app-shell .app-content {
        padding: 14px !important;
    }
    body.has-app-shell .sidebar-nav {
        grid-template-columns: 1fr !important;
    }
    body.has-app-shell .app-sidebar .sidebar-shell-toggle {
        display: none !important;
    }
}

@media (max-width: 575.98px) {
    .landing-hero h1 { font-size: 2.18rem; }
    .landing-actions .btn { width: 100%; }
    .landing-trust-row { display: grid; }
    .landing-window-body { padding: 12px; }
    .landing-table-preview { font-size: .72rem; }
    .landing-status-card { align-items: flex-start; flex-direction: column; }
    .landing-split { padding: 20px; }
}

/* PATCH FIX: pe telefon meniul hamburger are prioritate peste starea desktop collapsed. */
@media (max-width: 991.98px) {
    html.sidebar-shell-collapsed body.has-app-shell .app-sidebar,
    body.sidebar-shell-collapsed.has-app-shell .app-sidebar,
    body.has-app-shell .app-shell.sidebar-shell-collapsed .app-sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(86vw, 330px) !important;
        min-width: 0 !important;
        max-width: min(86vw, 330px) !important;
        flex-basis: auto !important;
        height: 100vh !important;
        min-height: 100vh !important;
        padding: 18px 16px !important;
        transform: translateX(-108%);
        border-radius: 0 24px 24px 0 !important;
        overflow-y: auto !important;
    }
    html.sidebar-shell-collapsed body.has-app-shell.mobile-app-menu-open .app-sidebar,
    body.sidebar-shell-collapsed.has-app-shell.mobile-app-menu-open .app-sidebar,
    body.has-app-shell.mobile-app-menu-open .app-shell.sidebar-shell-collapsed .app-sidebar {
        transform: translateX(0) !important;
    }
    html.sidebar-shell-collapsed body.has-app-shell .app-sidebar .brand,
    body.sidebar-shell-collapsed.has-app-shell .app-sidebar .brand,
    body.has-app-shell .app-shell.sidebar-shell-collapsed .app-sidebar .brand {
        justify-content: flex-start !important;
    }
    html.sidebar-shell-collapsed body.has-app-shell .app-sidebar .brand > span:not(.brand-mark),
    body.sidebar-shell-collapsed.has-app-shell .app-sidebar .brand > span:not(.brand-mark),
    body.has-app-shell .app-shell.sidebar-shell-collapsed .app-sidebar .brand > span:not(.brand-mark) {
        display: inline-block !important;
    }
}

.impersonation-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 18px;
    background: #fff3cd;
    border-bottom: 1px solid #f1d48a;
    color: #4f3700;
}

@media (max-width: 768px) {
    .impersonation-banner {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Admin conturi - acțiuni vizibile și impersonare client */
.admin-conturi-actions-cell {
    min-width: 340px;
}

.admin-conturi-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    justify-content: flex-end;
    align-items: center;
}

.admin-impersonare-btn {
    color: #111827 !important;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0,0,0,.12);
}

.admin-impersonare-btn:disabled {
    opacity: .55;
    cursor: not-allowed;
}

@media (max-width: 992px) {
    .admin-conturi-actions-cell {
        min-width: 260px;
    }
    .admin-conturi-actions {
        justify-content: flex-start;
    }
}

/* Tutoriale client: pagină publică + disponibilă din orice cont */
.landing-tutorial-grid,
.tutorial-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.landing-tutorial-card,
.tutorial-mini-card {
    background: #fff;
    border: 1px solid var(--ldo-border);
    border-radius: 24px;
    box-shadow: var(--ldo-shadow);
    padding: 20px;
    color: #111827;
    display: grid;
    gap: 8px;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.landing-tutorial-card:hover,
.tutorial-mini-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 193, 7, .55);
    box-shadow: 0 18px 44px rgba(15,23,42,.13);
    color: #111827;
}
.landing-tutorial-card h3,
.tutorial-mini-card strong {
    margin: 0;
    font-weight: 900;
    letter-spacing: -.02em;
}
.landing-tutorial-card p,
.tutorial-mini-card small {
    color: #64748b;
    line-height: 1.55;
}
.landing-tutorial-card a {
    font-weight: 900;
    color: #b18400;
}

.tutorial-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 22px;
    align-items: stretch;
    border-radius: 28px;
    padding: 30px;
    background: radial-gradient(circle at 15% 18%, rgba(255,193,7,.24), transparent 30%), linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid var(--ldo-border);
    box-shadow: var(--ldo-shadow);
    margin-bottom: 22px;
}
.tutorial-hero h1 {
    color: #111827;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1.02;
    letter-spacing: -.055em;
    font-weight: 950;
    margin: 0 0 14px;
}
.tutorial-hero p {
    color: #526173;
    font-size: 1.04rem;
    line-height: 1.72;
    max-width: 780px;
    margin: 0;
}
.tutorial-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}
.tutorial-hero-stats div {
    min-width: 140px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #e2e8f0;
    padding: 13px 15px;
    display: grid;
    box-shadow: 0 8px 18px rgba(15,23,42,.05);
}
.tutorial-hero-stats strong {
    color: #111827;
    font-size: 1.25rem;
    font-weight: 950;
}
.tutorial-hero-stats span {
    color: #64748b;
    font-size: .82rem;
    font-weight: 750;
}
.tutorial-video-card,
.tutorial-video-placeholder {
    min-height: 100%;
}
.tutorial-video-placeholder {
    border-radius: 24px;
    background: linear-gradient(145deg, #111827, #263242);
    color: #fff;
    border: 1px solid rgba(255,255,255,.10);
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 10px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}
.tutorial-video-placeholder span {
    width: 64px;
    height: 64px;
    border-radius: 999px;
    background: var(--ldo-accent);
    color: #111827;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
    font-size: 1.45rem;
    box-shadow: 0 12px 28px rgba(255,193,7,.22);
}
.tutorial-video-placeholder strong {
    font-size: 1.1rem;
}
.tutorial-video-placeholder small {
    color: rgba(255,255,255,.72);
    line-height: 1.55;
}
.tutorial-video-placeholder.small-placeholder {
    min-height: 260px;
    padding: 22px;
}
.tutorial-toolbar .card-body {
    padding: 18px;
}
.tutorial-category-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.tutorial-section-title {
    margin: 20px 0 14px;
}
.tutorial-section-title span {
    color: #b18400;
    font-size: .76rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.tutorial-section-title h2 {
    margin: 4px 0 0;
    color: #111827;
    font-weight: 950;
    letter-spacing: -.035em;
}
.tutorial-mini-card {
    min-height: 185px;
}
.tutorial-mini-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--ldo-accent-soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #111827;
    font-weight: 950;
}
.tutorial-mini-card em {
    color: #b18400;
    font-style: normal;
    font-size: .78rem;
    font-weight: 900;
    margin-top: auto;
}
.tutorial-accordion {
    display: grid;
    gap: 12px;
}
.tutorial-accordion .accordion-item {
    border: 1px solid var(--ldo-border);
    border-radius: 22px !important;
    overflow: hidden;
    box-shadow: var(--ldo-shadow);
}
.tutorial-accordion .accordion-button {
    gap: 14px;
    padding: 16px 18px;
    background: #fff;
    box-shadow: none;
}
.tutorial-accordion .accordion-button:not(.collapsed) {
    background: #fff9e6;
    color: #111827;
}
.tutorial-heading-icon {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--ldo-accent);
    color: #111827;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
    font-size: .9rem;
}
.tutorial-heading-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.tutorial-heading-copy strong {
    font-size: 1.02rem;
    font-weight: 950;
    letter-spacing: -.02em;
}
.tutorial-heading-copy small {
    color: #64748b;
    white-space: normal;
    line-height: 1.35;
}
.tutorial-heading-meta {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.tutorial-heading-meta span {
    border-radius: 999px;
    background: #eef2f6;
    color: #475569;
    padding: 5px 9px;
    font-size: .72rem;
    font-weight: 900;
    white-space: nowrap;
}
.tutorial-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 20px;
}
.tutorial-detail-grid h3,
.tutorial-side-notes h4 {
    font-weight: 950;
    color: #111827;
    letter-spacing: -.02em;
}
.tutorial-steps {
    counter-reset: tutorial-step;
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}
.tutorial-steps li {
    position: relative;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
    padding: 12px 12px 12px 54px;
}
.tutorial-steps li::before {
    counter-increment: tutorial-step;
    content: counter(tutorial-step);
    position: absolute;
    left: 13px;
    top: 13px;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: var(--ldo-accent);
    color: #111827;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
}
.tutorial-steps strong {
    display: block;
    color: #111827;
    font-weight: 950;
    margin-bottom: 3px;
}
.tutorial-steps span {
    color: #526173;
    line-height: 1.55;
}
.tutorial-side-notes {
    display: grid;
    gap: 12px;
    align-content: start;
}
.tutorial-note-box {
    border-radius: 18px;
    padding: 14px;
    border: 1px solid #e2e8f0;
}
.tutorial-note-box.good { background: #ecfdf3; border-color: #bbf7d0; }
.tutorial-note-box.warn { background: #fff7ed; border-color: #fed7aa; }
.tutorial-note-box ul {
    margin: 0;
    padding-left: 18px;
    color: #475569;
    line-height: 1.55;
}
.tutorial-future-video {
    background: linear-gradient(135deg, #fff 0%, #fff8df 100%);
}
.tutorial-video-embed iframe {
    border: 0;
    border-radius: 18px;
}

@media (max-width: 991.98px) {
    .landing-tutorial-grid,
    .tutorial-card-grid,
    .tutorial-hero,
    .tutorial-detail-grid {
        grid-template-columns: 1fr;
    }
    .tutorial-heading-meta {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .tutorial-hero { padding: 20px; border-radius: 22px; }
    .tutorial-hero-stats { display: grid; }
    .tutorial-accordion .accordion-button { align-items: flex-start; padding: 14px; }
    .tutorial-heading-icon { width: 38px; height: 38px; flex-basis: 38px; }
    .tutorial-video-placeholder { padding: 20px; }
    .tutorial-steps li { padding-left: 48px; }
}

/* Responsive liste debitare + conturi */
.sidebar-link-disabled {
    opacity: .62;
    cursor: not-allowed;
    background: rgba(148, 163, 184, .12);
}
.sidebar-link-disabled small {
    font-size: .72rem;
    font-weight: 700;
    opacity: .8;
}
.cutting-lists-mobile-cards,
.admin-client-mobile-cards {
    display: none;
}
.cutting-list-card-mobile,
.admin-client-mobile-card {
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 14px;
    margin: 12px;
    background: #fff;
}
.cutting-list-card-title {
    color: #111827;
    line-height: 1.25;
}
.cutting-list-card-number {
    border-top: 1px dashed #e5e7eb;
    padding-top: 8px;
}
.admin-client-mobile-card {
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}
@media (max-width: 767.98px) {
    .cutting-lists-table-wrap,
    .admin-client-table-card {
        display: none;
    }
    .cutting-lists-mobile-cards,
    .admin-client-mobile-cards {
        display: grid;
        gap: 0;
    }
    .list-table-scroll {
        overflow: visible;
    }
}


/* Admin search sections - desktop + mobile */
.admin-search-panel {
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.admin-search-input-wrap {
    position: relative;
}
.admin-search-input-wrap .admin-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #64748b;
    pointer-events: none;
}
.admin-search-input {
    padding-left: 42px;
    min-height: 44px;
    border-radius: 14px;
}
.admin-search-muted {
    color: #64748b;
    font-size: .9rem;
}
.admin-search-empty {
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    background: #f8fafc;
    color: #64748b;
}
@media (max-width: 767.98px) {
    .admin-search-panel {
        border-radius: 16px;
    }
    .admin-search-panel .card-body {
        padding: 12px !important;
    }
}

/* LDO 2026 - mobile/professional upgrade */
.list-pagination-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 14px;
    padding: .55rem .7rem;
    box-shadow: 0 4px 14px rgba(15, 23, 42, .05);
}
.cutting-list-filter-card .form-label { margin-bottom: .2rem; }
.cutting-list-filter-card .btn-check + .btn { border-radius: 999px; }

.grid-view-tools .dropdown-menu { min-width: 190px; }
.cutting-table-top-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    height: 14px;
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
}
.cutting-table-top-scroll > div { height: 1px; }
.cutting-table.cutting-density-compact th,
.cutting-table.cutting-density-compact td { padding-top: .16rem; padding-bottom: .16rem; }
.cutting-table.cutting-density-normal th,
.cutting-table.cutting-density-normal td { padding-top: .34rem; padding-bottom: .34rem; }
.cutting-table.cutting-density-large th,
.cutting-table.cutting-density-large td { padding-top: .55rem; padding-bottom: .55rem; }
.cutting-workspace.grid-fullscreen-mode {
    position: fixed;
    inset: 8px;
    z-index: 5050;
    background: #f8fafc;
    overflow: auto;
    padding: 10px;
    border-radius: 18px;
    box-shadow: 0 24px 90px rgba(15, 23, 42, .32);
}
body.ldo-grid-fullscreen-active { overflow: hidden; }
.cutting-workspace.grid-fullscreen-mode .compact-list-header,
.cutting-workspace.grid-fullscreen-mode .date-list-card { display: none; }
.cutting-workspace.grid-fullscreen-mode .cutting-table-wrap {
    height: calc(100vh - 118px) !important;
    max-height: calc(100vh - 118px) !important;
}
.cutting-table tbody tr.ldo-active-row > td,
.cutting-table tbody tr.ldo-active-row > td.sticky-col {
    background-color: #eff6ff !important;
    box-shadow: inset 0 1px 0 rgba(13, 110, 253, .16), inset 0 -1px 0 rgba(13, 110, 253, .16);
}

.replace-section {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 12px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}
.replace-card-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
    gap: 10px;
}
.replace-value-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    padding: 12px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .05);
}
.replace-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.replace-card-label,
.replace-value-card label > span {
    display: block;
    color: #64748b;
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 3px;
}
.replace-card-title { font-weight: 800; color: #0f172a; word-break: break-word; }
.replace-card-chip {
    flex: 0 0 auto;
    border: 1px solid #c7d2fe;
    background: #eef2ff;
    color: #3730a3;
    border-radius: 999px;
    padding: .16rem .48rem;
    font-size: .78rem;
    font-weight: 800;
}
.replace-card-grid { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 8px; }
.replace-card-full { display: block; }

.development-gate-page {
    min-height: calc(100vh - 120px);
    display: grid;
    place-items: center;
    padding: 28px 12px;
    background: radial-gradient(circle at top left, rgba(255,193,7,.22), transparent 34%), linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
}
.development-gate-card {
    width: min(520px, 100%);
    border: 1px solid rgba(148,163,184,.35);
    border-radius: 26px;
    background: rgba(255,255,255,.94);
    padding: 28px;
}
.development-gate-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: #ffc107;
    color: #111827;
    font-weight: 900;
    margin-bottom: 14px;
}
.development-gate-card h1 { font-weight: 900; letter-spacing: -.02em; }
.admin-dev-card,
.admin-dev-info-card { border-radius: 18px; }
.admin-dev-switch .form-check-input { width: 3rem; height: 1.55rem; }

@media (max-width: 767.98px) {
    .list-pagination-bar { align-items: stretch; flex-direction: column; }
    .list-pagination-bar .btn-group { width: 100%; display: flex; }
    .list-pagination-bar .btn { flex: 1; }
    .cutting-list-filter-card .card-body { padding: 12px; }
    .cutting-list-card-mobile { margin: 10px; border-radius: 18px; background: linear-gradient(180deg, #fff 0%, #f8fafc 100%); }
    .compact-action-bar .btn,
    .compact-action-bar .generation-supplier-inline-form,
    .grid-toolbar .btn,
    .grid-toolbar .input-group,
    .grid-view-tools { width: 100%; }
    .grid-view-tools { display: grid !important; grid-template-columns: 1fr; }
    .grid-toolbar { align-items: stretch !important; }
    .cutting-table-top-scroll { height: 18px; }
    .replace-card-list { grid-template-columns: 1fr; }
    .replace-card-grid { grid-template-columns: 1fr; }
    .replace-modal-fallback { padding: 8px; }
    .replace-modal-fallback-card { width: 100%; max-height: 94vh; border-radius: 18px; }
    .preset-name-table-wrap { max-height: none; overflow: visible; border-radius: 0; }
    .preset-name-table,
    .preset-name-table tbody,
    .preset-name-table tr,
    .preset-name-table td { display: block; width: 100%; }
    .preset-name-table thead { display: none; }
    .preset-name-table tr[data-preset-row] {
        border: 1px solid #e5e7eb;
        border-radius: 14px;
        margin-bottom: 10px;
        padding: 10px;
        background: #fff;
        box-shadow: 0 4px 12px rgba(15, 23, 42, .05);
    }
    .preset-name-table td { border: 0 !important; padding: 4px 0 !important; text-align: left !important; }
    .preset-name-table td::before {
        content: attr(data-label);
        display: block;
        font-size: .74rem;
        color: #64748b;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .03em;
        margin-bottom: 2px;
    }
    .preset-name-table [data-preset-name] { min-width: 0; }
    .development-gate-card { padding: 20px; border-radius: 22px; }
}


/* PATCH: Liste debitare - în coloana Acțiuni rămân doar Deschide și Șterge. */
.cutting-lists-table .list-actions-col {
    width: 142px !important;
    min-width: 142px !important;
    max-width: 142px !important;
    text-align: center !important;
}
.cutting-lists-table .list-actions-buttons {
    gap: 5px !important;
}
.cutting-lists-table .list-actions-buttons .btn {
    height: 25px !important;
    padding: 2px 8px !important;
    font-size: .72rem !important;
}
@media (max-width: 767.98px) {
    .cutting-list-card-mobile .js-delete-list-form {
        flex: 1 1 0;
    }
}

/* PATCH DESIGN 2026-06-17: Editare listă - UI mai compact, fără căutare globală / densitate / coloane. */
.cutting-workspace .compact-list-header {
    padding: 0 0 3px !important;
    margin-bottom: 4px !important;
}
.cutting-workspace .compact-list-header h2 {
    font-size: 1rem !important;
    line-height: 1.05 !important;
}
.cutting-workspace .compact-list-title-block > .text-muted.small {
    line-height: 1 !important;
}
.cutting-workspace .compact-list-title-block > .d-flex {
    gap: .35rem !important;
    line-height: 1.05 !important;
}
.compact-action-bar {
    gap: .25rem !important;
    margin-top: .25rem !important;
}
.compact-action-bar .btn,
.compact-generation-form .btn,
.compact-generation-form .generation-supplier-dropdown-button {
    min-height: 25px !important;
    height: 25px !important;
    padding: .12rem .42rem !important;
    font-size: .75rem !important;
    line-height: 1.05 !important;
}
.compact-generation-form {
    min-width: 250px !important;
    max-width: 330px !important;
    flex: 0 0 auto !important;
}
.compact-generation-controls {
    gap: .22rem !important;
}
.compact-generation-dropdown {
    flex: 0 1 185px !important;
    min-width: 150px !important;
    max-width: 210px !important;
}
.compact-generation-form .generation-supplier-menu {
    min-width: 230px !important;
    width: 260px !important;
}
.grid-fullscreen-only-btn {
    min-height: 25px !important;
    height: 25px !important;
    padding: .12rem .55rem !important;
    line-height: 1.05 !important;
    white-space: nowrap;
}
.cutting-grid-card .card-header.grid-toolbar {
    padding: 2px 7px !important;
    min-height: 27px !important;
}
.grid-toolbar .input-group-text,
.grid-toolbar .form-control,
.grid-toolbar .form-select,
.grid-toolbar .btn {
    min-height: 24px !important;
    height: 24px !important;
    font-size: .72rem !important;
}
.compact-date-list-card {
    margin-bottom: 4px !important;
}
.compact-date-list-card .card-header {
    min-height: 24px !important;
    padding: 1px 8px !important;
}
.compact-date-list-card .card-body {
    padding: 3px 8px !important;
}
.compact-date-list-card .form-label {
    font-size: .68rem !important;
    line-height: 1 !important;
}
.compact-date-list-card .form-control-sm,
.compact-date-list-card .form-select-sm {
    min-height: 24px !important;
    height: 24px !important;
    font-size: .72rem !important;
}
.supplier-validation-summary.supplier-validation-live {
    padding: 3px 8px !important;
    font-size: .74rem !important;
    line-height: 1.1 !important;
}
.supplier-validation-summary .status-summary-row {
    gap: .35rem !important;
}
.supplier-validation-summary .status-filter-toggle {
    padding: 1px 6px !important;
    font-size: .68rem !important;
    line-height: 1.1 !important;
}
.cutting-table-wrap {
    min-height: 360px !important;
}

/* Schimbă culori: desktop = tabel, telefon = carduri generate din același tabel. */
.replace-section {
    padding: 10px !important;
    border-radius: 12px !important;
}
.replace-table-wrap {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: auto;
    background: #fff;
}
.replace-values-table {
    min-width: 760px;
}
.replace-values-table th {
    white-space: nowrap;
    background: #f8fafc !important;
    color: #334155;
    font-size: .74rem !important;
    padding: 6px 8px !important;
}
.replace-values-table td {
    padding: 6px 8px !important;
    font-size: .80rem;
}
.replace-values-table input.form-control-sm {
    min-height: 28px;
    font-size: .80rem;
}

@media (max-width: 767.98px) {
    .compact-action-bar {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch !important;
    }
    .compact-action-bar .btn,
    .compact-action-bar .generation-supplier-inline-form {
        width: 100%;
        min-width: 0 !important;
        max-width: none !important;
    }
    .compact-generation-form {
        grid-column: 1 / -1;
    }
    .compact-generation-controls {
        width: 100%;
    }
    .compact-generation-dropdown {
        flex: 1 1 auto !important;
        max-width: none !important;
    }
    .compact-generation-form .generation-supplier-menu {
        width: 100% !important;
    }
    .grid-toolbar > div:last-child {
        width: 100%;
    }
    .grid-fullscreen-only-btn {
        width: 100%;
    }
    .replace-table-wrap {
        border: 0;
        border-radius: 0;
        overflow: visible;
        background: transparent;
    }
    .replace-values-table,
    .replace-values-table tbody,
    .replace-values-table tr,
    .replace-values-table td {
        display: block;
        width: 100%;
    }
    .replace-values-table {
        min-width: 0;
        border: 0 !important;
        background: transparent;
    }
    .replace-values-table thead {
        display: none;
    }
    .replace-values-table tr[data-replace-row] {
        border: 1px solid #e5e7eb;
        border-radius: 14px;
        background: #fff;
        padding: 10px;
        margin-bottom: 10px;
        box-shadow: 0 5px 14px rgba(15, 23, 42, .06);
    }
    .replace-values-table td {
        border: 0 !important;
        padding: 4px 0 !important;
    }
    .replace-values-table td::before {
        content: attr(data-label);
        display: block;
        color: #64748b;
        font-size: .72rem;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .03em;
        margin-bottom: 2px;
    }
    .replace-values-table td + td {
        margin-top: 6px;
    }
}


/* Aliniere profesională pentru butoanele de acțiuni din liste */
.compact-action-bar .btn,
.compact-action-bar .generation-supplier-dropdown-button,
.compact-generation-form .btn,
.grid-toolbar .btn,
.grid-fullscreen-only-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

.compact-action-bar .btn,
.compact-action-bar .generation-supplier-dropdown-button,
.compact-generation-form .btn {
    min-height: 28px !important;
    height: 28px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.grid-toolbar .btn,
.grid-fullscreen-only-btn {
    min-height: 28px !important;
    height: 28px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.dimension-cut-cell {
    position: relative;
    min-width: 74px;
}

.dimension-cut-cell .grid-cell {
    padding-left: .35rem !important;
    padding-right: 2.1rem !important;
    text-align: left !important;
}

.dimension-cut-cell .dimension-value-cell {
    text-align: left !important;
}

.cut-in-two-marker {
    position: absolute;
    top: 50%;
    right: 4px;
    left: auto;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: .72rem;
    line-height: 1;
    pointer-events: none;
    color: #b45309;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 999px;
    padding: .12rem .22rem;
    white-space: nowrap;
}

.cut-in-two-option,
.cut-in-two-cancel-current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    min-height: 34px;
}
