:root{--background: oklch(.98 .01 250);--foreground: oklch(.2 .02 250);--card: oklch(1 0 0);--card-foreground: oklch(.2 .02 250);--popover: oklch(1 0 0);--popover-foreground: oklch(.2 .02 250);--primary: oklch(.45 .19 258);--primary-foreground: oklch(1 0 0);--secondary: oklch(.88 .02 250);--secondary-foreground: oklch(.2 .02 250);--muted: oklch(.95 .01 250);--muted-foreground: oklch(.5 .02 250);--accent: oklch(.75 .16 95);--accent-foreground: oklch(.15 .02 250);--destructive: oklch(.628 .258 29.23);--destructive-foreground: oklch(.98 0 0);--border: oklch(.9 .01 250);--input: oklch(.9 .01 250);--ring: oklch(.45 .19 258);--font-display: "Outfit", system-ui, sans-serif;--font-sans: "Schibsted Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: .5rem}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-sans);background:var(--background);color:var(--foreground);line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:600;line-height:1.2}button{font-family:var(--font-sans);cursor:pointer;border:none;outline:none}input{font-family:var(--font-sans)}a{color:var(--primary);text-decoration:none}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--card);border-bottom:1px solid var(--border);padding:16px 24px;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px #0000000a}.header-content{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{display:flex;align-items:center;gap:12px}.logo-text{display:flex;flex-direction:column;line-height:1.2}.logo-title{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--foreground)}.logo-subtitle{font-size:11px;color:var(--muted-foreground);white-space:nowrap}.app-main{flex:1;max-width:800px;width:100%;margin:0 auto;padding:48px 24px}.app-footer{text-align:center;padding:24px;font-size:13px;color:var(--muted-foreground);border-top:1px solid var(--border)}.progress-bar{display:flex;align-items:center;gap:0}.progress-step{display:flex;align-items:center;gap:8px}.progress-step:not(:last-child){margin-right:4px}.progress-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;font-family:var(--font-display);flex-shrink:0;transition:all .3s ease}.progress-label{font-size:13px;white-space:nowrap}.progress-line{width:32px;height:2px;margin:0 4px;transition:background .3s ease}@media (max-width: 640px){.progress-label{display:none}.progress-line{width:16px}}.btn{padding:14px 28px;border-radius:var(--radius);font-size:16px;font-weight:600;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.btn:active:not(:disabled){transform:translateY(0)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;box-shadow:0 1px 3px #0000000a}.registration-container{display:flex;justify-content:center;padding-top:24px}.registration-card{max-width:520px;width:100%;text-align:center}.registration-icon{margin-bottom:24px;display:flex;justify-content:center}.registration-title{font-size:28px;font-weight:700;color:var(--primary);margin-bottom:8px}.registration-subtitle{font-size:16px;color:var(--muted-foreground);margin-bottom:24px}.registration-desc{font-size:15px;color:var(--muted-foreground);margin-bottom:32px;text-align:left;line-height:1.6;padding:16px;background:var(--muted);border-radius:var(--radius);border-left:3px solid var(--primary)}.registration-form{display:flex;flex-direction:column;gap:20px;text-align:left}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:600;color:var(--foreground)}.field input{padding:12px 16px;border:2px solid var(--input);border-radius:var(--radius);font-size:16px;background:var(--card);color:var(--foreground);transition:border-color .2s ease}.field input:focus{border-color:var(--primary);outline:none}.field-error{font-size:13px;color:var(--destructive)}.section-header{margin-bottom:32px}.section-eyebrow{display:inline-block;font-size:13px;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.section-title{font-size:26px;font-weight:700;color:var(--foreground);margin-bottom:8px}.section-desc{font-size:15px;color:var(--muted-foreground);line-height:1.6}.video-step{display:flex;flex-direction:column;gap:24px}.video-wrapper{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:#000}.video-wrapper video{display:block;width:100%;max-height:480px;border-radius:var(--radius)}.video-hint{text-align:center;font-size:14px;color:var(--muted-foreground);padding:8px 0}.video-progress{display:flex;flex-direction:column;gap:8px}.video-progress-bar{width:100%;height:6px;background:var(--secondary);border-radius:3px;overflow:hidden}.video-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .5s ease}.video-progress-text{font-size:14px;color:var(--muted-foreground);text-align:center}.quiz-step{display:flex;flex-direction:column;gap:20px}.quiz-meta{display:flex;align-items:center;justify-content:space-between;gap:16px}.quiz-counter{font-size:14px;font-weight:600;color:var(--muted-foreground)}.quiz-dots{display:flex;gap:6px}.quiz-dot{width:10px;height:10px;border-radius:50%;transition:background .2s ease}.quiz-card{padding:32px}.quiz-question{font-size:20px;font-weight:600;margin-bottom:24px;line-height:1.4}.quiz-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 640px){.quiz-options{grid-template-columns:1fr}}.quiz-option{display:flex;align-items:center;gap:12px;padding:16px;border:2px solid var(--border);border-radius:var(--radius);background:var(--card);text-align:left;transition:all .2s ease;font-size:15px}.quiz-option:hover{border-color:var(--primary);background:var(--muted)}.quiz-option.selected{border-color:var(--primary);background:var(--secondary)}.quiz-letter{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:var(--font-display);flex-shrink:0;transition:all .2s ease}.quiz-option-text{flex:1;line-height:1.4}.quiz-validation-warning{color:var(--destructive);font-size:14px;font-weight:500;text-align:center}.quiz-nav{display:flex;justify-content:space-between;gap:12px}.result-step{display:flex;flex-direction:column;gap:24px}.score-card{display:flex;align-items:center;gap:32px;padding:40px}@media (max-width: 640px){.score-card{flex-direction:column;text-align:center}}.score-circle{width:120px;height:120px;border-radius:50%;border:4px solid var(--primary);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.score-number{font-family:var(--font-display);font-size:42px;font-weight:700;line-height:1}.score-total{font-size:16px;color:var(--muted-foreground)}.score-info{flex:1}.score-status{font-size:22px;font-weight:700;margin-bottom:8px}.score-detail{font-size:15px;color:var(--muted-foreground);line-height:1.6}.score-saved{margin-top:12px;font-size:14px;color:var(--primary);font-weight:500}.score-error{margin-top:12px;font-size:14px;color:var(--destructive);font-weight:500}.certificate{position:relative;overflow:hidden;border:2px solid var(--primary);padding:0}.certificate-watermark{position:absolute;top:0;left:0;right:0;bottom:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 5l8 5 9-2 2 9 5 8-5 8-2 9-9-2-8 5-8-5-9 2-2-9-5-8 5-8 2-9 9 2z' fill='%23003DA5'/%3E%3C/svg%3E");background-size:80px 80px;pointer-events:none}.certificate-content{position:relative;padding:40px}.certificate-header{display:flex;align-items:center;gap:16px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border)}.certificate-title{font-size:22px;font-weight:700;color:var(--primary)}.certificate-subtitle{font-size:14px;color:var(--muted-foreground)}.certificate-body{text-align:center;line-height:1.8;font-size:16px}.certificate-name{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--foreground);margin:8px 0 2px}.certificate-email{font-size:14px;color:var(--muted-foreground);margin-bottom:8px}.certificate-meta{display:flex;justify-content:space-around;margin-top:32px;padding-top:24px;border-top:1px solid var(--border);gap:16px}.certificate-meta>div{display:flex;flex-direction:column;gap:4px;text-align:center}.cert-label{font-size:12px;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.cert-value{font-size:16px;font-weight:600;color:var(--foreground)}.certificate-footer{text-align:center;margin-top:24px;font-size:13px;color:var(--muted-foreground)}.retake-section{display:flex;justify-content:center;padding:16px 0}.admin-login{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:24px}.admin-login-card{max-width:420px;width:100%;text-align:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px;box-shadow:0 1px 3px #0000000a}.admin-login-icon{margin-bottom:20px;display:flex;justify-content:center}.admin-login-title{font-size:24px;font-weight:700;color:var(--primary);margin-bottom:4px}.admin-login-subtitle{font-size:14px;color:var(--muted-foreground);margin-bottom:28px}.admin-login-form{display:flex;flex-direction:column;gap:16px;text-align:left}.admin-dashboard{display:flex;flex-direction:column;gap:24px}.admin-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-title{font-size:24px;font-weight:700;color:var(--foreground);margin-bottom:4px}.admin-subtitle{font-size:14px;color:var(--muted-foreground)}.admin-toolbar-actions{display:flex;gap:8px;align-items:center}.admin-error{background:#dc262614;border:1px solid rgba(220,38,38,.2);border-radius:var(--radius);padding:14px 18px;font-size:14px;color:var(--destructive)}.admin-loading{text-align:center;padding:60px 24px;font-size:16px;color:var(--muted-foreground)}.admin-empty{text-align:center;padding:60px 24px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.admin-empty-icon{margin-bottom:16px;display:flex;justify-content:center}.admin-empty h2{font-size:18px;font-weight:600;color:var(--foreground);margin-bottom:8px}.admin-empty p{font-size:14px;color:var(--muted-foreground);max-width:400px;margin:0 auto;line-height:1.6}.admin-table-wrapper{overflow-x:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 3px #0000000a}.admin-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}.admin-table thead th{text-align:left;padding:14px 16px;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);background:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap}.admin-table tbody td{padding:14px 16px;border-bottom:1px solid var(--border);color:var(--foreground)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--muted)}.cell-name{font-weight:600}.cell-email{color:var(--muted-foreground)}.col-score,.col-total{text-align:center;white-space:nowrap}.col-date{white-space:nowrap;color:var(--muted-foreground);font-size:13px}.col-status{text-align:center}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.status-pass{background:#22c55e1f;color:#15803d}.status-fail{background:#dc26261a;color:#dc2626}.admin-back{text-align:center;padding:8px 0}.admin-back a{font-size:14px;color:var(--primary);text-decoration:none}.admin-back a:hover{text-decoration:underline}@media (max-width: 640px){.admin-toolbar{flex-direction:column}.admin-toolbar-actions{width:100%}.admin-toolbar-actions .btn{flex:1}}
