/**
 * Estilos frontend — Training Management Pro.
 * Pensado para integrarse con Astra / Elementor sin pisar el tema.
 */
.tmp-dash,
.tmp-calendar,
.tmp-routine-block {
	--tmp-primary: #ef510a;
	--tmp-primary-dark: #c43f06;
	--tmp-accent: #ef510a;
	--tmp-surface: #ffffff;
	--tmp-bg: #f6f7fb;
	--tmp-border: #e5e7eb;
	--tmp-text: #111111;
	--tmp-muted: #6b7280;
	--tmp-radius: 12px;
	--tmp-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
	color: var(--tmp-text);
}

.tmp-dash__header {
	margin-bottom: 20px;
}
.tmp-dash__header h2 {
	margin: 0 0 4px;
}
.tmp-dash__header p {
	color: var(--tmp-muted);
	margin: 0;
}
.tmp-dash__section {
	background: var(--tmp-surface);
	border: 1px solid var(--tmp-border);
	border-radius: var(--tmp-radius);
	box-shadow: var(--tmp-shadow);
	padding: 20px;
	margin-bottom: 20px;
}
.tmp-dash__section h3 {
	margin-top: 0;
}
.tmp-empty {
	color: var(--tmp-muted);
	font-style: italic;
}

/* Notices */
.tmp-notice {
	padding: 12px 16px;
	border-radius: 8px;
	background: #eff6ff;
	border: 1px solid #bfdbfe;
}
.tmp-notice--warning {
	background: #fffbeb;
	border-color: #fde68a;
	color: #92400e;
}

/* Lista de grupos */
.tmp-grouplist {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}
.tmp-grouplist__item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--tmp-bg);
	border: 1px solid var(--tmp-border);
	border-radius: 10px;
	padding: 12px 16px;
}
.tmp-badge {
	background: var(--tmp-primary);
	color: #fff;
	border-radius: 999px;
	padding: 2px 10px;
	font-size: 12px;
}

/* Rutina */
.tmp-routine {
	border: 1px solid var(--tmp-border);
	border-radius: 10px;
	padding: 16px;
	margin-bottom: 16px;
}
.tmp-routine__day h5 {
	margin: 12px 0 6px;
	color: var(--tmp-primary-dark);
}
.tmp-routine__day ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tmp-routine__item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px solid var(--tmp-border);
}
.tmp-routine__name {
	font-weight: 600;
	flex: 1;
	min-width: 160px;
}
.tmp-routine__meta {
	color: var(--tmp-muted);
	font-size: 13px;
}
.tmp-log-btn {
	background: var(--tmp-accent);
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 6px 12px;
	cursor: pointer;
	font-size: 13px;
}
.tmp-log-btn:hover {
	filter: brightness(0.95);
}

/* Estadísticas */
.tmp-stats__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 12px;
	margin-bottom: 16px;
}
.tmp-stat {
	background: var(--tmp-bg);
	border: 1px solid var(--tmp-border);
	border-radius: 10px;
	padding: 14px;
	text-align: center;
}
.tmp-stat__value {
	display: block;
	font-size: 22px;
	font-weight: 700;
	color: var(--tmp-primary);
}
.tmp-stat__label {
	font-size: 12px;
	color: var(--tmp-muted);
}
.tmp-spark {
	display: flex;
	align-items: flex-end;
	gap: 3px;
	height: 80px;
	padding: 8px;
	background: var(--tmp-bg);
	border-radius: 10px;
}
.tmp-spark__bar {
	flex: 1;
	min-width: 4px;
	background: var(--tmp-primary);
	border-radius: 3px 3px 0 0;
	min-height: 3px;
}

/* Calendario */
.tmp-cal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}
.tmp-cal__title {
	font-weight: 700;
	text-transform: capitalize;
}
.tmp-cal__prev,
.tmp-cal__next {
	background: var(--tmp-surface);
	border: 1px solid var(--tmp-border);
	border-radius: 8px;
	width: 36px;
	height: 36px;
	cursor: pointer;
	font-size: 18px;
}
.tmp-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 6px;
}
.tmp-cal__dow {
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	color: var(--tmp-muted);
}
.tmp-cal__cell {
	min-height: 70px;
	background: var(--tmp-bg);
	border: 1px solid var(--tmp-border);
	border-radius: 8px;
	padding: 6px;
	font-size: 12px;
}
.tmp-cal__cell--empty {
	background: transparent;
	border: none;
}
.tmp-cal__cell.has-events {
	border-color: var(--tmp-primary);
}
.tmp-cal__num {
	font-weight: 600;
	color: var(--tmp-muted);
}
.tmp-cal__event {
	display: block;
	background: var(--tmp-primary);
	color: #fff;
	border-radius: 5px;
	padding: 2px 5px;
	margin-top: 3px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tmp-cal__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.tmp-cal__list-day {
	background: var(--tmp-bg);
	border: 1px solid var(--tmp-border);
	border-radius: 8px;
	padding: 10px 14px;
}
.tmp-cal__rest {
	color: var(--tmp-muted);
	font-style: italic;
}

/* Mensajería */
.tmp-msg-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}
.tmp-msg {
	border: 1px solid var(--tmp-border);
	border-radius: 8px;
	padding: 10px 14px;
}
.tmp-msg.is-unread {
	border-left: 4px solid var(--tmp-primary);
	background: #eff6ff;
}
.tmp-msg time {
	font-size: 11px;
	color: var(--tmp-muted);
}

/* Modal de registro */
.tmp-log-modal {
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 99999;
	padding: 16px;
}
.tmp-log-modal[hidden] {
	display: none;
}
.tmp-log-modal__box {
	background: #fff;
	border-radius: var(--tmp-radius);
	padding: 22px;
	width: 100%;
	max-width: 420px;
	max-height: 90vh;
	overflow-y: auto;
	display: grid;
	gap: 10px;
}
.tmp-log-modal__box label {
	display: block;
	font-size: 13px;
}
.tmp-log-modal__box input[type="number"],
.tmp-log-modal__box textarea {
	width: 100%;
}
.tmp-log-modal__actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 6px;
}
.tmp-log-modal__actions button {
	border-radius: 8px;
	padding: 8px 16px;
	cursor: pointer;
	border: 1px solid var(--tmp-border);
}
.tmp-log-save {
	background: var(--tmp-primary);
	color: #fff;
	border-color: var(--tmp-primary);
}

/* Accesibilidad: foco visible */
.tmp-dash :focus-visible,
.tmp-calendar :focus-visible,
.tmp-log-modal :focus-visible {
	outline: 3px solid rgba(37, 99, 235, 0.5);
	outline-offset: 2px;
}

/* ============================================================
   Panel frontend C3 (profesor / alumno)
   ============================================================ */
.tmp-panel-wrap{
	--c3-green:#ef510a;
	--c3-dark:#0f2e22;
	--c3-ink:#1a1a1a;
	--c3-muted:#6b7280;
	--c3-line:#e5e7eb;
	--c3-bg:#f7f8f7;
	max-width:960px;margin:0 auto;padding:16px;
	color:var(--c3-ink);
	font-size:16px;line-height:1.5;
}
.tmp-panel-header{
	display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
	border-bottom:2px solid var(--c3-green);padding-bottom:12px;margin-bottom:20px;
}
.tmp-panel-header h1{margin:0;font-size:1.5rem;color:var(--c3-dark);}
.tmp-panel-nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.tmp-navlink{
	text-decoration:none;color:var(--c3-dark);padding:6px 12px;border-radius:999px;font-size:.95rem;
}
.tmp-navlink:hover{background:var(--c3-bg);}
.tmp-navlink.is-active{background:var(--c3-green);color:#fff;}
.tmp-hello{color:var(--c3-muted);}

.tmp-cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.tmp-card{
	flex:1;min-width:140px;background:#fff;border:1px solid var(--c3-line);border-radius:12px;
	padding:18px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px;
	box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.tmp-card-num{font-size:2rem;font-weight:800;color:var(--c3-green);line-height:1;}
.tmp-card-label{color:var(--c3-muted);font-size:.9rem;}

.tmp-card-box{
	background:#fff;border:1px solid var(--c3-line);border-radius:12px;padding:20px;margin-bottom:18px;
	box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.tmp-card-box h2{margin:0 0 12px;font-size:1.15rem;color:var(--c3-dark);}
.tmp-card-box h3{margin:0 0 10px;font-size:1.05rem;color:var(--c3-dark);}

.tmp-form .tmp-field{margin-bottom:14px;}
.tmp-field label{display:block;font-weight:600;margin-bottom:4px;font-size:.9rem;}
.tmp-field input[type=text],.tmp-field input[type=number],.tmp-field input[type=url],
.tmp-field select,.tmp-field textarea,
.tmp-builder input[type=text],.tmp-builder input[type=number],.tmp-builder select{
	width:100%;max-width:420px;padding:10px 12px;border:1px solid var(--c3-line);border-radius:8px;
	font-size:1rem;box-sizing:border-box;background:#fff;
}
.tmp-field--row{display:flex;gap:16px;flex-wrap:wrap;}
.tmp-field--row>div{flex:1;min-width:120px;}

.tmp-btn{
	display:inline-block;background:#eef2ef;color:var(--c3-dark);border:none;border-radius:8px;
	padding:10px 18px;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;
}
.tmp-btn:hover{background:#ececec;}
.tmp-btn--primary{background:var(--c3-green);color:#fff;}
.tmp-btn--primary:hover{background:#c43f06;}
.tmp-btn--small{padding:6px 12px;font-size:.85rem;}

.tmp-list{list-style:none;margin:0;padding:0;}
.tmp-list-item{
	display:flex;align-items:center;justify-content:space-between;gap:12px;
	padding:12px 0;border-top:1px solid var(--c3-line);
}
.tmp-list-item:first-child{border-top:none;}
.tmp-muted{color:var(--c3-muted);}

.tmp-quick{display:flex;gap:10px;flex-wrap:wrap;}

.tmp-badge{padding:3px 10px;border-radius:999px;font-size:.8rem;text-transform:capitalize;background:#eef2ef;color:var(--c3-dark);}
.tmp-badge--active{background:#fde3d5;color:#b0400a;}
.tmp-badge--completed{background:#e6e8eb;color:#555;}

/* Programa del alumno */
.tmp-program-head{margin-bottom:16px;}
.tmp-program-head h2{margin:0;color:var(--c3-dark);}
.tmp-block-title{border-left:4px solid var(--c3-green);padding-left:10px;}
.tmp-ex-list{list-style:none;margin:0;padding:0;}
.tmp-ex-item{
	display:flex;align-items:center;justify-content:space-between;gap:12px;
	padding:12px 0;border-top:1px solid var(--c3-line);
}
.tmp-ex-item:first-child{border-top:none;}
.tmp-ex-main{display:flex;flex-direction:column;gap:2px;}
.tmp-ex-name{font-weight:600;}
.tmp-ex-presc{color:var(--c3-green);font-weight:700;font-size:.95rem;}
.tmp-ex-video{white-space:nowrap;font-size:.9rem;text-decoration:none;color:var(--c3-green);font-weight:600;}
.tmp-check{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-weight:600;}

/* Builder en frontend */
.tmp-builder .tmp-level{background:#fff;}
.tmp-builder-actions{position:sticky;bottom:0;background:#fff;padding:14px 0;border-top:1px solid var(--c3-line);}

@media(max-width:600px){
	.tmp-panel-header{flex-direction:column;align-items:flex-start;}
	.tmp-field--row{flex-direction:column;gap:12px;}
}

/* Fase 4: formularios, evolución, check por ejercicio */
.tmp-opt{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:1rem;cursor:pointer;}
.tmp-opt input{width:18px;height:18px;}
.tmp-question{margin:0 0 10px;font-size:1.05rem;}
.tmp-req{color:#c0392b;}
.tmp-ex-check{display:flex;align-items:center;gap:12px;cursor:pointer;flex:1;}
.tmp-ex-check input{width:22px;height:22px;flex:none;accent-color:var(--c3-green);}
.tmp-table{width:100%;border-collapse:collapse;font-size:.92rem;}
.tmp-table th,.tmp-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--c3-line);}
.tmp-table th{color:var(--c3-muted);font-weight:600;}
.tmp-response{border:1px solid var(--c3-line);border-radius:8px;padding:10px 14px;margin-bottom:10px;}
.tmp-response summary{cursor:pointer;}
.tmp-qa{list-style:none;margin:10px 0 0;padding:0;}
.tmp-qa li{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-top:1px dashed var(--c3-line);}
.tmp-qa .tmp-q{color:var(--c3-muted);font-size:.85rem;}
.tmp-qa .tmp-a{font-weight:600;}

/* Escala 1-10 en formularios */
.tmp-scale{display:flex;flex-wrap:wrap;gap:6px;}
.tmp-scale-opt{position:relative;}
.tmp-scale-opt input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;margin:0;cursor:pointer;}
.tmp-scale-opt span{
	display:flex;align-items:center;justify-content:center;width:40px;height:40px;
	border:1px solid var(--c3-line);border-radius:8px;font-weight:600;color:var(--c3-dark);background:#fff;
}
.tmp-scale-opt input:checked + span{background:var(--c3-green);color:#fff;border-color:var(--c3-green);}

/* Aviso de éxito */
.tmp-notice--success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46;}

/* Autenticación (login / registro / recuperar) */
.tmp-auth{max-width:440px;}
.tmp-auth-card h1{font-size:1.4rem;color:var(--c3-dark);margin:0 0 12px;}
.tmp-btn--block{display:block;width:100%;text-align:center;margin-top:6px;}
.tmp-auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:14px;font-size:.9rem;}
.tmp-auth-links a{color:var(--c3-green);text-decoration:none;}
.tmp-auth-links a:hover{text-decoration:underline;}
