.perfil-modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:16px;background:#08294c8c;backdrop-filter:blur(4px)}
.perfil-modal.show{display:flex}
body.modal-open{overflow:hidden}
.perfil-card,.informe-card{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:26px;padding:24px;box-shadow:var(--shadow);color:var(--ink)}
.informe-card{width:min(900px,100%)}
.perfil-card h2{margin:0 0 16px;font-size:24px;color:var(--navy)}
.perfil-card h3{margin:18px 0 8px;font-size:16px;color:var(--muted)}
.perfil-list{display:grid;gap:10px}
.perfil-item{display:flex;gap:8px;align-items:stretch}
.perfil-pick{flex:1;display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left;border:2px solid var(--line);border-radius:18px;background:#fff;padding:10px 14px;cursor:pointer;color:var(--ink)}
.perfil-pick span{grid-row:1/3;font-size:38px;text-align:center}
.perfil-pick b{font-size:19px}
.perfil-pick small{color:var(--muted)}
.perfil-item.active .perfil-pick{border-color:var(--blue);background:#f2f7ff}
.perfil-pick:hover{border-color:var(--blue)}
.perfil-remove{border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--muted);padding:0 12px;cursor:pointer;font-weight:800}
.perfil-remove.confirm{background:var(--pink);border-color:var(--pink);color:#fff;font-size:13px}
.perfil-form{display:grid;gap:10px}
.perfil-form input[type=text],.perfil-form #perfilName{border:2px solid var(--line);border-radius:14px;padding:12px 14px;font-size:18px;color:var(--ink)}
.perfil-form #perfilName:focus{outline:none;border-color:var(--blue)}
.perfil-icons{display:flex;flex-wrap:wrap;gap:6px}
.perfil-icons input{position:absolute;opacity:0;pointer-events:none}
.perfil-icons span{display:grid;place-items:center;width:44px;height:44px;border:2px solid var(--line);border-radius:14px;font-size:24px;cursor:pointer}
.perfil-icons input:checked+span{border-color:var(--blue);background:#eaf2ff}
.perfil-icons input:focus-visible+span{outline:3px solid var(--blue)}
.perfil-form button[type=submit],.perfil-actions button,.informe-actions button{border:0;border-radius:14px;padding:12px 16px;font-weight:900;cursor:pointer;background:var(--blue);color:#fff}
.perfil-actions,.informe-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.perfil-actions button:last-child,.informe-actions button:last-child{background:#eef3f8;color:var(--ink)}
.profile-btn{white-space:nowrap}
.perfil-voz{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.perfil-voz legend{font-weight:900;color:var(--muted);margin-bottom:6px}
.perfil-voz input{position:absolute;opacity:0;pointer-events:none}
.perfil-voz label span,.voz-pick,#probarVoz{display:inline-block;min-height:44px;padding:10px 14px;border:2px solid var(--line);border-radius:14px;background:#fff;font-weight:900;color:var(--ink);cursor:pointer}
.perfil-voz input:checked+span,.voz-pick.on{border-color:var(--blue);background:#eaf2ff;color:var(--blue)}
.perfil-voz input:focus-visible+span{outline:3px solid var(--blue)}
.perfil-voz.current{display:grid;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.perfil-voz.current div{display:flex;flex-wrap:wrap;gap:8px}
.informe-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.informe-tabs button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 12px;cursor:pointer;font-weight:800;color:var(--ink)}
.informe-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}
.informe-head small{color:var(--muted);font-weight:800;letter-spacing:.04em}
.informe-head h2{margin:4px 0 14px;font-size:28px;color:var(--navy)}
.informe-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.informe-stats div{border:1px solid var(--line);border-radius:18px;padding:12px;text-align:center}
.informe-stats b{display:block;font-size:28px;color:var(--blue)}
.informe-stats b i{font-style:normal;font-size:16px;color:var(--muted)}
.informe-stats span{color:var(--muted);font-size:14px}
.informe-next{margin:14px 0;padding:12px 16px;border-radius:18px;background:#fff7e8;border:1px solid #ffe2b3}
.informe-next ul{margin:6px 0 0;padding-left:20px}
.informe-table{width:100%;border-collapse:collapse;font-size:14px}
.informe-table th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;padding:8px 6px;border-bottom:2px solid var(--line)}
.informe-table td{padding:9px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.informe-table td:first-child{white-space:nowrap;font-weight:800}
.informe-table td:nth-child(2){min-width:120px}
.informe-bar{height:8px;border-radius:9px;background:#edf2f7;overflow:hidden;margin-bottom:4px}
.informe-bar i{display:block;height:100%;background:var(--mint)}
.informe-table small,.informe-note{color:var(--muted)}
.informe-note{font-size:13px;margin:12px 0 0}
@media(max-width:640px){.informe-card,.perfil-card{padding:18px}.informe-table thead{display:none}.informe-table tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.informe-table td{display:block;border:0;padding:3px 0}.informe-table td:nth-child(3):before{content:'Domina: ';font-weight:800}.informe-table td:nth-child(4):before{content:'Para reforzar: ';font-weight:800}}
@media print{body.printing-report>*:not(#informe){display:none!important}body.printing-report{background:#fff}body.printing-report #informe{position:static;display:block;background:none;padding:0;backdrop-filter:none}body.printing-report .informe-card{width:100%;max-height:none;overflow:visible;box-shadow:none;padding:0}body.printing-report .informe-actions,body.printing-report .informe-tabs{display:none}}
.curso-badge{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:99px;background:#eef5ff;color:#2166ee;font-weight:900;font-size:14px}
