*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--rojo:#D22B2B;--rojo-l:#FAECE7;--rojo-b:#F09595;--verde:#3B6D11;--verde-l:#EAF3DE;--verde-b:#C0DD97;--amber:#854F0B;--amber-l:#FAEEDA;--amber-b:#FAC775;--blue:#185FA5;--blue-l:#E6F1FB;--g50:#F7F7F5;--g100:#EFEFEC;--g200:#DDDDD8;--g400:#9A9A94;--text:#1C1C1A;--text2:#666660;--border:#E0E0DA;--white:#FFFFFF;--r:10px;--rsm:6px;--shadow:0 1px 3px rgba(0,0,0,0.07)}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;background:var(--g50);color:var(--text);font-size:14px;line-height:1.6;min-height:100vh}
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--g50)}
.auth-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:2.5rem;text-align:center;max-width:380px;width:100%;margin:1rem;box-shadow:var(--shadow)}
.auth-logo{width:48px;height:48px;background:var(--rojo);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700;margin:0 auto 1.25rem}
.auth-card h1{font-size:20px;font-weight:700;margin-bottom:6px}
.auth-card p{font-size:13px;color:var(--text2);margin-bottom:1.5rem;line-height:1.5}
.auth-btn{width:100%;background:var(--rojo);color:#fff;border:none;border-radius:var(--rsm);padding:12px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:8px}
.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}
.auth-error{background:var(--rojo-l);color:var(--rojo);border-radius:var(--rsm);padding:10px;font-size:12px;margin-top:12px;display:none}
.spinner{width:32px;height:32px;border:3px solid var(--g200);border-top-color:var(--rojo);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}
@keyframes spin{to{transform:rotate(360deg)}}
.nav{background:var(--white);border-bottom:1px solid var(--border);padding:0 1.5rem;display:flex;align-items:center;gap:12px;height:52px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}
.nav-icon{width:28px;height:28px;background:var(--rojo);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700}
.nav-user{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px}
.nav-user-name{font-weight:500}
.nav-logout{color:var(--text2);cursor:pointer;text-decoration:underline}
.wrap{max-width:640px;margin:0 auto;padding:2rem 1.25rem 4rem}
.form-head{margin-bottom:1.75rem}
.form-badge{display:inline-flex;align-items:center;background:var(--rojo-l);color:var(--rojo);font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;margin-bottom:10px}
.form-head h1{font-size:22px;font-weight:700;margin-bottom:5px}
.form-head p{font-size:13px;color:var(--text2);line-height:1.5}
.progress{height:3px;background:var(--g100);border-radius:2px;margin-bottom:1.75rem;overflow:hidden}
.progress-fill{height:100%;background:var(--rojo);border-radius:2px;transition:width .35s ease}
.step{display:none}.step.active{display:block}
.step-lbl{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.25rem}
.q{margin-bottom:1.75rem}
.q-title{font-size:15px;font-weight:600;margin-bottom:4px;line-height:1.4}
.q-hint{font-size:12px;color:var(--text2);margin-bottom:10px;line-height:1.5}
.q-tag{display:inline-block;font-size:10px;font-weight:600;padding:1px 7px;border-radius:10px;margin-left:5px;vertical-align:middle}
.tag-key{background:var(--rojo-l);color:var(--rojo)}.tag-opt{background:var(--g100);color:var(--text2)}
.input-group{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.input-lbl{font-size:12px;font-weight:500;color:var(--text2)}
select{width:100%;border:1px solid var(--border);border-radius:var(--rsm);padding:9px 12px;font-size:14px;color:var(--text);background:var(--white);outline:none;transition:border-color .15s;font-family:inherit}
select:focus{border-color:var(--rojo)}
input[readonly]{width:100%;border:1px solid var(--border);border-radius:var(--rsm);padding:9px 12px;font-size:14px;color:var(--text);background:var(--g50,#f8f8f7);outline:none;font-family:inherit;cursor:default}
input[readonly]::placeholder{color:var(--text2)}
.user-id-bar{background:var(--white);border:1px solid var(--border);border-radius:var(--rsm);padding:10px 14px;margin-bottom:1.25rem;font-size:13px;display:flex;gap:8px;align-items:center}
.user-id-label{color:var(--text2);font-size:12px}
.user-id-val{font-weight:600}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.level-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.lv{border:1.5px solid var(--border);border-radius:var(--r);padding:12px;cursor:pointer;transition:all .15s;background:var(--white)}
.lv:hover{border-color:var(--g400);box-shadow:var(--shadow)}
.lv.sel-dev{border-color:var(--rojo-b);background:var(--rojo-l)}.lv.sel-cumple{border-color:var(--amber-b);background:var(--amber-l)}.lv.sel-destaca{border-color:var(--verde-b);background:var(--verde-l)}
.lv-dot{width:8px;height:8px;border-radius:50%;background:var(--g200);margin-bottom:7px;transition:background .15s}
.sel-dev .lv-dot{background:var(--rojo)}.sel-cumple .lv-dot{background:var(--amber)}.sel-destaca .lv-dot{background:var(--verde)}
.lv-name{font-size:12px;font-weight:600;margin-bottom:3px}.lv-desc{font-size:11px;color:var(--text2);line-height:1.35}
.comp-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.comp{border:1.5px solid var(--border);border-radius:var(--rsm);padding:9px 10px;cursor:pointer;display:flex;gap:8px;align-items:flex-start;transition:all .15s;background:var(--white)}
.comp:hover{border-color:var(--g400)}
.comp.sel-fort{border-color:var(--verde-b);background:var(--verde-l)}.comp.sel-mej{border-color:var(--rojo-b);background:var(--rojo-l)}
.comp-chk{width:15px;height:15px;border:1.5px solid var(--g200);border-radius:3px;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.sel-fort .comp-chk{background:var(--verde);border-color:var(--verde)}.sel-mej .comp-chk{background:var(--rojo);border-color:var(--rojo)}
.comp-chk svg{display:none}.sel-fort .comp-chk svg,.sel-mej .comp-chk svg{display:block}
.comp-name{font-size:12px;font-weight:600;margin-bottom:1px}.comp-desc{font-size:11px;color:var(--text2);line-height:1.3}
.counter{font-size:12px;color:var(--text2);margin-top:7px}.counter span{font-weight:600;color:var(--text)}
textarea{width:100%;border:1px solid var(--border);border-radius:var(--rsm);padding:10px 12px;font-size:13px;color:var(--text);background:var(--white);resize:vertical;min-height:90px;font-family:inherit;outline:none;transition:border-color .15s;line-height:1.5}
textarea:focus{border-color:var(--rojo)}
.btn-row{display:flex;gap:9px;margin-top:1.75rem}
.btn-p{background:var(--rojo);color:#fff;border:none;border-radius:var(--rsm);padding:11px 24px;font-size:14px;font-weight:600;cursor:pointer;flex:1;transition:opacity .15s;font-family:inherit}
.btn-p:hover{opacity:.9}.btn-p:disabled{opacity:.45;cursor:not-allowed}
.btn-s{background:var(--white);color:var(--text);border:1px solid var(--border);border-radius:var(--rsm);padding:11px 18px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}
.btn-s:hover{border-color:var(--g400)}
.alert{border-radius:var(--rsm);padding:10px 13px;font-size:12px;line-height:1.55;margin-bottom:12px}
.alert-info{background:var(--blue-l);color:var(--blue);border-left:3px solid var(--blue)}
.alert-warn{background:var(--amber-l);color:var(--amber);border-left:3px solid var(--amber)}
.alert-error{background:var(--rojo-l);color:var(--rojo);border-left:3px solid var(--rojo);display:none}
.success{text-align:center;padding:3.5rem 1rem}
.success-icon{width:60px;height:60px;background:var(--verde-l);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-size:26px}
.success h2{font-size:20px;font-weight:700;margin-bottom:7px}
.success p{color:var(--text2);font-size:13px;line-height:1.6}
@media(max-width:540px){.level-grid,.comp-grid,.row2{grid-template-columns:1fr}}
