:root{--ink:#07111f;--ink2:#132338;--paper:#f4f7f7;--white:#fff;--accent:#21d6a2;--accent2:#007f63;--line:#d7e0e3;--muted:#5a6877;--danger:#b52a2a;--warn:#b66b05;--shadow:0 24px 70px rgba(7,17,31,.09);--radius:18px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}.splash{min-height:100vh;display:grid;place-items:center;text-align:center}.splash img{width:min(420px,75vw)}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.auth-visual{background:var(--ink);color:white;padding:7vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-visual:after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(33,214,162,.18);border-radius:50%;right:-130px;top:-90px;box-shadow:0 0 0 80px rgba(33,214,162,.025),0 0 0 160px rgba(33,214,162,.018)}.auth-logo{width:min(420px,84%);background:#fff;border-radius:20px;padding:14px 18px;margin-bottom:42px;box-shadow:0 18px 55px rgba(0,0,0,.24);overflow:hidden}.auth-logo img{display:block;width:100%;height:210px;object-fit:contain;object-position:center}.auth-visual h1{font-size:clamp(46px,6vw,82px);line-height:.95;letter-spacing:-.06em;margin:0;max-width:760px}.auth-visual h1 span{color:var(--accent)}.auth-visual p{font-size:19px;color:#afbecd;max-width:680px;line-height:1.6}.auth-form{display:grid;place-items:center;padding:36px}.panel{width:min(470px,100%);background:white;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:900;color:var(--accent2)}h2{font-size:34px;letter-spacing:-.04em;margin:10px 0 10px}p{line-height:1.55}.muted{color:var(--muted)}label{display:block;font-weight:750;font-size:13px;margin:18px 0 7px}.field{width:100%;border:1px solid #bcc9d2;background:white;border-radius:10px;padding:13px 14px;outline:none}.field:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(0,127,99,.12)}textarea.field{min-height:130px;resize:vertical}.btn{border:1px solid var(--ink);background:var(--ink);color:white;border-radius:10px;padding:12px 16px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{transform:translateY(-1px)}.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn.ghost{background:white;color:var(--ink)}.btn.danger{background:#fff0f0;border-color:#e4a5a5;color:#8e2020}.btn.small{padding:8px 11px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.wide{width:100%}.notice{border-radius:10px;padding:11px 13px;margin:12px 0;font-size:14px;background:#eef5f5;border:1px solid #c9d9d8}.notice.error{background:#fff0f0;border-color:#f0b5b5;color:#831c1c}.notice.success{background:#ebfff8;border-color:#99dec9;color:#075b45}.shell{min-height:100vh;display:grid;grid-template-columns:255px 1fr}.sidebar{background:var(--ink);color:white;padding:25px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:12px;margin:4px 7px 30px;padding:10px;background:#0d1c2c;border:1px solid #1e354a;border-radius:14px}.sidebar-brand img{width:54px;height:54px;object-fit:contain;border-radius:12px;background:#fff;padding:5px}.sidebar-brand strong{display:block;font-size:18px;letter-spacing:-.02em}.sidebar-brand span{display:block;margin-top:2px;font-size:11px;color:#91a9bc;text-transform:uppercase;letter-spacing:.08em}.sidebar nav{display:grid;gap:7px}.navbtn{border:0;background:transparent;color:#b6c3cf;border-radius:10px;padding:12px 13px;text-align:left;font-weight:750}.navbtn:hover,.navbtn.active{background:#12263a;color:white}.navbtn.active{box-shadow:inset 3px 0 0 var(--accent)}.sidebar .bottom{margin-top:auto;border-top:1px solid #203448;padding-top:18px}.sidebar .who{font-size:12px;color:#94a8ba;padding:0 11px 12px}.main{min-width:0}.topbar{height:76px;background:rgba(244,247,247,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(7,17,31,.08);padding:0 34px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.topbar h1{font-size:22px;margin:0;letter-spacing:-.03em}.content{padding:34px;max-width:1500px}.hero{background:var(--ink);color:white;border-radius:24px;padding:34px;box-shadow:var(--shadow);margin-bottom:24px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-80px;top:-120px;width:350px;height:350px;border-radius:50%;border:1px solid rgba(33,214,162,.22)}.hero .eyebrow{color:var(--accent)}.hero h2{font-size:42px;margin:8px 0}.hero p{color:#b8c6d3;max-width:800px}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 10px 32px rgba(7,17,31,.05)}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.metric{font-size:38px;font-weight:900;letter-spacing:-.05em}.metric-label{font-size:13px;color:var(--muted);font-weight:700}.section-title{display:flex;align-items:end;justify-content:space-between;margin:30px 0 13px}.section-title h2{font-size:28px;margin:0}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:16px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:13px 14px;border-bottom:1px solid #e7ecef;vertical-align:top}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);background:#fafcfc}.table tr:last-child td{border-bottom:0}.pill{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;background:#edf2f4;color:#33485d}.pill.JUNIOR{background:#e8fff6;color:#0b684f}.pill.CONFIRME{background:#eef3ff;color:#304f8c}.pill.SENIOR{background:#f7edff;color:#6f3690}.pill.EXPERT{background:#fff0e8;color:#9a3f16}.pill.RUNNING{background:#e8fff6;color:#0b684f}.pill.SUBMITTED{background:#fff5de;color:#835500}.pill.REVIEWED{background:#edf0ff;color:#43569d}.pill.CLOSED{background:#eceff1;color:#52606b}.actions{display:flex;gap:8px;flex-wrap:wrap}.split{display:flex;gap:12px;align-items:center}.grow{flex:1}.modal-bg{position:fixed;inset:0;background:rgba(7,17,31,.58);z-index:30;display:grid;place-items:center;padding:20px}.modal{width:min(760px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:26px}.challenge-card{border-left:4px solid var(--accent)}.challenge-card h3{margin:4px 0 7px;font-size:23px}.flag-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.flag{padding:16px;border-radius:12px;border:1px solid var(--line);background:#fafcfc}.flag.ok{border-color:#7bd3b8;background:#edfff9}.flag strong{display:block;margin-bottom:5px}.lab-frame{height:68vh;width:100%;border:1px solid var(--line);border-radius:14px;background:white}.report{min-height:260px}.score{font-weight:900;font-size:26px}.codebox{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#07111f;color:#dff8ef;border-radius:10px;padding:12px;word-break:break-all;font-size:12px}.empty{padding:40px;text-align:center;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.danger-text{color:var(--danger)}@media(max-width:1000px){.auth{grid-template-columns:1fr}.auth-visual{min-height:320px}.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar nav{display:flex;overflow:auto}.sidebar .bottom{display:none}.span-3,.span-4,.span-6,.span-8{grid-column:span 12}.topbar,.content{padding-left:20px;padding-right:20px}.flag-grid{grid-template-columns:1fr}}
.candidate-brief{margin-top:14px;padding:16px 18px;border:1px solid #cfe1df;background:#f7fffc;border-radius:14px}.candidate-brief p{margin:7px 0}.candidate-brief code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#e7f2ef;padding:2px 5px;border-radius:5px}
.brand-crop{width:58px;height:58px;flex:0 0 58px;border-radius:12px;background-color:#fff;background-image:url('/cybersecurit-logo-v120.png');background-repeat:no-repeat;background-size:132px 132px;background-position:center -8px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);overflow:hidden}.auth-logo{width:min(440px,88%);padding:0;background:#fff}.auth-logo img{height:auto;max-height:300px;object-fit:contain}.eyebrow.light{color:var(--accent)}.portal-link{display:inline-flex;color:#fff;text-decoration:none;font-weight:850;border:1px solid #31506b;border-radius:10px;padding:11px 14px;background:#102438}.portal-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px;max-width:620px}.portal-steps span{border:1px solid #29445c;background:#0d1d2d;border-radius:10px;padding:10px 12px;color:#c3d0db;font-size:13px}.switch-portal{text-align:center;font-size:13px;margin:18px 0 0}.switch-portal a{color:var(--accent2);font-weight:800}.top-sub{display:block;font-size:11px;color:var(--muted);margin-top:3px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}.hero-url{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#9cb1c2;font-size:12px}.portal-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#eafff8;border:1px solid #a9dfcc;border-radius:16px;padding:18px 20px;margin-bottom:24px}.portal-card p{margin:5px 0 0}.candidate-hero{background:linear-gradient(135deg,#07111f,#10283d)}.progress-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px;position:relative;z-index:1}.progress-steps>div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:13px;padding:13px;display:flex;gap:9px;align-items:center}.progress-steps b{width:27px;height:27px;border-radius:50%;background:var(--accent);color:var(--ink);display:grid;place-items:center}.progress-steps span{font-size:12px;font-weight:750;color:#d1dbe4}.candidate-assignment{margin-bottom:22px;border-top:4px solid var(--accent2)}.candidate-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.candidate-title h2,.candidate-title h3{margin:7px 0 0}.completion{font-weight:900;background:#eef6f4;border-radius:999px;padding:8px 11px;font-size:12px}.candidate-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 24px}.validated{display:inline-flex;color:#087154;font-weight:850}.report-card{margin-bottom:18px}.report-guide{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 13px}.report-guide span{font-size:11px;font-weight:850;border-radius:999px;padding:6px 9px;background:#edf2f4;color:#506476}@media(max-width:800px){.progress-steps{grid-template-columns:1fr 1fr}.portal-steps{grid-template-columns:1fr}.candidate-title{flex-direction:column}.portal-card{align-items:flex-start;flex-direction:column}}
.auth-logo{width:min(360px,78%);padding:8px}.auth-logo img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
