/* ============================================================
   Utilidades SPD
   Clases creadas a partir de la migración de atributos style=""
   inline a CSS externo (requisito de la Content-Security-Policy:
   sin 'unsafe-inline' en style-src).
   ============================================================ */

.ini-accent-link      { color: var(--accent-color); font-size: .7rem; }
.ini-avatar           { width: 24px; height: 24px; object-fit: cover; border-radius: 50%; }
.ini-avatar-sm        { width: 32px; height: 32px; object-fit: cover; border-radius: 50%; }
.ini-avatar-sm-bordered { width: 32px; height: 32px; object-fit: cover; border-radius: 50%; border: 1px solid #ddd; }
.ini-avatar-md        { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }
.ini-avatar-ph        { width: 24px; height: 24px; border-radius: 50%; background-color: #e2e8f0; display: flex; align-items: center; justify-content: center; color: #64748b; font-size: 12px; }
.ini-avatar-ph-sm     { width: 32px; height: 32px; border-radius: 50%; background-color: #e2e8f0; display: flex; align-items: center; justify-content: center; color: #64748b; }
.ini-avatar-ph-md     { width: 64px; height: 64px; border-radius: 50%; background-color: #e2e8f0; display: flex; align-items: center; justify-content: center; color: #64748b; font-size: 32px; }
.ini-avatar-wrap      { flex-shrink: 0; width: 80px; height: 80px; overflow: hidden; border-radius: 50%; border: 2px solid #e2e8f0; }
.ini-btn-close        { padding: 8px 24px; font-size: 14px; background: #6c757d; color: #fff; border: none; border-radius: 6px; cursor: pointer; margin-left: 8px; }
.ini-btn-pill         { padding: 8px 25px; font-weight: 600; }
.ini-btn-print        { padding: 8px 24px; font-size: 14px; background: #0d6efd; color: #fff; border: none; border-radius: 6px; cursor: pointer; }
.ini-btn-success-grad { background: linear-gradient(135deg, #10b981 0%, #059669 100%); border-radius: 12px; box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3); }
.ini-btn-xs           { padding: 2px 6px; font-size: .65rem; }
.ini-card-glass       { border-radius: 20px; background: rgba(255, 255, 255, 0.95); }
.ini-card-rounded     { border-radius: 15px; border: 1px solid rgba(0, 0, 0, 0.05) !important; }
.ini-chip             { font-size: .7rem; background: #f8fafc; }
.ini-chip-36          { width: 36px; height: 36px; flex-shrink: 0; }
.ini-col-50-top       { width: 50%; vertical-align: top; }
.ini-col-flex         { display: flex; flex-direction: column; }
.ini-container        { max-width: 900px; width: calc(100% - 2rem); }
.ini-cropcanvas       { display: block; cursor: crosshair; touch-action: none; }
.ini-cropzone         { border: 1px dashed #adb5bd; border-radius: 6px; background: #fff; overflow: hidden; overscroll-behavior: none; user-select: none; -webkit-user-select: none; }
.ini-disabled-bg      { pointer-events: none; background-color: #e9ecef; }
.ini-fab              { position: fixed; bottom: 30px; right: 30px; width: 60px; height: 60px; background: var(--accent-color); color: white; border: none; z-index: 999; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; }
.ini-flex-1-overflow  { display: flex; flex: 1; overflow: hidden; }
.ini-footer-row       { padding: 10px; border-top: 1px solid var(--border); flex-shrink: 0; display: flex; flex-direction: column; gap: 6px; }
.ini-foto-16mm        { width: 16mm; height: 16mm; object-fit: cover; border-radius: 50%; border: 1px solid #ccc; display: block; margin: 0 auto; }
.ini-foto-16mm-ph     { width: 16mm; height: 16mm; border: 1px solid #ccc; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 6pt; color: #999; margin: 0 auto; }
.ini-foto-preview     { max-height: 80px; border: 1px solid #dee2e6; border-radius: 4px; padding: 4px; background: #fff; }
.ini-foto-preview-lg  { max-height: 100px; border: 1px solid #dee2e6; border-radius: 4px; padding: 4px; }
.ini-form-width       { max-width: 450px; width: 100%; }
.ini-fs-1_4-primary   { font-size: 1.4rem; color: var(--primary-color); }
.ini-fs-3             { font-size: 3rem; }
.ini-fs-65            { font-size: .65rem; }
.ini-fs-72            { font-size: .72rem; }
.ini-fs-85            { font-size: .85rem; }
.ini-fs-95            { font-size: .95rem; color: #2d3436; font-weight: 500; }
.ini-fs-9pt           { font-size: 9pt; color: #555; }
.ini-fs-lg            { font-size: 1.5rem; }
.ini-fs-med           { font-size: 1.1rem; }
.ini-fs-med-minw      { font-size: 1.1rem; min-width: 45px; }
.ini-fs-sm            { font-size: 0.7rem; }
.ini-fs-sm-maxw       { font-size: 0.75rem; max-width: 200px; }
.ini-fs-xl            { font-size: 1.8rem; }
.ini-fs-xs            { font-size: 0.6rem; }
.ini-fw-200           { font-weight: 200; }
.ini-heading          { font-weight: 600; margin-bottom: 2px; }
.ini-header-row       { padding: 14px 16px; border-bottom: 1px solid var(--border); }
.ini-h-32             { height: 32px; }
.ini-h-35             { height: 35px; }
.ini-h-40             { height: 40px; }
.ini-h-56             { height: 56px; }
.ini-h-7mm            { height: 7mm; }
.ini-h-80             { height: 80px; }
.ini-h-80vh           { height: 80vh; }
.ini-hidden           { display: none; }
.ini-img-card         { height: 160px; object-fit: cover; }
.ini-inline-block     { display: inline-block; }
.ini-input-custom     { height: calc(2.25rem + 2px); border-radius: 10px; font-size: 0.8rem; }
.ini-italic-muted     { font-style: italic; color: #999; }
.ini-justify          { text-align: justify; line-height: 1.5; }
.ini-lh-1_2           { line-height: 1.2; }
.ini-list-flat        { list-style: none; padding: 0; }
.ini-logo-bar         { height: 55px; max-width: 100%; width: auto; margin-right: 10px; }
.ini-ls-2             { letter-spacing: 2px; }
.ini-maxh-200         { max-height: 200px; overflow: auto; }
.ini-maxh-200-scroll  { max-height: 200px; overflow-y: auto; }
.ini-maxh-300-scroll  { max-height: 300px; overflow-y: auto; }
.ini-maxh-350-scroll  { max-height: 350px; overflow-y: auto; }
.ini-maxh-400         { max-height: 400px; }
.ini-maxw-200         { max-width: 200px; }
.ini-maxw-300         { max-width: 300px; }
.ini-maxw-400         { max-width: 400px; }
.ini-mr-8             { margin-right: 8px; }
.ini-mt               { margin-top: 5px; font-size: 10pt; }
.ini-mt-bold          { margin-top: 5px; font-size: 10pt; font-weight: bold; }
.ini-mt-neg-10        { margin-top: -10px; }
.ini-muted-sm         { font-size: .72rem; color: #94a3b8; }
.ini-note             { margin-top: 5px; font-size: 10pt; color: #666; }
.ini-note-italic      { font-size: 9pt; margin-top: 10px; font-style: italic; }
.ini-print-header     { padding: 80px 0 0 0; height: 100vh; display: flex; flex-direction: column; }
.ini-print-img        { max-height: 50px; max-width: 180px; display: block; margin-top: 4px; }
.ini-print-item       { font-size: 8pt; line-height: 1.3; margin: 0 0 4px; color: #666; }
.ini-round-20         { border-radius: 20px; }
.ini-rowhr-25         { border-bottom: 1px solid #333; height: 25px; }
.ini-rowhr-40         { border-bottom: 1px solid #333; height: 40px; }
.ini-select-list      { max-height: 300px; overflow-y: auto; border: 1px solid #ddd; padding: 10px; }
.ini-sidebar          { width: 280px; height: 100vh; position: fixed; }
.ini-sig-block        { margin-top: 25px; border-top: 1px solid #333; padding-top: 10px; }
.ini-ta-center        { text-align: center; }
.ini-ta-right         { text-align: right; }
.ini-thumb-40         { max-height: 40px; border-radius: 4px; }
.ini-va-middle        { vertical-align: middle; }
.ini-va-top           { vertical-align: top; }
.ini-w-25             { width: 25%; }
.ini-w-50             { width: 50%; }
.ini-w-50px           { width: 50px; }
.ini-w-60             { width: 60px; }
.ini-w-80             { width: 80px; }
.ini-w-100            { width: 100%; }
.ini-w-100px          { width: 100px; }
.ini-w-120-center     { width: 120px; text-align: center; }
.ini-w-130            { width: 130px; }
.ini-w-140            { width: 140px; }
.ini-dot-10           { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }
.ini-dot-12           { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
.ini-alert-prod       { border-radius: 12px; }
.ini-img-fill         { width: 100%; height: 100%; object-fit: cover; }
.ini-td-fechas        { max-width: 300px; white-space: pre-wrap; word-break: break-word; }
.ini-brand-1_5        { font-size: 1.5rem; }
.ini-brand-1_1        { font-size: 1.1rem; }
.ini-fw-200-sep       { font-weight: 200; }
.ini-h-32-img         { height: 32px; max-width: 100%; width: auto; }
.ini-h-40-img         { height: 40px; max-width: 100%; width: auto; }
.ini-h-55-img         { height: 55px; max-width: 100%; width: auto; }
.ini-fs-sm-badge      { font-size: 0.6rem; }
.ini-fs-1_1-minw-45   { font-size: 1.1rem; min-width: 45px; }
.ini-fs-0_75-maxw-200 { font-size: 0.75rem; max-width: 200px; }
.ini-list-clean       { list-style: none; padding: 0; }
.ini-vmiddle          { vertical-align: middle; }
.ini-sidebar-login    { width: 250px; height: 100vh; position: fixed; top: 0; left: 0; background-color: #212529; color: white; padding-top: 56px; }
.ini-main-offset      { margin-left: 250px; padding: 20px; }
.ini-sidebar-link     { color: #adb5bd; padding: 15px; text-decoration: none; display: block; }
.ini-sidebar-link-hov { background-color: #343a40; color: white; }
.ini-active-blue      { background-color: #007bff !important; color: white !important; }
.ini-carousel-90vh    { height: 90vh !important; min-height: 450px; }
.ini-carousel-img     { width: 100%; height: 100%; object-fit: cover; }
.ini-select-full      { width: 100%; }
.ini-td-fs1_1-mw45    { font-size: 1.1rem; min-width: 45px; }
.ini-img-card-cover   { height: 160px; object-fit: cover; }
.ini-terms-container  { max-width: 900px; margin: 0 auto; padding: 40px 20px; }
.ini-terms-hdr        { text-align: center; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 2px solid #e9ecef; }
.ini-terms-hdr h1     { font-weight: 700; color: #1e293b; }
.ini-terms-hdr .version { color: #6c757d; font-size: 0.9rem; }
.ini-terms-section    { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid #e9ecef; }
.ini-terms-section:last-of-type { border-bottom: none; }
.ini-terms-section h2 { font-size: 1.35rem; font-weight: 600; color: #3f37c9; margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.ini-terms-section h2 .num { background: linear-gradient(135deg, #4361ee 0%, #3f37c9 100%); color: white; width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 700; }
.ini-terms-section p  { color: #475569; line-height: 1.7; margin-bottom: 12px; }
.ini-terms-section ul { padding-left: 20px; color: #475569; line-height: 1.8; }
.ini-terms-section li { margin-bottom: 8px; }
.ini-terms-section strong { color: #1e293b; }
.ini-terms-footer     { margin-top: 40px; padding-top: 24px; border-top: 2px solid #e9ecef; text-align: center; }
.ini-terms-btn        { min-width: 280px; padding: 14px 32px; font-size: 1.05rem; font-weight: 600; }
.ini-alert-custom     { border-radius: 12px; border: none; }
.ini-alert-info-custom { background: linear-gradient(135deg, #eef2ff 0%, #e0e7ff 100%); border: 1px solid #c7d2fe; color: #3730a3; border-radius: 12px; }
@media print { .ini-terms-btn, .ini-terms-footer { display: none !important; } }
.ini-product-card     { transition: all 0.3s ease; }
.ini-product-card:hover { transform: translateY(-6px); box-shadow: 0 12px 20px -8px rgba(0,0,0,0.15); }
.ini-product-ph       { height: 160px; background: #f1f5f9; display: flex; align-items: center; justify-content: center; font-size: 3rem; color: #94a3b8; border-radius: 8px 8px 0 0; }
.ini-cart-bar         { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1030; background: white; border-top: 2px solid #e2e8f0; padding: 12px 24px; box-shadow: 0 -4px 12px rgba(0,0,0,0.08); }
.ini-cart-main        { padding-bottom: 80px; }
.ini-badge-cart       { position: absolute; top: -6px; right: -8px; font-size: 0.7rem; }
.ini-stock-badge      { font-size: 0.8rem; }
.ini-interaccion-alta { border-left: 4px solid #dc2626 !important; background: #fef2f2 !important; }
.ini-interaccion-media { border-left: 4px solid #f59e0b !important; background: #fffbeb !important; }
.ini-interaccion-baja { border-left: 4px solid #3b82f6 !important; background: #eff6ff !important; }
.ini-ia-badge         { font-size: 0.7rem; vertical-align: middle; }
.ini-resultados-ia .list-group-item { transition: all 0.2s; }
.ini-resultados-ia .list-group-item:hover { transform: translateX(4px); }
/* Logo 35px con max-width para reset_password, solicitar_reset y reportes */
.ini-h-35-img { height: 35px; max-width: 100%; width: auto; }
