:root{--color-primary: #03c2ca;--color-primary-dark: #029198;--color-navy: #042649;--color-bg: #f4f7f9;--color-surface: #ffffff;--color-text: #1c1c1c;--color-text-muted: #4b525b;--color-border: #dde3e8;--color-danger: #d6423f;--color-danger-dark: #b23330;--color-success: #2f9e4d;--color-success-dark: #257d3e;--color-soon-bg: #fff4d6;--color-soon-border: #e8a33d;--color-danger-bg: #fbe4e3;--font-sans: "Open Sans", "Segoe UI", Helvetica, Arial, "Noto Sans", sans-serif;--radius: 6px;--shadow-sm: 0 1px 2px rgba(4, 38, 73, .08)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg)}#root{display:flex;flex-direction:column;height:100vh}nav{flex-shrink:0}h1,h2,h3{color:var(--color-navy);font-weight:700;line-height:1.2}a{color:var(--color-primary-dark)}nav{display:flex;align-items:center;gap:1.5rem;background:var(--color-navy);color:#fff;padding:.75rem 1.5rem}nav span{font-weight:700;letter-spacing:.02em}.brand{display:inline-flex;align-items:center;gap:.5rem}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border-radius:8px;background:#fff}nav a{color:#fff;text-decoration:none;opacity:.85;text-decoration-color:var(--color-primary);text-decoration-thickness:2px;text-underline-offset:4px}nav a:hover,nav a.active{opacity:1;text-decoration-line:underline}nav a.active{font-weight:700}.nav-links,.nav-account{display:flex;align-items:center;gap:1.5rem;padding-left:1.25rem;border-left:1px solid rgba(255,255,255,.25);font-weight:400}.nav-links a:not(:first-child){padding-left:1.5rem;border-left:1px solid rgba(255,255,255,.25)}.nav-account{margin-left:auto;gap:.75rem}.nav-account a+*{padding-left:.75rem;border-left:1px solid rgba(255,255,255,.25)}.nav-account .email{opacity:.85;font-size:.9rem;padding-left:.75rem;border-left:1px solid rgba(255,255,255,.25)}.nav-date{font-weight:400;font-size:.9rem;opacity:.85;letter-spacing:normal}button.nav-date{background:none;border:none;color:#fff;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;padding:.15rem .4rem;margin:-.15rem -.4rem;border-radius:4px}button.nav-date:hover,button.nav-date.open{opacity:1;background:#ffffff24}.simulation-marker{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--color-soon-border);color:#2c1b04;border-radius:3px;padding:.1rem .35rem;flex-shrink:0}.simulation-menu{position:relative;display:inline-flex}.simulation-popover{position:absolute;top:calc(100% + .6rem);right:0;z-index:20;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-top:3px solid var(--color-soon-border);border-radius:var(--radius);box-shadow:0 6px 18px #04264940;padding:.9rem 1rem;width:15rem;font-weight:400;font-size:.9rem}.simulation-popover-title{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-soon-border);margin-bottom:.7rem}.simulation-popover label{display:block;font-size:.8rem;color:var(--color-text-muted);margin-bottom:.3rem}.simulation-popover input[type=date]{width:100%;margin-bottom:.8rem}.simulation-popover-trigger{width:100%;justify-content:center}main{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem;width:100%;flex:1;display:flex;flex-direction:column;min-height:0}main.main-wide{max-width:1800px}.login-page{max-width:420px;margin:3rem auto;padding:2rem;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.field-hint{margin:.3rem 0 1rem;font-size:.85rem;color:var(--color-text-muted)}button,.button-like{display:inline-flex;align-items:center;gap:.4rem;font-family:inherit;font-size:.95rem;font-weight:600;padding:.5rem 1rem;border:none;border-radius:var(--radius);background:var(--color-primary);color:#fff;cursor:pointer;text-decoration:none;line-height:1.2}button:hover,.button-like:hover{background:var(--color-primary-dark)}button:disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.button-like.disabled{background:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.lade-spinner{display:inline-flex;align-items:center;gap:.5rem}.lade-spinner-ring{width:1rem;height:1rem;border-radius:50%;border:2px solid rgba(0,0,0,.15);border-top-color:var(--color-text-muted);animation:lade-spinner-drehen .7s linear infinite}@media(prefers-reduced-motion:reduce){.lade-spinner-ring{animation:none}}@keyframes lade-spinner-drehen{to{transform:rotate(360deg)}}button.danger,.button-like.danger{background:var(--color-danger)}button.danger:hover,.button-like.danger:hover{background:var(--color-danger-dark)}button.success,.button-like.success{background:var(--color-success)}button.success:hover,.button-like.success:hover{background:var(--color-success-dark)}.button-like input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.button-like.file-picker{position:relative;margin-bottom:0}.toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:.85rem 1rem;margin-bottom:1.25rem}.toolbar .spacer{flex:1}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1rem}.page-title-row h1{margin:0}.toggle-switch{display:inline-flex;align-items:center;gap:.5rem;position:relative;font-size:.9rem;font-weight:600;color:var(--color-navy);cursor:pointer}.toggle-switch input[type=checkbox]{position:absolute;inset:0 auto 0 0;z-index:1;width:2.4rem;height:1.35rem;margin:0;opacity:0;cursor:pointer}.toggle-track{width:2.4rem;height:1.35rem;border-radius:999px;background:var(--color-border);position:relative;flex-shrink:0;transition:background .15s}.toggle-switch input:checked+.toggle-track{background:var(--color-primary)}.toggle-thumb{position:absolute;top:2px;left:2px;width:1.05rem;height:1.05rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .15s}.toggle-switch input:checked+.toggle-track .toggle-thumb{left:calc(100% - 1.05rem - 2px)}.toggle-switch input:focus-visible+.toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.actions-menu{position:relative;display:inline-flex}.actions-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 6px 18px #04264940;padding:.5rem;display:flex;flex-direction:column;gap:.35rem;min-width:14rem}.actions-menu-panel .button-like,.actions-menu-panel button{width:100%;justify-content:flex-start}.actions-menu-divider{height:1px;background:var(--color-border);margin:.2rem 0}.row-actions{display:flex;gap:.5rem}.col-aktionen{min-width:7rem}.beisitzer-auswahl{display:flex;flex-direction:column;gap:.25rem;min-width:12rem}.beisitzer-option{display:flex;align-items:center;gap:.4rem;font-weight:400;font-size:.85rem;margin-bottom:0;white-space:nowrap}.beisitzer-auswahl input[type=text]{font-size:.85rem;padding:.3rem .5rem}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .4rem .15rem .6rem;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border);font-size:.8rem}.chip-remove{background:none;padding:.1rem;color:var(--color-text-muted)}.chip-remove:hover{background:none;color:var(--color-danger)}.chip-icon-toggle{display:inline-flex;background:none;padding:.1rem;border:none;color:var(--color-text-muted)}.chip-icon-toggle:hover{background:none;color:var(--color-navy)}.chip-icon-toggle.active{color:var(--color-success)}.einschaetzende-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.einschaetzende-eintrag{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem}.einschaetzende-eintrag svg{color:var(--color-text-muted);flex-shrink:0}.einschaetzende-eintrag.is-bestaetigt svg{color:var(--color-success)}.einschaetzende-leer{color:var(--color-text-muted);font-size:.85rem}.einschaetzende-eintrag.self label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-weight:600;margin:0}.einschaetzende-eintrag.self input[type=checkbox]{margin:0}.self-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-primary-dark)}tbody tr.row-soon{background:var(--color-soon-bg);box-shadow:inset 3px 0 0 var(--color-soon-border)}tbody tr.row-danger{background:var(--color-danger-bg);box-shadow:inset 3px 0 0 var(--color-danger)}input,select{font-family:inherit;font-size:.95rem;padding:.45rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='4 6 8 10 12 6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center}input:focus,select:focus{outline:2px solid var(--color-primary);outline-offset:1px}form label{display:block;font-weight:600;color:var(--color-text-muted);margin-bottom:.25rem}form{display:flex;flex-direction:column;gap:1rem}form button[type=submit]{align-self:flex-start}.table-scroll{overflow:auto;flex:1;min-height:14rem;border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.table-fit{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}table{width:100%;border-collapse:collapse;background:var(--color-surface)}.table-scroll table{margin-bottom:0}th,td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid var(--color-border);font-size:.9rem}th{background:var(--color-navy);color:#fff;font-weight:600;white-space:nowrap}.table-scroll thead th{position:sticky;top:0;z-index:1}tbody tr:hover{background:#f0fafa}[role=status],[role=alert]{padding:.75rem 1rem;border-radius:var(--radius);background:#eafcfd;border-left:4px solid var(--color-primary);color:var(--color-navy)}[role=alert]{background:#fdeceb;border-left-color:var(--color-danger);color:var(--color-danger-dark)}.toast-container{position:fixed;right:1.5rem;bottom:1.5rem;display:flex;flex-direction:column;gap:.5rem;max-width:min(420px,calc(100vw - 2rem));z-index:200}.toast{display:flex;align-items:flex-start;gap:.75rem;box-shadow:0 4px 16px #0426492e}.toast span{flex:1}.toast-action{flex-shrink:0;white-space:nowrap;background:var(--color-primary);color:#fff;padding:.35rem .75rem}.toast-action:hover{background:var(--color-primary-dark)}.toast-close{background:none;padding:0;color:inherit;flex-shrink:0}.toast-close:hover{background:none;opacity:.7}.modal-backdrop{position:fixed;inset:0;background:#04264973;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.modal-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 24px #04264940;padding:1.5rem;max-width:640px;max-height:80vh;overflow-y:auto;width:100%}.modal-panel.wide{max-width:min(1400px,95vw)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.modal-header h2{margin:0}.modal-close{background:none;padding:.25rem;color:var(--color-text-muted);flex-shrink:0}.modal-close:hover{background:none;color:var(--color-text)}.modal-body{display:flex;flex-direction:column;gap:1.5rem}dl{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem;display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.5rem}dt{font-weight:600;color:var(--color-text-muted)}dd{margin:0}.mein-jeg-angaben{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem;margin-top:1.5rem}.mein-jeg-angaben h2{margin:0 0 1rem;font-size:1.1rem}.mein-jeg-feldgruppe{display:flex;flex-direction:column;gap:1rem}.mein-jeg-feldgruppe+.mein-jeg-feldgruppe{margin-top:1.25rem;padding-top:1.25rem;border-top:1px dashed var(--color-border)}.mein-jeg-feldgruppe h3{margin:0;font-size:.95rem}.required-marker{color:var(--color-danger);margin-left:.2rem}.sortable-header{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;padding:0;color:inherit;font:inherit;font-weight:600;cursor:pointer}.sortable-header:hover{background:none;color:inherit;text-decoration:underline}.sortable-header svg{opacity:.35}.sortable-header.active svg{opacity:1}.sortable-header.desc svg{transform:rotate(180deg)}.filter-icon-btn{display:inline-flex;background:none;border:none;padding:.15rem;margin-left:.25rem;color:#ffffffa6;cursor:pointer;border-radius:4px}.filter-icon-btn:hover{background:#ffffff1f;color:#fff}.filter-icon-btn.active{color:var(--color-primary)}.th-popover-wrap{position:relative;display:inline-flex}.th-popover{position:fixed;z-index:20;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 6px 18px #04264940;padding:.75rem;width:16rem;font-weight:400;white-space:normal}.th-popover label{display:block;font-size:.72rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;margin-bottom:.3rem}.th-popover input,.th-popover select{width:100%;margin-bottom:.6rem}.th-popover .th-popover-checkfield{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.6rem}.th-popover .th-popover-checkfield input[type=checkbox]{flex:0 0 auto;width:1.05rem;height:1.05rem;margin:.1rem 0 0}.th-popover .th-popover-checkfield label{flex:1;display:inline;text-transform:none;font-weight:500;margin:0}.th-popover-radiogroup{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.3rem}.th-popover .th-popover-radiofield{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;text-transform:none;margin:0}.th-popover-radiofield input[type=radio]{flex:0 0 auto;width:1.05rem;height:1.05rem;margin:0}.th-popover-actions{display:flex;justify-content:space-between;margin-top:.3rem}.th-popover-actions button{font-size:.8rem;font-weight:600;border:none;background:none;padding:.2rem .3rem}.th-popover-actions .clear{color:var(--color-text-muted)}.th-popover-actions .apply{color:var(--color-primary-dark)}.active-filters-row{display:flex;align-items:center;gap:.5rem;padding:.6rem 0;flex-wrap:wrap}.active-filter-chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;background:var(--color-surface);border:1px solid var(--color-primary);color:var(--color-primary-dark);padding:.2rem .3rem .2rem .6rem;border-radius:999px;font-weight:600}.active-filter-chip button{background:none;border:none;padding:.1rem;color:inherit;display:inline-flex}.filter-reset-all{background:none;border:none;padding:.2rem .3rem;color:var(--color-text-muted);font-size:.8rem;font-weight:600;text-decoration:underline}.filter-reset-all:hover{background:none;color:var(--color-navy)}.row-count{margin-left:auto;font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.cell-value-row{display:inline-flex;align-items:center;gap:.4rem}.quick-filter-btn{background:none;border:none;padding:.1rem;color:var(--color-text-muted);opacity:0;transition:opacity .12s;display:inline-flex}tbody tr:hover .quick-filter-btn{opacity:1}.quick-filter-btn:hover{background:none;color:var(--color-primary-dark)}.rollen-toggle{display:inline-flex;gap:.4rem}.rollen-toggle-btn{display:inline-flex;background:none;border:1px solid var(--color-border);padding:.3rem;border-radius:var(--radius);color:var(--color-text-muted)}.rollen-toggle-btn:hover{background:var(--color-bg);color:var(--color-navy)}.rollen-toggle-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.rollen-toggle-btn.active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.rollen-toggle-btn:disabled{opacity:.6;cursor:default}.termin-auswahl{display:flex;flex-direction:column;gap:.25rem;min-width:9rem}.termin-auswahl input{font-size:.85rem;padding:.3rem .5rem}.termin-zeile{display:flex;align-items:center;gap:.3rem}.hinzufuegen-form{display:flex;align-items:center;gap:.5rem}.hinzufuegen-form input{width:16rem}.administration-statistik{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.administration-statistik label{font-weight:600;font-size:.9rem}.administration-statistik input[type=number]{width:5rem}.administration-statistik-werte{display:flex;gap:1.5rem;flex-wrap:wrap}.administration-statistik-wert{display:flex;align-items:baseline;gap:.4rem;font-size:.9rem;color:var(--color-text-muted)}.administration-statistik-wert strong{font-size:1.4rem;color:var(--color-navy)}.aenderungshistorie-controls{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.mode-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:999px;overflow:hidden;font-size:.85rem}.mode-toggle button{border:none;background:none;padding:.4rem .9rem;cursor:pointer;color:var(--color-text-muted);font-family:inherit;font-weight:600;border-radius:0}.mode-toggle button.active{background:var(--color-primary);color:#04262f}.weiterer-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.zeitraum-felder{display:flex;align-items:center;gap:.75rem;font-size:.85rem;font-weight:600}.zeitraum-felder input[type=date]{margin-left:.3rem}.filter-button{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.filter-button .badge{background:var(--color-primary);color:#04262f;border-radius:999px;font-size:.7rem;font-weight:700;padding:.05rem .4rem}.th-popover.aenderungshistorie-filter-panel{position:absolute;top:calc(100% + .5rem);right:0;left:auto;width:22rem}.aenderungshistorie-filter-gruppe{margin-bottom:.6rem}.aenderungshistorie-filter-gruppe-titel{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);margin-bottom:.3rem}.aenderungshistorie-tag-header{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);background:var(--color-bg)}@media(max-width:600px){dl{grid-template-columns:1fr}main{padding:1rem .75rem 2rem}}
