@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--drv-dunkelblau:#039;--drv-hellblau:#66b8dc;--drv-gruen:#090;--nat-rot:red;--nat-gold:#fc0;--nat-schwarz:#000;--primary:var(--drv-hellblau);--primary-hover:#55a7cb;--secondary:var(--drv-dunkelblau);--secondary-light:#026;--highlight:var(--drv-gruen);--bg-color:#f4f6f8;--surface:#fff;--text-main:var(--nat-schwarz);--text-muted:#555;--border:#d2d2d2;--danger:var(--nat-rot);--success:var(--drv-gruen);--warning:var(--nat-gold);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:TheSans,Inter,system-ui,-apple-system,sans-serif;line-height:1.5}a{color:var(--secondary);text-decoration:none;transition:color .2s}a:hover{color:var(--highlight)}h1,h2,h3,h4,h5,h6{color:var(--secondary);font-weight:600;line-height:1.2}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{flex-grow:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border);padding:1.5rem}.form-group{margin-bottom:1rem}.form-label{color:var(--text-main);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-input,.form-select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #cc00001a}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:var(--secondary)}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary);color:#fff}.btn-secondary:hover{background-color:var(--secondary-light)}.btn-outline{border:1px solid var(--border);color:var(--text-main);background-color:#0000}.btn-outline:hover{background-color:var(--bg-color);border-color:var(--text-muted)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#b91c1c}.navbar{background-color:var(--primary);box-shadow:var(--shadow-sm);z-index:50;border-bottom:3px solid var(--highlight);position:sticky;top:0}.navbar-container{justify-content:space-between;align-items:center;max-width:1200px;height:4rem;margin:0 auto;padding:0 2rem;display:flex}.navbar-brand{color:var(--secondary);align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;display:flex}.navbar-nav{align-items:center;gap:1.5rem;display:flex}.nav-link{color:var(--secondary);border-bottom:2px solid #0000;padding:.5rem 0;font-weight:600}.nav-link:hover,.nav-link.active{color:var(--highlight);border-bottom-color:var(--highlight)}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--border);padding:1rem}.data-table th{background-color:var(--bg-color);color:var(--secondary);font-weight:600}.data-table tr:hover td{background-color:#00000004}.badge{text-transform:uppercase;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-admin{color:#991b1b;background:#fee2e2}.badge-ressort{color:#3730a3;background:#e0e7ff}.badge-regional{color:#166534;background:#dcfce7}.mobile-toggle{display:none}.nav-items-wrapper{flex-grow:1;align-items:center;display:flex}.desktop-ml-auto{margin-left:auto}.desktop-mr-3{margin-right:3rem}.form-input,.form-select,.btn{min-height:48px}.mobile-header,.mobile-bottom-nav,.mobile-only-btn{display:none}@media (width<=768px){.app-container{padding-bottom:env(safe-area-inset-bottom,20px)}.desktop-nav{display:none}.mobile-header{background-color:var(--primary);box-shadow:var(--shadow-sm);border-bottom:3px solid var(--highlight);z-index:50;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.mobile-profile-btn{color:var(--secondary);cursor:pointer;background:0 0;border:none}.mobile-bottom-nav{background:var(--surface);padding-bottom:env(safe-area-inset-bottom);z-index:60;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000001a}.bottom-nav-item{color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:.75rem .25rem;font-family:inherit;font-size:.75rem;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--primary);font-weight:600}.bottom-nav-item span{margin-top:.25rem}.main-content{padding:1rem 1rem 80px}.mobile-more-sheet{z-index:70;background:#00000080;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-more-sheet-content{background:var(--surface);width:100%;padding:1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;box-shadow:0 -4px 20px #00000026}.mobile-more-links{flex-direction:column;display:flex}.mobile-more-links a{color:var(--text-main);border-bottom:1px solid var(--border);padding:1rem;font-size:1rem}.btn{width:100%;margin-bottom:.5rem}.mobile-only-btn{display:inline-flex}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{width:100%;display:block}.data-table tr{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:1rem;padding:.5rem}.data-table td{border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;padding:.5rem;display:flex}.data-table td:last-child{border-bottom:none}.data-table td:before{content:attr(data-label);color:var(--text-muted);margin-right:1rem;font-weight:600}.card{padding:1rem;overflow-x:hidden}.profile-modal-card{padding:1.5rem;width:90%!important}.grid,[style*="display: grid"],[style*="display: flex"]{max-width:100%}[style*="grid-template-columns: 1fr 1fr"],[style*="grid-template-columns: 1fr 1fr 1fr"],[style*="grid-template-columns: repeat(auto-fit, minmax("]{grid-template-columns:1fr!important}[style*="gap: 2rem"]{gap:1rem!important}}:root{--danger-ink:#a30000;--danger-bg:#fdecec;--warning-ink:#6b4f00;--warning-bg:#fff5d1;--success-ink:#006300;--success-bg:#e8f6e8;--info-ink:#026;--info-bg:#e6f2fa;--series-1:#2a78d6;--chart-grid:#e4e4e1;--chart-ref:#52514e;--chart-empty:#f0efec;--chart-flag:#ec835a}.text-muted{color:var(--text-muted)}.auth-page{background-color:var(--bg-color);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{width:100%;max-width:420px}.code-input{text-transform:uppercase;letter-spacing:2px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem}.alert{border-radius:var(--radius-sm);border:1px solid #0000;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.alert-error{background:var(--danger-bg);color:var(--danger-ink);border-color:#f5b5b5}.alert-warning{background:var(--warning-bg);color:var(--warning-ink);border-color:#f0d777}.alert-success{background:var(--success-bg);color:var(--success-ink)}.alert-info{background:var(--info-bg);color:var(--info-ink)}.btn-danger{background:var(--danger-ink);color:#fff;border:1px solid var(--danger-ink)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--secondary);outline-offset:2px}.link-button{color:var(--secondary);cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.status-chip{background:var(--info-bg);color:var(--info-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .45rem;font-size:.75rem;display:inline-flex}.status-chip-muted{color:#444;background:#ececec}.status-chip-warn{background:var(--warning-bg);color:var(--warning-ink)}.secret-code{background:var(--bg-color);border-radius:var(--radius-sm);letter-spacing:1px;word-break:break-all;padding:.5rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.app-loading{min-height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--secondary);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.profile-modal-card{width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.toast-region{z-index:10000;flex-direction:column;gap:.5rem;max-width:min(420px,100vw - 2rem);display:flex;position:fixed;bottom:1rem;right:1rem}.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background:var(--surface);border-left:4px solid var(--secondary);align-items:flex-start;gap:.6rem;padding:.75rem .9rem;font-size:.9rem;display:flex}.toast-success{border-left-color:var(--success)}.toast-success svg{color:var(--success-ink);flex-shrink:0}.toast-error{border-left-color:var(--danger-ink)}.toast-error svg{color:var(--danger-ink);flex-shrink:0}.toast-info svg{color:var(--secondary);flex-shrink:0}.toast span{flex:1}.toast-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:.1rem}.connection-banner{z-index:10001;background:var(--warning-bg);color:var(--warning-ink);border-bottom:1px solid #f0d777;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;display:flex;position:sticky;top:0}.sync-indicator{color:var(--text-muted);margin-right:.5rem;font-size:.8rem}.exam-page{max-width:860px;margin:0 auto;padding:1rem 2rem 4rem}.exam-sticky-header{z-index:100;background:var(--bg-color);border-bottom:1px solid var(--border);gap:.75rem;margin-bottom:2rem;padding:1rem 0;display:grid;position:sticky;top:0}.exam-header-card{box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.exam-sticky-header .alert{margin-bottom:0}.save-status{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.save-status-saved{color:var(--success-ink)}.save-status-offline{color:var(--danger-ink);font-weight:600}.exam-timer{color:var(--secondary);border-radius:var(--radius-sm);background:#0000000d;align-items:center;gap:.5rem;padding:.4rem .8rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.25rem;font-weight:700;display:flex}.exam-timer-warning{color:var(--danger-ink)}.exam-timer-critical{background:var(--danger-bg)}.question-nav{flex-wrap:wrap;gap:.35rem;display:flex}.question-nav-item{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;min-width:2.1rem;height:2.1rem;font-size:.85rem;font-weight:600}.question-nav-item.is-answered{background:var(--info-bg);border-color:var(--secondary);color:var(--secondary)}.question-nav-item.is-sure{box-shadow:inset 0 -3px 0 var(--success)}.mc-option{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface);align-items:center;gap:1rem;padding:1rem;display:flex}.mc-option.is-checked{border-color:var(--secondary);background:#0033990d}section[id^=frage-]:focus{outline:3px solid var(--secondary);outline-offset:2px}@media (width<=768px){.exam-page{padding:.5rem 1rem 4rem}}.audit-action{background:var(--info-bg);color:var(--info-ink);white-space:nowrap;border-radius:999px;padding:.1rem .45rem;font-size:.8rem}.audit-warn{background:var(--warning-bg);color:var(--warning-ink)}.audit-danger{background:var(--danger-bg);color:var(--danger-ink)}.filter-row{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.filter-row label{color:var(--text-muted);flex-direction:column;gap:.25rem;min-width:200px;font-size:.85rem;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-tile{flex-direction:column;gap:.15rem;display:flex}.stat-label{color:var(--text-muted);font-size:.85rem}.stat-value{color:var(--secondary);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.stat-detail{color:var(--text-muted);font-size:.8rem}.chart-layout{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:1.5rem;margin-bottom:1.5rem;display:grid}.chart-card{min-width:0}.chart-card-header{justify-content:space-between;gap:1rem;margin-bottom:.75rem;display:flex}.chart-card-header h3{margin-bottom:.15rem;font-size:1.05rem}.chart-card-header p{font-size:.85rem}.chart-root{width:100%;position:relative}.chart-scroll{overflow-x:auto}.chart-root svg{font-family:inherit;display:block;overflow:visible}.chart-label{fill:#0b0b0b;font-size:12px}.chart-label-muted{fill:#52514e;font-size:11px}.chart-value{fill:#0b0b0b;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.chart-grid line,line.chart-grid{stroke:var(--chart-grid);stroke-width:1px}.chart-reference,.chart-crosshair{stroke:var(--chart-ref);stroke-width:1px}.chart-bar{fill:var(--series-1)}.chart-line{fill:none;stroke:var(--series-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--series-1);stroke:var(--surface);stroke-width:2px}.chart-dot-flag{fill:var(--chart-flag)}.chart-mark{outline:none}.chart-mark:hover .chart-bar,.chart-mark:focus .chart-bar{fill:#1c5cab}.chart-mark:focus-visible rect:first-child,.chart-mark:focus-visible circle:first-child{stroke:var(--secondary);stroke-width:2px}.chart-tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:var(--radius-sm);white-space:nowrap;z-index:5;flex-direction:column;padding:.35rem .6rem;font-size:.8rem;display:flex;position:absolute;transform:translateY(-100%)}.chart-tooltip strong{color:#0b0b0b;font-size:.95rem}.chart-tooltip span{color:#52514e}.chart-empty{text-align:center;padding:2rem 0}.chart-table{margin-top:.75rem;font-size:.85rem}.chart-table summary{cursor:pointer;color:var(--secondary)}.chart-table table{margin-top:.5rem}
