- Módulo Visitas completo (auto desde agenda, insumos con descargo de inventario, fotos antes/después y documentos, receta imprimible) - Punto de Venta (catálogo + ticket sticky, cobro con cambio, pago con puntos monedero, ticket imprimible) - WACRM: leads automáticos desde WhatsApp, asignación de conversaciones y leads a agentes, conversión lead→paciente, ficha del paciente en chat - Pacientes: completitud de expediente, alertas clínicas, historial unificado con detalle, foto, WhatsApp, estado de cuenta, filtros rápidos (VIP/recientes/médico), documentos (expediente escaneado + galería) - Agenda: vistas por médico y por hora, filtros rápidos (libres, primera vez, check-in, no-show), modal de acciones, bloqueos por médico, drag&drop para mover citas - Reportes: 18 pestañas (diario, cortes, ingresos, inventario, adeudos, comisiones, pagos, devoluciones, top clientes, horas, paquetes, vendedores, concentrado, recomendaciones, KPIs) con exportación Excel - Temas: nuevo tema Clásico (look legacy AdminLTE) con submenús tipo treeview, selector de tema; accesos rápidos personalizables con 3 presentaciones; búsqueda global; notificaciones reales - Configuración: secciones (clínica, usuarios con permisos por sección, recetas, catálogos de diagnósticos y procedimientos) - Inventario: alertas de caducidad y sugerencia de compra, cron diario que descuenta artículos caducados, compras/bajas - Consultas Médicas, página Expedientes, importadores delta (citas/visitas legacy idempotentes), depuración de duplicados - Infra: tema Tailwind conectado (@config), gzip en nginx, secuencias Odoo corregidas (noupdate, company_id), rollback en validaciones
271 lines
7.0 KiB
CSS
271 lines
7.0 KiB
CSS
@import "tailwindcss";
|
|
@config "../tailwind.config.js";
|
|
@import "./styles/fonts.css";
|
|
|
|
/* =========================================================
|
|
Tema SKEEN Derma Experts (default)
|
|
========================================================= */
|
|
:root,
|
|
[data-theme="skeen"] {
|
|
/* Paleta */
|
|
--color-coral: #EDA588;
|
|
--color-coral-hover: #d98b6c;
|
|
--color-mint: #CAE2C1;
|
|
--color-lilac: #C7BCDD;
|
|
--color-sky: #A4CCE2;
|
|
--color-dark: #1A1A1A;
|
|
--color-charcoal: #2D2D2D;
|
|
--color-gray: #6B6B6B;
|
|
--color-light: #F8F6F4;
|
|
--color-white: #FFFFFF;
|
|
|
|
/* Semántico */
|
|
--text: var(--color-charcoal);
|
|
--text-muted: var(--color-gray);
|
|
--text-heading: var(--color-dark);
|
|
--text-inverse: var(--color-white);
|
|
--bg: var(--color-light);
|
|
--surface: var(--color-white);
|
|
--surface-elevated: var(--color-white);
|
|
--border: rgba(26, 26, 26, 0.08);
|
|
--border-strong: #E5E0DC;
|
|
--accent: var(--color-coral);
|
|
--accent-hover: var(--color-coral-hover);
|
|
--accent-bg: rgba(237, 165, 136, 0.12);
|
|
--success: var(--color-mint);
|
|
--success-text: var(--color-dark);
|
|
--warning: #FEF3C7;
|
|
--warning-text: #92400E;
|
|
|
|
--font-sans: 'Sans Essential', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
--font-display: 'Carefree Serif', Georgia, serif;
|
|
--font-heading: 'TT Hoves Pro', 'Sans Essential', system-ui, sans-serif;
|
|
--font-mono: 'JetBrains Mono', monospace;
|
|
|
|
--sidebar-bg: var(--color-dark);
|
|
--sidebar-text: rgba(255, 255, 255, 0.7);
|
|
--sidebar-text-active: var(--color-white);
|
|
--sidebar-active-bg: var(--color-coral);
|
|
--header-bg: rgba(255, 255, 255, 0.8);
|
|
--logo: '/skeen-brand/logos/Logo%20Completo%20Blanco.png';
|
|
}
|
|
|
|
/* =========================================================
|
|
Tema HomeNest
|
|
========================================================= */
|
|
[data-theme="homenest"] {
|
|
/* Paleta */
|
|
--color-coral: #8B5E3C;
|
|
--color-coral-hover: #6F4B30;
|
|
--color-mint: #D9F99D;
|
|
--color-lilac: #F3E2B3;
|
|
--color-sky: #E9D5B7;
|
|
--color-dark: #3E2C1C;
|
|
--color-charcoal: #5C4634;
|
|
--color-gray: #7A5C44;
|
|
--color-light: #FEF3C7;
|
|
--color-white: #FFF9E6;
|
|
|
|
/* Semántico */
|
|
--text: var(--color-dark);
|
|
--text-muted: var(--color-gray);
|
|
--text-heading: var(--color-dark);
|
|
--text-inverse: var(--color-light);
|
|
--bg: var(--color-light);
|
|
--surface: var(--color-white);
|
|
--surface-elevated: var(--color-white);
|
|
--border: var(--color-sky);
|
|
--border-strong: var(--color-sky);
|
|
--accent: var(--color-coral);
|
|
--accent-hover: var(--color-coral-hover);
|
|
--accent-bg: var(--color-lilac);
|
|
--success: var(--color-mint);
|
|
--success-text: var(--color-dark);
|
|
--warning: #FEF3C7;
|
|
--warning-text: var(--color-dark);
|
|
|
|
--font-sans: 'DM Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
--font-display: 'Alike', Georgia, serif;
|
|
--font-heading: 'Alike', Georgia, serif;
|
|
--font-mono: 'JetBrains Mono', monospace;
|
|
|
|
--sidebar-bg: var(--color-white);
|
|
--sidebar-text: var(--color-gray);
|
|
--sidebar-text-active: var(--color-dark);
|
|
--sidebar-active-bg: var(--color-coral);
|
|
--header-bg: rgba(255, 249, 230, 0.8);
|
|
--logo: '/skeen-brand/logos/Logo%20Completo%20Negro.png';
|
|
}
|
|
|
|
/* =========================================================
|
|
Tema Clásico (legacy AdminLTE 2.x)
|
|
========================================================= */
|
|
[data-theme="clasico"] {
|
|
/* Paleta */
|
|
--color-coral: #1abc9c;
|
|
--color-coral-hover: #16a085;
|
|
--color-mint: #2ecc71;
|
|
--color-lilac: #d9edf7;
|
|
--color-sky: #3498db;
|
|
--color-dark: #333333;
|
|
--color-charcoal: #444444;
|
|
--color-gray: #777777;
|
|
--color-light: #ecf0f5;
|
|
--color-white: #FFFFFF;
|
|
|
|
/* Semántico */
|
|
--text: var(--color-charcoal);
|
|
--text-muted: var(--color-gray);
|
|
--text-heading: var(--color-dark);
|
|
--text-inverse: var(--color-white);
|
|
--bg: var(--color-light);
|
|
--surface: var(--color-white);
|
|
--surface-elevated: var(--color-white);
|
|
--border: #d2d6de;
|
|
--border-strong: #dddddd;
|
|
--accent: var(--color-coral);
|
|
--accent-hover: var(--color-coral-hover);
|
|
--accent-bg: rgba(26, 188, 156, 0.12);
|
|
--success: #2ecc71;
|
|
--success-text: var(--color-white);
|
|
--warning: #f39c12;
|
|
--warning-text: var(--color-white);
|
|
|
|
--font-sans: 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
--font-display: 'Source Sans Pro', Georgia, serif;
|
|
--font-heading: 'Source Sans Pro', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
--font-mono: 'JetBrains Mono', monospace;
|
|
|
|
--sidebar-bg: #3E454C;
|
|
--sidebar-text: #dbdee1;
|
|
--sidebar-text-active: var(--color-white);
|
|
--sidebar-active-bg: #394046;
|
|
--sidebar-accent: #BED4AD;
|
|
--sidebar-group-bg: #353b41;
|
|
--sidebar-group-text: #6c7884;
|
|
--header-bg: #BED4AD;
|
|
--logo-block: #b1cb9c;
|
|
--logo: '/skeen-brand/logos/Logo%20Completo%20Blanco.png';
|
|
}
|
|
|
|
/* AdminLTE: esquinas casi cuadradas y sombras mínimas */
|
|
[data-theme="clasico"] .rounded-3xl,
|
|
[data-theme="clasico"] .rounded-2xl,
|
|
[data-theme="clasico"] .rounded-xl {
|
|
border-radius: 3px;
|
|
}
|
|
|
|
[data-theme="clasico"] .rounded-lg {
|
|
border-radius: 2px;
|
|
}
|
|
|
|
[data-theme="clasico"] .shadow-card {
|
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
|
|
}
|
|
|
|
[data-theme="clasico"] .shadow-soft,
|
|
[data-theme="clasico"] .shadow-sm {
|
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
|
}
|
|
|
|
/* =========================================================
|
|
Base
|
|
========================================================= */
|
|
html {
|
|
font-family: var(--font-sans);
|
|
font-size: 16px;
|
|
line-height: 1.5;
|
|
color: var(--text);
|
|
background: var(--bg);
|
|
font-synthesis: none;
|
|
text-rendering: optimizeLegibility;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
#root {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
margin: 0;
|
|
text-align: left;
|
|
border: none;
|
|
min-height: 100svh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
font-family: var(--font-sans);
|
|
color: var(--text);
|
|
background: var(--bg);
|
|
}
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
font-family: var(--font-heading);
|
|
font-weight: 700;
|
|
color: var(--text-heading);
|
|
letter-spacing: -0.02em;
|
|
margin: 0;
|
|
}
|
|
|
|
[data-theme="homenest"] h1,
|
|
[data-theme="homenest"] h2,
|
|
[data-theme="homenest"] h3,
|
|
[data-theme="homenest"] h4,
|
|
[data-theme="homenest"] h5,
|
|
[data-theme="homenest"] h6 {
|
|
font-weight: 400;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
|
|
.font-display {
|
|
font-family: var(--font-display);
|
|
}
|
|
|
|
.font-mono {
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
p {
|
|
margin: 0;
|
|
}
|
|
|
|
/* Scrollbar */
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--color-coral);
|
|
opacity: 0.25;
|
|
border-radius: 4px;
|
|
}
|
|
::-webkit-scrollbar-thumb:hover {
|
|
opacity: 0.4;
|
|
}
|
|
|
|
/* Impresión del ticket POS y de la receta médica */
|
|
@media print {
|
|
body * {
|
|
visibility: hidden;
|
|
}
|
|
.print-ticket,
|
|
.print-ticket *,
|
|
.print-receta,
|
|
.print-receta * {
|
|
visibility: visible;
|
|
}
|
|
.print-ticket,
|
|
.print-receta {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
}
|
|
}
|