.app-header__actions{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.app-header__user{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.app-header__role-badge{display:inline-block;padding:1px var(--space-2);border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.app-header__role-badge--admin{background:#00b4d826;color:var(--color-accent)}.app-header__role-badge--gehilfe{background:#94a3b826;color:var(--color-text-muted)}.bottom-nav{display:none}@media (max-width: 768px){.app-header__nav,.app-header__user,.app-header__brand-text{display:none}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0);overflow-x:auto;scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav__btn{flex:0 0 auto;min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:var(--space-2) var(--space-2);background:transparent;border:none;color:var(--color-text-muted);transition:color var(--transition),background var(--transition)}.bottom-nav__btn--aktiv{color:var(--color-accent)}.bottom-nav__icon{font-size:1.3rem;line-height:1}.bottom-nav__label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}}.toast-container{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);pointer-events:none}.toast-container .toast{position:static;transform:none;pointer-events:all;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);animation:toast-slide-in .25s ease}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.toast__icon{font-size:var(--text-base);flex-shrink:0;font-style:normal}.toast__message{flex:1}.toast__close{background:transparent;color:inherit;opacity:.7;font-size:var(--text-lg);line-height:1;padding:0 0 0 var(--space-2);flex-shrink:0}.toast__close:hover{opacity:1}:root{--color-bg: #0a0a1a;--color-surface: #111128;--color-surface-2: #1a1a35;--color-border: #2a2a4a;--color-border-light: #3a3a5a;--color-primary: #1a6ebd;--color-primary-dark: #0f4f8a;--color-primary-light:#2485e0;--color-accent: #00b4d8;--color-accent-dark: #0090b0;--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-danger-dark: #b91c1c;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-text-faint: #4a5568;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--transition: .15s ease;--header-height: 56px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100vh;overflow-x:hidden}h1{font-size:var(--text-2xl);font-weight:700}h2{font-size:var(--text-xl);font-weight:600}h3{font-size:var(--text-lg);font-weight:600}h4{font-size:var(--text-base);font-weight:600}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}p+p{margin-top:var(--space-3)}button{cursor:pointer;font-family:inherit;font-size:var(--text-sm);border:none;outline:none;transition:background-color var(--transition),opacity var(--transition)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;font-size:var(--text-sm);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%;outline:none;transition:border-color var(--transition)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary-light)}input::placeholder,textarea::placeholder{color:var(--color-text-faint)}.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}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-danger{color:var(--color-danger)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mb-4{margin-bottom:var(--space-4)}.gap-2{gap:var(--space-2)}.spinner{width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.app-boot{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg)}.view-loader{display:flex;align-items:center;justify-content:center;padding:var(--space-12)}.access-denied{display:flex;align-items:center;justify-content:center;padding:var(--space-12);color:var(--color-text-muted)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:100;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-4);gap:var(--space-4);box-shadow:var(--shadow-sm)}.app-header__brand{font-size:var(--text-lg);font-weight:700;color:var(--color-accent);white-space:nowrap;margin-right:var(--space-2)}.app-header__nav{display:flex;align-items:center;gap:var(--space-1);flex:1;overflow-x:auto;scrollbar-width:none}.app-header__nav::-webkit-scrollbar{display:none}.app-header__user{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.nav-btn{background:transparent;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--transition),color var(--transition)}.nav-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.nav-btn.active{background:var(--color-primary-dark);color:var(--color-text)}.nav-btn--logout{color:var(--color-danger);margin-left:auto}.nav-btn--logout:hover{background:#ef444426;color:var(--color-danger)}.app-main{flex:1;padding:var(--space-6) var(--space-4);max-width:1200px;width:100%;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-3)}.page-header h1{font-size:var(--text-xl);color:var(--color-text)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.card+.card{margin-top:var(--space-4)}.card__title{font-size:var(--text-base);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs);margin-bottom:var(--space-3)}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.grid-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.table-wrapper{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--color-border)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{background:var(--color-surface-2);color:var(--color-text-muted);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-3) var(--space-4);text-align:left;white-space:nowrap}.table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);vertical-align:middle}.table tbody tr{transition:background-color var(--transition)}.table tbody tr:hover{background:var(--color-surface-2);cursor:pointer}@media (max-width: 768px){.app-header__nav{display:none}.app-main{padding:var(--space-4) var(--space-3);padding-bottom:calc(75px + env(safe-area-inset-bottom,0px))}.nav-btn--logout{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}}@media (max-width: 640px){.app-header__brand{font-size:var(--text-base)}}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;transition:background-color var(--transition),opacity var(--transition);white-space:nowrap}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-light)}.btn--secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-border)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn--ghost{background:transparent;color:var(--color-text-muted);padding:var(--space-1) var(--space-2)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn--full{width:100%;justify-content:center}.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.form-group label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media (max-width: 480px){.form-row{grid-template-columns:1fr}}.form-error{font-size:var(--text-xs);color:var(--color-danger);margin-top:var(--space-1)}.toggle-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.toggle-row label{font-size:var(--text-sm);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:36px;height:20px;background:var(--color-border);border-radius:999px;position:relative;cursor:pointer;transition:background-color var(--transition);flex-shrink:0}.toggle:after{content:"";position:absolute;width:14px;height:14px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform var(--transition)}.toggle:checked{background:var(--color-success)}.toggle:checked:after{transform:translate(16px)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:999px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.badge--success{background:#22c55e26;color:var(--color-success)}.badge--warning{background:#f59e0b26;color:var(--color-warning)}.badge--danger{background:#ef444426;color:var(--color-danger)}.badge--info{background:#00b4d826;color:var(--color-accent)}.badge--neutral{background:var(--color-surface-2);color:var(--color-text-muted)}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:1000;padding:var(--space-3) var(--space-6);border-radius:var(--radius);font-size:var(--text-sm);font-weight:500;box-shadow:var(--shadow-lg);animation:toast-in .25s ease;max-width:90vw;text-align:center}.toast--success{background:var(--color-success);color:#fff}.toast--error{background:var(--color-danger);color:#fff}.toast--warning{background:var(--color-warning);color:#000}.toast--info{background:var(--color-primary);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;animation:modal-in .2s ease}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.modal__title{font-size:var(--text-lg);font-weight:600}.modal__close{background:transparent;color:var(--color-text-muted);font-size:var(--text-xl);line-height:1;padding:var(--space-1)}.modal__close:hover{color:var(--color-text)}.modal__footer{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-btn{background:transparent;color:var(--color-text-muted);padding:var(--space-3) var(--space-4);border-bottom:2px solid transparent;font-size:var(--text-sm);transition:color var(--transition),border-color var(--transition);white-space:nowrap}.tab-btn:hover{color:var(--color-text)}.tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.flag-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.flag-dot--ok{background:var(--color-success)}.flag-dot--pending{background:var(--color-warning)}.flag-dot--missing{background:var(--color-border-light)}.empty-state{text-align:center;padding:var(--space-12) var(--space-8);color:var(--color-text-muted)}.empty-state__icon{font-size:2.5rem;margin-bottom:var(--space-4);display:block}.empty-state p{font-size:var(--text-sm)}@media (max-width: 640px){.table-wrapper{border:none;background:transparent}.table thead{display:none}.table tbody{display:flex;flex-direction:column;gap:var(--space-2)}.table tbody tr{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);gap:var(--space-2);cursor:default}.table tbody tr:hover{background:var(--color-surface)}.table td{display:flex;justify-content:space-between;align-items:center;padding:0;border:none;font-size:var(--text-sm);gap:var(--space-2)}.table td:before{content:attr(data-label);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.table td:empty,.table td[data-label=""]{justify-content:flex-end}.table td[data-label=""]:before{display:none}}.anleitung{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);overflow:hidden}.anleitung__toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:none;border:none;cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);text-align:left;transition:color var(--transition)}.anleitung__toggle:hover{color:var(--color-text)}.anleitung__arrow{font-size:var(--text-base);transition:transform .2s ease;display:inline-block}.anleitung__arrow--offen{transform:rotate(180deg)}.anleitung__inhalt{border-top:1px solid var(--color-border);padding:var(--space-2) var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.anleitung__schritt{display:flex;gap:var(--space-3);align-items:flex-start}.anleitung__nr{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:2px}.anleitung__schritt-inhalt{display:flex;flex-direction:column;gap:2px}.anleitung__schritt-titel{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.anleitung__schritt-text{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.anleitung__link{background:none;border:none;color:var(--color-accent);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline;font-weight:500}
