:root{--color-primary: #1a56db;--color-primary-hover: #1648c0;--color-primary-text: #ffffff;--color-secondary: #374151;--color-secondary-hover:#1f2937;--color-background: #f9fafb;--color-surface: #ffffff;--color-text: #111827;--color-text-muted: #4b5563;--color-border: #d1d5db;--color-success: #166534;--color-success-bg: #dcfce7;--color-success-border: #86efac;--color-error: #991b1b;--color-error-bg: #fee2e2;--color-error-border: #fca5a5;--color-warning: #92400e;--color-warning-bg: #fef3c7;--color-warning-border: #fcd34d;--color-header-bg: #1e3a5f;--color-header-text: #f0f4ff;--color-sidebar-bg: #f3f4f6;--color-focus-ring: #2563eb;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-xxl: 48px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji";--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.5rem;--line-height-base: 1.6;--font-weight-normal: 400;--font-weight-bold: 700;--border-radius: 6px;--border-radius-lg: 10px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--sidebar-width: 280px;--header-height: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-background);min-width:320px;-webkit-font-smoothing:antialiased}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--border-radius)}button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;box-shadow:0 0 0 5px #2563eb40}input:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:0;box-shadow:0 0 0 4px #2563eb33}:focus:not(:focus-visible){outline:none}#app,#app-inner{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);padding:0 var(--space-lg);height:var(--header-height);background-color:var(--color-header-bg);color:var(--color-header-text);box-shadow:var(--shadow-md)}.app-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-header-text);white-space:nowrap}.app-main{display:flex;flex:1;flex-direction:column;min-height:0}.app-sidebar{background-color:var(--color-sidebar-bg);border-bottom:1px solid var(--color-border);padding:var(--space-md);overflow-y:auto}.app-content{flex:1;padding:var(--space-lg);overflow-y:auto;min-width:0}@media (min-width: 1024px){.app-main{flex-direction:row;height:calc(100vh - var(--header-height));overflow:hidden}.app-sidebar{width:var(--sidebar-width);flex-shrink:0;border-bottom:none;border-right:1px solid var(--color-border);overflow-y:auto}.app-content{overflow-y:auto}}.app-sidebar nav[aria-label=Kategorienavigation]{display:flex;flex-direction:column;gap:var(--space-xs)}.category-btn{display:flex;flex-direction:column;gap:var(--space-xs);width:100%;padding:var(--space-sm) var(--space-md);background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;text-align:left;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.category-btn:hover{background-color:#e5e7eb;border-color:#9ca3af}.category-btn--active{background-color:#dbeafe;border-color:var(--color-primary);color:#1e3a8a}.category-btn--active:hover{background-color:#bfdbfe}.category-btn__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);line-height:1.3}.category-btn__meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.category-btn--active .category-btn__meta{color:#1e40af}.category-btn__progress{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs)}.category-btn__progress-bar{flex:1;height:6px;background-color:var(--color-border);border-radius:3px;overflow:hidden;position:relative}.category-btn__progress-bar:after{content:"";display:block;height:100%;width:var(--progress-width, 0%);background-color:var(--color-primary);border-radius:3px;transition:width .3s ease}.category-btn__progress-bar{background:linear-gradient(to right,var(--color-primary) var(--bar-fill, 0%),var(--color-border) var(--bar-fill, 0%))}.category-btn__progress-label{font-size:var(--font-size-sm);color:var(--color-text-muted);min-width:2.5rem;text-align:right}.category-btn--active .category-btn__progress-label{color:#1e40af}.progress-display{margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.progress-display__heading{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--space-md)}.progress-display__divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-sm) 0}.progress-row{margin-bottom:var(--space-md)}.progress-row--total{margin-bottom:var(--space-sm)}.progress-row--total .progress-row__label{font-weight:var(--font-weight-bold)}.progress-row__header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-xs)}.progress-row__label{font-size:var(--font-size-sm);color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-row__stats{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.progress-row__bar-container{height:8px;background-color:var(--color-border);border-radius:4px;overflow:hidden}.progress-row__bar{height:100%;background-color:var(--color-primary);border-radius:4px;transition:width .3s ease;min-width:0}.question-display{max-width:720px;margin:0 auto}.question-display__position{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-md);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em}.question-display__question{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--shadow-sm)}.question-display__image{display:block;max-width:100%;max-height:320px;width:auto;height:auto;margin:0 auto var(--space-lg);border-radius:var(--border-radius);border:1px solid var(--color-border);background-color:#fff}.question-display__question-text{font-size:var(--font-size-lg);line-height:1.7;color:var(--color-text)}.question-display__question-list{font-size:var(--font-size-lg);line-height:1.7;color:var(--color-text);margin:var(--space-sm) 0 0 0;padding-left:var(--space-xl);list-style-type:decimal}.question-display__question-list li{margin-bottom:var(--space-xs)}.question-display__answer{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.question-display__answer-text{font-size:var(--font-size-base);line-height:1.7;color:var(--color-text);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.question-display__rating{display:flex;gap:var(--space-md);flex-wrap:wrap}.question-display__tts-indicator{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-md);background-color:#eff6ff;border:1px solid var(--color-primary);border-radius:var(--border-radius);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);animation:tts-pulse 1.5s ease-in-out infinite}.question-display__tts-indicator[hidden]{display:none}@keyframes tts-pulse{0%,to{opacity:1}50%{opacity:.6}}.question-display__options{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.option-btn{display:flex;align-items:flex-start;gap:var(--space-md);width:100%;padding:var(--space-md);background-color:var(--color-surface);color:var(--color-text);border:2px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;text-align:left;font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);min-height:44px}.option-btn:hover:not(:disabled){background-color:#eff6ff;border-color:var(--color-primary)}.option-btn__letter{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background-color:var(--color-border);color:var(--color-text);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.option-btn__text{flex:1}.option-btn--correct{background-color:var(--color-success-bg);border-color:var(--color-success);color:var(--color-success)}.option-btn--correct .option-btn__letter{background-color:var(--color-success);color:#fff}.option-btn--wrong{background-color:var(--color-error-bg);border-color:var(--color-error);color:var(--color-error)}.option-btn--wrong .option-btn__letter{background-color:var(--color-error);color:#fff}.question-display__no-solution{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background-color:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--border-radius);color:var(--color-warning);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.question-display__manual-rating{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg);padding:var(--space-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius)}.question-display__manual-rating-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-muted);margin-bottom:var(--space-xs)}.question-display__manual-rating .btn{width:100%}.option-btn--selected{background-color:#eff6ff;border-color:var(--color-primary)}.option-btn--selected .option-btn__letter{background-color:var(--color-primary);color:#fff}cursor: default; opacity: .75; } .option-btn:disabled:not(.option-btn--correct):not(.option-btn--wrong){opacity:.5}.question-display--summary{text-align:center;padding:var(--space-xxl) var(--space-lg)}.question-display__summary-heading{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--space-lg)}.question-display__summary-stat{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-lg);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);line-height:1.4;border:2px solid transparent;border-radius:var(--border-radius);cursor:pointer;text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);min-height:44px;min-width:44px}.btn--correct{background-color:var(--color-success);color:#fff;border-color:var(--color-success)}.btn--correct:hover{background-color:#14532d;border-color:#14532d}.btn--incorrect{background-color:var(--color-error);color:#fff;border-color:var(--color-error)}.btn--incorrect:hover{background-color:#7f1d1d;border-color:#7f1d1d}.btn--reveal{background-color:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.btn--reveal:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--restart{background-color:var(--color-secondary);color:#fff;border-color:var(--color-secondary);margin-top:var(--space-xl)}.btn--restart:hover{background-color:var(--color-secondary-hover);border-color:var(--color-secondary-hover)}.btn--next{background-color:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary);margin-top:var(--space-lg);align-self:flex-end}.btn--next:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--reset-progress{background:none;color:#f0f4ffb3;border:1px solid rgba(240,244,255,.3);font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);min-height:36px;white-space:nowrap}.btn--reset-progress:hover{background-color:#ffffff1a;color:var(--color-header-text);border-color:#f0f4ff99}.btn--auto-mode{background:none;color:#f0f4ffb3;border:1px solid rgba(240,244,255,.3);font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);min-height:36px;white-space:nowrap;gap:var(--space-xs)}.btn--auto-mode:hover:not(:disabled){background-color:#ffffff1a;color:var(--color-header-text);border-color:#f0f4ff99}.btn--auto-mode--active{background-color:#ffffff26;color:var(--color-header-text);border-color:#f0f4ffcc;box-shadow:0 0 0 2px #ffffff40}.btn--auto-mode--active:hover:not(:disabled){background-color:#ffffff38;border-color:var(--color-header-text)}.btn--auto-mode:disabled{opacity:.4;cursor:not-allowed}.session-config{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.session-config__label{font-size:var(--font-size-sm);color:var(--color-header-text);white-space:nowrap}.session-config__input{width:72px;padding:var(--space-xs) var(--space-sm);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);text-align:center;min-height:36px}.session-config__input:hover{border-color:#9ca3af}.error-banner{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--border-radius-lg);padding:var(--space-md);margin-bottom:var(--space-lg)}.error-banner__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.error-banner__heading{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-error)}.error-banner__dismiss{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:1px solid var(--color-error-border);border-radius:var(--border-radius);color:var(--color-error);font-size:var(--font-size-lg);cursor:pointer;line-height:1;transition:background-color var(--transition-fast)}.error-banner__dismiss:hover{background-color:var(--color-error-border)}.error-banner__list{list-style:none;display:flex;flex-direction:column;gap:var(--space-xs)}.error-banner__item{font-size:var(--font-size-sm);color:var(--color-error)}.error-banner__filename{font-weight:var(--font-weight-bold)}.error-banner__message{color:var(--color-text-muted)}.loading-message{display:flex;align-items:center;justify-content:center;min-height:200px;font-size:var(--font-size-lg);color:var(--color-text-muted);text-align:center}.fatal-error{max-width:600px;margin:var(--space-xxl) auto;padding:var(--space-xl);background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--border-radius-lg);text-align:center}.fatal-error h1{font-size:var(--font-size-xxl);color:var(--color-error);margin-bottom:var(--space-md)}.fatal-error p{color:var(--color-text);margin-bottom:var(--space-md)}.fatal-error pre{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-error);text-align:left;overflow-x:auto;white-space:pre-wrap;word-break:break-word}@media (max-width: 767px){.app-header{height:auto;padding:var(--space-sm) var(--space-md)}.app-header h1{font-size:var(--font-size-lg)}.app-content,.question-display__question,.question-display__answer{padding:var(--space-md)}.question-display__question-text,.question-display__question-list{font-size:var(--font-size-base)}.question-display__rating{flex-direction:column}.btn{width:100%}.question-display--summary{padding:var(--space-xl) var(--space-md)}}@media (min-width: 768px) and (max-width: 1023px){.app-sidebar{padding:var(--space-md) var(--space-lg)}.app-sidebar nav[aria-label=Kategorienavigation]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 319px){body{min-width:320px;overflow-x:auto}}@media print{.app-header,.app-sidebar,.session-config,.error-banner,.btn{display:none!important}.app-content{padding:0}.question-display{max-width:100%}}
