[hidden]{display:none!important}:root{font-family:Segoe UI,Arial,sans-serif;color:#233238;background:#f4f5f2;font-size:15px}*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh}aside{width:230px;flex-shrink:0;background:#173f3b;color:#e9f0ea;padding:32px 22px;position:relative}h1{letter-spacing:3px;margin:0;font-size:27px}aside p{font-size:13px;color:#b5cdc7;margin-bottom:36px}nav{display:grid;gap:10px}button{font:inherit;cursor:pointer;border:1px solid #c9d5ce;background:white;border-radius:7px;padding:10px 15px;color:#24473f}nav button{text-align:left;border:0;background:transparent;color:#e9f0ea}nav button.active{background:#32645a}.aside-foot{margin-top:70px;color:#b5cdc7;font-size:12px;line-height:1.8}main{padding:32px 40px;width:100%;min-width:0}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}small{font-size:11px;letter-spacing:2px;color:#668078}h2{font-size:27px;margin:8px 0}h3{font-size:18px}.card{background:white;border:1px solid #dce4df;border-radius:12px;padding:24px;margin-bottom:20px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}label{display:block;font-size:13px;margin:14px 0 6px}input,select,textarea{width:100%;padding:10px;font:inherit;border:1px solid #bdcdc4;border-radius:6px;background:white}input[type=number]{min-width:90px}.primary{background:#1d6150;color:white;border:0}.actions{display:flex;gap:10px;align-items:center;margin-top:20px}.muted{color:#65766f;font-size:13px}.total{text-align:right;font-size:25px;font-weight:600;margin-top:20px}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:#65766f;font-weight:500;background:#f4f7f4}th,td{padding:5.5px 8px;border-bottom:1px solid #e4e9e5}.table-scroll{overflow-x:auto}#message{min-height:20px;color:#9e3527}.money{text-align:right}.login{max-width:450px;margin:30px auto}.print-only{display:none}#user{font-size:13px;margin-right:12px}button:disabled{opacity:.55;cursor:wait}@media(max-width:850px){body{display:block}aside{width:100%;padding:18px}.aside-foot{display:none}aside p{margin:8px 0}nav{display:flex;flex-wrap:wrap}main{padding:20px}.grid{grid-template-columns:1fr}}@media print{aside,header,#message,.actions,.no-print{display:none!important}main{padding:0}.card{border:0;padding:0}.print-only{display:block}body{background:white}table{font-size:12px}}
.metrics{display:flex;flex-wrap:wrap;gap:25px;margin:18px 0}.metrics p{margin:0;font-size:14px}.metrics strong{font-size:20px}.check{width:auto;margin-right:6px}.error{color:#9e3527}.void{color:#7c7c7c;background:#f3f3f3}.actions{flex-wrap:wrap}td{vertical-align:top}table{font-variant-numeric:tabular-nums}@media print{.table-scroll{overflow:visible}th,td{padding:2.5px 4px}.metrics strong{font-size:15px}h3{font-size:15px}}

aside{background:var(--profile-bg,#173f3b);color:var(--profile-fg,#ffffff)}aside p,.aside-foot{color:var(--profile-fg,#ffffff);opacity:.85}nav button{color:var(--profile-fg,#ffffff)}nav button.active{background:var(--profile-active,#32645a)}.profile-color-input{max-width:170px;height:44px;padding:4px}.profile-swatch{display:inline-block;width:18px;height:18px;border:1px solid #aab8b0;border-radius:4px;vertical-align:middle}

.danger{color:#9e3527;border-color:#cda59e}

button,.primary,.danger{background:var(--profile-bg,#173f3b);color:var(--profile-fg,#ffffff);border:1px solid var(--profile-bg,#173f3b)}
button:hover:not(:disabled),.primary:hover:not(:disabled),.danger:hover:not(:disabled){background:var(--profile-active,#32645a)}
button:focus-visible{outline:2px solid #233238;outline-offset:3px}
nav button{background:transparent;border:0}
nav button.active{background:var(--profile-active,#32645a)}

progress{width:100%;height:18px;accent-color:var(--profile-bg,#173f3b)}

.production-status{font-weight:700}.status-pending{color:#b42318}.status-process{color:#b65c00}.status-complete{color:#18743b}

/* Filas compactas exclusivamente en la lista de Armado */
.assembly-compact th,.assembly-compact td{padding-top:2.75px;padding-bottom:2.75px;line-height:1.15}

/* Compactar a la mitad el espaciado vertical de todas las listas y tablas. */
.table-scroll th,.table-scroll td{padding-top:2.75px;padding-bottom:2.75px;line-height:1.15}
.card li{margin-block:0;line-height:1.15}

/* Listas LURAMY: una sola línea por celda, con desplazamiento horizontal.
   No se eliminan ni recortan valores: toda la información sigue disponible. */
.table-scroll{max-width:100%;overflow-x:auto;overflow-y:visible}
table{width:max-content;min-width:100%;table-layout:auto}
table th,table td{white-space:nowrap;overflow-wrap:normal;word-break:normal;line-height:1.15}
table td button,table th button{white-space:nowrap}
/* Las tablas de detalles que no tienen contenedor también pueden desplazarse. */
.card{min-width:0;overflow-x:auto}
@media print{table{width:100%;min-width:0}table th,table td{white-space:normal;overflow-wrap:anywhere}}

/* Textura discreta para la barra lateral; respeta los colores configurados por perfil. */
aside{
  background-color:var(--profile-bg,#173f3b);
  background-image:
    repeating-linear-gradient(135deg,rgba(255,255,255,.045) 0,rgba(255,255,255,.045) 1px,transparent 1px,transparent 9px),
    radial-gradient(ellipse at 0% 0%,rgba(255,255,255,.095),transparent 58%),
    radial-gradient(ellipse at 100% 100%,rgba(0,0,0,.14),transparent 60%);
  background-blend-mode:normal,screen,multiply;
}
@media print{aside{background-image:none}}

/* Cortadores: negrita y color personalizado de su barra lateral. */
.cutter-name{font-weight:400!important;}

.model-name{font-weight:700}#session-name{font-size:32px;color:var(--profile-bg);font-weight:400;margin-top:6px}
table th,table td,.table-scroll th,.table-scroll td,.assembly-compact th,.assembly-compact td{padding-top:1.375px;padding-bottom:1.375px;line-height:1.1}
table button{padding:3px 10px;line-height:1.1}.card li{line-height:1.1}select#product,select[data-edit-code]{font-weight:700}

.engraving-mark{font-weight:800;color:#16803b!important;margin-right:4px}
.sale-product-grid{grid-template-columns:minmax(0,1fr) auto minmax(120px,.5fr);gap:16px;align-items:end}
.engraving-field{padding-bottom:10px}.engraving-field label{white-space:nowrap;margin:0}
.catalog-list tbody tr:nth-child(odd){background:#f0f0f0}
.catalog-list tbody tr:nth-child(even){background:#fff}
.table-scroll .catalog-list th,.table-scroll .catalog-list td{padding-top:.6875px;padding-bottom:.6875px;line-height:1.05}
.catalog-list td button{padding-top:1.5px;padding-bottom:1.5px;line-height:1.05}
@media(max-width:650px){.sale-product-grid{grid-template-columns:minmax(0,1fr) auto minmax(75px,.5fr);gap:8px}}

/* Tramado de catálogos con contraste estable en cada celda. */
.catalog-list tbody tr:nth-child(odd)>td{background:#e3e7e5}
.catalog-list tbody tr:nth-child(even)>td{background:#fff}
.catalog-list tbody tr:hover>td{background:#d5e4dd}
.catalog-list tbody td{border-bottom:1px solid #cbd3cf}

.striped-list tbody tr:nth-child(odd)>td{background:#e3e7e5}
.striped-list tbody tr:nth-child(even)>td{background:#fff}
.striped-list tbody tr:hover>td{background:#d5e4dd}
.striped-list tbody td{border-bottom:1px solid #cbd3cf}

/* Total acumulado al inicio de Corte, con mayor jerarquía visual. */
.cut-total-highlight{border:2px solid var(--profile-bg,#173f3b);border-left-width:8px;background:linear-gradient(110deg,#e8f0ec,#ffffff);box-shadow:0 4px 14px rgba(23,63,59,.12);padding:22px 26px}
.cut-total-highlight h3{font-size:24px;margin:0 0 6px;color:var(--profile-bg,#173f3b)}
.cut-total-period{font-size:15px;color:#465b52;margin:0 0 18px}
.cut-total-highlight .metrics{gap:32px;margin:0}
.cut-total-highlight .metrics p{font-size:15px}
.cut-total-highlight .metrics strong{display:block;font-size:32px;color:#233238;margin-bottom:5px}
@media print{.cut-total-highlight{box-shadow:none;background:#fff;border:1px solid #aaa;padding:12px}.cut-total-highlight .metrics strong{font-size:22px}}

.no-pending{font-weight:700;color:#c62828}
#title.cut-title{font-weight:400}#session-name{font-weight:700}
.cut-total-highlight{background:var(--profile-bg,#173f3b);color:#fff}
.cut-total-highlight h3,.cut-total-highlight .cut-total-period,.cut-total-highlight .metrics p,.cut-total-highlight .metrics strong{color:#fff}

/* Interfaz renovada, manteniendo el color de cada perfil. */
:root{background:#eef2f3;color:#25333d;font-size:15px}main{max-width:1700px;padding:28px 34px}aside{padding:28px 18px}aside h1{letter-spacing:2px}nav{gap:6px}nav button{padding:12px 14px;border-radius:10px}nav button.active{box-shadow:inset 3px 0 0 rgba(255,255,255,.75)}
.card{border-color:#dde5e8;border-radius:16px;box-shadow:0 3px 14px rgba(23,43,54,.045);padding:22px;margin-bottom:18px}header{padding-bottom:18px;border-bottom:1px solid #d8e1e5}h3{letter-spacing:-.2px}input,select,textarea{border-color:#c4d1d8;min-height:42px;border-radius:9px}input:focus,select:focus{outline:2px solid var(--profile-bg);outline-offset:2px}input.check{min-height:0}button{border-radius:9px}.actions{gap:9px}th{background:#eaf0f2;padding:9px 10px!important;font-size:12px;font-weight:700}td{padding:5px 10px!important}table td button{padding:5px 10px}tr:hover>td{background:#e9f1ee}.metrics{gap:24px}.metrics p{color:#54656f}.cut-total-highlight .metrics p{color:white}
#welcome-dialog{border:0;border-radius:24px;padding:34px;width:min(420px,calc(100vw - 32px));text-align:center;box-shadow:0 24px 80px #0004;margin:auto;color:#25333d}#welcome-dialog::backdrop{background:rgba(12,26,34,.55);backdrop-filter:blur(4px)}.welcome-icon{width:60px;height:60px;display:grid;place-items:center;margin:0 auto 18px;border-radius:18px;background:var(--profile-bg);color:white;font-size:32px;font-weight:700}.welcome-eyebrow{font-size:12px;letter-spacing:2px;color:#637580}#welcome-name{font-size:24px;font-weight:700;margin:12px 0 24px}#welcome-continue{width:100%;padding:12px}
@media(max-width:850px){body{display:block}aside{width:100%;padding:16px}aside h1{font-size:23px}aside p{margin:5px 0 14px}nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}nav button{font-size:13px;padding:10px 8px;text-align:center;background:rgba(255,255,255,.06)}main{padding:18px 14px}header{gap:12px;align-items:flex-start}header>div:last-child{display:flex;align-items:center;gap:6px}#user{margin:0;max-width:95px;overflow-wrap:anywhere}h2{font-size:24px}#session-name{font-size:27px}.card{padding:18px}.grid,.sale-product-grid{grid-template-columns:1fr;gap:10px}.engraving-field{padding:4px 0}.actions button{min-height:42px;flex:1 1 auto}.metrics{gap:18px}.cut-total-highlight .metrics strong{font-size:28px}}
@media(max-width:650px){#content table{width:100%;min-width:0}#content table thead{display:none}#content table tbody{display:block}#content table tr{display:block;border:1px solid #d5dfe4;border-radius:12px;overflow:hidden;margin:10px 0;background:white}#content table td{display:grid;grid-template-columns:minmax(95px,.7fr) minmax(0,1fr);gap:12px;white-space:normal!important;overflow-wrap:anywhere;align-items:start;padding:8px 10px!important}#content table td::before{content:attr(data-label);font-size:12px;font-weight:600;color:#647681}#content table td[colspan]{display:block}#content table td[colspan]::before{display:none}.table-scroll{overflow:visible}.card{overflow:visible}#content td select,#content td input{min-width:0}.cut-total-highlight{padding:20px}#message{overflow-wrap:anywhere}}
@media print{main{max-width:none}#content table{display:table;width:100%}#content thead{display:table-header-group!important}#content tbody{display:table-row-group!important}#content tr{display:table-row!important}#content td{display:table-cell!important}#content td::before{display:none!important}.card{box-shadow:none}dialog{display:none!important}}

#message.message-success{color:#16803b;font-weight:600}

.payroll-switches{display:flex;gap:7px;justify-content:flex-end;margin-top:5px}.payroll-switches label{display:flex;flex-direction:column;align-items:center;margin:0;font-size:10px}.payroll-switches small{font-size:9px;letter-spacing:0}.holiday-check{accent-color:#9333ea!important}.vacation-check{accent-color:#f97316!important}

/* Días destacados en Nómina. */
.payroll-week-table{border-collapse:separate;border-spacing:0;min-width:1050px}
.payroll-week-table th,.payroll-week-table td{border-right:2px solid #fff;padding:12px 10px}
.payroll-week-table thead th{background:#254b45;color:#fff;font-weight:600;border-bottom:4px solid #fff;vertical-align:middle}
.payroll-week-table thead .payroll-day-heading{text-align:center;min-width:130px;font-size:16px;white-space:nowrap}
.payroll-day-number{display:block;font-size:10px;letter-spacing:2px;opacity:.65;margin-bottom:3px}
.payroll-week-table tbody td:nth-child(2),.payroll-week-table tfoot th:nth-child(2){background:#edf5fc}
.payroll-week-table tbody td:nth-child(3),.payroll-week-table tfoot th:nth-child(3){background:#edf7f0}
.payroll-week-table tbody td:nth-child(4),.payroll-week-table tfoot th:nth-child(4){background:#fff6e7}
.payroll-week-table tbody td:nth-child(5),.payroll-week-table tfoot th:nth-child(5){background:#f3eefb}
.payroll-week-table tbody td:nth-child(6),.payroll-week-table tfoot th:nth-child(6){background:#eaf7f7}
.payroll-week-table tbody td:nth-child(7),.payroll-week-table tfoot th:nth-child(7){background:#fceef2}
.payroll-week-table tbody tr:hover td{box-shadow:inset 0 0 0 1px #a2b8b1}
.payroll-week-table tbody td:last-child{font-weight:600;background:#e5efe9}
.payroll-week-table tfoot th{border-top:2px solid #a4bdb0;padding-top:14px;font-weight:700}
@media(max-width:700px){.payroll-week-table thead{display:table-header-group!important}.payroll-week-table tr{display:table-row!important}.payroll-week-table th,.payroll-week-table td{display:table-cell!important}.payroll-week-table td:before{display:none!important}.payroll-week-table{font-size:13px}.payroll-week-table thead .payroll-day-heading{font-size:15px}}

/* Nómina: separación clara de cada día. */
.payroll-week-table{border-spacing:6px 0;background:#fff}
.payroll-week-table th,.payroll-week-table td{border-right:0;border-bottom:2px solid white;padding:14px 12px}
.payroll-week-table thead th{border-radius:10px 10px 0 0;padding:18px 12px;border-bottom:5px solid #fff}
.payroll-week-table thead th:nth-child(2){background:#2563a3}
.payroll-week-table thead th:nth-child(3){background:#287b50}
.payroll-week-table thead th:nth-child(4){background:#a36514}
.payroll-week-table thead th:nth-child(5){background:#7850a4}
.payroll-week-table thead th:nth-child(6){background:#177c82}
.payroll-week-table thead th:nth-child(7){background:#ad496e}
.payroll-week-table .payroll-day-label{display:block;font-size:18px;font-weight:700;letter-spacing:.2px}
.payroll-week-table tbody td.money{font-size:16px;text-align:center;font-variant-numeric:tabular-nums}
.payroll-week-table .payroll-switches{justify-content:center;gap:9px;border-top:1px solid #00000015;padding-top:9px;margin-top:10px}
.payroll-week-table .payroll-switches label{gap:4px;cursor:pointer}
.payroll-week-table .payroll-switches input{width:18px;height:18px;min-height:18px;margin:0}
.payroll-week-table .payroll-switches small{font-size:10px;letter-spacing:0;color:#4b5563}
.payroll-week-table tbody td:first-child{font-weight:600;min-width:150px;background:#f4f6f5}
.payroll-week-table tbody td:last-child{background:#dcece2;font-size:18px;font-weight:700}
.payroll-week-table tfoot th{border-radius:0 0 10px 10px;text-align:center;font-size:16px}
@media(max-width:700px){.payroll-week-table .payroll-day-label{font-size:17px}.payroll-week-table th,.payroll-week-table td{padding:12px 10px}.payroll-week-table .payroll-switches{flex-wrap:nowrap}}

.payroll-above-minimum{color:#15803d!important;font-weight:700}.payroll-below-minimum{color:#dc2626!important;font-weight:700}

/* Modelo asignado y responsables de nómina */
.payroll-cutter-name, .payroll-cutter-name .cutter-name { font-weight: 700 !important; }
.cut-assigned-model { border: 2px solid var(--profile-color, #173f3b); border-radius: 12px; padding: 16px 20px; background: #f0f6f5; font-size: clamp(1.2rem, 3vw, 1.65rem); line-height: 1.4; overflow-wrap: anywhere; }

.received-date-label { font-size: 1.1rem; font-weight: 700; color: var(--profile-color, #173f3b); margin: 8px 0 16px; }

.cut-assigned-model { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.cut-assigned-quantity, .cut-assigned-amount { font-weight: 700; white-space: nowrap; }
.cut-assigned-amount { margin-left: auto; }
@media (max-width: 600px) { .cut-assigned-model { flex-direction: column; align-items: flex-start; } .cut-assigned-amount { margin-left: 0; } }

.cut-assigned-model { column-gap: 48px; }
.cut-registered-pieces, .cut-registered-pieces strong { color: #15803d; }
@media (max-width: 600px) { .cut-assigned-model { row-gap: 22px; } }

/* Compact actions in the cutting statistics detail. */
.cut-records-table th,.cut-records-table td{padding:2px 8px!important;vertical-align:middle;line-height:1.15}
.cut-record-actions{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:4px;margin:0;white-space:nowrap}
.cut-record-actions button{flex:0 0 auto;margin:0;padding:3px 7px;min-height:24px;border-radius:5px;font-size:12px;line-height:1.15;white-space:nowrap}

#shortage-percentage-value,#shortage-average-value{display:inline-block;font-size:clamp(28px,4vw,44px);font-weight:800;line-height:1.2;color:#475569;background:linear-gradient(135deg,#f1f3f5,#dfe3e8);border:2px solid #aeb6c0;border-radius:12px;padding:12px 18px;font-variant-numeric:tabular-nums}@media print{#shortage-percentage-value,#shortage-average-value{font-size:25px;background:white;border:1px solid #777;color:black}}

#shortage-percentage-value[data-level="high"],#shortage-average-value[data-level="high"]{color:#b91c1c}#shortage-percentage-value[data-level="low"],#shortage-average-value[data-level="low"]{color:#15803d}#shortage-percentage-value[data-level="middle"],#shortage-average-value[data-level="middle"]{color:#c05600}#shortage-percentage-value[data-level="no-data"],#shortage-average-value[data-level="no-data"]{color:#64748b}@media print{#shortage-percentage-value,#shortage-average-value{color:black!important}}

.cut-shortage-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cut-shortage-indicators .card{min-width:0}.cut-shortage-indicators h3{font-size:16px}.cut-shortage-indicators #shortage-percentage-value,.cut-shortage-indicators #shortage-average-value{max-width:100%;font-size:clamp(20px,3.4vw,44px);padding:10px 14px;overflow-wrap:anywhere}@media(max-width:500px){.cut-shortage-indicators{gap:8px}.cut-shortage-indicators .card{padding:12px 9px}.cut-shortage-indicators h3{font-size:13px}.cut-shortage-indicators #shortage-percentage-value,.cut-shortage-indicators #shortage-average-value{padding:8px 6px;font-size:20px}}

#my-profile-dialog{box-sizing:border-box;width:min(430px,calc(100vw - 24px));max-height:90dvh;overflow:auto;border:1px solid #9aaeb7;border-radius:14px;padding:20px}#my-profile-dialog .actions button{min-height:44px}

#assembly-horizontal-dock{position:fixed;bottom:0;z-index:80;background:#fff;border:1px solid #aabeb7;border-radius:9px 9px 0 0;box-shadow:0 -3px 12px #173f3b26;padding:6px 10px 3px}#assembly-horizontal-dock span{display:block;font-size:12px;color:#24473f}.assembly-scroll-control{overflow-x:scroll;overflow-y:hidden;width:100%;height:22px;scrollbar-color:#32645a #e5efea;scrollbar-width:auto}.assembly-scroll-control>div{height:1px}.assembly-scroll-control:focus{outline:2px solid #32645a}.assembly-scroll-control::-webkit-scrollbar{height:15px}.assembly-scroll-control::-webkit-scrollbar-thumb{background:#32645a;border-radius:8px}.assembly-scroll-control::-webkit-scrollbar-track{background:#e5efea}@media print{#assembly-horizontal-dock{display:none!important}}
.assembly-scroll-host{padding-bottom:55px}@media print{.assembly-scroll-host{padding-bottom:0}}

.armador-summary-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:25px}.armador-bonus{width:360px;max-width:45%;flex-shrink:0;background:transparent;color:inherit;padding:0;text-align:right}.armador-bonus h3{margin:0 0 6px;font-size:18px}.armador-bonus-amount{display:block;font-size:27px;font-variant-numeric:tabular-nums}.armador-bonus .armador-bonus-rules{font-size:12px;line-height:1.45;color:#68747b;margin:7px 0 0}@media(max-width:650px){.armador-summary-heading{flex-wrap:wrap}.armador-bonus{width:100%;max-width:100%;text-align:right}.armador-bonus .armador-bonus-rules{max-width:420px;margin-left:auto}}

.engraving-options{display:flex;flex-wrap:nowrap;align-items:center;gap:16px;max-width:100%;overflow-x:auto}.engraving-options .engraving-field{flex:0 0 auto}.engraving-options label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
@media(max-width:650px){.engraving-options{gap:10px}.engraving-options label{font-size:13px}}

strong.model-name.engraving-name-green{color:#16713b!important}

.test-environment-banner{position:fixed;top:0;left:0;right:0;z-index:2147483647;background:#9b3600;color:#fff;text-align:center;font:700 14px/1.4 sans-serif;padding:10px;box-sizing:border-box;pointer-events:none}body{padding-top:60px!important}
