:root {
    --laundry-navy: #092856;
    --laundry-blue: #123f7d;
    --laundry-active: #2f95e8;
    --laundry-page: #eef3f8;
    --laundry-card: #ffffff;
    --laundry-border: #d8e2ee;
    --laundry-border-soft: #e7edf4;
    --laundry-text: #1d2a44;
    --laundry-muted: #6e7e96;
    --laundry-link: #1266e8;
    --laundry-danger: #e34343;
    --laundry-shadow: 0 4px 14px rgba(18, 51, 91, .06);
}

html, body {
    margin: 0;
    min-height: 100%;
    font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif;
    background: var(--laundry-page);
    color: var(--laundry-text);
}

* { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }

.laundry-body {
    margin: 0;
    background: var(--laundry-page);
}

.laundry-topbar {
    min-height: 40px;
    padding: 0 14px;
    background: #061d43;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    font-size: 12px;
}

.laundry-topbar-left,
.laundry-topbar-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.laundry-topbar-right form { margin: 0; }

.mail-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 25px;
    padding: 2px 10px 2px 4px;
    border-radius: 999px;
    background: #14bd70;
    color: #fff;
    font-weight: 700;
}

.mail-status-icon {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #0aa25d;
    font-size: 11px;
}

.top-separator { opacity: .45; }

.top-exit-button {
    border: 0;
    border-radius: 6px;
    padding: 5px 12px;
    background: #ff7a1a;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.laundry-header {
    min-height: 62px;
    padding: 0 12px;
    background: var(--laundry-blue);
    color: #fff;
    display: flex;
    align-items: stretch;
    border-bottom: 1px solid #0c3267;
}

.laundry-brand {
    flex: 0 0 290px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    padding: 0 6px;
}

.laundry-brand-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: #75d5ff;
}

.laundry-brand-icon svg {
    width: 34px;
    height: 34px;
}

.laundry-brand-text {
    display: grid;
    gap: 2px;
    line-height: 1;
}

.laundry-brand-text strong {
    font-size: 18px;
    letter-spacing: -.02em;
}

.laundry-brand-text em {
    color: #54bfff;
    font-style: normal;
}

.laundry-brand-text small {
    color: #dbe9fb;
    font-size: 9px;
    font-weight: 500;
}

.laundry-main-nav {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
}

.laundry-main-nav::-webkit-scrollbar { display: none; }

.laundry-nav-item {
    position: relative;
    display: flex;
}

.laundry-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 15px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    border-radius: 7px 7px 0 0;
    transition: background .12s ease;
}

.laundry-nav-link:hover { background: rgba(255,255,255,.08); }

.laundry-nav-link.active {
    background: var(--laundry-active);
    box-shadow: inset 0 -2px 0 rgba(255,255,255,.35);
}

.nav-home { font-size: 15px; }

.laundry-dropdown {
    display: none;
    position: absolute;
    z-index: 100;
    top: 100%;
    left: 0;
    min-width: 235px;
    padding: 7px;
    border: 1px solid var(--laundry-border);
    border-top: 0;
    border-radius: 0 0 10px 10px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(18, 51, 91, .14);
}

.laundry-nav-item:hover .laundry-dropdown,
.laundry-nav-item:focus-within .laundry-dropdown {
    display: grid;
}

.laundry-dropdown a {
    padding: 9px 10px;
    border-radius: 7px;
    color: #294463;
    font-size: 12px;
}

.laundry-dropdown a:hover {
    background: #edf6ff;
    color: #1266e8;
}

.laundry-page {
    width: 100%;
    min-height: calc(100vh - 102px);
    padding: 22px 16px 30px;
    background: var(--laundry-page);
}

.page-section-label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: #2b91df;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.page-section-label::after {
    content: "";
    height: 1px;
    flex: 1;
    max-width: 420px;
    background: #abd1ee;
}

.page-section-label svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.page-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    color: #5a79a0;
    font-size: 13px;
}

.page-breadcrumb a { color: #2475d8; }
.page-breadcrumb strong { color: #142747; }
.page-breadcrumb .sep { color: #97a6ba; }

.page-title-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.page-title-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    border: 1px solid #cfe0f3;
    background: #edf5ff;
    color: #1670ea;
}

.page-title-icon svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.page-title-row h1 {
    margin: 0;
    color: #17243d;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.035em;
}

.page-title-row p {
    margin: 3px 0 0;
    color: var(--laundry-muted);
    font-size: 13px;
}

.management-alert {
    margin-bottom: 14px;
    padding: 11px 14px;
    border: 1px solid;
    border-radius: 9px;
    font-size: 13px;
}

.management-alert.success {
    background: #eefbf4;
    border-color: #bfe8ce;
    color: #176539;
}

.management-alert.error {
    background: #fff3f3;
    border-color: #f0c7c7;
    color: #9d2b2b;
}

.albaran-layout {
    display: grid;
    grid-template-columns: 305px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.filter-panel,
.results-card,
.close-card,
.empty-panel {
    background: var(--laundry-card);
    border: 1px solid var(--laundry-border);
    border-radius: 13px;
    box-shadow: var(--laundry-shadow);
}

.filter-panel {
    overflow: visible;
    max-height: none;
    position: static;
}

.filter-panel-header {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 66px;
    padding: 0 18px;
    border-bottom: 1px solid var(--laundry-border-soft);
    color: #182944;
    font-size: 15px;
    font-weight: 800;
}

.filter-panel-header .filter-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    border: 1px solid #cfe0f3;
    background: #edf5ff;
    color: #1670ea;
}

.filter-panel-header svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.filter-panel-body {
    padding: 15px;
    max-height: none;
    overflow: visible;
}

.filter-section {
    padding-bottom: 15px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--laundry-border-soft);
}

.filter-section:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.filter-section-title {
    margin: 0 0 11px;
    color: #6b7d96;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.filter-grid-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
}

.filter-field {
    display: grid;
    gap: 5px;
    margin-bottom: 9px;
    color: #42546b;
    font-size: 11px;
    font-weight: 700;
}

.filter-field input,
.filter-field select {
    width: 100%;
    min-width: 0;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #cedaea;
    border-radius: 8px;
    background: #fff;
    color: #35455b;
    outline: none;
    font-size: 12px;
}

.filter-field input:focus,
.filter-field select:focus {
    border-color: #72aef0;
    box-shadow: 0 0 0 2px rgba(47,149,232,.12);
}

.filter-check {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #42546b;
    font-size: 12px;
    font-weight: 600;
}

.filter-check input {
    width: 15px;
    height: 15px;
}

.filter-primary {
    width: 100%;
    min-height: 40px;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(180deg, #3a91f3 0%, #2775df 100%);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 5px 12px rgba(39,117,223,.18);
}

.filter-clear {
    display: block;
    margin-top: 8px;
    text-align: center;
    color: #4d729d;
    font-size: 11px;
    font-weight: 700;
}

.albaran-results {
    min-width: 0;
    display: grid;
    gap: 11px;
}

.results-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.toolbar-actions,
.toolbar-summary {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.toolbar-button,
.table-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid #c9daec;
    background: #f8fbff;
    color: #2b609a;
    cursor: pointer;
}

.toolbar-button {
    min-height: 34px;
    padding: 0 11px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 700;
}

.toolbar-button:hover,
.table-icon-button:hover {
    background: #eaf4ff;
    border-color: #a8c8e8;
}

.toolbar-button svg,
.table-icon-button svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.toolbar-button.danger,
.table-icon-button.danger {
    background: #fff7f7;
    border-color: #f0c4c4;
    color: var(--laundry-danger);
}

.toolbar-total {
    margin-left: auto;
    color: #356596;
    font-size: 14px;
    white-space: nowrap;
}

.toolbar-total strong {
    color: #2b5584;
    font-size: 16px;
}

.results-card {
    min-width: 0;
    overflow: hidden;
}

.results-scroll {
    width: 100%;
    overflow: auto;
}

.management-table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
    background: #fff;
}

.management-table th {
    height: 43px;
    padding: 0 12px;
    border-bottom: 1px solid var(--laundry-border);
    background: #f8fafc;
    color: #6e7e96;
    font-size: 10px;
    font-weight: 800;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.management-table td {
    height: 53px;
    padding: 0 12px;
    border-bottom: 1px solid #edf1f5;
    color: #3d4b60;
    font-size: 12px;
    vertical-align: middle;
}

.management-table tbody tr:last-child td { border-bottom: 0; }
.management-table tbody tr:hover td { background: #fbfdff; }

.management-table td.number,
.management-table th.number {
    text-align: right;
}

.albaran-link {
    color: var(--laundry-link);
    font-weight: 800;
}

.client-link {
    color: #1266e8;
    font-weight: 700;
}

.row-check {
    width: 15px;
    height: 15px;
}

.table-actions {
    display: flex;
    justify-content: flex-end;
    gap: 5px;
}

.table-actions form {
    display: flex;
    gap: 5px;
    margin: 0;
}

.table-icon-button {
    width: 29px;
    height: 29px;
    padding: 0;
    border-radius: 7px;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #f0f3f7;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.status-pill.info {
    background: #e9f3ff;
    color: #1768c6;
}

.status-pill.warning {
    background: #fff4dc;
    color: #9d6500;
}

.close-card {
    overflow: hidden;
}

.close-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--laundry-border-soft);
    background: #fbfcfe;
    flex-wrap: wrap;
}

.close-toolbar-left,
.close-toolbar-right {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}

.close-toolbar label {
    display: grid;
    gap: 4px;
    color: #53657c;
    font-size: 10px;
    font-weight: 700;
}

.close-toolbar input[type="date"],
.close-toolbar input[type="text"] {
    height: 36px;
    border: 1px solid #ccd9e7;
    border-radius: 8px;
    padding: 0 9px;
    background: #fff;
    color: #35455b;
    font-size: 11px;
}

.close-toolbar input[type="text"] { width: 230px; }

.bulk-close-button {
    height: 36px;
    border: 0;
    border-radius: 8px;
    padding: 0 13px;
    background: #2f87e8;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.pending-client {
    display: flex;
    align-items: center;
    gap: 9px;
}

.pending-client strong { color: #1f3f65; }

.single-close-button {
    height: 30px;
    border: 1px solid #b7d2ed;
    border-radius: 7px;
    padding: 0 10px;
    background: #f4f9ff;
    color: #2369ad;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.empty-panel {
    padding: 35px;
    text-align: center;
    color: var(--laundry-muted);
}

.empty-panel strong {
    display: block;
    margin-bottom: 5px;
    color: #253b57;
    font-size: 15px;
}

.login-shell {
    min-height: calc(100vh - 142px);
    margin: -22px -16px -30px;
    padding: 54px max(6vw, 36px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 440px);
    gap: 46px;
    align-items: center;
    color: #fff;
    background:
        radial-gradient(900px 500px at 15% 20%, rgba(59,130,246,.13), transparent 60%),
        linear-gradient(155deg, #071126 0%, #0a1832 56%, #081124 100%);
}

.login-card {
    padding: 30px;
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 16px;
    background: rgba(13, 24, 45, .78);
    box-shadow: 0 22px 56px rgba(0,0,0,.28);
    backdrop-filter: blur(14px);
}

.login-hero-copy h1 {
    margin: 0;
    font-size: clamp(42px,6vw,66px);
    font-weight: 800;
    letter-spacing: -.045em;
    background: linear-gradient(90deg,#60a5fa,#a78bfa);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.login-welcome { color: #cbd5e1; }
.login-hero-copy h2 { font-size: 22px; }
.login-hero-copy p { color: #94a3b8; line-height: 1.65; }
.login-rule { width: 58px; height: 3px; margin: 20px 0; border-radius: 999px; background: linear-gradient(90deg,#8b5cf6,#3b82f6); }
.login-card .muted, .login-help { color: #94a3b8; }
.login-card h2 { margin: 6px 0 4px; }
.login-card .form-stack label { color: #cbd5e1; }
.login-card .form-stack input { color: #fff; background: rgba(2,6,23,.55); border: 1px solid rgba(148,163,184,.22); }
.login-card .btn-primary { background: linear-gradient(90deg,#3b82f6,#8b5cf6); }

@media (max-width: 1100px) {
    .laundry-brand { flex-basis: 230px; }
    .laundry-nav-link { padding: 0 10px; font-size: 11px; }
    .albaran-layout { grid-template-columns: 270px minmax(0,1fr); }
    .login-shell { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .laundry-topbar-right span { display: none; }
    .laundry-header { display: block; padding: 8px 10px 0; }
    .laundry-brand { min-height: 48px; }
    .laundry-main-nav { min-height: 44px; }
    .laundry-nav-link { min-height: 44px; }
    .laundry-page { padding: 16px 10px 24px; }
    .albaran-layout { grid-template-columns: 1fr; }
    .filter-panel { position: static; max-height: none; }
    .filter-panel-body { max-height: none; }
    .page-title-row h1 { font-size: 23px; }
}


/* Batch close screen - based on NewLavanderWeb DeliveryNotes/BatchClose */
.dbc-close-form {
    display: grid;
    gap: 16px;
}

.dbc-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr);
    gap: 18px;
    align-items: stretch;
}

.dbc-panel {
    min-width: 0;
    background: #fff;
    border: 1px solid var(--laundry-border);
    border-radius: 14px;
    box-shadow: var(--laundry-shadow);
    overflow: hidden;
}

.dbc-panel-body {
    padding: 20px;
}

.dbc-panel-title {
    margin: 0 0 18px;
    color: #1d2d47;
    font-size: 16px;
    font-weight: 800;
}

.dbc-panel-left .dbc-panel-body {
    display: flex;
    flex-direction: column;
    min-height: 500px;
}

.dbc-search-tools {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.dbc-search-wrap {
    position: relative;
    flex: 1;
}

.dbc-search-icon {
    position: absolute;
    left: 11px;
    top: 50%;
    width: 15px;
    height: 15px;
    transform: translateY(-50%);
    fill: none;
    stroke: #75869b;
    stroke-width: 1.8;
    pointer-events: none;
}

.dbc-control {
    width: 100%;
    border: 1px solid #ced9e6;
    border-radius: 8px;
    background: #fff;
    color: #34465e;
    outline: none;
    font-size: 12px;
}

.dbc-control:focus {
    border-color: #68a8ec;
    box-shadow: 0 0 0 2px rgba(47,149,232,.12);
}

.dbc-search-input {
    height: 38px;
    padding: 0 11px 0 34px;
}

.dbc-inline-check,
.dbc-check {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #46596f;
    font-size: 12px;
    font-weight: 600;
}

.dbc-inline-check {
    white-space: nowrap;
}

.dbc-selection-summary {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-bottom: 10px;
    color: #75849a;
    font-size: 11px;
}

.dbc-selection-summary strong {
    color: #2b5a8d;
    font-size: 14px;
}

.dbc-customer-grid {
    flex: 1;
    min-height: 330px;
    max-height: 470px;
    overflow-y: auto;
    border: 1px solid #e0e7f0;
    border-radius: 10px;
    background: #fbfcfe;
    padding: 7px;
}

.dbc-customer-item {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 7px 9px;
    border-radius: 7px;
    color: #31455f;
    cursor: pointer;
}

.dbc-customer-item:hover {
    background: #edf6ff;
}

.dbc-customer-item.is-hidden {
    display: none;
}

.dbc-customer-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 600;
}

.dbc-empty {
    min-height: 300px;
    display: grid;
    place-content: center;
    gap: 5px;
    text-align: center;
    color: #77879b;
    font-size: 12px;
}

.dbc-empty strong {
    color: #34485f;
    font-size: 14px;
}

.dbc-field {
    display: grid;
    gap: 6px;
    margin-bottom: 17px;
}

.dbc-label {
    color: #50627a;
    font-size: 11px;
    font-weight: 800;
}

.dbc-field > .dbc-control,
.dbc-field select.dbc-control {
    min-height: 40px;
    padding: 0 10px;
}

.dbc-textarea {
    min-height: 118px !important;
    padding: 10px !important;
    resize: vertical;
}

.dbc-input-with-icon {
    position: relative;
}

.dbc-input-with-icon svg {
    position: absolute;
    left: 11px;
    top: 50%;
    width: 17px;
    height: 17px;
    transform: translateY(-50%);
    fill: none;
    stroke: #70829a;
    stroke-width: 1.8;
    pointer-events: none;
}

.dbc-input-with-icon input {
    height: 40px;
    padding: 0 10px 0 36px;
}

.dbc-info-box {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 18px;
    padding: 11px 12px;
    border: 1px solid #d8e7f5;
    border-radius: 9px;
    background: #f5faff;
    color: #58718d;
}

.dbc-info-box svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    margin-top: 1px;
    fill: none;
    stroke: #3b83c9;
    stroke-width: 1.8;
}

.dbc-info-box p {
    margin: 0;
    font-size: 10px;
    line-height: 1.5;
}

.dbc-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
}

.dbc-action {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 15px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.dbc-action svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
}

.dbc-action-secondary {
    border: 1px solid #c6d5e5;
    background: #fff;
    color: #466683;
}

.dbc-action-primary {
    border: 1px solid #2d7fda;
    background: linear-gradient(180deg, #3995ef, #2677dd);
    color: #fff;
    box-shadow: 0 5px 12px rgba(39,117,223,.16);
}

.dbc-action:disabled {
    opacity: .45;
    cursor: default;
}

@media (max-width: 980px) {
    .dbc-columns {
        grid-template-columns: 1fr;
    }

    .dbc-panel-left .dbc-panel-body {
        min-height: auto;
    }

    .dbc-customer-grid {
        max-height: 360px;
    }
}


/* Light login theme */
.login-shell {
    color: var(--laundry-text);
    background:
        radial-gradient(700px 380px at 12% 20%, rgba(47,149,232,.12), transparent 65%),
        linear-gradient(135deg, #f7faff 0%, #eef4fb 55%, #e8f0f8 100%);
}

.login-card {
    border: 1px solid #d8e2ee;
    background: rgba(255,255,255,.94);
    box-shadow: 0 18px 45px rgba(18, 51, 91, .10);
    backdrop-filter: blur(10px);
}

.login-hero-copy h1 {
    background: linear-gradient(90deg, #1768c6, #2f95e8);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.login-welcome {
    color: #5f7390;
}

.login-hero-copy h2 {
    color: #1d2d47;
}

.login-hero-copy p {
    color: #667991;
}

.login-rule {
    background: linear-gradient(90deg, #2f95e8, #6bb8f0);
}

.login-security-note {
    border: 1px solid #d8e7f5;
    background: rgba(255,255,255,.72);
    color: #284563;
}

.login-security-note > span {
    background: #e9f3ff;
    color: #1768c6;
}

.login-security-note small {
    color: #718198;
}

.login-card .muted,
.login-help {
    color: #74849a;
}

.login-card h2 {
    color: #1d2d47;
}

.login-card .form-stack label {
    color: #46596f;
}

.login-card .form-stack input {
    color: #2f4057;
    background: #fff;
    border: 1px solid #ccd9e7;
}

.login-card .form-stack input::placeholder {
    color: #9aa7b6;
}

.login-card .btn-primary {
    background: linear-gradient(180deg, #3a91f3 0%, #2775df 100%);
    border-color: #2775df;
    color: #fff;
}


/* Clean list tables and visible navigation dropdowns */
.laundry-header {
    position: relative;
    z-index: 200;
}

.laundry-main-nav {
    overflow: visible;
}

.laundry-nav-item {
    z-index: 210;
}

.laundry-dropdown {
    z-index: 500;
}

.clean-results-card {
    border-color: #e6edf5;
    box-shadow: 0 3px 12px rgba(18, 51, 91, .045);
}

.clean-table {
    border-collapse: separate;
    border-spacing: 0;
}

.clean-table th {
    height: 44px;
    padding: 0 16px;
    background: #f8fafc;
    border-bottom: 1px solid #edf2f7;
    color: #7a899e;
    font-size: 10px;
    letter-spacing: .035em;
}

.clean-table td {
    height: 54px;
    padding: 0 16px;
    border-bottom: 1px solid #f1f4f8;
    color: #46566c;
    font-size: 12px;
}

.clean-table tbody tr:hover td {
    background: #fbfdff;
}

.clean-table tbody tr:last-child td {
    border-bottom: 0;
}

.primary-cell-link {
    color: #1768e5;
    font-weight: 800;
}

.primary-cell-link:hover,
.client-link:hover {
    text-decoration: underline;
}

.client-link {
    color: #1768e5;
    font-weight: 700;
}

.important-amount {
    color: #2e4057 !important;
    font-weight: 800;
}

.subtle-number {
    color: #78879a !important;
}

.clean-muted {
    color: #a0acba;
}

.clean-pill {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.clean-pill.info {
    background: #eaf3ff;
    color: #1f68c7;
}

.clean-pill.success {
    background: #eaf8f0;
    color: #278257;
}

.clean-pill.warning {
    background: #fff4df;
    color: #a96700;
}

.clean-pill.neutral {
    background: #f1f4f7;
    color: #66778d;
}

.status-cluster {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.secondary-cell-text {
    display: block;
    margin-top: 3px;
    color: #94a0b0;
    font-size: 10px;
    font-weight: 500;
}

.page-title-action {
    margin-left: auto;
}

.results-count {
    color: #738399;
    font-size: 12px;
}

@media (max-width: 1100px) {
    .laundry-main-nav {
        overflow: visible;
        flex-wrap: wrap;
    }
}

@media (max-width: 820px) {
    .laundry-main-nav {
        overflow-x: auto;
        overflow-y: visible;
        flex-wrap: nowrap;
    }

    .laundry-dropdown {
        position: fixed;
        top: 92px;
    }
}


/* Final clean-table overrides: neutralize legacy !important grid styles */
.results-card.clean-results-card {
    border: 1px solid #e8eef5 !important;
    border-radius: 13px !important;
    background: #fff !important;
    box-shadow: 0 3px 12px rgba(18, 51, 91, .04) !important;
    overflow: hidden !important;
}

.clean-table,
.management-table.clean-table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: #fff !important;
}

.clean-table thead,
.clean-table tbody,
.clean-table tr {
    border: 0 !important;
}

.clean-table thead tr {
    background: #f8fafc !important;
}

.clean-table th {
    height: 42px !important;
    padding: 0 16px !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid #e9eff5 !important;
    background: #f8fafc !important;
    color: #7a899e !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
}

.clean-table td {
    height: 50px !important;
    padding: 0 16px !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid #eef3f7 !important;
    background: #fff !important;
    color: #46566c !important;
    font-size: 12px !important;
    box-shadow: none !important;
}

.clean-table tbody tr,
.clean-table tbody tr:nth-child(even),
.clean-table tbody tr:nth-child(odd) {
    background: #fff !important;
}

.clean-table tbody tr:hover {
    background: #fbfdff !important;
}

.clean-table tbody tr:hover td {
    background: #fbfdff !important;
}

.clean-table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.clean-table .primary-cell-link,
.clean-table .albaran-link,
.clean-table .client-link,
.clean-table a.primary-cell-link,
.clean-table a.albaran-link {
    color: #1768e5 !important;
    font-weight: 800 !important;
}

.clean-table .client-link {
    font-weight: 700 !important;
}

.clean-table .important-amount {
    color: #33445b !important;
    font-weight: 700 !important;
}

.clean-table .subtle-number {
    color: #718096 !important;
}

.clean-table .table-actions {
    gap: 6px !important;
}

.clean-table .table-icon-button {
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border: 1px solid #d7e4f0 !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: #4388db !important;
    box-shadow: none !important;
}

.clean-table .table-icon-button:hover {
    border-color: #b8d2ea !important;
    background: #f7fbff !important;
}

.clean-table .table-icon-button.danger {
    border-color: #f0cccc !important;
    background: #fff !important;
    color: #e25555 !important;
}

.clean-table .row-check {
    width: 14px !important;
    height: 14px !important;
}

.clean-table .clean-pill {
    border: 0 !important;
    box-shadow: none !important;
}


/* Reusable application confirmation dialog */
body.dialog-open { overflow: hidden; }

.app-dialog-backdrop {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(14, 30, 54, .28);
    backdrop-filter: blur(3px);
}

.app-dialog-backdrop.open { display: flex; }

.app-dialog {
    position: relative;
    width: min(430px, calc(100vw - 32px));
    padding: 28px 28px 24px;
    border: 1px solid #dbe5ef;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 35, 65, .22);
    text-align: center;
    animation: appDialogIn .16s ease-out;
}

@keyframes appDialogIn {
    from { opacity: 0; transform: translateY(8px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.app-dialog-close {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #8a99ab;
    font-size: 22px;
    cursor: pointer;
}

.app-dialog-close:hover { background: #f3f6f9; color: #495b70; }

.app-dialog-icon {
    width: 54px;
    height: 54px;
    margin: 0 auto 14px;
    display: grid;
    place-items: center;
    border-radius: 50%;
}

.app-dialog-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.app-dialog-icon.danger { background: #fff1f1; color: #df5353; }
.app-dialog-icon.info { background: #edf6ff; color: #347ec8; }
.app-dialog-icon.success { background: #ebf8f0; color: #278257; }

.app-dialog h2 {
    margin: 0 0 8px;
    color: #1d2d47;
    font-size: 20px;
    font-weight: 800;
}

.app-dialog p {
    margin: 0 auto;
    max-width: 340px;
    color: #66788e;
    font-size: 13px;
    line-height: 1.55;
}

.app-dialog-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 24px;
}

.app-dialog-button {
    min-width: 112px;
    min-height: 40px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.app-dialog-button.secondary {
    border: 1px solid #cedae7;
    background: #fff;
    color: #53677f;
}

.app-dialog-button.secondary:hover { background: #f7f9fb; }

.app-dialog-button.primary {
    border: 1px solid #2f7ed3;
    background: linear-gradient(180deg, #3a91f3, #2775df);
    color: #fff;
    box-shadow: 0 5px 12px rgba(39,117,223,.16);
}

.tone-danger .app-dialog-button.primary {
    border-color: #df5353;
    background: linear-gradient(180deg, #ee6a6a, #d94d4d);
}


/* Facturar albaranes */
.invoice-billing-layout {
    align-items: start;
}

.invoice-billing-main {
    min-width: 0;
    display: grid;
    gap: 14px;
}

.invoice-billing-summary {
    min-height: 38px;
}

.invoice-client-panels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

.invoice-panel,
.invoice-options-card {
    background: #fff;
    border: 1px solid #e4ebf3;
    border-radius: 14px;
    box-shadow: 0 3px 12px rgba(18, 51, 91, .045);
    overflow: hidden;
}

.invoice-panel-header,
.invoice-options-heading {
    min-height: 64px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #edf2f6;
    background: #fbfcfe;
}

.invoice-panel-header h2,
.invoice-options-heading h2 {
    margin: 2px 0 0;
    color: #22344f;
    font-size: 15px;
    font-weight: 800;
}

.invoice-panel-kicker {
    color: #7d8da2;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.invoice-panel-action {
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #cbdbea;
    border-radius: 8px;
    background: #fff;
    color: #2c6aaa;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.invoice-panel-action:hover {
    background: #f3f8fe;
}

.invoice-client-list {
    min-height: 280px;
    max-height: 390px;
    overflow-y: auto;
    padding: 7px;
    background: #fff;
}

.invoice-client-list.selected {
    background: #fbfdff;
}

.invoice-client-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto 32px;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 9px 10px;
    border-bottom: 1px solid #f0f3f7;
    background: #fff;
}

.invoice-client-row:last-child {
    border-bottom: 0;
}

.invoice-client-row:hover {
    background: #fbfdff;
}

.invoice-client-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.invoice-client-copy strong {
    overflow: hidden;
    color: #1f5fae;
    font-size: 11px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.invoice-client-copy span {
    color: #8795a8;
    font-size: 9px;
}

.invoice-client-total {
    color: #31455e;
    font-size: 11px;
    white-space: nowrap;
}

.invoice-round-button {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    border: 1px solid #cdddec;
    border-radius: 8px;
    background: #fff;
    color: #3274ba;
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
}

.invoice-round-button:hover {
    background: #eef6ff;
}

.remove-client {
    color: #d85858;
    border-color: #efcccc;
}

.invoice-empty {
    min-height: 180px;
    display: grid;
    place-items: center;
    padding: 20px;
    color: #8a98aa;
    font-size: 11px;
    text-align: center;
}

.invoice-empty.large {
    min-height: 170px;
}

.invoice-delivery-panel {
    margin-bottom: 14px;
}

.invoice-delivery-group + .invoice-delivery-group {
    border-top: 1px solid #edf2f6;
}

.invoice-delivery-group-title {
    min-height: 54px;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #fcfdff;
    border-bottom: 1px solid #eef3f7;
}

.invoice-delivery-group-title > div {
    display: grid;
    gap: 2px;
}

.invoice-delivery-group-title strong {
    color: #245b97;
    font-size: 11px;
}

.invoice-delivery-group-title span {
    color: #8997a8;
    font-size: 9px;
}

.invoice-delivery-table {
    min-width: 760px;
}

.invoice-options-card {
    padding-bottom: 16px;
}

.invoice-options-grid {
    display: grid;
    grid-template-columns: 180px 220px minmax(260px,1fr) auto;
    gap: 12px;
    align-items: end;
    padding: 16px;
}

.invoice-options-grid .dbc-field {
    margin-bottom: 0;
}

.invoice-options-observations {
    min-width: 0;
}

.invoice-rectificativa {
    min-height: 40px;
    padding-bottom: 2px;
    white-space: nowrap;
}

.invoice-options-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 0 16px;
}

@media (max-width: 1180px) {
    .invoice-client-panels {
        grid-template-columns: 1fr;
    }

    .invoice-options-grid {
        grid-template-columns: 1fr 1fr;
    }

    .invoice-options-observations {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .invoice-options-grid {
        grid-template-columns: 1fr;
    }
}


/* Sortable list headers */
.sortable-header {
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    cursor: pointer;
    text-align: left;
}

.sortable-header.align-right {
    justify-content: flex-end;
    text-align: right;
}

.sortable-header:hover {
    color: #2f6fb0;
}

.sort-indicator {
    min-width: 12px;
    color: #9aa9ba;
    font-size: 9px;
    line-height: 1;
}

.sortable-header[data-sort-direction="asc"] .sort-indicator,
.sortable-header[data-sort-direction="desc"] .sort-indicator {
    color: #2f7fce;
}


/* Payment management */
.payment-summary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
    gap: 14px;
    margin-bottom: 14px;
}

.payment-action-card {
    background: #fff;
    border: 1px solid #e4ebf3;
    border-radius: 14px;
    box-shadow: 0 3px 12px rgba(18, 51, 91, .045);
    overflow: hidden;
}

.payment-card-heading {
    min-height: 58px;
    padding: 13px 15px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #edf2f6;
    background: #fbfcfe;
}

.payment-card-heading h2 {
    margin: 2px 0 0;
    color: #22344f;
    font-size: 15px;
    font-weight: 800;
}

.payment-card-fields {
    display: grid;
    grid-template-columns: 160px 190px minmax(220px, 1fr) auto;
    gap: 10px;
    align-items: end;
    padding: 14px;
}

.payment-card-fields .dbc-field {
    margin-bottom: 0;
}

.payment-driver-fields {
    grid-template-columns: minmax(200px, 1fr) auto;
}

.payment-card-button {
    min-height: 40px;
    white-space: nowrap;
}

@media (max-width: 1100px) {
    .payment-summary-grid {
        grid-template-columns: 1fr;
    }

    .payment-card-fields {
        grid-template-columns: 1fr 1fr;
    }

    .payment-observations {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .payment-card-fields,
    .payment-driver-fields {
        grid-template-columns: 1fr;
    }
}


/* Customer groups maintenance */
.group-maintenance-grid {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.group-panel {
    background: #fff;
    border: 1px solid #e3eaf2;
    border-radius: 14px;
    box-shadow: 0 3px 12px rgba(18,51,91,.045);
    overflow: hidden;
}
.group-panel-header {
    min-height: 62px;
    padding: 13px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-bottom: 1px solid #edf2f6;
    background: #fbfcfe;
}
.group-panel-header h2 {
    margin: 2px 0 0;
    font-size: 15px;
    color: #22344f;
}
.group-list { padding: 7px; max-height: 430px; overflow-y: auto; }
.group-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto 30px;
    align-items: center;
    gap: 8px;
    min-height: 52px;
    padding: 7px 8px;
    border-bottom: 1px solid #f0f3f7;
    border-radius: 8px;
}
.group-row.selected { background: #edf6ff; }
.group-row-main { display:grid; gap:2px; min-width:0; }
.group-row-main strong { color:#245f9f; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.group-row-main span { color:#8a98aa; font-size:9px; }
.group-edit-form { padding:14px; border-top:1px solid #edf2f6; background:#fcfdff; }
.group-form-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
.group-searchbar {
    display:grid;
    grid-template-columns:minmax(220px,1fr) 180px auto;
    gap:10px;
    align-items:end;
    padding:14px;
    border-bottom:1px solid #edf2f6;
}
.group-searchbar .filter-field { margin:0; }
.group-bulkbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    background:#fbfcfe;
    border-bottom:1px solid #edf2f6;
}
.group-delete-form { margin-top:12px; display:flex; justify-content:flex-start; }
@media(max-width:1050px){
    .group-maintenance-grid{grid-template-columns:1fr;}
    .group-searchbar{grid-template-columns:1fr;}
}


/* Planta - visual system aligned with the production reference */
.touch-container {
    background: #edf7ff !important;
}

.production-screen {
    width: 100vw !important;
    min-height: 100vh !important;
    height: auto !important;
    overflow-y: auto !important;
    grid-template-rows: 48px minmax(142px, auto) minmax(0, 1fr) !important;
    background:
        radial-gradient(circle at 15% 12%, rgba(87, 176, 255, .13), transparent 22%),
        linear-gradient(145deg, #f8fcff 0%, #eef8ff 52%, #e7f4ff 100%) !important;
    color: #0e2f68 !important;
}

.production-screen::before,
.production-screen::after {
    content: "";
    position: fixed;
    pointer-events: none;
    z-index: 0;
    border: 1px solid rgba(73, 158, 229, .09);
    transform: rotate(-18deg);
}

.production-screen::before {
    width: 420px;
    height: 170px;
    left: -170px;
    top: 100px;
    border-radius: 60px;
}

.production-screen::after {
    width: 500px;
    height: 190px;
    right: -210px;
    bottom: 40px;
    border-radius: 70px;
}

.production-screen > * {
    position: relative;
    z-index: 1;
}

.production-step-title {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 5px 54px 2px;
    color: #102f69;
}

.production-step-number {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex: 0 0 40px;
    border-radius: 50%;
    background: linear-gradient(180deg, #1f8bf0, #0870d9);
    color: #fff;
    font-size: 19px;
    font-weight: 900;
    box-shadow: 0 5px 12px rgba(19, 116, 215, .22);
}

.production-step-title strong {
    font-size: 21px;
    font-weight: 900;
    letter-spacing: -.025em;
}

.production-top {
    grid-template-columns: minmax(360px, .95fr) minmax(360px, .82fr) !important;
    gap: 24px !important;
    padding: 8px 150px 10px !important;
    border: 0 !important;
    background: transparent !important;
}

.production-top .app-card {
    border: 1px solid rgba(54, 127, 196, .12) !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.88) !important;
    box-shadow: 0 7px 20px rgba(50, 113, 170, .08) !important;
}

.operators-panel,
.machine-panel {
    padding: 10px 14px !important;
}

.top-card-heading {
    min-height: 27px !important;
    margin-bottom: 6px !important;
}

.top-card-heading .heading-kicker,
.groups-title .heading-kicker,
.actions-heading .heading-kicker,
.selected-customer-name .heading-kicker {
    color: #7186a2 !important;
    font-size: 8px !important;
    letter-spacing: .08em !important;
}

.top-card-heading strong {
    color: #0e2f68 !important;
    font-size: 14px !important;
}

.status-dot {
    width: 9px !important;
    height: 9px !important;
}

.status-dot.online {
    box-shadow: 0 0 0 4px #dff8e8 !important;
}

.operators-body {
    grid-template-columns: minmax(0,1fr) 64px !important;
    gap: 10px !important;
}

.operator-active,
.icon-action {
    min-height: 47px !important;
    border-radius: 10px !important;
}

.operator-active {
    padding: 6px 9px !important;
    border-color: rgba(68, 129, 186, .13) !important;
    background: linear-gradient(90deg, #f4f8fb, #edf3f8) !important;
}

.avatar {
    width: 34px !important;
    height: 34px !important;
    flex-basis: 34px !important;
    font-size: 14px !important;
    background: linear-gradient(180deg, #248ce8, #0e70d2) !important;
}

.operator-active span {
    font-size: 8px !important;
}

.operator-active strong {
    color: #173a75 !important;
    font-size: 12px !important;
}

.icon-action {
    color: #244f88 !important;
    background: #fff !important;
}

.icon-action span {
    font-size: 18px !important;
}

.icon-action small {
    font-size: 9px !important;
}

.machine-body {
    grid-template-columns: minmax(0,1fr) minmax(180px,240px) !important;
    gap: 9px !important;
}

.machine-name,
.workstation-select select {
    min-height: 43px !important;
    border-radius: 9px !important;
}

.machine-name {
    padding: 0 12px !important;
    background: linear-gradient(90deg, #dceeff, #cfe8ff) !important;
    color: #0e69d1 !important;
    font-size: 14px !important;
}

.workstation-select select {
    border-color: rgba(68, 129, 186, .18) !important;
    background: #fff !important;
    color: #183a70 !important;
    font-weight: 800 !important;
}

/* Step 1 */
.customer-selector {
    grid-template-rows: 52px minmax(0,1fr) !important;
    margin: 0 48px 32px !important;
    border: 1px solid rgba(63, 143, 211, .13) !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    background: rgba(255,255,255,.34) !important;
    box-shadow: 0 10px 28px rgba(56, 126, 184, .08) !important;
}

.selector-heading {
    grid-template-columns: minmax(260px,1fr) minmax(340px,470px) !important;
    min-height: 52px !important;
    padding: 7px 18px !important;
    border-bottom: 1px solid rgba(67, 136, 199, .10) !important;
    background: rgba(255,255,255,.85) !important;
}

.selector-title strong {
    color: #102f68 !important;
    font-size: 16px !important;
}

.selector-title .heading-kicker {
    display: none !important;
}

.section-icon {
    width: 34px !important;
    height: 34px !important;
    border-radius: 10px !important;
    background: #e8f4ff !important;
    color: #166fd1 !important;
    font-size: 20px !important;
}

.customer-search {
    grid-template-columns: 1fr 105px !important;
    gap: 8px !important;
}

.customer-search input,
.customer-search button {
    height: 36px !important;
    border-radius: 10px !important;
}

.customer-search button {
    background: linear-gradient(180deg, #0c62c8, #063f98) !important;
}

.customer-selector-body {
    grid-template-columns: minmax(0,1fr) 180px !important;
    gap: 14px !important;
    padding: 8px 14px 12px !important;
}

.customers-side {
    overflow: visible !important;
}

.customer-button-grid {
    grid-template-columns: repeat(5, minmax(150px,1fr)) !important;
    grid-auto-rows: 58px !important;
    gap: 9px !important;
}

.customer-touch-button {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 22px !important;
    border: 1px solid rgba(62, 131, 194, .12) !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.84) !important;
    box-shadow: 0 3px 10px rgba(56, 117, 170, .055) !important;
}

.customer-touch-button::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 4px;
    width: 32px;
    height: 3px;
    border-radius: 999px;
    background: #4ba8ff;
}

.customer-touch-button:nth-child(4n+2)::before { background: #ff7480; }
.customer-touch-button:nth-child(4n+3)::before { background: #52d69d; }
.customer-touch-button:nth-child(4n+4)::before { background: #a879f4; }

.customer-touch-button:hover,
.customer-touch-button:focus {
    border-color: #1680e8 !important;
    box-shadow: inset 0 0 0 1px #1680e8, 0 5px 15px rgba(43, 127, 201, .12) !important;
    transform: none !important;
}

.customer-name {
    padding: 12px 7px 7px 14px !important;
    color: #12356f !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
}

.customer-arrow {
    color: #2e6faf !important;
    font-size: 21px !important;
}

.groups-side {
    grid-template-rows: 44px minmax(0,1fr) !important;
    border-radius: 11px !important;
    background: rgba(255,255,255,.9) !important;
}

.groups-title {
    padding: 0 10px !important;
}

.groups-title strong {
    color: #14376f !important;
    font-size: 11px !important;
}

.group-buttons {
    gap: 4px !important;
    padding: 6px !important;
}

.group-touch-button {
    min-height: 32px !important;
    padding: 4px 6px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #edf1f5 !important;
    color: #34506f !important;
    font-size: 10px !important;
}

.group-touch-button.selected {
    background: linear-gradient(90deg, #e6f4ff, #d8edff) !important;
    color: #0870d8 !important;
    box-shadow: inset 0 0 0 1px #67b2f2 !important;
}

/* Step 2 */
.production-step-two {
    grid-template-rows: 48px minmax(142px, auto) 48px minmax(0,1fr) !important;
}

.selected-customer-bar {
    min-height: 48px !important;
    margin: 0 48px !important;
    padding: 5px 16px !important;
    border: 1px solid rgba(63, 143, 211, .13) !important;
    border-radius: 12px 12px 0 0 !important;
    background: rgba(255,255,255,.9) !important;
}

.customer-back-icon {
    width: 34px !important;
    height: 34px !important;
    border-radius: 9px !important;
}

.selected-customer-name strong {
    color: #11346e !important;
    font-size: 15px !important;
}

.close-delivery-button {
    min-height: 35px !important;
    border-radius: 9px !important;
    background: linear-gradient(180deg, #1387ec, #006fdd) !important;
    font-size: 11px !important;
}

.query-button {
    width: 35px !important;
    height: 35px !important;
    border-radius: 9px !important;
}

.customer-production {
    grid-template-columns: minmax(0,1fr) 180px !important;
    gap: 10px !important;
    padding: 8px 48px 20px !important;
    background: transparent !important;
}

.garments-panel {
    overflow: visible !important;
}

.garments-grid {
    grid-template-columns: repeat(6, minmax(118px,1fr)) !important;
    grid-auto-rows: 72px !important;
    gap: 8px !important;
}

.garment-form {
    grid-template-rows: 72px !important;
}

.garment-tile {
    position: relative !important;
    grid-template-rows: 32px 40px !important;
    border: 1px solid rgba(60, 131, 194, .12) !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.9) !important;
    box-shadow: 0 3px 10px rgba(56, 117, 170, .055) !important;
}

.garment-tile::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 3px;
    width: 30px;
    height: 3px;
    border-radius: 999px;
    background: #41a3f7;
}

.garment-form:nth-child(4n+2) .garment-tile::before { background: #ff6f7c; }
.garment-form:nth-child(4n+3) .garment-tile::before { background: #45d58c; }
.garment-form:nth-child(4n+4) .garment-tile::before { background: #aa78ef; }

.garment-name-button {
    padding: 9px 8px 2px !important;
    color: #163870 !important;
    background: transparent !important;
    text-align: left !important;
    font-size: 10px !important;
    line-height: 1.05 !important;
}

.garment-count-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) 64px;
    gap: 7px;
    align-items: center;
    padding: 4px 8px 7px;
}

.garment-count-row.single {
    grid-template-columns: minmax(0,1fr);
}

.garment-manual-button.full {
    width: 100%;
}

.garment-count-badge,
.garment-manual-button {
    height: 28px;
    border: 0;
    border-radius: 9px;
    font-weight: 900;
}

.garment-count-badge {
    display: grid;
    place-items: center;
    cursor: default;
}

.garment-manual-button {
    cursor: pointer;
}

.garment-count-badge {
    background: linear-gradient(180deg, #c9ebff, #99d5f9);
    color: #075ba8;
    font-size: 18px;
    box-shadow: inset 0 -1px 0 rgba(20, 99, 167, .08);
}

.garment-form:nth-child(4n+2) .garment-count-badge {
    background: linear-gradient(180deg, #ffd8dc, #ffbfc5);
    color: #b42936;
}

.garment-form:nth-child(4n+3) .garment-count-badge {
    background: linear-gradient(180deg, #d4f8df, #a9efc3);
    color: #167848;
}

.garment-form:nth-child(4n+4) .garment-count-badge {
    background: linear-gradient(180deg, #e6d9ff, #cfb8fb);
    color: #6841a7;
}

.garment-manual-button {
    background: #edf6ff;
    color: #0870da;
    font-size: 10px;
}

.production-actions {
    grid-template-rows: 44px auto 1fr auto !important;
    border: 1px solid rgba(60, 131, 194, .13) !important;
    border-radius: 11px !important;
    background: rgba(255,255,255,.9) !important;
    box-shadow: 0 4px 13px rgba(56, 117, 170, .06) !important;
}

.actions-heading {
    padding: 0 9px !important;
}

.actions-heading strong {
    color: #17396e !important;
    font-size: 11px !important;
}

.mode-actions {
    gap: 4px !important;
    padding: 6px !important;
}

.side-action {
    min-height: 34px !important;
    grid-template-columns: 25px 1fr !important;
    padding: 0 7px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #eef2f6 !important;
    font-size: 10px !important;
}

.action-symbol {
    width: 21px !important;
    height: 21px !important;
    border-radius: 7px !important;
    font-size: 9px !important;
}

.side-action[data-operation="Trapos"] .action-symbol { background:#ddecff !important; color:#1870d0 !important; }
.side-action[data-operation="Rechazo"] .action-symbol { background:#ffe2e4 !important; color:#c63b48 !important; }
.side-action[data-operation="Roto"] .action-symbol { background:#fff0cc !important; color:#b67a00 !important; }
.new-action .action-symbol { background:#dff8e8 !important; color:#208350 !important; }

.new-action-wrap {
    grid-template-columns: 1fr 34px !important;
    gap: 4px !important;
}

.label-more-button {
    border: 0 !important;
    border-radius: 8px !important;
    font-size: 18px !important;
}

.active-mode-card {
    margin: 0 6px !important;
    padding: 7px 8px !important;
    border: 1px solid #e5ebf1 !important;
    border-radius: 8px !important;
}

.active-mode-card span { font-size: 8px !important; }
.active-mode-card strong { color:#16386d !important; font-size: 11px !important; }

.bottom-actions {
    gap: 4px !important;
    padding: 6px !important;
}

.cancel-lot-button,
.change-client-button {
    min-height: 34px !important;
    border-radius: 8px !important;
    font-size: 10px !important;
}

.change-client-button {
    background: linear-gradient(180deg, #173d80, #0d2f69) !important;
}

/* Puesto de planta: mantener siempre visibles las acciones inferiores.
   El panel derecho puede ser tan alto como toda la rejilla de prendas; no usamos
   una fila 1fr que empuje estos botones hasta el final de la lista. */
.production-actions {
    grid-template-rows: 44px auto auto auto !important;
    align-content: start !important;
}

.bottom-actions {
    grid-row: auto !important;
    margin-top: 2px !important;
    border-top: 1px solid #e1eaf3 !important;
    background: rgba(255,255,255,.94) !important;
}

/* El modo de lote seleccionado debe ser inequívoco incluso con el tema compacto. */
.side-action.active,
.new-action.active {
    border: 1px solid #0564c7 !important;
    background: linear-gradient(180deg, #1689ef, #0670d8) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 11px rgba(5, 103, 207, .24) !important;
}

.side-action.active .action-symbol,
.new-action.active .action-symbol {
    background: #ffffff !important;
    color: #0868cb !important;
    box-shadow: 0 1px 3px rgba(0, 61, 128, .18) !important;
}

.side-action.active:hover,
.new-action.active:hover {
    background: linear-gradient(180deg, #0e80e8, #0566c8) !important;
    color: #ffffff !important;
}

.production-toast {
    position: fixed !important;
    top: 12px !important;
    left: 50% !important;
    z-index: 3500 !important;
    transform: translateX(-50%) !important;
    max-width: 700px !important;
}

@media (max-width: 1250px) {
    .production-top { padding-left: 40px !important; padding-right: 40px !important; }
    .customer-button-grid { grid-template-columns: repeat(4,minmax(150px,1fr)) !important; }
    .customer-selector, .selected-customer-bar { margin-left: 24px !important; margin-right: 24px !important; }
    .customer-production { padding-left:24px !important; padding-right:24px !important; }
    .garments-grid { grid-template-columns: repeat(5,minmax(115px,1fr)) !important; }
}

@media (max-width: 950px) {
    .production-screen,
    .production-step-two {
        height: auto !important;
        min-height: 100vh !important;
        overflow: visible !important;
        grid-template-rows: auto !important;
    }
    .production-top { grid-template-columns:1fr !important; padding:8px 18px !important; }
    .customer-selector-body,
    .customer-production { grid-template-columns:1fr !important; }
    .customer-button-grid { grid-template-columns:repeat(2,minmax(140px,1fr)) !important; }
    .garments-grid { grid-template-columns:repeat(3,minmax(115px,1fr)) !important; }
}


/* Maintenance create/edit forms - reference layout */
.maintenance-form {
    display: grid !important;
    gap: 16px !important;
    padding-bottom: 84px !important;
}

.maintenance-card {
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid #e2ebf4 !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 8px 24px rgba(45, 106, 162, .06) !important;
}

.maintenance-card-header {
    min-height: 82px;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 20px;
    border-bottom: 1px solid #edf2f7;
    background: linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}

.maintenance-card-icon {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: linear-gradient(180deg,#e8f5ff,#d8edff);
    color: #1376da;
    font-size: 23px;
    font-weight: 900;
    box-shadow: inset 0 0 0 1px rgba(48,134,211,.08);
}

.maintenance-card-header h2 {
    margin: 0 !important;
    color: #17386f !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    letter-spacing: -.02em;
}

.maintenance-card-header p {
    margin: 4px 0 0;
    color: #7688a0;
    font-size: 12px;
}

.maintenance-card > .maintenance-grid {
    padding: 18px 20px 20px;
}

.maintenance-grid {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 14px 20px !important;
}

.maintenance-grid label {
    display: grid !important;
    gap: 6px !important;
    color: #18386c !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

.maintenance-grid input,
.maintenance-grid select,
.maintenance-grid textarea {
    min-height: 42px !important;
    padding: 9px 12px !important;
    border: 1px solid #cad7e6 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #17315d !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    box-shadow: inset 0 1px 2px rgba(37, 78, 120, .025) !important;
}

.maintenance-grid input:focus,
.maintenance-grid select:focus,
.maintenance-grid textarea:focus {
    outline: none !important;
    border-color: #62a9eb !important;
    box-shadow: 0 0 0 3px rgba(46,143,232,.10) !important;
}

.maintenance-grid .filter-check {
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding-top: 18px;
    color: #28466e !important;
}

.maintenance-grid .filter-check input {
    width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    padding: 0 !important;
}

.maintenance-grid .wide {
    grid-column: 1 / -1 !important;
}

.maintenance-edit-actions {
    position: sticky;
    bottom: 0;
    z-index: 50;
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #dfe8f1;
    border-radius: 15px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 -5px 18px rgba(37,78,120,.06);
    backdrop-filter: blur(10px);
}

.maintenance-edit-actions-right {
    display: flex;
    align-items: center;
    gap: 10px;
}

.maintenance-action {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 17px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.maintenance-action.secondary {
    border: 1px solid #cbd8e5;
    background: #fff;
    color: #315279;
}

.maintenance-action.primary {
    border: 1px solid #1576d7;
    background: linear-gradient(180deg,#2391f1,#0871dd);
    color: #fff;
    box-shadow: 0 5px 12px rgba(18,112,214,.16);
}

.maintenance-action:hover {
    transform: translateY(-1px);
}

.maintenance-form-page .page-breadcrumb {
    margin-bottom: 18px;
}

.maintenance-form-page .page-title-row {
    margin-bottom: 22px;
}

.maintenance-form-page .page-title-icon {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    font-size: 25px;
}

.maintenance-form-page .page-title-row h1 {
    font-size: 30px;
}

@media(max-width:1050px){
    .maintenance-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}

@media(max-width:720px){
    .maintenance-grid { grid-template-columns: 1fr !important; }
    .maintenance-edit-actions { position: static; flex-direction:column; align-items:stretch; }
    .maintenance-edit-actions-right { display:grid; grid-template-columns:1fr 1fr; }
}


.production-toast {
    transition: opacity .22s ease, transform .22s ease;
}

.production-toast.closing {
    opacity: 0 !important;
    transform: translate(-50%, -8px) !important;
}


/* Planta: pendientes de cierre y reimpresion */
.plant-client-tools {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
    align-items: center;
}

.pending-deliveries-button {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 11px;
    border: 1px solid #b9d9f7;
    border-radius: 10px;
    background: #edf7ff;
    color: #1267b8;
    font-size: 10px;
    font-weight: 900;
    cursor: pointer;
}

.pending-deliveries-button strong {
    min-width: 20px;
    height: 20px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: #1483e8;
    color: #fff;
    font-size: 9px;
}

.pending-clients-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 9px;
    max-height: 56vh;
    overflow-y: auto;
    padding: 2px;
}

.pending-client-card {
    min-height: 66px;
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid #d8e6f2;
    border-radius: 11px;
    background: #fff;
    color: #173c70;
    box-shadow: 0 3px 10px rgba(40,98,151,.05);
}

.pending-client-card:hover {
    border-color: #5fa9eb;
    background: #f6fbff;
}

.pending-client-check {
    grid-row: 1 / span 2;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #e7f5ff;
    color: #1378dc;
    font-weight: 900;
}

.pending-client-card strong {
    font-size: 11px;
}

.pending-client-card > span:last-child {
    color: #7b8ea5;
    font-size: 9px;
}

.lot-reprint-button {
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid #b9d8f4;
    border-radius: 8px;
    background: #edf7ff;
    color: #126cc4;
    font-size: 9px;
    font-weight: 900;
    cursor: pointer;
}

.lot-reprint-button:hover {
    background: #dff1ff;
}

@media(max-width:900px) {
    .plant-client-tools { grid-template-columns: 1fr; }
    .pending-clients-grid { grid-template-columns: 1fr; }
}


/* Planta - multiusuario y cancelacion avanzada */
.operator-heading-actions {
    display:flex;
    align-items:center;
    gap:7px;
}
.operator-count {
    min-width:22px;
    height:22px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:#e6f3ff;
    color:#0d72d5;
    font-size:9px;
    font-weight:900;
}
.operator-add-button {
    width:28px;
    height:28px;
    border:1px solid #b8d8f5;
    border-radius:8px;
    background:#fff;
    color:#0e72d4;
    font-size:18px;
    line-height:1;
    cursor:pointer;
}
.operators-body.multi-users {
    grid-template-columns:minmax(0,1fr) 64px !important;
}
.operator-chips {
    min-width:0;
    display:flex;
    align-items:center;
    gap:6px;
    overflow-x:auto;
    padding-bottom:2px;
}
.operator-empty {
    min-height:44px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 10px;
    color:#7186a0;
    font-size:10px;
}
.status-dot.warning {
    background:#f5ae2e !important;
    box-shadow:0 0 0 4px #fff1ce !important;
}
.operator-chip {
    min-width:180px;
    height:44px;
    display:grid;
    grid-template-columns:32px minmax(0,1fr) 24px;
    align-items:center;
    gap:7px;
    padding:4px 5px 4px 7px;
    border:1px solid #dce7f1;
    border-radius:9px;
    background:#f8fbfd;
}
.operator-chip .avatar {
    width:30px !important;
    height:30px !important;
    flex-basis:30px !important;
    font-size:12px !important;
}
.operator-chip-copy {
    min-width:0;
    display:grid;
    gap:1px;
}
.operator-chip-copy small {
    color:#8796a8;
    font-size:7px;
}
.operator-chip-copy strong {
    overflow:hidden;
    color:#173b73;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.operator-remove-button {
    width:23px;
    height:23px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:7px;
    background:#fff0f0;
    color:#d54d4d;
    font-size:14px;
    cursor:pointer;
}

.user-picker-search {
    padding:0 0 12px;
}
.user-picker-search input {
    width:100%;
    height:40px;
    padding:0 12px;
    border:1px solid #cad9e8;
    border-radius:9px;
}
.user-picker-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    max-height:55vh;
    overflow-y:auto;
}
.user-picker-card {
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    min-height:58px;
    padding:8px 9px;
    border:1px solid #dce7f1;
    border-radius:10px;
    background:#fff;
}
.user-picker-card > span:nth-child(2) {
    min-width:0;
    display:grid;
    gap:2px;
}
.user-picker-card strong {
    overflow:hidden;
    color:#173b73;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.user-picker-card small {
    color:#8998aa;
    font-size:8px;
}
.user-picker-card button {
    min-height:30px;
    padding:0 10px;
    border:1px solid #b8d8f5;
    border-radius:8px;
    background:#edf7ff;
    color:#116fc9;
    font-size:9px;
    font-weight:900;
}
.user-picker-card.assigned {
    background:#f5faf6;
}
.user-picker-card.assigned button {
    border-color:#cde8d5;
    background:#eaf7ee;
    color:#43805a;
}

.touch-modal-card.extra-wide {
    width:min(1120px,95vw);
}
.cancel-advanced-modal {
    max-height:88vh;
}
.cancel-tools {
    display:grid;
    gap:10px;
    margin-bottom:10px;
}
.cancel-barcode-form {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:9px;
    align-items:end;
    padding:11px;
    border:1px solid #dbe7f1;
    border-radius:10px;
    background:#f8fbfd;
}
.cancel-barcode-form label,
.cancel-filters label,
.cancel-station-lock {
    display:grid;
    gap:5px;
    color:#365578;
    font-size:9px;
    font-weight:800;
}
.cancel-barcode-form input,
.cancel-filters input,
.cancel-filters select {
    min-height:38px;
    padding:0 10px;
    border:1px solid #cbd9e7;
    border-radius:8px;
    background:#fff;
    color:#17365f;
}
.touch-danger {
    min-height:38px;
    padding:0 13px;
    border:1px solid #edb7b7;
    border-radius:8px;
    background:#fff1f1;
    color:#c83f3f;
    font-size:10px;
    font-weight:900;
    cursor:pointer;
}
.cancel-filters {
    display:grid;
    grid-template-columns:minmax(0,1fr) 210px;
    gap:9px;
}
.cancel-station-lock {
    justify-content:center;
    min-height:38px;
    padding:6px 10px;
    border:1px solid #dce7f1;
    border-radius:8px;
    background:#f6f9fb;
}
.cancel-station-lock strong {
    color:#244b78;
    font-size:10px;
}
.cancel-bulkbar {
    min-height:48px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    border:1px solid #e0e8ef;
    border-radius:9px 9px 0 0;
    background:#fbfcfe;
}
.cancel-select-all {
    display:flex;
    align-items:center;
    gap:7px;
    color:#315377;
    font-size:9px;
    font-weight:800;
}
#cancelSelectionCount {
    color:#8493a5;
    font-size:9px;
}
.cancel-lot-table {
    max-height:52vh;
    overflow-y:auto;
    border:1px solid #e0e8ef;
    border-top:0;
    border-radius:0 0 9px 9px;
}
.cancel-lot-row {
    display:grid;
    grid-template-columns:34px 92px minmax(180px,1fr) 90px 150px;
    align-items:center;
    gap:9px;
    min-height:52px;
    padding:7px 10px;
    border-bottom:1px solid #edf2f6;
    background:#fff;
    cursor:pointer;
}
.cancel-lot-row:hover {
    background:#f8fbff;
}
.cancel-lot-row:last-child {
    border-bottom:0;
}
.cancel-lot-number,
.cancel-lot-qty {
    display:grid;
    gap:2px;
}
.cancel-lot-number strong,
.cancel-lot-prenda {
    color:#194778;
    font-size:10px;
}
.cancel-lot-number small,
.cancel-lot-qty small {
    color:#8b9aab;
    font-size:8px;
}
.cancel-lot-qty strong {
    color:#254b72;
    font-size:10px;
}
.cancel-lot-station {
    padding:4px 7px;
    border-radius:7px;
    background:#eef5fb;
    color:#4b6887;
    font-size:8px;
    text-align:center;
}

@media(max-width:850px){
    .user-picker-grid{grid-template-columns:1fr;}
    .cancel-filters{grid-template-columns:1fr;}
    .cancel-lot-row{grid-template-columns:30px 80px minmax(140px,1fr) 80px;}
    .cancel-lot-station{display:none;}
}


/* Management home dashboard */
.management-home {
    display:grid;
    gap:12px;
    max-width:1700px;
    margin:0 auto;
    color:#16345e;
}

.management-home-hero {
    position:relative;
    min-height:240px;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
    border:1px solid #dfeaf4;
    border-radius:17px;
    background:
        radial-gradient(circle at 15% 15%,rgba(91,177,245,.12),transparent 27%),
        linear-gradient(120deg,#fbfdff 0%,#edf7ff 54%,#e4f2fb 100%);
    box-shadow:0 7px 22px rgba(32,91,145,.07);
}

.management-home-hero::before {
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg,transparent 0 58%,rgba(255,255,255,.42) 58% 64%,transparent 64%),
        linear-gradient(15deg,transparent 0 70%,rgba(63,157,230,.06) 70% 72%,transparent 72%);
    pointer-events:none;
}

.management-home-hero-copy {
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:28px 32px;
}

.management-home-kicker {
    margin-bottom:7px;
    color:#1681e5;
    font-size:10px;
    font-weight:900;
    letter-spacing:.075em;
}

.management-home-hero h1 {
    margin:0;
    color:#173560;
    font-size:38px;
    line-height:1.05;
    font-weight:900;
    letter-spacing:-.04em;
}

.management-home-hero h1 strong {
    color:#1478df;
}

.management-home-hero-copy > p {
    max-width:650px;
    margin:8px 0 18px;
    color:#657b98;
    font-size:13px;
    line-height:1.45;
}

.management-home-benefits {
    display:flex;
    flex-wrap:wrap;
    gap:24px;
}

.management-home-benefits > div {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:180px;
}

.management-home-benefit-icon {
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    flex:0 0 34px;
    border-radius:10px;
    background:#dff1ff;
    color:#1280df;
    font-size:14px;
    font-weight:900;
}

.management-home-benefit-icon.chart { background:#e4f4ff; }
.management-home-benefit-icon.shield { background:#e7f3ff; }

.management-home-benefits span:last-child {
    display:grid;
    gap:2px;
}

.management-home-benefits strong {
    color:#193762;
    font-size:10px;
    font-weight:900;
}

.management-home-benefits small {
    color:#7c8fa6;
    font-size:8px;
}

.management-home-towels {
    position:relative;
    min-height:240px;
    overflow:hidden;
}

.management-home-towels::before {
    content:"";
    position:absolute;
    width:190px;
    height:190px;
    right:28px;
    bottom:-55px;
    border-radius:50%;
    background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.9),rgba(167,210,236,.2) 60%,transparent 61%);
}

.management-home-towels .towel {
    position:absolute;
    right:66px;
    width:350px;
    height:63px;
    border-radius:30px 24px 22px 30px;
    border:1px solid rgba(172,202,221,.48);
    background:
        repeating-linear-gradient(0deg,rgba(176,204,221,.13) 0 1px,transparent 1px 3px),
        linear-gradient(180deg,#fff 0%,#f4f9fc 58%,#e9f2f7 100%);
    box-shadow:0 12px 24px rgba(49,98,134,.12);
}

.management-home-towels .towel::after {
    content:"";
    position:absolute;
    inset:8px 18px 8px 22px;
    border-radius:22px;
    border-top:1px dotted rgba(130,176,204,.55);
    border-bottom:1px dotted rgba(130,176,204,.4);
}

.towel-back { bottom:48px; transform:rotate(-1deg); }
.towel-middle { bottom:102px; right:55px !important; transform:rotate(1.5deg); }
.towel-front { bottom:154px; right:78px !important; width:325px !important; transform:rotate(-1deg); }

.towel-leaf {
    position:absolute;
    right:14px;
    width:50px;
    height:96px;
    border-radius:100% 0 100% 0;
    background:linear-gradient(135deg,#57be76,#1b8750);
    transform-origin:bottom left;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);
}
.leaf-one { bottom:55px; transform:rotate(32deg); }
.leaf-two { bottom:22px; right:38px; transform:rotate(58deg) scale(.82); }

.management-home-kpis {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}

.home-kpi-card {
    min-height:104px;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 76px;
    align-items:center;
    gap:11px;
    padding:13px 14px;
    border:1px solid #e1eaf3;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(34,86,135,.055);
    transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}

.home-kpi-card:hover {
    transform:translateY(-2px);
    border-color:#bfdbf2;
    box-shadow:0 8px 20px rgba(34,86,135,.09);
}

.home-kpi-icon,
.home-card-icon,
.home-quick-icon {
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#e4f3ff;
    color:#137cda;
    font-weight:900;
}

.home-kpi-icon {
    width:46px;
    height:46px;
    font-size:20px;
}

.home-kpi-card.violet .home-kpi-icon,
.home-quick-card.violet .home-quick-icon { background:#eee3ff; color:#8137db; }
.home-kpi-card.green .home-kpi-icon,
.home-quick-card.green .home-quick-icon { background:#dff7e9; color:#15915b; }
.home-kpi-card.cyan .home-kpi-icon,
.home-quick-card.cyan .home-quick-icon,
.home-quick-card.sky .home-quick-icon { background:#e0f2ff; color:#0c83d9; }

.home-kpi-copy {
    min-width:0;
    display:grid;
    gap:2px;
}

.home-kpi-copy small {
    color:#273e61;
    font-size:10px;
    font-weight:800;
}

.home-kpi-copy strong {
    color:#102f62;
    font-size:25px;
    line-height:1;
    font-weight:900;
}

.home-kpi-copy em {
    margin-top:4px;
    color:#8393a7;
    font-size:8px;
    font-style:normal;
}

.home-sparkline {
    height:48px;
    display:flex;
    align-items:end;
    gap:4px;
    padding:6px 0 3px;
    border-bottom:1px solid #d7e8f7;
}

.home-sparkline i {
    flex:1;
    min-width:4px;
    border-radius:5px 5px 0 0;
    background:linear-gradient(180deg,#4ea9ff,#cfeaff);
}
.violet .home-sparkline i { background:linear-gradient(180deg,#9960f6,#eadfff); }
.green .home-sparkline i { background:linear-gradient(180deg,#34b878,#dff7e9); }

.management-home-main-grid {
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr) minmax(300px,.8fr);
    gap:10px;
}

.home-dashboard-card {
    min-height:300px;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid #e1eaf3;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(34,86,135,.05);
}

.home-card-header {
    min-height:62px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:11px 14px;
    border-bottom:1px solid #edf2f6;
}

.home-card-title {
    display:flex;
    align-items:center;
    gap:9px;
}

.home-card-icon {
    width:34px;
    height:34px;
    flex:0 0 34px;
    font-size:15px;
}

.home-card-icon.violet { background:#eee3ff; color:#8137db; }
.home-card-icon.cyan { background:#e4f5ff; color:#1479d4; }

.home-card-title > span:last-child,
.home-quick-heading > span:last-child {
    display:grid;
    gap:2px;
}

.home-card-title strong,
.home-quick-heading strong {
    color:#19365f;
    font-size:11px;
    font-weight:900;
}

.home-card-title small,
.home-quick-heading small {
    color:#8595a8;
    font-size:8px;
}

.home-period-chip {
    padding:7px 10px;
    border:1px solid #dbe6f0;
    border-radius:8px;
    color:#5d728e;
    background:#fff;
    font-size:8px;
    font-weight:700;
}

.home-bar-chart {
    position:relative;
    flex:1;
    min-height:230px;
    display:grid;
    grid-template-columns:repeat(12,1fr);
    align-items:end;
    gap:9px;
    padding:32px 18px 16px;
}

.home-chart-lines {
    position:absolute;
    inset:30px 18px 37px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    pointer-events:none;
}
.home-chart-lines i {
    display:block;
    width:100%;
    border-top:1px solid #edf2f7;
}

.home-bar-column {
    position:relative;
    z-index:1;
    height:100%;
    display:grid;
    grid-template-rows:18px 1fr 18px;
    align-items:end;
    justify-items:center;
}

.home-bar-column > i {
    width:min(30px,78%);
    min-height:4px;
    border-radius:5px 5px 1px 1px;
    background:linear-gradient(180deg,#5fb5ff,#b9ddfb);
    box-shadow:inset 0 1px rgba(255,255,255,.45);
}

.home-bar-column small {
    color:#74879f;
    font-size:8px;
    text-transform:capitalize;
}

.home-bar-value {
    opacity:0;
    color:#3776ac;
    font-size:7px;
    transition:opacity .15s ease;
}
.home-bar-column:hover .home-bar-value { opacity:1; }

.home-ranking {
    flex:1;
    display:grid;
    align-content:start;
    gap:2px;
    padding:9px 12px;
}

.home-rank-row {
    display:grid;
    grid-template-columns:27px minmax(0,1fr) 36px;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:3px 2px;
    border-radius:8px;
}

.home-rank-row:hover { background:#f7fbff; }

.home-rank-number {
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#edf2f7;
    color:#405a78;
    font-size:8px;
    font-weight:900;
}

.home-rank-data {
    min-width:0;
    display:grid;
    gap:4px;
}

.home-rank-data strong {
    overflow:hidden;
    color:#345477;
    font-size:9px;
    font-weight:700;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.home-rank-data i {
    height:6px;
    overflow:hidden;
    border-radius:999px;
    background:#e9eff5;
}

.home-rank-data b {
    display:block;
    height:100%;
    border-radius:inherit;
    background:#3d9cec;
}

.home-rank-row em {
    color:#213f65;
    font-size:8px;
    font-style:normal;
    font-weight:900;
    text-align:right;
}

.home-card-footer-link {
    display:flex;
    align-items:center;
    min-height:36px;
    margin:0 12px 10px;
    padding:0 10px;
    border-radius:8px;
    background:#eaf6ff;
    color:#1074d2;
    font-size:8px;
    font-weight:900;
}

.home-activity-list {
    flex:1;
    display:grid;
    align-content:start;
    padding:5px 12px 10px;
}

.home-activity-row {
    display:grid;
    grid-template-columns:32px minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    min-height:44px;
    border-bottom:1px solid #eef2f6;
}
.home-activity-row:last-child { border-bottom:0; }

.home-activity-dot {
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#e7f4ff;
    color:#147bd7;
    font-size:11px;
}
.home-activity-dot.violet { background:#eee4ff; color:#813ad8; }

.home-activity-copy {
    min-width:0;
    display:grid;
    gap:2px;
}

.home-activity-copy strong {
    overflow:hidden;
    color:#274465;
    font-size:9px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.home-activity-copy small {
    overflow:hidden;
    color:#8797a9;
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.home-activity-row time {
    color:#8092a7;
    font-size:7px;
    white-space:nowrap;
}

.home-empty {
    display:grid;
    place-items:center;
    min-height:120px;
    color:#93a1b2;
    font-size:9px;
    text-align:center;
}

.home-quick-section {
    padding:11px 12px 13px;
    border:1px solid #e1eaf3;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(34,86,135,.045);
}

.home-quick-heading {
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:9px;
}

.home-quick-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}

.home-quick-card {
    min-height:68px;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 18px;
    align-items:center;
    gap:9px;
    padding:8px 10px;
    border:1px solid #e4ebf2;
    border-radius:11px;
    background:#fff;
    transition:transform .15s ease,border-color .15s ease;
}

.home-quick-card:hover {
    transform:translateY(-2px);
    border-color:#bdd9ef;
}

.home-quick-icon {
    width:40px;
    height:40px;
    font-size:16px;
}

.home-quick-card > span:nth-child(2) {
    display:grid;
    gap:2px;
}

.home-quick-card strong {
    color:#203d64;
    font-size:10px;
}

.home-quick-card small {
    color:#8494a7;
    font-size:8px;
    line-height:1.35;
}

.home-quick-card > b {
    color:#1484e6;
    font-size:22px;
    font-weight:500;
}

@media(max-width:1250px) {
    .management-home-kpis { grid-template-columns:repeat(2,1fr); }
    .management-home-main-grid { grid-template-columns:1fr 1fr; }
    .home-evolution-card { grid-column:1 / -1; }
    .home-quick-grid { grid-template-columns:repeat(3,1fr); }
}

@media(max-width:850px) {
    .management-home-hero { grid-template-columns:1fr; }
    .management-home-towels { display:none; }
    .management-home-kpis,
    .management-home-main-grid,
    .home-quick-grid { grid-template-columns:1fr; }
    .home-evolution-card { grid-column:auto; }
    .management-home-benefits { gap:12px; }
    .management-home-hero h1 { font-size:31px; }
}

@media(max-width:620px) {
    .management-home-kpis { grid-template-columns:1fr; }
    .home-bar-chart { gap:4px; padding-left:8px; padding-right:8px; }
    .home-bar-column > i { width:70%; }
}


/* Informes */
.report-layout{
    display:grid;
    grid-template-columns:260px minmax(0,1fr);
    gap:16px;
    align-items:start;
}
.report-menu-panel{
    position:sticky;
    top:14px;
    display:grid;
    gap:6px;
    padding:12px;
    border:1px solid #e0e9f2;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(34,86,135,.05);
}
.report-menu-title{
    padding:5px 7px 8px;
    color:#7d8ea3;
    font-size:9px;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.report-menu-link{
    min-height:54px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    align-items:center;
    gap:9px;
    padding:7px 9px;
    border:1px solid transparent;
    border-radius:10px;
    color:#365477;
}
.report-menu-link>span{
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#eef6fd;
    color:#1779d2;
    font-weight:900;
}
.report-menu-link>div{
    min-width:0;
    display:grid;
    gap:2px;
}
.report-menu-link strong{
    color:#23456d;
    font-size:10px;
}
.report-menu-link small{
    color:#8a99aa;
    font-size:8px;
}
.report-menu-link:hover,.report-menu-link.active{
    border-color:#c7e0f5;
    background:#f5fbff;
}
.report-menu-link.active strong{color:#0f72cf;}
.report-content{
    min-width:0;
    display:grid;
    gap:12px;
}
.report-filter-card{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr)) auto;
    gap:10px;
    align-items:end;
    padding:13px;
    border:1px solid #e0e9f2;
    border-radius:13px;
    background:#fff;
}
.report-filter-card label{
    display:grid;
    gap:5px;
    color:#345273;
    font-size:9px;
    font-weight:800;
}
.report-filter-card input,.report-filter-card select{
    min-height:40px;
    padding:0 10px;
    border:1px solid #cad8e6;
    border-radius:8px;
    background:#fff;
    color:#17375f;
}
.report-apply{
    min-height:40px;
    margin:0 !important;
}
.report-toolbar{
    min-height:50px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 12px;
    border:1px solid #e0e9f2;
    border-radius:11px;
    background:#fff;
}
.report-summary{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    color:#6f8197;
    font-size:10px;
}
.report-summary strong{
    color:#173d70;
    font-size:13px;
}
.report-table-card{min-height:320px;}
@media(max-width:1100px){
    .report-layout{grid-template-columns:1fr;}
    .report-menu-panel{position:static;grid-template-columns:repeat(2,1fr);}
    .report-menu-title{grid-column:1/-1;}
    .report-filter-card{grid-template-columns:repeat(2,minmax(150px,1fr));}
}
@media(max-width:700px){
    .report-menu-panel,.report-filter-card{grid-template-columns:1fr;}
    .report-toolbar{align-items:flex-start;flex-direction:column;}
}
@media print{
    .laundry-topbar,.laundry-header,.report-menu-panel,.report-filter-card,.report-toolbar,.page-breadcrumb{display:none !important;}
    .report-layout{display:block !important;}
    .report-table-card{border:0 !important;box-shadow:none !important;}
}


/* Trazabilidad, puestos y tarifas */
.trace-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(110px,1fr));
    gap:9px;
    margin-bottom:10px;
}
.trace-summary>div{
    min-height:62px;
    display:grid;
    align-content:center;
    gap:3px;
    padding:9px 12px;
    border:1px solid #e1eaf3;
    border-radius:10px;
    background:#fff;
}
.trace-summary span{color:#8192a7;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.trace-summary strong{color:#173d70;font-size:20px}
.trace-cancelled{background:#fffafa !important}
.full-width-results{width:100%}
.maintenance-choice-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    padding:18px 20px 20px;
}
.maintenance-choice{
    min-height:58px;
    display:grid !important;
    grid-template-columns:24px minmax(0,1fr);
    align-items:center;
    gap:9px !important;
    padding:9px 11px;
    border:1px solid #dce6ef;
    border-radius:10px;
    background:#fbfdff;
}
.maintenance-choice input{
    width:19px !important;height:19px !important;min-height:19px !important;padding:0 !important
}
.maintenance-choice span{display:grid;gap:2px}
.maintenance-choice strong{color:#294c74;font-size:10px}
.maintenance-choice small{color:#8999aa;font-size:8px}
.tariff-tools{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-bottom:12px;
}
.tariff-tool-card{
    min-height:76px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 150px auto;
    align-items:center;
    gap:10px;
    padding:11px 13px;
    border:1px solid #e0e9f2;
    border-radius:12px;
    background:#fff;
}
.tariff-tool-card>div{display:grid;gap:3px}
.tariff-tool-card strong{color:#23466e;font-size:11px}
.tariff-tool-card small{color:#8999ab;font-size:8px}
.tariff-tool-card label{
    height:38px;
    display:grid;
    grid-template-columns:1fr 36px;
    overflow:hidden;
    border:1px solid #cad8e6;
    border-radius:8px;
    background:#fff;
}
.tariff-tool-card input{min-width:0;border:0;padding:0 9px;color:#17375f}
.tariff-tool-card label span{display:grid;place-items:center;background:#f3f7fa;color:#71849a;font-size:9px}
.tariff-inline-input{
    width:100%;
    min-width:80px;
    height:34px;
    padding:0 8px;
    border:1px solid #d6e1eb;
    border-radius:7px;
    background:#fff;
    text-align:right;
    color:#17385f;
}
.tariff-table td{vertical-align:middle}
@media(max-width:1050px){
    .maintenance-choice-grid{grid-template-columns:repeat(2,1fr)}
    .tariff-tools{grid-template-columns:1fr}
}
@media(max-width:720px){
    .trace-summary{grid-template-columns:repeat(2,1fr)}
    .maintenance-choice-grid{grid-template-columns:1fr}
    .tariff-tool-card{grid-template-columns:1fr}
}


/* Planta - colores estables por Grupo_pre.
   Respeta idColor_cbg de t_colorBPreGrupo; si no existe, el backend asigna un color estable por id de grupo. */
.garment-form[class*="garment-color-"] {
    --garment-accent: #41a3f7;
    --garment-soft: #c9ebff;
    --garment-soft-end: #99d5f9;
    --garment-text: #075ba8;
}

.garment-form.garment-color-neutral {
    --garment-accent: #4ba8ff;
    --garment-soft: #dff1ff;
    --garment-soft-end: #bfe2ff;
    --garment-text: #1268ad;
}

/* Paleta equivalente a la del LavanderNET antiguo:
   Chocolate, DarkBlue, RoyalBlue, Purple, SeaGreen, Coral,
   Orange, Gray, Pink, Gold, Red y Green. */
.garment-form.garment-color-0  { --garment-accent:#d2691e; --garment-soft:#f7dfcf; --garment-soft-end:#efc6a8; --garment-text:#8d4314; }
.garment-form.garment-color-1  { --garment-accent:#184a9c; --garment-soft:#dce9fb; --garment-soft-end:#bdd3f3; --garment-text:#173f80; }
.garment-form.garment-color-2  { --garment-accent:#4169e1; --garment-soft:#e0e8ff; --garment-soft-end:#c4d2ff; --garment-text:#2f4eae; }
.garment-form.garment-color-3  { --garment-accent:#8a4bc4; --garment-soft:#eddef9; --garment-soft-end:#d9bfee; --garment-text:#653694; }
.garment-form.garment-color-4  { --garment-accent:#2e8b57; --garment-soft:#d9f2e3; --garment-soft-end:#bde4cd; --garment-text:#246c46; }
.garment-form.garment-color-5  { --garment-accent:#ff7f50; --garment-soft:#ffe3d8; --garment-soft-end:#ffc8b5; --garment-text:#ad4e2b; }
.garment-form.garment-color-6  { --garment-accent:#f39a22; --garment-soft:#fff0d5; --garment-soft-end:#ffdba2; --garment-text:#a5650d; }
.garment-form.garment-color-7  { --garment-accent:#7f8a96; --garment-soft:#e9edf1; --garment-soft-end:#d4dbe1; --garment-text:#58636f; }
.garment-form.garment-color-8  { --garment-accent:#e9789c; --garment-soft:#fde2eb; --garment-soft-end:#f8c5d6; --garment-text:#a84767; }
.garment-form.garment-color-9  { --garment-accent:#d5aa19; --garment-soft:#fff3c8; --garment-soft-end:#f5df8b; --garment-text:#8d7212; }
.garment-form.garment-color-10 { --garment-accent:#dc4c4c; --garment-soft:#fde0e0; --garment-soft-end:#f6bcbc; --garment-text:#a33333; }
.garment-form.garment-color-11 { --garment-accent:#42a65a; --garment-soft:#dff3e4; --garment-soft-end:#bee4c8; --garment-text:#2f7740; }

.garment-form[class*="garment-color-"] .garment-tile::before {
    background: var(--garment-accent) !important;
}

.garment-form[class*="garment-color-"] .garment-count-badge {
    background: linear-gradient(180deg,var(--garment-soft),var(--garment-soft-end)) !important;
    color: var(--garment-text) !important;
}

.garment-form[class*="garment-color-"] .garment-manual-button {
    background: color-mix(in srgb, var(--garment-soft) 58%, white) !important;
    color: var(--garment-text) !important;
}


/* Mantenimiento de grupos de prendas */
.garment-group-maintenance .group-row {
    align-items: center;
}
.garment-group-row {
    display: grid !important;
    grid-template-columns: 32px minmax(0,1fr) auto;
    gap: 10px;
    padding: 9px 10px !important;
}
.garment-group-swatch {
    width: 28px;
    height: 28px;
    display: block;
    border-radius: 9px;
    border: 1px solid rgba(23,61,112,.12);
    background: #dfeaf4;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.55);
}
.garment-group-swatch.auto {
    background:
        linear-gradient(135deg,#d2691e 0 20%,#4169e1 20% 40%,#2e8b57 40% 60%,#e9789c 60% 80%,#d5aa19 80%);
}
.garment-group-color-0 { background:#d2691e; }
.garment-group-color-1 { background:#184a9c; }
.garment-group-color-2 { background:#4169e1; }
.garment-group-color-3 { background:#8a4bc4; }
.garment-group-color-4 { background:#2e8b57; }
.garment-group-color-5 { background:#ff7f50; }
.garment-group-color-6 { background:#f39a22; }
.garment-group-color-7 { background:#7f8a96; }
.garment-group-color-8 { background:#e9789c; }
.garment-group-color-9 { background:#d5aa19; }
.garment-group-color-10 { background:#dc4c4c; }
.garment-group-color-11 { background:#42a65a; }

.garment-group-edit-form {
    display: grid;
    gap: 16px;
    padding: 16px;
}
.garment-color-picker {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px;
}
.garment-color-picker-title {
    grid-column: 1 / -1;
    color: #385778;
    font-size: 10px;
    font-weight: 900;
}
.garment-color-option {
    min-height: 52px;
    display: grid;
    grid-template-columns: 18px 32px minmax(0,1fr);
    align-items: center;
    gap: 8px;
    padding: 8px;
    border: 1px solid #dbe6f0;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}
.garment-color-option:has(input:checked) {
    border-color: #6fb3ee;
    background: #f4faff;
    box-shadow: 0 0 0 2px rgba(61,156,236,.08);
}
.garment-color-option > span:last-child {
    display: grid;
    gap: 2px;
}
.garment-color-option strong {
    color: #264970;
    font-size: 10px;
}
.garment-color-option small {
    color: #8999aa;
    font-size: 8px;
}
.garment-group-usage {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 8px;
    padding: 0 16px 16px;
}
.garment-group-usage > div {
    display: grid;
    gap: 3px;
    padding: 10px;
    border-radius: 10px;
    background: #f6f9fc;
}
.garment-group-usage span {
    color: #7c8ea4;
    font-size: 8px;
}
.garment-group-usage strong {
    color: #173d70;
    font-size: 16px;
}
@media(max-width:700px){
    .garment-color-picker { grid-template-columns:1fr; }
}


/* Mantenimiento - menú agrupado */
.maintenance-dropdown{
    left:auto !important;
    right:0;
    min-width:250px !important;
    overflow:visible;
}

.maintenance-menu-group{
    position:relative;
}

.maintenance-menu-parent{
    width:100%;
    min-height:42px;
    display:grid;
    grid-template-columns:30px minmax(0,1fr) 18px;
    align-items:center;
    gap:8px;
    padding:7px 9px;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#294463;
    font:inherit;
    font-size:12px;
    text-align:left;
    cursor:pointer;
}

.maintenance-menu-parent:hover,
.maintenance-menu-group:focus-within .maintenance-menu-parent,
.maintenance-menu-group:hover .maintenance-menu-parent{
    background:#edf6ff;
    color:#1266e8;
}

.maintenance-menu-icon{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:#edf5ff;
    color:#1670ea;
    font-size:13px;
    font-weight:900;
}

.maintenance-menu-arrow{
    color:#7f95ad;
    font-size:16px;
    font-weight:900;
    text-align:center;
}

.maintenance-submenu{
    display:none;
    position:absolute;
    z-index:110;
    top:-7px;
    right:calc(100% + 7px);
    min-width:235px;
    padding:7px;
    border:1px solid var(--laundry-border);
    border-radius:10px;
    background:#fff;
    box-shadow:0 12px 28px rgba(18,51,91,.14);
}

.maintenance-menu-group:hover .maintenance-submenu,
.maintenance-menu-group:focus-within .maintenance-submenu{
    display:grid;
}

.maintenance-submenu-title{
    padding:6px 9px 7px;
    margin-bottom:3px;
    border-bottom:1px solid #edf2f6;
    color:#7a8ea6;
    font-size:9px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.maintenance-submenu a{
    padding:9px 10px !important;
    border-radius:7px;
    color:#294463 !important;
    font-size:12px !important;
}

.maintenance-submenu a:hover{
    background:#edf6ff !important;
    color:#1266e8 !important;
}

@media(max-width:1050px){
    .maintenance-submenu{
        position:static;
        margin:4px 0 6px 36px;
        box-shadow:none;
        border-color:#e5edf5;
    }

    .maintenance-menu-arrow{
        transform:rotate(-90deg);
    }
}


/* Fichajes de planta */
.attendance-status-button{
    min-height:28px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:0 9px;
    border:1px solid #c9ddee;
    border-radius:999px;
    background:#f5f9fc;
    color:#4a6683;
    font-size:8px;
    font-weight:900;
    cursor:pointer;
}
.attendance-status-button.attendance-trabajando{
    border-color:#bfe6cf;
    background:#eaf8ef;
    color:#237447;
}
.attendance-status-button.attendance-descanso{
    border-color:#f1d89b;
    background:#fff7df;
    color:#98690c;
}
.attendance-status-button.attendance-finalizado{
    background:#eef1f4;
    color:#667482;
}
.attendance-clock{font-size:13px;}
.attendance-modal-card{width:min(680px,92vw);}
.attendance-current-state{
    display:flex;
    align-items:center;
    gap:12px;
    min-height:76px;
    margin-bottom:12px;
    padding:12px 14px;
    border:1px solid #dce7f1;
    border-radius:12px;
    background:#f7fafc;
}
.attendance-state-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    flex:0 0 44px;
    border-radius:12px;
    background:#e8f4ff;
    color:#1475d4;
    font-size:22px;
}
.attendance-current-state>div{
    display:grid;
    gap:2px;
}
.attendance-current-state small{
    color:#8798aa;
    font-size:8px;
    text-transform:uppercase;
    font-weight:900;
    letter-spacing:.05em;
}
.attendance-current-state strong{
    color:#173b70;
    font-size:16px;
}
.attendance-current-state span:last-child{
    color:#7b8da2;
    font-size:9px;
}
.attendance-state-trabajando{
    border-color:#cbe8d5;
    background:#f3fbf6;
}
.attendance-state-descanso{
    border-color:#f1dfa9;
    background:#fffbec;
}
.attendance-actions-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.attendance-actions-grid form{margin:0;}
.attendance-action{
    width:100%;
    min-height:90px;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:10px;
    align-items:center;
    padding:12px;
    border:1px solid #dce7f1;
    border-radius:12px;
    background:#fff;
    text-align:left;
    cursor:pointer;
}
.attendance-action>span{
    grid-row:1/span 2;
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#eaf5ff;
    color:#1475d4;
    font-size:15px;
    font-weight:900;
}
.attendance-action strong{
    align-self:end;
    color:#1d426f;
    font-size:11px;
}
.attendance-action small{
    align-self:start;
    color:#8797a9;
    font-size:8px;
}
.attendance-action.break>span{
    background:#fff3d8;
    color:#b57a09;
}
.attendance-action.resume>span{
    background:#e3f7ed;
    color:#278252;
}
.attendance-action.finish>span{
    background:#ffe5e5;
    color:#c84747;
}
.attendance-action:disabled{
    opacity:.38;
    cursor:not-allowed;
    filter:grayscale(.35);
}
.attendance-hint{
    margin-top:10px;
    padding:9px 11px;
    border-radius:9px;
    background:#fff7df;
    color:#87600e;
    font-size:9px;
}
.attendance-management-layout{
    display:grid;
    grid-template-columns:360px minmax(0,1fr);
    gap:16px;
    align-items:start;
}
.attendance-management-results{
    min-width:0;
    display:grid;
    gap:12px;
}
.attendance-summary{
    grid-template-columns:repeat(5,minmax(0,1fr));
}
@media(max-width:1050px){
    .attendance-management-layout{grid-template-columns:1fr;}
}
@media(max-width:700px){
    .attendance-actions-grid{grid-template-columns:1fr;}
    .attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media print{
    .attendance-management-layout .filter-panel,
    .attendance-management-results .report-toolbar{
        display:none !important;
    }
    .attendance-management-layout{display:block !important;}
}


/* Nuevo / Editar - textos limpios, sin fondos azulados */
.maintenance-form-page .page-title-row h1,
.maintenance-form-page .page-title-row p,
.maintenance-form-page .maintenance-card-header h2,
.maintenance-form-page .maintenance-card-header p,
.maintenance-form-page .maintenance-grid label,
.maintenance-form-page .maintenance-grid label > small,
.maintenance-form-page .maintenance-grid label > span {
    background: transparent !important;
    box-shadow: none !important;
}

/* Evita el fondo azul/amarillo que algunos navegadores aplican al autocompletar. */
.maintenance-form-page input:-webkit-autofill,
.maintenance-form-page input:-webkit-autofill:hover,
.maintenance-form-page input:-webkit-autofill:focus,
.maintenance-form-page textarea:-webkit-autofill,
.maintenance-form-page select:-webkit-autofill {
    -webkit-text-fill-color: #17315d !important;
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    box-shadow: 0 0 0 1000px #fff inset !important;
    background-color: #fff !important;
}

/* Los campos de Nuevo / Editar siempre conservan fondo blanco. */
.maintenance-form-page .maintenance-grid input:not([type="checkbox"]),
.maintenance-form-page .maintenance-grid select,
.maintenance-form-page .maintenance-grid textarea {
    background-color: #fff !important;
    background-image: none !important;
}


/* Planta - fichajes por operario */
.operator-attendance-button{
    min-width:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
    padding:0;
    border:0;
    background:transparent;
    text-align:left;
    cursor:pointer;
}
.operator-state-badge{
    min-height:20px;
    display:inline-flex;
    align-items:center;
    padding:0 7px;
    border-radius:999px;
    background:#eef2f6;
    color:#66788c;
    font-size:7px;
    font-weight:900;
    white-space:nowrap;
}
.operator-state-trabajando .operator-state-badge{
    background:#e6f7ed;
    color:#23784a;
}
.operator-state-descanso .operator-state-badge{
    background:#fff2cf;
    color:#97690e;
}
.operator-state-finalizado .operator-state-badge{
    background:#edf0f3;
    color:#677583;
}
.operator-chip{
    grid-template-columns:32px minmax(0,1fr) 24px !important;
}
.operator-chip:hover{
    border-color:#b9d8f2;
    background:#f8fcff;
}

.production-top{
    align-items:stretch !important;
    overflow:visible !important;
}
.production-top .app-card{
    min-height:122px !important;
    overflow:visible !important;
}
.operators-body.multi-users{
    min-height:52px;
}
.operator-chips{
    min-height:46px;
}

@media(max-width:1250px){
    .production-step-two{
        grid-template-rows:48px minmax(150px,auto) 48px minmax(0,1fr) !important;
    }
}


/* Consulta de lotes compacta, basada en LavanderNETM */
.lot-query-modal{
    height:min(88vh,760px);
    max-height:calc(100vh - 24px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.lot-query-filters{
    display:grid;
    grid-template-columns:150px 115px 115px 190px 145px minmax(210px,1fr) auto;
    gap:8px;
    align-items:end;
    padding:10px;
    margin-bottom:8px;
    border:1px solid #dce7f1;
    border-radius:10px;
    background:#f8fbfd;
}
.lot-query-filters label{display:grid;gap:4px;color:#365578;font-size:9px;font-weight:800}
.lot-query-filters input,.lot-query-filters select{
    width:100%;height:36px;padding:0 9px;border:1px solid #cbd9e7;border-radius:8px;background:#fff;color:#17365f
}
.lot-query-pending-filter{display:flex!important;align-items:center;gap:7px;height:36px;padding:0 9px;border:1px solid #cbd9e7;border-radius:8px;background:#fff}
.lot-query-pending-filter input{width:16px!important;height:16px!important;padding:0}
.lot-query-clear{height:36px;padding:0 11px;border:1px solid #cbd9e7;border-radius:8px;background:#fff;color:#365578;font-size:9px;font-weight:900;cursor:pointer}
.lot-query-summary{display:flex;justify-content:space-between;padding:5px 3px 8px;color:#73869b;font-size:9px}
.lot-query-summary strong{color:#173b73;font-size:11px}
.lot-query-table{min-height:0;flex:1;display:flex;flex-direction:column;border:1px solid #e0e8ef;border-radius:9px;overflow:hidden}
.lot-query-head,.lot-query-row{
    display:grid;
    grid-template-columns:90px 105px minmax(190px,1fr) 100px 105px 120px 105px;
    gap:8px;
    align-items:center
}
.lot-query-head{padding:7px 9px;background:#f7fafc;border-bottom:1px solid #e0e8ef;color:#70849b;font-size:8px;font-weight:900;text-transform:uppercase}
.lot-query-body{min-height:0;flex:1;overflow-y:auto;scrollbar-gutter:stable}
.lot-query-row{min-height:46px;padding:6px 9px;border-bottom:1px solid #edf2f6;background:#fff}
.lot-query-row[hidden]{display:none}
.lot-query-row:hover{background:#f8fbff}
.lot-query-number strong,.lot-query-concept strong{color:#194778;font-size:10px}
.lot-query-date,.lot-query-station{color:#71849a;font-size:9px}
.lot-query-concept{display:grid;gap:1px}.lot-query-concept small{color:#8b9aab;font-size:8px}
.lot-query-quantity{display:flex;align-items:center;gap:3px;color:#254b72;font-size:9px}.lot-query-quantity strong{font-size:10px}.lot-query-quantity small{color:#8b9aab}
.lot-query-quantity em{padding:2px 5px;border-radius:999px;background:#fff1f1;color:#c83f3f;font-size:7px;font-style:normal;font-weight:900}
.lot-query-status{padding:4px 6px;border-radius:7px;text-align:center;font-size:8px;font-weight:800}
.lot-query-status.pending{background:#fff6df;color:#9a6a0b}.lot-query-status.closed{background:#edf7ff;color:#276da8}
.lot-query-row .lot-reprint-button{min-height:30px;padding:0 7px;border-radius:7px;font-size:8px}
.lot-query-empty{padding:26px;text-align:center;color:#8191a3;font-size:10px}

/* El modal de cancelación ocupa una altura fija y solo desplaza la lista.
   Así el último lote siempre es alcanzable. */
.cancel-advanced-modal{
    height:min(90vh,790px);
    max-height:calc(100vh - 20px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.cancel-advanced-modal #cancelLotsForm{
    min-height:0;
    flex:1;
    display:flex;
    flex-direction:column;
}
.cancel-advanced-modal .cancel-bulkbar{flex:0 0 auto}
.cancel-advanced-modal .cancel-lot-table{
    max-height:none;
    min-height:0;
    flex:1;
    overflow-y:auto;
    scrollbar-gutter:stable;
    padding-bottom:8px;
}
@media(max-width:1050px){
    .lot-query-filters{grid-template-columns:repeat(4,minmax(0,1fr))}
    .lot-query-search{grid-column:span 2}
    .lot-query-head,.lot-query-row{grid-template-columns:82px 95px minmax(160px,1fr) 88px 95px 100px}
    .lot-query-head span:nth-child(6),.lot-query-row .lot-query-status{display:none}
}


/* ---------- Modern edit screens: labels and delivery ---------- */
.page-title-row{position:relative}
.page-title-actions{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.label-designer-title-row{align-items:center}

.label-designer-page .label-designer-layout{
    grid-template-columns:minmax(280px,320px) minmax(520px,1fr) minmax(290px,320px);
    gap:16px;
    align-items:start;
}
.label-designer-page .label-designer-sidebar,
.label-designer-page .label-designer-properties{display:grid;gap:16px;min-width:0}
.label-designer-page .label-designer-card{padding:0;overflow:hidden}
.label-designer-page .label-designer-card .maintenance-card-header{
    min-height:0!important;
    height:auto!important;
    padding:15px 16px!important;
    margin:0!important;
    border-bottom:1px solid #e2e8f0;
    align-items:center;
    overflow:visible!important;
}
.label-designer-page .label-designer-card .maintenance-card-header.compact{min-height:72px!important}
.label-designer-page .label-designer-card .maintenance-card-header>div{min-width:0}
.label-designer-page .label-designer-card .maintenance-card-header h2{
    margin:0!important;
    padding:0!important;
    font-size:16px!important;
    line-height:1.25!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
}
.label-designer-page .label-designer-card .maintenance-card-header p{
    margin:4px 0 0!important;
    line-height:1.35!important;
    white-space:normal!important;
}
.label-designer-page .label-properties-grid,
.label-designer-page .label-field-list,
.label-designer-page .label-element-properties{margin:16px}
.label-designer-page .label-add-text{margin:0 16px 16px;width:calc(100% - 32px)}
.label-designer-page .label-designer-workspace{
    overflow:hidden;
    border:1px solid #dbe5ef;
    border-radius:16px;
    background:#f4f7fa;
    box-shadow:0 8px 28px rgba(15,23,42,.05);
}
.label-designer-page .label-designer-toolbar{
    min-height:58px;
    padding:12px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    background:#0673a7;
    color:#fff;
}
.label-designer-page .label-designer-toolbar strong{font-size:15px}
.label-designer-page .label-designer-toolbar span{font-size:12px;text-align:right;opacity:.95}
.label-designer-page .label-canvas-stage{min-height:520px;padding:34px 24px}

.delivery-edit-page .maintenance-card{overflow:hidden}
.delivery-edit-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}
.delivery-edit-grid .wide{grid-column:span 3}
.delivery-lines-card{padding:0}
.delivery-lines-card .maintenance-card-header{padding:18px;border-bottom:1px solid #e2e8f0;margin:0}
.delivery-edit-table-wrap{border:0;border-radius:0}
.delivery-edit-table{min-width:1250px}
.delivery-edit-table th{background:#f7fafc}
.delivery-edit-table td:first-child{min-width:170px}
.delivery-table-input{
    width:100%;
    min-width:96px;
    height:38px;
    padding:0 9px;
    border:1px solid #d7e0e8;
    border-radius:9px;
    background:#fff;
    color:#0f172a;
    outline:none;
}
.delivery-table-input.number{text-align:right}
.delivery-table-input:focus{border-color:#0780b8;box-shadow:0 0 0 3px rgba(7,128,184,.10)}
.delivery-edit-actions{align-items:center}
.delivery-edit-note{color:#64748b;font-size:12px;line-height:1.45;max-width:720px}

@media(max-width:1250px){
    .label-designer-page .label-designer-layout{grid-template-columns:260px minmax(480px,1fr)}
    .label-designer-page .label-designer-properties{grid-column:1/-1}
    .delivery-edit-grid{grid-template-columns:repeat(2,minmax(200px,1fr))}
    .delivery-edit-grid .wide{grid-column:1/-1}
}
@media(max-width:760px){
    .page-title-actions{width:100%;margin-left:0}
    .label-designer-page .label-designer-layout{grid-template-columns:1fr}
    .label-designer-page .label-designer-properties{grid-column:auto}
    .label-designer-page .label-designer-toolbar{align-items:flex-start;flex-direction:column}
    .label-designer-page .label-designer-toolbar span{text-align:left}
    .delivery-edit-grid{grid-template-columns:1fr}
    .delivery-edit-grid .wide{grid-column:auto}
    .delivery-edit-actions{align-items:stretch}
    .delivery-edit-note{max-width:none}
}


/* Planta - configuración persistente del puesto por navegador */
.workstation-change-button{
    min-height:43px;
    padding:0 16px;
    border:1px solid #bcd5eb;
    border-radius:11px;
    background:#f4f9ff;
    color:#246aa8;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
}
.workstation-change-button:hover{
    background:#eaf5ff;
    border-color:#91bee3;
}
.workstation-change-button.attention{
    background:#fff7df;
    border-color:#ecd28d;
    color:#94670b;
}
.workstation-config-card{
    width:min(720px,94vw);
}
.workstation-config-help{
    margin:0 0 16px;
    padding:11px 13px;
    border:1px solid #d8e7f5;
    border-radius:10px;
    background:#f5faff;
    color:#58718d;
    font-size:11px;
    line-height:1.5;
}
.workstation-config-grid{
    max-height:55vh;
    overflow-y:auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.workstation-config-grid form{margin:0}
.workstation-config-option{
    width:100%;
    min-height:70px;
    display:grid;
    align-content:center;
    gap:3px;
    padding:12px 14px;
    border:1px solid #d7e4ef;
    border-radius:12px;
    background:#fff;
    color:#24496f;
    text-align:left;
    cursor:pointer;
}
.workstation-config-option:hover{
    border-color:#95bfe5;
    background:#f6fbff;
}
.workstation-config-option.selected{
    border-color:#4d9de0;
    background:#edf7ff;
    box-shadow:0 0 0 2px rgba(77,157,224,.10);
}
.workstation-config-option strong{
    font-size:13px;
}
.workstation-config-option small{
    color:#8293a7;
    font-size:9px;
}
@media(max-width:650px){
    .workstation-config-grid{grid-template-columns:1fr}
}


/* Planta - autenticación individual para añadirse al puesto */
.plant-user-auth-card{width:min(480px,94vw)}
.plant-user-auth-help{
    margin:0 0 16px;
    padding:11px 13px;
    border:1px solid #d8e7f5;
    border-radius:10px;
    background:#f5faff;
    color:#58718d;
    font-size:11px;
    line-height:1.5;
}
.plant-user-auth-form{display:grid;gap:13px}
.plant-user-auth-form label{display:grid;gap:6px}
.plant-user-auth-form label>span{
    color:#3f5f7f;
    font-size:10px;
    font-weight:900;
}
.plant-user-auth-form input{
    width:100%;
    min-height:46px;
    padding:0 12px;
    border:1px solid #cad8e6;
    border-radius:10px;
    background:#fff;
    color:#17365f;
    outline:none;
}
.plant-user-auth-form input:focus{
    border-color:#579fdf;
    box-shadow:0 0 0 3px rgba(87,159,223,.11);
}


/* Cancelar lotes: versión compacta sin cancelación por código */
.cancel-tools.compact{
    display:block;
    margin-bottom:10px;
}
.cancel-tools.compact .cancel-filters{
    margin-top:0;
}
.cancel-lot-prenda{
    min-width:0;
    display:grid;
    gap:2px;
}
.cancel-lot-prenda strong{
    color:#194778;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.cancel-lot-prenda small{
    color:#8a99aa;
    font-size:8px;
    font-weight:600;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.cancel-lot-qty em{
    display:inline-flex;
    margin-left:5px;
    padding:2px 5px;
    border-radius:999px;
    background:#fff1f1;
    color:#c64343;
    font-size:7px;
    font-style:normal;
    font-weight:900;
}


/* Planta - histórico diario de fichajes en modal */
.attendance-history-button{
    width:100%;
    min-height:48px;
    margin:12px 0 14px;
    padding:0 14px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    border:1px solid #d8e5f2;
    border-radius:12px;
    background:#f8fbff;
    color:#315e8e;
    text-align:left;
    cursor:pointer;
}
.attendance-history-button>span{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#e8f3ff;
    color:#2377c9;
    font-size:16px;
    font-weight:900;
}
.attendance-history-button strong{
    font-size:11px;
    font-weight:900;
}
.attendance-history-button small{
    color:#8496aa;
    font-size:9px;
}
.attendance-history-button:hover,
.attendance-history-button.active{
    border-color:#a9cbea;
    background:#f0f7ff;
}
.attendance-history-panel{
    margin:0 0 14px;
    border:1px solid #e0e8f1;
    border-radius:13px;
    background:#fff;
    overflow:hidden;
}
.attendance-history-heading{
    min-height:48px;
    padding:9px 12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-bottom:1px solid #edf2f6;
    background:#fafcff;
}
.attendance-history-heading>div{
    display:grid;
    gap:2px;
}
.attendance-history-heading small{
    color:#91a0b1;
    font-size:8px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.attendance-history-heading strong{
    color:#243f64;
    font-size:11px;
}
.attendance-history-heading>span{
    color:#7890aa;
    font-size:9px;
    font-weight:800;
}
.attendance-history-list{
    max-height:240px;
    overflow-y:auto;
}
.attendance-history-row{
    min-height:48px;
    padding:7px 10px;
    display:grid;
    grid-template-columns:70px minmax(0,1fr) 26px;
    align-items:center;
    gap:10px;
    border-bottom:1px solid #f0f3f7;
}
.attendance-history-row:last-child{border-bottom:0}
.attendance-history-time{
    color:#244d7b;
    font-size:12px;
    font-weight:900;
    font-variant-numeric:tabular-nums;
}
.attendance-history-copy{
    min-width:0;
    display:grid;
    gap:2px;
}
.attendance-history-copy strong{
    color:#294867;
    font-size:10px;
}
.attendance-history-station{
    color:#8a99aa;
    font-size:9px;
}
.attendance-history-index{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#f2f6fa;
    color:#8192a5;
    font-size:8px;
    font-weight:900;
}
.attendance-history-row.start .attendance-history-index{background:#e8f7ef;color:#2f8b5e}
.attendance-history-row.break .attendance-history-index{background:#fff3d8;color:#aa7000}
.attendance-history-row.finish .attendance-history-index{background:#fde8e8;color:#ca5353}
.attendance-history-row.station .attendance-history-index{background:#eaf3ff;color:#347fc6}
.attendance-history-empty{
    padding:18px;
    color:#8796a8;
    font-size:10px;
    text-align:center;
}
.attendance-history-empty.error{color:#c24d4d}


/* Planta - totales de jornada en histórico */
.attendance-history-totals{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    padding:12px;
    border-bottom:1px solid #edf2f6;
    background:#fbfdff;
}
.attendance-history-total{
    min-height:68px;
    display:grid;
    align-content:center;
    gap:4px;
    padding:10px 12px;
    border:1px solid #e0e8f1;
    border-radius:11px;
    background:#fff;
}
.attendance-history-total small{
    color:#8a99aa;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.attendance-history-total strong{
    font-size:21px;
    line-height:1;
    font-variant-numeric:tabular-nums;
}
.attendance-history-total.worked strong{color:#2e7c5a}
.attendance-history-total.rested strong{color:#a87311}

/* Submenús de informes agrupados */
.reports-dropdown{
    min-width:255px;
    overflow:visible;
}
.reports-dropdown .maintenance-menu-parent{
    grid-template-columns:30px minmax(0,1fr) 18px;
}
.reports-dropdown .maintenance-submenu{
    left:calc(100% + 7px);
    right:auto;
    top:-7px;
    min-width:250px;
}
.reports-dropdown .maintenance-menu-arrow{
    transform:none;
}
@media(max-width:1050px){
    .reports-dropdown .maintenance-submenu{
        position:static;
        margin:4px 0 6px 36px;
        min-width:0;
    }
    .reports-dropdown .maintenance-menu-arrow{
        transform:rotate(90deg);
    }
}


/* Dashboard inicio: cabecera y KPIs compactos (2026-10) */
.management-home {
    gap:10px;
}
.management-home-hero {
    min-height:148px;
    grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);
}
.management-home-hero-copy {
    padding:15px 28px;
}
.management-home-kicker {
    margin-bottom:3px;
    font-size:9px;
}
.management-home-hero h1 {
    font-size:29px;
    line-height:1.12;
}
.management-home-hero-copy > p {
    margin:4px 0 11px;
    font-size:11px;
    line-height:1.35;
}
.management-home-benefits {
    gap:15px;
}
.management-home-benefits > div {
    min-width:0;
    gap:7px;
}
.management-home-benefit-icon {
    width:27px;
    height:27px;
    flex-basis:27px;
    border-radius:8px;
    font-size:12px;
}
.management-home-benefits strong {
    font-size:9px;
}
.management-home-benefits small {
    font-size:7.5px;
}
.management-home-towels {
    min-height:148px;
}
.management-home-towels::before {
    width:140px;
    height:140px;
    bottom:-52px;
}
.management-home-towels .towel {
    width:240px;
    height:42px;
    right:52px;
    border-radius:22px;
}
.management-home-towels .towel::after {
    inset:5px 14px;
}
.management-home-towels .towel-back {
    bottom:15px;
}
.management-home-towels .towel-middle {
    bottom:49px;
    right:44px !important;
}
.management-home-towels .towel-front {
    bottom:83px;
    right:64px !important;
    width:225px !important;
}
.management-home-towels .towel-leaf {
    width:34px;
    height:60px;
}
.management-home-towels .leaf-one {
    bottom:29px;
}
.management-home-towels .leaf-two {
    bottom:8px;
    right:27px;
}
.home-kpi-card {
    min-height:78px;
    grid-template-columns:36px minmax(0,1fr) 56px;
    gap:9px;
    padding:10px 12px;
    border-radius:12px;
}
.home-kpi-icon {
    width:36px;
    height:36px;
    border-radius:10px;
    font-size:17px;
}
.home-kpi-copy strong {
    font-size:22px;
}
.home-kpi-copy em {
    margin-top:1px;
}
.home-sparkline {
    height:37px;
    gap:3px;
}
@media(max-width:1250px) {
    .management-home-hero {
        grid-template-columns:minmax(0,1fr) minmax(180px,.45fr);
    }
    .management-home-benefits {
        gap:10px;
    }
}
@media(max-width:850px) {
    .management-home-hero {
        min-height:0;
        grid-template-columns:1fr;
    }
    .management-home-hero-copy {
        padding:17px 20px;
    }
    .management-home-towels {
        display:none;
    }
    .management-home-benefits {
        gap:10px;
    }
}
@media(max-width:620px) {
    .management-home-benefits {
        display:none;
    }
    .management-home-hero h1 {
        font-size:26px;
    }
    .management-home-hero-copy > p {
        margin-bottom:0;
    }
}

/* Consultas: priorizar el espacio vertical disponible para las tablas. */
.compact-consultation-header { margin: 0 0 10px; }
.compact-consultation-header h1 { margin: 0; color: #17243d; font-size: 22px; font-weight: 800; line-height: 1.25; letter-spacing: -.025em; }
.results-toolbar:has(.compact-result-metric) { gap: 6px 10px; padding: 6px 8px; }
.results-toolbar:has(.compact-result-metric) .toolbar-summary { flex-basis: 100%; gap: 18px; border-top: 1px solid #e1ebf5; padding: 6px 3px 1px; }
.compact-result-metric { display: inline-flex; align-items: baseline; gap: 7px; color: #637b98; font-size: 12px; white-space: nowrap; }
.compact-result-metric strong { color: #164f87; font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) { .compact-consultation-header h1 { font-size: 19px; } .results-toolbar:has(.compact-result-metric) .toolbar-summary { gap: 8px 14px; } }

/* Encabezado compacto de consultas con título en la posición de la sección y ruta visible. */
.compact-consultation-header .page-section-label { margin-bottom: 7px; font-size: 16px; letter-spacing: .025em; }
.compact-consultation-header .page-breadcrumb { margin-bottom: 0; }

/* Cabeceras uniformes de todos los menús de gestión. */
.page-section-label.unified-menu-heading { margin-bottom: 7px; font-size: 16px; letter-spacing: .025em; }
.page-section-label.unified-menu-heading + .page-breadcrumb { margin-bottom: 10px; }
.compact-page-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin: -4px 0 10px; }

/* Dashboard: estilos extraidos de Razor para evitar errores de parsing @media. */
            .home-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:16px;align-items:stretch}
            .home-overview-grid > *{min-width:0}
            .home-production-compact{padding:16px!important;margin:0!important}
            .home-production-compact .home-card-header{gap:10px;flex-wrap:wrap}
            .home-production-compact .home-card-title small{max-width:350px}
            .home-overview-side{padding:16px;display:flex;flex-direction:column;gap:12px}
            .home-alert-list{display:grid;gap:7px}
            .home-alert-link{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dbe7f4;border-radius:10px;text-decoration:none;color:inherit}
            .home-alert-link:hover{background:#f0f7ff}
            .home-alert-count{font-weight:750;color:#14528d;white-space:nowrap}
            .home-evolution-embedded{border-top:1px solid #e4edf6;padding-top:12px;min-height:0}
            .home-evolution-embedded .home-bar-chart{height:165px}
            .home-evolution-embedded .home-card-header{flex-wrap:wrap;gap:8px}
            .home-overview-side .home-card-header{margin-bottom:4px}
            @media(max-width:1050px){.home-overview-grid{grid-template-columns:minmax(0,1fr)}}
            @media(max-width:520px){.home-production-compact .home-card-header form{width:100%;justify-content:space-between}.home-production-compact #productionChart{gap:2px}.home-production-compact .production-bar{min-width:18px!important}}

/* Gestion de gastos: estilos externos para evitar interpretacion Razor de @media. */
.gastos-page{padding:14px 18px 30px}.gastos-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.gastos-toolbar h1{font-size:21px;color:#163c68;margin:0 0 4px}.gastos-toolbar .text-muted{font-size:13px}.gastos-page .btn{border-radius:7px;padding:9px 14px;cursor:pointer}.gastos-editor{display:none;margin-bottom:15px}.gastos-editor.is-open{display:block}.gastos-panel{background:#fff;border:1px solid #d6e4f0;border-radius:10px}.gastos-panel-body{padding:19px}.gastos-panel h2{font-size:17px;color:#163c68;margin:0 0 15px}.gastos-form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:13px 16px}.gastos-field{grid-column:span 3;min-width:0}.gastos-field.col-md-6{grid-column:span 6}.gastos-field.col-md-4{grid-column:span 4}.gastos-field.col-12{grid-column:span 12}.gastos-field .form-label{display:block;font-size:12px;font-weight:650;color:#45617d;margin-bottom:5px}.gastos-field input:not([type=checkbox]):not([type=file]),.gastos-field select,.gastos-filters input{width:100%;box-sizing:border-box;height:38px;border:1px solid #c9d9e9;border-radius:6px;padding:7px 10px;background:white;color:#16385e;font:inherit;font-size:14px}.gastos-field input[type=file]{border:1px dashed #b5cde5;border-radius:6px;padding:8px;max-width:520px}.gastos-field .d-flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.gastos-field small{display:block;color:#6c7e92;font-size:12px;margin-top:6px}.gastos-filters{display:flex;align-items:end;gap:12px;background:#fff;border:1px solid #d9e5f1;border-radius:9px;padding:12px;margin-bottom:14px;flex-wrap:wrap}.gastos-filters>div{max-width:185px;flex:1}.gastos-filters .form-label{display:block;font-size:12px;font-weight:650;margin-bottom:5px}.gastos-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:15px}.gastos-kpi-inner{background:white;border:1px solid #d9e5f1;border-radius:9px;padding:14px 17px;display:flex;flex-direction:column;gap:4px}.gastos-kpi-inner small{color:#60768e;font-size:12px}.gastos-kpi-inner strong{color:#163c68;font-size:23px}.gastos-page .management-table{width:100%}.gastos-page .management-table td,.gastos-page .management-table th{padding:10px 12px}.gastos-status{font-size:12px;border-radius:14px;padding:4px 9px;font-weight:650}.gastos-status.is-paid{background:#e0f4ea;color:#17724c}.gastos-status.is-pending{background:#fff2d9;color:#956214}.gastos-page .results-card{overflow:hidden}.gastos-page .management-table tfoot{background:#eaf3fd;font-weight:700}
@media(max-width:850px){.gastos-field,.gastos-field.col-md-6,.gastos-field.col-md-4{grid-column:span 6}}@media(max-width:520px){.gastos-field,.gastos-field.col-md-6,.gastos-field.col-md-4{grid-column:span 12}.gastos-kpis{grid-template-columns:1fr}}

/* src/LavanderNext.Web/Pages/Gestion/Gastos/Recurrentes.cshtml */
.recurrentes-page{padding:14px 18px 30px}.recurrentes-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px;flex-wrap:wrap}.recurrentes-toolbar h1{font-size:21px;margin:0 0 3px;color:#153a69}.recurrentes-toolbar .text-muted{font-size:13px}.recurrentes-actions{display:flex;gap:9px;align-items:center}.recurrentes-page .btn{border-radius:7px;padding:9px 14px;cursor:pointer}.recurrentes-editor{display:none;margin:0 0 14px}.recurrentes-editor.is-open{display:block}.recurrentes-panel{background:white;border:1px solid #d7e4f1;border-radius:10px;box-shadow:0 3px 14px #10375e0b}.recurrentes-panel-body{padding:19px}.recurrentes-panel h2{margin:0 0 16px;color:#153a69;font-size:17px}.recurrentes-form{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:13px 16px}.recurrentes-field{grid-column:span 3;min-width:0}.recurrentes-field.col-md-6{grid-column:span 6}.recurrentes-field.col-md-4{grid-column:span 4}.recurrentes-field.col-md-2{grid-column:span 2}.recurrentes-field.col-12{grid-column:span 12}.recurrentes-field .form-label{display:block;font-size:12px;font-weight:650;color:#425c78;margin-bottom:5px}.recurrentes-field input:not([type=checkbox]),.recurrentes-field select{width:100%;min-width:0;box-sizing:border-box;height:38px;border:1px solid #cbd9e8;border-radius:6px;background:#fff;padding:7px 10px;font:inherit;font-size:14px;color:#17375e}.recurrentes-field input:focus,.recurrentes-field select:focus{outline:2px solid #9cc8f3;border-color:#2980cb}.recurrentes-checks{display:flex;flex-direction:column;justify-content:end;gap:8px}.recurrentes-checks .form-check{display:flex;gap:8px;align-items:center;font-size:13px}.recurrentes-page .results-card{margin-top:14px}.recurrentes-page .management-table{width:100%}.recurrentes-page .management-table th,.recurrentes-page .management-table td{padding:11px 13px}.recurrentes-page .toolbar-button{cursor:pointer}.recurrentes-page .recurrentes-field.col-12:last-child{display:flex;justify-content:flex-end;border-top:1px solid #edf1f6;padding-top:12px}
@media(max-width:850px){.recurrentes-field,.recurrentes-field.col-md-6,.recurrentes-field.col-md-4,.recurrentes-field.col-md-2{grid-column:span 6}}@media(max-width:520px){.recurrentes-field,.recurrentes-field.col-md-6,.recurrentes-field.col-md-4,.recurrentes-field.col-md-2{grid-column:span 12}}

/* src/LavanderNext.Web/Pages/Gestion/Gastos/Rentabilidad.cshtml */
.profit-page{padding:14px 18px 32px}.profit-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:14px}.profit-toolbar h1{font-size:21px;color:#153b68;margin:0 0 3px}.profit-toolbar p{font-size:13px;margin:0}.profit-toolbar .btn,.profit-filters .btn{padding:9px 13px;border-radius:7px;cursor:pointer}.profit-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:white;border:1px solid #d8e5f1;padding:12px 14px;border-radius:9px;margin-bottom:14px}.profit-filters>div{flex:0 1 190px}.profit-filters label{display:block;font-size:12px;font-weight:650;color:#49617a;margin-bottom:5px}.profit-filters input{height:38px;width:100%;box-sizing:border-box;border:1px solid #c9d8e8;border-radius:6px;padding:7px 9px;background:white;font:inherit}.profit-note{color:#56718b;background:#edf5fc;border-left:3px solid #5a9fda;padding:10px 13px;border-radius:5px;font-size:12px;margin-bottom:14px}.profit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:15px}.profit-kpi{min-width:0;background:#fff;border:1px solid #d7e5f2;border-radius:11px;padding:18px 19px;box-shadow:0 3px 12px #123b6410;display:flex;flex-direction:column;gap:9px}.profit-kpi small{color:#60758c;font-size:12px;font-weight:650}.profit-kpi strong{color:#143c6a;font-size:clamp(18px,2vw,28px);font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}.profit-kpi-featured{background:linear-gradient(135deg,#154b87,#2878bb);border-color:#216cae}.profit-kpi-featured small,.profit-kpi-featured strong,.profit-kpi-featured strong.text-success,.profit-kpi-featured strong.text-danger{color:white!important}.profit-panels{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:15px}.profit-panel{background:white;border:1px solid #d8e5f2;border-radius:11px;box-shadow:0 3px 12px #143d620c;min-width:0}.profit-panel-body{padding:19px}.profit-panel h2{font-size:17px;color:#153d6a;margin:0 0 8px}.profit-panel-subtitle{font-size:12px;color:#74869a;margin:0 0 16px}.profit-legend{display:flex;gap:17px;font-size:12px;color:#567087}.profit-chart{display:flex;gap:12px;align-items:end;min-height:245px;padding:15px 5px 5px;overflow-x:auto}.profit-month{flex:1 0 52px;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:8px;font-size:12px;color:#657d93}.profit-bars{height:190px;display:flex;align-items:end;gap:5px}.profit-bar{width:21px;min-height:2px;border-radius:5px 5px 0 0;transition:filter .15s}.profit-bar:hover{filter:brightness(.83)}.profit-revenue{background:linear-gradient(0deg,#195caa,#3d9fe7)}.profit-expense{background:linear-gradient(0deg,#d77e38,#f5b776)}.profit-category-track{height:9px;background:#eaf0f6;border-radius:9px;overflow:hidden}.profit-category-fill{height:100%;background:linear-gradient(90deg,#1b68b6,#4da4df);border-radius:9px}.profit-detail{margin-top:15px}.profit-detail .management-table{width:100%}.profit-detail .management-table td,.profit-detail .management-table th{padding:11px 13px}.profit-detail tfoot{background:#eaf3fd;font-weight:700}.profit-detail .results-scroll{overflow-x:auto}
@media(max-width:1050px){.profit-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.profit-panels{grid-template-columns:1fr}}@media(max-width:540px){.profit-kpis{grid-template-columns:1fr}}
@media print{.profit-toolbar .btn,.profit-filters{display:none!important}.profit-page{padding:0}.profit-panel,.profit-kpi{box-shadow:none}}

/* Pagos: permitir desplegar el selector sin que la tarjeta recorte las opciones. */
.payment-action-card { overflow: visible; }
.payment-action-card .payment-card-fields { position: relative; }
.payment-action-card .payment-card-fields .dbc-field { min-width: 0; }


/* Vista previa de lotes en cierre de albaranes */
.dbc-lotes-preview-button { border:1px solid #c9dcf2; border-radius:6px; padding:4px 8px; background:#eef6ff; color:#1765a5; font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap; }
.dbc-lotes-preview-button:hover { background:#dcecff; }
.dbc-lotes-preview { margin-top:12px; border:1px solid #c9dcf2; border-radius:10px; padding:12px; background:#f8fbff; }
.dbc-lotes-preview[hidden] { display:none; }
.dbc-lotes-preview-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; color:#173e68; }
.dbc-lotes-preview-heading button { border:0; background:transparent; font-size:22px; cursor:pointer; color:#526c84; }
.dbc-lotes-count { margin-bottom:8px; font-size:12px; color:#506985; }
.dbc-lotes-scroll { max-height:260px; overflow:auto; }
.dbc-lotes-scroll table { border-collapse:collapse; width:100%; font-size:12px; }
.dbc-lotes-scroll th,.dbc-lotes-scroll td { padding:7px 5px; border-bottom:1px solid #dbe7f4; text-align:left; }
.dbc-lotes-scroll th { position:sticky; top:0; background:#e7f2fc; color:#174d79; }
.dbc-lotes-scroll th:last-child,.dbc-lotes-scroll td:last-child { text-align:right; }

/* Cierre: el aviso de imprescindibles solo se muestra si contiene información. */
.dbc-customer-item .dbc-essential-warning[hidden] { display:none !important; }
.dbc-customer-item { grid-template-columns:22px minmax(0,1fr) auto; }
.dbc-customer-item .dbc-essential-warning:not([hidden]) { grid-column:2 / -1; justify-self:start; }
.dbc-customer-grid > .dbc-lotes-preview { margin:3px 8px 12px 34px; }
.dbc-customer-grid > .dbc-lotes-preview[hidden] { display:none !important; }
