:root{color-scheme:light;--color-bg: #F4F5F7;--color-bg-elevated: #FFFFFF;--color-bg-sunken: #ECEDF0;--color-surface: rgba(15, 18, 30, .02);--color-surface-strong: rgba(15, 18, 30, .045);--color-surface-hover: rgba(15, 18, 30, .05);--color-overlay: rgba(20, 22, 30, .45);--color-border: rgba(15, 18, 30, .1);--color-border-strong: rgba(15, 18, 30, .16);--color-border-bright: rgba(15, 18, 30, .28);--color-text: #1A1C22;--color-text-secondary: #4A4D57;--color-text-muted: #80838F;--color-text-faint: #AEB1BB;--color-primary: #FFD500;--color-primary-hover: #F2C800;--color-primary-glow: rgba(255, 213, 0, .3);--color-primary-on: #1A1C22;--color-primary-text: #007A34;--color-accent: #009640;--color-accent-hover: #007A34;--color-accent-glow: rgba(0, 150, 64, .25);--color-secondary: #EA7818;--color-status-a-bg: rgba(0, 150, 64, .12);--color-status-a-fg: #047A38;--color-status-k-bg: rgba(220, 38, 38, .1);--color-status-k-fg: #C81E1E;--color-status-e-bg: rgba(255, 213, 0, .22);--color-status-e-fg: #8A6D00;--color-status-ve-bg: rgba(234, 120, 24, .16);--color-status-ve-fg: #B65A00;--color-critical: #DC2626;--color-success: #047A38;--color-warning: #B65A00;--color-destructive: var(--color-critical);--color-destructive-hover: #B91C1C;--color-input-bg: #FFFFFF;--color-input-bg-hover: #FBFBFC;--color-input-border: rgba(15, 18, 30, .16);--color-input-border-focus: var(--color-accent);--shadow-sm: 0 1px 2px rgba(15, 18, 30, .06), 0 0 0 1px rgba(15, 18, 30, .04);--shadow-md: 0 4px 16px rgba(15, 18, 30, .1), 0 0 0 1px rgba(15, 18, 30, .05);--shadow-lg: 0 16px 48px rgba(15, 18, 30, .16), 0 0 0 1px rgba(15, 18, 30, .06);--glow-primary: 0 0 0 1px rgba(255, 213, 0, .4);--glow-accent: 0 0 0 1px rgba(0, 150, 64, .3);--gradient-mesh: none;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: "Inter", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Consolas", monospace;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px}:root[data-theme=dark]{color-scheme:dark;--color-bg: #0A0A0F;--color-bg-elevated: #15151D;--color-bg-sunken: #06060A;--color-surface: rgba(255, 255, 255, .025);--color-surface-strong: rgba(255, 255, 255, .045);--color-surface-hover: rgba(255, 255, 255, .06);--color-overlay: rgba(8, 8, 14, .8);--color-border: rgba(255, 255, 255, .06);--color-border-strong: rgba(255, 255, 255, .12);--color-border-bright: rgba(255, 255, 255, .2);--color-text: #ECECF1;--color-text-secondary: #A8A8B5;--color-text-muted: #5A5A6B;--color-text-faint: #3D3D4A;--color-primary: #FFD500;--color-primary-hover: #FFE043;--color-primary-glow: rgba(255, 213, 0, .35);--color-primary-on: #15151D;--color-primary-text: #FFD500;--color-accent: #009640;--color-accent-hover: #00B14C;--color-accent-glow: rgba(0, 150, 64, .3);--color-secondary: #EA7818;--color-status-a-bg: rgba(52, 211, 153, .18);--color-status-a-fg: #6EE7B7;--color-status-k-bg: rgba(244, 63, 94, .2);--color-status-k-fg: #FCA5A5;--color-status-e-bg: rgba(255, 213, 0, .18);--color-status-e-fg: #FFE043;--color-status-ve-bg: rgba(234, 120, 24, .22);--color-status-ve-fg: #FDBA74;--color-critical: #F43F5E;--color-success: #34D399;--color-warning: #FFA400;--color-destructive: var(--color-critical);--color-destructive-hover: #FB7185;--color-input-bg: rgba(255, 255, 255, .03);--color-input-bg-hover: rgba(255, 255, 255, .045);--color-input-border: rgba(255, 255, 255, .08);--color-input-border-focus: var(--color-primary);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4), inset 0 0 0 1px rgba(255, 255, 255, .04);--shadow-md: 0 8px 24px rgba(0, 0, 0, .45), inset 0 0 0 1px rgba(255, 255, 255, .05);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(255, 255, 255, .06);--glow-primary: 0 0 0 1px rgba(255, 213, 0, .25), 0 0 28px rgba(255, 213, 0, .22);--glow-accent: 0 0 0 1px rgba(0, 150, 64, .25), 0 0 28px rgba(0, 150, 64, .22);--gradient-mesh: radial-gradient(ellipse 1200px 800px at 80% -10%, rgba(255, 213, 0, .06), transparent 50%), radial-gradient(ellipse 1000px 700px at -10% 110%, rgba(0, 150, 64, .05), transparent 50%), radial-gradient(ellipse 600px 400px at 50% 100%, rgba(234, 120, 24, .03), transparent 50%)}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:var(--font-sans);font-size:14px;color:var(--color-text);background-color:var(--color-bg)}body{background-image:var(--gradient-mesh);background-attachment:fixed}#root{height:100vh;position:relative}.app-shell{display:grid;grid-template-columns:260px 1fr;height:100vh}.sidebar{background:var(--color-bg-elevated);border-right:1px solid var(--color-border);padding:16px;overflow-y:auto;display:flex;flex-direction:column}.sidebar h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:20px 0 6px;font-weight:var(--weight-semibold)}.sidebar button.lehrgang{display:block;width:100%;text-align:left;padding:8px 12px;border:0;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:13px;margin-bottom:2px;transition:background .16s ease,color .16s ease}.sidebar button.lehrgang:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar button.lehrgang.active{background:var(--color-surface-strong);color:var(--color-primary-text);font-weight:var(--weight-semibold);box-shadow:inset 2px 0 0 var(--color-accent)}.sidebar button.lehrgang.archiv{color:var(--color-text-muted);font-style:italic}.brand{display:flex;align-items:center;gap:10px;padding:4px 2px 16px;margin-bottom:8px;border-bottom:1px solid var(--color-border)}.brand-logo{height:32px;width:auto;object-fit:contain}.brand-name{font-weight:var(--weight-bold);font-size:15px;color:var(--color-text);letter-spacing:-.01em}.creator-credit{margin-top:4px;padding-top:8px;font-size:10px;text-align:center;color:var(--color-text-faint);letter-spacing:.02em}.main{display:flex;flex-direction:column;min-width:0}.tabs{display:flex;border-bottom:1px solid var(--color-border);padding:0 24px;gap:4px;background:var(--color-bg)}.tabs button{padding:12px 16px;border:0;background:transparent;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;font-size:13px;font-weight:var(--weight-medium);transition:color .16s ease,border-color .16s ease}.tabs button:hover{color:var(--color-text)}.tabs button.active{border-bottom-color:var(--color-accent);color:var(--color-primary-text);font-weight:var(--weight-semibold)}.tab-content{flex:1;padding:24px;overflow:auto}.empty-state{color:var(--color-text-muted);padding:48px;text-align:center;font-size:14px}button{font-family:inherit;font-size:13px;padding:7px 12px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease}button:hover{background:var(--color-surface-hover);border-color:var(--color-border-bright)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--color-primary);color:var(--color-primary-on);border-color:transparent;font-weight:var(--weight-semibold);box-shadow:var(--glow-primary)}button.primary:hover{background:var(--color-primary-hover)}button.destructive{border-color:#f43f5e59;color:var(--color-critical)}button.destructive:hover{background:#f43f5e1f;border-color:#f43f5e8c}input,select,textarea{font-family:inherit;font-size:13px;background:var(--color-input-bg);color:var(--color-text);border:1px solid var(--color-input-border);border-radius:var(--radius-sm);padding:6px 8px;transition:border-color .16s ease,background .16s ease}input:hover,select:hover,textarea:hover{background:var(--color-input-bg-hover)}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--color-input-border-focus);background:var(--color-input-bg-hover)}input[type=checkbox]{width:auto;accent-color:var(--color-primary)}table{color:var(--color-text);border-color:var(--color-border)}table th{color:var(--color-text-secondary)}table td{color:var(--color-text)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:200}.modal-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-lg);color:var(--color-text)}h1,h2,h3{color:var(--color-text);font-family:var(--font-display)}h1{font-size:24px;font-weight:var(--weight-bold)}h2{font-size:18px;font-weight:var(--weight-semibold)}h3{font-size:15px;font-weight:var(--weight-semibold)}.status-a{background:var(--color-status-a-bg);color:var(--color-status-a-fg)}.status-k{background:var(--color-status-k-bg);color:var(--color-status-k-fg)}.status-e{background:var(--color-status-e-bg);color:var(--color-status-e-fg)}.status-ve{background:var(--color-status-ve-bg);color:var(--color-status-ve-fg)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.banner{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-strong);padding:10px 16px;font-size:13px}.banner.warn{background:#ffa40014;border-bottom-color:#ffa40059;color:var(--color-warning)}.access-denied{min-height:100vh;display:grid;place-items:center;padding:24px}.access-denied-card{max-width:460px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:40px 32px}.access-denied-logo{display:block;height:40px;width:auto;margin:0 0 20px}.access-denied-badge{font-size:12px;font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-critical);background:var(--color-status-k-bg);border-radius:var(--radius-sm);padding:4px 12px;margin-bottom:16px}.access-denied-card h1{font-size:22px;margin:0 0 12px}.access-denied-card p{width:100%;color:var(--color-text-secondary);font-size:14px;line-height:1.55;margin:0 0 12px}.access-denied-account{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;word-break:break-all}.access-denied-hint{font-size:13px!important;color:var(--color-text-muted)!important}.access-denied-card button.primary{margin-top:12px;min-width:160px}
