:root{--color-surface:oklch(98.5% 0.004 90);--color-surface-raised:oklch(100% 0 0);--color-border:oklch(90% 0.006 90);--color-text:oklch(24% 0.02 60);--color-text-muted:oklch(52% 0.02 60);--color-accent:oklch(58% 0.13 55);--color-accent-strong:oklch(48% 0.14 50);--color-danger:oklch(52% 0.19 25);--color-success:oklch(52% 0.13 150);--color-warning:oklch(58% 0.11 75);--font-sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--text-sm:0.875rem;--text-base:clamp(1rem,0.95rem + 0.2vw,1.0625rem);--text-lg:clamp(1.125rem,1rem + 0.5vw,1.375rem);--text-xl:clamp(1.5rem,1.2rem + 1.2vw,2.25rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-section:clamp(1.5rem,1rem + 2vw,3rem);--radius:0.625rem;--shadow-card:0 1px 2px oklch(24% 0.02 60/0.06),0 8px 24px oklch(24% 0.02 60/0.05);--duration-fast:150ms;--ease-out-expo:cubic-bezier(0.16,1,0.3,1)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--color-accent-strong);text-decoration:none}a:hover{text-decoration:underline}.app-header{background:var(--color-surface-raised);border-bottom:1px solid var(--color-border)}.app-header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) var(--space-section);max-width:72rem;margin:0 auto}.app-header .brand{display:inline-flex;align-items:center;gap:var(--space-3);font-weight:700;letter-spacing:-.01em;color:inherit}.app-header .brand:hover{text-decoration:none;color:var(--color-accent-strong)}.brand-logo{width:40px;height:40px;border-radius:var(--radius);object-fit:cover}.app-header nav{display:flex;gap:var(--space-4)}.app-header nav a{color:var(--color-text-muted);font-weight:500;transition:color var(--duration-fast) var(--ease-out-expo)}.app-header nav a:hover{color:var(--color-text);text-decoration:none}.app-header nav a[aria-current=page]{color:var(--color-accent-strong);font-weight:700}.app-main{padding:var(--space-section);max-width:72rem;margin:0 auto}.seiten-kopf{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.seiten-kopf .page-title{margin:0}.zurueck-link{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-left:-.75rem;flex-shrink:0;border-radius:var(--radius);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out-expo),background var(--duration-fast) var(--ease-out-expo)}.zurueck-link:hover{color:var(--color-text);background:var(--color-border);text-decoration:none}.page-title{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;margin:0 0 var(--space-2)}.page-subtitle{color:var(--color-text-muted);margin:0 0 var(--space-6)}.stat-card{display:inline-flex;flex-direction:column;gap:var(--space-1);padding:var(--space-6) var(--space-8);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.tabelle-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.data-table td,.data-table th{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.data-table th{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:600;background:var(--color-surface)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--duration-fast) var(--ease-out-expo)}.data-table tbody tr:hover{background:var(--color-surface)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:var(--space-6)}.login-card{width:min(24rem,100%);gap:var(--space-4);padding:var(--space-8);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.field,.login-card{display:flex;flex-direction:column}.field{gap:var(--space-2)}.field label{font-size:var(--text-sm);font-weight:600}.field input{padding:var(--space-3);font-size:var(--text-base);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.field input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.btn-primary{padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-weight:600;color:oklch(100% 0 0);background:var(--color-accent);border:none;border-radius:var(--radius);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo)}.btn-primary:hover{background:var(--color-accent-strong)}.cell-input{width:100%;max-width:14rem;padding:var(--space-2) var(--space-3);font-size:var(--text-base);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.cell-input--narrow{max-width:5rem}.cell-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.error-state,.form-error{color:var(--color-danger);font-size:var(--text-sm)}.empty-state{color:var(--color-text-muted);padding:var(--space-8);text-align:center}.bulk-bar{position:-webkit-sticky;position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;margin-bottom:var(--space-4);background:var(--color-surface)}.bulk-selectall{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.bulk-summary{margin:0 0 var(--space-4);font-weight:600}.col-check{width:1px}.col-aktion,.col-check{white-space:nowrap}.status-cell{font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-out-expo)}.status-success{color:var(--color-success)}.status-error{color:var(--color-danger)}.bilanz,.status-pending,.status-running{color:var(--color-text-muted)}.bilanz{margin:0 0 var(--space-3)}.bereitschaft,.bilanz{font-size:var(--text-sm)}.bereitschaft{display:inline-flex;flex-direction:column;gap:.125rem;min-width:10rem}.bereitschaft-grund{font-size:.75rem;color:var(--color-text-muted);font-weight:400}.bereitschaft-bereit{color:var(--color-success)}.bereitschaft-unvollstaendig{color:var(--color-warning)}.bereitschaft-blockiert{color:var(--color-danger)}.status-liste{display:grid;grid-gap:var(--space-4);gap:var(--space-4);max-width:48rem;padding:0;margin:0;list-style:none}.status-karte{min-width:0;padding:var(--space-4) var(--space-6);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.status-karte-kopf{display:flex;align-items:center;gap:var(--space-2)}.status-karte-punkt{width:.6rem;height:.6rem;border-radius:50%;background:currentColor;flex-shrink:0}.status-karte-label{margin-left:auto;font-size:var(--text-sm);font-weight:600}.status-karte-text{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.status-karte--bereit{color:var(--color-success)}.status-karte--offen{color:var(--color-text-muted)}.status-karte--fehler{color:var(--color-danger)}.status-karte-setup{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text)}.status-karte-setup h3{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:600}.status-karte-setup ol{margin:0 0 var(--space-4);padding-left:1.25rem;font-size:var(--text-sm);color:var(--color-text-muted)}.status-karte-setup li{margin-bottom:var(--space-2)}.copyable-code{position:relative}.copyable-code-btn{position:absolute;top:var(--space-2);right:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer}.copyable-code-btn:hover,.copyable-code-pre{background:var(--color-surface)}.copyable-code-pre{margin:0;padding:var(--space-4);max-height:24rem;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-sm);line-height:1.5;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius)}.spinner{display:inline-block;width:.9em;height:.9em;margin-right:var(--space-2);vertical-align:-.1em;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.btn-primary:disabled{cursor:progress;opacity:.75}.btn-primary[aria-busy=true]{background:var(--color-accent-strong)}.lade-hinweis{display:flex;align-items:center;color:var(--color-text-muted);font-size:var(--text-sm)}.skeleton{display:block;border-radius:calc(var(--radius) / 2);background:linear-gradient(90deg,var(--color-border) 25%,var(--color-surface-raised) 50%,var(--color-border) 75%);background-size:200% 100%;animation:shimmer 1.4s var(--ease-out-expo) infinite}@keyframes shimmer{to{background-position:-200% 0}}.skeleton-table{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.skeleton-row{display:flex;gap:var(--space-4)}.skeleton-cell{flex:1 1;height:1.25rem}.skeleton-cell:first-child{max-width:6rem}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}.skeleton{animation:none;background:var(--color-border)}}.fortschritt{height:.375rem;margin:0 0 var(--space-4);overflow:hidden;background:var(--color-border);border-radius:999px}.fortschritt-balken{height:100%;background:var(--color-accent);border-radius:inherit;transition:width var(--duration-fast) var(--ease-out-expo)}.vorschau-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,24rem);grid-gap:var(--space-8);gap:var(--space-8);align-items:start}@media (max-width:60rem){.vorschau-grid{grid-template-columns:minmax(0,1fr)}}.kunden-panel{padding:var(--space-6);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.kunden-panel-titel{margin:0 0 var(--space-3);font-size:var(--text-lg)}.kunden-panel-hilfe{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:var(--text-sm)}.kunden-panel .field{margin-bottom:var(--space-3)}.kunden-panel .field input{width:100%}.kunden-badge{display:inline-block;margin:0 0 var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);font-weight:600;border-radius:999px}.kunden-badge--vorhanden{color:var(--color-success);background:oklch(52% .13 150/.12)}.kunden-badge--neu{color:var(--color-accent-strong);background:oklch(58% .13 55/.12)}.kunden-luecke{margin:0 0 var(--space-4);padding:var(--space-3);background:oklch(58% .13 55/.08);border-radius:var(--radius);font-size:var(--text-sm)}.field-fehlt,.kunden-luecke{color:var(--color-accent-strong)}.field-fehlt{font-weight:600}.input-fehlt{border-color:var(--color-accent)!important}.vorschau-aktionen{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-8)}@media (max-width:40rem){.app-header-inner{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4)}.app-header nav{gap:var(--space-6)}.app-main{padding:var(--space-6) var(--space-4)}.page-subtitle{margin-bottom:var(--space-4)}.bulk-bar,.vorschau-aktionen{flex-direction:column;align-items:stretch;gap:var(--space-3)}.bulk-bar .btn-primary,.vorschau-aktionen .btn-primary{width:100%}.vorschau-aktionen a{padding:var(--space-2);text-align:center}.stat-card{display:block;width:100%}.kunden-panel,.stat-card{padding:var(--space-4)}.login-card{padding:var(--space-6)}.status-karte-setup ol{padding-left:1.1rem}.copyable-code-btn{position:static;display:block;width:100%;margin-bottom:var(--space-2)}.copyable-code-pre{max-height:16rem;padding:var(--space-3);font-size:.75rem;-webkit-overflow-scrolling:touch}}@media (max-width:48rem){.data-table{border:none;background:none;overflow:visible}.data-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.data-table tbody,.data-table td,.data-table tr{display:block;width:100%}.data-table tr{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.data-table tbody tr:hover,.data-table tr{background:var(--color-surface-raised)}.data-table td{display:grid;grid-template-columns:7.5rem minmax(0,1fr);grid-gap:var(--space-3);gap:var(--space-3);align-items:baseline;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);overflow-wrap:anywhere}.data-table td:before{content:attr(data-label);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600}.data-table tr td:last-child{border-bottom:none}.data-table td.col-check{width:100%}.data-table td.col-aktion{grid-template-columns:minmax(0,1fr);padding-top:var(--space-3)}.data-table td.col-aktion:before{content:none}.data-table td.col-aktion a{display:block;padding:var(--space-2);text-align:center;font-weight:600;border:1px solid var(--color-border);border-radius:var(--radius)}.data-table td[data-label="#"]{display:none}.bulk-selectall input[type=checkbox],.data-table input[type=checkbox]{width:1.15rem;height:1.15rem}}