:root{--imp-navy:#14213d;--imp-ink:#1f2937;--imp-muted:#6b7280;--imp-bg:#f4f6f8;--imp-line:#d9e0e8;--imp-accent:#0ea5a4;--imp-warn:#f59e0b;}
body{margin:0;background:var(--imp-bg);color:var(--imp-ink);font-family:Segoe UI,Arial,sans-serif;}
.imp-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr;}
.imp-sidebar{background:var(--imp-navy);color:#fff;padding:22px 18px;}
.imp-brand{display:flex;gap:12px;align-items:center;margin-bottom:26px;}
.imp-brand-mark{width:44px;height:44px;border-radius:8px;background:var(--imp-accent);display:grid;place-items:center;font-weight:700;}
.imp-brand-title{font-weight:700;font-size:18px;}.imp-brand-sub{font-size:12px;color:#b8c2d6;}
.imp-menu{display:flex;flex-direction:column;gap:6px;}.imp-menu-link{color:#d8e1f0;text-decoration:none;padding:10px 12px;border-radius:8px;display:flex;gap:10px;align-items:center;}
.imp-menu-link:hover{background:rgba(255,255,255,.10);color:#fff;}.imp-main{display:flex;flex-direction:column;min-width:0;}
.imp-topbar{height:76px;background:#fff;border-bottom:1px solid var(--imp-line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;}
.imp-topbar h1{font-size:22px;margin:0 0 4px 0;}.imp-user{display:flex;align-items:center;gap:10px;}.imp-user small{color:var(--imp-muted);}
.imp-content{padding:24px;flex:1;}.page-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px;}.page-title h2{font-size:26px;margin:0;}.page-title p{margin:4px 0 0;color:var(--imp-muted);}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}.metric-card,.panel{background:#fff;border:1px solid var(--imp-line);border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.05);}
.metric-card{padding:18px;}.metric-card span{color:var(--imp-muted);font-size:13px;}.metric-card strong{display:block;font-size:30px;margin:8px 0;}.metric-card small{color:var(--imp-muted);}.metric-warning{border-left:4px solid var(--imp-warn);}
.panel{padding:18px;}.panel-header{display:flex;justify-content:space-between;margin-bottom:10px;}.panel-header h3{font-size:18px;margin:0;}.activity-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;}.activity-list li{display:flex;gap:10px;color:#374151;}.activity-list i{color:var(--imp-accent);}
.product-thumb{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--imp-line);background:#fff;}.empty-state,.error-page{background:#fff;border:1px solid var(--imp-line);border-radius:8px;padding:40px;text-align:center;color:var(--imp-muted);}.error-page h2{font-size:64px;color:var(--imp-navy);}
.imp-footer{height:52px;border-top:1px solid var(--imp-line);background:#fff;color:var(--imp-muted);display:flex;gap:18px;align-items:center;padding:0 26px;font-size:13px;}
@media(max-width:900px){.imp-shell{grid-template-columns:1fr}.imp-sidebar{position:relative}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.imp-topbar{height:auto;padding:16px;align-items:flex-start}.page-title{flex-direction:column}.imp-user{flex-wrap:wrap}}
@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.imp-content{padding:16px}.imp-footer{height:auto;padding:14px;flex-direction:column;align-items:flex-start;gap:4px}}
.imp-row-warning td{background:#fff8e1!important;}.imp-row-linked td{background:#eefbf3!important;}.imp-match-note{display:block;font-size:12px;color:#6b7280;margin-top:2px;}

.imp-row-late td{background:#fee2e2!important;}.imp-provider-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}.imp-provider-chip{border:1px solid var(--imp-line);border-radius:8px;padding:12px;background:#fff}

/* Menu compacto para pantallas de trabajo con tablas */
.imp-shell{transition:grid-template-columns .18s ease;}
.imp-nav-toggle{position:absolute;opacity:0;pointer-events:none;}
.imp-nav-button{width:38px;height:38px;border:1px solid var(--imp-line);border-radius:8px;background:#fff;color:var(--imp-navy);display:grid;place-items:center;cursor:pointer;flex:0 0 auto;}
.imp-nav-button:hover{background:#eef6f6;border-color:#b7dada;}
.imp-nav-button i{font-size:20px;line-height:1;}
.imp-title-wrap{min-width:0;}
.imp-shell:has(.imp-nav-toggle:checked){grid-template-columns:76px 1fr;}
.imp-shell:has(.imp-nav-toggle:checked) .imp-sidebar{padding:18px 12px;}
.imp-shell:has(.imp-nav-toggle:checked) .imp-brand{justify-content:center;margin-bottom:18px;}
.imp-shell:has(.imp-nav-toggle:checked) .imp-brand-title,.imp-shell:has(.imp-nav-toggle:checked) .imp-brand-sub,.imp-shell:has(.imp-nav-toggle:checked) .imp-menu-link span{display:none;}
.imp-shell:has(.imp-nav-toggle:checked) .imp-brand-mark{width:42px;height:42px;}
.imp-shell:has(.imp-nav-toggle:checked) .imp-menu-link{justify-content:center;padding:11px 0;gap:0;}
.imp-shell:has(.imp-nav-toggle:checked) .imp-menu-link i{font-size:18px;}
.imp-content{font-size:14px;}
.imp-topbar{gap:14px;}
.imp-topbar h1{font-size:18px;}
.page-title h2{font-size:22px;}
.page-title p,.form-label,.table,.btn,.form-control,.form-select{font-size:13px;}
.table>:not(caption)>*>*{padding:.45rem .55rem;}
.panel{padding:14px;}
.metric-card{padding:14px;}.metric-card strong{font-size:24px;margin:4px 0;}.metric-card span{font-size:12px;}
.product-thumb{width:42px;height:42px;border-radius:6px;}
.imp-match-note{font-size:11px;}
@media(max-width:900px){.imp-shell:has(.imp-nav-toggle:checked){grid-template-columns:1fr}.imp-shell:has(.imp-nav-toggle:checked) .imp-sidebar{display:none}.imp-nav-button{display:grid}.imp-topbar{flex-direction:row}.imp-title-wrap{flex:1}}

/* Loading de analisis Excel */
.imp-import-form{position:relative;}
.imp-upload-loading{display:none;align-items:center;gap:12px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:8px;padding:12px 14px;}
.imp-upload-loading span{color:#475569;}
.imp-submit-busy{display:none;align-items:center;gap:6px;}
.imp-import-form.up-loading .imp-upload-loading,.imp-import-form.up-active .imp-upload-loading,.imp-import-form[aria-busy="true"] .imp-upload-loading{display:flex;}
.imp-import-form.up-loading .imp-submit-ready,.imp-import-form.up-active .imp-submit-ready,.imp-import-form[aria-busy="true"] .imp-submit-ready{display:none;}
.imp-import-form.up-loading .imp-submit-busy,.imp-import-form.up-active .imp-submit-busy,.imp-import-form[aria-busy="true"] .imp-submit-busy{display:inline-flex;}
.imp-import-form.up-loading .imp-submit-button,.imp-import-form.up-active .imp-submit-button,.imp-import-form[aria-busy="true"] .imp-submit-button{pointer-events:none;opacity:.85;}

/* Formulario de importacion mas claro */
.imp-focus:focus,.form-control:focus,.form-select:focus{border-color:#0ea5a4;box-shadow:0 0 0 .22rem rgba(14,165,164,.22);outline:0;}
.imp-file-input::file-selector-button{background:#0ea5a4;color:#fff;border:0;border-radius:6px;padding:.45rem .75rem;margin-right:12px;font-weight:600;cursor:pointer;}
.imp-file-input:hover::file-selector-button{background:#0f766e;}
.imp-readonly-box{min-height:38px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;}
.imp-readonly-box strong{font-size:13px;color:#1e3a8a;}.imp-readonly-box span{font-size:12px;color:#64748b;}
.was-validated .form-control:invalid,.was-validated .form-select:invalid,.form-control:invalid:not(:placeholder-shown){border-color:#dc3545;}

/* Overlay moderno para POST normal de Excel */
.imp-page-loading{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.55);backdrop-filter:blur(5px);padding:18px;}
body.imp-uploading .imp-page-loading{display:flex;}
.imp-loader-card{width:min(440px,100%);background:#fff;border:1px solid #dbeafe;border-radius:12px;box-shadow:0 24px 70px rgba(15,23,42,.28);padding:28px;text-align:center;}
.imp-loader-card h3{font-size:20px;margin:14px 0 8px;color:#14213d;}
.imp-loader-card p{margin:0;color:#64748b;font-size:14px;line-height:1.45;}
.imp-loader-orbit{width:72px;height:72px;border-radius:50%;border:5px solid #dbeafe;border-top-color:#0ea5a4;margin:0 auto;animation:impSpin .85s linear infinite;display:grid;place-items:center;}
.imp-loader-orbit span{width:20px;height:20px;border-radius:50%;background:#0ea5a4;box-shadow:0 0 0 8px rgba(14,165,164,.12);}
.imp-loader-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;}
.imp-loader-steps span{border:1px solid #dbeafe;background:#eff6ff;color:#1e3a8a;border-radius:999px;padding:6px 8px;font-size:12px;font-weight:600;}
@keyframes impSpin{to{transform:rotate(360deg)}}
.imp-import-form[aria-busy="true"] .imp-upload-loading{display:flex;}
.imp-import-form[aria-busy="true"] .imp-submit-ready{display:none;}
.imp-import-form[aria-busy="true"] .imp-submit-busy{display:inline-flex;}
.imp-import-form[aria-busy="true"] .imp-submit-button{pointer-events:none;opacity:.85;}
/* Login Soft UI / Neumorfismo */
.soft-login-page{min-height:calc(100vh - 180px);display:grid;grid-template-columns:minmax(320px,1.08fr) minmax(320px,.92fr);gap:42px;align-items:center;padding:clamp(12px,3vw,36px);background:#e9eef5;border-radius:28px;}
.soft-login-panel,.soft-login-card{border-radius:30px;background:#e9eef5;box-shadow:18px 18px 38px #c5ccd6,-18px -18px 38px #ffffff;}
.soft-login-panel{min-height:560px;padding:42px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;}
.soft-login-panel:before{content:"";position:absolute;right:-110px;top:-110px;width:310px;height:310px;border-radius:50%;background:#dce6f2;box-shadow:inset 16px 16px 32px #c5ccd6,inset -16px -16px 32px #ffffff;}
.soft-login-brand{display:flex;gap:14px;align-items:center;position:relative;z-index:1;}
.soft-login-logo{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-weight:800;color:#0f766e;background:#e9eef5;box-shadow:8px 8px 18px #c5ccd6,-8px -8px 18px #ffffff;}
.soft-login-brand span{display:block;font-weight:800;font-size:18px;}.soft-login-brand small{display:block;color:#667085;font-size:13px;margin-top:2px;}
.soft-login-copy{position:relative;z-index:1;max-width:600px;}.soft-kicker{display:inline-flex;padding:8px 14px;border-radius:999px;color:#0f766e;background:#e9eef5;box-shadow:inset 5px 5px 10px #cbd2dc,inset -5px -5px 10px #ffffff;font-weight:700;font-size:12px;letter-spacing:0;text-transform:uppercase;}
.soft-login-copy h1{font-size:clamp(42px,6vw,76px);line-height:.96;margin:20px 0;color:#1f2a44;font-weight:800;letter-spacing:0;}.soft-login-copy p:last-child{font-size:17px;line-height:1.6;color:#667085;margin:0;max-width:520px;}
.soft-login-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;position:relative;z-index:1;}.soft-login-stats div{border-radius:20px;padding:18px;background:#e9eef5;box-shadow:inset 7px 7px 14px #cbd2dc,inset -7px -7px 14px #ffffff;}.soft-login-stats strong{display:block;font-size:18px;color:#243044;}.soft-login-stats span{font-size:12px;color:#667085;}
.soft-login-card{padding:38px;max-width:460px;width:100%;justify-self:center;}.soft-card-head{display:flex;gap:16px;align-items:center;margin-bottom:30px;}.soft-icon{width:58px;height:58px;border-radius:19px;display:grid;place-items:center;color:#0f766e;background:#e9eef5;box-shadow:8px 8px 18px #c5ccd6,-8px -8px 18px #ffffff;}.soft-icon i{font-size:25px;}.soft-card-head h2{font-size:30px;margin:0;color:#1f2a44;font-weight:800;}.soft-card-head p{margin:3px 0 0;color:#667085;}
.soft-login-form{display:grid;gap:12px;}.soft-login-form label{font-size:13px;color:#526070;font-weight:700;margin-left:6px;}.soft-input{height:56px;border-radius:18px;background:#e9eef5;box-shadow:inset 7px 7px 14px #cbd2dc,inset -7px -7px 14px #ffffff;display:flex;align-items:center;gap:12px;padding:0 18px;}.soft-input i{color:#0f766e;font-size:18px;}.soft-input input{border:0;outline:0;background:transparent;width:100%;font-size:15px;color:#243044;}.soft-input input::placeholder{color:#8994a3;}
.soft-login-button{height:58px;border:0;border-radius:18px;margin-top:12px;background:#0f766e;color:#fff;font-weight:800;box-shadow:10px 10px 22px #c5ccd6,-10px -10px 22px #ffffff;display:flex;align-items:center;justify-content:center;gap:9px;}.soft-login-button:hover{background:#0d665f;}.soft-login-button:active{box-shadow:inset 6px 6px 12px #0b5953,inset -6px -6px 12px #13857c;}
.soft-login-note{display:flex;gap:10px;margin-top:22px;padding:14px;border-radius:18px;color:#667085;font-size:13px;background:#e9eef5;box-shadow:inset 6px 6px 12px #cbd2dc,inset -6px -6px 12px #ffffff;}.soft-login-note i{color:#0f766e;}
@media(max-width:920px){.soft-login-page{grid-template-columns:1fr;padding:18px}.soft-login-panel{min-height:auto}.soft-login-card{max-width:none}.soft-login-stats{grid-template-columns:1fr}.soft-login-copy h1{font-size:42px;}}
.soft-login-body{min-height:100vh;background:#e9eef5;color:#243044;font-family:Segoe UI,Arial,sans-serif;}
.soft-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.08fr) minmax(320px,.92fr);gap:42px;align-items:center;padding:clamp(24px,5vw,72px);}
@media(max-width:920px){.soft-login-shell{grid-template-columns:1fr;padding:22px}}
