/* =========================================================
   Contabilidad Empresarial - Estilos del frontend
   ========================================================= */
.ctbl-front{max-width:1100px;margin:0 auto;padding:10px 0;}
.ctbl-front .ctbl-front-titulo{font-size:26px;font-weight:800;margin:0 0 18px;color:inherit;}
.ctbl-front-links{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0;}
.ctbl-front-link{background:#f1f5f1;border:1px solid #dbe2dd;color:#166028;padding:8px 14px;border-radius:6px;text-decoration:none;font-weight:600;font-size:13px;}
.ctbl-front-link:hover{background:#166028;color:#fff;}

/* Cards y grid */
.ctbl-card{background:#fff;border:1px solid #e2e8e0;border-radius:10px;padding:18px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.ctbl-card-title{font-size:15px;font-weight:700;margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid #1e7e34;color:#166028;}
.ctbl-card-money .ctbl-card-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;opacity:.95;}
.ctbl-card-money .ctbl-card-value{font-size:26px;font-weight:800;margin-top:6px;}
.ctbl-bg-green{background:linear-gradient(135deg,#1e7e34,#2ea44f);color:#fff;border:0;}
.ctbl-bg-blue{background:linear-gradient(135deg,#0b6bcb,#3b82f6);color:#fff;border:0;}
.ctbl-bg-orange{background:linear-gradient(135deg,#d97706,#f59e0b);color:#fff;border:0;}
.ctbl-bg-red{background:linear-gradient(135deg,#b91c1c,#dc2626);color:#fff;border:0;}
.ctbl-grid{display:flex;gap:16px;flex-wrap:wrap;}
.ctbl-grid-cards .ctbl-card{flex:1 1 220px;max-width:280px;}
.ctbl-grid-two .ctbl-card{flex:1 1 46%;}

/* Tablas */
.ctbl-table-wrap{overflow-x:auto;}
.ctbl-table{width:100%;border-collapse:collapse;font-size:13px;background:#fff;}
.ctbl-table th{background:#f4f7f4;text-align:left;padding:10px 12px;font-weight:700;border-bottom:2px solid #1e7e34;}
.ctbl-table td{padding:9px 12px;border-bottom:1px solid #eef1ee;vertical-align:top;}
.ctbl-table tbody tr:hover{background:#f8faf8;}
.ctbl-empty{text-align:center;color:#9ca3af;padding:28px !important;}
.ctbl-muted{color:#9ca3af;}
.ctbl-doc{color:#6b7280;font-size:11px;}

/* Badges */
.ctbl-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;color:#fff;}
.ctbl-badge-ok{background:#16a34a;}
.ctbl-badge-warn{background:#d97706;}
.ctbl-badge-danger{background:#dc2626;}
.ctbl-badge-info{background:#0ea5e9;}
.ctbl-badge-muted{background:#6b7280;}

/* Alertas */
.ctbl-alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;}
.ctbl-alert-danger{background:#fee2e2;border:1px solid #fecaca;color:#991b1b;}
.ctbl-alert-ok{background:#dcfce7;border:1px solid #bbf7d0;color:#166534;}

/* Filtros */
.ctbl-filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0;}
.ctbl-filtros label{font-size:13px;display:flex;align-items:center;gap:6px;}
.ctbl-filtros input[type=date]{border:1px solid #cbd5d1;border-radius:5px;padding:6px 8px;font-size:13px;}
.ctbl-filtros select{border:1px solid #cbd5d1;border-radius:5px;padding:6px 8px;font-size:13px;}

/* Formularios */
.ctbl-form .ctbl-field{margin-bottom:12px;}
.ctbl-form label{display:block;font-size:12px;font-weight:700;margin-bottom:5px;color:#374151;}
.ctbl-form input[type=text],.ctbl-form input[type=email],.ctbl-form input[type=number],
.ctbl-form input[type=date],.ctbl-form select,.ctbl-form textarea{
  width:100%;border:1px solid #cbd5d1;border-radius:5px;padding:8px 10px;font-size:13px;background:#fff;box-sizing:border-box;}
.ctbl-form input:focus,.ctbl-form select:focus,.ctbl-form textarea:focus{border-color:#1e7e34;box-shadow:0 0 0 1px #1e7e34;outline:0;}
.ctbl-row{display:flex;gap:12px;}
.ctbl-row .ctbl-field{flex:1;}
.ctbl-check{display:flex;align-items:center;gap:6px;font-weight:400 !important;}
.ctbl-check input{width:auto !important;}
.ctbl-submit-bar{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}
.ctbl-inline-form{display:inline-flex;gap:8px;align-items:center;margin-right:8px;}
.ctbl-detail-table{width:100%;border-collapse:collapse;font-size:13px;}
.ctbl-detail-table th{width:170px;text-align:left;padding:8px;color:#6b7280;font-weight:600;vertical-align:top;}
.ctbl-detail-table td{padding:8px;}
.ctbl-detail-table tr{border-bottom:1px solid #f0f0f0;}

/* Editor de lÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â­neas */
.ctbl-lines{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;}
.ctbl-lines-head{display:grid;grid-template-columns:2fr 2fr 1fr 1.2fr 1fr 32px;gap:8px;background:#f3f4f6;padding:8px 10px;font-size:11px;font-weight:700;text-transform:uppercase;color:#6b7280;}
.ctbl-line{display:grid;grid-template-columns:2fr 2fr 1fr 1.2fr 1fr 32px;gap:8px;padding:8px 10px;border-top:1px solid #f0f0f0;align-items:center;}
.ctbl-line select,.ctbl-line input{width:100%;border:1px solid #d1d5db;border-radius:4px;padding:6px 8px;font-size:12px;box-sizing:border-box;}
.ctbl-line-total{text-align:right;font-weight:700;font-size:13px;}
.ctbl-del-line{background:#fee2e2;border:1px solid #fecaca;color:#b91c1c;border-radius:4px;cursor:pointer;font-size:16px;line-height:1;height:28px;width:28px;}
.ctbl-totales{max-width:340px;margin-left:auto;margin-top:14px;}
.ctbl-total-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px;border-bottom:1px dashed #e5e7eb;}
.ctbl-total-grande{font-size:18px;font-weight:800;color:#1e7e34;border-bottom:0;}
.ctbl-total-grande input{border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;width:100px;font-size:13px;}
.ctbl-totales-reporte{max-width:400px;margin-left:auto;margin-top:12px;}

/* Tabs */
.ctbl-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:14px;border-bottom:2px solid #e5e7eb;}
.ctbl-tabs a{padding:9px 16px;text-decoration:none;font-size:13px;color:#4b5563;border-radius:6px 6px 0 0;border:1px solid transparent;}
.ctbl-tabs a:hover{background:#f3f4f6;}
.ctbl-tabs a.ctbl-tab-activo{background:#fff;border-color:#e5e7eb #e5e7eb #fff;font-weight:700;color:#1e7e34;}

/* Chips */
.ctbl-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
.ctbl-chip{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:20px;padding:4px 10px;font-size:12px;display:inline-flex;align-items:center;gap:6px;}
.ctbl-chip-del{background:none;border:0;color:#9ca3af;cursor:pointer;font-size:14px;line-height:1;}

/* Modal */
.ctbl-modal-backdrop[hidden]{display:none !important;}
.ctbl-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:999999;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow:auto;}
.ctbl-modal{background:#fff;border-radius:10px;max-width:640px;width:100%;padding:0;box-shadow:0 20px 50px rgba(0,0,0,.3);}
.ctbl-modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid #e5e7eb;}
.ctbl-modal-head h2{margin:0;font-size:17px;}
.ctbl-modal-close{background:none;border:0;font-size:24px;cursor:pointer;color:#6b7280;line-height:1;}
.ctbl-modal .ctbl-form{padding:20px 22px;}

/* Widgets */
.ctbl-widget-lista{margin:0;padding:0;list-style:none;}
.ctbl-widget-lista li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #f0f0f0;font-size:13px;}
.ctbl-widget-lista li:last-child{border-bottom:0;}
.ctbl-text-danger{color:#b91c1c;}
.ctbl-danger-link{color:#b91c1c !important;border-color:#fca5a5 !important;}
.ctbl-danger-link:hover{background:#fee2e2 !important;}

/* Botones de WordPress reutilizados */
.ctbl-front .button{display:inline-block;text-decoration:none;padding:6px 14px;border:1px solid #2271b1;border-radius:4px;background:#f6f7f7;color:#2271b1;font-size:13px;line-height:2.1;cursor:pointer;margin:0 2px 4px 0;}
.ctbl-front .button-primary{background:#2271b1;color:#fff;border-color:#2271b1;}
.ctbl-front .button-large{padding:8px 18px;font-size:14px;}
.ctbl-front .button-small{padding:3px 10px;font-size:12px;}
.ctbl-front .button:hover{opacity:.9;}
.ctbl-front .button[disabled]{opacity:.5;cursor:not-allowed;}

/* Toast */
.ctbl-toast{position:fixed;bottom:24px;right:24px;background:#111827;color:#fff;padding:12px 18px;border-radius:6px;font-size:13px;z-index:1000010;box-shadow:0 6px 18px rgba(0,0,0,.3);max-width:340px;}
.ctbl-toast.ok{background:#16a34a;}
.ctbl-toast.error{background:#dc2626;}

@media (max-width:782px){
  .ctbl-row{flex-direction:column;}
  .ctbl-lines-head,.ctbl-line{grid-template-columns:1fr 1fr;gap:6px;}
  .ctbl-grid-two .ctbl-card{flex:1 1 100%;}
}

.ctbl-line-ganancia{grid-column:1/-1;display:flex;gap:8px;align-items:center;background:#fafbfa;padding:6px 10px;border-top:1px dashed #e5e7eb;font-size:12px;flex-wrap:wrap;}
.ctbl-line-ganancia label{font-weight:700;color:#6b7280;margin:0 2px 0 6px;}
.ctbl-line-ganancia input{width:90px;border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font-size:12px;box-sizing:border-box;}
.ctbl-line-ganancia .ctbl-gan-txt{margin-left:auto;color:#374151;}
.ctbl-gan-txt strong{color:#16a34a;}
.ctbl-tab-btn{cursor:pointer;}
#ctbl-tab-ganancias .ctbl-table{margin-top:8px;}

.ctbl-fotos{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.ctbl-foto{position:relative;width:120px;height:90px;border:1px solid #e2e8e0;border-radius:6px;overflow:hidden;background:#f6f8f6;}
.ctbl-foto img{width:100%;height:100%;object-fit:cover;}
.ctbl-foto-del{position:absolute;top:4px;right:4px;background:#dc2626;color:#fff;border:0;border-radius:50%;width:22px;height:22px;cursor:pointer;font-size:14px;line-height:1;}
.fotos-grid{display:flex;gap:12px;flex-wrap:wrap;}
.foto-item{flex:1 1 180px;max-width:240px;}

.ctbl-tienda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;}
.ctbl-producto{background:#fff;border:1px solid #e2e8e0;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;padding:12px;}
.ctbl-producto-img{height:140px;display:flex;align-items:center;justify-content:center;background:#f6f8f6;overflow:hidden;}
.ctbl-producto-img img{max-width:100%;max-height:100%;object-fit:contain;}
.ctbl-sin-imagen{color:#9ca3af;font-size:12px;}
.ctbl-producto h3{font-size:15px;margin:10px 0 4px;}
.ctbl-producto-desc{font-size:12px;color:#6b7280;margin:0 0 8px;flex:1;}
.ctbl-producto-precio{font-size:18px;font-weight:800;color:#1e7e34;margin-bottom:6px;}
.ctbl-producto-stock{font-size:12px;color:#9ca3af;margin-bottom:8px;}
.ctbl-producto-form{display:flex;gap:6px;align-items:center;margin-top:auto;}
.ctbl-producto-cant{width:60px;border:1px solid #cbd5d1;border-radius:4px;padding:5px 6px;}
/* Editor en una sola columna (apilado) */
.ctbl-editor .ctbl-grid-two{flex-direction:column;}
.ctbl-editor .ctbl-grid-two .ctbl-card{flex:1 1 100%;max-width:100%;}
/* Secciones del informe y fotos con explicacion */
.ctbl-foto{width:170px;height:auto;overflow:hidden;}
.ctbl-foto img{width:100%;height:100px;object-fit:cover;display:block;}
.ctbl-foto .ctbl-foto-cap{width:100%;border:0;border-top:1px solid #e2e8e0;border-radius:0;padding:6px 8px;font-size:11px;box-sizing:border-box;background:#fff;}
.ctbl-seccion-row{display:flex;gap:10px;align-items:center;margin-bottom:8px;flex-wrap:wrap;}
.ctbl-seccion-row input[type=text]{flex:1;min-width:180px;border:1px solid #cbd5d1;border-radius:5px;padding:7px 10px;font-size:13px;}
.ctbl-seccion-row .ctbl-check{margin:0;}
.ctbl-seccion-del{background:#fee2e2;border:1px solid #fecaca;color:#b91c1c;border-radius:4px;cursor:pointer;font-size:16px;width:30px;height:30px;line-height:1;}
/* Bloques de numeracion por documento */
.ctbl-numeracion{border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin-bottom:12px;background:#fafbfa;}
.ctbl-numeracion-titulo{font-weight:700;margin-bottom:8px;color:#1e7e34;font-size:14px;}

/* Roles: lista de casillas */.ctbl-roles-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:10px 0 6px;}.ctbl-role-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #dde7df;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .2s ease, background .2s ease;font-weight:500;}.ctbl-role-item:hover{border-color:#1e7e34;background:#f4faf5;}.ctbl-role-item input{width:auto !important;margin:0;}
/* Chat IA informe */.ctbl-ia-chat{border:1px solid #dde7df;border-radius:14px;padding:14px;background:#f7faf7;margin-bottom:14px;}.ctbl-ia-chat-label{font-weight:700;color:#145423;margin-bottom:8px;font-size:14px;}.ctbl-ia-chat textarea{width:100%;border:1px solid #dde7df;border-radius:10px;padding:12px;font-family:inherit;font-size:14px;resize:vertical;box-sizing:border-box;}.ctbl-ia-chat textarea:focus{border-color:#1e7e34;outline:none;}.ctbl-ia-chat-actions{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap;}
.ctbl-ia-chat-options{display:flex;gap:18px;margin-top:10px;flex-wrap:wrap;font-size:13.5px;color:#23322a;}.ctbl-ia-chat-options .ctbl-check{font-weight:600 !important;cursor:pointer;}
/* Chat libre IA */.ctbl-chat{border:1px solid #dde7df;border-radius:14px;overflow:hidden;margin-bottom:14px;background:#fff;}.ctbl-chat-head{background:linear-gradient(135deg,#145423,#1e7e34);color:#fff;font-weight:700;padding:10px 14px;font-size:14px;}.ctbl-chat-msgs{max-height:260px;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:#f7faf7;}.ctbl-chat-msg{max-width:82%;padding:9px 13px;border-radius:12px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;}.ctbl-chat-user{align-self:flex-end;background:#1e7e34;color:#fff;border-bottom-right-radius:4px;}.ctbl-chat-ia{align-self:flex-start;background:#fff;border:1px solid #dde7df;border-bottom-left-radius:4px;}.ctbl-chat-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #dde7df;background:#fff;}.ctbl-chat-input input{flex:1;border:1px solid #dde7df;border-radius:10px;padding:10px 12px;font-size:14px;box-sizing:border-box;}.ctbl-chat-input input:focus{border-color:#1e7e34;outline:none;}