*{box-sizing:border-box;margin:0;padding:0}
:root{
  --red:#b51f24;--red-dark:#8e161a;--blue:#0d4f91;--navy:#092f5c;
  --ink:#101828;--text:#344054;--muted:#667085;--line:#e4e7ec;
  --soft:#f4f6f9;--white:#fff;--green:#087a38;--amber:#b54708;
  --shadow:0 16px 44px rgba(16,24,40,.11)
}
body{font-family:Inter,sans-serif;background:var(--soft);color:var(--text);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.eyebrow{display:block;color:var(--red);font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;margin-bottom:5px}
.btn{border:1px solid transparent;border-radius:10px;padding:11px 17px;font-weight:800;transition:.2s}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.primary{background:var(--red);color:#fff}.primary:hover{background:var(--red-dark)}
.secondary{background:#fff;border-color:var(--line);color:var(--navy)}
.full{width:100%}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#edf3f9,#fff)}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:var(--shadow)}
.auth-logo{width:190px;height:70px;object-fit:contain;display:block;margin:0 auto 24px}
.auth-card h1{font-family:Rajdhani,sans-serif;font-size:2.3rem;color:var(--navy)}
.auth-card>p{color:var(--muted);margin:6px 0 22px}
.auth-card label,.modal-card label{display:block;font-size:.87rem;font-weight:700;color:var(--ink);margin-bottom:15px}
.auth-card input,.modal-card input,.modal-card select,.modal-card textarea,.toolbar select{
  width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;outline:none
}
.auth-card input:focus,.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus,.toolbar select:focus{border-color:var(--blue)}
.form-message{min-height:22px;margin-top:10px;text-align:center;font-size:.86rem;font-weight:700;color:var(--red)}
.back-link{display:block;text-align:center;margin-top:12px;color:var(--blue);text-decoration:none;font-weight:700;font-size:.87rem}
.app{min-height:100vh}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:var(--navy);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:500}
.sidebar-brand{display:block;background:#fff;border-radius:12px;padding:5px;margin-bottom:30px}
.sidebar-brand img{width:100%;height:65px;object-fit:contain}
.side-nav{display:grid;gap:8px}
.side-link{border:0;background:transparent;color:#bfd0e3;border-radius:10px;padding:13px 14px;text-align:left;font-weight:700;display:flex;gap:12px;align-items:center}
.side-link:hover,.side-link.active{background:rgba(255,255,255,.11);color:#fff}
.sidebar-footer{margin-top:auto;display:grid;gap:9px}
.store-link,.logout-link{border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;border-radius:9px;padding:11px;text-align:center;text-decoration:none;font-weight:700;font-size:.86rem}
.logout-link{color:#ffd4d6}
.main{margin-left:250px;min-height:100vh}
.top-header{height:92px;background:#fff;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;gap:20px;position:sticky;top:0;z-index:100}
.top-header h1{font-family:Rajdhani,sans-serif;color:var(--navy);font-size:2rem;line-height:1}
.mobile-menu{display:none;border:0;background:#f2f4f7;border-radius:8px;padding:9px 11px}
.user-box{margin-left:auto;display:flex;align-items:center;gap:10px}
.user-avatar{width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:900}
.user-box strong,.user-box small{display:block}.user-box strong{color:var(--ink);font-size:.88rem}.user-box small{color:var(--muted);font-size:.75rem}
.content-section{padding:32px 34px 50px}
.section-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}
.section-intro h2{font-family:Rajdhani,sans-serif;color:var(--navy);font-size:2rem}
.section-intro p{color:var(--muted)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}
.metric-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;align-items:center;gap:15px;box-shadow:0 8px 25px rgba(16,24,40,.045)}
.metric-icon{width:50px;height:50px;border-radius:13px;background:#edf4fb;display:grid;place-items:center;font-size:1.35rem}
.metric-card.warning .metric-icon{background:#fff2e8}
.metric-card small,.metric-card strong{display:block}.metric-card small{color:var(--muted);font-size:.78rem}.metric-card strong{color:var(--navy);font-size:1.75rem}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.panel,.table-panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 25px rgba(16,24,40,.04)}
.panel{padding:22px}
.panel-heading{margin-bottom:15px}.panel-heading h3{color:var(--ink)}.panel-heading p{color:var(--muted);font-size:.84rem}
.compact-list{display:grid;gap:10px}
.compact-item{display:grid;grid-template-columns:44px 1fr auto;gap:11px;align-items:center;padding:10px;border:1px solid #edf0f3;border-radius:11px}
.compact-thumb{width:44px;height:44px;border-radius:9px;background:#f2f4f7;display:grid;place-items:center;overflow:hidden;font-size:1.3rem}
.compact-thumb img{width:100%;height:100%;object-fit:cover}
.compact-info strong,.compact-info small{display:block}.compact-info strong{color:var(--ink);font-size:.86rem}.compact-info small{color:var(--muted);font-size:.75rem}
.compact-value{font-weight:900;color:var(--red)}
.no-data{color:var(--muted);padding:20px;text-align:center;border:1px dashed var(--line);border-radius:10px}
.toolbar{display:grid;grid-template-columns:1fr 220px 190px;gap:12px;margin-bottom:16px}
.search-control{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 13px}
.search-control input{width:100%;border:0;outline:none;padding:12px 0;background:transparent}
.table-meta{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.82rem}
.table-scroll{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:850px}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid #edf0f3}
th{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#fafbfc}
td{font-size:.86rem}
.product-cell{display:flex;align-items:center;gap:11px}
.product-thumb{width:48px;height:48px;border-radius:9px;background:#f2f4f7;display:grid;place-items:center;overflow:hidden;font-size:1.4rem}
.product-thumb img{width:100%;height:100%;object-fit:cover}
.product-name strong,.product-name small{display:block}.product-name strong{color:var(--ink)}.product-name small{color:var(--muted)}
.stock-badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800;background:#eaf8ef;color:var(--green)}
.stock-badge.low{background:#fff2e8;color:var(--amber)}.stock-badge.out{background:#fdecec;color:var(--red)}
.action-group{display:flex;gap:7px}
.icon-button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-weight:800;font-size:.75rem}
.icon-button.edit{color:var(--blue)}.icon-button.delete{color:var(--red)}
.empty-table{padding:32px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.modal-backdrop{position:absolute;inset:0;background:rgba(3,12,25,.72);backdrop-filter:blur(4px)}
.modal-card{position:relative;width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.3)}
.modal-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px}
.modal-header h2{font-family:Rajdhani,sans-serif;color:var(--navy);font-size:2rem}
.modal-close{width:40px;height:40px;border:0;border-radius:50%;background:#f2f4f7;font-weight:900}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.image-preview-box{min-height:170px;border:2px dashed #ccd4de;border-radius:12px;background:#fafbfc;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.82rem;margin-bottom:18px}
.image-preview-box img{width:100%;height:220px;object-fit:contain}
.modal-actions{display:flex;justify-content:flex-end;gap:10px}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:800px){
  .sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}
  .main{margin-left:0}.mobile-menu{display:block}.top-header{padding:0 18px}.content-section{padding:24px 18px}
  .toolbar{grid-template-columns:1fr}.user-box small{display:none}
}
@media(max-width:560px){.metric-grid,.form-grid{grid-template-columns:1fr}.section-intro{align-items:stretch;flex-direction:column}.section-intro .btn{width:100%}.modal-card{padding:20px}}


/* Importación desde Excel */
.section-actions{display:flex;gap:10px;flex-wrap:wrap}
.import-card{width:min(1000px,100%)}
.file-drop{
  border:2px dashed #b8c5d3!important;border-radius:16px!important;
  min-height:150px;display:flex!important;flex-direction:column;align-items:center;
  justify-content:center;background:#f8fafc;cursor:pointer;text-align:center;padding:22px;
}
.file-drop:hover{border-color:var(--blue)!important;background:#f2f7fc}
.file-drop input{display:none}
.file-drop-icon{font-size:2.2rem;margin-bottom:6px}
.file-drop strong{color:var(--navy);font-size:1rem}
.file-drop small{color:var(--muted);margin-top:4px}
.import-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.import-options label{margin-bottom:0}
.check-option{display:flex!important;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;margin-top:0!important}
.check-option input{width:auto!important;margin:0!important}
.import-summary{margin-top:22px}
.import-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}
.import-kpis article{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fafbfc}
.import-kpis small,.import-kpis strong{display:block}
.import-kpis small{color:var(--muted);font-size:.72rem}
.import-kpis strong{color:var(--navy);font-size:1.45rem;margin-top:3px}
.mapping-note{padding:11px 13px;border-radius:10px;background:#edf4fb;color:var(--navy);font-size:.82rem;margin-bottom:16px}
.preview-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}
.preview-heading h3{color:var(--ink)}.preview-heading p{color:var(--muted);font-size:.8rem}
.import-preview-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px}
.import-preview-table{min-width:760px}
.import-preview-table th,.import-preview-table td{padding:10px 12px;font-size:.78rem}
.import-errors{margin-top:15px;border:1px solid #f5b7b9;background:#fff7f7;border-radius:12px;padding:14px}
.import-errors h3{font-size:.92rem;color:var(--red);margin-bottom:8px}
.import-error-item{font-size:.78rem;color:#8e161a;padding:5px 0;border-bottom:1px solid #f5d5d6}
.import-error-item:last-child{border-bottom:0}
.import-progress{margin-top:18px}
.progress-track{height:12px;border-radius:999px;background:#e7ebf0;overflow:hidden}
.progress-bar{height:100%;width:0;background:var(--red);transition:width .2s}
.import-progress p{text-align:center;color:var(--muted);font-size:.82rem;margin-top:7px}
@media(max-width:700px){
  .import-options,.import-kpis{grid-template-columns:1fr 1fr}
  .section-actions{width:100%}.section-actions .btn{flex:1}
}
@media(max-width:480px){
  .import-options,.import-kpis{grid-template-columns:1fr}
}
