.isw-prod-overlay { display:none; position:fixed !important; inset:0; background:rgba(0,0,0,0.55); z-index:93000 !important; }
.isw-prod-overlay.open { display:block; }
.isw-prod-modal { display:none; position:fixed !important; top:7vh !important; left:13vw !important; width:74vw !important; height:84vh !important; background:#fff; z-index:93001 !important; flex-direction:column; font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif; font-size:14px; overflow:hidden; box-shadow:0 8px 40px rgba(0,0,0,0.35); }
.isw-prod-modal.open { display:flex !important; }

/* ===== HEADER ===== */
.isw-prod-header { display:flex; align-items:center; background:#1a2744; color:#fff; flex-shrink:0; }
.isw-prod-header-info { flex:1; padding:12px 18px; display:flex; flex-direction:column; justify-content:center; gap:4px; min-width:0; }
.isw-prod-header-sub { font-size:11px; font-weight:700; letter-spacing:1px; color:rgba(255,255,255,0.55); }
.isw-prod-header-title { font-size:22px; font-weight:700; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.isw-prod-header-badges { display:flex; gap:6px; margin-top:3px; }
.isw-prod-badge { font-size:11px; font-weight:700; padding:3px 9px; background:rgba(255,255,255,0.15); display:inline-flex; align-items:center; gap:4px; }
.isw-prod-badge.green { background:#27ae60; }
.isw-prod-badge.blue { background:#2980b9; }
.isw-prod-hclose { background:transparent; border:none; color:#fff; font-size:22px; cursor:pointer; width:46px; align-self:stretch; }
.isw-prod-hclose:hover { background:rgba(255,255,255,0.12); }

/* ===== BODY ===== */
.isw-prod-body { display:flex; flex:1; min-height:0; overflow:hidden; }

/* SIDEBAR */
.isw-prod-sidebar { width:210px; min-width:210px; background:#ededed; border-right:2px solid #ccc; display:flex; flex-direction:column; overflow-y:auto; padding-bottom:10px; }
.isw-prod-sb-fotobtn { margin:10px; padding:6px; font-size:11px; font-weight:700; border:none; cursor:pointer; background:#3498db; color:#fff; display:flex; align-items:center; justify-content:center; gap:5px; }
.isw-prod-sb-fotobtn:hover { background:#2980b9; }
.isw-prod-sb-section { border-top:1px solid #d5d5d5; padding:10px 14px; }
.isw-prod-sb-title { font-size:11px; font-weight:800; text-transform:uppercase; color:#1a2744; margin-bottom:7px; display:flex; align-items:center; gap:6px; }
.isw-prod-sb-stat { display:flex; justify-content:space-between; padding:3px 0; font-size:13px; color:#555; }
.isw-prod-sb-val { font-weight:700; color:#1a2744; }
.isw-prod-sb-field { margin-bottom:7px; }
.isw-prod-sb-field label { display:block; font-size:10px; font-weight:700; text-transform:uppercase; color:#888; margin-bottom:2px; }
.isw-prod-sb-field select { width:100%; padding:4px 6px; border:1px solid #bbb; font-size:12px; font-family:inherit; box-sizing:border-box; background:#fff; }
.isw-prod-sb-field span { font-size:13px; font-weight:700; color:#1a2744; }

/* MAIN */
.isw-prod-main { flex:1; display:flex; flex-direction:column; min-width:0; }
.isw-prod-tabs { display:flex; background:#f0f0f0; border-bottom:2px solid #ddd; flex-shrink:0; }
.isw-prod-tab { padding:9px 18px; font-size:13px; font-weight:600; color:#555; cursor:pointer; border:none; background:none; border-bottom:3px solid transparent; white-space:nowrap; }
.isw-prod-tab i { margin-right:5px; }
.isw-prod-tab:hover { color:#27ae60; background:#e8f8f0; }
.isw-prod-tab.active { color:#27ae60; border-bottom-color:#27ae60; background:#fff; }
.isw-prod-tabwrap { flex:1; overflow-y:auto; padding:16px 20px; }
.isw-prod-pane { display:none; }
.isw-prod-pane.active { display:block; }

/* TAB DATOS: foto izquierda + campos derecha */
.isw-prod-datos-grid { display:grid; grid-template-columns:240px 1fr; gap:22px; margin-bottom:12px; }
.isw-prod-datos-foto { display:flex; flex-direction:column; gap:8px; }
.isw-prod-foto-wrap { width:100%; height:298px; border:2px dashed #ccc; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#fafafa; }
.isw-prod-foto-wrap img { width:100%; height:100%; object-fit:contain; cursor:zoom-in; }
.isw-prod-datos-campos { min-width:0; }

/* FILAS DE FORMULARIO ANCHAS */
.isw-prod-frow { margin-bottom:12px; }
.isw-prod-frow > label { display:block; font-size:12px; font-weight:700; text-transform:uppercase; color:#1a2744; letter-spacing:0.3px; margin-bottom:4px; }
.isw-prod-frow > label i { color:#27ae60; margin-right:4px; }
.isw-prod-frow > label .req { color:#e74c3c; }
.isw-prod-frow input, .isw-prod-frow select {
    width:100%; padding:8px 10px; border:1px solid #ccc; font-size:14px; font-family:inherit; box-sizing:border-box;
}
.isw-prod-frow input:focus, .isw-prod-frow select:focus { outline:none; border-color:#27ae60; box-shadow:0 0 0 2px rgba(39,174,96,0.12); }
.isw-prod-frow-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.isw-prod-frow-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
.isw-prod-flabel { display:block; font-size:12px; font-weight:800; text-transform:uppercase; color:#1a2744; border-bottom:2px solid #ddd; padding-bottom:4px; margin-bottom:10px; }
.isw-prod-flabel i { color:#27ae60; }

.isw-prod-quillbox { background:#fff; border:1px solid #ccc; font-size:13px; }
#isw-prod-desc-quill { min-height:130px; }

.isw-prod-btn-sm { padding:6px 12px; font-size:12px; font-weight:600; border:none; cursor:pointer; background:#3498db; color:#fff; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.isw-prod-btn-sm.green { background:#27ae60; }
.isw-prod-btn-sm:hover { opacity:0.9; }

.isw-prod-input { padding:7px 9px; border:1px solid #ccc; font-size:13px; font-family:inherit; box-sizing:border-box; }

/* CARACTERISTICAS */
.isw-prod-caract-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:20px; }
.isw-prod-caract-desc { min-width:0; }
.isw-prod-caract-desc .isw-prod-quillbox { max-height:240px; }
.isw-prod-caract-desc .ql-editor { max-height:192px; overflow-y:auto; }
.isw-prod-caract-imgs { min-width:0; }
.isw-prod-img2-slot { width:100%; height:188px; border:2px dashed #ccc; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#fafafa; margin-bottom:6px; cursor:pointer; }
.isw-prod-img2-slot img { width:100%; height:100%; object-fit:contain; cursor:zoom-in; }
.isw-prod-caract-imgs .isw-prod-btn-sm { width:100%; justify-content:center; }

/* CALCULO PVP */
.isw-prod-calc-src { margin-left:auto; font-size:10px; font-weight:600; color:#888; text-transform:none; }
.isw-prod-calc-src select { padding:2px 5px; border:1px solid #ccc; font-size:11px; font-family:inherit; }
.isw-prod-calc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px 22px; background:#f7f9fa; border:1px solid #e3e8ec; padding:14px 18px; margin-bottom:6px; }
.isw-prod-calc-col { min-width:0; }
.isw-prod-calc-col .isw-prod-frow { margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.isw-prod-calc-col .isw-prod-frow label { margin-bottom:0; flex:0 0 116px; display:flex; align-items:center; gap:4px; font-size:10px; }
.isw-prod-calc-col .isw-prod-frow input { padding:6px 8px; text-align:right; flex:1; }
.isw-prod-calc-col .isw-prod-frow input.stockf { background:#e0f7fa; }
.isw-prod-calc-val { flex:1; font-weight:700; color:#1a2744; font-size:14px; text-align:right; padding:6px 8px; background:#fff; border:1px solid #e3e8ec; }
.isw-prod-calc-val.strong { font-size:16px; font-weight:800; color:#27ae60; }

/* COMP / PROV */
.isw-prod-comp-bar { display:flex; gap:8px; align-items:center; margin-bottom:10px; }
.isw-prod-comp-table { width:100%; border-collapse:collapse; font-size:13px; }
.isw-prod-comp-table th { background:#2c3e50; color:#fff; padding:6px 8px; text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; }
.isw-prod-comp-table td { padding:6px 8px; border-bottom:1px solid #eee; }
.isw-prod-comp-table tr:hover { background:#f3f9f5; }
.isw-prod-empty { text-align:center; padding:24px; color:#999; font-size:13px; }

.isw-prod-prov-overlay { display:none; position:fixed !important; inset:0; background:rgba(0,0,0,0.45); z-index:93500 !important; }
.isw-prod-prov-overlay.open { display:block; }
.isw-prod-prov-modal { display:none; position:fixed !important; top:50%; left:50%; transform:translate(-50%,-50%); width:560px; max-width:92vw; background:#fff; z-index:93501 !important; flex-direction:column; box-shadow:0 12px 48px rgba(0,0,0,0.4); }
.isw-prod-prov-modal.open { display:flex !important; }
.isw-prod-prov-mhead { display:flex; align-items:center; padding:9px 16px; background:#27ae60; color:#fff; font-size:14px; font-weight:700; }
.isw-prod-prov-mhead span { flex:1; }
.isw-prod-prov-mclose { background:transparent; border:none; color:#fff; font-size:18px; cursor:pointer; width:28px; height:28px; }
.isw-prod-prov-mbody { padding:14px 16px; }
.isw-prod-prov-mfoot { display:flex; gap:8px; padding:10px 16px; background:#f0f0f0; border-top:1px solid #ddd; }
.isw-prod-prov-dd { position:absolute; top:0; left:0; right:0; background:#fff; border:1px solid #ccc; box-shadow:0 4px 12px rgba(0,0,0,0.15); z-index:100; max-height:220px; overflow-y:auto; }
.isw-prod-prov-dd-item { padding:7px 11px; cursor:pointer; font-size:13px; border-bottom:1px solid #f0f0f0; }
.isw-prod-prov-dd-item:hover { background:#e8f8f0; }
.isw-prod-prov-dd-item span { color:#888; font-size:11px; }

/* FOOTER */
.isw-prod-footer { display:flex; align-items:center; gap:8px; padding:8px 16px; background:#1a2744; flex-shrink:0; }
.isw-prod-fbtn { padding:8px 16px; font-size:13px; font-weight:700; border:none; cursor:pointer; color:#fff; display:inline-flex; align-items:center; gap:6px; }
.isw-prod-fbtn:hover { opacity:0.9; }
.isw-prod-fbtn.save { background:#2980b9; }
.isw-prod-fbtn.new { background:#27ae60; }
.isw-prod-fbtn.del { background:#e74c3c; }
.isw-prod-fbtn.close { background:#5a6478; }

/* LIGHTBOX */
.isw-prod-lightbox { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.85); z-index:94500; align-items:center; justify-content:center; }
.isw-prod-lightbox.open { display:flex; }
.isw-prod-lightbox img { max-width:90vw; max-height:90vh; object-fit:contain; box-shadow:0 8px 40px rgba(0,0,0,0.6); }
.isw-prod-lightbox-close { position:absolute; top:18px; right:24px; color:#fff; font-size:30px; cursor:pointer; }

@media (max-width:1000px) {
    .isw-prod-modal { left:2vw !important; width:96vw !important; }
    .isw-prod-caract-grid { grid-template-columns:1fr; }
    .isw-prod-datos-grid { grid-template-columns:1fr; }
    .isw-prod-calc-grid { grid-template-columns:1fr; }
    .isw-prod-frow-2, .isw-prod-frow-3 { grid-template-columns:1fr; }
}
