*{box-sizing:border-box;margin:0;padding:0}:root{--c-bg:#f5f5f0;--c-panel:#fff;--c-line:#d9d9d4;--c-ink:#1a1a1a;--c-muted:#777;--c-accent:#1E5E3A;--c-accent2:#2E7D32;--c-pri:#2E5FA3;--c-pri-dark:#1F3864;--c-warn:#E67E22;--c-err:#C0392B;--font-size-base:14px;--c-tblhead:#fafafa;--c-cardborder:#eeeee8}body.dark-theme{--c-bg:#1a1a1c;--c-panel:#26262a;--c-line:#3a3a3e;--c-ink:#e8e8e8;--c-muted:#9a9aa0;--c-tblhead:#2a2a2e;--c-cardborder:#353539}body.dark-theme input,body.dark-theme select,body.dark-theme textarea{background:#1e1e22;color:#e8e8e8;border-color:#3a3a3e}body.dark-theme .card{background:var(--c-panel);border-color:var(--c-cardborder)}body.dark-theme th{background:var(--c-tblhead);color:var(--c-muted)}body.dark-theme tr.clickable:hover,body.dark-theme tr.clickable:hover td,body.dark-theme td.clickable:hover{background:#2e3542}body.dark-theme .pl-item:not(.indiv-add-row):hover{background:#2a3442}body.dark-theme .modal-box{background:var(--c-panel);color:var(--c-ink)}body.dark-theme #cart-card{background:var(--c-panel)}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;background:var(--c-bg);color:var(--c-ink);font-size:var(--font-size-base)}body{display:flex;min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--c-line);border-radius:4px;background:#fff;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--c-accent)}textarea{resize:vertical;min-height:70px}label{display:block;font-size:12px;color:var(--c-muted);margin-bottom:3px;font-weight:500}.field{margin-bottom:10px}.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1;min-width:150px}#sidebar{width:260px;background:#232325;color:#eee;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.brand{padding:14px 18px;border-bottom:1px solid #38383a;display:flex;align-items:center;gap:10px}.nav{padding:10px 0;flex:1;overflow-y:auto}.nav-btn{display:block;width:100%;text-align:left;padding:10px 18px;color:#ccc;font-size:13px;border-left:3px solid transparent}.nav-btn:hover{background:#2e2e30;color:#fff}.nav-btn.active{background:#2e2e30;color:#fff;border-left-color:var(--c-accent2)}.nav-section{padding:14px 18px 4px;font-size:10px;color:#888;text-transform:uppercase;letter-spacing:1px;font-weight:700}.sidebar-foot{padding:10px 18px;border-top:1px solid #38383a;font-size:10px;color:#888}.sb-status{display:inline-block;width:8px;height:8px;border-radius:50%;background:#2ecc71;margin-right:5px}.sb-status.off{background:#e67e22}#main{flex:1;overflow-y:auto;display:flex;flex-direction:column}.topbar{background:#fff;border-bottom:1px solid var(--c-line);padding:10px 22px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:10}.topbar-title h2{font-size:18px;font-weight:700}.topbar-logo{display:flex;align-items:center}.crumbs{font-size:12px;color:var(--c-muted);margin-top:2px}.crumbs a{color:var(--c-accent);cursor:pointer;text-decoration:none}.crumbs a:hover{text-decoration:underline}.content{padding:22px;max-width:1200px;width:100%}.btn{padding:8px 14px;border-radius:4px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:5px;background:#eee;color:var(--c-ink);border:1px solid var(--c-line)}.btn:hover{background:#e5e5e5}.btn-primary{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}.btn-primary:hover{background:var(--c-accent2)}.btn-danger{background:var(--c-err);color:#fff;border-color:var(--c-err)}.btn-sm{padding:4px 9px;font-size:12px}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.card{background:var(--c-panel);border:1px solid var(--c-line);border-radius:6px;padding:18px;margin-bottom:16px}.card-title{font-size:15px;font-weight:700;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--c-line);font-size:13px}th{font-size:11px;color:var(--c-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600;background:#fafafa}tr.clickable{cursor:pointer}tr.clickable:hover{background:#f9f9f5}.r{text-align:right}.c{text-align:center}.acc-item{border:1px solid var(--c-line);border-radius:4px;margin-bottom:6px;background:#fff;overflow:hidden}.acc-head{padding:10px 14px;font-weight:600;font-size:13px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:#f8f8f4}.acc-head:hover{background:#efefea}.acc-head .count{font-size:11px;color:var(--c-muted);font-weight:500}.acc-body{display:none;padding:6px 0;border-top:1px solid var(--c-line)}.acc-item.open .acc-body{display:block}.acc-item.open .acc-head .chev{transform:rotate(90deg)}.chev{transition:transform .15s;display:inline-block}.pl-item{display:flex;align-items:center;gap:10px;padding:6px 14px;font-size:13px;border-bottom:1px solid #f0f0ea}.pl-item:last-child{border-bottom:none}.pl-item:hover{background:#f9f9f5}.pl-item .pl-id{font-family:ui-monospace,monospace;font-size:11px;color:var(--c-muted);min-width:58px}.pl-item .pl-b{flex:1}.pl-item .pl-p{min-width:80px;text-align:right;color:#333}.pl-item .pl-e{min-width:38px;color:var(--c-muted);font-size:11px;text-align:center}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.b-angebot{background:#e8f4fd;color:#1565c0}.b-auftrag{background:#fff3e0;color:#e65100}.b-rechnung,.b-schluss{background:#e8f5e9;color:#2e7d32}.b-abschlag{background:#fce4ec;color:#ad1457}.b-abgeschlossen{background:#eceff1;color:#455a64}#toast{position:fixed;bottom:22px;right:22px;background:var(--c-accent);color:#fff;padding:10px 16px;border-radius:5px;font-size:13px;display:none;z-index:100;box-shadow:0 2px 12px #00000026}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:none;align-items:center;justify-content:center;z-index:50;padding:20px}.modal.open{display:flex}.modal-box{background:#fff;border-radius:6px;width:100%;max-width:680px;max-height:90vh;display:flex;flex-direction:column}.modal-head{padding:14px 20px;border-bottom:1px solid var(--c-line);display:flex;justify-content:space-between;align-items:center}.modal-head h3{font-size:16px}.modal-body{padding:18px 20px;overflow-y:auto;flex:1}.modal-foot{padding:12px 20px;border-top:1px solid var(--c-line);display:flex;gap:8px;justify-content:flex-end}#modal-close{font-size:22px;color:var(--c-muted);cursor:pointer;line-height:1;background:none;border:none}.loading{text-align:center;padding:30px;color:var(--c-muted)}.empty{text-align:center;padding:30px;color:var(--c-muted);font-style:italic}.kat-group{background:#f0f0e8;padding:6px 10px;font-weight:700;font-size:12px;letter-spacing:.3px}.item-row td{padding:6px 8px;font-size:12.5px;vertical-align:middle}.item-row input{padding:4px 6px;font-size:12px}.zwischen-row td{background:#fafaf5;font-weight:600;font-size:12px;padding:5px 10px}.logo-svg{height:44px;width:auto;display:block}.brand .logo-svg{height:160px;margin:8px auto;display:block}.topbar-logo .logo-svg{height:40px}#burger{font-size:22px;padding:2px 8px;cursor:pointer;background:transparent;border:0;color:inherit}#sidebar-close{position:absolute;top:10px;right:10px;width:32px;height:32px;background:transparent;color:#eee;border:1px solid #555;border-radius:4px;font-size:20px;line-height:1;cursor:pointer;display:none;padding:0;z-index:2}#sidebar-close:hover{background:#3a3a3c}#sidebar{position:relative}#sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:25}#sidebar-backdrop.show{display:block}body.sidebar-collapsed #sidebar{display:none}@media (min-width:901px){#sidebar-close{display:inline-block}}@media (max-width:900px){#sidebar{position:fixed;left:-280px;top:0;bottom:0;z-index:30;transition:left .2s;width:260px}#sidebar.open{left:0}#sidebar-close{display:inline-block}body.sidebar-collapsed #sidebar{display:flex}.content{padding:14px}.topbar{padding:10px 14px}}tr.clickable{cursor:pointer;transition:background .12s}tr.clickable:hover,tr.clickable:hover td{background:#f0f4fa}td.clickable{cursor:pointer;transition:background .12s}td.clickable:hover{background:#f0f4fa}.logo-svg.lx-wiggle{animation:lxWiggle 1.2s ease-in-out}.logo-svg.lx-bounce{animation:lxBounce 1.1s cubic-bezier(.28,.84,.42,1)}.logo-svg.lx-shake{animation:lxShake .6s ease-in-out}.logo-svg.lx-pulse{animation:lxPulse 1.4s ease-in-out}.logo-svg.lx-heartbeat{animation:lxHeart 1.2s ease-in-out}.logo-svg.lx-pendulum{animation:lxPendulum 2.2s ease-in-out}.logo-svg.lx-tilt3d{animation:lxTilt3d 1.8s ease-in-out;transform-origin:50% 50%}.logo-svg.lx-flip-y{animation:lxFlipY 1.6s ease-in-out}.logo-svg.lx-spin{animation:lxSpin 1.4s ease-in-out}.logo-svg.lx-glow{animation:lxGlow 1.6s ease-in-out}.logo-svg.lx-brighten{animation:lxBrighten 1.4s ease-in-out}.logo-svg.lx-sepia{animation:lxSepia 1.6s ease-in-out}.logo-svg.lx-hue{animation:lxHue 1.8s linear}.logo-svg.lx-lift{animation:lxLift 1.6s ease-out}.logo-svg.lx-wave{animation:lxWave 1.4s ease-in-out}.logo-svg.lx-shine-lr .nh-glow{animation:lxShineLR 1.3s ease-in-out forwards}.logo-svg.lx-shine-rl .nh-glow{animation:lxShineRL 1.3s ease-in-out forwards}.logo-svg.lx-shine-slow .nh-glow{animation:lxShineSlow 2.4s ease-in-out forwards}.logo-svg.lx-shine-twice .nh-glow{animation:lxShineTwice 2.2s ease-in-out forwards}.logo-svg.lx-shine-flash .nh-glow{animation:lxShineFlash 1s ease-out forwards}@keyframes lxWiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}75%{transform:rotate(-2deg)}}@keyframes lxBounce{0%,to{transform:translateY(0)}30%{transform:translateY(-14px)}60%{transform:translateY(-6px)}}@keyframes lxShake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes lxPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes lxHeart{0%,to{transform:scale(1)}15%{transform:scale(1.09)}30%{transform:scale(1)}45%{transform:scale(1.09)}60%{transform:scale(1)}}@keyframes lxPendulum{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@keyframes lxTilt3d{0%,to{transform:perspective(800px) rotateY(0)}50%{transform:perspective(800px) rotateY(20deg)}}@keyframes lxFlipY{0%{transform:perspective(800px) rotateY(0)}50%{transform:perspective(800px) rotateY(180deg)}to{transform:perspective(800px) rotateY(360deg)}}@keyframes lxSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes lxGlow{0%,to{filter:none}50%{filter:drop-shadow(0 0 12px rgba(255,230,120,.9)) drop-shadow(0 0 4px rgba(255,220,80,.6))}}@keyframes lxBrighten{0%,to{filter:none}50%{filter:brightness(1.35)}}@keyframes lxSepia{0%,to{filter:none}50%{filter:sepia(.6) saturate(1.4)}}@keyframes lxHue{0%,to{filter:none}50%{filter:hue-rotate(45deg)}}@keyframes lxLift{0%{transform:translateY(0);filter:none}40%{transform:translateY(-8px);filter:drop-shadow(0 10px 8px rgba(0,0,0,.25))}to{transform:translateY(0);filter:none}}@keyframes lxWave{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-4px) rotate(-2deg)}50%{transform:translate(0) rotate(0)}75%{transform:translate(4px) rotate(2deg)}}@keyframes lxShineLR{0%{transform:translate(-340px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(340px);opacity:0}}@keyframes lxShineRL{0%{transform:translate(340px);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(-340px);opacity:0}}@keyframes lxShineSlow{0%{transform:translate(-340px);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translate(340px);opacity:0}}@keyframes lxShineTwice{0%{transform:translate(-340px);opacity:0}10%{opacity:1}45%{transform:translate(340px);opacity:.2}55%{transform:translate(-340px);opacity:.2}65%{opacity:1}to{transform:translate(340px);opacity:0}}@keyframes lxShineFlash{0%{transform:translate(-100px);opacity:0}30%{transform:translate(0);opacity:1}60%{opacity:1}to{transform:translate(170px);opacity:0}}@media (prefers-reduced-motion: reduce){.logo-svg[class*=lx-],.logo-svg[class*=lx-] .nh-glow{animation:none!important}}.angebot-grid{display:grid;grid-template-columns:1fr 380px;gap:16px;align-items:start}.angebot-cart{position:sticky;top:14px}.angebot-cart .card{max-height:calc(100vh - 32px);display:flex;flex-direction:column}.angebot-cart .card-title{flex-shrink:0}#cart-rows-wrap{overflow-y:auto;flex:1;min-height:0}#cart-card.pulse{animation:cartPulse .45s ease-out}@keyframes cartPulse{0%{box-shadow:0 0 #2e5fa380}to{box-shadow:0 0 0 12px #2e5fa300}}.cart-row{padding:4px 2px;border-bottom:1px dashed #eee}.cart-row-bez{font-size:12px;line-height:1.3;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-row-ctrl{display:flex;gap:4px;align-items:center}.cart-input{width:52px;padding:2px 4px;font-size:11px;border:1px solid #ccc;border-radius:3px}.cart-sum{font-size:12px;font-weight:700;min-width:56px;text-align:right;margin-left:auto;white-space:nowrap}.cart-del{background:transparent;border:0;color:#c0392b;cursor:pointer;font-size:16px;line-height:1;padding:0 4px}.cart-del:hover{color:#922b21}.pl-item{cursor:pointer;transition:background .1s,transform .08s,box-shadow .1s}.pl-item:not(.indiv-add-row):hover{background:#e3efff;box-shadow:inset 3px 0 0 var(--c-pri,#2e5fa3)}.pl-item:not(.indiv-add-row):active{background:#cfe0f8;transform:translate(2px)}.pl-item.added{background:#d4edda!important;box-shadow:inset 3px 0 #27ae60!important;transition:none}@media (max-width:900px){.angebot-grid{grid-template-columns:1fr}.angebot-cart{position:relative;top:auto}.angebot-cart .card{max-height:none}}
