:root{--primary: #e0574c;--primary-dark: #c64539;--primary-tint: #fcebe9;--bg: #ffffff;--bg-muted: #f2f3f6;--surface: #ffffff;--text: #1f2328;--muted: #8a909a;--border: #ececef;--border-strong: #e2e3e8;--error: #dc2626;--success: #2e9d6e;--warning: #ea580c;--radius: 12px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .04);--shadow-md: 0 4px 14px rgba(16, 24, 40, .08);--shadow-press: 0 1px 2px rgba(16, 24, 40, .06)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.45;background:#fff;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--primary)}a:hover{color:var(--primary-dark)}.app{display:flex;flex-direction:column;min-height:100vh;max-width:720px;margin:0 auto;background:var(--bg-muted)}@media(min-width:720px){.app{box-shadow:0 0 0 1px var(--border),0 12px 40px #1018281a}}.app-header{background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);color:var(--text);padding:14px 18px 12px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);padding-top:calc(14px + env(safe-area-inset-top,0px))}.app-header h1{font-size:20px;margin:0;font-weight:700;letter-spacing:-.02em;color:var(--text)}.app-header .who{font-size:13px;color:var(--muted);font-weight:500}.app-main{flex:1;padding:18px 16px;padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}.app-tabs{position:fixed;bottom:0;left:0;right:0;background:#ffffffe6;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--border);display:flex;padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));z-index:10}@media(min-width:720px){.app-tabs{left:50%;right:50%;transform:translate(-50%);width:720px}}.app-tab{flex:1;text-align:center;text-decoration:none;color:var(--muted);font-size:11px;font-weight:500;padding:4px 0;transition:color .15s ease}.app-tab.is-active{color:var(--primary);font-weight:600}.app-tab .ic{display:block;font-size:22px;line-height:1.3;transition:transform .15s ease}.app-tab.is-active .ic{transform:translateY(-1px) scale(1.06)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text)}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid var(--border-strong);border-radius:10px;padding:12px 14px;font-size:16px;background:var(--bg);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.form-group input::placeholder,.form-group textarea::placeholder{color:#b6bbc4}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}.form-group .helper{font-size:12px;color:var(--muted);margin-top:4px}.form-group .error{font-size:13px;color:var(--error);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);padding:12px 18px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,box-shadow .15s ease,transform .05s ease}.btn:hover{background:#f7f8fa}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #e0574c47}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-success{background:var(--success);color:#fff;border-color:var(--success);box-shadow:0 2px 8px #2e9d6e42}.btn-success:hover{background:#268a5f;border-color:#268a5f}.btn-danger{background:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover{background:#b91c1c;border-color:#b91c1c}.btn-full{width:100%}.btn-sm{padding:8px 12px;font-size:13px;border-radius:8px}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.card-title{margin:0 0 8px;font-size:13px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.3px}.list-item{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;text-decoration:none;color:var(--text);box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .08s ease}.list-item:hover{box-shadow:var(--shadow-md)}.list-item:active{transform:scale(.99)}.list-item .title{font-weight:600;font-size:15px}.list-item .meta{font-size:13px;color:var(--muted);margin-top:3px}.badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;background:var(--bg-muted);color:var(--muted)}.badge-success{background:#2e9d6e24;color:var(--success)}.badge-warning{background:#ea580c24;color:var(--warning)}.badge-error{background:#dc262624;color:var(--error)}.badge-info{background:var(--primary-tint);color:var(--primary-dark)}.muted{color:var(--muted)}.center{text-align:center}.mt-0{margin-top:0}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.gap{display:flex;gap:8px}.gap-md{display:flex;gap:12px;flex-wrap:wrap}.error-banner{background:#dc262614;border:1px solid rgba(220,38,38,.35);border-radius:var(--radius);padding:12px 14px;color:var(--error);font-size:14px;margin-bottom:14px}.empty-state{text-align:center;padding:48px 20px;color:var(--muted)}.empty-state .ic{font-size:48px;margin-bottom:12px;opacity:.45}.warning-banner{background:#ea580c14;border:1px solid rgba(234,88,12,.3);border-left:4px solid var(--warning);border-radius:var(--radius);padding:12px 14px;color:#7c2d12;font-size:13px;margin-bottom:14px;display:flex;gap:8px;align-items:flex-start}.warning-banner .ic{font-size:18px;line-height:1}.warn-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-pill);background:#ea580c24;color:var(--warning);font-size:11px;font-weight:600;margin-right:4px}.section-header{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:20px 0 8px;display:flex;align-items:center;gap:8px}.section-header .count{background:var(--bg);border:1px solid var(--border);color:var(--muted);padding:1px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.section-header .count.warn{background:#ea580c24;border-color:transparent;color:var(--warning)}.section-header .badge-vert{background:var(--primary-tint);color:var(--primary-dark);font-size:10px;font-weight:600;padding:2px 7px;border-radius:var(--radius-pill)}.wizard-step-header{background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);color:var(--text);margin:-18px -16px 18px;padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--border)}.wizard-step-header h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em}.wizard-step-header .meta{font-size:13px;color:var(--muted);margin-top:4px}.wizard-phase{background:var(--primary-tint);border-left:3px solid var(--primary);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px}.wizard-phase strong{display:block;margin-bottom:2px;color:var(--primary-dark)}.wizard-klient-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.wizard-klient-card .klient-name{font-size:16px;font-weight:600;margin:0 0 4px}.wizard-klient-card .klient-meta{font-size:12px;color:var(--muted);margin-bottom:10px}.wizard-subsection{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border-strong)}.wizard-subsection-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}.vertretung-row{background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:8px;position:relative}.vertretung-row .remove-btn{position:absolute;top:6px;right:6px;background:none;border:none;color:var(--error);cursor:pointer;font-size:16px;padding:2px 6px}.stunden-line{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:6px 0}.stunden-line.ok{color:var(--success);font-weight:600}.stunden-line.warn{color:var(--warning);font-weight:600}.dropdown-conflict-option{color:var(--muted)}.sticky-actions{position:sticky;bottom:calc(84px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,var(--bg-muted) 35%);margin:18px -16px -18px;padding:16px;display:flex;gap:10px}.sticky-actions .btn{flex:1}.spinner{display:inline-block;width:22px;height:22px;border:2.5px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1000px){.app{max-width:none;display:grid;grid-template-columns:232px minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"header header" "tabs   main";background:var(--bg-muted)}.app-header{grid-area:header;padding-left:24px;padding-right:24px}.app-tabs{grid-area:tabs;position:sticky;top:61px;align-self:start;left:auto;right:auto;bottom:auto;transform:none;width:auto;flex-direction:column;gap:2px;padding:16px 12px;border-top:none;border-right:1px solid var(--border);background:#fff;height:calc(100vh - 61px)}.app-tab{flex:0 0 auto;display:flex;align-items:center;gap:10px;text-align:left;padding:10px 12px;border-radius:8px;font-size:14px}.app-tab:hover{background:var(--bg-muted)}.app-tab.is-active{background:var(--primary-soft, rgba(0,0,0,.04))}.app-tab .ic{display:inline-block;margin:0;font-size:17px}.app-tab.is-active .ic{transform:none}.app-main{grid-area:main;padding:24px 28px 40px;max-width:1400px}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;align-items:start}.card,.form-group,.empty-state,.error-banner{max-width:720px}.list-grid .card,.list-grid .list-item,.card.wide{max-width:none}}
