:root{
    --orange:#ff6400;
    --orange-dark:#e25800;
    --orange-soft:#fff4ed;
    --orange-line:#f6c6a8;
    --red:#fa3b32;
    --red-soft:#ffe9e7;
    --green:#16a34a;
    --green-soft:#dcfce7;
    --blue:#1d4ed8;
    --blue-soft:#dbeafe;
    --gray:#4c4f54;
    --gray-dark:#404247;
    --gray-soft:#f5f6f8;
    --gray-soft-2:#f0f1f3;
    --text:#111827;
    --muted:#6b7280;
    --line:#dde1e6;
    --line-strong:#cfd5dc;
    --shadow:0 14px 34px rgba(76,79,84,.08);

    --page-max:1780px;
    --page-gutter:clamp(16px,2vw,30px);

    --ease:cubic-bezier(.22,.61,.36,1);
    --scroll-thumb:#cfd2d6;
}

*{box-sizing:border-box;}

html{
    background:#f6f7f8;
    scroll-behavior:smooth;
    
    overflow-x:clip;
}

body{
    width:100%;
    max-width:var(--page-max);
    margin:0 auto;
    padding:26px var(--page-gutter) 34px;
    font-family:Segoe UI, Arial, sans-serif;
    background:#f6f7f8;
    color:var(--text);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

.summary-wrap,
.table-wrap,
.bars,
.autocomplete-box,
.vendor-actions{
    scrollbar-width:thin;
    scrollbar-color:var(--scroll-thumb) transparent;
}

.summary-wrap::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar,
.bars::-webkit-scrollbar,
.autocomplete-box::-webkit-scrollbar,
.vendor-actions::-webkit-scrollbar{
    width:9px;
    height:9px;
}

.summary-wrap::-webkit-scrollbar-track,
.table-wrap::-webkit-scrollbar-track,
.autocomplete-box::-webkit-scrollbar-track,
.vendor-actions::-webkit-scrollbar-track{
    background:transparent;
}

.summary-wrap::-webkit-scrollbar-thumb,
.table-wrap::-webkit-scrollbar-thumb,
.autocomplete-box::-webkit-scrollbar-thumb,
.vendor-actions::-webkit-scrollbar-thumb{
    background:var(--scroll-thumb);
    border-radius:999px;
}

.summary-wrap::-webkit-scrollbar-thumb:hover,
.table-wrap::-webkit-scrollbar-thumb:hover,
.autocomplete-box::-webkit-scrollbar-thumb:hover,
.vendor-actions::-webkit-scrollbar-thumb:hover{
    background:#f2a06a;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
label.switch:focus-within{
    outline:none;
    border-color:var(--orange);
    box-shadow:0 0 0 3px rgba(255,100,0,.20);
}

h1{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    max-width:560px;
    margin:0 auto 24px auto;
    padding:18px 28px;
    color:#fff;
    text-align:center;
    font-size:30px;
    line-height:1.05;
    font-weight:1000;
    letter-spacing:.12em;
    border:1px solid #5d6066;
    border-radius:999px;
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    box-shadow:0 14px 30px rgba(64,66,71,.20);
}

h1::before,
h1::after{
    content:"";
    position:absolute;
    z-index:-1;
    border-radius:50%;
    pointer-events:none;
}

h1::before{
    width:96px;
    height:96px;
    left:-24px;
    top:-44px;
    background:transparent;
    border:2px solid rgba(255,255,255,.24);
}

h1::after{
    width:78px;
    height:78px;
    right:-18px;
    bottom:-36px;
    background:transparent;
    border:2px solid rgba(255,255,255,.18);
}

h2,h3{
    margin:0;
}

.card,.panel,.filter-panel,.summary-panel{
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    box-shadow:var(--shadow);
}

.summary-panel{
    position:relative;
    overflow:visible;
    padding:18px;
    margin-bottom:18px;
    background:linear-gradient(180deg,#ffffff 0%,#f8f8f9 100%);
    border-color:#e5e7eb;
}

.summary-panel::before,
.summary-panel::after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
    background:rgba(255,255,255,.55);
    border:1px solid rgba(255,100,0,.10);
}

.summary-panel::before{
    width:230px;
    height:230px;
    right:-80px;
    top:-90px;
}

.summary-panel::after{
    width:140px;
    height:140px;
    left:34px;
    bottom:-70px;
}

.summary-bubble{
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(255,100,0,.08);
    background:rgba(255,255,255,.45);
    pointer-events:none;
}

.summary-bubble.one{
    width:78px;
    height:78px;
    right:160px;
    top:38px;
}

.summary-bubble.two{
    width:48px;
    height:48px;
    left:48%;
    bottom:26px;
}

.summary-head{
    position:relative;
    z-index:120;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:14px;
}

.summary-title{
    color:var(--gray-dark);
    font-size:22px;
    line-height:1.05;
    font-weight:1000;
    letter-spacing:.02em;
}

.summary-subtitle{
    margin-top:6px;
    color:var(--orange-dark);
    font-size:12px;
    line-height:1.35;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.summary-footer{
    position:relative;
    z-index:1;
    display:grid;
    gap:8px;
    margin-top:12px;
}

.summary-footer-row{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    min-height:38px;
    padding:8px 10px;
    border-radius:14px;
    border:1px solid #e5e7eb;
    background:rgba(255,255,255,.88);
}

.summary-footer-label{
    flex:0 0 auto;
    min-width:86px;
    color:var(--gray-dark);
    font-size:12px;
    font-weight:900;
    letter-spacing:.06em;
}

.summary-footer-chip{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:26px;
    padding:5px 9px;
    border-radius:999px;
    background:#f7f8fa;
    border:1px solid #e2e5e9;
    color:var(--gray-dark);
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}

.summary-footer-chip span{
    color:var(--muted);
    font-weight:700;
}

.summary-footer-chip strong{
    color:var(--gray-dark);
    font-weight:900;
}

.summary-actions{
    position:relative;
    z-index:130;
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.summary-left-block{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
}

.vendor-summary-head{
    align-items:flex-start;
}

.vendor-actions{
    margin-left:auto;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:nowrap;
    gap:8px;
    min-height:40px;
    overflow-x:auto;
    padding-bottom:2px;
}

.zone-toggle-slot{
    flex:0 0 auto;
    min-height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.zone-buttons{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:nowrap;
}

.zone-btn{
    min-height:36px;
    padding:8px 13px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:13px;
    background:linear-gradient(180deg,#ffffff 0%,#f4f5f7 100%);
    color:var(--gray-dark);
    border:1px solid #cfd5dc;
    text-decoration:none;
    font-size:10.5px;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    box-shadow:0 7px 16px rgba(76,79,84,.08);
    transition:transform .15s ease, filter .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.zone-btn:hover{
    transform:translateY(-1px);
    border-color:#ffb783;
    box-shadow:0 12px 22px rgba(255,100,0,.14);
}

.zone-btn.active{
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
    border-color:var(--orange-dark);
    box-shadow:0 12px 24px rgba(255,100,0,.24);
}

.zone-toggle-form{
    min-height:36px;
    padding:5px 10px;
    border-radius:13px;
    background:linear-gradient(180deg,#ffffff 0%,#f6f7f8 100%);
    border:1px solid #cfd5dc;
    box-shadow:0 7px 16px rgba(76,79,84,.08);
}

.zone-toggle-label{
    color:var(--gray-dark);
    font-size:10.5px;
    font-weight:1000;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.summary-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:34px;
    border-radius:999px;
    padding:8px 13px;
    background:linear-gradient(180deg,#ffffff 0%,#f6f7f8 100%);
    color:var(--gray-dark);
    border:1px solid #d9dde2;
    font-size:13px;
    font-weight:1000;
    box-shadow:0 6px 14px rgba(76,79,84,.08);
}

.summary-toggle-form{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    color:var(--gray-dark);
    font-size:13px;
    font-weight:800;
}

.summary-clear-btn{
    min-height:34px;
    padding:8px 15px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    color:#fff;
    border:1px solid #404247;
    text-decoration:none;
    font-size:12px;
    font-weight:900;
    letter-spacing:.02em;
    box-shadow:0 8px 16px rgba(64,66,71,.14);
    transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

.summary-clear-btn:hover{
    filter:brightness(1.04);
    transform:translateY(-1px);
    box-shadow:0 10px 20px rgba(64,66,71,.18);
}

.switch{
    position:relative;
    display:inline-block;
    width:54px;
    height:30px;
    flex:0 0 auto;
}

.switch input{
    opacity:0;
    width:0;
    height:0;
}

.slider{
    position:absolute;
    cursor:pointer;
    inset:0;
    background:#d1d5db;
    transition:background .2s var(--ease), border-color .2s var(--ease);
    border-radius:999px;
    border:1px solid #b9bec6;
}

.slider:before{
    position:absolute;
    content:"";
    height:22px;
    width:22px;
    left:3px;
    bottom:3px;
    background:#fff;
    transition:transform .2s var(--ease);
    border-radius:50%;
    box-shadow:0 2px 6px rgba(0,0,0,.18);
    will-change:transform;
}

.switch input:checked + .slider{
    background:linear-gradient(180deg,#ff8f47 0%,var(--orange) 100%);
    border-color:var(--orange);
}

.switch input:checked + .slider:before{
    transform:translateX(24px);
}

.summary-wrap{
    position:relative;
    z-index:1;
    width:100%;
    overflow:auto;
    overscroll-behavior:contain;
    border-radius:16px;
    border:1px solid #e5e7eb;
    background:#fff;
}

.summary-wrap.line-summary-scroll{
    max-height:265px;
    overflow:auto;
    scrollbar-gutter:stable;
}

.summary-fixed-totals{
    margin-top:8px;
    border-color:#f1dccd;
    overflow-x:auto;
    overflow-y:hidden;
    max-height:none;
    scrollbar-gutter:stable;
}

.summary-fixed-totals .summary-table{
    border-collapse:collapse;
    margin-bottom:0;
}

.summary-fixed-totals .summary-table td{
    position:relative;
    z-index:2;
}

.line-summary-table,
.line-fixed-table{
    min-width:1283px;
    table-layout:fixed;
}

.line-summary-scroll .summary-table{
    margin-bottom:0;
}

.line-summary-scroll .summary-table td{
    position:relative;
}

.line-summary-scroll .summary-table thead th{
    top:0;
}

.summary-table{
    width:100%;
    min-width:1058px;
    border-collapse:collapse;
    background:#fff;
}

.summary-table th,
.summary-table td{
    padding:10px 11px;
    border:1px solid #eceff2;
    white-space:nowrap;
    font-size:13px;
    color:#111827;
    background:#fff;
    vertical-align:middle;
}

.summary-table th{
    position:sticky;
    top:0;
    z-index:8;
    font-weight:900;
    text-align:left;
    color:#fff;
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    border-bottom:3px solid var(--orange);
    box-shadow:0 3px 0 rgba(255,100,0,.18);
}

.summary-table th:first-child{
    border-left:4px solid var(--orange);
}

.performance-summary-table,
.vendor-summary-table,
.line-summary-table,
.line-fixed-table,
.client-summary-table,
.client-fixed-table{
    min-width:1198px;
    table-layout:fixed;
    border-collapse:collapse;
}

.performance-summary-table th,
.performance-summary-table td,
.vendor-summary-table th,
.vendor-summary-table td,
.line-summary-table th,
.line-summary-table td,
.line-fixed-table td,
.client-summary-table th,
.client-summary-table td,
.client-fixed-table td{
    text-align:center;
    vertical-align:middle;
}

.performance-summary-table th,
.vendor-summary-table th,
.line-summary-table th,
.client-summary-table th{
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    color:#ffffff;
    border-bottom:3px solid var(--orange);
    box-shadow:0 3px 0 rgba(255,100,0,.18);
    font-size:12px;
    letter-spacing:.02em;
}

.performance-summary-table th:first-child,
.vendor-summary-table th:first-child,
.line-summary-table th:first-child,
.client-summary-table th:first-child{
    border-left:4px solid var(--orange);
}

.summary-col-pedidos{width:78px;}
.summary-col-name{width:210px;}
.summary-col-money{width:118px;}
.summary-col-percent{width:82px;}
.summary-col-narrow{width:88px;}
.summary-col-lead{width:52px;}

.summary-pedidos{
    text-align:center;
    color:var(--gray-dark);
    font-weight:1000;
    font-variant-numeric:tabular-nums;
}

.summary-compact-cell{
    padding-left:6px !important;
    padding-right:6px !important;
    font-size:12px !important;
}

.summary-ontime-start{
    border-left:1px solid #eceff2 !important;
}

.performance-summary-table th:nth-child(n+7){
    background:linear-gradient(180deg,#686d75 0%,#4b4f56 100%);
}

.performance-summary-table td:nth-child(n+7){
    background:#f8f9fb;
}

.performance-summary-table tr:nth-child(even) td:nth-child(n+7){
    background:#f2f4f7;
}

.performance-summary-table tr:hover td:nth-child(n+7){
    background:#edf1f5;
}

.performance-summary-table tr.summary-total-row td:nth-child(n+7){
    background:#eef1f5 !important;
    color:#404247;
}

.summary-search-form{
    position:relative;
    z-index:160;
    display:grid;
    grid-template-columns:minmax(160px,210px) auto;
    align-items:center;
    gap:7px;
    margin:0;
}

.summary-search-input{
    width:100%;
    height:34px;
    border:1px solid var(--line-strong);
    border-radius:12px;
    background:#fff;
    padding:0 11px;
    font-size:12px;
    color:var(--text);
    outline:none;
}

.summary-search-input:focus{
    border-color:rgba(255,100,0,.35);
    box-shadow:0 0 0 4px rgba(255,100,0,.08);
}

.summary-search-btn{
    height:34px;
    border:none;
    border-radius:12px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
    white-space:nowrap;
}

.summary-search-btn:disabled{
    opacity:.42;
    cursor:not-allowed;
    background:#d1d5db;
    color:#fff;
    box-shadow:none;
}

.summary-search-form .autocomplete-box{
    top:40px;
    z-index:9999;
    box-shadow:0 18px 36px rgba(17,24,39,.24);
}

.summary-table tr:nth-child(even) td{
    background:#fafafa;
}

.summary-table tr:hover td{
    background:#f5f6f8;
}

.summary-table tr.summary-total-row td{
    background:#fff4ed !important;
    color:#9a3412;
    font-weight:900;
    border-top:2px solid var(--orange);
}

.summary-table tr.summary-average-row td{
    background:#f5f6f8 !important;
    color:#404247;
    font-weight:900;
    border-top:1px solid #cfd5dc;
}

.summary-table tr.summary-total-row td:first-child,
.summary-table tr.summary-average-row td:first-child{
    letter-spacing:.05em;
}

.summary-vendedor,
.summary-linea,
.summary-money,
.summary-facturado,
.summary-pendiente,
.summary-lead,
.summary-cumplimiento{
    font-weight:800;
    color:#111827;
}

.summary-money,
.summary-facturado,
.summary-pendiente,
.summary-lead,
.summary-cumplimiento{
    text-align:right;
}

.smart-filter-link{
    color:var(--gray-dark);
    font-weight:900;
    text-decoration:none;
    border-bottom:1px solid rgba(255,100,0,.45);
}

.smart-filter-link:hover{
    color:var(--orange-dark);
    border-bottom-color:var(--orange);
}

.filter-panel{
    padding:16px 18px 18px;
    margin-bottom:18px;
    background:linear-gradient(180deg,#ffffff 0%,#f8f9fa 100%);
}

.filter-head{
    margin-bottom:12px;
    text-align:center;
}

.filter-title{
    display:inline-block;
    font-size:18px;
    font-weight:900;
    color:var(--gray-dark);
    margin-bottom:0;
    padding-bottom:8px;
    border-bottom:2px solid rgba(255,100,0,.30);
    letter-spacing:.02em;
}

.filter-grid{
    display:grid;
    grid-template-columns:minmax(342px,1.53fr) 96px 96px minmax(92px,.58fr) minmax(92px,.58fr) auto auto;
    gap:12px;
    align-items:end;
    justify-content:center;
}

.filter-number-input{
    text-align:center;
    font-weight:900;
    padding:0 8px;
}

.filter-number-input::-webkit-outer-spin-button,
.filter-number-input::-webkit-inner-spin-button{
    margin:0;
}

.filter-extra-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #edf0f2;
}

.toggle-inline{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--gray-dark);
    font-size:13px;
    font-weight:800;
}

.toggle-help{
    color:var(--muted);
    font-size:12px;
    line-height:1.45;
}

.field{
    position:relative;
    display:flex;
    flex-direction:column;
    gap:7px;
    min-width:0;
}

.field label,.ghost-label{
    color:var(--gray);
    font-size:12px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.ghost-label{
    visibility:hidden;
}

.input{
    width:100%;
    height:46px;
    border:1px solid var(--line-strong);
    border-radius:14px;
    background:#fff;
    padding:0 13px;
    font-size:14px;
    color:var(--text);
    outline:none;
}

.input:focus{
    border-color:rgba(255,100,0,.35);
    box-shadow:0 0 0 4px rgba(255,100,0,.08);
}

.action-field{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.btn{
    height:46px;
    border:none;
    border-radius:14px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
    white-space:nowrap;
}

.btn-primary{
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
    box-shadow:0 10px 22px rgba(255,100,0,.18);
}

.btn-secondary{
    background:#fff;
    color:var(--gray);
    border:1px solid var(--line-strong);
}

.autocomplete-box{
    position:absolute;
    top:75px;
    left:0;
    right:0;
    z-index:50;
    display:none;
    max-height:230px;
    overflow:auto;
    overscroll-behavior:contain;
    background:#fff;
    border:1px solid var(--line-strong);
    border-radius:14px;
    box-shadow:0 18px 36px rgba(76,79,84,.18);
}

.autocomplete-box.open{
    display:block;
}

.autocomplete-item{
    padding:11px 13px;
    border-bottom:1px solid #f0f2f4;
    font-size:14px;
    cursor:pointer;
}

.autocomplete-item:hover,.autocomplete-item.active{
    background:var(--orange-soft);
    color:var(--orange-dark);
}

.active-filters{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-bottom:18px;
}

.filter-chip{
    display:inline-flex;
    gap:8px;
    align-items:center;
    min-height:38px;
    padding:8px 13px;
    border-radius:999px;
    border:1px solid var(--line-strong);
    background:#fff;
    color:var(--gray);
    font-size:13px;
    font-weight:700;
}

.filter-chip.orange{
    background:var(--orange-soft);
    border-color:#ffd0b1;
    color:var(--orange-dark);
}

.filter-chip.blue{
    background:var(--blue-soft);
    border-color:#bfdbfe;
    color:var(--blue);
}
.filter-chip-link{text-decoration:none;}

.dashboard-grid{
    display:grid;
    grid-template-columns:1.15fr 1fr 1fr;
    gap:14px;
    margin-bottom:18px;
}

.panel{
    padding:18px;
    background:linear-gradient(180deg,#ffffff 0%,#f8f9fa 100%);
}

.ranking-panel{
    display:flex;
    flex-direction:column;
}

.ranking-panel .panel-search{
    flex:0 0 auto;
}

.ranking-panel .bars{
    flex:1 1 auto;
}

.panel-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}

.panel-title{
    color:var(--gray);
    font-size:18px;
    font-weight:900;
}

.panel-sub{
    color:var(--muted);
    font-size:13px;
    line-height:1.45;
    margin-top:5px;
}

.panel-tags{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.ranking-panel-controls{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:8px;
}

.ranking-sign-toggle{
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:30px;
    padding:3px;
    border:1px solid #d9dde2;
    border-radius:999px;
    background:#fff;
    box-shadow:0 7px 16px rgba(76,79,84,.06);
}

.ranking-sign-btn{
    min-width:28px;
    min-height:24px;
    padding:3px 9px;
    border:1px solid transparent;
    border-radius:999px;
    background:transparent;
    color:var(--gray-dark);
    font-size:14px;
    line-height:1;
    font-weight:1000;
    cursor:pointer;
    transition:background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);
}

.ranking-sign-btn:hover{
    background:#f3f4f6;
    border-color:#d9dde2;
}

.ranking-sign-btn.active{
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    color:#fff;
    border-color:#404247;
    box-shadow:0 6px 14px rgba(64,66,71,.14);
}

.ranking-sign-toggle.disabled{
    opacity:.42;
    pointer-events:none;
}

.indicator-head-controls{
    display:flex;
    align-items:flex-start;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}

.indicator-mode-switch{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:32px;
    padding:4px 7px;
    border:1px solid #d9dde2;
    border-radius:999px;
    background:#fff;
    box-shadow:0 8px 18px rgba(76,79,84,.06);
}

.indicator-mode-text{
    color:var(--gray-dark);
    font-size:10px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
    white-space:nowrap;
}

.indicator-toggle{
    position:relative;
    display:inline-block;
    width:46px;
    height:24px;
    flex:0 0 auto;
}

.indicator-toggle input{
    opacity:0;
    width:0;
    height:0;
}

.indicator-toggle-track{
    position:absolute;
    cursor:pointer;
    inset:0;
    background:#d1d5db;
    border:1px solid #b9bec6;
    border-radius:999px;
    transition:background .2s var(--ease), border-color .2s var(--ease);
}

.indicator-toggle-track::before{
    content:"";
    position:absolute;
    width:18px;
    height:18px;
    left:2px;
    top:2px;
    background:#fff;
    border-radius:50%;
    box-shadow:0 2px 6px rgba(0,0,0,.18);
    transition:transform .2s var(--ease);
    will-change:transform;
}

.indicator-toggle input:checked + .indicator-toggle-track{
    background:linear-gradient(180deg,#ff8f47 0%,var(--orange) 100%);
    border-color:var(--orange);
}

.indicator-toggle input:checked + .indicator-toggle-track::before{
    transform:translateX(22px);
}

.indicator-mode-switch{
    gap:4px;
    padding:4px;
}

.indicator-mode-button{
    
    text-decoration:none;
    min-height:28px;
    padding:6px 10px;
    border:1px solid transparent;
    border-radius:999px;
    background:transparent;
    color:var(--gray-dark);
    font-size:10px;
    font-weight:1000;
    letter-spacing:.04em;
    text-transform:uppercase;
    white-space:nowrap;
    cursor:pointer;
    transition:background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);
}

.indicator-mode-button:hover{
    background:#f3f4f6;
    border-color:#d9dde2;
}

.indicator-mode-button.active{
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    color:#fff;
    border-color:#404247;
    box-shadow:0 7px 16px rgba(64,66,71,.14);
}

.tag{
    padding:5px 9px;
    border-radius:999px;
    border:1px solid var(--line-strong);
    font-size:10px;
    font-weight:600;
    background:#fff;
    color:var(--gray);
}

.tag.orange{
    background:var(--orange-soft);
    color:var(--orange-dark);
    border-color:#ffd0b1;
}

.general-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-items:stretch;
}

.general-visual{
    width:100%;
    border:1px solid #eceff2;
    border-radius:20px;
    padding:14px 16px;
    background:linear-gradient(135deg,#fff8f3 0%,#ffffff 58%,#f7f8fa 100%);
    display:grid;
    grid-template-columns:180px minmax(0,1fr);
    gap:16px;
    align-items:center;
    position:relative;
    overflow:hidden;
}

.general-visual::before{
    content:"";
    position:absolute;
    width:170px;
    height:170px;
    border-radius:50%;
    right:-70px;
    top:-80px;
    background:rgba(255,100,0,.07);
    pointer-events:none;
}

.general-note{
    position:relative;
    z-index:1;
    width:100%;
    border-radius:18px;
    padding:16px 18px;
    background:rgba(255,255,255,.82);
    border:1px solid #f1e3d8;
    text-align:center;
}

.general-note-label{
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.07em;
}

.general-note-value{
    margin-top:4px;
    color:var(--gray-dark);
    font-size:30px;
    line-height:1;
    font-weight:900;
    letter-spacing:-.03em;
}

.single-donut-wrap{
    display:block;
}

.dual-donut-grid{
    display:none;
    grid-column:1 / -1;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    align-items:stretch;
    position:relative;
    z-index:1;
}

.dual-donut-card{
    border:1px solid #eceff2;
    border-radius:18px;
    padding:12px;
    background:rgba(255,255,255,.88);
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:176px;
}

.general-visual.pedido-dual{
    grid-template-columns:1fr;
}

.general-visual.pedido-dual::before{
    display:none;
}

.metric-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    align-items:stretch;
    padding:10px;
    border:1px dashed #d7dce3;
    border-radius:22px;
    background:linear-gradient(180deg,#ffffff 0%,#f8f9fa 100%);
}

.metric-column{
    border:1px solid #eceff2;
    border-radius:18px;
    padding:12px;
    background:#fff;
    display:flex;
    flex-direction:column;
    gap:10px;
    min-height:100%;
}

.metric-column.value-column{
    background:linear-gradient(180deg,#fff8f3 0%,#ffffff 100%);
    border-color:#f4d7c2;
}

.metric-column.qty-column{
    background:linear-gradient(180deg,#f9fafb 0%,#ffffff 100%);
    border-color:#e6e8eb;
}

.metric-column-head{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding-bottom:8px;
    border-bottom:1px solid #eceff2;
}

.metric-column-title{
    font-size:16px;
    font-weight:900;
    color:var(--gray-dark);
}

.metric-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:54px;
    min-height:26px;
    border-radius:999px;
    font-size:10px;
    font-weight:900;
    padding:0 9px;
    border:1px solid #e2e5e9;
    background:#fff;
    color:var(--gray);
}

.kpi-stack{
    display:grid;
    gap:8px;
}

.kpi-card{
    position:relative;
    overflow:hidden;
    border:1px solid #e7eaee;
    border-radius:15px;
    padding:11px 12px 13px;
    background:#fff;
    text-align:center;
    transition:transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease), border-color .18s var(--ease);
    min-height:72px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.kpi-card::after{
    content:"";
    position:absolute;
    inset:auto auto 0 0;
    width:100%;
    height:3px;
    background:#eceff2;
}

.kpi-card.orange::after{
    background:linear-gradient(90deg,#ffc29c 0%,#ff6400 100%);
}

.kpi-card.red::after{
    background:linear-gradient(90deg,#ffc8c6 0%,#fa3b32 100%);
}

.kpi-card.gray::after{
    background:linear-gradient(90deg,#d9dde2 0%,#7b8088 100%);
}

.kpi-card.clickable{
    cursor:pointer;
}

.kpi-card.clickable:hover{
    transform:translateY(-1px);
    box-shadow:0 12px 24px rgba(76,79,84,.10);
}

.kpi-card.active{
    border-color:#ffcfb0;
    background:var(--orange-soft);
}

.kpi-label{
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    margin-bottom:5px;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.kpi-value{
    color:var(--gray-dark);
    font-size:20px;
    line-height:1.12;
    font-weight:900;
    letter-spacing:-.02em;
}

.money{
    color:var(--orange-dark);
}

.quantity{
    color:var(--gray-dark);
}

.donut{
    width:150px;
    height:150px;
    border-radius:50%;
    display:grid;
    place-items:center;
    position:relative;
    margin:auto;
    z-index:1;
}

.donut::after{
    content:"";
    position:absolute;
    inset:23px;
    background:#fff;
    border-radius:50%;
    box-shadow:inset 0 0 0 1px var(--line);
}

.donut-inner{
    position:relative;
    z-index:1;
    text-align:center;
    padding:0 12px;
}

.donut-inner strong{
    display:block;
    font-size:28px;
    font-weight:900;
    color:var(--gray-dark);
}

.donut-inner span{
    display:block;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    line-height:1.3;
}

.panel-search{
    position:relative;
    margin:-2px 0 12px 0;
}

.ranking-search-form{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:7px;
}

.ranking-search-input{
    width:100%;
    height:36px;
    border:1px solid var(--line-strong);
    border-radius:12px;
    background:#fff;
    padding:0 11px;
    font-size:12px;
    color:var(--text);
    outline:none;
}

.ranking-search-input:focus{
    border-color:rgba(255,100,0,.35);
    box-shadow:0 0 0 4px rgba(255,100,0,.08);
}

.ranking-search-btn,
.ranking-clear-btn{
    height:36px;
    border-radius:12px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
    white-space:nowrap;
}

.ranking-search-btn{
    border:none;
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
}

.ranking-search-btn:disabled{
    opacity:.42;
    cursor:not-allowed;
    background:#d1d5db;
    color:#fff;
    box-shadow:none;
}

.ranking-clear-btn{
    border:1px solid var(--line-strong);
    background:#fff;
    color:var(--gray-dark);
}

.ranking-clear-btn:hover{
    background:var(--gray-soft);
}

.panel-search .autocomplete-box{
    top:42px;
}

.ranking-panel-search{
    margin:0 0 12px 0;
    padding:9px;
    border:1px solid #e5e8ec;
    border-radius:12px;
    background:linear-gradient(180deg,#fafbfc 0%,#ffffff 100%);
}
.ranking-panel-search .ranking-autocomplete{position:relative;min-width:0;}
.ranking-panel-search .ranking-search-input{text-transform:uppercase;font-weight:800;}
.ranking-panel-search .ranking-search-input::placeholder{color:#9aa0a8;font-size:10px;font-weight:800;}
.ranking-panel-search .ranking-search-suggestions{z-index:4200;max-height:230px;overflow-y:auto;}
.ontime-ranking-card .ranking-panel-search .ranking-search-input:focus{
    border-color:rgba(37,99,235,.38);box-shadow:0 0 0 4px rgba(37,99,235,.08);
}
@media (max-width:700px){
    .ranking-panel-search{grid-template-columns:1fr 1fr;}
    .ranking-panel-search .ranking-autocomplete{grid-column:1/-1;}
    .ranking-panel-search .ranking-search-btn,.ranking-panel-search .ranking-clear-btn{width:100%;}
}
.sandy-clear-fab{
    position:fixed;right:20px;bottom:20px;z-index:3950;display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;border:1px solid #d5d8dc;border-radius:50%;background:#fff;color:#6b7280 !important;
    text-decoration:none !important;box-shadow:0 4px 12px rgba(64,66,71,.16);
    transition:transform .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,background .15s ease;
}
.sandy-clear-fab:hover{transform:translateY(-2px);border-color:#ff8a3c;background:#fff4ed;color:#d95700 !important;box-shadow:0 7px 18px rgba(240,99,0,.22);}
.sandy-clear-fab:focus-visible{outline:none;border-color:#ff8a3c;box-shadow:0 0 0 3px rgba(240,99,0,.20),0 7px 18px rgba(240,99,0,.22);}
@media (max-width:768px){.sandy-clear-fab{right:14px;bottom:14px;width:38px;height:38px;}}

.bars{
    display:grid;
    grid-template-rows:repeat(10,minmax(24px,1fr));
    gap:6px;
    min-height:310px;
    max-height:none;
    overflow:visible;
    padding-right:0;
    align-content:stretch;
}

.bar-row{
    display:grid;
    grid-template-columns:minmax(145px,1.15fr) 1.15fr 88px;
    gap:7px;
    align-items:center;
    padding:6px 6px;
    min-height:28px;
    border-radius:11px;
    border:1px solid transparent;
    cursor:pointer;
    transition:background .15s var(--ease), border-color .15s var(--ease);
}

.bar-row:hover,.bar-row.active{
    background:var(--orange-soft);
    border-color:#ffd0b1;
}

.bar-name{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:10.2px;
    font-weight:600;
    line-height:1.15;
    color:var(--gray-dark);
}

.bar-track{
    height:7px;
    background:#eceff2;
    border-radius:999px;
    overflow:hidden;
}

.bar-fill{
    height:100%;
    border-radius:999px;
}

.bar-fill.good{
    background:linear-gradient(90deg,#ffc29c 0%,#ff6400 100%);
}

.bar-fill.warn{
    background:linear-gradient(90deg,#ffd5bd 0%,#ff8a46 100%);
}

.bar-fill.bad{
    background:linear-gradient(90deg,#ffc8c6 0%,#fa3b32 100%);
}

.bar-value{
    text-align:right;
    font-size:10.2px;
    font-weight:700;
    line-height:1.15;
    color:var(--gray-dark);
}

.bar-sub{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
}

.panel-summary{
    margin-top:9px;
    padding:8px 10px;
    border-radius:14px;
    border:1px solid #e5e7eb;
    background:linear-gradient(180deg,#ffffff 0%,#f6f7f8 100%);
    color:var(--gray-dark);
}

.summary-top{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-width:0;
    white-space:nowrap;
}

.summary-top-label{
    flex:0 0 auto;
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.summary-top-name{
    color:var(--gray-dark);
    font-size:11px;
    font-weight:700;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    min-width:0;
}

.summary-top-value{
    flex:0 0 auto;
    color:var(--orange-dark);
    font-size:12px;
    font-weight:900;
    letter-spacing:-.01em;
}

.card{
    padding:18px;
    margin-bottom:18px;
}

.table-header{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    margin-bottom:12px;
    text-align:center;
}

.badge-group{
    display:flex;
    gap:8px;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
}

.badge{
    display:inline-flex;
    gap:6px;
    align-items:center;
    border-radius:999px;
    padding:8px 12px;
    background:var(--orange-soft);
    color:var(--orange-dark);
    border:1px solid #fdba74;
    font-size:13px;
    font-weight:800;
}

.badge.gray{
    background:#fff;
    color:var(--gray-dark);
    border-color:#d9dde2;
}

.table-header-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    justify-content:center;
}

.table-match-form{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
    margin:0;
}

.table-match-toggle{
    min-height:38px;
    padding:6px 12px 6px 8px;
    border-radius:999px;
    border:1px solid #d9dde2;
    background:#fff;
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:var(--gray-dark);
    font-size:11px;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
    white-space:nowrap;
    cursor:pointer;
    transition:background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);
}

.table-match-toggle:hover{
    border-color:#ffd0b1;
    background:var(--orange-soft);
    color:var(--orange-dark);
    box-shadow:0 8px 18px rgba(255,100,0,.10);
}

.table-match-toggle .switch{
    width:46px;
    height:26px;
}

.table-match-toggle .slider:before{
    height:18px;
    width:18px;
}

.table-match-toggle .switch input:checked + .slider:before{
    transform:translateX(20px);
}

.table-count-badge{
    min-height:38px;
    padding:8px 13px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    background:#fff;
    color:var(--gray-dark);
    border:1px solid #d9dde2;
    font-size:13px;
    font-weight:900;
    white-space:nowrap;
}

.table-count-badge .count-main{
    color:var(--orange-dark);
    font-weight:1000;
}

.table-count-badge .count-separator,
.table-count-badge .count-total{
    color:var(--gray-dark);
    font-weight:800;
}

.table-sort-actions{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.table-sort-btn{
    min-height:38px;
    padding:8px 13px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    border:1px solid #d9dde2;
    background:#fff;
    color:var(--gray-dark);
    text-decoration:none;
    font-size:12px;
    font-weight:900;
    letter-spacing:.02em;
    white-space:nowrap;
    transition:transform .16s var(--ease), background .16s var(--ease), color .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);
}

.table-sort-btn:hover{
    transform:translateY(-1px);
    border-color:#ffd0b1;
    background:var(--orange-soft);
    color:var(--orange-dark);
    box-shadow:0 8px 18px rgba(255,100,0,.12);
}

.table-sort-btn.active{
    border-color:var(--orange);
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
    box-shadow:0 10px 22px rgba(255,100,0,.18);
}

.table-wrap{
    width:100%;
    overflow:auto;
    overscroll-behavior-x:contain;
    
    content-visibility:auto;
    contain-intrinsic-size:auto 900px;
}

table{
    width:100%;
    min-width:1200px;
    border-collapse:collapse;
}

th,td{
    padding:9px 10px;
    border:1px solid rgba(0,0,0,.16);
    white-space:nowrap;
    font-size:13px;
}

th{
    position:sticky;
    top:0;
    z-index:2;
    background:#f3f4f6;
}

tr:nth-child(even){
    background:rgba(0,0,0,.025);
}

tr:hover{
    background:rgba(255,100,0,.07);
}

.concat-pedidos{
    background:var(--blue-soft);
    color:var(--blue);
    font-weight:900;
}

.match-si,.fecha-factura-ok,.on-time-ok,.fillrate-ok{
    background:var(--green-soft);
    color:#166534;
    font-weight:900;
    text-align:center;
}

.match-no,.fecha-factura-no,.on-time-no{
    background:#fee2e2;
    color:#991b1b;
    font-weight:900;
    text-align:center;
}

.total-pedido-cell{
    background:#e0f2fe;
    color:#075985;
    font-weight:900;
    text-align:right;
}

.total-facturado-cell{
    background:#ffedd5;
    color:#9a3412;
    font-weight:900;
    text-align:right;
}

.pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    margin-top:14px;
    text-align:center;
}

.page-info{
    color:var(--gray);
    font-size:13px;
    font-weight:800;
}

.page-buttons{
    display:flex;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.page-btn{
    min-width:42px;
    height:38px;
    border-radius:12px;
    border:1px solid var(--line-strong);
    background:#fff;
    color:var(--gray);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    text-decoration:none;
    font-size:13px;
    font-weight:900;
    transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease);
}

.page-btn:hover{
    border-color:#ffd0b1;
    background:var(--orange-soft);
    color:var(--orange-dark);
    box-shadow:0 8px 18px rgba(255,100,0,.10);
}

.page-btn.active{
    background:var(--orange);
    color:#fff;
    border-color:var(--orange);
}

.page-btn.disabled{
    opacity:.45;
    pointer-events:none;
}

.error{
    background:#fee2e2;
    color:#991b1b;
    border:1px solid #fecaca;
    padding:12px;
    border-radius:12px;
    font-weight:800;
    margin-bottom:12px;
}

.empty{
    text-align:center;
    padding:22px;
    color:#6b7280;
    font-weight:800;
}

.muted{
    color:var(--muted);
}

@media (max-width:1450px){
    .filter-grid{
        grid-template-columns:minmax(170px,.75fr) 90px 90px minmax(170px,1fr) minmax(170px,1fr) auto auto;
    }

    .vendor-actions{
        width:100%;
        justify-content:flex-start;
    }
}

@media (max-width:780px){
    .dual-donut-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:1180px){
    .filter-grid{
        grid-template-columns:1fr 1fr 1fr;
    }
}

@media (max-width:1280px){
    .dashboard-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:900px){
    body{
        padding:16px;
    }

    .filter-grid{
        grid-template-columns:1fr;
    }

    .panel-head{
        flex-direction:column;
    }

    .donut-wrap{
        grid-template-columns:1fr;
    }

    .summary-head{
        flex-direction:column;
    }
}

@media (max-width:900px){
    .general-visual{
        grid-template-columns:1fr;
        text-align:center;
    }

    .general-note{
        text-align:center;
    }

    .metric-columns{
        grid-template-columns:1fr;
    }
}

.indicador-doble{
    display:grid;

    grid-template-columns:minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(300px, 1fr);
    gap:14px;
    align-items:stretch;
}

.indicador-doble .indicador-bloque{
    
    gap:10px;
    padding:14px 14px;
    grid-template-columns:165px minmax(0, 1fr);
}

.indicador-doble .fillrate-donut{
    display:flex;
    align-items:center;
    justify-content:center;
}

.indicador-doble .fillrate-donut svg{
    width:165px;
    height:165px;
}

.bloque-ontime{
    background:linear-gradient(135deg,#f7f8fa 0%,#ffffff 58%,#f4f5f7 100%);
}

.indicador-doble .bloque-ontime{
    grid-template-columns:165px minmax(0, 1fr) !important;
}

.bloque-ontime .fillrate-metric-symbol{
    background:var(--gray-soft);
    color:var(--gray-dark);
    border-color:#dfe1e5;
}

.ontime-donut-stack{
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
}

.ontime-toolbar-strip{
    
    display:grid;
    grid-template-columns:minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(300px, 1fr);
    gap:14px;
    align-items:center;
    margin:0 0 14px;
    
    padding:12px 0;
    border:1px solid #d8eadd;
    border-radius:18px;
    background:linear-gradient(180deg,#f7fcf8 0%,#ffffff 100%);
    box-shadow:0 10px 24px rgba(31,41,55,.05);
}

.ontime-toolbar-form{
    grid-column:2;
    justify-self:start;
    transform:translateX(calc(96.5px - 50%));
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}
.ontime-vars-inline-form{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    
    flex:0 1 auto;
    min-width:0;
    flex-wrap:wrap;
}
.ontime-vars-inline-grid{
    flex:0 1 auto;
    display:flex;
    align-items:end;
    gap:10px;
    min-width:0;
    flex-wrap:wrap;
}
.ontime-mini-field{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}
.ontime-mini-field span{
    color:#6b7280;
    font-size:10px;
    font-weight:1000;
    letter-spacing:.08em;
    white-space:nowrap;
}
.ontime-mini-field .input{
    width:84px;
    min-width:0;
    height:36px;
    border:1px solid #dde3ea;
    border-radius:11px;
    background:#fff;
    color:#111827;
    text-align:center;
    font-size:18px;
    font-weight:900;
    font-variant-numeric:tabular-nums;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
.ontime-mini-field .input:focus{
    border-color:#8fb0d0;
    box-shadow:0 0 0 4px rgba(70,120,168,.10);
}
.ontime-vars-inline-actions{
    display:flex;
    align-items:center;
    gap:8px;
    margin-left:auto;
    flex:0 0 auto;
}
.ontime-inline-apply{
    min-width:100px;
    height:36px;
    border:1px solid #d7dfe7;
    border-radius:11px;
    background:linear-gradient(180deg,#f6f8fb 0%,#edf2f7 100%);
    color:#334155;
    font-size:11px;
    font-weight:1000;
    letter-spacing:.05em;
    cursor:pointer;
}
.ontime-inline-apply:hover{
    background:linear-gradient(180deg,#eef3f8 0%,#e5ebf2 100%);
    border-color:#c4cdd8;
}
.ontime-control-reset{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:0 12px;
    border:1px solid #d9e0e7;
    border-radius:11px;
    background:#f5f7fa;
    color:#5c6774;
    font-size:10px;
    font-weight:900;
    text-decoration:none;
    letter-spacing:.04em;
}
.ontime-control-reset:hover{
    background:#eef2f6;
    border-color:#c9d2dc;
    color:#374151;
}
@media (max-width:1180px){
    .ontime-toolbar-form{
        flex-direction:column;
        align-items:stretch;
    }
    .ontime-vars-inline-form{
        min-width:0;
    }
}
@media (max-width:760px){
    .ontime-toolbar-strip{
        padding:10px 12px;
    }
    .ontime-vars-inline-form,
    .ontime-vars-inline-grid{
        flex-direction:column;
        align-items:stretch;
    }
    .ontime-mini-field{
        justify-content:space-between;
    }
    .ontime-mini-field .input{
        width:100%;
        max-width:120px;
    }
    .ontime-vars-inline-actions{
        width:100%;
        margin-left:0;
        justify-content:stretch;
    }
    .ontime-inline-apply, .ontime-control-reset{
        flex:1 1 0;
    }
}

.bloque-ontime .fillrate-metric-col.col-dólares{
    background:linear-gradient(180deg,#f7f8fa 0%,#ffffff 100%);
    border-color:#e2e5e9;
}

.bloque-motivos{
    grid-template-columns:170px minmax(0, 1fr) !important;
    gap:10px !important;
    background:linear-gradient(135deg,#fffaf6 0%,#ffffff 58%,#f7f8fa 100%);
}

.motivo-donut-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
}

.motivo-donut-chart{
    width:158px;
    height:158px;
    border-radius:50%;
    display:grid;
    place-items:center;
    position:relative;
    background:conic-gradient(#d1d5db 0deg 360deg);
    box-shadow:inset 0 0 0 1px rgba(76,79,84,.04);
}
.motivo-donut-chart.is-no-data{
    background:conic-gradient(#e5e7eb 0deg 360deg) !important;
}
.motivo-donut-chart.is-no-data .motivo-donut-inner strong{
    font-size:15px;
    letter-spacing:.035em;
    color:#7b8490;
}
.motivo-donut-chart.is-valid .motivo-donut-inner strong{color:#343a42;}

.motivo-donut-chart::after{
    content:"";
    position:absolute;
    inset:22px;
    border-radius:50%;
    background:#fff;
    box-shadow:inset 0 0 0 1px var(--line);
}

.motivo-donut-inner{
    position:relative;
    z-index:4;
    text-align:center;
    padding:0 10px;
}

.motivo-donut-inner strong{
    display:block;
    color:var(--gray-dark);
    font-size:24px;
    line-height:1;
    font-weight:1000;
}

.motivo-donut-inner span{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:8px;
    line-height:1.2;
    font-weight:1000;
    letter-spacing:.08em;
}

.motivo-legend-panel{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:9px;
}

.bloque-motivos{
    align-items:stretch !important;
}
.bloque-motivos .motivo-legend-panel{
    justify-content:flex-start;
}
.bloque-motivos .motivo-legend{
    flex:1 1 auto;
    
    max-height:none;
    
    align-content:space-evenly;
}

.motivo-legend-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:8px;
    padding-bottom:7px;
    border-bottom:1px solid #eceff2;
}

.motivo-legend-head strong{
    color:var(--gray-dark);
    font-size:12px;
    font-weight:1000;
    letter-spacing:.08em;
}

.motivo-legend-head small{
    color:var(--muted);
    font-size:8.5px;
    font-weight:800;
    text-align:right;
}

.motivo-legend{
    display:grid;
    gap:6px;
    min-width:0;
    max-height:154px;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:3px;
    scrollbar-width:thin;
    scrollbar-color:#cfd4da transparent;
}
.motivo-legend::-webkit-scrollbar{width:6px;}
.motivo-legend::-webkit-scrollbar-thumb{background:#cfd4da;border-radius:999px;}

.motivo-legend-row{
    display:grid;
    
    grid-template-columns:18px minmax(0, 1fr) 50px 16px;
    align-items:center;
    gap:7px;
    min-width:0;
    min-height:29px;
    padding:4px 7px;
    border:1px solid #edf0f3;
    border-radius:9px;
    background:#fff;
}

.motivo-legend-dot{
    width:12px;
    height:12px;
    padding:0;
    border:none;
    border-radius:50%;
    cursor:pointer;
    transition:box-shadow .15s ease, transform .15s ease;
}
.motivo-legend-dot:hover{transform:scale(1.15);}
.motivo-legend-dot:focus-visible{
    outline:none;
    box-shadow:0 0 0 2px #fff, 0 0 0 4px rgba(241,100,0,.45);
}

.motivo-legend-dot.is-on{
    box-shadow:0 0 0 2px #fff, 0 0 0 4px #f16400;
}
.motivo-legend-row.is-on{
    border-color:#f6c9a6;
    background:#fff8f3;
}

.motivo-legend-row.is-entregada .motivo-legend-label{
    color:#9aa1aa;
    text-decoration:line-through;
}

.motivo-legend-label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--gray-dark);
    font-size:9px;
    font-weight:900;
}
.motivo-legend-count{
    color:#9aa1aa;
    font-size:8px;
    font-weight:800;
    margin-left:3px;
}

.motivo-legend-value{
    color:#303944;
    font-size:10px;
    font-weight:1000;
    white-space:nowrap;
    text-align:right;
    font-variant-numeric:tabular-nums;
}

.ranking-nota-item{
    margin:3px 0 0;
    max-width:230px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#c25200;
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.05em;
}

.motivo-legend-extra{
    width:12px;
    height:12px;
    padding:0;
    border:1.5px solid #c8ced6;
    border-radius:50%;
    background:#fff;
    cursor:pointer;
    justify-self:end;
    transition:border-color .15s ease, transform .15s ease;
}
.motivo-legend-extra:hover{
    border-color:#f16400;
    transform:scale(1.15);
}
.motivo-legend-extra:focus-visible{
    outline:none;
    box-shadow:0 0 0 2px #fff, 0 0 0 4px rgba(241,100,0,.45);
}

.motivo-legend-extra.is-off{
    position:relative;
    border-color:#8b9099;
    background:#8b9099;
}
.motivo-legend-extra.is-off::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(to bottom right, transparent 44%, #fff 44%, #fff 56%, transparent 56%),
        linear-gradient(to bottom left,  transparent 44%, #fff 44%, #fff 56%, transparent 56%);
    border-radius:50%;
}

.motivo-legend-row.is-fuera{
    border-style:dashed;
    border-color:#d8dde3;
    background:#fafbfc;
}
.motivo-legend-row.is-fuera .motivo-legend-label{
    color:#9aa1aa;
    text-decoration:line-through;
}
.motivo-legend-row.is-fuera .motivo-legend-dot{
    opacity:.35;
    cursor:default;
}
.motivo-legend-row.is-fuera .motivo-legend-value{
    color:#9aa1aa;
    font-size:8px;
    letter-spacing:.05em;
}

.motivo-legend-fuera{
    color:#9c2f28 !important;
    font-weight:1000 !important;
    letter-spacing:.03em;
}
.motivo-legend-fuera a{
    color:#c25200;
    text-decoration:none;
    border-bottom:1px solid rgba(194,82,0,.4);
}
.motivo-legend-fuera a:hover{color:#f16400;}

.motivo-legend-empty{
    color:var(--muted);
    font-size:9px;
    line-height:1.35;
    font-weight:800;
}

@media (max-width:1450px){
    
    .indicador-doble .bloque-motivos{
        grid-template-columns:1fr !important;
    }

    .motivo-donut-chart{
        width:142px;
        height:142px;
    }

    .motivo-legend{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        column-gap:8px;
    }
}

@media (max-width:1100px){
    .indicador-doble{
        grid-template-columns:1fr;
    }

    .indicador-doble .indicador-bloque{
        grid-template-columns:190px minmax(0, 1fr);
    }

    .indicador-doble .bloque-motivos{
        grid-template-columns:180px minmax(0, 1fr) !important;
    }

    .motivo-legend{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
}

@media (max-width:700px){
    .indicador-doble .indicador-bloque,
    .indicador-doble .bloque-motivos{
        grid-template-columns:1fr !important;
    }

    .motivo-legend{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

.dashboard-grid.sandy-dashboard{

    grid-template-columns:minmax(0, .84fr) minmax(0, .84fr) minmax(0, 1.32fr);
    gap:10px;
    
    align-items:stretch;
    
    margin-top:16px;
}

.dashboard-grid.sandy-dashboard > .sandy-ranking-motivo{
    grid-column:auto;
}

.sandy-ranking-card{
    min-width:0;
    
    padding:14px 10px;
}

.sandy-ranking-head{
    align-items:flex-start;
}

.sandy-ranking-column-head{
    display:grid;
    grid-template-columns:28px minmax(0, 1fr) 78px 78px 48px;
    gap:3px;
    align-items:center;
    margin-bottom:6px;
    padding:6px 6px;
    
    border-left:1px solid transparent;
    border-right:1px solid transparent;
    border-bottom:1px solid var(--line);
    color:var(--muted);
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.sandy-ranking-column-head .ranking-col-value{
    text-align:right;
}

.sandy-ranking-column-head .ranking-col-active{
    color:var(--orange-dark);
}

.sandy-bars{
    display:flex !important;
    flex-direction:column;
    
    gap:7px;
    min-height:auto !important;
    max-height:none;
}

.sandy-ranking-scroll .sandy-bars{
    
    max-height:568px;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:5px;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:#cfd2d6 transparent;
}
.sandy-ranking-scroll .sandy-bars::-webkit-scrollbar{width:8px;}
.sandy-ranking-scroll .sandy-bars::-webkit-scrollbar-track{
    background:#f4f5f6;
    border-radius:999px;
}
.sandy-ranking-scroll .sandy-bars::-webkit-scrollbar-thumb{
    background:#cfd2d6;
    border-radius:999px;
}
.sandy-ranking-scroll .sandy-bars::-webkit-scrollbar-thumb:hover{background:#b3b7bc;}

.sandy-ranking-row{
    display:grid;
    grid-template-columns:28px minmax(0, 1fr) 78px 78px 48px;
    gap:3px;
    align-items:center;
    
    padding:7px;
    min-height:64px;
    border-radius:12px;
    border:1px solid #eceef1;
    background:#fff;
    text-decoration:none;
    color:inherit;
    transition:background .15s var(--ease), border-color .15s var(--ease);
}

.sandy-ranking-row:hover{
    background:var(--orange-soft);
    border-color:#ffd0b1;
}

.sandy-ranking-row .bar-name{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    white-space:normal;
    text-overflow:clip;
    font-size:11px;
    font-weight:900;
    line-height:1.25;
    text-transform:uppercase;
}

.sandy-ranking-row .ranking-position{
    width:27px;
    min-width:27px;
    height:27px;
    border-radius:9px;
    background:#fff3e8;
    color:#c25200;
    font-size:10px;
}

.sandy-ranking-row .ranking-position-top{
    background:linear-gradient(180deg,#ff8f47 0%,var(--orange) 100%);
    color:#fff;
}

.sandy-ranking-row .bar-track{
    height:5px;
    background:#eceef1;
}
.sandy-ranking-row .bar-fill{
    background:linear-gradient(90deg,#ff9a4d 0%,#f16400 100%);
}

.dashboard-grid.sandy-dashboard .sandy-ranking-head{
    min-height:38px;
}
.dashboard-grid.sandy-dashboard .sandy-ranking-column-head{
    min-height:31px;
    align-items:end;
}

.sandy-ranking-card.sandy-ranking-primary .sandy-ranking-column-head,
.sandy-ranking-card.sandy-ranking-primary .sandy-ranking-row,
.sandy-ranking-card.sandy-ranking-client .sandy-ranking-column-head,
.sandy-ranking-card.sandy-ranking-client .sandy-ranking-row,
.sandy-ranking-card.sandy-ranking-provider:not(.ontime-ranking-card) .sandy-ranking-column-head,
.sandy-ranking-card.sandy-ranking-provider:not(.ontime-ranking-card) .sandy-ranking-row{
    
    grid-template-columns:28px minmax(0,1fr) 68px 68px 42px;
    gap:2px;
}

.sandy-ranking-group{
    position:relative;
    isolation:isolate;
    background:linear-gradient(180deg,#f7f8fa 0%,#ffffff 100%);
    border-color:#d8dce2;
}
.sandy-ranking-group:hover{
    background:linear-gradient(180deg,#fff8f3 0%,#ffffff 100%);
    border-color:#f1b58f;
}
.ranking-group-cover{
    position:absolute;
    inset:0;
    z-index:1;
    border-radius:inherit;
    text-decoration:none;
    color:inherit;
}
.sandy-ranking-group > .ranking-main,
.sandy-ranking-group > .ranking-value{
    position:relative;
    z-index:2;
    pointer-events:none;
}
.sandy-group-toggle{
    position:relative;
    z-index:4;
    width:21px;
    height:21px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    justify-self:center;
    padding:0;
    border:1px solid #c8ccd3;
    border-radius:8px;
    background:#fff;
    color:#4e5157;
    font-family:inherit;
    font-size:14px;
    font-weight:1000;
    line-height:1;
    cursor:pointer;
    transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;
}
.sandy-group-toggle:hover{
    border-color:#f16400;
    background:#fff4ed;
    color:#c25200;
    transform:translateY(-1px);
}
.sandy-group-toggle.is-open{
    border-color:#f16400;
    background:linear-gradient(180deg,#ff9348 0%,#f16400 100%);
    color:#fff;
}
.sandy-group-toggle:focus-visible{
    outline:2px solid rgba(241,100,0,.32);
    outline-offset:2px;
}
.sandy-group-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:15px;
    margin-left:6px;
    padding:0 5px;
    border-radius:999px;
    background:#e7eaee;
    color:#5b5f66;
    font-size:8px;
    font-weight:1000;
    vertical-align:middle;
}
.sandy-group-children{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin:1px 0 2px 8px;
    padding-left:7px;
    border-left:2px solid #e3e6ea;
}
.sandy-group-children[hidden]{display:none !important;}
.sandy-group-children .sandy-ranking-row.is-child{
    min-height:31px;
    background:#fafbfc;
    border-color:#eef0f2;
}
.sandy-group-children .sandy-ranking-row.is-child:hover{
    background:#fff7f1;
    border-color:#f4cfb6;
}
.sandy-group-children .ranking-position{
    background:#f0f2f4;
    color:#727984;
}

.ranking-position{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    border-radius:999px;
    background:var(--gray-soft-2);
    color:var(--muted);
    font-size:9.5px;
    font-weight:1000;
    font-variant-numeric:tabular-nums;
}

.ranking-position-top{
    background:linear-gradient(180deg,#ff8f47 0%,var(--orange) 100%);
    color:#fff;
}

.ranking-main{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:4px;
}

.ranking-value{
    text-align:right;
    font-size:10.2px;
    font-weight:800;
    color:var(--gray-dark);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.ranking-value-order{
    color:var(--muted);
    font-weight:700;
}

.ranking-value-stock,
.ranking-col-stock{
    text-align:center !important;
    color:#59636f;
    font-weight:1000;
    font-variant-numeric:tabular-nums;
}
.ranking-value-stock.is-unavailable{
    color:#a1a8b0;
    font-weight:800;
}

.ranking-value-active{
    color:var(--orange-dark);
    font-weight:1000;
}

.ranking-value-fillrate{
    color:var(--gray-dark);
    font-weight:1000;
}

.sandy-empty{
    padding:14px 12px;
    border:1px dashed var(--line-strong);
    border-radius:12px;
    color:var(--muted);
    text-align:center;
    font-size:13px;
}

@media (max-width:1500px){
    .indicador-doble{
        grid-template-columns:1fr;
    }

    .indicador-doble .indicador-bloque{
        grid-template-columns:240px minmax(0, 1fr);
    }

    .dashboard-grid.sandy-dashboard{
        grid-template-columns:minmax(0,.91fr) minmax(0,.91fr) minmax(0,1.18fr);
    }
}

@media (max-width:1320px){
    .dashboard-grid.sandy-dashboard{
        grid-template-columns:minmax(0,.98fr) minmax(0,.98fr) minmax(0,1.04fr);
    }
}

@media (max-width:1180px){
    .dashboard-grid.sandy-dashboard{
        grid-template-columns:1fr;
    }
}

@media (max-width:820px){
    .indicador-doble .indicador-bloque{
        grid-template-columns:1fr;
    }

    .sandy-ranking-column-head,
    .sandy-ranking-row{
        grid-template-columns:28px minmax(0, 1fr) 64px 64px 44px;
    }
}

.dashboard-grid.sandy-dashboard.ontime-negative-dashboard{
    margin-top:14px;
}

.ontime-ranking-card{
    background:linear-gradient(180deg,#f7fbff 0%,#ffffff 100%);
    border-color:#cfe1f3;
    box-shadow:0 14px 34px rgba(54,105,157,.09);
}

.ontime-ranking-card .panel-title{
    color:#315f8f;
}

.ontime-ranking-tag{
    background:#eaf4ff !important;
    color:#356faa !important;
    border-color:#c8def3 !important;
}

.ontime-ranking-card .sandy-ranking-column-head{
    border-bottom-color:#d8e7f5;
}

.ontime-ranking-card .sandy-ranking-column-head .ranking-col-active,
.ontime-ranking-card .ranking-value-active,
.ontime-ranking-card .ranking-value-ontime,
.ontime-ranking-card .ranking-value-dentro-ontime{
    color:#3978b7;
}

.ontime-ranking-card .sandy-ranking-column-head,
.ontime-ranking-card .sandy-ranking-row{
    grid-template-columns:28px minmax(72px,1fr) 66px 66px 46px 60px;
    gap:3px;
}

.ontime-ranking-card.sandy-ranking-provider .sandy-ranking-column-head,
.ontime-ranking-card.sandy-ranking-provider .sandy-ranking-row{
    grid-template-columns:28px minmax(0,1fr) 58px 58px 40px 54px;
    gap:2px;
}

.ontime-ranking-card .ranking-col-dentro-ontime{
    color:#315f8f;
    line-height:1.05;
}

.ontime-ranking-card .sandy-ranking-column-head{
    font-size:7.8px;
    letter-spacing:.045em;
}

.ontime-ranking-card .ranking-value{
    font-size:9.5px;
}

@media (max-width:820px){
    .ontime-ranking-card .sandy-ranking-column-head,
    .ontime-ranking-card .sandy-ranking-row{
        grid-template-columns:28px minmax(60px,1fr) 58px 58px 44px 54px;
        gap:3px;
    }
    .ontime-ranking-card.sandy-ranking-product .sandy-ranking-column-head,
    .ontime-ranking-card.sandy-ranking-product .sandy-ranking-row{
        grid-template-columns:28px minmax(92px,1.35fr) 46px 58px 58px 44px 54px;
        gap:3px;
    }
}

.ontime-ranking-card .ranking-position-top{
    background:linear-gradient(180deg,#79afe0 0%,#4d89c2 100%);
    color:#fff;
}

.donut-hover-target{
    cursor:crosshair;
}
.donut-hover-tooltip{
    position:fixed;
    z-index:12000;
    pointer-events:none;
    min-width:116px;
    max-width:220px;
    padding:7px 10px;
    border-radius:9px;
    background:rgba(31,41,55,.96);
    color:#fff;
    font-size:12px;
    font-weight:800;
    line-height:1.25;
    text-align:center;
    box-shadow:0 7px 22px rgba(15,23,42,.18);
    opacity:0;
    transform:translateY(4px);
    transition:opacity .10s ease, transform .10s ease;
    white-space:nowrap;
}
.donut-hover-tooltip.is-visible{
    opacity:1;
    transform:translateY(0);
}

.ontime-ranking-card .sandy-ranking-row:hover{
    background:#eef6ff;
    border-color:#c7ddf2;
}

.ontime-ranking-card .bar-track{
    background:#e7eff7;
}

.ontime-ranking-card .bar-fill{
    background:linear-gradient(90deg,#b9d8f4 0%,#5d99d2 100%);
}

.ontime-ranking-card .sandy-bars::-webkit-scrollbar-thumb:hover{
    background:#79afe0;
}

.indicador-bloque .fillrate-metric-row{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:3px;
    padding:5px 2px;
}

.indicador-bloque .fillrate-metric-label{
    max-width:none;
    
    white-space:normal;
    line-height:1.25;
}

.indicador-bloque .pending-row .fillrate-metric-label{
    max-width:none;
}

.indicador-bloque .fillrate-metric-value{
    text-align:left;
    font-size:15px;
    letter-spacing:-.01em;
    font-variant-numeric:tabular-nums;
    
    overflow:hidden;
    text-overflow:ellipsis;
}

.indicador-bloque .fillrate-rank-button,
.indicador-bloque .pending-row{
    
    padding:6px 6px;
}

.indicador-bloque .fillrate-metric-head{
    flex-wrap:wrap;
    gap:6px;
}

.indicador-bloque .fillrate-metric-fillrate{
    margin:0;
    padding:4px 10px;
    font-size:14px;
    min-height:26px;
}

.indicador-bloque .fillrate-metric-col{
    
    padding:10px 9px 10px;
    min-width:0;
}

.sandy-date-banner{
    margin:2px 0 14px;
    padding:13px 20px;
    border:1px solid var(--orange-line);
    border-radius:16px;
    background:linear-gradient(180deg,#fff4ed 0%,#ffffff 100%);
    color:var(--gray-dark);
    font-size:17px;
    font-weight:900;
    text-align:center;
    letter-spacing:.01em;
    line-height:1.4;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    position:relative;
    z-index:1;
}

.sandy-date-center{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    justify-content:center;
}

.sandy-date-banner .sandy-date-side{
    color:var(--gray-dark);
}

.sandy-date-banner .sandy-date-sep{
    display:inline-flex;
    align-items:center;
    padding:4px 14px;
    border-radius:999px;
    background:linear-gradient(180deg,#ff8f47 0%,var(--orange) 100%);
    color:#fff;
    font-size:12px;
    font-weight:1000;
    letter-spacing:.16em;
    text-transform:uppercase;
    box-shadow:0 6px 14px rgba(255,100,0,.20);
}

.sandy-vista-card{
    margin:0 0 14px;
    padding:0;
    overflow:hidden;
}
.sandy-vista-head{
    padding:14px 18px 10px;
}

.sandy-vista-chip{
    display:inline-flex;
    align-items:center;
    gap:9px;
    height:32px;
    padding:0 6px 0 14px;
    border:1px solid #f2ddcc;
    border-radius:999px;
    background:linear-gradient(180deg,#fff8f3 0%,#ffffff 100%);
    box-shadow:0 2px 6px rgba(241,100,0,.10);
    max-width:100%;
}
.sandy-vista-chip-nombre{
    color:#404247;
    font-size:11.5px;
    font-weight:1000;
    letter-spacing:.04em;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.sandy-vista-chip-sep{color:#c4bcb4;font-size:11px;font-weight:900;}
.sandy-vista-chip-codigo{
    color:#c25200;
    font-size:10.5px;
    font-weight:1000;
    letter-spacing:.06em;
    white-space:nowrap;
}
.sandy-vista-chip-x{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:999px;
    background:#f6f7f8;
    color:#9aa0a6;
    font-size:10px;
    text-decoration:none;
    transition:.15s ease;
}
.sandy-vista-chip-x:hover{background:#fff3e8;color:#c25200;}
.sandy-carpeta-bar{
    display:flex;
    gap:5px;
    padding:9px 18px 0;
    border-bottom:1px solid #eceff2;
    background:#fbfcfd;
}

.sandy-carpeta-tab{
    flex:1 1 auto;
    min-width:0;
    height:32px;
    padding:0 10px;
    border:1px solid #d5d8dc;
    border-bottom:none;
    border-radius:9px 9px 0 0;
    background:#f2f4f6;
    color:#6b7280;
    font:1000 10px/1 'Inter',sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    cursor:pointer;
    transition:.15s ease;
}

.sandy-carpeta-tab{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    user-select:none;
}
.sandy-carpeta-nombre{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.sandy-carpeta-tab[hidden]{display:none;}
.sandy-carpeta-vacia{
    padding:34px 18px;
    text-align:center;
    color:#9aa0a6;
    font-size:12.5px;
    font-weight:800;
}
.sandy-carpeta-tab:hover{
    border-color:#f16400;
    color:#c25200;
    background:#fff4ed;
}
.sandy-carpeta-tab:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(241,100,0,.20);
}
.sandy-carpeta-tab.is-active{
    border-color:#f16400;
    background:#fff;
    color:#c25200;
    box-shadow:0 -2px 6px rgba(241,100,0,.12);
    
    margin-bottom:-1px;
    padding-bottom:1px;
}

.sandy-carpeta-pendiente{
    margin-left:5px;
    color:#c9ced4;
    font-size:13px;
    vertical-align:middle;
}
.sandy-carpeta-panel{
    padding:12px 18px 16px;
}
.sandy-carpeta-panel[hidden]{display:none;}
.sandy-panel-toolbar{
    display:flex;
    align-items:center;
    gap:7px;
    margin-bottom:8px;
}
.sandy-tabla-badge{
    display:inline-flex;
    align-items:center;
    height:28px;
    padding:0 12px;
    border:1px solid #ffd0b1;
    border-radius:999px;
    background:linear-gradient(180deg,#fff8f3 0%,#fff 100%);
    color:#d95700;
    font-size:10px;
    font-weight:1000;
    letter-spacing:.1em;
    white-space:nowrap;
}
.sandy-vista-badge-warn{
    padding:3px 9px;
    border-radius:999px;
    font:1000 9px/1.6 'Inter',sans-serif;
    letter-spacing:.09em;
}
.sandy-vista-badge-warn{
    border:1px solid #f6d9c2;
    background:#fff4ed;
    color:#c25200;
}

.sandy-tabla-wrap{
    overflow-x:auto;
    max-height:640px;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:#d5d8dc #f4f5f7;
}
.sandy-tabla-wrap::-webkit-scrollbar{width:9px;height:9px;}
.sandy-tabla-wrap::-webkit-scrollbar-track{background:#f4f5f7;border-radius:999px;}
.sandy-tabla-wrap::-webkit-scrollbar-thumb{background:#d5d8dc;border-radius:999px;}
.sandy-tabla-wrap::-webkit-scrollbar-thumb:hover{background:#f16400;}
.sandy-tabla{
    width:100%;
    border-collapse:collapse;
    font-size:11.5px;
}
.sandy-tabla thead th{
    position:sticky;
    top:0;
    z-index:2;
    padding:9px 10px;
    background:#f1f2f3;
    border-bottom:1px solid #cfd2d6;
    color:#4e4f53;
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.06em;
    text-align:left;
    white-space:nowrap;
}
.sandy-tabla tbody td{
    padding:7px 10px;
    border-bottom:1px solid #eceff2;
    color:#404247;
    white-space:nowrap;
}
.sandy-tabla tbody tr:nth-child(even){background:#fafbfc;}
.sandy-tabla tbody tr:hover{background:#fff4ed;}
.sandy-tabla .t-num{text-align:right;font-variant-numeric:tabular-nums;}
.sandy-tabla .t-idx{
    text-align:right;
    color:#9aa0a6;
    font-size:10px;
    font-weight:800;
    width:52px;
}

.sandy-tabla tfoot td{
    position:sticky;
    bottom:0;
    z-index:2;
    padding:9px 10px;
    background:#f1f2f3;
    border-top:2px solid #cfd2d6;
    color:#404247;
    font-size:11px;
    font-weight:1000;
    white-space:nowrap;
}
.sandy-tabla tfoot .t-idx{
    color:#6b7280;
    font-size:9.5px;
    letter-spacing:.08em;
}
.sandy-tabla .t-pend{color:#c05000;font-weight:800;}
.sandy-tabla .t-ok{color:#3b6a4a;font-weight:800;}
.sandy-tabla td.t-wide{
    max-width:260px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sandy-tabla td{text-align:center;}
.sandy-tabla .t-idx{text-align:center;}
.sandy-tabla td[data-col^="NUMSOLICTUD"],
.sandy-tabla td[data-col^="FECHASOLICTUD"],
.sandy-tabla td[data-col^="FECHA"],
.sandy-tabla td[data-col="Comentarios"],
.sandy-tabla td[data-col="Dscription"]{text-align:left;}

.sandy-chip-dato.is-off{
    opacity:.38;
    pointer-events:none;
}

.sandy-tabla .t-semana{
    min-width:44px;
    padding-left:6px;
    padding-right:6px;
}

.cbp-semanas{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));
    gap:10px;
}
.cbp-semana{
    display:block;
    padding:11px 10px 12px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    text-align:center;
    text-decoration:none;
    color:inherit;
    transition:border-color .15s var(--ease), background .15s var(--ease);
}
.cbp-semana:hover{background:var(--orange-soft);border-color:#ffd0b1;}
.cbp-semana.is-on{
    border-color:var(--orange);
    background:linear-gradient(180deg,#fff6ef 0%,#ffeede 100%);
    box-shadow:0 1px 0 rgba(241,100,0,.10);
}
.cbp-semana-nom{
    display:block;
    font-size:9px;
    font-weight:1000;
    letter-spacing:.09em;
    color:var(--muted);
    text-transform:uppercase;
}
.cbp-semana.is-on .cbp-semana-nom{color:var(--orange-dark);}
.cbp-semana-pct{
    display:block;
    margin-top:3px;
    font-size:19px;
    font-weight:900;
    color:var(--gray-dark);
    line-height:1.1;
}
.cbp-semana-sub{
    display:block;
    margin-top:1px;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:.05em;
    color:var(--muted);
}

.cbp-semana-barra{
    
    display:block;
    height:4px;
    margin-top:7px;
    border-radius:3px;
    background:#eceef1;
    overflow:hidden;
}
.cbp-semana-barra i{
    display:block;
    height:100%;
    border-radius:3px;
    background:linear-gradient(90deg,#ff9a4d 0%,#f16400 100%);
}

.cbp-barra{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    flex-wrap:wrap;
    margin-bottom:6px;
}
.cbp-barra .cbp-periodo{margin-bottom:0;}
.cbp-barra-dcha{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
}

.dashboard-grid.cbp-medidas.is-una{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.dashboard-grid.cbp-medidas.is-una > .cbp-medida{grid-column:1;}

.dashboard-grid.cbp-rankings > .cbp-ranking:only-child{max-width:520px;}

.cbp-ranking .bar-track{position:relative;}
.cbp-ranking .bar-fill{position:absolute;left:0;top:0;height:100%;}
.cbp-ranking .bar-fill-base{background:#e3e6ea;}
.cbp-ranking .ranking-value-fillrate.is-verde{color:#1f7a3d;}
.cbp-ranking .ranking-value-fillrate.is-ambar{color:#96650d;}
.cbp-ranking .ranking-value-fillrate.is-rojo{color:#9c2f28;}

.cbp-periodo{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
}
.cbp-periodo-etq{
    font-size:9px;
    font-weight:1000;
    letter-spacing:.09em;
    color:var(--muted);
    text-transform:uppercase;
}
.cbp-periodo-btn{
    padding:8px 18px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
    color:var(--gray-dark);
    font-size:11px;
    font-weight:1000;
    letter-spacing:.07em;
    cursor:pointer;
}
.cbp-periodo-btn.is-on{
    border-color:var(--orange);
    background:linear-gradient(180deg,#ff8f47 0%,#f16400 100%);
    color:#fff;
    cursor:default;
}
.cbp-periodo-btn:disabled{opacity:.55;cursor:not-allowed;}

.cbp-seccion{
    margin:22px 0 10px;
    display:flex;
    align-items:baseline;
    gap:10px;
    flex-wrap:wrap;
    color:var(--gray-dark);
    font-size:13px;
    font-weight:1000;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.cbp-seccion::before{
    content:"";
    width:4px;
    height:14px;
    border-radius:2px;
    background:#f16400;
}
.cbp-seccion small{
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.03em;
    color:var(--muted);
    text-transform:none;
}

.cbp-top{padding:0;overflow:hidden;}
.cbp-top-scroll{overflow-x:auto;}
.cbp-top-tabla{min-width:940px;}
.cbp-top-tabla th{white-space:nowrap;}

.cbp-top-tabla .cbp-top-grupos th{
    padding:7px 10px;
    text-align:center;
    font-size:9px;
    letter-spacing:.1em;
    border-bottom:1px solid #e3e6ea;
}
.cbp-top-tabla th.cbp-grupo-cump{border-left:2px solid rgba(241,100,0,.45);}
.cbp-top-tabla th.cbp-grupo-cob{border-left:2px solid rgba(78,79,84,.35);}
.cbp-top-tabla td:nth-child(3),
.cbp-top-tabla th:nth-child(3){border-left:2px solid rgba(241,100,0,.30);}
.cbp-top-tabla td:nth-child(7),
.cbp-top-tabla th:nth-child(7){border-left:2px solid rgba(78,79,84,.22);}
.cbp-top-tabla .cbp-top-grupos th.cbp-grupo-cump{color:#c25200;background:#fff6ef;}
.cbp-top-tabla .cbp-top-grupos th.cbp-grupo-cob{color:#4e4f54;background:#f4f5f7;}

.cbp-top-cabgrupo td{
    background:#4e4f54;
    color:#fff;
    font-weight:1000;
    border-top:2px solid #f16400;
}
.cbp-grupo-nombre{
    font-size:11px;
    letter-spacing:.08em;
    color:#ffb27a !important;
}
.cbp-grupo-nombre i{
    margin-left:8px;
    font-style:normal;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:.05em;
    color:#c8cacd;
}
.cbp-top-cabgrupo .cbp-falta{color:#ffb0a6;}
.cbp-top-cabgrupo .cbp-pct{color:#fff;}
.cbp-top-cabgrupo .cbp-pct.is-verde{color:#8ee0aa;}
.cbp-top-cabgrupo .cbp-pct.is-ambar{color:#ffd48a;}
.cbp-top-cabgrupo .cbp-pct.is-rojo{color:#ffa79c;}

.cbp-top-nombre a{
    color:var(--gray-dark);
    font-weight:900;
    text-decoration:none;
}
.cbp-top-nombre a:hover{color:var(--orange-dark);text-decoration:underline;}
.cbp-top-nombre i{
    display:block;
    font-style:normal;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:.05em;
    color:var(--muted);
}
.cbp-top-tabla .cbp-falta{color:#9c2f28;font-weight:900;}
.cbp-top-tabla .cbp-pct{font-weight:1000;}
.cbp-top-tabla .cbp-pct.is-verde{color:#1f7a3d;}
.cbp-top-tabla .cbp-pct.is-ambar{color:#96650d;}
.cbp-top-tabla .cbp-pct.is-rojo{color:#9c2f28;}

.cbp-top-tabla .cbp-sin-req{color:#c2c6cb;font-weight:700;text-align:center;}

.dashboard-grid.cbp-medidas{grid-template-columns:repeat(2, minmax(0,1fr));}
.cbp-medida-cuerpo{
    display:flex;
    align-items:center;
    gap:14px;
}
.cbp-medida-cuerpo .single-donut-wrap{flex:0 0 auto;}
.cbp-medida-datos{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:7px;
}

.cbp-dato{
    padding:8px 11px;
    border-radius:12px;
    background:#faf9f7;
    border:1px solid #eceef1;
}
.cbp-dato.is-den{background:#fff;}
.cbp-dato.is-falta{background:#fdeceb;border-color:#f6d5d2;}
.cbp-dato-etq{
    display:block;
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.07em;
    color:var(--muted);
    text-transform:uppercase;
}
.cbp-dato-val{
    display:block;
    margin-top:1px;
    font-size:17px;
    font-weight:900;
    line-height:1.15;
    color:var(--gray-dark);
}
.cbp-dato.is-falta .cbp-dato-val{color:#9c2f28;}
.cbp-medida-nota{
    margin:12px 0 0;
    font-size:9.5px;
    font-weight:700;
    line-height:1.45;
    color:var(--muted);
}
.cbp-medida-vacia .sandy-empty{margin-top:18px;}
@media (max-width:900px){
    .dashboard-grid.cbp-medidas{grid-template-columns:1fr;}
}

.cbp-cifras{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
    margin-top:14px;
}
.cbp-cifra{
    padding:9px 8px;
    border-radius:12px;
    background:#faf9f7;
    border:1px solid #eceef1;
    text-align:center;
}
.cbp-cifra strong{
    display:block;
    font-size:15px;
    font-weight:900;
    color:var(--gray-dark);
    line-height:1.2;
}
.cbp-cifra span{
    display:block;
    margin-top:2px;
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.07em;
    color:var(--muted);
    text-transform:uppercase;
}
.cbp-cifra.is-falta strong{color:#9c2f28;}

.cbp-ranking .sandy-ranking-column-head,
.cbp-ranking .sandy-ranking-row{
    grid-template-columns:26px minmax(0, 1fr) 74px 74px 52px;
    gap:4px;
}
.cbp-ranking .ranking-value-falta{color:#9c2f28;font-weight:900;}

.cbp-ranking .bar-fill.is-verde{background:linear-gradient(90deg,#5cbb7f 0%,#1f7a3d 100%);}
.cbp-ranking .bar-fill.is-ambar{background:linear-gradient(90deg,#f0c169 0%,#c9880f 100%);}
.cbp-ranking .bar-fill.is-rojo{background:linear-gradient(90deg,#e88e86 0%,#c0392b 100%);}

.cbp-ranking .bar-track{position:relative;}
.cbp-ranking .bar-fill{min-width:3px;}

.cbp-ranking .cbp-prov{
    display:inline-block;
    margin-left:6px;
    padding:1px 6px;
    border-radius:999px;
    background:#f1f3f5;
    color:#5f6368;
    font-style:normal;
    font-size:8px;
    letter-spacing:.05em;
}

.cbp-conteo{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;}
.cbp-tag{
    padding:4px 9px;
    border-radius:999px;
    background:#f1f3f5;
    color:#5f6368;
    font-size:9px;
    font-weight:900;
    letter-spacing:.04em;
    white-space:nowrap;
}
.cbp-tag b{font-size:11px;font-weight:1000;color:var(--gray-dark);}
.cbp-tag.is-ok{background:#e8f5ec;color:#1f7a3d;}
.cbp-tag.is-ok b{color:#1f7a3d;}
.cbp-tag.is-mal{background:#fdeceb;color:#9c2f28;}
.cbp-tag.is-mal b{color:#9c2f28;}
.cbp-ranking .bar-code{
    display:block;
    margin-top:2px;
    font-size:8.5px;
    font-weight:900;
    letter-spacing:.05em;
    color:var(--muted);
}

.cbp-semana-rango{
    display:block;
    margin-top:2px;
    font-size:8px;
    font-weight:900;
    letter-spacing:.04em;
    color:#adb2b8;
}

.cbp-semana.is-futura{background:#fbfbfa;}
.cbp-semana.is-futura .cbp-semana-pct{color:#c2c6cb;}
.cbp-semana.is-futura .cbp-semana-barra i{background:#dfe2e6;}
.cbp-semana.is-futura.is-on{background:linear-gradient(180deg,#fff9f4 0%,#fff3e8 100%);}

.cbp-semana-pct.is-verde{color:#1f7a3d;}
.cbp-semana-pct.is-ambar{color:#96650d;}
.cbp-semana-pct.is-rojo{color:#9c2f28;}
.cbp-semana.is-verde .cbp-semana-barra i{background:linear-gradient(90deg,#5cbb7f 0%,#1f7a3d 100%);}
.cbp-semana.is-ambar .cbp-semana-barra i{background:linear-gradient(90deg,#f0c169 0%,#c9880f 100%);}

.cbp-estado{
    display:inline-block;
    
    align-self:flex-start;
    padding:3px 9px;
    border-radius:999px;
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
    background:#f1f3f5;
    color:#5f6368;
}
.cbp-estado.is-curso{background:#fff3e8;color:#c25200;}
.cbp-estado.is-futura{background:#eef1f4;color:#8b9096;}

.cbp-ranking .ranking-value-active.is-verde{color:#1f7a3d;}
.cbp-ranking .ranking-value-active.is-ambar{color:#96650d;}
.cbp-ranking .ranking-value-active.is-rojo{color:#9c2f28;}

@keyframes cbp-destello{
    0%{background:#ffe3c8;}
    100%{background:transparent;}
}
.sandy-tabla tr.is-destacada > td{animation:cbp-destello 2.4s var(--ease) 1;}

.sandy-col-orden{
    position:absolute;
    left:3px;
    bottom:2px;
    width:14px;
    height:12px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:4px;
    background:transparent;
    color:#b79c86;
    font-size:10px;
    line-height:1;
    cursor:pointer;
    
    opacity:.4;
    transition:opacity .12s var(--ease), color .12s var(--ease);
}
.sandy-tabla th:hover .sandy-col-orden{opacity:.9;}
.sandy-col-orden:hover{color:var(--orange-dark);opacity:1;}

.sandy-tabla th.is-ordenada .sandy-col-orden{
    opacity:1;
    color:#f16400;
    font-weight:1000;
}
.sandy-tabla th.is-ordenada{box-shadow:inset 0 3px 0 #f16400, inset 0 -3px 0 #f16400;}

.sandy-tabla .is-anclada{
    position:sticky;
    z-index:1;
    background:#fff;
}
.sandy-tabla thead th.is-anclada{
    
    z-index:4;
    background:#fff2e6;
}

.sandy-vista-card .sandy-tabla tbody tr:hover td.is-anclada{background:#fff8f3;}
.sandy-tabla tbody tr.is-destacada td.is-anclada{background:#ffe3c8;}
.sandy-tabla tr.sandy-fila-totales td.is-anclada{background:#4e4f54;z-index:5;}

.sandy-tabla .is-anclada.is-borde-ancla{
    box-shadow:6px 0 8px -6px rgba(78,79,84,.28);
}

.sandy-tabla tr.sandy-fila-totales{
    position:sticky;
    bottom:0;
    z-index:3;
}
.sandy-tabla tr.sandy-fila-totales td{
    background:#4e4f54;          
    border-top:2px solid #f16400;
    border-bottom:none;
    color:#fff;
    font-weight:1000;
}
.sandy-tabla tr.sandy-fila-totales td.t-idx{background:#4e4f54;}

.sandy-tabla tr.sandy-fila-totales td[data-col="PROVEEDOR"]{
    color:#ffb27a;
    letter-spacing:.06em;
}
.sandy-tabla tr.sandy-fila-totales td[data-col="ItemCode"]{color:#c8cacd;}

.sandy-tabla tr.sandy-fila-totales td.t-sem-par{background:#585a60;}
.sandy-tabla tr.sandy-fila-totales td.t-sem-ini{
    border-left-color:rgba(255,167,110,.55);
}
.sandy-tabla tr.sandy-fila-totales td.t-semana-pct{color:#e3c9b6;}

.sandy-tabla th.t-sem-impar{box-shadow:inset 0 3px 0 #f16400;}
.sandy-tabla th.t-sem-par{box-shadow:inset 0 3px 0 #ffc08a;}

.sandy-tabla th.t-sem-ini,
.sandy-tabla td.t-sem-ini{
    border-left:2px solid rgba(241,100,0,.30);
}

.sandy-tabla th.t-sem-ini{border-left-color:rgba(241,100,0,.55);}

.sandy-tabla td.t-sem-par{background:#f4f6f8;}

.sandy-tabla td.t-editable.t-sem-par{background:#f8f8f6;}
.sandy-tabla td.t-editable.t-sem-par:hover{background:#fdf3e8;}
.sandy-tabla td.t-semaforo.is-verde,
.sandy-tabla td.t-semaforo.is-ambar,
.sandy-tabla td.t-semaforo.is-rojo{background-clip:padding-box;}

.sandy-tabla .t-semana-e{
    border-left:1px dotted #e6d6c6;
}

.sandy-tabla .t-semana-pct{
    min-width:58px;
    color:#6b7280;
}

.sandy-tabla td.t-semaforo.is-verde{background:#e8f5ec;color:#1f7a3d;}
.sandy-tabla td.t-semaforo.is-ambar{background:#fdf3e2;color:#96650d;}
.sandy-tabla td.t-semaforo.is-rojo{background:#fdeceb;color:#9c2f28;}

.sandy-tabla td.t-editable{
    cursor:text;
    background:#fffdf8;
    box-shadow:inset 0 -1px 0 #f0e0cb;
}
.sandy-tabla td.t-editable:hover{background:#fff8ee;}
.sandy-tabla td.t-editable:focus{
    outline:none;
    background:#fff;
    box-shadow:inset 0 0 0 2px #f16400;
}

.sandy-tabla td.t-editable.is-tocada{
    position:relative;
    background:#fff3e6;
    font-weight:1000;
    color:#c25200;
    
    padding-right:38px;
}

.sandy-tabla td.t-editable .t-deshacer,
.sandy-tabla td.t-editable .t-aceptar{
    position:absolute;
    top:50%;
    right:3px;
    transform:translateY(-50%);
    width:15px;
    height:15px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #f3c9a6;
    border-radius:5px;
    background:#fff;
    color:#c25200;
    font-size:10px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    opacity:.65;
    transition:opacity .12s var(--ease), background .12s var(--ease);
}

.sandy-tabla td.t-editable .t-aceptar{
    right:21px;
    border-color:#bfe0c9;
    color:#1f7a3d;
}
.sandy-tabla td.t-editable:hover .t-deshacer,
.sandy-tabla td.t-editable:hover .t-aceptar{opacity:1;}
.sandy-tabla td.t-editable .t-deshacer:hover{
    background:#ffe6d2;
    border-color:#f16400;
    opacity:1;
}
.sandy-tabla td.t-editable .t-aceptar:hover{
    background:#dff2e6;
    border-color:#1f7a3d;
    opacity:1;
}

.sandy-cols-restaurar.is-avisando{
    border-color:#f16400;
    color:#c25200;
    background:#fff4ed;
}

.clase-emision-desplegar{
    width:20px;
    height:20px;
    padding:0;
    border:1px solid var(--orange-line);
    border-radius:6px;
    background:var(--orange-soft);
    color:var(--orange-dark);
    font-size:12px;
    font-weight:1000;
    line-height:1;
    cursor:pointer;
}
.clase-emision-desplegar:hover{background:#ffe6d6;}
.clase-emision-desplegar:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(241,100,0,.45);}
.clase-emision-fila.esta-abierta > td{background:#fff8f3;}
.clase-emision-nfact{
    display:inline-block;
    min-width:15px;
    margin-left:5px;
    padding:0 4px;
    border-radius:999px;
    background:var(--orange-dark);
    color:#fff;
    font-size:8px;
}
.clase-emision-prueba > td{padding:0 !important;background:#fffaf6;}
.prueba-caja{padding:12px 16px 14px;border-left:3px solid var(--orange);}
.prueba-cadena{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:10px;
}
.prueba-doc{
    padding:3px 9px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.05em;
}
.prueba-doc.es-factura{border-color:var(--orange-line);color:var(--orange-dark);}
.prueba-flecha{color:var(--orange);font-weight:1000;}
.prueba-nota{color:var(--muted);font-size:9px;font-style:italic;}
.prueba-factura{
    margin-top:8px;
    padding:9px 11px;
    border:1px solid #f2ddcc;
    border-radius:9px;
    background:#fff;
}
.prueba-cabecera{
    display:flex;
    gap:14px;
    align-items:baseline;
    margin-bottom:6px;
    font-size:10px;
    letter-spacing:.05em;
    color:var(--gray-dark);
}
.prueba-cabecera strong{color:var(--orange-dark);}
.prueba-tipo{
    padding:2px 8px;
    border-radius:999px;
    background:var(--gray-soft);
    color:var(--muted);
    font-size:9px;
    font-weight:1000;
    letter-spacing:.06em;
}
.prueba-tipo.es-reserva{background:var(--orange-soft);color:var(--orange-dark);}
.prueba-campos{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:3px 14px;
    align-items:baseline;
    font-size:10px;
}
.prueba-campos span{color:var(--muted);font-size:9px;letter-spacing:.06em;}
.prueba-campos strong{color:var(--gray-dark);font-weight:800;}
.prueba-sri{
    font-family:Consolas, monospace;
    letter-spacing:.02em;
    color:var(--orange-dark) !important;
}
.prueba-aviso{
    margin-top:6px;
    color:var(--muted);
    font-size:9px;
    font-style:italic;
}

.sandy-ranking-row.is-activa{
    box-shadow:inset 0 0 0 4px #9aa1ab;
}
.sandy-ranking-row.is-child.is-activa{
    box-shadow:inset 0 0 0 3px #cbd0d7;
}

.sandy-tabla td.clase-emision-celda{
    font-weight:1000;
    letter-spacing:.04em;
    color:#9aa1aa;
}
.sandy-tabla td.clase-emision-celda.es-reserva{
    color:var(--orange-dark);
    background:#fff8f3;
}

.sandy-vista-card .sandy-tabla th[data-col="stock"]{
    color:var(--red);
}

.sandy-tabla td[data-col="desc_cbp"]{text-align:left;}

.sandy-tabla th[data-col="PEDIDO"],
.sandy-tabla td[data-col="PEDIDO"]{text-align:center;}
.sandy-tabla td[data-col="PROVEEDOR"]{text-align:left;}

.sandy-tabla th[data-col="DÍAS SOLPED - OC"],
.sandy-tabla td[data-col="DÍAS SOLPED - OC"],
.sandy-tabla th[data-col="LeadTime"],
.sandy-tabla td[data-col="LeadTime"]{text-align:center;}

.sandy-tabla th[data-col="LeadTime"],
.sandy-tabla td[data-col="LeadTime"]{
    min-width:76px;
    color:#9ca3af;
    font-weight:500;
}

.sandy-tabla td[data-col^="FECHA"]{width:85px;}
.sandy-tabla th[data-col^="FECHA"]{width:85px;}

.sandy-vista-switch{
    display:inline-flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    user-select:none;
    text-decoration:none;
}
.sandy-vista-switch-track{
    position:relative;
    display:inline-block;
    width:38px;
    height:21px;
    border:1px solid #f2ddcc;
    border-radius:999px;
    background:#f6f7f8;
    transition:background .18s ease, border-color .18s ease;
    flex:0 0 auto;
}
.sandy-vista-switch-thumb{
    position:absolute;
    top:2px;
    left:2px;
    width:15px;
    height:15px;
    border-radius:50%;
    background:#ffffff;
    box-shadow:0 1px 3px rgba(194,82,0,.35);
    transition:transform .18s ease;
}
.sandy-vista-switch.is-on .sandy-vista-switch-track{
    background:linear-gradient(180deg,#ff8f47 0%,#f16400 100%);
    border-color:#f16400;
}
.sandy-vista-switch.is-on .sandy-vista-switch-track .sandy-vista-switch-thumb{
    transform:translateX(17px);
}
.sandy-vista-switch:focus-visible .sandy-vista-switch-track{
    box-shadow:0 0 0 3px rgba(241,100,0,.20);
}
.sandy-vista-switch-text{
    color:#6b7280;
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.08em;
    white-space:nowrap;
    transition:color .18s ease;
}
.sandy-vista-switch.is-on .sandy-vista-switch-text{color:#c25200;}

.sandy-chip-dato{
    display:inline-flex;
    align-items:center;
    gap:7px;
    height:28px;
    padding:0 13px;
    margin-left:auto;
    border:1px solid #f4d7c2;
    border-radius:9px;
    background:linear-gradient(180deg,#fff8f3 0%,#ffffff 100%);
    box-shadow:0 2px 6px rgba(241,100,0,.10);
    white-space:nowrap;
}
.sandy-chip-dato-label{
    color:#6b7280;
    font-size:9px;
    font-weight:1000;
    letter-spacing:.12em;
}
.sandy-chip-dato-sep{
    color:#c4bcb4;
    font-size:11px;
    font-weight:900;
}
.sandy-chip-dato-valor{
    color:#c25200;
    font-size:12px;
    font-weight:1000;
    letter-spacing:.02em;
    font-variant-numeric:tabular-nums;
}

.sandy-chip-filtro{
    margin-left:0;
    text-decoration:none;
    cursor:pointer;
    transition:.15s ease;
}
.sandy-chip-filtro:hover{
    border-color:#f16400;
    box-shadow:0 2px 8px rgba(241,100,0,.18);
}
.sandy-chip-filtro.is-on{
    border-color:#f16400;
    background:linear-gradient(180deg,#ffe9d8 0%,#fff3e8 100%);
    box-shadow:0 2px 8px rgba(241,100,0,.20);
}
.sandy-chip-filtro.is-on .sandy-chip-dato-label{color:#c25200;}

.sandy-tabla thead tr.fila-meses th{
    padding:6px 6px 5px;
    border-bottom:0;
    font-size:8.5px;
    letter-spacing:.12em;
    color:#8a8f97;
    background:#faf7f4;
}
.sandy-tabla thead tr.fila-meses th.t-mes{
    text-align:center;
    color:#6b7280;
    border-left:1px solid #ecd9c8;
    border-right:1px solid #ecd9c8;
}
.sandy-tabla thead tr.fila-meses th.t-mes-hueco{
    background:transparent;
}

.sandy-chip-titulo{
    height:38px;
    padding:0 22px;
    gap:10px;
    border-color:#767a82;
    border-radius:999px;
    background:linear-gradient(180deg,#7e828a 0%,#6f737a 100%);
    box-shadow:0 6px 14px rgba(64,66,71,.16);
}

.sandy-chip-titulo .sandy-chip-dato-label{
    color:rgba(255,255,255,.92);
    font-size:11px;
    letter-spacing:.12em;
}
.sandy-chip-titulo .sandy-chip-dato-sep{
    color:rgba(255,255,255,.5);
    font-size:12px;
}
.sandy-chip-titulo .sandy-chip-dato-valor{
    color:#fff;
    font-size:15px;
    letter-spacing:.04em;
}
.sandy-chip-titulo:hover{
    border-color:#686c73;
    background:linear-gradient(180deg,#73777f 0%,#64686f 100%);
    box-shadow:0 8px 18px rgba(64,66,71,.24);
}

.sandy-chip-titulo.is-on{
    border-color:#5d6066;
    background:linear-gradient(180deg,#5d6066 0%,#404247 100%);
    box-shadow:0 8px 18px rgba(64,66,71,.28);
}
.sandy-chip-titulo.is-on .sandy-chip-dato-label{color:#fff;}

.sandy-comex-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:64px;
    height:21px;
    padding:0 10px;
    border:1px solid #d3d7db;
    border-radius:999px;
    background:linear-gradient(180deg,#fbfcfd 0%,#f1f3f5 100%);
    color:#7b8189;
    font:1000 8.5px/1 'Inter',sans-serif;
    letter-spacing:.12em;
    cursor:pointer;
    transition:.15s ease;
}
.sandy-comex-btn:hover{border-color:#b6bcc4;color:#4e4f54;}
.sandy-comex-btn:disabled{opacity:.4;cursor:default;}

.sandy-comex-btn.is-cargado{
    border-color:#79c08a;
    background:linear-gradient(180deg,#eaf7ee 0%,#d8f0e0 100%);
    color:#1e7a3c;
}
.sandy-comex-btn.is-cargado:hover{border-color:#3f9e5c;color:#155f2d;}

.sandy-carpeta-editar{
    flex:0 0 auto;
    align-self:center;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    margin:0 0 5px 8px;
    padding:0;
    border:1px solid #d5d8dc;
    border-radius:999px;
    background:#fff;
    color:#6b7280;
    font:1000 13px/1 'Inter',sans-serif;
    cursor:pointer;
    transition:.15s ease;
}
.sandy-carpeta-editar:hover{border-color:#f16400;color:#c25200;background:#fff4ed;}
.sandy-carpeta-editar:disabled{opacity:.5;cursor:default;}

.sandy-carpeta-bar.is-editando .sandy-carpeta-editar{
    border-color:#f16400;
    background:linear-gradient(180deg,#ff7d24 0%,#f16400 100%);
    color:#fff;
}

.sandy-tabla thead tr.fila-meses th.t-mes[data-mes-pliegue]{
    cursor:pointer;
    user-select:none;
}
.sandy-tabla thead tr.fila-meses th.t-mes[data-mes-pliegue]:hover{
    color:#c25200;
    background:#fff4ed;
}
.sandy-mes-signo{
    display:inline-block;
    min-width:9px;
    margin-right:5px;
    color:#f16400;
    font-size:10px;
    font-weight:1000;
}
.sandy-tabla thead tr.fila-meses th.t-mes.esta-plegado{
    color:#c25200;
    background:#fff1e6;
}
.sandy-tabla th.t-mes-total{
    background:#fff8f3;
    color:#c25200;
}
.sandy-tabla td.t-mes-total{
    background:#fffaf6;
    font-weight:1000;
}
.sandy-tabla th[hidden], .sandy-tabla td[hidden]{display:none;}
.sandy-col-acciones{display:none;align-items:center;justify-content:center;gap:3px;margin-top:3px;}
.sandy-tabla.is-editando-cols .sandy-col-acciones{display:flex;}
.sandy-col-accion{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:15px;
    height:15px;
    padding:0;
    border:1px solid #d5d8dc;
    border-radius:4px;
    background:#fff;
    color:#6b7280;
    font-size:9px;
    line-height:1;
    cursor:pointer;
    transition:.12s ease;
}
.sandy-col-accion:hover{border-color:#f16400;color:#c25200;background:#fff4ed;}
.sandy-tabla.is-editando-cols th[data-col]{cursor:grab;}
.sandy-tabla.is-editando-cols th[data-col]:active{cursor:grabbing;}
.sandy-tabla th.is-arrastrando{opacity:.45;}

.sandy-tabla.is-editando-cols th[data-col].is-oculta{
    opacity:.55;
    background:repeating-linear-gradient(135deg,#f6f7f8 0 6px,#eef0f2 6px 12px);
}
.sandy-tabla.is-editando-cols th[data-col].is-oculta .sandy-col-nombre{
    text-decoration:line-through;
    text-decoration-color:#b6bcc4;
}
.sandy-col-input{
    width:88px;
    height:19px;
    padding:0 5px;
    border:1px solid #f16400;
    border-radius:4px;
    background:#fff;
    color:#404247;
    font:1000 9px/1 'Inter',sans-serif;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.sandy-col-input:focus{outline:none;box-shadow:0 0 0 3px rgba(241,100,0,.18);}

.sandy-cols-editar,
.sandy-cols-restaurar{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    padding:0;
    border:1px solid #d5d8dc;
    border-radius:999px;
    background:#fff;
    color:#6b7280;
    font:1000 13px/1 'Inter',sans-serif;
    cursor:pointer;
    transition:.15s ease;
}
.sandy-cols-restaurar{margin-left:5px;font-size:12px;}
.sandy-cols-editar:hover,
.sandy-cols-restaurar:hover{border-color:#f16400;color:#c25200;background:#fff4ed;}
.sandy-cols-editar.is-on{
    border-color:#f16400;
    background:linear-gradient(180deg,#ff7d24 0%,#f16400 100%);
    color:#fff;
}

.sandy-carpeta-acciones{display:none;align-items:center;gap:3px;}
.sandy-carpeta-bar.is-editando .sandy-carpeta-acciones{display:inline-flex;}
.sandy-carpeta-accion{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:17px;
    height:17px;
    padding:0;
    border:1px solid #d5d8dc;
    border-radius:5px;
    background:#fff;
    color:#6b7280;
    font-size:10px;
    line-height:1;
    cursor:pointer;
    transition:.12s ease;
}
.sandy-carpeta-accion:hover{border-color:#f16400;color:#c25200;background:#fff4ed;}
.sandy-carpeta-bar.is-editando .sandy-carpeta-tab{cursor:grab;}
.sandy-carpeta-bar.is-editando .sandy-carpeta-tab:active{cursor:grabbing;}
.sandy-carpeta-tab.is-arrastrando{opacity:.45;}

.sandy-carpeta-bar.is-editando .sandy-carpeta-tab.is-oculta{
    opacity:.55;
    border-style:dashed;
    background:repeating-linear-gradient(135deg,#f6f7f8 0 6px,#eef0f2 6px 12px);
}

.sandy-carpeta-bar.is-editando .sandy-carpeta-tab.is-oculta .sandy-carpeta-nombre{
    text-decoration:line-through;
    text-decoration-color:#b6bcc4;
}
.sandy-carpeta-bar.is-editando .sandy-carpeta-tab.is-oculta .sandy-carpeta-accion{
    opacity:1;
    color:#c25200;
}
.sandy-carpeta-input{
    width:104px;
    height:20px;
    padding:0 6px;
    border:1px solid #f16400;
    border-radius:5px;
    background:#fff;
    color:#404247;
    font:1000 10px/1 'Inter',sans-serif;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.sandy-carpeta-input:focus{outline:none;box-shadow:0 0 0 3px rgba(241,100,0,.18);}

.sandy-dias{
    display:inline-block;
    margin-left:7px;
    padding:1px 7px;
    border-radius:999px;
    background:#eceff2;
    color:#6b7280;
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.04em;
    white-space:nowrap;
    vertical-align:middle;
}

.sandy-dias.is-vencido{background:#fbe6e3;color:#c0392b;}

.sandy-vista-card .sandy-tabla thead th{
    background:#fff2e6;
    border-bottom-color:#f4d7c2;
    color:#6b4a33;
}
.sandy-vista-card .sandy-tabla tbody tr:not(.sandy-fila-totales):hover{background:#fff8f3;}

.sandy-tabla td.is-negativo{color:#c0392b;font-weight:1000;}

.sandy-tabla td.is-sin-fecha .sandy-dias{display:none;}
.sandy-tabla td.t-sinfecha{     
    color:#9aa0a6;
    font-weight:800;
    letter-spacing:.04em;
}

.sandy-tabla td.t-atraso{       
    color:#c0392b;
    font-weight:1000;
}
.sandy-tabla td.t-falta{        
    color:#2f7a4d;
    font-weight:1000;
}

.sandy-tabla td.lt-alto{        
    color:#c0392b;
    font-weight:1000;
}
.sandy-tabla td.lt-negativo{    
    color:#15181c;
    font-weight:1000;
}
.sandy-tabla td.lt-viejo{       
    color:#9aa0a6;
    font-weight:800;
}

.t-estimada{color:#2d4a97;font-style:italic;}

.sandy-tabla td.tiene-pista{
    cursor:help;
    text-decoration:underline dotted #c9ced4;
    text-underline-offset:3px;
}
.sandy-tabla td.tiene-pista:hover{text-decoration-color:#f16400;}

.sandy-tabla tbody tr[data-padre] td{background:#fbfcfd;}
.sandy-tabla tbody tr[data-padre] td:first-child{
    box-shadow:inset 3px 0 0 #f2a06a;
}

.sandy-dias[data-pista]{cursor:help;}
.sandy-dias[data-pista]:hover{background:#fff4ed;color:#c25200;}
.sandy-dias.is-vencido[data-pista]:hover{background:#fbe6e3;color:#a5281a;}

.sandy-vacio{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    padding:38px 20px 42px;
    border:1px dashed #e4d5c8;
    border-radius:16px;
    background:
        radial-gradient(120% 90% at 50% 0%, #fffaf6 0%, rgba(255,255,255,0) 70%),
        linear-gradient(180deg,#fdfdfe 0%,#ffffff 100%);
    text-align:center;
}
.sandy-vacio-dibujo{
    width:168px;
    height:104px;
    margin-bottom:10px;
    overflow:visible;
}
.sandy-vacio-caja{
    fill:#fff;
    stroke:#f2a06a;
    stroke-width:2;
}
.sandy-vacio-caja.is-tenue{
    fill:#f7f8f9;
    stroke:#d3d7db;
    stroke-dasharray:4 3;
}
.sandy-vacio-estante{
    fill:none;
    stroke:#d3d7db;
    stroke-width:2;
}
.sandy-vacio-cinta{
    stroke:#d3d7db;
    stroke-width:2;
    stroke-linecap:round;
}
.sandy-vacio-flecha{
    fill:none;
    stroke:#f16400;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.sandy-vacio-titulo{
    color:#c25200;
    font-size:13px;
    font-weight:1000;
    letter-spacing:.12em;
}
.sandy-vacio-detalle{
    max-width:420px;
    color:#7b8189;
    font-size:11px;
    line-height:1.5;
}
.sandy-vacio-sujeto{
    margin-top:9px;
    padding:4px 12px;
    border:1px solid #eee1d6;
    border-radius:999px;
    background:#fffaf6;
    color:#9aa0a6;
    font-size:9px;
    font-weight:1000;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.floating-estimado-switch{
    position:fixed;
    top:12px;
    right:20px;
    z-index:40000;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:5px 11px;
    border:1px solid #d5e4d8;
    border-radius:999px;
    background:rgba(255,255,255,.95);
    box-shadow:0 2px 10px rgba(31,41,55,.10);
    backdrop-filter:blur(2px);
    cursor:pointer;
    user-select:none;
}

.floating-switches{
    position:fixed;
    top:12px;
    right:20px;
    z-index:40001;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:8px;
}
.floating-switches-fila{
    display:flex;
    align-items:center;
    flex-direction:row-reverse;
    gap:8px;
}
.floating-switches .floating-estimado-switch{
    position:static;
    top:auto;
    right:auto;
}

.floating-reserva-grupo{
    display:flex;
    align-items:center;
    flex-direction:row-reverse;
    gap:8px;
}

.floating-reserva-tirador{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:6px 12px;
    border:1px solid #d5e4d8;
    border-radius:999px;
    background:rgba(255,255,255,.95);
    box-shadow:0 2px 10px rgba(31,41,55,.10);
    backdrop-filter:blur(2px);
    color:var(--muted);
    font-family:inherit;
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.06em;
    cursor:pointer;
    white-space:nowrap;
}
.floating-reserva-tirador:hover{border-color:var(--orange-line);color:var(--orange-dark);}
.floating-reserva-tirador:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(241,100,0,.45);}

.floating-reserva-tirador.tiene-filtro{
    border-color:var(--orange);
    color:var(--orange-dark);
}
.floating-reserva-tirador.tiene-filtro::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--orange);
}

.floating-reserva-chevron{
    display:inline-block;
    color:var(--orange);
    font-size:13px;
    line-height:1;
    transition:transform .18s var(--ease);
}
.floating-reserva-grupo.esta-abierto .floating-reserva-chevron{transform:rotate(180deg);}

.floating-reserva-cajon{
    display:none;
    align-items:center;
    gap:8px;
}
.floating-reserva-grupo.esta-abierto .floating-reserva-cajon{
    display:flex;
}

.floating-reserva-cajon .floating-estimado-switch{
    position:static;
    top:auto;
    right:auto;
}

.floating-estimado-input{
    position:absolute;
    opacity:0;
    width:0;
    height:0;
    pointer-events:none;
}
.floating-estimado-track{
    position:relative;
    display:inline-block;
    width:38px;
    height:21px;
    border:1px solid #bfd3c4;
    border-radius:999px;
    background:#dfe9e2;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease;
    flex:0 0 auto;
}
.floating-estimado-thumb{
    position:absolute;
    top:2px;
    left:2px;
    width:15px;
    height:15px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(30,122,60,.28);
    transition:transform .18s ease;
}
.floating-estimado-input:checked + .floating-estimado-track{
    background:linear-gradient(180deg,#5b9c72 0%,#1e7a3c 100%);
    border-color:#1e7a3c;
}
.floating-estimado-input:checked + .floating-estimado-track .floating-estimado-thumb{
    transform:translateX(17px);
}
.floating-estimado-switch:focus-within .floating-estimado-track{
    box-shadow:0 0 0 3px rgba(30,122,60,.16);
}
.floating-estimado-text{
    color:#6b7280;
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.08em;
    white-space:nowrap;
}
.floating-estimado-input:checked ~ .floating-estimado-text{
    color:#1e7a3c;
}
@media(max-width:640px){
    .floating-estimado-switch{top:8px;right:8px;padding:5px 8px;}
    .floating-estimado-text{display:none;}
}

.sandy-date-banner{
    justify-content:center;
    
    position:relative;
    z-index:20000;
    overflow:visible;
}
.sandy-indicator-panel{
    position:relative;
    z-index:100;
    overflow:visible;
}
.yuri-provider-dropdown{
    position:relative;
    z-index:1;
    flex:0 1 330px;
    min-width:240px;
    max-width:390px;
    font-size:11px;
    text-align:left;
}
.yuri-provider-trigger{
    width:100%;
    min-height:40px;
    display:grid;
    grid-template-columns:9px minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    padding:7px 10px;
    border:1px solid #d5dbe0;
    border-radius:13px;
    background:#fff;
    color:#374151;
    box-shadow:0 5px 14px rgba(15,23,42,.06);
    cursor:pointer;
    font-family:inherit;
}
.yuri-provider-trigger:hover,
.yuri-provider-trigger[aria-expanded="true"]{
    border-color:#9ca3af;
    box-shadow:0 0 0 3px rgba(107,114,128,.08);
}
.yuri-provider-dot{
    width:8px;height:8px;border-radius:50%;background:#6b7280;
    box-shadow:0 0 0 3px rgba(107,114,128,.10);
}
.yuri-provider-trigger-text{min-width:0;display:flex;flex-direction:column;line-height:1.15;}
.yuri-provider-trigger-text small{font-size:8.5px;font-weight:1000;letter-spacing:.10em;color:#6b7280;}
.yuri-provider-trigger-text strong{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#374151;font-size:11px;}
.yuri-provider-chevron{color:#6b7280;font-size:13px;transition:transform .15s ease;}
.yuri-provider-trigger[aria-expanded="true"] .yuri-provider-chevron{transform:rotate(180deg);}
.sandy-indicator-panel.provider-menu-open{z-index:25000;}
.yuri-provider-dropdown.is-open{z-index:30000;}
.yuri-provider-menu{
    position:absolute;
    top:calc(100% + 6px);
    right:0;
    z-index:31000;
    width:min(390px, calc(100vw - 28px));
    padding:9px;
    border:1px solid #d9dee5;
    border-radius:15px;
    background:#fff;
    box-shadow:0 18px 42px rgba(15,23,42,.17);
}
.yuri-provider-menu[hidden]{display:none !important;}
.yuri-provider-search{
    width:100%;height:38px;border:1px solid #d5dbe0;border-radius:11px;
    padding:0 11px;font:inherit;font-size:12px;outline:none;background:#fbfcfd;
}
.yuri-provider-search:focus{border-color:#9ca3af;box-shadow:0 0 0 3px rgba(107,114,128,.08);background:#fff;}
.yuri-provider-options{
    margin-top:7px;max-height:290px;overflow:auto;overscroll-behavior:contain;
    scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;
}
.yuri-provider-option{
    display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;
    min-height:37px;padding:7px 9px;border-radius:9px;color:#4b5563;text-decoration:none;
    font-size:10.5px;font-weight:850;
}
.yuri-provider-option:hover,.yuri-provider-option.is-focus{background:#f3f4f6;color:#374151;}
.yuri-provider-option.is-active{background:#eef2f7;color:#374151;font-weight:1000;}
.yuri-provider-option small{min-width:24px;padding:3px 6px;border-radius:999px;text-align:center;background:#f3f4f6;color:#8a9098;font-size:8.5px;font-weight:900;}
.yuri-provider-option.is-active small{background:#e5e7eb;color:#4b5563;}
.yuri-provider-empty{padding:14px 8px;text-align:center;color:#8a9098;font-size:10px;font-weight:800;}
.yuri-provider-error{margin-top:5px;color:#b45309;font-size:9px;font-weight:800;}
.yuri-provider-dropdown.has-error .yuri-provider-dot{background:#d97706;}
@media(max-width:760px){
    .sandy-date-banner{align-items:stretch;}
    .yuri-provider-dropdown{flex-basis:100%;max-width:100%;min-width:0;}
    .yuri-provider-menu{left:0;right:auto;width:100%;}
}

.sandy-ranking-motivo .sandy-ranking-column-head,
.sandy-ranking-motivo .sandy-ranking-row{
    
    grid-template-columns:28px minmax(150px, 1.22fr) 44px 64px 64px 42px minmax(118px, 142px);
    gap:3px;
}

.sandy-ranking-motivo .bar-name{
    font-size:9.5px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sandy-ranking-row-motivo{
    position:relative;
    isolation:isolate;
}
.sandy-ranking-row-motivo .ranking-cover{
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    border-radius:inherit;
    text-decoration:none;
    color:inherit;
}

.sandy-ranking-row-motivo > .ranking-position,
.sandy-ranking-row-motivo > .ranking-main,
.sandy-ranking-row-motivo > .ranking-value{
    position:relative;
    z-index:2;
    pointer-events:none;
}
.sandy-ranking-row-motivo > .ranking-motivo{
    position:relative;
    z-index:4;
    pointer-events:auto;
}
.sandy-ranking-row-motivo:focus-within{
    border-color:#f2b990;
}

.ontime-ranking-card.sandy-ranking-product .sandy-ranking-column-head,
.ontime-ranking-card.sandy-ranking-product .sandy-ranking-row{
    grid-template-columns:28px minmax(145px,1.20fr) 44px 62px 62px 42px 56px;
    gap:3px;
}

.sandy-ranking-motivo .ranking-value{
    font-size:9.5px;
}

.sandy-ranking-motivo .ranking-motivo{
    min-width:0;
    width:100%;
    display:flex;
    flex-direction:column;
    gap:4px;
    justify-self:stretch;
}
.ranking-motivo-select-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 22px;
    align-items:center;
    gap:5px;
    min-width:0;
    width:100%;
    pointer-events:auto;
}
.ranking-motivo-select{
    width:100%;
    min-width:0;
    height:28px;
    padding:0 24px 0 7px;
    border:1px solid #dfe3e8;
    border-radius:8px;
    background:#fff;
    color:#4b5563;
    font-family:inherit;
    font-size:9.4px;
    font-weight:800;
    outline:none;
    cursor:pointer;
    text-overflow:ellipsis;
    transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease);
}
.ranking-motivo-select,
.ranking-motivo-add{
    position:relative;
    z-index:5;
    pointer-events:auto;
}
.ranking-motivo-select:hover{border-color:#c8cfd7;}
.ranking-motivo-select:focus{
    border-color:#ff9d5f;
    box-shadow:0 0 0 3px rgba(255,100,0,.10);
}
.ranking-motivo-select.tiene-texto{
    background:#fffaf6;
    border-color:#f4c9ad;
    color:#9a4b16;
}
.ranking-motivo-select.guardando{
    border-color:#ffb783;
    box-shadow:0 0 0 3px rgba(255,100,0,.08);
}
.ranking-motivo-select.guardado{
    border-color:#8fd0a5;
    box-shadow:0 0 0 3px rgba(22,163,74,.08);
}
.ranking-motivo-select.sin-guardar{
    border-color:#efa39f;
    box-shadow:0 0 0 3px rgba(220,38,38,.08);
}
.ranking-motivo-add{
    width:20px;
    height:20px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#eef1f4;
    color:#626d7a;
    font-size:15px;
    line-height:1;
    font-weight:900;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    align-self:center;
    box-shadow:none;
    outline:none;
    transition:background .14s ease,color .14s ease,transform .14s ease;
}
.ranking-motivo-add:hover{
    background:#e1e6eb;
    color:#303844;
    transform:translateY(-1px);
}
.ranking-motivo-add:active{
    transform:translateY(0);
}
.ranking-motivo-add:focus-visible{
    border:0;
    outline:2px solid #aeb7c1;
    outline-offset:2px;
    box-shadow:none;
}
.motivo-editor-popover{
    position:fixed;
    z-index:25000;
    width:min(286px,calc(100vw - 24px));
    padding:12px;
    border:1px solid #d9dfe6;
    border-radius:14px;
    background:#fff;
    box-shadow:0 18px 46px rgba(17,24,39,.20),0 4px 12px rgba(17,24,39,.08);
}
.motivo-editor-popover[hidden]{display:none !important;}
.motivo-editor-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:9px;
}
.motivo-editor-head strong{
    color:#3f4752;
    font-size:10px;
    font-weight:1000;
    letter-spacing:.10em;
}
.motivo-editor-close{
    width:23px;
    height:23px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#f0f2f5;
    color:#6b7280;
    font-size:15px;
    font-weight:900;
    cursor:pointer;
}
.motivo-editor-close:hover{background:#e5e9ee;color:#303844;}
.motivo-editor-field{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-top:8px;
}
.motivo-editor-field span{
    color:#727b87;
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.08em;
}
.motivo-editor-field input{
    width:100%;
    height:34px;
    padding:0 9px;
    border:1px solid #dce2e8;
    border-radius:9px;
    background:#fbfcfd;
    color:#27303b;
    font-family:inherit;
    font-size:10.5px;
    font-weight:750;
    outline:none;
}
.motivo-editor-field input:focus{
    border-color:#f2a472;
    background:#fff;
    box-shadow:0 0 0 3px rgba(255,100,0,.08);
}
.motivo-editor-note{
    margin-top:9px;
    padding:7px 8px;
    border-radius:8px;
    background:#f7f8fa;
    color:#77808c;
    font-size:8.7px;
    font-weight:700;
    line-height:1.35;
}
.motivo-editor-error{
    margin-top:7px;
    color:#b42318;
    font-size:9px;
    font-weight:850;
}
.motivo-editor-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin-top:10px;
}
.motivo-editor-actions button{
    height:31px;
    border-radius:9px;
    font-family:inherit;
    font-size:9.5px;
    font-weight:1000;
    cursor:pointer;
}
.motivo-editor-cancel{
    border:1px solid #dfe3e8;
    background:#f7f8fa;
    color:#65707d;
}
.motivo-editor-save{
    border:1px solid #e65c00;
    background:#ff6400;
    color:#fff;
}
.motivo-editor-save:hover{background:#e95c00;}
.motivo-editor-save:disabled{opacity:.55;cursor:wait;}

.ranking-col-motivo{text-align:center !important;}
.ranking-col-motivo-head{display:flex;align-items:center;justify-content:center;gap:6px;position:relative;z-index:8;}
.motivo-admin-trigger{width:18px;height:18px;padding:0;border:1px solid #d8dde4;border-radius:50%;background:#f4f6f8;color:#687382;font-size:13px;line-height:1;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;}
.motivo-admin-trigger:hover{background:#fff1ec;border-color:#f2b28d;color:#c2410c;transform:scale(1.04);}
.motivo-admin-trigger:focus-visible{outline:2px solid #f4a477;outline-offset:2px;}
.motivo-admin-popover{position:fixed;z-index:26000;width:min(310px,calc(100vw - 24px));padding:13px;border:1px solid #d8dee6;border-radius:15px;background:#fff;box-shadow:0 20px 52px rgba(17,24,39,.22),0 5px 14px rgba(17,24,39,.08);}
.motivo-admin-popover[hidden]{display:none !important;}
.motivo-admin-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.motivo-admin-head strong{color:#3f4752;font-size:10px;font-weight:1000;letter-spacing:.10em;}
.motivo-admin-copy{padding:9px 10px;border-radius:10px;background:#f7f8fa;color:#697482;font-size:9px;font-weight:700;line-height:1.45;}
.motivo-admin-copy strong{color:#48515d;}
.motivo-admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;}
.motivo-admin-btn{min-height:33px;padding:0 9px;border-radius:9px;font-family:inherit;font-size:9.2px;font-weight:1000;cursor:pointer;}
.motivo-admin-btn.danger{border:1px solid #dc2626;background:#dc2626;color:#fff;}
.motivo-admin-btn.danger:hover{background:#b91c1c;}
.motivo-admin-btn.warning{border:1px solid #f0a35f;background:#fff7ed;color:#b45309;}
.motivo-admin-btn.warning:hover{background:#ffedd5;}
.motivo-admin-btn.close{grid-column:1/-1;border:1px solid #dce2e8;background:#f6f8fa;color:#5f6976;}
.motivo-admin-btn.close:hover{background:#edf1f5;}
.motivo-admin-btn:disabled{opacity:.55;cursor:wait;}
.motivo-admin-status{margin-top:8px;color:#b42318;font-size:9px;font-weight:850;}

@media (max-width:820px){
    .sandy-ranking-motivo .sandy-ranking-column-head,
    .sandy-ranking-motivo .sandy-ranking-row{
        grid-template-columns:28px minmax(0, 1fr) 36px 58px 58px 36px 94px;
    }
    .ranking-motivo-select-row{grid-template-columns:minmax(0,1fr) 20px;gap:4px;}
    .ranking-motivo-add{width:19px;height:19px;font-size:14px;}
}

.sandy-filters{
    padding:14px 16px 16px;
}

.sandy-filter-modes{
    display:flex;
    gap:10px;
    align-items:stretch;
    flex-wrap:wrap;
}

.sandy-filter-form{
    flex:1 1 0;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:10px;
    padding:14px 14px 13px;
    border:1px solid #e5e7eb;
    border-left:3px solid #9ca3af;
    border-radius:12px;
    background:linear-gradient(180deg,#ffffff 0%,#fafafb 100%);
    box-shadow:0 3px 10px rgba(76,79,84,.04);
    transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}

.sandy-filter-form:hover{
    border-color:#d1d5db;
    border-left-color:var(--muted);
    box-shadow:0 6px 14px rgba(76,79,84,.06);
}

.sandy-filter-form.sandy-filter-active{
    border:2px solid var(--orange);
    border-left:4px solid var(--orange);
    box-shadow:0 7px 18px rgba(255,100,0,.12);
}

.sandy-filter-form.sandy-filter-active .sandy-filter-title{
    color:#d95700;
}

.sandy-filter-title-row{
    min-height:28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-bottom:9px;
    border-bottom:1px solid #eceff2;
}

.sandy-filter-title{
    color:var(--gray-dark);
    font-size:12px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.sandy-filter-fields{
    width:100%;
    display:flex;
    align-items:end;
    justify-content:center;
    gap:8px;
    flex-wrap:nowrap;
}

.sandy-filter-form .field{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
    flex:0 0 auto;
}

.sandy-filter-form .field label{
    color:var(--muted);
    font-size:9.5px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
    white-space:nowrap;
}

.sandy-filter-form .input{
    width:100%;
    height:36px;
    font-size:12px;
    padding:0 9px;
    border:1px solid #d1d5db;
    border-radius:9px;
}

.sandy-filter-form .input:focus{
    border-color:rgba(255,100,0,.45);
    box-shadow:0 0 0 3px rgba(255,100,0,.10);
}

.sandy-filter-form select.input{
    appearance:menulist;
    cursor:pointer;
}

.sandy-filter-fields-fechas .field-date{
    flex:1 1 0;
    width:auto;
}

.sandy-filter-form .field-date{ width:130px; }
.sandy-filter-form .field-year{ width:78px; }
.sandy-filter-form .field-month{ width:108px; }

.sandy-ontime-vars-form{
    border-left-color:#4c78a8;
    flex:0.82 1 300px;
}
.sandy-ontime-vars-form:hover{
    border-left-color:#315f8f;
}
.sandy-filter-fields-ontime{
    justify-content:stretch;
}
.sandy-filter-fields-ontime .field-ontime-days{
    flex:1 1 0;
    width:auto;
}
.sandy-filter-fields-ontime .input{
    text-align:center;
    font-weight:900;
    font-variant-numeric:tabular-nums;
}
.ontime-vars-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    height:22px;
    padding:0 8px;
    border:1px solid #c8def3;
    border-radius:999px;
    background:#eaf4ff;
    color:#315f8f;
    font-size:8.5px;
    font-weight:1000;
    letter-spacing:.08em;
}

.sandy-filter-actions{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding-top:1px;
}

.sandy-btn-compact{
    height:36px !important;
    padding:0 12px !important;
    font-size:11px !important;
    border-radius:9px !important;
    align-self:end;
}

.sandy-filter-actions .sandy-btn-compact{
    min-width:92px;
}

@media (max-width:1500px){
    .sandy-filter-form{
        flex:1 1 360px;
    }
}

@media (max-width:980px){
    .sandy-filter-fields{
        flex-wrap:wrap;
    }

    .sandy-filter-fields .field{
        flex:1 1 120px;
        width:auto;
    }
}

.sandy-period-summary{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
    margin-bottom:18px;
}

.ontime-base-toggle{
    display:flex;
    justify-content:center;
    margin:0 0 6px 0;
}

.sandy-tabla-pedidos-toggle{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    margin:-4px 0 18px 0;
}

.sandy-period-card{
    overflow:hidden;
    
    margin-left:0;
    margin-right:0;
    width:100%;
}

.sandy-period-tabs{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px;
    border:1px solid #d9dde2;
    border-radius:999px;
    background:#fff;
    box-shadow:0 8px 18px rgba(76,79,84,.06);
}

.sandy-period-tab{
    min-height:28px;
    padding:6px 12px;
    border:1px solid transparent;
    border-radius:999px;
    background:transparent;
    color:var(--gray-dark);
    font-family:inherit;
    font-size:10px;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    white-space:nowrap;
    cursor:pointer;
    transition:background .16s var(--ease), color .16s var(--ease),
               border-color .16s var(--ease), box-shadow .16s var(--ease);
}

.sandy-period-tab:hover{
    background:var(--gray-soft-2);
    border-color:#d9dde2;
}

.sandy-period-tab.is-active{
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
    border-color:var(--orange-dark);
    box-shadow:0 8px 18px rgba(255,100,0,.22);
}

.sandy-period-shell{
    position:relative;
    z-index:1;
    padding:10px 4px 4px;
    border:1px solid #eceff2;
    border-radius:18px;
    background:linear-gradient(180deg,#ffffff 0%,#fafbfc 100%);
}

.sandy-period-chart-wrap{
    max-width:1540px;
    margin:0 auto;
    overflow-x:auto;
    overscroll-behavior-x:contain;
}

.sandy-period-chart{
    display:block;
    width:100%;
    
    min-width:760px;
    height:auto;
    max-height:420px;
    overflow:visible;
}

.sandy-period-shell[data-serie-activa="fillrate"] [data-serie="ontime"]{
    display:none;
}

.sandy-period-shell[data-serie-activa="ontime"] [data-serie="fillrate"]{
    display:none;
}

.sandy-period-grid line{
    stroke:#e1e4e7;
    stroke-width:1;
}

.sandy-period-grid text{
    fill:var(--muted);
    font-size:8.2px;
    font-weight:800;
}

.sandy-period-average{
    stroke:#7d8186;
    stroke-width:1.25;
    stroke-dasharray:6 5;
}

.sandy-period-area{
    stroke:none;
}

.sandy-period-line{
    fill:none;
    stroke:var(--orange);
    stroke-width:3;
    stroke-linecap:round;
    stroke-linejoin:round;
    
    filter:drop-shadow(0 2px 4px rgba(31,41,55,.10));
}

.sandy-period-line.is-ontime{
    stroke:var(--gray);
}

.sandy-period-point-target{
    cursor:pointer;
}

.sandy-period-halo{
    fill:rgba(255,100,0,.12);
    opacity:0;
    transition:opacity .15s var(--ease);
}

.sandy-period-point-target.is-ontime .sandy-period-halo{
    fill:rgba(76,79,84,.14);
}

.sandy-period-point-target:hover .sandy-period-halo,
.sandy-period-point-target:focus-visible .sandy-period-halo{
    opacity:1;
}

.sandy-period-point{
    
    fill:var(--orange);
    stroke:#fff;
    stroke-width:3;
    filter:drop-shadow(0 2px 3px rgba(31,41,55,.24));
    transition:r .15s ease, fill .15s ease;
}

.sandy-period-point-target.is-ontime .sandy-period-point{
    fill:var(--gray);
    stroke:#fff;
}

.sandy-period-point-target.es-actual .sandy-period-point{
    r:8;
}

.sandy-period-point-target:hover .sandy-period-point,
.sandy-period-point-target:focus-visible .sandy-period-point{
    r:8;
}

.sandy-period-value{
    fill:var(--gray-dark);
    font-size:10.5px;
    font-weight:1000;
}

.sandy-period-x-main{
    fill:var(--gray-dark);
    font-size:9.5px;
    font-weight:1000;
    letter-spacing:.04em;
}

.sandy-period-x-sub{
    fill:var(--muted);
    font-size:9px;
    font-weight:800;
}

.sandy-period-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    padding:10px 12px 4px;
}

.sandy-period-legend{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    color:var(--muted);
    font-size:9.5px;
    font-weight:900;
    letter-spacing:.06em;
}

.sandy-period-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.sandy-period-legend-line{
    display:inline-block;
    width:18px;
    height:3px;
    border-radius:999px;
    background:var(--orange);
}

.sandy-period-legend-line.is-ontime{
    background:var(--gray);
}

.sandy-period-legend-average{
    display:inline-block;
    width:18px;
    height:0;
    border-top:2px dashed #9ca3af;
}

.sandy-period-totals{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    justify-content:center;
}

.sandy-period-totals span{
    color:var(--muted);
    font-size:9.5px;
    font-weight:900;
    letter-spacing:.06em;
}

.sandy-period-totals strong{
    color:var(--gray-dark);
    font-size:12px;
    font-weight:1000;
    padding:4px 10px;
    border-radius:999px;
    background:var(--gray-soft);
    border:1px solid #e2e5e9;
}

.sandy-period-tooltip{
    position:fixed;
    z-index:5000;
    min-width:210px;
    padding:11px 13px;
    border-radius:14px;
    border:1px solid var(--line-strong);
    background:#ffffff;
    box-shadow:0 18px 40px rgba(17,24,39,.22);
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transition:opacity .14s var(--ease);
}

.sandy-period-tooltip.is-visible{
    opacity:1;
    visibility:visible;
}

.sandy-period-tooltip-period{
    color:var(--gray-dark);
    font-size:12px;
    font-weight:1000;
    letter-spacing:.05em;
}

.sandy-period-tooltip-range{
    margin-bottom:8px;
    color:var(--orange-dark);
    font-size:10px;
    font-weight:900;
    letter-spacing:.04em;
}

.sandy-period-tooltip-grid{
    display:grid;
    grid-template-columns:auto auto;
    gap:4px 12px;
    align-items:center;
}

.sandy-period-tooltip-grid span{
    color:var(--muted);
    font-size:9.5px;
    font-weight:900;
    letter-spacing:.05em;
}

.sandy-period-tooltip-grid strong{
    color:var(--gray-dark);
    font-size:11.5px;
    font-weight:1000;
    text-align:right;
    white-space:nowrap;
}

@media (max-width:900px){
    .sandy-period-footer{
        justify-content:center;
    }

    .sandy-period-legend{
        justify-content:center;
    }
}

.tabla-original-card{
    margin-top:16px;
    overflow:hidden;
}
.tabla-original-card .table-header{
    padding-bottom:10px;
}
.tabla-original-subtitle{
    margin-top:3px;
    color:var(--muted);
    font-size:9.5px;
    font-weight:850;
    letter-spacing:.04em;
}
.tabla-original-range{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#f7f8fa;
    color:var(--gray);
    font-size:10px;
    font-weight:900;
    white-space:nowrap;
}
.tabla-original-wrap{
    max-height:none;
    overflow:auto;
}
.tabla-original{
    width:100%;
    border-collapse:collapse;
    font-size:10px;
}
.tabla-original th{
    position:sticky;
    top:0;
    z-index:2;
    white-space:nowrap;
}
.tabla-original td{
    white-space:nowrap;
}
.tabla-original tbody tr:nth-child(even){
    background:#fafbfc;
}
.tabla-original tbody tr:hover{
    background:#fff6ef;
}
.tabla-pd-card{
    margin-top:12px;
}
.tabla-pd-warning{
    margin:0 14px 10px;
    padding:8px 10px;
    border:1px solid #f3d5bf;
    border-radius:10px;
    background:#fff8f3;
    color:#8a4b22;
    font-size:10px;
    font-weight:850;
}

.tabla-pedidos-agrupada{
    border-collapse:collapse;
}

.tabla-pedidos-agrupada tr:nth-child(even){
    background:transparent;
}

.tabla-pedidos-agrupada tr:hover{
    background:transparent;
}

.pedido-toggle-col,
.pedido-toggle-cell{
    width:74px;
    min-width:74px;
    text-align:center;
    vertical-align:middle;
}

.pedido-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-height:26px;
    padding:3px 9px;
    border:1px solid var(--line-strong);
    border-radius:999px;
    background:#fff;
    color:var(--gray-dark);
    font-family:inherit;
    font-size:12px;
    font-weight:1000;
    line-height:1;
    cursor:pointer;
    transition:background .15s var(--ease), color .15s var(--ease),
               border-color .15s var(--ease), box-shadow .15s var(--ease);
}

.pedido-toggle:hover{
    border-color:var(--orange);
    background:var(--orange-soft);
    color:var(--orange-dark);
    box-shadow:0 6px 14px rgba(255,100,0,.12);
}

.pedido-toggle-signo{
    display:inline-block;
    width:9px;
    font-size:14px;
    text-align:center;
}

.pedido-toggle-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    padding:1px 5px;
    border-radius:999px;
    background:var(--gray-soft-2);
    color:var(--gray);
    font-size:10px;
    font-weight:900;
}

.pedido-row.is-open .pedido-toggle{
    background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);
    color:#fff;
    border-color:var(--orange-dark);
    box-shadow:0 8px 18px rgba(255,100,0,.22);
}

.pedido-row.is-open .pedido-toggle-count{
    background:rgba(255,255,255,.24);
    color:#fff;
}

.pedido-row > td{
    background:#fff;
    font-weight:800;
}

.pedido-row:hover > td{
    background:#fff8f3;
}

.pedido-row.is-open > td{
    background:var(--orange-soft);
    border-bottom-color:var(--orange-line);
}

.pedido-row > td.concat-pedidos,
.pedido-row > td.match-si,
.pedido-row > td.match-no,
.pedido-row > td.total-pedido-cell,
.pedido-row > td.total-facturado-cell,
.pedido-row > td.fecha-factura-ok,
.pedido-row > td.fecha-factura-no,
.pedido-row > td.on-time-ok,
.pedido-row > td.on-time-no,
.pedido-row > td.fillrate-ok{
    background-color:inherit;
}

.pedido-linea[hidden]{
    display:none;
}

.pedido-linea > td{
    background:#fbfbfc;
    color:var(--gray);
    font-size:12.5px;
    font-weight:600;
}

.pedido-linea:hover > td{
    background:#f5f6f8;
}

.pedido-linea > td:first-child{
    background:#f3f4f6;
}

.pedido-linea-marca{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--line);
    color:var(--muted);
    font-size:10px;
    font-weight:900;
}

.pedido-toggle-all{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:26px;
    min-height:22px;
    padding:2px 8px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-family:inherit;
    font-size:13px;
    font-weight:1000;
    line-height:1;
    cursor:pointer;
    transition:background .15s var(--ease), border-color .15s var(--ease);
}

.pedido-toggle-all:hover{
    background:var(--orange);
    border-color:var(--orange-dark);
}

.dashboard-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
}

.sandy-indicator-panel{
    grid-column:1 / -1;
}

.fillrate-indicator{
    display:grid;
    grid-template-columns:360px minmax(0, 1fr);
    gap:24px;
    align-items:center;
    padding:18px 20px;
    border:1px solid #eceff2;
    border-radius:20px;
    background:linear-gradient(135deg,#fff8f3 0%,#ffffff 58%,#f7f8fa 100%);
    position:relative;
    overflow:hidden;
}

.fillrate-donut{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:center;
    justify-items:center;
    gap:8px;
    position:relative;
    z-index:1;
}

.fillrate-donut svg{
    max-width:100%;
    height:auto;
}

.fillrate-metrics{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
    position:relative;
    z-index:1;
}

.fillrate-metric-col{
    background:#ffffff;
    border:1px solid #eceff2;
    border-radius:18px;
    padding:14px 16px;
    display:flex;
    flex-direction:column;
    gap:6px;
}

.fillrate-metric-col.col-dolares{
    background:linear-gradient(180deg,#fff8f3 0%,#ffffff 100%);
    border-color:#f4d7c2;
}

.fillrate-metric-col.col-unidades{
    background:linear-gradient(180deg,#f9fafb 0%,#ffffff 100%);
    border-color:#e6e8eb;
}

.fillrate-metric-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding-bottom:10px;
    border-bottom:1px solid #eceff2;
    margin-bottom:4px;
}

.fillrate-metric-title{
    font-size:13px;
    font-weight:1000;
    color:var(--gray-dark);
    letter-spacing:.08em;
}

.fillrate-metric-fillrate{
    margin:0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 16px;
    border-radius:999px;
    background:var(--gray-soft);
    border:1px solid #dfe1e5;
    color:var(--gray-dark);
    font-size:16px;
    font-weight:1000;
    letter-spacing:.02em;
    line-height:1;
    min-height:30px;
}

.fillrate-metric-symbol{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:32px;
    min-height:26px;
    padding:2px 9px;
    border-radius:999px;
    background:var(--orange-soft);
    color:var(--orange-dark);
    font-size:13px;
    font-weight:1000;
    border:1px solid #ffd0b1;
}

.fila-proyectado[hidden]{display:none !important;}
.fila-proyectado .fillrate-metric-label,
.fila-proyectado .fillrate-metric-value{color:#c25200;}

.fillrate-metric-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:6px 2px;
    width:100%;
    text-align:left;
    background:none;
    border:none;
    font-family:inherit;
}

.fillrate-metric-row + .fillrate-metric-row{
    border-top:1px dashed #eceff2;
}

.fillrate-metric-label{
    color:var(--muted);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    line-height:1.15;
    text-transform:uppercase;
}

.pending-row .fillrate-metric-label{
    max-width:118px;
}

.fillrate-metric-value{
    color:var(--text);
    font-size:14px;
    font-weight:900;
    text-align:right;
    white-space:nowrap;
}

.fillrate-rank-button{
    color:inherit;
    text-decoration:none;
    border-radius:10px;
    padding:8px 9px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .16s var(--ease), background .16s var(--ease),
               border-color .16s var(--ease), box-shadow .16s var(--ease);
}

.fillrate-rank-button:hover{
    transform:translateY(-1px);
    background:#fff;
    border-color:#e2e5e9;
    box-shadow:0 4px 10px rgba(64,66,71,.07);
}

.fillrate-rank-button.positive.active{
    background:var(--orange-soft);
    border-color:#ffb17f;
    box-shadow:0 4px 12px rgba(255,100,0,.12);
}

.fillrate-rank-button.negative.active{
    background:#fff3e8;
    border-color:#f9c9a0;
    box-shadow:0 4px 12px rgba(241,100,0,.11);
}

.fillrate-rank-button.positive.active .fillrate-metric-label{
    color:#d95700;
}

.fillrate-rank-button.negative.active .fillrate-metric-label{
    color:#c25200;
}

.pending-row{
    background:#f7f8fa;
    border:1px solid #e3e6ea;
    border-radius:10px;
    padding:8px 9px;
}

.pending-row .fillrate-metric-label,
.pending-row .fillrate-metric-value{
    color:#555b64;
}

.fillrate-metric-ontime .fillrate-metric-value{
    color:var(--gray-dark);
    font-size:12px;
}

.fillrate-rank-button.is-disabled{
    opacity:.42;
    pointer-events:none;
}

@media (max-width:1280px){
    .fillrate-indicator{
        grid-template-columns:1fr;
    }

    .indicador-doble .bloque-ontime{
        grid-template-columns:1fr !important;
    }

    .ontime-toolbar-strip{
        margin-bottom:12px;
        
        grid-template-columns:1fr;
    }
    .ontime-toolbar-form{
        grid-column:1;
        justify-self:stretch;
        transform:none;
        padding:0 12px;
    }
}

@media (max-width:980px){
    .fillrate-metrics{
        grid-template-columns:1fr;
    }

    .dashboard-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:620px){
    .fillrate-donut{
        grid-template-columns:1fr;
    }
}

.sandy-title-sentinel{
    height:1px;
    margin:0;
    padding:0;
    pointer-events:none;
}

.sandy-title-dock{
    position:sticky;
    top:10px;
    z-index:900;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0 auto 24px auto;
    
    transition:margin-bottom .28s var(--ease);
}

.sandy-title-dock h1{
    position:relative;
    flex:0 1 auto;
    margin:0;
    max-width:560px;
    padding:18px 28px;
    font-size:30px;
    line-height:1.05;
    letter-spacing:.12em;
    white-space:normal;
    transition:font-size .28s var(--ease),
               padding .28s var(--ease),
               letter-spacing .28s var(--ease),
               box-shadow .28s ease;
    will-change:font-size, padding;
}

.sandy-title-dock.is-stuck{
    margin-bottom:14px;
}

.sandy-title-dock.is-stuck h1{
    flex:0 0 auto;
    width:auto;
    max-width:none;
    white-space:nowrap;
    font-size:clamp(11px, 1.45vw, 18px);
    padding:9px clamp(12px, 1.6vw, 22px);
    letter-spacing:.08em;
    box-shadow:0 8px 20px rgba(64,66,71,.30), 0 2px 6px rgba(64,66,71,.16);
}

.sandy-title-dock.is-collapsed h1{
    display:none;
}

.sandy-title-tab{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:24px;
    height:24px;
    padding:0;
    border:1px solid #d5d8dc;
    border-radius:8px;
    background:#ffffff;
    color:var(--muted);
    cursor:pointer;
    box-shadow:0 3px 10px rgba(64,66,71,.16);
    transition:border-color .15s ease, color .15s ease,
               background .15s ease, box-shadow .15s ease;
}

.sandy-title-tab:hover{
    border-color:var(--orange);
    background:var(--orange-soft);
    color:#c25200;
}

.sandy-title-tab svg{
    transition:transform .2s ease;
}

.sandy-title-dock.is-collapsed .sandy-title-tab svg{
    transform:rotate(180deg);
}

.sandy-nav{
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    display:flex;
    gap:6px;
    z-index:1;
}

.sandy-nav-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 16px;
    border:1px solid #d5d8dc;
    border-radius:999px;
    background:#ffffff;
    color:var(--gray);
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 3px 10px rgba(64,66,71,.16);
    transition:border-color .15s ease, color .15s ease,
               background .15s ease, box-shadow .15s ease;
}

.sandy-nav-btn:hover{
    border-color:var(--orange);
    background:var(--orange-soft);
    color:#c25200;
}

.sandy-nav-btn.is-active{
    border-color:var(--orange);
    background:var(--orange);
    color:#fff;
    cursor:default;
    box-shadow:0 6px 16px rgba(255,100,0,.28);
}

.sandy-nav-btn.is-active:hover{
    border-color:var(--orange);
    background:var(--orange);
    color:#fff;
}

.sandy-nav-btn:focus-visible{
    outline:2px solid var(--orange);
    outline-offset:2px;
}

@media (max-width:1180px){
    .sandy-title-dock{top:6px;}
    .sandy-title-dock.is-stuck h1{letter-spacing:.04em;}

    .sandy-title-dock{flex-wrap:wrap;}
    .sandy-nav{
        position:static;
        transform:none;
        order:-1;
        width:100%;
        justify-content:center;
        margin-bottom:8px;
    }
    .sandy-nav-btn{padding:7px 13px;font-size:11px;}
}

h1,
.filter-panel,
.summary-panel,
.active-filters,
.dashboard-grid,
.card,
.error{
    margin-left:auto;
    margin-right:auto;
}

@media (max-width:1100px){
    .panel-head,
    .summary-head,
    .vendor-summary-head{
        justify-content:center;
        align-items:center;
        text-align:center;
    }

    .summary-actions,
    .vendor-actions,
    .ranking-panel-controls,
    .indicator-head-controls,
    .panel-tags,
    .zone-buttons{
        align-items:center;
        justify-content:center;
    }

    .summary-left-block{
        align-items:center;
    }

    .vendor-actions{
        margin-left:0;
    }
}

html::after{
    content:"";
    position:fixed;
    top:0;
    left:0;
    z-index:99999;
    width:0;
    height:3px;
    border-radius:0 999px 999px 0;
    background:linear-gradient(90deg,#ff8f47 0%,var(--orange) 55%,var(--orange-dark) 100%);
    box-shadow:0 0 10px rgba(255,100,0,.55);
    opacity:0;
    pointer-events:none;
}

html.is-navigating::after{
    opacity:1;
    animation:page-progress 9s var(--ease) forwards;
}

html.is-navigating body{
    cursor:progress;
}

@keyframes page-progress{
    0%{width:0;}
    12%{width:32%;}
    45%{width:66%;}
    80%{width:86%;}
    100%{width:94%;}
}

@media (prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
    }
}
