*,*::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}
.access-denied{min-height:100vh;display:flex;align-items:center;justify-content:center}
.denied-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:2rem;text-align:center;max-width:360px;margin:1rem}
.denied-card h2{font-size:18px;font-weight:700;color:var(--rojo);margin-bottom:8px}
.denied-card p{font-size:13px;color:var(--text2);line-height:1.5}
/* 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-user{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px}
.nav-user-name{font-weight:500}
.nav-saved{background:var(--verde-l);color:var(--verde);font-weight:600;padding:3px 10px;border-radius:20px;display:none}
.nav-saved.visible{display:inline}
.nav-logout{color:var(--text2);cursor:pointer;text-decoration:underline}
/* LAYOUT */
.layout{display:flex;min-height:calc(100vh - 52px)}
.sidebar{width:260px;flex-shrink:0;background:var(--white);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:52px;height:calc(100vh - 52px)}
.sb-head{padding:1rem 1rem .75rem;border-bottom:1px solid var(--border)}
.sb-head-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}
.sb-head-sub{font-size:11px;color:var(--text2)}
.sb-list{flex:1;overflow-y:auto;padding:.5rem}
.sb-empty{padding:1rem;font-size:12px;color:var(--text2);text-align:center;line-height:1.5}
.sb-item{border:1px solid var(--border);border-radius:var(--rsm);padding:9px 10px;margin-bottom:6px;display:flex;align-items:flex-start;gap:8px;background:var(--white)}
.sb-item-info{flex:1;min-width:0}
.sb-item-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-item-meta{font-size:11px;color:var(--text2)}
.sb-item-status{font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;margin-top:3px;display:inline-block}
.status-ok{background:var(--verde-l);color:var(--verde)}
.status-saving{background:var(--amber-l);color:var(--amber)}
.status-err{background:var(--rojo-l);color:var(--rojo)}
.sb-pill{font-size:10px;font-weight:600;padding:1px 6px;border-radius:8px;margin-left:4px}
.pill-dev{background:var(--rojo-l);color:var(--rojo)}.pill-cumple{background:var(--amber-l);color:var(--amber)}.pill-destaca{background:var(--verde-l);color:var(--verde)}
.sb-del{border:none;background:none;cursor:pointer;color:var(--g400);font-size:14px;padding:2px;line-height:1;flex-shrink:0}
.sb-del:hover{color:var(--rojo)}
.sb-footer{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}
.btn-dl{background:var(--verde);color:#fff;border:none;border-radius:var(--rsm);padding:9px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s;width:100%}
.btn-dl:hover{opacity:.9}.btn-dl:disabled{opacity:.4;cursor:not-allowed}
.btn-new{background:var(--white);color:var(--text);border:1px solid var(--border);border-radius:var(--rsm);padding:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;width:100%}
.btn-new:hover{border-color:var(--g400)}
/* MAIN */
.main{flex:1;padding:2rem 1.5rem 4rem;max-width:640px}
.form-head{margin-bottom:1.5rem}
.form-badge{display:inline-flex;background:var(--rojo-l);color:var(--rojo);font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;margin-bottom:8px}
.form-head h1{font-size:20px;font-weight:700;margin-bottom:4px}
.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.5rem;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)}
input[type=text],input[type=email],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}
input:focus,select:focus{border-color:var(--rojo)}
.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}
.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)}
.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}
.opt.sel .opt-dot{border-color:var(--rojo);background:var(--rojo)}.opt-txt{font-weight:500}
.score-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:16px;display:flex;gap:16px;align-items:center;margin-bottom:1rem}
.score-num{font-size:44px;font-weight:700;color:var(--rojo);line-height:1;min-width:64px}
.score-info{flex:1}
.score-lbl{font-size:11px;color:var(--text2);margin-bottom:5px}
.score-bar-wrap{height:7px;background:var(--g100);border-radius:4px;overflow:hidden;margin-bottom:5px}
.score-bar-fill{height:100%;background:var(--rojo);border-radius:4px;transition:width .4s ease}
.score-detail{font-size:11px;color:var(--text2)}
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:80px;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.5rem}
.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)}
.btn-save{background:var(--verde);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-save:hover{opacity:.9}.btn-save:disabled{opacity:.45;cursor:not-allowed}
.alert-error{background:var(--rojo-l);color:var(--rojo);border-left:3px solid var(--rojo);border-radius:var(--rsm);padding:10px 13px;font-size:12px;margin-top:10px;display:none}
.saved-ok{text-align:center;padding:2.5rem 1rem}
.saved-ok-icon{width:52px;height:52px;background:var(--verde-l);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:22px}
.saved-ok h2{font-size:18px;font-weight:700;margin-bottom:6px}
.saved-ok p{color:var(--text2);font-size:13px;line-height:1.6;margin-bottom:1.25rem}
.btn-next{background:var(--rojo);color:#fff;border:none;border-radius:var(--rsm);padding:10px 22px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;margin-right:8px}
@media(max-width:768px){.sidebar{display:none}.layout{display:block}.main{max-width:100%;padding:1.5rem 1rem 3rem}}
@media(max-width:540px){.level-grid,.comp-grid,.row2{grid-template-columns:1fr}}
