:root{--tp-red:#cf1020;--tp-red-dark:#a90d19;--tp-ink:#101828;--tp-muted:#64748b;--tp-line:#e5e7eb;--tp-bg:#f5f7fb;--tp-card:#fff;--tp-green:#059669;--tp-blue:#2563eb;--tp-orange:#f59e0b;--tp-shadow:0 16px 40px rgba(15,23,42,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--tp-ink);background:var(--tp-bg)}a{text-decoration:none;color:inherit}.tp-login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top left,#fff,#f1f5f9 55%,#eef2ff)}.tp-login-card{width:380px;background:#fff;border:1px solid #e6eaf1;border-radius:20px;padding:38px 34px;box-shadow:var(--tp-shadow);text-align:center}.tp-login-logo{width:72px;height:72px;margin:0 auto 16px;border-radius:18px;background:#fff5f5;color:var(--tp-red);display:grid;place-items:center;font-weight:900;font-size:30px;border:1px solid #fee2e2}.tp-login-card h1{margin:0;color:var(--tp-red);letter-spacing:.02em}.tp-login-card p{margin:6px 0 26px;color:#64748b;font-size:13px}.tp-login-card form{text-align:left}.tp-login-card label{display:block;font-size:13px;font-weight:700;margin:14px 0 6px}.tp-login-card input,.tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-toolbar input,.tp-toolbar select{width:100%;border:1px solid #d8dee9;border-radius:12px;background:#f8fafc;padding:12px 13px;font:inherit}.tp-login-card input:focus,.tp-form-grid input:focus,.tp-form-grid select:focus,.tp-form-grid textarea:focus{outline:none;border-color:var(--tp-red);box-shadow:0 0 0 4px rgba(207,16,32,.10)}.tp-login-card small{display:block;margin-top:18px;color:#94a3b8}.tp-app-body{display:flex;min-height:100vh}.tp-sidebar{width:292px;background:#fff;border-right:1px solid var(--tp-line);position:fixed;inset:0 auto 0 0;overflow:auto}.tp-brand{display:flex;gap:14px;align-items:center;padding:24px 20px;border-bottom:1px solid var(--tp-line)}.tp-brand-mark{width:48px;height:48px;border-radius:12px;background:#fff5f5;color:var(--tp-red);font-weight:900;display:grid;place-items:center;border:1px solid #fee2e2}.tp-brand strong{display:block;color:var(--tp-red);font-size:24px;line-height:1}.tp-brand span{display:block;color:#64748b;font-size:12px;margin-top:5px}.tp-menu{padding:18px 12px}.tp-menu a{display:flex;gap:12px;align-items:center;padding:13px 16px;border-radius:12px;color:#172033;font-weight:700;margin:4px 0}.tp-menu a span{width:24px;text-align:center}.tp-menu a:hover{background:#f8fafc}.tp-menu a.active{background:linear-gradient(135deg,var(--tp-red),var(--tp-red-dark));color:#fff;box-shadow:0 10px 20px rgba(207,16,32,.22)}.tp-shell{margin-left:292px;min-height:100vh;width:calc(100% - 292px)}.tp-topbar{height:70px;background:linear-gradient(135deg,var(--tp-red),#b40d1a);display:flex;justify-content:space-between;align-items:center;padding:0 28px;color:#fff;box-shadow:0 6px 18px rgba(15,23,42,.12);position:sticky;top:0;z-index:5}.tp-pill{padding:10px 18px;border-radius:999px;background:rgba(255,255,255,.12);font-weight:900}.tp-userbox{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:8px 12px}.tp-avatar{width:42px;height:42px;border-radius:50%;background:#fff;color:var(--tp-red);display:grid;place-items:center;font-weight:900}.tp-userbox small,.tp-userbox span{display:block;font-size:11px;opacity:.8;text-transform:uppercase;letter-spacing:.06em}.tp-userbox strong{display:block;font-size:14px}.tp-power{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);margin-left:8px}.tp-content{padding:28px}.tp-page-head{display:flex;align-items:flex-start;justify-content:space-between;margin:0 0 22px;gap:16px}.tp-page-head h1{margin:0 0 6px;font-size:29px;letter-spacing:-.04em}.tp-page-head p{margin:0;color:#667085}.tp-card{background:var(--tp-card);border:1px solid #e6eaf1;border-radius:18px;padding:24px;box-shadow:0 8px 22px rgba(15,23,42,.06);margin-bottom:22px}.tp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.metrics{margin-bottom:22px}.metric strong{display:block;font-size:34px;color:var(--tp-red);letter-spacing:-.04em}.metric span{color:#64748b;font-weight:800}.tp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d8dee9;background:#fff;color:#172033;border-radius:12px;padding:10px 14px;font-weight:800;cursor:pointer;min-height:40px}.tp-btn-red{background:linear-gradient(135deg,var(--tp-red),var(--tp-red-dark));color:#fff;border-color:transparent;box-shadow:0 10px 20px rgba(207,16,32,.20)}.tp-btn.danger{color:var(--tp-red);border-color:#fecdd3}.tp-badge{display:inline-block;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;background:#f1f5f9;color:#475569}.tp-badge.green{background:#ecfdf5;color:#047857}.tp-badge.blue{background:#eff6ff;color:#1d4ed8}.tp-badge.orange{background:#fffbeb;color:#b45309}.tp-badge.gray{background:#f1f5f9;color:#64748b}.tp-alert{padding:13px 16px;border-radius:14px;margin:0 0 16px;border:1px solid #e6eaf1;background:#fff}.tp-alert-success{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.tp-alert-error{background:#fff1f2;border-color:#fecdd3;color:#be123c}.tp-alert-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.tp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tp-form-grid label{display:block;font-weight:800;color:#334155;font-size:13px}.tp-form-grid textarea{min-height:88px;resize:vertical}.tp-form-grid .wide{grid-column:1/-1}.tp-form-grid h3{margin:0 0 10px}.actions{display:flex;gap:10px;align-items:center}.tp-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px}.tp-toolbar input{max-width:340px}.tp-toolbar select{max-width:280px}.tp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.tp-item-card{display:flex;justify-content:space-between;gap:16px;border:1px solid #e6eaf1;border-radius:16px;padding:18px;background:#fff}.tp-item-card h3{margin:10px 0 7px}.tp-item-card p{margin:0;color:#475569}.tp-item-card small{color:#64748b}.card-actions,.row-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.card-actions form,.row-actions form{margin:0}.tp-table{width:100%;border-collapse:collapse}.tp-table th{text-align:left;background:#f8fafc;color:#475569;text-transform:uppercase;font-size:12px;letter-spacing:.04em}.tp-table th,.tp-table td{padding:13px 14px;border-bottom:1px solid #e6eaf1;vertical-align:top}.tp-permissions{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}.tp-permissions label{background:#f8fafc;border:1px solid #e6eaf1;border-radius:12px;padding:10px;font-weight:700!important}.tp-permissions input{width:auto;margin-right:7px}.form-card h2,.tp-card h2{margin-top:0}@media(max-width:920px){.tp-sidebar{position:relative;width:100%;height:auto}.tp-app-body{display:block}.tp-shell{margin-left:0;width:100%}.tp-topbar{position:relative}.tp-form-grid{grid-template-columns:1fr}.tp-card-grid{grid-template-columns:1fr}.tp-page-head{display:block}.tp-page-head .tp-btn{margin-top:12px}.tp-toolbar{flex-direction:column;align-items:stretch}.tp-toolbar input,.tp-toolbar select{max-width:none}}
/* TOCAPU Standalone v0.5 */
.tp-kpi-list p{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eef2f7;margin:0;padding:11px 0}.tp-kpi-list strong{font-size:22px;color:var(--tp-red)}.inline-status-form{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px;min-width:420px}.inline-status-form select,.inline-status-form input{border:1px solid #d8dee9;border-radius:10px;background:#f8fafc;padding:9px 10px;font:inherit}.inline-status-form button{grid-column:1/-1}.tp-public-body{min-height:100vh;background:#f5f7fb;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--tp-ink);margin:0}.tp-public-wrap{max-width:1080px;margin:0 auto;padding:28px}.tp-public-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid #e6eaf1;border-radius:22px;padding:26px;margin-bottom:22px;box-shadow:0 10px 28px rgba(15,23,42,.07)}.tp-public-hero h1{margin:0;color:var(--tp-red);font-size:32px;letter-spacing:-.04em}.tp-public-hero p{margin:8px 0 0;color:#64748b}.certificate-preview{text-align:center;padding:42px}.certificate-preview h1{color:var(--tp-red);font-size:36px}.certificate-preview h2{font-size:30px;margin:10px 0}.tp-table input[readonly]{width:100%;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#f8fafc;color:#475569}.tp-btn:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(15,23,42,.08)}.tp-btn:active{transform:translateY(0)}
@media(max-width:720px){.tp-public-hero{display:block}.inline-status-form{min-width:0;grid-template-columns:1fr}.tp-public-wrap{padding:16px}}

/* TOCAPU Standalone v1.0 - cierre funcional */
.tp-public-wrap.wide{max-width:1180px}
.actions.wrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tp-btn-green{border-color:#128c55!important;color:#128c55!important;background:#fff!important}
.tp-btn-green:hover{background:#e9fff3!important}
.tp-item-card p{margin:.35rem 0;color:#5c6470}.tp-item-card small{display:block;color:#6f7682;line-height:1.45}.tp-table a{color:#8d2025;font-weight:700;text-decoration:none}.tp-card input[readonly]{background:#f7f8fa;border:1px solid #e3e5ea;border-radius:10px;padding:9px;width:100%}
.tp-certificate-body{background:#eef0f4;font-family:Inter,Arial,sans-serif;color:#222;margin:0;padding:24px}.tp-certificate-page{max-width:1120px;margin:0 auto;display:grid;gap:20px}.tp-cert-front,.tp-cert-back{background:#fff;border:1px solid #dadde5;border-radius:24px;padding:42px;box-shadow:0 18px 45px rgba(20,30,45,.10)}.tp-cert-brand{display:flex;gap:14px;align-items:center;border-bottom:2px solid #8d2025;padding-bottom:18px;margin-bottom:24px}.tp-cert-brand strong{display:block;font-size:22px;color:#8d2025}.tp-cert-brand span{display:block;color:#6b7280}.tp-cert-kicker{text-transform:uppercase;letter-spacing:.16em;color:#8d2025;font-weight:800}.tp-cert-front h1{font-size:44px;margin:10px 0;color:#161b22}.tp-cert-front h2{font-size:28px;margin:10px 0;color:#8d2025}.tp-cert-text{font-size:18px;color:#4b5563}.tp-cert-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0}.tp-cert-meta div{border:1px solid #e4e7ee;border-radius:16px;padding:16px;background:#fafafa}.tp-cert-sign{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:45px}.tp-cert-sign div{border-top:1px solid #111;text-align:center;padding-top:10px}.tp-cert-sign span{display:block;color:#6b7280;font-size:13px}.tp-cert-back h2{color:#8d2025}.no-print{margin-top:20px}
@media print{.no-print,.tp-public-hero .actions,.tp-btn{display:none!important}body.tp-public-body,body.tp-certificate-body{background:#fff;padding:0}.tp-public-wrap,.tp-public-wrap.wide,.tp-certificate-page{max-width:none;margin:0}.tp-card,.tp-cert-front,.tp-cert-back{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.tp-cert-front,.tp-cert-back{min-height:90vh;page-break-after:always}.tp-sidebar,.tp-topbar{display:none!important}.tp-content{padding:0!important}}


/* TOCAPU Standalone v1.1 - consolidación visual */
.tp-pill{letter-spacing:.01em}
.tp-card{transition:box-shadow .18s ease, transform .18s ease}
.tp-card:hover{box-shadow:0 12px 30px rgba(15,23,42,.075)}
.tp-page-head .tp-badge{white-space:nowrap}
.tp-alert{font-weight:700}
.tp-btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(207,16,32,.24);outline-offset:2px}
.tp-version-note{font-size:12px;color:#64748b;margin-top:4px}
@media print{.tp-card:hover{box-shadow:none}}

/* v1.2 — búsqueda transversal y continuidad */
.tp-topbar{gap:14px;}
.tp-top-search{display:flex;align-items:center;gap:6px;min-width:280px;flex:1;max-width:520px;}
.tp-top-search input{width:100%;border:1px solid rgba(140,31,35,.22);border-radius:999px;padding:10px 14px;background:#fff;color:#2f2f2f;box-shadow:0 8px 20px rgba(32,37,47,.04);}
.tp-top-search button{border:1px solid #8c1f23;background:#fff;color:#8c1f23;border-radius:999px;width:40px;height:40px;cursor:pointer;font-weight:800;}
.tp-inline-search{display:flex;gap:10px;align-items:center;}
.tp-inline-search.large input{flex:1;min-height:44px;border:1px solid rgba(140,31,35,.24);border-radius:14px;padding:12px 14px;background:#fff;}
.tp-muted{color:#6b7280;font-size:.92rem;}
.tp-card h3{margin:.2rem 0 .45rem;color:#8c1f23;}
@media (max-width: 980px){.tp-top-search{display:none}.tp-inline-search{flex-direction:column;align-items:stretch}}


/* v1.3 — centro de alertas operativas */
.tp-alert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.tp-alert-tile{border:1px solid #e6eaf1;border-radius:16px;padding:16px;background:#f8fafc;display:flex;flex-direction:column;gap:6px}
.tp-alert-tile strong{font-size:18px;color:#172033}
.tp-alert-tile span{color:#64748b;font-weight:700}
.tp-alert-tile.ok{background:#ecfdf5;border-color:#a7f3d0}
.tp-alert-tile.warn{background:#fffbeb;border-color:#fde68a}
.tp-priority-card{border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff7f7)}
.tp-public-wrap.wide .tp-table small{color:#64748b}

/* v2.0 — migración total candidata desde plugin */
.tp-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.tp-check-grid span{border:1px solid #e6eaf1;background:#f8fafc;border-radius:14px;padding:12px 14px;font-weight:800;color:#172033}.tp-color-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.tp-color-grid div{border:1px solid #e6eaf1;border-radius:16px;padding:14px;background:#fff}.tp-color-grid span{display:block;width:100%;height:44px;border-radius:12px;background:var(--c);margin-bottom:10px}.tp-color-grid strong{display:block}.tp-color-grid small{color:#64748b}.tp-badge.red-soft{background:#fff1f2;color:#be123c}.tp-panel-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.tp-panel-tabs a{border:1px solid #e6eaf1;background:#fff;padding:9px 12px;border-radius:999px;font-weight:800;color:#334155}.tp-panel-tabs a.active{background:linear-gradient(135deg,var(--tp-red),var(--tp-red-dark));color:#fff;border-color:transparent}.tp-recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.tp-recipe{border:1px solid #e6eaf1;border-radius:16px;background:#fff;padding:18px}.tp-recipe h3{margin:8px 0;color:#8c1f23}.tp-recipe p{color:#64748b}.tp-codebox{background:#0f172a;color:#e2e8f0;border-radius:14px;padding:14px;font-family:Consolas,monospace;white-space:pre-wrap;line-height:1.45;max-height:240px;overflow:auto}.tp-admin-subnav{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.tp-admin-subnav a{border:1px solid #e6eaf1;border-radius:16px;padding:16px;background:#fff;font-weight:900}.tp-admin-subnav a small{display:block;color:#64748b;font-weight:600;margin-top:4px}.tp-module-state{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tp-module-state .dot{width:10px;height:10px;border-radius:999px;background:#10b981}.tp-module-state .dot.warn{background:#f59e0b}.tp-module-state .dot.blue{background:#2563eb}

/* v12.0 · Inscripción de oficina y bloque QR público */
.tp-office-enrollment h2.wide{margin:1.1rem 0 .15rem;padding:.75rem 1rem;border-radius:14px;background:#f8fafc;border:1px solid #e5e7eb;color:#7f1d1d;font-size:1rem}.tp-price-red{font-size:2.1rem;font-weight:900;color:#b91c1c;line-height:1}.tp-price-inline{font-weight:900;color:#b91c1c}.tp-accent-card{border-left:5px solid #b91c1c}.tp-mini-list{display:grid;gap:.45rem;margin-top:1rem}.tp-mini-list span{padding:.55rem .75rem;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.tp-qr-v5360{display:flex;gap:1rem;align-items:center;justify-content:space-between;background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:1rem}.tp-public-v5360 .tp-payment-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:1rem;margin:.9rem 0}.tp-public-v5361 .tp-success-steps{display:grid;gap:.7rem;margin:1rem 0}.tp-public-v5361 .tp-success-steps div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:.8rem}.tp-public-v5361 .tp-primary-next{border-left:5px solid #16a34a;background:#f0fdf4}
@media(max-width:780px){.tp-qr-v5360{display:block}.tp-qr-v5360 .tp-btn{margin-top:.75rem}}

/* v13.0 · Gestión de cursos completa */
.tp-page-head.compact{margin-bottom:1rem}.tp-course-kpis .metric{border-top:4px solid #16a34a}.tp-course-editor{border-top:5px solid #16a34a}.tp-course-form{gap:14px}.tp-accordion{border:1px solid #e5e7eb;border-radius:16px;background:#fff;margin:0 0 12px;overflow:hidden}.tp-accordion summary{cursor:pointer;list-style:none;padding:15px 18px;font-weight:900;color:#14532d;background:linear-gradient(90deg,#f0fdf4,#fff);border-bottom:1px solid #e5e7eb}.tp-accordion summary::-webkit-details-marker{display:none}.tp-accordion summary:before{content:'▸';display:inline-block;margin-right:8px;color:#16a34a;transition:.15s}.tp-accordion[open] summary:before{transform:rotate(90deg)}.tp-accordion .nested{padding:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tp-form-grid .checkline{display:flex;gap:8px;align-items:center;border:1px solid #e5e7eb;background:#f8fafc;border-radius:12px;padding:12px}.tp-form-grid .checkline input{width:auto}.tp-course-savebar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 0 0}.tp-course-toolbar{flex-wrap:wrap}.tp-course-toolbar input{min-width:260px}.tp-course-card-grid{grid-template-columns:1fr}.tp-course-card{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;border-left:5px solid #16a34a}.tp-course-main h3{font-size:1.28rem;margin:.65rem 0 .35rem;color:#8c1f23}.tp-course-topline{display:flex;flex-wrap:wrap;gap:6px}.tp-course-mini-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-top:14px}.tp-course-mini-metrics span{border:1px solid #e5e7eb;background:#f8fafc;border-radius:12px;padding:9px 10px;color:#64748b;font-size:.84rem}.tp-course-mini-metrics strong{display:block;color:#111827;font-size:1rem}.tp-course-actions{justify-content:flex-end}.tp-course-actions .tp-btn{min-width:104px}.tp-price-inline{font-weight:900;color:#b91c1c}.tp-badge.red-soft{background:#fff1f2;color:#be123c}@media(max-width:1100px){.tp-course-card{grid-template-columns:1fr}.tp-course-actions{justify-content:flex-start;margin-top:14px}.tp-accordion .nested{grid-template-columns:1fr}}


/* v14.0 · Gestión de docentes completa */
.tp-teacher-kpis .metric{border-top:4px solid #2563eb}.tp-teacher-editor{border-top:5px solid #2563eb}.tp-teacher-form textarea{min-height:104px}.tp-teacher-card-grid{grid-template-columns:1fr}.tp-teacher-card{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;border-left:5px solid #2563eb}.tp-teacher-mainbox h3{font-size:1.24rem;margin:.65rem 0 .35rem;color:#8c1f23}.tp-teacher-profile h2{color:#1d4ed8}.tp-teacher-hero-name{letter-spacing:-.03em}@media(max-width:1100px){.tp-teacher-card{grid-template-columns:1fr}.tp-teacher-card .card-actions{justify-content:flex-start;margin-top:14px}}

/* TOCAPU v15.0 - Centro de Producción Inteligente */
.tp-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px}.tp-stat-card{background:#fff;border:1px solid #e6eaf1;border-radius:16px;padding:18px;box-shadow:0 8px 20px rgba(15,23,42,.05)}.tp-stat-card span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:900}.tp-stat-card strong{display:block;color:var(--tp-red);font-size:30px;line-height:1.1;margin:6px 0}.tp-stat-card small{color:#64748b}.tp-page-head.compact{margin-bottom:14px}.tp-chip-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}.tp-chip{display:inline-flex;align-items:center;border:1px solid #e6eaf1;background:#f8fafc;color:#334155;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.price-highlight{font-size:26px;font-weight:950;color:var(--tp-red);margin:10px 0}.tp-copy-box{background:#f8fafc;border:1px solid #e6eaf1;border-radius:14px;padding:14px;margin-top:12px}.tp-copy-box h4{margin:10px 0 6px;color:#334155}.tp-copy-box pre{white-space:pre-wrap;background:#fff;border:1px solid #e6eaf1;border-radius:12px;padding:12px;font-family:Consolas,Monaco,monospace;line-height:1.45;max-height:260px;overflow:auto}.tp-item-card details summary{cursor:pointer;font-weight:900;color:#8c1f23;margin-top:10px}.tp-item-card .card-actions{min-width:135px;justify-content:flex-end}.tp-card ul{padding-left:20px;line-height:1.7}.tp-card-grid .tp-item-card{align-items:stretch}.actions.wrap{flex-wrap:wrap}

/* v24.8 · rendimiento, escalabilidad y consolidación responsive */
.tp-badge.red{background:#fef2f2;color:#b91c1c}
.tp-table-wrap{width:100%;overflow:auto;border-radius:14px}
.tp-table-wrap .tp-table{min-width:760px}
.tp-menu-toggle{display:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.24);border-radius:12px;background:rgba(255,255,255,.14);color:#fff;font-size:21px;font-weight:900;cursor:pointer;align-items:center;justify-content:center;flex:0 0 auto}
.tp-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:29}
.tp-release-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:6px solid #f59e0b}
.tp-release-banner.ready{border-left-color:#059669;background:linear-gradient(135deg,#ecfdf5,#fff)}
.tp-release-banner.review{background:linear-gradient(135deg,#fffbeb,#fff)}
.tp-release-banner h2{margin:10px 0 5px}
.tp-release-banner p{margin:0;color:#64748b}
.tp-release-score{font-size:54px;font-weight:950;letter-spacing:-.06em;color:var(--tp-red);white-space:nowrap}
.tp-release-score small{font-size:16px;letter-spacing:0;color:#64748b;margin-left:4px}
.tp-qa-kpis .metric:nth-child(1){border-top:4px solid #2563eb}
.tp-qa-kpis .metric:nth-child(2){border-top:4px solid #059669}
.tp-qa-kpis .metric:nth-child(3){border-top:4px solid #f59e0b}
.tp-qa-kpis .metric:nth-child(4){border-top:4px solid #b91c1c}
.tp-qa-section{padding:20px}
.tp-qa-section .tp-table td:nth-child(3){white-space:nowrap}
.tp-content>.tp-card:last-child{margin-bottom:0}
.tp-btn,.tp-menu a,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease}
.tp-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,23,42,.08)}
.tp-btn-red:hover{box-shadow:0 12px 24px rgba(207,16,32,.24)}
.tp-table tbody tr:hover{background:#fbfcfe}

@media(max-width:1100px){
  .tp-topbar{padding:0 16px}
  .tp-pill{font-size:12px;padding:9px 12px}
  .tp-userbox small,.tp-userbox span{display:none}
}
@media(max-width:920px){
  .tp-app-body{display:block}
  .tp-sidebar{position:fixed;left:-310px;top:0;bottom:0;width:292px;height:100vh;z-index:30;transition:left .22s ease;box-shadow:0 20px 50px rgba(15,23,42,.22)}
  body.tp-nav-open .tp-sidebar{left:0}
  body.tp-nav-open .tp-sidebar-overlay{display:block}
  .tp-shell{margin-left:0;width:100%}
  .tp-topbar{position:sticky;top:0;min-height:70px;height:auto;padding-top:10px;padding-bottom:10px}
  .tp-menu-toggle{display:inline-flex}
  .tp-content{padding:18px}
  .tp-page-head{display:flex;flex-direction:column}
  .tp-release-banner{align-items:flex-start}
}
@media(max-width:680px){
  .tp-pill{display:none}
  .tp-userbox>div:not(.tp-avatar){display:none}
  .tp-userbox{padding:6px 8px;gap:6px}
  .tp-avatar{width:36px;height:36px}
  .tp-content{padding:14px}
  .tp-card{padding:17px;border-radius:15px}
  .tp-page-head h1{font-size:24px}
  .tp-release-banner{display:block}
  .tp-release-score{font-size:42px;margin-top:14px}
  .actions,.actions.wrap,.card-actions,.row-actions{align-items:stretch}
  .actions.wrap .tp-btn{flex:1 1 160px}
}
@media print{
  .tp-menu-toggle,.tp-sidebar-overlay{display:none!important}
  .tp-release-banner{border:1px solid #ddd!important;background:#fff!important}
}

/* v24.9 · operación con alto volumen y paginación SQL */
.tp-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px;padding:12px 14px;border:1px solid #e6eaf1;border-radius:14px;background:#f8fafc}
.tp-pagination-summary{color:#64748b;font-size:.9rem}
.tp-pagination-links,.tp-pagination-size{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tp-page-link,.tp-page-size-link{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border:1px solid #dbe2ea;border-radius:10px;background:#fff;color:#334155;font-weight:850;text-decoration:none}
.tp-page-link:hover,.tp-page-size-link:hover{border-color:#94a3b8;background:#f1f5f9}
.tp-page-link.active,.tp-page-size-link.active{border-color:var(--tp-red);background:var(--tp-red);color:#fff}
.tp-page-link.disabled{opacity:.42;cursor:not-allowed}
.tp-page-gap{padding:0 3px;color:#94a3b8}
.tp-pagination-size>span{color:#64748b;font-size:.82rem;font-weight:800;margin-right:2px}
@media(max-width:680px){.tp-pagination{align-items:stretch}.tp-pagination-summary{width:100%}.tp-pagination-links{order:2}.tp-pagination-size{order:3;width:100%}.tp-page-link,.tp-page-size-link{min-width:38px;height:38px}}

/* v25.0 · experiencia visual unificada y navegación accesible */
:root{
  --tp-red:#b80d12;
  --tp-red-dark:#8f0b10;
  --tp-focus:rgba(184,13,18,.18);
  --tp-radius-sm:9px;
  --tp-radius-md:13px;
  --tp-radius-lg:18px;
}
.tp-icon{width:21px;height:21px;display:block;flex:0 0 auto}
.tp-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.tp-skip-link{position:fixed;left:18px;top:-70px;z-index:1000;background:#fff;color:var(--tp-red);border:2px solid var(--tp-red);border-radius:10px;padding:10px 14px;font-weight:900;box-shadow:var(--tp-shadow);transition:top .16s ease}
.tp-skip-link:focus{top:14px}
.tp-sidebar{display:flex;flex-direction:column;overflow:hidden}
.tp-brand{position:relative;flex:0 0 auto}
.tp-sidebar-close{display:none;margin-left:auto;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid var(--tp-line);border-radius:10px;background:#fff;color:#475569;cursor:pointer}
.tp-sidebar-close .tp-icon{width:19px;height:19px}
.tp-menu{display:flex;flex-direction:column;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
.tp-menu-flow-label{padding:0 12px 9px;color:#94a3b8;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.tp-menu a{position:relative;min-height:48px;line-height:1.22}
.tp-menu a .tp-icon{color:#64748b;stroke:currentColor}
.tp-menu a:hover .tp-icon{color:var(--tp-red)}
.tp-menu a.active{background:linear-gradient(135deg,var(--tp-red) 0%,var(--tp-red-dark) 100%);border-color:var(--tp-red);color:#fff;box-shadow:0 14px 26px rgba(184,13,18,.22)}
.tp-menu a.active .tp-icon{color:#fff;stroke:#fff}
.tp-menu a.active:before{content:"";position:absolute;left:6px;top:50%;width:4px;height:24px;border-radius:999px;background:#facc15;transform:translateY(-50%)}
.tp-menu .tp-logout-link{margin-top:auto;border-top:1px solid var(--tp-line);border-radius:0;padding-top:16px;padding-bottom:16px;color:#7f1d1d}
.tp-menu .tp-logout-link:hover{background:#fff1f2;color:#b91c1c}
.tp-menu .tp-logout-link .tp-icon{color:#b91c1c}
.tp-sidebar-version{flex:0 0 auto;padding:12px 20px 16px;border-top:1px solid var(--tp-line);background:#f8fafc;color:#64748b}
.tp-sidebar-version span,.tp-sidebar-version small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-sidebar-version span{font-size:10px;font-weight:850}
.tp-sidebar-version small{margin-top:3px;font-size:9px;letter-spacing:.06em;color:#94a3b8}
.tp-topbar{gap:14px;justify-content:flex-start}
.tp-topbar-context{display:none;min-width:0}
.tp-topbar-context span,.tp-topbar-context strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-context-kicker{font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;opacity:.72}
.tp-topbar-context strong{font-size:15px}
.tp-top-search{margin-left:auto;display:flex;align-items:center;min-width:260px;max-width:520px;flex:1 1 420px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.20);border-radius:13px;overflow:hidden}
.tp-top-search input{width:100%;min-width:0;padding:10px 12px;border:0;outline:0;background:transparent;color:#fff;font:inherit}
.tp-top-search input::placeholder{color:rgba(255,255,255,.72)}
.tp-top-search button{width:44px;height:40px;display:grid;place-items:center;border:0;border-left:1px solid rgba(255,255,255,.16);background:transparent;color:#fff;cursor:pointer}
.tp-top-search .tp-icon{width:19px;height:19px}
.tp-power .tp-icon{width:18px;height:18px}
.tp-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;box-shadow:0 8px 20px rgba(15,23,42,.05)}
.tp-alert>span{min-width:0}
.tp-alert-close{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:8px;background:transparent;color:currentColor;cursor:pointer;opacity:.7}
.tp-alert-close:hover{opacity:1;background:rgba(255,255,255,.55)}
.tp-alert-close .tp-icon{width:17px;height:17px}
.tp-btn{border-color:#cbd5e1;background:#fff;color:#334155;box-shadow:none}
.tp-btn:hover{border-color:#94a3b8;background:#f8fafc;color:#111827;transform:none;box-shadow:none}
.tp-btn-red,.tp-btn.primary{background:linear-gradient(135deg,var(--tp-red),var(--tp-red-dark));border-color:var(--tp-red);color:#fff;box-shadow:0 8px 16px rgba(184,13,18,.16)}
.tp-btn-red:hover,.tp-btn.primary:hover{background:linear-gradient(135deg,#a90d11,#7f0a0e);border-color:#a90d11;color:#fff;box-shadow:0 10px 20px rgba(184,13,18,.20)}
.tp-btn.danger{background:#fff;border-color:#fecaca;color:#b91c1c}
.tp-btn.danger:hover{background:#fff1f2;border-color:#fca5a5;color:#991b1b}
.tp-btn:disabled,.tp-is-busy{opacity:.62;cursor:wait!important;transform:none!important;box-shadow:none!important}
button,input,select,textarea,a{scroll-margin-top:92px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--tp-focus);outline-offset:2px}
.tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-toolbar input,.tp-toolbar select,.tp-login-card input{background:#fff;border-color:#cbd5e1}
.tp-toolbar{flex-wrap:wrap;padding:12px;border:1px solid #e6eaf1;border-radius:14px;background:#f8fafc}
.tp-toolbar .tp-btn{min-height:42px}
.tp-card{box-shadow:0 7px 18px rgba(15,23,42,.045)}
.tp-card:hover{border-color:#dbe2ea}
.tp-table-wrap{border:1px solid #e6eaf1;background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.tp-table-wrap:focus-visible{outline:3px solid var(--tp-focus);outline-offset:2px}
.tp-table{border-collapse:separate;border-spacing:0}
.tp-table th{position:sticky;top:0;z-index:1;background:#f8fafc;border-bottom:1px solid #dbe2ea}
.tp-table tbody tr:nth-child(even){background:#fcfdff}
.tp-table tbody tr:hover{background:#fff8f8}
.tp-table td:last-child,.tp-table th:last-child{border-right:0}
.tp-content>.tp-page-head:first-child,.tp-content>section>.tp-page-head:first-child{padding-bottom:16px;border-bottom:1px solid #e6eaf1}
.tp-page-head h1{color:#1f2937}
.tp-page-head p{max-width:900px;line-height:1.55}
.tp-item-card,.tp-course-card,.tp-teacher-card{box-shadow:0 5px 14px rgba(15,23,42,.035)}
.tp-public-wrap .tp-card{max-width:100%;overflow-x:auto}
@media(max-width:1180px){
  .tp-pill{display:none}
  .tp-topbar-context{display:block;max-width:240px}
  .tp-top-search{max-width:none}
}
@media(max-width:920px){
  .tp-sidebar-close{display:inline-flex}
  .tp-sidebar{overflow:hidden}
  .tp-menu{padding-bottom:8px}
  .tp-topbar-context{display:block;flex:1 1 auto;max-width:none}
  .tp-top-search{display:none}
  .tp-userbox{margin-left:auto}
}
@media(max-width:680px){
  .tp-topbar{gap:9px}
  .tp-topbar-context strong{font-size:13px}
  .tp-context-kicker{font-size:8px}
  .tp-toolbar{align-items:stretch}
  .tp-toolbar input,.tp-toolbar select,.tp-toolbar .tp-btn{max-width:none;width:100%}
  .tp-form-grid{grid-template-columns:1fr}
  .tp-form-grid .wide{grid-column:auto}
  .tp-btn{min-height:42px}
  .tp-card-grid{grid-template-columns:1fr}
  .tp-item-card{display:block}
  .tp-item-card .card-actions{margin-top:14px}
  .tp-pagination-links{max-width:100%;overflow-x:auto;padding-bottom:3px;flex-wrap:nowrap}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media print{
  .tp-skip-link,.tp-sidebar,.tp-sidebar-overlay,.tp-topbar,.tp-alert-close{display:none!important}
  .tp-shell{margin-left:0!important;width:100%!important}
  .tp-content{padding:0!important}
  .tp-card{box-shadow:none!important}
  .tp-table-wrap{overflow:visible!important;border:0!important}
}

/* TOCAPU v25.7 - Reportes ejecutivos y analítica */
.tp-analytics-head{align-items:flex-start}
.tp-analytics-eyebrow{display:block;margin-bottom:6px;color:#9f1239;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.tp-analytics-filter-card{border-left:6px solid #b80d12;background:linear-gradient(135deg,#fff 0%,#fff8f8 100%)}
.tp-analytics-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.tp-analytics-section-title>div{display:flex;align-items:center;gap:10px;min-width:0}
.tp-analytics-section-title>div>span{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:#fff1f2;border:1px solid #fecdd3;color:#be123c;font-size:11px;font-weight:950}
.tp-analytics-section-title h2{margin:0;color:#1f2937;font-size:18px;font-weight:900}
.tp-analytics-section-title small{color:#64748b;font-weight:750;text-align:right}
.tp-analytics-filters{align-items:end}
.tp-analytics-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}
.tp-analytics-kpi{position:relative;min-height:124px;padding:18px;border:1px solid #e2e8f0;border-left:7px solid var(--kpi,#b80d12);border-radius:20px;background:linear-gradient(135deg,#fff 0%,#fbfcfe 100%);box-shadow:0 10px 24px rgba(15,23,42,.055);overflow:hidden}
.tp-analytics-kpi:after{content:"";position:absolute;right:-20px;top:-24px;width:86px;height:86px;border-radius:50%;background:color-mix(in srgb,var(--kpi,#b80d12) 10%,transparent)}
.tp-analytics-kpi small{display:block;color:#64748b;font-size:11px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.tp-analytics-kpi strong{display:block;margin:9px 0 7px;color:#111827;font-size:28px;line-height:1;font-weight:950;letter-spacing:-.035em}
.tp-analytics-kpi span{display:block;color:#64748b;font-size:12px;font-weight:700;line-height:1.4}
.tp-analytics-kpi.kpi-income{--kpi:#15803d}.tp-analytics-kpi.kpi-result{--kpi:#b80d12}.tp-analytics-kpi.kpi-students{--kpi:#2563eb}.tp-analytics-kpi.kpi-collection{--kpi:#d97706}.tp-analytics-kpi.kpi-portfolio{--kpi:#7c3aed}.tp-analytics-kpi.kpi-operations{--kpi:#0f766e}
.tp-analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}
.tp-analytics-grid-main{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}
.tp-analytics-span-2{min-width:0}
.tp-analytics-panel{overflow:hidden}
.tp-monthly-chart{display:flex;align-items:flex-end;gap:8px;height:260px;padding:20px 12px 0;border:1px solid #e2e8f0;border-radius:16px;background:repeating-linear-gradient(to top,#fff 0,#fff 49px,#edf2f7 50px)}
.tp-month-column{display:flex;flex:1 1 0;min-width:38px;height:100%;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center}
.tp-month-bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:100%;height:195px}
.tp-month-bars i{display:block;width:min(22px,42%);min-height:3px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#22c55e,#15803d);box-shadow:0 2px 8px rgba(21,128,61,.18)}
.tp-month-bars i.expense{background:linear-gradient(180deg,#fb7185,#be123c);box-shadow:0 2px 8px rgba(190,18,60,.18)}
.tp-month-column strong{display:block;margin-top:7px;color:#334155;font-size:10px;white-space:nowrap}
.tp-month-column small{display:block;color:#94a3b8;font-size:9px}
.tp-chart-legend{display:flex;justify-content:flex-end;gap:16px;margin:10px 0 14px;color:#64748b;font-size:11px;font-weight:750}
.tp-chart-legend i{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px;background:#15803d}.tp-chart-legend i.expense{background:#be123c}
.tp-analytics-alerts{display:grid;gap:10px}
.tp-analytics-alert{padding:13px 14px;border:1px solid #e2e8f0;border-left:5px solid #64748b;border-radius:14px;background:#fff}
.tp-analytics-alert strong{display:block;margin-bottom:4px;color:#1e293b;font-size:13px}.tp-analytics-alert p{margin:0;color:#64748b;font-size:12px;line-height:1.45}
.tp-analytics-alert.danger{border-left-color:#dc2626;background:#fff7f7}.tp-analytics-alert.warning{border-left-color:#d97706;background:#fffaf2}.tp-analytics-alert.info{border-left-color:#2563eb;background:#f7faff}.tp-analytics-alert.success{border-left-color:#16a34a;background:#f5fff8}
.tp-distribution-list{display:grid;gap:13px}.tp-distribution-list>div header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.tp-distribution-list header strong{color:#334155;font-size:12px}.tp-distribution-list header span{color:#64748b;font-size:11px;font-weight:750}.tp-distribution-list>div>i{display:block;height:9px;border-radius:999px;background:#edf2f7;overflow:hidden}.tp-distribution-list>div>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#be123c,#ef4444)}.tp-distribution-list.is-secondary>div>i>b{background:linear-gradient(90deg,#2563eb,#60a5fa)}.tp-distribution-list.is-tertiary>div>i>b{background:linear-gradient(90deg,#0f766e,#2dd4bf)}
.tp-course-income-chart{display:grid;gap:10px;margin-bottom:18px;padding:14px;border:1px solid #e2e8f0;border-radius:16px;background:#fbfcfe}.tp-course-income-row{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(180px,2fr) 120px;align-items:center;gap:12px}.tp-course-income-row>strong{overflow:hidden;color:#334155;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.tp-course-income-row>i{display:block;height:11px;border-radius:999px;background:#eef2f7;overflow:hidden}.tp-course-income-row>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9f1239,#ef4444)}.tp-course-income-row>span{text-align:right;color:#475569;font-size:11px;font-weight:850}
.tp-analytics-table{min-width:1100px}.tp-analytics-table td{font-size:12px}.tp-table-subtext{display:block;margin-top:4px;color:#94a3b8;font-size:10px;font-weight:650}.tp-health-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#eef2f7;color:#475569;font-size:10px;font-weight:900;white-space:nowrap}.tp-health-badge.success{background:#dcfce7;color:#166534}.tp-health-badge.warning{background:#fef3c7;color:#92400e}.tp-health-badge.danger{background:#fee2e2;color:#991b1b}.tp-text-danger{color:#b91c1c!important;font-weight:850}.tp-text-success{color:#166534!important;font-weight:850}.tp-empty-state{padding:28px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;color:#64748b;text-align:center;font-weight:750}
@media(max-width:1180px){.tp-analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-analytics-grid{grid-template-columns:1fr 1fr}.tp-analytics-grid-main{grid-template-columns:1fr}.tp-analytics-grid-main .tp-analytics-span-2{grid-column:1/-1}.tp-monthly-chart{overflow-x:auto}.tp-month-column{min-width:58px}}
@media(max-width:760px){.tp-analytics-kpis,.tp-analytics-grid{grid-template-columns:1fr}.tp-analytics-kpi{min-height:108px}.tp-analytics-section-title{align-items:flex-start}.tp-analytics-section-title small{display:none}.tp-monthly-chart{height:230px}.tp-month-bars{height:170px}.tp-course-income-row{grid-template-columns:1fr}.tp-course-income-row>span{text-align:left}}
@media print{.tp-analytics-filter-card,.tp-analytics-head .actions,.tp-analytics-panel.no-print{display:none!important}.tp-analytics-kpis{grid-template-columns:repeat(3,1fr)}.tp-analytics-grid{grid-template-columns:1fr 1fr}.tp-analytics-grid-main{grid-template-columns:2fr 1fr}.tp-analytics-kpi,.tp-analytics-panel{break-inside:avoid}.tp-monthly-chart{height:190px}.tp-month-bars{height:135px}}

/* TOCAPU v25.8 - Centro de Producción Inteligente integral */
.tp-cpi-hero{padding:20px 22px;border-left:7px solid #4f46e5;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#f7f7ff 100%);box-shadow:0 10px 28px rgba(79,70,229,.08)}
.tp-cpi-kicker{display:block;margin-bottom:6px;color:#4338ca;font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.tp-cpi-badge{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}.tp-cpi-tabs a.active{background:linear-gradient(135deg,#4338ca,#6366f1);color:#fff;border-color:#4338ca}
.tp-btn-indigo{background:linear-gradient(135deg,#4338ca,#6366f1);color:#fff;border-color:transparent;box-shadow:0 9px 18px rgba(79,70,229,.18)}
.tp-cpi-stats .tp-stat-card{border-top:4px solid #6366f1}.tp-cpi-stats .tp-stat-card strong{color:#3730a3}
.tp-cpi-command{position:relative;border-top:4px solid #6366f1}.tp-cpi-command h2{margin:12px 0 8px;color:#312e81}.tp-cpi-command p{min-height:66px;color:#64748b;line-height:1.55}
.tp-cpi-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tp-cpi-category-grid article{padding:18px;border:1px solid #e0e7ff;border-radius:16px;background:#fafaff}.tp-cpi-category-grid strong{display:block;color:#3730a3;font-size:28px;font-weight:950}.tp-cpi-category-grid span{display:block;margin:5px 0;color:#312e81;font-weight:900}.tp-cpi-category-grid small{color:#64748b;line-height:1.45}
.tp-cpi-studio,.tp-cpi-package-screen,.tp-cpi-academic-screen{border-left:7px solid #4f46e5}.tp-cpi-context{border-top:5px solid #6366f1}.tp-cpi-context h3{color:#312e81}
.tp-cpi-package-grid .tp-recipe{border-top:4px solid #6366f1}.tp-cpi-package-grid details{margin:12px 0}.tp-cpi-package-grid summary{cursor:pointer;color:#4338ca;font-weight:850}.tp-cpi-package-grid ul{margin:10px 0 0}
.tp-cpi-result-head{border-left:7px solid #4f46e5}.tp-cpi-output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}.tp-cpi-output{margin:0;padding:0;overflow:hidden;border-top:4px solid #6366f1}.tp-cpi-output summary{display:flex;justify-content:space-between;gap:12px;padding:17px 19px;cursor:pointer;color:#312e81;font-weight:950;background:#fafaff}.tp-cpi-output summary small{color:#818cf8;font-weight:750}.tp-cpi-output pre{margin:0;padding:18px;white-space:pre-wrap;font-family:Inter,Segoe UI,Arial,sans-serif;line-height:1.58;background:#fff;max-height:480px;overflow:auto}
.tp-cpi-history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-cpi-history-card{border-left:5px solid #6366f1}.tp-cpi-history-card h3{color:#312e81}.tp-cpi-history-card details summary{color:#4338ca}.tp-cpi-history-card .card-actions{min-width:150px}
@media(max-width:1050px){.tp-cpi-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-cpi-output-grid,.tp-cpi-history-grid{grid-template-columns:1fr}}
@media(max-width:680px){.tp-cpi-category-grid{grid-template-columns:1fr}.tp-cpi-hero{display:block}.tp-cpi-badge{margin-top:12px}.tp-cpi-output summary{align-items:flex-start;flex-direction:column}.tp-cpi-history-card .card-actions{min-width:0}}
@media print{.tp-cpi-tabs,.tp-cpi-result-head .actions{display:none!important}.tp-cpi-output-grid{display:block}.tp-cpi-output{margin-bottom:12px;break-inside:avoid}.tp-cpi-output pre{max-height:none}}
.tp-cpi-field-selector{border:1px solid #dbe4ff;border-radius:16px;background:#fafaff;padding:0;overflow:hidden}.tp-cpi-field-selector summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;color:#312e81}.tp-cpi-field-selector summary small{color:#64748b;font-weight:650;text-align:right}.tp-cpi-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:4px 16px 16px}.tp-cpi-check-grid label{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px;border:1px solid #e0e7ff;border-radius:12px;background:#fff;color:#475569;font-size:12px;font-weight:750}.tp-cpi-check-grid input{width:auto;flex:0 0 auto;margin-top:2px}.tp-cpi-result-fields{margin-top:10px}.tp-cpi-result-fields .tp-chip{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}
@media(max-width:900px){.tp-cpi-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.tp-cpi-check-grid{grid-template-columns:1fr}.tp-cpi-field-selector summary{align-items:flex-start;flex-direction:column}.tp-cpi-field-selector summary small{text-align:left}}

/* TOCAPU v25.9 - Portal del alumno y trazabilidad pública */
.tp-consent{display:flex!important;align-items:flex-start;gap:.7rem;border:1px solid #dbe2ea;border-radius:12px;padding:.85rem;background:#f8fafc}.tp-consent input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;margin-top:.15rem}.tp-consent span{display:block}.tp-request-admin-grid textarea{min-height:110px}.tp-request-admin-grid .tp-item-card{align-self:start}.tp-kpi-list span{color:#64748b;font-size:.88rem}.tp-public-wrap .tp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:720px){.tp-consent{padding:.75rem}.tp-request-admin-grid .tp-form-grid{grid-template-columns:1fr}.tp-request-admin-grid .wide{grid-column:auto}}

/* TOCAPU v26.0 - Homologación visual transversal y preferencias de densidad */
.tp-app-body{--tp-module-accent:#b80d12;--tp-module-accent-dark:#8f0a0f;--tp-module-soft:#fff5f5;--tp-module-border:#fecaca}
.tp-theme-courses{--tp-module-accent:#15803d;--tp-module-accent-dark:#166534;--tp-module-soft:#f0fdf4;--tp-module-border:#bbf7d0}
.tp-theme-teachers,.tp-theme-production{--tp-module-accent:#4f46e5;--tp-module-accent-dark:#3730a3;--tp-module-soft:#f5f3ff;--tp-module-border:#ddd6fe}
.tp-theme-students{--tp-module-accent:#2563eb;--tp-module-accent-dark:#1d4ed8;--tp-module-soft:#eff6ff;--tp-module-border:#bfdbfe}
.tp-theme-pipeline,.tp-theme-communications{--tp-module-accent:#0f766e;--tp-module-accent-dark:#115e59;--tp-module-soft:#f0fdfa;--tp-module-border:#99f6e4}
.tp-theme-finance{--tp-module-accent:#d97706;--tp-module-accent-dark:#b45309;--tp-module-soft:#fffbeb;--tp-module-border:#fde68a}
.tp-theme-certificates{--tp-module-accent:#7c3aed;--tp-module-accent-dark:#6d28d9;--tp-module-soft:#faf5ff;--tp-module-border:#e9d5ff}
.tp-theme-public,.tp-theme-dashboard,.tp-theme-admin,.tp-theme-analytics{--tp-module-accent:#b80d12;--tp-module-accent-dark:#8f0a0f;--tp-module-soft:#fff5f5;--tp-module-border:#fecaca}
.tp-content>.tp-page-head:first-child,.tp-content>section>.tp-page-head:first-child{border-bottom:2px solid var(--tp-module-border)}
.tp-page-head h1:before{content:"";display:inline-block;width:10px;height:10px;margin:0 10px 3px 0;border-radius:999px;background:var(--tp-module-accent);box-shadow:0 0 0 5px var(--tp-module-soft)}
.tp-page-head>.tp-badge:first-of-type{border-color:var(--tp-module-border)}
.tp-content .metrics .metric strong,.tp-content .tp-kpi-list strong{color:var(--tp-module-accent)}
.tp-content details>summary:focus-visible{outline-color:color-mix(in srgb,var(--tp-module-accent) 35%,transparent)}
.tp-content .tp-module-accent{color:var(--tp-module-accent)!important}
.tp-content .tp-module-border{border-color:var(--tp-module-border)!important}
.tp-content .tp-module-soft{background:var(--tp-module-soft)!important}
.tp-view-controls{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.tp-view-control{width:38px;height:38px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:11px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.tp-view-control:hover,.tp-view-control[aria-pressed="true"]{background:#fff;color:var(--tp-red)}
.tp-view-control .tp-icon{width:19px;height:19px}
.tp-sidebar,.tp-shell,.tp-brand,.tp-menu a,.tp-sidebar-version{transition:width .2s ease,margin .2s ease,padding .2s ease,transform .2s ease}
.tp-sidebar-collapsed .tp-sidebar{width:88px}
.tp-sidebar-collapsed .tp-shell{margin-left:88px;width:calc(100% - 88px)}
.tp-sidebar-collapsed .tp-brand{justify-content:center;padding:20px 10px}
.tp-sidebar-collapsed .tp-brand>div:not(.tp-brand-mark),.tp-sidebar-collapsed .tp-menu-flow-label,.tp-sidebar-collapsed .tp-menu a span,.tp-sidebar-collapsed .tp-sidebar-version small{display:none}
.tp-sidebar-collapsed .tp-brand-mark{width:44px;height:44px}
.tp-sidebar-collapsed .tp-menu{padding:16px 10px}
.tp-sidebar-collapsed .tp-menu a{justify-content:center;padding:13px 10px}
.tp-sidebar-collapsed .tp-menu a .tp-icon{margin:0}
.tp-sidebar-collapsed .tp-menu a.active:before{left:2px}
.tp-sidebar-collapsed .tp-sidebar-version{padding:10px 4px;text-align:center}
.tp-sidebar-collapsed .tp-sidebar-version span{font-size:9px;word-break:break-word}
.tp-density-compact .tp-content{padding-top:18px;padding-bottom:22px}
.tp-density-compact .tp-page-head{margin-bottom:14px}
.tp-density-compact .tp-page-head h1{font-size:24px}
.tp-density-compact .tp-card{padding:16px;margin-bottom:14px;border-radius:14px}
.tp-density-compact .tp-grid{gap:12px}
.tp-density-compact .tp-form-grid{gap:10px 12px}
.tp-density-compact .tp-btn{min-height:36px;padding:8px 11px;font-size:12px}
.tp-density-compact .tp-table th,.tp-density-compact .tp-table td{padding:9px 10px}
.tp-density-compact details>summary{padding-top:11px;padding-bottom:11px}
.tp-density-compact .tp-toolbar{padding:11px 12px}
.tp-homologation-hero{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(150px,.55fr));gap:14px;align-items:stretch;margin-bottom:20px}
.tp-homologation-score{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border:1px solid var(--tp-module-border);border-left:7px solid var(--tp-module-accent);border-radius:18px;background:linear-gradient(135deg,#fff,var(--tp-module-soft))}
.tp-homologation-score strong{display:block;font-size:54px;line-height:1;color:var(--tp-module-accent);letter-spacing:-.06em}
.tp-homologation-score h2{margin:0 0 6px}.tp-homologation-score p{margin:0;color:#64748b}
.tp-homologation-metric{display:flex;flex-direction:column;justify-content:center;padding:18px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}
.tp-homologation-metric strong{font-size:30px;color:var(--tp-module-accent)}.tp-homologation-metric span{color:#64748b;font-size:12px;font-weight:800}
.tp-parity-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tp-parity-filters a{padding:8px 12px;border:1px solid #dbe2ea;border-radius:999px;background:#fff;color:#475569;font-size:12px;font-weight:850}.tp-parity-filters a.active{background:var(--tp-module-accent);border-color:var(--tp-module-accent);color:#fff}
.tp-parity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.tp-parity-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:15px;border:1px solid #e2e8f0;border-radius:15px;background:#fff}
.tp-parity-item h3{margin:0 0 4px;font-size:14px}.tp-parity-item p{margin:0;color:#64748b;font-size:12px;line-height:1.5}.tp-parity-item small{display:block;margin-top:7px;color:#94a3b8}
.tp-badge.gray{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.tp-audit-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tp-audit-check{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.tp-audit-check strong{font-size:12px}.tp-audit-check span{font-size:11px;color:#64748b;text-align:right}.tp-audit-check.ok{border-left:5px solid #16a34a}.tp-audit-check.fail{border-left:5px solid #dc2626;background:#fff7f7}
.tp-screen-audit td:first-child{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}
.tp-screen-status{display:inline-flex;min-width:28px;justify-content:center;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900}.tp-screen-status.ok{background:#dcfce7;color:#166534}.tp-screen-status.warn{background:#fef3c7;color:#92400e}
@media(max-width:1180px){.tp-homologation-hero{grid-template-columns:1fr 1fr}.tp-homologation-score{grid-column:1/-1}}
@media(max-width:920px){.tp-desktop-only{display:none!important}.tp-sidebar-collapsed .tp-sidebar{width:292px}.tp-sidebar-collapsed .tp-shell{margin-left:0;width:100%}.tp-sidebar-collapsed .tp-brand>div:not(.tp-brand-mark),.tp-sidebar-collapsed .tp-menu-flow-label,.tp-sidebar-collapsed .tp-menu a span,.tp-sidebar-collapsed .tp-sidebar-version small{display:initial}.tp-sidebar-collapsed .tp-menu a{justify-content:flex-start;padding:13px 16px}.tp-view-controls{margin-left:auto}}
@media(max-width:720px){.tp-homologation-hero,.tp-parity-grid,.tp-audit-checks{grid-template-columns:1fr}.tp-homologation-score{display:block}.tp-homologation-score strong{margin-top:14px}.tp-view-controls{display:none}}
@media print{.tp-view-controls,.tp-parity-filters{display:none!important}.tp-homologation-hero{grid-template-columns:2fr repeat(3,1fr)}.tp-parity-grid{grid-template-columns:1fr 1fr}.tp-parity-item{break-inside:avoid}}

/* TOCAPU v26.1.1 · Restauración integral del formulario de cursos */
.tp-course-workspace{--tp-module-color:#16a34a;--tp-module-soft:#f0fdf4;--tp-module-border:#bbf7d0;--tp-module-text:#166534;max-width:100%}
.tp-course-workspace .tp-course-editor{padding:0;background:transparent;border:0;box-shadow:none}
.tp-course-workspace .tp-course-form-v5370{display:grid;gap:14px}
.tp-course-workspace .tp-course-summary-head{display:flex;flex-direction:column;gap:3px;min-width:0}
.tp-course-workspace .tp-course-summary-title{display:flex;align-items:center;justify-content:space-between;gap:14px}
.tp-course-workspace .tp-course-summary-name{overflow-wrap:anywhere}
.tp-course-workspace .tp-course-summary-item{display:flex;flex-direction:column;gap:5px;min-height:76px}
.tp-course-workspace .tp-course-summary-item .tp-text-note{font-size:11.5px;color:#64748b}
.tp-course-workspace .tp-course-status-controls-clean .tp-check-card{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.tp-course-workspace .tp-course-status-controls-clean .tp-check-card input{width:18px;height:18px}
.tp-course-workspace .tp-course-status-controls-clean .tp-check-card small{width:100%}
.tp-course-workspace .tp-course-subgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tp-course-workspace .tp-course-subcard{background:#f8fafc;border:1px solid #dbe4ec;border-radius:18px;padding:14px;box-shadow:0 6px 18px rgba(15,23,42,.035)}
.tp-course-workspace .tp-course-subcard-wide{grid-column:1/-1}
.tp-course-workspace .tp-course-subcard>h3{margin:0 0 5px;color:#166534;font-size:15px;font-weight:850}
.tp-course-workspace .tp-course-subcard>p{margin:0 0 12px;color:#64748b;font-size:12.5px;line-height:1.45}
.tp-course-workspace .tp-form-grid.nested{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tp-course-workspace .tp-form-grid.nested>.wide{grid-column:1/-1}
.tp-course-workspace .tp-field{display:flex!important;flex-direction:column;gap:7px;font-size:12.5px;font-weight:750;color:#334155}
.tp-course-workspace label.tp-field input,.tp-course-workspace label.tp-field select,.tp-course-workspace label.tp-field textarea{width:100%;margin-top:2px}
.tp-course-workspace .tp-field textarea{min-height:92px;resize:vertical}
.tp-course-workspace .tp-live-url-card{position:relative;background:#fff!important;border-left:4px solid #16a34a!important}
.tp-course-workspace .tp-live-url-card>span{font-weight:850;color:#166534}
.tp-course-workspace .tp-live-url-card code{display:block;max-width:100%;padding:10px;border-radius:10px;background:#f0fdf4;border:1px dashed #86efac;color:#14532d;font-size:12px;overflow-wrap:anywhere;word-break:break-word;user-select:all}
.tp-course-workspace .tp-live-url-card .tp-btn{align-self:flex-start}
.tp-course-workspace .tp-session-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.tp-course-workspace .tp-session-controls .tp-field{min-width:220px}
.tp-course-workspace .tp-session-box{border:1px solid #dbe4ec;border-radius:15px;background:#fff;padding:10px;margin-bottom:10px;overflow:auto}
.tp-course-workspace .tp-session-table-wrap{min-width:760px}
.tp-course-workspace .tp-session-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.tp-course-workspace .tp-session-table th{padding:9px;background:#f0fdf4;color:#166534;text-align:left;border-bottom:1px solid #bbf7d0}
.tp-course-workspace .tp-session-table td{padding:8px;border-bottom:1px solid #e2e8f0;vertical-align:middle}
.tp-course-workspace .tp-session-table tr:last-child td{border-bottom:0}
.tp-course-workspace .tp-session-table input{width:100%;min-width:105px;border:1px solid #cbd5e1;border-radius:9px;padding:7px 8px;background:#fff}
.tp-course-workspace .tp-session-table input[data-title]{min-width:190px}
.tp-course-workspace .tp-course-savebar{position:sticky;bottom:0;z-index:8;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding:12px;background:rgba(255,255,255,.96);border:1px solid #dbe4ec;border-radius:16px;box-shadow:0 -8px 24px rgba(15,23,42,.08);backdrop-filter:blur(8px)}
.tp-course-workspace details.tp-course-edit-accordion>summary{user-select:none}
.tp-course-workspace .tp-course-accordion-caret{transition:none!important}
.tp-course-workspace .tp-price-current-card .tp-text-strong{color:#b91c1c!important;font-size:18px!important}
.tp-course-workspace .checkline{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important}
.tp-course-workspace .checkline input[type=checkbox]{width:18px!important;height:18px!important;flex:0 0 auto}
@media(max-width:980px){.tp-course-workspace .tp-course-subgrid{grid-template-columns:1fr}.tp-course-workspace .tp-course-subcard-wide{grid-column:auto}.tp-course-workspace .tp-course-status-controls-clean{grid-template-columns:1fr 1fr!important}}
@media(max-width:680px){.tp-course-workspace .tp-form-grid.nested{grid-template-columns:1fr}.tp-course-workspace .tp-form-grid.nested>.wide{grid-column:auto}.tp-course-workspace .tp-course-status-controls-clean{grid-template-columns:1fr!important}.tp-course-workspace .tp-course-summary-title{align-items:flex-start;flex-direction:column}.tp-course-workspace .tp-course-savebar{position:static}.tp-course-workspace .tp-course-savebar .tp-btn{width:100%}}
.tp-course-workspace .tp-course-status-controls-clean{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1100px){.tp-course-workspace .tp-course-status-controls-clean{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){.tp-course-workspace .tp-course-status-controls-clean{grid-template-columns:1fr!important}}

/* v26.1.1 · activos cargables en formulario de cursos */
.tp-course-workspace .tp-course-asset-card{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) auto;
  gap:12px;
  align-items:end;
  padding:14px;
  border:1px solid var(--border,#e4e7ec);
  border-radius:14px;
  background:rgba(255,255,255,.72);
}
.tp-course-workspace .tp-course-asset-card .tp-btn{margin-bottom:2px;white-space:nowrap}
@media (max-width:900px){
  .tp-course-workspace .tp-course-asset-card{grid-template-columns:1fr}
}

/* ======================================================================
   TOCAPU 26.1.2 — corrección real de escala y menú en la app standalone
   Carga al final para dominar reglas históricas acumuladas.
   ====================================================================== */
@media (min-width: 921px){
  .tp-sidebar{width:248px!important}
  .tp-shell{margin-left:248px!important;width:calc(100% - 248px)!important}
  .tp-brand{padding:16px 15px!important;gap:11px!important}
  .tp-brand-mark{width:40px!important;height:40px!important;border-radius:10px!important}
  .tp-brand strong{font-size:19px!important}
  .tp-brand span{font-size:10px!important;margin-top:3px!important}
  .tp-menu{padding:11px 9px!important}
  .tp-menu-flow-label{padding:0 9px 7px!important;font-size:9px!important}
  .tp-menu a{width:100%!important;min-width:0!important;min-height:39px!important;margin:2px 0!important;padding:8px 11px!important;gap:9px!important;border-radius:10px!important;font-size:13px!important;line-height:1.18!important}
  .tp-menu a>.tp-icon{width:18px!important;height:18px!important;flex:0 0 18px!important}
  .tp-menu a>span{display:block!important;width:auto!important;min-width:0!important;flex:1 1 auto!important;text-align:left!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
  .tp-menu a.active:before{left:4px!important;height:20px!important;width:3px!important}
  .tp-menu .tp-logout-link{padding-top:11px!important;padding-bottom:11px!important}
  .tp-sidebar-version{padding:8px 14px 10px!important}
  .tp-topbar{height:58px!important;min-height:58px!important;padding:0 18px!important;gap:10px!important}
  .tp-pill{padding:8px 13px!important;font-size:12px!important}
  .tp-top-search{max-width:500px!important;min-width:220px!important;border-radius:11px!important}
  .tp-top-search input{padding:8px 11px!important;font-size:13px!important}
  .tp-top-search button{width:38px!important;height:36px!important}
  .tp-view-control{width:36px!important;height:36px!important;border-radius:10px!important}
  .tp-userbox{gap:9px!important;padding:6px 9px!important;border-radius:13px!important}
  .tp-avatar{width:34px!important;height:34px!important;font-size:13px!important}
  .tp-userbox small,.tp-userbox span{font-size:9px!important}
  .tp-userbox strong{font-size:12px!important}
  .tp-power{width:29px!important;height:29px!important;margin-left:4px!important}
  .tp-content{padding:20px!important}
  .tp-page-head{margin-bottom:15px!important;gap:12px!important}
  .tp-page-head h1{font-size:24px!important;margin-bottom:4px!important}
  .tp-page-head p{font-size:13px!important;line-height:1.45!important}
  .tp-card{padding:17px!important;margin-bottom:15px!important;border-radius:15px!important}
  .tp-grid{gap:13px!important}
  .metrics{margin-bottom:15px!important}
  .metric strong{font-size:28px!important}
  .metric span{font-size:12px!important}
  .tp-btn{min-height:35px!important;padding:7px 11px!important;border-radius:10px!important;font-size:12px!important}
  .tp-toolbar{padding:9px!important;gap:8px!important;margin-bottom:13px!important;border-radius:12px!important}
  .tp-toolbar .tp-btn{min-height:35px!important}
  .tp-form-grid{gap:11px 13px!important}
  .tp-form-grid label{font-size:12px!important}
  .tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-toolbar input,.tp-toolbar select{padding:9px 10px!important;border-radius:10px!important;font-size:13px!important}
  .tp-form-grid textarea{min-height:72px!important}
  .tp-table th,.tp-table td{padding:9px 10px!important;font-size:12px!important}
  .tp-table th{font-size:10px!important}
  .tp-card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;gap:12px!important}
  .tp-item-card{padding:13px!important;border-radius:13px!important;gap:12px!important}
  .tp-item-card h3{font-size:14px!important;margin:7px 0 5px!important}
  .tp-item-card p,.tp-item-card small{font-size:12px!important}
}

/* El texto del menú nunca debe heredar el ancho fijo reservado al icono. */
.tp-menu a>span{width:auto!important;text-align:left!important;min-width:0!important;flex:1 1 auto!important}

@media (max-width: 920px){
  .tp-menu a>span{display:block!important;width:auto!important;text-align:left!important;white-space:normal!important;word-break:normal!important}
}

/* ======================================================================
   TOCAPU 26.2 — REDISEÑO VISUAL INTEGRAL
   Capa final única para unificar toda la aplicación standalone.
   ====================================================================== */
:root{
  --tp-red:#b5121b;
  --tp-red-dark:#751018;
  --tp-red-soft:#fff4f4;
  --tp-ink:#172033;
  --tp-muted:#667085;
  --tp-line:#e4e7ec;
  --tp-bg:#f4f6f8;
  --tp-card:#ffffff;
  --tp-shadow:0 8px 24px rgba(16,24,40,.065);
}
html{font-size:15px}
body.tp-app-body{background:var(--tp-bg);color:var(--tp-ink)}

/* Menú lateral institucional, oscuro y estable */
.tp-sidebar{
  background:linear-gradient(180deg,#7f1119 0%,#5f0d14 100%)!important;
  border-right:0!important;
  box-shadow:8px 0 28px rgba(49,7,10,.12)!important;
}
.tp-brand{border-bottom:1px solid rgba(255,255,255,.12)!important;background:rgba(255,255,255,.035)!important}
.tp-brand-mark{background:#fff!important;color:var(--tp-red)!important;border:0!important;box-shadow:0 6px 16px rgba(0,0,0,.16)!important}
.tp-brand strong,.tp-brand span{color:#fff!important}
.tp-brand span{opacity:.72}
.tp-menu-flow-label{color:rgba(255,255,255,.56)!important}
.tp-menu a{
  color:rgba(255,255,255,.86)!important;
  border:1px solid transparent!important;
  background:transparent!important;
  box-shadow:none!important;
}
.tp-menu a .tp-icon{color:rgba(255,255,255,.68)!important}
.tp-menu a:hover{background:rgba(255,255,255,.085)!important;color:#fff!important}
.tp-menu a.active{
  background:#fff!important;
  color:#7f1119!important;
  border-color:#fff!important;
  box-shadow:0 8px 22px rgba(35,4,7,.22)!important;
}
.tp-menu a.active .tp-icon{color:#a71018!important;stroke:#a71018!important}
.tp-menu a.active:before{background:#f5b942!important;left:5px!important}
.tp-menu .tp-logout-link{border-top:1px solid rgba(255,255,255,.12)!important;color:#fff!important}
.tp-menu .tp-logout-link:hover{background:rgba(255,255,255,.09)!important;color:#fff!important}
.tp-menu .tp-logout-link .tp-icon{color:#fff!important}
.tp-sidebar-version{background:rgba(0,0,0,.10)!important;border-top:1px solid rgba(255,255,255,.12)!important;color:rgba(255,255,255,.78)!important}
.tp-sidebar-version small{color:rgba(255,255,255,.5)!important}

/* Barra superior blanca y ligera */
.tp-topbar{
  background:#fff!important;
  color:var(--tp-ink)!important;
  border-bottom:1px solid var(--tp-line)!important;
  box-shadow:0 3px 14px rgba(16,24,40,.045)!important;
}
.tp-pill{background:#fff3f3!important;color:#991b1b!important;border:1px solid #fecaca!important}
.tp-top-search{background:#f8fafc!important;border:1px solid #dfe4ea!important}
.tp-top-search input{color:#334155!important}
.tp-top-search input::placeholder{color:#98a2b3!important}
.tp-top-search button{color:#667085!important;border-left:1px solid #e4e7ec!important}
.tp-view-control{background:#fff!important;color:#475467!important;border:1px solid #dfe4ea!important}
.tp-view-control:hover{background:#f8fafc!important;color:#991b1b!important;border-color:#f5b5b9!important}
.tp-userbox{background:#fff!important;color:var(--tp-ink)!important;border:1px solid #dfe4ea!important}
.tp-userbox small,.tp-userbox span{color:#667085!important;opacity:1!important}
.tp-avatar{background:#fff1f2!important;color:#a71119!important;border:1px solid #fecdd3!important}
.tp-power{background:#fff1f2!important;color:#a71119!important}
.tp-menu-toggle{color:#7f1119!important;background:#fff5f5!important;border-color:#fecaca!important}

/* Contenido: densidad ejecutiva y jerarquía clara */
.tp-content{max-width:1680px;margin:0 auto;width:100%}
.tp-page-head{align-items:center!important;padding-bottom:14px!important;border-bottom:1px solid var(--tp-line)!important}
.tp-page-head h1{font-size:1.6rem!important;line-height:1.18!important;letter-spacing:-.025em!important;color:#182230!important}
.tp-page-head p{font-size:.88rem!important;color:#667085!important;max-width:820px!important}
.tp-card{
  border:1px solid var(--tp-line)!important;
  background:#fff!important;
  border-radius:14px!important;
  box-shadow:var(--tp-shadow)!important;
}
.tp-card:hover{border-color:#d0d5dd!important;box-shadow:0 10px 28px rgba(16,24,40,.075)!important}
.tp-grid{gap:14px!important}

/* Métricas compactas */
.metric,.tp-stat-card,.tp-analytics-kpi{
  border:1px solid var(--tp-line)!important;
  border-top:3px solid var(--tp-module-accent,var(--tp-red))!important;
  background:#fff!important;
  border-radius:14px!important;
  box-shadow:0 5px 16px rgba(16,24,40,.045)!important;
}
.metric strong,.tp-stat-card strong{font-size:1.75rem!important;color:var(--tp-module-accent,var(--tp-red))!important}
.metric span,.tp-stat-card span{font-size:.78rem!important;color:#667085!important;text-transform:none!important;letter-spacing:0!important}

/* Botones más sobrios */
.tp-btn{
  min-height:36px!important;
  border-radius:9px!important;
  padding:7px 12px!important;
  font-size:.79rem!important;
  font-weight:750!important;
  box-shadow:none!important;
}
.tp-btn-red,.tp-btn.primary{
  background:var(--tp-red)!important;
  border-color:var(--tp-red)!important;
  color:#fff!important;
}
.tp-btn-red:hover,.tp-btn.primary:hover{background:#971018!important;border-color:#971018!important}
.tp-btn:not(.tp-btn-red):not(.primary):not(.danger){background:#fff!important;border-color:#d0d5dd!important;color:#344054!important}
.tp-btn:not(.tp-btn-red):not(.primary):not(.danger):hover{background:#f9fafb!important;border-color:#98a2b3!important}

/* Formularios limpios */
.tp-toolbar{background:#fff!important;border:1px solid var(--tp-line)!important;box-shadow:0 3px 12px rgba(16,24,40,.035)!important}
.tp-form-grid label,.tp-field{color:#344054!important;font-weight:700!important}
.tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-toolbar input,.tp-toolbar select,.tp-login-card input{
  background:#fff!important;
  border:1px solid #d0d5dd!important;
  border-radius:9px!important;
  color:#344054!important;
  box-shadow:0 1px 2px rgba(16,24,40,.025)!important;
}
.tp-form-grid input:focus,.tp-form-grid select:focus,.tp-form-grid textarea:focus,.tp-toolbar input:focus,.tp-toolbar select:focus{
  border-color:#d55b61!important;
  box-shadow:0 0 0 3px rgba(181,18,27,.10)!important;
}

/* Tablas con lectura administrativa */
.tp-table-wrap{border:1px solid var(--tp-line)!important;border-radius:12px!important;box-shadow:0 4px 16px rgba(16,24,40,.035)!important}
.tp-table th{background:#f8fafc!important;color:#475467!important;font-size:.68rem!important;letter-spacing:.045em!important;text-transform:uppercase!important}
.tp-table td{color:#344054!important;border-bottom-color:#eef0f3!important}
.tp-table tbody tr:nth-child(even){background:#fcfcfd!important}
.tp-table tbody tr:hover{background:#fff6f6!important}

/* Tarjetas de cursos, alumnos y docentes */
.tp-item-card,.tp-course-card,.tp-teacher-card{
  border:1px solid var(--tp-line)!important;
  border-radius:13px!important;
  background:#fff!important;
  box-shadow:0 4px 15px rgba(16,24,40,.04)!important;
}
.tp-item-card h3,.tp-course-card h3,.tp-teacher-card h3{color:#182230!important}
.tp-chip,.tp-badge,.tp-status{border-radius:999px!important;font-weight:750!important;box-shadow:none!important}

/* Títulos de sección */
.tp-card h2,.tp-card h3{letter-spacing:-.012em}
.tp-section-title,.tp-analytics-section-title h2{color:#182230!important}
.tp-empty-state{background:#fafafa!important;border-color:#d0d5dd!important;color:#667085!important}

/* Login alineado al nuevo sistema */
.tp-login-body{background:linear-gradient(145deg,#f9fafb 0%,#f2f4f7 55%,#fff1f2 100%)!important}
.tp-login-card{border-radius:18px!important;border-color:#e4e7ec!important;box-shadow:0 24px 60px rgba(16,24,40,.12)!important}
.tp-login-logo{background:#7f1119!important;color:#fff!important;border:0!important}

/* Desktop: escala equilibrada definitiva */
@media (min-width:921px){
  .tp-sidebar{width:236px!important}
  .tp-shell{margin-left:236px!important;width:calc(100% - 236px)!important}
  .tp-brand{padding:15px 14px!important}
  .tp-brand-mark{width:38px!important;height:38px!important}
  .tp-brand strong{font-size:18px!important}
  .tp-menu{padding:10px 8px!important}
  .tp-menu a{min-height:38px!important;padding:8px 10px!important;font-size:12.5px!important;border-radius:9px!important}
  .tp-menu a>.tp-icon{width:17px!important;height:17px!important;flex-basis:17px!important}
  .tp-topbar{height:58px!important;min-height:58px!important;padding:0 18px!important}
  .tp-content{padding:18px 20px 28px!important}
  .tp-card{padding:16px!important;margin-bottom:14px!important}
  .tp-page-head{margin-bottom:14px!important}
  .tp-table th,.tp-table td{padding:8px 10px!important}
  .tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-toolbar input,.tp-toolbar select{padding:8px 10px!important}
}

/* Tablet y móvil */
@media(max-width:920px){
  .tp-sidebar{width:min(280px,86vw)!important}
  .tp-topbar{background:#fff!important}
  .tp-content{padding:15px!important}
  .tp-page-head{align-items:flex-start!important}
}
@media(max-width:680px){
  html{font-size:14px}
  .tp-card{padding:14px!important;border-radius:12px!important}
  .tp-page-head h1{font-size:1.4rem!important}
  .tp-userbox>div:not(.tp-avatar){display:none!important}
}

/* ======================================================================
   TOCAPU 26.3 — SISTEMA VISUAL INTEGRAL
   Rediseño estructural de navegación, paneles, tablas, fichas, formularios,
   buscadores, accordions, estados, tarjetas y vistas responsive.
   ====================================================================== */
:root{
  --ui-bg:#f3f5f8;
  --ui-surface:#ffffff;
  --ui-surface-soft:#f8fafc;
  --ui-surface-muted:#f2f4f7;
  --ui-text:#1d2939;
  --ui-text-2:#475467;
  --ui-muted:#667085;
  --ui-border:#dfe3e8;
  --ui-border-strong:#cbd2da;
  --ui-primary:#a81018;
  --ui-primary-dark:#761017;
  --ui-primary-soft:#fff3f4;
  --ui-success:#157347;
  --ui-success-soft:#ecfdf3;
  --ui-warning:#a15c00;
  --ui-warning-soft:#fff8e6;
  --ui-info:#175cd3;
  --ui-info-soft:#eff8ff;
  --ui-danger:#b42318;
  --ui-danger-soft:#fff1f0;
  --ui-radius-xs:7px;
  --ui-radius-sm:10px;
  --ui-radius:14px;
  --ui-radius-lg:18px;
  --ui-shadow-xs:0 1px 2px rgba(16,24,40,.04);
  --ui-shadow-sm:0 4px 14px rgba(16,24,40,.055);
  --ui-shadow:0 10px 30px rgba(16,24,40,.075);
  --ui-sidebar:244px;
  --ui-topbar:64px;
}

*{box-sizing:border-box}
html{font-size:14px!important;scroll-behavior:smooth}
body.tp-app-body{background:var(--ui-bg)!important;color:var(--ui-text)!important;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;line-height:1.48!important}
button,input,select,textarea{font:inherit}
a{text-underline-offset:2px}

/* Estructura general */
.tp-shell{min-height:100vh!important;background:var(--ui-bg)!important}
.tp-content{max-width:none!important;padding:22px 24px 40px!important;overflow-x:hidden!important}
.tp-content>*{min-width:0}
.tp-page-gap{height:18px!important}

/* Navegación lateral */
@media(min-width:921px){
  .tp-sidebar{width:var(--ui-sidebar)!important}
  .tp-shell{margin-left:var(--ui-sidebar)!important;width:calc(100% - var(--ui-sidebar))!important}
}
.tp-sidebar{background:linear-gradient(180deg,#731018 0%,#4f0b11 100%)!important;border:0!important;box-shadow:8px 0 26px rgba(34,6,9,.13)!important;overflow:hidden!important}
.tp-brand{min-height:72px!important;padding:14px 14px!important;gap:11px!important;background:rgba(255,255,255,.04)!important;border-bottom:1px solid rgba(255,255,255,.11)!important}
.tp-brand-mark{width:39px!important;height:39px!important;min-width:39px!important;border-radius:11px!important;background:#fff!important;color:var(--ui-primary)!important;font-size:20px!important;font-weight:900!important}
.tp-brand strong{font-size:17px!important;line-height:1.05!important;letter-spacing:.03em!important;color:#fff!important}
.tp-brand span{display:block!important;margin-top:4px!important;font-size:10.5px!important;line-height:1.2!important;color:rgba(255,255,255,.65)!important}
.tp-menu{padding:11px 9px 16px!important;gap:3px!important;overflow-y:auto!important;scrollbar-width:thin!important}
.tp-menu-flow-label{padding:7px 9px 8px!important;font-size:9px!important;font-weight:800!important;letter-spacing:.11em!important;text-transform:uppercase!important;color:rgba(255,255,255,.48)!important}
.tp-menu a{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;min-width:0!important;min-height:39px!important;padding:8px 10px!important;margin:0!important;border-radius:9px!important;color:rgba(255,255,255,.84)!important;font-size:12px!important;font-weight:650!important;line-height:1.25!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
.tp-menu a>span{display:block!important;flex:1 1 auto!important;width:auto!important;min-width:0!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;text-align:left!important}
.tp-menu a>.tp-icon{width:17px!important;height:17px!important;min-width:17px!important;flex:0 0 17px!important;opacity:.82!important}
.tp-menu a:hover{background:rgba(255,255,255,.08)!important;transform:none!important}
.tp-menu a.active{background:#fff!important;color:#761017!important;box-shadow:0 8px 18px rgba(31,3,5,.2)!important}
.tp-menu a.active:before{display:none!important}
.tp-menu .tp-logout-link{margin-top:10px!important;padding-top:12px!important;border-top:1px solid rgba(255,255,255,.12)!important;border-radius:0!important}
.tp-sidebar-version{padding:10px 13px!important;gap:3px!important;font-size:10px!important}

/* Barra superior */
.tp-topbar{height:var(--ui-topbar)!important;min-height:var(--ui-topbar)!important;padding:0 18px!important;gap:12px!important;background:#fff!important;border-bottom:1px solid var(--ui-border)!important;box-shadow:0 2px 10px rgba(16,24,40,.04)!important;position:sticky!important;top:0!important;z-index:40!important}
.tp-topbar-context{min-width:150px!important}
.tp-context-kicker{font-size:9px!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:#98a2b3!important;font-weight:800!important}
.tp-topbar-context strong{font-size:13px!important;color:var(--ui-text)!important;line-height:1.2!important}
.tp-pill{min-height:27px!important;padding:5px 9px!important;border-radius:999px!important;font-size:9px!important;font-weight:800!important;letter-spacing:.06em!important}
.tp-top-search{height:38px!important;max-width:520px!important;flex:1 1 320px!important;border-radius:10px!important;background:#f8fafc!important;border:1px solid var(--ui-border)!important;overflow:hidden!important}
.tp-top-search input{height:100%!important;padding:0 12px!important;font-size:12px!important;background:transparent!important}
.tp-top-search button{width:40px!important;min-width:40px!important}
.tp-view-control,.tp-menu-toggle{width:36px!important;height:36px!important;min-width:36px!important;border-radius:9px!important}
.tp-userbox{min-height:40px!important;padding:4px 6px!important;gap:7px!important;border-radius:11px!important;max-width:240px!important}
.tp-avatar{width:30px!important;height:30px!important;min-width:30px!important;font-size:12px!important}
.tp-userbox small{font-size:8px!important;line-height:1!important}
.tp-userbox strong{font-size:11px!important;line-height:1.2!important;max-width:120px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.tp-userbox span{font-size:9px!important;line-height:1.15!important}
.tp-power{width:30px!important;height:30px!important;min-width:30px!important}

/* Encabezados de página */
.tp-page-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;padding:0 0 16px!important;margin:0 0 16px!important;border-bottom:1px solid var(--ui-border)!important;background:transparent!important;box-shadow:none!important}
.tp-page-head>div:first-child{min-width:0!important;flex:1 1 auto!important}
.tp-page-head h1{margin:0 0 5px!important;font-size:24px!important;line-height:1.15!important;letter-spacing:-.025em!important;color:var(--ui-text)!important}
.tp-page-head p{margin:0!important;max-width:900px!important;font-size:12.5px!important;line-height:1.5!important;color:var(--ui-muted)!important}
.tp-page-head .actions{flex:0 1 auto!important;justify-content:flex-end!important;align-self:center!important}
.tp-page-head>.tp-badge{align-self:flex-start!important}

/* Grillas */
.tp-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;gap:14px!important;margin-bottom:14px!important;align-items:stretch!important}
.tp-grid.metrics,.tp-stats-grid,.tp-kpis,.tp-public-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.tp-card-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;gap:14px!important;align-items:stretch!important}
.tp-analytics-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important}
.tp-course-subgrid,.tp-package-grid,.tp-resource-grid,.tp-recipe-grid,.tp-check-grid,.tp-step-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}

/* Tarjetas base */
.tp-card,.tp-item-card,.tp-course-subcard,.tp-package-card,.tp-resource,.tp-recipe,.tp-request-card,.tp-message-card,.tp-material-card,.tp-cpi-history-card,.tp-analytics-panel,.tp-panel-mini,.tp-public-section,.tp-live-url-card,.tp-course-asset-card{
  min-width:0!important;
  background:var(--ui-surface)!important;
  border:1px solid var(--ui-border)!important;
  border-radius:var(--ui-radius)!important;
  box-shadow:var(--ui-shadow-xs)!important;
}
.tp-card{padding:16px!important;margin-bottom:14px!important}
.tp-card:hover,.tp-item-card:hover{border-color:var(--ui-border-strong)!important;box-shadow:var(--ui-shadow-sm)!important;transform:none!important}
.tp-card h2{margin:0 0 7px!important;font-size:16px!important;line-height:1.25!important;color:var(--ui-text)!important}
.tp-card h3,.tp-item-card h3,.tp-course-subcard h3{margin:0 0 6px!important;font-size:13.5px!important;line-height:1.3!important;color:var(--ui-text)!important}
.tp-card p,.tp-item-card p{margin:0 0 10px!important;font-size:12px!important;line-height:1.5!important;color:var(--ui-muted)!important}
.tp-card>p:last-child{margin-bottom:0!important}

/* Métricas */
.metric,.tp-stat-card,.tp-analytics-kpi,.tp-follow-metric,.tp-import-metric,.tp-homologation-metric,.tp-kpi,.tp-stat,.tp-kpi-xl{
  position:relative!important;
  min-height:96px!important;
  padding:15px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
  background:#fff!important;
  border:1px solid var(--ui-border)!important;
  border-radius:var(--ui-radius)!important;
  box-shadow:var(--ui-shadow-xs)!important;
  overflow:hidden!important;
}
.metric:before,.tp-stat-card:before,.tp-analytics-kpi:before{content:""!important;position:absolute!important;left:0!important;top:0!important;bottom:0!important;width:4px!important;background:var(--tp-module-accent,var(--ui-primary))!important}
.metric strong,.tp-stat-card strong,.tp-analytics-kpi strong,.tp-kpi strong,.tp-stat strong{font-size:24px!important;line-height:1!important;letter-spacing:-.03em!important;color:var(--ui-text)!important}
.metric span,.tp-stat-card span,.tp-analytics-kpi span,.tp-kpi span,.tp-stat span{font-size:10.5px!important;line-height:1.35!important;color:var(--ui-muted)!important;font-weight:650!important;text-transform:none!important;letter-spacing:0!important}

/* Botones y grupos de acciones */
.actions,.tp-mini-actions,.tp-doc-actions,.tp-course-actions,.tp-cert-toolbar{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:7px!important}
.tp-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-height:34px!important;padding:7px 11px!important;border-radius:8px!important;border:1px solid var(--ui-border-strong)!important;background:#fff!important;color:#344054!important;font-size:11.5px!important;font-weight:750!important;line-height:1.15!important;text-decoration:none!important;box-shadow:none!important;white-space:normal!important;text-align:center!important;cursor:pointer!important;transition:.15s ease!important}
.tp-btn:hover{background:#f8fafc!important;border-color:#98a2b3!important;color:#1d2939!important;transform:none!important}
.tp-btn-red,.tp-btn.primary{background:var(--ui-primary)!important;border-color:var(--ui-primary)!important;color:#fff!important}
.tp-btn-red:hover,.tp-btn.primary:hover{background:var(--ui-primary-dark)!important;border-color:var(--ui-primary-dark)!important;color:#fff!important}
.tp-btn-green{background:var(--ui-success)!important;border-color:var(--ui-success)!important;color:#fff!important}
.tp-btn-indigo{background:#444ce7!important;border-color:#444ce7!important;color:#fff!important}
.tp-btn.danger,.tp-btn-red-outline{background:#fff!important;border-color:#f1aeb5!important;color:var(--ui-danger)!important}
.tp-btn .tp-icon{width:15px!important;height:15px!important}

/* Filtros y buscadores */
.tp-toolbar,.tp-inline-search,.tp-course-selector,.tp-select-course,.tp-public-toolbar{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:end!important;
  gap:9px!important;
  width:100%!important;
  padding:11px!important;
  margin:0 0 14px!important;
  background:#fff!important;
  border:1px solid var(--ui-border)!important;
  border-radius:12px!important;
  box-shadow:var(--ui-shadow-xs)!important;
}
.tp-toolbar>*{min-width:0!important}
.tp-toolbar input,.tp-toolbar select{flex:1 1 180px!important;min-width:150px!important;max-width:100%!important}
.tp-toolbar .tp-btn{flex:0 0 auto!important}

/* Formularios */
.tp-form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px 14px!important;align-items:start!important}
.tp-form-grid.nested{gap:10px 12px!important}
.tp-form-grid .wide,.tp-field.wide{grid-column:1/-1!important}
.tp-field,.tp-form-grid label{display:flex!important;flex-direction:column!important;gap:5px!important;min-width:0!important;margin:0!important;font-size:11px!important;font-weight:700!important;color:#344054!important}
.tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-toolbar input,.tp-toolbar select,.tp-inline-search input,.tp-inline-search select,.tp-mini-form input,.tp-mini-form select,.tp-mini-form textarea{
  width:100%!important;
  min-width:0!important;
  min-height:36px!important;
  padding:8px 10px!important;
  border:1px solid var(--ui-border-strong)!important;
  border-radius:8px!important;
  background:#fff!important;
  color:var(--ui-text)!important;
  font-size:12px!important;
  font-weight:500!important;
  line-height:1.3!important;
  box-shadow:var(--ui-shadow-xs)!important;
  outline:none!important;
}
.tp-form-grid textarea,.tp-mini-form textarea{min-height:82px!important;resize:vertical!important}
.tp-form-grid input:focus,.tp-form-grid select:focus,.tp-form-grid textarea:focus,.tp-toolbar input:focus,.tp-toolbar select:focus{border-color:#d56a70!important;box-shadow:0 0 0 3px rgba(168,16,24,.09)!important}
.tp-form-grid input[type="checkbox"],.tp-form-grid input[type="radio"],.checkline input{width:16px!important;height:16px!important;min-height:16px!important;padding:0!important;box-shadow:none!important}
.checkline{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important}
.tp-help{display:block!important;margin-top:2px!important;font-size:9.5px!important;line-height:1.35!important;color:#7b8494!important;font-weight:500!important}
.tp-mini-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}

/* Accordions y secciones de formulario */
.tp-module-accordion,.tp-course-edit-accordion{margin:0 0 12px!important;border:1px solid var(--ui-border)!important;border-radius:12px!important;background:#fff!important;box-shadow:var(--ui-shadow-xs)!important;overflow:hidden!important}
.tp-module-accordion>summary,.tp-course-edit-accordion>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;min-height:52px!important;padding:12px 14px!important;background:#f8fafc!important;cursor:pointer!important;list-style:none!important;border-bottom:1px solid transparent!important}
.tp-module-accordion[open]>summary,.tp-course-edit-accordion[open]>summary{border-bottom-color:var(--ui-border)!important;background:#fff!important}
.tp-course-accordion-copy{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important}
.tp-course-accordion-title{font-size:12.5px!important;font-weight:800!important;color:var(--ui-text)!important}
.tp-course-accordion-copy small{font-size:10px!important;color:var(--ui-muted)!important;font-weight:500!important}
.tp-course-accordion-caret{width:25px!important;height:25px!important;display:grid!important;place-items:center!important;border-radius:7px!important;background:#fff!important;border:1px solid var(--ui-border)!important;color:var(--ui-primary)!important;font-weight:900!important}
.tp-course-accordion-body{padding:14px!important;background:#fff!important}
.tp-course-section-card-inner{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.tp-course-subcard,.tp-course-asset-card{padding:13px!important;background:#fbfcfd!important}
.tp-course-savebar,.tp-sticky-actions{position:sticky!important;bottom:10px!important;z-index:15!important;display:flex!important;flex-wrap:wrap!important;gap:8px!important;padding:10px!important;background:rgba(255,255,255,.96)!important;border:1px solid var(--ui-border)!important;border-radius:12px!important;box-shadow:0 12px 30px rgba(16,24,40,.13)!important;backdrop-filter:blur(8px)!important}

/* Tablas */
.tp-table-wrap{width:100%!important;overflow:auto!important;border:1px solid var(--ui-border)!important;border-radius:12px!important;background:#fff!important;box-shadow:var(--ui-shadow-xs)!important}
.tp-table{width:100%!important;min-width:720px!important;border-collapse:separate!important;border-spacing:0!important;background:#fff!important}
.tp-table th{position:sticky!important;top:0!important;z-index:2!important;padding:9px 10px!important;background:#f7f9fb!important;border-bottom:1px solid var(--ui-border)!important;color:#596579!important;font-size:9.5px!important;font-weight:800!important;line-height:1.25!important;letter-spacing:.055em!important;text-transform:uppercase!important;text-align:left!important;white-space:nowrap!important}
.tp-table td{padding:9px 10px!important;border-bottom:1px solid #edf0f3!important;color:#344054!important;font-size:11.5px!important;line-height:1.38!important;vertical-align:middle!important;max-width:320px!important}
.tp-table tbody tr:last-child td{border-bottom:0!important}
.tp-table tbody tr:nth-child(even){background:#fcfcfd!important}
.tp-table tbody tr:hover{background:#fff7f7!important}
.tp-table td .actions,.tp-table td .tp-mini-actions{flex-wrap:nowrap!important}
.tp-table td .tp-btn{min-height:29px!important;padding:5px 8px!important;font-size:10px!important}
.tp-cell-cut{max-width:260px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* Fichas y tarjetas de entidades */
.tp-item-card{display:flex!important;flex-direction:column!important;gap:10px!important;height:100%!important;padding:14px!important}
.tp-item-card>*{min-width:0!important}
.tp-item-card h3{margin:0!important;font-size:14px!important}
.tp-item-card .actions{margin-top:auto!important;padding-top:6px!important;border-top:1px solid #edf0f3!important}
.tp-course-topline,.tp-sheet-head,.tp-teacher-profile,.tp-status-strip{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important}
.tp-course-mini-metrics,.tp-teacher-kpis{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.tp-course-summary-item{padding:10px!important;border:1px solid var(--ui-border)!important;border-radius:9px!important;background:#f8fafc!important}
.tp-course-summary-item span{display:block!important;font-size:9px!important;color:var(--ui-muted)!important;text-transform:uppercase!important;font-weight:800!important;letter-spacing:.04em!important}
.tp-course-summary-item strong{display:block!important;margin-top:3px!important;font-size:12px!important;color:var(--ui-text)!important}

/* Chips, insignias y estados */
.tp-badge,.tp-chip,.tp-status,.tp-print-chip{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;min-height:24px!important;padding:4px 8px!important;border-radius:999px!important;border:1px solid var(--ui-border)!important;background:#f8fafc!important;color:#475467!important;font-size:9.5px!important;font-weight:800!important;line-height:1.1!important;white-space:nowrap!important;box-shadow:none!important}
.tp-badge.green,.tp-status.green,.tp-chip.green{background:var(--ui-success-soft)!important;border-color:#abefc6!important;color:#067647!important}
.tp-badge.red,.tp-status.red,.tp-chip.red{background:var(--ui-danger-soft)!important;border-color:#fecdca!important;color:#b42318!important}
.tp-badge.yellow,.tp-status.yellow,.tp-chip.yellow{background:var(--ui-warning-soft)!important;border-color:#fedf89!important;color:#93370d!important}
.tp-badge.blue,.tp-status.blue,.tp-chip.blue{background:var(--ui-info-soft)!important;border-color:#b2ddff!important;color:#175cd3!important}
.tp-chip-row{display:flex!important;flex-wrap:wrap!important;gap:6px!important}

/* Alertas */
.tp-alert{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;padding:11px 13px!important;margin:0 0 12px!important;border-radius:10px!important;border:1px solid var(--ui-border)!important;background:#fff!important;box-shadow:var(--ui-shadow-xs)!important;font-size:11.5px!important}
.tp-alert-info{background:var(--ui-info-soft)!important;border-color:#b2ddff!important;color:#1849a9!important}
.tp-alert-warning{background:var(--ui-warning-soft)!important;border-color:#fedf89!important;color:#7a2e0e!important}
.tp-alert-error{background:var(--ui-danger-soft)!important;border-color:#fecdca!important;color:#912018!important}
.tp-alert-success{background:var(--ui-success-soft)!important;border-color:#abefc6!important;color:#05603a!important}
.tp-alert-close{width:24px!important;height:24px!important;min-width:24px!important;border:0!important;background:transparent!important;color:inherit!important}

/* KPI y listas */
.tp-kpi-list{display:grid!important;gap:0!important;margin-top:6px!important;border:1px solid var(--ui-border)!important;border-radius:10px!important;overflow:hidden!important}
.tp-kpi-list p{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0!important;padding:9px 11px!important;background:#fff!important;border-bottom:1px solid #edf0f3!important}
.tp-kpi-list p:last-child{border-bottom:0!important}
.tp-kpi-list span{font-size:11px!important;color:var(--ui-muted)!important}
.tp-kpi-list strong{font-size:13px!important;color:var(--ui-text)!important}
.tp-distribution-list{display:grid!important;gap:7px!important}
.tp-progress,.tp-progress-shell{height:8px!important;border-radius:999px!important;background:#eef1f4!important;overflow:hidden!important}
.tp-progress-bar{height:100%!important;border-radius:inherit!important;background:var(--ui-primary)!important}

/* Estados vacíos */
.tp-empty,.tp-empty-state,.tp-batch-empty{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:150px!important;padding:24px!important;text-align:center!important;background:#fafbfc!important;border:1px dashed var(--ui-border-strong)!important;border-radius:12px!important;color:var(--ui-muted)!important}
.tp-empty h3,.tp-empty-state h3{margin:0!important;font-size:14px!important;color:var(--ui-text)!important}
.tp-empty p,.tp-empty-state p{max-width:560px!important;margin:0!important;font-size:11.5px!important}

/* Paneles y pestañas */
.tp-panel-tabs{display:flex!important;flex-wrap:wrap!important;gap:6px!important;padding:5px!important;margin:0 0 14px!important;background:#e9edf2!important;border-radius:10px!important}
.tp-panel-tabs a,.tp-panel-tabs button{min-height:31px!important;padding:6px 10px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:#596579!important;font-size:10.5px!important;font-weight:750!important;text-decoration:none!important}
.tp-panel-tabs .active,.tp-panel-tabs a:hover,.tp-panel-tabs button:hover{background:#fff!important;color:var(--ui-primary)!important;box-shadow:var(--ui-shadow-xs)!important}

/* Importación, paquetes y documentos */
.tp-import-shell,.tp-import-hero,.tp-package-note,.tp-security-note,.tp-public-note,.tp-upload-box,.tp-file-box,.tp-copy-box,.tp-linkbox{padding:13px!important;border:1px solid var(--ui-border)!important;border-radius:11px!important;background:#f8fafc!important;box-shadow:none!important}
.tp-import-grid,.tp-import-metrics{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.tp-upload-box{border-style:dashed!important;text-align:center!important}
.tp-doc-actions{padding-top:9px!important;margin-top:9px!important;border-top:1px solid #edf0f3!important}

/* Pantallas públicas */
.tp-public-body{background:#f5f7fa!important;color:var(--ui-text)!important}
.tp-public-wrap{max-width:1120px!important;margin:0 auto!important;padding:22px!important}
.tp-public-hero{padding:22px!important;border-radius:18px!important;background:linear-gradient(135deg,#6c0e15,#a81018)!important;color:#fff!important;box-shadow:var(--ui-shadow)!important}
.tp-public-hero h1{font-size:26px!important;line-height:1.15!important}
.tp-public-hero p{font-size:13px!important;color:rgba(255,255,255,.82)!important}
.tp-public-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:15px!important}
.tp-public-section{padding:17px!important}

/* Login */
.tp-login-body{min-height:100vh!important;display:grid!important;place-items:center!important;padding:24px!important;background:radial-gradient(circle at top right,#fff1f2 0,transparent 34%),linear-gradient(145deg,#f7f8fa,#eef1f5)!important}
.tp-login-card{width:min(430px,100%)!important;padding:25px!important;border-radius:20px!important;background:#fff!important;border:1px solid var(--ui-border)!important;box-shadow:0 24px 70px rgba(16,24,40,.14)!important}
.tp-login-logo{width:52px!important;height:52px!important;border-radius:15px!important;margin-bottom:14px!important}

/* Montos */
.tp-amount-red,.tp-money-red,.tp-price-big,.tp-price-inline,.tp-price-public{color:var(--ui-primary)!important;font-weight:850!important}
.tp-price-big{font-size:24px!important}

/* Responsive */
@media(max-width:1200px){
  .tp-grid.metrics,.tp-stats-grid,.tp-kpis,.tp-public-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tp-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tp-topbar-context,.tp-pill{display:none!important}
}
@media(max-width:920px){
  :root{--ui-topbar:58px}
  .tp-sidebar{width:min(290px,88vw)!important}
  .tp-shell{margin-left:0!important;width:100%!important}
  .tp-content{padding:16px!important}
  .tp-topbar{padding:0 12px!important;gap:8px!important}
  .tp-top-search{max-width:none!important}
  .tp-userbox{display:none!important}
  .tp-page-head{flex-direction:column!important;align-items:stretch!important}
  .tp-page-head .actions{justify-content:flex-start!important}
  .tp-grid,.tp-card-grid,.tp-public-grid,.tp-course-subgrid,.tp-package-grid,.tp-resource-grid,.tp-recipe-grid,.tp-check-grid,.tp-step-grid,.tp-analytics-grid{grid-template-columns:1fr!important}
  .tp-form-grid{grid-template-columns:1fr!important}
  .tp-form-grid .wide,.tp-field.wide{grid-column:auto!important}
  .tp-import-grid,.tp-import-metrics{grid-template-columns:1fr!important}
}
@media(max-width:640px){
  html{font-size:13px!important}
  .tp-content{padding:12px!important}
  .tp-top-search{display:none!important}
  .tp-page-head h1{font-size:20px!important}
  .tp-grid.metrics,.tp-stats-grid,.tp-kpis,.tp-public-kpis{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .metric,.tp-stat-card,.tp-analytics-kpi{min-height:82px!important;padding:12px!important}
  .metric strong,.tp-stat-card strong,.tp-analytics-kpi strong{font-size:20px!important}
  .tp-card{padding:13px!important;border-radius:11px!important}
  .tp-toolbar{align-items:stretch!important}
  .tp-toolbar input,.tp-toolbar select,.tp-toolbar .tp-btn{flex:1 1 100%!important;width:100%!important}
  .tp-btn{min-height:34px!important}
  .tp-course-mini-metrics,.tp-teacher-kpis{grid-template-columns:1fr!important}
  .tp-public-wrap{padding:12px!important}
  .tp-public-hero{padding:17px!important;border-radius:14px!important}
  .tp-public-hero h1{font-size:21px!important}
}


/* TOCAPU 26.4 · depuración de indicadores y fichas operativas */
.tp-stats-grid.tp-stats-single{grid-template-columns:minmax(240px,360px)!important;}
.tp-course-code-row{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;padding:.65rem .8rem;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;margin:.65rem 0;}
.tp-course-code-row>span{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:800;}
.tp-course-code-row>strong{font-size:1.08rem;color:#7f1d1d;letter-spacing:.04em;}
.tp-btn-copy{padding:.38rem .65rem!important;font-size:.76rem!important;}
.tp-course-key-summary{border-top:4px solid #8c1f23;}
.tp-course-key-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin-top:.8rem;}
.tp-course-key-grid>div{border:1px solid #e5e7eb;border-radius:10px;padding:.75rem;background:#fff;display:flex;flex-direction:column;gap:.35rem;align-items:flex-start;}
.tp-course-key-grid span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:800;}
.tp-course-key-grid strong{font-size:.95rem;color:#172033;}
.tp-course-code-feature{background:#fff7f7!important;border-color:#e7b8ba!important;}
.tp-course-code-feature strong{font-size:1.45rem!important;color:#8c1f23!important;letter-spacing:.06em;}
.tp-course-links-compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:end;margin-top:.8rem;}
.tp-course-links-compact label{margin:0;}
@media(max-width:720px){.tp-course-links-compact{grid-template-columns:1fr}.tp-course-key-grid{grid-template-columns:1fr}}

/* TOCAPU 26.5 · inicio funcional, menú ocultable y tarjetas uniformes */
:root{
  --tp-module-shadow:0 2px 8px rgba(15,23,42,.055);
  --tp-module-shadow-hover:0 5px 14px rgba(15,23,42,.08);
}

/* El menú se oculta por completo; el control superior permanece visible. */
@media(min-width:921px){
  .tp-sidebar-collapsed .tp-sidebar{transform:translateX(-100%)!important;width:var(--ui-sidebar)!important;visibility:hidden!important;pointer-events:none!important;}
  .tp-sidebar-collapsed .tp-shell{margin-left:0!important;width:100%!important;}
  .tp-sidebar{transition:transform .22s ease,visibility .22s ease!important;}
  .tp-shell{transition:margin-left .22s ease,width .22s ease!important;}
}
.tp-sidebar-visibility{width:auto!important;min-width:118px!important;padding:0 10px!important;gap:7px!important;white-space:nowrap!important;}
.tp-sidebar-visibility span{display:inline!important;font-size:11px!important;font-weight:800!important;}

/* Elimina sombras pesadas que deformaban tarjetas, tablas y cajas. */
.tp-card,.tp-item-card,.tp-stat-card,.metric,.tp-analytics-kpi,.tp-public-section,.tp-settings-tile,.tp-recipe,.tp-course-card,.tp-teacher-card,.tp-student-card,.tp-cpi-command,.tp-course-key-grid>div,.tp-package-card,.tp-public-hero{
  box-shadow:none!important;
}
.tp-card,.tp-item-card,.tp-stat-card,.metric,.tp-analytics-kpi,.tp-public-section,.tp-settings-tile,.tp-recipe,.tp-course-card,.tp-teacher-card,.tp-student-card,.tp-cpi-command,.tp-package-card{
  border:1px solid #e2e8f0!important;
  outline:0!important;
}

/* Tarjetas de módulos: borde superior y sombra mínima por familia funcional. */
.tp-content>.tp-card,.tp-content>.tp-grid>.tp-card,.tp-content .tp-card-grid>.tp-item-card{
  box-shadow:var(--tp-module-shadow)!important;
}
.tp-content>.tp-card:hover,.tp-content>.tp-grid>.tp-card:hover,.tp-content .tp-card-grid>.tp-item-card:hover{
  box-shadow:var(--tp-module-shadow-hover)!important;
}
body.tp-module-cursos .tp-card,body.tp-module-courses .tp-card{border-top:3px solid #2563eb!important;}
body.tp-module-docentes .tp-card,body.tp-module-teachers .tp-card{border:1px solid #e2e8f0!important;border-top:1px solid #e2e8f0!important;}
body.tp-module-alumnos .tp-card,body.tp-module-students .tp-card{border-top:1px solid #e2e8f0!important;}
body.tp-module-seguimiento .tp-card,body.tp-module-pipeline .tp-card{border-top:3px solid #d97706!important;}
body.tp-module-finanzas .tp-card,body.tp-module-finance .tp-card{border-top:3px solid #15803d!important;}
body.tp-module-certificados .tp-card,body.tp-module-certificates .tp-card{border-top:3px solid #b91c1c!important;}
body.tp-module-cpi .tp-card,body.tp-module-production .tp-card{border-top:3px solid #4f46e5!important;}
body.tp-module-canales .tp-card,body.tp-module-public .tp-card{border-top:3px solid #db2777!important;}
body.tp-module-admin .tp-card,body.tp-module-settings .tp-card{border-top:3px solid #475569!important;}

/* Inicio simple y operativo */
.tp-home-head{margin-bottom:14px!important;}
.tp-page-kicker,.tp-home-module-kicker{display:block;margin-bottom:5px;color:#64748b;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;}
.tp-home-search{display:grid!important;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr)!important;gap:20px!important;align-items:center!important;padding:18px!important;border-top:3px solid #b91c1c!important;}
.tp-home-search>div{display:flex;gap:12px;align-items:center;}
.tp-home-search h2,.tp-home-module-card h2{margin:0 0 5px!important;font-size:18px!important;}
.tp-home-search p,.tp-home-module-card p{margin:0!important;color:#64748b!important;line-height:1.55!important;}
.tp-home-icon,.tp-home-module-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3;}
.tp-home-search .tp-inline-search{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:9px!important;width:100%!important;}
.tp-home-search .tp-inline-search input{min-width:0!important;width:100%!important;}
.tp-home-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.tp-home-module-card{display:flex;flex-direction:column;min-height:255px;padding:18px;border:1px solid #e2e8f0;border-top:4px solid var(--module-accent,#475569);border-radius:14px;background:#fff;box-shadow:var(--tp-module-shadow);transition:transform .15s ease,box-shadow .15s ease;}
.tp-home-module-card:hover{transform:translateY(-2px);box-shadow:var(--tp-module-shadow-hover);}
.tp-home-module-copy{margin:13px 0 16px;}
.tp-home-module-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;}
.tp-home-module-public{--module-accent:#db2777;}
.tp-home-module-public .tp-home-module-icon{background:#fdf2f8;color:#be185d;border-color:#fbcfe8;}
.tp-home-module-visual{--module-accent:#4f46e5;}
.tp-home-module-visual .tp-home-module-icon{background:#eef2ff;color:#4338ca;border-color:#c7d2fe;}
.tp-home-module-academic{--module-accent:#0891b2;}
.tp-home-module-academic .tp-home-module-icon{background:#ecfeff;color:#0e7490;border-color:#a5f3fc;}

/* Evita que viñetas y contenidos se pierdan dentro de las cajas. */
.tp-card ul,.tp-card ol,.tp-item-card ul,.tp-item-card ol{padding-left:1.3rem!important;margin-left:0!important;overflow:visible!important;}
.tp-card li,.tp-item-card li{padding-left:.15rem!important;overflow:visible!important;}
.tp-card,.tp-item-card{overflow:visible!important;}

@media(max-width:1100px){
  .tp-home-action-grid{grid-template-columns:1fr 1fr;}
  .tp-home-search{grid-template-columns:1fr!important;}
}
@media(max-width:700px){
  .tp-home-action-grid{grid-template-columns:1fr;}
  .tp-home-search .tp-inline-search{grid-template-columns:1fr!important;}
  .tp-home-module-card{min-height:0;}
  .tp-sidebar-visibility span{display:none!important;}
  .tp-sidebar-visibility{min-width:36px!important;width:36px!important;padding:0!important;}
}


/* TOCAPU 26.6 — sin indicadores ni sombras en todo el sistema */
html body *,html body *::before,html body *::after{box-shadow:none!important;text-shadow:none!important;}
.tp-metrics-grid,.tp-stats-grid,.tp-stats-single,.tp-kpis,.tp-kpi-row,.tp-analytics-kpis,.tp-public-kpis,.tp-import-metrics,.tp-pending85-kpis,.tp-pipeline-pending-kpi,.tp-finance-indicators-card,.tp-kpi-list,.tp-kpi-xl,.metrics,.kpis{display:none!important;}
.tp-card,.tp-public-hero,.tp-section-head,.tp-module-hero,.tp-panel,.tp-stat,.tp-metric,.metric,.kpi{box-shadow:none!important;}


/* TOCAPU 26.7 · navegación persistente en subpantallas internas */
.tp-view-control.tp-sidebar-visibility{width:38px!important;min-width:38px!important;padding:0!important}
.tp-internal-standalone{padding-left:248px!important}
.tp-internal-standalone .tp-standalone-sidebar{display:block!important;width:248px!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;z-index:120!important;background:#fff!important;border-right:1px solid #e5e7eb!important;overflow:auto!important}
.tp-internal-standalone .tp-public-wrap{max-width:none!important;margin:0!important;padding:24px 28px 48px!important}
.tp-standalone-collapse{position:fixed;left:258px;top:14px;z-index:130;width:38px;height:38px;border:1px solid #d8dee9;border-radius:10px;background:#fff;display:grid;place-items:center;cursor:pointer}
body.tp-internal-standalone.tp-sidebar-collapsed{padding-left:0!important}
body.tp-internal-standalone.tp-sidebar-collapsed .tp-standalone-sidebar{transform:translateX(-100%)!important}
body.tp-internal-standalone.tp-sidebar-collapsed .tp-standalone-collapse{left:12px!important}
@media(max-width:920px){.tp-internal-standalone{padding-left:0!important}.tp-internal-standalone .tp-standalone-sidebar{transform:translateX(-100%)}.tp-internal-standalone.tp-sidebar-open .tp-standalone-sidebar{transform:translateX(0)}.tp-standalone-collapse{display:none!important}}

/* Preinscripción protegida y resumen de curso */
.tp-access-gate{max-width:720px;margin:36px auto;border:1px solid #e5e7eb;border-radius:20px;background:#fff;padding:28px}
.tp-access-gate h2{margin:0 0 8px}.tp-access-gate p{color:#64748b}
.tp-course-public-summary{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:22px;align-items:start}
.tp-course-public-summary img{width:100%;border-radius:16px;border:1px solid #e5e7eb;display:block}
.tp-course-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.tp-course-fact{border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fafafa}
.tp-course-fact span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:800}.tp-course-fact strong{display:block;margin-top:4px}
.tp-promo-price{border:1px solid #fecaca;border-left:4px solid #b91c1c;border-radius:14px;padding:14px;margin:14px 0;background:#fffafa}
.tp-promo-price .regular{text-decoration:line-through;color:#64748b;font-size:14px}.tp-promo-price .current{font-size:30px;font-weight:900;color:#b91c1c}
.tp-success-panel{text-align:center;max-width:760px;margin:36px auto;padding:34px;border:1px solid #bbf7d0;border-radius:22px;background:#f0fdf4}
.tp-success-check{width:92px;height:92px;border-radius:50%;background:#16a34a;color:#fff;display:grid;place-items:center;margin:0 auto 18px;font-size:54px;font-weight:900}
.tp-success-panel h1{color:#166534;margin:0 0 10px}.tp-success-panel p{color:#365314}
@media(max-width:760px){.tp-course-public-summary{grid-template-columns:1fr}.tp-course-facts{grid-template-columns:1fr}}

/* v26.13 · formulario público depurado y QR configurable */
.tp-payment-panel{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;align-items:stretch;padding:18px;border:1px solid #f1c7c9;border-left:4px solid #b80d12;border-radius:16px;background:#fff}
.tp-payment-qr{display:flex;flex-direction:column;gap:12px;align-items:stretch;padding:14px;border:1px solid #f1d8d8;border-radius:14px;background:#fff}
.tp-payment-qr img{display:block;width:100%;max-width:230px;aspect-ratio:1/1;object-fit:contain;margin:auto}
.tp-payment-copy{display:flex;flex-direction:column;gap:12px;padding:4px}
.tp-payment-amount{padding:16px;border:1px solid #f0b6b9;border-left:4px solid #b80d12;border-radius:14px;text-align:center;font-size:1.08rem;color:#991b1b;background:#fffafa}
.tp-payment-amount strong{display:block;font-size:1.45rem;margin-top:4px}
@media(max-width:760px){.tp-payment-panel{grid-template-columns:1fr}.tp-payment-qr img{max-width:260px}}

.tp-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;display:block!important}

/* TOCAPU 26.15 · identidad institucional e imprimibles */
.tp-institution-logo,.tp-login-logo,.tp-brand-mark{object-fit:contain;background:#fff!important;padding:4px!important;border:1px solid #e5e7eb!important;color:transparent!important}
img.tp-login-logo,img.tp-brand-mark{display:block}
.tp-institution-print-footer{margin:26px auto 0;padding:14px 18px;border-top:2px solid #b80d12;display:flex;justify-content:space-between;gap:24px;font-size:11px;line-height:1.45;color:#475467;background:#fff;max-width:1120px}
@media(max-width:720px){.tp-institution-print-footer{display:block}.tp-institution-print-footer>div+div{margin-top:8px}}
@media print{.tp-institution-print-footer{break-inside:avoid;margin-top:18px;max-width:none}}


/* TOCAPU 26.20 · identidad visible, cabeceras unificadas y portales amables */
.tp-public-brand-header{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:24px!important;
  padding:24px 28px!important;margin:0 0 22px!important;border:1px solid #d8dee8!important;
  border-radius:24px!important;background:linear-gradient(135deg,#fff 0%,#fff8f8 52%,#f8fafc 100%)!important;
  color:#172033!important;box-shadow:none!important;overflow:hidden!important;position:relative!important;
}
.tp-public-brand-header:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:#b80d12}
.tp-public-brand-main{display:flex;align-items:center;gap:22px;min-width:0}
.tp-public-brand-logo{display:block!important;width:210px!important;height:92px!important;max-width:28vw!important;object-fit:contain!important;background:transparent!important;border:0!important;padding:0!important;flex:0 0 auto}
.tp-public-brand-copy{min-width:0}
.tp-public-brand-kicker{display:block;color:#7f1d1d!important;font-size:.76rem;font-weight:900;letter-spacing:.09em;line-height:1.35;margin-bottom:5px}
.tp-public-brand-header h1{margin:0!important;color:#111827!important;font-size:clamp(1.65rem,3vw,2.35rem)!important;line-height:1.08!important;letter-spacing:-.035em!important}
.tp-public-brand-header p{margin:8px 0 0!important;color:#5b6472!important;font-size:.95rem!important;line-height:1.55!important;max-width:680px}
.tp-public-brand-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}
.tp-public-brand-actions .tp-btn{background:#fff!important;border-color:#d7dde7!important;color:#7f1d1d!important;box-shadow:none!important}
.tp-public-brand-actions .tp-btn:hover{background:#fff4f4!important;border-color:#b80d12!important;transform:none!important}
.tp-public-body .tp-card,.tp-portal-login .tp-card,.tp-verifier .tp-card,.tp-portal-section,.tp-cert-item{
  border:1px solid #dde3eb!important;border-radius:18px!important;background:#fff!important;box-shadow:none!important;
}
.tp-portal-login .form-card{padding:24px!important;border-top:5px solid #b80d12!important}
.tp-portal-login .form-card h2{font-size:1.35rem!important;color:#172033!important}
.tp-login-guide{background:#f8fafc!important;border-color:#dde3eb!important;border-radius:16px!important;box-shadow:none!important}
.tp-verifier .tp-search-grid{padding:4px!important}
.tp-verifier .tp-cert-item{border-left:5px solid #16a34a!important}
.tp-portal-section>.tp-section-head{background:linear-gradient(90deg,#fff7f7,#f8fafc)!important;border-bottom:1px solid #e7ebf1!important;padding:16px 18px!important}
.tp-portal-section>.tp-section-head h2{color:#7f1d1d!important}
.tp-portal-section>.tp-section-body{padding:18px!important}
.tp-summary-row,.tp-subpanel,.tp-resource{box-shadow:none!important;border-color:#e0e5ec!important}
.tp-page-head{box-shadow:none!important;border-radius:16px!important}
.tp-page-head>div:first-child h1,.tp-page-head>div:first-child h2{letter-spacing:-.025em}
.tp-brand-mark{width:78px!important;height:48px!important;object-fit:contain!important;border:0!important;background:transparent!important;padding:0!important}
.tp-brand{min-height:78px!important;padding-top:12px!important;padding-bottom:12px!important}
@media(max-width:800px){
 .tp-public-brand-header{display:block!important;padding:20px!important;border-radius:18px!important}
 .tp-public-brand-main{display:block!important}
 .tp-public-brand-logo{width:190px!important;height:82px!important;max-width:80vw!important;margin:0 0 14px!important}
 .tp-public-brand-actions{justify-content:flex-start;margin-top:16px}
}


/* Login limpio TOCAPU · logo grande, password visible y crédito institucional */
.tp-login-body-vloginfix{background:#fff;min-height:100vh;}
.tp-login-card-vloginfix{width:min(440px,calc(100% - 32px));border-color:transparent;background:#fff;padding:36px 38px 30px;box-shadow:0 18px 50px rgba(15,23,42,.10);}
.tp-login-logo-wrap{display:flex;justify-content:center;align-items:center;margin:0 auto 18px;background:#fff;border:0;box-shadow:none;}
.tp-login-card .tp-login-logo-vloginfix{width:178px!important;height:auto!important;max-height:118px!important;object-fit:contain!important;margin:0 auto!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;display:block!important;}
.tp-login-card-vloginfix h1{margin-top:4px;}
.tp-login-form-vloginfix{margin-top:4px;}
.tp-password-field{position:relative;display:flex;align-items:center;}
.tp-password-field input{padding-right:52px!important;}
.tp-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:#64748b;display:grid;place-items:center;cursor:pointer;font-size:18px;line-height:1;}
.tp-password-toggle:hover{background:#f1f5f9;color:var(--tp-red);}
.tp-login-submit-wrap{display:flex;justify-content:center;margin-top:22px;}
.tp-login-submit{min-width:190px;justify-content:center;text-align:center;}
.tp-login-credit{display:block;margin-top:24px!important;color:#64748b!important;text-align:center;font-size:12.5px;line-height:1.55;}
.tp-login-credit a{color:var(--tp-red);font-weight:800;}
@media(max-width:520px){.tp-login-card-vloginfix{padding:30px 24px 26px}.tp-login-card .tp-login-logo-vloginfix{width:150px!important;max-height:100px!important}.tp-login-submit{width:100%;}}


/* HOTFIX 20260701 · login sin nombre institucional duplicado */
.tp-login-card .tp-login-logo-vloginfix{width:220px!important;max-height:148px!important;}
.tp-login-system-title{margin:10px 0 4px!important;color:#1f2937!important;font-size:18px!important;font-weight:900!important;letter-spacing:.01em!important;line-height:1.22!important;text-transform:none!important;}
.tp-login-system-subtitle{margin:0 0 24px!important;color:#64748b!important;font-size:13px!important;font-weight:700!important;line-height:1.35!important;}
.tp-login-logo-wrap{margin-bottom:12px!important;}
@media(max-width:520px){.tp-login-card .tp-login-logo-vloginfix{width:185px!important;max-height:128px!important}.tp-login-system-title{font-size:16px!important}}

/* =========================================================
   TOCAPU 2026-07-03 · Cabecera operativa amplia
   Mejora global para cabeceras de módulos y submódulos.
   No modifica estructura, formularios, certificados ni datos.
   ========================================================= */
.tp-content > .tp-page-head,
.tp-shell .tp-content .tp-page-head,
.tp-public-wrap > .tp-page-head{
  background:#fff!important;
  border:1px solid #dfe6ef!important;
  border-radius:24px!important;
  box-shadow:0 16px 38px rgba(15,23,42,.075)!important;
  padding:30px 32px!important;
  margin:0 0 26px!important;
  min-height:128px!important;
  align-items:center!important;
}
.tp-content > .tp-page-head.compact,
.tp-shell .tp-content .tp-page-head.compact{
  margin-bottom:26px!important;
  min-height:126px!important;
}
.tp-page-head > div:first-child{
  min-width:0!important;
  display:grid!important;
  gap:8px!important;
}
.tp-page-head h1{
  display:flex!important;
  align-items:center!important;
  gap:13px!important;
  margin:0!important;
  color:#172033!important;
  font-size:34px!important;
  line-height:1.08!important;
  font-weight:950!important;
  letter-spacing:-.045em!important;
}
.tp-page-head h1::before{
  content:""!important;
  width:13px!important;
  height:13px!important;
  min-width:13px!important;
  border-radius:999px!important;
  background:var(--tp-primary,var(--tp-red,#b80d12))!important;
  box-shadow:0 0 0 5px rgba(184,13,18,.10)!important;
}
.tp-page-head p{
  margin:0!important;
  color:#526175!important;
  font-size:16px!important;
  line-height:1.55!important;
  font-weight:520!important;
  max-width:980px!important;
}
.tp-page-head .actions,
.tp-page-head .actions.wrap{
  align-self:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
}
.tp-page-head .tp-btn{
  min-height:52px!important;
  padding:13px 22px!important;
  border-radius:14px!important;
  font-size:15px!important;
}
@media(max-width:920px){
  .tp-content > .tp-page-head,
  .tp-shell .tp-content .tp-page-head,
  .tp-public-wrap > .tp-page-head{
    padding:24px!important;
    min-height:0!important;
    align-items:flex-start!important;
  }
  .tp-page-head h1{font-size:29px!important;}
  .tp-page-head p{font-size:15px!important;}
}
@media(max-width:680px){
  .tp-content > .tp-page-head,
  .tp-shell .tp-content .tp-page-head,
  .tp-public-wrap > .tp-page-head{
    padding:20px!important;
    border-radius:20px!important;
  }
  .tp-page-head h1{font-size:25px!important;}
  .tp-page-head h1::before{width:11px!important;height:11px!important;min-width:11px!important;}
}
   TOCAPU HOTFIX 2026-07-03 - Cabecera operativa FORZADA v2
   Objetivo: que la cabecera de módulos deje de verse comprimida.
   Aplica a .tp-module-header-soft, .tp-page-head y variantes de módulos.
   ====================================================================== */
:root{
  --tp-head-radius-v2:26px;
  --tp-head-pad-y-v2:34px;
  --tp-head-pad-x-v2:36px;
  --tp-head-min-v2:146px;
}
body .tp-wrap > .tp-module-header-soft,
body .tp-wrap .tp-module-header-soft,
body main .tp-module-header-soft,
body .tp-main .tp-module-header-soft,
body .tp-content .tp-module-header-soft,
body .tp-public-wrap .tp-module-header-soft,
body .tp-page-head,
body main > .tp-page-head,
body .tp-main > .tp-page-head,
body .tp-content > .tp-page-head{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:var(--tp-head-min-v2)!important;
  padding:var(--tp-head-pad-y-v2) var(--tp-head-pad-x-v2)!important;
  margin:0 0 28px 0!important;
  border-radius:var(--tp-head-radius-v2)!important;
  background:linear-gradient(135deg,#ffffff 0%,#f8fafc 100%)!important;
  border:1px solid #dbe3ec!important;
  border-left:0!important;
  box-shadow:0 18px 40px rgba(15,23,42,.085)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:28px!important;
  overflow:visible!important;
}
body .tp-wrap .tp-module-header-soft > div:first-child,
body .tp-page-head > div:first-child{
  display:grid!important;
  gap:10px!important;
  min-width:0!important;
}
body .tp-wrap .tp-module-header-soft h1,
body .tp-wrap .tp-module-header-soft h2,
body .tp-wrap .tp-module-header-soft strong,
body .tp-page-head h1,
body .tp-page-head h2{
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  font-size:36px!important;
  line-height:1.08!important;
  font-weight:950!important;
  letter-spacing:-.045em!important;
  color:#172033!important;
}
body .tp-wrap .tp-module-header-soft h1:before,
body .tp-wrap .tp-module-header-soft h2:before,
body .tp-page-head h1:before,
body .tp-page-head h2:before{
  content:""!important;
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  border-radius:999px!important;
  background:var(--tp-module-color,var(--tp-primary,#b80d12))!important;
  box-shadow:0 0 0 6px color-mix(in srgb,var(--tp-module-color,var(--tp-primary,#b80d12)) 14%, transparent)!important;
}
body .tp-wrap .tp-module-header-soft p,
body .tp-wrap .tp-module-header-soft small,
body .tp-page-head p,
body .tp-page-head small{
  margin:0!important;
  padding:0!important;
  max-width:1050px!important;
  font-size:17px!important;
  line-height:1.6!important;
  font-weight:560!important;
  color:#526175!important;
}
body .tp-wrap .tp-module-header-soft .actions,
body .tp-page-head .actions,
body .tp-page-head .actions.wrap{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:14px!important;
  flex-wrap:wrap!important;
  margin-left:auto!important;
}
body .tp-wrap .tp-module-header-soft .tp-btn,
body .tp-page-head .tp-btn,
body .tp-page-head a.tp-btn,
body .tp-page-head button.tp-btn{
  min-height:56px!important;
  padding:15px 24px!important;
  border-radius:15px!important;
  font-size:16px!important;
  font-weight:900!important;
}
/* Color por módulo sin achicar la cabecera */
body .tp-wrap:has(.tp-teacher-list-card) .tp-module-header-soft,
body .tp-wrap:has(.tp-teacher-shell) .tp-module-header-soft{--tp-module-color:#4f46e5!important;background:linear-gradient(135deg,#ffffff 0%,#eef2ff 100%)!important;border-color:#c7d2fe!important;}
body .tp-wrap:has(.tp-courses-table) .tp-module-header-soft{--tp-module-color:#16a34a!important;background:linear-gradient(135deg,#ffffff 0%,#f0fdf4 100%)!important;border-color:#bbf7d0!important;}
body .tp-wrap:has(.tp-students-table) .tp-module-header-soft,
body .tp-wrap:has(.tp-student-list-card) .tp-module-header-soft{--tp-module-color:#2563eb!important;background:linear-gradient(135deg,#ffffff 0%,#eff6ff 100%)!important;border-color:#bfdbfe!important;}
body .tp-wrap:has(.tp-finance-card-table) .tp-module-header-soft,
body .tp-wrap:has(.tp-finance-hub) .tp-module-header-soft{--tp-module-color:#f97316!important;background:linear-gradient(135deg,#ffffff 0%,#fff7ed 100%)!important;border-color:#fed7aa!important;}
body .tp-wrap:has(.tp-cert-table) .tp-module-header-soft,
body .tp-wrap:has(.tp-verifier-cert-list) .tp-module-header-soft{--tp-module-color:#7c3aed!important;background:linear-gradient(135deg,#ffffff 0%,#f5f3ff 100%)!important;border-color:#ddd6fe!important;}
@media(max-width:920px){
  body .tp-wrap .tp-module-header-soft,
  body .tp-page-head,
  body main > .tp-page-head,
  body .tp-main > .tp-page-head,
  body .tp-content > .tp-page-head{
    min-height:0!important;
    padding:26px!important;
    display:grid!important;
    align-items:start!important;
    gap:18px!important;
  }
  body .tp-wrap .tp-module-header-soft h1,
  body .tp-wrap .tp-module-header-soft h2,
  body .tp-page-head h1,
  body .tp-page-head h2{font-size:30px!important;}
  body .tp-wrap .tp-module-header-soft p,
  body .tp-page-head p{font-size:15.5px!important;}
}
@media(max-width:680px){
  body .tp-wrap .tp-module-header-soft,
  body .tp-page-head{padding:22px!important;border-radius:22px!important;}
  body .tp-wrap .tp-module-header-soft h1,
  body .tp-wrap .tp-module-header-soft h2,
  body .tp-page-head h1,
  body .tp-page-head h2{font-size:26px!important;}
}

/* =========================================================
   TOCAPU 2026-07-03 · Cabecera operativa V3
   Diagnóstico: el CSS sí existía, pero app_version() usa config/app.php.
   Por eso el navegador podía seguir cargando CSS anterior. Esta versión
   actualiza config/app.php y refuerza las reglas exactas del layout real:
   body.tp-app-body > .tp-shell > main.tp-content > section.tp-page-head.
   ========================================================= */
html body.tp-app-body > section.tp-shell > main.tp-content > section.tp-page-head,
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head,
html body.tp-app-body .tp-shell .tp-content > .tp-page-head,
html body.tp-app-body .tp-content > .tp-page-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  column-gap:28px!important;
  row-gap:12px!important;
  min-height:142px!important;
  padding:34px 38px!important;
  margin:0 0 28px!important;
  background:#fff!important;
  border:1px solid #dfe6ef!important;
  border-radius:26px!important;
  box-shadow:0 18px 42px rgba(15,23,42,.08)!important;
}
html body.tp-app-body > section.tp-shell > main.tp-content > section.tp-page-head.compact,
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head.compact{
  min-height:142px!important;
  padding:34px 38px!important;
  margin-bottom:28px!important;
}
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head > div:first-child,
html body.tp-app-body .tp-content > .tp-page-head > div:first-child{
  min-width:0!important;
  display:grid!important;
  align-content:center!important;
  gap:10px!important;
}
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head h1,
html body.tp-app-body .tp-content > .tp-page-head h1{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  margin:0!important;
  padding:0!important;
  font-size:34px!important;
  line-height:1.08!important;
  font-weight:950!important;
  letter-spacing:-.045em!important;
  color:#172033!important;
}
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head h1::before,
html body.tp-app-body .tp-content > .tp-page-head h1::before{
  content:""!important;
  display:inline-block!important;
  width:13px!important;
  height:13px!important;
  min-width:13px!important;
  margin:0!important;
  border-radius:999px!important;
  background:var(--tp-module-accent,var(--tp-primary,#b80d12))!important;
  box-shadow:0 0 0 6px rgba(184,13,18,.10)!important;
}
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head p,
html body.tp-app-body .tp-content > .tp-page-head p{
  margin:0!important;
  max-width:1040px!important;
  font-size:16.5px!important;
  line-height:1.6!important;
  font-weight:520!important;
  color:#526175!important;
}
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head .actions,
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head .actions.wrap,
html body.tp-app-body .tp-content > .tp-page-head .actions,
html body.tp-app-body .tp-content > .tp-page-head .actions.wrap{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  align-self:center!important;
  gap:14px!important;
  flex-wrap:wrap!important;
  margin:0!important;
}
html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head .tp-btn,
html body.tp-app-body .tp-content > .tp-page-head .tp-btn{
  min-height:56px!important;
  padding:15px 25px!important;
  border-radius:15px!important;
  font-size:16px!important;
  font-weight:900!important;
}
@media(max-width:920px){
  html body.tp-app-body > section.tp-shell > main.tp-content > section.tp-page-head,
  html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head,
  html body.tp-app-body .tp-content > .tp-page-head{
    grid-template-columns:1fr!important;
    min-height:0!important;
    padding:28px!important;
    align-items:start!important;
  }
  html body.tp-app-body main#tpMainContent.tp-content > section.tp-page-head .actions,
  html body.tp-app-body .tp-content > .tp-page-head .actions{justify-content:flex-start!important;}
}

/* =========================================================
   TOCAPU 2026-07-03 · Cabeceras operativas V4 completo
   Incluye cabeceras especiales como Centro de Producción Inteligente,
   donde el título y la descripción no están dentro de section.tp-page-head.
   ========================================================= */
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-hero) > h1:first-of-type,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-command) > h1:first-of-type,
html body.tp-app-body .tp-content:has(.tp-cpi-tabs) > h1:first-of-type,
html body.tp-app-body .tp-content:has(.tp-ci-production-hub) > h1:first-of-type,
html body.tp-app-body .tp-content:has(.tp-cpi-hero) > h1:first-of-type,
html body.tp-app-body .tp-content:has(.tp-cpi-command) > h1:first-of-type{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  margin:0!important;
  padding:34px 38px 12px!important;
  background:#fff!important;
  border:1px solid #dfe6ef!important;
  border-bottom:0!important;
  border-radius:26px 26px 0 0!important;
  box-shadow:0 18px 42px rgba(15,23,42,.08)!important;
  color:#172033!important;
  font-size:34px!important;
  line-height:1.08!important;
  font-weight:950!important;
  letter-spacing:-.045em!important;
}
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type::before,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type::before,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-hero) > h1:first-of-type::before,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-command) > h1:first-of-type::before,
html body.tp-app-body .tp-content:has(.tp-cpi-tabs) > h1:first-of-type::before,
html body.tp-app-body .tp-content:has(.tp-ci-production-hub) > h1:first-of-type::before,
html body.tp-app-body .tp-content:has(.tp-cpi-hero) > h1:first-of-type::before,
html body.tp-app-body .tp-content:has(.tp-cpi-command) > h1:first-of-type::before{
  content:""!important;
  display:inline-block!important;
  width:13px!important;
  height:13px!important;
  min-width:13px!important;
  border-radius:999px!important;
  background:var(--tp-module-accent,#4f46e5)!important;
  box-shadow:0 0 0 6px rgba(79,70,229,.10)!important;
}
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type + p,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type + p,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-hero) > h1:first-of-type + p,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-command) > h1:first-of-type + p,
html body.tp-app-body .tp-content:has(.tp-cpi-tabs) > h1:first-of-type + p,
html body.tp-app-body .tp-content:has(.tp-ci-production-hub) > h1:first-of-type + p,
html body.tp-app-body .tp-content:has(.tp-cpi-hero) > h1:first-of-type + p,
html body.tp-app-body .tp-content:has(.tp-cpi-command) > h1:first-of-type + p{
  margin:0 0 28px!important;
  padding:0 38px 34px!important;
  background:#fff!important;
  border:1px solid #dfe6ef!important;
  border-top:0!important;
  border-radius:0 0 26px 26px!important;
  color:#526175!important;
  font-size:16.5px!important;
  line-height:1.6!important;
  font-weight:520!important;
  max-width:none!important;
  box-shadow:0 18px 42px rgba(15,23,42,.08)!important;
}
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type + p + .tp-tabs,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type + p + nav,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type + p + .tp-menu,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type + p + .tp-tabs,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type + p + nav,
html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type + p + .tp-menu{
  margin-top:0!important;
}
@media(max-width:920px){
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type,
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type,
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-hero) > h1:first-of-type,
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-command) > h1:first-of-type{
    padding:28px 28px 10px!important;
    font-size:28px!important;
  }
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-tabs) > h1:first-of-type + p,
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-ci-production-hub) > h1:first-of-type + p,
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-hero) > h1:first-of-type + p,
  html body.tp-app-body main#tpMainContent.tp-content:has(.tp-cpi-command) > h1:first-of-type + p{
    padding:0 28px 28px!important;
    font-size:15.5px!important;
  }
}

/* =========================================================
   TOCAPU 2026-07-03 · Cabecera CPI V5 específica
   Diagnóstico: Centro de Producción Inteligente usa
   <header class="tp-cpi-title-clean"> y no h1 directo ni section.tp-page-head.
   Por eso las reglas anteriores no alcanzaban esa pantalla.
   ========================================================= */
html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean,
html body.tp-app-body .tp-content > header.tp-cpi-title-clean,
html body.tp-app-body header.tp-cpi-title-clean{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:0 0 24px!important;
  padding:34px 38px 32px!important;
  min-height:150px!important;
  background:#fff!important;
  border:1px solid #dfe6ef!important;
  border-radius:24px!important;
  box-shadow:0 18px 42px rgba(15,23,42,.08)!important;
}
html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean h1,
html body.tp-app-body .tp-content > header.tp-cpi-title-clean h1,
html body.tp-app-body header.tp-cpi-title-clean h1{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  margin:0 0 16px!important;
  padding:0!important;
  color:#172033!important;
  font-size:34px!important;
  line-height:1.08!important;
  font-weight:950!important;
  letter-spacing:-.045em!important;
}
html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean h1::before,
html body.tp-app-body .tp-content > header.tp-cpi-title-clean h1::before,
html body.tp-app-body header.tp-cpi-title-clean h1::before{
  content:""!important;
  display:inline-block!important;
  width:13px!important;
  height:13px!important;
  min-width:13px!important;
  border-radius:999px!important;
  background:var(--tp-module-accent,#4f46e5)!important;
  box-shadow:0 0 0 6px rgba(79,70,229,.10)!important;
}
html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean p,
html body.tp-app-body .tp-content > header.tp-cpi-title-clean p,
html body.tp-app-body header.tp-cpi-title-clean p{
  margin:0!important;
  padding:0!important;
  max-width:980px!important;
  color:#526175!important;
  font-size:16.5px!important;
  line-height:1.6!important;
  font-weight:520!important;
}
html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean + nav.tp-cpi-tabs,
html body.tp-app-body .tp-content > header.tp-cpi-title-clean + nav.tp-cpi-tabs,
html body.tp-app-body header.tp-cpi-title-clean + nav.tp-cpi-tabs{
  margin-top:0!important;
  margin-bottom:26px!important;
}
@media(max-width:920px){
  html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean,
  html body.tp-app-body .tp-content > header.tp-cpi-title-clean,
  html body.tp-app-body header.tp-cpi-title-clean{
    padding:28px!important;
    min-height:0!important;
  }
  html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean h1,
  html body.tp-app-body .tp-content > header.tp-cpi-title-clean h1,
  html body.tp-app-body header.tp-cpi-title-clean h1{
    font-size:28px!important;
  }
  html body.tp-app-body main#tpMainContent.tp-content > header.tp-cpi-title-clean p,
  html body.tp-app-body .tp-content > header.tp-cpi-title-clean p,
  html body.tp-app-body header.tp-cpi-title-clean p{
    font-size:15.5px!important;
  }
}


/* TOCAPU 2026.07.03 - Menú lateral: marca solo con logotipo, sin textos ni tarjeta */
.tp-sidebar .tp-brand.tp-brand-logo-only,
aside.tp-sidebar .tp-brand.tp-brand-logo-only,
.tp-standalone-sidebar .tp-brand.tp-brand-logo-only{
  min-height:104px!important;
  height:auto!important;
  padding:18px 18px 20px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  background:transparent!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  box-shadow:none!important;
}
.tp-sidebar .tp-brand.tp-brand-logo-only > div,
aside.tp-sidebar .tp-brand.tp-brand-logo-only > div,
.tp-standalone-sidebar .tp-brand.tp-brand-logo-only > div{
  display:none!important;
}
.tp-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
aside.tp-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
.tp-standalone-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
.tp-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark,
aside.tp-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark,
.tp-standalone-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark{
  width:168px!important;
  max-width:100%!important;
  height:72px!important;
  min-width:0!important;
  max-height:78px!important;
  display:block!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  margin:0 auto!important;
  box-shadow:none!important;
  color:transparent!important;
}
.tp-sidebar .tp-brand.tp-brand-logo-only .tp-sidebar-close{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
}
.tp-sidebar-collapsed .tp-sidebar .tp-brand.tp-brand-logo-only,
.tp-sidebar-collapsed aside.tp-sidebar .tp-brand.tp-brand-logo-only{
  min-height:82px!important;
  padding:14px 8px!important;
}
.tp-sidebar-collapsed .tp-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
.tp-sidebar-collapsed aside.tp-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
.tp-sidebar-collapsed .tp-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark,
.tp-sidebar-collapsed aside.tp-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark{
  width:54px!important;
  height:54px!important;
}
@media(max-width:920px){
  .tp-sidebar .tp-brand.tp-brand-logo-only,
  aside.tp-sidebar .tp-brand.tp-brand-logo-only,
  .tp-standalone-sidebar .tp-brand.tp-brand-logo-only{
    min-height:92px!important;
    padding:16px 52px 16px 16px!important;
    justify-content:flex-start!important;
  }
  .tp-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
  aside.tp-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
  .tp-standalone-sidebar .tp-brand.tp-brand-logo-only .tp-brand-mark,
  .tp-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark,
  aside.tp-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark,
  .tp-standalone-sidebar .tp-brand.tp-brand-logo-only img.tp-brand-mark{
    width:148px!important;
    height:64px!important;
    margin:0!important;
  }
}


/* HOTFIX 20260703 - Unificación de pantallas internas standalone */
body.tp-internal-standalone{
  padding-left:280px!important;
  padding-top:74px!important;
  background:#f4f6fa!important;
  color:#0f223a!important;
}
body.tp-internal-standalone .tp-standalone-sidebar{
  display:flex!important;
  flex-direction:column!important;
  width:280px!important;
  position:fixed!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  z-index:120!important;
  background:linear-gradient(180deg,#8f131b 0%,#6f1017 100%)!important;
  border-right:0!important;
  box-shadow:14px 0 34px rgba(15,23,42,.16)!important;
  overflow:auto!important;
  padding:18px 14px!important;
}
body.tp-internal-standalone .tp-standalone-topbar{
  position:fixed!important;
  top:0!important;
  left:280px!important;
  right:0!important;
  height:74px!important;
  z-index:115!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  padding:10px 18px!important;
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid #dfe6ef!important;
  box-shadow:0 8px 24px rgba(15,23,42,.06)!important;
  backdrop-filter:blur(10px)!important;
}
body.tp-internal-standalone .tp-public-wrap,
body.tp-internal-standalone .tp-public-wrap.wide{
  max-width:none!important;
  width:auto!important;
  margin:0!important;
  padding:24px 32px 52px!important;
}
body.tp-internal-standalone .tp-brand-logo-only{
  min-height:86px!important;
  padding:10px 8px 20px!important;
  justify-content:center!important;
  align-items:center!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.tp-internal-standalone .tp-brand-logo-only .tp-brand-mark,
body.tp-internal-standalone .tp-brand-logo-only img{
  width:138px!important;
  max-width:88%!important;
  height:auto!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
}
body.tp-internal-standalone .tp-brand-logo-only>div,
body.tp-internal-standalone .tp-brand-logo-only strong,
body.tp-internal-standalone .tp-brand-logo-only span:not(.tp-sidebar-close span){
  display:none!important;
}
body.tp-internal-standalone .tp-sidebar-close{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
}
body.tp-internal-standalone .tp-menu{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding:6px 0!important;
}
body.tp-internal-standalone .tp-menu-flow-label{
  color:rgba(255,255,255,.65)!important;
  font-size:10px!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  font-weight:900!important;
  padding:0 10px 6px!important;
}
body.tp-internal-standalone .tp-menu a{
  min-height:46px!important;
  border-radius:14px!important;
  color:rgba(255,255,255,.88)!important;
  background:transparent!important;
  border:1px solid transparent!important;
  padding:10px 12px!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  font-weight:800!important;
  text-decoration:none!important;
}
body.tp-internal-standalone .tp-menu a svg{
  width:19px!important;
  height:19px!important;
  flex:0 0 auto!important;
}
body.tp-internal-standalone .tp-menu a:hover,
body.tp-internal-standalone .tp-menu a.active{
  background:#fff!important;
  color:#8b1118!important;
  border-color:rgba(255,255,255,.72)!important;
  box-shadow:0 12px 24px rgba(15,23,42,.16)!important;
}
body.tp-internal-standalone .tp-sidebar-version{
  margin-top:auto!important;
  padding:12px 10px!important;
  color:rgba(255,255,255,.75)!important;
  font-size:11px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
}
body.tp-internal-standalone .tp-standalone-topbar .tp-top-search{
  flex:1 1 auto!important;
  max-width:720px!important;
  margin-left:auto!important;
}
body.tp-internal-standalone .tp-standalone-back{
  min-width:46px!important;
  height:46px!important;
  border-radius:14px!important;
  font-size:22px!important;
  font-weight:900!important;
}
body.tp-internal-standalone .tp-menu-toggle{
  display:none!important;
}
body.tp-internal-standalone .tp-v2647-hero,
body.tp-internal-standalone .tp-public-hero,
body.tp-internal-standalone .tp-page-head{
  margin-top:0!important;
}
body.tp-internal-standalone.tp-sidebar-collapsed{
  padding-left:0!important;
}
body.tp-internal-standalone.tp-sidebar-collapsed .tp-standalone-sidebar{
  transform:translateX(-100%)!important;
}
body.tp-internal-standalone.tp-sidebar-collapsed .tp-standalone-topbar{
  left:0!important;
}
body.tp-internal-standalone.tp-sidebar-collapsed .tp-public-wrap,
body.tp-internal-standalone.tp-sidebar-collapsed .tp-public-wrap.wide{
  padding-left:32px!important;
}
@media(max-width:1100px){
  body.tp-internal-standalone{padding-left:0!important;padding-top:72px!important;}
  body.tp-internal-standalone .tp-standalone-sidebar{transform:translateX(-100%)!important;}
  body.tp-internal-standalone.tp-sidebar-open .tp-standalone-sidebar{transform:translateX(0)!important;}
  body.tp-internal-standalone .tp-standalone-topbar{left:0!important;}
  body.tp-internal-standalone .tp-menu-toggle{display:inline-flex!important;}
  body.tp-internal-standalone .tp-public-wrap,
  body.tp-internal-standalone .tp-public-wrap.wide{padding:18px!important;}
  body.tp-internal-standalone .tp-userbox{display:none!important;}
}
@media(max-width:720px){
  body.tp-internal-standalone .tp-standalone-topbar{gap:8px!important;padding:8px 10px!important;}
  body.tp-internal-standalone .tp-standalone-pill,
  body.tp-internal-standalone .tp-view-controls{display:none!important;}
  body.tp-internal-standalone .tp-standalone-topbar .tp-top-search{max-width:none!important;}
}
@media print{
  body.tp-internal-standalone{padding:0!important;background:#fff!important;}
  body.tp-internal-standalone .tp-standalone-sidebar,
  body.tp-internal-standalone .tp-standalone-topbar,
  body.tp-internal-standalone .tp-sidebar-overlay{display:none!important;}
}

/* ============================================================
   TOCAPU 2026-08-17 — BLOQUEO GLOBAL DE FRANJAS SUPERIORES
   Neutraliza definitivamente los border-top de color heredados
   en tarjetas, métricas y contenedores de los módulos internos.
   ============================================================ */
html body.tp-module-cursos .tp-card,
html body.tp-module-courses .tp-card,
html body.tp-module-alumnos .tp-card,
html body.tp-module-students .tp-card,
html body.tp-module-docentes .tp-card,
html body.tp-module-teachers .tp-card,
html body.tp-module-seguimiento .tp-card,
html body.tp-module-pipeline .tp-card,
html body.tp-module-finanzas .tp-card,
html body.tp-module-finance .tp-card,
html body.tp-module-certificados .tp-card,
html body.tp-module-certificates .tp-card,
html body.tp-module-cpi .tp-card,
html body.tp-module-production .tp-card,
html body.tp-module-canales .tp-card,
html body.tp-module-admin .tp-card,
html body.tp-module-settings .tp-card,
html body.tp-module-usuarios .tp-card,
html body.tp-module-users .tp-card,
html body.tp-module-reportes .tp-card,
html body.tp-module-import_export .tp-card,
html body.tp-module-mantenimiento .tp-card,
html body.tp-module-visual .tp-card,
html body.tp-module-comunicaciones .tp-card,
html body.tp-module-duplicados .tp-card,
html body.tp-module-boletas .tp-card,
html body.tp-module-admin_integridad .tp-card,
html body.tp-module-admin_auditoria .tp-card,
html body.tp-module-admin_respaldo .tp-card,
html body.tp-module-admin_patches .tp-card,
html body.tp-module-admin_recovery .tp-card {
  border-top:1px solid #d7dee9!important;
}

html body.tp-module-cursos .metric,
html body.tp-module-courses .metric,
html body.tp-module-alumnos .metric,
html body.tp-module-students .metric,
html body.tp-module-docentes .metric,
html body.tp-module-teachers .metric,
html body.tp-module-seguimiento .metric,
html body.tp-module-pipeline .metric,
html body.tp-module-finanzas .metric,
html body.tp-module-finance .metric,
html body.tp-module-certificados .metric,
html body.tp-module-certificates .metric,
html body.tp-module-cpi .metric,
html body.tp-module-production .metric,
html body.tp-module-canales .metric,
html body.tp-module-admin .metric,
html body.tp-module-settings .metric,
html body.tp-module-cursos .tp-stat-card,
html body.tp-module-alumnos .tp-stat-card,
html body.tp-module-docentes .tp-stat-card,
html body.tp-module-finanzas .tp-stat-card,
html body.tp-module-certificados .tp-stat-card,
html body.tp-module-cpi .tp-stat-card,
html body.tp-module-canales .tp-stat-card,
html body.tp-module-admin .tp-stat-card,
html body.tp-module-cursos .tp-analytics-kpi,
html body.tp-module-alumnos .tp-analytics-kpi,
html body.tp-module-docentes .tp-analytics-kpi,
html body.tp-module-finanzas .tp-analytics-kpi,
html body.tp-module-certificados .tp-analytics-kpi,
html body.tp-module-cpi .tp-analytics-kpi,
html body.tp-module-canales .tp-analytics-kpi,
html body.tp-module-admin .tp-analytics-kpi {
  border-top:1px solid #d7dee9!important;
}

/* Neutralización de tarjetas auxiliares que no siempre usan .tp-card. */
html body.tp-module-cursos .tp-item-card,
html body.tp-module-alumnos .tp-item-card,
html body.tp-module-docentes .tp-item-card,
html body.tp-module-finanzas .tp-item-card,
html body.tp-module-certificados .tp-item-card,
html body.tp-module-cpi .tp-item-card,
html body.tp-module-canales .tp-item-card,
html body.tp-module-admin .tp-item-card {
  border-top:1px solid #d7dee9!important;
}
