:root{--primary:#2563eb;--primary-dark:#1d4ed8;--secondary:#64748b;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--bg:#f1f5f9;--card:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}header{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:22px;box-shadow:0 3px 12px #0002}.header-inner,main{max-width:1500px;margin:auto}.header-top{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}header h1{margin:0 0 6px;font-size:28px}header p{margin:0;opacity:.85}.session{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pill{padding:5px 9px;border-radius:999px;background:#ffffff22;font-size:12px}.offline{background:#b45309}.online{background:#15803d}main{padding:20px 16px 40px}.card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px #0f172a0a}.card h2{margin:0 0 18px;font-size:20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px}.stat-title{color:var(--muted);font-size:13px;margin-bottom:8px}.stat-value{font-size:26px;font-weight:bold}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.form-group{display:flex;flex-direction:column}.full{grid-column:1/-1}.span-2{grid-column:span 2}label{font-weight:bold;margin-bottom:6px;font-size:14px}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:7px;padding:10px 11px;font-size:14px;background:#fff;color:var(--text)}textarea{resize:vertical;min-height:90px}.duration-display{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:7px;padding:10px;font-weight:bold;min-height:39px}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}button{border:0;border-radius:7px;padding:10px 15px;font-size:14px;font-weight:bold;cursor:pointer}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:#e2e8f0;color:#334155}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-small{padding:6px 9px;font-size:12px}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;align-items:end}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:1100px}th{background:#f8fafc;text-align:left;padding:11px;border-bottom:2px solid var(--border);font-size:13px;white-space:nowrap}td{padding:10px 11px;border-bottom:1px solid var(--border);vertical-align:top;font-size:13px}.status{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:bold}.status-Offen{background:#fef3c7;color:#92400e}.status-Erledigt{background:#dcfce7;color:#166534}.status-Abgerechnet{background:#dbeafe;color:#1e40af}.status-Storniert{background:#fee2e2;color:#991b1b}.sync-pending{color:#b45309}.sync-conflict{color:#b91c1c;font-weight:bold}.actions{display:flex;gap:5px;flex-wrap:wrap}.notification{position:fixed;right:20px;bottom:20px;padding:13px 18px;border-radius:8px;color:#fff;background:#334155;box-shadow:0 5px 20px #0003;display:none;z-index:1000}.notification.success{background:var(--success)}.notification.error{background:var(--danger)}.login-wrap{max-width:440px;margin:70px auto}.hidden{display:none!important}.muted{color:var(--muted);font-size:13px}.admin-grid{display:grid;grid-template-columns:1fr 2fr;gap:18px}.required{color:var(--danger)}@media(max-width:1000px){.form-grid,.stats{grid-template-columns:repeat(2,1fr)}.filter-grid,.admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){header h1{font-size:22px}.form-grid,.stats,.filter-grid,.admin-grid{grid-template-columns:1fr}.span-2,.full{grid-column:auto}.card{padding:15px}}

.customer-combo{position:relative}.combo-results{position:absolute;z-index:50;top:66px;left:0;right:0;max-height:280px;overflow:auto;border:1px solid #cbd5e1;border-radius:7px;background:#fff;box-shadow:0 8px 24px #0002}.combo-option{display:block;width:100%;text-align:left;border-radius:0;background:#fff;color:var(--text);padding:10px 12px;border-bottom:1px solid var(--border);font-weight:normal}.combo-option:hover,.combo-option:focus{background:#eff6ff}.combo-option strong{display:block}.combo-option small{display:block;color:var(--muted);margin-top:3px}

.customer-warning{margin-top:8px;padding:9px 11px;border:1px solid #f59e0b;background:#fffbeb;color:#92400e;border-radius:7px;font-size:13px;font-weight:bold}.combo-option.locked{background:#fff7ed}.combo-option .customer-lock{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#fed7aa;color:#9a3412;font-size:11px;font-weight:bold}.customer-lock-badge{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#ffedd5;color:#9a3412;font-size:11px;font-weight:bold}

.brand{display:flex;align-items:center;gap:20px;min-width:0}.brand-logo{display:block;width:min(320px,32vw);height:auto;max-height:86px;object-fit:contain;background:#fff;border-radius:10px;padding:4px}.app-footer{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:14px 16px;margin-top:0}.footer-inner{max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px}.footer-inner span:last-child{font-weight:bold}@media(max-width:900px){.brand{align-items:flex-start;flex-direction:column;gap:10px}.brand-logo{width:min(300px,80vw)}}@media(max-width:650px){.footer-inner{flex-direction:column;text-align:center;gap:6px}.brand-logo{width:min(280px,90vw)}}
.setup-wrap{max-width:1100px;margin:35px auto}.setup-wrap h3,#systemConfigCard h3{margin:28px 0 12px;padding-bottom:7px;border-bottom:1px solid var(--border);font-size:16px}.test-ok{color:var(--success);font-weight:bold}.test-error{color:var(--danger);font-weight:bold}

/* Checkboxen: Beschreibung links, Checkbox unmittelbar rechts daneben. */
.checkbox-label{display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;width:max-content;max-width:100%;margin-bottom:0;cursor:pointer}
.checkbox-label input[type="checkbox"]{width:auto;min-width:16px;height:16px;margin:0;flex:0 0 auto;padding:0}

/* Schreibgeschützte Anzeigefelder bleiben sichtbar, werden aber in der Leistungserfassung per tabindex=-1 übersprungen. */
#supportForm input[readonly]{background:#f8fafc;color:#475569}


/* Version 2026-09-06 Mobile/PWA: responsive Bedienung und reduzierbare Leistungsliste */
.install-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#bfdbfe;background:#eff6ff}.install-card h2{margin-bottom:6px}.records-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.records-head h2{margin-bottom:5px}.records-summary{color:var(--muted);font-size:13px;font-weight:bold}.records-head-actions{display:flex;gap:8px;flex-wrap:wrap}.records-content{margin-top:16px}.records-tools{margin-top:0;margin-bottom:12px}.mobile-records,.mobile-nav{display:none}
@media(max-width:650px){
  body{padding-bottom:72px;background:#eef3f8}
  header{padding:14px 12px;border-radius:0 0 20px 20px}.header-inner{width:100%}.header-top{gap:12px}.brand{width:100%;flex-direction:row;align-items:center;gap:10px}.brand-logo{width:92px;max-height:54px;border-radius:8px}.brand h1{font-size:19px;margin:0}.brand p{display:none}.session{width:100%;gap:6px}.pill{font-size:11px;padding:5px 8px}.session #storageBadge,.session #userBadge{display:none}#logoutButton{margin-left:auto;padding:7px 10px;font-size:12px}
  main{padding:12px 10px 22px}.card{border-radius:16px;padding:15px;margin-bottom:12px;box-shadow:0 3px 14px #0f172a0d}.card h2{font-size:18px;margin-bottom:14px}.stats{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}.stat{padding:12px;border-radius:14px}.stat-title{font-size:11px;margin-bottom:4px}.stat-value{font-size:21px}
  input,select,textarea{font-size:16px;min-height:45px;border-radius:10px;padding:11px 12px}textarea{min-height:110px}.duration-display{min-height:45px;padding:12px}.form-grid{gap:12px}.button-row{gap:8px}.button-row button{flex:1 1 145px;min-height:44px}
  .install-card{align-items:stretch;flex-direction:column}.install-card button{width:100%;min-height:46px}
  .records-head{align-items:flex-start}.records-head-actions button{min-height:42px}.records-content{margin-top:12px}.records-tools{display:grid;grid-template-columns:1fr 1fr}.records-tools button{width:100%;padding:9px 8px;font-size:12px}.table-container{display:none}.mobile-records{display:grid;gap:10px}.mobile-record{border:1px solid var(--border);border-radius:14px;background:#fff;padding:13px;box-shadow:0 2px 7px #0f172a0a}.mobile-record-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.mobile-record-title{font-weight:bold;font-size:15px}.mobile-record-date{color:var(--muted);font-size:12px;white-space:nowrap}.mobile-record-meta{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.mobile-record-desc{font-size:13px;line-height:1.4;margin:8px 0}.mobile-record-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.mobile-record-hours{font-weight:bold;color:#1e40af}.mobile-record .actions button{min-width:42px;min-height:38px}
  .mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:0;right:0;bottom:0;z-index:900;background:#fff;border-top:1px solid var(--border);box-shadow:0 -4px 16px #0f172a18;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.mobile-nav a,.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;color:#334155;text-decoration:none;border-radius:10px;padding:5px 2px;font-size:18px;min-height:48px}.mobile-nav span{font-size:10px;font-weight:bold}.mobile-nav a:active,.mobile-nav button:active{background:#eff6ff;color:var(--primary)}
  .notification{left:10px;right:10px;bottom:78px;text-align:center}.combo-results{position:fixed;left:10px;right:10px;top:auto;bottom:75px;max-height:45vh}
}
@media(display-mode:standalone){.install-card{display:none!important}}
