:root{--color-bg:#f4f6f9;--color-white:#ffffff;--color-primary:#008000;--color-primary-light:#00a000;--color-accent:#e8b84b;--color-danger:#c0392b;--color-success:#27ae60;--color-warning:#f39c12;--color-gray:#6b7280;--color-gray-light:#e5e7eb;--color-text:#1f2937;--color-text-light:#6b7280;--color-border:#d1d5db;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.06);--shadow-md:0 4px 6px rgba(0,0,0,0.07),0 2px 4px rgba(0,0,0,0.06)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5}a{color:var(--color-primary-light);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--color-primary);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.2)}.app-header-inhalt{max-width:1200px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between}.header-logo-bereich{display:flex;align-items:center;gap:12px;text-decoration:none}.header-logo{height:38px;width:auto}.header-titel{color:#fff;font-size:17px;font-weight:600;letter-spacing:.01em}.header-user{display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.85);font-size:13px}.header-user-name{font-weight:500}.btn-header-logout{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;padding:5px 12px;border-radius:var(--radius);cursor:pointer;font-size:13px;transition:background .15s}.btn-header-logout:hover{background:rgba(255,255,255,.22)}.app-body{max-width:1200px;margin:0 auto;padding:32px 24px;width:100%;flex:1 1}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-light)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#a93226}.btn-ghost{background:transparent;color:var(--color-primary);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-gray-light)}.btn-sm{padding:5px 10px;font-size:13px}.panel{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px;margin-bottom:24px}.panel-titel{font-size:16px;font-weight:600;color:var(--color-text);margin-bottom:16px}.panel-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stat-karten-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}.stat-karte{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px 24px;display:flex;flex-direction:column;gap:4px}.stat-karte-wert{font-size:28px;font-weight:700;color:var(--color-primary);line-height:1.1}.stat-karte-label{font-size:12px;color:var(--color-text-light);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.saison-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:20px;gap:20px}.saison-karte{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;gap:16px;border-top:4px solid var(--color-primary);transition:box-shadow .15s}.saison-karte:hover{box-shadow:var(--shadow-md)}.saison-karte-kopf{display:flex;flex-direction:column;gap:6px}.saison-karte-jahr{font-size:40px;font-weight:800;color:var(--color-primary);line-height:1;letter-spacing:-.02em}.saison-karte-produktionen{font-size:13px;color:var(--color-text-light);line-height:1.4}.saison-karte-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.saison-karte-stat{display:flex;flex-direction:column;gap:2px}.saison-karte-stat-wert{font-size:20px;font-weight:700;color:var(--color-text)}.saison-karte-stat-label{font-size:11px;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.04em}.saison-karte-link{margin-top:auto}.produktions-liste{display:flex;flex-direction:column;gap:12px}.produktions-karte{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px 24px;display:flex;align-items:center;gap:20px;transition:box-shadow .15s}.produktions-karte:hover{box-shadow:var(--shadow-md)}.produktions-karte-info{flex:1 1}.produktions-karte-name{font-size:16px;font-weight:600;color:var(--color-primary);margin-bottom:6px}.produktions-karte-meta{display:flex;gap:20px;flex-wrap:wrap}.produktions-karte-meta-item{display:flex;flex-direction:column;gap:1px}.produktions-karte-meta-wert{font-size:15px;font-weight:600;color:var(--color-text)}.produktions-karte-meta-label{font-size:11px;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.04em}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-light);margin-bottom:20px}.breadcrumb a{color:var(--color-primary-light)}.breadcrumb-sep{color:var(--color-border)}.import-box{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:24px;background:var(--color-bg)}.import-box-titel{font-size:15px;font-weight:600;color:var(--color-primary);margin-bottom:12px}.import-box-meta{font-size:12px;color:var(--color-text-light);margin-bottom:12px}.import-zeile{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.import-datei-input{flex:1 1;min-width:200px;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:13px;background:var(--color-white);color:var(--color-text)}.tabelle-container{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--color-border)}.tabelle{width:100%;border-collapse:collapse;font-size:13px}.tabelle th{background:var(--color-primary);color:#fff;padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;position:-webkit-sticky;position:sticky;top:0}.tabelle td{padding:9px 12px;border-bottom:1px solid var(--color-gray-light);vertical-align:middle;white-space:nowrap}.tabelle tr:last-child td{border-bottom:none}.tabelle tr:nth-child(2n) td{background:#fafbfc}.tabelle tr:hover td{background:#f0f4f8}.tabelle td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.error-msg{background:#fef2f2;border:1px solid #fca5a5;color:var(--color-danger);border-radius:var(--radius)}.error-msg,.success-msg{padding:12px 16px;font-size:14px;margin-bottom:16px}.success-msg{background:#f0fdf4;border:1px solid #86efac;color:#15803d;border-radius:var(--radius)}.info-msg{background:#eff6ff;border:1px solid #93c5fd;color:#1d4ed8;border-radius:var(--radius);padding:12px 16px;font-size:14px;margin-bottom:16px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}.spinner-dark{border-color:rgba(0,128,0,.2);border-top-color:var(--color-primary)}@keyframes spin{to{transform:rotate(1turn)}}.ladebereich{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:var(--color-text-light)}.form-stack{gap:16px}.form-group,.form-stack{display:flex;flex-direction:column}.form-group{gap:5px}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1 1}label{font-size:13px;font-weight:500;color:var(--color-text)}input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;color:var(--color-text);background:var(--color-white);width:100%;transition:border-color .15s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px rgba(0,128,0,.1)}.seiten-kopf{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap}.seiten-titel{font-size:24px;font-weight:700;color:var(--color-primary);line-height:1.2}.seiten-untertitel{font-size:14px;color:var(--color-text-light);margin-top:4px}.diagramm-container{width:100%;overflow:hidden}.diagramm-grid{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.2);padding:28px;width:100%;max-width:460px;max-height:90vh;overflow-y:auto}.modal-titel{font-size:18px;font-weight:700;color:var(--color-primary);margin-bottom:20px}.modal-aktionen{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.login-seite{min-height:100vh;background:var(--color-primary);display:flex;align-items:center;justify-content:center;padding:24px}.login-box{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.25);padding:40px;width:100%;max-width:380px}.login-logo-bereich{text-align:center;margin-bottom:28px}.login-logo{height:52px;width:auto}.login-titel{font-size:20px;font-weight:700;color:var(--color-primary);margin-top:16px}.login-untertitel{font-size:13px;color:var(--color-text-light);margin-top:4px}.belegung-gut{color:var(--color-success);font-weight:600}.belegung-mittel{color:var(--color-warning);font-weight:600}.belegung-schlecht{color:var(--color-danger);font-weight:600}@media (max-width:900px){.stat-karten-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.app-header-inhalt{padding:0 16px}.app-body{padding:20px 16px}.stat-karten-grid{grid-template-columns:1fr 1fr;gap:12px}.produktions-karte,.seiten-kopf{flex-direction:column}.produktions-karte{align-items:flex-start}.header-titel{display:none}}.import-schritte{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid var(--color-gray-light);padding-bottom:16px}.import-schritt{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-light);flex:1 1}.import-schritt.aktiv{color:var(--color-primary);font-weight:600}.import-schritt.erledigt{color:var(--color-success)}.import-schritt-nr{width:22px;height:22px;border-radius:50%;background:var(--color-gray-light);color:var(--color-text-light);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.import-schritt.aktiv .import-schritt-nr{background:var(--color-primary);color:#fff}.import-schritt.erledigt .import-schritt-nr{background:var(--color-success);color:#fff}.import-gruppen-liste{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;margin-bottom:8px}.import-gruppe{background:var(--color-bg);border:1px solid var(--color-gray-light);border-radius:var(--radius);padding:10px 14px}.import-gruppe-zeile{display:flex;align-items:center;gap:10px}.import-gruppe-name{flex:1 1;font-size:14px;font-weight:500;color:var(--color-text)}.import-gruppe-anzahl{font-size:12px;color:var(--color-text-light);white-space:nowrap}.import-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:100px;flex-shrink:0}.import-badge-ok{background:#dcfce7;color:#15803d}.import-badge-neu{background:#fef9c3;color:#854d0e}.import-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-light);cursor:pointer;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-gray-light)}.import-checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}.import-badge-name{background:#dbeafe;color:#1d4ed8}.sv-liste{display:flex;flex-direction:column;gap:6px;max-height:380px;overflow-y:auto;margin-bottom:8px}.sv-zeile{background:var(--color-bg);border:1px solid var(--color-gray-light);border-radius:var(--radius);padding:10px 12px;transition:opacity .2s}.sv-zeile-skip{opacity:.45}.sv-zeile-kopf{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sv-zeile-datum{flex:1 1;font-size:13px;min-width:140px}.sv-zeile-stats{display:flex;gap:10px;font-size:12px;color:var(--color-text);white-space:nowrap}.sv-zeile-zuordnung{margin-top:8px;display:flex;align-items:center;gap:8px}.sv-prod-label{font-size:13px;color:var(--color-primary);font-weight:500}.sv-select{flex:1 1;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-white);font-size:13px;color:var(--color-text);cursor:pointer}.sv-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(0,128,0,.1)}.sv-skip-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--color-text-light);cursor:pointer;margin-top:6px}.sv-skip-label input[type=checkbox]{width:13px;height:13px;accent-color:var(--color-gray);cursor:pointer}