/* AnMi Gym Manager - Portal del cliente (tema oscuro de marca) */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

.agm-portal{
	--bg:#000000; --surface:#101010; --surface-2:#1a1a1a; --border:#2c2c2e;
	--text:#f5f5f5; --dim:#9a9a9a; --cyan:#44BECF; --lime:#8BC53F; --red:#e15b52;
	--mono: ui-monospace, SFMono-Regular, Menlo, monospace;
	width:100vw; margin-left:calc(50% - 50vw);
	background:var(--bg); color:var(--text);
	font-family:'Inter', sans-serif;
	padding:56px 20px; min-height:100vh;
}
/* Enlace de pie del portal/registro */
.agm-portal .agm-portal-foot{ text-align:center; margin-top:26px; font-size:13px; color:var(--dim); }
.agm-portal .agm-portal-foot a{ color:var(--cyan); text-decoration:none; }
.agm-portal *{ box-sizing:border-box; }
.agm-portal-inner{ max-width:1000px; margin:0 auto; }

.agm-portal h2, .agm-portal h3{ font-family:'Oswald', sans-serif; letter-spacing:.4px; }

.agm-portal-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:26px; flex-wrap:wrap; }
.agm-portal-head h2{ font-size:30px; font-weight:700; text-transform:uppercase; margin:0 0 2px; }
.agm-portal-head .agm-sub{ color:var(--dim); font-size:13px; font-family:'Inter', sans-serif; }

.agm-portal-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
@media (max-width:700px){ .agm-portal-grid{ grid-template-columns:1fr; } }

.agm-portal-card{
	background:var(--surface); border:1px solid var(--border);
	border-radius:12px; padding:22px 24px; margin-bottom:16px;
}
.agm-portal-card h2{ font-size:20px; text-transform:uppercase; margin:0 0 14px; }
.agm-portal-card h3{ font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--cyan); margin:0 0 16px; }
.agm-portal-card p{ color:var(--dim); font-size:14px; line-height:1.55; }
.agm-portal-card a{ color:var(--cyan); }
/* Tarjeta única (login / sin vínculo) centrada y más angosta */
.agm-portal-inner > .agm-portal-card:only-child{ max-width:440px; margin:0 auto; }

.agm-kv{
	display:flex; justify-content:space-between; align-items:center;
	padding:10px 0; border-bottom:1px solid var(--border); font-size:14px;
}
.agm-kv:last-child{ border-bottom:none; }
.agm-kv span{ color:var(--dim); }
.agm-kv strong{ font-family:'Oswald', sans-serif; font-weight:600; }

.agm-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:6px;
	background:var(--surface-2); border:1px solid var(--border); color:var(--text);
	padding:11px 20px; border-radius:8px; font-family:'Inter', sans-serif;
	font-size:14px; font-weight:600; cursor:pointer; text-decoration:none;
}
.agm-btn:hover{ filter:brightness(1.18); }
.agm-btn-primary{ background:linear-gradient(90deg, var(--cyan), var(--lime)); border:none; color:#00120a; }
.agm-btn-block{ width:100%; }

.agm-badge{
	display:inline-block; padding:3px 11px; border-radius:20px;
	font-size:11px; font-weight:600; letter-spacing:.4px; text-transform:uppercase;
}
.agm-badge-green{ background:rgba(139,197,63,.18); color:var(--lime); }
.agm-badge-gray { background:rgba(154,154,154,.15); color:var(--dim); }
.agm-badge-blue { background:rgba(68,190,207,.16); color:var(--cyan); }
.agm-badge-amber{ background:rgba(225,91,82,.18); color:var(--red); }

.agm-table{ width:100%; border-collapse:collapse; font-size:14px; }
.agm-table thead th{
	text-align:left; color:var(--dim); font-size:10px; font-family:'Oswald', sans-serif;
	letter-spacing:1px; text-transform:uppercase; padding:0 10px 10px; border-bottom:1px solid var(--border);
}
.agm-table tbody td{ padding:11px 10px; border-bottom:1px solid var(--border); }
.agm-table tbody tr:last-child td{ border-bottom:none; }

.agm-list{ list-style:none; margin:0; padding:0; }
.agm-list li{ padding:10px 0; border-bottom:1px solid var(--border); font-size:14px; font-family:var(--mono); color:var(--dim); }
.agm-list li:last-child{ border-bottom:none; }

.agm-muted{ color:var(--dim); }
.agm-alert{
	background:rgba(139,197,63,.12); border:1px solid var(--lime); color:var(--lime);
	padding:12px 16px; border-radius:8px; margin-bottom:18px; font-weight:600; font-size:14px;
}

/* Formulario de login del portal */
.agm-portal .login-username label,
.agm-portal .login-password label{
	display:block; font-weight:600; margin:12px 0 5px; font-size:13px; color:var(--dim);
}
.agm-portal .login-username input,
.agm-portal .login-password input{
	width:100%; background:var(--surface-2); border:1px solid var(--border); color:var(--text);
	border-radius:7px; padding:10px 12px; font-size:15px;
}
.agm-portal .login-submit input{
	background:linear-gradient(90deg, var(--cyan), var(--lime)); border:none; color:#00120a;
	padding:11px 22px; border-radius:8px; font-weight:700; cursor:pointer; margin-top:14px;
}
.agm-portal .login-remember{ font-size:13px; color:var(--dim); margin-top:10px; }

/* Formulario de registro público */
.agm-portal .agm-lbl{ display:block; font-size:12px; color:var(--dim); margin:0 0 5px; text-transform:uppercase; letter-spacing:.4px; }
.agm-portal .agm-inp{
	width:100%; background:var(--surface-2); border:1px solid var(--border); color:var(--text);
	border-radius:7px; padding:10px 12px; font-size:15px; font-family:'Inter', sans-serif;
}
.agm-portal .agm-inp:focus{ outline:2px solid var(--lime); outline-offset:1px; }
