:root{--paper: oklch(100% 0 0);--paper-sunken: oklch(98% 0 0);--paper-deep: oklch(95% 0 0);--ink: oklch(21% .006 285.885);--muted: oklch(55% .01 285.9);--line: oklch(95% 0 0);--accent: oklch(45% .24 277.023);--accent-ink: oklch(32% .2 277.023);--accent-soft: oklch(93% .034 272.788);--danger: oklch(27% .105 12.094);--danger-soft: oklch(95% .035 12.094);--warn: oklch(41% .112 45.904);--warn-soft: oklch(95% .035 45.904);--success: oklch(37% .077 168.94);--success-soft: oklch(95% .035 163.223);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 14px rgba(0, 0, 0, .08);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-display: system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*{box-sizing:border-box}html{font-size:14px}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--paper-sunken);-webkit-font-smoothing:antialiased}.app-shell{display:flex;align-items:stretch;min-height:100vh}.app-sidebar{flex:0 0 240px;display:flex;flex-direction:column;gap:28px;padding:32px 20px;background:var(--paper);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow-y:auto}.app-sidebar h1{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.01em;margin:0;padding:0 14px;color:var(--ink)}.app-sidebar nav{display:flex;flex-direction:column;gap:2px}.app-sidebar nav a{padding:9px 14px;border-radius:var(--radius-sm);text-decoration:none;color:var(--muted);font-size:.88rem;font-weight:600;transition:background-color .12s ease,color .12s ease}.app-sidebar nav a:hover{background:var(--paper-sunken);color:var(--ink)}.app-sidebar nav a.active{background:var(--accent-soft);color:var(--accent-ink)}.app-sidebar nav>a{margin-bottom:10px}.nav-group{display:flex;flex-direction:column}.nav-group-header{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;background:transparent;border:none;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:500;padding:10px 14px 5px;cursor:pointer}.nav-group-header:hover{filter:none;color:var(--ink)}.nav-group-chevron{transition:transform .15s ease;font-family:var(--font-body)}.nav-group-header[aria-expanded=true] .nav-group-chevron{transform:rotate(90deg)}.nav-group-items{display:grid;grid-template-rows:0fr;transition:grid-template-rows .16s ease}.nav-group-items--offen{grid-template-rows:1fr}.nav-group-items-inner{display:flex;flex-direction:column;gap:2px;overflow:hidden}.nav-group-items-inner a{padding-left:24px}.app-content{flex:1;min-width:0;padding:32px 40px 72px}.app-mobile-header,.sidebar-backdrop{display:none}@media (max-width: 820px){.app-shell{flex-direction:column}.app-mobile-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.app-mobile-header h1{font-family:var(--font-display);font-weight:700;font-size:1.1rem;margin:0}.menu-toggle{background:transparent;color:var(--ink);border:1px solid var(--line);padding:8px 12px}.app-sidebar{display:none;position:fixed;top:0;right:25vw;bottom:0;left:0;max-width:300px;height:100vh;z-index:40;box-shadow:var(--shadow-md)}.app-sidebar--offen{display:flex}.app-sidebar h1{display:none}.app-sidebar nav{flex-direction:column}.app-sidebar nav a{padding:12px 14px;font-size:.95rem}.sidebar-backdrop--offen{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#14141666;z-index:35}.app-content{padding:20px 16px 48px}.app-main{padding:20px 18px 28px}}@media (max-width: 720px){table{border:none}table thead{display:none}table,table tbody,table tr,table td{display:block;width:100%}table tr{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:10px;padding:2px 14px}table td{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);text-align:right}table tr td:last-child{border-bottom:none}table td:before{content:attr(data-label);flex:0 0 auto;text-align:left;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:500}table td:not([data-label]){justify-content:flex-end}td.num,th~th.num{text-align:right}}.session-panel{display:flex;gap:22px;flex-wrap:wrap;align-items:flex-end;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 22px;margin-bottom:24px;box-shadow:var(--shadow-sm)}.session-field{display:flex;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;color:var(--muted)}.session-field input,.session-field select{font-weight:400;color:var(--ink)}.session-user{display:flex;align-items:center;gap:14px;margin-left:auto}.hint{font-weight:400;color:var(--muted);font-size:.8rem}.app-main{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 32px 36px;box-shadow:var(--shadow-sm)}h2{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.01em;margin:0 0 6px;text-wrap:balance}h3{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin:30px 0 12px}.subtitle{color:var(--muted);font-weight:400;font-family:var(--font-body);font-size:.9em}.hinweis{color:var(--muted);font-size:.92rem;max-width:66ch}input,select,button{font-family:inherit;font-size:.9rem;line-height:1.3;padding:8px 11px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink)}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%236b6b6b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.betrag-eingabe select{padding-right:28px;background-position:right 10px center}label{display:flex;flex-direction:column;gap:5px;font-size:.85rem;font-weight:600;color:var(--ink)}label.grow{flex:1 1 220px}.form-row label{min-width:150px}.checkbox-label{flex-direction:row;align-items:center;gap:8px;min-width:auto}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.card-form{background:var(--paper-sunken);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px 20px;margin:16px 0 26px}.form-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px}.stacked-inputs{display:flex;flex-direction:column;gap:4px}.filter-row{display:flex;gap:14px;margin-bottom:18px}button{cursor:pointer;background:var(--accent);color:#fff;border:1px solid transparent;font-weight:600;transition:filter .12s ease,transform .05s ease}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:default;transform:none}button.secondary{background:var(--paper);color:var(--ink);border:1px solid var(--line);font-weight:500}button.secondary:hover{filter:none;background:var(--paper-sunken)}button.link-button{background:none;color:var(--accent-ink);border:none;padding:0;font-weight:600;text-decoration:underline;text-underline-offset:2px}button.link-button:hover{filter:none;color:var(--danger)}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.select-with-add{display:flex;gap:6px;align-items:center}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:500}td.num,th~th.num{text-align:right}td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}tbody tr:hover td{background:var(--paper-sunken)}.num-negativ{color:var(--danger)}.num-positiv{color:var(--ink)}.row-storno{color:var(--muted)}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.02em;background:var(--paper-sunken);border:1px solid var(--line);color:var(--muted)}.badge--manuell,.badge--admin{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.badge--aktiv{background:var(--success-soft);color:var(--success);border-color:transparent}.badge--pausiert,.badge--schluessel_gesendet{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge--fehler{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge--erfolg{background:var(--success-soft);color:var(--success);border-color:transparent}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#201e1973;display:flex;align-items:center;justify-content:center;z-index:100}.dialog-panel{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:520px;width:90%;max-height:85vh;overflow-y:auto;padding:24px}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dialog-header h3{margin:0}.checklist{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.checklist label{display:flex;align-items:center;gap:8px;font-weight:400}.kv-list{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 16px}.kv-list dt{color:var(--muted);font-size:.85rem}.kv-list dd{margin:0}.fingerprint-block{font-family:var(--font-mono);font-size:.82rem;background:var(--paper-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;white-space:pre-wrap;word-break:break-all}.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.chip{background:var(--paper-sunken);border:1px solid var(--line);color:var(--ink);font-weight:500;border-radius:999px;padding:7px 15px;transition:background-color .12s ease}.chip:hover{filter:none;background:var(--line)}.chip--active{background:var(--accent);color:#fff;border-color:var(--accent)}.chip--active:hover{filter:brightness(1.08)}.error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:9px 12px;font-size:.85rem;margin-top:8px}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--paper-sunken)}.auth-card{width:100%;max-width:380px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:36px 30px;box-shadow:var(--shadow-md)}.auth-card h1{font-family:var(--font-display);font-weight:700;font-size:1.4rem;margin:0 0 22px;text-align:center;letter-spacing:-.01em}.auth-card form{display:flex;flex-direction:column;gap:15px}.auth-card form button[type=submit]{margin-top:6px}.stat-row{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0 28px}.stat-tile{display:flex;flex-direction:column;gap:5px;padding:15px 20px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper-sunken);min-width:190px}.stat-tile strong{font-family:var(--font-mono);font-size:1.15rem;font-variant-numeric:tabular-nums}.stat-tile--warn{background:var(--warn-soft);border-color:transparent}.stat-tile--warn strong{font-family:var(--font-body);color:var(--warn);font-size:.95rem;font-weight:600}.chart-wrap{position:relative;margin-bottom:8px}.chart-wrap svg{width:100%;height:auto;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1}.chart-zero-line{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 4}.chart-axis-label{font-family:var(--font-mono);font-size:10px;fill:var(--muted);font-variant-numeric:tabular-nums}.chart-area{fill:var(--ink);opacity:.07;stroke:none}.chart-line{stroke:var(--ink);stroke-width:2;fill:none;stroke-linecap:round}.chart-line-negativ{stroke:var(--danger);stroke-width:2;fill:none;stroke-linecap:round}.chart-endpoint{fill:var(--ink);stroke:var(--paper);stroke-width:2}.chart-crosshair{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}.chart-hover-dot{fill:var(--paper);stroke:var(--ink);stroke-width:2}.chart-tooltip{position:absolute;transform:translate(-50%,-130%);background:var(--ink);color:var(--paper);padding:7px 11px;border-radius:var(--radius-sm);font-size:.78rem;pointer-events:none;white-space:nowrap;display:flex;flex-direction:column;gap:2px;z-index:1;box-shadow:var(--shadow-md)}.betrag-eingabe{display:flex}.betrag-eingabe select{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;color:var(--muted);font-weight:600;flex:0 0 auto}.betrag-eingabe input{border-top-left-radius:0;border-bottom-left-radius:0;flex:1 1 auto;min-width:0;font-family:var(--font-mono)}.betrag-eingabe select:focus-visible,.betrag-eingabe input:focus-visible{position:relative;z-index:1}.mandant-anzeige{display:flex;align-items:center;gap:10px;font-size:.92rem}.auth-card--breit{max-width:460px}.auth-card--admin{max-width:1040px}.mandant-liste{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.mandant-eintrag{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:var(--paper-sunken);color:var(--ink);border:1px solid var(--line);font-weight:600;padding:12px 16px}.kachel-reihe{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.kachel{display:flex;flex-direction:column;gap:4px;background:var(--paper-sunken);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 20px;min-width:160px}.kachel-label{font-size:.8rem;color:var(--muted);font-weight:600;letter-spacing:.02em}.kachel-wert{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:600}.konzern-mandant-abschnitt{margin-bottom:28px}.mandant-eintrag:hover{filter:none;background:var(--accent-soft);border-color:var(--accent)}.auth-card-vollbreit{width:100%}.auth-card-abmelden{display:block;margin:20px auto 0;text-align:center}.sprache-auswahl-standalone{margin-top:18px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
