*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:#f8fafc;color:#0f172a;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;line-height:1.6;letter-spacing:-.01em}h1,h2,h3,h4,h5,h6{font-family:Outfit,Plus Jakarta Sans,sans-serif;letter-spacing:-.02em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}input,textarea,select{font-family:inherit;outline:none}input:focus,textarea:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb1f!important}textarea{resize:vertical}button{font-family:inherit;cursor:pointer}button:not(:disabled){transition:opacity .15s,transform .12s,box-shadow .15s}button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0);opacity:1}button:disabled{cursor:not-allowed}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes slideIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fade-up{animation:fadeUp .3s ease both}.fade-in{animation:fadeIn .25s ease both}.slide-in{animation:slideIn .3s ease both}.scale-in{animation:scaleIn .25s ease both}.page{min-height:100vh;background:#f8fafc;color:#0f172a;padding:24px 20px 80px}.page-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f8fafc}.shell{max-width:1140px;margin:0 auto;display:grid;gap:16px}.shell-sm{max-width:700px;margin:0 auto;display:grid;gap:16px}.shell-xs{max-width:560px;width:100%;display:grid;gap:16px}.card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:28px;box-shadow:0 4px 20px #0000000d}.card-sm{padding:16px 20px}.card-accent{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:14px 18px}.card-green{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;padding:14px 18px}.card-red{background:#fef2f2;border:1px solid #fecaca;border-radius:14px;padding:14px 18px}.card-hover{transition:border-color .2s,box-shadow .2s}.card-hover:hover{border-color:#4fd1ff33;box-shadow:0 4px 6px -1px #00000040,0 16px 40px -8px #00000059,0 0 0 1px #4fd1ff14}.label{display:block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#4fd1ff;margin-bottom:7px}.label-muted{color:#6b8aad}.text-muted{color:#6b8aad;font-size:13px}.text-sub{color:#94a3b8;font-size:12px}.section-title{font-size:15px;font-weight:700;color:#4fd1ff;margin:0 0 16px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#4fd1ff;margin:0 0 2px}.input{width:100%;padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.09);background:#060e1ad9;color:#e8f0fe;font-size:14px;transition:border-color .2s,box-shadow .2s}.textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:#060e1ad9;color:#e8f0fe;font-size:14px;line-height:1.65;min-height:160px;transition:border-color .2s,box-shadow .2s}.input::placeholder,.textarea::placeholder{color:#3d5470}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:999px;border:none;background:linear-gradient(135deg,#4fd1ff,#6b7cff);color:#03101f;font-weight:700;font-size:14px;letter-spacing:.01em;box-shadow:0 4px 18px #4fd1ff38}.btn:hover:not(:disabled){box-shadow:0 6px 24px #4fd1ff59}.btn-sm{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#e8f0fe;font-size:13px;font-weight:500}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid transparent;background:transparent;color:#6b8aad;font-size:13px;font-weight:500}.btn-ghost:hover:not(:disabled){color:#e8f0fe;background:#ffffff0a}.btn-active{background:#4fd1ff1f!important;border-color:#4fd1ff4d!important;color:#4fd1ff!important}.btn-danger{background:#f871711a;border-color:#f8717140;color:#f87171}.btn-success{background:#4ade801f;border-color:#4ade804d;color:#4ade80}.btn:disabled,.btn-sm:disabled{opacity:.45}.file-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;border:1px solid rgba(79,209,255,.22);background:#4fd1ff0f;color:#4fd1ff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s}.file-btn:hover{background:#4fd1ff1f;border-color:#4fd1ff59}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.badge-blue{background:#4fd1ff1f;color:#4fd1ff}.badge-green{background:#4ade801f;color:#4ade80}.badge-red{background:#f871711f;color:#f87171}.badge-yellow{background:#fbbf241f;color:#fbbf24}.badge-purple{background:#a78bfa1f;color:#a78bfa}.badge-gray{background:#ffffff12;color:#94a3b8}.progress-track{height:5px;border-radius:999px;background:#ffffff12;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#4fd1ff,#6b7cff);box-shadow:0 0 8px #4fd1ff66;transition:width .5s cubic-bezier(.4,0,.2,1)}.spinner{display:inline-block;border-radius:50%;border:2.5px solid rgba(79,209,255,.15);border-top-color:#4fd1ff;animation:spin .75s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}.spinner-md{width:32px;height:32px}.spinner-lg{width:48px;height:48px}.spinner-dark{border-color:#03101f33;border-top-color:#03101f}.skeleton{border-radius:8px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:400px 100%;animation:shimmer 1.4s ease infinite}.divider{height:1px;background:#ffffff12;margin:18px 0}.alert{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:10px;font-size:13px;margin-top:12px}.alert-error{background:#f8717114;border:1px solid rgba(248,113,113,.2);color:#f87171}.alert-success{background:#4ade8014;border:1px solid rgba(74,222,128,.2);color:#4ade80}.alert-info{background:#4fd1ff14;border:1px solid rgba(79,209,255,.2);color:#4fd1ff}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:9999;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:12px;font-size:13px;font-weight:500;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 32px #0006;pointer-events:all;animation:slideIn .3s ease both;max-width:340px}.toast-success{background:#0a1c14f2;border:1px solid rgba(74,222,128,.3);color:#4ade80}.toast-error{background:#1c0a0af2;border:1px solid rgba(248,113,113,.3);color:#f87171}.toast-info{background:#061222f2;border:1px solid rgba(79,209,255,.3);color:#4fd1ff}.stepper{display:flex;align-items:flex-start;gap:0;padding-bottom:24px}.step-item{display:flex;flex-direction:column;align-items:center;gap:6px}.step-item.flex-1{flex:1}.step-connector{flex:1;height:2px;border-radius:999px;margin:15px 6px 0;transition:background .4s}.step-connector.done{background:#4ade8059}.step-connector.pending{background:#ffffff14}.step-dot{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;transition:all .3s}.step-dot.active{background:linear-gradient(135deg,#4fd1ff,#6b7cff);color:#03101f;box-shadow:0 0 16px #4fd1ff59}.step-dot.done{background:#4ade8026;border:1.5px solid rgba(74,222,128,.4);color:#4ade80}.step-dot.pending{background:#ffffff0a;border:1.5px solid rgba(255,255,255,.1);color:#6b8aad}.step-label{font-size:11px;font-weight:600;white-space:nowrap;transition:color .3s}.step-label.active{color:#4fd1ff}.step-label.done{color:#4ade80}.step-label.pending{color:#6b8aad}.pipeline-step{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.07);background:#ffffff05;transition:border-color .3s,background .3s}.pipeline-step.running{border-color:#4fd1ff4d;background:#4fd1ff0d}.pipeline-step.done{border-color:#4ade8040;background:#4ade800a}.pipeline-icon{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:15px;background:#4fd1ff14;transition:background .3s}.pipeline-step.running .pipeline-icon{background:#4fd1ff26}.pipeline-step.done .pipeline-icon{background:#4ade801f}.stat-card{padding:16px 18px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#ffffff05}.score-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.iv-row{padding:16px 20px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff05;transition:border-color .2s,background .2s}.iv-row:hover{border-color:#4fd1ff2e;background:#4fd1ff05}.skill-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.07);background:#ffffff05}.skill-bar-track{flex:1;height:4px;border-radius:999px;background:#ffffff12;overflow:hidden}.skill-bar-fill{height:100%;border-radius:999px;transition:width .8s cubic-bezier(.4,0,.2,1)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.col{display:flex;flex-direction:column;gap:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.flex1{flex:1}.text-right{text-align:right}.text-center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.fw-700{font-weight:700}.fw-800{font-weight:800}.fs-12{font-size:12px}.fs-13{font-size:13px}.fs-14{font-size:14px}@media (max-width: 900px){.sidebar-layout{flex-direction:column!important}aside{width:100%!important;height:auto!important;position:relative!important;border-right:none!important;border-bottom:1px solid #e2e8f0!important;padding:16px 20px!important}main{padding:20px 16px!important}.grid2,.grid3{grid-template-columns:1fr!important}}@media (max-width: 600px){.step-indicator{flex-direction:column!important;gap:8px!important}.card{padding:20px 16px!important}}
