/* Feli's Dent v3 – estilos de los módulos nuevos */
.mod-bar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:0 0 1rem}
.mod-bar input,.mod-bar select{padding:.55rem .8rem;border:2px solid #E5E7EB;border-radius:10px;font:inherit;background:#fff}
.mod-btn{padding:.55rem 1rem;border:2px solid #E5E7EB;border-radius:10px;background:#fff;cursor:pointer;font:inherit;font-weight:600;color:var(--navy)}
.mod-btn:hover{border-color:var(--navy)}
.mod-btn.primary{background:var(--mint);border-color:var(--mint);color:var(--navy)}
.mod-btn.small{padding:.3rem .6rem;font-size:.78rem}
.mod-card{background:#fff;border-radius:var(--rad);padding:1.2rem 1.4rem;box-shadow:var(--shadow);margin-bottom:1.2rem}
.mod-card h3{font-family:var(--font-h);color:var(--navy);font-size:1.05rem;margin-bottom:.8rem}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:1.2rem}
.mod-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem;margin-bottom:1.2rem}
.muted{color:var(--gray);font-size:.82rem}
.pos{color:#059669}.neg{color:#DC2626}
.kpi{background:#fff;border-radius:var(--rad);padding:1.1rem 1.3rem;box-shadow:var(--shadow);border-left:5px solid var(--mint)}
.kpi .k-l{font-size:.75rem;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.04em}
.kpi .k-v{font-family:var(--font-h);font-size:1.6rem;color:var(--navy);margin:.2rem 0}
.kpi .k-d{font-size:.78rem}
.kpi.gold{border-color:var(--gold)}.kpi.navy{border-color:var(--navy)}.kpi.purple{border-color:var(--purple)}.kpi.red{border-color:var(--red)}
.mod-table{width:100%;border-collapse:collapse;font-size:.88rem}
.mod-table th{text-align:left;font-size:.72rem;text-transform:uppercase;color:var(--gray);padding:.5rem .6rem;border-bottom:2px solid #E5E7EB}
.mod-table td{padding:.55rem .6rem;border-bottom:1px solid #F1F5F9;vertical-align:top}
.mod-table td.num,.mod-table th.num{text-align:right;white-space:nowrap}
.mod-table tfoot td{font-weight:700;border-top:2px solid #E5E7EB}
.hbar{display:flex;align-items:center;gap:.6rem;margin:.35rem 0;font-size:.82rem}
.hbar .nm{width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar .tr{flex:1;background:#F1F5F9;border-radius:6px;height:14px;overflow:hidden}
.hbar .fl{height:100%;background:var(--mint);border-radius:6px}
.hbar .vl{width:90px;text-align:right;font-weight:600}
.leg{display:flex;align-items:center;gap:.5rem;font-size:.82rem;margin:.25rem 0}
.leg i{width:11px;height:11px;border-radius:3px;display:inline-block}
/* Odontograma FDI */
.fdi-wrap{overflow-x:auto;padding:.4rem 0}
.fdi-arch{display:flex;justify-content:center;gap:3px;margin:3px 0}
.fdi-arch .gap{width:14px}
.fdi-tooth{width:38px;height:44px;border:2px solid #D1D5DB;border-radius:9px 9px 14px 14px;background:#F9FAFB;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#4B5563;cursor:pointer;flex-shrink:0;position:relative}
.fdi-tooth:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.12)}
.fdi-tooth.sel{outline:3px solid var(--navy)}
.fdi-tooth.s-attention{background:#FCA5A5;border-color:#EF4444}
.fdi-tooth.s-pending{background:#FDE68A;border-color:#F59E0B}
.fdi-tooth.s-treated{background:#A7F3D0;border-color:#10B981}
.fdi-tooth.s-crown{background:#DDD6FE;border-color:#8B5CF6}
.fdi-tooth.s-endo{background:#BFDBFE;border-color:#3B82F6}
.fdi-tooth.s-implante{background:#CBD5E1;border-color:#475569}
.fdi-tooth.s-ausente{background:#fff;border-style:dashed;color:#9CA3AF;text-decoration:line-through}
.fdi-label{text-align:center;font-size:.72rem;color:var(--gray);font-weight:700;margin:.5rem 0 .1rem}
.fdi-leg{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:.6rem;font-size:.76rem}
.fdi-leg span i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;border:1px solid #9CA3AF}
.tl-item{border-left:3px solid var(--mint);padding:.2rem 0 .2rem 1rem;margin-left:.4rem;margin-bottom:1.1rem}
.tl-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem;font-weight:700;color:var(--navy)}
.tl-box{background:#F8FAFC;border-radius:10px;padding:.7rem .9rem;margin:.4rem 0;font-size:.88rem}
.alert-chip{background:#FEE2E2;color:#991B1B;padding:.2rem .6rem;border-radius:99px;font-size:.78rem;font-weight:700}
.ok-chip{background:#D1FAE5;color:#065F46;padding:.2rem .6rem;border-radius:99px;font-size:.78rem;font-weight:700}
.proc-row{display:grid;grid-template-columns:70px 1.6fr 80px 110px 28px;gap:.4rem;margin-bottom:.4rem;align-items:center}
.proc-row select,.proc-row input{padding:.45rem;border:2px solid #E5E7EB;border-radius:8px;font:inherit;font-size:.82rem;min-width:0;width:100%}
@media(max-width:640px){.proc-row{grid-template-columns:1fr 1fr}.fdi-tooth{width:30px;height:38px;font-size:.62rem}}

/* ══ Impresión / PDF del corte ══ */
@page { size: A4; margin: 12mm; }
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  nav, .sidebar, .mobile-bottom-nav, .mobile-menu-drawer, .mobile-menu-overlay, .wa-btn, .toast-container,
  .mod-bar, .no-print, .modal-bg, footer { display: none !important; }
  .admin-layout { display: block !important; }
  .admin-main { padding: 0 !important; background: #fff !important; overflow: visible !important; }
  .mod-card, .kpi { break-inside: avoid; page-break-inside: avoid; box-shadow: none !important; border: 1px solid #E5E7EB; }
  .mod-grid { grid-template-columns: repeat(4, 1fr) !important; gap: .6rem !important; }
  .mod-two { grid-template-columns: 1fr 1fr !important; gap: .8rem !important; }
  .kpi .k-v { font-size: 1.2rem; }
  .panel-header h2 { font-size: 1.4rem; }
  .mod-table { font-size: .75rem; }
  body { background: #fff !important; }
}

/* Landing: 4 aspectos destacados */
.hero-stats { gap: 2rem 2.5rem; max-width: 1000px; margin-left: auto; margin-right: auto; }
.hero-stat { max-width: 210px; }
.hero-stat h3 { font-size: 1.05rem !important; line-height: 1.3; }
.hero-stat p { margin-top: .35rem; }
.logo-icon.custom { background: transparent; border-radius: 8px; width: auto; max-width: 150px; height: 42px; }
.logo-icon.custom img { height: 100%; width: auto; max-width: 150px; object-fit: contain; display: block; }
.cfg-logo-prev { width: 120px; height: 120px; border: 2px dashed #D1D5DB; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: #F8FAFC; font-size: 3rem; overflow: hidden }
.cfg-logo-prev img { max-width: 100%; max-height: 100%; object-fit: contain }
.cfg-dia { display: grid; grid-template-columns: 110px 1fr 1fr; gap: .5rem; align-items: center; padding: .4rem 0; border-bottom: 1px solid #F1F5F9; font-size: .9rem }
.cfg-dia input[type=time] { padding: .4rem; border: 2px solid #E5E7EB; border-radius: 8px; font: inherit }
.cfg-dia.cerrado input[type=time] { opacity: .4 }
