/* Superficies del tema: nunca dejar tarjetas ni controles transparentes. */
.inv-page{font-family:'Roboto Condensed',sans-serif;color:var(--mud-palette-text-primary);min-width:0;width:100%;padding:8px 0 24px}.inv-page *{box-sizing:border-box}.inv-hero{display:grid;grid-template-columns:1.1fr 1fr;background:var(--mud-palette-surface);border:1px solid var(--mud-palette-lines-default);border-radius:9px;overflow:hidden}.inv-heading{display:flex;align-items:center;gap:15px;padding:17px 20px}.inv-heading .mud-icon-root{font-size:38px;color:#087cfa}.inv-heading h1{font-size:1.8rem;font-weight:800;margin:0}.inv-heading p{margin:3px 0 0;color:var(--mud-palette-text-secondary)}.inv-banner{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 24px;color:white;background:linear-gradient(90deg,rgba(2,27,51,.97),rgba(5,40,72,.60)),url('/images/home/hero-logistics.webp') center/cover}.inv-banner strong{font-size:1.15rem}.inv-notice{display:flex;align-items:center;gap:8px;margin:10px 0;color:var(--mud-palette-text-secondary);font-size:.85rem}.inv-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin-bottom:12px}.inv-kpis article,.inv-panel,.inv-bottom article{background:var(--mud-palette-surface);border:1px solid var(--mud-palette-lines-default);border-radius:9px;box-shadow:0 3px 12px rgba(7,30,57,.07)}.inv-kpis article{display:flex;align-items:center;gap:10px;padding:13px 11px;min-width:0}.inv-kpis strong{display:block;font-size:1.55rem;line-height:1.1}.inv-kpis small{display:block;color:var(--mud-palette-text-secondary);margin-top:4px}.inv-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;color:#fff}.inv-icon.blue{background:#087cfa}.inv-icon.green{background:#00a96b}.inv-icon.amber{background:#f5a400}.inv-icon.purple{background:#8546ef}.inv-icon.red{background:#f44258}.inv-icon.slate{background:#64748b}.inv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--mud-palette-lines-default);flex-wrap:wrap}.inv-tabs,.inv-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inv-tabs button{border:0;border-bottom:2px solid transparent;padding:10px 9px;background:transparent;color:var(--mud-palette-text-primary);cursor:pointer}.inv-tabs button.active{color:#087cfa;border-bottom-color:#087cfa;font-weight:800}.inv-primary,.inv-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:5px;padding:9px 12px;font-weight:700;cursor:pointer}.inv-primary{border:1px solid #087cfa;background:#087cfa;color:#fff}.inv-secondary{background:var(--mud-palette-surface);border:1px solid var(--mud-palette-lines-default);color:var(--mud-palette-text-primary)}.inv-primary .mud-icon-root,.inv-secondary .mud-icon-root{font-size:18px}.inv-filters{padding:12px}.inv-search{display:flex;align-items:center;gap:8px;background:var(--mud-palette-surface);border:1px solid var(--mud-palette-lines-default);border-radius:5px;padding:0 10px;margin-bottom:12px}.inv-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--mud-palette-text-primary);padding:10px 0}.inv-filter-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:9px;align-items:end}.inv-filter-row label,.inv-form label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;font-weight:700}.inv-filter-row select,.inv-form input,.inv-form select,.inv-footer select{width:100%;background:var(--mud-palette-surface);color:var(--mud-palette-text-primary);border:1px solid var(--mud-palette-lines-default);border-radius:5px;padding:9px;min-width:0}.inv-table-wrap{width:100%;overflow-x:auto}.inv-table{width:100%;border-collapse:collapse;font-size:.85rem}.inv-table thead{background:var(--mud-palette-background-gray)}.inv-table th{text-align:left;padding:10px 9px;white-space:nowrap}.inv-table td{padding:10px 9px;border-top:1px solid var(--mud-palette-lines-default)}.inv-table tbody tr:nth-child(even){background:var(--mud-palette-background-gray)}.inv-table td strong,.inv-table td small{display:block}.inv-table td small{color:var(--mud-palette-text-secondary)}.inv-badge{display:inline-block;border-radius:20px;padding:4px 8px;font-weight:700;white-space:nowrap}.inv-badge.stored{background:#d6f6e7;color:#066b46}.inv-badge.picking{background:#eadcff;color:#6830b7}.inv-badge.review{background:#ffe0e3;color:#a20d2a}.inv-link{display:inline-flex;align-items:center;gap:5px;background:transparent;border:0;color:var(--mud-palette-primary);cursor:pointer}.inv-link .mud-icon-root{font-size:17px}.inv-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;flex-wrap:wrap}.inv-footer>div,.inv-footer label{display:flex;align-items:center;gap:8px}.inv-footer select{width:auto}.inv-footer button{padding:5px 10px;border:1px solid var(--mud-palette-lines-default);background:var(--mud-palette-surface);color:var(--mud-palette-text-primary);border-radius:5px}.inv-footer button:disabled{opacity:.4}.inv-bottom{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.inv-bottom article{padding:14px;min-width:0}.inv-bottom h3{display:flex;align-items:center;gap:7px;font-size:1rem;margin:0 0 15px}.inv-bottom h3 .mud-icon-root{font-size:20px}.inv-bar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(50px,1fr) auto;align-items:center;gap:7px;margin:10px 0;font-size:.8rem}.inv-track{height:8px;background:var(--mud-palette-background-gray);border-radius:10px;overflow:hidden}.inv-track span{display:block;background:#087cfa;height:100%;border-radius:10px}.inv-expiry{display:flex;justify-content:space-between;gap:8px;margin:12px 0;font-size:.83rem}.inv-empty{padding:24px;text-align:center}.inv-overlay{position:fixed;inset:0;z-index:1500;display:flex;align-items:center;justify-content:center;background:rgba(1,14,28,.75);backdrop-filter:blur(3px);padding:16px}.inv-modal{width:min(620px,100%);max-height:90vh;overflow-y:auto;background:var(--mud-palette-surface);color:var(--mud-palette-text-primary);border:1px solid var(--mud-palette-lines-default);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.inv-modal>header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--mud-palette-background-gray);border-bottom:1px solid var(--mud-palette-lines-default)}.inv-modal>header>div{display:flex;align-items:center;gap:9px}.inv-modal>header button{border:0;background:transparent;color:var(--mud-palette-text-primary);cursor:pointer}.inv-modal-body{padding:20px}.inv-modal footer{display:flex;justify-content:flex-end;border-top:1px solid var(--mud-palette-lines-default);padding:14px 20px}.inv-detail,.inv-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inv-detail>div{background:var(--mud-palette-background-gray);border:1px solid var(--mud-palette-lines-default);border-radius:7px;padding:12px}.inv-detail span,.inv-detail strong{display:block}.inv-detail span{font-size:.82rem;color:var(--mud-palette-text-secondary);margin-bottom:5px}.inv-error{color:var(--mud-palette-error);font-weight:700}.inv-primary:focus-visible,.inv-secondary:focus-visible,.inv-link:focus-visible,.inv-tabs button:focus-visible{outline:2px solid var(--mud-palette-primary);outline-offset:2px}
@media(max-width:1200px){.inv-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.inv-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.inv-page{padding:0 0 20px}.inv-hero{grid-template-columns:1fr}.inv-banner{display:none}.inv-heading{padding:14px}.inv-heading h1{font-size:1.4rem}.inv-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.inv-kpis article{padding:11px}.inv-toolbar{align-items:stretch}.inv-tabs{flex-wrap:nowrap;overflow-x:auto;width:100%}.inv-tabs button{white-space:nowrap}.inv-actions{width:100%}.inv-actions button{flex:1}.inv-filter-row{grid-template-columns:1fr 1fr}.inv-filter-row .inv-secondary{grid-column:1/-1}.inv-table-wrap{overflow:visible;padding:0 12px}.inv-table,.inv-table tbody,.inv-table tr,.inv-table td{display:block;width:100%}.inv-table thead{display:none}.inv-table tbody{display:flex;flex-direction:column;gap:14px}.inv-table tbody tr{border:1px solid var(--mud-palette-lines-default);border-radius:9px;padding:12px;background:var(--mud-palette-surface)!important;box-shadow:0 2px 8px rgba(0,0,0,.07)}.inv-table td{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border:0;text-align:right;overflow-wrap:anywhere}.inv-table td:before{content:attr(data-label);text-align:left;font-weight:700;flex:0 0 42%}.inv-table td:first-child{border-bottom:1px solid var(--mud-palette-lines-default);margin-bottom:5px;padding-bottom:10px}.inv-bottom{grid-template-columns:1fr}.inv-footer{align-items:flex-start}.inv-detail,.inv-form{grid-template-columns:1fr}}@media(max-width:380px){.inv-filter-row{grid-template-columns:1fr}}

/* Contraste reforzado: fondos y controles nunca transparentes. */
.inv-panel,.inv-kpis article,.inv-bottom article,.inv-modal{background-color:var(--mud-palette-surface,#fff)!important;border:1px solid var(--mud-palette-lines-default,#cbd5e1)!important;}
.inv-modal .inv-form input,.inv-modal .inv-form select,.inv-filter-row select{background-color:var(--mud-palette-surface,#fff)!important;color:var(--mud-palette-text-primary,#102a43)!important;border:1px solid var(--mud-palette-lines-default,#b8c9dc)!important;min-height:38px;}
.inv-modal .inv-form input:focus,.inv-modal .inv-form select:focus{outline:2px solid var(--mud-palette-primary,#087cfa);outline-offset:1px;}
.inv-modal-body>p{margin:0 0 18px;color:var(--mud-palette-text-secondary,#536579);}
.inv-modal .inv-form{gap:16px;}
.inv-modal .inv-form label{gap:8px;}
.inv-modal>header strong{font-size:1.12rem;}
.inv-modal footer{background:var(--mud-palette-surface,#fff);}
@media(max-width:767px){.inv-table tbody tr{margin-bottom:2px;background-color:var(--mud-palette-surface,#fff)!important;}.inv-modal{max-height:calc(100dvh - 24px);}.inv-modal-body{padding:16px;}}


/* ============================================================
   TRAYEKTO | INVENTARIO | CONTRASTE REAL LIGHT / DARK
   El tema global se identifica mediante html[data-theme].
   No se depende de las variables de MudBlazor para el contraste.
   ============================================================ */

html[data-theme="light"] .inv-page {
    --inv-surface: #ffffff;
    --inv-muted-surface: #f1f6fc;
    --inv-text: #102a43;
    --inv-secondary-text: #526783;
    --inv-border: #cbd9e9;
    --inv-input: #ffffff;
}

html[data-theme="dark"] .inv-page {
    --inv-surface: #102c43;
    --inv-muted-surface: #193a54;
    --inv-text: #f4f8ff;
    --inv-secondary-text: #c0d2e4;
    --inv-border: #42627c;
    --inv-input: #0b2337;
}

html[data-theme] .inv-page {
    color: var(--inv-text);
}

html[data-theme] .inv-page .inv-hero,
html[data-theme] .inv-page .inv-panel,
html[data-theme] .inv-page .inv-kpis article,
html[data-theme] .inv-page .inv-bottom article,
html[data-theme] .inv-page .inv-modal,
html[data-theme] .inv-page .inv-modal footer {
    background: var(--inv-surface) !important;
    color: var(--inv-text) !important;
    border: 1px solid var(--inv-border) !important;
}

html[data-theme] .inv-page .inv-modal > header,
html[data-theme] .inv-page .inv-detail > div,
html[data-theme] .inv-page .inv-table thead,
html[data-theme] .inv-page .inv-table tbody tr:nth-child(even) {
    background: var(--inv-muted-surface) !important;
    color: var(--inv-text) !important;
}

html[data-theme] .inv-page .inv-modal > header,
html[data-theme] .inv-page .inv-modal footer,
html[data-theme] .inv-page .inv-toolbar,
html[data-theme] .inv-page .inv-table td {
    border-color: var(--inv-border) !important;
}

html[data-theme] .inv-page .inv-form label,
html[data-theme] .inv-page .inv-filter-row label,
html[data-theme] .inv-page .inv-modal > header strong,
html[data-theme] .inv-page .inv-bottom h3,
html[data-theme] .inv-page .inv-kpis strong {
    color: var(--inv-text) !important;
}

html[data-theme] .inv-page .inv-modal-body > p,
html[data-theme] .inv-page .inv-kpis small,
html[data-theme] .inv-page .inv-heading p,
html[data-theme] .inv-page .inv-notice,
html[data-theme] .inv-page .inv-detail span,
html[data-theme] .inv-page .inv-table td small {
    color: var(--inv-secondary-text) !important;
}

html[data-theme] .inv-page .inv-form input,
html[data-theme] .inv-page .inv-form select,
html[data-theme] .inv-page .inv-filter-row select,
html[data-theme] .inv-page .inv-footer select,
html[data-theme] .inv-page .inv-search,
html[data-theme] .inv-page .inv-secondary {
    background: var(--inv-input) !important;
    color: var(--inv-text) !important;
    border: 1px solid var(--inv-border) !important;
}

html[data-theme] .inv-page .inv-form input::placeholder,
html[data-theme] .inv-page .inv-search input::placeholder {
    color: var(--inv-secondary-text) !important;
    opacity: 1;
}

html[data-theme] .inv-page .inv-search input,
html[data-theme] .inv-page .inv-tabs button,
html[data-theme] .inv-page .inv-modal > header button {
    color: var(--inv-text) !important;
}

html[data-theme] .inv-page .inv-tabs button.active {
    color: #45a5ff !important;
    border-bottom-color: #45a5ff !important;
}

html[data-theme] .inv-page .inv-primary {
    background: #087cfa !important;
    border-color: #087cfa !important;
    color: #ffffff !important;
}

html[data-theme="dark"] .inv-page .inv-track {
    background: #2b4b65 !important;
}

@media (max-width: 767px) {
    html[data-theme] .inv-page .inv-table tbody tr {
        background: var(--inv-surface) !important;
        border: 1px solid var(--inv-border) !important;
        color: var(--inv-text) !important;
    }
}


/* ===============================================================
   MODAL INVENTARIO: fuera de .inv-page en el árbol de Razor.
   Por ello los selectores de tema deben apuntar a .inv-overlay.
   =============================================================== */
html[data-theme="light"] .inv-overlay {
    --inventory-dialog-surface: #ffffff;
    --inventory-dialog-header: #f0f5fb;
    --inventory-dialog-input: #ffffff;
    --inventory-dialog-text: #142d49;
    --inventory-dialog-muted: #536985;
    --inventory-dialog-border: #c7d6e8;
}
html[data-theme="dark"] .inv-overlay {
    --inventory-dialog-surface: #102b42;
    --inventory-dialog-header: #1b3a54;
    --inventory-dialog-input: #0a2236;
    --inventory-dialog-text: #f5f9ff;
    --inventory-dialog-muted: #c4d5e5;
    --inventory-dialog-border: #52718b;
}
html[data-theme] .inv-overlay .inv-modal {
    background: var(--inventory-dialog-surface) !important;
    color: var(--inventory-dialog-text) !important;
    border: 1px solid var(--inventory-dialog-border) !important;
    border-radius: 12px;
    font-family: 'Roboto Condensed', sans-serif;
}
html[data-theme] .inv-overlay .inv-modal > header {
    background: var(--inventory-dialog-header) !important;
    color: var(--inventory-dialog-text) !important;
    border-bottom: 1px solid var(--inventory-dialog-border) !important;
}
html[data-theme] .inv-overlay .inv-modal > header strong,
html[data-theme] .inv-overlay .inv-modal > header .mud-icon-root,
html[data-theme] .inv-overlay .inv-modal > header button,
html[data-theme] .inv-overlay .inv-form label,
html[data-theme] .inv-overlay .inv-detail strong {
    color: var(--inventory-dialog-text) !important;
    opacity: 1 !important;
}
html[data-theme] .inv-overlay .inv-modal-body,
html[data-theme] .inv-overlay .inv-modal > footer {
    background: var(--inventory-dialog-surface) !important;
    color: var(--inventory-dialog-text) !important;
}
html[data-theme] .inv-overlay .inv-modal > footer {
    border-top: 1px solid var(--inventory-dialog-border) !important;
}
html[data-theme] .inv-overlay .inv-modal-body > p,
html[data-theme] .inv-overlay .inv-detail span {
    color: var(--inventory-dialog-muted) !important;
}
html[data-theme] .inv-overlay .inv-form input,
html[data-theme] .inv-overlay .inv-form select {
    display: block;
    width: 100%;
    min-height: 38px;
    background: var(--inventory-dialog-input) !important;
    color: var(--inventory-dialog-text) !important;
    border: 1px solid var(--inventory-dialog-border) !important;
    border-radius: 6px;
    opacity: 1 !important;
}
html[data-theme] .inv-overlay .inv-form input::placeholder {
    color: var(--inventory-dialog-muted) !important;
    opacity: 1;
}
html[data-theme] .inv-overlay .inv-detail > div {
    background: var(--inventory-dialog-header) !important;
    border: 1px solid var(--inventory-dialog-border) !important;
}
html[data-theme] .inv-overlay .inv-modal .inv-primary {
    background: #087cfa !important;
    border: 1px solid #087cfa !important;
    color: #ffffff !important;
}
html[data-theme] .inv-overlay .inv-form input:focus-visible,
html[data-theme] .inv-overlay .inv-form select:focus-visible,
html[data-theme] .inv-overlay .inv-modal > header button:focus-visible {
    outline: 2px solid #42a5ff;
    outline-offset: 2px;
}
@media (max-width: 767px) {
    html[data-theme] .inv-overlay .inv-modal {
        width: min(100%, 540px);
        max-height: 90dvh;
    }
}
