:root{
  --tdm-bg:#eef2ee;
  --tdm-bg-2:#f6f8f6;
  --tdm-card:#f8faf8;
  --tdm-card-2:#ffffff;
  --tdm-line:#d4ddd4;
  --tdm-line-2:#c4d0c4;
  --tdm-green:#0d6b37;
  --tdm-green-2:#1b8a49;
  --tdm-green-soft:#e5efe7;
  --tdm-text:#14242f;
  --tdm-muted:#5f6e67;
  --tdm-shadow:0 16px 34px rgba(20,36,47,.08);
  --tdm-radius-xl:28px;
  --tdm-radius-lg:22px;
  --tdm-radius-md:18px;
  --tdm-radius-sm:14px;
}

.tdm-login-wrap,
.tdm-panel{
  font-family: "Encode Sans", Arial, sans-serif;
  color:var(--tdm-text);
}

.tdm-login-wrap{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:18px 0;
}

.tdm-login-box,
.tdm-panel{
  background:linear-gradient(180deg,var(--tdm-bg) 0%, var(--tdm-bg-2) 100%);
  border:1px solid var(--tdm-line-2);
  box-shadow:var(--tdm-shadow);
}

.tdm-login-box{
  position:relative;
  max-width:620px;
  width:100%;
  padding:34px;
  border-radius:var(--tdm-radius-xl);
  overflow:hidden;
}

.tdm-login-box::before,
.tdm-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(13,107,55,.07) 0%, rgba(255,255,255,0) 35%, rgba(13,107,55,.05) 100%);
  pointer-events:none;
}

.tdm-login-box > *,
.tdm-panel > *{position:relative;z-index:1}

.tdm-login-brand,
.tdm-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  padding:8px 14px;
  border-radius:999px;
  background:var(--tdm-green-soft);
  border:1px solid #bfd0c1;
  color:var(--tdm-green);
  font-size:13px;
  letter-spacing:.02em;
  font-weight:800;
  text-transform:none;
}

.tdm-login-brand::before,
.tdm-kicker::before{
  content:"";
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--tdm-green);
  box-shadow:0 0 0 5px rgba(13,107,55,.12);
}

.tdm-login-box h2,
.tdm-panel h2{
  margin:0 0 8px;
  color:#1a2732;
  font-size:clamp(28px,3vw,40px);
  line-height:1.05;
  font-weight:900;
}

.tdm-muted,
.tdm-panel-header p,
.tdm-login-box p{
  color:var(--tdm-muted);
}

.tdm-alert{
  background:#fff4e8;
  color:#975510;
  border:1px solid #f0cda4;
  padding:12px 16px;
  border-radius:16px;
  margin:16px 0;
  font-weight:700;
}

.tdm-login-box form{
  margin-top:24px;
  padding:24px;
  border-radius:24px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--tdm-line);
}

.tdm-login-box form p{margin:0 0 16px}

.tdm-login-box form label{
  display:block;
  margin-bottom:8px;
  color:#23343d;
  font-size:14px;
  font-weight:800;
}

.tdm-login-box input[type=text],
.tdm-login-box input[type=password],
.tdm-login-box input[type=email]{
  width:100%;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--tdm-line-2);
  background:#fff;
  color:#14242f;
  margin-bottom:0;
  box-sizing:border-box;
  outline:none;
  transition:.2s ease;
}

.tdm-login-box input[type=text]:focus,
.tdm-login-box input[type=password]:focus,
.tdm-login-box input[type=email]:focus{
  border-color:#86b58f;
  box-shadow:0 0 0 4px rgba(13,107,55,.10);
}

.tdm-login-box .login-remember{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--tdm-muted);
  font-size:14px;
}

.tdm-login-box .login-remember label{margin:0;font-weight:700}

.tdm-login-box input[type=submit],
.tdm-btn{
  background:var(--tdm-green-soft);
  color:var(--tdm-green);
  border:1px solid #b6c9b9;
  padding:13px 20px;
  border-radius:999px;
  font-weight:900;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:.2s ease;
}

.tdm-login-box input[type=submit]:hover,
.tdm-btn:hover,
.tdm-tab-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(13,107,55,.10);
}

.tdm-btn-outline{
  background:#fff;
  color:var(--tdm-green);
  border:1px solid #b6c9b9;
}

.tdm-login-links{margin-top:14px}
.tdm-login-links a{color:var(--tdm-green);font-weight:800;text-decoration:none}

.tdm-panel{
  position:relative;
  padding:24px;
  border-radius:30px;
}

.tdm-panel-header{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:18px;
  padding-bottom:18px;
  border-bottom:1px solid var(--tdm-line);
}

.tdm-panel-header h2{font-size:clamp(30px,3.4vw,46px)}

.tdm-tabs-nav{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:20px;
}

.tdm-tab-btn{
  background:#fff;
  color:#2f4339;
  border:1px solid var(--tdm-line-2);
  padding:12px 16px;
  border-radius:999px;
  cursor:pointer;
  font-weight:900;
}

.tdm-tab-btn.active{
  background:var(--tdm-green-soft);
  color:var(--tdm-green);
  border-color:#b6c9b9;
}

.tdm-tab-panel{display:none}
.tdm-tab-panel.active{display:block}

.tdm-cards-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}

.tdm-cards-grid.small-gap{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tdm-grid-2{display:grid;grid-template-columns:1.05fr 1fr;gap:18px}

.tdm-card{
  background:linear-gradient(180deg,var(--tdm-card) 0%, var(--tdm-card-2) 100%);
  border:1px solid var(--tdm-line);
  border-radius:24px;
  padding:20px;
  box-shadow:0 8px 20px rgba(20,36,47,.04);
}

.tdm-card.stat{
  position:relative;
  overflow:hidden;
}

.tdm-card.stat::before,
.tdm-mini-schedule__item::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:14px;
  width:7px;
  border-radius:10px;
  background:var(--tdm-green);
}

.tdm-card.stat span{
  display:block;
  color:var(--tdm-green);
  font-size:13px;
  margin-bottom:8px;
  font-weight:800;
  text-transform:uppercase;
}

.tdm-card.stat strong{
  display:block;
  font-size:28px;
  line-height:1.1;
  color:#101d28;
  font-weight:900;
}

.tdm-card.stat small{display:block;color:var(--tdm-muted);margin-top:6px;font-weight:700}

.tdm-card h3{
  margin:0 0 14px;
  color:#101d28;
  font-size:24px;
  font-weight:900;
}

.tdm-list-clean{list-style:none;padding:0;margin:0}
.tdm-list-clean li{padding:10px 0;border-bottom:1px solid var(--tdm-line);font-weight:700;color:#32453d}
.tdm-list-clean li:last-child{border-bottom:none}

.tdm-mini-schedule__item{
  position:relative;
  padding:14px 14px 14px 22px;
  margin-bottom:10px;
  border:1px solid var(--tdm-line);
  border-radius:18px;
  background:#fff;
}
.tdm-mini-schedule__item:last-child{margin-bottom:0}
.tdm-mini-schedule__item strong{display:block;margin-bottom:6px;font-size:18px;color:#101d28}
.tdm-mini-schedule__item span,.tdm-mini-schedule__item small{display:block;color:var(--tdm-muted);font-weight:700}

.tdm-profile{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start}
.tdm-avatar{
  width:180px;
  height:180px;
  border-radius:26px;
  background:linear-gradient(180deg,#dce6dd 0%, #f5f8f5 100%);
  border:1px solid var(--tdm-line);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:58px;
  font-weight:900;
  color:var(--tdm-green);
  overflow:hidden;
}
.tdm-avatar img{width:100%;height:100%;object-fit:cover}

.tdm-grid-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.tdm-field{
  background:#fff;
  border:1px solid var(--tdm-line);
  padding:14px;
  border-radius:16px;
}
.tdm-field span{display:block;font-size:12px;color:var(--tdm-green);margin-bottom:6px;font-weight:800;text-transform:uppercase}
.tdm-field strong{display:block;color:#172632}
.tdm-note-box{
  margin-top:16px;
  padding:16px;
  border-radius:18px;
  background:#fff4e8;
  border:1px solid #f0cda4;
  color:#7a4b17;
}
.tdm-note-box strong{display:block;margin-bottom:6px}

.tdm-table-wrap{overflow:auto}
.tdm-table{width:100%;border-collapse:separate;border-spacing:0 10px}
.tdm-table thead th{
  color:var(--tdm-green);
  font-size:13px;
  text-transform:uppercase;
  font-weight:900;
  padding:0 12px 8px;
  text-align:left;
}
.tdm-table tbody tr{background:#fff}
.tdm-table tbody td{
  padding:14px 12px;
  border-top:1px solid var(--tdm-line);
  border-bottom:1px solid var(--tdm-line);
  white-space:nowrap;
  font-weight:700;
  color:#253740;
}
.tdm-table tbody td:first-child{
  border-left:1px solid var(--tdm-line);
  border-top-left-radius:16px;
  border-bottom-left-radius:16px;
}
.tdm-table tbody td:last-child{
  border-right:1px solid var(--tdm-line);
  border-top-right-radius:16px;
  border-bottom-right-radius:16px;
}

.tdm-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid transparent;
}
.tdm-badge::before{content:"";width:9px;height:9px;border-radius:50%}
.tdm-status-presente{background:#e5efe7;color:#0d6b37;border-color:#bfd0c1}
.tdm-status-presente::before{background:#0d6b37}
.tdm-status-ausente{background:#fdecec;color:#a32828;border-color:#edc0c0}
.tdm-status-ausente::before{background:#a32828}
.tdm-status-justificada{background:#fff4e8;color:#975510;border-color:#f0cda4}
.tdm-status-justificada::before{background:#975510}
.tdm-status-pendiente{background:#edf3ff;color:#2252a7;border-color:#c8d6f3}
.tdm-status-pendiente::before{background:#2252a7}

@media (max-width:1024px){
  .tdm-cards-grid,.tdm-cards-grid.small-gap,.tdm-grid-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tdm-grid-2,.tdm-profile{grid-template-columns:1fr}
  .tdm-avatar{width:120px;height:120px;border-radius:22px}
}

@media (max-width:640px){
  .tdm-panel,.tdm-login-box{padding:18px;border-radius:22px}
  .tdm-login-box form{padding:18px;border-radius:18px}
  .tdm-panel-header{flex-direction:column}
  .tdm-cards-grid,.tdm-cards-grid.small-gap,.tdm-grid-fields{grid-template-columns:1fr}
  .tdm-tabs-nav{display:grid;grid-template-columns:1fr 1fr}
  .tdm-tab-btn{width:100%;justify-content:center}
  .tdm-table tbody td,.tdm-table thead th{font-size:13px}
}


/* Fuerza visual del panel y login para evitar que el theme sobrescriba colores */
.tdm-login-wrap,
.tdm-login-box,
.tdm-login-box *,
.tdm-panel,
.tdm-panel *{
  box-sizing:border-box;
}

.tdm-login-box,
.tdm-panel{
  background:linear-gradient(180deg,var(--tdm-bg) 0%, var(--tdm-bg-2) 100%) !important;
  color:var(--tdm-text) !important;
}

.tdm-login-box h2,
.tdm-login-box p,
.tdm-login-box label,
.tdm-login-box .tdm-muted,
.tdm-panel h2,
.tdm-panel h3,
.tdm-panel p,
.tdm-panel strong,
.tdm-panel span,
.tdm-panel td,
.tdm-panel th,
.tdm-panel div,
.tdm-panel a,
.tdm-panel button{
  color:inherit;
}

.tdm-login-box .login-username label,
.tdm-login-box .login-password label,
.tdm-login-box .login-remember label,
.tdm-login-box #loginform label,
.tdm-login-box #tdm-loginform label{
  color:#23343d !important;
}

.tdm-login-box form,
.tdm-login-box #loginform,
.tdm-login-box #tdm-loginform{
  background:rgba(255,255,255,.78) !important;
  border:1px solid var(--tdm-line) !important;
  border-radius:24px !important;
  box-shadow:none !important;
}

.tdm-login-box input[type=text],
.tdm-login-box input[type=password],
.tdm-login-box input[type=email],
.tdm-login-box input[type=search],
.tdm-login-box textarea{
  background:#fff !important;
  color:#14242f !important;
  border:1px solid var(--tdm-line-2) !important;
}

.tdm-login-box input[type=checkbox]{
  accent-color:var(--tdm-green);
}

.tdm-login-box input[type=submit],
.tdm-login-box button,
.tdm-login-box .button,
.tdm-btn,
.tdm-btn-outline,
.tdm-tab-btn,
button.tdm-tab-btn{
  appearance:none !important;
  -webkit-appearance:none !important;
  background:var(--tdm-green-soft) !important;
  color:var(--tdm-green) !important;
  border:1px solid #b6c9b9 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  text-shadow:none !important;
  font-weight:900 !important;
  opacity:1 !important;
}

.tdm-btn-outline{
  background:#fff !important;
  color:var(--tdm-text) !important;
}

.tdm-tab-btn.active,
button.tdm-tab-btn.active{
  background:var(--tdm-green) !important;
  color:#fff !important;
  border-color:var(--tdm-green) !important;
}

.tdm-login-box input[type=submit]:hover,
.tdm-login-box button:hover,
.tdm-btn:hover,
.tdm-btn-outline:hover,
.tdm-tab-btn:hover{
  background:#dce9de !important;
  color:var(--tdm-green) !important;
}

.tdm-tab-btn.active:hover{
  background:var(--tdm-green-2) !important;
  color:#fff !important;
}

.tdm-panel .tdm-card,
.tdm-panel .tdm-field,
.tdm-panel .tdm-mini-schedule__item,
.tdm-panel .tdm-table tbody tr,
.tdm-panel .tdm-note-box{
  background-color:#fff !important;
}

/* v1.6 - clases pendientes */
.tdm-card.tdm-pending-card{
  background:linear-gradient(180deg,#fff8ee 0%, #ffffff 100%);
  border-color:#f0cda4;
}
.tdm-card.tdm-pending-card::before{background:#975510}
.tdm-card.tdm-pending-card span{color:#975510}
.tdm-pending-detail{margin-bottom:18px}
@media (min-width:1200px){
  .tdm-cards-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
  .tdm-cards-grid.small-gap{grid-template-columns:repeat(5,minmax(0,1fr));}
}
