From 01363820e2088fec3287e25ff7278a5756e4f988 Mon Sep 17 00:00:00 2001 From: Johan Date: Wed, 4 Mar 2026 22:23:10 +0100 Subject: [PATCH] Initial React project --- dist/assets/index-50E0dQjK.css | 1 + dist/assets/index-NzuLru3R.js | 11 + dist/assets/index-R0YECfZq.css | 1 - dist/assets/index-yGD4iGEM.js | 11 - dist/index.html | 4 +- node_modules/.tmp/tsconfig.app.tsbuildinfo | 2 +- src/App.tsx | 42 +- .../SimulatorEvaluationViewModel.ts | 322 +++++++++ .../dashboard/components/DashboardSidebar.tsx | 157 +++-- .../dashboard/pages/dashboard.css | 89 ++- .../pages/SimulatorEvaluationPage.tsx | 328 +++++++++ .../simulator/pages/SimulatorPage.tsx | 23 +- .../simulator/pages/simulator-evaluation.css | 643 ++++++++++++++++++ 13 files changed, 1550 insertions(+), 84 deletions(-) create mode 100644 dist/assets/index-50E0dQjK.css create mode 100644 dist/assets/index-NzuLru3R.js delete mode 100644 dist/assets/index-R0YECfZq.css delete mode 100644 dist/assets/index-yGD4iGEM.js create mode 100644 src/mvvm/viewmodels/SimulatorEvaluationViewModel.ts create mode 100644 src/presentation/simulator/pages/SimulatorEvaluationPage.tsx create mode 100644 src/presentation/simulator/pages/simulator-evaluation.css diff --git a/dist/assets/index-50E0dQjK.css b/dist/assets/index-50E0dQjK.css new file mode 100644 index 0000000..86c76c9 --- /dev/null +++ b/dist/assets/index-50E0dQjK.css @@ -0,0 +1 @@ +:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%}body{margin:0;min-width:320px}::selection{background:#99f6e4;color:#134e4a}button,input,textarea,select{font-family:inherit}.auth-page{position:relative;min-height:100vh;background:#ecf0f0;color:#1f2937;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}.auth-page *{box-sizing:border-box}.orb{position:fixed;border-radius:999px;pointer-events:none;z-index:0}.orb-1{top:-10%;left:-10%;width:50vw;height:50vw;background:#2dd4bf4d;filter:blur(120px)}.orb-2{right:-10%;bottom:-10%;width:60vw;height:60vw;background:#67e8f966;filter:blur(150px)}.orb-3{top:30%;right:20%;width:30vw;height:30vw;background:#34d39933;filter:blur(100px)}.auth-logo-wrap{position:absolute;top:32px;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:8px}.auth-logo-dot{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#0f766e,#06b6d4);box-shadow:0 12px 22px #0d94884d}.auth-logo-text{font-size:1.25rem;font-weight:500;letter-spacing:-.03em}.auth-card{width:min(420px,100%);position:relative;z-index:5;border-radius:32px;padding:32px;background:#fff9;border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #0000000a}.auth-view{display:grid;gap:24px}.view-enter{animation:fadeIn .3s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.auth-head{display:grid;gap:8px}.auth-head-center{text-align:center}.auth-head h1{margin:0;font-size:1.55rem;font-weight:500;letter-spacing:-.03em;color:#111827}.auth-head p{margin:0;color:#6b7280;font-size:.9rem;line-height:1.5}.auth-form{display:grid;gap:18px}.auth-field{display:grid;gap:7px}.auth-field span{font-size:.88rem;font-weight:500;color:#374151;padding-left:4px}.auth-field-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-field input{width:100%;border:1px solid rgba(255,255,255,.75);border-radius:12px;padding:10px 14px 10px 40px;background:#ffffff8c;color:#111827;font-size:.9rem;outline:none;box-shadow:0 1px 2px #0f172a0f;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease}.auth-field input::placeholder{color:#9ca3af}.auth-field input:focus{border-color:#14b8a680;box-shadow:0 0 0 3px #14b8a62e,0 6px 18px #0d948814;background:#ffffffd9}.auth-input-wrap{position:relative}.auth-input-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%);width:18px;height:18px;border-radius:999px;display:grid;place-items:center;color:#9ca3af;pointer-events:none}.auth-input-icon svg{width:16px;height:16px;display:block}.location-suggestions{margin-top:8px;border-radius:12px;border:1px solid rgba(255,255,255,.82);background:#ffffffd1;box-shadow:0 10px 24px #0f172a14;overflow:hidden;max-height:180px;overflow-y:auto}.location-suggestion-item{width:100%;border:0;border-bottom:1px solid rgba(229,231,235,.7);background:transparent;padding:10px 12px;text-align:left;color:#374151;font-size:.86rem;cursor:pointer}.location-suggestion-item:last-child{border-bottom:0}.location-suggestion-item:hover{background:#14b8a61a;color:#115e59}.check-row{display:flex;align-items:center;gap:8px;color:#4b5563;font-size:.9rem}.submit-btn{margin-top:2px;width:100%;border:0;border-radius:12px;padding:10px 14px;font-size:.9rem;font-weight:600;color:#fff;background:#111827;cursor:pointer;transition:background .2s ease}.submit-btn:hover:not(:disabled){background:#1f2937}.submit-btn:disabled{opacity:.65;cursor:default}.auth-foot{margin:0;text-align:center;font-size:.9rem;color:#6b7280;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.link-btn{border:0;background:transparent;color:#0f766e;font-weight:500;cursor:pointer;padding:0}.link-btn:hover{color:#115e59}.back-link{justify-self:start;font-size:.8rem}.status{margin:18px 0 0;border-radius:12px;padding:10px 12px;font-size:.88rem}.status.success{background:#10b9811f;color:#047857}.status.error{background:#ef44441f;color:#b91c1c}@media(max-width:520px){.auth-card{padding:24px 20px;border-radius:24px}}.dash-root{min-height:100vh;display:flex;background:#ecf0f0;color:#1f2937;overflow:hidden;position:relative}.dash-root *{box-sizing:border-box}.dash-orb{position:fixed;border-radius:999px;pointer-events:none;z-index:0}.dash-orb-1{top:-10%;left:-10%;width:50vw;height:50vw;background:#2dd4bf4d;filter:blur(120px)}.dash-orb-2{right:-10%;bottom:-10%;width:60vw;height:60vw;background:#67e8f966;filter:blur(150px)}.dash-orb-3{top:30%;right:20%;width:30vw;height:30vw;background:#34d39933;filter:blur(100px)}.dash-sidebar{width:256px;margin:24px 0 24px 24px;height:calc(100vh - 48px);padding:24px;background:#ffffff6b;border:1px solid rgba(255,255,255,.6);border-radius:32px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 8px 30px #0000000a;display:flex;flex-direction:column;gap:18px;z-index:2;flex-shrink:0}.dash-mobile-menu-btn,.dash-mobile-overlay{display:none}.dash-mobile-menu-btn{border:1px solid rgba(229,231,235,.82);background:#ffffffbf;width:40px;height:40px;border-radius:12px;color:#111827;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.dash-logo-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding-left:8px}.dash-logo-dot{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#0f766e,#06b6d4);box-shadow:0 10px 22px #0d948847}.dash-logo-text{font-size:1.25rem;font-weight:500;letter-spacing:-.03em}.dash-nav{display:grid;gap:6px;flex:1;align-content:start}.dash-nav-item{border:0;background:transparent;min-height:50px;border-radius:18px;display:flex;align-items:center;gap:12px;color:#6b7280;padding:0 16px;position:relative;cursor:pointer;text-align:left;font-size:1rem;font-weight:400;transition:.2s ease}.dash-nav-item:hover{background:#ffffff59;color:#111827}.dash-nav-item.active{background:#ffffffa8;color:#0f766e;border:1px solid rgba(255,255,255,.82);box-shadow:0 6px 14px #0f172a08;font-weight:500}.dash-nav-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:999px;background:#0ea5a4}.dash-nav-icon{display:grid;place-items:center}.dash-nav-icon.accent{color:#0f766e}.dash-nav-label{white-space:nowrap}.dash-nav-divider{height:1px;margin:6px 16px;background:#ffffff8c}.dash-nav-badge{margin-left:auto;width:20px;height:20px;border-radius:999px;font-size:.7rem;display:grid;place-items:center;color:#fff;background:#06b6d4}.dash-nav-dot{margin-left:auto;width:7px;height:7px;border-radius:999px;background:#10b981;box-shadow:0 0 8px #10b981cc}.dash-sidebar-pro{margin-top:auto;border-radius:18px;border:1px solid rgba(20,184,166,.2);background:linear-gradient(135deg,#14b8a614,#06b6d414);padding:14px;position:relative;overflow:hidden;text-align:center}.dash-sidebar-pro svg{color:#0f766e;margin:0 auto 8px;position:relative;z-index:1}.dash-sidebar-pro-glow{position:absolute;top:-22px;right:-22px;width:88px;height:88px;border-radius:999px;background:#14b8a633;filter:blur(20px)}.dash-sidebar-pro h4{position:relative;z-index:1;margin:0 0 4px;font-size:.86rem}.dash-sidebar-pro p{position:relative;z-index:1;margin:0;color:#6b7280;font-size:.76rem}.dash-main{flex:1;margin:24px 24px 24px 32px;height:calc(100vh - 48px);overflow-y:auto;padding-right:8px;z-index:1}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#14b8a633;border-radius:20px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#14b8a666}.dash-topbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:28px;padding-top:8px;position:relative;z-index:5}.dash-topbar-actions{display:inline-flex;align-items:center;gap:8px}.dash-theme-btn{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:7px;color:#111827;cursor:pointer;font-size:.75rem;font-weight:500}.dash-theme-btn:hover{background:#ffffffd6}.dash-profile-wrap{position:relative}.dash-profile-btn{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:6px 12px 6px 6px;display:flex;align-items:center;gap:8px;color:#111827;cursor:pointer}.dash-profile-avatar{width:32px;height:32px;border-radius:999px;border:1px solid rgba(255,255,255,.8);object-fit:cover}.dash-profile-avatar-fallback{background:linear-gradient(135deg,#0f766e,#06b6d4);display:grid;place-items:center;color:#fff;font-size:.86rem;font-weight:600}.dash-profile-menu{position:absolute;top:calc(100% + 8px);right:0;width:220px;background:#ffffffd1;border:1px solid rgba(255,255,255,.82);border-radius:16px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 10px 36px #0000001a;padding:8px;opacity:0;visibility:hidden;transform:scale(.96);transform-origin:top right;transition:.18s ease}.dash-profile-wrap:hover .dash-profile-menu,.dash-profile-wrap:focus-within .dash-profile-menu{opacity:1;visibility:visible;transform:scale(1)}.dash-profile-menu button{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:8px;border-radius:10px;padding:9px 10px;color:#4b5563;cursor:pointer}.dash-profile-menu button:hover{background:#ffffffe6;color:#111827}.dash-profile-menu .danger{color:#e11d48}.dash-profile-divider{height:1px;background:#d1d5dbcc;margin:6px 0}.dash-welcome{margin-bottom:28px}.dash-welcome h1{margin:0;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em;display:flex;align-items:center;gap:10px}.dash-welcome p{margin:8px 0 0;color:#6b7280}.dash-loading{margin:0 0 14px;color:#6b7280}.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;padding-bottom:24px}.dash-grid-main,.dash-grid-side{display:grid;gap:24px;align-content:start}.dash-card{background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.dash-card:hover{transform:translateY(-1px);box-shadow:0 12px 34px #0f172a0f}.dash-card h2,.dash-card h3,.dash-card h4,.dash-card p{margin:0}.dash-card-head{margin-bottom:16px}.dash-card-head-inline{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-card-head h2{font-size:1.15rem;font-weight:500;letter-spacing:-.01em}.dash-job-list,.dash-message-list,.dash-sim-list,.dash-ai-list,.dash-agent-list{display:grid;gap:10px}.dash-job-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:16px;background:#ffffff80;border:1px solid rgba(255,255,255,.72);transition:.2s ease;cursor:pointer}.dash-job-item:hover{background:#fffc;box-shadow:0 4px 14px #0f172a0f}.dash-job-item:focus-visible{outline:2px solid rgba(20,184,166,.45);outline-offset:2px}.dash-job-left{display:flex;align-items:center;gap:10px;min-width:0}.dash-company-chip{width:40px;height:40px;border-radius:12px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:600;flex-shrink:0}.dash-job-item h4{font-size:.95rem;margin-bottom:2px}.dash-job-item p{font-size:.8rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-job-arrow-btn{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;display:grid;place-items:center;color:#9ca3af;cursor:pointer;flex-shrink:0;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.dash-job-item:hover .dash-job-arrow-btn{background:#f0fdfa;color:#0f766e;border-color:#99f6e4}.dash-split-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dash-message-item,.dash-sim-item,.dash-agent-item{border-radius:14px;padding:10px;background:#ffffff75;border:1px solid rgba(255,255,255,.68);transition:.2s ease}.dash-message-item{display:flex;align-items:center;gap:10px}.dash-avatar{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#14b8a633,#06b6d433);color:#0f766e;font-size:.76rem;font-weight:700;flex-shrink:0}.dash-message-item h4{font-size:.84rem;margin-bottom:1px}.dash-message-item p{color:#6b7280;font-size:.76rem}.dash-message-item:hover{background:#fffc}.dash-sim-item{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;cursor:pointer}.dash-sim-item:hover{background:#ffffffd1}.dash-sim-left{display:flex;align-items:center;gap:10px}.dash-sim-left h4{margin:0;font-size:.84rem;font-weight:500}.dash-sim-left p{margin:0;color:#6b7280;font-size:.74rem}.dash-sim-icon{width:36px;height:36px;border-radius:10px;border:1px solid transparent;display:grid;place-items:center;flex-shrink:0}.dash-sim-icon.teal{background:#ecfdf5;border-color:#ccfbf1;color:#0f766e}.dash-sim-icon.purple{background:#f5f3ff;border-color:#ede9fe;color:#7c3aed}.dash-sim-icon.amber{background:#fffbeb;border-color:#fef3c7;color:#d97706}.dash-sim-icon.blue{background:#eff6ff;border-color:#dbeafe;color:#2563eb}.dash-sim-icon.gray{background:#f3f4f6;border-color:#e5e7eb;color:#6b7280}.dash-sim-right{text-align:right}.dash-sim-item strong{color:#059669;font-size:.8rem;display:block;margin-bottom:4px}.dash-sim-item strong.warn{color:#d97706}.dash-sim-item strong.na{color:#6b7280}.dash-progress{width:64px;height:6px;border-radius:999px;background:#e5e7eb;overflow:hidden}.dash-progress span{display:block;height:100%;border-radius:inherit;background:#10b981}.dash-progress span.warn{background:#f59e0b}.dash-ai-card{background:linear-gradient(135deg,#14b8a6,#06b6d4);color:#fff;position:relative;overflow:hidden;border-radius:24px;box-shadow:0 20px 32px -10px #14b8a638}.dash-ai-card:hover{transform:none;box-shadow:0 20px 32px -10px #14b8a638}.dash-ai-content{position:relative;z-index:10}.dash-ai-peel{position:absolute;top:-14px;right:-14px;width:96px;height:96px;border-bottom-left-radius:48px;border-top-right-radius:28px;background:#fff3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-left:1px solid rgba(255,255,255,.45);border-bottom:1px solid rgba(255,255,255,.45);box-shadow:-10px 10px 20px #0000001a;transform-origin:top right;transition:transform .2s ease}.dash-ai-card-group:hover .dash-ai-peel{transform:scale(1.08)}.dash-ai-head{display:flex;align-items:center;gap:8px;margin-bottom:16px}.dash-ai-head svg{color:#ccfbf1}.dash-ai-card h3{font-size:1.125rem;margin-bottom:0;font-weight:500;letter-spacing:-.01em}.dash-ai-card p{color:#ccfbf1;margin-bottom:24px;font-size:.875rem;font-weight:400}.dash-ai-list{margin:0;padding:0;list-style:none;display:grid;gap:12px}.dash-ai-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:background-color .2s ease}.dash-ai-item:hover{background:#fff3}.dash-ai-item-icon{margin-top:2px;width:24px;height:24px;border-radius:999px;border:0;background:#fff3;display:grid;place-items:center;flex-shrink:0}.dash-ai-item strong{display:block;font-size:.875rem;margin-bottom:2px;color:#fff;font-weight:500}.dash-ai-item small{display:block;font-size:.75rem;color:#ccfbf1;line-height:1.4}.dash-ai-card button{width:100%;margin-top:16px;border:0;border-radius:12px;padding:10px 12px;font-size:.875rem;font-weight:500;color:#0f766e;background:#fff;cursor:pointer;box-shadow:0 1px 2px #0f172a1f;transition:background-color .2s ease}.dash-ai-card button:hover{background:#f0fdfa}.dash-ai-xl-only{display:none}.dash-agent-item span{display:block;font-size:.84rem;font-weight:500}.dash-agent-item small{display:inline-flex;align-items:center;gap:4px;color:#6b7280;font-size:.75rem}.dash-agent-item{display:flex;align-items:center;justify-content:space-between}.dash-agent-item:hover{background:#ffffffd1}.dash-agent-item.muted{opacity:.72}.dash-agent-item.muted:hover{opacity:1}.dash-switch{position:relative;width:38px;height:22px;display:inline-block;flex-shrink:0}.dash-switch input{position:absolute;opacity:0;inset:0}.dash-switch span{position:absolute;inset:0;background:#d1d5db;border-radius:999px;transition:.2s ease}.dash-switch span:after{content:"";position:absolute;width:16px;height:16px;border-radius:999px;background:#fff;top:3px;left:3px;transition:.2s ease;box-shadow:0 1px 2px #0f172a33}.dash-switch input:checked+span{background:#14b8a6}.dash-switch input:checked+span:after{transform:translate(16px)}.dash-icon-btn{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#4b5563;display:grid;place-items:center;cursor:pointer;transition:.2s ease}.dash-icon-btn:hover{color:#0f766e;border-color:#99f6e4;background:#f0fdfa}.dash-outline-btn{width:100%;margin-top:10px;border:1px dashed rgba(156,163,175,.6);background:transparent;border-radius:10px;padding:10px;color:#6b7280;cursor:pointer;transition:.2s ease}.dash-outline-btn:hover{border-color:#4b556399;color:#1f2937}.dash-muted{color:#6b7280;font-size:.82rem}.theme-dark.dash-root{background:#0a0a0a;color:#d1d5db}.theme-dark .dash-orb-1{background:#14b8a61a}.theme-dark .dash-orb-2{background:#06b6d41a}.theme-dark .dash-orb-3{background:#10b9811a}.theme-dark .dash-sidebar{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 8px 30px #0003}.theme-dark .dash-mobile-menu-btn{border-color:#ffffff14;background:#ffffff0f;color:#f3f4f6}.theme-dark .dash-logo-text,.theme-dark .dash-welcome h1,.theme-dark .dash-card h2,.theme-dark .dash-card h3,.theme-dark .dash-card h4{color:#fff}.theme-dark .dash-nav-item{color:#9ca3af}.theme-dark .dash-nav-item:hover{background:#ffffff0d;color:#f3f4f6}.theme-dark .dash-nav-item.active{background:#ffffff1a;border-color:#ffffff14;color:#2dd4bf}.theme-dark .dash-nav-divider,.theme-dark .dash-sidebar-pro p,.theme-dark .dash-welcome p,.theme-dark .dash-loading,.theme-dark .dash-muted{color:#9ca3af}.theme-dark .dash-sidebar-pro{background:linear-gradient(135deg,#14b8a61a,#06b6d40d);border-color:#14b8a633}.theme-dark .dash-topbar .dash-theme-btn,.theme-dark .dash-profile-btn{border-color:#ffffff14;background:#ffffff08;color:#f3f4f6}.theme-dark .dash-topbar .dash-theme-btn:hover,.theme-dark .dash-profile-btn:hover{background:#ffffff14}.theme-dark .dash-profile-menu{background:#12141af2;border-color:#ffffff1a}.theme-dark .dash-profile-menu button{color:#d1d5db}.theme-dark .dash-profile-menu button:hover{background:#ffffff0d;color:#fff}.theme-dark .dash-card:not(.dash-ai-card){background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.theme-dark .dash-ai-card{background:linear-gradient(135deg,#14b8a6,#06b6d4);border-color:#ffffff26;box-shadow:0 20px 32px -10px #14b8a638}.theme-dark .dash-job-item,.theme-dark .dash-message-item,.theme-dark .dash-sim-item,.theme-dark .dash-agent-item{background:#ffffff05;border-color:#ffffff0d}.theme-dark .dash-job-item:hover,.theme-dark .dash-message-item:hover,.theme-dark .dash-sim-item:hover,.theme-dark .dash-agent-item:hover{background:#ffffff0d;border-color:#ffffff1a}.theme-dark .dash-job-item p,.theme-dark .dash-message-item p,.theme-dark .dash-sim-left p,.theme-dark .dash-agent-item small{color:#9ca3af}.theme-dark .dash-job-arrow-btn,.theme-dark .dash-icon-btn{border-color:#ffffff1a;background:#ffffff0d;color:#6b7280}.theme-dark .dash-job-item:hover .dash-job-arrow-btn,.theme-dark .dash-icon-btn:hover{background:#14b8a61a;color:#2dd4bf;border-color:#14b8a64d}.theme-dark .dash-company-chip{background:#1f2937;border:1px solid rgba(255,255,255,.08)}.theme-dark .dash-progress{background:#ffffff1a}@media(max-width:1200px){.dash-grid{grid-template-columns:1fr}}@media(max-width:980px){.dash-main{padding-right:0}.dash-split-grid{grid-template-columns:1fr}}@media(max-width:1000px){.dash-main{margin:64px 16px 16px;height:calc(100vh - 80px);padding-right:0}.dash-mobile-menu-btn{display:inline-flex;position:fixed;top:14px;left:14px;z-index:60}.dash-mobile-overlay{display:block;position:fixed;inset:0;z-index:49;border:0;margin:0;padding:0;background:#02061757;opacity:0;pointer-events:none;transition:opacity .2s ease}.dash-mobile-overlay.open{opacity:1;pointer-events:auto}.dash-sidebar{position:fixed;top:0;left:0;margin:0;width:min(320px,calc(100vw - 28px));height:100vh;border-radius:0 24px 24px 0;transform:translate(-110%);transition:transform .24s ease;z-index:50}.dash-sidebar.open{transform:translate(0)}}@media(min-width:1280px){.dash-ai-xl-only{display:flex}}.ai-agent-main{display:flex;flex-direction:column}.ai-head{margin-bottom:20px}.ai-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em}.ai-head p{margin:0;color:#6b7280;font-size:1.05rem}.theme-dark .ai-head h1,.theme-dark .ai-head p,.theme-dark .ai-jobs-head h3,.theme-dark .ai-agents-section h3,.theme-dark .ai-create-title h2{color:#fff}.theme-dark .ai-head p,.theme-dark .ai-jobs-head span,.theme-dark .ai-agent-chip-left p,.theme-dark .ai-job-title-wrap p,.theme-dark .ai-job-bottom span{color:#9ca3af}.ai-create-card{margin-bottom:26px;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px}.theme-dark .ai-create-card,.theme-dark .ai-agent-chip-card,.theme-dark .ai-job-card{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.ai-create-title{display:flex;align-items:center;gap:10px;margin-bottom:18px}.ai-create-icon{width:40px;height:40px;border-radius:999px;background:#f0fdfa;border:1px solid #ccfbf1;color:#0f766e;display:grid;place-items:center}.ai-create-title h2{margin:0;font-size:1.2rem;font-weight:500}.ai-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.ai-field{display:grid;gap:6px}.ai-field label{margin-left:4px;font-size:.83rem;font-weight:500;color:#374151}.theme-dark .ai-field label,.theme-dark .ai-distance-head label{color:#d1d5db}.ai-field input,.ai-field select{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.82);background:#ffffff80;padding:10px 12px;font-size:.84rem;color:#111827}.theme-dark .ai-field input,.theme-dark .ai-field select,.theme-dark .ai-location-wrap input{background:#ffffff08;border-color:#ffffff14;color:#f3f4f6}.ai-field input:focus,.ai-field select:focus{outline:none;border-color:#2dd4bfe6;box-shadow:0 0 0 4px #14b8a61a}.ai-location-wrap{position:relative}.ai-location-wrap svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#9ca3af}.ai-location-wrap input{padding-left:34px}.ai-distance-field{align-content:center}.ai-distance-head{display:flex;align-items:center;justify-content:space-between}.ai-distance-head span{font-size:.72rem;color:#0f766e;border:1px solid #ccfbf1;border-radius:8px;background:#f0fdfa;padding:3px 8px;font-weight:500}.ai-distance-field input[type=range]{appearance:none;width:100%;height:6px;border-radius:999px;background:#ffffffd9;border:1px solid rgba(255,255,255,.9)}.ai-distance-field input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:#14b8a6;border-radius:50%;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0000001a}.ai-distance-field input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#14b8a6;border-radius:50%;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0000001a}.ai-create-actions{margin-top:20px;display:flex;justify-content:flex-end}.ai-create-actions button{border:0;border-radius:12px;background:#111827;color:#fff;padding:10px 16px;font-size:.84rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.ai-create-actions button:hover{background:#1f2937}.theme-dark .ai-create-actions button{background:#ffffff1a;border:1px solid rgba(255,255,255,.1)}.ai-agents-section{margin-bottom:20px}.ai-agents-section h3{margin:0 0 10px;padding-left:4px;font-size:1.08rem;font-weight:500}.ai-agents-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.ai-agent-chip-card{min-width:280px;background:#ffffffb8;border:1px solid rgba(255,255,255,.82);border-radius:16px;padding:14px;position:relative;overflow:hidden}.ai-agent-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ai-agent-chip-left{display:flex;align-items:center;gap:8px}.ai-agent-mini-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff}.ai-agent-mini-icon.teal{background:#14b8a6}.ai-agent-mini-icon.indigo{background:#6366f1}.ai-agent-chip-left h4{margin:0;font-size:.84rem;font-weight:500}.ai-agent-chip-left p{margin:1px 0 0;font-size:.72rem;color:#6b7280}.ai-toggle{width:40px;height:20px;border-radius:999px;border:1px solid rgba(156,163,175,.3);background:#d1d5db;padding:0;position:relative;cursor:pointer}.ai-toggle span{width:14px;height:14px;border-radius:999px;background:#fff;position:absolute;left:2px;top:2px;transition:transform .2s ease}.ai-toggle.on{background:#14b8a6}.ai-toggle.on span{transform:translate(20px)}.ai-tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.ai-tags span{font-size:.68rem;color:#4b5563;border-radius:8px;background:#fff;border:1px solid rgba(229,231,235,.85);padding:3px 8px}.theme-dark .ai-agent-chip-left h4,.theme-dark .ai-job-title-wrap h4{color:#fff}.theme-dark .ai-tags span,.theme-dark .ai-job-tags span{color:#d1d5db;background:#ffffff0d;border-color:#ffffff1a}.ai-jobs-head{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.ai-jobs-head h3{margin:0;display:inline-flex;align-items:center;gap:7px;font-size:1.08rem;font-weight:500}.ai-jobs-head h3 svg{color:#14b8a6}.ai-jobs-head span{color:#6b7280;font-size:.7rem;border-radius:8px;border:1px solid rgba(255,255,255,.8);background:#ffffff80;padding:5px 8px}.ai-jobs-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:10px}.ai-job-card{position:relative;overflow:hidden;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:22px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 24px #00000008;padding:16px;display:flex;flex-direction:column;cursor:pointer}.ai-job-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px #0f172a12}.ai-job-card:focus-visible{outline:2px solid rgba(20,184,166,.45);outline-offset:2px}.ai-job-rail{position:absolute;top:0;right:0;width:8px;height:100%}.ai-job-rail.teal{background:#14b8a633}.ai-job-rail.indigo{background:#6366f133}.ai-job-top{padding-right:10px;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.ai-company-logo,.ai-company-logo-fallback{width:46px;height:46px;border-radius:10px;object-fit:cover;border:1px solid rgba(229,231,235,.85);background:#fff}.ai-company-logo-fallback{display:grid;place-items:center;color:#111827;font-weight:600}.ai-match-col{display:grid;justify-items:end;gap:4px}.ai-match-pill{display:inline-flex;align-items:center;gap:4px;border-radius:8px;border:1px solid #ccfbf1;background:#f0fdfa;color:#0f766e;padding:4px 8px;font-size:.7rem;font-weight:500}.ai-match-col small{font-size:.62rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em}.ai-job-title-wrap{margin-bottom:10px}.ai-job-title-wrap h4{margin:0;font-size:.94rem;font-weight:500;color:#111827}.ai-job-title-wrap p{margin:2px 0 0;color:#6b7280;font-size:.78rem}.ai-job-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ai-job-tags span{font-size:.66rem;color:#4b5563;border:1px solid rgba(229,231,235,.85);background:#ffffffd1;border-radius:8px;padding:4px 8px}.ai-job-bottom{margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.82);display:flex;justify-content:space-between;align-items:center}.theme-dark .ai-job-bottom{border-top-color:#ffffff14}.ai-job-bottom span{font-size:.66rem;color:#9ca3af}.ai-job-bottom button{border:0;background:transparent;color:#111827;font-size:.78rem;font-weight:500;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.ai-job-bottom button:hover{color:#0f766e}.theme-dark .ai-job-bottom button{color:#f3f4f6}.theme-dark .ai-job-bottom button:hover{color:#2dd4bf}@media(max-width:1200px){.ai-form-grid,.ai-jobs-grid{grid-template-columns:1fr 1fr}}@media(max-width:860px){.ai-form-grid{grid-template-columns:1fr}.ai-create-actions{justify-content:stretch}.ai-create-actions button{width:100%;justify-content:center}.ai-jobs-head{flex-direction:column;align-items:flex-start}.ai-jobs-grid{grid-template-columns:1fr}}.career-main{position:relative}.career-status-pill{border-radius:999px;border:1px solid #99f6e4;background:#f0fdfacc;color:#0f766e;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;font-size:.8rem;font-weight:500}.career-head{max-width:760px;margin-bottom:20px}.career-head-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.career-head-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#06b6d4);color:#fff;display:grid;place-items:center}.career-head h1{margin:0;font-size:clamp(2rem,3.4vw,2.6rem);letter-spacing:-.03em;color:#111827}.career-head-kicker{margin:12px 0 6px;color:#0f766e;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.career-head-desc{margin:0;color:#6b7280;line-height:1.65}.career-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:18px;min-height:calc(100vh - 250px);padding-bottom:18px}.career-agents-col{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 24px #00000008;overflow:hidden;display:flex;flex-direction:column}.career-agents-head{padding:16px;border-bottom:1px solid rgba(229,231,235,.7);background:#ffffff6b}.career-agents-head h2{margin:0 0 10px;color:#111827;font-size:.9rem}.career-agents-head button{width:100%;border:0;border-radius:12px;background:linear-gradient(to right,#14b8a6,#06b6d4);color:#fff;padding:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:.82rem;font-weight:500;cursor:pointer;box-shadow:0 4px 14px #14b8a663}.career-agents-list{flex:1;overflow-y:auto;padding:10px;display:grid;align-content:start;gap:4px}.career-agents-list button{width:100%;text-align:left;border:0;border-radius:10px;background:transparent;color:#4b5563;padding:10px 11px;font-size:.82rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.career-agents-list button:hover{background:#f9fafbe6;color:#111827}.career-agents-list button.active{border:1px solid #99f6e4;background:#f0fdfa;color:#0f766e;font-weight:500}.career-agents-list button.active i{width:6px;height:6px;border-radius:999px;background:#14b8a6}.career-reco-col{min-width:0;display:flex;flex-direction:column}.career-reco-head{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.career-reco-head h2{margin:0;color:#111827;font-size:1.03rem;font-weight:500;display:flex;align-items:center;gap:7px}.career-reco-head h2 span{color:#0f766e;border:1px solid #99f6e4;background:#f0fdfa;border-radius:6px;padding:2px 8px;font-size:.84rem}.career-reco-head button{border:0;background:transparent;color:#6b7280;font-size:.75rem;font-weight:500;display:inline-flex;align-items:center;gap:5px;cursor:pointer}.career-cards{flex:1;overflow-y:auto;padding-right:6px}.career-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start;grid-auto-rows:min-content}.career-card{position:relative;overflow:hidden;border-radius:14px;border:1px solid rgba(153,246,228,.5);background:linear-gradient(135deg,#fff,#f0fdfa73);padding:12px;transition:border-color .4s ease,box-shadow .4s ease}.career-card:hover{border-color:#5eead4;box-shadow:0 8px 20px #14b8a614}.career-card-glow{position:absolute;top:-24px;right:-24px;width:100px;height:100px;border-radius:999px;background:linear-gradient(to bottom right,#2dd4bf2e,#22d3ee29);filter:blur(22px);transition:transform .5s ease}.career-card:hover .career-card-glow{transform:scale(1.5)}.career-card-wand{position:absolute;top:11px;right:11px;color:#5eead4}.career-card-content{position:relative;z-index:1}.career-card-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;margin-bottom:10px}.career-card-icon.blue{background:#eff6ff;color:#3b82f6}.career-card-icon.indigo{background:#eef2ff;color:#6366f1}.career-card-icon.emerald{background:#ecfdf5;color:#10b981}.career-card-icon.orange{background:#fff7ed;color:#f97316}.career-card-icon.rose{background:#fff1f2;color:#f43f5e}.career-card-icon.slate{background:#f1f5f9;color:#475569}.career-card h3{margin:0 0 6px;color:#111827;font-size:.8rem;font-weight:500;line-height:1.4}.career-card p{margin:0;font-size:.7rem;line-height:1.4;display:inline-flex;align-items:flex-start;gap:5px}.career-card p.tone.strong{color:#0f766e}.career-card p.tone.neutral{color:#4f46e5}.career-card p.tone.soft{color:#6b7280}.theme-dark .career-status-pill{border-color:#14b8a659;background:#14b8a61f;color:#2dd4bf}.theme-dark .career-head h1,.theme-dark .career-agents-head h2,.theme-dark .career-reco-head h2,.theme-dark .career-card h3{color:#fff}.theme-dark .career-head-desc,.theme-dark .career-agents-list button,.theme-dark .career-reco-head button,.theme-dark .career-card p.tone.soft,.theme-dark .career-head-kicker{color:#9ca3af}.theme-dark .career-head-icon,.theme-dark .career-agents-col,.theme-dark .career-card{border-color:#ffffff14}.theme-dark .career-agents-col,.theme-dark .career-card{background:#ffffff05}.theme-dark .career-agents-head{border-color:#ffffff14;background:#ffffff08}.theme-dark .career-agents-list button:hover{background:#ffffff0f;color:#f3f4f6}.theme-dark .career-agents-list button.active,.theme-dark .career-reco-head h2 span{border-color:#14b8a659;background:#14b8a61f;color:#2dd4bf}.theme-dark .career-card-glow{background:linear-gradient(to bottom right,#2dd4bf26,#6366f124)}.theme-dark .career-card-wand{color:#2dd4bf}@media(max-width:1180px){.career-grid{grid-template-columns:1fr;min-height:auto}.career-agents-col{max-height:280px}.career-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.career-cards{grid-template-columns:1fr}}.cv-head{margin-bottom:22px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.cv-design-toggle{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;color:#111827;cursor:pointer;transition:background-color .2s ease;font-size:.8rem;font-weight:500}.cv-design-toggle:hover{background:#ffffffd6}.cv-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em}.cv-head p{margin:0;color:#6b7280;font-size:1.1rem}.cv-edit-btn{border:0;border-radius:12px;background:#111827;color:#fff;padding:10px 16px;font-size:.88rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 6px 14px #0f172a29}.cv-edit-btn:hover{background:#1f2937}.cv-layout{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding-bottom:24px}.cv-left,.cv-right{display:grid;gap:24px;align-content:start}.cv-card{background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px}.cv-avatar-wrap{display:flex;justify-content:center;margin-bottom:16px}.cv-avatar{width:96px;height:96px;border-radius:22px;object-fit:cover;border:4px solid rgba(255,255,255,.85);box-shadow:0 8px 16px #0f172a1f}.cv-avatar-fallback{background:linear-gradient(135deg,#0f766e,#06b6d4);color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:600}.cv-section-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}.cv-section-head svg{color:#0f766e}.cv-section-head h2{margin:0;font-size:1.08rem;font-weight:500;letter-spacing:-.01em}.cv-personal-list{display:grid;gap:10px}.cv-personal-list div{display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid rgba(255,255,255,.62);padding-bottom:8px}.cv-personal-list div:last-child{border-bottom:0;padding-bottom:0}.cv-personal-list span{color:#6b7280;font-size:.84rem}.cv-personal-list strong{color:#111827;font-size:.84rem;font-weight:500;text-align:right}.cv-chip-wrap{display:flex;flex-wrap:wrap;gap:8px}.cv-chip{display:inline-flex;align-items:center;padding:6px 12px;border-radius:10px;background:#fff;border:1px solid rgba(229,231,235,.85);box-shadow:0 1px 3px #0f172a0f;color:#374151;font-size:.74rem;font-weight:500}.cv-language-list{display:grid;gap:10px}.cv-language-list div{display:flex;justify-content:space-between;align-items:center}.cv-language-list strong{font-size:.86rem;font-weight:500;color:#111827}.cv-language-list span{font-size:.72rem;color:#0f766e;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:8px;padding:4px 10px}.cv-mini-grid{display:grid;gap:24px}.cv-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.cv-list li{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;color:#374151}.cv-list li svg{color:#14b8a6}.cv-timeline-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}.cv-timeline-icon{width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.85);background:#fffc;display:grid;place-items:center;box-shadow:0 2px 8px #0f172a14}.cv-timeline-icon svg{color:#0f766e}.cv-timeline-head h2{margin:0;font-size:1.45rem;letter-spacing:-.01em;font-weight:500}.cv-timeline{position:relative;display:grid;gap:18px}.cv-timeline:before{content:"";position:absolute;left:19px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#5eead4,#a5f3fc,transparent)}.cv-timeline-item{display:flex;align-items:flex-start;gap:10px;position:relative}.cv-timeline-dot{width:40px;height:40px;border-radius:999px;border:4px solid #ecf0f0;background:#fff;display:grid;place-items:center;box-shadow:0 2px 8px #0f172a14;z-index:2;flex-shrink:0}.cv-timeline-dot svg{color:#0f766e}.cv-timeline-card{width:calc(100% - 50px);background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:18px;transition:.2s ease}.cv-timeline-card:hover{background:#ffffffd1;box-shadow:0 10px 24px #0f172a14}.cv-timeline-card h3{margin:0 0 8px;font-size:1rem;font-weight:500;color:#111827}.cv-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.cv-meta strong{color:#0f766e;font-size:.84rem;font-weight:500}.cv-meta span{color:#6b7280;font-size:.72rem;border:1px solid #e5e7eb;background:#fff;border-radius:6px;padding:2px 8px}.cv-timeline-card p{margin:0;color:#4b5563;font-size:.84rem;line-height:1.55}.cv-divider{height:1px;background:#fff9}.cv-design-reference .cv-card{border-radius:28px;box-shadow:0 10px 28px #0f172a0d}.cv-design-reference .cv-timeline-head h2{font-size:1.55rem}.theme-dark .cv-head h1,.theme-dark .cv-head p,.theme-dark .cv-timeline-head h2,.theme-dark .cv-section-head h2,.theme-dark .cv-personal-list strong,.theme-dark .cv-language-list strong,.theme-dark .cv-timeline-card h3{color:#fff}.theme-dark .cv-head p,.theme-dark .cv-personal-list span,.theme-dark .cv-list li,.theme-dark .cv-meta span,.theme-dark .cv-timeline-card p{color:#9ca3af}.theme-dark .cv-design-toggle{border-color:#ffffff14;background:#ffffff08;color:#f3f4f6}.theme-dark .cv-design-toggle:hover{background:#ffffff14}.theme-dark .cv-card,.theme-dark .cv-timeline-card{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.theme-dark .cv-chip{background:#ffffff0d;border-color:#ffffff1a;color:#d1d5db}.theme-dark .cv-language-list span{color:#2dd4bf;background:#14b8a61a;border-color:#14b8a64d}.theme-dark .cv-timeline:before{background:linear-gradient(to bottom,rgba(20,184,166,.5),rgba(6,182,212,.3),transparent)}.theme-dark .cv-timeline-dot{background:#111827;border-color:#0a0a0a}.theme-dark .cv-meta strong{color:#2dd4bf}.theme-dark .cv-divider{background:#ffffff14}@media(max-width:1200px){.cv-layout{grid-template-columns:1fr}.cv-head{flex-direction:column;align-items:flex-start}}@media(min-width:980px){.cv-design-reference .cv-timeline:before{left:50%;transform:translate(-50%);background:linear-gradient(to bottom,#86efac,#67e8f9,transparent)}.cv-design-reference .cv-timeline-item{justify-content:space-between}.cv-design-reference .cv-timeline-item:nth-child(odd){flex-direction:row-reverse}.cv-design-reference .cv-timeline-dot{position:absolute;left:50%;transform:translate(-50%)}.cv-design-reference .cv-timeline-card{width:calc(50% - 2.5rem);padding:24px;border-radius:28px}}@media(max-width:860px){.cv-design-toggle span{display:none}}.job-detail-back-btn{border:1px solid rgba(255,255,255,.82);background:#ffffff9e;border-radius:999px;padding:8px 13px;display:inline-flex;align-items:center;gap:8px;color:#4b5563;cursor:pointer;font-size:.8rem;font-weight:500}.job-detail-back-btn:hover{background:#ffffffd6;color:#111827}.job-detail-back-row{margin-bottom:16px}.job-detail-header{margin-bottom:24px;display:flex;align-items:flex-start;gap:18px}.job-detail-logo-wrap{width:80px;height:80px;border-radius:18px;overflow:hidden;flex-shrink:0}.job-detail-logo-image,.job-detail-logo-fallback{width:100%;height:100%;object-fit:cover;border-radius:18px;border:1px solid rgba(229,231,235,.9)}.job-detail-logo-fallback{background:#fff;display:grid;place-items:center;color:#111827;font-size:1.9rem;font-weight:600}.job-detail-heading h1{margin:0 0 10px;font-size:clamp(2rem,3.8vw,2.8rem);letter-spacing:-.03em;color:#111827}.job-detail-meta{display:flex;flex-wrap:wrap;gap:10px 14px}.job-detail-meta span{display:inline-flex;align-items:center;gap:6px;color:#6b7280;font-size:.86rem}.job-detail-grid{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(0,.65fr);gap:24px;padding-bottom:20px}.job-detail-main-card{display:grid;gap:20px}.job-detail-section h2,.job-detail-section h3{margin:0 0 10px;color:#111827;font-weight:500;letter-spacing:-.01em}.job-detail-section h2{font-size:1.2rem}.job-detail-section h3{font-size:1rem}.job-detail-section p{margin:0;color:#4b5563;line-height:1.65;font-size:.95rem}.job-detail-description-list{display:grid;gap:10px}.job-detail-rich-html{color:#4b5563;line-height:1.65;font-size:.95rem}.job-detail-rich-html p,.job-detail-rich-html ul,.job-detail-rich-html ol{margin:0 0 12px}.job-detail-rich-html ul,.job-detail-rich-html ol{padding-left:20px}.job-detail-rich-html li{margin-bottom:6px}.job-detail-rich-html a{color:#0f766e}.job-detail-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.job-detail-info-grid>div{border:1px solid rgba(229,231,235,.82);background:#ffffffa3;border-radius:12px;padding:11px 12px;display:grid;gap:4px}.job-detail-info-grid span{color:#6b7280;font-size:.76rem}.job-detail-info-grid strong{color:#111827;font-size:.86rem;font-weight:600}.job-detail-side-col{display:grid;gap:16px;align-content:start}.job-detail-actions-card{display:grid;gap:10px;position:static}.job-detail-actions-card h2{margin:0 0 4px;color:#111827;font-size:1.03rem;font-weight:500}.job-detail-action-primary,.job-detail-action-secondary{border-radius:14px;border:1px solid;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;font-size:.86rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.job-detail-action-primary{color:#0f766e;border-color:#99f6e4;background:linear-gradient(to right,#ecfeff,#f0fdfa)}.job-detail-action-primary:hover{background:linear-gradient(to right,#cffafe,#ccfbf1)}.job-detail-action-secondary{color:#3730a3;border-color:#c7d2fe;background:linear-gradient(to right,#eef2ff,#f5f3ff)}.job-detail-action-secondary:hover{background:linear-gradient(to right,#e0e7ff,#ede9fe)}.job-detail-action-primary span,.job-detail-action-secondary span{display:inline-flex;align-items:center;gap:8px}.job-detail-action-divider{height:1px;background:#e5e7ebd6;margin:3px 0}.job-detail-text-action{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;color:#4b5563;border-radius:10px;padding:9px 10px;font-size:.84rem;font-weight:500;cursor:pointer;text-decoration:none}.job-detail-text-action:hover{background:#f9fafbeb;color:#111827}.job-detail-text-action:disabled{opacity:.7;cursor:not-allowed}.job-detail-text-action.link{justify-content:flex-start}.job-detail-text-action.success:hover{background:#ecfdf5;color:#047857}.job-detail-text-action.success.is-done{color:#059669}.job-detail-company-card h3{margin:0 0 12px;color:#111827;font-size:1rem;font-weight:500}.job-detail-company-list{display:grid;gap:10px}.job-detail-company-list>div{border:1px solid rgba(229,231,235,.82);background:#ffffffa3;border-radius:12px;padding:10px 12px;display:grid;gap:4px}.job-detail-company-list span{color:#6b7280;font-size:.74rem}.job-detail-company-list strong{color:#111827;font-size:.86rem}.theme-dark .job-detail-back-btn{border-color:#ffffff14;background:#ffffff08;color:#d1d5db}.theme-dark .job-detail-back-btn:hover{background:#ffffff14;color:#fff}.theme-dark .job-detail-heading h1,.theme-dark .job-detail-section h2,.theme-dark .job-detail-section h3,.theme-dark .job-detail-actions-card h2,.theme-dark .job-detail-company-card h3,.theme-dark .job-detail-info-grid strong,.theme-dark .job-detail-company-list strong{color:#fff}.theme-dark .job-detail-meta span,.theme-dark .job-detail-section p,.theme-dark .job-detail-rich-html,.theme-dark .job-detail-info-grid span,.theme-dark .job-detail-company-list span,.theme-dark .job-detail-text-action{color:#9ca3af}.theme-dark .job-detail-rich-html a{color:#2dd4bf}.theme-dark .job-detail-info-grid>div,.theme-dark .job-detail-company-list>div{border-color:#ffffff14;background:#ffffff08}.theme-dark .job-detail-action-divider{background:#ffffff14}.theme-dark .job-detail-text-action:hover{background:#ffffff14;color:#f3f4f6}@media(max-width:1180px){.job-detail-grid{grid-template-columns:1fr}}@media(max-width:760px){.job-detail-header{flex-direction:column;gap:12px}.job-detail-logo-wrap{width:68px;height:68px}.job-detail-info-grid{grid-template-columns:1fr}}.jobs-page-head{margin-bottom:28px}.jobs-page-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em;color:#111827}.jobs-page-head p{margin:0;color:#6b7280;font-size:1.1rem}.theme-dark .jobs-page-head h1,.theme-dark .jobs-page-head p,.theme-dark .jobs-content-head h2{color:#fff}.theme-dark .jobs-page-head p,.theme-dark .jobs-content-head span,.theme-dark .jobs-card-title p,.theme-dark .jobs-card-description,.theme-dark .jobs-card-distance{color:#9ca3af}.jobs-layout-toggle{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;color:#111827;cursor:pointer;transition:background-color .2s ease;font-size:.8rem;font-weight:500}.jobs-layout-toggle:hover{background:#ffffffd6}.theme-dark .jobs-layout-toggle{border-color:#ffffff14;background:#ffffff08;color:#f3f4f6}.theme-dark .jobs-layout-toggle:hover{background:#ffffff14}.jobs-grid{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding-bottom:24px}.jobs-filter{position:sticky;top:0;height:fit-content}.theme-dark .jobs-filter,.theme-dark .jobs-card,.theme-dark .jobs-top-filters{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.jobs-filter h2{margin:0 0 24px;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.jobs-filter h2 svg{color:#0f766e}.theme-dark .jobs-filter h2,.theme-dark .jobs-top-filter-title h2,.theme-dark .jobs-card-title h3{color:#fff}.jobs-filter-block{margin-bottom:24px}.jobs-filter-block>label{display:block;margin-bottom:8px;font-size:.9rem;font-weight:500;color:#374151}.theme-dark .jobs-filter-block>label,.theme-dark .jobs-range-head label,.theme-dark .jobs-hours-row>div>label{color:#d1d5db}.jobs-filter-block>p{margin:0 0 12px;font-size:.74rem;color:#6b7280}.jobs-search-wrap{position:relative}.jobs-search-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9ca3af}.jobs-search-wrap input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.8);background:#ffffff80;padding:10px 14px 10px 40px;font-size:.87rem;color:#111827;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.theme-dark .jobs-search-wrap input,.theme-dark .jobs-title-input-wrap,.theme-dark .jobs-title-input-wrap input,.theme-dark .jobs-radio-btn,.theme-dark .jobs-hour-btn{background:#ffffff08;border-color:#ffffff14;color:#d1d5db}.theme-dark .jobs-search-wrap input::placeholder,.theme-dark .jobs-title-input-wrap input::placeholder{color:#6b7280}.jobs-search-wrap input::placeholder{color:#9ca3af}.jobs-search-wrap input:focus{outline:none;border-color:#2dd4bfe6;background:#fff;box-shadow:0 0 0 4px #14b8a61a}.jobs-separator{height:1px;background:#fff9;margin-bottom:24px}.jobs-radio-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.jobs-radio-btn{border:1px solid rgba(255,255,255,.55);background:#ffffff80;color:#6b7280;font-size:.84rem;font-weight:500;border-radius:12px;padding:10px 12px;cursor:pointer;transition:.2s ease}.jobs-radio-btn:hover{background:#ffffffd1}.jobs-radio-btn.active{color:#0f766e;background:#f0fdfa;border-color:#bae6fd}.theme-dark .jobs-radio-btn.active{color:#2dd4bf;background:#14b8a61a;border-color:#14b8a64d}.jobs-range-block{margin-bottom:28px}.jobs-range-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.jobs-range-head span{font-size:.84rem;font-weight:500;color:#0f766e;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:6px;padding:2px 8px}.jobs-filter input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent}.jobs-filter input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:20px;width:20px;border-radius:999px;background:#fff;border:2px solid #14b8a6;cursor:pointer;margin-top:-8px;box-shadow:0 2px 6px #0000001a}.jobs-filter input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;border-radius:2px;background:#14b8a633}.jobs-filter input[type=range]:focus{outline:none}.jobs-range-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.74rem;color:#9ca3af}.jobs-hours-grid{display:flex;flex-wrap:wrap;gap:8px}.jobs-hour-btn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.55);background:#ffffff80;color:#6b7280;font-size:.84rem;font-weight:500;cursor:pointer;transition:.2s ease}.jobs-hour-btn:hover{background:#ffffffd1}.jobs-hour-btn.active{background:#14b8a6;color:#fff;border-color:#0f766e}.theme-dark .jobs-hour-btn.active{background:#14b8a6;border-color:#14b8a680}.jobs-apply-btn{width:100%;margin-top:8px;border:0;border-radius:12px;background:#111827;color:#fff;padding:12px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s ease;box-shadow:0 6px 14px #0f172a29}.theme-dark .jobs-apply-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.1)}.jobs-apply-btn:hover{background:#1f2937}.jobs-content-head{margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:8px}.jobs-content-head h2{margin:0;font-size:1.25rem;font-weight:500;letter-spacing:-.01em;color:#111827}.jobs-content-head span{font-size:.9rem;color:#6b7280}.jobs-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.jobs-card{background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;min-height:100%;cursor:pointer}.jobs-card:hover{background:#fffc;box-shadow:0 10px 24px #0f172a14;transform:translateY(-1px)}.jobs-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.jobs-card-logo{width:56px;height:56px;border-radius:16px;background:#111827;color:#fff;font-size:1.4rem;font-weight:500;display:grid;place-items:center;box-shadow:0 4px 10px #0f172a1f}.jobs-card-logo-image-wrap{background:#fff;border:1px solid rgba(229,231,235,.85);box-shadow:0 4px 10px #0f172a14;overflow:hidden}.jobs-card-logo-image{width:100%;height:100%;object-fit:cover}.jobs-card-title{margin-bottom:8px}.jobs-card-title h3{margin:0;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:#111827;transition:color .2s ease}.theme-dark .jobs-card-title h3{color:#fff}.jobs-card:hover .jobs-card-title h3{color:#0f766e}.jobs-card-title p{margin:2px 0 0;font-size:.86rem;color:#6b7280}.jobs-card-description{margin:0 0 22px;color:#4b5563;font-size:.86rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.jobs-card-bottom{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.65);display:flex;align-items:center;justify-content:space-between}.theme-dark .jobs-card-bottom{border-top-color:#ffffff14}.jobs-card-distance{display:inline-flex;align-items:center;gap:6px;color:#6b7280;font-size:.78rem}.jobs-card-distance svg{color:#0f766e}.jobs-card-arrow{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;color:#9ca3af;background:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s ease}.theme-dark .jobs-card-arrow{background:#ffffff0d;border-color:#ffffff1a;color:#6b7280}.jobs-card:hover .jobs-card-arrow{background:#f0fdfa;color:#0f766e;border-color:#99f6e4}.jobs-load-more-wrap{margin-top:28px;display:flex;justify-content:center}.jobs-load-more{border:1px solid #d1d5db;border-radius:12px;background:#ffffff59;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#4b5563;padding:10px 24px;font-size:.86rem;font-weight:500;cursor:pointer;transition:.2s ease}.jobs-load-more:hover{background:#fff9;color:#111827;border-color:#9ca3af}.jobs-top-layout{display:grid;gap:24px;padding-bottom:24px}.jobs-top-filters{padding:24px}.jobs-top-filter-title{display:flex;align-items:center;gap:8px;margin-bottom:20px}.jobs-top-filter-title h2{margin:0;font-size:1.1rem;font-weight:500;letter-spacing:-.01em}.jobs-top-filter-title svg{color:#0f766e}.jobs-top-controls{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:20px;align-items:end;margin-bottom:20px}.jobs-filter-block.no-margin{margin-bottom:0}.jobs-top-range{padding-bottom:4px}.jobs-top-apply{margin-top:0;min-width:180px}.jobs-title-picker{position:relative}.jobs-title-input-wrap{display:flex;flex-wrap:wrap;gap:8px;min-height:46px;border-radius:12px;border:1px solid rgba(255,255,255,.8);background:#ffffff80;padding:6px;align-items:center}.jobs-title-input-wrap:focus-within{border-color:#2dd4bfe6;background:#fff;box-shadow:0 0 0 4px #14b8a61a}.jobs-title-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:10px;background:#fff;border:1px solid rgba(229,231,235,.8);box-shadow:0 1px 3px #0f172a0f;font-size:.72rem;font-weight:500;color:#374151}.jobs-title-chip button{border:0;background:transparent;color:#9ca3af;display:grid;place-items:center;cursor:pointer;padding:0}.jobs-title-chip button:hover{color:#111827}.jobs-title-input-wrap input{flex:1;min-width:180px;border:0;background:transparent;outline:none;font-size:.86rem;color:#374151;padding:6px 8px}.jobs-title-input-wrap input::placeholder{color:#9ca3af}.jobs-title-suggestions{position:absolute;top:calc(100% + 8px);left:0;width:min(100%,340px);background:#ffffffe6;border:1px solid rgba(255,255,255,.8);border-radius:16px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 10px 36px #0000001a;padding:8px;display:grid;gap:4px;opacity:0;visibility:hidden;transform:scale(.98);transform-origin:top left;transition:.18s ease;z-index:40}.jobs-title-picker:focus-within .jobs-title-suggestions{opacity:1;visibility:visible;transform:scale(1)}.jobs-title-option{border:0;border-radius:10px;background:transparent;color:#4b5563;font-size:.84rem;font-weight:500;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.jobs-title-option:hover{background:#ffffffd9;color:#111827}.jobs-title-option.active{color:#0f766e;background:#14b8a61a}.jobs-title-option.active svg{color:#14b8a6}.jobs-separator.top-margin{margin:24px 0}.jobs-hours-row{display:flex;justify-content:space-between;gap:16px;align-items:center}.jobs-hours-row>div>label{display:block;margin-bottom:3px;font-size:.9rem;font-weight:500;color:#374151}.jobs-hours-row>div>p{margin:0;font-size:.74rem;color:#6b7280}.jobs-cards.jobs-cards-top{grid-template-columns:1fr 1fr 1fr}@media(max-width:1200px){.jobs-grid{grid-template-columns:1fr}.jobs-filter{position:static}.jobs-top-controls{grid-template-columns:1fr 1fr}.jobs-top-apply{width:100%}.jobs-hours-row{flex-direction:column;align-items:flex-start}.jobs-cards.jobs-cards-top{grid-template-columns:1fr 1fr}}@media(max-width:860px){.jobs-cards,.jobs-top-controls,.jobs-cards.jobs-cards-top{grid-template-columns:1fr}.jobs-layout-toggle span{display:none}}.msg-main{display:flex;flex-direction:column}.msg-head{margin-bottom:16px;display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.msg-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em}.msg-head p{margin:0;color:#6b7280;font-size:1.05rem}.theme-dark .msg-head h1,.theme-dark .msg-head p{color:#fff}.theme-dark .msg-head p{color:#9ca3af}.msg-mark-btn{border:1px solid rgba(229,231,235,.85);background:#fff;color:#374151;border-radius:12px;padding:10px 16px;font-size:.84rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 2px 8px #0f172a0f}.msg-mark-btn:hover{background:#f9fafb}.theme-dark .msg-mark-btn{border-color:#ffffff1a;background:#ffffff0d;color:#d1d5db}.theme-dark .msg-mark-btn:hover{background:#ffffff14}.msg-layout{flex:1;min-height:500px;margin-bottom:4px;display:flex;gap:24px}.msg-threads{width:33.333%;min-width:330px;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;display:flex;flex-direction:column;overflow:hidden}.theme-dark .msg-threads,.theme-dark .msg-chat{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.msg-threads-head{padding:16px;border-bottom:1px solid rgba(255,255,255,.62)}.msg-search-wrap{position:relative;margin-bottom:10px}.msg-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.msg-search-wrap input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.82);background:#ffffff80;padding:10px 12px 10px 38px;font-size:.86rem;color:#111827}.theme-dark .msg-search-wrap input{background:#ffffff08;border-color:#ffffff14;color:#f3f4f6}.msg-search-wrap input:focus{outline:none;border-color:#2dd4bfe6;box-shadow:0 0 0 4px #14b8a61a}.msg-filter-row{display:flex;gap:8px}.msg-filter-row button{border:1px solid rgba(255,255,255,.75);background:#ffffffa6;color:#4b5563;border-radius:10px;padding:6px 12px;font-size:.72rem;font-weight:500;cursor:pointer}.msg-filter-row button.active{background:#f0fdfa;border-color:#ccfbf1;color:#0f766e}.theme-dark .msg-filter-row button{background:#ffffff0d;border-color:#ffffff14;color:#9ca3af}.theme-dark .msg-filter-row button.active{background:#14b8a61a;border-color:#14b8a64d;color:#2dd4bf}.msg-thread-list{padding:10px;overflow-y:auto;display:grid;gap:6px}.msg-thread-item{width:100%;border:1px solid transparent;background:transparent;border-radius:16px;display:flex;align-items:flex-start;gap:10px;padding:10px;text-align:left;cursor:pointer;position:relative}.msg-thread-item:hover{background:#ffffff6b;border-color:#ffffff9e}.theme-dark .msg-thread-item:hover{background:#ffffff0d;border-color:#ffffff1a}.msg-thread-item.active{background:#ffffffd1;border-color:#fff;box-shadow:0 2px 8px #0f172a0d}.theme-dark .msg-thread-item.active{background:#ffffff1a;border-color:#ffffff1f}.msg-thread-item.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:999px;background:#14b8a6}.msg-thread-avatar-wrap{width:44px;height:44px;position:relative;flex-shrink:0}.msg-thread-avatar,.msg-thread-avatar-fallback{width:44px;height:44px;border-radius:999px;object-fit:cover}.msg-thread-avatar-fallback{background:linear-gradient(135deg,#c7d2fe,#e9d5ff);color:#4338ca;display:grid;place-items:center;font-size:.84rem;font-weight:600}.msg-thread-online{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:999px;border:2px solid #fff;background:#22c55e}.msg-thread-content{min-width:0;flex:1}.msg-thread-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:2px}.msg-thread-row h3{margin:0;font-size:.86rem;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-dark .msg-thread-row h3,.theme-dark .msg-chat-head h2{color:#fff}.msg-thread-row span{font-size:.72rem;color:#9ca3af;flex-shrink:0}.msg-thread-content p{margin:0;color:#6b7280;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-dark .msg-thread-content p,.theme-dark .msg-thread-content small,.theme-dark .msg-thread-row span{color:#9ca3af}.msg-thread-content p.unread{color:#1f2937;font-weight:500}.msg-thread-content small{margin-top:2px;display:inline-block;color:#9ca3af;font-size:.72rem}.msg-thread-unread{width:20px;height:20px;border-radius:999px;background:#14b8a6;color:#fff;display:grid;place-items:center;font-size:.64rem;font-weight:600;flex-shrink:0;margin-top:2px}.msg-chat{width:66.667%;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;display:flex;flex-direction:column;overflow:hidden}.msg-chat-head{padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.62);background:#ffffff4d;display:flex;justify-content:space-between;align-items:center}.theme-dark .msg-chat-head{background:#ffffff08;border-bottom-color:#ffffff14}.msg-chat-head h2{margin:0;font-size:1rem;font-weight:500;color:#111827}.msg-chat-company{display:flex;align-items:center;gap:12px}.msg-chat-company p{margin:2px 0 0;color:#0f766e;font-size:.74rem;font-weight:500}.theme-dark .msg-chat-company p{color:#2dd4bf}.msg-chat-avatar,.msg-chat-avatar-fallback{width:40px;height:40px;border-radius:999px;object-fit:cover}.msg-chat-avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#c7d2fe,#e9d5ff);color:#4338ca;font-size:.84rem;font-weight:600}.msg-chat-actions{display:flex;gap:8px}.msg-chat-actions button{width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.82);background:#ffffff8c;color:#4b5563;display:grid;place-items:center;cursor:pointer}.theme-dark .msg-chat-actions button{background:#ffffff0d;border-color:#ffffff1a;color:#9ca3af}.msg-chat-actions button:hover{background:#fff}.msg-chat-body{flex:1;overflow-y:auto;padding:20px;display:grid;align-content:start;gap:10px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.2))}.theme-dark .msg-chat-body{background:linear-gradient(to bottom,transparent,rgba(255,255,255,.03))}.msg-day-sep{display:table;width:fit-content;margin:0 auto;font-size:.72rem;color:#9ca3af;border:1px solid rgba(255,255,255,.68);background:#ffffff85;padding:3px 10px;border-radius:999px}.theme-dark .msg-day-sep{color:#9ca3af;border-color:#ffffff1a;background:#ffffff0d}.msg-bubble-row{display:flex;gap:8px;max-width:75%}.msg-bubble-row.mine{margin-left:auto;flex-direction:row-reverse}.msg-mini-avatar,.msg-mini-avatar-fallback{width:30px;height:30px;border-radius:999px;object-fit:cover;margin-top:auto}.msg-mini-avatar-fallback{display:grid;place-items:center;background:#e5e7eb;color:#374151;font-size:.7rem;font-weight:600}.msg-bubble-wrap{display:grid;gap:3px}.msg-time{color:#9ca3af;font-size:.68rem}.msg-bubble{border-radius:16px 16px 16px 6px;background:#fff;border:1px solid rgba(255,255,255,.85);color:#374151;padding:10px 12px;font-size:.84rem;line-height:1.45;box-shadow:0 2px 8px #0f172a0a}.theme-dark .msg-bubble{background:#ffffff14;border-color:#ffffff1a;color:#e5e7eb}.msg-bubble.mine{background:#14b8a6;border-color:#14b8a6;color:#fff;border-bottom-left-radius:16px;border-bottom-right-radius:6px}.msg-input-area{padding:12px;border-top:1px solid rgba(255,255,255,.62);background:#ffffff59}.theme-dark .msg-input-area{border-top-color:#ffffff14;background:#ffffff08}.msg-input-wrap{border-radius:16px;border:1px solid rgba(255,255,255,.85);background:#fffc;box-shadow:0 2px 8px #0f172a0d;padding:6px;display:flex;align-items:flex-end;gap:6px}.theme-dark .msg-input-wrap{background:#ffffff0d;border-color:#ffffff1a}.theme-dark .msg-input-wrap textarea{color:#fff}.msg-input-wrap>button{width:34px;height:34px;border:0;background:transparent;color:#9ca3af;border-radius:10px;display:grid;place-items:center;cursor:pointer}.msg-input-wrap>button:hover{color:#0f766e;background:#f0fdfa}.msg-input-wrap textarea{flex:1;border:0;background:transparent;resize:none;outline:none;padding:8px;font-size:.84rem;color:#111827;max-height:120px}.msg-send-btn{min-width:84px;width:auto;padding:0 12px;border-radius:10px;border:0;background:#111827;color:#fff;font-size:.82rem;font-weight:500;display:inline-flex;align-items:center;gap:6px;justify-content:center}.msg-send-btn:hover{background:#1f2937}@media(max-width:1200px){.msg-layout{flex-direction:column;min-height:0}.msg-threads,.msg-chat{width:100%;min-width:0}.msg-threads{height:360px}.msg-chat{height:500px}}@media(max-width:860px){.msg-head{flex-direction:column;align-items:flex-start}.msg-mark-btn{width:100%;justify-content:center}.msg-bubble-row{max-width:88%}}.sim-main{position:relative}.sim-leave-btn{border:1px solid rgba(229,231,235,.82);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;color:#6b7280;font-size:.8rem;font-weight:500;cursor:pointer}.sim-leave-btn:hover{color:#111827;background:#ffffffd9}.sim-wrap{max-width:1160px;margin:0 auto;padding-bottom:30px}.sim-live-wrap{padding-bottom:24px}.sim-live-head{margin-bottom:22px}.sim-live-head h1{margin:0 0 8px;font-size:clamp(1.9rem,3vw,2.3rem);letter-spacing:-.03em;color:#111827}.sim-live-head p{margin:0;color:#6b7280}.sim-live-grid{min-height:calc(100vh - 260px);display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:22px}.sim-live-chat-card{border-radius:24px;border:1px solid rgba(229,231,235,.82);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 24px #0000000a;display:flex;flex-direction:column;overflow:hidden}.sim-live-chat-head{padding:14px 18px;border-bottom:1px solid rgba(229,231,235,.7);background:#ffffff6b;display:flex;align-items:center;justify-content:space-between;gap:10px}.sim-live-ai-row{display:flex;align-items:center;gap:10px}.sim-live-ai-avatar{width:40px;height:40px;border-radius:999px;border:1px solid #c7d2fe;background:#eef2ff;color:#4f46e5;display:grid;place-items:center}.sim-live-ai-row h3{margin:0 0 2px;color:#111827;font-size:.86rem;font-weight:500}.sim-live-ai-row p{margin:0;color:#6366f1;font-size:.74rem;display:inline-flex;align-items:center;gap:4px}.sim-live-ai-row p svg{animation:sim-pulse 1.8s ease-in-out infinite}.sim-live-more-btn{width:30px;height:30px;border-radius:999px;border:0;background:#f3f4f6cc;color:#6b7280;display:grid;place-items:center;cursor:pointer}.sim-live-chat-scroll{flex:1;overflow-y:auto;padding:20px;display:grid;align-content:start;gap:18px}.sim-live-msg-row{display:flex;align-items:flex-start;gap:10px;max-width:88%}.sim-live-msg-row.me{margin-left:auto;flex-direction:row-reverse}.sim-live-msg-avatar{width:30px;height:30px;border-radius:999px;flex-shrink:0;overflow:hidden;display:grid;place-items:center}.sim-live-msg-avatar.ai{border:1px solid #c7d2fe;background:#eef2ff;color:#4f46e5}.sim-live-msg-avatar.me{border:1px solid #d1d5db;background:#f9fafb;color:#6b7280}.sim-live-msg-avatar img{width:100%;height:100%;object-fit:cover}.sim-live-msg-bubble{padding:14px 16px;border-radius:16px;box-shadow:0 2px 10px #0f172a0d}.sim-live-msg-bubble.ai{border-top-left-radius:4px;border:1px solid rgba(229,231,235,.85);background:#fff}.sim-live-msg-bubble.me{border-top-right-radius:4px;background:#4f46e5;color:#eef2ff}.sim-live-msg-bubble p{margin:0;font-size:.86rem;line-height:1.6}.sim-live-msg-bubble.ai p{color:#4b5563}.sim-live-voice{border-top:1px solid rgba(229,231,235,.72);background:#ffffffc7;padding:18px;display:grid;justify-items:center;gap:10px}.sim-live-time-row{width:min(420px,100%);display:flex;align-items:center;justify-content:space-between;gap:10px}.sim-live-time{text-align:center}.sim-live-time small{display:block;color:#9ca3af;font-size:.68rem;margin-bottom:4px}.sim-live-time strong{color:#111827;font-size:.84rem;font-weight:600}.sim-live-wave{flex:1;max-width:180px;display:flex;align-items:center;justify-content:center;gap:6px}.sim-live-wave span{width:4px;height:28px;border-radius:999px;background:#6366f1;transform-origin:center;animation:sim-wave 1.2s ease-in-out infinite}.sim-live-mic-btn{width:62px;height:62px;border-radius:999px;border:2px solid #fecdd3;background:#fff1f2;color:#e11d48;display:grid;place-items:center;cursor:pointer;position:relative}.sim-live-mic-btn:before{content:"";position:absolute;inset:-2px;border-radius:999px;background:#fb718533;animation:sim-pulse-soft 2s ease-in-out infinite;z-index:0}.sim-live-mic-btn svg{position:relative;z-index:1}.sim-live-voice>p{margin:0;color:#e11d48;font-size:.76rem;animation:sim-pulse 2s ease-in-out infinite}.sim-live-side{overflow-y:auto;padding-right:2px;display:grid;align-content:start;gap:14px}.sim-live-side-card{border-radius:24px;border:1px solid rgba(229,231,235,.82);background:#ffffff9e;padding:16px}.sim-live-side-card h2{margin:0 0 14px;font-size:.78rem;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.sim-live-side-list{display:grid;gap:14px}.sim-live-side-list small{display:block;color:#6b7280;font-size:.7rem;margin-bottom:3px}.sim-live-side-list p{margin:0;color:#111827;font-size:.82rem;display:inline-flex;align-items:center;gap:6px}.sim-live-progress-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.sim-live-progress-head strong{color:#111827;font-size:.72rem}.sim-live-progress-track{height:6px;background:#e5e7eb;border-radius:999px;overflow:hidden}.sim-live-progress-track>span{display:block;width:40%;height:100%;background:#6366f1;box-shadow:0 0 8px #6366f180}.sim-live-coach-card{border-radius:24px;border:1px solid #c7d2fe;background:linear-gradient(to bottom right,#eef2ffb3,#fffc);padding:16px}.sim-live-coach-card h2{margin:0 0 12px;font-size:.82rem;color:#312e81;display:inline-flex;align-items:center;gap:6px}.sim-live-coach-list{display:grid;gap:10px}.sim-live-coach-list>div{border-radius:12px;border:1px solid rgba(224,231,255,.9);background:#fff;padding:11px;display:flex;align-items:flex-start;gap:8px}.sim-live-coach-list>div:first-child svg{color:#10b981}.sim-live-coach-list>div:last-child svg{color:#f59e0b}.sim-live-coach-list strong{display:block;margin-bottom:3px;color:#111827;font-size:.75rem}.sim-live-coach-list p{margin:0;color:#6b7280;font-size:.72rem;line-height:1.5}.sim-live-actions{display:grid;gap:10px}.sim-live-actions button{border-radius:12px;border:1px solid rgba(229,231,235,.82);background:#f9fafb;color:#4b5563;padding:10px 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;font-weight:500;cursor:pointer}.sim-live-actions button:hover{background:#f3f4f6;color:#111827}.sim-live-actions button.stop{border-color:#111827;background:#111827;color:#fff}.sim-live-actions button.stop:hover{background:#1f2937}@keyframes sim-wave{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes sim-pulse-soft{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes sim-pulse{0%,to{opacity:1}50%{opacity:.7}}.sim-hero-card{position:relative;overflow:hidden;border-radius:30px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 8px 30px #0000000a;padding:30px;margin-bottom:28px;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,.9fr);gap:24px}.sim-hero-glow{position:absolute;top:-80px;right:-80px;width:260px;height:260px;border-radius:999px;background:#6366f11f;filter:blur(70px);pointer-events:none}.sim-hero-left h1{margin:0 0 12px;font-size:clamp(1.9rem,3vw,2.55rem);letter-spacing:-.03em;color:#111827}.sim-hero-left p{margin:0 0 22px;line-height:1.65;color:#4b5563}.sim-benefits{margin:0 0 24px;padding:0;list-style:none;display:grid;gap:10px}.sim-benefits li{display:inline-flex;align-items:center;gap:9px;color:#374151;font-size:.88rem}.sim-benefits li svg{color:#10b981;flex-shrink:0}.sim-start-btn{border:0;border-radius:12px;background:#111827;color:#fff;padding:11px 16px;display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:500;cursor:pointer}.sim-start-btn:hover{background:#1f2937}.sim-config-card{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffffc7;box-shadow:0 2px 8px #0f172a0a;padding:18px;display:grid;gap:12px;align-content:start}.sim-config-head h3{margin:0;font-size:.92rem;color:#111827}.sim-config-head p{margin:3px 0 0;color:#6b7280;font-size:.74rem}.sim-config-card label{display:grid;gap:6px;font-size:.75rem;color:#6b7280;font-weight:500}.sim-select-wrap{border:1px solid rgba(229,231,235,.8);background:#fff;border-radius:12px;padding:0 12px;display:flex;align-items:center;gap:8px;box-shadow:0 2px 4px #00000005;transition:border-color .2s ease,box-shadow .2s ease}.sim-select-wrap svg{color:#9ca3af;flex-shrink:0;transition:color .2s ease}.sim-select-wrap select{width:100%;min-width:0;border:0;background:transparent;color:#374151;font-size:.84rem;font-weight:500;padding:11px 0;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer}.sim-caret{color:#9ca3af}.sim-select-wrap:hover{border-color:#9ca3afcc;box-shadow:0 5px 12px #0f172a0f}.sim-select-wrap:hover>svg,.sim-select-wrap:hover .sim-caret{color:#6366f1}.sim-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sim-history-head{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.sim-history-head h2{margin:0;color:#111827;font-size:1.25rem;font-weight:500}.sim-history-head button{border:0;background:transparent;display:inline-flex;align-items:center;gap:6px;color:#6b7280;cursor:pointer;font-size:.84rem;font-weight:500}.sim-history-head button:hover{color:#111827}.sim-history-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.sim-card{border-radius:22px;border:1px solid rgba(229,231,235,.8);background:#fffc;box-shadow:0 8px 18px #00000008;padding:18px;display:flex;flex-direction:column;min-height:100%}.sim-card.draft{background:#f9fafbcc;opacity:.85}.sim-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.sim-card-head h3{margin:0 0 2px;color:#111827;font-size:.95rem;letter-spacing:-.01em}.sim-card-head p{margin:0;color:#6b7280;font-size:.82rem}.sim-status{font-size:.69rem;font-weight:500;border-radius:8px;padding:4px 8px;border:1px solid;flex-shrink:0}.sim-status.done{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.sim-status.draft{color:#4b5563;background:#e5e7eb73;border-color:#d1d5dbe6}.sim-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.sim-tags span{display:inline-flex;align-items:center;gap:6px;border-radius:8px;border:1px solid rgba(229,231,235,.8);background:#f9fafbd9;color:#4b5563;font-size:.72rem;font-weight:500;padding:6px 9px}.sim-card-foot{margin-top:auto;padding-top:12px;border-top:1px solid rgba(229,231,235,.65);display:flex;justify-content:space-between;align-items:center;gap:8px}.sim-card-foot small{color:#9ca3af;font-size:.72rem}.sim-link-btn{border:0;background:transparent;display:inline-flex;align-items:center;gap:6px;color:#4f46e5;cursor:pointer;font-size:.82rem;font-weight:500}.sim-link-btn:hover{color:#4338ca}.theme-dark .sim-hero-card,.theme-dark .sim-config-card,.theme-dark .sim-card,.theme-dark .sim-live-chat-card,.theme-dark .sim-live-side-card{background:#ffffff05;border-color:#ffffff0f}.theme-dark .sim-hero-left h1,.theme-dark .sim-config-head h3,.theme-dark .sim-history-head h2,.theme-dark .sim-card-head h3,.theme-dark .sim-live-head h1,.theme-dark .sim-live-ai-row h3,.theme-dark .sim-live-side-list p,.theme-dark .sim-live-progress-head strong,.theme-dark .sim-live-coach-list strong,.theme-dark .sim-live-time strong{color:#fff}.theme-dark .sim-hero-left p,.theme-dark .sim-benefits li,.theme-dark .sim-config-head p,.theme-dark .sim-config-card label,.theme-dark .sim-card-head p,.theme-dark .sim-tags span,.theme-dark .sim-history-head button,.theme-dark .sim-live-head p,.theme-dark .sim-live-side-list small,.theme-dark .sim-live-coach-list p,.theme-dark .sim-live-time small,.theme-dark .sim-leave-btn{color:#9ca3af}.theme-dark .sim-start-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.12)}.theme-dark .sim-select-wrap{background:#ffffff08;border-color:#ffffff14}.theme-dark .sim-select-wrap select{color:#d1d5db}.theme-dark .sim-live-chat-head,.theme-dark .sim-live-voice{border-color:#ffffff14;background:#ffffff0a}.theme-dark .sim-live-more-btn{background:#ffffff14;color:#9ca3af}.theme-dark .sim-live-ai-avatar,.theme-dark .sim-live-msg-avatar.ai{background:#6366f133;border-color:#818cf866;color:#a5b4fc}.theme-dark .sim-live-msg-avatar.me{border-color:#ffffff1f;background:#ffffff0f}.theme-dark .sim-live-msg-bubble.ai{background:#ffffff0a;border-color:#ffffff1a}.theme-dark .sim-live-msg-bubble.ai p{color:#d1d5db}.theme-dark .sim-live-msg-bubble.me{background:#4f46e5}.theme-dark .sim-live-progress-track{background:#ffffff1a}.theme-dark .sim-live-coach-card{background:linear-gradient(to bottom right,#4f46e52e,#ffffff08);border-color:#818cf873}.theme-dark .sim-live-coach-card h2{color:#c7d2fe}.theme-dark .sim-live-coach-list>div{background:#ffffff0a;border-color:#ffffff1a}.theme-dark .sim-tags span{background:#ffffff08;border-color:#ffffff14}.theme-dark .sim-status.done{background:#10b98126;border-color:#10b98173;color:#34d399}.theme-dark .sim-status.draft{background:#ffffff12;border-color:#ffffff1f;color:#d1d5db}.theme-dark .sim-card-foot{border-top-color:#ffffff14}.theme-dark .sim-link-btn{color:#818cf8}.theme-dark .sim-live-actions button{background:#ffffff0a;border-color:#ffffff1a;color:#d1d5db}.theme-dark .sim-live-actions button.stop{background:#1f2937;border-color:#374151;color:#fff}@media(max-width:1180px){.sim-live-grid{grid-template-columns:1fr;min-height:auto}.sim-live-chat-card{min-height:520px}.sim-live-side{overflow:visible;padding-right:0}.sim-hero-card{grid-template-columns:1fr}.sim-history-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sim-live-chat-card{min-height:auto}.sim-live-time-row{flex-direction:column;gap:8px}.sim-wrap{padding-bottom:18px}.sim-hero-card{padding:20px;border-radius:24px}.sim-history-grid,.sim-mini-grid{grid-template-columns:1fr}}.sim-eval-main{position:relative}.sim-eval-top-actions{display:inline-flex;align-items:center;gap:10px}.sim-eval-back-btn{border:1px solid rgba(229,231,235,.82);background:#ffffffa6;border-radius:999px;padding:8px 12px;color:#6b7280;font-size:.8rem;font-weight:500;cursor:pointer}.sim-eval-back-btn:hover{background:#fff;color:#111827}.sim-eval-crumb-pill{border:1px solid rgba(229,231,235,.75);background:#ffffff9e;border-radius:999px;padding:7px 12px;display:inline-flex;align-items:center;gap:7px;color:#6b7280;font-size:.78rem}.sim-eval-crumb-pill strong{color:#0f766e;font-weight:600}.sim-eval-wrap{max-width:1160px;margin:0 auto;padding-bottom:26px}.sim-eval-head{margin-bottom:24px}.sim-eval-label{display:inline-flex;align-items:center;gap:6px;border-radius:8px;padding:6px 10px;border:1px solid #99f6e4;background:#f0fdfa;color:#0f766e;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:12px}.sim-eval-head h1{margin:0 0 12px;color:#111827;font-size:clamp(1.9rem,3vw,2.4rem);letter-spacing:-.03em}.sim-eval-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;color:#6b7280;font-size:.86rem}.sim-eval-meta strong{color:#111827;font-weight:600}.sim-eval-meta p,.sim-eval-meta small{margin:0;display:inline-flex;align-items:center;gap:6px}.sim-eval-meta span{width:4px;height:4px;border-radius:999px;background:#d1d5db}.sim-eval-overview-card{border-radius:28px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 8px 28px #0f172a0a;padding:24px;margin-bottom:26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,300px);gap:20px}.sim-eval-overview-title{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px}.sim-eval-overview-title h2{margin:0;color:#111827;font-size:1.08rem}.sim-eval-overview-title svg{color:#14b8a6}.sim-eval-overview-text .lead{margin:0 0 10px;color:#374151;font-size:1rem}.sim-eval-overview-text p{margin:0;color:#4b5563;line-height:1.65}.sim-eval-score-card{border-radius:18px;border:1px solid rgba(229,231,235,.82);background:linear-gradient(to bottom,#f9fafb,#fff);padding:18px}.sim-eval-score-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sim-eval-score-head h3{margin:0;color:#111827;font-size:.88rem;font-weight:500}.sim-eval-score-head svg{color:#9ca3af}.sim-eval-score-rows{display:grid;gap:10px;margin-bottom:14px}.sim-eval-score-rows>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.sim-eval-score-rows span{color:#6b7280;font-size:.84rem}.sim-eval-score-rows strong{border-radius:7px;background:#f3f4f6;color:#111827;font-size:.85rem;padding:4px 8px}.sim-eval-score-rows strong.good{color:#0f766e;border:1px solid #99f6e4;background:#f0fdfa}.sim-eval-gap-block{border-top:1px solid rgba(229,231,235,.9);padding-top:12px}.sim-eval-gap-block>span{display:inline-flex;align-items:center;gap:6px;border-radius:7px;padding:5px 8px;background:#f0fdfa;color:#0f766e;font-size:.72rem;font-weight:600;margin-bottom:7px}.sim-eval-gap-block p{margin:0;color:#6b7280;font-size:.76rem;line-height:1.5}.sim-eval-improvements{margin-bottom:26px}.sim-eval-section-title{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px}.sim-eval-section-title h2{margin:0;color:#111827;font-size:1.25rem}.sim-eval-improvement-list{display:grid;gap:12px}.sim-eval-improvement-card{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:18px;display:flex;align-items:flex-start;gap:12px}.sim-eval-improvement-index{width:30px;height:30px;border-radius:999px;background:#111827;color:#fff;display:grid;place-items:center;font-size:.82rem;font-weight:600;flex-shrink:0}.sim-eval-improvement-content{flex:1}.sim-eval-improvement-content h3{margin:3px 0 14px;color:#111827;font-size:1rem}.sim-eval-improvement-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.sim-eval-improvement-grid>div{border-radius:14px;border:1px solid #f3f4f6;background:#f9fafbd9;padding:12px}.sim-eval-improvement-grid>div.impact{border-color:#fecdd3;background:#fff1f2b8}.sim-eval-improvement-grid>div.next{border-color:#99f6e4;background:#f0fdfab8}.sim-eval-improvement-grid small{display:block;margin-bottom:8px;color:#6b7280;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.sim-eval-improvement-grid>div.impact small{color:#be123c}.sim-eval-improvement-grid>div.next small{color:#0f766e}.sim-eval-improvement-grid p{margin:0;color:#4b5563;font-size:.82rem;line-height:1.55}.sim-eval-split-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}.sim-eval-list-card{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:20px}.sim-eval-card-title{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px}.sim-eval-card-title h2{margin:0;color:#111827;font-size:1.04rem}.sim-eval-list-card ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.sim-eval-list-card li{display:flex;align-items:flex-start;gap:8px}.sim-eval-list-card li svg{margin-top:2px;color:#14b8a6;flex-shrink:0}.sim-eval-list-card li span{color:#4b5563;line-height:1.58;font-size:.84rem}.sim-eval-list-card.recommendations .sim-eval-card-title svg{color:#6366f1}.sim-eval-list-card .hint{margin:0 0 12px;color:#6b7280;font-size:.8rem}.sim-eval-list-card.recommendations li>div{width:18px;height:18px;border-radius:999px;border:1px solid #c7d2fe;background:#eef2ff;color:#4f46e5;display:grid;place-items:center;margin-top:2px;flex-shrink:0}.sim-eval-rating-card{border-radius:24px;border:1px solid rgba(20,184,166,.18);background:linear-gradient(to bottom right,#14b8a60f,#06b6d414);padding:22px;text-align:center}.sim-eval-rating-card>p{margin:0 0 16px;color:#0d5953f2;font-size:.95rem;font-weight:500}.sim-eval-rating-box{max-width:460px;margin:0 auto;border-radius:18px;border:1px solid rgba(229,231,235,.8);background:#fff;padding:18px;box-shadow:0 10px 24px #0000000a}.sim-eval-rating-box h3{margin:0 0 3px;color:#111827;font-size:1rem}.sim-eval-rating-box small{display:block;color:#6b7280;margin-bottom:12px;font-size:.74rem}.sim-eval-stars{display:inline-flex;align-items:center;gap:4px;margin-bottom:12px}.sim-eval-stars button{border:0;background:transparent;color:#d1d5db;padding:0;display:inline-flex;cursor:pointer}.sim-eval-stars button:hover,.sim-eval-stars button.selected{color:#f59e0b}.sim-eval-rating-box textarea{width:100%;border-radius:12px;border:1px solid rgba(229,231,235,.9);background:#f9fafbd9;color:#111827;padding:11px;resize:none;margin-bottom:10px;font-size:.84rem;font-family:inherit}.sim-eval-rating-box textarea:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a624}.sim-eval-rating-box>button{width:100%;border:0;border-radius:11px;background:#111827;color:#fff;padding:10px;font-size:.84rem;font-weight:500;cursor:pointer}.sim-eval-rating-box>button:hover{background:#1f2937}.sim-eval-rating-box>button:disabled{opacity:.65;cursor:not-allowed}.sim-eval-submit-status{margin-top:8px;color:#0f766e;font-size:.78rem}.theme-dark .sim-eval-back-btn,.theme-dark .sim-eval-crumb-pill,.theme-dark .sim-eval-overview-card,.theme-dark .sim-eval-improvement-card,.theme-dark .sim-eval-list-card,.theme-dark .sim-eval-rating-box{background:#ffffff08;border-color:#ffffff17}.theme-dark .sim-eval-head h1,.theme-dark .sim-eval-meta strong,.theme-dark .sim-eval-overview-title h2,.theme-dark .sim-eval-score-head h3,.theme-dark .sim-eval-section-title h2,.theme-dark .sim-eval-improvement-content h3,.theme-dark .sim-eval-card-title h2,.theme-dark .sim-eval-rating-box h3{color:#fff}.theme-dark .sim-eval-meta,.theme-dark .sim-eval-overview-text p,.theme-dark .sim-eval-overview-text .lead,.theme-dark .sim-eval-gap-block p,.theme-dark .sim-eval-improvement-grid p,.theme-dark .sim-eval-list-card li span,.theme-dark .sim-eval-list-card .hint,.theme-dark .sim-eval-rating-box small,.theme-dark .sim-eval-back-btn,.theme-dark .sim-eval-score-rows span{color:#9ca3af}.theme-dark .sim-eval-score-card,.theme-dark .sim-eval-improvement-grid>div{background:#ffffff05;border-color:#ffffff14}.theme-dark .sim-eval-improvement-grid>div.impact{background:#be185d14;border-color:#f472b652}.theme-dark .sim-eval-improvement-grid>div.next{background:#14b8a614;border-color:#2dd4bf4d}.theme-dark .sim-eval-score-rows strong{background:#ffffff14;color:#fff}.theme-dark .sim-eval-score-rows strong.good,.theme-dark .sim-eval-gap-block>span,.theme-dark .sim-eval-label{border-color:#2dd4bf59;background:#14b8a61f;color:#5eead4}.theme-dark .sim-eval-list-card.recommendations li>div{border-color:#818cf859;background:#4f46e538;color:#a5b4fc}.theme-dark .sim-eval-rating-card{border-color:#2dd4bf38;background:linear-gradient(to bottom right,#14b8a61a,#06b6d41a)}.theme-dark .sim-eval-rating-card>p{color:#99f6e4}.theme-dark .sim-eval-rating-box textarea{border-color:#ffffff17;background:#ffffff08;color:#fff}.theme-dark .sim-eval-rating-box>button{background:#1f2937}@media(max-width:1080px){.sim-eval-overview-card,.sim-eval-improvement-grid,.sim-eval-split-grid{grid-template-columns:1fr}}@media(max-width:760px){.sim-eval-wrap{padding-bottom:18px}.sim-eval-top-actions{width:100%;justify-content:space-between}.sim-eval-crumb-pill{display:none}.sim-eval-meta{gap:7px}.sim-eval-overview-card,.sim-eval-improvement-card,.sim-eval-list-card,.sim-eval-rating-card{padding:16px;border-radius:20px}}.sub-main{position:relative}.sub-top-actions{display:inline-flex;align-items:center;gap:10px}.sub-crumb-pill{border-radius:999px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;padding:7px 11px;font-size:.8rem;color:#4b5563;display:inline-flex;align-items:center;gap:6px}.sub-crumb-pill svg{color:#14b8a6}.sub-toggle-btn{border:0;border-radius:999px;background:#111827;color:#fff;font-size:.72rem;font-weight:500;padding:8px 12px;cursor:pointer}.sub-toggle-btn:hover{background:#1f2937}.sub-head{margin-bottom:18px;max-width:850px}.sub-head-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.sub-head-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#06b6d4);color:#fff;display:grid;place-items:center}.sub-head h1{margin:0;color:#111827;font-size:clamp(2rem,3.2vw,2.5rem);letter-spacing:-.03em}.sub-head p{margin:0;color:#6b7280;line-height:1.65}.sub-wrap{max-width:1200px;padding-bottom:20px}.sub-redeem-card{max-width:900px;border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 24px #00000008;padding:20px;margin-bottom:22px}.sub-redeem-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}.sub-redeem-head h2{margin:0;color:#111827;font-size:1.06rem}.sub-redeem-card p{margin:0 0 12px;color:#6b7280;font-size:.86rem}.sub-redeem-row{max-width:560px;display:grid;grid-template-columns:1fr auto;gap:8px}.sub-redeem-row input{border-radius:12px;border:1px solid rgba(229,231,235,.8);background:#ffffffd9;color:#111827;font-size:.86rem;padding:10px 12px;outline:none}.sub-redeem-row input:focus{border-color:#14b8a6b3;box-shadow:0 0 0 3px #14b8a61f}.sub-redeem-row button{border:0;border-radius:12px;background:#111827;color:#fff;font-size:.82rem;font-weight:500;padding:10px 14px;cursor:pointer}.sub-redeem-row button:hover{background:#1f2937}.sub-redeem-row button:disabled{opacity:.7;cursor:not-allowed}.sub-redeem-card small{margin-top:8px;display:block;color:#0f766e}.sub-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sub-plan-card{position:relative;border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);padding:20px;cursor:pointer}.sub-plan-card.popular{background:#fffc}.sub-plan-card.yearly{border-color:#c7d2fee6}.sub-plan-card.selected{border-color:#14b8a6cc;box-shadow:0 8px 28px #14b8a61f;background:#f0fdfa6b}.sub-plan-card.yearly.selected{border-color:#6366f1cc;box-shadow:0 8px 28px #6366f11f;background:#eef2ff59}.sub-plan-card input{position:absolute;opacity:0;pointer-events:none}.sub-popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);border-radius:999px;padding:4px 10px;background:#111827;color:#fff;font-size:.64rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.sub-radio-indicator{position:absolute;top:20px;right:20px;width:20px;height:20px;border-radius:999px;border:1px solid #d1d5db;display:grid;place-items:center}.sub-radio-indicator i{width:8px;height:8px;border-radius:999px;background:#fff;opacity:0}.sub-plan-card.selected .sub-radio-indicator{border-color:#14b8a6;background:#14b8a6}.sub-plan-card.selected .sub-radio-indicator i{opacity:1}.sub-plan-card.yearly.selected .sub-radio-indicator{border-color:#6366f1;background:#6366f1}.sub-plan-content{display:grid;align-content:start;height:100%}.sub-plan-title-row{display:flex;align-items:center;gap:8px}.sub-plan-title-row h3{margin:0;color:#111827;font-size:1.08rem}.sub-plan-title-row span{border-radius:6px;border:1px solid rgba(153,246,228,.7);background:#f0fdfae6;color:#0f766e;font-size:.64rem;font-weight:600;padding:2px 6px}.sub-price{margin-top:10px;color:#111827;font-size:2rem;font-weight:600;letter-spacing:-.03em}.sub-price-daily{margin:2px 0 0;color:#6b7280;font-size:.8rem}.sub-gift-box{margin-top:12px;border-radius:12px;border:1px solid rgba(199,210,254,.8);background:linear-gradient(to bottom right,#eef2ffe6,#f5f3ffcc);padding:10px;display:flex;align-items:flex-start;gap:8px}.sub-gift-box strong{display:block;color:#111827;font-size:.78rem;margin-bottom:2px}.sub-gift-box small{color:#4b5563;font-size:.72rem;line-height:1.45}.sub-divider{margin:14px 0;height:1px;background:#e5e7ebcc}.sub-plan-content ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.sub-plan-content li{display:flex;align-items:flex-start;gap:8px}.sub-plan-content li svg{color:#14b8a6;margin-top:2px;flex-shrink:0}.sub-plan-card.yearly .sub-plan-content li svg{color:#6366f1}.sub-plan-content li span{color:#374151;font-size:.8rem;line-height:1.5}.sub-checkout-card{margin-top:20px;border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.sub-checkout-card h3{margin:0 0 4px;color:#111827;font-size:1.06rem}.sub-checkout-card p{margin:0;color:#6b7280;font-size:.84rem}.sub-checkout-actions{display:grid;gap:10px;justify-items:end}.sub-checkout-actions label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#4b5563;font-size:.8rem}.sub-checkout-actions input{position:absolute;opacity:0;pointer-events:none}.sub-checkbox{width:18px;height:18px;border-radius:5px;border:1px solid #d1d5db;background:#fff;display:grid;place-items:center;color:#fff}.sub-checkout-actions input:checked+.sub-checkbox{background:#14b8a6;border-color:#14b8a6}.sub-checkout-actions .sub-checkbox svg{opacity:0}.sub-checkout-actions input:checked+.sub-checkbox svg{opacity:1}.sub-checkout-actions>button{border:0;border-radius:12px;background:#111827;color:#fff;font-size:.92rem;font-weight:500;padding:11px 22px;cursor:pointer}.sub-checkout-actions>button:hover{background:#1f2937}.sub-checkout-actions>button:disabled{opacity:.65;cursor:not-allowed}.sub-active-wrap{max-width:940px}.sub-gift-alert{position:relative;overflow:hidden;border-radius:22px;background:linear-gradient(to right,#6366f1,#8b5cf6,#6366f1);color:#fff;padding:18px;margin-bottom:18px;display:flex;align-items:center;gap:12px}.sub-gift-glow{position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:999px;background:#ffffff3d;filter:blur(40px)}.sub-gift-icon{width:50px;height:50px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:#ffffff2e;display:grid;place-items:center;font-size:1.6rem;position:relative;z-index:1}.sub-gift-alert h2{margin:0 0 2px;font-size:1.16rem}.sub-gift-alert p{margin:0;font-size:.82rem;color:#e0e7ff}.sub-gift-alert button{margin-left:auto;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#ffffff24;color:#fff;font-size:.78rem;font-weight:500;padding:8px 12px;cursor:pointer;position:relative;z-index:1}.sub-active-card{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;overflow:hidden}.sub-active-head{padding:18px;border-bottom:1px solid rgba(229,231,235,.72);display:flex;align-items:center;gap:8px}.sub-active-head h2{margin:0;color:#111827;font-size:1.24rem}.sub-active-grid{display:grid;grid-template-columns:1fr 1fr}.sub-active-features{padding:18px;border-right:1px solid rgba(229,231,235,.7);background:#f9fafb66}.sub-active-features ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.sub-active-features li{display:flex;align-items:flex-start;gap:8px}.sub-active-features li svg{color:#14b8a6;margin-top:2px}.sub-active-features li span{color:#374151;font-size:.82rem;line-height:1.5}.sub-active-status-col{padding:18px}.sub-active-status-box{border-radius:16px;border:1px solid rgba(153,246,228,.72);background:linear-gradient(to bottom right,#f0fdfacc,#ecfeffb3);padding:18px;text-align:center}.sub-active-check{width:56px;height:56px;border-radius:999px;border:1px solid rgba(153,246,228,.8);background:#fff;color:#14b8a6;display:grid;place-items:center;margin:0 auto 10px}.sub-active-status-box h3{margin:0 0 5px;color:#111827;font-size:1rem}.sub-active-status-box strong{display:block;color:#0f766e;font-size:.95rem}.sub-active-status-box p{margin:3px 0 10px;color:#0f766e;font-size:.82rem}.sub-renew-pill{border-radius:12px;border:1px solid rgba(153,246,228,.72);background:#fffc;color:#374151;font-size:.82rem;font-weight:500;padding:9px 11px;display:inline-flex;align-items:center;gap:8px}.sub-renew-pill svg{color:#14b8a6}.sub-manage-link{margin-top:12px;width:100%;border:0;background:transparent;color:#6b7280;font-size:.8rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.theme-dark .sub-crumb-pill,.theme-dark .sub-redeem-card,.theme-dark .sub-plan-card,.theme-dark .sub-checkout-card,.theme-dark .sub-active-card{border-color:#ffffff14;background:#ffffff08}.theme-dark .sub-head h1,.theme-dark .sub-redeem-head h2,.theme-dark .sub-plan-title-row h3,.theme-dark .sub-checkout-card h3,.theme-dark .sub-active-head h2,.theme-dark .sub-active-status-box h3{color:#fff}.theme-dark .sub-head p,.theme-dark .sub-redeem-card p,.theme-dark .sub-price-daily,.theme-dark .sub-plan-content li span,.theme-dark .sub-checkout-card p,.theme-dark .sub-checkout-actions label,.theme-dark .sub-active-features li span,.theme-dark .sub-manage-link,.theme-dark .sub-crumb-pill{color:#9ca3af}.theme-dark .sub-redeem-row input,.theme-dark .sub-checkbox,.theme-dark .sub-renew-pill,.theme-dark .sub-gift-box{border-color:#ffffff1a;background:#ffffff0d;color:#d1d5db}.theme-dark .sub-price,.theme-dark .sub-active-status-box strong,.theme-dark .sub-active-status-box p,.theme-dark .sub-renew-pill{color:#f3f4f6}.theme-dark .sub-divider,.theme-dark .sub-active-head,.theme-dark .sub-active-features{border-color:#ffffff14}.theme-dark .sub-active-features{background:#ffffff05}.theme-dark .sub-toggle-btn,.theme-dark .sub-redeem-row button,.theme-dark .sub-checkout-actions>button{background:#ffffff1f;border:1px solid rgba(255,255,255,.14)}.theme-dark .sub-gift-alert{background:linear-gradient(to right,#4f46e5c7,#7c3aedbd,#4f46e5c7)}@media(max-width:1200px){.sub-plan-grid{grid-template-columns:1fr 1fr}.sub-active-grid{grid-template-columns:1fr}.sub-active-features{border-right:0;border-bottom:1px solid rgba(229,231,235,.72)}}@media(max-width:860px){.sub-top-actions{flex-wrap:wrap;justify-content:flex-end}.sub-redeem-row,.sub-plan-grid{grid-template-columns:1fr}.sub-checkout-card{flex-direction:column;align-items:stretch}.sub-checkout-actions{justify-items:start}.sub-gift-alert{flex-wrap:wrap}.sub-gift-alert button{margin-left:0}} diff --git a/dist/assets/index-NzuLru3R.js b/dist/assets/index-NzuLru3R.js new file mode 100644 index 0000000..f8556fd --- /dev/null +++ b/dist/assets/index-NzuLru3R.js @@ -0,0 +1,11 @@ +(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const h of document.querySelectorAll('link[rel="modulepreload"]'))r(h);new MutationObserver(h=>{for(const v of h)if(v.type==="childList")for(const z of v.addedNodes)z.tagName==="LINK"&&z.rel==="modulepreload"&&r(z)}).observe(document,{childList:!0,subtree:!0});function u(h){const v={};return h.integrity&&(v.integrity=h.integrity),h.referrerPolicy&&(v.referrerPolicy=h.referrerPolicy),h.crossOrigin==="use-credentials"?v.credentials="include":h.crossOrigin==="anonymous"?v.credentials="omit":v.credentials="same-origin",v}function r(h){if(h.ep)return;h.ep=!0;const v=u(h);fetch(h.href,v)}})();var Yu={exports:{}},Hn={};var jh;function X1(){if(jh)return Hn;jh=1;var o=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function u(r,h,v){var z=null;if(v!==void 0&&(z=""+v),h.key!==void 0&&(z=""+h.key),"key"in h){v={};for(var q in h)q!=="key"&&(v[q]=h[q])}else v=h;return h=v.ref,{$$typeof:o,type:r,key:z,ref:h!==void 0?h:null,props:v}}return Hn.Fragment=c,Hn.jsx=u,Hn.jsxs=u,Hn}var xh;function Z1(){return xh||(xh=1,Yu.exports=X1()),Yu.exports}var n=Z1(),Gu={exports:{}},me={};var Sh;function K1(){if(Sh)return me;Sh=1;var o=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),v=Symbol.for("react.consumer"),z=Symbol.for("react.context"),q=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),B=Symbol.for("react.lazy"),D=Symbol.for("react.activity"),R=Symbol.iterator;function K(m){return m===null||typeof m!="object"?null:(m=R&&m[R]||m["@@iterator"],typeof m=="function"?m:null)}var le={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Z=Object.assign,fe={};function te(m,N,U){this.props=m,this.context=N,this.refs=fe,this.updater=U||le}te.prototype.isReactComponent={},te.prototype.setState=function(m,N){if(typeof m!="object"&&typeof m!="function"&&m!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,m,N,"setState")},te.prototype.forceUpdate=function(m){this.updater.enqueueForceUpdate(this,m,"forceUpdate")};function se(){}se.prototype=te.prototype;function Y(m,N,U){this.props=m,this.context=N,this.refs=fe,this.updater=U||le}var P=Y.prototype=new se;P.constructor=Y,Z(P,te.prototype),P.isPureReactComponent=!0;var ie=Array.isArray;function G(){}var E={H:null,A:null,T:null,S:null},ae=Object.prototype.hasOwnProperty;function he(m,N,U){var J=U.ref;return{$$typeof:o,type:m,key:N,ref:J!==void 0?J:null,props:U}}function pe(m,N){return he(m.type,N,m.props)}function H(m){return typeof m=="object"&&m!==null&&m.$$typeof===o}function Q(m){var N={"=":"=0",":":"=2"};return"$"+m.replace(/[=:]/g,function(U){return N[U]})}var ue=/\/+/g;function ee(m,N){return typeof m=="object"&&m!==null&&m.key!=null?Q(""+m.key):N.toString(36)}function W(m){switch(m.status){case"fulfilled":return m.value;case"rejected":throw m.reason;default:switch(typeof m.status=="string"?m.then(G,G):(m.status="pending",m.then(function(N){m.status==="pending"&&(m.status="fulfilled",m.value=N)},function(N){m.status==="pending"&&(m.status="rejected",m.reason=N)})),m.status){case"fulfilled":return m.value;case"rejected":throw m.reason}}throw m}function _(m,N,U,J,oe){var re=typeof m;(re==="undefined"||re==="boolean")&&(m=null);var Ae=!1;if(m===null)Ae=!0;else switch(re){case"bigint":case"string":case"number":Ae=!0;break;case"object":switch(m.$$typeof){case o:case c:Ae=!0;break;case B:return Ae=m._init,_(Ae(m._payload),N,U,J,oe)}}if(Ae)return oe=oe(m),Ae=J===""?"."+ee(m,0):J,ie(oe)?(U="",Ae!=null&&(U=Ae.replace(ue,"$&/")+"/"),_(oe,N,U,"",function(Jl){return Jl})):oe!=null&&(H(oe)&&(oe=pe(oe,U+(oe.key==null||m&&m.key===oe.key?"":(""+oe.key).replace(ue,"$&/")+"/")+Ae)),N.push(oe)),1;Ae=0;var nt=J===""?".":J+":";if(ie(m))for(var Ve=0;Ve>>1,de=_[$];if(0>>1;$h(U,x))Jh(oe,U)?(_[$]=oe,_[J]=x,$=J):(_[$]=U,_[N]=x,$=N);else if(Jh(oe,x))_[$]=oe,_[J]=x,$=J;else break e}}return V}function h(_,V){var x=_.sortIndex-V.sortIndex;return x!==0?x:_.id-V.id}if(o.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var v=performance;o.unstable_now=function(){return v.now()}}else{var z=Date,q=z.now();o.unstable_now=function(){return z.now()-q}}var L=[],b=[],B=1,D=null,R=3,K=!1,le=!1,Z=!1,fe=!1,te=typeof setTimeout=="function"?setTimeout:null,se=typeof clearTimeout=="function"?clearTimeout:null,Y=typeof setImmediate<"u"?setImmediate:null;function P(_){for(var V=u(b);V!==null;){if(V.callback===null)r(b);else if(V.startTime<=_)r(b),V.sortIndex=V.expirationTime,c(L,V);else break;V=u(b)}}function ie(_){if(Z=!1,P(_),!le)if(u(L)!==null)le=!0,G||(G=!0,Q());else{var V=u(b);V!==null&&W(ie,V.startTime-_)}}var G=!1,E=-1,ae=5,he=-1;function pe(){return fe?!0:!(o.unstable_now()-he_&&pe());){var $=D.callback;if(typeof $=="function"){D.callback=null,R=D.priorityLevel;var de=$(D.expirationTime<=_);if(_=o.unstable_now(),typeof de=="function"){D.callback=de,P(_),V=!0;break t}D===u(L)&&r(L),P(_)}else r(L);D=u(L)}if(D!==null)V=!0;else{var m=u(b);m!==null&&W(ie,m.startTime-_),V=!1}}break e}finally{D=null,R=x,K=!1}V=void 0}}finally{V?Q():G=!1}}}var Q;if(typeof Y=="function")Q=function(){Y(H)};else if(typeof MessageChannel<"u"){var ue=new MessageChannel,ee=ue.port2;ue.port1.onmessage=H,Q=function(){ee.postMessage(null)}}else Q=function(){te(H,0)};function W(_,V){E=te(function(){_(o.unstable_now())},V)}o.unstable_IdlePriority=5,o.unstable_ImmediatePriority=1,o.unstable_LowPriority=4,o.unstable_NormalPriority=3,o.unstable_Profiling=null,o.unstable_UserBlockingPriority=2,o.unstable_cancelCallback=function(_){_.callback=null},o.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):ae=0<_?Math.floor(1e3/_):5},o.unstable_getCurrentPriorityLevel=function(){return R},o.unstable_next=function(_){switch(R){case 1:case 2:case 3:var V=3;break;default:V=R}var x=R;R=V;try{return _()}finally{R=x}},o.unstable_requestPaint=function(){fe=!0},o.unstable_runWithPriority=function(_,V){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var x=R;R=_;try{return V()}finally{R=x}},o.unstable_scheduleCallback=function(_,V,x){var $=o.unstable_now();switch(typeof x=="object"&&x!==null?(x=x.delay,x=typeof x=="number"&&0$?(_.sortIndex=x,c(b,_),u(L)===null&&_===u(b)&&(Z?(se(E),E=-1):Z=!0,W(ie,x-$))):(_.sortIndex=de,c(L,_),le||K||(le=!0,G||(G=!0,Q()))),_},o.unstable_shouldYield=pe,o.unstable_wrapCallback=function(_){var V=R;return function(){var x=R;R=V;try{return _.apply(this,arguments)}finally{R=x}}}})(Xu)),Xu}var _h;function F1(){return _h||(_h=1,Qu.exports=W1()),Qu.exports}var Zu={exports:{}},lt={};var Ah;function $1(){if(Ah)return lt;Ah=1;var o=dr();function c(L){var b="https://react.dev/errors/"+L;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(c){console.error(c)}}return o(),Zu.exports=$1(),Zu.exports}var zh;function P1(){if(zh)return Vn;zh=1;var o=F1(),c=dr(),u=I1();function r(e){var t="https://react.dev/errors/"+e;if(1de||(e.current=$[de],$[de]=null,de--)}function U(e,t){de++,$[de]=e.current,e.current=t}var J=m(null),oe=m(null),re=m(null),Ae=m(null);function nt(e,t){switch(U(re,t),U(oe,e),U(J,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Gf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Gf(t),e=Jf(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}N(J),U(J,e)}function Ve(){N(J),N(oe),N(re)}function Jl(e){e.memoizedState!==null&&U(Ae,e);var t=J.current,a=Jf(t,e.type);t!==a&&(U(oe,e),U(J,a))}function Wn(e){oe.current===e&&(N(J),N(oe)),Ae.current===e&&(N(Ae),Un._currentValue=x)}var ks,pr;function Oa(e){if(ks===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);ks=t&&t[1]||"",pr=-1)":-1i||g[l]!==S[i]){var C=` +`+g[l].replace(" at new "," at ");return e.displayName&&C.includes("")&&(C=C.replace("",e.displayName)),C}while(1<=l&&0<=i);break}}}finally{_s=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?Oa(a):""}function Nm(e,t){switch(e.tag){case 26:case 27:case 5:return Oa(e.type);case 16:return Oa("Lazy");case 13:return e.child!==t&&t!==null?Oa("Suspense Fallback"):Oa("Suspense");case 19:return Oa("SuspenseList");case 0:case 15:return As(e.type,!1);case 11:return As(e.type.render,!1);case 1:return As(e.type,!0);case 31:return Oa("Activity");default:return""}}function yr(e){try{var t="",a=null;do t+=Nm(e,a),a=e,e=e.return;while(e);return t}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var Ts=Object.prototype.hasOwnProperty,zs=o.unstable_scheduleCallback,Ds=o.unstable_cancelCallback,km=o.unstable_shouldYield,_m=o.unstable_requestPaint,mt=o.unstable_now,Am=o.unstable_getCurrentPriorityLevel,br=o.unstable_ImmediatePriority,jr=o.unstable_UserBlockingPriority,Fn=o.unstable_NormalPriority,Tm=o.unstable_LowPriority,xr=o.unstable_IdlePriority,zm=o.log,Dm=o.unstable_setDisableYieldValue,Ql=null,vt=null;function ra(e){if(typeof zm=="function"&&Dm(e),vt&&typeof vt.setStrictMode=="function")try{vt.setStrictMode(Ql,e)}catch{}}var gt=Math.clz32?Math.clz32:Cm,Mm=Math.log,Em=Math.LN2;function Cm(e){return e>>>=0,e===0?32:31-(Mm(e)/Em|0)|0}var $n=256,In=262144,Pn=4194304;function La(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ei(e,t,a){var l=e.pendingLanes;if(l===0)return 0;var i=0,s=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var f=l&134217727;return f!==0?(l=f&~s,l!==0?i=La(l):(d&=f,d!==0?i=La(d):a||(a=f&~e,a!==0&&(i=La(a))))):(f=l&~s,f!==0?i=La(f):d!==0?i=La(d):a||(a=l&~e,a!==0&&(i=La(a)))),i===0?0:t!==0&&t!==i&&(t&s)===0&&(s=i&-i,a=t&-t,s>=a||s===32&&(a&4194048)!==0)?t:i}function Xl(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function wm(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Sr(){var e=Pn;return Pn<<=1,(Pn&62914560)===0&&(Pn=4194304),e}function Ms(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Zl(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Um(e,t,a,l,i,s){var d=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var f=e.entanglements,g=e.expirationTimes,S=e.hiddenUpdates;for(a=d&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var qm=/[\n"\\]/g;function At(e){return e.replace(qm,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ls(e,t,a,l,i,s,d,f){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+_t(t)):e.value!==""+_t(t)&&(e.value=""+_t(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?Rs(e,d,_t(t)):a!=null?Rs(e,d,_t(a)):l!=null&&e.removeAttribute("value"),i==null&&s!=null&&(e.defaultChecked=!!s),i!=null&&(e.checked=i&&typeof i!="function"&&typeof i!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.name=""+_t(f):e.removeAttribute("name")}function Or(e,t,a,l,i,s,d,f){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(e.type=s),t!=null||a!=null){if(!(s!=="submit"&&s!=="reset"||t!=null)){Os(e);return}a=a!=null?""+_t(a):"",t=t!=null?""+_t(t):a,f||t===e.value||(e.value=t),e.defaultValue=t}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=f?e.checked:!!l,e.defaultChecked=!!l,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Os(e)}function Rs(e,t,a){t==="number"&&li(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function cl(e,t,a,l){if(e=e.options,t){t={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ys=!1;if(Zt)try{var $l={};Object.defineProperty($l,"passive",{get:function(){Ys=!0}}),window.addEventListener("test",$l,$l),window.removeEventListener("test",$l,$l)}catch{Ys=!1}var da=null,Gs=null,ii=null;function Yr(){if(ii)return ii;var e,t=Gs,a=t.length,l,i="value"in da?da.value:da.textContent,s=i.length;for(e=0;e=en),Kr=" ",Wr=!1;function Fr(e,t){switch(e){case"keyup":return mv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $r(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var dl=!1;function gv(e,t){switch(e){case"compositionend":return $r(t);case"keypress":return t.which!==32?null:(Wr=!0,Kr);case"textInput":return e=t.data,e===Kr&&Wr?null:e;default:return null}}function pv(e,t){if(dl)return e==="compositionend"||!Ks&&Fr(e,t)?(e=Yr(),ii=Gs=da=null,dl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=l}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=io(a)}}function co(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?co(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function uo(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=li(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=li(e.document)}return t}function $s(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var _v=Zt&&"documentMode"in document&&11>=document.documentMode,fl=null,Is=null,nn=null,Ps=!1;function ro(e,t,a){var l=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Ps||fl==null||fl!==li(l)||(l=fl,"selectionStart"in l&&$s(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),nn&&ln(nn,l)||(nn=l,l=Ii(Is,"onSelect"),0>=d,i-=d,Vt=1<<32-gt(t)+i|a<ge?(xe=I,I=null):xe=I.sibling;var ke=k(y,I,j[ge],w);if(ke===null){I===null&&(I=xe);break}e&&I&&ke.alternate===null&&t(y,I),p=s(ke,p,ge),Ne===null?ne=ke:Ne.sibling=ke,Ne=ke,I=xe}if(ge===j.length)return a(y,I),Se&&Wt(y,ge),ne;if(I===null){for(;gege?(xe=I,I=null):xe=I.sibling;var wa=k(y,I,ke.value,w);if(wa===null){I===null&&(I=xe);break}e&&I&&wa.alternate===null&&t(y,I),p=s(wa,p,ge),Ne===null?ne=wa:Ne.sibling=wa,Ne=wa,I=xe}if(ke.done)return a(y,I),Se&&Wt(y,ge),ne;if(I===null){for(;!ke.done;ge++,ke=j.next())ke=O(y,ke.value,w),ke!==null&&(p=s(ke,p,ge),Ne===null?ne=ke:Ne.sibling=ke,Ne=ke);return Se&&Wt(y,ge),ne}for(I=l(I);!ke.done;ge++,ke=j.next())ke=A(I,y,ge,ke.value,w),ke!==null&&(e&&ke.alternate!==null&&I.delete(ke.key===null?ge:ke.key),p=s(ke,p,ge),Ne===null?ne=ke:Ne.sibling=ke,Ne=ke);return e&&I.forEach(function(Q1){return t(y,Q1)}),Se&&Wt(y,ge),ne}function Ee(y,p,j,w){if(typeof j=="object"&&j!==null&&j.type===Z&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case K:e:{for(var ne=j.key;p!==null;){if(p.key===ne){if(ne=j.type,ne===Z){if(p.tag===7){a(y,p.sibling),w=i(p,j.props.children),w.return=y,y=w;break e}}else if(p.elementType===ne||typeof ne=="object"&&ne!==null&&ne.$$typeof===ae&&Za(ne)===p.type){a(y,p.sibling),w=i(p,j.props),dn(w,j),w.return=y,y=w;break e}a(y,p);break}else t(y,p);p=p.sibling}j.type===Z?(w=Ya(j.props.children,y.mode,w,j.key),w.return=y,y=w):(w=vi(j.type,j.key,j.props,null,y.mode,w),dn(w,j),w.return=y,y=w)}return d(y);case le:e:{for(ne=j.key;p!==null;){if(p.key===ne)if(p.tag===4&&p.stateNode.containerInfo===j.containerInfo&&p.stateNode.implementation===j.implementation){a(y,p.sibling),w=i(p,j.children||[]),w.return=y,y=w;break e}else{a(y,p);break}else t(y,p);p=p.sibling}w=sc(j,y.mode,w),w.return=y,y=w}return d(y);case ae:return j=Za(j),Ee(y,p,j,w)}if(W(j))return F(y,p,j,w);if(Q(j)){if(ne=Q(j),typeof ne!="function")throw Error(r(150));return j=ne.call(j),ce(y,p,j,w)}if(typeof j.then=="function")return Ee(y,p,Si(j),w);if(j.$$typeof===Y)return Ee(y,p,yi(y,j),w);Ni(y,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,p!==null&&p.tag===6?(a(y,p.sibling),w=i(p,j),w.return=y,y=w):(a(y,p),w=ic(j,y.mode,w),w.return=y,y=w),d(y)):a(y,p)}return function(y,p,j,w){try{on=0;var ne=Ee(y,p,j,w);return Nl=null,ne}catch(I){if(I===Sl||I===ji)throw I;var Ne=yt(29,I,null,y.mode);return Ne.lanes=w,Ne.return=y,Ne}}}var Wa=wo(!0),Uo=wo(!1),ga=!1;function yc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function bc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function pa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ya(e,t,a){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(_e&2)!==0){var i=l.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),l.pending=t,t=mi(e),po(e,null,a),t}return hi(e,l,t,a),mi(e)}function fn(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,a|=l,t.lanes=a,kr(e,a)}}function jc(e,t){var a=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,a===l)){var i=null,s=null;if(a=a.firstBaseUpdate,a!==null){do{var d={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};s===null?i=s=d:s=s.next=d,a=a.next}while(a!==null);s===null?i=s=t:s=s.next=t}else i=s=t;a={baseState:l.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:l.shared,callbacks:l.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var xc=!1;function hn(){if(xc){var e=xl;if(e!==null)throw e}}function mn(e,t,a,l){xc=!1;var i=e.updateQueue;ga=!1;var s=i.firstBaseUpdate,d=i.lastBaseUpdate,f=i.shared.pending;if(f!==null){i.shared.pending=null;var g=f,S=g.next;g.next=null,d===null?s=S:d.next=S,d=g;var C=e.alternate;C!==null&&(C=C.updateQueue,f=C.lastBaseUpdate,f!==d&&(f===null?C.firstBaseUpdate=S:f.next=S,C.lastBaseUpdate=g))}if(s!==null){var O=i.baseState;d=0,C=S=g=null,f=s;do{var k=f.lane&-536870913,A=k!==f.lane;if(A?(je&k)===k:(l&k)===k){k!==0&&k===jl&&(xc=!0),C!==null&&(C=C.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});e:{var F=e,ce=f;k=t;var Ee=a;switch(ce.tag){case 1:if(F=ce.payload,typeof F=="function"){O=F.call(Ee,O,k);break e}O=F;break e;case 3:F.flags=F.flags&-65537|128;case 0:if(F=ce.payload,k=typeof F=="function"?F.call(Ee,O,k):F,k==null)break e;O=D({},O,k);break e;case 2:ga=!0}}k=f.callback,k!==null&&(e.flags|=64,A&&(e.flags|=8192),A=i.callbacks,A===null?i.callbacks=[k]:A.push(k))}else A={lane:k,tag:f.tag,payload:f.payload,callback:f.callback,next:null},C===null?(S=C=A,g=O):C=C.next=A,d|=k;if(f=f.next,f===null){if(f=i.shared.pending,f===null)break;A=f,f=A.next,A.next=null,i.lastBaseUpdate=A,i.shared.pending=null}}while(!0);C===null&&(g=O),i.baseState=g,i.firstBaseUpdate=S,i.lastBaseUpdate=C,s===null&&(i.shared.lanes=0),Na|=d,e.lanes=d,e.memoizedState=O}}function Oo(e,t){if(typeof e!="function")throw Error(r(191,e));e.call(t)}function Lo(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;es?s:8;var d=_.T,f={};_.T=f,qc(e,!1,t,a);try{var g=i(),S=_.S;if(S!==null&&S(f,g),g!==null&&typeof g=="object"&&typeof g.then=="function"){var C=Uv(g,l);pn(e,t,C,Nt(e))}else pn(e,t,l,Nt(e))}catch(O){pn(e,t,{then:function(){},status:"rejected",reason:O},Nt())}finally{V.p=s,d!==null&&f.types!==null&&(d.types=f.types),_.T=d}}function qv(){}function Hc(e,t,a,l){if(e.tag!==5)throw Error(r(476));var i=md(e).queue;hd(e,i,t,x,a===null?qv:function(){return vd(e),a(l)})}function md(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:x,baseState:x,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Pt,lastRenderedState:x},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Pt,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function vd(e){var t=md(e);t.next===null&&(t=e.alternate.memoizedState),pn(e,t.next.queue,{},Nt())}function Vc(){return et(Un)}function gd(){return Be().memoizedState}function pd(){return Be().memoizedState}function Bv(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Nt();e=pa(a);var l=ya(t,e,a);l!==null&&(ft(l,t,a),fn(l,t,a)),t={cache:mc()},e.payload=t;return}t=t.return}}function Yv(e,t,a){var l=Nt();a={lane:l,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},wi(e)?bd(t,a):(a=lc(e,t,a,l),a!==null&&(ft(a,e,l),jd(a,t,l)))}function yd(e,t,a){var l=Nt();pn(e,t,a,l)}function pn(e,t,a,l){var i={lane:l,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(wi(e))bd(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var d=t.lastRenderedState,f=s(d,a);if(i.hasEagerState=!0,i.eagerState=f,pt(f,d))return hi(e,t,i,0),Ce===null&&fi(),!1}catch{}if(a=lc(e,t,i,l),a!==null)return ft(a,e,l),jd(a,t,l),!0}return!1}function qc(e,t,a,l){if(l={lane:2,revertLane:yu(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},wi(e)){if(t)throw Error(r(479))}else t=lc(e,a,l,2),t!==null&&ft(t,e,2)}function wi(e){var t=e.alternate;return e===ve||t!==null&&t===ve}function bd(e,t){_l=Ai=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function jd(e,t,a){if((a&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,a|=l,t.lanes=a,kr(e,a)}}var yn={readContext:et,use:Di,useCallback:Le,useContext:Le,useEffect:Le,useImperativeHandle:Le,useLayoutEffect:Le,useInsertionEffect:Le,useMemo:Le,useReducer:Le,useRef:Le,useState:Le,useDebugValue:Le,useDeferredValue:Le,useTransition:Le,useSyncExternalStore:Le,useId:Le,useHostTransitionStatus:Le,useFormState:Le,useActionState:Le,useOptimistic:Le,useMemoCache:Le,useCacheRefresh:Le};yn.useEffectEvent=Le;var xd={readContext:et,use:Di,useCallback:function(e,t){return it().memoizedState=[e,t===void 0?null:t],e},useContext:et,useEffect:nd,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,Ei(4194308,4,ud.bind(null,t,e),a)},useLayoutEffect:function(e,t){return Ei(4194308,4,e,t)},useInsertionEffect:function(e,t){Ei(4,2,e,t)},useMemo:function(e,t){var a=it();t=t===void 0?null:t;var l=e();if(Fa){ra(!0);try{e()}finally{ra(!1)}}return a.memoizedState=[l,t],l},useReducer:function(e,t,a){var l=it();if(a!==void 0){var i=a(t);if(Fa){ra(!0);try{a(t)}finally{ra(!1)}}}else i=t;return l.memoizedState=l.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},l.queue=e,e=e.dispatch=Yv.bind(null,ve,e),[l.memoizedState,e]},useRef:function(e){var t=it();return e={current:e},t.memoizedState=e},useState:function(e){e=wc(e);var t=e.queue,a=yd.bind(null,ve,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Lc,useDeferredValue:function(e,t){var a=it();return Rc(a,e,t)},useTransition:function(){var e=wc(!1);return e=hd.bind(null,ve,e.queue,!0,!1),it().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var l=ve,i=it();if(Se){if(a===void 0)throw Error(r(407));a=a()}else{if(a=t(),Ce===null)throw Error(r(349));(je&127)!==0||Yo(l,t,a)}i.memoizedState=a;var s={value:a,getSnapshot:t};return i.queue=s,nd(Jo.bind(null,l,s,e),[e]),l.flags|=2048,Tl(9,{destroy:void 0},Go.bind(null,l,s,a,t),null),a},useId:function(){var e=it(),t=Ce.identifierPrefix;if(Se){var a=qt,l=Vt;a=(l&~(1<<32-gt(l)-1)).toString(32)+a,t="_"+t+"R_"+a,a=Ti++,0<\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof l.is=="string"?d.createElement("select",{is:l.is}):d.createElement("select"),l.multiple?s.multiple=!0:l.size&&(s.size=l.size);break;default:s=typeof l.is=="string"?d.createElement(i,{is:l.is}):d.createElement(i)}}s[Ie]=t,s[st]=l;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)s.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===t)break e;for(;d.sibling===null;){if(d.return===null||d.return===t)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}t.stateNode=s;e:switch(at(s,i,l),i){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&ta(t)}}return Ue(t),eu(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&ta(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(r(166));if(e=re.current,yl(t)){if(e=t.stateNode,a=t.memoizedProps,l=null,i=Pe,i!==null)switch(i.tag){case 27:case 5:l=i.memoizedProps}e[Ie]=t,e=!!(e.nodeValue===a||l!==null&&l.suppressHydrationWarning===!0||Bf(e.nodeValue,a)),e||ma(t,!0)}else e=Pi(e).createTextNode(l),e[Ie]=t,t.stateNode=e}return Ue(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(l=yl(t),a!==null){if(e===null){if(!l)throw Error(r(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[Ie]=t}else Ga(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),e=!1}else a=oc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(jt(t),t):(jt(t),null);if((t.flags&128)!==0)throw Error(r(558))}return Ue(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=yl(t),l!==null&&l.dehydrated!==null){if(e===null){if(!i)throw Error(r(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(r(317));i[Ie]=t}else Ga(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),i=!1}else i=oc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(jt(t),t):(jt(t),null)}return jt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=l!==null,e=e!==null&&e.memoizedState!==null,a&&(l=t.child,i=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(i=l.alternate.memoizedState.cachePool.pool),s=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(s=l.memoizedState.cachePool.pool),s!==i&&(l.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),Hi(t,t.updateQueue),Ue(t),null);case 4:return Ve(),e===null&&Su(t.stateNode.containerInfo),Ue(t),null;case 10:return $t(t.type),Ue(t),null;case 19:if(N(qe),l=t.memoizedState,l===null)return Ue(t),null;if(i=(t.flags&128)!==0,s=l.rendering,s===null)if(i)jn(l,!1);else{if(Re!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(s=_i(e),s!==null){for(t.flags|=128,jn(l,!1),e=s.updateQueue,t.updateQueue=e,Hi(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)yo(a,e),a=a.sibling;return U(qe,qe.current&1|2),Se&&Wt(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&mt()>Gi&&(t.flags|=128,i=!0,jn(l,!1),t.lanes=4194304)}else{if(!i)if(e=_i(s),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Hi(t,e),jn(l,!0),l.tail===null&&l.tailMode==="hidden"&&!s.alternate&&!Se)return Ue(t),null}else 2*mt()-l.renderingStartTime>Gi&&a!==536870912&&(t.flags|=128,i=!0,jn(l,!1),t.lanes=4194304);l.isBackwards?(s.sibling=t.child,t.child=s):(e=l.last,e!==null?e.sibling=s:t.child=s,l.last=s)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=mt(),e.sibling=null,a=qe.current,U(qe,i?a&1|2:a&1),Se&&Wt(t,l.treeForkCount),e):(Ue(t),null);case 22:case 23:return jt(t),Nc(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(a&536870912)!==0&&(t.flags&128)===0&&(Ue(t),t.subtreeFlags&6&&(t.flags|=8192)):Ue(t),a=t.updateQueue,a!==null&&Hi(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==a&&(t.flags|=2048),e!==null&&N(Xa),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),$t(Ye),Ue(t),null;case 25:return null;case 30:return null}throw Error(r(156,t.tag))}function Zv(e,t){switch(uc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return $t(Ye),Ve(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Wn(t),null;case 31:if(t.memoizedState!==null){if(jt(t),t.alternate===null)throw Error(r(340));Ga()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(jt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));Ga()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return N(qe),null;case 4:return Ve(),null;case 10:return $t(t.type),null;case 22:case 23:return jt(t),Nc(),e!==null&&N(Xa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return $t(Ye),null;case 25:return null;default:return null}}function Qd(e,t){switch(uc(t),t.tag){case 3:$t(Ye),Ve();break;case 26:case 27:case 5:Wn(t);break;case 4:Ve();break;case 31:t.memoizedState!==null&&jt(t);break;case 13:jt(t);break;case 19:N(qe);break;case 10:$t(t.type);break;case 22:case 23:jt(t),Nc(),e!==null&&N(Xa);break;case 24:$t(Ye)}}function xn(e,t){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){l=void 0;var s=a.create,d=a.inst;l=s(),d.destroy=l}a=a.next}while(a!==i)}}catch(f){ze(t,t.return,f)}}function xa(e,t,a){try{var l=t.updateQueue,i=l!==null?l.lastEffect:null;if(i!==null){var s=i.next;l=s;do{if((l.tag&e)===e){var d=l.inst,f=d.destroy;if(f!==void 0){d.destroy=void 0,i=t;var g=a,S=f;try{S()}catch(C){ze(i,g,C)}}}l=l.next}while(l!==s)}}catch(C){ze(t,t.return,C)}}function Xd(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{Lo(t,a)}catch(l){ze(e,e.return,l)}}}function Zd(e,t,a){a.props=$a(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(l){ze(e,t,l)}}function Sn(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof a=="function"?e.refCleanup=a(l):a.current=l}}catch(i){ze(e,t,i)}}function Bt(e,t){var a=e.ref,l=e.refCleanup;if(a!==null)if(typeof l=="function")try{l()}catch(i){ze(e,t,i)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(i){ze(e,t,i)}else a.current=null}function Kd(e){var t=e.type,a=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&l.focus();break e;case"img":a.src?l.src=a.src:a.srcSet&&(l.srcset=a.srcSet)}}catch(i){ze(e,e.return,i)}}function tu(e,t,a){try{var l=e.stateNode;v1(l,e.type,a,t),l[st]=t}catch(i){ze(e,e.return,i)}}function Wd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&za(e.type)||e.tag===4}function au(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Wd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&za(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function lu(e,t,a){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=Xt));else if(l!==4&&(l===27&&za(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(lu(e,t,a),e=e.sibling;e!==null;)lu(e,t,a),e=e.sibling}function Vi(e,t,a){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(l!==4&&(l===27&&za(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(Vi(e,t,a),e=e.sibling;e!==null;)Vi(e,t,a),e=e.sibling}function Fd(e){var t=e.stateNode,a=e.memoizedProps;try{for(var l=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);at(t,l,a),t[Ie]=e,t[st]=a}catch(s){ze(e,e.return,s)}}var aa=!1,Qe=!1,nu=!1,$d=typeof WeakSet=="function"?WeakSet:Set,Fe=null;function Kv(e,t){if(e=e.containerInfo,_u=ss,e=uo(e),$s(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var l=a.getSelection&&a.getSelection();if(l&&l.rangeCount!==0){a=l.anchorNode;var i=l.anchorOffset,s=l.focusNode;l=l.focusOffset;try{a.nodeType,s.nodeType}catch{a=null;break e}var d=0,f=-1,g=-1,S=0,C=0,O=e,k=null;t:for(;;){for(var A;O!==a||i!==0&&O.nodeType!==3||(f=d+i),O!==s||l!==0&&O.nodeType!==3||(g=d+l),O.nodeType===3&&(d+=O.nodeValue.length),(A=O.firstChild)!==null;)k=O,O=A;for(;;){if(O===e)break t;if(k===a&&++S===i&&(f=d),k===s&&++C===l&&(g=d),(A=O.nextSibling)!==null)break;O=k,k=O.parentNode}O=A}a=f===-1||g===-1?null:{start:f,end:g}}else a=null}a=a||{start:0,end:0}}else a=null;for(Au={focusedElem:e,selectionRange:a},ss=!1,Fe=t;Fe!==null;)if(t=Fe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Fe=e;else for(;Fe!==null;){switch(t=Fe,s=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a title"))),at(s,l,a),s[Ie]=e,We(s),l=s;break e;case"link":var d=nh("link","href",i).get(l+(a.href||""));if(d){for(var f=0;fEe&&(d=Ee,Ee=ce,ce=d);var y=so(f,ce),p=so(f,Ee);if(y&&p&&(A.rangeCount!==1||A.anchorNode!==y.node||A.anchorOffset!==y.offset||A.focusNode!==p.node||A.focusOffset!==p.offset)){var j=O.createRange();j.setStart(y.node,y.offset),A.removeAllRanges(),ce>Ee?(A.addRange(j),A.extend(p.node,p.offset)):(j.setEnd(p.node,p.offset),A.addRange(j))}}}}for(O=[],A=f;A=A.parentNode;)A.nodeType===1&&O.push({element:A,left:A.scrollLeft,top:A.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;fa?32:a,_.T=null,a=du,du=null;var s=_a,d=ca;if(Ze=0,Cl=_a=null,ca=0,(_e&6)!==0)throw Error(r(331));var f=_e;if(_e|=4,rf(s.current),sf(s,s.current,d,a),_e=f,zn(0,!1),vt&&typeof vt.onPostCommitFiberRoot=="function")try{vt.onPostCommitFiberRoot(Ql,s)}catch{}return!0}finally{V.p=i,_.T=l,Tf(e,t)}}function Df(e,t,a){t=zt(a,t),t=Jc(e.stateNode,t,2),e=ya(e,t,2),e!==null&&(Zl(e,2),Yt(e))}function ze(e,t,a){if(e.tag===3)Df(e,e,a);else for(;t!==null;){if(t.tag===3){Df(t,e,a);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(ka===null||!ka.has(l))){e=zt(a,e),a=Dd(2),l=ya(t,a,2),l!==null&&(Md(a,l,t,e),Zl(l,2),Yt(l));break}}t=t.return}}function vu(e,t,a){var l=e.pingCache;if(l===null){l=e.pingCache=new $v;var i=new Set;l.set(t,i)}else i=l.get(t),i===void 0&&(i=new Set,l.set(t,i));i.has(a)||(cu=!0,i.add(a),e=a1.bind(null,e,t,a),t.then(e,e))}function a1(e,t,a){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Ce===e&&(je&a)===a&&(Re===4||Re===3&&(je&62914560)===je&&300>mt()-Yi?(_e&2)===0&&wl(e,0):uu|=a,El===je&&(El=0)),Yt(e)}function Mf(e,t){t===0&&(t=Sr()),e=Ba(e,t),e!==null&&(Zl(e,t),Yt(e))}function l1(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Mf(e,a)}function n1(e,t){var a=0;switch(e.tag){case 31:case 13:var l=e.stateNode,i=e.memoizedState;i!==null&&(a=i.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(r(314))}l!==null&&l.delete(t),Mf(e,a)}function i1(e,t){return zs(e,t)}var Wi=null,Ol=null,gu=!1,Fi=!1,pu=!1,Ta=0;function Yt(e){e!==Ol&&e.next===null&&(Ol===null?Wi=Ol=e:Ol=Ol.next=e),Fi=!0,gu||(gu=!0,c1())}function zn(e,t){if(!pu&&Fi){pu=!0;do for(var a=!1,l=Wi;l!==null;){if(e!==0){var i=l.pendingLanes;if(i===0)var s=0;else{var d=l.suspendedLanes,f=l.pingedLanes;s=(1<<31-gt(42|e)+1)-1,s&=i&~(d&~f),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(a=!0,Uf(l,s))}else s=je,s=ei(l,l===Ce?s:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(s&3)===0||Xl(l,s)||(a=!0,Uf(l,s));l=l.next}while(a);pu=!1}}function s1(){Ef()}function Ef(){Fi=gu=!1;var e=0;Ta!==0&&p1()&&(e=Ta);for(var t=mt(),a=null,l=Wi;l!==null;){var i=l.next,s=Cf(l,t);s===0?(l.next=null,a===null?Wi=i:a.next=i,i===null&&(Ol=a)):(a=l,(e!==0||(s&3)!==0)&&(Fi=!0)),l=i}Ze!==0&&Ze!==5||zn(e),Ta!==0&&(Ta=0)}function Cf(e,t){for(var a=e.suspendedLanes,l=e.pingedLanes,i=e.expirationTimes,s=e.pendingLanes&-62914561;0f)break;var C=g.transferSize,O=g.initiatorType;C&&Yf(O)&&(g=g.responseEnd,d+=C*(g"u"?null:document;function eh(e,t,a){var l=Ll;if(l&&typeof t=="string"&&t){var i=At(t);i='link[rel="'+e+'"][href="'+i+'"]',typeof a=="string"&&(i+='[crossorigin="'+a+'"]'),Pf.has(i)||(Pf.add(i),e={rel:e,crossOrigin:a,href:t},l.querySelector(i)===null&&(t=l.createElement("link"),at(t,"link",e),We(t),l.head.appendChild(t)))}}function A1(e){ua.D(e),eh("dns-prefetch",e,null)}function T1(e,t){ua.C(e,t),eh("preconnect",e,t)}function z1(e,t,a){ua.L(e,t,a);var l=Ll;if(l&&e&&t){var i='link[rel="preload"][as="'+At(t)+'"]';t==="image"&&a&&a.imageSrcSet?(i+='[imagesrcset="'+At(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(i+='[imagesizes="'+At(a.imageSizes)+'"]')):i+='[href="'+At(e)+'"]';var s=i;switch(t){case"style":s=Rl(e);break;case"script":s=Hl(e)}Ut.has(s)||(e=D({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),Ut.set(s,e),l.querySelector(i)!==null||t==="style"&&l.querySelector(Cn(s))||t==="script"&&l.querySelector(wn(s))||(t=l.createElement("link"),at(t,"link",e),We(t),l.head.appendChild(t)))}}function D1(e,t){ua.m(e,t);var a=Ll;if(a&&e){var l=t&&typeof t.as=="string"?t.as:"script",i='link[rel="modulepreload"][as="'+At(l)+'"][href="'+At(e)+'"]',s=i;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=Hl(e)}if(!Ut.has(s)&&(e=D({rel:"modulepreload",href:e},t),Ut.set(s,e),a.querySelector(i)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(wn(s)))return}l=a.createElement("link"),at(l,"link",e),We(l),a.head.appendChild(l)}}}function M1(e,t,a){ua.S(e,t,a);var l=Ll;if(l&&e){var i=il(l).hoistableStyles,s=Rl(e);t=t||"default";var d=i.get(s);if(!d){var f={loading:0,preload:null};if(d=l.querySelector(Cn(s)))f.loading=5;else{e=D({rel:"stylesheet",href:e,"data-precedence":t},a),(a=Ut.get(s))&&wu(e,a);var g=d=l.createElement("link");We(g),at(g,"link",e),g._p=new Promise(function(S,C){g.onload=S,g.onerror=C}),g.addEventListener("load",function(){f.loading|=1}),g.addEventListener("error",function(){f.loading|=2}),f.loading|=4,ts(d,t,l)}d={type:"stylesheet",instance:d,count:1,state:f},i.set(s,d)}}}function E1(e,t){ua.X(e,t);var a=Ll;if(a&&e){var l=il(a).hoistableScripts,i=Hl(e),s=l.get(i);s||(s=a.querySelector(wn(i)),s||(e=D({src:e,async:!0},t),(t=Ut.get(i))&&Uu(e,t),s=a.createElement("script"),We(s),at(s,"link",e),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},l.set(i,s))}}function C1(e,t){ua.M(e,t);var a=Ll;if(a&&e){var l=il(a).hoistableScripts,i=Hl(e),s=l.get(i);s||(s=a.querySelector(wn(i)),s||(e=D({src:e,async:!0,type:"module"},t),(t=Ut.get(i))&&Uu(e,t),s=a.createElement("script"),We(s),at(s,"link",e),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},l.set(i,s))}}function th(e,t,a,l){var i=(i=re.current)?es(i):null;if(!i)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Rl(a.href),a=il(i).hoistableStyles,l=a.get(t),l||(l={type:"style",instance:null,count:0,state:null},a.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Rl(a.href);var s=il(i).hoistableStyles,d=s.get(e);if(d||(i=i.ownerDocument||i,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(e,d),(s=i.querySelector(Cn(e)))&&!s._p&&(d.instance=s,d.state.loading=5),Ut.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},Ut.set(e,a),s||w1(i,e,a,d.state))),t&&l===null)throw Error(r(528,""));return d}if(t&&l!==null)throw Error(r(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Hl(a),a=il(i).hoistableScripts,l=a.get(t),l||(l={type:"script",instance:null,count:0,state:null},a.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function Rl(e){return'href="'+At(e)+'"'}function Cn(e){return'link[rel="stylesheet"]['+e+"]"}function ah(e){return D({},e,{"data-precedence":e.precedence,precedence:null})}function w1(e,t,a,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),at(t,"link",a),We(t),e.head.appendChild(t))}function Hl(e){return'[src="'+At(e)+'"]'}function wn(e){return"script[async]"+e}function lh(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+At(a.href)+'"]');if(l)return t.instance=l,We(l),l;var i=D({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),We(l),at(l,"style",i),ts(l,a.precedence,e),t.instance=l;case"stylesheet":i=Rl(a.href);var s=e.querySelector(Cn(i));if(s)return t.state.loading|=4,t.instance=s,We(s),s;l=ah(a),(i=Ut.get(i))&&wu(l,i),s=(e.ownerDocument||e).createElement("link"),We(s);var d=s;return d._p=new Promise(function(f,g){d.onload=f,d.onerror=g}),at(s,"link",l),t.state.loading|=4,ts(s,a.precedence,e),t.instance=s;case"script":return s=Hl(a.src),(i=e.querySelector(wn(s)))?(t.instance=i,We(i),i):(l=a,(i=Ut.get(s))&&(l=D({},a),Uu(l,i)),e=e.ownerDocument||e,i=e.createElement("script"),We(i),at(i,"link",l),e.head.appendChild(i),t.instance=i);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,ts(l,a.precedence,e));return t.instance}function ts(e,t,a){for(var l=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=l.length?l[l.length-1]:null,s=i,d=0;d title"):null)}function U1(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function sh(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function O1(e,t,a,l){if(a.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var i=Rl(l.href),s=t.querySelector(Cn(i));if(s){t=s._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ls.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=s,We(s);return}s=t.ownerDocument||t,l=ah(l),(i=Ut.get(i))&&wu(l,i),s=s.createElement("link"),We(s);var d=s;d._p=new Promise(function(f,g){d.onload=f,d.onerror=g}),at(s,"link",l),a.instance=s}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=ls.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var Ou=0;function L1(e,t){return e.stylesheets&&e.count===0&&is(e,e.stylesheets),0Ou?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(i)}}:null}function ls(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)is(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ns=null;function is(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ns=new Map,t.forEach(R1,e),ns=null,ls.call(e))}function R1(e,t){if(!(t.state.loading&4)){var a=ns.get(e);if(a)var l=a.get(null);else{a=new Map,ns.set(e,a);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(c){console.error(c)}}return o(),Ju.exports=P1(),Ju.exports}var tg=eg();class ag{observers=new Set;next(c){this.observers.forEach(u=>u(c))}asObservable(){return{subscribe:c=>(this.observers.add(c),{unsubscribe:()=>this.observers.delete(c)})}}}class lg extends ag{currentValue;constructor(c){super(),this.currentValue=c}next(c){this.currentValue=c,super.next(c)}get value(){return this.currentValue}asObservable(){return{subscribe:c=>(c(this.currentValue),super.asObservable().subscribe(c))}}}class ng{authId="id";authToken="token";authEmail="email";runOutDate="runOutDate";authTokenSubject=new lg(null);constructor(){}async loadAuthTokenFromStorage(){const c=window.localStorage.getItem(this.authToken);this.authTokenSubject.next(c)}async setAuthData(c,u){if(await this.setPreference(this.authId,c.id),await this.setPreference(this.authToken,c.token),await this.setPreference(this.authEmail,c.email),u)await this.setPreference(this.runOutDate,"forever");else{const r=new Date,h=new Date(r);h.setDate(r.getDate()+1);const v=h.toISOString();await this.setPreference(this.runOutDate,v)}}async setPreference(c,u){window.localStorage.setItem(c,u)}async getCandidateId(){return window.localStorage.getItem(this.authId)}async getCandidateEmail(){return window.localStorage.getItem(this.authEmail)}async getAuthToken(){return window.localStorage.getItem(this.authToken)}getAuthTokenNoneAsync(){return this.authTokenSubject.value}async getRunOutDate(){return window.localStorage.getItem(this.runOutDate)}async clearCredentials(){window.localStorage.removeItem(this.authId),window.localStorage.removeItem(this.authToken),window.localStorage.removeItem(this.runOutDate)}async getAuth(){let c=await this.getCandidateId(),u=await this.getAuthToken(),r=await this.getCandidateEmail(),h=await this.getRunOutDate();return c&&u&&r&&h?{id:c,token:u,email:r,runOutDate:h}:null}getAuthTokenWithoutWindow(){const c=this.getAuthTokenNoneAsync();return c||""}getAuthWithoutWindow(){const c=this.getAuthTokenNoneAsync();return c?{id:"",token:c,email:"",runOutDate:"forever"}:null}}const Gl=new ng;const $h=(...o)=>o.filter((c,u,r)=>!!c&&c.trim()!==""&&r.indexOf(c)===u).join(" ").trim();const ig=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const sg=o=>o.replace(/^([A-Z])|[\s-_]+(\w)/g,(c,u,r)=>r?r.toUpperCase():u.toLowerCase());const Mh=o=>{const c=sg(o);return c.charAt(0).toUpperCase()+c.slice(1)};var cg={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ug=o=>{for(const c in o)if(c.startsWith("aria-")||c==="role"||c==="title")return!0;return!1};const rg=T.forwardRef(({color:o="currentColor",size:c=24,strokeWidth:u=2,absoluteStrokeWidth:r,className:h="",children:v,iconNode:z,...q},L)=>T.createElement("svg",{ref:L,...cg,width:c,height:c,stroke:o,strokeWidth:r?Number(u)*24/Number(c):u,className:$h("lucide",h),...!v&&!ug(q)&&{"aria-hidden":"true"},...q},[...z.map(([b,B])=>T.createElement(b,B)),...Array.isArray(v)?v:[v]]));const X=(o,c)=>{const u=T.forwardRef(({className:r,...h},v)=>T.createElement(rg,{ref:v,iconNode:c,className:$h(`lucide-${ig(Mh(o))}`,`lucide-${o}`,r),...h}));return u.displayName=Mh(o),u};const og=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Ih=X("arrow-left",og);const dg=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Ua=X("arrow-right",dg);const fg=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],hg=X("arrow-up-down",fg);const mg=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ph=X("badge-check",mg);const vg=[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]],gg=X("bolt",vg);const pg=[["path",{d:"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",key:"oz39mx"}]],yg=X("bookmark",pg);const bg=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],em=X("bot",bg);const jg=[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],ar=X("briefcase-business",jg);const xg=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],fr=X("briefcase",xg);const Sg=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],Ng=X("calendar-days",Sg);const kg=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],_g=X("calendar",kg);const Ag=[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]],tm=X("car",Ag);const Tg=[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]],zg=X("check-check",Tg);const Dg=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Mg=X("check",Dg);const Eg=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Bn=X("chevron-down",Eg);const Cg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ke=X("circle-check",Cg);const wg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],Ug=X("circle-pause",wg);const Og=[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Lg=X("circle-play",Og);const Rg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],Hg=X("circle-plus",Rg);const Vg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]],qg=X("circle-stop",Vg);const Bg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],Yg=X("circle-user",Bg);const Gg=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],Jg=X("clipboard-list",Gg);const Qg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]],lr=X("clock-3",Qg);const Xg=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],nr=X("code-xml",Xg);const Zg=[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]],ir=X("crown",Zg);const Kg=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],Wg=X("ellipsis",Kg);const Fg=[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]],$g=X("file-plus-corner",Fg);const Ig=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],sr=X("file-text",Ig);const Pg=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],am=X("funnel",Pg);const ep=[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]],lm=X("gamepad-2",ep);const tp=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8",key:"1sqzm4"}],["path",{d:"M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5",key:"kc0143"}],["rect",{x:"3",y:"7",width:"18",height:"4",rx:"1",key:"1hberx"}]],ap=X("gift",tp);const lp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],js=X("globe",lp);const np=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],nm=X("graduation-cap",np);const ip=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],im=X("grid-3x3",ip);const sp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],cp=X("info",sp);const up=[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]],cr=X("laptop",up);const rp=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],op=X("layout-grid",rp);const dp=[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]],sm=X("layout-panel-top",dp);const fp=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]],hp=X("lightbulb",fp);const mp=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],vp=X("link-2",mp);const gp=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],cm=X("lock-keyhole",gp);const pp=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],yp=X("log-out",pp);const bp=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],xs=X("mail",bp);const jp=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],Qn=X("map-pin",jp);const xp=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],Sp=X("menu",xp);const Np=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],um=X("message-circle",Np);const kp=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],_p=X("mic",kp);const Ap=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],Tp=X("monitor",Ap);const zp=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],Dp=X("moon",zp);const Mp=[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]],Ep=X("move-right",Mp);const Cp=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],wp=X("paperclip",Cp);const Up=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],Op=X("pen-line",Up);const Lp=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],Rp=X("phone",Lp);const Hp=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Vp=X("play",Hp);const qp=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Bp=X("plus",qp);const Yp=[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]],Gp=X("presentation",Yp);const Jp=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],Qp=X("radar",Jp);const Xp=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Zp=X("radio",Xp);const Kp=[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]],Wp=X("rocket",Kp);const Fp=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],ur=X("route",Fp);const $p=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],Ip=X("save",$p);const Pp=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],rr=X("search",Pp);const e0=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],t0=X("send",e0);const a0=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],rm=X("settings",a0);const l0=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],n0=X("shield",l0);const i0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],s0=X("smile",i0);const c0=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Zn=X("sparkles",c0);const u0=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],om=X("square-pen",u0);const r0=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],hr=X("star",r0);const o0=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],d0=X("sun",o0);const f0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Kn=X("target",f0);const h0=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Eh=X("trending-up",h0);const m0=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],dm=X("trophy",m0);const v0=[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]],ql=X("user-round",v0);const g0=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Ch=X("user",g0);const p0=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],y0=X("users",p0);const b0=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],j0=X("wand-sparkles",b0);const x0=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],or=X("x",x0);function Bl({icon:o,label:c,...u}){return n.jsxs("label",{className:"auth-field",children:[n.jsx("span",{children:c}),n.jsxs("div",{className:"auth-input-wrap",children:[n.jsx("span",{className:"auth-input-icon","aria-hidden":!0,children:o}),n.jsx("input",{...u})]})]})}function S0({email:o,loading:c,onBackToLogin:u,onChangeEmail:r,onSubmit:h}){return n.jsxs("div",{className:"auth-view view-enter",children:[n.jsxs("div",{className:"auth-head",children:[n.jsx("button",{className:"link-btn back-link",type:"button",onClick:u,children:"Tilbage"}),n.jsx("h1",{children:"Glemt kodeord?"}),n.jsx("p",{children:"Indtast din e-mail, sa sender vi instruktioner til at nulstille din kode."})]}),n.jsxs("form",{className:"auth-form",onSubmit:h,children:[n.jsx(Bl,{icon:n.jsx(xs,{size:16,strokeWidth:1.8}),label:"E-mail",type:"email",placeholder:"navn@eksempel.dk",value:o,onChange:v=>r(v.target.value),required:!0}),n.jsx("button",{className:"submit-btn",type:"submit",disabled:c,children:c?"Sender...":"Send nulstillingslink"})]})]})}function N0({email:o,loading:c,onChangeEmail:u,onChangePassword:r,onChangeRememberMe:h,onForgotPassword:v,onRegister:z,onSubmit:q,password:L,rememberMe:b}){return n.jsxs("div",{className:"auth-view view-enter",children:[n.jsxs("div",{className:"auth-head auth-head-center",children:[n.jsx("h1",{children:"Velkommen tilbage"}),n.jsx("p",{children:"Indtast dine oplysninger for at logge ind pa din konto."})]}),n.jsxs("form",{className:"auth-form",onSubmit:q,children:[n.jsx(Bl,{icon:n.jsx(xs,{size:16,strokeWidth:1.8}),label:"E-mail",type:"email",placeholder:"navn@eksempel.dk",value:o,onChange:B=>u(B.target.value),required:!0}),n.jsxs("label",{className:"auth-field",children:[n.jsxs("div",{className:"auth-field-row",children:[n.jsx("span",{children:"Adgangskode"}),n.jsx("button",{className:"link-btn",type:"button",onClick:v,children:"Glemt adgangskode?"})]}),n.jsxs("div",{className:"auth-input-wrap",children:[n.jsx("span",{className:"auth-input-icon","aria-hidden":!0,children:n.jsx(cm,{size:16,strokeWidth:1.8})}),n.jsx("input",{type:"password",placeholder:"••••••••",value:L,onChange:B=>r(B.target.value),required:!0})]})]}),n.jsxs("label",{className:"check-row",children:[n.jsx("input",{type:"checkbox",checked:b,onChange:B=>h(B.target.checked)}),n.jsx("span",{children:"Husk mig i 30 dage"})]}),n.jsx("button",{className:"submit-btn",type:"submit",disabled:c,children:c?"Logger ind...":"Log ind"})]}),n.jsxs("p",{className:"auth-foot",children:["Har du ikke en konto?",n.jsx("button",{className:"link-btn",type:"button",onClick:z,children:"Opret bruger"})]})]})}function k0({email:o,firstName:c,lastName:u,loading:r,locationQuery:h,locationSuggestions:v,onBackToLogin:z,onChangeEmail:q,onChangeFirstName:L,onChangeLastName:b,onChangeLocationQuery:B,onChangePassword:D,onSelectLocation:R,onSubmit:K,password:le}){return n.jsxs("div",{className:"auth-view view-enter",children:[n.jsxs("div",{className:"auth-head auth-head-center",children:[n.jsx("h1",{children:"Opret konto"}),n.jsx("p",{children:"Start din karriere-rejse med os i dag."})]}),n.jsxs("form",{className:"auth-form",onSubmit:K,children:[n.jsx(Bl,{icon:n.jsx(Ch,{size:16,strokeWidth:1.8}),label:"Fornavn",type:"text",placeholder:"Lasse",value:c,onChange:Z=>L(Z.target.value),required:!0}),n.jsx(Bl,{icon:n.jsx(Ch,{size:16,strokeWidth:1.8}),label:"Efternavn",type:"text",placeholder:"Hansen",value:u,onChange:Z=>b(Z.target.value),required:!0}),n.jsx(Bl,{icon:n.jsx(xs,{size:16,strokeWidth:1.8}),label:"E-mail",type:"email",placeholder:"navn@eksempel.dk",value:o,onChange:Z=>q(Z.target.value),required:!0}),n.jsx(Bl,{icon:n.jsx(cm,{size:16,strokeWidth:1.8}),label:"Adgangskode",type:"password",placeholder:"Skab en staerk kode",value:le,onChange:Z=>D(Z.target.value),required:!0,minLength:8}),n.jsxs("label",{className:"auth-field",children:[n.jsx("span",{children:"Lokation"}),n.jsxs("div",{className:"auth-input-wrap",children:[n.jsx("span",{className:"auth-input-icon","aria-hidden":!0,children:n.jsx(Qn,{size:16,strokeWidth:1.8})}),n.jsx("input",{type:"text",placeholder:"Soeg by eller adresse",value:h,onChange:Z=>B(Z.target.value),autoComplete:"off",required:!0})]}),v.length>0?n.jsx("div",{className:"location-suggestions",children:v.map(Z=>n.jsx("button",{type:"button",className:"location-suggestion-item",onClick:()=>{R(Z.placeId,Z.description)},children:Z.description},Z.placeId))}):null]}),n.jsx("button",{className:"submit-btn",type:"submit",disabled:r,children:r?"Opretter...":"Opret bruger"})]}),n.jsxs("p",{className:"auth-foot",children:["Har du allerede en konto?",n.jsx("button",{className:"link-btn",type:"button",onClick:z,children:"Log ind"})]})]})}class el{searchParams;constructor(c){this.searchParams=c?new URLSearchParams(c):new URLSearchParams}append(c,u){const r=new URLSearchParams(this.searchParams);return r.append(c,String(u)),new el(r)}set(c,u){const r=new URLSearchParams(this.searchParams);return r.set(c,String(u)),new el(r)}toString(){return this.searchParams.toString()}}function hs(o,c){if(!c)return o;const u=new URL(o);if(c instanceof el){const r=c.toString();return r&&new URLSearchParams(r).forEach((v,z)=>u.searchParams.append(z,v)),u.toString()}return Object.entries(c).forEach(([r,h])=>{if(Array.isArray(h)){h.forEach(v=>u.searchParams.append(r,String(v)));return}u.searchParams.set(r,String(h))}),u.toString()}async function ms(o,c="json"){if(!o.ok){const u=await o.text();throw new Error(u||`HTTP ${o.status}`)}if(o.status!==204)return c==="blob"?await o.blob():await o.json()}function vs(o){const c=typeof window>"u"?null:window.localStorage.getItem("token");return{...c?{Authorization:`Bearer ${c}`}:{},...o??{}}}class _0{async get(c,u){const r=await fetch(hs(c,u?.params),{method:"GET",headers:vs(u?.headers)});return ms(r,u?.responseType)}async post(c,u,r){const h=await fetch(hs(c,r?.params),{method:"POST",headers:{"Content-Type":"application/json",...vs(r?.headers)},body:u===void 0?void 0:JSON.stringify(u)});return ms(h)}async put(c,u,r){const h=await fetch(hs(c,r?.params),{method:"PUT",headers:{"Content-Type":"application/json",...vs(r?.headers)},body:u===void 0?void 0:JSON.stringify(u)});return ms(h)}async delete(c,u){const r=await fetch(hs(c,u?.params),{method:"DELETE",headers:vs(u?.headers)});return ms(r)}}const He=new _0,M={backendApi:"https://api.arbejd.com/",backendApiV2:"https://api2.arbejd.com/api/"};class A0{http;constructor(c=He){this.http=c}login(c,u){let r=M.backendApi+"api/1.1.0/candidate/login",h={email:c,password:u};return this.http.post(r,h)}forgotPassword(c){let u=M.backendApi+"api/1.1.0/candidate/resetPassword/"+c.toLowerCase();return this.http.get(u)}}class tl{constructor(c=He,u=Gl){this.http=c,this.localStorageService=u}closeAccount(c){let u=M.backendApi+"api/1.1.0/candidate/"+c.toLowerCase();return this.http.delete(u)}accountRetention(c){let u=M.backendApi+"api/1.1.0/candidate/"+c+"/account-retention/";return this.http.get(u)}getCandidatesQualifications(){let c=M.backendApi+"api/1.1.0/candidate/skill/";return this.http.get(c)}getCandidatesCertifications(){let c=M.backendApi+"api/1.1.0/candidate/certificate/";return this.http.get(c)}getCandidatesLanguages(){let c=M.backendApi+"api/1.1.0/candidate/language/";return this.http.get(c)}getCandidatesDriverLicenses(){let c=M.backendApi+"api/1.1.0/candidate/driversLicense/";return this.http.get(c)}changePassword(c,u){let r=M.backendApi+"api/1.1.0/candidate/resetPassword",h={key:c,password:u};return this.http.post(r,h)}getCandidatesEducations(){let c=M.backendApiV2+"1.0.0/client/candidate_education";return this.http.get(c)}updateExperience(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_experience/"+c.id,h={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.put(r,h)}createAccountV2(c){let u=M.backendApiV2+"1.0.0/client/candidate";return this.http.post(u,c)}updateCandidate(c,u){let r=M.backendApiV2+"1.0.0/client/candidate/v2/"+c.id,h={...c};c.birthday&&(c.birthday=new Date(c.birthday)),c.birthday instanceof Date&&(h.birthday=c.birthday.toISOString());let v={language:u,candidate:h};return this.http.put(r,v)}getCandidate(){let c=M.backendApiV2+"1.0.0/client/candidate";return this.http.get(c)}getCvSuggestion(){let c=M.backendApiV2+"1.0.0/client/suggestion";return this.http.get(c)}saveExperience(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_experience",h={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,esco_id:c.occupation.id,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.post(r,h)}removeExperience(c){let u=M.backendApiV2+"1.0.0/client/candidate_experience/"+c;return this.http.delete(u)}getCandidatesExperiences(){let c=M.backendApiV2+"1.0.0/client/candidate_experience";return this.http.get(c)}getJobAgentFilters(){let c=M.backendApiV2+"1.0.0/client/job_agent_filter";return this.http.get(c)}updateJobAgentFilter(c){let u=M.backendApiV2+"1.0.0/client/job_agent_filter/"+c.id,r=c;return this.http.put(u,r)}removeJobAgentFilter(c){let u=M.backendApiV2+"1.0.0/client/job_agent_filter/"+c;return this.http.delete(u)}updateCandidateJobSeeker(c){let u=M.backendApiV2+"1.0.0/client/candidate/update_job_seeker/"+c.id;return this.http.put(u,c)}updateCvUploadProfileText(c,u,r){let h=M.backendApiV2+"1.0.0/client/candidate/update_cv_upload_profile/"+c,v={description:u,language:r};return this.http.put(h,v)}saveExperienceV2(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_experience",h={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,esco_id:c.escoId,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.post(r,h)}updateProfileText(c){let u=M.backendApiV2+"1.0.0/client/candidate/update_profile_text";return this.http.put(u,c)}}function Ku(o,c){const u=o[c];return typeof u=="string"?u:null}class T0{authService;candidateService;constructor(c=new A0,u=new tl){this.authService=c,this.candidateService=u}async login(c,u,r){const v=await this.authService.login(c,u)??{},z=Ku(v,"token");if(!z)return{ok:!1,message:"Login fejlede: token mangler i svaret fra serveren."};const q={id:Ku(v,"id")??"",token:z,email:Ku(v,"email")??c,runOutDate:"forever"};return await Gl.setAuthData(q,r),{ok:!0,message:"Du er nu logget ind."}}async forgotPassword(c){return await this.authService.forgotPassword(c),{ok:!0,message:"Anmodning om nulstilling af kodeord er sendt."}}async register(c){const u=Number.parseInt(c.zip,10);if(Number.isNaN(u))return{ok:!1,message:"Postnummer skal være et tal."};const r={email:c.email,password:c.password,zip:u,zipName:c.zipName,awsUrl:"",latitude:0,longitude:0,firstName:c.firstName,lastName:c.lastName,subscribe:c.subscribe};return await this.candidateService.createAccountV2(r),{ok:!0,message:"Kontoen er oprettet."}}}class fm{constructor(c=He){this.http=c}searchPlaces(c){const u=M.backendApiV2+"client/google_maps/1.0.0/get_places?query="+encodeURIComponent(c);return this.http.get(u)}getPlaceDetails(c){const u=M.backendApiV2+"client/google_maps/1.0.0/get_place_details?place_id="+encodeURIComponent(c);return this.http.get(u)}}function z0(o){const c=T.useMemo(()=>new T0,[]),u=T.useMemo(()=>new fm,[]),[r,h]=T.useState(""),[v,z]=T.useState(!1),[q,L]=T.useState(""),[b,B]=T.useState(""),[D,R]=T.useState(""),[K,le]=T.useState(""),[Z,fe]=T.useState(""),[te,se]=T.useState(""),[Y,P]=T.useState([]),[ie,G]=T.useState(null),[E,ae]=T.useState(""),[he,pe]=T.useState(!1),[H,Q]=T.useState(null),[ue,ee]=T.useState("login");function W(N){Q(null),ee(N)}async function _(N){const U=N.trim();if(U.length<3){P([]);return}try{const oe=((await u.searchPlaces(U)).predictions??[]).filter(re=>typeof re.place_id=="string"&&typeof re.description=="string").map(re=>({description:re.description,placeId:re.place_id}));P(oe)}catch{P([])}}function V(N){const U=N.match(/\b(\d{4})\b/);if(!U)return null;const J=U[1],re=N.slice(N.indexOf(J)+J.length).trim().split(",")[0]?.trim()||"";return re?{cityName:re,zip:J}:null}async function x(N,U){let J=U;try{const re=await u.getPlaceDetails(N);typeof re.result?.formatted_address=="string"&&re.result.formatted_address.trim()&&(J=re.result.formatted_address.trim())}catch{}const oe=V(J)??V(U);if(se(J),P([]),!oe){G(null);return}G({cityName:oe.cityName,description:J,zip:oe.zip})}async function $(N){N.preventDefault(),z(!0),Q(null);try{const U=await c.login(q.trim(),b,he);Q(U),U.ok&&o?.()}catch(U){const J=U instanceof Error?U.message:"Login mislykkedes.";Q({ok:!1,message:J})}finally{z(!1)}}async function de(N){N.preventDefault(),z(!0),Q(null);try{if(!ie){Q({ok:!1,message:"Vaelg en lokation fra listen (med postnummer)."});return}const U=await c.register({email:K.trim(),firstName:D.trim(),lastName:Z.trim(),password:E,subscribe:!0,zip:ie.zip,zipName:ie.cityName});Q(U),U.ok&&ee("login")}catch(U){const J=U instanceof Error?U.message:"Oprettelse mislykkedes.";Q({ok:!1,message:J})}finally{z(!1)}}async function m(N){N.preventDefault(),z(!0),Q(null);try{const U=await c.forgotPassword(r.trim());Q(U)}catch(U){const J=U instanceof Error?U.message:"Kunne ikke sende nulstillingslink.";Q({ok:!1,message:J})}finally{z(!1)}}return{forgotEmail:r,handleForgotSubmit:m,handleLoginSubmit:$,handleRegisterSubmit:de,loading:v,loginEmail:q,loginPassword:b,registerFirstName:D,registerEmail:K,registerLastName:Z,registerLocationQuery:te,registerLocationSuggestions:Y,registerPassword:E,rememberMe:he,result:H,setForgotEmail:h,setLoginEmail:L,setLoginPassword:B,setRegisterEmail:le,setRegisterFirstName:R,setRegisterLastName:fe,setRegisterLocationQuery:N=>{se(N),G(null),_(N)},setRegisterPassword:ae,setRememberMe:pe,selectRegisterLocation:x,switchView:W,view:ue}}function D0({onAuthenticated:o}){const{forgotEmail:c,handleForgotSubmit:u,handleLoginSubmit:r,handleRegisterSubmit:h,loading:v,loginEmail:z,loginPassword:q,registerFirstName:L,registerEmail:b,registerLastName:B,registerLocationQuery:D,registerLocationSuggestions:R,registerPassword:K,rememberMe:le,result:Z,setForgotEmail:fe,setLoginEmail:te,setLoginPassword:se,setRegisterEmail:Y,setRegisterFirstName:P,setRegisterLastName:ie,setRegisterLocationQuery:G,setRegisterPassword:E,setRememberMe:ae,selectRegisterLocation:he,switchView:pe,view:H}=z0(o);return n.jsxs("main",{className:"auth-page",children:[n.jsx("div",{className:"orb orb-1"}),n.jsx("div",{className:"orb orb-2"}),n.jsx("div",{className:"orb orb-3"}),n.jsxs("div",{className:"auth-logo-wrap",children:[n.jsx("div",{className:"auth-logo-dot",children:"A"}),n.jsx("span",{className:"auth-logo-text",children:"ARBEJD"})]}),n.jsxs("section",{className:"auth-card",children:[H==="login"?n.jsx(N0,{email:z,loading:v,onChangeEmail:te,onChangePassword:se,onChangeRememberMe:ae,onForgotPassword:()=>pe("forgot"),onRegister:()=>pe("register"),onSubmit:r,password:q,rememberMe:le}):null,H==="register"?n.jsx(k0,{email:b,firstName:L,lastName:B,loading:v,locationQuery:D,locationSuggestions:R,onBackToLogin:()=>pe("login"),onChangeEmail:Y,onChangeFirstName:P,onChangeLastName:ie,onChangeLocationQuery:G,onChangePassword:E,onSelectLocation:he,onSubmit:h,password:K}):null,H==="forgot"?n.jsx(S0,{email:c,loading:v,onBackToLogin:()=>pe("login"),onChangeEmail:fe,onSubmit:u}):null,Z?n.jsx("p",{className:Z.ok?"status success":"status error",children:Z.message}):null]},H)]})}class hm{constructor(c=He){this.http=c}listEscoByParent(c){let u=M.backendApiV2+"1.0.0/client/esco";return c&&(u+="/"+c),this.http.get(u)}listAllEscos(){let c=M.backendApiV2+"1.0.0/client/esco";return this.http.get(c)}}class M0{constructor(c=He){this.http=c}addEscoToJobAgent(c){let u=M.backendApiV2+"1.0.0/client/job_agent_filter",r={esco_id:c};return this.http.post(u,r)}removeJobAgentFilter(c){let u=M.backendApiV2+"1.0.0/client/job_agent_filter/"+c;return this.http.delete(u)}}class Ss{constructor(c=He){this.http=c}getPaymentOverview(){let c=M.backendApiV2+"client/end_user_subscription/1.0.0/payment_overview";return this.http.get(c)}getSubscriptionProducts(){let c=M.backendApiV2+"client/end_user_subscription/1.0.0/get_products";return this.http.get(c)}deactivateAutoRenew(){let c=M.backendApiV2+"client/end_user_subscription/1.0.0/deactivate_auto_renew";return this.http.put(c,{})}activateAutoRenew(){let c=M.backendApiV2+"client/end_user_subscription/1.0.0/activate_auto_renew";return this.http.put(c,{})}redeemCode(c){let u=M.backendApiV2+"client/candidate_redeem_code/v1";return this.http.post(u,{code:c})}}class mm{constructor(c=new tl,u=new Ss,r=new M0,h=new hm){this.candidateService=c,this.subscriptionService=u,this.jobAgentService=r,this.escoService=h}async loadInitialData(){const[c,u,r,h]=await Promise.allSettled([this.subscriptionService.getPaymentOverview(),this.candidateService.getJobAgentFilters(),this.candidateService.getCvSuggestion(),this.escoService.listAllEscos()]);return{paymentOverview:c.status==="fulfilled"?c.value:null,jobAgentFilters:u.status==="fulfilled"?u.value:[],cvSuggestions:r.status==="fulfilled"?this.withImprovements(r.value):[],escos:h.status==="fulfilled"?h.value:[]}}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate(),u=c.firstName?.trim()||c.name?.trim()||"Lasse",r=c.imageUrl||c.image||void 0;return{name:u,imageUrl:r}}catch{return{name:"Lasse"}}}async addEscoToFilter(c){await this.jobAgentService.addEscoToJobAgent(c)}async removeFilter(c){await this.jobAgentService.removeJobAgentFilter(c)}async setFilterVisibility(c,u){await this.candidateService.updateJobAgentFilter({...c,visible:u})}getEscoSuggestions(c,u,r){const h=c.trim().toLowerCase();if(!h)return[];const v=new Set(r.map(z=>z.escoId));return u.filter(z=>!v.has(z.id)).filter(z=>z.preferedLabelDa.toLowerCase().includes(h)).slice(0,10)}getSuggestionText(c){return c>=0&&c<50?"Et godt første skridt mod flere relevante job.":c>=50&&c<100?"Kan styrke dine chancer i ansøgningsbunken.":c>=100&&c<150?"Ofte efterspurgt og forbedrer dine jobmuligheder markant.":c>=150&&c<200?"Et klart plus som gør dig mere attraktiv for arbejdsgivere.":c>=200?"En afgørende faktor der åbner langt flere jobmuligheder.":"Forbedrer din profil til kommende jobmatch."}withImprovements(c){return c.map(u=>{const r=[],h=[{items:u.jobImprovementSuggestion.educations??[],type:"education"},{items:u.jobImprovementSuggestion.languages??[],type:"language"},{items:u.jobImprovementSuggestion.driversLicenses??[],type:"driversLicense"},{items:u.jobImprovementSuggestion.qualifications??[],type:"qualification"},{items:u.jobImprovementSuggestion.certificates??[],type:"certificate"}];for(const v of h)for(const z of v.items)r.push({...z,improvementType:v.type});return r.sort((v,z)=>z.jobChanceIncrease-v.jobChanceIncrease),{...u,improvements:r}})}}class E0{constructor(c=He){this.http=c}saveJobFilter(c){let u=M.backendApiV2+"1.0.0/client/candidate_search_filter";return this.http.post(u,c)}getJobFilter(){let c=M.backendApiV2+"1.0.0/client/candidate_search_filter";return this.http.get(c)}resetJobFilter(){let c=M.backendApiV2+"1.0.0/client/candidate_search_filter/reset_job_filter";return this.http.put(c,{})}}class mr{http;constructor(c=He){this.http=c}getSearchWords(){let c=M.backendApiV2+"1.0.0/client/candidate_search/list_search_words";return this.http.get(c)}getJobs(c,u,r){let h=M.backendApi+"api/1.1.0/jobs/all/"+u+"/"+r;return this.http.post(h,c)}getJobsV2(c,u,r,h){let v=M.backendApiV2+"1.0.0/client/candidate_search/v2/"+c+"/"+u+"/"+r,z=new el;return h.length>0&&h.forEach(q=>{z=z.append("terms",q)}),this.http.get(v,{params:z})}getSavedJobs(c,u){let r=M.backendApi+"api/1.1.0/candidate/jobs/saved";return this.http.get(r)}getSavedJobsV2(c,u){let r=M.backendApiV2+"1.0.0/client/job/bookmarked_jobs/"+c+"/"+u;return this.http.get(r)}getAppliedJobs(c,u){let r=M.backendApi+"api/1.1.0/applications/candidate/";return this.http.get(r)}getAppliedJobsV2(c,u){let r=M.backendApiV2+"1.0.0/client/job/applied_jobs/"+c+"/"+u;return this.http.get(r)}payWithStripe(c,u){const r=M.backendApiV2+"1.0.0/client/payment/create-payment-intent",h={paymentMethodId:c,amount:u};return this.http.post(r,h)}bookmarkJob(c){let u=M.backendApi+"api/1.1.0/candidate/jobs/"+c+"/jobnet/updateSavedStatus",r={saved:!0};return this.http.post(u,r)}unbookmarkJob(c){let u=M.backendApi+"api/1.1.0/candidate/jobs/"+c+"/jobnet/updateSavedStatus",r={saved:!1};return this.http.post(u,r)}bookmarkJobV2(c,u,r){let h=M.backendApiV2+"1.0.0/client/job/bookmark/"+c,v={job_type:r,save:u};return this.http.post(h,v)}getJobNetJobDetail(c){let u=M.backendApiV2+"1.0.0/client/job/detail/star/"+c;return this.http.get(u)}getJobDetail(c){let u=M.backendApi+"api/1.1.0/jobs/"+c;return this.http.get(u)}getOccupationCategorizations(){let c=M.backendApiV2+"1.0.0/client/ds_tree";return this.http.get(c)}getJobSummary(c){let u=M.backendApi+"api/1.1.0/jobs/"+c+"/summary";return this.http.get(u)}applyJob(c){let u=M.backendApi+"api/1.1.0/applications/job/"+c,r={jobPostingId:c};return this.http.post(u,r)}undoApplyJob(c){let u=M.backendApi+"api/1.1.0/applications/"+c;return this.http.delete(u)}toggleApplyJobnetjob(c,u){let r=M.backendApiV2+"1.0.0/client/job/detail/star/apply/"+c,h={apply:u};return this.http.put(r,h)}}const Wu={escoIds:[],workTypePermanent:!1,workTypePartTime:!1,workDistance:50,partTimeHours:null,distanceCenterName:"",latitude:null,longitude:null};function Xe(o){return typeof o=="string"?o:""}function Gn(o){return typeof o=="object"&&o!==null?o:null}function Fu(o,c){if(!o)return[];const u=o[c];return Array.isArray(u)?u:[]}function $u(o){if(Array.isArray(o))return o;const c=Gn(o);if(!c)return[];const u=Fu(c,"searchList");if(u.length>0)return u;const r=Gn(c.data),h=Fu(r,"searchList");if(h.length>0)return h;const v=Fu(c,"items");return v.length>0?v:[]}function wh(o,c){if(!o)return null;const u=o[c];return typeof u=="number"?u:null}function C0(o){return o.trim()}function w0(o){if(!o)return[];const c=new Set,u=o.searchText?.trim();u&&u.length>0&&c.add(u);for(const r of o.desiredTitles??[]){const h=C0(r);h.length>0&&c.add(h)}return Array.from(c)}function U0(o,c){return{id:Xe(o.id),title:Xe(o.title),companyName:Xe(o.companyName),occupationName:Xe(o.occupationName),descriptionIntro:Xe(o.descriptionIntro),address:Xe(o.address),time:Xe(o.time),applicationDeadline:o.applicationDeadline instanceof Date?o.applicationDeadline.toISOString():Xe(String(o.applicationDeadline??"")),candidateDistance:typeof o.candidateDistance=="number"?o.candidateDistance:null,logoUrl:Xe(o.logoUrl),companyLogoImage:Xe(o.companyLogoImage),fromJobnet:!!o.fromJobnet,isSaved:!!o.saved,matchPercent:c}}function Uh(o){return{id:Xe(o.id),title:Xe(o.title),companyName:Xe(o.companyName),occupationName:Xe(o.occupationName),descriptionIntro:Xe(o.descriptionIntro),address:Xe(o.address),time:Xe(o.time),applicationDeadline:o.applicationDeadline instanceof Date?o.applicationDeadline.toISOString():Xe(String(o.applicationDeadline??"")),candidateDistance:typeof o.candidateDistance=="number"?o.candidateDistance:null,logoUrl:Xe(o.logoUrl),companyLogoImage:Xe(o.companyLogoImage),isActive:typeof o.isActive=="boolean"?o.isActive:void 0,fromJobnet:!!o.fromJobnet,isSaved:!0}}class Ns{constructor(c=new mr,u=new E0,r=new fm,h=new tl){this.jobService=c,this.filterService=u,this.placesService=r,this.candidateService=h}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate(),u=c.firstName?.trim()||c.name?.trim()||"Lasse",r=c.imageUrl||c.image||void 0;return{name:u,imageUrl:r}}catch{return{name:"Lasse"}}}async getOccupationOptions(){const c=await this.jobService.getOccupationCategorizations(),u=[];for(const r of c)for(const h of r.subAreas)for(const v of h.occupations)typeof v.id=="number"&&typeof v.name=="string"&&v.name.trim().length>0&&u.push({id:v.id,name:v.name});return u.sort((r,h)=>r.name.localeCompare(h.name,"da"))}async getJobSearchWords(){return(await this.jobService.getSearchWords()).filter(u=>typeof u=="string"&&u.trim().length>0)}async getSavedFilter(){try{const c=await this.filterService.getJobFilter(),u=c?.candidateSearchFilter;return u?{escoIds:c.escoIds??[],workTypePermanent:!!u.workTypePermanent,workTypePartTime:!!u.workTypePartTime,workDistance:u.workDistance??u.defaultDistance??50,partTimeHours:u.partTimeHours??null,distanceCenterName:u.distanceCenterName??u.defaultCenterName??"",latitude:u.latitude??null,longitude:u.longitude??null}:{...Wu}}catch{return{...Wu}}}async saveFilter(c){const u=c.workTypePartTime&&c.partTimeHours&&c.partTimeHours>0&&c.partTimeHours<=37?c.partTimeHours:null,r={escoIds:c.escoIds,candidateSearchFilter:{workTimeDay:!1,workTimeEvening:!1,workTimeNight:!1,workTimeWeekend:!1,workTypePermanent:c.workTypePermanent,workTypeFreelance:!1,workTypePartTime:c.workTypePartTime,workTypeSubstitute:!1,workTypeTemporary:!1,workDistance:c.workDistance,partTimeHours:u,distanceCenterName:c.distanceCenterName,latitude:c.latitude,longitude:c.longitude}};await this.filterService.saveJobFilter(r)}async resetFilter(){return await this.filterService.resetJobFilter(),{...Wu}}async searchPlaceSuggestions(c){const u=c.trim();return u.length<3?[]:((await this.placesService.searchPlaces(u)).predictions??[]).filter(h=>typeof h.place_id=="string"&&typeof h.description=="string").map(h=>({placeId:h.place_id,description:h.description}))}async getPlaceSelection(c){const r=(await this.placesService.getPlaceDetails(c)).result;return!r||typeof r.formatted_address!="string"?null:{description:r.formatted_address,latitude:typeof r.geometry?.location?.lat=="number"?r.geometry.location.lat:null,longitude:typeof r.geometry?.location?.lng=="number"?r.geometry.location.lng:null}}async getTabItems(c,u){if(c==="gemte"){const r=await this.jobService.getSavedJobsV2(0,100);return $u(r).map(v=>Uh(v))}if(c==="sogte"){const r=await this.jobService.getAppliedJobsV2(0,100);return $u(r).map(v=>Uh(v))}return this.getJobsFeedItems(u?[u]:void 0)}async applyFiltersAndGetJobs(c,u){await this.saveFilter(c);const r=w0(u);return this.getJobsFeedItems(r)}async toggleBookmark(c,u){const r=c.fromJobnet?"star":"arbejd.com";await this.jobService.bookmarkJobV2(c.id,u,r)}async getJobsFeedItems(c){let r=10,h=0;const v=12,z=120,q=new Set,L=[];let b=[];const B=(c??[]).map(D=>D.trim()).filter(D=>D.length>0);if(B.length>0)b=B;else try{b=(await this.jobService.getSearchWords()).filter(R=>typeof R=="string"&&R.trim().length>0)}catch{b=[]}for(let D=0;D{r(!1)},[o]),T.useEffect(()=>{if(!u)return;function v(q){q.key==="Escape"&&r(!1)}const z=document.body.style.overflow;return document.body.style.overflow="hidden",window.addEventListener("keydown",v),()=>{document.body.style.overflow=z,window.removeEventListener("keydown",v)}},[u]);function h(v){c?.(v),r(!1)}return n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",className:"dash-mobile-menu-btn","aria-label":u?"Luk menu":"Aabn menu","aria-expanded":u,onClick:()=>r(v=>!v),children:u?n.jsx(or,{size:18,strokeWidth:1.9}):n.jsx(Sp,{size:18,strokeWidth:1.9})}),n.jsx("button",{type:"button",className:`dash-mobile-overlay ${u?"open":""}`,"aria-label":"Luk menu",onClick:()=>r(!1)}),n.jsxs("aside",{className:`dash-sidebar ${u?"open":""}`,children:[n.jsxs("div",{className:"dash-logo-row",children:[n.jsx("div",{className:"dash-logo-dot",children:"A"}),n.jsx("span",{className:"dash-logo-text",children:"ARBEJD"})]}),n.jsxs("nav",{className:"dash-nav",children:[O0.map(v=>{const z=v.icon,q=v.key===o;return n.jsxs("button",{type:"button",className:q?"dash-nav-item active":"dash-nav-item",onClick:()=>h(v.key),children:[n.jsx("span",{className:v.accent?"dash-nav-icon accent":"dash-nav-icon",children:n.jsx(z,{size:19,strokeWidth:1.7})}),n.jsx("span",{className:"dash-nav-label",children:v.label}),v.badge?n.jsx("span",{className:"dash-nav-badge",children:v.badge}):null]},v.key)}),n.jsx("div",{className:"dash-nav-divider"}),L0.map(v=>{const z=v.icon,q=v.key===o;return n.jsxs("button",{type:"button",className:q?"dash-nav-item active":"dash-nav-item",onClick:()=>h(v.key),children:[n.jsx("span",{className:v.accent?"dash-nav-icon accent":"dash-nav-icon",children:n.jsx(z,{size:19,strokeWidth:1.7})}),n.jsx("span",{className:"dash-nav-label",children:v.label}),v.dot?n.jsx("span",{className:"dash-nav-dot"}):null]},v.key)})]}),n.jsxs("div",{className:"dash-sidebar-pro",children:[n.jsx("div",{className:"dash-sidebar-pro-glow"}),n.jsx(Zn,{size:19,strokeWidth:1.8}),n.jsx("h4",{children:"Pro-medlemskab"}),n.jsx("p",{children:"Faa ubegrænsede simuleringer"})]})]})]})}function Jt({actions:o,imageUrl:c,name:u,onLogout:r,onToggleTheme:h,theme:v="light"}){return n.jsxs("header",{className:"dash-topbar",children:[h?n.jsxs("button",{type:"button",className:"dash-theme-btn",onClick:h,children:[v==="dark"?n.jsx(d0,{size:15,strokeWidth:1.8}):n.jsx(Dp,{size:15,strokeWidth:1.8}),n.jsx("span",{children:v==="dark"?"Light":"Dark"})]}):null,o?n.jsx("div",{className:"dash-topbar-actions",children:o}):null,n.jsxs("div",{className:"dash-profile-wrap",children:[n.jsxs("button",{className:"dash-profile-btn",type:"button",children:[c?n.jsx("img",{src:c,alt:u,className:"dash-profile-avatar"}):n.jsx("div",{className:"dash-profile-avatar dash-profile-avatar-fallback",children:u.slice(0,1).toUpperCase()}),n.jsx("span",{children:u}),n.jsx(Bn,{size:15,strokeWidth:1.8})]}),n.jsxs("div",{className:"dash-profile-menu",children:[n.jsxs("button",{type:"button",children:[n.jsx(Yg,{size:16,strokeWidth:1.8})," Profil"]}),n.jsxs("button",{type:"button",children:[n.jsx(rm,{size:16,strokeWidth:1.8})," Indstillinger"]}),n.jsx("div",{className:"dash-profile-divider"}),n.jsxs("button",{type:"button",className:"danger",onClick:r,children:[n.jsx(yp,{size:16,strokeWidth:1.8})," Log ud"]})]})]})]})}const R0={paymentOverview:null,jobAgentFilters:[],cvSuggestions:[],escos:[]};function H0(o){return o.trim().slice(0,1).toUpperCase()||"A"}function V0(o){return Math.max(68,98-o*4)}function q0(o,c){const u=c.trim().toLowerCase();return u?o.filter(r=>r.preferedLabelDa.toLowerCase().includes(u)).slice(0,8):[]}function B0({onLogout:o,onNavigate:c,onOpenJobDetail:u,onToggleTheme:r,theme:h}){const v=T.useMemo(()=>new mm,[]),z=T.useMemo(()=>new Ns,[]),[q,L]=T.useState("Lasse"),[b,B]=T.useState(void 0),[D,R]=T.useState(R0),[K,le]=T.useState([]),[Z,fe]=T.useState(!0),[te,se]=T.useState(""),[Y,P]=T.useState(""),[ie,G]=T.useState(""),[E,ae]=T.useState(""),[he,pe]=T.useState(""),[H,Q]=T.useState(25);T.useEffect(()=>{let x=!0;async function $(){fe(!0);const[de,m,N]=await Promise.all([v.getCandidateProfile(),v.loadInitialData(),z.getTabItems("jobs")]);x&&(L(de.name),B(de.imageUrl),R(m),le(N),fe(!1))}return $(),()=>{x=!1}},[v,z]);async function ue(){const x=await v.loadInitialData();R(x)}async function ee(){const x=Y.trim()||te.trim()||ie.trim(),$=v.getEscoSuggestions(x,D.escos,D.jobAgentFilters)[0]||q0(D.escos,x)[0];$&&(await v.addEscoToFilter($.id),await ue(),se(""),P(""),G(""),ae(""),pe(""),Q(25))}async function W(x){await v.setFilterVisibility(x,!x.visible),await ue()}const _=D.jobAgentFilters,V=(K.length>0?K:[]).slice(0,6);return n.jsxs("section",{className:`dash-root ${h==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"agents",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar ai-agent-main",children:[n.jsx(Jt,{name:q,imageUrl:b,onLogout:o,theme:h,onToggleTheme:r}),n.jsxs("div",{className:"ai-head",children:[n.jsx("h1",{children:"Jobagenter"}),n.jsx("p",{children:"Saet din jobsogning pa autopilot. Lad agenter overvage og matche dig med de perfekte jobs."})]}),n.jsxs("section",{className:"ai-create-card",children:[n.jsxs("div",{className:"ai-create-title",children:[n.jsx("div",{className:"ai-create-icon",children:n.jsx(em,{size:20,strokeWidth:1.8})}),n.jsx("h2",{children:"Opret ny jobagent"})]}),n.jsxs("div",{className:"ai-form-grid",children:[n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Agentens navn"}),n.jsx("input",{value:te,onChange:x=>se(x.target.value),placeholder:"F.eks. Frontend Udvikler CPH"})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Sogetekst / Nogleord"}),n.jsx("input",{value:Y,onChange:x=>P(x.target.value),placeholder:"F.eks. React, TypeScript, Tailwind"})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Arbejdsomrade"}),n.jsxs("select",{value:ie,onChange:x=>G(x.target.value),children:[n.jsx("option",{value:"",children:"Vaelg branche"}),n.jsx("option",{value:"IT & Udvikling",children:"IT & Udvikling"}),n.jsx("option",{value:"Design & UX",children:"Design & UX"}),n.jsx("option",{value:"Salg & Marketing",children:"Salg & Marketing"}),n.jsx("option",{value:"HR & Ledelse",children:"HR & Ledelse"})]})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Arbejdstype"}),n.jsxs("select",{value:E,onChange:x=>ae(x.target.value),children:[n.jsx("option",{value:"",children:"Vaelg type"}),n.jsx("option",{value:"Fuldtid",children:"Fuldtid"}),n.jsx("option",{value:"Deltid",children:"Deltid"}),n.jsx("option",{value:"Freelance",children:"Freelance / Konsulent"}),n.jsx("option",{value:"Studiejob",children:"Studiejob"})]})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Arbejdssted"}),n.jsxs("div",{className:"ai-location-wrap",children:[n.jsx(Qn,{size:16,strokeWidth:1.8}),n.jsx("input",{value:he,onChange:x=>pe(x.target.value),placeholder:"By eller postnummer"})]})]}),n.jsxs("div",{className:"ai-field ai-distance-field",children:[n.jsxs("div",{className:"ai-distance-head",children:[n.jsx("label",{children:"Maks. distance"}),n.jsxs("span",{children:[H," km"]})]}),n.jsx("input",{type:"range",min:0,max:100,value:H,onChange:x=>Q(Number(x.target.value))})]})]}),n.jsx("div",{className:"ai-create-actions",children:n.jsxs("button",{type:"button",onClick:()=>{ee()},children:[n.jsx(Ip,{size:16,strokeWidth:1.8})," Gem jobagent"]})})]}),n.jsxs("section",{className:"ai-agents-section",children:[n.jsx("h3",{children:"Dine aktive agenter"}),n.jsxs("div",{className:"ai-agents-row custom-scrollbar",children:[_.length===0?n.jsx("p",{className:"dash-loading",children:"Ingen aktive agenter endnu."}):null,_.map((x,$)=>n.jsxs("article",{className:"ai-agent-chip-card",children:[n.jsxs("div",{className:"ai-agent-card-head",children:[n.jsxs("div",{className:"ai-agent-chip-left",children:[n.jsx("div",{className:`ai-agent-mini-icon ${$%2===0?"teal":"indigo"}`,children:$%2===0?n.jsx(Tp,{size:16,strokeWidth:1.8}):n.jsx(om,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:x.escoName}),n.jsx("p",{children:x.isCalculated?"Aktiv siden i går":"Aktiv"})]})]}),n.jsx("button",{type:"button",className:x.visible?"ai-toggle on":"ai-toggle",onClick:()=>{W(x)},children:n.jsx("span",{})})]}),n.jsxs("div",{className:"ai-tags",children:[n.jsx("span",{children:x.escoName}),n.jsx("span",{children:he||"København"}),n.jsxs("span",{children:[H," km"]})]})]},x.id))]})]}),n.jsxs("section",{className:"ai-jobs-section",children:[n.jsxs("div",{className:"ai-jobs-head",children:[n.jsxs("h3",{children:[n.jsx(Zn,{size:16,strokeWidth:1.8})," Anbefalede jobs til dig"]}),n.jsx("span",{children:"Opdateret for 5 min siden"})]}),n.jsxs("div",{className:"ai-jobs-grid",children:[Z?n.jsx("p",{className:"dash-loading",children:"Indlaeser anbefalinger..."}):null,!Z&&V.length===0?n.jsx("p",{className:"dash-loading",children:"Ingen jobanbefalinger fundet endnu."}):null,V.map((x,$)=>n.jsxs("article",{className:"ai-job-card",role:"button",tabIndex:0,onClick:()=>u(x.id,x.fromJobnet,"agents"),onKeyDown:de=>{(de.key==="Enter"||de.key===" ")&&(de.preventDefault(),u(x.id,x.fromJobnet,"agents"))},children:[n.jsx("div",{className:`ai-job-rail ${$%3===2?"indigo":"teal"}`}),n.jsxs("div",{className:"ai-job-top",children:[x.companyLogoImage||x.logoUrl?n.jsx("img",{src:x.companyLogoImage||x.logoUrl,alt:x.companyName,className:"ai-company-logo"}):n.jsx("div",{className:"ai-company-logo-fallback",children:H0(x.companyName)}),n.jsxs("div",{className:"ai-match-col",children:[n.jsxs("div",{className:"ai-match-pill",children:[n.jsx(Kn,{size:13,strokeWidth:1.8})," ",V0($),"% Match"]}),n.jsxs("small",{children:["Via: ",_[0]?.escoName||"Jobagent"]})]})]}),n.jsxs("div",{className:"ai-job-title-wrap",children:[n.jsx("h4",{children:x.title}),n.jsxs("p",{children:[x.companyName," • ",x.address||"Lokation"]})]}),n.jsxs("div",{className:"ai-job-tags",children:[n.jsx("span",{children:x.occupationName||"Frontend"}),n.jsx("span",{children:x.fromJobnet?"Jobnet":"Arbejd.com"}),n.jsx("span",{children:x.candidateDistance!=null?`${Math.round(x.candidateDistance)} km`:"Remote"})]}),n.jsxs("div",{className:"ai-job-bottom",children:[n.jsx("span",{children:"Slået op for nyligt"}),n.jsxs("button",{type:"button",onClick:de=>{de.stopPropagation(),u(x.id,x.fromJobnet,"agents")},children:["Læs mere ",n.jsx(Ua,{size:14,strokeWidth:1.8})]})]})]},x.id))]})]})]})]})}const Y0={paymentOverview:null,jobAgentFilters:[],cvSuggestions:[],escos:[]};function Oh(){return["Diamantskærer","Ministerialbetjent","Kiropraktor","System Developer","Senior Software Developer","Founder and Developer","Senior .Net Developer","Freelance Programmer","Støberichef","Softwareudvikler, frontend","CSR-ansvarlig","Lagerchef inden for råstof","Ios developer","Kokkeelev","IT-kvalitetsmedarbejder","Efterretningsofficer"]}function G0(o){return o>=70?{text:"Kan styrke dine chancer i ansøgningsbunken",kind:"strong"}:o>=40?{text:"Ofte efterspurgt – forbedrer dine jobmuligheder markant",kind:"neutral"}:{text:"Et godt første skridt mod flere relevante job",kind:"soft"}}function J0(o){return o==="education"?nm:o==="language"?js:o==="driversLicense"?tm:o==="certificate"?Ph:o==="qualification"?Kn:hr}function Q0(o){return o==="education"?"blue":o==="language"?"emerald":o==="driversLicense"?"orange":o==="certificate"?"rose":o==="qualification"?"indigo":"slate"}function X0({onLogout:o,onNavigate:c,onToggleTheme:u,theme:r}){const h=T.useMemo(()=>new mm,[]),[v,z]=T.useState("Lasse"),[q,L]=T.useState(void 0),[b,B]=T.useState(Y0),[D,R]=T.useState(!0),[K,le]=T.useState("");T.useEffect(()=>{let Y=!0;async function P(){R(!0);const[ie,G]=await Promise.all([h.getCandidateProfile(),h.loadInitialData()]);if(!Y)return;z(ie.name),L(ie.imageUrl),B(G);const E=G.jobAgentFilters[0]?.escoName||Oh()[1];le(ae=>ae||E),R(!1)}return P(),()=>{Y=!1}},[h]);const Z=b.jobAgentFilters.length>0?b.jobAgentFilters.map(Y=>Y.escoName):Oh(),fe=b.jobAgentFilters.find(Y=>Y.escoName===K)||b.jobAgentFilters[0],te=(fe?b.cvSuggestions.find(Y=>Y.escoId===fe.escoId)?.improvements:b.cvSuggestions[0]?.improvements)||[],se=te.length>0?te:[{name:"Grundkursus i sikkerhed og beredskab",jobChanceIncrease:78,improvementType:"education"},{name:"Service og kommunikation i offentlige institutioner",jobChanceIncrease:52,improvementType:"qualification"},{name:"Dansk (Flydende)",jobChanceIncrease:65,improvementType:"language"},{name:"B - Almindelig bil",jobChanceIncrease:34,improvementType:"driversLicense"},{name:"Konflikthåndtering",jobChanceIncrease:72,improvementType:"qualification"},{name:"Førstehjælpsbevis",jobChanceIncrease:44,improvementType:"certificate"},{name:"Sikkerhedsgodkendelse (PET)",jobChanceIncrease:81,improvementType:"certificate"}];return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"ai-agent",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar career-main",children:[n.jsx(Jt,{name:v,imageUrl:q,onLogout:o,theme:r,onToggleTheme:u,actions:n.jsxs("div",{className:"career-status-pill",children:[n.jsx(Ke,{size:15,strokeWidth:1.8}),"CV analyseret"]})}),n.jsxs("div",{className:"career-head",children:[n.jsxs("div",{className:"career-head-title-row",children:[n.jsx("div",{className:"career-head-icon",children:n.jsx(j0,{size:19,strokeWidth:1.8})}),n.jsx("h1",{children:"Karriereagent"})]}),n.jsx("p",{className:"career-head-kicker",children:"Din Karriereagent Foreslår"}),n.jsx("p",{className:"career-head-desc",children:"Boost din profil ved hjælp af kunstig intelligens. Forslagene er udvalgt til din profil ud fra analyser af over 100.000+ jobopslag og dit nuværende CV."})]}),n.jsxs("div",{className:"career-grid",children:[n.jsxs("aside",{className:"career-agents-col",children:[n.jsxs("div",{className:"career-agents-head",children:[n.jsx("h2",{children:"Mine agenter"}),n.jsxs("button",{type:"button",children:[n.jsx(Hg,{size:16,strokeWidth:1.8})," Tilføj ny agent"]})]}),n.jsx("div",{className:"career-agents-list custom-scrollbar",children:Z.map(Y=>n.jsxs("button",{type:"button",className:K===Y?"active":"",onClick:()=>le(Y),children:[n.jsx("span",{children:Y}),K===Y?n.jsx("i",{}):null]},Y))})]}),n.jsxs("section",{className:"career-reco-col",children:[n.jsxs("div",{className:"career-reco-head",children:[n.jsxs("h2",{children:["Viser anbefalinger for",n.jsx("span",{children:K||"Ministerialbetjent"})]}),n.jsxs("button",{type:"button",children:[n.jsx(am,{size:14,strokeWidth:1.8})," Filtrer"]})]}),D?n.jsx("p",{className:"dash-loading",children:"Indlaeser anbefalinger..."}):null,n.jsx("div",{className:"career-cards custom-scrollbar",children:se.map((Y,P)=>{const ie=J0(Y.improvementType||"qualification"),G=G0(Y.jobChanceIncrease||0),E=Q0(Y.improvementType||"qualification");return n.jsxs("article",{className:"career-card",children:[n.jsx("div",{className:"career-card-glow"}),n.jsx("div",{className:"career-card-wand",children:n.jsx(Zn,{size:16,strokeWidth:1.8})}),n.jsxs("div",{className:"career-card-content",children:[n.jsx("div",{className:`career-card-icon ${E}`,children:n.jsx(ie,{size:18,strokeWidth:1.8})}),n.jsx("h3",{children:Y.shortName||Y.name}),n.jsxs("p",{className:`tone ${G.kind}`,children:[G.kind==="strong"?n.jsx(dm,{size:13,strokeWidth:1.8}):G.kind==="neutral"?n.jsx(Kn,{size:13,strokeWidth:1.8}):n.jsx(n0,{size:13,strokeWidth:1.8}),G.text]})]})]},`${Y.name}-${P}`)})})]})]})]})]})}class Z0{constructor(c=He){this.http=c}generateApplication(c,u,r,h){let v=M.backendApiV2+"1.0.0/client/ai_handler/create_my_application",z={isStar:c,jobId:u,language:r,userInput:h};return this.http.post(v,z)}listGeneratedJobApplications(c){let u=M.backendApiV2+"1.0.0/client/ai_handler/list_created_job_application/"+c;return this.http.get(u)}listPredefinedUserInput(){let c=M.backendApiV2+"1.0.0/client/ai_handler/list_predefined_user_input";return this.http.get(c)}getJobApplication(c){let u=M.backendApiV2+"1.0.0/client/ai_handler/"+c;return this.http.get(u)}updateMyCvDescriptions(c){let u=M.backendApiV2+"1.0.0/client/ai_handler/update_my_cv_descriptions",r={language:c};return this.http.post(u,r)}updateStatesOnMyCvDescription(c,u,r){let h=M.backendApiV2+"1.0.0/client/ai_handler/update_states_on_my_cv_descriptions/"+c,v={state:u,subState:r};return this.http.put(h,v)}getMyCvDescriptions(){let c=M.backendApiV2+"1.0.0/client/ai_handler/get_my_cv_descriptions";return this.http.get(c)}submitJobApplicationRating(c,u,r){let h=M.backendApiV2+"1.0.0/client/ai_handler/job_application_rating",v={ai_generated_job_application_id:c,rating:u,rating_text:r};return this.http.post(h,v)}startApplicationExamination(c){const u=M.backendApiV2+"1.0.0/client/ai_handler/create_application_examination",r={ai_generated_job_application_id:c};return this.http.post(u,r)}getApplicationExamination(c){const u=M.backendApiV2+"1.0.0/client/ai_handler/application_examination/"+encodeURIComponent(c);return this.http.get(u)}getApplicationExaminationByJobApplicationId(c){const u=M.backendApiV2+"1.0.0/client/ai_handler/application_examination_by_job_application/"+c;return this.http.get(u)}}class K0{constructor(c=He){this.http=c}searchForCertification(c){let u=encodeURIComponent(c),r=M.backendApiV2+`1.0.0/client/certificate?search_text=${u}`;return this.http.get(r)}saveCertification(c){let u=M.backendApiV2+"1.0.0/client/candidate_certificate",r={qualification_id:c};return this.http.post(u,r)}updateCertification(c){let u=M.backendApiV2+"1.0.0/client/candidate_certificate/"+c.id,r=c;return this.http.put(u,r)}removeCertification(c){let u=M.backendApiV2+"1.0.0/client/candidate_certificate/"+c;return this.http.delete(u)}addUnknownCertificate(c){let u=M.backendApiV2+"1.0.0/client/certificate",r={certificate_name:c};return this.http.post(u,r)}}class W0{constructor(c=He){this.http=c}sendMyCvToEmail(){let c=M.backendApi+"api/1.1.0/candidate/sendPdf",u={};return this.http.post(c,u)}getMyCv(){let c=M.backendApiV2+"1.0.0/client/candidate/pdf";return this.http.get(c,{responseType:"blob"})}getMyCvV2(c){let u=M.backendApiV2+"1.0.0/client/candidate/pdf_url?language="+c;return this.http.get(u)}generateCv(c){let u=M.backendApiV2+"1.0.0/client/candidate/generateCv",r={language:c};return this.http.post(u,r)}}class F0{constructor(c=He,u=Gl){this.http=c,this.localStorageService=u}uploadCv(c,u){const r=M.backendApiV2+"1.0.0/client/cv_upload";return this.http.post(r,c,{headers:{Authorization:`Bearer ${u}`}})}getCvUploadData(){let c=M.backendApiV2+"1.0.0/client/cv_upload/get_upload_cv";return this.http.get(c)}setProfileTextToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/profile_text_is_done/"+c,r={};return this.http.put(u,r)}setExperienceToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/experience_is_done/"+c,r={};return this.http.put(u,r)}setEducationToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/education_is_done/"+c,r={};return this.http.put(u,r)}setQualificationToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/qualification_is_done/"+c,r={};return this.http.put(u,r)}setCertificateToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/certificate_is_done/"+c,r={};return this.http.put(u,r)}setLanguageToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/language_is_done/"+c,r={};return this.http.put(u,r)}setDriversLicenseToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/drivers_license_is_done/"+c,r={};return this.http.put(u,r)}setCvUploadToDone(c){let u=M.backendApiV2+"1.0.0/client/cv_upload/cv_is_done/"+c,r={};return this.http.put(u,r)}}class $0{constructor(c=He){this.http=c}getAllDriverLicenses(){let c=M.backendApi+"api/1.1.0/driversLicenses";return this.http.get(c)}updateDriverLicense(c,u){let r=M.backendApi+"api/1.1.0/candidate/driversLicense/"+c,h={};return this.http.put(r,h)}removeLanguage(c){let u=M.backendApiV2+"1.0.0/client/candidate_drivers_license/"+c;return this.http.delete(u)}saveDriverLicense(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_drivers_license",h={level:u,drivers_license_id:c.id};return this.http.post(r,h)}saveDriverLicenseV2(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_drivers_license",h={level:c,drivers_license_id:u};return this.http.post(r,h)}}class I0{constructor(c=He){this.http=c}searchForEducations(c){let u=M.backendApi+"api/1.1.0/educations/search/"+c;return this.http.get(u)}searchForSchools(c){let u=M.backendApi+"api/1.1.0/institutions/search/"+c;return this.http.get(u)}saveEducation(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_education",h={comments:c.comments,education_disced_15:c.education.disced15,from_date:c.fromDate,to_date:c.toDate,institution_number:c.institution?.instNumber,is_current:c.isCurrent,language:u};return this.http.post(r,h)}removeEducation(c){let u=M.backendApiV2+"1.0.0/client/candidate_education/"+c;return this.http.delete(u)}updateEducation(c,u,r){let h=M.backendApiV2+"1.0.0/client/candidate_education/"+c,v={comments:u.comments,from_date:u.fromDate,to_date:u.toDate,is_current:u.isCurrent,language:r};return this.http.put(h,v)}getEducationOccupationSuggestions(c){let u=M.backendApi+"api/1.1.0/educations/suggestions/occupation/"+c;return this.http.get(u)}saveUnknownEducation(c){let u=M.backendApiV2+"1.0.0/client/education/save_unknown_education",r={education_name:c};return this.http.post(u,r)}saveEducationV2(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_education",h={comments:c.comments,education_disced_15:c.education_disced_15,from_date:c.from_date,to_date:c.to_date,institution_number:c.institution_number,is_current:c.is_current,language:u};return this.http.post(r,h)}}class P0{constructor(c=He){this.http=c}getAllLanguages(){let c=M.backendApi+"api/1.1.0/languages";return this.http.get(c)}saveLanguage(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_language",h={language_id:u.id,level:c};return this.http.post(r,h)}updateLanguage(c,u,r){let h=M.backendApiV2+"1.0.0/client/candidate_language/"+c,v={level:u};return this.http.put(h,v)}removeLanguage(c){let u=M.backendApiV2+"1.0.0/client/candidate_language/"+c;return this.http.delete(u)}saveLanguageV2(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_language",h={language_id:u,level:c};return this.http.post(r,h)}}class ey{constructor(c=He){this.http=c}searchForQualification(c){let u=M.backendApi+"api/1.1.0/qualifications/type/3/search/"+c;return this.http.get(u)}updateQualification(c,u){let r=M.backendApiV2+"1.0.0/client/candidate_qualification/"+c,h={level:u};return this.http.put(r,h)}saveQualification(c){let u=M.backendApiV2+"1.0.0/client/candidate_qualification",r={level:c.level,qualification_id:c.qualification.id};return this.http.post(u,r)}removeQualification(c){let u=M.backendApiV2+"1.0.0/client/candidate_qualification/"+c;return this.http.delete(u)}getQualificationsOccupationSuggestions(c,u){let r=M.backendApi+"api/1.1.0/qualifications/type/"+u+"/suggestions/occupation/"+c;return this.http.get(r)}addUnknownQualification(c){let u=M.backendApi+"api/1.1.0/qualifications/type/3/fromCandidate",r={name:c,type:3};return this.http.post(u,r)}saveQualificationV2(c){let u=M.backendApiV2+"1.0.0/client/candidate_qualification",r={level:c.level,qualification_id:c.qualification_id};return this.http.post(u,r)}}class ty{constructor(c=He){this.http=c}addUnknownOccupation(c){let u=M.backendApi+"api/1.1.0/occupations/fromCandidate",r={name:c};return this.http.post(u,r)}}class ay{constructor(c=He){this.http=c}saveUnknownInstitution(c){let u=M.backendApiV2+"1.0.0/client/institution/save_unknown_institution",r={institution_name:c};return this.http.post(u,r)}}class ly{constructor(c=new tl,u=new W0,r=new F0,h=new Ss,v=new Z0,z=new I0,q=new ey,L=new K0,b=new P0,B=new $0,D=new hm,R=new ty,K=new ay,le=Gl){this.candidateService=c,this.cvService=u,this.cvUploadService=r,this.subscriptionService=h,this.aiHandlerService=v,this.educationService=z,this.qualificationService=q,this.certificationService=L,this.languageService=b,this.driverLicenseService=B,this.escoService=D,this.occupationService=R,this.institutionService=K,this.localStorageService=le}escosCache=null;async getSnapshot(){const[c,u,r,h,v,z,q,L,b,B]=await Promise.allSettled([this.candidateService.getCandidate(),this.candidateService.getCandidatesExperiences(),this.candidateService.getCandidatesEducations(),this.candidateService.getCandidatesQualifications(),this.candidateService.getCandidatesCertifications(),this.candidateService.getCandidatesLanguages(),this.candidateService.getCandidatesDriverLicenses(),this.subscriptionService.getPaymentOverview(),this.cvUploadService.getCvUploadData(),this.aiHandlerService.getMyCvDescriptions()]);return{candidate:c.status==="fulfilled"?c.value:null,experiences:u.status==="fulfilled"?u.value:[],educations:r.status==="fulfilled"?r.value:[],skills:h.status==="fulfilled"?h.value:[],certifications:v.status==="fulfilled"?v.value:[],languages:z.status==="fulfilled"?z.value:[],driverLicenses:q.status==="fulfilled"?q.value:[],paymentOverview:L.status==="fulfilled"?L.value:null,cvUploadData:b.status==="fulfilled"?b.value:null,aiGeneratedCVDescription:B.status==="fulfilled"&&B.value?.id?B.value:null}}async setActiveSeeker(c,u,r){const h={...c,isActive:u};return this.candidateService.updateCandidate(h,r)}async updateCandidate(c,u){return this.candidateService.updateCandidate(c,u)}async generateCv(c){await this.cvService.generateCv(c)}async getCvDownloadUrl(c){return(await this.cvService.getMyCvV2(c)).url}async uploadCv(c,u){const r=await this.localStorageService.getAuthToken();if(!r)throw new Error("No auth token found.");await this.cvUploadService.uploadCv({base_64_cv_file:c,cv_file_type:u},r)}async optimizeCv(c){await this.aiHandlerService.updateMyCvDescriptions(c)}async updateExperience(c,u){await this.candidateService.updateExperience(c,u)}async updateEducation(c,u){const r={comments:c.comments,education:c.education,institution:c.institution,fromDate:new Date(c.fromDate),toDate:new Date(c.toDate),isCurrent:c.isCurrent};await this.educationService.updateEducation(c.id,r,u)}async updateCertification(c){await this.certificationService.updateCertification(c)}async updateLanguage(c){const u={id:c.language.id,isO639:c.language.isO639,name:c.language.name,ownName:c.language.ownName,priority:c.language.priority};await this.languageService.updateLanguage(c.id,c.level,u)}async removeExperience(c){await this.candidateService.removeExperience(c)}async removeEducation(c){await this.educationService.removeEducation(c)}async removeQualification(c){await this.qualificationService.removeQualification(c)}async removeCertification(c){await this.certificationService.removeCertification(c)}async removeLanguage(c){await this.languageService.removeLanguage(c)}async removeDriverLicense(c){await this.driverLicenseService.removeLanguage(c)}async getEscoSuggestions(c,u=25){this.escosCache||(this.escosCache=await this.escoService.listAllEscos());const r=c.trim().toLowerCase();return r?this.escosCache.filter(h=>h.preferedLabelDa.toLowerCase().includes(r)).slice(0,u):this.escosCache.slice(0,u)}async getLanguageOptions(){return(await this.languageService.getAllLanguages()).allLanguages??[]}async getDriverLicenseOptions(){return this.driverLicenseService.getAllDriverLicenses()}async createExperience(c,u){let r=c.escoId??null;if(!r&&c.occupationName?.trim()&&(r=(await this.occupationService.addUnknownOccupation(c.occupationName.trim())).id),!r)throw new Error("Vælg eller opret en stilling først.");await this.candidateService.saveExperienceV2({companyName:c.companyName,comments:c.comments,fromDate:c.fromDate,toDate:c.toDate,isCurrent:c.isCurrent,escoId:r},u)}async createEducation(c,u){let r=c.educationDisced15??null;if(!r&&c.educationName?.trim()&&(r=(await this.educationService.saveUnknownEducation(c.educationName)).disced15),!r)throw new Error("Vælg eller opret en uddannelse først.");let h=c.institutionNumber;!h&&c.institutionName?.trim()&&(h=(await this.institutionService.saveUnknownInstitution(c.institutionName.trim())).inst_number),await this.educationService.saveEducationV2({comments:c.comments,institution_number:h,from_date:c.fromDate,to_date:c.toDate,education_disced_15:r,is_current:c.isCurrent},u)}async createCertification(c){let u=c.certificateId??null;if(!u&&c.certificateName?.trim()&&(u=(await this.certificationService.addUnknownCertificate(c.certificateName.trim())).certificate_id),!u)throw new Error("Vælg eller opret et certifikat først.");await this.certificationService.saveCertification(u)}async createLanguage(c,u){await this.languageService.saveLanguageV2(u,c)}async getQualificationSuggestions(c){const u=c.trim();return u?this.qualificationService.searchForQualification(u):[]}async createQualification(c){let u=c.qualificationId?.trim()||"";if(!u&&c.qualificationName?.trim()&&(u=(await this.qualificationService.addUnknownQualification(c.qualificationName.trim())).id),!u)throw new Error("Vælg eller opret en kvalifikation først.");await this.qualificationService.saveQualificationV2({qualification_id:u,level:c.level})}async getEducationSuggestions(c){const u=c.trim();return u?this.educationService.searchForEducations(u):[]}async getSchoolSuggestions(c){const u=c.trim();return u?this.educationService.searchForSchools(u):[]}async getCertificationSuggestions(c){const u=c.trim();return u?this.certificationService.searchForCertification(u):[]}async createDriverLicense(c,u){await this.driverLicenseService.saveDriverLicenseV2(u,c)}}const ny={candidate:null,experiences:[],educations:[],skills:[],certifications:[],languages:[],driverLicenses:[],paymentOverview:null,cvUploadData:null,aiGeneratedCVDescription:null},iy=[{id:"e1",title:"Senior Frontend-udvikler",company:"Lunar",from:"2020-08-01",to:null,description:"Udvikling og vedligeholdelse af core-features i bankens app samt performance-optimering."},{id:"e2",title:"Web-udvikler",company:"Trustpilot",from:"2017-01-01",to:"2020-07-01",description:"Udviklede dashboards og analysevaerktojer i taet samarbejde med UX-teamet."}],sy=[{id:"ed1",title:"Cand.it i Webudvikling",school:"IT-Universitetet i Kobenhavn",from:"2013-08-01",to:"2015-06-01",description:"Specialisering i webteknologier, databaser og brugercentreret design."},{id:"ed2",title:"Datamatiker",school:"KEA - Kobenhavns Erhvervsakademi",from:"2010-08-01",to:"2013-06-01",description:"Softwarekonstruktion, systemarkitektur og programmering i Java og C#."}];function ys(o){if(!o)return null;const c=o instanceof Date?o:new Date(o);return Number.isNaN(c.getTime())?null:c}function Lh(o){const c=ys(o);return c?new Intl.DateTimeFormat("da-DK",{month:"short",year:"numeric"}).format(c):"Ukendt"}function Rh(o,c,u){const r=Lh(o),h=u?"Nu":Lh(c);return`${r} - ${h}`}function cy(o){const c=ys(o);return c?new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"long",year:"numeric"}).format(c):"Ikke angivet"}function Hh(o){return[...o].sort((c,u)=>{const r=ys(c.fromDate)?.getTime()??0;return(ys(u.fromDate)?.getTime()??0)-r})}function uy(o){return o.qualification?.name||"Kvalifikation"}function ry(o){return o.qualification?.name||o.levelName||"Certificering"}function oy(o){return o.driversLicense?.name||o.levelName||"Korekort"}function dy(o){return o.levelName||"Niveau ukendt"}function fy({onLogout:o,onNavigate:c,onToggleTheme:u,theme:r}){const h=T.useMemo(()=>new ly,[]),[v,z]=T.useState("standard"),[q,L]=T.useState(ny),[b,B]=T.useState(!0);T.useEffect(()=>{let E=!0;return h.getSnapshot().then(ae=>{E&&L(ae)}).finally(()=>{E&&B(!1)}),()=>{E=!1}},[h]);const D=q.candidate,R=D?.firstName?.trim()||D?.name?.trim()||"Lasse",K=D?.firstName||"Lasse",le=D?.lastName||"Hansen",Z=D?.imageUrl||D?.image||"",fe=q.experiences.length>0?Hh(q.experiences):[],te=q.educations.length>0?Hh(q.educations):[],se=q.skills,Y=q.languages,P=q.certifications,ie=q.driverLicenses,G=Y.length>0?Y.map(E=>({id:E.id,name:E.language?.name||"Sprog",level:dy(E)})):[{id:"da",name:"Dansk",level:"Modersmal"},{id:"en",name:"Engelsk",level:"Flydende"}];return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"cv",onNavigate:c}),n.jsxs("main",{className:`dash-main custom-scrollbar cv-page ${v==="reference"?"cv-design-reference":""}`,children:[n.jsx(Jt,{name:R,imageUrl:Z||void 0,onLogout:o,theme:r,onToggleTheme:u,actions:n.jsxs("button",{type:"button",className:"cv-design-toggle",onClick:()=>z(E=>E==="standard"?"reference":"standard"),children:[v==="reference"?n.jsx(im,{size:16,strokeWidth:1.8}):n.jsx(sm,{size:16,strokeWidth:1.8}),n.jsx("span",{children:v==="reference"?"Skift til standard design":"Skift til reference design"})]})}),n.jsxs("div",{className:"cv-head",children:[n.jsxs("div",{children:[n.jsx("h1",{children:"Dit CV"}),n.jsx("p",{children:"Handter dine faglige oplysninger, erfaringer og uddannelser."})]}),n.jsxs("button",{type:"button",className:"cv-edit-btn",children:[n.jsx(Op,{size:16,strokeWidth:1.8})," Rediger CV"]})]}),b?n.jsx("p",{className:"dash-loading",children:"Indlaeser CV..."}):null,n.jsxs("div",{className:"cv-layout",children:[n.jsxs("div",{className:"cv-left",children:[n.jsxs("article",{className:"cv-card",children:[n.jsx("div",{className:"cv-avatar-wrap",children:Z?n.jsx("img",{src:Z,alt:R,className:"cv-avatar"}):n.jsx("div",{className:"cv-avatar cv-avatar-fallback",children:R.slice(0,1).toUpperCase()})}),n.jsxs("div",{className:"cv-section-head",children:[n.jsx(ql,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Personlige oplysninger"})]}),n.jsxs("div",{className:"cv-personal-list",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Fornavn"}),n.jsx("strong",{children:K})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Efternavn"}),n.jsx("strong",{children:le})]}),n.jsxs("div",{children:[n.jsx("span",{children:"E-mail"}),n.jsx("strong",{children:D?.email||"lasse@eksempel.dk"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Telefon"}),n.jsx("strong",{children:D?.phoneNumber||"+45 12 34 56 78"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Fodselsdato"}),n.jsx("strong",{children:cy(D?.birthday)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Kon"}),n.jsx("strong",{children:D?.gender||"Mand"})]})]})]}),n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(hr,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Kvalifikationer"})]}),n.jsx("div",{className:"cv-chip-wrap",children:(se.length>0?se.map(uy):["HTML & CSS","Tailwind CSS","JavaScript","React","UI/UX Design"]).slice(0,12).map(E=>n.jsx("span",{className:"cv-chip",children:E},E))})]}),n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(js,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Sprog"})]}),n.jsx("div",{className:"cv-language-list",children:G.map(E=>n.jsxs("div",{children:[n.jsx("strong",{children:E.name}),n.jsx("span",{children:E.level})]},E.id))})]}),n.jsxs("div",{className:"cv-mini-grid",children:[n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(Ph,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Certificeringer"})]}),n.jsxs("ul",{className:"cv-list",children:[(P.length>0?P:[]).slice(0,4).map(E=>n.jsxs("li",{children:[n.jsx(Ke,{size:15,strokeWidth:1.8})," ",ry(E)]},E.id)),P.length===0?n.jsxs(n.Fragment,{children:[n.jsxs("li",{children:[n.jsx(Ke,{size:15,strokeWidth:1.8})," AWS Certified Developer"]}),n.jsxs("li",{children:[n.jsx(Ke,{size:15,strokeWidth:1.8})," Certificeret Scrum Master"]})]}):null]})]}),n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(tm,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Korekort"})]}),n.jsx("div",{className:"cv-chip-wrap",children:(ie.length>0?ie.map(oy):["B (Almindelig bil)","A (Motorcykel)"]).map(E=>n.jsx("span",{className:"cv-chip",children:E},E))})]})]})]}),n.jsxs("div",{className:"cv-right",children:[n.jsxs("section",{children:[n.jsxs("div",{className:"cv-timeline-head",children:[n.jsx("div",{className:"cv-timeline-icon",children:n.jsx(fr,{size:19,strokeWidth:1.8})}),n.jsx("h2",{children:"Erhvervserfaring"})]}),n.jsx("div",{className:"cv-timeline",children:(fe.length>0?fe:iy).map((E,ae)=>{const he="occupation"in E?E.occupation?.name||"Stilling":E.title,pe="companyName"in E?E.companyName:E.company,H="comments"in E?E.comments:E.description,Q="fromDate"in E?E.fromDate:E.from,ue="toDate"in E?E.toDate:E.to,ee="isCurrent"in E?!!E.isCurrent:!1;return n.jsxs("article",{className:"cv-timeline-item",children:[n.jsx("div",{className:"cv-timeline-dot",children:n.jsx(sr,{size:15,strokeWidth:1.8})}),n.jsxs("div",{className:"cv-timeline-card",children:[n.jsx("h3",{children:he}),n.jsxs("div",{className:"cv-meta",children:[n.jsx("strong",{children:pe}),n.jsx("span",{children:Rh(Q,ue,ee)})]}),n.jsx("p",{children:H||"Ingen beskrivelse."})]})]},"id"in E?String(E.id):`exp-${ae}`)})})]}),n.jsx("div",{className:"cv-divider"}),n.jsxs("section",{children:[n.jsxs("div",{className:"cv-timeline-head",children:[n.jsx("div",{className:"cv-timeline-icon",children:n.jsx(nm,{size:19,strokeWidth:1.8})}),n.jsx("h2",{children:"Uddannelse"})]}),n.jsx("div",{className:"cv-timeline",children:(te.length>0?te:sy).map((E,ae)=>{const he="education"in E?E.education?.name||"Uddannelse":E.title,pe="institution"in E?E.institution?.name||"Institution":E.school,H="comments"in E?E.comments:E.description,Q="fromDate"in E?E.fromDate:E.from,ue="toDate"in E?E.toDate:E.to,ee="isCurrent"in E?!!E.isCurrent:!1;return n.jsxs("article",{className:"cv-timeline-item",children:[n.jsx("div",{className:"cv-timeline-dot",children:n.jsx(sr,{size:15,strokeWidth:1.8})}),n.jsxs("div",{className:"cv-timeline-card",children:[n.jsx("h3",{children:he}),n.jsxs("div",{className:"cv-meta",children:[n.jsx("strong",{children:pe}),n.jsx("span",{children:Rh(Q,ue,ee)})]}),n.jsx("p",{children:H||"Ingen beskrivelse."})]})]},"id"in E?String(E.id):`edu-${ae}`)})})]})]})]})]})]})}class hy{constructor(c=He){this.http=c}getNotificationSetting(){const c=M.backendApiV2+"2.0.0/client/notification/settings";return this.http.get(c)}createNotificationSetting(c){const u=M.backendApiV2+"2.0.0/client/notification/settings";return this.http.post(u,c)}updateNotificationSetting(c,u){const r=M.backendApiV2+"2.0.0/client/notification/settings/"+c;return this.http.put(r,u)}deleteNotificationSetting(c){const u=M.backendApiV2+"2.0.0/client/notification/settings/"+c;return this.http.delete(u)}getNewNotificationCount(){let c=M.backendApiV2+"1.0.0/client/notification/unseen_notifications";return this.http.get(c)}getNotifications(c,u){let r=M.backendApiV2+"1.0.0/client/notification/"+c+"/"+u;return this.http.get(r)}notificationSeenByUser(c){let u=M.backendApiV2+"1.0.0/client/notification/seen_by_user/"+c,r={};return this.http.put(u,r)}}class vr{constructor(c=He,u=Gl){this.http=c,this.localStorage=u}listSimulationPersonalities(){let c=M.backendApiV2+"client/simulation/1.0.0/list_simulation_personalities",u=new el().set("language","da");return this.http.get(c,{params:u})}getInterviewEvaluation(c){const u=M.backendApiV2+`client/simulation/1.0.0/interview_evaluation/${c}`;return this.http.get(u)}listInterviews(c=20,u=0){const r=M.backendApiV2+"client/job_simulator/1.0.0/list_interviews",h=new el().set("limit",c.toString()).set("offset",u.toString());return this.http.get(r,{params:h})}submitEvaluationRating(c,u,r){const h=M.backendApiV2+"client/simulation/1.0.0/evaluation_rating",v={interview_id:c,rating:u,rating_text:r};return this.http.post(h,v)}submitInterviewRating(c,u,r){const h=M.backendApiV2+"client/simulation/1.0.0/interview_rating",v={interview_id:c,rating:u,rating_text:r};return this.http.post(h,v)}}class my{constructor(c=He){this.http=c}chatMessageThreads=[];getChatMessages(){let c=M.backendApi+"api/1.1.0/chatMessages/forCandidate/";return this.http.get(c)}sendMessage(c){let u=M.backendApi+"api/1.1.0/chatMessages/"+c.threadId+"/fromCandidate";return this.http.post(u,c)}markThreadRead(c){let u=M.backendApi+"api/1.1.0/chatMessages/markRead/"+c;return this.http.get(u)}}class vy{constructor(c=He){this.http=c}getUnreadMessages(){let c=M.backendApi+"api/1.1.0/chatMessages/getUnreadCount";return this.http.get(c)}}function gs(o){if(!o)return 0;const u=(o instanceof Date?o:new Date(o)).getTime();return Number.isNaN(u)?0:u}function Iu(o,c){const u=o?.timeSent?new Date(o.timeSent):new Date,r=o?.seen?new Date(o.seen):void 0;return{id:o?.id,threadId:o?.threadId??c,timeSent:u,fromCandidate:!!o?.fromCandidate,text:o?.text??"",seen:r}}class vm{constructor(c=new my,u=new vy,r=new tl){this.chatMessagesService=c,this.messageService=u,this.candidateService=r}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate(),u=c.firstName?.trim()||c.name?.trim()||"Lasse",r=c.imageUrl||c.image||void 0;return{name:u,imageUrl:r}}catch{return{name:"Lasse"}}}async getThreads(){return(await this.chatMessagesService.getChatMessages()??[]).map(u=>{const r=(u.allMessages??[]).map(v=>Iu(v,u.id));r.sort((v,z)=>gs(v.timeSent)-gs(z.timeSent));const h=u.latestMessage?Iu(u.latestMessage,u.id):r[r.length-1]??Iu(void 0,u.id);return{...u,allMessages:r,latestMessage:h}}).sort((u,r)=>gs(r.latestMessage?.timeSent)-gs(u.latestMessage?.timeSent))}async getUnreadCount(){const c=await this.messageService.getUnreadMessages();return Number(c?.unreadCount??0)}async sendMessage(c,u){const r={threadId:c,text:u.trim(),fromCandidate:!0,timeSent:new Date};return this.chatMessagesService.sendMessage(r)}async markThreadReadByMessageId(c){c&&await this.chatMessagesService.markThreadRead(c)}}function Xn(o){return typeof o=="object"&&o!==null?o:null}function Ot(o){return typeof o=="string"?o:""}function gy(o){return typeof o=="number"?o:null}function py(o){const c=Xn(o);if(!c)return null;const r=Xn(c.jobPosting)??c,h=Ot(r.id);return h?{id:h,title:Ot(r.title),companyName:Ot(r.companyName),address:Ot(r.address),applicationDeadline:Ot(r.applicationDeadline),candidateDistance:gy(r.candidateDistance),fromJobnet:!!r.fromJobnet,logoUrl:Ot(r.logoUrl),companyLogoImage:Ot(r.companyLogoImage)}:null}function yy(o){const c=Xn(o);return(Array.isArray(c?.interviews)?c.interviews:[]).map(r=>{const h=Xn(r);if(!h)return null;const v=Ot(h.id);return v?{id:v,jobName:Ot(h.job_name)||"Interview",companyName:Ot(h.company_name)||null,interviewDate:Ot(h.interview_date)||null,recommendation:Ot(h.recommendation)||null,isCompleted:!!h.is_completed}:null}).filter(r=>!!r).sort((r,h)=>{const v=r.interviewDate?new Date(r.interviewDate).getTime():0;return(h.interviewDate?new Date(h.interviewDate).getTime():0)-v}).slice(0,5)}function by(o){const c=Xn(o);return c?Array.isArray(c.searchList)?c.searchList:[]:[]}class jy{constructor(c=new tl,u=new hy,r=new mr,h=new Ss,v=new vr,z=new vm){this.candidateService=c,this.notificationService=u,this.jobService=r,this.subscriptionService=h,this.simulationService=v,this.messagesViewModel=z}async loadInitialData(){const[c,u,r,h,v,z]=await Promise.allSettled([this.candidateService.getCandidate(),this.notificationService.getNotifications(0,5),this.messagesViewModel.getThreads(),this.loadBestJobs(),this.subscriptionService.getPaymentOverview(),this.simulationService.listInterviews(5,0)]);return{candidate:c.status==="fulfilled"?c.value:null,notifications:u.status==="fulfilled"?u.value.slice(0,5):[],messages:r.status==="fulfilled"?r.value.slice(0,5):[],bestJobs:h.status==="fulfilled"?h.value:[],subscription:v.status==="fulfilled"?v.value:null,evaluations:z.status==="fulfilled"?yy(z.value):[]}}async loadBestJobs(){const c=await this.jobService.getJobsV2(10,0,5,[]);return by(c).map(r=>py(r)).filter(r=>!!r).slice(0,5)}}const xy={bestJobs:[],candidate:null,evaluations:[],messages:[],notifications:[],subscription:null};function Vh(o){return o.trim().slice(0,1).toUpperCase()||"A"}function Sy({onLogout:o,onNavigate:c,onOpenJobDetail:u,onToggleTheme:r,theme:h}){const v=T.useMemo(()=>new jy,[]),[z,q]=T.useState(xy),[L,b]=T.useState(!0);T.useEffect(()=>{let R=!0;return v.loadInitialData().then(K=>{R&&q(K)}).finally(()=>{R&&b(!1)}),()=>{R=!1}},[v]);const B=z.candidate?.firstName?.trim()||z.candidate?.name?.trim()||"Lasse",D=z.candidate?.imageUrl||z.candidate?.image||"";return n.jsxs("section",{className:`dash-root ${h==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"dashboard",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar",children:[n.jsx(Jt,{name:B,imageUrl:D||void 0,onLogout:o,theme:h,onToggleTheme:r}),n.jsxs("div",{className:"dash-welcome",children:[n.jsxs("h1",{children:["Velkommen tilbage ",B," ",n.jsx("span",{children:"👋"})]}),n.jsx("p",{children:"Her er, hvad der sker med din jobsøgning i dag."})]}),L?n.jsx("p",{className:"dash-loading",children:"Indlaeser dashboard..."}):null,n.jsxs("div",{className:"dash-grid",children:[n.jsxs("div",{className:"dash-grid-main",children:[n.jsxs("article",{className:"dash-card",children:[n.jsx("div",{className:"dash-card-head",children:n.jsx("h2",{children:"Anbefalet til dig"})}),n.jsx("div",{className:"dash-job-list",children:(z.bestJobs.length>0?z.bestJobs:[{id:"d1",title:"Senior Frontend-udvikler",companyName:"Lunar",address:"Kobenhavn, DK",applicationDeadline:"",candidateDistance:null,fromJobnet:!1,logoUrl:"",companyLogoImage:""},{id:"d2",title:"React-udvikler",companyName:"Pleo",address:"Remote",applicationDeadline:"",candidateDistance:null,fromJobnet:!1,logoUrl:"",companyLogoImage:""}]).slice(0,5).map(R=>n.jsxs("div",{className:"dash-job-item",role:"button",tabIndex:0,onClick:()=>u(R.id,!!R.fromJobnet,"dashboard"),onKeyDown:K=>{(K.key==="Enter"||K.key===" ")&&(K.preventDefault(),u(R.id,!!R.fromJobnet,"dashboard"))},children:[n.jsxs("div",{className:"dash-job-left",children:[n.jsx("div",{className:"dash-company-chip",children:Vh(R.companyName)}),n.jsxs("div",{children:[n.jsx("h4",{children:R.title}),n.jsxs("p",{children:[R.companyName," • ",R.address||"Lokation ikke angivet"]})]})]}),n.jsx("button",{type:"button",className:"dash-job-arrow-btn","aria-label":"Se job",onClick:K=>{K.stopPropagation(),u(R.id,!!R.fromJobnet,"dashboard")},children:n.jsx(Ua,{size:16,strokeWidth:1.8})})]},R.id))})]}),n.jsxs("div",{className:"dash-split-grid",children:[n.jsxs("article",{className:"dash-card",children:[n.jsx("h3",{children:"Seneste beskeder"}),n.jsxs("div",{className:"dash-message-list",children:[(z.messages.length>0?z.messages:[]).slice(0,5).map(R=>n.jsxs("div",{className:"dash-message-item",children:[n.jsx("div",{className:"dash-avatar",children:Vh(R.companyName||"A")}),n.jsxs("div",{children:[n.jsx("h4",{children:R.companyName||"Samtale"}),n.jsx("p",{children:R.latestMessage?.text||"Ingen besked endnu"})]})]},R.id)),z.messages.length===0?n.jsx("p",{className:"dash-muted",children:"Ingen beskeder endnu."}):null]})]}),n.jsxs("article",{className:"dash-card",children:[n.jsxs("div",{className:"dash-card-head dash-card-head-inline",children:[n.jsx("h3",{children:"Seneste simuleringer"}),n.jsx("button",{type:"button",className:"dash-icon-btn",children:n.jsx(Bp,{size:16,strokeWidth:1.8})})]}),n.jsxs("div",{className:"dash-sim-list",children:[n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon teal",children:n.jsx(nr,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Teknisk samtale"}),n.jsx("p",{children:"Frontend-fokus"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{children:"92/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{style:{width:"92%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon purple",children:n.jsx(y0,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Kulturelt match"}),n.jsx("p",{children:"Lunar Bank"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{children:"88/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{style:{width:"88%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon amber",children:n.jsx(Gp,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Systemdesign"}),n.jsx("p",{children:"Arkitektur"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{className:"warn",children:"65/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{className:"warn",style:{width:"65%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon blue",children:n.jsx(nr,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Live-kodning"}),n.jsx("p",{children:"React.js"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{children:"95/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{style:{width:"95%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon gray",children:n.jsx(um,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"HR-screening"}),n.jsx("p",{children:"Generelt"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{className:"na",children:"N/A"}),n.jsx("div",{className:"dash-progress"})]})]})]})]})]})]}),n.jsxs("div",{className:"dash-grid-side",children:[n.jsxs("article",{className:"dash-card dash-ai-card dash-ai-card-group",children:[n.jsx("div",{className:"dash-ai-peel"}),n.jsxs("div",{className:"dash-ai-content",children:[n.jsxs("div",{className:"dash-ai-head",children:[n.jsx(Zn,{size:22,strokeWidth:1.8}),n.jsx("h3",{children:"AI-indsigter til dit CV"})]}),n.jsx("p",{children:"Vi analyserede dit seneste CV op imod dine målroller."}),n.jsxs("ul",{className:"dash-ai-list",children:[n.jsxs("li",{className:"dash-ai-item",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(gg,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Kvantificer dine resultater"}),n.jsx("small",{children:'Tilføj tal til din rolle hos TechCorp (f.eks. \\"Forbedrede loadhastighed med 40%\\").'})]})]}),n.jsxs("li",{className:"dash-ai-item",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(hg,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Omorganiser dine færdigheder"}),n.jsx("small",{children:"Flyt React & TypeScript til toppen baseret på aktive Jobagenter."})]})]}),n.jsxs("li",{className:"dash-ai-item",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx($g,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Tilføj manglende nøgleord"}),n.jsx("small",{children:'Inkluder \\"Tailwind CSS\\" for at matche 85% af dine anbefalede jobs.'})]})]}),n.jsxs("li",{className:"dash-ai-item dash-ai-xl-only",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(om,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Omskriv dit resumé"}),n.jsx("small",{children:"Gør din målsætning mere handlingsorienteret."})]})]}),n.jsxs("li",{className:"dash-ai-item dash-ai-xl-only",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(vp,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Opdater porteføljelink"}),n.jsx("small",{children:"Dit GitHub-link gav en 404-fejl i vores test."})]})]})]}),n.jsx("button",{type:"button",children:"Anvend alle ændringer"})]})]}),n.jsxs("article",{className:"dash-card",children:[n.jsxs("div",{className:"dash-card-head dash-card-head-inline",children:[n.jsx("h3",{children:"Aktive Jobagenter"}),n.jsx("button",{type:"button",className:"dash-icon-btn",children:n.jsx(rm,{size:16,strokeWidth:1.8})})]}),n.jsxs("div",{className:"dash-agent-list",children:[n.jsxs("div",{className:"dash-agent-item",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Frontend-udvikler"}),n.jsxs("small",{children:[n.jsx(Qn,{size:13,strokeWidth:1.8})," Kobenhavn"]})]}),n.jsxs("label",{className:"dash-switch",children:[n.jsx("input",{type:"checkbox",defaultChecked:!0}),n.jsx("span",{})]})]}),n.jsxs("div",{className:"dash-agent-item",children:[n.jsxs("div",{children:[n.jsx("span",{children:"React-udvikler"}),n.jsxs("small",{children:[n.jsx(cr,{size:13,strokeWidth:1.8})," Remote (EU)"]})]}),n.jsxs("label",{className:"dash-switch",children:[n.jsx("input",{type:"checkbox",defaultChecked:!0}),n.jsx("span",{})]})]}),n.jsxs("div",{className:"dash-agent-item muted",children:[n.jsxs("div",{children:[n.jsx("span",{children:"UI/UX-designer"}),n.jsxs("small",{children:[n.jsx(Qn,{size:13,strokeWidth:1.8})," Aarhus"]})]}),n.jsxs("label",{className:"dash-switch",children:[n.jsx("input",{type:"checkbox"}),n.jsx("span",{})]})]})]}),n.jsx("button",{type:"button",className:"dash-outline-btn",children:"Opret ny agent"})]})]})]})]})]})}function Jn(o){return o instanceof Date?o.toISOString():typeof o=="string"?o:""}function qh(o){const c=[o.road,o.houseNum,o.zip,o.zipName].filter(u=>typeof u=="string"&&u.trim().length>0).join(" ");return{id:o.id,title:o.title??"Job",companyName:o.hiringCompanyName??"Ukendt virksomhed",occupationName:o.occupation?.name??"",address:c||o.zipName||"Ukendt adresse",description:o.description??"",applicationDeadline:Jn(o.applicationDeadline),websiteUrl:o.applicationUrl||o.hiringCompanyUrl||"",logoUrl:o.logoUrl||"",fromJobnet:!0,isSaved:!1,isApplied:!!o.applied,isFullTime:typeof o.isFullTime=="boolean"?o.isFullTime:null,workTimes:Array.isArray(o.workTimes)?o.workTimes:[],contactName:o.contactName??"",hiringCompanyName:o.hiringCompanyName??"",datePosted:Jn(o.datePosted),employmentDate:Jn(o.employmentDate),startAsSoonAsPossible:typeof o.startAsSoonAsPossible=="boolean"?o.startAsSoonAsPossible:null,numberOfPositions:typeof o.numberOfPositions=="number"?o.numberOfPositions:null}}function Bh(o,c){return{id:o,title:c.title??"Job",companyName:c.companyName??"Ukendt virksomhed",occupationName:c.position??"",address:"",description:[c.descriptionIntro,c.descriptionPosition,c.descriptionOffer].filter(u=>typeof u=="string"&&u.trim().length>0).join(` + +`),applicationDeadline:Jn(c.applicationDeadline),websiteUrl:c.website??"",logoUrl:"",fromJobnet:!1,isSaved:!1,isApplied:!!c.appliedJob,isFullTime:null,workTimes:Array.isArray(c.workTimes)?c.workTimes:[],contactName:"",hiringCompanyName:c.companyName??"",datePosted:"",employmentDate:Jn(c.fromDate),startAsSoonAsPossible:null,numberOfPositions:typeof c.numberOfPositions=="number"?c.numberOfPositions:null}}class Ny{constructor(c=new mr){this.jobService=c}async getDetail(c,u){if(u)try{const r=await this.jobService.getJobNetJobDetail(c);return qh(r)}catch{const r=await this.jobService.getJobDetail(c);return Bh(c,r)}try{const r=await this.jobService.getJobDetail(c);return Bh(c,r)}catch{const r=await this.jobService.getJobNetJobDetail(c);return qh(r)}}async toggleBookmark(c,u,r){const h=u?"star":"arbejd.com";await this.jobService.bookmarkJobV2(c,r,h)}async markAsApplied(c,u){if(u){await this.jobService.toggleApplyJobnetjob(c,!0);return}await this.jobService.applyJob(c)}}function ky(o){return o.trim().slice(0,1).toUpperCase()||"A"}function Pu(o){if(!o)return"Ikke angivet";const c=new Date(o);return Number.isNaN(c.getTime())?o:new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short",year:"numeric"}).format(c)}function _y(o){if(!o.trim())return"";if(typeof window>"u")return o;const u=new DOMParser().parseFromString(o,"text/html");u.querySelectorAll("script, style, iframe, object, embed, link, meta").forEach(r=>r.remove());for(const r of Array.from(u.body.querySelectorAll("*")))for(const h of Array.from(r.attributes)){const v=h.name.toLowerCase(),q=h.value.trim().toLowerCase();if(v.startsWith("on")){r.removeAttribute(h.name);continue}if((v==="href"||v==="src")&&q.startsWith("javascript:")){r.removeAttribute(h.name);continue}(v==="style"||v==="srcdoc")&&r.removeAttribute(h.name)}return u.body.innerHTML}function Ay(o){return o.isFullTime===!0?"Fuldtid":o.isFullTime===!1?"Deltid":o.workTimes.length>0?"Fleksibel arbejdstid":"Ikke oplyst"}function Ty({fromJobnet:o,jobId:c,onBack:u,onLogout:r,onNavigate:h,onToggleTheme:v,theme:z}){const q=T.useMemo(()=>new Ny,[]),L=T.useMemo(()=>new Ns,[]),[b,B]=T.useState({name:"Lasse"}),[D,R]=T.useState(null),[K,le]=T.useState(!0),[Z,fe]=T.useState(""),[te,se]=T.useState(!1),[Y,P]=T.useState(!1),[ie,G]=T.useState(!1),[E,ae]=T.useState(!1);T.useEffect(()=>{let Q=!0;async function ue(){le(!0),fe("");const[ee,W]=await Promise.allSettled([L.getCandidateProfile(),q.getDetail(c,o)]);Q&&(ee.status==="fulfilled"&&B(ee.value),W.status==="fulfilled"?(R(W.value),se(!!W.value.isSaved),P(!!W.value.isApplied)):(R(null),fe("Kunne ikke hente jobdetaljer. Proev igen.")),le(!1))}return ue(),()=>{Q=!1}},[q,o,c,L]);async function he(){if(!(!D||ie)){G(!0);try{await q.toggleBookmark(D.id,D.fromJobnet,!te),se(Q=>!Q)}finally{G(!1)}}}async function pe(){if(!(!D||Y||E)){ae(!0);try{await q.markAsApplied(D.id,D.fromJobnet),P(!0)}finally{ae(!1)}}}const H=T.useMemo(()=>_y(D?.description??""),[D?.description]);return n.jsxs("section",{className:`dash-root ${z==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"jobs",onNavigate:h}),n.jsxs("main",{className:"dash-main custom-scrollbar",children:[n.jsx(Jt,{name:b.name,imageUrl:b.imageUrl,onLogout:r,theme:z,onToggleTheme:v}),n.jsx("div",{className:"job-detail-back-row",children:n.jsxs("button",{type:"button",className:"job-detail-back-btn",onClick:u,children:[n.jsx(Ih,{size:15,strokeWidth:1.8}),n.jsx("span",{children:"Tilbage til jobs"})]})}),K?n.jsx("p",{className:"dash-loading",children:"Indlaeser jobdetaljer..."}):null,!K&&Z?n.jsx("p",{className:"dash-loading",children:Z}):null,!K&&D?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"job-detail-header",children:[n.jsx("div",{className:"job-detail-logo-wrap",children:D.logoUrl?n.jsx("img",{src:D.logoUrl,alt:D.companyName,className:"job-detail-logo-image"}):n.jsx("div",{className:"job-detail-logo-fallback",children:ky(D.companyName)})}),n.jsxs("div",{className:"job-detail-heading",children:[n.jsx("h1",{children:D.title||"Jobdetaljer"}),n.jsxs("div",{className:"job-detail-meta",children:[n.jsxs("span",{children:[n.jsx(ar,{size:14,strokeWidth:1.8})," ",D.companyName||"Virksomhed"]}),n.jsxs("span",{children:[n.jsx(Qn,{size:14,strokeWidth:1.8})," ",D.address||"Lokation ikke angivet"]}),n.jsxs("span",{children:[n.jsx(lr,{size:14,strokeWidth:1.8})," ",Ay(D)]})]})]})]}),n.jsxs("div",{className:"job-detail-grid",children:[n.jsxs("section",{className:"job-detail-main-card dash-card",children:[n.jsxs("div",{className:"job-detail-section",children:[n.jsx("h2",{children:"Om rollen"}),H?n.jsx("div",{className:"job-detail-rich-html",dangerouslySetInnerHTML:{__html:H}}):n.jsx("p",{children:"Ingen jobbeskrivelse er tilgaengelig endnu."})]}),n.jsxs("div",{className:"job-detail-section",children:[n.jsx("h3",{children:"Jobinformation"}),n.jsxs("div",{className:"job-detail-info-grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Ansøgningsfrist"}),n.jsx("strong",{children:Pu(D.applicationDeadline)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Opslået"}),n.jsx("strong",{children:Pu(D.datePosted)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Startdato"}),n.jsx("strong",{children:Pu(D.employmentDate)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Stillinger"}),n.jsx("strong",{children:D.numberOfPositions??"Ikke angivet"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Kontaktperson"}),n.jsx("strong",{children:D.contactName||"Ikke angivet"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Kilde"}),n.jsx("strong",{children:D.fromJobnet?"Jobnet":"Arbejd.com"})]})]})]})]}),n.jsxs("aside",{className:"job-detail-side-col",children:[n.jsxs("article",{className:"dash-card job-detail-actions-card",children:[n.jsx("h2",{children:"Handlinger"}),n.jsxs("button",{type:"button",className:"job-detail-action-primary",children:[n.jsxs("span",{children:[n.jsx(Zn,{size:16,strokeWidth:1.8})," Generer ansøgning"]}),n.jsx(Ua,{size:14,strokeWidth:1.8})]}),n.jsxs("button",{type:"button",className:"job-detail-action-secondary",children:[n.jsxs("span",{children:[n.jsx(Wp,{size:16,strokeWidth:1.8})," Simuler jobsamtale"]}),n.jsx(Ua,{size:14,strokeWidth:1.8})]}),n.jsx("div",{className:"job-detail-action-divider"}),n.jsxs("button",{type:"button",className:"job-detail-text-action",onClick:()=>{he()},disabled:ie,children:[n.jsx(yg,{size:16,strokeWidth:1.8}),te?"Fjern fra gemte jobs":"Gem job"]}),n.jsxs("button",{type:"button",className:"job-detail-text-action",children:[n.jsx(xs,{size:16,strokeWidth:1.8}),"Del via email"]}),D.websiteUrl?n.jsxs("a",{href:D.websiteUrl,target:"_blank",rel:"noreferrer",className:"job-detail-text-action link",children:[n.jsx(js,{size:16,strokeWidth:1.8}),"Åbn på nettet"]}):null,n.jsxs("button",{type:"button",className:Y?"job-detail-text-action success is-done":"job-detail-text-action success",onClick:()=>{pe()},disabled:Y||E,children:[n.jsx(Ke,{size:16,strokeWidth:1.8}),Y?"Markeret som søgt":"Marker som søgt"]})]}),n.jsxs("article",{className:"dash-card job-detail-company-card",children:[n.jsx("h3",{children:"Om virksomheden"}),n.jsxs("div",{className:"job-detail-company-list",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Virksomhed"}),n.jsx("strong",{children:D.hiringCompanyName||D.companyName||"Ukendt"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Stilling"}),n.jsx("strong",{children:D.occupationName||"Ikke angivet"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Website"}),n.jsx("strong",{children:D.websiteUrl||"Ikke angivet"})]})]})]})]})]})]}):null]})]})}const Yh=[2,4,6,8,10,12,24],zy=[{id:"job-1",title:"Senior Frontend-udvikler",companyName:"Lunar",occupationName:"Frontend",descriptionIntro:"Vi søger en erfaren frontend-udvikler til at lede vores nye team.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:5,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:98},{id:"job-2",title:"UX/UI Designer (Deltid)",companyName:"Pleo",occupationName:"Design",descriptionIntro:"Hjælp os med at skabe brugervenlige flows for vores expense management platform.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:12,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:95},{id:"job-3",title:"React-udvikler",companyName:"Zendesk",occupationName:"Frontend",descriptionIntro:"Bliv en del af vores kerne-team i Kobenhavn og byg software i topklasse.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:2,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:89},{id:"job-4",title:"Full Stack Web-udvikler",companyName:"Trustpilot",occupationName:"Full stack",descriptionIntro:"Vi leder efter en passioneret Full Stack Developer (Node.js/React).",address:"Remote",time:"",applicationDeadline:"",candidateDistance:null,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:85},{id:"job-5",title:"Frontend-arkitekt",companyName:"Novo Nordisk",occupationName:"Frontend",descriptionIntro:"Vær med til at designe arkitekturen for interne medicinske data-platforme.",address:"Bagsvaerd",time:"",applicationDeadline:"",candidateDistance:18,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:72},{id:"job-6",title:"Product Designer",companyName:"Podimo",occupationName:"Design",descriptionIntro:"Vi mangler en skarp Product Designer til at forme fremtidens lytteoplevelse.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:3,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:68}];function Dy(o){return o.trim().slice(0,1).toUpperCase()||"A"}function Gh(o){return o.address.toLowerCase().includes("remote")?"Remote":typeof o.candidateDistance=="number"?`${Math.max(0,Math.round(o.candidateDistance))} km vaek`:o.address||"Lokation ikke angivet"}function My(o){return o.companyLogoImage||o.logoUrl||""}function Jh({item:o}){const[c,u]=T.useState(!1),r=My(o);return r.length>0&&!c?n.jsx("div",{className:"jobs-card-logo jobs-card-logo-image-wrap",children:n.jsx("img",{src:r,alt:o.companyName||"Virksomhed",className:"jobs-card-logo-image",onError:()=>u(!0)})}):n.jsx("div",{className:"jobs-card-logo",children:Dy(o.companyName)})}function Ey(o){return o.workTypePartTime?"deltid":"fast"}function Cy({onLogout:o,onNavigate:c,onOpenJobDetail:u,onToggleTheme:r,theme:h}){const v=T.useMemo(()=>new Ns,[]),[z,q]=T.useState({name:"Lasse"}),[L,b]=T.useState(""),[B,D]=T.useState("sidebar"),[R,K]=T.useState("fast"),[le,Z]=T.useState(15),[fe,te]=T.useState(24),[se,Y]=T.useState(["Frontend-udvikler","UX/UI Designer"]),[P,ie]=T.useState(""),[G,E]=T.useState([]),[ae,he]=T.useState(!0),[pe,H]=T.useState(6),Q=T.useCallback(async()=>{try{const m=await v.getTabItems("jobs");E(m),H(6)}catch{E([]),H(6)}},[v]);T.useEffect(()=>{let m=!0;async function N(){try{const U=await v.getSavedFilter();if(!m)return;K(Ey(U)),Z(U.workDistance??15),te(U.partTimeHours??24),b(U.distanceCenterName??"")}catch{}if(await Q(),m){const U=await v.getCandidateProfile();m&&q(U),he(!1)}}return N(),()=>{m=!1}},[Q,v]);async function ue(){const m={escoIds:[],workTypePermanent:R==="fast",workTypePartTime:R==="deltid",workDistance:le,partTimeHours:R==="deltid"?fe:null,distanceCenterName:L,latitude:null,longitude:null};he(!0);try{const N=await v.applyFiltersAndGetJobs(m,{searchText:L,desiredTitles:se});E(N),H(6)}catch{E([]),H(6)}he(!1)}const ee=G.length>0?G:zy,W=ee.slice(0,Math.min(pe,ee.length)),_=pem==="sidebar"?"top":"sidebar")}function x(m){Y(N=>N.filter(U=>U!==m))}function $(m){const N=m.trim();N&&(Y(U=>U.includes(N)?U:[...U,N]),ie(""))}function de(){H(m=>Math.min(m+6,ee.length))}return n.jsxs("section",{className:`dash-root ${h==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"jobs",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar",children:[n.jsx(Jt,{name:z.name,imageUrl:z.imageUrl,onLogout:o,theme:h,onToggleTheme:r,actions:n.jsxs("button",{type:"button",className:"jobs-layout-toggle",onClick:V,children:[B==="sidebar"?n.jsx(sm,{size:16,strokeWidth:1.8}):n.jsx(im,{size:16,strokeWidth:1.8}),n.jsx("span",{children:B==="sidebar"?"Top-layout":"Side-layout"})]})}),n.jsxs("div",{className:"jobs-page-head",children:[n.jsx("h1",{children:"Find dit naeste job"}),n.jsx("p",{children:"Sog og filtrer for at finde det perfekte match til din profil."})]}),B==="sidebar"?n.jsxs("div",{className:"jobs-grid",children:[n.jsxs("aside",{className:"jobs-filter dash-card",children:[n.jsxs("h2",{children:[n.jsx(ar,{size:18,strokeWidth:1.8})," Filtre"]}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Sog jobtitel eller virksomhed"}),n.jsxs("div",{className:"jobs-search-wrap",children:[n.jsx(rr,{size:16,strokeWidth:1.8}),n.jsx("input",{type:"text",placeholder:"F.eks. Frontend Udvikler...",value:L,onChange:m=>b(m.target.value)})]})]}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Onskede jobtitler"}),n.jsxs("div",{className:"jobs-title-picker",children:[n.jsxs("div",{className:"jobs-title-input-wrap",children:[se.map(m=>n.jsxs("span",{className:"jobs-title-chip",children:[m,n.jsx("button",{type:"button",onClick:()=>x(m),"aria-label":`Fjern ${m}`,children:n.jsx(or,{size:12,strokeWidth:2})})]},m)),n.jsx("input",{type:"text",value:P,onChange:m=>ie(m.target.value),onKeyDown:m=>{m.key==="Enter"&&(m.preventDefault(),$(P))},placeholder:"Sog og tilfoj flere jobtitler..."})]}),n.jsxs("div",{className:"jobs-title-suggestions",children:[n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>$("Frontend-udvikler"),children:[n.jsx("span",{children:"Frontend-udvikler"}),n.jsx(Ke,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>$("Backend-udvikler"),children:n.jsx("span",{children:"Backend-udvikler"})}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>$("Full Stack-udvikler"),children:n.jsx("span",{children:"Full Stack-udvikler"})}),n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>$("UX/UI Designer"),children:[n.jsx("span",{children:"UX/UI Designer"}),n.jsx(Ke,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>$("Product Manager"),children:n.jsx("span",{children:"Product Manager"})})]})]})]}),n.jsx("div",{className:"jobs-separator"}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Ansaettelsestype"}),n.jsxs("div",{className:"jobs-radio-grid",children:[n.jsx("button",{type:"button",className:R==="fast"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>K("fast"),children:"Fast (Fuldtid)"}),n.jsx("button",{type:"button",className:R==="deltid"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>K("deltid"),children:"Deltid"})]})]}),n.jsxs("div",{className:"jobs-filter-block jobs-range-block",children:[n.jsxs("div",{className:"jobs-range-head",children:[n.jsx("label",{children:"Maks. afstand"}),n.jsxs("span",{children:[le," km"]})]}),n.jsx("input",{type:"range",min:0,max:50,value:le,onChange:m=>Z(Number(m.target.value))}),n.jsxs("div",{className:"jobs-range-labels",children:[n.jsx("span",{children:"0 km"}),n.jsx("span",{children:"50+ km"})]})]}),n.jsx("div",{className:"jobs-separator"}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Timer (ved deltid)"}),n.jsx("p",{children:"Vaelg onsket timeantal pr. uge"}),n.jsx("div",{className:"jobs-hours-grid",children:Yh.map(m=>n.jsx("button",{type:"button",className:fe===m?"jobs-hour-btn active":"jobs-hour-btn",onClick:()=>te(m),children:m},m))})]}),n.jsx("button",{type:"button",className:"jobs-apply-btn",onClick:()=>{ue()},children:"Opdater resultater"})]}),n.jsxs("section",{className:"jobs-content",children:[n.jsxs("div",{className:"jobs-content-head",children:[n.jsx("h2",{children:"Seneste jobs"}),n.jsxs("span",{children:["Viser ",G.length>0?G.length:142," resultater"]})]}),ae?n.jsx("p",{className:"dash-loading",children:"Indlaeser jobs..."}):null,n.jsx("div",{className:"jobs-cards",children:W.map(m=>n.jsxs("article",{className:"jobs-card",role:"button",tabIndex:0,onClick:()=>u(m.id,m.fromJobnet,"jobs"),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),u(m.id,m.fromJobnet,"jobs"))},children:[n.jsx("div",{className:"jobs-card-top",children:n.jsx(Jh,{item:m})}),n.jsxs("div",{className:"jobs-card-title",children:[n.jsx("h3",{children:m.title||"Stilling"}),n.jsx("p",{children:m.companyName||"Virksomhed"})]}),n.jsx("p",{className:"jobs-card-description",children:m.descriptionIntro||"Beskrivelse er ikke tilgaengelig endnu."}),n.jsxs("div",{className:"jobs-card-bottom",children:[n.jsxs("div",{className:"jobs-card-distance",children:[m.address.toLowerCase().includes("remote")?n.jsx(cr,{size:15,strokeWidth:1.8}):n.jsx(ur,{size:15,strokeWidth:1.8}),n.jsx("span",{children:Gh(m)})]}),n.jsx("button",{type:"button",className:"jobs-card-arrow","aria-label":"Se job",onClick:N=>{N.stopPropagation(),u(m.id,m.fromJobnet,"jobs")},children:n.jsx(Ua,{size:16,strokeWidth:1.8})})]})]},m.id))}),n.jsx("div",{className:"jobs-load-more-wrap",children:n.jsx("button",{type:"button",className:"jobs-load-more",onClick:de,disabled:!_,children:_?"Indlaes flere jobs":"Alle jobs er vist"})})]})]}):n.jsxs("section",{className:"jobs-top-layout",children:[n.jsxs("div",{className:"jobs-top-filters dash-card",children:[n.jsxs("div",{className:"jobs-top-filter-title",children:[n.jsx(ar,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Filtre"})]}),n.jsxs("div",{className:"jobs-top-controls",children:[n.jsxs("div",{className:"jobs-filter-block no-margin",children:[n.jsx("label",{children:"Sog noegleord eller virksomhed"}),n.jsxs("div",{className:"jobs-search-wrap",children:[n.jsx(rr,{size:16,strokeWidth:1.8}),n.jsx("input",{type:"text",placeholder:"F.eks. Lunar, React...",value:L,onChange:m=>b(m.target.value)})]})]}),n.jsxs("div",{className:"jobs-filter-block no-margin",children:[n.jsx("label",{children:"Ansaettelsestype"}),n.jsxs("div",{className:"jobs-radio-grid",children:[n.jsx("button",{type:"button",className:R==="fast"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>K("fast"),children:"Fast"}),n.jsx("button",{type:"button",className:R==="deltid"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>K("deltid"),children:"Deltid"})]})]}),n.jsxs("div",{className:"jobs-filter-block no-margin jobs-top-range",children:[n.jsxs("div",{className:"jobs-range-head",children:[n.jsx("label",{children:"Maks. afstand"}),n.jsxs("span",{children:[le," km"]})]}),n.jsx("input",{type:"range",min:0,max:50,value:le,onChange:m=>Z(Number(m.target.value))})]}),n.jsx("button",{type:"button",className:"jobs-apply-btn jobs-top-apply",onClick:()=>{ue()},children:"Opdater resultater"})]}),n.jsxs("div",{className:"jobs-filter-block no-margin",children:[n.jsx("label",{children:"Onskede jobtitler"}),n.jsxs("div",{className:"jobs-title-picker",children:[n.jsxs("div",{className:"jobs-title-input-wrap",children:[se.map(m=>n.jsxs("span",{className:"jobs-title-chip",children:[m,n.jsx("button",{type:"button",onClick:()=>x(m),"aria-label":`Fjern ${m}`,children:n.jsx(or,{size:12,strokeWidth:2})})]},m)),n.jsx("input",{type:"text",value:P,onChange:m=>ie(m.target.value),onKeyDown:m=>{m.key==="Enter"&&(m.preventDefault(),$(P))},placeholder:"Sog og tilfoj flere jobtitler..."})]}),n.jsxs("div",{className:"jobs-title-suggestions",children:[n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>$("Frontend-udvikler"),children:[n.jsx("span",{children:"Frontend-udvikler"}),n.jsx(Ke,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>$("Backend-udvikler"),children:n.jsx("span",{children:"Backend-udvikler"})}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>$("Full Stack-udvikler"),children:n.jsx("span",{children:"Full Stack-udvikler"})}),n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>$("UX/UI Designer"),children:[n.jsx("span",{children:"UX/UI Designer"}),n.jsx(Ke,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>$("Product Manager"),children:n.jsx("span",{children:"Product Manager"})})]})]})]}),n.jsx("div",{className:"jobs-separator top-margin"}),n.jsxs("div",{className:"jobs-hours-row",children:[n.jsxs("div",{children:[n.jsx("label",{children:"Timer (ved deltid)"}),n.jsx("p",{children:"Vaelg onsket timeantal pr. uge"})]}),n.jsx("div",{className:"jobs-hours-grid",children:Yh.map(m=>n.jsx("button",{type:"button",className:fe===m?"jobs-hour-btn active":"jobs-hour-btn",onClick:()=>te(m),children:m},m))})]})]}),n.jsxs("section",{className:"jobs-content",children:[n.jsxs("div",{className:"jobs-content-head",children:[n.jsx("h2",{children:"Seneste jobs"}),n.jsxs("span",{children:["Viser ",G.length>0?G.length:142," resultater"]})]}),ae?n.jsx("p",{className:"dash-loading",children:"Indlaeser jobs..."}):null,n.jsx("div",{className:"jobs-cards jobs-cards-top",children:W.map(m=>n.jsxs("article",{className:"jobs-card",role:"button",tabIndex:0,onClick:()=>u(m.id,m.fromJobnet,"jobs"),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),u(m.id,m.fromJobnet,"jobs"))},children:[n.jsx("div",{className:"jobs-card-top",children:n.jsx(Jh,{item:m})}),n.jsxs("div",{className:"jobs-card-title",children:[n.jsx("h3",{children:m.title||"Stilling"}),n.jsx("p",{children:m.companyName||"Virksomhed"})]}),n.jsx("p",{className:"jobs-card-description",children:m.descriptionIntro||"Beskrivelse er ikke tilgaengelig endnu."}),n.jsxs("div",{className:"jobs-card-bottom",children:[n.jsxs("div",{className:"jobs-card-distance",children:[m.address.toLowerCase().includes("remote")?n.jsx(cr,{size:15,strokeWidth:1.8}):n.jsx(ur,{size:15,strokeWidth:1.8}),n.jsx("span",{children:Gh(m)})]}),n.jsx("button",{type:"button",className:"jobs-card-arrow","aria-label":"Se job",onClick:N=>{N.stopPropagation(),u(m.id,m.fromJobnet,"jobs")},children:n.jsx(Ua,{size:16,strokeWidth:1.8})})]})]},m.id))}),n.jsx("div",{className:"jobs-load-more-wrap",children:n.jsx("button",{type:"button",className:"jobs-load-more",onClick:de,disabled:!_,children:_?"Indlaes flere jobs":"Alle jobs er vist"})})]})]})]})]})}function bs(o){if(!o)return 0;const u=(o instanceof Date?o:new Date(o)).getTime();return Number.isNaN(u)?0:u}function gm(o){if(!o)return"--:--";const c=o instanceof Date?o:new Date(o);return Number.isNaN(c.getTime())?"--:--":new Intl.DateTimeFormat("da-DK",{hour:"2-digit",minute:"2-digit"}).format(c)}function wy(o){if(!o)return"";const c=o instanceof Date?o:new Date(o);if(Number.isNaN(c.getTime()))return"";const u=new Date,r=1440*60*1e3,h=Math.floor((new Date(u.getFullYear(),u.getMonth(),u.getDate()).getTime()-new Date(c.getFullYear(),c.getMonth(),c.getDate()).getTime())/r);return h===0?gm(c):h===1?"I går":new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short"}).format(c)}function Uy(o){const c=new Date,u=new Date(o.getFullYear(),o.getMonth(),o.getDate()),r=new Date(c.getFullYear(),c.getMonth(),c.getDate()),h=Math.floor((r.getTime()-u.getTime())/(1440*60*1e3));return h===0?"I dag":h===1?"I går":new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short"}).format(o)}function Yn(o){return!o.fromCandidate&&!o.seen}function Qh(o){return o.allMessages.filter(Yn).length}function qn(o){return o.companyLogoUrl||o.companyLogo||""}function Oy(o){return{...o,allMessages:[...o.allMessages??[]].sort((c,u)=>bs(c.timeSent)-bs(u.timeSent))}}function Xh(){const o=new Date,c=new Date(o.getTime()-600*1e3),u=new Date(o.getTime()-7200*1e3),r=(z,q,L,b,B)=>({threadId:z,text:q,fromCandidate:L,timeSent:b,seen:B}),h=[r("thread-techcorp","Hej Lasse! Mange tak for din ansøgning.",!1,u),r("thread-techcorp","Mange tak, det lyder rigtig spændende.",!0,new Date(u.getTime()+1200*1e3),new Date(u.getTime()+1800*1e3)),r("thread-techcorp","Vi vil gerne invitere dig til samtale.",!1,c)],v=[r("thread-lunar","Mange tak for din opdaterede portefølje.",!1,new Date(o.getTime()-1560*60*1e3),new Date(o.getTime()-1500*60*1e3))];return[{id:"thread-techcorp",companyLogo:"",companyLogoUrl:"https://i.pravatar.cc/150?img=33",companyName:"TechCorp A/S",candidateFirstName:"Lasse",candidateLastName:"Hansen",candidateImage:"https://i.pravatar.cc/150?img=11",allMessages:h,latestMessage:h[h.length-1],title:"Frontend Udvikler",messagesLoaded:!0,jobPostingId:"job-1",jobPosting:void 0,isFromSupport:!1},{id:"thread-lunar",companyLogo:"",companyLogoUrl:"https://i.pravatar.cc/150?img=12",companyName:"Lunar Bank",candidateFirstName:"Lasse",candidateLastName:"Hansen",candidateImage:"https://i.pravatar.cc/150?img=11",allMessages:v,latestMessage:v[v.length-1],title:"Senior UX Designer",messagesLoaded:!0,jobPostingId:"job-2",jobPosting:void 0,isFromSupport:!1}]}function Ly({onLogout:o,onNavigate:c,onToggleTheme:u,theme:r}){const h=T.useMemo(()=>new vm,[]),[v,z]=T.useState("Lasse"),[q,L]=T.useState(void 0),[b,B]=T.useState([]),[D,R]=T.useState(!0),[K,le]=T.useState(""),[Z,fe]=T.useState("all"),[te,se]=T.useState(""),[Y,P]=T.useState("");T.useEffect(()=>{let H=!0;async function Q(){R(!0);try{const ue=await h.getCandidateProfile();H&&(z(ue.name),L(ue.imageUrl));const ee=await h.getThreads();if(!H)return;const W=(ee.length>0?ee:Xh()).map(Oy);B(W),se(W[0]?.id||"")}catch{if(!H)return;const ue=Xh();B(ue),se(ue[0]?.id||"")}finally{H&&R(!1)}}return Q(),()=>{H=!1}},[h]);const ie=T.useMemo(()=>{const H=K.trim().toLowerCase();return b.filter(Q=>Z==="unread"&&Qh(Q)===0||Z==="companies"&&Q.isFromSupport?!1:H?Q.companyName.toLowerCase().includes(H)||(Q.latestMessage?.text||"").toLowerCase().includes(H):!0)},[Z,K,b]),G=T.useMemo(()=>b.find(H=>H.id===te)||ie[0],[te,ie,b]),E=T.useMemo(()=>[...G?.allMessages||[]].sort((H,Q)=>bs(H.timeSent)-bs(Q.timeSent)),[G]);async function ae(H){se(H.id);const Q=[...H.allMessages].reverse().find(ue=>Yn(ue));Q?.id&&(h.markThreadReadByMessageId(Q.id),B(ue=>ue.map(ee=>ee.id!==H.id?ee:{...ee,allMessages:ee.allMessages.map(W=>Yn(W)?{...W,seen:new Date}:W)})))}async function he(){const H=b.flatMap(Q=>Q.allMessages).filter(Q=>Yn(Q)&&!!Q.id);await Promise.all(H.map(Q=>h.markThreadReadByMessageId(Q.id))),B(Q=>Q.map(ue=>({...ue,allMessages:ue.allMessages.map(ee=>Yn(ee)?{...ee,seen:new Date}:ee)})))}async function pe(){const H=Y.trim();if(!G||!H)return;const Q={threadId:G.id,text:H,fromCandidate:!0,timeSent:new Date};P(""),B(ue=>ue.map(ee=>{if(ee.id!==G.id)return ee;const W=[...ee.allMessages,Q];return{...ee,allMessages:W,latestMessage:Q}}));try{const ue=await h.sendMessage(G.id,H);B(ee=>ee.map(W=>{if(W.id!==G.id)return W;const V=[...W.allMessages.filter(x=>x!==Q),ue];return{...W,allMessages:V,latestMessage:ue}}))}catch{}}return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"messages",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar msg-main",children:[n.jsx(Jt,{name:v,imageUrl:q,onLogout:o,theme:r,onToggleTheme:u}),n.jsxs("div",{className:"msg-head",children:[n.jsxs("div",{children:[n.jsx("h1",{children:"Beskeder"}),n.jsx("p",{children:"Kommuniker med virksomheder og hold styr på dine ansøgninger."})]}),n.jsxs("button",{type:"button",className:"msg-mark-btn",onClick:()=>{he()},children:[n.jsx(zg,{size:16,strokeWidth:1.8})," Marker alle som læst"]})]}),n.jsxs("div",{className:"msg-layout",children:[n.jsxs("section",{className:"msg-threads",children:[n.jsxs("div",{className:"msg-threads-head",children:[n.jsxs("div",{className:"msg-search-wrap",children:[n.jsx(rr,{size:16,strokeWidth:1.8}),n.jsx("input",{value:K,onChange:H=>le(H.target.value),type:"text",placeholder:"Søg i beskeder..."})]}),n.jsxs("div",{className:"msg-filter-row",children:[n.jsx("button",{type:"button",className:Z==="all"?"active":"",onClick:()=>fe("all"),children:"Alle"}),n.jsx("button",{type:"button",className:Z==="unread"?"active":"",onClick:()=>fe("unread"),children:"Ulæste"}),n.jsx("button",{type:"button",className:Z==="companies"?"active":"",onClick:()=>fe("companies"),children:"Virksomheder"})]})]}),n.jsxs("div",{className:"msg-thread-list custom-scrollbar",children:[D?n.jsx("p",{className:"dash-loading",children:"Indlaeser beskeder..."}):null,!D&&ie.length===0?n.jsx("p",{className:"dash-loading",children:"Ingen tråde fundet."}):null,ie.map(H=>{const Q=Qh(H),ue=G?.id===H.id,ee=qn(H);return n.jsxs("button",{type:"button",className:ue?"msg-thread-item active":"msg-thread-item",onClick:()=>{ae(H)},children:[n.jsxs("div",{className:"msg-thread-avatar-wrap",children:[ee?n.jsx("img",{src:ee,alt:H.companyName,className:"msg-thread-avatar"}):n.jsx("div",{className:"msg-thread-avatar-fallback",children:H.companyName.slice(0,1).toUpperCase()}),n.jsx("span",{className:"msg-thread-online"})]}),n.jsxs("div",{className:"msg-thread-content",children:[n.jsxs("div",{className:"msg-thread-row",children:[n.jsx("h3",{children:H.companyName}),n.jsx("span",{children:wy(H.latestMessage?.timeSent)})]}),n.jsx("p",{className:Q>0?"unread":"",children:H.latestMessage?.text||"Ingen beskeder endnu"}),n.jsx("small",{children:H.title||"Stilling"})]}),Q>0?n.jsx("div",{className:"msg-thread-unread",children:Q}):null]},H.id)})]})]}),n.jsxs("section",{className:"msg-chat",children:[n.jsx("div",{className:"msg-chat-head",children:G?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"msg-chat-company",children:[qn(G)?n.jsx("img",{src:qn(G),alt:G.companyName,className:"msg-chat-avatar"}):n.jsx("div",{className:"msg-chat-avatar-fallback",children:G.companyName.slice(0,1).toUpperCase()}),n.jsxs("div",{children:[n.jsx("h2",{children:G.companyName}),n.jsx("p",{children:G.title||"Rekruttering"})]})]}),n.jsxs("div",{className:"msg-chat-actions",children:[n.jsx("button",{type:"button","aria-label":"Ring",children:n.jsx(Rp,{size:16,strokeWidth:1.8})}),n.jsx("button",{type:"button","aria-label":"Info",children:n.jsx(cp,{size:16,strokeWidth:1.8})})]})]}):n.jsx("h2",{children:"Vælg en samtale"})}),n.jsx("div",{className:"msg-chat-body custom-scrollbar",children:E.map((H,Q)=>{const ue=H.timeSent instanceof Date?H.timeSent:new Date(H.timeSent),ee=Q>0?E[Q-1]:void 0,W=ee?.timeSent instanceof Date?ee.timeSent:ee?.timeSent?new Date(ee.timeSent):void 0,_=!W||ue.toDateString()!==W.toDateString();return n.jsxs("div",{children:[_?n.jsx("div",{className:"msg-day-sep",children:Uy(ue)}):null,n.jsxs("div",{className:H.fromCandidate?"msg-bubble-row mine":"msg-bubble-row",children:[H.fromCandidate?null:qn(G)?n.jsx("img",{src:qn(G),alt:G.companyName,className:"msg-mini-avatar"}):n.jsx("div",{className:"msg-mini-avatar msg-mini-avatar-fallback",children:G.companyName.slice(0,1).toUpperCase()}),n.jsxs("div",{className:"msg-bubble-wrap",children:[n.jsx("span",{className:"msg-time",children:gm(H.timeSent)}),n.jsx("div",{className:H.fromCandidate?"msg-bubble mine":"msg-bubble",children:H.text})]})]})]},`${H.threadId}-${Q}`)})}),n.jsx("div",{className:"msg-input-area",children:n.jsxs("div",{className:"msg-input-wrap",children:[n.jsx("button",{type:"button","aria-label":"Vedhæft",children:n.jsx(wp,{size:18,strokeWidth:1.8})}),n.jsx("textarea",{rows:1,value:Y,onChange:H=>P(H.target.value),onKeyDown:H=>{H.key==="Enter"&&!H.shiftKey&&(H.preventDefault(),pe())},placeholder:"Skriv din besked her..."}),n.jsx("button",{type:"button","aria-label":"Emoji",children:n.jsx(s0,{size:18,strokeWidth:1.8})}),n.jsxs("button",{type:"button",className:"msg-send-btn",onClick:()=>{pe()},children:["Send ",n.jsx(t0,{size:15,strokeWidth:1.8})]})]})})]})]})]})]})}function pm(o){return typeof o=="object"&&o!==null?o:null}function ht(o){return typeof o=="string"?o:""}function er(o){return typeof o=="number"?o:null}function tr(o){if(typeof o=="boolean")return o;if(typeof o=="string"){const c=o.toLowerCase();if(c==="completed"||c==="done"||c==="true")return!0;if(c==="incomplete"||c==="pending"||c==="false")return!1}return null}function Ry(o){if(!o)return"";const c=new Date(o);return Number.isNaN(c.getTime())?"":new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short",year:"numeric"}).format(c)}function Hy(o,c){const u=pm(o);if(!u)return null;const r=ht(u.id)||ht(u.interview_id)||`interview-${c}`,h=ht(u.job_name)||ht(u.job_title)||ht(u.title)||"Interview",v=ht(u.company_name)||ht(u.companyName)||"Ukendt virksomhed",z=ht(u.interview_date)||ht(u.created_at)||ht(u.updated_at)||ht(u.date),q=tr(u.is_completed)??tr(u.completed)??tr(u.status)??!0,L=er(u.duration_minutes)??er(u.duration)??er(u.length_minutes),b=ht(u.personality_name)||ht(u.simulation_personality_name)||ht(u.personality)||"Professionel";return{id:r,title:h,companyName:v,dateLabel:Ry(z),completed:q,durationMinutes:L,personality:b}}class Vy{constructor(c=new Ns,u=new vr){this.jobsViewModel=c,this.simulationService=u}async getCandidateProfile(){return this.jobsViewModel.getCandidateProfile()}async getJobs(){try{return await this.jobsViewModel.getTabItems("jobs")}catch{return[]}}async getPersonalities(){try{const c=await this.simulationService.listSimulationPersonalities();return Array.isArray(c)?c:[]}catch{return[]}}async getInterviews(c=12){try{const u=await this.simulationService.listInterviews(c,0),r=pm(u);return(Array.isArray(r?.interviews)?r.interviews:Array.isArray(u)?u:[]).map((v,z)=>Hy(v,z)).filter(v=>!!v)}catch{return[]}}}const qy=[{id:"sim-1",title:"Senior Frontend-udvikler",companyName:"Lunar",completed:!0,durationMinutes:15,personality:"Professionel",dateLabel:"12. okt 2023"},{id:"sim-2",title:"Fullstack Developer",companyName:"Pleo",completed:!1,durationMinutes:20,personality:"Afslappet",dateLabel:"10. okt 2023"},{id:"sim-3",title:"UX Designer",companyName:"Trustpilot",completed:!0,durationMinutes:10,personality:"Sarkastisk",dateLabel:"05. okt 2023"},{id:"sim-4",title:"Product Manager",companyName:"Danske Bank",completed:!0,durationMinutes:5,personality:"Stress-test",dateLabel:"01. okt 2023"}];function By(o){return{id:o.id,title:o.title,companyName:o.companyName,completed:o.completed,durationMinutes:o.durationMinutes??15,personality:o.personality||"Professionel",dateLabel:o.dateLabel||"Nyligt"}}function Yy(o){return`${o.title||"Stilling"}${o.companyName?` · ${o.companyName}`:""}`}function Gy({onLogout:o,onNavigate:c,onOpenEvaluation:u,onToggleTheme:r,theme:h}){const v=T.useMemo(()=>new Vy,[]),[z,q]=T.useState("Lasse"),[L,b]=T.useState(void 0),[B,D]=T.useState([]),[R,K]=T.useState([]),[le,Z]=T.useState([]),[fe,te]=T.useState(!0),[se,Y]=T.useState(""),[P,ie]=T.useState(""),[G,E]=T.useState("Dansk"),[ae,he]=T.useState("15"),[pe,H]=T.useState(!1);T.useEffect(()=>{let x=!0;async function $(){te(!0);const[de,m,N,U]=await Promise.all([v.getCandidateProfile(),v.getJobs(),v.getInterviews(),v.getPersonalities()]);x&&(q(de.name),b(de.imageUrl),D(m),K(N.map(By)),Z(U.map(J=>({id:J.id,name:J.name}))),m.length>0&&Y(J=>J||m[0].id),U.length>0&&ie(J=>J||String(U[0].id)),te(!1))}return $(),()=>{x=!1}},[v]);const Q=R.length>0?R:qy,ue={id:"fallback-job",title:"Senior Frontend-udvikler",companyName:"Lunar"},ee=B.length>0?B:[ue],W=ee.find(x=>x.id===se)||ee[0],_=le.find(x=>String(x.id)===P)?.name||"Professionel & Grundig",V=[{id:"ai-1",sender:"ai",text:`Hej Lasse, og velkommen til! Vi er rigtig glade for at have dig til samtalen omkring rollen som ${W.title||"Senior Frontend-udvikler"}. Kan du fortælle om et nyligt projekt, hvor din erfaring med React gjorde en stor forskel for slutresultatet?`},{id:"me-1",sender:"me",text:"I mit seneste projekt migrerede vi en stor dashboard-løsning til Next.js. Jeg implementerede virtualisering og strammere state management med Zustand, hvilket reducerede load-tid med over 60%."},{id:"ai-2",sender:"ai",text:"Det lyder som en rigtig solid forbedring. Når du nævner Zustand frem for Redux, hvad var overvejelserne bag det valg i jeres use-case?"}];return n.jsxs("section",{className:`dash-root ${h==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"simulator",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar sim-main",children:[n.jsx(Jt,{name:z,imageUrl:L,onLogout:o,theme:h,onToggleTheme:r,actions:pe?n.jsxs("button",{type:"button",className:"sim-leave-btn",onClick:()=>H(!1),children:[n.jsx(Ih,{size:15,strokeWidth:1.8}),n.jsx("span",{children:"Forlad simulering"})]}):void 0}),pe?n.jsxs("div",{className:"sim-live-wrap",children:[n.jsxs("div",{className:"sim-live-head",children:[n.jsx("h1",{children:"Live Jobsamtale"}),n.jsx("p",{children:"Du er i øjeblikket i en simuleret teknisk samtale. Brug mikrofonen til at svare."})]}),n.jsxs("div",{className:"sim-live-grid",children:[n.jsxs("section",{className:"sim-live-chat-card",children:[n.jsxs("div",{className:"sim-live-chat-head",children:[n.jsxs("div",{className:"sim-live-ai-row",children:[n.jsx("div",{className:"sim-live-ai-avatar",children:n.jsx(ql,{size:18,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h3",{children:"Sarah (AI Interviewer)"}),n.jsxs("p",{children:[n.jsx(Zp,{size:12,strokeWidth:1.8})," Venter på dit svar..."]})]})]}),n.jsx("button",{type:"button",className:"sim-live-more-btn",children:n.jsx(Wg,{size:16,strokeWidth:1.8})})]}),n.jsx("div",{className:"sim-live-chat-scroll custom-scrollbar",children:V.map(x=>n.jsxs("div",{className:x.sender==="ai"?"sim-live-msg-row ai":"sim-live-msg-row me",children:[n.jsx("div",{className:x.sender==="ai"?"sim-live-msg-avatar ai":"sim-live-msg-avatar me",children:x.sender==="ai"?n.jsx(ql,{size:13,strokeWidth:1.8}):L?n.jsx("img",{src:L,alt:z}):n.jsx("span",{children:z.slice(0,1).toUpperCase()})}),n.jsx("div",{className:x.sender==="ai"?"sim-live-msg-bubble ai":"sim-live-msg-bubble me",children:n.jsx("p",{children:x.text})})]},x.id))}),n.jsxs("div",{className:"sim-live-voice",children:[n.jsxs("div",{className:"sim-live-time-row",children:[n.jsxs("div",{className:"sim-live-time",children:[n.jsx("small",{children:"Tid gået"}),n.jsx("strong",{children:"04:23"})]}),n.jsx("div",{className:"sim-live-wave",children:Array.from({length:7}).map((x,$)=>n.jsx("span",{style:{animationDelay:`${$*.14}s`}},`wave-${$}`))}),n.jsxs("div",{className:"sim-live-time",children:[n.jsx("small",{children:"Tilbage"}),n.jsx("strong",{children:"10:37"})]})]}),n.jsx("button",{type:"button",className:"sim-live-mic-btn",children:n.jsx(_p,{size:22,strokeWidth:1.8})}),n.jsx("p",{children:"Optager dit svar..."})]})]}),n.jsxs("aside",{className:"sim-live-side custom-scrollbar",children:[n.jsxs("article",{className:"sim-live-side-card",children:[n.jsx("h2",{children:"Session Status"}),n.jsxs("div",{className:"sim-live-side-list",children:[n.jsxs("div",{children:[n.jsx("small",{children:"Stilling"}),n.jsxs("p",{children:[W.title||"Senior Frontend-udvikler"," @ ",W.companyName||"Lunar"]})]}),n.jsxs("div",{children:[n.jsx("small",{children:"Samtaletype"}),n.jsxs("p",{children:[n.jsx(nr,{size:14,strokeWidth:1.8})," Teknisk Dybde"]})]}),n.jsxs("div",{children:[n.jsx("small",{children:"Interviewer stil"}),n.jsxs("p",{children:[n.jsx(ql,{size:14,strokeWidth:1.8})," ",_]})]}),n.jsxs("div",{children:[n.jsxs("div",{className:"sim-live-progress-head",children:[n.jsx("small",{children:"Fremgang"}),n.jsx("strong",{children:"Spørgsmål 2 af 5"})]}),n.jsx("div",{className:"sim-live-progress-track",children:n.jsx("span",{})})]})]})]}),n.jsxs("article",{className:"sim-live-coach-card",children:[n.jsxs("h2",{children:[n.jsx(hp,{size:15,strokeWidth:1.8})," Live Coach"]}),n.jsxs("div",{className:"sim-live-coach-list",children:[n.jsxs("div",{children:[n.jsx(Ke,{size:14,strokeWidth:1.8}),n.jsxs("div",{children:[n.jsx("strong",{children:"Godt brug af STAR-metoden"}),n.jsx("p",{children:"Dit forrige svar beskrev situationen og resultatet meget tydeligt."})]})]}),n.jsxs("div",{children:[n.jsx(Kn,{size:14,strokeWidth:1.8}),n.jsxs("div",{children:[n.jsx("strong",{children:"Næste skridt"}),n.jsx("p",{children:"Uddyb hvorfor Zustand var bedre end Redux i jeres specifikke use-case."})]})]})]})]}),n.jsx("article",{className:"sim-live-side-card",children:n.jsxs("div",{className:"sim-live-actions",children:[n.jsxs("button",{type:"button",children:[n.jsx(Ug,{size:16,strokeWidth:1.8})," Sæt på pause"]}),n.jsxs("button",{type:"button",className:"stop",children:[n.jsx(qg,{size:16,strokeWidth:1.8})," Afslut & Få Feedback"]})]})})]})]})]}):n.jsxs("div",{className:"sim-wrap",children:[n.jsxs("section",{className:"sim-hero-card",children:[n.jsx("div",{className:"sim-hero-glow"}),n.jsxs("div",{className:"sim-hero-left",children:[n.jsx("h1",{children:"Job Interview Simulator"}),n.jsx("p",{children:"Ov dig pa jobsamtaler med vores AI-drevne simulator. Du far skraeddersyede sporgsmal baseret pa den jobtype, du soger, og modtager detaljeret feedback pa dine svar."}),n.jsxs("ul",{className:"sim-benefits",children:[n.jsxs("li",{children:[n.jsx(Ke,{size:16,strokeWidth:1.8})," Personaliserede interviewsporgsmal"]}),n.jsxs("li",{children:[n.jsx(Ke,{size:16,strokeWidth:1.8})," Ojeblikkelig AI-feedback pa dine svar"]}),n.jsxs("li",{children:[n.jsx(Ke,{size:16,strokeWidth:1.8})," Detaljeret evaluering efter interviewet"]}),n.jsxs("li",{children:[n.jsx(Ke,{size:16,strokeWidth:1.8})," Gem og gennemga tidligere interviews"]})]}),n.jsxs("button",{type:"button",className:"sim-start-btn",onClick:()=>H(!0),children:[n.jsx(Lg,{size:18,strokeWidth:1.8}),"Start ny simulering"]})]}),n.jsxs("div",{className:"sim-config-card",children:[n.jsxs("div",{className:"sim-config-head",children:[n.jsx("h3",{children:"Simuleringsindstillinger"}),n.jsx("p",{children:"Vaelg dine praeferencer for start"})]}),n.jsxs("label",{children:["Gemt job",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(fr,{size:16,strokeWidth:1.8}),n.jsx("select",{value:se,onChange:x=>Y(x.target.value),children:ee.map(x=>n.jsx("option",{value:x.id,children:Yy(x)},x.id))}),n.jsx(Bn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]}),n.jsxs("label",{children:["Personlighed (AI)",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(ql,{size:16,strokeWidth:1.8}),n.jsx("select",{value:P,onChange:x=>ie(x.target.value),children:(le.length>0?le:[{id:1,name:"Professionel & Grundig"}]).map(x=>n.jsx("option",{value:String(x.id),children:x.name},x.id))}),n.jsx(Bn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]}),n.jsxs("div",{className:"sim-mini-grid",children:[n.jsxs("label",{children:["Sprog",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(js,{size:16,strokeWidth:1.8}),n.jsxs("select",{value:G,onChange:x=>E(x.target.value),children:[n.jsx("option",{children:"Dansk"}),n.jsx("option",{children:"Engelsk"})]}),n.jsx(Bn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]}),n.jsxs("label",{children:["Varighed",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(lr,{size:16,strokeWidth:1.8}),n.jsxs("select",{value:ae,onChange:x=>he(x.target.value),children:[n.jsx("option",{value:"5",children:"5 min"}),n.jsx("option",{value:"10",children:"10 min"}),n.jsx("option",{value:"15",children:"15 min"}),n.jsx("option",{value:"20",children:"20 min"})]}),n.jsx(Bn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]})]})]})]}),n.jsxs("div",{className:"sim-history-head",children:[n.jsx("h2",{children:"Tidligere simuleringer"}),n.jsxs("button",{type:"button",children:[n.jsx(am,{size:15,strokeWidth:1.8})," Filtrer"]})]}),fe?n.jsx("p",{className:"dash-loading",children:"Indlaeser simuleringer..."}):null,n.jsx("section",{className:"sim-history-grid",children:Q.map(x=>n.jsxs("article",{className:x.completed?"sim-card done":"sim-card draft",children:[n.jsxs("div",{className:"sim-card-head",children:[n.jsxs("div",{children:[n.jsx("h3",{children:x.title}),n.jsx("p",{children:x.companyName})]}),n.jsx("span",{className:x.completed?"sim-status done":"sim-status draft",children:x.completed?"Faerdig":"Ikke faerdig"})]}),n.jsxs("div",{className:"sim-tags",children:[n.jsxs("span",{children:[n.jsx(lr,{size:13,strokeWidth:1.8})," ",x.durationMinutes," min"]}),n.jsxs("span",{children:[n.jsx(ql,{size:13,strokeWidth:1.8})," ",x.personality]})]}),n.jsxs("div",{className:"sim-card-foot",children:[n.jsx("small",{children:x.dateLabel}),x.completed?n.jsxs("button",{type:"button",className:"sim-link-btn",onClick:()=>u({interviewId:x.id,title:x.title,companyName:x.companyName,dateLabel:x.dateLabel}),children:["Se evaluering ",n.jsx(Ua,{size:14,strokeWidth:1.8})]}):n.jsxs("button",{type:"button",className:"sim-link-btn",children:["Fortsæt ",n.jsx(Vp,{size:14,strokeWidth:1.8})]})]})]},x.id))})]})]})]})}function Yl(o){return typeof o=="object"&&o!==null?o:null}function gr(o){return typeof o=="string"?o:""}function Jy(o){if(typeof o=="number"&&Number.isFinite(o))return o;if(typeof o=="string"){const c=Number(o);return Number.isFinite(c)?c:null}return null}function Zh(o){return Array.isArray(o)?o.map(c=>gr(c).trim()).filter(Boolean):[]}function $e(o,c){if(!o)return"";for(const u of c){const r=gr(o[u]).trim();if(r)return r}return""}function ps(o,c){if(!o)return null;for(const u of c){const r=Jy(o[u]);if(r!==null)return r}return null}function Qy(o){if(!o)return"";const c=new Date(o);return Number.isNaN(c.getTime())?o:new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"long",year:"numeric"}).format(c)}function Kh(o,c){return o===null?c:Math.max(0,Math.min(10,Math.round(o)))}const ym=[{id:"1",title:"Mere struktur og korthed i dine svar",behavior:"Du gav nogle svar, der blev lange og gentagende i stedet for fokuserede pa kernen.",effect:"Det kan gore det svaerere for intervieweren hurtigt at vurdere din erfaring og beslutninger.",nextStep:"Svar i 3 trin: pointe, konkret eksempel, resultat. Sigt efter 30-60 sekunder pr. svar."},{id:"2",title:"Flere konkrete eksempler pa performance i service",behavior:"Du fortalte om ansvar, men gav fa konkrete scenarier med handling og resultat.",effect:"Uden konkrete cases bliver niveau og paalidelighed svaerere at validere.",nextStep:"Forbered 2-3 STAR-historier med tydelig situation, handling og maelbart resultat."},{id:"3",title:"Gor din motivation mere maelrettet virksomheden",behavior:"Motivationen var positiv, men ikke altid koblet direkte til virksomhedens drift og behov.",effect:"Du kan fremsta generelt motiveret i stedet for specifikt relevant for rollen.",nextStep:"Naevn 2-3 konkrete grunde til, at netop deres setup matcher din erfaring."},{id:"4",title:"Konkretiser kvalitet og sikkerhed i praksis",behavior:"Du naevnte standarder og certificeringer, men beskrev fa daglige rutiner.",effect:"Det reducerer tydeligheden omkring, hvordan du arbejder sikkert i travle perioder.",nextStep:"Beskriv faste rutiner for kontrol, logning og hurtig korrektion under pres."}],bm=["Du viser relevant erfaring for rollen og kommunikerer ro under pres.","Du arbejder struktureret med kvalitet og timing i service.","Du har en moden team-tilgang med fokus pa samarbejde.","Du kobler dine svar til konkrete arbejdsrutiner og drift.","Du fremstar stabil og ansvarlig i hektiske situationer."],jm=["Forbered 3 korte STAR-historier med maelbare resultater.","Lav en 60-sekunders pitch af din profil og vaerdiskabelse.","Research virksomheden i 10-15 minutter inden samtalen.","Forbered 4-5 konkrete spoergsmaal om rolle og forventninger.","Afslut svar med resultat, sa din effekt bliver tydelig."],kt={companyName:"Ukendt virksomhed",dateLabel:"Nyligt",evaluationLabel:"Interview Feedback",interviewerEvaluationTitle:"Interviewer evaluering",interviewerEvaluationLead:"Du er godt med. Din praestation viste styrker der matcher stillingen.",interviewerEvaluationBody:"Du viste relevante kompetencer og en stabil tilgang under pres. Du kan staerke dit indtryk yderligere ved at svare mere struktureret og bruge flere konkrete resultateksempler.",interviewTitle:"Stilling",interviewerScore:8,selfScore:5,strengths:bm,recommendations:jm,suggestions:ym};function Xy(o,c){const u=Yl(o);if(!u)return null;const r=$e(u,["title","heading","name","subject"]),h=$e(u,["behavior","adfaerd","observation","issue"]),v=$e(u,["effect","impact","consequence"]),z=$e(u,["next_step","nextStep","recommendation","suggestion"]);return!r&&!h&&!v&&!z?null:{id:gr(u.id)||String(c+1),title:r||`Forbedringspunkt ${c+1}`,behavior:h||"Ingen detaljer tilgaengelige.",effect:v||"Ingen detaljer tilgaengelige.",nextStep:z||"Ingen detaljer tilgaengelige."}}function Zy(o){const c=[o?.suggestions,o?.improvements,o?.improvement_points,o?.feedback_points,Yl(o?.evaluation)?.suggestions,Yl(o?.evaluation)?.improvements];for(const u of c){if(!Array.isArray(u))continue;const r=u.map((h,v)=>Xy(h,v)).filter(h=>!!h);if(r.length>0)return r}return ym}function Wh(o,c,u){for(const h of c){const v=Zh(o?.[h]);if(v.length>0)return v}const r=Yl(o?.evaluation);for(const h of c){const v=Zh(r?.[h]);if(v.length>0)return v}return u}class Ky{constructor(c=new vr){this.simulationService=c}async getEvaluation(c,u){try{const r=await this.simulationService.getInterviewEvaluation(c),h=Yl(r),v=Yl(h?.evaluation),z=$e(h,["company_name","companyName"])||$e(v,["company_name","companyName"])||u?.companyName||kt.companyName,q=$e(h,["job_title","job_name","title"])||$e(v,["job_title","job_name","title"])||u?.title||kt.interviewTitle,L=$e(h,["interview_date","created_at","date"])||$e(v,["interview_date","created_at","date"]),b=Qy(L)||u?.dateLabel||kt.dateLabel,B=$e(h,["interviewer_evaluation_lead","lead"])||$e(v,["interviewer_evaluation_lead","lead"])||kt.interviewerEvaluationLead,D=$e(h,["interviewer_evaluation","summary","feedback"])||$e(v,["interviewer_evaluation","summary","feedback"])||kt.interviewerEvaluationBody,R=$e(h,["evaluation_title","interviewer_title"])||$e(v,["evaluation_title","interviewer_title"])||kt.interviewerEvaluationTitle,K=$e(h,["label","evaluation_label"])||$e(v,["label","evaluation_label"])||kt.evaluationLabel,le=Kh(ps(h,["candidate_score","self_score","self_rating"])??ps(v,["candidate_score","self_score","self_rating"]),kt.selfScore),Z=Kh(ps(h,["interviewer_score","score","interviewer_rating"])??ps(v,["interviewer_score","score","interviewer_rating"]),kt.interviewerScore);return{companyName:z,dateLabel:b,evaluationLabel:K,interviewerEvaluationBody:D,interviewerEvaluationLead:B,interviewerEvaluationTitle:R,interviewerScore:Z,interviewTitle:q,recommendations:Wh(h,["recommendations","constructive_recommendations","next_steps"],jm),selfScore:le,strengths:Wh(h,["strengths","highlights"],bm),suggestions:Zy(h)}}catch{return{...kt,companyName:u?.companyName||kt.companyName,interviewTitle:u?.title||kt.interviewTitle,dateLabel:u?.dateLabel||kt.dateLabel}}}async submitRating(c,u,r){await this.simulationService.submitEvaluationRating(c,u,r)}}function xm(o,c){return c-o}function Wy(o,c){const u=xm(o,c);return u>0?`Gab: +${u} point`:u<0?`Gab: ${u} point`:"Gab: 0 point"}function Fy(o,c){const u=xm(o,c);return u>0?"Du undervurderede dig selv i forhold til interviewerens vurdering.":u<0?"Du vurderede dig selv hojere end intervieweren gjorde i denne session.":"Din selvvurdering matcher interviewerens vurdering godt."}function $y(o){return o||"Nyligt"}function Iy({interviewSelection:o,onBack:c,onLogout:u,onNavigate:r,onToggleTheme:h,theme:v}){const z=T.useMemo(()=>new Ky,[]),[q]=T.useState("Lasse"),[L]=T.useState(void 0),[b,B]=T.useState(null),[D,R]=T.useState(!0),[K,le]=T.useState(0),[Z,fe]=T.useState(""),[te,se]=T.useState(!1),[Y,P]=T.useState("");T.useEffect(()=>{let ae=!0;async function he(){R(!0);const pe=await z.getEvaluation(o.interviewId,{companyName:o.companyName,dateLabel:o.dateLabel,title:o.title});ae&&(B(pe),R(!1))}return he(),()=>{ae=!1}},[o.companyName,o.dateLabel,o.interviewId,o.title,z]);async function ie(){if(!(!K||te)){se(!0),P("");try{await z.submitRating(o.interviewId,K,Z.trim()),P("Tak. Din feedback er sendt.")}catch{P("Kunne ikke sende feedback lige nu. Prov igen.")}finally{se(!1)}}}const G=b,E=G?.suggestions??[];return n.jsxs("section",{className:`dash-root ${v==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"simulator",onNavigate:r}),n.jsxs("main",{className:"dash-main custom-scrollbar sim-eval-main",children:[n.jsx(Jt,{name:q,imageUrl:L,onLogout:u,theme:v,onToggleTheme:h,actions:n.jsxs("div",{className:"sim-eval-top-actions",children:[n.jsx("button",{type:"button",className:"sim-eval-back-btn",onClick:c,children:"Tilbage"}),n.jsxs("div",{className:"sim-eval-crumb-pill",children:[n.jsx(lm,{size:14,strokeWidth:1.8}),n.jsx("span",{children:"Simulator"}),n.jsx(Ua,{size:13,strokeWidth:1.8}),n.jsx("strong",{children:"Evaluering"})]})]})}),n.jsxs("div",{className:"sim-eval-wrap",children:[n.jsxs("header",{className:"sim-eval-head",children:[n.jsxs("div",{className:"sim-eval-label",children:[n.jsx(Jg,{size:14,strokeWidth:1.8}),n.jsx("span",{children:G?.evaluationLabel??"Interview Feedback"})]}),n.jsx("h1",{children:"Evalueringsfeedback"}),n.jsxs("div",{className:"sim-eval-meta",children:[n.jsx("strong",{children:G?.companyName??o.companyName}),n.jsx("span",{}),n.jsx("p",{children:G?.interviewTitle??o.title}),n.jsx("span",{}),n.jsxs("small",{children:[n.jsx(_g,{size:14,strokeWidth:1.8})," ",$y(G?.dateLabel??o.dateLabel)]})]})]}),D?n.jsx("p",{className:"dash-loading",children:"Indlaeser evaluering..."}):null,!D&&G?n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"sim-eval-overview-card",children:[n.jsxs("div",{className:"sim-eval-overview-text",children:[n.jsxs("div",{className:"sim-eval-overview-title",children:[n.jsx(dm,{size:20,strokeWidth:1.8}),n.jsx("h2",{children:G.interviewerEvaluationTitle})]}),n.jsx("p",{className:"lead",children:G.interviewerEvaluationLead}),n.jsx("p",{children:G.interviewerEvaluationBody})]}),n.jsxs("aside",{className:"sim-eval-score-card",children:[n.jsxs("div",{className:"sim-eval-score-head",children:[n.jsx("h3",{children:"Performance vurdering"}),n.jsx(Kn,{size:16,strokeWidth:1.8})]}),n.jsxs("div",{className:"sim-eval-score-rows",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Din udfyldelse"}),n.jsxs("strong",{children:[G.selfScore,"/10"]})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Interviewers vurdering"}),n.jsxs("strong",{className:"good",children:[G.interviewerScore,"/10"]})]})]}),n.jsxs("div",{className:"sim-eval-gap-block",children:[n.jsxs("span",{children:[n.jsx(Eh,{size:13,strokeWidth:1.8})," ",Wy(G.selfScore,G.interviewerScore)]}),n.jsx("p",{children:Fy(G.selfScore,G.interviewerScore)})]})]})]}),n.jsxs("section",{className:"sim-eval-improvements",children:[n.jsxs("div",{className:"sim-eval-section-title",children:[n.jsx(Eh,{size:20,strokeWidth:1.8}),n.jsx("h2",{children:"Hvordan kan du blive bedre?"})]}),n.jsx("div",{className:"sim-eval-improvement-list",children:E.map((ae,he)=>n.jsxs("article",{className:"sim-eval-improvement-card",children:[n.jsx("div",{className:"sim-eval-improvement-index",children:he+1}),n.jsxs("div",{className:"sim-eval-improvement-content",children:[n.jsx("h3",{children:ae.title}),n.jsxs("div",{className:"sim-eval-improvement-grid",children:[n.jsxs("div",{children:[n.jsx("small",{children:"Adfaerd"}),n.jsx("p",{children:ae.behavior})]}),n.jsxs("div",{className:"impact",children:[n.jsx("small",{children:"Effekt"}),n.jsx("p",{children:ae.effect})]}),n.jsxs("div",{className:"next",children:[n.jsx("small",{children:"Naeste gang"}),n.jsx("p",{children:ae.nextStep})]})]})]})]},ae.id))})]}),n.jsxs("section",{className:"sim-eval-split-grid",children:[n.jsxs("article",{className:"sim-eval-list-card",children:[n.jsxs("div",{className:"sim-eval-card-title",children:[n.jsx(Ke,{size:20,strokeWidth:1.8}),n.jsx("h2",{children:"Dine styrker"})]}),n.jsx("ul",{children:G.strengths.map((ae,he)=>n.jsxs("li",{children:[n.jsx(Ke,{size:17,strokeWidth:1.8}),n.jsx("span",{children:ae})]},`strength-${he}`))})]}),n.jsxs("article",{className:"sim-eval-list-card recommendations",children:[n.jsxs("div",{className:"sim-eval-card-title",children:[n.jsx(ur,{size:20,strokeWidth:1.8}),n.jsx("h2",{children:"Konstruktiv anbefaling"})]}),n.jsx("p",{className:"hint",children:"Fokuser pa disse handlinger for at staerke din naeste samtale."}),n.jsx("ul",{children:G.recommendations.map((ae,he)=>n.jsxs("li",{children:[n.jsx("div",{children:n.jsx(Ep,{size:13,strokeWidth:2})}),n.jsx("span",{children:ae})]},`recommendation-${he}`))})]})]}),n.jsxs("section",{className:"sim-eval-rating-card",children:[n.jsx("p",{children:"Husk: Hvert interview er en laeringsmulighed. Bliv ved med at ove."}),n.jsxs("div",{className:"sim-eval-rating-box",children:[n.jsx("h3",{children:"Bedom denne evaluering"}),n.jsx("small",{children:"Din feedback hjaelper os med at forbedre oplevelsen."}),n.jsx("div",{className:"sim-eval-stars",children:Array.from({length:5}).map((ae,he)=>{const pe=he+1,H=pe<=K;return n.jsx("button",{type:"button","aria-label":`Vaelg ${pe} stjerner`,className:H?"selected":"",onClick:()=>le(pe),children:n.jsx(hr,{size:27,fill:H?"currentColor":"none",strokeWidth:1.8})},`star-${pe}`)})}),n.jsx("textarea",{value:Z,onChange:ae=>fe(ae.target.value),rows:3,placeholder:"Kommentar (valgfrit)"}),n.jsx("button",{type:"button",onClick:()=>{ie()},disabled:te||K===0,children:te?"Sender...":"Send feedback"}),Y?n.jsx("div",{className:"sim-eval-submit-status",children:Y}):null]})]})]}):null]})]})]})}class Py{constructor(c=new tl,u=new Ss){this.candidateService=c,this.subscriptionService=u}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate();return{name:c.firstName?.trim()||c.name?.trim()||"Lasse",imageUrl:c.imageUrl||c.image||void 0}}catch{return{name:"Lasse"}}}async getSnapshot(){const[c,u]=await Promise.allSettled([this.subscriptionService.getPaymentOverview(),this.subscriptionService.getSubscriptionProducts()]);return{paymentOverview:c.status==="fulfilled"?c.value:null,products:u.status==="fulfilled"?u.value:null}}async redeemCode(c){await this.subscriptionService.redeemCode(c)}}const Fh=["Download et professionelt CV - Klar til brug med et enkelt klik","Karriereagent med personlige anbefalinger","Øget synlighed – bliv fundet af virksomheder","Lad systemet lave din ansøgning for dig","Optimer dit CV med intelligente forslag","Job simulatoren – træn til din næste jobsamtale"];function Sm(o){if(!o)return null;const c=o instanceof Date?o:new Date(o);return Number.isNaN(c.getTime())?null:c}function eb(o){const c=Sm(o);return c?new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"2-digit",year:"numeric"}).format(c):"Ukendt dato"}function tb(o){if(!o)return!1;const c=Sm(o.activeToDate);return c?c.getTime()>Date.now():!1}function ab(o){const c=o?.premium_30?.price??49,u=o?.premium_90?.price??99,r=o?.premium_365?.price??249;return{30:{title:"30 dage",priceText:`${c} kr.`,dailyText:"Svarer til 1.63 kr. pr. dag",description:"Månedlig adgang til alle premium-funktioner"},90:{title:"90 dage",priceText:`${u} kr.`,dailyText:"Svarer til 1.10 kr. pr. dag",savings:"Spar 33%",description:"Mest populære valg med ekstra besparelse"},365:{title:"365 dage",priceText:`${r} kr.`,dailyText:"Svarer til 0.68 kr. pr. dag",savings:"Spar 58%",description:"Inkluderer gavekode til 3 måneders premium"}}}function lb({onLogout:o,onNavigate:c,onToggleTheme:u,theme:r}){const h=T.useMemo(()=>new Py,[]),[v,z]=T.useState("Lasse"),[q,L]=T.useState(void 0),[b,B]=T.useState(null),[D,R]=T.useState(null),[K,le]=T.useState(!0),[Z,fe]=T.useState("90"),[te,se]=T.useState(!1),[Y,P]=T.useState(""),[ie,G]=T.useState(""),[E,ae]=T.useState(!1),[he,pe]=T.useState(null);T.useEffect(()=>{let W=!0;async function _(){le(!0);const[V,x]=await Promise.all([h.getCandidateProfile(),h.getSnapshot()]);W&&(z(V.name),L(V.imageUrl),B(x.paymentOverview),R(x.products),le(!1))}return _(),()=>{W=!1}},[h]);const H=T.useMemo(()=>ab(D),[D]),Q=tb(b),ue=he??Q;async function ee(){const W=Y.trim();if(!(!W||E)){G(""),ae(!0);try{await h.redeemCode(W),G("Koden blev indløst. Opdaterer abonnement...");const _=await h.getSnapshot();B(_.paymentOverview),R(_.products),P("")}catch{G("Kunne ikke indløse kode. Prøv igen.")}finally{ae(!1)}}}return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(Gt,{active:"subscription",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar sub-main",children:[n.jsx(Jt,{name:v,imageUrl:q,onLogout:o,theme:r,onToggleTheme:u,actions:n.jsxs("div",{className:"sub-top-actions",children:[n.jsxs("div",{className:"sub-crumb-pill",children:[n.jsx(ir,{size:15,strokeWidth:1.8})," Abonnement"]}),n.jsx("button",{type:"button",className:"sub-toggle-btn",onClick:()=>pe(W=>W===null?!Q:!W),children:ue?'Vis "Unsubscribed" state':'Vis "Subscribed" state'})]})}),n.jsxs("div",{className:"sub-head",children:[n.jsxs("div",{className:"sub-head-title-row",children:[n.jsx("div",{className:"sub-head-icon",children:n.jsx(ir,{size:18,strokeWidth:1.8})}),n.jsx("h1",{children:"Dit Abonnement"})]}),n.jsx("p",{children:"Administrer dit medlemskab og lås op for alle de intelligente værktøjer, der gør din jobsøgning nemmere."})]}),n.jsxs("div",{className:"sub-wrap",children:[n.jsxs("section",{className:"sub-redeem-card",children:[n.jsxs("div",{className:"sub-redeem-head",children:[n.jsx("span",{children:"🎟️"}),n.jsx("h2",{children:"Indløs kode"})]}),n.jsx("p",{children:"Har du en rabatkode eller gavekode? Indtast den her og få den aktiveret med det samme"}),n.jsxs("div",{className:"sub-redeem-row",children:[n.jsx("input",{type:"text",value:Y,onChange:W=>P(W.target.value),placeholder:"Indtast kode her..."}),n.jsx("button",{type:"button",onClick:()=>{ee()},disabled:E,children:E?"Indløser...":"Indløs"})]}),ie?n.jsx("small",{children:ie}):null]}),K?n.jsx("p",{className:"dash-loading",children:"Indlaeser abonnement..."}):null,!K&&!ue?n.jsxs(n.Fragment,{children:[n.jsx("section",{className:"sub-plan-grid",children:["30","90","365"].map(W=>{const _=H[W],V=Z===W,x=W==="90",$=W==="365";return n.jsxs("label",{className:["sub-plan-card",V?"selected":"",x?"popular":"",$?"yearly":""].join(" ").trim(),children:[x?n.jsx("div",{className:"sub-popular-badge",children:"Mest populær"}):null,n.jsx("input",{type:"radio",name:"pricing-plan",checked:V,onChange:()=>fe(W)}),n.jsx("div",{className:"sub-radio-indicator",children:n.jsx("i",{})}),n.jsxs("div",{className:"sub-plan-content",children:[n.jsxs("div",{className:"sub-plan-title-row",children:[n.jsx("h3",{children:_.title}),_.savings?n.jsx("span",{children:_.savings}):null]}),n.jsx("div",{className:"sub-price",children:_.priceText}),n.jsx("p",{className:"sub-price-daily",children:_.dailyText}),$?n.jsxs("div",{className:"sub-gift-box",children:[n.jsx(ap,{size:17,strokeWidth:1.8}),n.jsxs("div",{children:[n.jsx("strong",{children:"Giv en gave"}),n.jsx("small",{children:"Få en gratis 3-måneders Premium-kode med i købet til en ven."})]})]}):null,n.jsx("div",{className:"sub-divider"}),n.jsx("ul",{children:Fh.map(de=>n.jsxs("li",{children:[n.jsx(Ke,{size:15,strokeWidth:1.8}),n.jsx("span",{children:de})]},`${W}-${de}`))})]})]},W)})}),n.jsxs("section",{className:"sub-checkout-card",children:[n.jsxs("div",{children:[n.jsx("h3",{children:"Klar til at opgradere?"}),n.jsx("p",{children:"Vælg en plan ovenfor og få adgang til alle Premium-funktioner med det samme."})]}),n.jsxs("div",{className:"sub-checkout-actions",children:[n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:te,onChange:W=>se(W.target.checked)}),n.jsx("span",{className:"sub-checkbox",children:n.jsx(Mg,{size:13,strokeWidth:2.2})}),n.jsx("span",{children:"Jeg accepterer handelsbetingelser"})]}),n.jsx("button",{type:"button",disabled:!te,children:"Gå til betaling"})]})]})]}):null,!K&&ue?n.jsxs("div",{className:"sub-active-wrap",children:[n.jsxs("section",{className:"sub-gift-alert",children:[n.jsx("div",{className:"sub-gift-glow"}),n.jsx("div",{className:"sub-gift-icon",children:"🎁"}),n.jsxs("div",{children:[n.jsx("h2",{children:"Din gave venter!"}),n.jsx("p",{children:"Klik på gaven nedenfor for at se indholdet"})]}),n.jsx("button",{type:"button",children:"Åbn gave"})]}),n.jsxs("section",{className:"sub-active-card",children:[n.jsxs("div",{className:"sub-active-head",children:[n.jsx("span",{children:"👑"}),n.jsx("h2",{children:"Premium abonnement"})]}),n.jsxs("div",{className:"sub-active-grid",children:[n.jsx("div",{className:"sub-active-features",children:n.jsx("ul",{children:Fh.map(W=>n.jsxs("li",{children:[n.jsx(Ke,{size:16,strokeWidth:1.8}),n.jsx("span",{children:W})]},`active-${W}`))})}),n.jsxs("div",{className:"sub-active-status-col",children:[n.jsxs("div",{className:"sub-active-status-box",children:[n.jsx("div",{className:"sub-active-check",children:n.jsx(Ke,{size:34,strokeWidth:1.8})}),n.jsx("h3",{children:"Dit abonnement er aktivt"}),n.jsxs("strong",{children:[H[Z].priceText," for ",H[Z].title]}),n.jsx("p",{children:H[Z].dailyText}),n.jsxs("div",{className:"sub-renew-pill",children:[n.jsx(Ng,{size:16,strokeWidth:1.8}),"Fornyes d. ",eb(b?.renewDate)]})]}),n.jsx("button",{type:"button",className:"sub-manage-link",children:"Administrer betalingsoplysninger"})]})]})]})]}):null]})]})]})}function nb(){const o=T.useMemo(()=>!!window.localStorage.getItem("token"),[]),c=T.useMemo(()=>window.localStorage.getItem("theme")==="dark"?"dark":"light",[]),[u,r]=T.useState(o),[h,v]=T.useState(c),[z,q]=T.useState("dashboard"),[L,b]=T.useState(null),[B,D]=T.useState(null);function R(Y){(Y==="dashboard"||Y==="jobs"||Y==="cv"||Y==="messages"||Y==="agents"||Y==="ai-agent"||Y==="simulator"||Y==="subscription")&&q(Y)}function K(Y,P,ie="jobs"){b({id:Y,fromJobnet:P,returnPage:ie}),q("job-detail")}function le(){q(L?.returnPage??"jobs")}function Z(Y){D(Y),q("simulator-evaluation")}function fe(){q("simulator")}async function te(){await Gl.clearCredentials(),q("dashboard"),b(null),D(null),r(!1)}function se(){v(Y=>{const P=Y==="light"?"dark":"light";return window.localStorage.setItem("theme",P),P})}return u?z==="jobs"?n.jsx(Cy,{onLogout:te,onNavigate:R,onOpenJobDetail:K,theme:h,onToggleTheme:se}):z==="cv"?n.jsx(fy,{onLogout:te,onNavigate:R,theme:h,onToggleTheme:se}):z==="messages"?n.jsx(Ly,{onLogout:te,onNavigate:R,theme:h,onToggleTheme:se}):z==="agents"?n.jsx(B0,{onLogout:te,onNavigate:R,onOpenJobDetail:K,theme:h,onToggleTheme:se}):z==="ai-agent"?n.jsx(X0,{onLogout:te,onNavigate:R,theme:h,onToggleTheme:se}):z==="simulator"?n.jsx(Gy,{onLogout:te,onNavigate:R,onOpenEvaluation:Z,theme:h,onToggleTheme:se}):z==="simulator-evaluation"&&B?n.jsx(Iy,{interviewSelection:B,onBack:fe,onLogout:te,onNavigate:R,theme:h,onToggleTheme:se}):z==="subscription"?n.jsx(lb,{onLogout:te,onNavigate:R,theme:h,onToggleTheme:se}):z==="job-detail"&&L?n.jsx(Ty,{jobId:L.id,fromJobnet:L.fromJobnet,onBack:le,onLogout:te,onNavigate:R,theme:h,onToggleTheme:se}):n.jsx(Sy,{onLogout:te,onNavigate:R,onOpenJobDetail:K,theme:h,onToggleTheme:se}):n.jsx(D0,{onAuthenticated:()=>r(!0)})}tg.createRoot(document.getElementById("root")).render(n.jsx(T.StrictMode,{children:n.jsx(nb,{})})); diff --git a/dist/assets/index-R0YECfZq.css b/dist/assets/index-R0YECfZq.css deleted file mode 100644 index da6005a..0000000 --- a/dist/assets/index-R0YECfZq.css +++ /dev/null @@ -1 +0,0 @@ -:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{height:100%}body{margin:0;min-width:320px}::selection{background:#99f6e4;color:#134e4a}button,input,textarea,select{font-family:inherit}.auth-page{position:relative;min-height:100vh;background:#ecf0f0;color:#1f2937;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}.auth-page *{box-sizing:border-box}.orb{position:fixed;border-radius:999px;pointer-events:none;z-index:0}.orb-1{top:-10%;left:-10%;width:50vw;height:50vw;background:#2dd4bf4d;filter:blur(120px)}.orb-2{right:-10%;bottom:-10%;width:60vw;height:60vw;background:#67e8f966;filter:blur(150px)}.orb-3{top:30%;right:20%;width:30vw;height:30vw;background:#34d39933;filter:blur(100px)}.auth-logo-wrap{position:absolute;top:32px;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:8px}.auth-logo-dot{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#0f766e,#06b6d4);box-shadow:0 12px 22px #0d94884d}.auth-logo-text{font-size:1.25rem;font-weight:500;letter-spacing:-.03em}.auth-card{width:min(420px,100%);position:relative;z-index:5;border-radius:32px;padding:32px;background:#fff9;border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #0000000a}.auth-view{display:grid;gap:24px}.view-enter{animation:fadeIn .3s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.auth-head{display:grid;gap:8px}.auth-head-center{text-align:center}.auth-head h1{margin:0;font-size:1.55rem;font-weight:500;letter-spacing:-.03em;color:#111827}.auth-head p{margin:0;color:#6b7280;font-size:.9rem;line-height:1.5}.auth-form{display:grid;gap:18px}.auth-field{display:grid;gap:7px}.auth-field span{font-size:.88rem;font-weight:500;color:#374151;padding-left:4px}.auth-field-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-field input{width:100%;border:1px solid rgba(255,255,255,.75);border-radius:12px;padding:10px 14px 10px 40px;background:#ffffff8c;color:#111827;font-size:.9rem;outline:none;box-shadow:0 1px 2px #0f172a0f;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease}.auth-field input::placeholder{color:#9ca3af}.auth-field input:focus{border-color:#14b8a680;box-shadow:0 0 0 3px #14b8a62e,0 6px 18px #0d948814;background:#ffffffd9}.auth-input-wrap{position:relative}.auth-input-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%);width:18px;height:18px;border-radius:999px;display:grid;place-items:center;color:#9ca3af;pointer-events:none}.auth-input-icon svg{width:16px;height:16px;display:block}.location-suggestions{margin-top:8px;border-radius:12px;border:1px solid rgba(255,255,255,.82);background:#ffffffd1;box-shadow:0 10px 24px #0f172a14;overflow:hidden;max-height:180px;overflow-y:auto}.location-suggestion-item{width:100%;border:0;border-bottom:1px solid rgba(229,231,235,.7);background:transparent;padding:10px 12px;text-align:left;color:#374151;font-size:.86rem;cursor:pointer}.location-suggestion-item:last-child{border-bottom:0}.location-suggestion-item:hover{background:#14b8a61a;color:#115e59}.check-row{display:flex;align-items:center;gap:8px;color:#4b5563;font-size:.9rem}.submit-btn{margin-top:2px;width:100%;border:0;border-radius:12px;padding:10px 14px;font-size:.9rem;font-weight:600;color:#fff;background:#111827;cursor:pointer;transition:background .2s ease}.submit-btn:hover:not(:disabled){background:#1f2937}.submit-btn:disabled{opacity:.65;cursor:default}.auth-foot{margin:0;text-align:center;font-size:.9rem;color:#6b7280;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.link-btn{border:0;background:transparent;color:#0f766e;font-weight:500;cursor:pointer;padding:0}.link-btn:hover{color:#115e59}.back-link{justify-self:start;font-size:.8rem}.status{margin:18px 0 0;border-radius:12px;padding:10px 12px;font-size:.88rem}.status.success{background:#10b9811f;color:#047857}.status.error{background:#ef44441f;color:#b91c1c}@media(max-width:520px){.auth-card{padding:24px 20px;border-radius:24px}}.dash-root{min-height:100vh;display:flex;background:#ecf0f0;color:#1f2937;overflow:hidden;position:relative}.dash-root *{box-sizing:border-box}.dash-orb{position:fixed;border-radius:999px;pointer-events:none;z-index:0}.dash-orb-1{top:-10%;left:-10%;width:50vw;height:50vw;background:#2dd4bf4d;filter:blur(120px)}.dash-orb-2{right:-10%;bottom:-10%;width:60vw;height:60vw;background:#67e8f966;filter:blur(150px)}.dash-orb-3{top:30%;right:20%;width:30vw;height:30vw;background:#34d39933;filter:blur(100px)}.dash-sidebar{width:256px;margin:24px 0 24px 24px;height:calc(100vh - 48px);padding:24px;background:#ffffff6b;border:1px solid rgba(255,255,255,.6);border-radius:32px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 8px 30px #0000000a;display:flex;flex-direction:column;gap:18px;z-index:2;flex-shrink:0}.dash-logo-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding-left:8px}.dash-logo-dot{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:#fff;font-weight:700;background:linear-gradient(135deg,#0f766e,#06b6d4);box-shadow:0 10px 22px #0d948847}.dash-logo-text{font-size:1.25rem;font-weight:500;letter-spacing:-.03em}.dash-nav{display:grid;gap:6px;flex:1;align-content:start}.dash-nav-item{border:0;background:transparent;min-height:50px;border-radius:18px;display:flex;align-items:center;gap:12px;color:#6b7280;padding:0 16px;position:relative;cursor:pointer;text-align:left;font-size:1rem;font-weight:400;transition:.2s ease}.dash-nav-item:hover{background:#ffffff59;color:#111827}.dash-nav-item.active{background:#ffffffa8;color:#0f766e;border:1px solid rgba(255,255,255,.82);box-shadow:0 6px 14px #0f172a08;font-weight:500}.dash-nav-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:999px;background:#0ea5a4}.dash-nav-icon{display:grid;place-items:center}.dash-nav-icon.accent{color:#0f766e}.dash-nav-label{white-space:nowrap}.dash-nav-divider{height:1px;margin:6px 16px;background:#ffffff8c}.dash-nav-badge{margin-left:auto;width:20px;height:20px;border-radius:999px;font-size:.7rem;display:grid;place-items:center;color:#fff;background:#06b6d4}.dash-nav-dot{margin-left:auto;width:7px;height:7px;border-radius:999px;background:#10b981;box-shadow:0 0 8px #10b981cc}.dash-sidebar-pro{margin-top:auto;border-radius:18px;border:1px solid rgba(20,184,166,.2);background:linear-gradient(135deg,#14b8a614,#06b6d414);padding:14px;position:relative;overflow:hidden;text-align:center}.dash-sidebar-pro svg{color:#0f766e;margin:0 auto 8px;position:relative;z-index:1}.dash-sidebar-pro-glow{position:absolute;top:-22px;right:-22px;width:88px;height:88px;border-radius:999px;background:#14b8a633;filter:blur(20px)}.dash-sidebar-pro h4{position:relative;z-index:1;margin:0 0 4px;font-size:.86rem}.dash-sidebar-pro p{position:relative;z-index:1;margin:0;color:#6b7280;font-size:.76rem}.dash-main{flex:1;margin:24px 24px 24px 32px;height:calc(100vh - 48px);overflow-y:auto;padding-right:8px;z-index:1}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#14b8a633;border-radius:20px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#14b8a666}.dash-topbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:28px;padding-top:8px;position:relative;z-index:5}.dash-topbar-actions{display:inline-flex;align-items:center;gap:8px}.dash-theme-btn{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:7px;color:#111827;cursor:pointer;font-size:.75rem;font-weight:500}.dash-theme-btn:hover{background:#ffffffd6}.dash-profile-wrap{position:relative}.dash-profile-btn{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:6px 12px 6px 6px;display:flex;align-items:center;gap:8px;color:#111827;cursor:pointer}.dash-profile-avatar{width:32px;height:32px;border-radius:999px;border:1px solid rgba(255,255,255,.8);object-fit:cover}.dash-profile-avatar-fallback{background:linear-gradient(135deg,#0f766e,#06b6d4);display:grid;place-items:center;color:#fff;font-size:.86rem;font-weight:600}.dash-profile-menu{position:absolute;top:calc(100% + 8px);right:0;width:220px;background:#ffffffd1;border:1px solid rgba(255,255,255,.82);border-radius:16px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 10px 36px #0000001a;padding:8px;opacity:0;visibility:hidden;transform:scale(.96);transform-origin:top right;transition:.18s ease}.dash-profile-wrap:hover .dash-profile-menu,.dash-profile-wrap:focus-within .dash-profile-menu{opacity:1;visibility:visible;transform:scale(1)}.dash-profile-menu button{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:8px;border-radius:10px;padding:9px 10px;color:#4b5563;cursor:pointer}.dash-profile-menu button:hover{background:#ffffffe6;color:#111827}.dash-profile-menu .danger{color:#e11d48}.dash-profile-divider{height:1px;background:#d1d5dbcc;margin:6px 0}.dash-welcome{margin-bottom:28px}.dash-welcome h1{margin:0;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em;display:flex;align-items:center;gap:10px}.dash-welcome p{margin:8px 0 0;color:#6b7280}.dash-loading{margin:0 0 14px;color:#6b7280}.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px;padding-bottom:24px}.dash-grid-main,.dash-grid-side{display:grid;gap:24px;align-content:start}.dash-card{background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.dash-card:hover{transform:translateY(-1px);box-shadow:0 12px 34px #0f172a0f}.dash-card h2,.dash-card h3,.dash-card h4,.dash-card p{margin:0}.dash-card-head{margin-bottom:16px}.dash-card-head-inline{display:flex;align-items:center;justify-content:space-between;gap:8px}.dash-card-head h2{font-size:1.15rem;font-weight:500;letter-spacing:-.01em}.dash-job-list,.dash-message-list,.dash-sim-list,.dash-ai-list,.dash-agent-list{display:grid;gap:10px}.dash-job-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:16px;background:#ffffff80;border:1px solid rgba(255,255,255,.72);transition:.2s ease;cursor:pointer}.dash-job-item:hover{background:#fffc;box-shadow:0 4px 14px #0f172a0f}.dash-job-item:focus-visible{outline:2px solid rgba(20,184,166,.45);outline-offset:2px}.dash-job-left{display:flex;align-items:center;gap:10px;min-width:0}.dash-company-chip{width:40px;height:40px;border-radius:12px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:600;flex-shrink:0}.dash-job-item h4{font-size:.95rem;margin-bottom:2px}.dash-job-item p{font-size:.8rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-job-arrow-btn{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;display:grid;place-items:center;color:#9ca3af;cursor:pointer;flex-shrink:0;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.dash-job-item:hover .dash-job-arrow-btn{background:#f0fdfa;color:#0f766e;border-color:#99f6e4}.dash-split-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dash-message-item,.dash-sim-item,.dash-agent-item{border-radius:14px;padding:10px;background:#ffffff75;border:1px solid rgba(255,255,255,.68);transition:.2s ease}.dash-message-item{display:flex;align-items:center;gap:10px}.dash-avatar{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#14b8a633,#06b6d433);color:#0f766e;font-size:.76rem;font-weight:700;flex-shrink:0}.dash-message-item h4{font-size:.84rem;margin-bottom:1px}.dash-message-item p{color:#6b7280;font-size:.76rem}.dash-message-item:hover{background:#fffc}.dash-sim-item{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;cursor:pointer}.dash-sim-item:hover{background:#ffffffd1}.dash-sim-left{display:flex;align-items:center;gap:10px}.dash-sim-left h4{margin:0;font-size:.84rem;font-weight:500}.dash-sim-left p{margin:0;color:#6b7280;font-size:.74rem}.dash-sim-icon{width:36px;height:36px;border-radius:10px;border:1px solid transparent;display:grid;place-items:center;flex-shrink:0}.dash-sim-icon.teal{background:#ecfdf5;border-color:#ccfbf1;color:#0f766e}.dash-sim-icon.purple{background:#f5f3ff;border-color:#ede9fe;color:#7c3aed}.dash-sim-icon.amber{background:#fffbeb;border-color:#fef3c7;color:#d97706}.dash-sim-icon.blue{background:#eff6ff;border-color:#dbeafe;color:#2563eb}.dash-sim-icon.gray{background:#f3f4f6;border-color:#e5e7eb;color:#6b7280}.dash-sim-right{text-align:right}.dash-sim-item strong{color:#059669;font-size:.8rem;display:block;margin-bottom:4px}.dash-sim-item strong.warn{color:#d97706}.dash-sim-item strong.na{color:#6b7280}.dash-progress{width:64px;height:6px;border-radius:999px;background:#e5e7eb;overflow:hidden}.dash-progress span{display:block;height:100%;border-radius:inherit;background:#10b981}.dash-progress span.warn{background:#f59e0b}.dash-ai-card{background:linear-gradient(135deg,#14b8a6,#06b6d4);color:#fff;position:relative;overflow:hidden;border-radius:24px;box-shadow:0 20px 32px -10px #14b8a638}.dash-ai-card:hover{transform:none;box-shadow:0 20px 32px -10px #14b8a638}.dash-ai-content{position:relative;z-index:10}.dash-ai-peel{position:absolute;top:-14px;right:-14px;width:96px;height:96px;border-bottom-left-radius:48px;border-top-right-radius:28px;background:#fff3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-left:1px solid rgba(255,255,255,.45);border-bottom:1px solid rgba(255,255,255,.45);box-shadow:-10px 10px 20px #0000001a;transform-origin:top right;transition:transform .2s ease}.dash-ai-card-group:hover .dash-ai-peel{transform:scale(1.08)}.dash-ai-head{display:flex;align-items:center;gap:8px;margin-bottom:16px}.dash-ai-head svg{color:#ccfbf1}.dash-ai-card h3{font-size:1.125rem;margin-bottom:0;font-weight:500;letter-spacing:-.01em}.dash-ai-card p{color:#ccfbf1;margin-bottom:24px;font-size:.875rem;font-weight:400}.dash-ai-list{margin:0;padding:0;list-style:none;display:grid;gap:12px}.dash-ai-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:background-color .2s ease}.dash-ai-item:hover{background:#fff3}.dash-ai-item-icon{margin-top:2px;width:24px;height:24px;border-radius:999px;border:0;background:#fff3;display:grid;place-items:center;flex-shrink:0}.dash-ai-item strong{display:block;font-size:.875rem;margin-bottom:2px;color:#fff;font-weight:500}.dash-ai-item small{display:block;font-size:.75rem;color:#ccfbf1;line-height:1.4}.dash-ai-card button{width:100%;margin-top:16px;border:0;border-radius:12px;padding:10px 12px;font-size:.875rem;font-weight:500;color:#0f766e;background:#fff;cursor:pointer;box-shadow:0 1px 2px #0f172a1f;transition:background-color .2s ease}.dash-ai-card button:hover{background:#f0fdfa}.dash-ai-xl-only{display:none}.dash-agent-item span{display:block;font-size:.84rem;font-weight:500}.dash-agent-item small{display:inline-flex;align-items:center;gap:4px;color:#6b7280;font-size:.75rem}.dash-agent-item{display:flex;align-items:center;justify-content:space-between}.dash-agent-item:hover{background:#ffffffd1}.dash-agent-item.muted{opacity:.72}.dash-agent-item.muted:hover{opacity:1}.dash-switch{position:relative;width:38px;height:22px;display:inline-block;flex-shrink:0}.dash-switch input{position:absolute;opacity:0;inset:0}.dash-switch span{position:absolute;inset:0;background:#d1d5db;border-radius:999px;transition:.2s ease}.dash-switch span:after{content:"";position:absolute;width:16px;height:16px;border-radius:999px;background:#fff;top:3px;left:3px;transition:.2s ease;box-shadow:0 1px 2px #0f172a33}.dash-switch input:checked+span{background:#14b8a6}.dash-switch input:checked+span:after{transform:translate(16px)}.dash-icon-btn{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#4b5563;display:grid;place-items:center;cursor:pointer;transition:.2s ease}.dash-icon-btn:hover{color:#0f766e;border-color:#99f6e4;background:#f0fdfa}.dash-outline-btn{width:100%;margin-top:10px;border:1px dashed rgba(156,163,175,.6);background:transparent;border-radius:10px;padding:10px;color:#6b7280;cursor:pointer;transition:.2s ease}.dash-outline-btn:hover{border-color:#4b556399;color:#1f2937}.dash-muted{color:#6b7280;font-size:.82rem}.theme-dark.dash-root{background:#0a0a0a;color:#d1d5db}.theme-dark .dash-orb-1{background:#14b8a61a}.theme-dark .dash-orb-2{background:#06b6d41a}.theme-dark .dash-orb-3{background:#10b9811a}.theme-dark .dash-sidebar{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 8px 30px #0003}.theme-dark .dash-logo-text,.theme-dark .dash-welcome h1,.theme-dark .dash-card h2,.theme-dark .dash-card h3,.theme-dark .dash-card h4{color:#fff}.theme-dark .dash-nav-item{color:#9ca3af}.theme-dark .dash-nav-item:hover{background:#ffffff0d;color:#f3f4f6}.theme-dark .dash-nav-item.active{background:#ffffff1a;border-color:#ffffff14;color:#2dd4bf}.theme-dark .dash-nav-divider,.theme-dark .dash-sidebar-pro p,.theme-dark .dash-welcome p,.theme-dark .dash-loading,.theme-dark .dash-muted{color:#9ca3af}.theme-dark .dash-sidebar-pro{background:linear-gradient(135deg,#14b8a61a,#06b6d40d);border-color:#14b8a633}.theme-dark .dash-topbar .dash-theme-btn,.theme-dark .dash-profile-btn{border-color:#ffffff14;background:#ffffff08;color:#f3f4f6}.theme-dark .dash-topbar .dash-theme-btn:hover,.theme-dark .dash-profile-btn:hover{background:#ffffff14}.theme-dark .dash-profile-menu{background:#12141af2;border-color:#ffffff1a}.theme-dark .dash-profile-menu button{color:#d1d5db}.theme-dark .dash-profile-menu button:hover{background:#ffffff0d;color:#fff}.theme-dark .dash-card:not(.dash-ai-card){background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.theme-dark .dash-ai-card{background:linear-gradient(135deg,#14b8a6,#06b6d4);border-color:#ffffff26;box-shadow:0 20px 32px -10px #14b8a638}.theme-dark .dash-job-item,.theme-dark .dash-message-item,.theme-dark .dash-sim-item,.theme-dark .dash-agent-item{background:#ffffff05;border-color:#ffffff0d}.theme-dark .dash-job-item:hover,.theme-dark .dash-message-item:hover,.theme-dark .dash-sim-item:hover,.theme-dark .dash-agent-item:hover{background:#ffffff0d;border-color:#ffffff1a}.theme-dark .dash-job-item p,.theme-dark .dash-message-item p,.theme-dark .dash-sim-left p,.theme-dark .dash-agent-item small{color:#9ca3af}.theme-dark .dash-job-arrow-btn,.theme-dark .dash-icon-btn{border-color:#ffffff1a;background:#ffffff0d;color:#6b7280}.theme-dark .dash-job-item:hover .dash-job-arrow-btn,.theme-dark .dash-icon-btn:hover{background:#14b8a61a;color:#2dd4bf;border-color:#14b8a64d}.theme-dark .dash-company-chip{background:#1f2937;border:1px solid rgba(255,255,255,.08)}.theme-dark .dash-progress{background:#ffffff1a}@media(max-width:1200px){.dash-grid{grid-template-columns:1fr}}@media(max-width:980px){.dash-root{display:block}.dash-sidebar,.dash-main{width:auto;height:auto;margin:16px}.dash-main{padding-right:0}.dash-split-grid{grid-template-columns:1fr}}@media(min-width:1280px){.dash-ai-xl-only{display:flex}}.ai-agent-main{display:flex;flex-direction:column}.ai-head{margin-bottom:20px}.ai-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em}.ai-head p{margin:0;color:#6b7280;font-size:1.05rem}.theme-dark .ai-head h1,.theme-dark .ai-head p,.theme-dark .ai-jobs-head h3,.theme-dark .ai-agents-section h3,.theme-dark .ai-create-title h2{color:#fff}.theme-dark .ai-head p,.theme-dark .ai-jobs-head span,.theme-dark .ai-agent-chip-left p,.theme-dark .ai-job-title-wrap p,.theme-dark .ai-job-bottom span{color:#9ca3af}.ai-create-card{margin-bottom:26px;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px}.theme-dark .ai-create-card,.theme-dark .ai-agent-chip-card,.theme-dark .ai-job-card{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.ai-create-title{display:flex;align-items:center;gap:10px;margin-bottom:18px}.ai-create-icon{width:40px;height:40px;border-radius:999px;background:#f0fdfa;border:1px solid #ccfbf1;color:#0f766e;display:grid;place-items:center}.ai-create-title h2{margin:0;font-size:1.2rem;font-weight:500}.ai-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.ai-field{display:grid;gap:6px}.ai-field label{margin-left:4px;font-size:.83rem;font-weight:500;color:#374151}.theme-dark .ai-field label,.theme-dark .ai-distance-head label{color:#d1d5db}.ai-field input,.ai-field select{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.82);background:#ffffff80;padding:10px 12px;font-size:.84rem;color:#111827}.theme-dark .ai-field input,.theme-dark .ai-field select,.theme-dark .ai-location-wrap input{background:#ffffff08;border-color:#ffffff14;color:#f3f4f6}.ai-field input:focus,.ai-field select:focus{outline:none;border-color:#2dd4bfe6;box-shadow:0 0 0 4px #14b8a61a}.ai-location-wrap{position:relative}.ai-location-wrap svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#9ca3af}.ai-location-wrap input{padding-left:34px}.ai-distance-field{align-content:center}.ai-distance-head{display:flex;align-items:center;justify-content:space-between}.ai-distance-head span{font-size:.72rem;color:#0f766e;border:1px solid #ccfbf1;border-radius:8px;background:#f0fdfa;padding:3px 8px;font-weight:500}.ai-distance-field input[type=range]{appearance:none;width:100%;height:6px;border-radius:999px;background:#ffffffd9;border:1px solid rgba(255,255,255,.9)}.ai-distance-field input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:#14b8a6;border-radius:50%;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0000001a}.ai-distance-field input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#14b8a6;border-radius:50%;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0000001a}.ai-create-actions{margin-top:20px;display:flex;justify-content:flex-end}.ai-create-actions button{border:0;border-radius:12px;background:#111827;color:#fff;padding:10px 16px;font-size:.84rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.ai-create-actions button:hover{background:#1f2937}.theme-dark .ai-create-actions button{background:#ffffff1a;border:1px solid rgba(255,255,255,.1)}.ai-agents-section{margin-bottom:20px}.ai-agents-section h3{margin:0 0 10px;padding-left:4px;font-size:1.08rem;font-weight:500}.ai-agents-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.ai-agent-chip-card{min-width:280px;background:#ffffffb8;border:1px solid rgba(255,255,255,.82);border-radius:16px;padding:14px;position:relative;overflow:hidden}.ai-agent-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ai-agent-chip-left{display:flex;align-items:center;gap:8px}.ai-agent-mini-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff}.ai-agent-mini-icon.teal{background:#14b8a6}.ai-agent-mini-icon.indigo{background:#6366f1}.ai-agent-chip-left h4{margin:0;font-size:.84rem;font-weight:500}.ai-agent-chip-left p{margin:1px 0 0;font-size:.72rem;color:#6b7280}.ai-toggle{width:40px;height:20px;border-radius:999px;border:1px solid rgba(156,163,175,.3);background:#d1d5db;padding:0;position:relative;cursor:pointer}.ai-toggle span{width:14px;height:14px;border-radius:999px;background:#fff;position:absolute;left:2px;top:2px;transition:transform .2s ease}.ai-toggle.on{background:#14b8a6}.ai-toggle.on span{transform:translate(20px)}.ai-tags{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.ai-tags span{font-size:.68rem;color:#4b5563;border-radius:8px;background:#fff;border:1px solid rgba(229,231,235,.85);padding:3px 8px}.theme-dark .ai-agent-chip-left h4,.theme-dark .ai-job-title-wrap h4{color:#fff}.theme-dark .ai-tags span,.theme-dark .ai-job-tags span{color:#d1d5db;background:#ffffff0d;border-color:#ffffff1a}.ai-jobs-head{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.ai-jobs-head h3{margin:0;display:inline-flex;align-items:center;gap:7px;font-size:1.08rem;font-weight:500}.ai-jobs-head h3 svg{color:#14b8a6}.ai-jobs-head span{color:#6b7280;font-size:.7rem;border-radius:8px;border:1px solid rgba(255,255,255,.8);background:#ffffff80;padding:5px 8px}.ai-jobs-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:10px}.ai-job-card{position:relative;overflow:hidden;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:22px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 24px #00000008;padding:16px;display:flex;flex-direction:column;cursor:pointer}.ai-job-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px #0f172a12}.ai-job-card:focus-visible{outline:2px solid rgba(20,184,166,.45);outline-offset:2px}.ai-job-rail{position:absolute;top:0;right:0;width:8px;height:100%}.ai-job-rail.teal{background:#14b8a633}.ai-job-rail.indigo{background:#6366f133}.ai-job-top{padding-right:10px;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.ai-company-logo,.ai-company-logo-fallback{width:46px;height:46px;border-radius:10px;object-fit:cover;border:1px solid rgba(229,231,235,.85);background:#fff}.ai-company-logo-fallback{display:grid;place-items:center;color:#111827;font-weight:600}.ai-match-col{display:grid;justify-items:end;gap:4px}.ai-match-pill{display:inline-flex;align-items:center;gap:4px;border-radius:8px;border:1px solid #ccfbf1;background:#f0fdfa;color:#0f766e;padding:4px 8px;font-size:.7rem;font-weight:500}.ai-match-col small{font-size:.62rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em}.ai-job-title-wrap{margin-bottom:10px}.ai-job-title-wrap h4{margin:0;font-size:.94rem;font-weight:500;color:#111827}.ai-job-title-wrap p{margin:2px 0 0;color:#6b7280;font-size:.78rem}.ai-job-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ai-job-tags span{font-size:.66rem;color:#4b5563;border:1px solid rgba(229,231,235,.85);background:#ffffffd1;border-radius:8px;padding:4px 8px}.ai-job-bottom{margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.82);display:flex;justify-content:space-between;align-items:center}.theme-dark .ai-job-bottom{border-top-color:#ffffff14}.ai-job-bottom span{font-size:.66rem;color:#9ca3af}.ai-job-bottom button{border:0;background:transparent;color:#111827;font-size:.78rem;font-weight:500;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.ai-job-bottom button:hover{color:#0f766e}.theme-dark .ai-job-bottom button{color:#f3f4f6}.theme-dark .ai-job-bottom button:hover{color:#2dd4bf}@media(max-width:1200px){.ai-form-grid,.ai-jobs-grid{grid-template-columns:1fr 1fr}}@media(max-width:860px){.ai-form-grid{grid-template-columns:1fr}.ai-create-actions{justify-content:stretch}.ai-create-actions button{width:100%;justify-content:center}.ai-jobs-head{flex-direction:column;align-items:flex-start}.ai-jobs-grid{grid-template-columns:1fr}}.career-main{position:relative}.career-status-pill{border-radius:999px;border:1px solid #99f6e4;background:#f0fdfacc;color:#0f766e;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;font-size:.8rem;font-weight:500}.career-head{max-width:760px;margin-bottom:20px}.career-head-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.career-head-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#06b6d4);color:#fff;display:grid;place-items:center}.career-head h1{margin:0;font-size:clamp(2rem,3.4vw,2.6rem);letter-spacing:-.03em;color:#111827}.career-head-kicker{margin:12px 0 6px;color:#0f766e;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.career-head-desc{margin:0;color:#6b7280;line-height:1.65}.career-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:18px;min-height:calc(100vh - 250px);padding-bottom:18px}.career-agents-col{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 24px #00000008;overflow:hidden;display:flex;flex-direction:column}.career-agents-head{padding:16px;border-bottom:1px solid rgba(229,231,235,.7);background:#ffffff6b}.career-agents-head h2{margin:0 0 10px;color:#111827;font-size:.9rem}.career-agents-head button{width:100%;border:0;border-radius:12px;background:linear-gradient(to right,#14b8a6,#06b6d4);color:#fff;padding:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:.82rem;font-weight:500;cursor:pointer;box-shadow:0 4px 14px #14b8a663}.career-agents-list{flex:1;overflow-y:auto;padding:10px;display:grid;align-content:start;gap:4px}.career-agents-list button{width:100%;text-align:left;border:0;border-radius:10px;background:transparent;color:#4b5563;padding:10px 11px;font-size:.82rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.career-agents-list button:hover{background:#f9fafbe6;color:#111827}.career-agents-list button.active{border:1px solid #99f6e4;background:#f0fdfa;color:#0f766e;font-weight:500}.career-agents-list button.active i{width:6px;height:6px;border-radius:999px;background:#14b8a6}.career-reco-col{min-width:0;display:flex;flex-direction:column}.career-reco-head{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.career-reco-head h2{margin:0;color:#111827;font-size:1.03rem;font-weight:500;display:flex;align-items:center;gap:7px}.career-reco-head h2 span{color:#0f766e;border:1px solid #99f6e4;background:#f0fdfa;border-radius:6px;padding:2px 8px;font-size:.84rem}.career-reco-head button{border:0;background:transparent;color:#6b7280;font-size:.75rem;font-weight:500;display:inline-flex;align-items:center;gap:5px;cursor:pointer}.career-cards{flex:1;overflow-y:auto;padding-right:6px}.career-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start;grid-auto-rows:min-content}.career-card{position:relative;overflow:hidden;border-radius:14px;border:1px solid rgba(153,246,228,.5);background:linear-gradient(135deg,#fff,#f0fdfa73);padding:12px;transition:border-color .4s ease,box-shadow .4s ease}.career-card:hover{border-color:#5eead4;box-shadow:0 8px 20px #14b8a614}.career-card-glow{position:absolute;top:-24px;right:-24px;width:100px;height:100px;border-radius:999px;background:linear-gradient(to bottom right,#2dd4bf2e,#22d3ee29);filter:blur(22px);transition:transform .5s ease}.career-card:hover .career-card-glow{transform:scale(1.5)}.career-card-wand{position:absolute;top:11px;right:11px;color:#5eead4}.career-card-content{position:relative;z-index:1}.career-card-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;margin-bottom:10px}.career-card-icon.blue{background:#eff6ff;color:#3b82f6}.career-card-icon.indigo{background:#eef2ff;color:#6366f1}.career-card-icon.emerald{background:#ecfdf5;color:#10b981}.career-card-icon.orange{background:#fff7ed;color:#f97316}.career-card-icon.rose{background:#fff1f2;color:#f43f5e}.career-card-icon.slate{background:#f1f5f9;color:#475569}.career-card h3{margin:0 0 6px;color:#111827;font-size:.8rem;font-weight:500;line-height:1.4}.career-card p{margin:0;font-size:.7rem;line-height:1.4;display:inline-flex;align-items:flex-start;gap:5px}.career-card p.tone.strong{color:#0f766e}.career-card p.tone.neutral{color:#4f46e5}.career-card p.tone.soft{color:#6b7280}.theme-dark .career-status-pill{border-color:#14b8a659;background:#14b8a61f;color:#2dd4bf}.theme-dark .career-head h1,.theme-dark .career-agents-head h2,.theme-dark .career-reco-head h2,.theme-dark .career-card h3{color:#fff}.theme-dark .career-head-desc,.theme-dark .career-agents-list button,.theme-dark .career-reco-head button,.theme-dark .career-card p.tone.soft,.theme-dark .career-head-kicker{color:#9ca3af}.theme-dark .career-head-icon,.theme-dark .career-agents-col,.theme-dark .career-card{border-color:#ffffff14}.theme-dark .career-agents-col,.theme-dark .career-card{background:#ffffff05}.theme-dark .career-agents-head{border-color:#ffffff14;background:#ffffff08}.theme-dark .career-agents-list button:hover{background:#ffffff0f;color:#f3f4f6}.theme-dark .career-agents-list button.active,.theme-dark .career-reco-head h2 span{border-color:#14b8a659;background:#14b8a61f;color:#2dd4bf}.theme-dark .career-card-glow{background:linear-gradient(to bottom right,#2dd4bf26,#6366f124)}.theme-dark .career-card-wand{color:#2dd4bf}@media(max-width:1180px){.career-grid{grid-template-columns:1fr;min-height:auto}.career-agents-col{max-height:280px}.career-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.career-cards{grid-template-columns:1fr}}.cv-head{margin-bottom:22px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.cv-design-toggle{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;color:#111827;cursor:pointer;transition:background-color .2s ease;font-size:.8rem;font-weight:500}.cv-design-toggle:hover{background:#ffffffd6}.cv-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em}.cv-head p{margin:0;color:#6b7280;font-size:1.1rem}.cv-edit-btn{border:0;border-radius:12px;background:#111827;color:#fff;padding:10px 16px;font-size:.88rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 6px 14px #0f172a29}.cv-edit-btn:hover{background:#1f2937}.cv-layout{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding-bottom:24px}.cv-left,.cv-right{display:grid;gap:24px;align-content:start}.cv-card{background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px}.cv-avatar-wrap{display:flex;justify-content:center;margin-bottom:16px}.cv-avatar{width:96px;height:96px;border-radius:22px;object-fit:cover;border:4px solid rgba(255,255,255,.85);box-shadow:0 8px 16px #0f172a1f}.cv-avatar-fallback{background:linear-gradient(135deg,#0f766e,#06b6d4);color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:600}.cv-section-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}.cv-section-head svg{color:#0f766e}.cv-section-head h2{margin:0;font-size:1.08rem;font-weight:500;letter-spacing:-.01em}.cv-personal-list{display:grid;gap:10px}.cv-personal-list div{display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid rgba(255,255,255,.62);padding-bottom:8px}.cv-personal-list div:last-child{border-bottom:0;padding-bottom:0}.cv-personal-list span{color:#6b7280;font-size:.84rem}.cv-personal-list strong{color:#111827;font-size:.84rem;font-weight:500;text-align:right}.cv-chip-wrap{display:flex;flex-wrap:wrap;gap:8px}.cv-chip{display:inline-flex;align-items:center;padding:6px 12px;border-radius:10px;background:#fff;border:1px solid rgba(229,231,235,.85);box-shadow:0 1px 3px #0f172a0f;color:#374151;font-size:.74rem;font-weight:500}.cv-language-list{display:grid;gap:10px}.cv-language-list div{display:flex;justify-content:space-between;align-items:center}.cv-language-list strong{font-size:.86rem;font-weight:500;color:#111827}.cv-language-list span{font-size:.72rem;color:#0f766e;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:8px;padding:4px 10px}.cv-mini-grid{display:grid;gap:24px}.cv-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.cv-list li{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;color:#374151}.cv-list li svg{color:#14b8a6}.cv-timeline-head{display:flex;align-items:center;gap:10px;margin-bottom:18px}.cv-timeline-icon{width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.85);background:#fffc;display:grid;place-items:center;box-shadow:0 2px 8px #0f172a14}.cv-timeline-icon svg{color:#0f766e}.cv-timeline-head h2{margin:0;font-size:1.45rem;letter-spacing:-.01em;font-weight:500}.cv-timeline{position:relative;display:grid;gap:18px}.cv-timeline:before{content:"";position:absolute;left:19px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#5eead4,#a5f3fc,transparent)}.cv-timeline-item{display:flex;align-items:flex-start;gap:10px;position:relative}.cv-timeline-dot{width:40px;height:40px;border-radius:999px;border:4px solid #ecf0f0;background:#fff;display:grid;place-items:center;box-shadow:0 2px 8px #0f172a14;z-index:2;flex-shrink:0}.cv-timeline-dot svg{color:#0f766e}.cv-timeline-card{width:calc(100% - 50px);background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:18px;transition:.2s ease}.cv-timeline-card:hover{background:#ffffffd1;box-shadow:0 10px 24px #0f172a14}.cv-timeline-card h3{margin:0 0 8px;font-size:1rem;font-weight:500;color:#111827}.cv-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.cv-meta strong{color:#0f766e;font-size:.84rem;font-weight:500}.cv-meta span{color:#6b7280;font-size:.72rem;border:1px solid #e5e7eb;background:#fff;border-radius:6px;padding:2px 8px}.cv-timeline-card p{margin:0;color:#4b5563;font-size:.84rem;line-height:1.55}.cv-divider{height:1px;background:#fff9}.cv-design-reference .cv-card{border-radius:28px;box-shadow:0 10px 28px #0f172a0d}.cv-design-reference .cv-timeline-head h2{font-size:1.55rem}.theme-dark .cv-head h1,.theme-dark .cv-head p,.theme-dark .cv-timeline-head h2,.theme-dark .cv-section-head h2,.theme-dark .cv-personal-list strong,.theme-dark .cv-language-list strong,.theme-dark .cv-timeline-card h3{color:#fff}.theme-dark .cv-head p,.theme-dark .cv-personal-list span,.theme-dark .cv-list li,.theme-dark .cv-meta span,.theme-dark .cv-timeline-card p{color:#9ca3af}.theme-dark .cv-design-toggle{border-color:#ffffff14;background:#ffffff08;color:#f3f4f6}.theme-dark .cv-design-toggle:hover{background:#ffffff14}.theme-dark .cv-card,.theme-dark .cv-timeline-card{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.theme-dark .cv-chip{background:#ffffff0d;border-color:#ffffff1a;color:#d1d5db}.theme-dark .cv-language-list span{color:#2dd4bf;background:#14b8a61a;border-color:#14b8a64d}.theme-dark .cv-timeline:before{background:linear-gradient(to bottom,rgba(20,184,166,.5),rgba(6,182,212,.3),transparent)}.theme-dark .cv-timeline-dot{background:#111827;border-color:#0a0a0a}.theme-dark .cv-meta strong{color:#2dd4bf}.theme-dark .cv-divider{background:#ffffff14}@media(max-width:1200px){.cv-layout{grid-template-columns:1fr}.cv-head{flex-direction:column;align-items:flex-start}}@media(min-width:980px){.cv-design-reference .cv-timeline:before{left:50%;transform:translate(-50%);background:linear-gradient(to bottom,#86efac,#67e8f9,transparent)}.cv-design-reference .cv-timeline-item{justify-content:space-between}.cv-design-reference .cv-timeline-item:nth-child(odd){flex-direction:row-reverse}.cv-design-reference .cv-timeline-dot{position:absolute;left:50%;transform:translate(-50%)}.cv-design-reference .cv-timeline-card{width:calc(50% - 2.5rem);padding:24px;border-radius:28px}}@media(max-width:860px){.cv-design-toggle span{display:none}}.job-detail-back-btn{border:1px solid rgba(255,255,255,.82);background:#ffffff9e;border-radius:999px;padding:8px 13px;display:inline-flex;align-items:center;gap:8px;color:#4b5563;cursor:pointer;font-size:.8rem;font-weight:500}.job-detail-back-btn:hover{background:#ffffffd6;color:#111827}.job-detail-back-row{margin-bottom:16px}.job-detail-header{margin-bottom:24px;display:flex;align-items:flex-start;gap:18px}.job-detail-logo-wrap{width:80px;height:80px;border-radius:18px;overflow:hidden;flex-shrink:0}.job-detail-logo-image,.job-detail-logo-fallback{width:100%;height:100%;object-fit:cover;border-radius:18px;border:1px solid rgba(229,231,235,.9)}.job-detail-logo-fallback{background:#fff;display:grid;place-items:center;color:#111827;font-size:1.9rem;font-weight:600}.job-detail-heading h1{margin:0 0 10px;font-size:clamp(2rem,3.8vw,2.8rem);letter-spacing:-.03em;color:#111827}.job-detail-meta{display:flex;flex-wrap:wrap;gap:10px 14px}.job-detail-meta span{display:inline-flex;align-items:center;gap:6px;color:#6b7280;font-size:.86rem}.job-detail-grid{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(0,.65fr);gap:24px;padding-bottom:20px}.job-detail-main-card{display:grid;gap:20px}.job-detail-section h2,.job-detail-section h3{margin:0 0 10px;color:#111827;font-weight:500;letter-spacing:-.01em}.job-detail-section h2{font-size:1.2rem}.job-detail-section h3{font-size:1rem}.job-detail-section p{margin:0;color:#4b5563;line-height:1.65;font-size:.95rem}.job-detail-description-list{display:grid;gap:10px}.job-detail-rich-html{color:#4b5563;line-height:1.65;font-size:.95rem}.job-detail-rich-html p,.job-detail-rich-html ul,.job-detail-rich-html ol{margin:0 0 12px}.job-detail-rich-html ul,.job-detail-rich-html ol{padding-left:20px}.job-detail-rich-html li{margin-bottom:6px}.job-detail-rich-html a{color:#0f766e}.job-detail-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.job-detail-info-grid>div{border:1px solid rgba(229,231,235,.82);background:#ffffffa3;border-radius:12px;padding:11px 12px;display:grid;gap:4px}.job-detail-info-grid span{color:#6b7280;font-size:.76rem}.job-detail-info-grid strong{color:#111827;font-size:.86rem;font-weight:600}.job-detail-side-col{display:grid;gap:16px;align-content:start}.job-detail-actions-card{display:grid;gap:10px;position:static}.job-detail-actions-card h2{margin:0 0 4px;color:#111827;font-size:1.03rem;font-weight:500}.job-detail-action-primary,.job-detail-action-secondary{border-radius:14px;border:1px solid;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;font-size:.86rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.job-detail-action-primary{color:#0f766e;border-color:#99f6e4;background:linear-gradient(to right,#ecfeff,#f0fdfa)}.job-detail-action-primary:hover{background:linear-gradient(to right,#cffafe,#ccfbf1)}.job-detail-action-secondary{color:#3730a3;border-color:#c7d2fe;background:linear-gradient(to right,#eef2ff,#f5f3ff)}.job-detail-action-secondary:hover{background:linear-gradient(to right,#e0e7ff,#ede9fe)}.job-detail-action-primary span,.job-detail-action-secondary span{display:inline-flex;align-items:center;gap:8px}.job-detail-action-divider{height:1px;background:#e5e7ebd6;margin:3px 0}.job-detail-text-action{border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;color:#4b5563;border-radius:10px;padding:9px 10px;font-size:.84rem;font-weight:500;cursor:pointer;text-decoration:none}.job-detail-text-action:hover{background:#f9fafbeb;color:#111827}.job-detail-text-action:disabled{opacity:.7;cursor:not-allowed}.job-detail-text-action.link{justify-content:flex-start}.job-detail-text-action.success:hover{background:#ecfdf5;color:#047857}.job-detail-text-action.success.is-done{color:#059669}.job-detail-company-card h3{margin:0 0 12px;color:#111827;font-size:1rem;font-weight:500}.job-detail-company-list{display:grid;gap:10px}.job-detail-company-list>div{border:1px solid rgba(229,231,235,.82);background:#ffffffa3;border-radius:12px;padding:10px 12px;display:grid;gap:4px}.job-detail-company-list span{color:#6b7280;font-size:.74rem}.job-detail-company-list strong{color:#111827;font-size:.86rem}.theme-dark .job-detail-back-btn{border-color:#ffffff14;background:#ffffff08;color:#d1d5db}.theme-dark .job-detail-back-btn:hover{background:#ffffff14;color:#fff}.theme-dark .job-detail-heading h1,.theme-dark .job-detail-section h2,.theme-dark .job-detail-section h3,.theme-dark .job-detail-actions-card h2,.theme-dark .job-detail-company-card h3,.theme-dark .job-detail-info-grid strong,.theme-dark .job-detail-company-list strong{color:#fff}.theme-dark .job-detail-meta span,.theme-dark .job-detail-section p,.theme-dark .job-detail-rich-html,.theme-dark .job-detail-info-grid span,.theme-dark .job-detail-company-list span,.theme-dark .job-detail-text-action{color:#9ca3af}.theme-dark .job-detail-rich-html a{color:#2dd4bf}.theme-dark .job-detail-info-grid>div,.theme-dark .job-detail-company-list>div{border-color:#ffffff14;background:#ffffff08}.theme-dark .job-detail-action-divider{background:#ffffff14}.theme-dark .job-detail-text-action:hover{background:#ffffff14;color:#f3f4f6}@media(max-width:1180px){.job-detail-grid{grid-template-columns:1fr}}@media(max-width:760px){.job-detail-header{flex-direction:column;gap:12px}.job-detail-logo-wrap{width:68px;height:68px}.job-detail-info-grid{grid-template-columns:1fr}}.jobs-page-head{margin-bottom:28px}.jobs-page-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em;color:#111827}.jobs-page-head p{margin:0;color:#6b7280;font-size:1.1rem}.theme-dark .jobs-page-head h1,.theme-dark .jobs-page-head p,.theme-dark .jobs-content-head h2{color:#fff}.theme-dark .jobs-page-head p,.theme-dark .jobs-content-head span,.theme-dark .jobs-card-title p,.theme-dark .jobs-card-description,.theme-dark .jobs-card-distance{color:#9ca3af}.jobs-layout-toggle{border:1px solid rgba(255,255,255,.8);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;color:#111827;cursor:pointer;transition:background-color .2s ease;font-size:.8rem;font-weight:500}.jobs-layout-toggle:hover{background:#ffffffd6}.theme-dark .jobs-layout-toggle{border-color:#ffffff14;background:#ffffff08;color:#f3f4f6}.theme-dark .jobs-layout-toggle:hover{background:#ffffff14}.jobs-grid{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding-bottom:24px}.jobs-filter{position:sticky;top:0;height:fit-content}.theme-dark .jobs-filter,.theme-dark .jobs-card,.theme-dark .jobs-top-filters{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.jobs-filter h2{margin:0 0 24px;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.jobs-filter h2 svg{color:#0f766e}.theme-dark .jobs-filter h2,.theme-dark .jobs-top-filter-title h2,.theme-dark .jobs-card-title h3{color:#fff}.jobs-filter-block{margin-bottom:24px}.jobs-filter-block>label{display:block;margin-bottom:8px;font-size:.9rem;font-weight:500;color:#374151}.theme-dark .jobs-filter-block>label,.theme-dark .jobs-range-head label,.theme-dark .jobs-hours-row>div>label{color:#d1d5db}.jobs-filter-block>p{margin:0 0 12px;font-size:.74rem;color:#6b7280}.jobs-search-wrap{position:relative}.jobs-search-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9ca3af}.jobs-search-wrap input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.8);background:#ffffff80;padding:10px 14px 10px 40px;font-size:.87rem;color:#111827;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.theme-dark .jobs-search-wrap input,.theme-dark .jobs-title-input-wrap,.theme-dark .jobs-title-input-wrap input,.theme-dark .jobs-radio-btn,.theme-dark .jobs-hour-btn{background:#ffffff08;border-color:#ffffff14;color:#d1d5db}.theme-dark .jobs-search-wrap input::placeholder,.theme-dark .jobs-title-input-wrap input::placeholder{color:#6b7280}.jobs-search-wrap input::placeholder{color:#9ca3af}.jobs-search-wrap input:focus{outline:none;border-color:#2dd4bfe6;background:#fff;box-shadow:0 0 0 4px #14b8a61a}.jobs-separator{height:1px;background:#fff9;margin-bottom:24px}.jobs-radio-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.jobs-radio-btn{border:1px solid rgba(255,255,255,.55);background:#ffffff80;color:#6b7280;font-size:.84rem;font-weight:500;border-radius:12px;padding:10px 12px;cursor:pointer;transition:.2s ease}.jobs-radio-btn:hover{background:#ffffffd1}.jobs-radio-btn.active{color:#0f766e;background:#f0fdfa;border-color:#bae6fd}.theme-dark .jobs-radio-btn.active{color:#2dd4bf;background:#14b8a61a;border-color:#14b8a64d}.jobs-range-block{margin-bottom:28px}.jobs-range-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.jobs-range-head span{font-size:.84rem;font-weight:500;color:#0f766e;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:6px;padding:2px 8px}.jobs-filter input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent}.jobs-filter input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:20px;width:20px;border-radius:999px;background:#fff;border:2px solid #14b8a6;cursor:pointer;margin-top:-8px;box-shadow:0 2px 6px #0000001a}.jobs-filter input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;border-radius:2px;background:#14b8a633}.jobs-filter input[type=range]:focus{outline:none}.jobs-range-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.74rem;color:#9ca3af}.jobs-hours-grid{display:flex;flex-wrap:wrap;gap:8px}.jobs-hour-btn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.55);background:#ffffff80;color:#6b7280;font-size:.84rem;font-weight:500;cursor:pointer;transition:.2s ease}.jobs-hour-btn:hover{background:#ffffffd1}.jobs-hour-btn.active{background:#14b8a6;color:#fff;border-color:#0f766e}.theme-dark .jobs-hour-btn.active{background:#14b8a6;border-color:#14b8a680}.jobs-apply-btn{width:100%;margin-top:8px;border:0;border-radius:12px;background:#111827;color:#fff;padding:12px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s ease;box-shadow:0 6px 14px #0f172a29}.theme-dark .jobs-apply-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.1)}.jobs-apply-btn:hover{background:#1f2937}.jobs-content-head{margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:8px}.jobs-content-head h2{margin:0;font-size:1.25rem;font-weight:500;letter-spacing:-.01em;color:#111827}.jobs-content-head span{font-size:.9rem;color:#6b7280}.jobs-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px}.jobs-card{background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;padding:24px;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;min-height:100%;cursor:pointer}.jobs-card:hover{background:#fffc;box-shadow:0 10px 24px #0f172a14;transform:translateY(-1px)}.jobs-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.jobs-card-logo{width:56px;height:56px;border-radius:16px;background:#111827;color:#fff;font-size:1.4rem;font-weight:500;display:grid;place-items:center;box-shadow:0 4px 10px #0f172a1f}.jobs-card-logo-image-wrap{background:#fff;border:1px solid rgba(229,231,235,.85);box-shadow:0 4px 10px #0f172a14;overflow:hidden}.jobs-card-logo-image{width:100%;height:100%;object-fit:cover}.jobs-card-title{margin-bottom:8px}.jobs-card-title h3{margin:0;font-size:1.1rem;font-weight:500;letter-spacing:-.01em;color:#111827;transition:color .2s ease}.theme-dark .jobs-card-title h3{color:#fff}.jobs-card:hover .jobs-card-title h3{color:#0f766e}.jobs-card-title p{margin:2px 0 0;font-size:.86rem;color:#6b7280}.jobs-card-description{margin:0 0 22px;color:#4b5563;font-size:.86rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.jobs-card-bottom{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.65);display:flex;align-items:center;justify-content:space-between}.theme-dark .jobs-card-bottom{border-top-color:#ffffff14}.jobs-card-distance{display:inline-flex;align-items:center;gap:6px;color:#6b7280;font-size:.78rem}.jobs-card-distance svg{color:#0f766e}.jobs-card-arrow{width:32px;height:32px;border-radius:999px;border:1px solid #e5e7eb;color:#9ca3af;background:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s ease}.theme-dark .jobs-card-arrow{background:#ffffff0d;border-color:#ffffff1a;color:#6b7280}.jobs-card:hover .jobs-card-arrow{background:#f0fdfa;color:#0f766e;border-color:#99f6e4}.jobs-load-more-wrap{margin-top:28px;display:flex;justify-content:center}.jobs-load-more{border:1px solid #d1d5db;border-radius:12px;background:#ffffff59;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#4b5563;padding:10px 24px;font-size:.86rem;font-weight:500;cursor:pointer;transition:.2s ease}.jobs-load-more:hover{background:#fff9;color:#111827;border-color:#9ca3af}.jobs-top-layout{display:grid;gap:24px;padding-bottom:24px}.jobs-top-filters{padding:24px}.jobs-top-filter-title{display:flex;align-items:center;gap:8px;margin-bottom:20px}.jobs-top-filter-title h2{margin:0;font-size:1.1rem;font-weight:500;letter-spacing:-.01em}.jobs-top-filter-title svg{color:#0f766e}.jobs-top-controls{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:20px;align-items:end;margin-bottom:20px}.jobs-filter-block.no-margin{margin-bottom:0}.jobs-top-range{padding-bottom:4px}.jobs-top-apply{margin-top:0;min-width:180px}.jobs-title-picker{position:relative}.jobs-title-input-wrap{display:flex;flex-wrap:wrap;gap:8px;min-height:46px;border-radius:12px;border:1px solid rgba(255,255,255,.8);background:#ffffff80;padding:6px;align-items:center}.jobs-title-input-wrap:focus-within{border-color:#2dd4bfe6;background:#fff;box-shadow:0 0 0 4px #14b8a61a}.jobs-title-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:10px;background:#fff;border:1px solid rgba(229,231,235,.8);box-shadow:0 1px 3px #0f172a0f;font-size:.72rem;font-weight:500;color:#374151}.jobs-title-chip button{border:0;background:transparent;color:#9ca3af;display:grid;place-items:center;cursor:pointer;padding:0}.jobs-title-chip button:hover{color:#111827}.jobs-title-input-wrap input{flex:1;min-width:180px;border:0;background:transparent;outline:none;font-size:.86rem;color:#374151;padding:6px 8px}.jobs-title-input-wrap input::placeholder{color:#9ca3af}.jobs-title-suggestions{position:absolute;top:calc(100% + 8px);left:0;width:min(100%,340px);background:#ffffffe6;border:1px solid rgba(255,255,255,.8);border-radius:16px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 10px 36px #0000001a;padding:8px;display:grid;gap:4px;opacity:0;visibility:hidden;transform:scale(.98);transform-origin:top left;transition:.18s ease;z-index:40}.jobs-title-picker:focus-within .jobs-title-suggestions{opacity:1;visibility:visible;transform:scale(1)}.jobs-title-option{border:0;border-radius:10px;background:transparent;color:#4b5563;font-size:.84rem;font-weight:500;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.jobs-title-option:hover{background:#ffffffd9;color:#111827}.jobs-title-option.active{color:#0f766e;background:#14b8a61a}.jobs-title-option.active svg{color:#14b8a6}.jobs-separator.top-margin{margin:24px 0}.jobs-hours-row{display:flex;justify-content:space-between;gap:16px;align-items:center}.jobs-hours-row>div>label{display:block;margin-bottom:3px;font-size:.9rem;font-weight:500;color:#374151}.jobs-hours-row>div>p{margin:0;font-size:.74rem;color:#6b7280}.jobs-cards.jobs-cards-top{grid-template-columns:1fr 1fr 1fr}@media(max-width:1200px){.jobs-grid{grid-template-columns:1fr}.jobs-filter{position:static}.jobs-top-controls{grid-template-columns:1fr 1fr}.jobs-top-apply{width:100%}.jobs-hours-row{flex-direction:column;align-items:flex-start}.jobs-cards.jobs-cards-top{grid-template-columns:1fr 1fr}}@media(max-width:860px){.jobs-cards,.jobs-top-controls,.jobs-cards.jobs-cards-top{grid-template-columns:1fr}.jobs-layout-toggle span{display:none}}.msg-main{display:flex;flex-direction:column}.msg-head{margin-bottom:16px;display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.msg-head h1{margin:0 0 8px;font-size:clamp(2rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em}.msg-head p{margin:0;color:#6b7280;font-size:1.05rem}.theme-dark .msg-head h1,.theme-dark .msg-head p{color:#fff}.theme-dark .msg-head p{color:#9ca3af}.msg-mark-btn{border:1px solid rgba(229,231,235,.85);background:#fff;color:#374151;border-radius:12px;padding:10px 16px;font-size:.84rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 2px 8px #0f172a0f}.msg-mark-btn:hover{background:#f9fafb}.theme-dark .msg-mark-btn{border-color:#ffffff1a;background:#ffffff0d;color:#d1d5db}.theme-dark .msg-mark-btn:hover{background:#ffffff14}.msg-layout{flex:1;min-height:500px;margin-bottom:4px;display:flex;gap:24px}.msg-threads{width:33.333%;min-width:330px;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;display:flex;flex-direction:column;overflow:hidden}.theme-dark .msg-threads,.theme-dark .msg-chat{background:#ffffff05;border-color:#ffffff0d;box-shadow:0 4px 20px #0000001a}.msg-threads-head{padding:16px;border-bottom:1px solid rgba(255,255,255,.62)}.msg-search-wrap{position:relative;margin-bottom:10px}.msg-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.msg-search-wrap input{width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.82);background:#ffffff80;padding:10px 12px 10px 38px;font-size:.86rem;color:#111827}.theme-dark .msg-search-wrap input{background:#ffffff08;border-color:#ffffff14;color:#f3f4f6}.msg-search-wrap input:focus{outline:none;border-color:#2dd4bfe6;box-shadow:0 0 0 4px #14b8a61a}.msg-filter-row{display:flex;gap:8px}.msg-filter-row button{border:1px solid rgba(255,255,255,.75);background:#ffffffa6;color:#4b5563;border-radius:10px;padding:6px 12px;font-size:.72rem;font-weight:500;cursor:pointer}.msg-filter-row button.active{background:#f0fdfa;border-color:#ccfbf1;color:#0f766e}.theme-dark .msg-filter-row button{background:#ffffff0d;border-color:#ffffff14;color:#9ca3af}.theme-dark .msg-filter-row button.active{background:#14b8a61a;border-color:#14b8a64d;color:#2dd4bf}.msg-thread-list{padding:10px;overflow-y:auto;display:grid;gap:6px}.msg-thread-item{width:100%;border:1px solid transparent;background:transparent;border-radius:16px;display:flex;align-items:flex-start;gap:10px;padding:10px;text-align:left;cursor:pointer;position:relative}.msg-thread-item:hover{background:#ffffff6b;border-color:#ffffff9e}.theme-dark .msg-thread-item:hover{background:#ffffff0d;border-color:#ffffff1a}.msg-thread-item.active{background:#ffffffd1;border-color:#fff;box-shadow:0 2px 8px #0f172a0d}.theme-dark .msg-thread-item.active{background:#ffffff1a;border-color:#ffffff1f}.msg-thread-item.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:999px;background:#14b8a6}.msg-thread-avatar-wrap{width:44px;height:44px;position:relative;flex-shrink:0}.msg-thread-avatar,.msg-thread-avatar-fallback{width:44px;height:44px;border-radius:999px;object-fit:cover}.msg-thread-avatar-fallback{background:linear-gradient(135deg,#c7d2fe,#e9d5ff);color:#4338ca;display:grid;place-items:center;font-size:.84rem;font-weight:600}.msg-thread-online{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:999px;border:2px solid #fff;background:#22c55e}.msg-thread-content{min-width:0;flex:1}.msg-thread-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:2px}.msg-thread-row h3{margin:0;font-size:.86rem;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-dark .msg-thread-row h3,.theme-dark .msg-chat-head h2{color:#fff}.msg-thread-row span{font-size:.72rem;color:#9ca3af;flex-shrink:0}.msg-thread-content p{margin:0;color:#6b7280;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-dark .msg-thread-content p,.theme-dark .msg-thread-content small,.theme-dark .msg-thread-row span{color:#9ca3af}.msg-thread-content p.unread{color:#1f2937;font-weight:500}.msg-thread-content small{margin-top:2px;display:inline-block;color:#9ca3af;font-size:.72rem}.msg-thread-unread{width:20px;height:20px;border-radius:999px;background:#14b8a6;color:#fff;display:grid;place-items:center;font-size:.64rem;font-weight:600;flex-shrink:0;margin-top:2px}.msg-chat{width:66.667%;background:#fff9;border:1px solid rgba(255,255,255,.8);border-radius:24px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 30px #00000008;display:flex;flex-direction:column;overflow:hidden}.msg-chat-head{padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.62);background:#ffffff4d;display:flex;justify-content:space-between;align-items:center}.theme-dark .msg-chat-head{background:#ffffff08;border-bottom-color:#ffffff14}.msg-chat-head h2{margin:0;font-size:1rem;font-weight:500;color:#111827}.msg-chat-company{display:flex;align-items:center;gap:12px}.msg-chat-company p{margin:2px 0 0;color:#0f766e;font-size:.74rem;font-weight:500}.theme-dark .msg-chat-company p{color:#2dd4bf}.msg-chat-avatar,.msg-chat-avatar-fallback{width:40px;height:40px;border-radius:999px;object-fit:cover}.msg-chat-avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#c7d2fe,#e9d5ff);color:#4338ca;font-size:.84rem;font-weight:600}.msg-chat-actions{display:flex;gap:8px}.msg-chat-actions button{width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.82);background:#ffffff8c;color:#4b5563;display:grid;place-items:center;cursor:pointer}.theme-dark .msg-chat-actions button{background:#ffffff0d;border-color:#ffffff1a;color:#9ca3af}.msg-chat-actions button:hover{background:#fff}.msg-chat-body{flex:1;overflow-y:auto;padding:20px;display:grid;align-content:start;gap:10px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.2))}.theme-dark .msg-chat-body{background:linear-gradient(to bottom,transparent,rgba(255,255,255,.03))}.msg-day-sep{display:table;width:fit-content;margin:0 auto;font-size:.72rem;color:#9ca3af;border:1px solid rgba(255,255,255,.68);background:#ffffff85;padding:3px 10px;border-radius:999px}.theme-dark .msg-day-sep{color:#9ca3af;border-color:#ffffff1a;background:#ffffff0d}.msg-bubble-row{display:flex;gap:8px;max-width:75%}.msg-bubble-row.mine{margin-left:auto;flex-direction:row-reverse}.msg-mini-avatar,.msg-mini-avatar-fallback{width:30px;height:30px;border-radius:999px;object-fit:cover;margin-top:auto}.msg-mini-avatar-fallback{display:grid;place-items:center;background:#e5e7eb;color:#374151;font-size:.7rem;font-weight:600}.msg-bubble-wrap{display:grid;gap:3px}.msg-time{color:#9ca3af;font-size:.68rem}.msg-bubble{border-radius:16px 16px 16px 6px;background:#fff;border:1px solid rgba(255,255,255,.85);color:#374151;padding:10px 12px;font-size:.84rem;line-height:1.45;box-shadow:0 2px 8px #0f172a0a}.theme-dark .msg-bubble{background:#ffffff14;border-color:#ffffff1a;color:#e5e7eb}.msg-bubble.mine{background:#14b8a6;border-color:#14b8a6;color:#fff;border-bottom-left-radius:16px;border-bottom-right-radius:6px}.msg-input-area{padding:12px;border-top:1px solid rgba(255,255,255,.62);background:#ffffff59}.theme-dark .msg-input-area{border-top-color:#ffffff14;background:#ffffff08}.msg-input-wrap{border-radius:16px;border:1px solid rgba(255,255,255,.85);background:#fffc;box-shadow:0 2px 8px #0f172a0d;padding:6px;display:flex;align-items:flex-end;gap:6px}.theme-dark .msg-input-wrap{background:#ffffff0d;border-color:#ffffff1a}.theme-dark .msg-input-wrap textarea{color:#fff}.msg-input-wrap>button{width:34px;height:34px;border:0;background:transparent;color:#9ca3af;border-radius:10px;display:grid;place-items:center;cursor:pointer}.msg-input-wrap>button:hover{color:#0f766e;background:#f0fdfa}.msg-input-wrap textarea{flex:1;border:0;background:transparent;resize:none;outline:none;padding:8px;font-size:.84rem;color:#111827;max-height:120px}.msg-send-btn{min-width:84px;width:auto;padding:0 12px;border-radius:10px;border:0;background:#111827;color:#fff;font-size:.82rem;font-weight:500;display:inline-flex;align-items:center;gap:6px;justify-content:center}.msg-send-btn:hover{background:#1f2937}@media(max-width:1200px){.msg-layout{flex-direction:column;min-height:0}.msg-threads,.msg-chat{width:100%;min-width:0}.msg-threads{height:360px}.msg-chat{height:500px}}@media(max-width:860px){.msg-head{flex-direction:column;align-items:flex-start}.msg-mark-btn{width:100%;justify-content:center}.msg-bubble-row{max-width:88%}}.sim-main{position:relative}.sim-leave-btn{border:1px solid rgba(229,231,235,.82);background:#ffffff9e;border-radius:999px;padding:8px 12px;display:inline-flex;align-items:center;gap:8px;color:#6b7280;font-size:.8rem;font-weight:500;cursor:pointer}.sim-leave-btn:hover{color:#111827;background:#ffffffd9}.sim-wrap{max-width:1160px;margin:0 auto;padding-bottom:30px}.sim-live-wrap{padding-bottom:24px}.sim-live-head{margin-bottom:22px}.sim-live-head h1{margin:0 0 8px;font-size:clamp(1.9rem,3vw,2.3rem);letter-spacing:-.03em;color:#111827}.sim-live-head p{margin:0;color:#6b7280}.sim-live-grid{min-height:calc(100vh - 260px);display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:22px}.sim-live-chat-card{border-radius:24px;border:1px solid rgba(229,231,235,.82);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 24px #0000000a;display:flex;flex-direction:column;overflow:hidden}.sim-live-chat-head{padding:14px 18px;border-bottom:1px solid rgba(229,231,235,.7);background:#ffffff6b;display:flex;align-items:center;justify-content:space-between;gap:10px}.sim-live-ai-row{display:flex;align-items:center;gap:10px}.sim-live-ai-avatar{width:40px;height:40px;border-radius:999px;border:1px solid #c7d2fe;background:#eef2ff;color:#4f46e5;display:grid;place-items:center}.sim-live-ai-row h3{margin:0 0 2px;color:#111827;font-size:.86rem;font-weight:500}.sim-live-ai-row p{margin:0;color:#6366f1;font-size:.74rem;display:inline-flex;align-items:center;gap:4px}.sim-live-ai-row p svg{animation:sim-pulse 1.8s ease-in-out infinite}.sim-live-more-btn{width:30px;height:30px;border-radius:999px;border:0;background:#f3f4f6cc;color:#6b7280;display:grid;place-items:center;cursor:pointer}.sim-live-chat-scroll{flex:1;overflow-y:auto;padding:20px;display:grid;align-content:start;gap:18px}.sim-live-msg-row{display:flex;align-items:flex-start;gap:10px;max-width:88%}.sim-live-msg-row.me{margin-left:auto;flex-direction:row-reverse}.sim-live-msg-avatar{width:30px;height:30px;border-radius:999px;flex-shrink:0;overflow:hidden;display:grid;place-items:center}.sim-live-msg-avatar.ai{border:1px solid #c7d2fe;background:#eef2ff;color:#4f46e5}.sim-live-msg-avatar.me{border:1px solid #d1d5db;background:#f9fafb;color:#6b7280}.sim-live-msg-avatar img{width:100%;height:100%;object-fit:cover}.sim-live-msg-bubble{padding:14px 16px;border-radius:16px;box-shadow:0 2px 10px #0f172a0d}.sim-live-msg-bubble.ai{border-top-left-radius:4px;border:1px solid rgba(229,231,235,.85);background:#fff}.sim-live-msg-bubble.me{border-top-right-radius:4px;background:#4f46e5;color:#eef2ff}.sim-live-msg-bubble p{margin:0;font-size:.86rem;line-height:1.6}.sim-live-msg-bubble.ai p{color:#4b5563}.sim-live-voice{border-top:1px solid rgba(229,231,235,.72);background:#ffffffc7;padding:18px;display:grid;justify-items:center;gap:10px}.sim-live-time-row{width:min(420px,100%);display:flex;align-items:center;justify-content:space-between;gap:10px}.sim-live-time{text-align:center}.sim-live-time small{display:block;color:#9ca3af;font-size:.68rem;margin-bottom:4px}.sim-live-time strong{color:#111827;font-size:.84rem;font-weight:600}.sim-live-wave{flex:1;max-width:180px;display:flex;align-items:center;justify-content:center;gap:6px}.sim-live-wave span{width:4px;height:28px;border-radius:999px;background:#6366f1;transform-origin:center;animation:sim-wave 1.2s ease-in-out infinite}.sim-live-mic-btn{width:62px;height:62px;border-radius:999px;border:2px solid #fecdd3;background:#fff1f2;color:#e11d48;display:grid;place-items:center;cursor:pointer;position:relative}.sim-live-mic-btn:before{content:"";position:absolute;inset:-2px;border-radius:999px;background:#fb718533;animation:sim-pulse-soft 2s ease-in-out infinite;z-index:0}.sim-live-mic-btn svg{position:relative;z-index:1}.sim-live-voice>p{margin:0;color:#e11d48;font-size:.76rem;animation:sim-pulse 2s ease-in-out infinite}.sim-live-side{overflow-y:auto;padding-right:2px;display:grid;align-content:start;gap:14px}.sim-live-side-card{border-radius:24px;border:1px solid rgba(229,231,235,.82);background:#ffffff9e;padding:16px}.sim-live-side-card h2{margin:0 0 14px;font-size:.78rem;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.sim-live-side-list{display:grid;gap:14px}.sim-live-side-list small{display:block;color:#6b7280;font-size:.7rem;margin-bottom:3px}.sim-live-side-list p{margin:0;color:#111827;font-size:.82rem;display:inline-flex;align-items:center;gap:6px}.sim-live-progress-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.sim-live-progress-head strong{color:#111827;font-size:.72rem}.sim-live-progress-track{height:6px;background:#e5e7eb;border-radius:999px;overflow:hidden}.sim-live-progress-track>span{display:block;width:40%;height:100%;background:#6366f1;box-shadow:0 0 8px #6366f180}.sim-live-coach-card{border-radius:24px;border:1px solid #c7d2fe;background:linear-gradient(to bottom right,#eef2ffb3,#fffc);padding:16px}.sim-live-coach-card h2{margin:0 0 12px;font-size:.82rem;color:#312e81;display:inline-flex;align-items:center;gap:6px}.sim-live-coach-list{display:grid;gap:10px}.sim-live-coach-list>div{border-radius:12px;border:1px solid rgba(224,231,255,.9);background:#fff;padding:11px;display:flex;align-items:flex-start;gap:8px}.sim-live-coach-list>div:first-child svg{color:#10b981}.sim-live-coach-list>div:last-child svg{color:#f59e0b}.sim-live-coach-list strong{display:block;margin-bottom:3px;color:#111827;font-size:.75rem}.sim-live-coach-list p{margin:0;color:#6b7280;font-size:.72rem;line-height:1.5}.sim-live-actions{display:grid;gap:10px}.sim-live-actions button{border-radius:12px;border:1px solid rgba(229,231,235,.82);background:#f9fafb;color:#4b5563;padding:10px 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.82rem;font-weight:500;cursor:pointer}.sim-live-actions button:hover{background:#f3f4f6;color:#111827}.sim-live-actions button.stop{border-color:#111827;background:#111827;color:#fff}.sim-live-actions button.stop:hover{background:#1f2937}@keyframes sim-wave{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes sim-pulse-soft{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@keyframes sim-pulse{0%,to{opacity:1}50%{opacity:.7}}.sim-hero-card{position:relative;overflow:hidden;border-radius:30px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 8px 30px #0000000a;padding:30px;margin-bottom:28px;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,.9fr);gap:24px}.sim-hero-glow{position:absolute;top:-80px;right:-80px;width:260px;height:260px;border-radius:999px;background:#6366f11f;filter:blur(70px);pointer-events:none}.sim-hero-left h1{margin:0 0 12px;font-size:clamp(1.9rem,3vw,2.55rem);letter-spacing:-.03em;color:#111827}.sim-hero-left p{margin:0 0 22px;line-height:1.65;color:#4b5563}.sim-benefits{margin:0 0 24px;padding:0;list-style:none;display:grid;gap:10px}.sim-benefits li{display:inline-flex;align-items:center;gap:9px;color:#374151;font-size:.88rem}.sim-benefits li svg{color:#10b981;flex-shrink:0}.sim-start-btn{border:0;border-radius:12px;background:#111827;color:#fff;padding:11px 16px;display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:500;cursor:pointer}.sim-start-btn:hover{background:#1f2937}.sim-config-card{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffffc7;box-shadow:0 2px 8px #0f172a0a;padding:18px;display:grid;gap:12px;align-content:start}.sim-config-head h3{margin:0;font-size:.92rem;color:#111827}.sim-config-head p{margin:3px 0 0;color:#6b7280;font-size:.74rem}.sim-config-card label{display:grid;gap:6px;font-size:.75rem;color:#6b7280;font-weight:500}.sim-select-wrap{border:1px solid rgba(229,231,235,.8);background:#fff;border-radius:12px;padding:0 12px;display:flex;align-items:center;gap:8px;box-shadow:0 2px 4px #00000005;transition:border-color .2s ease,box-shadow .2s ease}.sim-select-wrap svg{color:#9ca3af;flex-shrink:0;transition:color .2s ease}.sim-select-wrap select{width:100%;min-width:0;border:0;background:transparent;color:#374151;font-size:.84rem;font-weight:500;padding:11px 0;outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer}.sim-caret{color:#9ca3af}.sim-select-wrap:hover{border-color:#9ca3afcc;box-shadow:0 5px 12px #0f172a0f}.sim-select-wrap:hover>svg,.sim-select-wrap:hover .sim-caret{color:#6366f1}.sim-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sim-history-head{margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.sim-history-head h2{margin:0;color:#111827;font-size:1.25rem;font-weight:500}.sim-history-head button{border:0;background:transparent;display:inline-flex;align-items:center;gap:6px;color:#6b7280;cursor:pointer;font-size:.84rem;font-weight:500}.sim-history-head button:hover{color:#111827}.sim-history-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.sim-card{border-radius:22px;border:1px solid rgba(229,231,235,.8);background:#fffc;box-shadow:0 8px 18px #00000008;padding:18px;display:flex;flex-direction:column;min-height:100%}.sim-card.draft{background:#f9fafbcc;opacity:.85}.sim-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.sim-card-head h3{margin:0 0 2px;color:#111827;font-size:.95rem;letter-spacing:-.01em}.sim-card-head p{margin:0;color:#6b7280;font-size:.82rem}.sim-status{font-size:.69rem;font-weight:500;border-radius:8px;padding:4px 8px;border:1px solid;flex-shrink:0}.sim-status.done{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.sim-status.draft{color:#4b5563;background:#e5e7eb73;border-color:#d1d5dbe6}.sim-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.sim-tags span{display:inline-flex;align-items:center;gap:6px;border-radius:8px;border:1px solid rgba(229,231,235,.8);background:#f9fafbd9;color:#4b5563;font-size:.72rem;font-weight:500;padding:6px 9px}.sim-card-foot{margin-top:auto;padding-top:12px;border-top:1px solid rgba(229,231,235,.65);display:flex;justify-content:space-between;align-items:center;gap:8px}.sim-card-foot small{color:#9ca3af;font-size:.72rem}.sim-link-btn{border:0;background:transparent;display:inline-flex;align-items:center;gap:6px;color:#4f46e5;cursor:pointer;font-size:.82rem;font-weight:500}.sim-link-btn:hover{color:#4338ca}.theme-dark .sim-hero-card,.theme-dark .sim-config-card,.theme-dark .sim-card,.theme-dark .sim-live-chat-card,.theme-dark .sim-live-side-card{background:#ffffff05;border-color:#ffffff0f}.theme-dark .sim-hero-left h1,.theme-dark .sim-config-head h3,.theme-dark .sim-history-head h2,.theme-dark .sim-card-head h3,.theme-dark .sim-live-head h1,.theme-dark .sim-live-ai-row h3,.theme-dark .sim-live-side-list p,.theme-dark .sim-live-progress-head strong,.theme-dark .sim-live-coach-list strong,.theme-dark .sim-live-time strong{color:#fff}.theme-dark .sim-hero-left p,.theme-dark .sim-benefits li,.theme-dark .sim-config-head p,.theme-dark .sim-config-card label,.theme-dark .sim-card-head p,.theme-dark .sim-tags span,.theme-dark .sim-history-head button,.theme-dark .sim-live-head p,.theme-dark .sim-live-side-list small,.theme-dark .sim-live-coach-list p,.theme-dark .sim-live-time small,.theme-dark .sim-leave-btn{color:#9ca3af}.theme-dark .sim-start-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.12)}.theme-dark .sim-select-wrap{background:#ffffff08;border-color:#ffffff14}.theme-dark .sim-select-wrap select{color:#d1d5db}.theme-dark .sim-live-chat-head,.theme-dark .sim-live-voice{border-color:#ffffff14;background:#ffffff0a}.theme-dark .sim-live-more-btn{background:#ffffff14;color:#9ca3af}.theme-dark .sim-live-ai-avatar,.theme-dark .sim-live-msg-avatar.ai{background:#6366f133;border-color:#818cf866;color:#a5b4fc}.theme-dark .sim-live-msg-avatar.me{border-color:#ffffff1f;background:#ffffff0f}.theme-dark .sim-live-msg-bubble.ai{background:#ffffff0a;border-color:#ffffff1a}.theme-dark .sim-live-msg-bubble.ai p{color:#d1d5db}.theme-dark .sim-live-msg-bubble.me{background:#4f46e5}.theme-dark .sim-live-progress-track{background:#ffffff1a}.theme-dark .sim-live-coach-card{background:linear-gradient(to bottom right,#4f46e52e,#ffffff08);border-color:#818cf873}.theme-dark .sim-live-coach-card h2{color:#c7d2fe}.theme-dark .sim-live-coach-list>div{background:#ffffff0a;border-color:#ffffff1a}.theme-dark .sim-tags span{background:#ffffff08;border-color:#ffffff14}.theme-dark .sim-status.done{background:#10b98126;border-color:#10b98173;color:#34d399}.theme-dark .sim-status.draft{background:#ffffff12;border-color:#ffffff1f;color:#d1d5db}.theme-dark .sim-card-foot{border-top-color:#ffffff14}.theme-dark .sim-link-btn{color:#818cf8}.theme-dark .sim-live-actions button{background:#ffffff0a;border-color:#ffffff1a;color:#d1d5db}.theme-dark .sim-live-actions button.stop{background:#1f2937;border-color:#374151;color:#fff}@media(max-width:1180px){.sim-live-grid{grid-template-columns:1fr;min-height:auto}.sim-live-chat-card{min-height:520px}.sim-live-side{overflow:visible;padding-right:0}.sim-hero-card{grid-template-columns:1fr}.sim-history-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sim-live-chat-card{min-height:auto}.sim-live-time-row{flex-direction:column;gap:8px}.sim-wrap{padding-bottom:18px}.sim-hero-card{padding:20px;border-radius:24px}.sim-history-grid,.sim-mini-grid{grid-template-columns:1fr}}.sub-main{position:relative}.sub-top-actions{display:inline-flex;align-items:center;gap:10px}.sub-crumb-pill{border-radius:999px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;padding:7px 11px;font-size:.8rem;color:#4b5563;display:inline-flex;align-items:center;gap:6px}.sub-crumb-pill svg{color:#14b8a6}.sub-toggle-btn{border:0;border-radius:999px;background:#111827;color:#fff;font-size:.72rem;font-weight:500;padding:8px 12px;cursor:pointer}.sub-toggle-btn:hover{background:#1f2937}.sub-head{margin-bottom:18px;max-width:850px}.sub-head-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.sub-head-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#06b6d4);color:#fff;display:grid;place-items:center}.sub-head h1{margin:0;color:#111827;font-size:clamp(2rem,3.2vw,2.5rem);letter-spacing:-.03em}.sub-head p{margin:0;color:#6b7280;line-height:1.65}.sub-wrap{max-width:1200px;padding-bottom:20px}.sub-redeem-card{max-width:900px;border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 8px 24px #00000008;padding:20px;margin-bottom:22px}.sub-redeem-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}.sub-redeem-head h2{margin:0;color:#111827;font-size:1.06rem}.sub-redeem-card p{margin:0 0 12px;color:#6b7280;font-size:.86rem}.sub-redeem-row{max-width:560px;display:grid;grid-template-columns:1fr auto;gap:8px}.sub-redeem-row input{border-radius:12px;border:1px solid rgba(229,231,235,.8);background:#ffffffd9;color:#111827;font-size:.86rem;padding:10px 12px;outline:none}.sub-redeem-row input:focus{border-color:#14b8a6b3;box-shadow:0 0 0 3px #14b8a61f}.sub-redeem-row button{border:0;border-radius:12px;background:#111827;color:#fff;font-size:.82rem;font-weight:500;padding:10px 14px;cursor:pointer}.sub-redeem-row button:hover{background:#1f2937}.sub-redeem-row button:disabled{opacity:.7;cursor:not-allowed}.sub-redeem-card small{margin-top:8px;display:block;color:#0f766e}.sub-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sub-plan-card{position:relative;border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);padding:20px;cursor:pointer}.sub-plan-card.popular{background:#fffc}.sub-plan-card.yearly{border-color:#c7d2fee6}.sub-plan-card.selected{border-color:#14b8a6cc;box-shadow:0 8px 28px #14b8a61f;background:#f0fdfa6b}.sub-plan-card.yearly.selected{border-color:#6366f1cc;box-shadow:0 8px 28px #6366f11f;background:#eef2ff59}.sub-plan-card input{position:absolute;opacity:0;pointer-events:none}.sub-popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);border-radius:999px;padding:4px 10px;background:#111827;color:#fff;font-size:.64rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.sub-radio-indicator{position:absolute;top:20px;right:20px;width:20px;height:20px;border-radius:999px;border:1px solid #d1d5db;display:grid;place-items:center}.sub-radio-indicator i{width:8px;height:8px;border-radius:999px;background:#fff;opacity:0}.sub-plan-card.selected .sub-radio-indicator{border-color:#14b8a6;background:#14b8a6}.sub-plan-card.selected .sub-radio-indicator i{opacity:1}.sub-plan-card.yearly.selected .sub-radio-indicator{border-color:#6366f1;background:#6366f1}.sub-plan-content{display:grid;align-content:start;height:100%}.sub-plan-title-row{display:flex;align-items:center;gap:8px}.sub-plan-title-row h3{margin:0;color:#111827;font-size:1.08rem}.sub-plan-title-row span{border-radius:6px;border:1px solid rgba(153,246,228,.7);background:#f0fdfae6;color:#0f766e;font-size:.64rem;font-weight:600;padding:2px 6px}.sub-price{margin-top:10px;color:#111827;font-size:2rem;font-weight:600;letter-spacing:-.03em}.sub-price-daily{margin:2px 0 0;color:#6b7280;font-size:.8rem}.sub-gift-box{margin-top:12px;border-radius:12px;border:1px solid rgba(199,210,254,.8);background:linear-gradient(to bottom right,#eef2ffe6,#f5f3ffcc);padding:10px;display:flex;align-items:flex-start;gap:8px}.sub-gift-box strong{display:block;color:#111827;font-size:.78rem;margin-bottom:2px}.sub-gift-box small{color:#4b5563;font-size:.72rem;line-height:1.45}.sub-divider{margin:14px 0;height:1px;background:#e5e7ebcc}.sub-plan-content ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.sub-plan-content li{display:flex;align-items:flex-start;gap:8px}.sub-plan-content li svg{color:#14b8a6;margin-top:2px;flex-shrink:0}.sub-plan-card.yearly .sub-plan-content li svg{color:#6366f1}.sub-plan-content li span{color:#374151;font-size:.8rem;line-height:1.5}.sub-checkout-card{margin-top:20px;border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.sub-checkout-card h3{margin:0 0 4px;color:#111827;font-size:1.06rem}.sub-checkout-card p{margin:0;color:#6b7280;font-size:.84rem}.sub-checkout-actions{display:grid;gap:10px;justify-items:end}.sub-checkout-actions label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#4b5563;font-size:.8rem}.sub-checkout-actions input{position:absolute;opacity:0;pointer-events:none}.sub-checkbox{width:18px;height:18px;border-radius:5px;border:1px solid #d1d5db;background:#fff;display:grid;place-items:center;color:#fff}.sub-checkout-actions input:checked+.sub-checkbox{background:#14b8a6;border-color:#14b8a6}.sub-checkout-actions .sub-checkbox svg{opacity:0}.sub-checkout-actions input:checked+.sub-checkbox svg{opacity:1}.sub-checkout-actions>button{border:0;border-radius:12px;background:#111827;color:#fff;font-size:.92rem;font-weight:500;padding:11px 22px;cursor:pointer}.sub-checkout-actions>button:hover{background:#1f2937}.sub-checkout-actions>button:disabled{opacity:.65;cursor:not-allowed}.sub-active-wrap{max-width:940px}.sub-gift-alert{position:relative;overflow:hidden;border-radius:22px;background:linear-gradient(to right,#6366f1,#8b5cf6,#6366f1);color:#fff;padding:18px;margin-bottom:18px;display:flex;align-items:center;gap:12px}.sub-gift-glow{position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:999px;background:#ffffff3d;filter:blur(40px)}.sub-gift-icon{width:50px;height:50px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:#ffffff2e;display:grid;place-items:center;font-size:1.6rem;position:relative;z-index:1}.sub-gift-alert h2{margin:0 0 2px;font-size:1.16rem}.sub-gift-alert p{margin:0;font-size:.82rem;color:#e0e7ff}.sub-gift-alert button{margin-left:auto;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#ffffff24;color:#fff;font-size:.78rem;font-weight:500;padding:8px 12px;cursor:pointer;position:relative;z-index:1}.sub-active-card{border-radius:24px;border:1px solid rgba(229,231,235,.8);background:#ffffff9e;overflow:hidden}.sub-active-head{padding:18px;border-bottom:1px solid rgba(229,231,235,.72);display:flex;align-items:center;gap:8px}.sub-active-head h2{margin:0;color:#111827;font-size:1.24rem}.sub-active-grid{display:grid;grid-template-columns:1fr 1fr}.sub-active-features{padding:18px;border-right:1px solid rgba(229,231,235,.7);background:#f9fafb66}.sub-active-features ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}.sub-active-features li{display:flex;align-items:flex-start;gap:8px}.sub-active-features li svg{color:#14b8a6;margin-top:2px}.sub-active-features li span{color:#374151;font-size:.82rem;line-height:1.5}.sub-active-status-col{padding:18px}.sub-active-status-box{border-radius:16px;border:1px solid rgba(153,246,228,.72);background:linear-gradient(to bottom right,#f0fdfacc,#ecfeffb3);padding:18px;text-align:center}.sub-active-check{width:56px;height:56px;border-radius:999px;border:1px solid rgba(153,246,228,.8);background:#fff;color:#14b8a6;display:grid;place-items:center;margin:0 auto 10px}.sub-active-status-box h3{margin:0 0 5px;color:#111827;font-size:1rem}.sub-active-status-box strong{display:block;color:#0f766e;font-size:.95rem}.sub-active-status-box p{margin:3px 0 10px;color:#0f766e;font-size:.82rem}.sub-renew-pill{border-radius:12px;border:1px solid rgba(153,246,228,.72);background:#fffc;color:#374151;font-size:.82rem;font-weight:500;padding:9px 11px;display:inline-flex;align-items:center;gap:8px}.sub-renew-pill svg{color:#14b8a6}.sub-manage-link{margin-top:12px;width:100%;border:0;background:transparent;color:#6b7280;font-size:.8rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.theme-dark .sub-crumb-pill,.theme-dark .sub-redeem-card,.theme-dark .sub-plan-card,.theme-dark .sub-checkout-card,.theme-dark .sub-active-card{border-color:#ffffff14;background:#ffffff08}.theme-dark .sub-head h1,.theme-dark .sub-redeem-head h2,.theme-dark .sub-plan-title-row h3,.theme-dark .sub-checkout-card h3,.theme-dark .sub-active-head h2,.theme-dark .sub-active-status-box h3{color:#fff}.theme-dark .sub-head p,.theme-dark .sub-redeem-card p,.theme-dark .sub-price-daily,.theme-dark .sub-plan-content li span,.theme-dark .sub-checkout-card p,.theme-dark .sub-checkout-actions label,.theme-dark .sub-active-features li span,.theme-dark .sub-manage-link,.theme-dark .sub-crumb-pill{color:#9ca3af}.theme-dark .sub-redeem-row input,.theme-dark .sub-checkbox,.theme-dark .sub-renew-pill,.theme-dark .sub-gift-box{border-color:#ffffff1a;background:#ffffff0d;color:#d1d5db}.theme-dark .sub-price,.theme-dark .sub-active-status-box strong,.theme-dark .sub-active-status-box p,.theme-dark .sub-renew-pill{color:#f3f4f6}.theme-dark .sub-divider,.theme-dark .sub-active-head,.theme-dark .sub-active-features{border-color:#ffffff14}.theme-dark .sub-active-features{background:#ffffff05}.theme-dark .sub-toggle-btn,.theme-dark .sub-redeem-row button,.theme-dark .sub-checkout-actions>button{background:#ffffff1f;border:1px solid rgba(255,255,255,.14)}.theme-dark .sub-gift-alert{background:linear-gradient(to right,#4f46e5c7,#7c3aedbd,#4f46e5c7)}@media(max-width:1200px){.sub-plan-grid{grid-template-columns:1fr 1fr}.sub-active-grid{grid-template-columns:1fr}.sub-active-features{border-right:0;border-bottom:1px solid rgba(229,231,235,.72)}}@media(max-width:860px){.sub-top-actions{flex-wrap:wrap;justify-content:flex-end}.sub-redeem-row,.sub-plan-grid{grid-template-columns:1fr}.sub-checkout-card{flex-direction:column;align-items:stretch}.sub-checkout-actions{justify-items:start}.sub-gift-alert{flex-wrap:wrap}.sub-gift-alert button{margin-left:0}} diff --git a/dist/assets/index-yGD4iGEM.js b/dist/assets/index-yGD4iGEM.js deleted file mode 100644 index 92cb294..0000000 --- a/dist/assets/index-yGD4iGEM.js +++ /dev/null @@ -1,11 +0,0 @@ -(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const m of document.querySelectorAll('link[rel="modulepreload"]'))r(m);new MutationObserver(m=>{for(const v of m)if(v.type==="childList")for(const U of v.addedNodes)U.tagName==="LINK"&&U.rel==="modulepreload"&&r(U)}).observe(document,{childList:!0,subtree:!0});function u(m){const v={};return m.integrity&&(v.integrity=m.integrity),m.referrerPolicy&&(v.referrerPolicy=m.referrerPolicy),m.crossOrigin==="use-credentials"?v.credentials="include":m.crossOrigin==="anonymous"?v.credentials="omit":v.credentials="same-origin",v}function r(m){if(m.ep)return;m.ep=!0;const v=u(m);fetch(m.href,v)}})();var Hu={exports:{}},On={};var dh;function Cg(){if(dh)return On;dh=1;var d=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function u(r,m,v){var U=null;if(v!==void 0&&(U=""+v),m.key!==void 0&&(U=""+m.key),"key"in m){v={};for(var Y in m)Y!=="key"&&(v[Y]=m[Y])}else v=m;return m=v.ref,{$$typeof:d,type:r,key:U,ref:m!==void 0?m:null,props:v}}return On.Fragment=c,On.jsx=u,On.jsxs=u,On}var fh;function Eg(){return fh||(fh=1,Hu.exports=Cg()),Hu.exports}var n=Eg(),Vu={exports:{}},de={};var hh;function wg(){if(hh)return de;hh=1;var d=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),v=Symbol.for("react.consumer"),U=Symbol.for("react.context"),Y=Symbol.for("react.forward_ref"),R=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),T=Symbol.for("react.activity"),q=Symbol.iterator;function Q(h){return h===null||typeof h!="object"?null:(h=q&&h[q]||h["@@iterator"],typeof h=="function"?h:null)}var ee={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B=Object.assign,re={};function oe(h,x,E){this.props=h,this.context=x,this.refs=re,this.updater=E||ee}oe.prototype.isReactComponent={},oe.prototype.setState=function(h,x){if(typeof h!="object"&&typeof h!="function"&&h!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,h,x,"setState")},oe.prototype.forceUpdate=function(h){this.updater.enqueueForceUpdate(this,h,"forceUpdate")};function ge(){}ge.prototype=oe.prototype;function K(h,x,E){this.props=h,this.context=x,this.refs=re,this.updater=E||ee}var ne=K.prototype=new ge;ne.constructor=K,B(ne,oe.prototype),ne.isPureReactComponent=!0;var se=Array.isArray;function Z(){}var D={H:null,A:null,T:null,S:null},fe=Object.prototype.hasOwnProperty;function je(h,x,E){var G=E.ref;return{$$typeof:d,type:h,key:x,ref:G!==void 0?G:null,props:E}}function Se(h,x){return je(h.type,x,h.props)}function H(h){return typeof h=="object"&&h!==null&&h.$$typeof===d}function J(h){var x={"=":"=0",":":"=2"};return"$"+h.replace(/[=:]/g,function(E){return x[E]})}var ae=/\/+/g;function P(h,x){return typeof h=="object"&&h!==null&&h.key!=null?J(""+h.key):x.toString(36)}function W(h){switch(h.status){case"fulfilled":return h.value;case"rejected":throw h.reason;default:switch(typeof h.status=="string"?h.then(Z,Z):(h.status="pending",h.then(function(x){h.status==="pending"&&(h.status="fulfilled",h.value=x)},function(x){h.status==="pending"&&(h.status="rejected",h.reason=x)})),h.status){case"fulfilled":return h.value;case"rejected":throw h.reason}}throw h}function k(h,x,E,G,ce){var ie=typeof h;(ie==="undefined"||ie==="boolean")&&(h=null);var _e=!1;if(h===null)_e=!0;else switch(ie){case"bigint":case"string":case"number":_e=!0;break;case"object":switch(h.$$typeof){case d:case c:_e=!0;break;case V:return _e=h._init,k(_e(h._payload),x,E,G,ce)}}if(_e)return ce=ce(h),_e=G===""?"."+P(h,0):G,se(ce)?(E="",_e!=null&&(E=_e.replace(ae,"$&/")+"/"),k(ce,x,E,"",function(Bl){return Bl})):ce!=null&&(H(ce)&&(ce=Se(ce,E+(ce.key==null||h&&h.key===ce.key?"":(""+ce.key).replace(ae,"$&/")+"/")+_e)),x.push(ce)),1;_e=0;var lt=G===""?".":G+":";if(se(h))for(var Ve=0;Ve>>1,ue=k[I];if(0>>1;Im(E,O))Gm(ce,E)?(k[I]=ce,k[G]=O,I=G):(k[I]=E,k[x]=O,I=x);else if(Gm(ce,O))k[I]=ce,k[G]=O,I=G;else break e}}return _}function m(k,_){var O=k.sortIndex-_.sortIndex;return O!==0?O:k.id-_.id}if(d.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var v=performance;d.unstable_now=function(){return v.now()}}else{var U=Date,Y=U.now();d.unstable_now=function(){return U.now()-Y}}var R=[],b=[],V=1,T=null,q=3,Q=!1,ee=!1,B=!1,re=!1,oe=typeof setTimeout=="function"?setTimeout:null,ge=typeof clearTimeout=="function"?clearTimeout:null,K=typeof setImmediate<"u"?setImmediate:null;function ne(k){for(var _=u(b);_!==null;){if(_.callback===null)r(b);else if(_.startTime<=k)r(b),_.sortIndex=_.expirationTime,c(R,_);else break;_=u(b)}}function se(k){if(B=!1,ne(k),!ee)if(u(R)!==null)ee=!0,Z||(Z=!0,J());else{var _=u(b);_!==null&&W(se,_.startTime-k)}}var Z=!1,D=-1,fe=5,je=-1;function Se(){return re?!0:!(d.unstable_now()-jek&&Se());){var I=T.callback;if(typeof I=="function"){T.callback=null,q=T.priorityLevel;var ue=I(T.expirationTime<=k);if(k=d.unstable_now(),typeof ue=="function"){T.callback=ue,ne(k),_=!0;break t}T===u(R)&&r(R),ne(k)}else r(R);T=u(R)}if(T!==null)_=!0;else{var h=u(b);h!==null&&W(se,h.startTime-k),_=!1}}break e}finally{T=null,q=O,Q=!1}_=void 0}}finally{_?J():Z=!1}}}var J;if(typeof K=="function")J=function(){K(H)};else if(typeof MessageChannel<"u"){var ae=new MessageChannel,P=ae.port2;ae.port1.onmessage=H,J=function(){P.postMessage(null)}}else J=function(){oe(H,0)};function W(k,_){D=oe(function(){k(d.unstable_now())},_)}d.unstable_IdlePriority=5,d.unstable_ImmediatePriority=1,d.unstable_LowPriority=4,d.unstable_NormalPriority=3,d.unstable_Profiling=null,d.unstable_UserBlockingPriority=2,d.unstable_cancelCallback=function(k){k.callback=null},d.unstable_forceFrameRate=function(k){0>k||125I?(k.sortIndex=O,c(b,k),u(R)===null&&k===u(b)&&(B?(ge(D),D=-1):B=!0,W(se,O-I))):(k.sortIndex=ue,c(R,k),ee||Q||(ee=!0,Z||(Z=!0,J()))),k},d.unstable_shouldYield=Se,d.unstable_wrapCallback=function(k){var _=q;return function(){var O=q;q=_;try{return k.apply(this,arguments)}finally{q=O}}}})(Yu)),Yu}var ph;function Og(){return ph||(ph=1,Bu.exports=Ug()),Bu.exports}var Ju={exports:{}},at={};var vh;function Lg(){if(vh)return at;vh=1;var d=ir();function c(R){var b="https://react.dev/errors/"+R;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(d)}catch(c){console.error(c)}}return d(),Ju.exports=Lg(),Ju.exports}var bh;function Hg(){if(bh)return Ln;bh=1;var d=Og(),c=ir(),u=Rg();function r(e){var t="https://react.dev/errors/"+e;if(1ue||(e.current=I[ue],I[ue]=null,ue--)}function E(e,t){ue++,I[ue]=e.current,e.current=t}var G=h(null),ce=h(null),ie=h(null),_e=h(null);function lt(e,t){switch(E(ie,t),E(ce,e),E(G,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Uf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Uf(t),e=Of(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}x(G),E(G,e)}function Ve(){x(G),x(ce),x(ie)}function Bl(e){e.memoizedState!==null&&E(_e,e);var t=G.current,a=Of(t,e.type);t!==a&&(E(ce,e),E(G,a))}function Qn(e){ce.current===e&&(x(G),x(ce)),_e.current===e&&(x(_e),Cn._currentValue=O)}var js,ur;function Ea(e){if(js===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);js=t&&t[1]||"",ur=-1)":-1i||g[l]!==S[i]){var M=` -`+g[l].replace(" at new "," at ");return e.displayName&&M.includes("")&&(M=M.replace("",e.displayName)),M}while(1<=l&&0<=i);break}}}finally{xs=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?Ea(a):""}function um(e,t){switch(e.tag){case 26:case 27:case 5:return Ea(e.type);case 16:return Ea("Lazy");case 13:return e.child!==t&&t!==null?Ea("Suspense Fallback"):Ea("Suspense");case 19:return Ea("SuspenseList");case 0:case 15:return Ss(e.type,!1);case 11:return Ss(e.type.render,!1);case 1:return Ss(e.type,!0);case 31:return Ea("Activity");default:return""}}function rr(e){try{var t="",a=null;do t+=um(e,a),a=e,e=e.return;while(e);return t}catch(l){return` -Error generating stack: `+l.message+` -`+l.stack}}var Ns=Object.prototype.hasOwnProperty,ks=d.unstable_scheduleCallback,As=d.unstable_cancelCallback,rm=d.unstable_shouldYield,om=d.unstable_requestPaint,ht=d.unstable_now,dm=d.unstable_getCurrentPriorityLevel,or=d.unstable_ImmediatePriority,dr=d.unstable_UserBlockingPriority,Xn=d.unstable_NormalPriority,fm=d.unstable_LowPriority,fr=d.unstable_IdlePriority,hm=d.log,mm=d.unstable_setDisableYieldValue,Yl=null,mt=null;function ca(e){if(typeof hm=="function"&&mm(e),mt&&typeof mt.setStrictMode=="function")try{mt.setStrictMode(Yl,e)}catch{}}var gt=Math.clz32?Math.clz32:vm,gm=Math.log,pm=Math.LN2;function vm(e){return e>>>=0,e===0?32:31-(gm(e)/pm|0)|0}var Zn=256,Kn=262144,Wn=4194304;function wa(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Fn(e,t,a){var l=e.pendingLanes;if(l===0)return 0;var i=0,s=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var f=l&134217727;return f!==0?(l=f&~s,l!==0?i=wa(l):(o&=f,o!==0?i=wa(o):a||(a=f&~e,a!==0&&(i=wa(a))))):(f=l&~s,f!==0?i=wa(f):o!==0?i=wa(o):a||(a=l&~e,a!==0&&(i=wa(a)))),i===0?0:t!==0&&t!==i&&(t&s)===0&&(s=i&-i,a=t&-t,s>=a||s===32&&(a&4194048)!==0)?t:i}function Jl(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ym(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function hr(){var e=Wn;return Wn<<=1,(Wn&62914560)===0&&(Wn=4194304),e}function _s(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Gl(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function bm(e,t,a,l,i,s){var o=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var f=e.entanglements,g=e.expirationTimes,S=e.hiddenUpdates;for(a=o&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Am=/[\n"\\]/g;function kt(e){return e.replace(Am,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Es(e,t,a,l,i,s,o,f){e.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.type=o:e.removeAttribute("type"),t!=null?o==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Nt(t)):e.value!==""+Nt(t)&&(e.value=""+Nt(t)):o!=="submit"&&o!=="reset"||e.removeAttribute("value"),t!=null?ws(e,o,Nt(t)):a!=null?ws(e,o,Nt(a)):l!=null&&e.removeAttribute("value"),i==null&&s!=null&&(e.defaultChecked=!!s),i!=null&&(e.checked=i&&typeof i!="function"&&typeof i!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.name=""+Nt(f):e.removeAttribute("name")}function _r(e,t,a,l,i,s,o,f){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(e.type=s),t!=null||a!=null){if(!(s!=="submit"&&s!=="reset"||t!=null)){Cs(e);return}a=a!=null?""+Nt(a):"",t=t!=null?""+Nt(t):a,f||t===e.value||(e.value=t),e.defaultValue=t}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=f?e.checked:!!l,e.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.name=o),Cs(e)}function ws(e,t,a){t==="number"&&Pn(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function il(e,t,a,l){if(e=e.options,t){t={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Hs=!1;if(Jt)try{var Kl={};Object.defineProperty(Kl,"passive",{get:function(){Hs=!0}}),window.addEventListener("test",Kl,Kl),window.removeEventListener("test",Kl,Kl)}catch{Hs=!1}var ra=null,Vs=null,ti=null;function wr(){if(ti)return ti;var e,t=Vs,a=t.length,l,i="value"in ra?ra.value:ra.textContent,s=i.length;for(e=0;e=$l),Vr=" ",qr=!1;function Br(e,t){switch(e){case"keyup":return Pm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Yr(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var rl=!1;function t1(e,t){switch(e){case"compositionend":return Yr(t);case"keypress":return t.which!==32?null:(qr=!0,Vr);case"textInput":return e=t.data,e===Vr&&qr?null:e;default:return null}}function a1(e,t){if(rl)return e==="compositionend"||!Gs&&Br(e,t)?(e=wr(),ti=Vs=ra=null,rl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=l}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Fr(a)}}function Ir(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ir(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Pr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pn(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=Pn(e.document)}return t}function Zs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var o1=Jt&&"documentMode"in document&&11>=document.documentMode,ol=null,Ks=null,tn=null,Ws=!1;function eo(e,t,a){var l=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Ws||ol==null||ol!==Pn(l)||(l=ol,"selectionStart"in l&&Zs(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),tn&&en(tn,l)||(tn=l,l=Ki(Ks,"onSelect"),0>=o,i-=o,Rt=1<<32-gt(t)+i|a<me?(be=$,$=null):be=$.sibling;var ke=N(y,$,j[me],w);if(ke===null){$===null&&($=be);break}e&&$&&ke.alternate===null&&t(y,$),p=s(ke,p,me),Ne===null?te=ke:Ne.sibling=ke,Ne=ke,$=be}if(me===j.length)return a(y,$),xe&&Qt(y,me),te;if($===null){for(;meme?(be=$,$=null):be=$.sibling;var Ca=N(y,$,ke.value,w);if(Ca===null){$===null&&($=be);break}e&&$&&Ca.alternate===null&&t(y,$),p=s(Ca,p,me),Ne===null?te=Ca:Ne.sibling=Ca,Ne=Ca,$=be}if(ke.done)return a(y,$),xe&&Qt(y,me),te;if($===null){for(;!ke.done;me++,ke=j.next())ke=L(y,ke.value,w),ke!==null&&(p=s(ke,p,me),Ne===null?te=ke:Ne.sibling=ke,Ne=ke);return xe&&Qt(y,me),te}for($=l($);!ke.done;me++,ke=j.next())ke=A($,y,me,ke.value,w),ke!==null&&(e&&ke.alternate!==null&&$.delete(ke.key===null?me:ke.key),p=s(ke,p,me),Ne===null?te=ke:Ne.sibling=ke,Ne=ke);return e&&$.forEach(function(Mg){return t(y,Mg)}),xe&&Qt(y,me),te}function Ce(y,p,j,w){if(typeof j=="object"&&j!==null&&j.type===B&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case Q:e:{for(var te=j.key;p!==null;){if(p.key===te){if(te=j.type,te===B){if(p.tag===7){a(y,p.sibling),w=i(p,j.props.children),w.return=y,y=w;break e}}else if(p.elementType===te||typeof te=="object"&&te!==null&&te.$$typeof===fe&&Ga(te)===p.type){a(y,p.sibling),w=i(p,j.props),un(w,j),w.return=y,y=w;break e}a(y,p);break}else t(y,p);p=p.sibling}j.type===B?(w=Va(j.props.children,y.mode,w,j.key),w.return=y,y=w):(w=di(j.type,j.key,j.props,null,y.mode,w),un(w,j),w.return=y,y=w)}return o(y);case ee:e:{for(te=j.key;p!==null;){if(p.key===te)if(p.tag===4&&p.stateNode.containerInfo===j.containerInfo&&p.stateNode.implementation===j.implementation){a(y,p.sibling),w=i(p,j.children||[]),w.return=y,y=w;break e}else{a(y,p);break}else t(y,p);p=p.sibling}w=ac(j,y.mode,w),w.return=y,y=w}return o(y);case fe:return j=Ga(j),Ce(y,p,j,w)}if(W(j))return F(y,p,j,w);if(J(j)){if(te=J(j),typeof te!="function")throw Error(r(150));return j=te.call(j),le(y,p,j,w)}if(typeof j.then=="function")return Ce(y,p,yi(j),w);if(j.$$typeof===K)return Ce(y,p,mi(y,j),w);bi(y,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,p!==null&&p.tag===6?(a(y,p.sibling),w=i(p,j),w.return=y,y=w):(a(y,p),w=tc(j,y.mode,w),w.return=y,y=w),o(y)):a(y,p)}return function(y,p,j,w){try{cn=0;var te=Ce(y,p,j,w);return xl=null,te}catch($){if($===jl||$===pi)throw $;var Ne=vt(29,$,null,y.mode);return Ne.lanes=w,Ne.return=y,Ne}}}var Xa=ko(!0),Ao=ko(!1),ma=!1;function mc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function gc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ga(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function pa(e,t,a){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(Ae&2)!==0){var i=l.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),l.pending=t,t=oi(e),co(e,null,a),t}return ri(e,l,t,a),oi(e)}function rn(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,a|=l,t.lanes=a,gr(e,a)}}function pc(e,t){var a=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,a===l)){var i=null,s=null;if(a=a.firstBaseUpdate,a!==null){do{var o={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};s===null?i=s=o:s=s.next=o,a=a.next}while(a!==null);s===null?i=s=t:s=s.next=t}else i=s=t;a={baseState:l.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:l.shared,callbacks:l.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var vc=!1;function on(){if(vc){var e=bl;if(e!==null)throw e}}function dn(e,t,a,l){vc=!1;var i=e.updateQueue;ma=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,f=i.shared.pending;if(f!==null){i.shared.pending=null;var g=f,S=g.next;g.next=null,o===null?s=S:o.next=S,o=g;var M=e.alternate;M!==null&&(M=M.updateQueue,f=M.lastBaseUpdate,f!==o&&(f===null?M.firstBaseUpdate=S:f.next=S,M.lastBaseUpdate=g))}if(s!==null){var L=i.baseState;o=0,M=S=g=null,f=s;do{var N=f.lane&-536870913,A=N!==f.lane;if(A?(ye&N)===N:(l&N)===N){N!==0&&N===yl&&(vc=!0),M!==null&&(M=M.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});e:{var F=e,le=f;N=t;var Ce=a;switch(le.tag){case 1:if(F=le.payload,typeof F=="function"){L=F.call(Ce,L,N);break e}L=F;break e;case 3:F.flags=F.flags&-65537|128;case 0:if(F=le.payload,N=typeof F=="function"?F.call(Ce,L,N):F,N==null)break e;L=T({},L,N);break e;case 2:ma=!0}}N=f.callback,N!==null&&(e.flags|=64,A&&(e.flags|=8192),A=i.callbacks,A===null?i.callbacks=[N]:A.push(N))}else A={lane:N,tag:f.tag,payload:f.payload,callback:f.callback,next:null},M===null?(S=M=A,g=L):M=M.next=A,o|=N;if(f=f.next,f===null){if(f=i.shared.pending,f===null)break;A=f,f=A.next,A.next=null,i.lastBaseUpdate=A,i.shared.pending=null}}while(!0);M===null&&(g=L),i.baseState=g,i.firstBaseUpdate=S,i.lastBaseUpdate=M,s===null&&(i.shared.lanes=0),xa|=o,e.lanes=o,e.memoizedState=L}}function _o(e,t){if(typeof e!="function")throw Error(r(191,e));e.call(t)}function To(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;es?s:8;var o=k.T,f={};k.T=f,Lc(e,!1,t,a);try{var g=i(),S=k.S;if(S!==null&&S(f,g),g!==null&&typeof g=="object"&&typeof g.then=="function"){var M=b1(g,l);mn(e,t,M,St(e))}else mn(e,t,l,St(e))}catch(L){mn(e,t,{then:function(){},status:"rejected",reason:L},St())}finally{_.p=s,o!==null&&f.types!==null&&(o.types=f.types),k.T=o}}function A1(){}function Uc(e,t,a,l){if(e.tag!==5)throw Error(r(476));var i=id(e).queue;nd(e,i,t,O,a===null?A1:function(){return sd(e),a(l)})}function id(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:O,baseState:O,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Wt,lastRenderedState:O},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Wt,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function sd(e){var t=id(e);t.next===null&&(t=e.alternate.memoizedState),mn(e,t.next.queue,{},St())}function Oc(){return Ie(Cn)}function cd(){return Be().memoizedState}function ud(){return Be().memoizedState}function _1(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=St();e=ga(a);var l=pa(t,e,a);l!==null&&(dt(l,t,a),rn(l,t,a)),t={cache:oc()},e.payload=t;return}t=t.return}}function T1(e,t,a){var l=St();a={lane:l,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Di(e)?od(t,a):(a=Ps(e,t,a,l),a!==null&&(dt(a,e,l),dd(a,t,l)))}function rd(e,t,a){var l=St();mn(e,t,a,l)}function mn(e,t,a,l){var i={lane:l,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(Di(e))od(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,f=s(o,a);if(i.hasEagerState=!0,i.eagerState=f,pt(f,o))return ri(e,t,i,0),Ee===null&&ui(),!1}catch{}if(a=Ps(e,t,i,l),a!==null)return dt(a,e,l),dd(a,t,l),!0}return!1}function Lc(e,t,a,l){if(l={lane:2,revertLane:mu(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Di(e)){if(t)throw Error(r(479))}else t=Ps(e,a,l,2),t!==null&&dt(t,e,2)}function Di(e){var t=e.alternate;return e===he||t!==null&&t===he}function od(e,t){Nl=Si=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function dd(e,t,a){if((a&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,a|=l,t.lanes=a,gr(e,a)}}var gn={readContext:Ie,use:Ai,useCallback:Le,useContext:Le,useEffect:Le,useImperativeHandle:Le,useLayoutEffect:Le,useInsertionEffect:Le,useMemo:Le,useReducer:Le,useRef:Le,useState:Le,useDebugValue:Le,useDeferredValue:Le,useTransition:Le,useSyncExternalStore:Le,useId:Le,useHostTransitionStatus:Le,useFormState:Le,useActionState:Le,useOptimistic:Le,useMemoCache:Le,useCacheRefresh:Le};gn.useEffectEvent=Le;var fd={readContext:Ie,use:Ai,useCallback:function(e,t){return nt().memoizedState=[e,t===void 0?null:t],e},useContext:Ie,useEffect:Wo,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,Ti(4194308,4,Po.bind(null,t,e),a)},useLayoutEffect:function(e,t){return Ti(4194308,4,e,t)},useInsertionEffect:function(e,t){Ti(4,2,e,t)},useMemo:function(e,t){var a=nt();t=t===void 0?null:t;var l=e();if(Za){ca(!0);try{e()}finally{ca(!1)}}return a.memoizedState=[l,t],l},useReducer:function(e,t,a){var l=nt();if(a!==void 0){var i=a(t);if(Za){ca(!0);try{a(t)}finally{ca(!1)}}}else i=t;return l.memoizedState=l.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},l.queue=e,e=e.dispatch=T1.bind(null,he,e),[l.memoizedState,e]},useRef:function(e){var t=nt();return e={current:e},t.memoizedState=e},useState:function(e){e=Dc(e);var t=e.queue,a=rd.bind(null,he,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Ec,useDeferredValue:function(e,t){var a=nt();return wc(a,e,t)},useTransition:function(){var e=Dc(!1);return e=nd.bind(null,he,e.queue,!0,!1),nt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var l=he,i=nt();if(xe){if(a===void 0)throw Error(r(407));a=a()}else{if(a=t(),Ee===null)throw Error(r(349));(ye&127)!==0||wo(l,t,a)}i.memoizedState=a;var s={value:a,getSnapshot:t};return i.queue=s,Wo(Oo.bind(null,l,s,e),[e]),l.flags|=2048,Al(9,{destroy:void 0},Uo.bind(null,l,s,a,t),null),a},useId:function(){var e=nt(),t=Ee.identifierPrefix;if(xe){var a=Ht,l=Rt;a=(l&~(1<<32-gt(l)-1)).toString(32)+a,t="_"+t+"R_"+a,a=Ni++,0<\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof l.is=="string"?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?s.multiple=!0:l.size&&(s.size=l.size);break;default:s=typeof l.is=="string"?o.createElement(i,{is:l.is}):o.createElement(i)}}s[Fe]=t,s[it]=l;e:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)s.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;o.sibling===null;){if(o.return===null||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=s;e:switch(et(s,i,l),i){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&$t(t)}}return Ue(t),Fc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&$t(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(r(166));if(e=ie.current,pl(t)){if(e=t.stateNode,a=t.memoizedProps,l=null,i=$e,i!==null)switch(i.tag){case 27:case 5:l=i.memoizedProps}e[Fe]=t,e=!!(e.nodeValue===a||l!==null&&l.suppressHydrationWarning===!0||Ef(e.nodeValue,a)),e||fa(t,!0)}else e=Wi(e).createTextNode(l),e[Fe]=t,t.stateNode=e}return Ue(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(l=pl(t),a!==null){if(e===null){if(!l)throw Error(r(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[Fe]=t}else qa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),e=!1}else a=sc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(bt(t),t):(bt(t),null);if((t.flags&128)!==0)throw Error(r(558))}return Ue(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=pl(t),l!==null&&l.dehydrated!==null){if(e===null){if(!i)throw Error(r(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(r(317));i[Fe]=t}else qa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),i=!1}else i=sc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(bt(t),t):(bt(t),null)}return bt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=l!==null,e=e!==null&&e.memoizedState!==null,a&&(l=t.child,i=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(i=l.alternate.memoizedState.cachePool.pool),s=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(s=l.memoizedState.cachePool.pool),s!==i&&(l.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),Ui(t,t.updateQueue),Ue(t),null);case 4:return Ve(),e===null&&yu(t.stateNode.containerInfo),Ue(t),null;case 10:return Zt(t.type),Ue(t),null;case 19:if(x(qe),l=t.memoizedState,l===null)return Ue(t),null;if(i=(t.flags&128)!==0,s=l.rendering,s===null)if(i)vn(l,!1);else{if(Re!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(s=xi(e),s!==null){for(t.flags|=128,vn(l,!1),e=s.updateQueue,t.updateQueue=e,Ui(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)uo(a,e),a=a.sibling;return E(qe,qe.current&1|2),xe&&Qt(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&ht()>Vi&&(t.flags|=128,i=!0,vn(l,!1),t.lanes=4194304)}else{if(!i)if(e=xi(s),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Ui(t,e),vn(l,!0),l.tail===null&&l.tailMode==="hidden"&&!s.alternate&&!xe)return Ue(t),null}else 2*ht()-l.renderingStartTime>Vi&&a!==536870912&&(t.flags|=128,i=!0,vn(l,!1),t.lanes=4194304);l.isBackwards?(s.sibling=t.child,t.child=s):(e=l.last,e!==null?e.sibling=s:t.child=s,l.last=s)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=ht(),e.sibling=null,a=qe.current,E(qe,i?a&1|2:a&1),xe&&Qt(t,l.treeForkCount),e):(Ue(t),null);case 22:case 23:return bt(t),bc(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(a&536870912)!==0&&(t.flags&128)===0&&(Ue(t),t.subtreeFlags&6&&(t.flags|=8192)):Ue(t),a=t.updateQueue,a!==null&&Ui(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==a&&(t.flags|=2048),e!==null&&x(Ja),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Zt(Ye),Ue(t),null;case 25:return null;case 30:return null}throw Error(r(156,t.tag))}function E1(e,t){switch(nc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Zt(Ye),Ve(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Qn(t),null;case 31:if(t.memoizedState!==null){if(bt(t),t.alternate===null)throw Error(r(340));qa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(bt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));qa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return x(qe),null;case 4:return Ve(),null;case 10:return Zt(t.type),null;case 22:case 23:return bt(t),bc(),e!==null&&x(Ja),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Zt(Ye),null;case 25:return null;default:return null}}function Ld(e,t){switch(nc(t),t.tag){case 3:Zt(Ye),Ve();break;case 26:case 27:case 5:Qn(t);break;case 4:Ve();break;case 31:t.memoizedState!==null&&bt(t);break;case 13:bt(t);break;case 19:x(qe);break;case 10:Zt(t.type);break;case 22:case 23:bt(t),bc(),e!==null&&x(Ja);break;case 24:Zt(Ye)}}function yn(e,t){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){l=void 0;var s=a.create,o=a.inst;l=s(),o.destroy=l}a=a.next}while(a!==i)}}catch(f){ze(t,t.return,f)}}function ba(e,t,a){try{var l=t.updateQueue,i=l!==null?l.lastEffect:null;if(i!==null){var s=i.next;l=s;do{if((l.tag&e)===e){var o=l.inst,f=o.destroy;if(f!==void 0){o.destroy=void 0,i=t;var g=a,S=f;try{S()}catch(M){ze(i,g,M)}}}l=l.next}while(l!==s)}}catch(M){ze(t,t.return,M)}}function Rd(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{To(t,a)}catch(l){ze(e,e.return,l)}}}function Hd(e,t,a){a.props=Ka(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(l){ze(e,t,l)}}function bn(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof a=="function"?e.refCleanup=a(l):a.current=l}}catch(i){ze(e,t,i)}}function Vt(e,t){var a=e.ref,l=e.refCleanup;if(a!==null)if(typeof l=="function")try{l()}catch(i){ze(e,t,i)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(i){ze(e,t,i)}else a.current=null}function Vd(e){var t=e.type,a=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&l.focus();break e;case"img":a.src?l.src=a.src:a.srcSet&&(l.srcset=a.srcSet)}}catch(i){ze(e,e.return,i)}}function $c(e,t,a){try{var l=e.stateNode;eg(l,e.type,a,t),l[it]=t}catch(i){ze(e,e.return,i)}}function qd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&_a(e.type)||e.tag===4}function Ic(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&_a(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Pc(e,t,a){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=Yt));else if(l!==4&&(l===27&&_a(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(Pc(e,t,a),e=e.sibling;e!==null;)Pc(e,t,a),e=e.sibling}function Oi(e,t,a){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(l!==4&&(l===27&&_a(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(Oi(e,t,a),e=e.sibling;e!==null;)Oi(e,t,a),e=e.sibling}function Bd(e){var t=e.stateNode,a=e.memoizedProps;try{for(var l=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);et(t,l,a),t[Fe]=e,t[it]=a}catch(s){ze(e,e.return,s)}}var It=!1,Qe=!1,eu=!1,Yd=typeof WeakSet=="function"?WeakSet:Set,We=null;function w1(e,t){if(e=e.containerInfo,xu=as,e=Pr(e),Zs(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var l=a.getSelection&&a.getSelection();if(l&&l.rangeCount!==0){a=l.anchorNode;var i=l.anchorOffset,s=l.focusNode;l=l.focusOffset;try{a.nodeType,s.nodeType}catch{a=null;break e}var o=0,f=-1,g=-1,S=0,M=0,L=e,N=null;t:for(;;){for(var A;L!==a||i!==0&&L.nodeType!==3||(f=o+i),L!==s||l!==0&&L.nodeType!==3||(g=o+l),L.nodeType===3&&(o+=L.nodeValue.length),(A=L.firstChild)!==null;)N=L,L=A;for(;;){if(L===e)break t;if(N===a&&++S===i&&(f=o),N===s&&++M===l&&(g=o),(A=L.nextSibling)!==null)break;L=N,N=L.parentNode}L=A}a=f===-1||g===-1?null:{start:f,end:g}}else a=null}a=a||{start:0,end:0}}else a=null;for(Su={focusedElem:e,selectionRange:a},as=!1,We=t;We!==null;)if(t=We,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,We=e;else for(;We!==null;){switch(t=We,s=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a title"))),et(s,l,a),s[Fe]=e,Ke(s),l=s;break e;case"link":var o=Wf("link","href",i).get(l+(a.href||""));if(o){for(var f=0;fCe&&(o=Ce,Ce=le,le=o);var y=$r(f,le),p=$r(f,Ce);if(y&&p&&(A.rangeCount!==1||A.anchorNode!==y.node||A.anchorOffset!==y.offset||A.focusNode!==p.node||A.focusOffset!==p.offset)){var j=L.createRange();j.setStart(y.node,y.offset),A.removeAllRanges(),le>Ce?(A.addRange(j),A.extend(p.node,p.offset)):(j.setEnd(p.node,p.offset),A.addRange(j))}}}}for(L=[],A=f;A=A.parentNode;)A.nodeType===1&&L.push({element:A,left:A.scrollLeft,top:A.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;fa?32:a,k.T=null,a=cu,cu=null;var s=Na,o=la;if(Ze=0,Ml=Na=null,la=0,(Ae&6)!==0)throw Error(r(331));var f=Ae;if(Ae|=4,Pd(s.current),Fd(s,s.current,o,a),Ae=f,An(0,!1),mt&&typeof mt.onPostCommitFiberRoot=="function")try{mt.onPostCommitFiberRoot(Yl,s)}catch{}return!0}finally{_.p=i,k.T=l,yf(e,t)}}function jf(e,t,a){t=_t(a,t),t=qc(e.stateNode,t,2),e=pa(e,t,2),e!==null&&(Gl(e,2),qt(e))}function ze(e,t,a){if(e.tag===3)jf(e,e,a);else for(;t!==null;){if(t.tag===3){jf(t,e,a);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Sa===null||!Sa.has(l))){e=_t(a,e),a=jd(2),l=pa(t,a,2),l!==null&&(xd(a,l,t,e),Gl(l,2),qt(l));break}}t=t.return}}function du(e,t,a){var l=e.pingCache;if(l===null){l=e.pingCache=new L1;var i=new Set;l.set(t,i)}else i=l.get(t),i===void 0&&(i=new Set,l.set(t,i));i.has(a)||(lu=!0,i.add(a),e=B1.bind(null,e,t,a),t.then(e,e))}function B1(e,t,a){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Ee===e&&(ye&a)===a&&(Re===4||Re===3&&(ye&62914560)===ye&&300>ht()-Hi?(Ae&2)===0&&Cl(e,0):nu|=a,Dl===ye&&(Dl=0)),qt(e)}function xf(e,t){t===0&&(t=hr()),e=Ha(e,t),e!==null&&(Gl(e,t),qt(e))}function Y1(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),xf(e,a)}function J1(e,t){var a=0;switch(e.tag){case 31:case 13:var l=e.stateNode,i=e.memoizedState;i!==null&&(a=i.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(r(314))}l!==null&&l.delete(t),xf(e,a)}function G1(e,t){return ks(e,t)}var Qi=null,wl=null,fu=!1,Xi=!1,hu=!1,Aa=0;function qt(e){e!==wl&&e.next===null&&(wl===null?Qi=wl=e:wl=wl.next=e),Xi=!0,fu||(fu=!0,X1())}function An(e,t){if(!hu&&Xi){hu=!0;do for(var a=!1,l=Qi;l!==null;){if(e!==0){var i=l.pendingLanes;if(i===0)var s=0;else{var o=l.suspendedLanes,f=l.pingedLanes;s=(1<<31-gt(42|e)+1)-1,s&=i&~(o&~f),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(a=!0,Af(l,s))}else s=ye,s=Fn(l,l===Ee?s:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(s&3)===0||Jl(l,s)||(a=!0,Af(l,s));l=l.next}while(a);hu=!1}}function Q1(){Sf()}function Sf(){Xi=fu=!1;var e=0;Aa!==0&&ag()&&(e=Aa);for(var t=ht(),a=null,l=Qi;l!==null;){var i=l.next,s=Nf(l,t);s===0?(l.next=null,a===null?Qi=i:a.next=i,i===null&&(wl=a)):(a=l,(e!==0||(s&3)!==0)&&(Xi=!0)),l=i}Ze!==0&&Ze!==5||An(e),Aa!==0&&(Aa=0)}function Nf(e,t){for(var a=e.suspendedLanes,l=e.pingedLanes,i=e.expirationTimes,s=e.pendingLanes&-62914561;0f)break;var M=g.transferSize,L=g.initiatorType;M&&wf(L)&&(g=g.responseEnd,o+=M*(g"u"?null:document;function Qf(e,t,a){var l=Ul;if(l&&typeof t=="string"&&t){var i=kt(t);i='link[rel="'+e+'"][href="'+i+'"]',typeof a=="string"&&(i+='[crossorigin="'+a+'"]'),Gf.has(i)||(Gf.add(i),e={rel:e,crossOrigin:a,href:t},l.querySelector(i)===null&&(t=l.createElement("link"),et(t,"link",e),Ke(t),l.head.appendChild(t)))}}function dg(e){na.D(e),Qf("dns-prefetch",e,null)}function fg(e,t){na.C(e,t),Qf("preconnect",e,t)}function hg(e,t,a){na.L(e,t,a);var l=Ul;if(l&&e&&t){var i='link[rel="preload"][as="'+kt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(i+='[imagesrcset="'+kt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(i+='[imagesizes="'+kt(a.imageSizes)+'"]')):i+='[href="'+kt(e)+'"]';var s=i;switch(t){case"style":s=Ol(e);break;case"script":s=Ll(e)}Et.has(s)||(e=T({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),Et.set(s,e),l.querySelector(i)!==null||t==="style"&&l.querySelector(Dn(s))||t==="script"&&l.querySelector(Mn(s))||(t=l.createElement("link"),et(t,"link",e),Ke(t),l.head.appendChild(t)))}}function mg(e,t){na.m(e,t);var a=Ul;if(a&&e){var l=t&&typeof t.as=="string"?t.as:"script",i='link[rel="modulepreload"][as="'+kt(l)+'"][href="'+kt(e)+'"]',s=i;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=Ll(e)}if(!Et.has(s)&&(e=T({rel:"modulepreload",href:e},t),Et.set(s,e),a.querySelector(i)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Mn(s)))return}l=a.createElement("link"),et(l,"link",e),Ke(l),a.head.appendChild(l)}}}function gg(e,t,a){na.S(e,t,a);var l=Ul;if(l&&e){var i=ll(l).hoistableStyles,s=Ol(e);t=t||"default";var o=i.get(s);if(!o){var f={loading:0,preload:null};if(o=l.querySelector(Dn(s)))f.loading=5;else{e=T({rel:"stylesheet",href:e,"data-precedence":t},a),(a=Et.get(s))&&Du(e,a);var g=o=l.createElement("link");Ke(g),et(g,"link",e),g._p=new Promise(function(S,M){g.onload=S,g.onerror=M}),g.addEventListener("load",function(){f.loading|=1}),g.addEventListener("error",function(){f.loading|=2}),f.loading|=4,$i(o,t,l)}o={type:"stylesheet",instance:o,count:1,state:f},i.set(s,o)}}}function pg(e,t){na.X(e,t);var a=Ul;if(a&&e){var l=ll(a).hoistableScripts,i=Ll(e),s=l.get(i);s||(s=a.querySelector(Mn(i)),s||(e=T({src:e,async:!0},t),(t=Et.get(i))&&Mu(e,t),s=a.createElement("script"),Ke(s),et(s,"link",e),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},l.set(i,s))}}function vg(e,t){na.M(e,t);var a=Ul;if(a&&e){var l=ll(a).hoistableScripts,i=Ll(e),s=l.get(i);s||(s=a.querySelector(Mn(i)),s||(e=T({src:e,async:!0,type:"module"},t),(t=Et.get(i))&&Mu(e,t),s=a.createElement("script"),Ke(s),et(s,"link",e),a.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},l.set(i,s))}}function Xf(e,t,a,l){var i=(i=ie.current)?Fi(i):null;if(!i)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Ol(a.href),a=ll(i).hoistableStyles,l=a.get(t),l||(l={type:"style",instance:null,count:0,state:null},a.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Ol(a.href);var s=ll(i).hoistableStyles,o=s.get(e);if(o||(i=i.ownerDocument||i,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(e,o),(s=i.querySelector(Dn(e)))&&!s._p&&(o.instance=s,o.state.loading=5),Et.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},Et.set(e,a),s||yg(i,e,a,o.state))),t&&l===null)throw Error(r(528,""));return o}if(t&&l!==null)throw Error(r(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ll(a),a=ll(i).hoistableScripts,l=a.get(t),l||(l={type:"script",instance:null,count:0,state:null},a.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function Ol(e){return'href="'+kt(e)+'"'}function Dn(e){return'link[rel="stylesheet"]['+e+"]"}function Zf(e){return T({},e,{"data-precedence":e.precedence,precedence:null})}function yg(e,t,a,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),et(t,"link",a),Ke(t),e.head.appendChild(t))}function Ll(e){return'[src="'+kt(e)+'"]'}function Mn(e){return"script[async]"+e}function Kf(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+kt(a.href)+'"]');if(l)return t.instance=l,Ke(l),l;var i=T({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),Ke(l),et(l,"style",i),$i(l,a.precedence,e),t.instance=l;case"stylesheet":i=Ol(a.href);var s=e.querySelector(Dn(i));if(s)return t.state.loading|=4,t.instance=s,Ke(s),s;l=Zf(a),(i=Et.get(i))&&Du(l,i),s=(e.ownerDocument||e).createElement("link"),Ke(s);var o=s;return o._p=new Promise(function(f,g){o.onload=f,o.onerror=g}),et(s,"link",l),t.state.loading|=4,$i(s,a.precedence,e),t.instance=s;case"script":return s=Ll(a.src),(i=e.querySelector(Mn(s)))?(t.instance=i,Ke(i),i):(l=a,(i=Et.get(s))&&(l=T({},a),Mu(l,i)),e=e.ownerDocument||e,i=e.createElement("script"),Ke(i),et(i,"link",l),e.head.appendChild(i),t.instance=i);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,$i(l,a.precedence,e));return t.instance}function $i(e,t,a){for(var l=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=l.length?l[l.length-1]:null,s=i,o=0;o title"):null)}function bg(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function $f(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function jg(e,t,a,l){if(a.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var i=Ol(l.href),s=t.querySelector(Dn(i));if(s){t=s._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Pi.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=s,Ke(s);return}s=t.ownerDocument||t,l=Zf(l),(i=Et.get(i))&&Du(l,i),s=s.createElement("link"),Ke(s);var o=s;o._p=new Promise(function(f,g){o.onload=f,o.onerror=g}),et(s,"link",l),a.instance=s}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=Pi.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var Cu=0;function xg(e,t){return e.stylesheets&&e.count===0&&ts(e,e.stylesheets),0Cu?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(i)}}:null}function Pi(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ts(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var es=null;function ts(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,es=new Map,t.forEach(Sg,e),es=null,Pi.call(e))}function Sg(e,t){if(!(t.state.loading&4)){var a=es.get(e);if(a)var l=a.get(null);else{a=new Map,es.set(e,a);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(d)}catch(c){console.error(c)}}return d(),qu.exports=Hg(),qu.exports}var qg=Vg();class Bg{observers=new Set;next(c){this.observers.forEach(u=>u(c))}asObservable(){return{subscribe:c=>(this.observers.add(c),{unsubscribe:()=>this.observers.delete(c)})}}}class Yg extends Bg{currentValue;constructor(c){super(),this.currentValue=c}next(c){this.currentValue=c,super.next(c)}get value(){return this.currentValue}asObservable(){return{subscribe:c=>(c(this.currentValue),super.asObservable().subscribe(c))}}}class Jg{authId="id";authToken="token";authEmail="email";runOutDate="runOutDate";authTokenSubject=new Yg(null);constructor(){}async loadAuthTokenFromStorage(){const c=window.localStorage.getItem(this.authToken);this.authTokenSubject.next(c)}async setAuthData(c,u){if(await this.setPreference(this.authId,c.id),await this.setPreference(this.authToken,c.token),await this.setPreference(this.authEmail,c.email),u)await this.setPreference(this.runOutDate,"forever");else{const r=new Date,m=new Date(r);m.setDate(r.getDate()+1);const v=m.toISOString();await this.setPreference(this.runOutDate,v)}}async setPreference(c,u){window.localStorage.setItem(c,u)}async getCandidateId(){return window.localStorage.getItem(this.authId)}async getCandidateEmail(){return window.localStorage.getItem(this.authEmail)}async getAuthToken(){return window.localStorage.getItem(this.authToken)}getAuthTokenNoneAsync(){return this.authTokenSubject.value}async getRunOutDate(){return window.localStorage.getItem(this.runOutDate)}async clearCredentials(){window.localStorage.removeItem(this.authId),window.localStorage.removeItem(this.authToken),window.localStorage.removeItem(this.runOutDate)}async getAuth(){let c=await this.getCandidateId(),u=await this.getAuthToken(),r=await this.getCandidateEmail(),m=await this.getRunOutDate();return c&&u&&r&&m?{id:c,token:u,email:r,runOutDate:m}:null}getAuthTokenWithoutWindow(){const c=this.getAuthTokenNoneAsync();return c||""}getAuthWithoutWindow(){const c=this.getAuthTokenNoneAsync();return c?{id:"",token:c,email:"",runOutDate:"forever"}:null}}const ql=new Jg;const qh=(...d)=>d.filter((c,u,r)=>!!c&&c.trim()!==""&&r.indexOf(c)===u).join(" ").trim();const Gg=d=>d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const Qg=d=>d.replace(/^([A-Z])|[\s-_]+(\w)/g,(c,u,r)=>r?r.toUpperCase():u.toLowerCase());const xh=d=>{const c=Qg(d);return c.charAt(0).toUpperCase()+c.slice(1)};var Xg={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Zg=d=>{for(const c in d)if(c.startsWith("aria-")||c==="role"||c==="title")return!0;return!1};const Kg=C.forwardRef(({color:d="currentColor",size:c=24,strokeWidth:u=2,absoluteStrokeWidth:r,className:m="",children:v,iconNode:U,...Y},R)=>C.createElement("svg",{ref:R,...Xg,width:c,height:c,stroke:d,strokeWidth:r?Number(u)*24/Number(c):u,className:qh("lucide",m),...!v&&!Zg(Y)&&{"aria-hidden":"true"},...Y},[...U.map(([b,V])=>C.createElement(b,V)),...Array.isArray(v)?v:[v]]));const X=(d,c)=>{const u=C.forwardRef(({className:r,...m},v)=>C.createElement(Kg,{ref:v,iconNode:c,className:qh(`lucide-${Gg(xh(d))}`,`lucide-${d}`,r),...m}));return u.displayName=xh(d),u};const Wg=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Bh=X("arrow-left",Wg);const Fg=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],$a=X("arrow-right",Fg);const $g=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Ig=X("arrow-up-down",$g);const Pg=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Yh=X("badge-check",Pg);const ep=[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]],tp=X("bolt",ep);const ap=[["path",{d:"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",key:"oz39mx"}]],lp=X("bookmark",ap);const np=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Jh=X("bot",np);const ip=[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],Iu=X("briefcase-business",ip);const sp=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],sr=X("briefcase",sp);const cp=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],up=X("calendar-days",cp);const rp=[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]],Gh=X("car",rp);const op=[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]],dp=X("check-check",op);const fp=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],hp=X("check",fp);const mp=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Hn=X("chevron-down",mp);const gp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],tt=X("circle-check",gp);const pp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"10",x2:"10",y1:"15",y2:"9",key:"c1nkhi"}],["line",{x1:"14",x2:"14",y1:"15",y2:"9",key:"h65svq"}]],vp=X("circle-pause",pp);const yp=[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],bp=X("circle-play",yp);const jp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],xp=X("circle-plus",jp);const Sp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]],Np=X("circle-stop",Sp);const kp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],Ap=X("circle-user",kp);const _p=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]],Pu=X("clock-3",_p);const Tp=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],er=X("code-xml",Tp);const zp=[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]],tr=X("crown",zp);const Dp=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],Mp=X("ellipsis",Dp);const Cp=[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]],Ep=X("file-plus-corner",Cp);const wp=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],ar=X("file-text",wp);const Up=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Qh=X("funnel",Up);const Op=[["line",{x1:"6",x2:"10",y1:"11",y2:"11",key:"1gktln"}],["line",{x1:"8",x2:"8",y1:"9",y2:"13",key:"qnk9ow"}],["line",{x1:"15",x2:"15.01",y1:"12",y2:"12",key:"krot7o"}],["line",{x1:"18",x2:"18.01",y1:"10",y2:"10",key:"1lcuu1"}],["path",{d:"M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z",key:"mfqc10"}]],Lp=X("gamepad-2",Op);const Rp=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8",key:"1sqzm4"}],["path",{d:"M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5",key:"kc0143"}],["rect",{x:"3",y:"7",width:"18",height:"4",rx:"1",key:"1hberx"}]],Hp=X("gift",Rp);const Vp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],gs=X("globe",Vp);const qp=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],Xh=X("graduation-cap",qp);const Bp=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],Zh=X("grid-3x3",Bp);const Yp=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Jp=X("info",Yp);const Gp=[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]],lr=X("laptop",Gp);const Qp=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Xp=X("layout-grid",Qp);const Zp=[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}]],Kh=X("layout-panel-top",Zp);const Kp=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]],Wp=X("lightbulb",Kp);const Fp=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],$p=X("link-2",Fp);const Ip=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],Wh=X("lock-keyhole",Ip);const Pp=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],ev=X("log-out",Pp);const tv=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],ps=X("mail",tv);const av=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],Yn=X("map-pin",av);const lv=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],Fh=X("message-circle",lv);const nv=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],iv=X("mic",nv);const sv=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],cv=X("monitor",sv);const uv=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],rv=X("moon",uv);const ov=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],dv=X("paperclip",ov);const fv=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],hv=X("pen-line",fv);const mv=[["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],gv=X("phone",mv);const pv=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],vv=X("play",pv);const yv=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],bv=X("plus",yv);const jv=[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]],xv=X("presentation",jv);const Sv=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],Nv=X("radar",Sv);const kv=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],Av=X("radio",kv);const _v=[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]],Tv=X("rocket",_v);const zv=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],Sh=X("route",zv);const Dv=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],Mv=X("save",Dv);const Cv=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],nr=X("search",Cv);const Ev=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],wv=X("send",Ev);const Uv=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],$h=X("settings",Uv);const Ov=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Lv=X("shield",Ov);const Rv=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],Hv=X("smile",Rv);const Vv=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Gn=X("sparkles",Vv);const qv=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Ih=X("square-pen",qv);const Bv=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Ph=X("star",Bv);const Yv=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Jv=X("sun",Yv);const Gv=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],vs=X("target",Gv);const Qv=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],Xv=X("trophy",Qv);const Zv=[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]],Hl=X("user-round",Zv);const Kv=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Nh=X("user",Kv);const Wv=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Fv=X("users",Wv);const $v=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],Iv=X("wand-sparkles",$v);const Pv=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],kh=X("x",Pv);function Vl({icon:d,label:c,...u}){return n.jsxs("label",{className:"auth-field",children:[n.jsx("span",{children:c}),n.jsxs("div",{className:"auth-input-wrap",children:[n.jsx("span",{className:"auth-input-icon","aria-hidden":!0,children:d}),n.jsx("input",{...u})]})]})}function e0({email:d,loading:c,onBackToLogin:u,onChangeEmail:r,onSubmit:m}){return n.jsxs("div",{className:"auth-view view-enter",children:[n.jsxs("div",{className:"auth-head",children:[n.jsx("button",{className:"link-btn back-link",type:"button",onClick:u,children:"Tilbage"}),n.jsx("h1",{children:"Glemt kodeord?"}),n.jsx("p",{children:"Indtast din e-mail, sa sender vi instruktioner til at nulstille din kode."})]}),n.jsxs("form",{className:"auth-form",onSubmit:m,children:[n.jsx(Vl,{icon:n.jsx(ps,{size:16,strokeWidth:1.8}),label:"E-mail",type:"email",placeholder:"navn@eksempel.dk",value:d,onChange:v=>r(v.target.value),required:!0}),n.jsx("button",{className:"submit-btn",type:"submit",disabled:c,children:c?"Sender...":"Send nulstillingslink"})]})]})}function t0({email:d,loading:c,onChangeEmail:u,onChangePassword:r,onChangeRememberMe:m,onForgotPassword:v,onRegister:U,onSubmit:Y,password:R,rememberMe:b}){return n.jsxs("div",{className:"auth-view view-enter",children:[n.jsxs("div",{className:"auth-head auth-head-center",children:[n.jsx("h1",{children:"Velkommen tilbage"}),n.jsx("p",{children:"Indtast dine oplysninger for at logge ind pa din konto."})]}),n.jsxs("form",{className:"auth-form",onSubmit:Y,children:[n.jsx(Vl,{icon:n.jsx(ps,{size:16,strokeWidth:1.8}),label:"E-mail",type:"email",placeholder:"navn@eksempel.dk",value:d,onChange:V=>u(V.target.value),required:!0}),n.jsxs("label",{className:"auth-field",children:[n.jsxs("div",{className:"auth-field-row",children:[n.jsx("span",{children:"Adgangskode"}),n.jsx("button",{className:"link-btn",type:"button",onClick:v,children:"Glemt adgangskode?"})]}),n.jsxs("div",{className:"auth-input-wrap",children:[n.jsx("span",{className:"auth-input-icon","aria-hidden":!0,children:n.jsx(Wh,{size:16,strokeWidth:1.8})}),n.jsx("input",{type:"password",placeholder:"••••••••",value:R,onChange:V=>r(V.target.value),required:!0})]})]}),n.jsxs("label",{className:"check-row",children:[n.jsx("input",{type:"checkbox",checked:b,onChange:V=>m(V.target.checked)}),n.jsx("span",{children:"Husk mig i 30 dage"})]}),n.jsx("button",{className:"submit-btn",type:"submit",disabled:c,children:c?"Logger ind...":"Log ind"})]}),n.jsxs("p",{className:"auth-foot",children:["Har du ikke en konto?",n.jsx("button",{className:"link-btn",type:"button",onClick:U,children:"Opret bruger"})]})]})}function a0({email:d,firstName:c,lastName:u,loading:r,locationQuery:m,locationSuggestions:v,onBackToLogin:U,onChangeEmail:Y,onChangeFirstName:R,onChangeLastName:b,onChangeLocationQuery:V,onChangePassword:T,onSelectLocation:q,onSubmit:Q,password:ee}){return n.jsxs("div",{className:"auth-view view-enter",children:[n.jsxs("div",{className:"auth-head auth-head-center",children:[n.jsx("h1",{children:"Opret konto"}),n.jsx("p",{children:"Start din karriere-rejse med os i dag."})]}),n.jsxs("form",{className:"auth-form",onSubmit:Q,children:[n.jsx(Vl,{icon:n.jsx(Nh,{size:16,strokeWidth:1.8}),label:"Fornavn",type:"text",placeholder:"Lasse",value:c,onChange:B=>R(B.target.value),required:!0}),n.jsx(Vl,{icon:n.jsx(Nh,{size:16,strokeWidth:1.8}),label:"Efternavn",type:"text",placeholder:"Hansen",value:u,onChange:B=>b(B.target.value),required:!0}),n.jsx(Vl,{icon:n.jsx(ps,{size:16,strokeWidth:1.8}),label:"E-mail",type:"email",placeholder:"navn@eksempel.dk",value:d,onChange:B=>Y(B.target.value),required:!0}),n.jsx(Vl,{icon:n.jsx(Wh,{size:16,strokeWidth:1.8}),label:"Adgangskode",type:"password",placeholder:"Skab en staerk kode",value:ee,onChange:B=>T(B.target.value),required:!0,minLength:8}),n.jsxs("label",{className:"auth-field",children:[n.jsx("span",{children:"Lokation"}),n.jsxs("div",{className:"auth-input-wrap",children:[n.jsx("span",{className:"auth-input-icon","aria-hidden":!0,children:n.jsx(Yn,{size:16,strokeWidth:1.8})}),n.jsx("input",{type:"text",placeholder:"Soeg by eller adresse",value:m,onChange:B=>V(B.target.value),autoComplete:"off",required:!0})]}),v.length>0?n.jsx("div",{className:"location-suggestions",children:v.map(B=>n.jsx("button",{type:"button",className:"location-suggestion-item",onClick:()=>{q(B.placeId,B.description)},children:B.description},B.placeId))}):null]}),n.jsx("button",{className:"submit-btn",type:"submit",disabled:r,children:r?"Opretter...":"Opret bruger"})]}),n.jsxs("p",{className:"auth-foot",children:["Har du allerede en konto?",n.jsx("button",{className:"link-btn",type:"button",onClick:U,children:"Log ind"})]})]})}class Ia{searchParams;constructor(c){this.searchParams=c?new URLSearchParams(c):new URLSearchParams}append(c,u){const r=new URLSearchParams(this.searchParams);return r.append(c,String(u)),new Ia(r)}set(c,u){const r=new URLSearchParams(this.searchParams);return r.set(c,String(u)),new Ia(r)}toString(){return this.searchParams.toString()}}function rs(d,c){if(!c)return d;const u=new URL(d);if(c instanceof Ia){const r=c.toString();return r&&new URLSearchParams(r).forEach((v,U)=>u.searchParams.append(U,v)),u.toString()}return Object.entries(c).forEach(([r,m])=>{if(Array.isArray(m)){m.forEach(v=>u.searchParams.append(r,String(v)));return}u.searchParams.set(r,String(m))}),u.toString()}async function os(d,c="json"){if(!d.ok){const u=await d.text();throw new Error(u||`HTTP ${d.status}`)}if(d.status!==204)return c==="blob"?await d.blob():await d.json()}function ds(d){const c=typeof window>"u"?null:window.localStorage.getItem("token");return{...c?{Authorization:`Bearer ${c}`}:{},...d??{}}}class l0{async get(c,u){const r=await fetch(rs(c,u?.params),{method:"GET",headers:ds(u?.headers)});return os(r,u?.responseType)}async post(c,u,r){const m=await fetch(rs(c,r?.params),{method:"POST",headers:{"Content-Type":"application/json",...ds(r?.headers)},body:u===void 0?void 0:JSON.stringify(u)});return os(m)}async put(c,u,r){const m=await fetch(rs(c,r?.params),{method:"PUT",headers:{"Content-Type":"application/json",...ds(r?.headers)},body:u===void 0?void 0:JSON.stringify(u)});return os(m)}async delete(c,u){const r=await fetch(rs(c,u?.params),{method:"DELETE",headers:ds(u?.headers)});return os(r)}}const He=new l0,z={backendApi:"https://api.arbejd.com/",backendApiV2:"https://api2.arbejd.com/api/"};class n0{http;constructor(c=He){this.http=c}login(c,u){let r=z.backendApi+"api/1.1.0/candidate/login",m={email:c,password:u};return this.http.post(r,m)}forgotPassword(c){let u=z.backendApi+"api/1.1.0/candidate/resetPassword/"+c.toLowerCase();return this.http.get(u)}}class Pa{constructor(c=He,u=ql){this.http=c,this.localStorageService=u}closeAccount(c){let u=z.backendApi+"api/1.1.0/candidate/"+c.toLowerCase();return this.http.delete(u)}accountRetention(c){let u=z.backendApi+"api/1.1.0/candidate/"+c+"/account-retention/";return this.http.get(u)}getCandidatesQualifications(){let c=z.backendApi+"api/1.1.0/candidate/skill/";return this.http.get(c)}getCandidatesCertifications(){let c=z.backendApi+"api/1.1.0/candidate/certificate/";return this.http.get(c)}getCandidatesLanguages(){let c=z.backendApi+"api/1.1.0/candidate/language/";return this.http.get(c)}getCandidatesDriverLicenses(){let c=z.backendApi+"api/1.1.0/candidate/driversLicense/";return this.http.get(c)}changePassword(c,u){let r=z.backendApi+"api/1.1.0/candidate/resetPassword",m={key:c,password:u};return this.http.post(r,m)}getCandidatesEducations(){let c=z.backendApiV2+"1.0.0/client/candidate_education";return this.http.get(c)}updateExperience(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_experience/"+c.id,m={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.put(r,m)}createAccountV2(c){let u=z.backendApiV2+"1.0.0/client/candidate";return this.http.post(u,c)}updateCandidate(c,u){let r=z.backendApiV2+"1.0.0/client/candidate/v2/"+c.id,m={...c};c.birthday&&(c.birthday=new Date(c.birthday)),c.birthday instanceof Date&&(m.birthday=c.birthday.toISOString());let v={language:u,candidate:m};return this.http.put(r,v)}getCandidate(){let c=z.backendApiV2+"1.0.0/client/candidate";return this.http.get(c)}getCvSuggestion(){let c=z.backendApiV2+"1.0.0/client/suggestion";return this.http.get(c)}saveExperience(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_experience",m={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,esco_id:c.occupation.id,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.post(r,m)}removeExperience(c){let u=z.backendApiV2+"1.0.0/client/candidate_experience/"+c;return this.http.delete(u)}getCandidatesExperiences(){let c=z.backendApiV2+"1.0.0/client/candidate_experience";return this.http.get(c)}getJobAgentFilters(){let c=z.backendApiV2+"1.0.0/client/job_agent_filter";return this.http.get(c)}updateJobAgentFilter(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter/"+c.id,r=c;return this.http.put(u,r)}removeJobAgentFilter(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter/"+c;return this.http.delete(u)}updateCandidateJobSeeker(c){let u=z.backendApiV2+"1.0.0/client/candidate/update_job_seeker/"+c.id;return this.http.put(u,c)}updateCvUploadProfileText(c,u,r){let m=z.backendApiV2+"1.0.0/client/candidate/update_cv_upload_profile/"+c,v={description:u,language:r};return this.http.put(m,v)}saveExperienceV2(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_experience",m={comments:c.comments,company_name:c.companyName,is_current:c.isCurrent,esco_id:c.escoId,from_date:c.fromDate,to_date:c.toDate,language:u};return this.http.post(r,m)}updateProfileText(c){let u=z.backendApiV2+"1.0.0/client/candidate/update_profile_text";return this.http.put(u,c)}}function Gu(d,c){const u=d[c];return typeof u=="string"?u:null}class i0{authService;candidateService;constructor(c=new n0,u=new Pa){this.authService=c,this.candidateService=u}async login(c,u,r){const v=await this.authService.login(c,u)??{},U=Gu(v,"token");if(!U)return{ok:!1,message:"Login fejlede: token mangler i svaret fra serveren."};const Y={id:Gu(v,"id")??"",token:U,email:Gu(v,"email")??c,runOutDate:"forever"};return await ql.setAuthData(Y,r),{ok:!0,message:"Du er nu logget ind."}}async forgotPassword(c){return await this.authService.forgotPassword(c),{ok:!0,message:"Anmodning om nulstilling af kodeord er sendt."}}async register(c){const u=Number.parseInt(c.zip,10);if(Number.isNaN(u))return{ok:!1,message:"Postnummer skal være et tal."};const r={email:c.email,password:c.password,zip:u,zipName:c.zipName,awsUrl:"",latitude:0,longitude:0,firstName:c.firstName,lastName:c.lastName,subscribe:c.subscribe};return await this.candidateService.createAccountV2(r),{ok:!0,message:"Kontoen er oprettet."}}}class em{constructor(c=He){this.http=c}searchPlaces(c){const u=z.backendApiV2+"client/google_maps/1.0.0/get_places?query="+encodeURIComponent(c);return this.http.get(u)}getPlaceDetails(c){const u=z.backendApiV2+"client/google_maps/1.0.0/get_place_details?place_id="+encodeURIComponent(c);return this.http.get(u)}}function s0(d){const c=C.useMemo(()=>new i0,[]),u=C.useMemo(()=>new em,[]),[r,m]=C.useState(""),[v,U]=C.useState(!1),[Y,R]=C.useState(""),[b,V]=C.useState(""),[T,q]=C.useState(""),[Q,ee]=C.useState(""),[B,re]=C.useState(""),[oe,ge]=C.useState(""),[K,ne]=C.useState([]),[se,Z]=C.useState(null),[D,fe]=C.useState(""),[je,Se]=C.useState(!1),[H,J]=C.useState(null),[ae,P]=C.useState("login");function W(x){J(null),P(x)}async function k(x){const E=x.trim();if(E.length<3){ne([]);return}try{const ce=((await u.searchPlaces(E)).predictions??[]).filter(ie=>typeof ie.place_id=="string"&&typeof ie.description=="string").map(ie=>({description:ie.description,placeId:ie.place_id}));ne(ce)}catch{ne([])}}function _(x){const E=x.match(/\b(\d{4})\b/);if(!E)return null;const G=E[1],ie=x.slice(x.indexOf(G)+G.length).trim().split(",")[0]?.trim()||"";return ie?{cityName:ie,zip:G}:null}async function O(x,E){let G=E;try{const ie=await u.getPlaceDetails(x);typeof ie.result?.formatted_address=="string"&&ie.result.formatted_address.trim()&&(G=ie.result.formatted_address.trim())}catch{}const ce=_(G)??_(E);if(ge(G),ne([]),!ce){Z(null);return}Z({cityName:ce.cityName,description:G,zip:ce.zip})}async function I(x){x.preventDefault(),U(!0),J(null);try{const E=await c.login(Y.trim(),b,je);J(E),E.ok&&d?.()}catch(E){const G=E instanceof Error?E.message:"Login mislykkedes.";J({ok:!1,message:G})}finally{U(!1)}}async function ue(x){x.preventDefault(),U(!0),J(null);try{if(!se){J({ok:!1,message:"Vaelg en lokation fra listen (med postnummer)."});return}const E=await c.register({email:Q.trim(),firstName:T.trim(),lastName:B.trim(),password:D,subscribe:!0,zip:se.zip,zipName:se.cityName});J(E),E.ok&&P("login")}catch(E){const G=E instanceof Error?E.message:"Oprettelse mislykkedes.";J({ok:!1,message:G})}finally{U(!1)}}async function h(x){x.preventDefault(),U(!0),J(null);try{const E=await c.forgotPassword(r.trim());J(E)}catch(E){const G=E instanceof Error?E.message:"Kunne ikke sende nulstillingslink.";J({ok:!1,message:G})}finally{U(!1)}}return{forgotEmail:r,handleForgotSubmit:h,handleLoginSubmit:I,handleRegisterSubmit:ue,loading:v,loginEmail:Y,loginPassword:b,registerFirstName:T,registerEmail:Q,registerLastName:B,registerLocationQuery:oe,registerLocationSuggestions:K,registerPassword:D,rememberMe:je,result:H,setForgotEmail:m,setLoginEmail:R,setLoginPassword:V,setRegisterEmail:ee,setRegisterFirstName:q,setRegisterLastName:re,setRegisterLocationQuery:x=>{ge(x),Z(null),k(x)},setRegisterPassword:fe,setRememberMe:Se,selectRegisterLocation:O,switchView:W,view:ae}}function c0({onAuthenticated:d}){const{forgotEmail:c,handleForgotSubmit:u,handleLoginSubmit:r,handleRegisterSubmit:m,loading:v,loginEmail:U,loginPassword:Y,registerFirstName:R,registerEmail:b,registerLastName:V,registerLocationQuery:T,registerLocationSuggestions:q,registerPassword:Q,rememberMe:ee,result:B,setForgotEmail:re,setLoginEmail:oe,setLoginPassword:ge,setRegisterEmail:K,setRegisterFirstName:ne,setRegisterLastName:se,setRegisterLocationQuery:Z,setRegisterPassword:D,setRememberMe:fe,selectRegisterLocation:je,switchView:Se,view:H}=s0(d);return n.jsxs("main",{className:"auth-page",children:[n.jsx("div",{className:"orb orb-1"}),n.jsx("div",{className:"orb orb-2"}),n.jsx("div",{className:"orb orb-3"}),n.jsxs("div",{className:"auth-logo-wrap",children:[n.jsx("div",{className:"auth-logo-dot",children:"A"}),n.jsx("span",{className:"auth-logo-text",children:"ARBEJD"})]}),n.jsxs("section",{className:"auth-card",children:[H==="login"?n.jsx(t0,{email:U,loading:v,onChangeEmail:oe,onChangePassword:ge,onChangeRememberMe:fe,onForgotPassword:()=>Se("forgot"),onRegister:()=>Se("register"),onSubmit:r,password:Y,rememberMe:ee}):null,H==="register"?n.jsx(a0,{email:b,firstName:R,lastName:V,loading:v,locationQuery:T,locationSuggestions:q,onBackToLogin:()=>Se("login"),onChangeEmail:K,onChangeFirstName:ne,onChangeLastName:se,onChangeLocationQuery:Z,onChangePassword:D,onSelectLocation:je,onSubmit:m,password:Q}):null,H==="forgot"?n.jsx(e0,{email:c,loading:v,onBackToLogin:()=>Se("login"),onChangeEmail:re,onSubmit:u}):null,B?n.jsx("p",{className:B.ok?"status success":"status error",children:B.message}):null]},H)]})}class tm{constructor(c=He){this.http=c}listEscoByParent(c){let u=z.backendApiV2+"1.0.0/client/esco";return c&&(u+="/"+c),this.http.get(u)}listAllEscos(){let c=z.backendApiV2+"1.0.0/client/esco";return this.http.get(c)}}class u0{constructor(c=He){this.http=c}addEscoToJobAgent(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter",r={esco_id:c};return this.http.post(u,r)}removeJobAgentFilter(c){let u=z.backendApiV2+"1.0.0/client/job_agent_filter/"+c;return this.http.delete(u)}}class ys{constructor(c=He){this.http=c}getPaymentOverview(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/payment_overview";return this.http.get(c)}getSubscriptionProducts(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/get_products";return this.http.get(c)}deactivateAutoRenew(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/deactivate_auto_renew";return this.http.put(c,{})}activateAutoRenew(){let c=z.backendApiV2+"client/end_user_subscription/1.0.0/activate_auto_renew";return this.http.put(c,{})}redeemCode(c){let u=z.backendApiV2+"client/candidate_redeem_code/v1";return this.http.post(u,{code:c})}}class am{constructor(c=new Pa,u=new ys,r=new u0,m=new tm){this.candidateService=c,this.subscriptionService=u,this.jobAgentService=r,this.escoService=m}async loadInitialData(){const[c,u,r,m]=await Promise.allSettled([this.subscriptionService.getPaymentOverview(),this.candidateService.getJobAgentFilters(),this.candidateService.getCvSuggestion(),this.escoService.listAllEscos()]);return{paymentOverview:c.status==="fulfilled"?c.value:null,jobAgentFilters:u.status==="fulfilled"?u.value:[],cvSuggestions:r.status==="fulfilled"?this.withImprovements(r.value):[],escos:m.status==="fulfilled"?m.value:[]}}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate(),u=c.firstName?.trim()||c.name?.trim()||"Lasse",r=c.imageUrl||c.image||void 0;return{name:u,imageUrl:r}}catch{return{name:"Lasse"}}}async addEscoToFilter(c){await this.jobAgentService.addEscoToJobAgent(c)}async removeFilter(c){await this.jobAgentService.removeJobAgentFilter(c)}async setFilterVisibility(c,u){await this.candidateService.updateJobAgentFilter({...c,visible:u})}getEscoSuggestions(c,u,r){const m=c.trim().toLowerCase();if(!m)return[];const v=new Set(r.map(U=>U.escoId));return u.filter(U=>!v.has(U.id)).filter(U=>U.preferedLabelDa.toLowerCase().includes(m)).slice(0,10)}getSuggestionText(c){return c>=0&&c<50?"Et godt første skridt mod flere relevante job.":c>=50&&c<100?"Kan styrke dine chancer i ansøgningsbunken.":c>=100&&c<150?"Ofte efterspurgt og forbedrer dine jobmuligheder markant.":c>=150&&c<200?"Et klart plus som gør dig mere attraktiv for arbejdsgivere.":c>=200?"En afgørende faktor der åbner langt flere jobmuligheder.":"Forbedrer din profil til kommende jobmatch."}withImprovements(c){return c.map(u=>{const r=[],m=[{items:u.jobImprovementSuggestion.educations??[],type:"education"},{items:u.jobImprovementSuggestion.languages??[],type:"language"},{items:u.jobImprovementSuggestion.driversLicenses??[],type:"driversLicense"},{items:u.jobImprovementSuggestion.qualifications??[],type:"qualification"},{items:u.jobImprovementSuggestion.certificates??[],type:"certificate"}];for(const v of m)for(const U of v.items)r.push({...U,improvementType:v.type});return r.sort((v,U)=>U.jobChanceIncrease-v.jobChanceIncrease),{...u,improvements:r}})}}class r0{constructor(c=He){this.http=c}saveJobFilter(c){let u=z.backendApiV2+"1.0.0/client/candidate_search_filter";return this.http.post(u,c)}getJobFilter(){let c=z.backendApiV2+"1.0.0/client/candidate_search_filter";return this.http.get(c)}resetJobFilter(){let c=z.backendApiV2+"1.0.0/client/candidate_search_filter/reset_job_filter";return this.http.put(c,{})}}class cr{http;constructor(c=He){this.http=c}getSearchWords(){let c=z.backendApiV2+"1.0.0/client/candidate_search/list_search_words";return this.http.get(c)}getJobs(c,u,r){let m=z.backendApi+"api/1.1.0/jobs/all/"+u+"/"+r;return this.http.post(m,c)}getJobsV2(c,u,r,m){let v=z.backendApiV2+"1.0.0/client/candidate_search/v2/"+c+"/"+u+"/"+r,U=new Ia;return m.length>0&&m.forEach(Y=>{U=U.append("terms",Y)}),this.http.get(v,{params:U})}getSavedJobs(c,u){let r=z.backendApi+"api/1.1.0/candidate/jobs/saved";return this.http.get(r)}getSavedJobsV2(c,u){let r=z.backendApiV2+"1.0.0/client/job/bookmarked_jobs/"+c+"/"+u;return this.http.get(r)}getAppliedJobs(c,u){let r=z.backendApi+"api/1.1.0/applications/candidate/";return this.http.get(r)}getAppliedJobsV2(c,u){let r=z.backendApiV2+"1.0.0/client/job/applied_jobs/"+c+"/"+u;return this.http.get(r)}payWithStripe(c,u){const r=z.backendApiV2+"1.0.0/client/payment/create-payment-intent",m={paymentMethodId:c,amount:u};return this.http.post(r,m)}bookmarkJob(c){let u=z.backendApi+"api/1.1.0/candidate/jobs/"+c+"/jobnet/updateSavedStatus",r={saved:!0};return this.http.post(u,r)}unbookmarkJob(c){let u=z.backendApi+"api/1.1.0/candidate/jobs/"+c+"/jobnet/updateSavedStatus",r={saved:!1};return this.http.post(u,r)}bookmarkJobV2(c,u,r){let m=z.backendApiV2+"1.0.0/client/job/bookmark/"+c,v={job_type:r,save:u};return this.http.post(m,v)}getJobNetJobDetail(c){let u=z.backendApiV2+"1.0.0/client/job/detail/star/"+c;return this.http.get(u)}getJobDetail(c){let u=z.backendApi+"api/1.1.0/jobs/"+c;return this.http.get(u)}getOccupationCategorizations(){let c=z.backendApiV2+"1.0.0/client/ds_tree";return this.http.get(c)}getJobSummary(c){let u=z.backendApi+"api/1.1.0/jobs/"+c+"/summary";return this.http.get(u)}applyJob(c){let u=z.backendApi+"api/1.1.0/applications/job/"+c,r={jobPostingId:c};return this.http.post(u,r)}undoApplyJob(c){let u=z.backendApi+"api/1.1.0/applications/"+c;return this.http.delete(u)}toggleApplyJobnetjob(c,u){let r=z.backendApiV2+"1.0.0/client/job/detail/star/apply/"+c,m={apply:u};return this.http.put(r,m)}}const Qu={escoIds:[],workTypePermanent:!1,workTypePartTime:!1,workDistance:50,partTimeHours:null,distanceCenterName:"",latitude:null,longitude:null};function Xe(d){return typeof d=="string"?d:""}function qn(d){return typeof d=="object"&&d!==null?d:null}function Xu(d,c){if(!d)return[];const u=d[c];return Array.isArray(u)?u:[]}function Zu(d){if(Array.isArray(d))return d;const c=qn(d);if(!c)return[];const u=Xu(c,"searchList");if(u.length>0)return u;const r=qn(c.data),m=Xu(r,"searchList");if(m.length>0)return m;const v=Xu(c,"items");return v.length>0?v:[]}function Ah(d,c){if(!d)return null;const u=d[c];return typeof u=="number"?u:null}function o0(d){return d.trim()}function d0(d){if(!d)return[];const c=new Set,u=d.searchText?.trim();u&&u.length>0&&c.add(u);for(const r of d.desiredTitles??[]){const m=o0(r);m.length>0&&c.add(m)}return Array.from(c)}function f0(d,c){return{id:Xe(d.id),title:Xe(d.title),companyName:Xe(d.companyName),occupationName:Xe(d.occupationName),descriptionIntro:Xe(d.descriptionIntro),address:Xe(d.address),time:Xe(d.time),applicationDeadline:d.applicationDeadline instanceof Date?d.applicationDeadline.toISOString():Xe(String(d.applicationDeadline??"")),candidateDistance:typeof d.candidateDistance=="number"?d.candidateDistance:null,logoUrl:Xe(d.logoUrl),companyLogoImage:Xe(d.companyLogoImage),fromJobnet:!!d.fromJobnet,isSaved:!!d.saved,matchPercent:c}}function _h(d){return{id:Xe(d.id),title:Xe(d.title),companyName:Xe(d.companyName),occupationName:Xe(d.occupationName),descriptionIntro:Xe(d.descriptionIntro),address:Xe(d.address),time:Xe(d.time),applicationDeadline:d.applicationDeadline instanceof Date?d.applicationDeadline.toISOString():Xe(String(d.applicationDeadline??"")),candidateDistance:typeof d.candidateDistance=="number"?d.candidateDistance:null,logoUrl:Xe(d.logoUrl),companyLogoImage:Xe(d.companyLogoImage),isActive:typeof d.isActive=="boolean"?d.isActive:void 0,fromJobnet:!!d.fromJobnet,isSaved:!0}}class bs{constructor(c=new cr,u=new r0,r=new em,m=new Pa){this.jobService=c,this.filterService=u,this.placesService=r,this.candidateService=m}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate(),u=c.firstName?.trim()||c.name?.trim()||"Lasse",r=c.imageUrl||c.image||void 0;return{name:u,imageUrl:r}}catch{return{name:"Lasse"}}}async getOccupationOptions(){const c=await this.jobService.getOccupationCategorizations(),u=[];for(const r of c)for(const m of r.subAreas)for(const v of m.occupations)typeof v.id=="number"&&typeof v.name=="string"&&v.name.trim().length>0&&u.push({id:v.id,name:v.name});return u.sort((r,m)=>r.name.localeCompare(m.name,"da"))}async getJobSearchWords(){return(await this.jobService.getSearchWords()).filter(u=>typeof u=="string"&&u.trim().length>0)}async getSavedFilter(){try{const c=await this.filterService.getJobFilter(),u=c?.candidateSearchFilter;return u?{escoIds:c.escoIds??[],workTypePermanent:!!u.workTypePermanent,workTypePartTime:!!u.workTypePartTime,workDistance:u.workDistance??u.defaultDistance??50,partTimeHours:u.partTimeHours??null,distanceCenterName:u.distanceCenterName??u.defaultCenterName??"",latitude:u.latitude??null,longitude:u.longitude??null}:{...Qu}}catch{return{...Qu}}}async saveFilter(c){const u=c.workTypePartTime&&c.partTimeHours&&c.partTimeHours>0&&c.partTimeHours<=37?c.partTimeHours:null,r={escoIds:c.escoIds,candidateSearchFilter:{workTimeDay:!1,workTimeEvening:!1,workTimeNight:!1,workTimeWeekend:!1,workTypePermanent:c.workTypePermanent,workTypeFreelance:!1,workTypePartTime:c.workTypePartTime,workTypeSubstitute:!1,workTypeTemporary:!1,workDistance:c.workDistance,partTimeHours:u,distanceCenterName:c.distanceCenterName,latitude:c.latitude,longitude:c.longitude}};await this.filterService.saveJobFilter(r)}async resetFilter(){return await this.filterService.resetJobFilter(),{...Qu}}async searchPlaceSuggestions(c){const u=c.trim();return u.length<3?[]:((await this.placesService.searchPlaces(u)).predictions??[]).filter(m=>typeof m.place_id=="string"&&typeof m.description=="string").map(m=>({placeId:m.place_id,description:m.description}))}async getPlaceSelection(c){const r=(await this.placesService.getPlaceDetails(c)).result;return!r||typeof r.formatted_address!="string"?null:{description:r.formatted_address,latitude:typeof r.geometry?.location?.lat=="number"?r.geometry.location.lat:null,longitude:typeof r.geometry?.location?.lng=="number"?r.geometry.location.lng:null}}async getTabItems(c,u){if(c==="gemte"){const r=await this.jobService.getSavedJobsV2(0,100);return Zu(r).map(v=>_h(v))}if(c==="sogte"){const r=await this.jobService.getAppliedJobsV2(0,100);return Zu(r).map(v=>_h(v))}return this.getJobsFeedItems(u?[u]:void 0)}async applyFiltersAndGetJobs(c,u){await this.saveFilter(c);const r=d0(u);return this.getJobsFeedItems(r)}async toggleBookmark(c,u){const r=c.fromJobnet?"star":"arbejd.com";await this.jobService.bookmarkJobV2(c.id,u,r)}async getJobsFeedItems(c){let r=10,m=0;const v=12,U=120,Y=new Set,R=[];let b=[];const V=(c??[]).map(T=>T.trim()).filter(T=>T.length>0);if(V.length>0)b=V;else try{b=(await this.jobService.getSearchWords()).filter(q=>typeof q=="string"&&q.trim().length>0)}catch{b=[]}for(let T=0;T{const r=u.icon,m=u.key===d;return n.jsxs("button",{type:"button",className:m?"dash-nav-item active":"dash-nav-item",onClick:()=>c?.(u.key),children:[n.jsx("span",{className:u.accent?"dash-nav-icon accent":"dash-nav-icon",children:n.jsx(r,{size:19,strokeWidth:1.7})}),n.jsx("span",{className:"dash-nav-label",children:u.label}),u.badge?n.jsx("span",{className:"dash-nav-badge",children:u.badge}):null]},u.key)}),n.jsx("div",{className:"dash-nav-divider"}),m0.map(u=>{const r=u.icon,m=u.key===d;return n.jsxs("button",{type:"button",className:m?"dash-nav-item active":"dash-nav-item",onClick:()=>c?.(u.key),children:[n.jsx("span",{className:u.accent?"dash-nav-icon accent":"dash-nav-icon",children:n.jsx(r,{size:19,strokeWidth:1.7})}),n.jsx("span",{className:"dash-nav-label",children:u.label}),u.dot?n.jsx("span",{className:"dash-nav-dot"}):null]},u.key)})]}),n.jsxs("div",{className:"dash-sidebar-pro",children:[n.jsx("div",{className:"dash-sidebar-pro-glow"}),n.jsx(Gn,{size:19,strokeWidth:1.8}),n.jsx("h4",{children:"Pro-medlemskab"}),n.jsx("p",{children:"Faa ubegrænsede simuleringer"})]})]})}function sa({actions:d,imageUrl:c,name:u,onLogout:r,onToggleTheme:m,theme:v="light"}){return n.jsxs("header",{className:"dash-topbar",children:[m?n.jsxs("button",{type:"button",className:"dash-theme-btn",onClick:m,children:[v==="dark"?n.jsx(Jv,{size:15,strokeWidth:1.8}):n.jsx(rv,{size:15,strokeWidth:1.8}),n.jsx("span",{children:v==="dark"?"Light":"Dark"})]}):null,d?n.jsx("div",{className:"dash-topbar-actions",children:d}):null,n.jsxs("div",{className:"dash-profile-wrap",children:[n.jsxs("button",{className:"dash-profile-btn",type:"button",children:[c?n.jsx("img",{src:c,alt:u,className:"dash-profile-avatar"}):n.jsx("div",{className:"dash-profile-avatar dash-profile-avatar-fallback",children:u.slice(0,1).toUpperCase()}),n.jsx("span",{children:u}),n.jsx(Hn,{size:15,strokeWidth:1.8})]}),n.jsxs("div",{className:"dash-profile-menu",children:[n.jsxs("button",{type:"button",children:[n.jsx(Ap,{size:16,strokeWidth:1.8})," Profil"]}),n.jsxs("button",{type:"button",children:[n.jsx($h,{size:16,strokeWidth:1.8})," Indstillinger"]}),n.jsx("div",{className:"dash-profile-divider"}),n.jsxs("button",{type:"button",className:"danger",onClick:r,children:[n.jsx(ev,{size:16,strokeWidth:1.8})," Log ud"]})]})]})]})}const g0={paymentOverview:null,jobAgentFilters:[],cvSuggestions:[],escos:[]};function p0(d){return d.trim().slice(0,1).toUpperCase()||"A"}function v0(d){return Math.max(68,98-d*4)}function y0(d,c){const u=c.trim().toLowerCase();return u?d.filter(r=>r.preferedLabelDa.toLowerCase().includes(u)).slice(0,8):[]}function b0({onLogout:d,onNavigate:c,onOpenJobDetail:u,onToggleTheme:r,theme:m}){const v=C.useMemo(()=>new am,[]),U=C.useMemo(()=>new bs,[]),[Y,R]=C.useState("Lasse"),[b,V]=C.useState(void 0),[T,q]=C.useState(g0),[Q,ee]=C.useState([]),[B,re]=C.useState(!0),[oe,ge]=C.useState(""),[K,ne]=C.useState(""),[se,Z]=C.useState(""),[D,fe]=C.useState(""),[je,Se]=C.useState(""),[H,J]=C.useState(25);C.useEffect(()=>{let O=!0;async function I(){re(!0);const[ue,h,x]=await Promise.all([v.getCandidateProfile(),v.loadInitialData(),U.getTabItems("jobs")]);O&&(R(ue.name),V(ue.imageUrl),q(h),ee(x),re(!1))}return I(),()=>{O=!1}},[v,U]);async function ae(){const O=await v.loadInitialData();q(O)}async function P(){const O=K.trim()||oe.trim()||se.trim(),I=v.getEscoSuggestions(O,T.escos,T.jobAgentFilters)[0]||y0(T.escos,O)[0];I&&(await v.addEscoToFilter(I.id),await ae(),ge(""),ne(""),Z(""),fe(""),Se(""),J(25))}async function W(O){await v.setFilterVisibility(O,!O.visible),await ae()}const k=T.jobAgentFilters,_=(Q.length>0?Q:[]).slice(0,6);return n.jsxs("section",{className:`dash-root ${m==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"agents",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar ai-agent-main",children:[n.jsx(sa,{name:Y,imageUrl:b,onLogout:d,theme:m,onToggleTheme:r}),n.jsxs("div",{className:"ai-head",children:[n.jsx("h1",{children:"Jobagenter"}),n.jsx("p",{children:"Saet din jobsogning pa autopilot. Lad agenter overvage og matche dig med de perfekte jobs."})]}),n.jsxs("section",{className:"ai-create-card",children:[n.jsxs("div",{className:"ai-create-title",children:[n.jsx("div",{className:"ai-create-icon",children:n.jsx(Jh,{size:20,strokeWidth:1.8})}),n.jsx("h2",{children:"Opret ny jobagent"})]}),n.jsxs("div",{className:"ai-form-grid",children:[n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Agentens navn"}),n.jsx("input",{value:oe,onChange:O=>ge(O.target.value),placeholder:"F.eks. Frontend Udvikler CPH"})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Sogetekst / Nogleord"}),n.jsx("input",{value:K,onChange:O=>ne(O.target.value),placeholder:"F.eks. React, TypeScript, Tailwind"})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Arbejdsomrade"}),n.jsxs("select",{value:se,onChange:O=>Z(O.target.value),children:[n.jsx("option",{value:"",children:"Vaelg branche"}),n.jsx("option",{value:"IT & Udvikling",children:"IT & Udvikling"}),n.jsx("option",{value:"Design & UX",children:"Design & UX"}),n.jsx("option",{value:"Salg & Marketing",children:"Salg & Marketing"}),n.jsx("option",{value:"HR & Ledelse",children:"HR & Ledelse"})]})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Arbejdstype"}),n.jsxs("select",{value:D,onChange:O=>fe(O.target.value),children:[n.jsx("option",{value:"",children:"Vaelg type"}),n.jsx("option",{value:"Fuldtid",children:"Fuldtid"}),n.jsx("option",{value:"Deltid",children:"Deltid"}),n.jsx("option",{value:"Freelance",children:"Freelance / Konsulent"}),n.jsx("option",{value:"Studiejob",children:"Studiejob"})]})]}),n.jsxs("div",{className:"ai-field",children:[n.jsx("label",{children:"Arbejdssted"}),n.jsxs("div",{className:"ai-location-wrap",children:[n.jsx(Yn,{size:16,strokeWidth:1.8}),n.jsx("input",{value:je,onChange:O=>Se(O.target.value),placeholder:"By eller postnummer"})]})]}),n.jsxs("div",{className:"ai-field ai-distance-field",children:[n.jsxs("div",{className:"ai-distance-head",children:[n.jsx("label",{children:"Maks. distance"}),n.jsxs("span",{children:[H," km"]})]}),n.jsx("input",{type:"range",min:0,max:100,value:H,onChange:O=>J(Number(O.target.value))})]})]}),n.jsx("div",{className:"ai-create-actions",children:n.jsxs("button",{type:"button",onClick:()=>{P()},children:[n.jsx(Mv,{size:16,strokeWidth:1.8})," Gem jobagent"]})})]}),n.jsxs("section",{className:"ai-agents-section",children:[n.jsx("h3",{children:"Dine aktive agenter"}),n.jsxs("div",{className:"ai-agents-row custom-scrollbar",children:[k.length===0?n.jsx("p",{className:"dash-loading",children:"Ingen aktive agenter endnu."}):null,k.map((O,I)=>n.jsxs("article",{className:"ai-agent-chip-card",children:[n.jsxs("div",{className:"ai-agent-card-head",children:[n.jsxs("div",{className:"ai-agent-chip-left",children:[n.jsx("div",{className:`ai-agent-mini-icon ${I%2===0?"teal":"indigo"}`,children:I%2===0?n.jsx(cv,{size:16,strokeWidth:1.8}):n.jsx(Ih,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:O.escoName}),n.jsx("p",{children:O.isCalculated?"Aktiv siden i går":"Aktiv"})]})]}),n.jsx("button",{type:"button",className:O.visible?"ai-toggle on":"ai-toggle",onClick:()=>{W(O)},children:n.jsx("span",{})})]}),n.jsxs("div",{className:"ai-tags",children:[n.jsx("span",{children:O.escoName}),n.jsx("span",{children:je||"København"}),n.jsxs("span",{children:[H," km"]})]})]},O.id))]})]}),n.jsxs("section",{className:"ai-jobs-section",children:[n.jsxs("div",{className:"ai-jobs-head",children:[n.jsxs("h3",{children:[n.jsx(Gn,{size:16,strokeWidth:1.8})," Anbefalede jobs til dig"]}),n.jsx("span",{children:"Opdateret for 5 min siden"})]}),n.jsxs("div",{className:"ai-jobs-grid",children:[B?n.jsx("p",{className:"dash-loading",children:"Indlaeser anbefalinger..."}):null,!B&&_.length===0?n.jsx("p",{className:"dash-loading",children:"Ingen jobanbefalinger fundet endnu."}):null,_.map((O,I)=>n.jsxs("article",{className:"ai-job-card",role:"button",tabIndex:0,onClick:()=>u(O.id,O.fromJobnet,"agents"),onKeyDown:ue=>{(ue.key==="Enter"||ue.key===" ")&&(ue.preventDefault(),u(O.id,O.fromJobnet,"agents"))},children:[n.jsx("div",{className:`ai-job-rail ${I%3===2?"indigo":"teal"}`}),n.jsxs("div",{className:"ai-job-top",children:[O.companyLogoImage||O.logoUrl?n.jsx("img",{src:O.companyLogoImage||O.logoUrl,alt:O.companyName,className:"ai-company-logo"}):n.jsx("div",{className:"ai-company-logo-fallback",children:p0(O.companyName)}),n.jsxs("div",{className:"ai-match-col",children:[n.jsxs("div",{className:"ai-match-pill",children:[n.jsx(vs,{size:13,strokeWidth:1.8})," ",v0(I),"% Match"]}),n.jsxs("small",{children:["Via: ",k[0]?.escoName||"Jobagent"]})]})]}),n.jsxs("div",{className:"ai-job-title-wrap",children:[n.jsx("h4",{children:O.title}),n.jsxs("p",{children:[O.companyName," • ",O.address||"Lokation"]})]}),n.jsxs("div",{className:"ai-job-tags",children:[n.jsx("span",{children:O.occupationName||"Frontend"}),n.jsx("span",{children:O.fromJobnet?"Jobnet":"Arbejd.com"}),n.jsx("span",{children:O.candidateDistance!=null?`${Math.round(O.candidateDistance)} km`:"Remote"})]}),n.jsxs("div",{className:"ai-job-bottom",children:[n.jsx("span",{children:"Slået op for nyligt"}),n.jsxs("button",{type:"button",onClick:ue=>{ue.stopPropagation(),u(O.id,O.fromJobnet,"agents")},children:["Læs mere ",n.jsx($a,{size:14,strokeWidth:1.8})]})]})]},O.id))]})]})]})]})}const j0={paymentOverview:null,jobAgentFilters:[],cvSuggestions:[],escos:[]};function Th(){return["Diamantskærer","Ministerialbetjent","Kiropraktor","System Developer","Senior Software Developer","Founder and Developer","Senior .Net Developer","Freelance Programmer","Støberichef","Softwareudvikler, frontend","CSR-ansvarlig","Lagerchef inden for råstof","Ios developer","Kokkeelev","IT-kvalitetsmedarbejder","Efterretningsofficer"]}function x0(d){return d>=70?{text:"Kan styrke dine chancer i ansøgningsbunken",kind:"strong"}:d>=40?{text:"Ofte efterspurgt – forbedrer dine jobmuligheder markant",kind:"neutral"}:{text:"Et godt første skridt mod flere relevante job",kind:"soft"}}function S0(d){return d==="education"?Xh:d==="language"?gs:d==="driversLicense"?Gh:d==="certificate"?Yh:d==="qualification"?vs:Ph}function N0(d){return d==="education"?"blue":d==="language"?"emerald":d==="driversLicense"?"orange":d==="certificate"?"rose":d==="qualification"?"indigo":"slate"}function k0({onLogout:d,onNavigate:c,onToggleTheme:u,theme:r}){const m=C.useMemo(()=>new am,[]),[v,U]=C.useState("Lasse"),[Y,R]=C.useState(void 0),[b,V]=C.useState(j0),[T,q]=C.useState(!0),[Q,ee]=C.useState("");C.useEffect(()=>{let K=!0;async function ne(){q(!0);const[se,Z]=await Promise.all([m.getCandidateProfile(),m.loadInitialData()]);if(!K)return;U(se.name),R(se.imageUrl),V(Z);const D=Z.jobAgentFilters[0]?.escoName||Th()[1];ee(fe=>fe||D),q(!1)}return ne(),()=>{K=!1}},[m]);const B=b.jobAgentFilters.length>0?b.jobAgentFilters.map(K=>K.escoName):Th(),re=b.jobAgentFilters.find(K=>K.escoName===Q)||b.jobAgentFilters[0],oe=(re?b.cvSuggestions.find(K=>K.escoId===re.escoId)?.improvements:b.cvSuggestions[0]?.improvements)||[],ge=oe.length>0?oe:[{name:"Grundkursus i sikkerhed og beredskab",jobChanceIncrease:78,improvementType:"education"},{name:"Service og kommunikation i offentlige institutioner",jobChanceIncrease:52,improvementType:"qualification"},{name:"Dansk (Flydende)",jobChanceIncrease:65,improvementType:"language"},{name:"B - Almindelig bil",jobChanceIncrease:34,improvementType:"driversLicense"},{name:"Konflikthåndtering",jobChanceIncrease:72,improvementType:"qualification"},{name:"Førstehjælpsbevis",jobChanceIncrease:44,improvementType:"certificate"},{name:"Sikkerhedsgodkendelse (PET)",jobChanceIncrease:81,improvementType:"certificate"}];return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"ai-agent",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar career-main",children:[n.jsx(sa,{name:v,imageUrl:Y,onLogout:d,theme:r,onToggleTheme:u,actions:n.jsxs("div",{className:"career-status-pill",children:[n.jsx(tt,{size:15,strokeWidth:1.8}),"CV analyseret"]})}),n.jsxs("div",{className:"career-head",children:[n.jsxs("div",{className:"career-head-title-row",children:[n.jsx("div",{className:"career-head-icon",children:n.jsx(Iv,{size:19,strokeWidth:1.8})}),n.jsx("h1",{children:"Karriereagent"})]}),n.jsx("p",{className:"career-head-kicker",children:"Din Karriereagent Foreslår"}),n.jsx("p",{className:"career-head-desc",children:"Boost din profil ved hjælp af kunstig intelligens. Forslagene er udvalgt til din profil ud fra analyser af over 100.000+ jobopslag og dit nuværende CV."})]}),n.jsxs("div",{className:"career-grid",children:[n.jsxs("aside",{className:"career-agents-col",children:[n.jsxs("div",{className:"career-agents-head",children:[n.jsx("h2",{children:"Mine agenter"}),n.jsxs("button",{type:"button",children:[n.jsx(xp,{size:16,strokeWidth:1.8})," Tilføj ny agent"]})]}),n.jsx("div",{className:"career-agents-list custom-scrollbar",children:B.map(K=>n.jsxs("button",{type:"button",className:Q===K?"active":"",onClick:()=>ee(K),children:[n.jsx("span",{children:K}),Q===K?n.jsx("i",{}):null]},K))})]}),n.jsxs("section",{className:"career-reco-col",children:[n.jsxs("div",{className:"career-reco-head",children:[n.jsxs("h2",{children:["Viser anbefalinger for",n.jsx("span",{children:Q||"Ministerialbetjent"})]}),n.jsxs("button",{type:"button",children:[n.jsx(Qh,{size:14,strokeWidth:1.8})," Filtrer"]})]}),T?n.jsx("p",{className:"dash-loading",children:"Indlaeser anbefalinger..."}):null,n.jsx("div",{className:"career-cards custom-scrollbar",children:ge.map((K,ne)=>{const se=S0(K.improvementType||"qualification"),Z=x0(K.jobChanceIncrease||0),D=N0(K.improvementType||"qualification");return n.jsxs("article",{className:"career-card",children:[n.jsx("div",{className:"career-card-glow"}),n.jsx("div",{className:"career-card-wand",children:n.jsx(Gn,{size:16,strokeWidth:1.8})}),n.jsxs("div",{className:"career-card-content",children:[n.jsx("div",{className:`career-card-icon ${D}`,children:n.jsx(se,{size:18,strokeWidth:1.8})}),n.jsx("h3",{children:K.shortName||K.name}),n.jsxs("p",{className:`tone ${Z.kind}`,children:[Z.kind==="strong"?n.jsx(Xv,{size:13,strokeWidth:1.8}):Z.kind==="neutral"?n.jsx(vs,{size:13,strokeWidth:1.8}):n.jsx(Lv,{size:13,strokeWidth:1.8}),Z.text]})]})]},`${K.name}-${ne}`)})})]})]})]})]})}class A0{constructor(c=He){this.http=c}generateApplication(c,u,r,m){let v=z.backendApiV2+"1.0.0/client/ai_handler/create_my_application",U={isStar:c,jobId:u,language:r,userInput:m};return this.http.post(v,U)}listGeneratedJobApplications(c){let u=z.backendApiV2+"1.0.0/client/ai_handler/list_created_job_application/"+c;return this.http.get(u)}listPredefinedUserInput(){let c=z.backendApiV2+"1.0.0/client/ai_handler/list_predefined_user_input";return this.http.get(c)}getJobApplication(c){let u=z.backendApiV2+"1.0.0/client/ai_handler/"+c;return this.http.get(u)}updateMyCvDescriptions(c){let u=z.backendApiV2+"1.0.0/client/ai_handler/update_my_cv_descriptions",r={language:c};return this.http.post(u,r)}updateStatesOnMyCvDescription(c,u,r){let m=z.backendApiV2+"1.0.0/client/ai_handler/update_states_on_my_cv_descriptions/"+c,v={state:u,subState:r};return this.http.put(m,v)}getMyCvDescriptions(){let c=z.backendApiV2+"1.0.0/client/ai_handler/get_my_cv_descriptions";return this.http.get(c)}submitJobApplicationRating(c,u,r){let m=z.backendApiV2+"1.0.0/client/ai_handler/job_application_rating",v={ai_generated_job_application_id:c,rating:u,rating_text:r};return this.http.post(m,v)}startApplicationExamination(c){const u=z.backendApiV2+"1.0.0/client/ai_handler/create_application_examination",r={ai_generated_job_application_id:c};return this.http.post(u,r)}getApplicationExamination(c){const u=z.backendApiV2+"1.0.0/client/ai_handler/application_examination/"+encodeURIComponent(c);return this.http.get(u)}getApplicationExaminationByJobApplicationId(c){const u=z.backendApiV2+"1.0.0/client/ai_handler/application_examination_by_job_application/"+c;return this.http.get(u)}}class _0{constructor(c=He){this.http=c}searchForCertification(c){let u=encodeURIComponent(c),r=z.backendApiV2+`1.0.0/client/certificate?search_text=${u}`;return this.http.get(r)}saveCertification(c){let u=z.backendApiV2+"1.0.0/client/candidate_certificate",r={qualification_id:c};return this.http.post(u,r)}updateCertification(c){let u=z.backendApiV2+"1.0.0/client/candidate_certificate/"+c.id,r=c;return this.http.put(u,r)}removeCertification(c){let u=z.backendApiV2+"1.0.0/client/candidate_certificate/"+c;return this.http.delete(u)}addUnknownCertificate(c){let u=z.backendApiV2+"1.0.0/client/certificate",r={certificate_name:c};return this.http.post(u,r)}}class T0{constructor(c=He){this.http=c}sendMyCvToEmail(){let c=z.backendApi+"api/1.1.0/candidate/sendPdf",u={};return this.http.post(c,u)}getMyCv(){let c=z.backendApiV2+"1.0.0/client/candidate/pdf";return this.http.get(c,{responseType:"blob"})}getMyCvV2(c){let u=z.backendApiV2+"1.0.0/client/candidate/pdf_url?language="+c;return this.http.get(u)}generateCv(c){let u=z.backendApiV2+"1.0.0/client/candidate/generateCv",r={language:c};return this.http.post(u,r)}}class z0{constructor(c=He,u=ql){this.http=c,this.localStorageService=u}uploadCv(c,u){const r=z.backendApiV2+"1.0.0/client/cv_upload";return this.http.post(r,c,{headers:{Authorization:`Bearer ${u}`}})}getCvUploadData(){let c=z.backendApiV2+"1.0.0/client/cv_upload/get_upload_cv";return this.http.get(c)}setProfileTextToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/profile_text_is_done/"+c,r={};return this.http.put(u,r)}setExperienceToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/experience_is_done/"+c,r={};return this.http.put(u,r)}setEducationToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/education_is_done/"+c,r={};return this.http.put(u,r)}setQualificationToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/qualification_is_done/"+c,r={};return this.http.put(u,r)}setCertificateToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/certificate_is_done/"+c,r={};return this.http.put(u,r)}setLanguageToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/language_is_done/"+c,r={};return this.http.put(u,r)}setDriversLicenseToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/drivers_license_is_done/"+c,r={};return this.http.put(u,r)}setCvUploadToDone(c){let u=z.backendApiV2+"1.0.0/client/cv_upload/cv_is_done/"+c,r={};return this.http.put(u,r)}}class D0{constructor(c=He){this.http=c}getAllDriverLicenses(){let c=z.backendApi+"api/1.1.0/driversLicenses";return this.http.get(c)}updateDriverLicense(c,u){let r=z.backendApi+"api/1.1.0/candidate/driversLicense/"+c,m={};return this.http.put(r,m)}removeLanguage(c){let u=z.backendApiV2+"1.0.0/client/candidate_drivers_license/"+c;return this.http.delete(u)}saveDriverLicense(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_drivers_license",m={level:u,drivers_license_id:c.id};return this.http.post(r,m)}saveDriverLicenseV2(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_drivers_license",m={level:c,drivers_license_id:u};return this.http.post(r,m)}}class M0{constructor(c=He){this.http=c}searchForEducations(c){let u=z.backendApi+"api/1.1.0/educations/search/"+c;return this.http.get(u)}searchForSchools(c){let u=z.backendApi+"api/1.1.0/institutions/search/"+c;return this.http.get(u)}saveEducation(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_education",m={comments:c.comments,education_disced_15:c.education.disced15,from_date:c.fromDate,to_date:c.toDate,institution_number:c.institution?.instNumber,is_current:c.isCurrent,language:u};return this.http.post(r,m)}removeEducation(c){let u=z.backendApiV2+"1.0.0/client/candidate_education/"+c;return this.http.delete(u)}updateEducation(c,u,r){let m=z.backendApiV2+"1.0.0/client/candidate_education/"+c,v={comments:u.comments,from_date:u.fromDate,to_date:u.toDate,is_current:u.isCurrent,language:r};return this.http.put(m,v)}getEducationOccupationSuggestions(c){let u=z.backendApi+"api/1.1.0/educations/suggestions/occupation/"+c;return this.http.get(u)}saveUnknownEducation(c){let u=z.backendApiV2+"1.0.0/client/education/save_unknown_education",r={education_name:c};return this.http.post(u,r)}saveEducationV2(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_education",m={comments:c.comments,education_disced_15:c.education_disced_15,from_date:c.from_date,to_date:c.to_date,institution_number:c.institution_number,is_current:c.is_current,language:u};return this.http.post(r,m)}}class C0{constructor(c=He){this.http=c}getAllLanguages(){let c=z.backendApi+"api/1.1.0/languages";return this.http.get(c)}saveLanguage(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_language",m={language_id:u.id,level:c};return this.http.post(r,m)}updateLanguage(c,u,r){let m=z.backendApiV2+"1.0.0/client/candidate_language/"+c,v={level:u};return this.http.put(m,v)}removeLanguage(c){let u=z.backendApiV2+"1.0.0/client/candidate_language/"+c;return this.http.delete(u)}saveLanguageV2(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_language",m={language_id:u,level:c};return this.http.post(r,m)}}class E0{constructor(c=He){this.http=c}searchForQualification(c){let u=z.backendApi+"api/1.1.0/qualifications/type/3/search/"+c;return this.http.get(u)}updateQualification(c,u){let r=z.backendApiV2+"1.0.0/client/candidate_qualification/"+c,m={level:u};return this.http.put(r,m)}saveQualification(c){let u=z.backendApiV2+"1.0.0/client/candidate_qualification",r={level:c.level,qualification_id:c.qualification.id};return this.http.post(u,r)}removeQualification(c){let u=z.backendApiV2+"1.0.0/client/candidate_qualification/"+c;return this.http.delete(u)}getQualificationsOccupationSuggestions(c,u){let r=z.backendApi+"api/1.1.0/qualifications/type/"+u+"/suggestions/occupation/"+c;return this.http.get(r)}addUnknownQualification(c){let u=z.backendApi+"api/1.1.0/qualifications/type/3/fromCandidate",r={name:c,type:3};return this.http.post(u,r)}saveQualificationV2(c){let u=z.backendApiV2+"1.0.0/client/candidate_qualification",r={level:c.level,qualification_id:c.qualification_id};return this.http.post(u,r)}}class w0{constructor(c=He){this.http=c}addUnknownOccupation(c){let u=z.backendApi+"api/1.1.0/occupations/fromCandidate",r={name:c};return this.http.post(u,r)}}class U0{constructor(c=He){this.http=c}saveUnknownInstitution(c){let u=z.backendApiV2+"1.0.0/client/institution/save_unknown_institution",r={institution_name:c};return this.http.post(u,r)}}class O0{constructor(c=new Pa,u=new T0,r=new z0,m=new ys,v=new A0,U=new M0,Y=new E0,R=new _0,b=new C0,V=new D0,T=new tm,q=new w0,Q=new U0,ee=ql){this.candidateService=c,this.cvService=u,this.cvUploadService=r,this.subscriptionService=m,this.aiHandlerService=v,this.educationService=U,this.qualificationService=Y,this.certificationService=R,this.languageService=b,this.driverLicenseService=V,this.escoService=T,this.occupationService=q,this.institutionService=Q,this.localStorageService=ee}escosCache=null;async getSnapshot(){const[c,u,r,m,v,U,Y,R,b,V]=await Promise.allSettled([this.candidateService.getCandidate(),this.candidateService.getCandidatesExperiences(),this.candidateService.getCandidatesEducations(),this.candidateService.getCandidatesQualifications(),this.candidateService.getCandidatesCertifications(),this.candidateService.getCandidatesLanguages(),this.candidateService.getCandidatesDriverLicenses(),this.subscriptionService.getPaymentOverview(),this.cvUploadService.getCvUploadData(),this.aiHandlerService.getMyCvDescriptions()]);return{candidate:c.status==="fulfilled"?c.value:null,experiences:u.status==="fulfilled"?u.value:[],educations:r.status==="fulfilled"?r.value:[],skills:m.status==="fulfilled"?m.value:[],certifications:v.status==="fulfilled"?v.value:[],languages:U.status==="fulfilled"?U.value:[],driverLicenses:Y.status==="fulfilled"?Y.value:[],paymentOverview:R.status==="fulfilled"?R.value:null,cvUploadData:b.status==="fulfilled"?b.value:null,aiGeneratedCVDescription:V.status==="fulfilled"&&V.value?.id?V.value:null}}async setActiveSeeker(c,u,r){const m={...c,isActive:u};return this.candidateService.updateCandidate(m,r)}async updateCandidate(c,u){return this.candidateService.updateCandidate(c,u)}async generateCv(c){await this.cvService.generateCv(c)}async getCvDownloadUrl(c){return(await this.cvService.getMyCvV2(c)).url}async uploadCv(c,u){const r=await this.localStorageService.getAuthToken();if(!r)throw new Error("No auth token found.");await this.cvUploadService.uploadCv({base_64_cv_file:c,cv_file_type:u},r)}async optimizeCv(c){await this.aiHandlerService.updateMyCvDescriptions(c)}async updateExperience(c,u){await this.candidateService.updateExperience(c,u)}async updateEducation(c,u){const r={comments:c.comments,education:c.education,institution:c.institution,fromDate:new Date(c.fromDate),toDate:new Date(c.toDate),isCurrent:c.isCurrent};await this.educationService.updateEducation(c.id,r,u)}async updateCertification(c){await this.certificationService.updateCertification(c)}async updateLanguage(c){const u={id:c.language.id,isO639:c.language.isO639,name:c.language.name,ownName:c.language.ownName,priority:c.language.priority};await this.languageService.updateLanguage(c.id,c.level,u)}async removeExperience(c){await this.candidateService.removeExperience(c)}async removeEducation(c){await this.educationService.removeEducation(c)}async removeQualification(c){await this.qualificationService.removeQualification(c)}async removeCertification(c){await this.certificationService.removeCertification(c)}async removeLanguage(c){await this.languageService.removeLanguage(c)}async removeDriverLicense(c){await this.driverLicenseService.removeLanguage(c)}async getEscoSuggestions(c,u=25){this.escosCache||(this.escosCache=await this.escoService.listAllEscos());const r=c.trim().toLowerCase();return r?this.escosCache.filter(m=>m.preferedLabelDa.toLowerCase().includes(r)).slice(0,u):this.escosCache.slice(0,u)}async getLanguageOptions(){return(await this.languageService.getAllLanguages()).allLanguages??[]}async getDriverLicenseOptions(){return this.driverLicenseService.getAllDriverLicenses()}async createExperience(c,u){let r=c.escoId??null;if(!r&&c.occupationName?.trim()&&(r=(await this.occupationService.addUnknownOccupation(c.occupationName.trim())).id),!r)throw new Error("Vælg eller opret en stilling først.");await this.candidateService.saveExperienceV2({companyName:c.companyName,comments:c.comments,fromDate:c.fromDate,toDate:c.toDate,isCurrent:c.isCurrent,escoId:r},u)}async createEducation(c,u){let r=c.educationDisced15??null;if(!r&&c.educationName?.trim()&&(r=(await this.educationService.saveUnknownEducation(c.educationName)).disced15),!r)throw new Error("Vælg eller opret en uddannelse først.");let m=c.institutionNumber;!m&&c.institutionName?.trim()&&(m=(await this.institutionService.saveUnknownInstitution(c.institutionName.trim())).inst_number),await this.educationService.saveEducationV2({comments:c.comments,institution_number:m,from_date:c.fromDate,to_date:c.toDate,education_disced_15:r,is_current:c.isCurrent},u)}async createCertification(c){let u=c.certificateId??null;if(!u&&c.certificateName?.trim()&&(u=(await this.certificationService.addUnknownCertificate(c.certificateName.trim())).certificate_id),!u)throw new Error("Vælg eller opret et certifikat først.");await this.certificationService.saveCertification(u)}async createLanguage(c,u){await this.languageService.saveLanguageV2(u,c)}async getQualificationSuggestions(c){const u=c.trim();return u?this.qualificationService.searchForQualification(u):[]}async createQualification(c){let u=c.qualificationId?.trim()||"";if(!u&&c.qualificationName?.trim()&&(u=(await this.qualificationService.addUnknownQualification(c.qualificationName.trim())).id),!u)throw new Error("Vælg eller opret en kvalifikation først.");await this.qualificationService.saveQualificationV2({qualification_id:u,level:c.level})}async getEducationSuggestions(c){const u=c.trim();return u?this.educationService.searchForEducations(u):[]}async getSchoolSuggestions(c){const u=c.trim();return u?this.educationService.searchForSchools(u):[]}async getCertificationSuggestions(c){const u=c.trim();return u?this.certificationService.searchForCertification(u):[]}async createDriverLicense(c,u){await this.driverLicenseService.saveDriverLicenseV2(u,c)}}const L0={candidate:null,experiences:[],educations:[],skills:[],certifications:[],languages:[],driverLicenses:[],paymentOverview:null,cvUploadData:null,aiGeneratedCVDescription:null},R0=[{id:"e1",title:"Senior Frontend-udvikler",company:"Lunar",from:"2020-08-01",to:null,description:"Udvikling og vedligeholdelse af core-features i bankens app samt performance-optimering."},{id:"e2",title:"Web-udvikler",company:"Trustpilot",from:"2017-01-01",to:"2020-07-01",description:"Udviklede dashboards og analysevaerktojer i taet samarbejde med UX-teamet."}],H0=[{id:"ed1",title:"Cand.it i Webudvikling",school:"IT-Universitetet i Kobenhavn",from:"2013-08-01",to:"2015-06-01",description:"Specialisering i webteknologier, databaser og brugercentreret design."},{id:"ed2",title:"Datamatiker",school:"KEA - Kobenhavns Erhvervsakademi",from:"2010-08-01",to:"2013-06-01",description:"Softwarekonstruktion, systemarkitektur og programmering i Java og C#."}];function hs(d){if(!d)return null;const c=d instanceof Date?d:new Date(d);return Number.isNaN(c.getTime())?null:c}function zh(d){const c=hs(d);return c?new Intl.DateTimeFormat("da-DK",{month:"short",year:"numeric"}).format(c):"Ukendt"}function Dh(d,c,u){const r=zh(d),m=u?"Nu":zh(c);return`${r} - ${m}`}function V0(d){const c=hs(d);return c?new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"long",year:"numeric"}).format(c):"Ikke angivet"}function Mh(d){return[...d].sort((c,u)=>{const r=hs(c.fromDate)?.getTime()??0;return(hs(u.fromDate)?.getTime()??0)-r})}function q0(d){return d.qualification?.name||"Kvalifikation"}function B0(d){return d.qualification?.name||d.levelName||"Certificering"}function Y0(d){return d.driversLicense?.name||d.levelName||"Korekort"}function J0(d){return d.levelName||"Niveau ukendt"}function G0({onLogout:d,onNavigate:c,onToggleTheme:u,theme:r}){const m=C.useMemo(()=>new O0,[]),[v,U]=C.useState("standard"),[Y,R]=C.useState(L0),[b,V]=C.useState(!0);C.useEffect(()=>{let D=!0;return m.getSnapshot().then(fe=>{D&&R(fe)}).finally(()=>{D&&V(!1)}),()=>{D=!1}},[m]);const T=Y.candidate,q=T?.firstName?.trim()||T?.name?.trim()||"Lasse",Q=T?.firstName||"Lasse",ee=T?.lastName||"Hansen",B=T?.imageUrl||T?.image||"",re=Y.experiences.length>0?Mh(Y.experiences):[],oe=Y.educations.length>0?Mh(Y.educations):[],ge=Y.skills,K=Y.languages,ne=Y.certifications,se=Y.driverLicenses,Z=K.length>0?K.map(D=>({id:D.id,name:D.language?.name||"Sprog",level:J0(D)})):[{id:"da",name:"Dansk",level:"Modersmal"},{id:"en",name:"Engelsk",level:"Flydende"}];return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"cv",onNavigate:c}),n.jsxs("main",{className:`dash-main custom-scrollbar cv-page ${v==="reference"?"cv-design-reference":""}`,children:[n.jsx(sa,{name:q,imageUrl:B||void 0,onLogout:d,theme:r,onToggleTheme:u,actions:n.jsxs("button",{type:"button",className:"cv-design-toggle",onClick:()=>U(D=>D==="standard"?"reference":"standard"),children:[v==="reference"?n.jsx(Zh,{size:16,strokeWidth:1.8}):n.jsx(Kh,{size:16,strokeWidth:1.8}),n.jsx("span",{children:v==="reference"?"Skift til standard design":"Skift til reference design"})]})}),n.jsxs("div",{className:"cv-head",children:[n.jsxs("div",{children:[n.jsx("h1",{children:"Dit CV"}),n.jsx("p",{children:"Handter dine faglige oplysninger, erfaringer og uddannelser."})]}),n.jsxs("button",{type:"button",className:"cv-edit-btn",children:[n.jsx(hv,{size:16,strokeWidth:1.8})," Rediger CV"]})]}),b?n.jsx("p",{className:"dash-loading",children:"Indlaeser CV..."}):null,n.jsxs("div",{className:"cv-layout",children:[n.jsxs("div",{className:"cv-left",children:[n.jsxs("article",{className:"cv-card",children:[n.jsx("div",{className:"cv-avatar-wrap",children:B?n.jsx("img",{src:B,alt:q,className:"cv-avatar"}):n.jsx("div",{className:"cv-avatar cv-avatar-fallback",children:q.slice(0,1).toUpperCase()})}),n.jsxs("div",{className:"cv-section-head",children:[n.jsx(Hl,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Personlige oplysninger"})]}),n.jsxs("div",{className:"cv-personal-list",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Fornavn"}),n.jsx("strong",{children:Q})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Efternavn"}),n.jsx("strong",{children:ee})]}),n.jsxs("div",{children:[n.jsx("span",{children:"E-mail"}),n.jsx("strong",{children:T?.email||"lasse@eksempel.dk"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Telefon"}),n.jsx("strong",{children:T?.phoneNumber||"+45 12 34 56 78"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Fodselsdato"}),n.jsx("strong",{children:V0(T?.birthday)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Kon"}),n.jsx("strong",{children:T?.gender||"Mand"})]})]})]}),n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(Ph,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Kvalifikationer"})]}),n.jsx("div",{className:"cv-chip-wrap",children:(ge.length>0?ge.map(q0):["HTML & CSS","Tailwind CSS","JavaScript","React","UI/UX Design"]).slice(0,12).map(D=>n.jsx("span",{className:"cv-chip",children:D},D))})]}),n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(gs,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Sprog"})]}),n.jsx("div",{className:"cv-language-list",children:Z.map(D=>n.jsxs("div",{children:[n.jsx("strong",{children:D.name}),n.jsx("span",{children:D.level})]},D.id))})]}),n.jsxs("div",{className:"cv-mini-grid",children:[n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(Yh,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Certificeringer"})]}),n.jsxs("ul",{className:"cv-list",children:[(ne.length>0?ne:[]).slice(0,4).map(D=>n.jsxs("li",{children:[n.jsx(tt,{size:15,strokeWidth:1.8})," ",B0(D)]},D.id)),ne.length===0?n.jsxs(n.Fragment,{children:[n.jsxs("li",{children:[n.jsx(tt,{size:15,strokeWidth:1.8})," AWS Certified Developer"]}),n.jsxs("li",{children:[n.jsx(tt,{size:15,strokeWidth:1.8})," Certificeret Scrum Master"]})]}):null]})]}),n.jsxs("article",{className:"cv-card",children:[n.jsxs("div",{className:"cv-section-head",children:[n.jsx(Gh,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Korekort"})]}),n.jsx("div",{className:"cv-chip-wrap",children:(se.length>0?se.map(Y0):["B (Almindelig bil)","A (Motorcykel)"]).map(D=>n.jsx("span",{className:"cv-chip",children:D},D))})]})]})]}),n.jsxs("div",{className:"cv-right",children:[n.jsxs("section",{children:[n.jsxs("div",{className:"cv-timeline-head",children:[n.jsx("div",{className:"cv-timeline-icon",children:n.jsx(sr,{size:19,strokeWidth:1.8})}),n.jsx("h2",{children:"Erhvervserfaring"})]}),n.jsx("div",{className:"cv-timeline",children:(re.length>0?re:R0).map((D,fe)=>{const je="occupation"in D?D.occupation?.name||"Stilling":D.title,Se="companyName"in D?D.companyName:D.company,H="comments"in D?D.comments:D.description,J="fromDate"in D?D.fromDate:D.from,ae="toDate"in D?D.toDate:D.to,P="isCurrent"in D?!!D.isCurrent:!1;return n.jsxs("article",{className:"cv-timeline-item",children:[n.jsx("div",{className:"cv-timeline-dot",children:n.jsx(ar,{size:15,strokeWidth:1.8})}),n.jsxs("div",{className:"cv-timeline-card",children:[n.jsx("h3",{children:je}),n.jsxs("div",{className:"cv-meta",children:[n.jsx("strong",{children:Se}),n.jsx("span",{children:Dh(J,ae,P)})]}),n.jsx("p",{children:H||"Ingen beskrivelse."})]})]},"id"in D?String(D.id):`exp-${fe}`)})})]}),n.jsx("div",{className:"cv-divider"}),n.jsxs("section",{children:[n.jsxs("div",{className:"cv-timeline-head",children:[n.jsx("div",{className:"cv-timeline-icon",children:n.jsx(Xh,{size:19,strokeWidth:1.8})}),n.jsx("h2",{children:"Uddannelse"})]}),n.jsx("div",{className:"cv-timeline",children:(oe.length>0?oe:H0).map((D,fe)=>{const je="education"in D?D.education?.name||"Uddannelse":D.title,Se="institution"in D?D.institution?.name||"Institution":D.school,H="comments"in D?D.comments:D.description,J="fromDate"in D?D.fromDate:D.from,ae="toDate"in D?D.toDate:D.to,P="isCurrent"in D?!!D.isCurrent:!1;return n.jsxs("article",{className:"cv-timeline-item",children:[n.jsx("div",{className:"cv-timeline-dot",children:n.jsx(ar,{size:15,strokeWidth:1.8})}),n.jsxs("div",{className:"cv-timeline-card",children:[n.jsx("h3",{children:je}),n.jsxs("div",{className:"cv-meta",children:[n.jsx("strong",{children:Se}),n.jsx("span",{children:Dh(J,ae,P)})]}),n.jsx("p",{children:H||"Ingen beskrivelse."})]})]},"id"in D?String(D.id):`edu-${fe}`)})})]})]})]})]})]})}class Q0{constructor(c=He){this.http=c}getNotificationSetting(){const c=z.backendApiV2+"2.0.0/client/notification/settings";return this.http.get(c)}createNotificationSetting(c){const u=z.backendApiV2+"2.0.0/client/notification/settings";return this.http.post(u,c)}updateNotificationSetting(c,u){const r=z.backendApiV2+"2.0.0/client/notification/settings/"+c;return this.http.put(r,u)}deleteNotificationSetting(c){const u=z.backendApiV2+"2.0.0/client/notification/settings/"+c;return this.http.delete(u)}getNewNotificationCount(){let c=z.backendApiV2+"1.0.0/client/notification/unseen_notifications";return this.http.get(c)}getNotifications(c,u){let r=z.backendApiV2+"1.0.0/client/notification/"+c+"/"+u;return this.http.get(r)}notificationSeenByUser(c){let u=z.backendApiV2+"1.0.0/client/notification/seen_by_user/"+c,r={};return this.http.put(u,r)}}class lm{constructor(c=He,u=ql){this.http=c,this.localStorage=u}listSimulationPersonalities(){let c=z.backendApiV2+"client/simulation/1.0.0/list_simulation_personalities",u=new Ia().set("language","da");return this.http.get(c,{params:u})}getInterviewEvaluation(c){const u=z.backendApiV2+`client/simulation/1.0.0/interview_evaluation/${c}`;return this.http.get(u)}listInterviews(c=20,u=0){const r=z.backendApiV2+"client/job_simulator/1.0.0/list_interviews",m=new Ia().set("limit",c.toString()).set("offset",u.toString());return this.http.get(r,{params:m})}submitEvaluationRating(c,u,r){const m=z.backendApiV2+"client/simulation/1.0.0/evaluation_rating",v={interview_id:c,rating:u,rating_text:r};return this.http.post(m,v)}submitInterviewRating(c,u,r){const m=z.backendApiV2+"client/simulation/1.0.0/interview_rating",v={interview_id:c,rating:u,rating_text:r};return this.http.post(m,v)}}class X0{constructor(c=He){this.http=c}chatMessageThreads=[];getChatMessages(){let c=z.backendApi+"api/1.1.0/chatMessages/forCandidate/";return this.http.get(c)}sendMessage(c){let u=z.backendApi+"api/1.1.0/chatMessages/"+c.threadId+"/fromCandidate";return this.http.post(u,c)}markThreadRead(c){let u=z.backendApi+"api/1.1.0/chatMessages/markRead/"+c;return this.http.get(u)}}class Z0{constructor(c=He){this.http=c}getUnreadMessages(){let c=z.backendApi+"api/1.1.0/chatMessages/getUnreadCount";return this.http.get(c)}}function fs(d){if(!d)return 0;const u=(d instanceof Date?d:new Date(d)).getTime();return Number.isNaN(u)?0:u}function Ku(d,c){const u=d?.timeSent?new Date(d.timeSent):new Date,r=d?.seen?new Date(d.seen):void 0;return{id:d?.id,threadId:d?.threadId??c,timeSent:u,fromCandidate:!!d?.fromCandidate,text:d?.text??"",seen:r}}class nm{constructor(c=new X0,u=new Z0,r=new Pa){this.chatMessagesService=c,this.messageService=u,this.candidateService=r}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate(),u=c.firstName?.trim()||c.name?.trim()||"Lasse",r=c.imageUrl||c.image||void 0;return{name:u,imageUrl:r}}catch{return{name:"Lasse"}}}async getThreads(){return(await this.chatMessagesService.getChatMessages()??[]).map(u=>{const r=(u.allMessages??[]).map(v=>Ku(v,u.id));r.sort((v,U)=>fs(v.timeSent)-fs(U.timeSent));const m=u.latestMessage?Ku(u.latestMessage,u.id):r[r.length-1]??Ku(void 0,u.id);return{...u,allMessages:r,latestMessage:m}}).sort((u,r)=>fs(r.latestMessage?.timeSent)-fs(u.latestMessage?.timeSent))}async getUnreadCount(){const c=await this.messageService.getUnreadMessages();return Number(c?.unreadCount??0)}async sendMessage(c,u){const r={threadId:c,text:u.trim(),fromCandidate:!0,timeSent:new Date};return this.chatMessagesService.sendMessage(r)}async markThreadReadByMessageId(c){c&&await this.chatMessagesService.markThreadRead(c)}}function Jn(d){return typeof d=="object"&&d!==null?d:null}function wt(d){return typeof d=="string"?d:""}function K0(d){return typeof d=="number"?d:null}function W0(d){const c=Jn(d);if(!c)return null;const r=Jn(c.jobPosting)??c,m=wt(r.id);return m?{id:m,title:wt(r.title),companyName:wt(r.companyName),address:wt(r.address),applicationDeadline:wt(r.applicationDeadline),candidateDistance:K0(r.candidateDistance),fromJobnet:!!r.fromJobnet,logoUrl:wt(r.logoUrl),companyLogoImage:wt(r.companyLogoImage)}:null}function F0(d){const c=Jn(d);return(Array.isArray(c?.interviews)?c.interviews:[]).map(r=>{const m=Jn(r);if(!m)return null;const v=wt(m.id);return v?{id:v,jobName:wt(m.job_name)||"Interview",companyName:wt(m.company_name)||null,interviewDate:wt(m.interview_date)||null,recommendation:wt(m.recommendation)||null,isCompleted:!!m.is_completed}:null}).filter(r=>!!r).sort((r,m)=>{const v=r.interviewDate?new Date(r.interviewDate).getTime():0;return(m.interviewDate?new Date(m.interviewDate).getTime():0)-v}).slice(0,5)}function $0(d){const c=Jn(d);return c?Array.isArray(c.searchList)?c.searchList:[]:[]}class I0{constructor(c=new Pa,u=new Q0,r=new cr,m=new ys,v=new lm,U=new nm){this.candidateService=c,this.notificationService=u,this.jobService=r,this.subscriptionService=m,this.simulationService=v,this.messagesViewModel=U}async loadInitialData(){const[c,u,r,m,v,U]=await Promise.allSettled([this.candidateService.getCandidate(),this.notificationService.getNotifications(0,5),this.messagesViewModel.getThreads(),this.loadBestJobs(),this.subscriptionService.getPaymentOverview(),this.simulationService.listInterviews(5,0)]);return{candidate:c.status==="fulfilled"?c.value:null,notifications:u.status==="fulfilled"?u.value.slice(0,5):[],messages:r.status==="fulfilled"?r.value.slice(0,5):[],bestJobs:m.status==="fulfilled"?m.value:[],subscription:v.status==="fulfilled"?v.value:null,evaluations:U.status==="fulfilled"?F0(U.value):[]}}async loadBestJobs(){const c=await this.jobService.getJobsV2(10,0,5,[]);return $0(c).map(r=>W0(r)).filter(r=>!!r).slice(0,5)}}const P0={bestJobs:[],candidate:null,evaluations:[],messages:[],notifications:[],subscription:null};function Ch(d){return d.trim().slice(0,1).toUpperCase()||"A"}function ey({onLogout:d,onNavigate:c,onOpenJobDetail:u,onToggleTheme:r,theme:m}){const v=C.useMemo(()=>new I0,[]),[U,Y]=C.useState(P0),[R,b]=C.useState(!0);C.useEffect(()=>{let q=!0;return v.loadInitialData().then(Q=>{q&&Y(Q)}).finally(()=>{q&&b(!1)}),()=>{q=!1}},[v]);const V=U.candidate?.firstName?.trim()||U.candidate?.name?.trim()||"Lasse",T=U.candidate?.imageUrl||U.candidate?.image||"";return n.jsxs("section",{className:`dash-root ${m==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"dashboard",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar",children:[n.jsx(sa,{name:V,imageUrl:T||void 0,onLogout:d,theme:m,onToggleTheme:r}),n.jsxs("div",{className:"dash-welcome",children:[n.jsxs("h1",{children:["Velkommen tilbage ",V," ",n.jsx("span",{children:"👋"})]}),n.jsx("p",{children:"Her er, hvad der sker med din jobsøgning i dag."})]}),R?n.jsx("p",{className:"dash-loading",children:"Indlaeser dashboard..."}):null,n.jsxs("div",{className:"dash-grid",children:[n.jsxs("div",{className:"dash-grid-main",children:[n.jsxs("article",{className:"dash-card",children:[n.jsx("div",{className:"dash-card-head",children:n.jsx("h2",{children:"Anbefalet til dig"})}),n.jsx("div",{className:"dash-job-list",children:(U.bestJobs.length>0?U.bestJobs:[{id:"d1",title:"Senior Frontend-udvikler",companyName:"Lunar",address:"Kobenhavn, DK",applicationDeadline:"",candidateDistance:null,fromJobnet:!1,logoUrl:"",companyLogoImage:""},{id:"d2",title:"React-udvikler",companyName:"Pleo",address:"Remote",applicationDeadline:"",candidateDistance:null,fromJobnet:!1,logoUrl:"",companyLogoImage:""}]).slice(0,5).map(q=>n.jsxs("div",{className:"dash-job-item",role:"button",tabIndex:0,onClick:()=>u(q.id,!!q.fromJobnet,"dashboard"),onKeyDown:Q=>{(Q.key==="Enter"||Q.key===" ")&&(Q.preventDefault(),u(q.id,!!q.fromJobnet,"dashboard"))},children:[n.jsxs("div",{className:"dash-job-left",children:[n.jsx("div",{className:"dash-company-chip",children:Ch(q.companyName)}),n.jsxs("div",{children:[n.jsx("h4",{children:q.title}),n.jsxs("p",{children:[q.companyName," • ",q.address||"Lokation ikke angivet"]})]})]}),n.jsx("button",{type:"button",className:"dash-job-arrow-btn","aria-label":"Se job",onClick:Q=>{Q.stopPropagation(),u(q.id,!!q.fromJobnet,"dashboard")},children:n.jsx($a,{size:16,strokeWidth:1.8})})]},q.id))})]}),n.jsxs("div",{className:"dash-split-grid",children:[n.jsxs("article",{className:"dash-card",children:[n.jsx("h3",{children:"Seneste beskeder"}),n.jsxs("div",{className:"dash-message-list",children:[(U.messages.length>0?U.messages:[]).slice(0,5).map(q=>n.jsxs("div",{className:"dash-message-item",children:[n.jsx("div",{className:"dash-avatar",children:Ch(q.companyName||"A")}),n.jsxs("div",{children:[n.jsx("h4",{children:q.companyName||"Samtale"}),n.jsx("p",{children:q.latestMessage?.text||"Ingen besked endnu"})]})]},q.id)),U.messages.length===0?n.jsx("p",{className:"dash-muted",children:"Ingen beskeder endnu."}):null]})]}),n.jsxs("article",{className:"dash-card",children:[n.jsxs("div",{className:"dash-card-head dash-card-head-inline",children:[n.jsx("h3",{children:"Seneste simuleringer"}),n.jsx("button",{type:"button",className:"dash-icon-btn",children:n.jsx(bv,{size:16,strokeWidth:1.8})})]}),n.jsxs("div",{className:"dash-sim-list",children:[n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon teal",children:n.jsx(er,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Teknisk samtale"}),n.jsx("p",{children:"Frontend-fokus"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{children:"92/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{style:{width:"92%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon purple",children:n.jsx(Fv,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Kulturelt match"}),n.jsx("p",{children:"Lunar Bank"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{children:"88/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{style:{width:"88%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon amber",children:n.jsx(xv,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Systemdesign"}),n.jsx("p",{children:"Arkitektur"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{className:"warn",children:"65/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{className:"warn",style:{width:"65%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon blue",children:n.jsx(er,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"Live-kodning"}),n.jsx("p",{children:"React.js"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{children:"95/100"}),n.jsx("div",{className:"dash-progress",children:n.jsx("span",{style:{width:"95%"}})})]})]}),n.jsxs("div",{className:"dash-sim-item",children:[n.jsxs("div",{className:"dash-sim-left",children:[n.jsx("span",{className:"dash-sim-icon gray",children:n.jsx(Fh,{size:16,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h4",{children:"HR-screening"}),n.jsx("p",{children:"Generelt"})]})]}),n.jsxs("div",{className:"dash-sim-right",children:[n.jsx("strong",{className:"na",children:"N/A"}),n.jsx("div",{className:"dash-progress"})]})]})]})]})]})]}),n.jsxs("div",{className:"dash-grid-side",children:[n.jsxs("article",{className:"dash-card dash-ai-card dash-ai-card-group",children:[n.jsx("div",{className:"dash-ai-peel"}),n.jsxs("div",{className:"dash-ai-content",children:[n.jsxs("div",{className:"dash-ai-head",children:[n.jsx(Gn,{size:22,strokeWidth:1.8}),n.jsx("h3",{children:"AI-indsigter til dit CV"})]}),n.jsx("p",{children:"Vi analyserede dit seneste CV op imod dine målroller."}),n.jsxs("ul",{className:"dash-ai-list",children:[n.jsxs("li",{className:"dash-ai-item",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(tp,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Kvantificer dine resultater"}),n.jsx("small",{children:'Tilføj tal til din rolle hos TechCorp (f.eks. \\"Forbedrede loadhastighed med 40%\\").'})]})]}),n.jsxs("li",{className:"dash-ai-item",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(Ig,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Omorganiser dine færdigheder"}),n.jsx("small",{children:"Flyt React & TypeScript til toppen baseret på aktive Jobagenter."})]})]}),n.jsxs("li",{className:"dash-ai-item",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(Ep,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Tilføj manglende nøgleord"}),n.jsx("small",{children:'Inkluder \\"Tailwind CSS\\" for at matche 85% af dine anbefalede jobs.'})]})]}),n.jsxs("li",{className:"dash-ai-item dash-ai-xl-only",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx(Ih,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Omskriv dit resumé"}),n.jsx("small",{children:"Gør din målsætning mere handlingsorienteret."})]})]}),n.jsxs("li",{className:"dash-ai-item dash-ai-xl-only",children:[n.jsx("span",{className:"dash-ai-item-icon",children:n.jsx($p,{size:13,strokeWidth:2})}),n.jsxs("div",{children:[n.jsx("strong",{children:"Opdater porteføljelink"}),n.jsx("small",{children:"Dit GitHub-link gav en 404-fejl i vores test."})]})]})]}),n.jsx("button",{type:"button",children:"Anvend alle ændringer"})]})]}),n.jsxs("article",{className:"dash-card",children:[n.jsxs("div",{className:"dash-card-head dash-card-head-inline",children:[n.jsx("h3",{children:"Aktive Jobagenter"}),n.jsx("button",{type:"button",className:"dash-icon-btn",children:n.jsx($h,{size:16,strokeWidth:1.8})})]}),n.jsxs("div",{className:"dash-agent-list",children:[n.jsxs("div",{className:"dash-agent-item",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Frontend-udvikler"}),n.jsxs("small",{children:[n.jsx(Yn,{size:13,strokeWidth:1.8})," Kobenhavn"]})]}),n.jsxs("label",{className:"dash-switch",children:[n.jsx("input",{type:"checkbox",defaultChecked:!0}),n.jsx("span",{})]})]}),n.jsxs("div",{className:"dash-agent-item",children:[n.jsxs("div",{children:[n.jsx("span",{children:"React-udvikler"}),n.jsxs("small",{children:[n.jsx(lr,{size:13,strokeWidth:1.8})," Remote (EU)"]})]}),n.jsxs("label",{className:"dash-switch",children:[n.jsx("input",{type:"checkbox",defaultChecked:!0}),n.jsx("span",{})]})]}),n.jsxs("div",{className:"dash-agent-item muted",children:[n.jsxs("div",{children:[n.jsx("span",{children:"UI/UX-designer"}),n.jsxs("small",{children:[n.jsx(Yn,{size:13,strokeWidth:1.8})," Aarhus"]})]}),n.jsxs("label",{className:"dash-switch",children:[n.jsx("input",{type:"checkbox"}),n.jsx("span",{})]})]})]}),n.jsx("button",{type:"button",className:"dash-outline-btn",children:"Opret ny agent"})]})]})]})]})]})}function Bn(d){return d instanceof Date?d.toISOString():typeof d=="string"?d:""}function Eh(d){const c=[d.road,d.houseNum,d.zip,d.zipName].filter(u=>typeof u=="string"&&u.trim().length>0).join(" ");return{id:d.id,title:d.title??"Job",companyName:d.hiringCompanyName??"Ukendt virksomhed",occupationName:d.occupation?.name??"",address:c||d.zipName||"Ukendt adresse",description:d.description??"",applicationDeadline:Bn(d.applicationDeadline),websiteUrl:d.applicationUrl||d.hiringCompanyUrl||"",logoUrl:d.logoUrl||"",fromJobnet:!0,isSaved:!1,isApplied:!!d.applied,isFullTime:typeof d.isFullTime=="boolean"?d.isFullTime:null,workTimes:Array.isArray(d.workTimes)?d.workTimes:[],contactName:d.contactName??"",hiringCompanyName:d.hiringCompanyName??"",datePosted:Bn(d.datePosted),employmentDate:Bn(d.employmentDate),startAsSoonAsPossible:typeof d.startAsSoonAsPossible=="boolean"?d.startAsSoonAsPossible:null,numberOfPositions:typeof d.numberOfPositions=="number"?d.numberOfPositions:null}}function wh(d,c){return{id:d,title:c.title??"Job",companyName:c.companyName??"Ukendt virksomhed",occupationName:c.position??"",address:"",description:[c.descriptionIntro,c.descriptionPosition,c.descriptionOffer].filter(u=>typeof u=="string"&&u.trim().length>0).join(` - -`),applicationDeadline:Bn(c.applicationDeadline),websiteUrl:c.website??"",logoUrl:"",fromJobnet:!1,isSaved:!1,isApplied:!!c.appliedJob,isFullTime:null,workTimes:Array.isArray(c.workTimes)?c.workTimes:[],contactName:"",hiringCompanyName:c.companyName??"",datePosted:"",employmentDate:Bn(c.fromDate),startAsSoonAsPossible:null,numberOfPositions:typeof c.numberOfPositions=="number"?c.numberOfPositions:null}}class ty{constructor(c=new cr){this.jobService=c}async getDetail(c,u){if(u)try{const r=await this.jobService.getJobNetJobDetail(c);return Eh(r)}catch{const r=await this.jobService.getJobDetail(c);return wh(c,r)}try{const r=await this.jobService.getJobDetail(c);return wh(c,r)}catch{const r=await this.jobService.getJobNetJobDetail(c);return Eh(r)}}async toggleBookmark(c,u,r){const m=u?"star":"arbejd.com";await this.jobService.bookmarkJobV2(c,r,m)}async markAsApplied(c,u){if(u){await this.jobService.toggleApplyJobnetjob(c,!0);return}await this.jobService.applyJob(c)}}function ay(d){return d.trim().slice(0,1).toUpperCase()||"A"}function Wu(d){if(!d)return"Ikke angivet";const c=new Date(d);return Number.isNaN(c.getTime())?d:new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short",year:"numeric"}).format(c)}function ly(d){if(!d.trim())return"";if(typeof window>"u")return d;const u=new DOMParser().parseFromString(d,"text/html");u.querySelectorAll("script, style, iframe, object, embed, link, meta").forEach(r=>r.remove());for(const r of Array.from(u.body.querySelectorAll("*")))for(const m of Array.from(r.attributes)){const v=m.name.toLowerCase(),Y=m.value.trim().toLowerCase();if(v.startsWith("on")){r.removeAttribute(m.name);continue}if((v==="href"||v==="src")&&Y.startsWith("javascript:")){r.removeAttribute(m.name);continue}(v==="style"||v==="srcdoc")&&r.removeAttribute(m.name)}return u.body.innerHTML}function ny(d){return d.isFullTime===!0?"Fuldtid":d.isFullTime===!1?"Deltid":d.workTimes.length>0?"Fleksibel arbejdstid":"Ikke oplyst"}function iy({fromJobnet:d,jobId:c,onBack:u,onLogout:r,onNavigate:m,onToggleTheme:v,theme:U}){const Y=C.useMemo(()=>new ty,[]),R=C.useMemo(()=>new bs,[]),[b,V]=C.useState({name:"Lasse"}),[T,q]=C.useState(null),[Q,ee]=C.useState(!0),[B,re]=C.useState(""),[oe,ge]=C.useState(!1),[K,ne]=C.useState(!1),[se,Z]=C.useState(!1),[D,fe]=C.useState(!1);C.useEffect(()=>{let J=!0;async function ae(){ee(!0),re("");const[P,W]=await Promise.allSettled([R.getCandidateProfile(),Y.getDetail(c,d)]);J&&(P.status==="fulfilled"&&V(P.value),W.status==="fulfilled"?(q(W.value),ge(!!W.value.isSaved),ne(!!W.value.isApplied)):(q(null),re("Kunne ikke hente jobdetaljer. Proev igen.")),ee(!1))}return ae(),()=>{J=!1}},[Y,d,c,R]);async function je(){if(!(!T||se)){Z(!0);try{await Y.toggleBookmark(T.id,T.fromJobnet,!oe),ge(J=>!J)}finally{Z(!1)}}}async function Se(){if(!(!T||K||D)){fe(!0);try{await Y.markAsApplied(T.id,T.fromJobnet),ne(!0)}finally{fe(!1)}}}const H=C.useMemo(()=>ly(T?.description??""),[T?.description]);return n.jsxs("section",{className:`dash-root ${U==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"jobs",onNavigate:m}),n.jsxs("main",{className:"dash-main custom-scrollbar",children:[n.jsx(sa,{name:b.name,imageUrl:b.imageUrl,onLogout:r,theme:U,onToggleTheme:v}),n.jsx("div",{className:"job-detail-back-row",children:n.jsxs("button",{type:"button",className:"job-detail-back-btn",onClick:u,children:[n.jsx(Bh,{size:15,strokeWidth:1.8}),n.jsx("span",{children:"Tilbage til jobs"})]})}),Q?n.jsx("p",{className:"dash-loading",children:"Indlaeser jobdetaljer..."}):null,!Q&&B?n.jsx("p",{className:"dash-loading",children:B}):null,!Q&&T?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"job-detail-header",children:[n.jsx("div",{className:"job-detail-logo-wrap",children:T.logoUrl?n.jsx("img",{src:T.logoUrl,alt:T.companyName,className:"job-detail-logo-image"}):n.jsx("div",{className:"job-detail-logo-fallback",children:ay(T.companyName)})}),n.jsxs("div",{className:"job-detail-heading",children:[n.jsx("h1",{children:T.title||"Jobdetaljer"}),n.jsxs("div",{className:"job-detail-meta",children:[n.jsxs("span",{children:[n.jsx(Iu,{size:14,strokeWidth:1.8})," ",T.companyName||"Virksomhed"]}),n.jsxs("span",{children:[n.jsx(Yn,{size:14,strokeWidth:1.8})," ",T.address||"Lokation ikke angivet"]}),n.jsxs("span",{children:[n.jsx(Pu,{size:14,strokeWidth:1.8})," ",ny(T)]})]})]})]}),n.jsxs("div",{className:"job-detail-grid",children:[n.jsxs("section",{className:"job-detail-main-card dash-card",children:[n.jsxs("div",{className:"job-detail-section",children:[n.jsx("h2",{children:"Om rollen"}),H?n.jsx("div",{className:"job-detail-rich-html",dangerouslySetInnerHTML:{__html:H}}):n.jsx("p",{children:"Ingen jobbeskrivelse er tilgaengelig endnu."})]}),n.jsxs("div",{className:"job-detail-section",children:[n.jsx("h3",{children:"Jobinformation"}),n.jsxs("div",{className:"job-detail-info-grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Ansøgningsfrist"}),n.jsx("strong",{children:Wu(T.applicationDeadline)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Opslået"}),n.jsx("strong",{children:Wu(T.datePosted)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Startdato"}),n.jsx("strong",{children:Wu(T.employmentDate)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Stillinger"}),n.jsx("strong",{children:T.numberOfPositions??"Ikke angivet"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Kontaktperson"}),n.jsx("strong",{children:T.contactName||"Ikke angivet"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Kilde"}),n.jsx("strong",{children:T.fromJobnet?"Jobnet":"Arbejd.com"})]})]})]})]}),n.jsxs("aside",{className:"job-detail-side-col",children:[n.jsxs("article",{className:"dash-card job-detail-actions-card",children:[n.jsx("h2",{children:"Handlinger"}),n.jsxs("button",{type:"button",className:"job-detail-action-primary",children:[n.jsxs("span",{children:[n.jsx(Gn,{size:16,strokeWidth:1.8})," Generer ansøgning"]}),n.jsx($a,{size:14,strokeWidth:1.8})]}),n.jsxs("button",{type:"button",className:"job-detail-action-secondary",children:[n.jsxs("span",{children:[n.jsx(Tv,{size:16,strokeWidth:1.8})," Simuler jobsamtale"]}),n.jsx($a,{size:14,strokeWidth:1.8})]}),n.jsx("div",{className:"job-detail-action-divider"}),n.jsxs("button",{type:"button",className:"job-detail-text-action",onClick:()=>{je()},disabled:se,children:[n.jsx(lp,{size:16,strokeWidth:1.8}),oe?"Fjern fra gemte jobs":"Gem job"]}),n.jsxs("button",{type:"button",className:"job-detail-text-action",children:[n.jsx(ps,{size:16,strokeWidth:1.8}),"Del via email"]}),T.websiteUrl?n.jsxs("a",{href:T.websiteUrl,target:"_blank",rel:"noreferrer",className:"job-detail-text-action link",children:[n.jsx(gs,{size:16,strokeWidth:1.8}),"Åbn på nettet"]}):null,n.jsxs("button",{type:"button",className:K?"job-detail-text-action success is-done":"job-detail-text-action success",onClick:()=>{Se()},disabled:K||D,children:[n.jsx(tt,{size:16,strokeWidth:1.8}),K?"Markeret som søgt":"Marker som søgt"]})]}),n.jsxs("article",{className:"dash-card job-detail-company-card",children:[n.jsx("h3",{children:"Om virksomheden"}),n.jsxs("div",{className:"job-detail-company-list",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Virksomhed"}),n.jsx("strong",{children:T.hiringCompanyName||T.companyName||"Ukendt"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Stilling"}),n.jsx("strong",{children:T.occupationName||"Ikke angivet"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Website"}),n.jsx("strong",{children:T.websiteUrl||"Ikke angivet"})]})]})]})]})]})]}):null]})]})}const Uh=[2,4,6,8,10,12,24],sy=[{id:"job-1",title:"Senior Frontend-udvikler",companyName:"Lunar",occupationName:"Frontend",descriptionIntro:"Vi søger en erfaren frontend-udvikler til at lede vores nye team.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:5,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:98},{id:"job-2",title:"UX/UI Designer (Deltid)",companyName:"Pleo",occupationName:"Design",descriptionIntro:"Hjælp os med at skabe brugervenlige flows for vores expense management platform.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:12,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:95},{id:"job-3",title:"React-udvikler",companyName:"Zendesk",occupationName:"Frontend",descriptionIntro:"Bliv en del af vores kerne-team i Kobenhavn og byg software i topklasse.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:2,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:89},{id:"job-4",title:"Full Stack Web-udvikler",companyName:"Trustpilot",occupationName:"Full stack",descriptionIntro:"Vi leder efter en passioneret Full Stack Developer (Node.js/React).",address:"Remote",time:"",applicationDeadline:"",candidateDistance:null,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:85},{id:"job-5",title:"Frontend-arkitekt",companyName:"Novo Nordisk",occupationName:"Frontend",descriptionIntro:"Vær med til at designe arkitekturen for interne medicinske data-platforme.",address:"Bagsvaerd",time:"",applicationDeadline:"",candidateDistance:18,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:72},{id:"job-6",title:"Product Designer",companyName:"Podimo",occupationName:"Design",descriptionIntro:"Vi mangler en skarp Product Designer til at forme fremtidens lytteoplevelse.",address:"Kobenhavn",time:"",applicationDeadline:"",candidateDistance:3,logoUrl:"",companyLogoImage:"",fromJobnet:!1,isSaved:!1,matchPercent:68}];function cy(d){return d.trim().slice(0,1).toUpperCase()||"A"}function Oh(d){return d.address.toLowerCase().includes("remote")?"Remote":typeof d.candidateDistance=="number"?`${Math.max(0,Math.round(d.candidateDistance))} km vaek`:d.address||"Lokation ikke angivet"}function uy(d){return d.companyLogoImage||d.logoUrl||""}function Lh({item:d}){const[c,u]=C.useState(!1),r=uy(d);return r.length>0&&!c?n.jsx("div",{className:"jobs-card-logo jobs-card-logo-image-wrap",children:n.jsx("img",{src:r,alt:d.companyName||"Virksomhed",className:"jobs-card-logo-image",onError:()=>u(!0)})}):n.jsx("div",{className:"jobs-card-logo",children:cy(d.companyName)})}function ry(d){return d.workTypePartTime?"deltid":"fast"}function oy({onLogout:d,onNavigate:c,onOpenJobDetail:u,onToggleTheme:r,theme:m}){const v=C.useMemo(()=>new bs,[]),[U,Y]=C.useState({name:"Lasse"}),[R,b]=C.useState(""),[V,T]=C.useState("sidebar"),[q,Q]=C.useState("fast"),[ee,B]=C.useState(15),[re,oe]=C.useState(24),[ge,K]=C.useState(["Frontend-udvikler","UX/UI Designer"]),[ne,se]=C.useState(""),[Z,D]=C.useState([]),[fe,je]=C.useState(!0),[Se,H]=C.useState(6),J=C.useCallback(async()=>{try{const h=await v.getTabItems("jobs");D(h),H(6)}catch{D([]),H(6)}},[v]);C.useEffect(()=>{let h=!0;async function x(){try{const E=await v.getSavedFilter();if(!h)return;Q(ry(E)),B(E.workDistance??15),oe(E.partTimeHours??24),b(E.distanceCenterName??"")}catch{}if(await J(),h){const E=await v.getCandidateProfile();h&&Y(E),je(!1)}}return x(),()=>{h=!1}},[J,v]);async function ae(){const h={escoIds:[],workTypePermanent:q==="fast",workTypePartTime:q==="deltid",workDistance:ee,partTimeHours:q==="deltid"?re:null,distanceCenterName:R,latitude:null,longitude:null};je(!0);try{const x=await v.applyFiltersAndGetJobs(h,{searchText:R,desiredTitles:ge});D(x),H(6)}catch{D([]),H(6)}je(!1)}const P=Z.length>0?Z:sy,W=P.slice(0,Math.min(Se,P.length)),k=Seh==="sidebar"?"top":"sidebar")}function O(h){K(x=>x.filter(E=>E!==h))}function I(h){const x=h.trim();x&&(K(E=>E.includes(x)?E:[...E,x]),se(""))}function ue(){H(h=>Math.min(h+6,P.length))}return n.jsxs("section",{className:`dash-root ${m==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"jobs",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar",children:[n.jsx(sa,{name:U.name,imageUrl:U.imageUrl,onLogout:d,theme:m,onToggleTheme:r,actions:n.jsxs("button",{type:"button",className:"jobs-layout-toggle",onClick:_,children:[V==="sidebar"?n.jsx(Kh,{size:16,strokeWidth:1.8}):n.jsx(Zh,{size:16,strokeWidth:1.8}),n.jsx("span",{children:V==="sidebar"?"Top-layout":"Side-layout"})]})}),n.jsxs("div",{className:"jobs-page-head",children:[n.jsx("h1",{children:"Find dit naeste job"}),n.jsx("p",{children:"Sog og filtrer for at finde det perfekte match til din profil."})]}),V==="sidebar"?n.jsxs("div",{className:"jobs-grid",children:[n.jsxs("aside",{className:"jobs-filter dash-card",children:[n.jsxs("h2",{children:[n.jsx(Iu,{size:18,strokeWidth:1.8})," Filtre"]}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Sog jobtitel eller virksomhed"}),n.jsxs("div",{className:"jobs-search-wrap",children:[n.jsx(nr,{size:16,strokeWidth:1.8}),n.jsx("input",{type:"text",placeholder:"F.eks. Frontend Udvikler...",value:R,onChange:h=>b(h.target.value)})]})]}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Onskede jobtitler"}),n.jsxs("div",{className:"jobs-title-picker",children:[n.jsxs("div",{className:"jobs-title-input-wrap",children:[ge.map(h=>n.jsxs("span",{className:"jobs-title-chip",children:[h,n.jsx("button",{type:"button",onClick:()=>O(h),"aria-label":`Fjern ${h}`,children:n.jsx(kh,{size:12,strokeWidth:2})})]},h)),n.jsx("input",{type:"text",value:ne,onChange:h=>se(h.target.value),onKeyDown:h=>{h.key==="Enter"&&(h.preventDefault(),I(ne))},placeholder:"Sog og tilfoj flere jobtitler..."})]}),n.jsxs("div",{className:"jobs-title-suggestions",children:[n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>I("Frontend-udvikler"),children:[n.jsx("span",{children:"Frontend-udvikler"}),n.jsx(tt,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>I("Backend-udvikler"),children:n.jsx("span",{children:"Backend-udvikler"})}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>I("Full Stack-udvikler"),children:n.jsx("span",{children:"Full Stack-udvikler"})}),n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>I("UX/UI Designer"),children:[n.jsx("span",{children:"UX/UI Designer"}),n.jsx(tt,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>I("Product Manager"),children:n.jsx("span",{children:"Product Manager"})})]})]})]}),n.jsx("div",{className:"jobs-separator"}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Ansaettelsestype"}),n.jsxs("div",{className:"jobs-radio-grid",children:[n.jsx("button",{type:"button",className:q==="fast"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>Q("fast"),children:"Fast (Fuldtid)"}),n.jsx("button",{type:"button",className:q==="deltid"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>Q("deltid"),children:"Deltid"})]})]}),n.jsxs("div",{className:"jobs-filter-block jobs-range-block",children:[n.jsxs("div",{className:"jobs-range-head",children:[n.jsx("label",{children:"Maks. afstand"}),n.jsxs("span",{children:[ee," km"]})]}),n.jsx("input",{type:"range",min:0,max:50,value:ee,onChange:h=>B(Number(h.target.value))}),n.jsxs("div",{className:"jobs-range-labels",children:[n.jsx("span",{children:"0 km"}),n.jsx("span",{children:"50+ km"})]})]}),n.jsx("div",{className:"jobs-separator"}),n.jsxs("div",{className:"jobs-filter-block",children:[n.jsx("label",{children:"Timer (ved deltid)"}),n.jsx("p",{children:"Vaelg onsket timeantal pr. uge"}),n.jsx("div",{className:"jobs-hours-grid",children:Uh.map(h=>n.jsx("button",{type:"button",className:re===h?"jobs-hour-btn active":"jobs-hour-btn",onClick:()=>oe(h),children:h},h))})]}),n.jsx("button",{type:"button",className:"jobs-apply-btn",onClick:()=>{ae()},children:"Opdater resultater"})]}),n.jsxs("section",{className:"jobs-content",children:[n.jsxs("div",{className:"jobs-content-head",children:[n.jsx("h2",{children:"Seneste jobs"}),n.jsxs("span",{children:["Viser ",Z.length>0?Z.length:142," resultater"]})]}),fe?n.jsx("p",{className:"dash-loading",children:"Indlaeser jobs..."}):null,n.jsx("div",{className:"jobs-cards",children:W.map(h=>n.jsxs("article",{className:"jobs-card",role:"button",tabIndex:0,onClick:()=>u(h.id,h.fromJobnet,"jobs"),onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),u(h.id,h.fromJobnet,"jobs"))},children:[n.jsx("div",{className:"jobs-card-top",children:n.jsx(Lh,{item:h})}),n.jsxs("div",{className:"jobs-card-title",children:[n.jsx("h3",{children:h.title||"Stilling"}),n.jsx("p",{children:h.companyName||"Virksomhed"})]}),n.jsx("p",{className:"jobs-card-description",children:h.descriptionIntro||"Beskrivelse er ikke tilgaengelig endnu."}),n.jsxs("div",{className:"jobs-card-bottom",children:[n.jsxs("div",{className:"jobs-card-distance",children:[h.address.toLowerCase().includes("remote")?n.jsx(lr,{size:15,strokeWidth:1.8}):n.jsx(Sh,{size:15,strokeWidth:1.8}),n.jsx("span",{children:Oh(h)})]}),n.jsx("button",{type:"button",className:"jobs-card-arrow","aria-label":"Se job",onClick:x=>{x.stopPropagation(),u(h.id,h.fromJobnet,"jobs")},children:n.jsx($a,{size:16,strokeWidth:1.8})})]})]},h.id))}),n.jsx("div",{className:"jobs-load-more-wrap",children:n.jsx("button",{type:"button",className:"jobs-load-more",onClick:ue,disabled:!k,children:k?"Indlaes flere jobs":"Alle jobs er vist"})})]})]}):n.jsxs("section",{className:"jobs-top-layout",children:[n.jsxs("div",{className:"jobs-top-filters dash-card",children:[n.jsxs("div",{className:"jobs-top-filter-title",children:[n.jsx(Iu,{size:18,strokeWidth:1.8}),n.jsx("h2",{children:"Filtre"})]}),n.jsxs("div",{className:"jobs-top-controls",children:[n.jsxs("div",{className:"jobs-filter-block no-margin",children:[n.jsx("label",{children:"Sog noegleord eller virksomhed"}),n.jsxs("div",{className:"jobs-search-wrap",children:[n.jsx(nr,{size:16,strokeWidth:1.8}),n.jsx("input",{type:"text",placeholder:"F.eks. Lunar, React...",value:R,onChange:h=>b(h.target.value)})]})]}),n.jsxs("div",{className:"jobs-filter-block no-margin",children:[n.jsx("label",{children:"Ansaettelsestype"}),n.jsxs("div",{className:"jobs-radio-grid",children:[n.jsx("button",{type:"button",className:q==="fast"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>Q("fast"),children:"Fast"}),n.jsx("button",{type:"button",className:q==="deltid"?"jobs-radio-btn active":"jobs-radio-btn",onClick:()=>Q("deltid"),children:"Deltid"})]})]}),n.jsxs("div",{className:"jobs-filter-block no-margin jobs-top-range",children:[n.jsxs("div",{className:"jobs-range-head",children:[n.jsx("label",{children:"Maks. afstand"}),n.jsxs("span",{children:[ee," km"]})]}),n.jsx("input",{type:"range",min:0,max:50,value:ee,onChange:h=>B(Number(h.target.value))})]}),n.jsx("button",{type:"button",className:"jobs-apply-btn jobs-top-apply",onClick:()=>{ae()},children:"Opdater resultater"})]}),n.jsxs("div",{className:"jobs-filter-block no-margin",children:[n.jsx("label",{children:"Onskede jobtitler"}),n.jsxs("div",{className:"jobs-title-picker",children:[n.jsxs("div",{className:"jobs-title-input-wrap",children:[ge.map(h=>n.jsxs("span",{className:"jobs-title-chip",children:[h,n.jsx("button",{type:"button",onClick:()=>O(h),"aria-label":`Fjern ${h}`,children:n.jsx(kh,{size:12,strokeWidth:2})})]},h)),n.jsx("input",{type:"text",value:ne,onChange:h=>se(h.target.value),onKeyDown:h=>{h.key==="Enter"&&(h.preventDefault(),I(ne))},placeholder:"Sog og tilfoj flere jobtitler..."})]}),n.jsxs("div",{className:"jobs-title-suggestions",children:[n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>I("Frontend-udvikler"),children:[n.jsx("span",{children:"Frontend-udvikler"}),n.jsx(tt,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>I("Backend-udvikler"),children:n.jsx("span",{children:"Backend-udvikler"})}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>I("Full Stack-udvikler"),children:n.jsx("span",{children:"Full Stack-udvikler"})}),n.jsxs("button",{type:"button",className:"jobs-title-option active",onClick:()=>I("UX/UI Designer"),children:[n.jsx("span",{children:"UX/UI Designer"}),n.jsx(tt,{size:16,strokeWidth:1.8})]}),n.jsx("button",{type:"button",className:"jobs-title-option",onClick:()=>I("Product Manager"),children:n.jsx("span",{children:"Product Manager"})})]})]})]}),n.jsx("div",{className:"jobs-separator top-margin"}),n.jsxs("div",{className:"jobs-hours-row",children:[n.jsxs("div",{children:[n.jsx("label",{children:"Timer (ved deltid)"}),n.jsx("p",{children:"Vaelg onsket timeantal pr. uge"})]}),n.jsx("div",{className:"jobs-hours-grid",children:Uh.map(h=>n.jsx("button",{type:"button",className:re===h?"jobs-hour-btn active":"jobs-hour-btn",onClick:()=>oe(h),children:h},h))})]})]}),n.jsxs("section",{className:"jobs-content",children:[n.jsxs("div",{className:"jobs-content-head",children:[n.jsx("h2",{children:"Seneste jobs"}),n.jsxs("span",{children:["Viser ",Z.length>0?Z.length:142," resultater"]})]}),fe?n.jsx("p",{className:"dash-loading",children:"Indlaeser jobs..."}):null,n.jsx("div",{className:"jobs-cards jobs-cards-top",children:W.map(h=>n.jsxs("article",{className:"jobs-card",role:"button",tabIndex:0,onClick:()=>u(h.id,h.fromJobnet,"jobs"),onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),u(h.id,h.fromJobnet,"jobs"))},children:[n.jsx("div",{className:"jobs-card-top",children:n.jsx(Lh,{item:h})}),n.jsxs("div",{className:"jobs-card-title",children:[n.jsx("h3",{children:h.title||"Stilling"}),n.jsx("p",{children:h.companyName||"Virksomhed"})]}),n.jsx("p",{className:"jobs-card-description",children:h.descriptionIntro||"Beskrivelse er ikke tilgaengelig endnu."}),n.jsxs("div",{className:"jobs-card-bottom",children:[n.jsxs("div",{className:"jobs-card-distance",children:[h.address.toLowerCase().includes("remote")?n.jsx(lr,{size:15,strokeWidth:1.8}):n.jsx(Sh,{size:15,strokeWidth:1.8}),n.jsx("span",{children:Oh(h)})]}),n.jsx("button",{type:"button",className:"jobs-card-arrow","aria-label":"Se job",onClick:x=>{x.stopPropagation(),u(h.id,h.fromJobnet,"jobs")},children:n.jsx($a,{size:16,strokeWidth:1.8})})]})]},h.id))}),n.jsx("div",{className:"jobs-load-more-wrap",children:n.jsx("button",{type:"button",className:"jobs-load-more",onClick:ue,disabled:!k,children:k?"Indlaes flere jobs":"Alle jobs er vist"})})]})]})]})]})}function ms(d){if(!d)return 0;const u=(d instanceof Date?d:new Date(d)).getTime();return Number.isNaN(u)?0:u}function im(d){if(!d)return"--:--";const c=d instanceof Date?d:new Date(d);return Number.isNaN(c.getTime())?"--:--":new Intl.DateTimeFormat("da-DK",{hour:"2-digit",minute:"2-digit"}).format(c)}function dy(d){if(!d)return"";const c=d instanceof Date?d:new Date(d);if(Number.isNaN(c.getTime()))return"";const u=new Date,r=1440*60*1e3,m=Math.floor((new Date(u.getFullYear(),u.getMonth(),u.getDate()).getTime()-new Date(c.getFullYear(),c.getMonth(),c.getDate()).getTime())/r);return m===0?im(c):m===1?"I går":new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short"}).format(c)}function fy(d){const c=new Date,u=new Date(d.getFullYear(),d.getMonth(),d.getDate()),r=new Date(c.getFullYear(),c.getMonth(),c.getDate()),m=Math.floor((r.getTime()-u.getTime())/(1440*60*1e3));return m===0?"I dag":m===1?"I går":new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short"}).format(d)}function Vn(d){return!d.fromCandidate&&!d.seen}function Rh(d){return d.allMessages.filter(Vn).length}function Rn(d){return d.companyLogoUrl||d.companyLogo||""}function hy(d){return{...d,allMessages:[...d.allMessages??[]].sort((c,u)=>ms(c.timeSent)-ms(u.timeSent))}}function Hh(){const d=new Date,c=new Date(d.getTime()-600*1e3),u=new Date(d.getTime()-7200*1e3),r=(U,Y,R,b,V)=>({threadId:U,text:Y,fromCandidate:R,timeSent:b,seen:V}),m=[r("thread-techcorp","Hej Lasse! Mange tak for din ansøgning.",!1,u),r("thread-techcorp","Mange tak, det lyder rigtig spændende.",!0,new Date(u.getTime()+1200*1e3),new Date(u.getTime()+1800*1e3)),r("thread-techcorp","Vi vil gerne invitere dig til samtale.",!1,c)],v=[r("thread-lunar","Mange tak for din opdaterede portefølje.",!1,new Date(d.getTime()-1560*60*1e3),new Date(d.getTime()-1500*60*1e3))];return[{id:"thread-techcorp",companyLogo:"",companyLogoUrl:"https://i.pravatar.cc/150?img=33",companyName:"TechCorp A/S",candidateFirstName:"Lasse",candidateLastName:"Hansen",candidateImage:"https://i.pravatar.cc/150?img=11",allMessages:m,latestMessage:m[m.length-1],title:"Frontend Udvikler",messagesLoaded:!0,jobPostingId:"job-1",jobPosting:void 0,isFromSupport:!1},{id:"thread-lunar",companyLogo:"",companyLogoUrl:"https://i.pravatar.cc/150?img=12",companyName:"Lunar Bank",candidateFirstName:"Lasse",candidateLastName:"Hansen",candidateImage:"https://i.pravatar.cc/150?img=11",allMessages:v,latestMessage:v[v.length-1],title:"Senior UX Designer",messagesLoaded:!0,jobPostingId:"job-2",jobPosting:void 0,isFromSupport:!1}]}function my({onLogout:d,onNavigate:c,onToggleTheme:u,theme:r}){const m=C.useMemo(()=>new nm,[]),[v,U]=C.useState("Lasse"),[Y,R]=C.useState(void 0),[b,V]=C.useState([]),[T,q]=C.useState(!0),[Q,ee]=C.useState(""),[B,re]=C.useState("all"),[oe,ge]=C.useState(""),[K,ne]=C.useState("");C.useEffect(()=>{let H=!0;async function J(){q(!0);try{const ae=await m.getCandidateProfile();H&&(U(ae.name),R(ae.imageUrl));const P=await m.getThreads();if(!H)return;const W=(P.length>0?P:Hh()).map(hy);V(W),ge(W[0]?.id||"")}catch{if(!H)return;const ae=Hh();V(ae),ge(ae[0]?.id||"")}finally{H&&q(!1)}}return J(),()=>{H=!1}},[m]);const se=C.useMemo(()=>{const H=Q.trim().toLowerCase();return b.filter(J=>B==="unread"&&Rh(J)===0||B==="companies"&&J.isFromSupport?!1:H?J.companyName.toLowerCase().includes(H)||(J.latestMessage?.text||"").toLowerCase().includes(H):!0)},[B,Q,b]),Z=C.useMemo(()=>b.find(H=>H.id===oe)||se[0],[oe,se,b]),D=C.useMemo(()=>[...Z?.allMessages||[]].sort((H,J)=>ms(H.timeSent)-ms(J.timeSent)),[Z]);async function fe(H){ge(H.id);const J=[...H.allMessages].reverse().find(ae=>Vn(ae));J?.id&&(m.markThreadReadByMessageId(J.id),V(ae=>ae.map(P=>P.id!==H.id?P:{...P,allMessages:P.allMessages.map(W=>Vn(W)?{...W,seen:new Date}:W)})))}async function je(){const H=b.flatMap(J=>J.allMessages).filter(J=>Vn(J)&&!!J.id);await Promise.all(H.map(J=>m.markThreadReadByMessageId(J.id))),V(J=>J.map(ae=>({...ae,allMessages:ae.allMessages.map(P=>Vn(P)?{...P,seen:new Date}:P)})))}async function Se(){const H=K.trim();if(!Z||!H)return;const J={threadId:Z.id,text:H,fromCandidate:!0,timeSent:new Date};ne(""),V(ae=>ae.map(P=>{if(P.id!==Z.id)return P;const W=[...P.allMessages,J];return{...P,allMessages:W,latestMessage:J}}));try{const ae=await m.sendMessage(Z.id,H);V(P=>P.map(W=>{if(W.id!==Z.id)return W;const _=[...W.allMessages.filter(O=>O!==J),ae];return{...W,allMessages:_,latestMessage:ae}}))}catch{}}return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"messages",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar msg-main",children:[n.jsx(sa,{name:v,imageUrl:Y,onLogout:d,theme:r,onToggleTheme:u}),n.jsxs("div",{className:"msg-head",children:[n.jsxs("div",{children:[n.jsx("h1",{children:"Beskeder"}),n.jsx("p",{children:"Kommuniker med virksomheder og hold styr på dine ansøgninger."})]}),n.jsxs("button",{type:"button",className:"msg-mark-btn",onClick:()=>{je()},children:[n.jsx(dp,{size:16,strokeWidth:1.8})," Marker alle som læst"]})]}),n.jsxs("div",{className:"msg-layout",children:[n.jsxs("section",{className:"msg-threads",children:[n.jsxs("div",{className:"msg-threads-head",children:[n.jsxs("div",{className:"msg-search-wrap",children:[n.jsx(nr,{size:16,strokeWidth:1.8}),n.jsx("input",{value:Q,onChange:H=>ee(H.target.value),type:"text",placeholder:"Søg i beskeder..."})]}),n.jsxs("div",{className:"msg-filter-row",children:[n.jsx("button",{type:"button",className:B==="all"?"active":"",onClick:()=>re("all"),children:"Alle"}),n.jsx("button",{type:"button",className:B==="unread"?"active":"",onClick:()=>re("unread"),children:"Ulæste"}),n.jsx("button",{type:"button",className:B==="companies"?"active":"",onClick:()=>re("companies"),children:"Virksomheder"})]})]}),n.jsxs("div",{className:"msg-thread-list custom-scrollbar",children:[T?n.jsx("p",{className:"dash-loading",children:"Indlaeser beskeder..."}):null,!T&&se.length===0?n.jsx("p",{className:"dash-loading",children:"Ingen tråde fundet."}):null,se.map(H=>{const J=Rh(H),ae=Z?.id===H.id,P=Rn(H);return n.jsxs("button",{type:"button",className:ae?"msg-thread-item active":"msg-thread-item",onClick:()=>{fe(H)},children:[n.jsxs("div",{className:"msg-thread-avatar-wrap",children:[P?n.jsx("img",{src:P,alt:H.companyName,className:"msg-thread-avatar"}):n.jsx("div",{className:"msg-thread-avatar-fallback",children:H.companyName.slice(0,1).toUpperCase()}),n.jsx("span",{className:"msg-thread-online"})]}),n.jsxs("div",{className:"msg-thread-content",children:[n.jsxs("div",{className:"msg-thread-row",children:[n.jsx("h3",{children:H.companyName}),n.jsx("span",{children:dy(H.latestMessage?.timeSent)})]}),n.jsx("p",{className:J>0?"unread":"",children:H.latestMessage?.text||"Ingen beskeder endnu"}),n.jsx("small",{children:H.title||"Stilling"})]}),J>0?n.jsx("div",{className:"msg-thread-unread",children:J}):null]},H.id)})]})]}),n.jsxs("section",{className:"msg-chat",children:[n.jsx("div",{className:"msg-chat-head",children:Z?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"msg-chat-company",children:[Rn(Z)?n.jsx("img",{src:Rn(Z),alt:Z.companyName,className:"msg-chat-avatar"}):n.jsx("div",{className:"msg-chat-avatar-fallback",children:Z.companyName.slice(0,1).toUpperCase()}),n.jsxs("div",{children:[n.jsx("h2",{children:Z.companyName}),n.jsx("p",{children:Z.title||"Rekruttering"})]})]}),n.jsxs("div",{className:"msg-chat-actions",children:[n.jsx("button",{type:"button","aria-label":"Ring",children:n.jsx(gv,{size:16,strokeWidth:1.8})}),n.jsx("button",{type:"button","aria-label":"Info",children:n.jsx(Jp,{size:16,strokeWidth:1.8})})]})]}):n.jsx("h2",{children:"Vælg en samtale"})}),n.jsx("div",{className:"msg-chat-body custom-scrollbar",children:D.map((H,J)=>{const ae=H.timeSent instanceof Date?H.timeSent:new Date(H.timeSent),P=J>0?D[J-1]:void 0,W=P?.timeSent instanceof Date?P.timeSent:P?.timeSent?new Date(P.timeSent):void 0,k=!W||ae.toDateString()!==W.toDateString();return n.jsxs("div",{children:[k?n.jsx("div",{className:"msg-day-sep",children:fy(ae)}):null,n.jsxs("div",{className:H.fromCandidate?"msg-bubble-row mine":"msg-bubble-row",children:[H.fromCandidate?null:Rn(Z)?n.jsx("img",{src:Rn(Z),alt:Z.companyName,className:"msg-mini-avatar"}):n.jsx("div",{className:"msg-mini-avatar msg-mini-avatar-fallback",children:Z.companyName.slice(0,1).toUpperCase()}),n.jsxs("div",{className:"msg-bubble-wrap",children:[n.jsx("span",{className:"msg-time",children:im(H.timeSent)}),n.jsx("div",{className:H.fromCandidate?"msg-bubble mine":"msg-bubble",children:H.text})]})]})]},`${H.threadId}-${J}`)})}),n.jsx("div",{className:"msg-input-area",children:n.jsxs("div",{className:"msg-input-wrap",children:[n.jsx("button",{type:"button","aria-label":"Vedhæft",children:n.jsx(dv,{size:18,strokeWidth:1.8})}),n.jsx("textarea",{rows:1,value:K,onChange:H=>ne(H.target.value),onKeyDown:H=>{H.key==="Enter"&&!H.shiftKey&&(H.preventDefault(),Se())},placeholder:"Skriv din besked her..."}),n.jsx("button",{type:"button","aria-label":"Emoji",children:n.jsx(Hv,{size:18,strokeWidth:1.8})}),n.jsxs("button",{type:"button",className:"msg-send-btn",onClick:()=>{Se()},children:["Send ",n.jsx(wv,{size:15,strokeWidth:1.8})]})]})})]})]})]})]})}function sm(d){return typeof d=="object"&&d!==null?d:null}function ft(d){return typeof d=="string"?d:""}function Fu(d){return typeof d=="number"?d:null}function $u(d){if(typeof d=="boolean")return d;if(typeof d=="string"){const c=d.toLowerCase();if(c==="completed"||c==="done"||c==="true")return!0;if(c==="incomplete"||c==="pending"||c==="false")return!1}return null}function gy(d){if(!d)return"";const c=new Date(d);return Number.isNaN(c.getTime())?"":new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"short",year:"numeric"}).format(c)}function py(d,c){const u=sm(d);if(!u)return null;const r=ft(u.id)||ft(u.interview_id)||`interview-${c}`,m=ft(u.job_name)||ft(u.job_title)||ft(u.title)||"Interview",v=ft(u.company_name)||ft(u.companyName)||"Ukendt virksomhed",U=ft(u.interview_date)||ft(u.created_at)||ft(u.updated_at)||ft(u.date),Y=$u(u.is_completed)??$u(u.completed)??$u(u.status)??!0,R=Fu(u.duration_minutes)??Fu(u.duration)??Fu(u.length_minutes),b=ft(u.personality_name)||ft(u.simulation_personality_name)||ft(u.personality)||"Professionel";return{id:r,title:m,companyName:v,dateLabel:gy(U),completed:Y,durationMinutes:R,personality:b}}class vy{constructor(c=new bs,u=new lm){this.jobsViewModel=c,this.simulationService=u}async getCandidateProfile(){return this.jobsViewModel.getCandidateProfile()}async getJobs(){try{return await this.jobsViewModel.getTabItems("jobs")}catch{return[]}}async getPersonalities(){try{const c=await this.simulationService.listSimulationPersonalities();return Array.isArray(c)?c:[]}catch{return[]}}async getInterviews(c=12){try{const u=await this.simulationService.listInterviews(c,0),r=sm(u);return(Array.isArray(r?.interviews)?r.interviews:Array.isArray(u)?u:[]).map((v,U)=>py(v,U)).filter(v=>!!v)}catch{return[]}}}const yy=[{id:"sim-1",title:"Senior Frontend-udvikler",companyName:"Lunar",completed:!0,durationMinutes:15,personality:"Professionel",dateLabel:"12. okt 2023"},{id:"sim-2",title:"Fullstack Developer",companyName:"Pleo",completed:!1,durationMinutes:20,personality:"Afslappet",dateLabel:"10. okt 2023"},{id:"sim-3",title:"UX Designer",companyName:"Trustpilot",completed:!0,durationMinutes:10,personality:"Sarkastisk",dateLabel:"05. okt 2023"},{id:"sim-4",title:"Product Manager",companyName:"Danske Bank",completed:!0,durationMinutes:5,personality:"Stress-test",dateLabel:"01. okt 2023"}];function by(d){return{id:d.id,title:d.title,companyName:d.companyName,completed:d.completed,durationMinutes:d.durationMinutes??15,personality:d.personality||"Professionel",dateLabel:d.dateLabel||"Nyligt"}}function jy(d){return`${d.title||"Stilling"}${d.companyName?` · ${d.companyName}`:""}`}function xy({onLogout:d,onNavigate:c,onToggleTheme:u,theme:r}){const m=C.useMemo(()=>new vy,[]),[v,U]=C.useState("Lasse"),[Y,R]=C.useState(void 0),[b,V]=C.useState([]),[T,q]=C.useState([]),[Q,ee]=C.useState([]),[B,re]=C.useState(!0),[oe,ge]=C.useState(""),[K,ne]=C.useState(""),[se,Z]=C.useState("Dansk"),[D,fe]=C.useState("15"),[je,Se]=C.useState(!1);C.useEffect(()=>{let _=!0;async function O(){re(!0);const[I,ue,h,x]=await Promise.all([m.getCandidateProfile(),m.getJobs(),m.getInterviews(),m.getPersonalities()]);_&&(U(I.name),R(I.imageUrl),V(ue),q(h.map(by)),ee(x.map(E=>({id:E.id,name:E.name}))),ue.length>0&&ge(E=>E||ue[0].id),x.length>0&&ne(E=>E||String(x[0].id)),re(!1))}return O(),()=>{_=!1}},[m]);const H=T.length>0?T:yy,J={id:"fallback-job",title:"Senior Frontend-udvikler",companyName:"Lunar"},ae=b.length>0?b:[J],P=ae.find(_=>_.id===oe)||ae[0],W=Q.find(_=>String(_.id)===K)?.name||"Professionel & Grundig",k=[{id:"ai-1",sender:"ai",text:`Hej Lasse, og velkommen til! Vi er rigtig glade for at have dig til samtalen omkring rollen som ${P.title||"Senior Frontend-udvikler"}. Kan du fortælle om et nyligt projekt, hvor din erfaring med React gjorde en stor forskel for slutresultatet?`},{id:"me-1",sender:"me",text:"I mit seneste projekt migrerede vi en stor dashboard-løsning til Next.js. Jeg implementerede virtualisering og strammere state management med Zustand, hvilket reducerede load-tid med over 60%."},{id:"ai-2",sender:"ai",text:"Det lyder som en rigtig solid forbedring. Når du nævner Zustand frem for Redux, hvad var overvejelserne bag det valg i jeres use-case?"}];return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"simulator",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar sim-main",children:[n.jsx(sa,{name:v,imageUrl:Y,onLogout:d,theme:r,onToggleTheme:u,actions:je?n.jsxs("button",{type:"button",className:"sim-leave-btn",onClick:()=>Se(!1),children:[n.jsx(Bh,{size:15,strokeWidth:1.8}),n.jsx("span",{children:"Forlad simulering"})]}):void 0}),je?n.jsxs("div",{className:"sim-live-wrap",children:[n.jsxs("div",{className:"sim-live-head",children:[n.jsx("h1",{children:"Live Jobsamtale"}),n.jsx("p",{children:"Du er i øjeblikket i en simuleret teknisk samtale. Brug mikrofonen til at svare."})]}),n.jsxs("div",{className:"sim-live-grid",children:[n.jsxs("section",{className:"sim-live-chat-card",children:[n.jsxs("div",{className:"sim-live-chat-head",children:[n.jsxs("div",{className:"sim-live-ai-row",children:[n.jsx("div",{className:"sim-live-ai-avatar",children:n.jsx(Hl,{size:18,strokeWidth:1.8})}),n.jsxs("div",{children:[n.jsx("h3",{children:"Sarah (AI Interviewer)"}),n.jsxs("p",{children:[n.jsx(Av,{size:12,strokeWidth:1.8})," Venter på dit svar..."]})]})]}),n.jsx("button",{type:"button",className:"sim-live-more-btn",children:n.jsx(Mp,{size:16,strokeWidth:1.8})})]}),n.jsx("div",{className:"sim-live-chat-scroll custom-scrollbar",children:k.map(_=>n.jsxs("div",{className:_.sender==="ai"?"sim-live-msg-row ai":"sim-live-msg-row me",children:[n.jsx("div",{className:_.sender==="ai"?"sim-live-msg-avatar ai":"sim-live-msg-avatar me",children:_.sender==="ai"?n.jsx(Hl,{size:13,strokeWidth:1.8}):Y?n.jsx("img",{src:Y,alt:v}):n.jsx("span",{children:v.slice(0,1).toUpperCase()})}),n.jsx("div",{className:_.sender==="ai"?"sim-live-msg-bubble ai":"sim-live-msg-bubble me",children:n.jsx("p",{children:_.text})})]},_.id))}),n.jsxs("div",{className:"sim-live-voice",children:[n.jsxs("div",{className:"sim-live-time-row",children:[n.jsxs("div",{className:"sim-live-time",children:[n.jsx("small",{children:"Tid gået"}),n.jsx("strong",{children:"04:23"})]}),n.jsx("div",{className:"sim-live-wave",children:Array.from({length:7}).map((_,O)=>n.jsx("span",{style:{animationDelay:`${O*.14}s`}},`wave-${O}`))}),n.jsxs("div",{className:"sim-live-time",children:[n.jsx("small",{children:"Tilbage"}),n.jsx("strong",{children:"10:37"})]})]}),n.jsx("button",{type:"button",className:"sim-live-mic-btn",children:n.jsx(iv,{size:22,strokeWidth:1.8})}),n.jsx("p",{children:"Optager dit svar..."})]})]}),n.jsxs("aside",{className:"sim-live-side custom-scrollbar",children:[n.jsxs("article",{className:"sim-live-side-card",children:[n.jsx("h2",{children:"Session Status"}),n.jsxs("div",{className:"sim-live-side-list",children:[n.jsxs("div",{children:[n.jsx("small",{children:"Stilling"}),n.jsxs("p",{children:[P.title||"Senior Frontend-udvikler"," @ ",P.companyName||"Lunar"]})]}),n.jsxs("div",{children:[n.jsx("small",{children:"Samtaletype"}),n.jsxs("p",{children:[n.jsx(er,{size:14,strokeWidth:1.8})," Teknisk Dybde"]})]}),n.jsxs("div",{children:[n.jsx("small",{children:"Interviewer stil"}),n.jsxs("p",{children:[n.jsx(Hl,{size:14,strokeWidth:1.8})," ",W]})]}),n.jsxs("div",{children:[n.jsxs("div",{className:"sim-live-progress-head",children:[n.jsx("small",{children:"Fremgang"}),n.jsx("strong",{children:"Spørgsmål 2 af 5"})]}),n.jsx("div",{className:"sim-live-progress-track",children:n.jsx("span",{})})]})]})]}),n.jsxs("article",{className:"sim-live-coach-card",children:[n.jsxs("h2",{children:[n.jsx(Wp,{size:15,strokeWidth:1.8})," Live Coach"]}),n.jsxs("div",{className:"sim-live-coach-list",children:[n.jsxs("div",{children:[n.jsx(tt,{size:14,strokeWidth:1.8}),n.jsxs("div",{children:[n.jsx("strong",{children:"Godt brug af STAR-metoden"}),n.jsx("p",{children:"Dit forrige svar beskrev situationen og resultatet meget tydeligt."})]})]}),n.jsxs("div",{children:[n.jsx(vs,{size:14,strokeWidth:1.8}),n.jsxs("div",{children:[n.jsx("strong",{children:"Næste skridt"}),n.jsx("p",{children:"Uddyb hvorfor Zustand var bedre end Redux i jeres specifikke use-case."})]})]})]})]}),n.jsx("article",{className:"sim-live-side-card",children:n.jsxs("div",{className:"sim-live-actions",children:[n.jsxs("button",{type:"button",children:[n.jsx(vp,{size:16,strokeWidth:1.8})," Sæt på pause"]}),n.jsxs("button",{type:"button",className:"stop",children:[n.jsx(Np,{size:16,strokeWidth:1.8})," Afslut & Få Feedback"]})]})})]})]})]}):n.jsxs("div",{className:"sim-wrap",children:[n.jsxs("section",{className:"sim-hero-card",children:[n.jsx("div",{className:"sim-hero-glow"}),n.jsxs("div",{className:"sim-hero-left",children:[n.jsx("h1",{children:"Job Interview Simulator"}),n.jsx("p",{children:"Ov dig pa jobsamtaler med vores AI-drevne simulator. Du far skraeddersyede sporgsmal baseret pa den jobtype, du soger, og modtager detaljeret feedback pa dine svar."}),n.jsxs("ul",{className:"sim-benefits",children:[n.jsxs("li",{children:[n.jsx(tt,{size:16,strokeWidth:1.8})," Personaliserede interviewsporgsmal"]}),n.jsxs("li",{children:[n.jsx(tt,{size:16,strokeWidth:1.8})," Ojeblikkelig AI-feedback pa dine svar"]}),n.jsxs("li",{children:[n.jsx(tt,{size:16,strokeWidth:1.8})," Detaljeret evaluering efter interviewet"]}),n.jsxs("li",{children:[n.jsx(tt,{size:16,strokeWidth:1.8})," Gem og gennemga tidligere interviews"]})]}),n.jsxs("button",{type:"button",className:"sim-start-btn",onClick:()=>Se(!0),children:[n.jsx(bp,{size:18,strokeWidth:1.8}),"Start ny simulering"]})]}),n.jsxs("div",{className:"sim-config-card",children:[n.jsxs("div",{className:"sim-config-head",children:[n.jsx("h3",{children:"Simuleringsindstillinger"}),n.jsx("p",{children:"Vaelg dine praeferencer for start"})]}),n.jsxs("label",{children:["Gemt job",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(sr,{size:16,strokeWidth:1.8}),n.jsx("select",{value:oe,onChange:_=>ge(_.target.value),children:ae.map(_=>n.jsx("option",{value:_.id,children:jy(_)},_.id))}),n.jsx(Hn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]}),n.jsxs("label",{children:["Personlighed (AI)",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(Hl,{size:16,strokeWidth:1.8}),n.jsx("select",{value:K,onChange:_=>ne(_.target.value),children:(Q.length>0?Q:[{id:1,name:"Professionel & Grundig"}]).map(_=>n.jsx("option",{value:String(_.id),children:_.name},_.id))}),n.jsx(Hn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]}),n.jsxs("div",{className:"sim-mini-grid",children:[n.jsxs("label",{children:["Sprog",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(gs,{size:16,strokeWidth:1.8}),n.jsxs("select",{value:se,onChange:_=>Z(_.target.value),children:[n.jsx("option",{children:"Dansk"}),n.jsx("option",{children:"Engelsk"})]}),n.jsx(Hn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]}),n.jsxs("label",{children:["Varighed",n.jsxs("div",{className:"sim-select-wrap",children:[n.jsx(Pu,{size:16,strokeWidth:1.8}),n.jsxs("select",{value:D,onChange:_=>fe(_.target.value),children:[n.jsx("option",{value:"5",children:"5 min"}),n.jsx("option",{value:"10",children:"10 min"}),n.jsx("option",{value:"15",children:"15 min"}),n.jsx("option",{value:"20",children:"20 min"})]}),n.jsx(Hn,{size:15,strokeWidth:1.8,className:"sim-caret"})]})]})]})]})]}),n.jsxs("div",{className:"sim-history-head",children:[n.jsx("h2",{children:"Tidligere simuleringer"}),n.jsxs("button",{type:"button",children:[n.jsx(Qh,{size:15,strokeWidth:1.8})," Filtrer"]})]}),B?n.jsx("p",{className:"dash-loading",children:"Indlaeser simuleringer..."}):null,n.jsx("section",{className:"sim-history-grid",children:H.map(_=>n.jsxs("article",{className:_.completed?"sim-card done":"sim-card draft",children:[n.jsxs("div",{className:"sim-card-head",children:[n.jsxs("div",{children:[n.jsx("h3",{children:_.title}),n.jsx("p",{children:_.companyName})]}),n.jsx("span",{className:_.completed?"sim-status done":"sim-status draft",children:_.completed?"Faerdig":"Ikke faerdig"})]}),n.jsxs("div",{className:"sim-tags",children:[n.jsxs("span",{children:[n.jsx(Pu,{size:13,strokeWidth:1.8})," ",_.durationMinutes," min"]}),n.jsxs("span",{children:[n.jsx(Hl,{size:13,strokeWidth:1.8})," ",_.personality]})]}),n.jsxs("div",{className:"sim-card-foot",children:[n.jsx("small",{children:_.dateLabel}),_.completed?n.jsxs("button",{type:"button",className:"sim-link-btn",children:["Se evaluering ",n.jsx($a,{size:14,strokeWidth:1.8})]}):n.jsxs("button",{type:"button",className:"sim-link-btn",children:["Fortsæt ",n.jsx(vv,{size:14,strokeWidth:1.8})]})]})]},_.id))})]})]})]})}class Sy{constructor(c=new Pa,u=new ys){this.candidateService=c,this.subscriptionService=u}async getCandidateProfile(){try{const c=await this.candidateService.getCandidate();return{name:c.firstName?.trim()||c.name?.trim()||"Lasse",imageUrl:c.imageUrl||c.image||void 0}}catch{return{name:"Lasse"}}}async getSnapshot(){const[c,u]=await Promise.allSettled([this.subscriptionService.getPaymentOverview(),this.subscriptionService.getSubscriptionProducts()]);return{paymentOverview:c.status==="fulfilled"?c.value:null,products:u.status==="fulfilled"?u.value:null}}async redeemCode(c){await this.subscriptionService.redeemCode(c)}}const Vh=["Download et professionelt CV - Klar til brug med et enkelt klik","Karriereagent med personlige anbefalinger","Øget synlighed – bliv fundet af virksomheder","Lad systemet lave din ansøgning for dig","Optimer dit CV med intelligente forslag","Job simulatoren – træn til din næste jobsamtale"];function cm(d){if(!d)return null;const c=d instanceof Date?d:new Date(d);return Number.isNaN(c.getTime())?null:c}function Ny(d){const c=cm(d);return c?new Intl.DateTimeFormat("da-DK",{day:"2-digit",month:"2-digit",year:"numeric"}).format(c):"Ukendt dato"}function ky(d){if(!d)return!1;const c=cm(d.activeToDate);return c?c.getTime()>Date.now():!1}function Ay(d){const c=d?.premium_30?.price??49,u=d?.premium_90?.price??99,r=d?.premium_365?.price??249;return{30:{title:"30 dage",priceText:`${c} kr.`,dailyText:"Svarer til 1.63 kr. pr. dag",description:"Månedlig adgang til alle premium-funktioner"},90:{title:"90 dage",priceText:`${u} kr.`,dailyText:"Svarer til 1.10 kr. pr. dag",savings:"Spar 33%",description:"Mest populære valg med ekstra besparelse"},365:{title:"365 dage",priceText:`${r} kr.`,dailyText:"Svarer til 0.68 kr. pr. dag",savings:"Spar 58%",description:"Inkluderer gavekode til 3 måneders premium"}}}function _y({onLogout:d,onNavigate:c,onToggleTheme:u,theme:r}){const m=C.useMemo(()=>new Sy,[]),[v,U]=C.useState("Lasse"),[Y,R]=C.useState(void 0),[b,V]=C.useState(null),[T,q]=C.useState(null),[Q,ee]=C.useState(!0),[B,re]=C.useState("90"),[oe,ge]=C.useState(!1),[K,ne]=C.useState(""),[se,Z]=C.useState(""),[D,fe]=C.useState(!1),[je,Se]=C.useState(null);C.useEffect(()=>{let W=!0;async function k(){ee(!0);const[_,O]=await Promise.all([m.getCandidateProfile(),m.getSnapshot()]);W&&(U(_.name),R(_.imageUrl),V(O.paymentOverview),q(O.products),ee(!1))}return k(),()=>{W=!1}},[m]);const H=C.useMemo(()=>Ay(T),[T]),J=ky(b),ae=je??J;async function P(){const W=K.trim();if(!(!W||D)){Z(""),fe(!0);try{await m.redeemCode(W),Z("Koden blev indløst. Opdaterer abonnement...");const k=await m.getSnapshot();V(k.paymentOverview),q(k.products),ne("")}catch{Z("Kunne ikke indløse kode. Prøv igen.")}finally{fe(!1)}}}return n.jsxs("section",{className:`dash-root ${r==="dark"?"theme-dark":""}`,children:[n.jsx("div",{className:"dash-orb dash-orb-1"}),n.jsx("div",{className:"dash-orb dash-orb-2"}),n.jsx("div",{className:"dash-orb dash-orb-3"}),n.jsx(ia,{active:"subscription",onNavigate:c}),n.jsxs("main",{className:"dash-main custom-scrollbar sub-main",children:[n.jsx(sa,{name:v,imageUrl:Y,onLogout:d,theme:r,onToggleTheme:u,actions:n.jsxs("div",{className:"sub-top-actions",children:[n.jsxs("div",{className:"sub-crumb-pill",children:[n.jsx(tr,{size:15,strokeWidth:1.8})," Abonnement"]}),n.jsx("button",{type:"button",className:"sub-toggle-btn",onClick:()=>Se(W=>W===null?!J:!W),children:ae?'Vis "Unsubscribed" state':'Vis "Subscribed" state'})]})}),n.jsxs("div",{className:"sub-head",children:[n.jsxs("div",{className:"sub-head-title-row",children:[n.jsx("div",{className:"sub-head-icon",children:n.jsx(tr,{size:18,strokeWidth:1.8})}),n.jsx("h1",{children:"Dit Abonnement"})]}),n.jsx("p",{children:"Administrer dit medlemskab og lås op for alle de intelligente værktøjer, der gør din jobsøgning nemmere."})]}),n.jsxs("div",{className:"sub-wrap",children:[n.jsxs("section",{className:"sub-redeem-card",children:[n.jsxs("div",{className:"sub-redeem-head",children:[n.jsx("span",{children:"🎟️"}),n.jsx("h2",{children:"Indløs kode"})]}),n.jsx("p",{children:"Har du en rabatkode eller gavekode? Indtast den her og få den aktiveret med det samme"}),n.jsxs("div",{className:"sub-redeem-row",children:[n.jsx("input",{type:"text",value:K,onChange:W=>ne(W.target.value),placeholder:"Indtast kode her..."}),n.jsx("button",{type:"button",onClick:()=>{P()},disabled:D,children:D?"Indløser...":"Indløs"})]}),se?n.jsx("small",{children:se}):null]}),Q?n.jsx("p",{className:"dash-loading",children:"Indlaeser abonnement..."}):null,!Q&&!ae?n.jsxs(n.Fragment,{children:[n.jsx("section",{className:"sub-plan-grid",children:["30","90","365"].map(W=>{const k=H[W],_=B===W,O=W==="90",I=W==="365";return n.jsxs("label",{className:["sub-plan-card",_?"selected":"",O?"popular":"",I?"yearly":""].join(" ").trim(),children:[O?n.jsx("div",{className:"sub-popular-badge",children:"Mest populær"}):null,n.jsx("input",{type:"radio",name:"pricing-plan",checked:_,onChange:()=>re(W)}),n.jsx("div",{className:"sub-radio-indicator",children:n.jsx("i",{})}),n.jsxs("div",{className:"sub-plan-content",children:[n.jsxs("div",{className:"sub-plan-title-row",children:[n.jsx("h3",{children:k.title}),k.savings?n.jsx("span",{children:k.savings}):null]}),n.jsx("div",{className:"sub-price",children:k.priceText}),n.jsx("p",{className:"sub-price-daily",children:k.dailyText}),I?n.jsxs("div",{className:"sub-gift-box",children:[n.jsx(Hp,{size:17,strokeWidth:1.8}),n.jsxs("div",{children:[n.jsx("strong",{children:"Giv en gave"}),n.jsx("small",{children:"Få en gratis 3-måneders Premium-kode med i købet til en ven."})]})]}):null,n.jsx("div",{className:"sub-divider"}),n.jsx("ul",{children:Vh.map(ue=>n.jsxs("li",{children:[n.jsx(tt,{size:15,strokeWidth:1.8}),n.jsx("span",{children:ue})]},`${W}-${ue}`))})]})]},W)})}),n.jsxs("section",{className:"sub-checkout-card",children:[n.jsxs("div",{children:[n.jsx("h3",{children:"Klar til at opgradere?"}),n.jsx("p",{children:"Vælg en plan ovenfor og få adgang til alle Premium-funktioner med det samme."})]}),n.jsxs("div",{className:"sub-checkout-actions",children:[n.jsxs("label",{children:[n.jsx("input",{type:"checkbox",checked:oe,onChange:W=>ge(W.target.checked)}),n.jsx("span",{className:"sub-checkbox",children:n.jsx(hp,{size:13,strokeWidth:2.2})}),n.jsx("span",{children:"Jeg accepterer handelsbetingelser"})]}),n.jsx("button",{type:"button",disabled:!oe,children:"Gå til betaling"})]})]})]}):null,!Q&&ae?n.jsxs("div",{className:"sub-active-wrap",children:[n.jsxs("section",{className:"sub-gift-alert",children:[n.jsx("div",{className:"sub-gift-glow"}),n.jsx("div",{className:"sub-gift-icon",children:"🎁"}),n.jsxs("div",{children:[n.jsx("h2",{children:"Din gave venter!"}),n.jsx("p",{children:"Klik på gaven nedenfor for at se indholdet"})]}),n.jsx("button",{type:"button",children:"Åbn gave"})]}),n.jsxs("section",{className:"sub-active-card",children:[n.jsxs("div",{className:"sub-active-head",children:[n.jsx("span",{children:"👑"}),n.jsx("h2",{children:"Premium abonnement"})]}),n.jsxs("div",{className:"sub-active-grid",children:[n.jsx("div",{className:"sub-active-features",children:n.jsx("ul",{children:Vh.map(W=>n.jsxs("li",{children:[n.jsx(tt,{size:16,strokeWidth:1.8}),n.jsx("span",{children:W})]},`active-${W}`))})}),n.jsxs("div",{className:"sub-active-status-col",children:[n.jsxs("div",{className:"sub-active-status-box",children:[n.jsx("div",{className:"sub-active-check",children:n.jsx(tt,{size:34,strokeWidth:1.8})}),n.jsx("h3",{children:"Dit abonnement er aktivt"}),n.jsxs("strong",{children:[H[B].priceText," for ",H[B].title]}),n.jsx("p",{children:H[B].dailyText}),n.jsxs("div",{className:"sub-renew-pill",children:[n.jsx(up,{size:16,strokeWidth:1.8}),"Fornyes d. ",Ny(b?.renewDate)]})]}),n.jsx("button",{type:"button",className:"sub-manage-link",children:"Administrer betalingsoplysninger"})]})]})]})]}):null]})]})]})}function Ty(){const d=C.useMemo(()=>!!window.localStorage.getItem("token"),[]),c=C.useMemo(()=>window.localStorage.getItem("theme")==="dark"?"dark":"light",[]),[u,r]=C.useState(d),[m,v]=C.useState(c),[U,Y]=C.useState("dashboard"),[R,b]=C.useState(null);function V(B){(B==="dashboard"||B==="jobs"||B==="cv"||B==="messages"||B==="agents"||B==="ai-agent"||B==="simulator"||B==="subscription")&&Y(B)}function T(B,re,oe="jobs"){b({id:B,fromJobnet:re,returnPage:oe}),Y("job-detail")}function q(){Y(R?.returnPage??"jobs")}async function Q(){await ql.clearCredentials(),Y("dashboard"),b(null),r(!1)}function ee(){v(B=>{const re=B==="light"?"dark":"light";return window.localStorage.setItem("theme",re),re})}return u?U==="jobs"?n.jsx(oy,{onLogout:Q,onNavigate:V,onOpenJobDetail:T,theme:m,onToggleTheme:ee}):U==="cv"?n.jsx(G0,{onLogout:Q,onNavigate:V,theme:m,onToggleTheme:ee}):U==="messages"?n.jsx(my,{onLogout:Q,onNavigate:V,theme:m,onToggleTheme:ee}):U==="agents"?n.jsx(b0,{onLogout:Q,onNavigate:V,onOpenJobDetail:T,theme:m,onToggleTheme:ee}):U==="ai-agent"?n.jsx(k0,{onLogout:Q,onNavigate:V,theme:m,onToggleTheme:ee}):U==="simulator"?n.jsx(xy,{onLogout:Q,onNavigate:V,theme:m,onToggleTheme:ee}):U==="subscription"?n.jsx(_y,{onLogout:Q,onNavigate:V,theme:m,onToggleTheme:ee}):U==="job-detail"&&R?n.jsx(iy,{jobId:R.id,fromJobnet:R.fromJobnet,onBack:q,onLogout:Q,onNavigate:V,theme:m,onToggleTheme:ee}):n.jsx(ey,{onLogout:Q,onNavigate:V,onOpenJobDetail:T,theme:m,onToggleTheme:ee}):n.jsx(c0,{onAuthenticated:()=>r(!0)})}qg.createRoot(document.getElementById("root")).render(n.jsx(C.StrictMode,{children:n.jsx(Ty,{})})); diff --git a/dist/index.html b/dist/index.html index 6ca2388..073581e 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@ arbejd-react - - + +
diff --git a/node_modules/.tmp/tsconfig.app.tsbuildinfo b/node_modules/.tmp/tsconfig.app.tsbuildinfo index 22d5ca0..a6b93ba 100644 --- a/node_modules/.tmp/tsconfig.app.tsbuildinfo +++ b/node_modules/.tmp/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["../../src/app.tsx","../../src/main.tsx","../../src/environments/environment.ts","../../src/mvvm/index.ts","../../src/mvvm/core/async-state.ts","../../src/mvvm/core/http-client.ts","../../src/mvvm/core/index.ts","../../src/mvvm/models/paymentintentresponse.ts","../../src/mvvm/models/ai-generated-cv-description.interface.ts","../../src/mvvm/models/all-language.interface.ts","../../src/mvvm/models/application-examination.interface.ts","../../src/mvvm/models/applied-job.interface.ts","../../src/mvvm/models/auth.interface.ts","../../src/mvvm/models/candidate-application.interface.ts","../../src/mvvm/models/candidate-retention-response.interface.ts","../../src/mvvm/models/candidate-subscription-gift.interface.ts","../../src/mvvm/models/candidate.interface.ts","../../src/mvvm/models/chat-message-thread.interface.ts","../../src/mvvm/models/chat-message.interface.ts","../../src/mvvm/models/cv-language.interface.ts","../../src/mvvm/models/cv-suggestion.interface.ts","../../src/mvvm/models/cv-upload-data.interface.ts","../../src/mvvm/models/driver-license-group.interface.ts","../../src/mvvm/models/driver-license-type.interface.ts","../../src/mvvm/models/education-search.interface.ts","../../src/mvvm/models/error-response.interface.ts","../../src/mvvm/models/esco.interface.ts","../../src/mvvm/models/filter-job-search.interface.ts","../../src/mvvm/models/generated-job-application.ts","../../src/mvvm/models/index.ts","../../src/mvvm/models/job-agent-filter.interface.ts","../../src/mvvm/models/job-application.interface.ts","../../src/mvvm/models/job-detail.interface.ts","../../src/mvvm/models/job-posting-overview.interface.ts","../../src/mvvm/models/job-search-container.ts","../../src/mvvm/models/job-search-filter.interface.ts","../../src/mvvm/models/job.interface.ts","../../src/mvvm/models/jobnet-job-detail.interface.ts","../../src/mvvm/models/level.interface.ts","../../src/mvvm/models/login.interface.ts","../../src/mvvm/models/notification-setting.interface.ts","../../src/mvvm/models/notification.interface.ts","../../src/mvvm/models/occupation-categorization.interface.ts","../../src/mvvm/models/occupation.interface.ts","../../src/mvvm/models/payment-overview.interface.ts","../../src/mvvm/models/predefined-user-input.interface.ts","../../src/mvvm/models/qualification-search.interface.ts","../../src/mvvm/models/saved-job.interface.ts","../../src/mvvm/models/school.interface.ts","../../src/mvvm/models/search-job.interface.ts","../../src/mvvm/models/searched-certification.interface.ts","../../src/mvvm/models/select-language.interface.ts","../../src/mvvm/models/simulation-personality.interface.ts","../../src/mvvm/models/subscription-product.interface.ts","../../src/mvvm/models/translation.interface.ts","../../src/mvvm/models/zip-v2.interface.ts","../../src/mvvm/models/zip.interface.ts","../../src/mvvm/models/post/save-candidate.interface.ts","../../src/mvvm/models/post/save-education.interface.ts","../../src/mvvm/models/post/upload-cv.interface.ts","../../src/mvvm/services/ai-handler.service.ts","../../src/mvvm/services/audio.service.ts","../../src/mvvm/services/auth.service.ts","../../src/mvvm/services/candidate-education.service.ts","../../src/mvvm/services/candidate-experience.service.ts","../../src/mvvm/services/candidate-search-filter.service.ts","../../src/mvvm/services/candidate-subscription-gift.service.ts","../../src/mvvm/services/candidate.service.ts","../../src/mvvm/services/certification.service.ts","../../src/mvvm/services/chat-messages.service.ts","../../src/mvvm/services/cv-upload.service.ts","../../src/mvvm/services/cv.service.ts","../../src/mvvm/services/driver-license.service.ts","../../src/mvvm/services/education.service.ts","../../src/mvvm/services/esco.service.ts","../../src/mvvm/services/firemessagingservice.service.ts","../../src/mvvm/services/google-tag-manager.service.ts","../../src/mvvm/services/index.ts","../../src/mvvm/services/institution.service.ts","../../src/mvvm/services/ios-mat-select-fix.service.ts","../../src/mvvm/services/job-agent.service.ts","../../src/mvvm/services/job.service.ts","../../src/mvvm/services/language.service.ts","../../src/mvvm/services/level.service.ts","../../src/mvvm/services/local-storage.service.ts","../../src/mvvm/services/message.service.ts","../../src/mvvm/services/notification.service.ts","../../src/mvvm/services/occupation.service.ts","../../src/mvvm/services/payment.service.ts","../../src/mvvm/services/permissions.service.ts","../../src/mvvm/services/places.service.ts","../../src/mvvm/services/qualification.service.ts","../../src/mvvm/services/simulation.service.ts","../../src/mvvm/services/sse.service.ts","../../src/mvvm/services/subscription.service.ts","../../src/mvvm/services/toaster.service.ts","../../src/mvvm/services/zip.service.ts","../../src/mvvm/viewmodels/aiagentviewmodel.ts","../../src/mvvm/viewmodels/aijobagentviewmodel.ts","../../src/mvvm/viewmodels/authviewmodel.ts","../../src/mvvm/viewmodels/cvpageviewmodel.ts","../../src/mvvm/viewmodels/dashboardviewmodel.ts","../../src/mvvm/viewmodels/jobdetailviewmodel.ts","../../src/mvvm/viewmodels/jobspageviewmodel.ts","../../src/mvvm/viewmodels/messagesviewmodel.ts","../../src/mvvm/viewmodels/simulatorviewmodel.ts","../../src/mvvm/viewmodels/subscriptionpageviewmodel.ts","../../src/mvvm/viewmodels/index.ts","../../src/presentation/ai-agent/pages/aiagentpage.tsx","../../src/presentation/ai-agent/pages/careeragentpage.tsx","../../src/presentation/auth/types.ts","../../src/presentation/auth/components/authinput.tsx","../../src/presentation/auth/components/forgotpasswordview.tsx","../../src/presentation/auth/components/loginview.tsx","../../src/presentation/auth/components/registerview.tsx","../../src/presentation/auth/hooks/useauthpage.ts","../../src/presentation/auth/pages/authpage.tsx","../../src/presentation/cv/pages/cvpage.tsx","../../src/presentation/dashboard/components/dashboardsidebar.tsx","../../src/presentation/dashboard/components/dashboardtopbar.tsx","../../src/presentation/dashboard/pages/dashboardpage.tsx","../../src/presentation/jobs/pages/jobdetailpage.tsx","../../src/presentation/jobs/pages/jobspage.tsx","../../src/presentation/messages/pages/messagespage.tsx","../../src/presentation/simulator/pages/simulatorpage.tsx","../../src/presentation/subscription/pages/subscriptionpage.tsx"],"version":"5.9.3"} \ No newline at end of file +{"root":["../../src/app.tsx","../../src/main.tsx","../../src/environments/environment.ts","../../src/mvvm/index.ts","../../src/mvvm/core/async-state.ts","../../src/mvvm/core/http-client.ts","../../src/mvvm/core/index.ts","../../src/mvvm/models/paymentintentresponse.ts","../../src/mvvm/models/ai-generated-cv-description.interface.ts","../../src/mvvm/models/all-language.interface.ts","../../src/mvvm/models/application-examination.interface.ts","../../src/mvvm/models/applied-job.interface.ts","../../src/mvvm/models/auth.interface.ts","../../src/mvvm/models/candidate-application.interface.ts","../../src/mvvm/models/candidate-retention-response.interface.ts","../../src/mvvm/models/candidate-subscription-gift.interface.ts","../../src/mvvm/models/candidate.interface.ts","../../src/mvvm/models/chat-message-thread.interface.ts","../../src/mvvm/models/chat-message.interface.ts","../../src/mvvm/models/cv-language.interface.ts","../../src/mvvm/models/cv-suggestion.interface.ts","../../src/mvvm/models/cv-upload-data.interface.ts","../../src/mvvm/models/driver-license-group.interface.ts","../../src/mvvm/models/driver-license-type.interface.ts","../../src/mvvm/models/education-search.interface.ts","../../src/mvvm/models/error-response.interface.ts","../../src/mvvm/models/esco.interface.ts","../../src/mvvm/models/filter-job-search.interface.ts","../../src/mvvm/models/generated-job-application.ts","../../src/mvvm/models/index.ts","../../src/mvvm/models/job-agent-filter.interface.ts","../../src/mvvm/models/job-application.interface.ts","../../src/mvvm/models/job-detail.interface.ts","../../src/mvvm/models/job-posting-overview.interface.ts","../../src/mvvm/models/job-search-container.ts","../../src/mvvm/models/job-search-filter.interface.ts","../../src/mvvm/models/job.interface.ts","../../src/mvvm/models/jobnet-job-detail.interface.ts","../../src/mvvm/models/level.interface.ts","../../src/mvvm/models/login.interface.ts","../../src/mvvm/models/notification-setting.interface.ts","../../src/mvvm/models/notification.interface.ts","../../src/mvvm/models/occupation-categorization.interface.ts","../../src/mvvm/models/occupation.interface.ts","../../src/mvvm/models/payment-overview.interface.ts","../../src/mvvm/models/predefined-user-input.interface.ts","../../src/mvvm/models/qualification-search.interface.ts","../../src/mvvm/models/saved-job.interface.ts","../../src/mvvm/models/school.interface.ts","../../src/mvvm/models/search-job.interface.ts","../../src/mvvm/models/searched-certification.interface.ts","../../src/mvvm/models/select-language.interface.ts","../../src/mvvm/models/simulation-personality.interface.ts","../../src/mvvm/models/subscription-product.interface.ts","../../src/mvvm/models/translation.interface.ts","../../src/mvvm/models/zip-v2.interface.ts","../../src/mvvm/models/zip.interface.ts","../../src/mvvm/models/post/save-candidate.interface.ts","../../src/mvvm/models/post/save-education.interface.ts","../../src/mvvm/models/post/upload-cv.interface.ts","../../src/mvvm/services/ai-handler.service.ts","../../src/mvvm/services/audio.service.ts","../../src/mvvm/services/auth.service.ts","../../src/mvvm/services/candidate-education.service.ts","../../src/mvvm/services/candidate-experience.service.ts","../../src/mvvm/services/candidate-search-filter.service.ts","../../src/mvvm/services/candidate-subscription-gift.service.ts","../../src/mvvm/services/candidate.service.ts","../../src/mvvm/services/certification.service.ts","../../src/mvvm/services/chat-messages.service.ts","../../src/mvvm/services/cv-upload.service.ts","../../src/mvvm/services/cv.service.ts","../../src/mvvm/services/driver-license.service.ts","../../src/mvvm/services/education.service.ts","../../src/mvvm/services/esco.service.ts","../../src/mvvm/services/firemessagingservice.service.ts","../../src/mvvm/services/google-tag-manager.service.ts","../../src/mvvm/services/index.ts","../../src/mvvm/services/institution.service.ts","../../src/mvvm/services/ios-mat-select-fix.service.ts","../../src/mvvm/services/job-agent.service.ts","../../src/mvvm/services/job.service.ts","../../src/mvvm/services/language.service.ts","../../src/mvvm/services/level.service.ts","../../src/mvvm/services/local-storage.service.ts","../../src/mvvm/services/message.service.ts","../../src/mvvm/services/notification.service.ts","../../src/mvvm/services/occupation.service.ts","../../src/mvvm/services/payment.service.ts","../../src/mvvm/services/permissions.service.ts","../../src/mvvm/services/places.service.ts","../../src/mvvm/services/qualification.service.ts","../../src/mvvm/services/simulation.service.ts","../../src/mvvm/services/sse.service.ts","../../src/mvvm/services/subscription.service.ts","../../src/mvvm/services/toaster.service.ts","../../src/mvvm/services/zip.service.ts","../../src/mvvm/viewmodels/aiagentviewmodel.ts","../../src/mvvm/viewmodels/aijobagentviewmodel.ts","../../src/mvvm/viewmodels/authviewmodel.ts","../../src/mvvm/viewmodels/cvpageviewmodel.ts","../../src/mvvm/viewmodels/dashboardviewmodel.ts","../../src/mvvm/viewmodels/jobdetailviewmodel.ts","../../src/mvvm/viewmodels/jobspageviewmodel.ts","../../src/mvvm/viewmodels/messagesviewmodel.ts","../../src/mvvm/viewmodels/simulatorevaluationviewmodel.ts","../../src/mvvm/viewmodels/simulatorviewmodel.ts","../../src/mvvm/viewmodels/subscriptionpageviewmodel.ts","../../src/mvvm/viewmodels/index.ts","../../src/presentation/ai-agent/pages/aiagentpage.tsx","../../src/presentation/ai-agent/pages/careeragentpage.tsx","../../src/presentation/auth/types.ts","../../src/presentation/auth/components/authinput.tsx","../../src/presentation/auth/components/forgotpasswordview.tsx","../../src/presentation/auth/components/loginview.tsx","../../src/presentation/auth/components/registerview.tsx","../../src/presentation/auth/hooks/useauthpage.ts","../../src/presentation/auth/pages/authpage.tsx","../../src/presentation/cv/pages/cvpage.tsx","../../src/presentation/dashboard/components/dashboardsidebar.tsx","../../src/presentation/dashboard/components/dashboardtopbar.tsx","../../src/presentation/dashboard/pages/dashboardpage.tsx","../../src/presentation/jobs/pages/jobdetailpage.tsx","../../src/presentation/jobs/pages/jobspage.tsx","../../src/presentation/messages/pages/messagespage.tsx","../../src/presentation/simulator/pages/simulatorevaluationpage.tsx","../../src/presentation/simulator/pages/simulatorpage.tsx","../../src/presentation/subscription/pages/subscriptionpage.tsx"],"version":"5.9.3"} \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 3cb1c7c..ad2752b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -9,10 +9,14 @@ import { DashboardPage } from './presentation/dashboard/pages/DashboardPage'; import { JobDetailPage } from './presentation/jobs/pages/JobDetailPage'; import { JobsPage } from './presentation/jobs/pages/JobsPage'; import { MessagesPage } from './presentation/messages/pages/MessagesPage'; -import { SimulatorPage } from './presentation/simulator/pages/SimulatorPage'; +import { + SimulatorPage, + type SimulatorEvaluationSelection, +} from './presentation/simulator/pages/SimulatorPage'; +import { SimulatorEvaluationPage } from './presentation/simulator/pages/SimulatorEvaluationPage'; import { SubscriptionPage } from './presentation/subscription/pages/SubscriptionPage'; -type AppPage = DashboardNavKey | 'job-detail'; +type AppPage = DashboardNavKey | 'job-detail' | 'simulator-evaluation'; interface JobDetailSelection { id: string; @@ -30,6 +34,7 @@ function App() { const [theme, setTheme] = useState<'light' | 'dark'>(initialTheme); const [activePage, setActivePage] = useState('dashboard'); const [jobDetailSelection, setJobDetailSelection] = useState(null); + const [evaluationSelection, setEvaluationSelection] = useState(null); function handleNavigate(target: DashboardNavKey) { if ( @@ -55,10 +60,20 @@ function App() { setActivePage(jobDetailSelection?.returnPage ?? 'jobs'); } + function handleOpenSimulatorEvaluation(selection: SimulatorEvaluationSelection) { + setEvaluationSelection(selection); + setActivePage('simulator-evaluation'); + } + + function handleBackFromSimulatorEvaluation() { + setActivePage('simulator'); + } + async function handleLogout() { await localStorageService.clearCredentials(); setActivePage('dashboard'); setJobDetailSelection(null); + setEvaluationSelection(null); setIsAuthenticated(false); } @@ -118,7 +133,28 @@ function App() { } if (activePage === 'simulator') { - return ; + return ( + + ); + } + + if (activePage === 'simulator-evaluation' && evaluationSelection) { + return ( + + ); } if (activePage === 'subscription') { diff --git a/src/mvvm/viewmodels/SimulatorEvaluationViewModel.ts b/src/mvvm/viewmodels/SimulatorEvaluationViewModel.ts new file mode 100644 index 0000000..a4aa8ed --- /dev/null +++ b/src/mvvm/viewmodels/SimulatorEvaluationViewModel.ts @@ -0,0 +1,322 @@ +import { SimulationService } from '../services/simulation.service'; + +interface RecordLike { + [key: string]: unknown; +} + +export interface SimulatorEvaluationSelectionContext { + companyName?: string; + dateLabel?: string; + title?: string; +} + +export interface EvaluationImprovementItem { + id: string; + title: string; + behavior: string; + effect: string; + nextStep: string; +} + +export interface SimulatorEvaluationData { + companyName: string; + dateLabel: string; + evaluationLabel: string; + interviewerEvaluationBody: string; + interviewerEvaluationLead: string; + interviewerEvaluationTitle: string; + interviewerScore: number; + interviewTitle: string; + recommendations: string[]; + selfScore: number; + strengths: string[]; + suggestions: EvaluationImprovementItem[]; +} + +function asRecord(value: unknown): RecordLike | null { + return typeof value === 'object' && value !== null ? (value as RecordLike) : null; +} + +function asString(value: unknown): string { + return typeof value === 'string' ? value : ''; +} + +function asNumber(value: unknown): number | null { + if (typeof value === 'number' && Number.isFinite(value)) { + return value; + } + if (typeof value === 'string') { + const parsed = Number(value); + return Number.isFinite(parsed) ? parsed : null; + } + return null; +} + +function asStringArray(value: unknown): string[] { + if (!Array.isArray(value)) { + return []; + } + return value.map((item) => asString(item).trim()).filter(Boolean); +} + +function pickString(root: RecordLike | null, keys: string[]): string { + if (!root) { + return ''; + } + for (const key of keys) { + const value = asString(root[key]).trim(); + if (value) { + return value; + } + } + return ''; +} + +function pickNumber(root: RecordLike | null, keys: string[]): number | null { + if (!root) { + return null; + } + for (const key of keys) { + const value = asNumber(root[key]); + if (value !== null) { + return value; + } + } + return null; +} + +function formatDateLabel(value: string): string { + if (!value) { + return ''; + } + const date = new Date(value); + if (Number.isNaN(date.getTime())) { + return value; + } + return new Intl.DateTimeFormat('da-DK', { + day: '2-digit', + month: 'long', + year: 'numeric', + }).format(date); +} + +function normalizeScore(value: number | null, fallback: number): number { + if (value === null) { + return fallback; + } + return Math.max(0, Math.min(10, Math.round(value))); +} + +const FALLBACK_SUGGESTIONS: EvaluationImprovementItem[] = [ + { + id: '1', + title: 'Mere struktur og korthed i dine svar', + behavior: 'Du gav nogle svar, der blev lange og gentagende i stedet for fokuserede pa kernen.', + effect: 'Det kan gore det svaerere for intervieweren hurtigt at vurdere din erfaring og beslutninger.', + nextStep: 'Svar i 3 trin: pointe, konkret eksempel, resultat. Sigt efter 30-60 sekunder pr. svar.', + }, + { + id: '2', + title: 'Flere konkrete eksempler pa performance i service', + behavior: 'Du fortalte om ansvar, men gav fa konkrete scenarier med handling og resultat.', + effect: 'Uden konkrete cases bliver niveau og paalidelighed svaerere at validere.', + nextStep: 'Forbered 2-3 STAR-historier med tydelig situation, handling og maelbart resultat.', + }, + { + id: '3', + title: 'Gor din motivation mere maelrettet virksomheden', + behavior: 'Motivationen var positiv, men ikke altid koblet direkte til virksomhedens drift og behov.', + effect: 'Du kan fremsta generelt motiveret i stedet for specifikt relevant for rollen.', + nextStep: 'Naevn 2-3 konkrete grunde til, at netop deres setup matcher din erfaring.', + }, + { + id: '4', + title: 'Konkretiser kvalitet og sikkerhed i praksis', + behavior: 'Du naevnte standarder og certificeringer, men beskrev fa daglige rutiner.', + effect: 'Det reducerer tydeligheden omkring, hvordan du arbejder sikkert i travle perioder.', + nextStep: 'Beskriv faste rutiner for kontrol, logning og hurtig korrektion under pres.', + }, +]; + +const FALLBACK_STRENGTHS = [ + 'Du viser relevant erfaring for rollen og kommunikerer ro under pres.', + 'Du arbejder struktureret med kvalitet og timing i service.', + 'Du har en moden team-tilgang med fokus pa samarbejde.', + 'Du kobler dine svar til konkrete arbejdsrutiner og drift.', + 'Du fremstar stabil og ansvarlig i hektiske situationer.', +]; + +const FALLBACK_RECOMMENDATIONS = [ + 'Forbered 3 korte STAR-historier med maelbare resultater.', + 'Lav en 60-sekunders pitch af din profil og vaerdiskabelse.', + 'Research virksomheden i 10-15 minutter inden samtalen.', + 'Forbered 4-5 konkrete spoergsmaal om rolle og forventninger.', + 'Afslut svar med resultat, sa din effekt bliver tydelig.', +]; + +const FALLBACK_DATA: SimulatorEvaluationData = { + companyName: 'Ukendt virksomhed', + dateLabel: 'Nyligt', + evaluationLabel: 'Interview Feedback', + interviewerEvaluationTitle: 'Interviewer evaluering', + interviewerEvaluationLead: 'Du er godt med. Din praestation viste styrker der matcher stillingen.', + interviewerEvaluationBody: + 'Du viste relevante kompetencer og en stabil tilgang under pres. Du kan staerke dit indtryk yderligere ved at svare mere struktureret og bruge flere konkrete resultateksempler.', + interviewTitle: 'Stilling', + interviewerScore: 8, + selfScore: 5, + strengths: FALLBACK_STRENGTHS, + recommendations: FALLBACK_RECOMMENDATIONS, + suggestions: FALLBACK_SUGGESTIONS, +}; + +function mapSuggestion(item: unknown, index: number): EvaluationImprovementItem | null { + const source = asRecord(item); + if (!source) { + return null; + } + + const title = pickString(source, ['title', 'heading', 'name', 'subject']); + const behavior = pickString(source, ['behavior', 'adfaerd', 'observation', 'issue']); + const effect = pickString(source, ['effect', 'impact', 'consequence']); + const nextStep = pickString(source, ['next_step', 'nextStep', 'recommendation', 'suggestion']); + + if (!title && !behavior && !effect && !nextStep) { + return null; + } + + return { + id: asString(source.id) || String(index + 1), + title: title || `Forbedringspunkt ${index + 1}`, + behavior: behavior || 'Ingen detaljer tilgaengelige.', + effect: effect || 'Ingen detaljer tilgaengelige.', + nextStep: nextStep || 'Ingen detaljer tilgaengelige.', + }; +} + +function extractSuggestions(root: RecordLike | null): EvaluationImprovementItem[] { + const candidates = [ + root?.suggestions, + root?.improvements, + root?.improvement_points, + root?.feedback_points, + asRecord(root?.evaluation)?.suggestions, + asRecord(root?.evaluation)?.improvements, + ]; + + for (const candidate of candidates) { + if (!Array.isArray(candidate)) { + continue; + } + + const mapped = candidate + .map((item, index) => mapSuggestion(item, index)) + .filter((item): item is EvaluationImprovementItem => Boolean(item)); + + if (mapped.length > 0) { + return mapped; + } + } + + return FALLBACK_SUGGESTIONS; +} + +function extractStringList(root: RecordLike | null, keys: string[], fallback: string[]): string[] { + for (const key of keys) { + const values = asStringArray(root?.[key]); + if (values.length > 0) { + return values; + } + } + + const evaluation = asRecord(root?.evaluation); + for (const key of keys) { + const values = asStringArray(evaluation?.[key]); + if (values.length > 0) { + return values; + } + } + + return fallback; +} + +export class SimulatorEvaluationViewModel { + constructor(private readonly simulationService: SimulationService = new SimulationService()) {} + + async getEvaluation(interviewId: string, context?: SimulatorEvaluationSelectionContext): Promise { + try { + const payload = await this.simulationService.getInterviewEvaluation(interviewId); + const root = asRecord(payload); + const evaluation = asRecord(root?.evaluation); + + const companyName = pickString(root, ['company_name', 'companyName']) + || pickString(evaluation, ['company_name', 'companyName']) + || context?.companyName + || FALLBACK_DATA.companyName; + + const interviewTitle = pickString(root, ['job_title', 'job_name', 'title']) + || pickString(evaluation, ['job_title', 'job_name', 'title']) + || context?.title + || FALLBACK_DATA.interviewTitle; + + const rawDate = pickString(root, ['interview_date', 'created_at', 'date']) + || pickString(evaluation, ['interview_date', 'created_at', 'date']); + + const dateLabel = formatDateLabel(rawDate) || context?.dateLabel || FALLBACK_DATA.dateLabel; + + const interviewerEvaluationLead = pickString(root, ['interviewer_evaluation_lead', 'lead']) + || pickString(evaluation, ['interviewer_evaluation_lead', 'lead']) + || FALLBACK_DATA.interviewerEvaluationLead; + + const interviewerEvaluationBody = pickString(root, ['interviewer_evaluation', 'summary', 'feedback']) + || pickString(evaluation, ['interviewer_evaluation', 'summary', 'feedback']) + || FALLBACK_DATA.interviewerEvaluationBody; + + const interviewerEvaluationTitle = pickString(root, ['evaluation_title', 'interviewer_title']) + || pickString(evaluation, ['evaluation_title', 'interviewer_title']) + || FALLBACK_DATA.interviewerEvaluationTitle; + + const evaluationLabel = pickString(root, ['label', 'evaluation_label']) + || pickString(evaluation, ['label', 'evaluation_label']) + || FALLBACK_DATA.evaluationLabel; + + const selfScore = normalizeScore( + pickNumber(root, ['candidate_score', 'self_score', 'self_rating']) + ?? pickNumber(evaluation, ['candidate_score', 'self_score', 'self_rating']), + FALLBACK_DATA.selfScore, + ); + + const interviewerScore = normalizeScore( + pickNumber(root, ['interviewer_score', 'score', 'interviewer_rating']) + ?? pickNumber(evaluation, ['interviewer_score', 'score', 'interviewer_rating']), + FALLBACK_DATA.interviewerScore, + ); + + return { + companyName, + dateLabel, + evaluationLabel, + interviewerEvaluationBody, + interviewerEvaluationLead, + interviewerEvaluationTitle, + interviewerScore, + interviewTitle, + recommendations: extractStringList(root, ['recommendations', 'constructive_recommendations', 'next_steps'], FALLBACK_RECOMMENDATIONS), + selfScore, + strengths: extractStringList(root, ['strengths', 'highlights'], FALLBACK_STRENGTHS), + suggestions: extractSuggestions(root), + }; + } catch { + return { + ...FALLBACK_DATA, + companyName: context?.companyName || FALLBACK_DATA.companyName, + interviewTitle: context?.title || FALLBACK_DATA.interviewTitle, + dateLabel: context?.dateLabel || FALLBACK_DATA.dateLabel, + }; + } + } + + async submitRating(interviewId: string, rating: number, comment: string): Promise { + await this.simulationService.submitEvaluationRating(interviewId, rating, comment); + } +} diff --git a/src/presentation/dashboard/components/DashboardSidebar.tsx b/src/presentation/dashboard/components/DashboardSidebar.tsx index 316c08a..73d6814 100644 --- a/src/presentation/dashboard/components/DashboardSidebar.tsx +++ b/src/presentation/dashboard/components/DashboardSidebar.tsx @@ -1,5 +1,5 @@ -import { Briefcase, Bot, Crown, FileText, Gamepad2, LayoutGrid, MessageCircle, Radar, Sparkles } from 'lucide-react'; -import type { ComponentType } from 'react'; +import { Briefcase, Bot, Crown, FileText, Gamepad2, LayoutGrid, Menu, MessageCircle, Radar, Sparkles, X } from 'lucide-react'; +import { useEffect, useState, type ComponentType } from 'react'; interface DashboardSidebarProps { active?: DashboardNavKey; @@ -32,61 +32,112 @@ const secondaryItems: NavItem[] = [ ]; export function DashboardSidebar({ active = 'dashboard', onNavigate }: DashboardSidebarProps) { + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + + useEffect(() => { + setIsMobileMenuOpen(false); + }, [active]); + + useEffect(() => { + if (!isMobileMenuOpen) { + return undefined; + } + + function onKeyDown(event: KeyboardEvent) { + if (event.key === 'Escape') { + setIsMobileMenuOpen(false); + } + } + + const previousOverflow = document.body.style.overflow; + document.body.style.overflow = 'hidden'; + window.addEventListener('keydown', onKeyDown); + + return () => { + document.body.style.overflow = previousOverflow; + window.removeEventListener('keydown', onKeyDown); + }; + }, [isMobileMenuOpen]); + + function handleNavigate(target: DashboardNavKey) { + onNavigate?.(target); + setIsMobileMenuOpen(false); + } + return ( - +
+ + {secondaryItems.map((item) => { + const Icon = item.icon; + const isActive = item.key === active; + return ( + + ); + })} + + +
+
+ +

Pro-medlemskab

+

Faa ubegrænsede simuleringer

+
+ + ); } diff --git a/src/presentation/dashboard/pages/dashboard.css b/src/presentation/dashboard/pages/dashboard.css index 84d869a..9275455 100644 --- a/src/presentation/dashboard/pages/dashboard.css +++ b/src/presentation/dashboard/pages/dashboard.css @@ -63,6 +63,25 @@ flex-shrink: 0; } +.dash-mobile-menu-btn, +.dash-mobile-overlay { + display: none; +} + +.dash-mobile-menu-btn { + border: 1px solid rgba(229, 231, 235, 0.82); + background: rgba(255, 255, 255, 0.75); + width: 40px; + height: 40px; + border-radius: 12px; + color: #111827; + align-items: center; + justify-content: center; + cursor: pointer; + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); +} + .dash-logo-row { display: flex; align-items: center; @@ -969,6 +988,12 @@ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2); } +.theme-dark .dash-mobile-menu-btn { + border-color: rgba(255, 255, 255, 0.08); + background: rgba(255, 255, 255, 0.06); + color: #f3f4f6; +} + .theme-dark .dash-logo-text, .theme-dark .dash-welcome h1, .theme-dark .dash-card h2, @@ -1096,17 +1121,6 @@ } @media (max-width: 980px) { - .dash-root { - display: block; - } - - .dash-sidebar, - .dash-main { - width: auto; - height: auto; - margin: 16px; - } - .dash-main { padding-right: 0; } @@ -1116,6 +1130,59 @@ } } +@media (max-width: 1000px) { + .dash-main { + margin: 16px; + margin-top: 64px; + height: calc(100vh - 80px); + padding-right: 0; + } + + .dash-mobile-menu-btn { + display: inline-flex; + position: fixed; + top: 14px; + left: 14px; + z-index: 60; + } + + .dash-mobile-overlay { + display: block; + position: fixed; + inset: 0; + z-index: 49; + border: 0; + margin: 0; + padding: 0; + background: rgba(2, 6, 23, 0.34); + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease; + } + + .dash-mobile-overlay.open { + opacity: 1; + pointer-events: auto; + } + + .dash-sidebar { + position: fixed; + top: 0; + left: 0; + margin: 0; + width: min(320px, calc(100vw - 28px)); + height: 100vh; + border-radius: 0 24px 24px 0; + transform: translateX(-110%); + transition: transform 0.24s ease; + z-index: 50; + } + + .dash-sidebar.open { + transform: translateX(0); + } +} + @media (min-width: 1280px) { .dash-ai-xl-only { display: flex; diff --git a/src/presentation/simulator/pages/SimulatorEvaluationPage.tsx b/src/presentation/simulator/pages/SimulatorEvaluationPage.tsx new file mode 100644 index 0000000..dbd8f43 --- /dev/null +++ b/src/presentation/simulator/pages/SimulatorEvaluationPage.tsx @@ -0,0 +1,328 @@ +import { useEffect, useMemo, useState } from 'react'; +import { + ArrowRight, + Calendar, + CheckCircle2, + ClipboardList, + Gamepad2, + Lightbulb, + MoveRight, + Route, + Star, + Target, + TrendingUp, + Trophy, +} from 'lucide-react'; +import { + SimulatorEvaluationViewModel, + type EvaluationImprovementItem, + type SimulatorEvaluationData, +} from '../../../mvvm/viewmodels/SimulatorEvaluationViewModel'; +import { DashboardSidebar, type DashboardNavKey } from '../../dashboard/components/DashboardSidebar'; +import { DashboardTopbar } from '../../dashboard/components/DashboardTopbar'; +import type { SimulatorEvaluationSelection } from './SimulatorPage'; +import '../../dashboard/pages/dashboard.css'; +import './simulator-evaluation.css'; + +interface SimulatorEvaluationPageProps { + interviewSelection: SimulatorEvaluationSelection; + onBack: () => void; + onLogout: () => void; + onNavigate: (target: DashboardNavKey) => void; + onToggleTheme: () => void; + theme: 'light' | 'dark'; +} + +function scoreGap(selfScore: number, interviewerScore: number): number { + return interviewerScore - selfScore; +} + +function scoreGapLabel(selfScore: number, interviewerScore: number): string { + const gap = scoreGap(selfScore, interviewerScore); + if (gap > 0) { + return `Gab: +${gap} point`; + } + if (gap < 0) { + return `Gab: ${gap} point`; + } + return 'Gab: 0 point'; +} + +function scoreGapHint(selfScore: number, interviewerScore: number): string { + const gap = scoreGap(selfScore, interviewerScore); + if (gap > 0) { + return 'Du undervurderede dig selv i forhold til interviewerens vurdering.'; + } + if (gap < 0) { + return 'Du vurderede dig selv hojere end intervieweren gjorde i denne session.'; + } + return 'Din selvvurdering matcher interviewerens vurdering godt.'; +} + +function asDateLabel(value: string): string { + if (!value) { + return 'Nyligt'; + } + return value; +} + +export function SimulatorEvaluationPage({ + interviewSelection, + onBack, + onLogout, + onNavigate, + onToggleTheme, + theme, +}: SimulatorEvaluationPageProps) { + const viewModel = useMemo(() => new SimulatorEvaluationViewModel(), []); + + const [name] = useState('Lasse'); + const [imageUrl] = useState(undefined); + const [evaluation, setEvaluation] = useState(null); + const [isLoading, setIsLoading] = useState(true); + const [rating, setRating] = useState(0); + const [comment, setComment] = useState(''); + const [isSubmitting, setIsSubmitting] = useState(false); + const [submitStatus, setSubmitStatus] = useState(''); + + useEffect(() => { + let active = true; + + async function load() { + setIsLoading(true); + const data = await viewModel.getEvaluation(interviewSelection.interviewId, { + companyName: interviewSelection.companyName, + dateLabel: interviewSelection.dateLabel, + title: interviewSelection.title, + }); + + if (!active) { + return; + } + + setEvaluation(data); + setIsLoading(false); + } + + void load(); + + return () => { + active = false; + }; + }, [interviewSelection.companyName, interviewSelection.dateLabel, interviewSelection.interviewId, interviewSelection.title, viewModel]); + + async function handleSubmitRating() { + if (!rating || isSubmitting) { + return; + } + + setIsSubmitting(true); + setSubmitStatus(''); + + try { + await viewModel.submitRating(interviewSelection.interviewId, rating, comment.trim()); + setSubmitStatus('Tak. Din feedback er sendt.'); + } catch { + setSubmitStatus('Kunne ikke sende feedback lige nu. Prov igen.'); + } finally { + setIsSubmitting(false); + } + } + + const data = evaluation; + const items: EvaluationImprovementItem[] = data?.suggestions ?? []; + + return ( +
+
+
+
+ + + +
+ + +
+ + Simulator + + Evaluering +
+
+ )} + /> + +
+
+
+ + {data?.evaluationLabel ?? 'Interview Feedback'} +
+

Evalueringsfeedback

+
+ {data?.companyName ?? interviewSelection.companyName} + +

{data?.interviewTitle ?? interviewSelection.title}

+ + {asDateLabel(data?.dateLabel ?? interviewSelection.dateLabel)} +
+
+ + {isLoading ?

Indlaeser evaluering...

: null} + + {!isLoading && data ? ( + <> +
+
+
+ +

{data.interviewerEvaluationTitle}

+
+

{data.interviewerEvaluationLead}

+

{data.interviewerEvaluationBody}

+
+ + +
+ +
+
+ +

Hvordan kan du blive bedre?

+
+ +
+ {items.map((item, index) => ( +
+
{index + 1}
+
+

{item.title}

+
+
+ Adfaerd +

{item.behavior}

+
+
+ Effekt +

{item.effect}

+
+
+ Naeste gang +

{item.nextStep}

+
+
+
+
+ ))} +
+
+ +
+
+
+ +

Dine styrker

+
+
    + {data.strengths.map((item, index) => ( +
  • + + {item} +
  • + ))} +
+
+ +
+
+ +

Konstruktiv anbefaling

+
+

Fokuser pa disse handlinger for at staerke din naeste samtale.

+
    + {data.recommendations.map((item, index) => ( +
  • +
    + {item} +
  • + ))} +
+
+
+ +
+

Husk: Hvert interview er en laeringsmulighed. Bliv ved med at ove.

+ +
+

Bedom denne evaluering

+ Din feedback hjaelper os med at forbedre oplevelsen. + +
+ {Array.from({ length: 5 }).map((_, index) => { + const value = index + 1; + const selected = value <= rating; + + return ( + + ); + })} +
+ +