*{box-sizing:border-box}body{margin:0;background:#f8f5f7;color:#302333;font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}a{color:#743e64}a:hover{color:#4d2842}h1{font-size:clamp(1.9rem,4vw,2.6rem);margin:.15rem 0 .5rem;line-height:1.2}h2{font-size:1.25rem}.auth-card,.portal{max-width:650px;margin:5vh auto;background:white;border:1px solid #eadfe6;border-radius:22px;padding:clamp(22px,4vw,48px);box-shadow:0 12px 40px #4b2d4310}.portal{max-width:1050px}nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:20px;margin-bottom:30px;border-bottom:1px solid #f0e5ed}nav form{margin:0}.portal-brand{display:flex;align-items:center;gap:10px;font-weight:750;text-decoration:none}.brand-mark{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#743e64;color:white;font-weight:750;margin-bottom:13px}.portal-brand .brand-mark{margin:0;width:39px;height:39px;border-radius:12px}.eyebrow{letter-spacing:.13em;text-transform:uppercase;font-size:.73rem;font-weight:750;color:#965f83}.muted{color:#776b76}.smaller{font-size:.87rem}.subtle-link{text-decoration:none;font-size:.91rem}.text-center{text-align:center}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}form{display:grid;gap:15px;margin:24px 0}label{font-weight:600;display:grid;gap:6px;font-size:.92rem}input:not([type=checkbox]){padding:12px;border:1px solid #d5c4d0;border-radius:10px;font:inherit;width:100%;background:white}input:focus{outline:2px solid #c79eb9;outline-offset:1px}.check{display:flex;font-size:.89rem;font-weight:400;align-items:center;gap:8px}.check input{flex:none}button,.action{display:inline-block;background:#743e64;color:white;border:0;border-radius:11px;padding:12px 20px;font:inherit;font-weight:650;cursor:pointer;text-decoration:none}button:hover,.action:hover{background:#5b2e4d;color:white}.light-button{background:#f7eff4;color:#633752;padding:9px 14px}.light-button:hover{background:#eedce7;color:#633752}.alert{padding:12px;border-radius:9px;background:#ffebeb;color:#8b1d1d}section{margin-top:36px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:left;padding:13px;border-bottom:1px solid #eee}th{background:#faf6f9;color:#6c5265;font-size:.8rem}td{font-size:.9rem}.status{display:inline-block;padding:4px 10px;background:#f4eaf0;border-radius:30px;font-size:.82rem;white-space:nowrap}.status.confirmada,.status.finalizada{background:#e5f6ee;color:#226345}.status.cancelada,.status.no_asistio{background:#fbe5e8;color:#962e41}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.metric-grid>div{padding:17px;background:#fbf6f9;border:1px solid #efe3ea;border-radius:14px}.metric-grid span{display:block;color:#806e79;font-size:.8rem}.metric-grid strong{display:block;font-size:1.6rem;margin-top:4px}.empty{padding:28px;background:#fbf7fa;border:1px dashed #e3d0db;border-radius:14px;color:#776b76}@media(max-width:600px){.auth-card,.portal{margin:0;min-height:100vh;border:0;border-radius:0;padding:23px}.form-row{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid>div:last-child{grid-column:span 2}}