:root{--brand: #3b82b6;--brand-alt: #00b7c3;--primary: #f97316;--primary-hover: #ea580c;--secondary: #1e3a5f;--secondary-light: #2d4a6f;--text-primary: #1e3a5f;--text-secondary: #5a7184;--text-muted: #6b7b8d;--text-white: #ffffff;--bg-main: #f8fafc;--bg-card: #ffffff;--bg-subtle: #f1f5f9;--bg-chat: #f8fafc;--border: #e2e8f0;--border-light: #f1f5f9;--shadow-sm: 0 1px 2px rgba(30, 58, 95, .05);--shadow: 0 4px 6px -1px rgba(30, 58, 95, .1), 0 2px 4px -2px rgba(30, 58, 95, .1);--shadow-lg: 0 10px 15px -3px rgba(30, 58, 95, .1), 0 4px 6px -4px rgba(30, 58, 95, .1);--radius: 12px;--radius-sm: 8px;--radius-full: 9999px;--type-xl: 1.125rem;--type-lg: 1rem;--type-md: .875rem;--type-sm: .75rem}*{box-sizing:border-box;margin:0;padding:0}*:focus-visible{outline:2px solid var(--brand);outline-offset:2px}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:17px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-alt) 100%);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:1rem;overscroll-behavior-y:none}#app{width:100%;max-width:520px;height:90vh;max-height:850px;background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.2);overscroll-behavior:none}#app.setup-mode,#app.feedback-mode{max-width:768px}#app.chat-mode{max-width:520px}@media(min-width:1100px){#app.setup-mode,#app.feedback-mode{max-width:1024px}}header{background:linear-gradient(135deg,var(--brand) 0%,var(--brand-alt) 100%);color:var(--text-white);padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center}.header-actions{display:inline-flex;align-items:center;gap:.5rem}.help-btn{width:2rem;height:2rem;padding:0;border-radius:50%;font-size:.9375rem;font-weight:700}header h1{font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:var(--type-lg);letter-spacing:-.01em}.header-tagline{font-size:.6875rem;color:#ffffffbf;font-weight:400;margin:0;letter-spacing:.01em}header button{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:var(--text-white);font-size:.75rem;padding:.4rem .875rem;border-radius:var(--radius-full);cursor:pointer;transition:all .2s;font-weight:500}header button:hover{background:#ffffff4d;transform:translateY(-1px)}#chat-container{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:var(--bg-chat);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.chat-session-meta{display:flex;flex-direction:column;gap:.375rem;padding:.625rem 1rem;border-bottom:1px solid var(--border);background:#f8fafceb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chat-context-bar{display:flex;gap:.375rem;flex-wrap:wrap}.chat-context-chip{display:inline-flex;align-items:center;padding:.1875rem .625rem;border-radius:var(--radius-full);background:var(--bg-subtle);border:1px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600}.chat-turn-status{font-size:.75rem;color:var(--text-muted)}.message{max-width:85%;padding:.875rem 1rem;border-radius:var(--radius);line-height:1.5;position:relative;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.screen-enter{animation:screenEnter .32s ease-out}@keyframes screenEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message strong{display:block;font-size:.75rem;font-weight:600;margin-bottom:.25rem}.message>div:first-of-type{font-size:var(--type-md)}.message.student{align-self:flex-end;background:var(--brand);color:var(--text-white);border-bottom-right-radius:4px;box-shadow:var(--shadow)}.message.student strong{color:#fffc}.message.student>div:first-of-type{color:var(--text-white)}.message.patient{align-self:flex-start;background:var(--bg-card);border:1px solid var(--border);border-bottom-left-radius:4px;box-shadow:var(--shadow-sm);color:var(--text-primary)}.message.patient strong{color:var(--text-secondary)}.nonverbal{font-style:italic;color:var(--text-secondary);background:var(--bg-subtle);padding:.5rem .75rem;border-radius:6px;margin-bottom:.5rem;font-size:.875rem;border-left:3px solid var(--brand-alt)}.message.student .nonverbal{background:#ffffff26;color:#ffffffe6;border-left-color:#ffffff80}.message-content{display:flex;flex-direction:column;gap:.25rem}.message-content>span{display:block}.typing-message .message-content{min-height:1.5rem}.typing-dots{display:inline-flex;align-items:center;gap:.25rem}.typing-dots span{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35;animation:typing-bounce 1s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.12s}.typing-dots span:nth-child(3){animation-delay:.24s}@keyframes typing-bounce{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}.message.meta{align-self:center;background:#fef3c7;border:1px solid #fcd34d;font-style:italic;font-size:.8125rem;color:#92400e;max-width:90%;border-radius:var(--radius-sm)}.message.system{align-self:center;background:var(--bg-subtle);border:1px solid var(--border);font-size:.8125rem;color:var(--brand);max-width:90%;text-align:center;border-radius:var(--radius-sm);font-weight:500}.message-info{font-size:.6875rem;margin-top:.375rem;opacity:.6}#input-area{padding:.5rem 1rem 1rem;background:var(--bg-card);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.input-toolbar{display:flex;gap:.375rem}.input-toolbar button{flex:1;background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border);padding:.625rem .75rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;font-weight:500;font-size:.875rem;font-family:inherit}.input-toolbar button:hover{background:var(--bg-card);border-color:var(--brand);color:var(--brand)}.input-toolbar #hint-btn:hover{border-color:#f59e0b;color:#d97706}.input-toolbar button:disabled{opacity:.5;cursor:wait}#input-form{display:flex;gap:.5rem}#input-form input{flex:1;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-full);outline:none;font-size:.9375rem;font-family:inherit;transition:all .2s;background:var(--bg-subtle);color:var(--text-primary)}#input-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #3b82b626;background:var(--bg-card)}#input-form input::placeholder{color:var(--text-muted)}#input-form button{background:var(--primary);color:var(--text-white);border:none;padding:.75rem 1.25rem;border-radius:var(--radius-full);cursor:pointer;transition:all .2s;font-weight:600;font-size:.875rem}#input-form button:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow)}#input-form button:disabled{background:var(--border);cursor:not-allowed;transform:none;box-shadow:none}.feedback-action-btn{width:100%;background:#0f766e;color:var(--text-white);border:none;padding:.75rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.9375rem;font-weight:600;font-family:inherit;transition:all .2s;box-shadow:var(--shadow-sm)}.feedback-action-btn:hover{background:#0d9488;transform:translateY(-1px);box-shadow:var(--shadow)}.conversation-end-actions{display:flex;flex-direction:column;gap:.5rem}.end-conversation-btn{width:100%;background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border);padding:.75rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;font-weight:600;font-family:inherit;transition:all .2s}.end-conversation-btn:hover{border-color:var(--brand);color:var(--brand)}.scenario-selector{padding:1.5rem;overflow-y:auto;flex:1;background:var(--bg-main);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.settings-panel{background:var(--bg-card);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:1.5rem;box-shadow:var(--shadow-sm)}.settings-panel h3{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--type-xl);font-weight:600;color:var(--text-primary);margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.settings-panel h3:before{content:"⚙️"}.setup-intro{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.875rem}.setting-group{margin-bottom:1rem;display:flex;flex-direction:column;gap:.375rem}.setting-group:last-of-type{margin-bottom:0}.setting-group>label{font-weight:600;font-size:.8125rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.setting-group select,.setting-group input[type=text],.setting-group textarea{padding:.625rem .875rem;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:.875rem;font-family:inherit;background:var(--bg-card);color:var(--text-primary);transition:all .2s}.setting-group select:focus,.setting-group input:focus,.setting-group textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #3b82b626}.setting-group select:hover,.setting-group input:hover,.setting-group textarea:hover{border-color:var(--primary)}.setting-group textarea{resize:vertical;min-height:70px}.leerdoel-limit{font-size:.75rem;color:var(--text-secondary);margin-bottom:.5rem}#leerdoel-count{font-weight:700;color:var(--brand)}.leerdoel-groups{display:flex;flex-direction:column;gap:.625rem}.leerdoel-group{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem}.leerdoel-group-title{font-size:.75rem;font-weight:700;color:var(--text-secondary);margin-bottom:.5rem}.leerdoel-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.leerdoel-chip{position:relative;min-height:3.5rem;padding:.75rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:.25rem;transition:all .2s ease;height:100%}.leerdoel-chip input[type=checkbox]{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.leerdoel-chip-name{font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;font-weight:600;color:var(--text-primary)}.leerdoel-chip-desc{font-family:Inter,sans-serif;font-size:.75rem;line-height:1.4;color:var(--text-muted)}.leerdoel-chip:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.leerdoel-chip:has(input:checked){border-color:var(--primary);background:#fff7ed;box-shadow:0 0 0 1px var(--primary)}.leerdoel-chip:has(input:checked) .leerdoel-chip-name{color:var(--primary-hover)}.leerdoel-chip:has(input:disabled):not(:has(input:checked)){opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.setup-theory-link{display:block;width:100%;background:none;border:1px dashed var(--border);color:var(--brand);font-size:.8125rem;font-weight:500;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;margin-top:.5rem;font-family:inherit;text-align:center}.setup-theory-link:hover{background:#3b82b60f;border-color:var(--brand)}.inline-error{min-height:1rem;margin-top:.375rem;font-size:.75rem;color:#b91c1c}.checklist-panel{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:200px;overflow-y:auto;animation:fadeIn .2s ease-out}.checklist-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-light);position:sticky;top:0;background:var(--bg-subtle)}.checklist-close-btn{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:0;line-height:1}.checklist-close-btn:hover{color:var(--text-primary)}.checklist-body{padding:.5rem .75rem}.checklist-item{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-light)}.checklist-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.checklist-item strong{font-size:.8125rem;color:var(--brand);display:block;margin-bottom:.25rem}.checklist-item p{font-size:.75rem;color:var(--text-secondary);line-height:1.4;margin-bottom:.25rem}.checklist-item ul{list-style:disc;padding-left:1.25rem;margin:0}.checklist-item ul li{font-size:.75rem;color:var(--text-secondary);line-height:1.4;padding:.125rem 0}.checklist-empty{font-size:.8125rem;color:var(--text-muted);font-style:italic;text-align:center;padding:.5rem}.welcome-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;box-shadow:var(--shadow-sm);overflow:hidden}.welcome-header{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1.25rem;cursor:pointer;background:linear-gradient(135deg,#3b82b614,#00b7c314);border-bottom:1px solid var(--border-light)}.welcome-header h3{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:1rem;font-weight:600;color:var(--brand);margin:0}.welcome-header h3:before{content:""}.welcome-collapse-btn{background:none;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:.25rem}.welcome-body{padding:1rem 1.25rem}.welcome-body p{font-size:.875rem;color:var(--text-secondary);margin-bottom:.75rem;line-height:1.5}.welcome-body ol{list-style:none;counter-reset:steps;padding:0}.welcome-body ol li{counter-increment:steps;font-size:.8125rem;color:var(--text-secondary);padding:.5rem 0 .5rem 2rem;position:relative;line-height:1.5}.welcome-body ol li:before{content:counter(steps);position:absolute;left:0;top:.5rem;width:1.5rem;height:1.5rem;background:var(--brand);color:var(--text-white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.welcome-body ol li strong{color:var(--text-primary)}#start-btn{width:100%;margin-top:1.5rem;padding:.875rem 1.5rem;background:var(--primary);color:var(--text-white);border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow)}#start-btn:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}#start-btn.btn-disabled{background:var(--border);color:var(--text-muted);opacity:.8;cursor:not-allowed;box-shadow:none}#start-btn.btn-disabled:hover{transform:none;box-shadow:none;background:var(--border)}.scenario-selector hr{border:none;height:1px;background:var(--border);margin:1.5rem 0}.scenario-selector>h3{font-size:.9375rem;font-weight:600;color:var(--text-secondary);margin-bottom:.875rem}.scenario-prefill-message{min-height:1rem;font-size:.75rem;color:var(--brand);margin-bottom:.5rem}.scenario-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.scenario-card{border:1px solid var(--border);padding:1rem 1.25rem;border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-card);transition:all .2s;box-shadow:var(--shadow-sm)}.scenario-card:hover{border-color:var(--brand);background:#3b82b60a;transform:translateY(-2px);box-shadow:var(--shadow)}.scenario-card.selected{border-color:var(--brand);background:#3b82b614;box-shadow:var(--shadow)}.scenario-card strong{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.scenario-card small{font-size:.8125rem;color:var(--text-secondary);line-height:1.5}@media(max-width:520px){body{padding:0;background:var(--bg-main)}#app{height:100vh;max-height:none;border-radius:0;box-shadow:none}.leerdoel-chips{flex-direction:column}.scenario-selector,.settings-panel{padding:1rem}.feedback-container{flex-direction:column}.feedback-export-controls{flex-direction:column;align-items:flex-start}.feedback-export-summary{grid-template-columns:1fr}.feedback-gesprek{border-right:none;border-bottom:1px solid var(--border);max-height:35vh}}@media(max-width:768px){.feedback-tabs{display:flex}#feedback-screen.tab-gesprek .feedback-panel,#feedback-screen.tab-feedback .feedback-gesprek{display:none}.dashboard-stats{grid-template-columns:1fr}}#chat-container::-webkit-scrollbar,.scenario-selector::-webkit-scrollbar{width:6px}#chat-container::-webkit-scrollbar-track,.scenario-selector::-webkit-scrollbar-track{background:transparent}#chat-container::-webkit-scrollbar-thumb,.scenario-selector::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}#chat-container::-webkit-scrollbar-thumb:hover,.scenario-selector::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#1e3a5f80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-card);border-radius:var(--radius);width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-alt) 100%);border-radius:var(--radius) var(--radius) 0 0}.modal-header h2{font-family:Plus Jakarta Sans,sans-serif;font-size:var(--type-xl);font-weight:600;color:var(--text-white);margin:0}.close-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:var(--text-white);width:32px;height:32px;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-btn:hover{background:#ffffff4d;transform:scale(1.05)}.modal-body{padding:1.5rem;overflow-y:auto;font-size:.9375rem;line-height:1.7;color:var(--text-primary)}.modal-body h3{font-family:Plus Jakarta Sans,sans-serif;font-size:1.125rem;font-weight:600;color:var(--brand);margin:1.5rem 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid var(--border)}.modal-body h3:first-child{margin-top:0}.modal-body strong{color:var(--text-primary);font-weight:600}.modal-body hr{border:none;height:1px;background:var(--border);margin:1.5rem 0}.confirm-modal-content{max-width:420px}.confirm-actions{margin-top:1rem;display:flex;justify-content:flex-end;gap:.5rem}.modal-secondary-btn,.modal-primary-btn{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .875rem;font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.modal-secondary-btn{background:var(--bg-card);color:var(--text-secondary)}.modal-primary-btn{background:var(--primary);border-color:var(--primary);color:var(--text-white)}.modal-primary-btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}#feedback-screen{flex:1;display:flex;flex-direction:column;overflow:hidden}.feedback-export-controls{display:flex;gap:.625rem;align-items:center;padding:.625rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-card)}.feedback-export-controls label{font-size:.8125rem;color:var(--text-secondary);font-weight:600;flex-shrink:0}.feedback-export-controls input{flex:1;min-width:0;padding:.5rem .625rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8125rem;font-family:inherit}.feedback-export-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem 1rem;padding:.625rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-subtle)}.feedback-meta-item{font-size:.75rem;color:var(--text-secondary)}.feedback-meta-item strong{color:var(--text-primary)}.feedback-tabs{display:none;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-card)}.feedback-tab{flex:1;padding:.5rem .625rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);font-size:.8125rem;font-weight:600;cursor:pointer;font-family:inherit}.feedback-tab.active{border-color:var(--brand);color:var(--brand);background:#3b82b614}.feedback-container{flex:1;display:flex;overflow:hidden}.feedback-gesprek{flex:1;display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden}.feedback-gesprek>h3{font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-subtle);flex-shrink:0}#feedback-gesprek-content{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:var(--bg-chat);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.feedback-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.feedback-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-subtle);flex-shrink:0}.feedback-panel-header h3{font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin:0}.feedback-panel-actions{display:inline-flex;gap:.375rem;flex-wrap:wrap;justify-content:flex-end}.copy-feedback-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);padding:.25rem .625rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;display:inline-flex;align-items:center;gap:.25rem}.copy-feedback-btn:hover{border-color:var(--brand);color:var(--brand)}#feedback-content{flex:1;overflow-y:auto;padding:1.25rem;font-size:var(--type-md);line-height:1.7;color:var(--text-primary);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}#feedback-content h3{font-family:Plus Jakarta Sans,sans-serif;font-size:var(--type-lg);font-weight:600;color:var(--brand);margin:1.25rem 0 .5rem}#feedback-content h3:first-child{margin-top:0}#feedback-content h4{font-size:var(--type-md);font-weight:600;color:var(--text-primary);margin:1rem 0 .375rem}#feedback-content q{font-style:italic;color:var(--text-secondary);quotes:"“" "”"}#feedback-content strong{color:var(--text-primary)}.score-table-container{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1.25rem}.score-leerdoel-label{font-family:Plus Jakarta Sans,sans-serif;font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.375rem;margin-top:.5rem}.score-leerdoel-label:first-child{margin-top:0}.score-row{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.score-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.score-dot.score-goed{background:#10b981}.score-dot.score-voldoende{background:#f59e0b}.score-dot.score-onvoldoende{background:#ef4444}.score-criterium{flex:1;font-size:.8125rem;color:var(--text-primary)}.score-label{font-size:.75rem;font-weight:600;text-transform:capitalize}.score-label.score-goed{color:#10b981}.score-label.score-voldoende{color:#d97706}.score-label.score-onvoldoende{color:#ef4444}.self-assessment{padding:.25rem 0}.self-assessment h3{font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:600;color:var(--brand);margin-bottom:.25rem}.sa-intro{font-size:.8125rem;color:var(--text-secondary);margin-bottom:.75rem}.sa-fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.625rem}.sa-fieldset legend{font-size:.8125rem;font-weight:600;color:var(--text-primary);padding:0 .375rem}.sa-options{display:flex;gap:.5rem;margin-top:.375rem}.sa-option{flex:1;display:flex;align-items:center;gap:.375rem;padding:.5rem;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s;font-size:.75rem;color:var(--text-secondary)}.sa-option:hover{border-color:var(--brand);background:#3b82b60a}.sa-option:has(input:checked){border-color:var(--brand);background:#3b82b614;color:var(--text-primary)}.sa-option input[type=radio]{margin:0;accent-color:var(--brand)}.sa-submit-btn{width:100%;margin-top:.75rem;padding:.75rem 1.25rem;background:var(--primary);color:var(--text-white);border:none;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow);font-family:inherit}.sa-submit-btn:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.sa-hint{font-size:.8125rem;color:#dc2626;text-align:center;margin-top:.5rem}.sa-summary{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem .875rem;margin-bottom:1rem;display:flex;flex-wrap:wrap;gap:.375rem .75rem;align-items:center}.sa-summary strong{font-size:.8125rem;color:var(--text-secondary);width:100%;margin-bottom:.125rem}.sa-summary-item{font-size:.8125rem;color:var(--text-primary)}.feedback-loading{color:var(--text-muted);font-style:italic;text-align:center;padding:2rem}.feedback-error{color:#dc2626;text-align:center;padding:2rem}#new-conversation-btn{margin:1rem;padding:.875rem 1.5rem;background:var(--primary);color:var(--text-white);border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow);flex-shrink:0}#new-conversation-btn:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.speech-toggle{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}.speech-toggle-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:var(--radius-full);transition:all .3s}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s;box-shadow:var(--shadow-sm)}.toggle-switch input:checked+.toggle-slider{background:var(--brand)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px)}#speech-input{display:flex;justify-content:center;padding:.5rem 0}.live-conversation{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.live-conv-button{display:flex;align-items:center;justify-content:center;gap:.5rem;background:var(--bg-subtle);border:2px solid var(--border);border-radius:var(--radius-full);padding:.75rem 1.5rem;cursor:pointer;transition:all .2s;color:var(--text-secondary);width:100%;font-family:inherit;font-size:.875rem;font-weight:600}.live-conv-button:hover{border-color:var(--brand);color:var(--brand);background:var(--bg-card)}.live-conv-button.active{border-color:#ef4444;color:#ef4444;background:#fef2f2}.live-conv-button.active:hover{background:#fee2e2}.live-conv-label{pointer-events:none}.live-status{display:flex;align-items:center;gap:.5rem;padding:.25rem 0}.live-indicator{width:10px;height:10px;border-radius:50%;background:var(--border)}.live-indicator.listening{background:#22c55e;animation:pulse-live 1.5s ease-in-out infinite}.live-indicator.processing{background:var(--brand);animation:pulse-live .8s ease-in-out infinite}.live-indicator.speaking{background:var(--primary);animation:pulse-live 1s ease-in-out infinite}@keyframes pulse-live{0%,to{box-shadow:0 0 0 0 currentColor;opacity:1}50%{box-shadow:0 0 0 6px transparent;opacity:.6}}.live-status-text{font-size:.75rem;font-weight:500;color:var(--text-muted)}.dashboard-modal-content{max-width:840px}.dashboard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:.875rem;font-size:var(--type-sm);color:var(--text-secondary)}.dashboard-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:auto;background:var(--bg-card)}.dashboard-table{width:100%;border-collapse:collapse;font-size:var(--type-sm)}.dashboard-table th,.dashboard-table td{text-align:left;padding:.5rem .625rem;border-bottom:1px solid var(--border-light)}.dashboard-table th{color:var(--text-secondary);background:var(--bg-subtle);font-weight:700}.dashboard-empty{font-size:var(--type-md);color:var(--text-muted)}.toast-container{position:fixed;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1200}.toast{min-width:220px;max-width:360px;padding:.625rem .75rem;border-radius:var(--radius-sm);font-size:var(--type-sm);color:var(--text-white);box-shadow:var(--shadow);animation:toastEnter .22s ease-out}.toast-info{background:var(--secondary)}.toast-success{background:#0f766e}.toast-error{background:#b91c1c}.toast-leave{animation:toastLeave .22s ease-in forwards}@keyframes toastEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toastLeave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}@media print{body{background:#fff!important;padding:0;display:block;min-height:auto}#app{width:100%;max-width:none;height:auto;max-height:none;border:none;box-shadow:none;border-radius:0}header,#setup-screen,#input-area,#chat-session-meta,#chat-container,#new-conversation-btn,#theory-modal,#help-modal,#dashboard-modal,#confirm-modal,#toast-container,.feedback-tabs,.feedback-panel-actions,.feedback-export-controls{display:none!important}#feedback-screen{display:flex!important;overflow:visible}.feedback-export-summary{background:#fff;border-top:1px solid #ccc}.feedback-container,.feedback-gesprek,.feedback-panel,#feedback-gesprek-content,#feedback-content{overflow:visible;max-height:none;height:auto}.feedback-container{display:block}.feedback-gesprek{border-right:none;border-bottom:1px solid #ccc}}.rubric-container{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.rubric-item{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem}.rubric-item strong{display:block;font-family:Plus Jakarta Sans,sans-serif;color:var(--brand);margin-bottom:.5rem;font-size:.9375rem;border-bottom:1px solid var(--border-light);padding-bottom:.5rem}.rubric-levels{display:grid;grid-template-columns:1fr;gap:.5rem;font-size:.8125rem;line-height:1.4}.rubric-level{display:flex;gap:.5rem;padding:.25rem .5rem;border-radius:4px}.rubric-level.good{background:#10b9811a;color:#065f46}.rubric-level.sufficient{background:#f59e0b1a;color:#92400e}.rubric-level.insufficient{background:#ef44441a;color:#991b1b}.rubric-label{font-weight:700;min-width:85px;flex-shrink:0}@media(min-width:640px){.rubric-levels{grid-template-columns:repeat(3,1fr)}.rubric-level{flex-direction:column;gap:.25rem}.rubric-label{min-width:auto;border-bottom:1px solid rgba(0,0,0,.05);padding-bottom:.125rem;margin-bottom:.125rem}}.scenario-description-box{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;margin-top:.5rem;font-size:.875rem;color:var(--text-secondary);line-height:1.5;animation:fadeIn .2s ease-out}.scenario-description-box strong{color:var(--text-primary);display:block;margin-bottom:.25rem}.secondary-btn{background:var(--bg-card);color:var(--brand);border:1px solid var(--brand);padding:.75rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-size:.9375rem;font-weight:600;font-family:inherit;transition:all .2s;box-shadow:var(--shadow-sm)}.secondary-btn:hover{background:#3b82b60f;transform:translateY(-1px);box-shadow:var(--shadow)}.voice-overlay{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1e3a5ff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;transition:opacity .3s ease}.voice-overlay.active{opacity:1}.voice-close-btn{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;color:#ffffffb3;cursor:pointer;padding:.5rem;border-radius:50%;transition:color .2s,background .2s}.voice-close-btn:hover{color:#fff;background:#ffffff1a}.voice-center{display:flex;flex-direction:column;align-items:center;gap:2rem;max-width:90vw}.voice-orb{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}.voice-orb-inner{width:80px;height:80px;border-radius:50%;background:#ffffff26;transition:background .5s ease,transform .5s ease}.voice-orb-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.2);transition:border-color .5s ease}.voice-orb-ring-2{inset:-10px;border-width:1px}.voice-orb.listening .voice-orb-inner{background:#22c55e66;animation:pulse-listening 2s ease-in-out infinite}.voice-orb.listening .voice-orb-ring{border-color:#22c55e4d;animation:ring-pulse 2s ease-in-out infinite}.voice-orb.listening .voice-orb-ring-2{border-color:#22c55e26;animation:ring-pulse 2s ease-in-out infinite .3s}.voice-orb.processing .voice-orb-inner{background:#3b82f666;animation:pulse-processing .8s ease-in-out infinite}.voice-orb.processing .voice-orb-ring{border-color:#3b82f64d;animation:ring-spin 2s linear infinite}.voice-orb.processing .voice-orb-ring-2{border-color:#3b82f626;animation:ring-spin 2s linear infinite reverse}.voice-orb.speaking .voice-orb-inner{background:#f9731666;animation:pulse-speaking 1.2s ease-in-out infinite}.voice-orb.speaking .voice-orb-ring{border-color:#f973164d;animation:ring-pulse 1.2s ease-in-out infinite}.voice-orb.speaking .voice-orb-ring-2{border-color:#f9731626;animation:ring-pulse 1.2s ease-in-out infinite .2s}.voice-status-text{color:#ffffffe6;font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif;font-size:1.1rem;font-weight:500;letter-spacing:.02em}.voice-transcript{color:#ffffffd9;font-family:Inter,system-ui,sans-serif;font-size:1rem;line-height:1.6;text-align:center;max-width:480px;min-height:1.6em;padding:1rem 1.5rem;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.08);transition:color .2s;word-break:break-word}.voice-transcript.interim{color:#ffffff73;font-style:italic}.voice-transcript:empty{display:none}.voice-stop-btn{position:absolute;bottom:3rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#ffffffd9;padding:.75rem 2rem;border-radius:999px;font-family:Inter,system-ui,sans-serif;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.voice-stop-btn:hover{background:#ffffff26;border-color:#ffffff4d}@keyframes pulse-listening{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}@keyframes pulse-processing{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.7}}@keyframes pulse-speaking{0%,to{transform:scale(1);opacity:1}30%{transform:scale(1.12);opacity:.85}60%{transform:scale(.95);opacity:.9}}@keyframes ring-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.5}}@keyframes ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:480px){.voice-orb{width:120px;height:120px}.voice-orb-inner{width:64px;height:64px}.voice-transcript{font-size:.9rem;padding:.75rem 1rem;max-width:85vw}.voice-stop-btn{bottom:2rem}}
