*,*::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 */
.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}
/* NAV */
.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-title{font-size:14px;font-weight:600}
.nav-user{font-size:12px;color:var(--text2);margin-left:auto;display:flex;align-items:center;gap:8px}
.nav-user-name{font-weight:500;color:var(--text)}
.nav-logout{font-size:11px;color:var(--text2);cursor:pointer;text-decoration:underline}
/* WRAP */
.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-new{background:var(--blue-l);color:var(--blue)}.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)}
.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)}
.fr-table{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--white)}
.fr-thead{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;background:var(--g50);border-bottom:1px solid var(--border)}
.fr-th{padding:9px 10px;font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--border)}
.fr-th:last-child{border-right:none}
.fr-row{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;border-bottom:1px solid var(--border);transition:background .1s}
.fr-row:last-child{border-bottom:none}.fr-row:hover{background:var(--g50)}
.fr-area{padding:11px 10px;font-size:12px;font-weight:500;border-right:1px solid var(--border);display:flex;align-items:center}
.fr-cell{padding:9px;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.fr-cell:last-child{border-right:none}
.fr-radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--g200);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}
.fr-radio:hover{border-color:var(--g400)}
.fr-radio.ok{border-color:var(--verde);background:var(--verde)}.fr-radio.ok::after,.fr-radio.friction::after,.fr-radio.na::after{content:'';width:6px;height:6px;border-radius:50%;background:#fff}
.fr-radio.friction{border-color:var(--rojo);background:var(--rojo)}.fr-radio.na{border-color:var(--g400);background:var(--g200)}.fr-radio.na::after{background:var(--g400)}
.opts{display:flex;flex-direction:column;gap:5px}
.opt{border:1.5px solid var(--border);border-radius:var(--rsm);padding:11px 13px;cursor:pointer;display:flex;gap:9px;align-items:center;transition:all .15s;background:var(--white);font-size:13px}
.opt:hover{border-color:var(--g400)}.opt.sel{border-color:var(--rojo);background:var(--rojo-l)}
.opt-dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--g200);flex-shrink:0;transition:all .15s}
.opt.sel .opt-dot{border-color:var(--rojo);background:var(--rojo)}.opt-txt{font-weight:500}
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-error{background:var(--rojo-l);color:var(--rojo);border-left:3px solid var(--rojo);display:none}
.loading{text-align:center;padding:3rem;color:var(--text2);font-size:13px}
.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}}
