*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f5f5f0;color:#1a1a18;min-height:100vh}
.app{max-width:430px;margin:0 auto;padding:16px;padding-bottom:40px}

.screen{display:none}.screen.active{display:block}
.progress-bar{display:flex;gap:5px;margin-bottom:22px}
.ps{flex:1;height:5px;border-radius:3px;background:#ddd;transition:background .3s}
.ps.done{background:#1D9E75}.ps.active{background:#5DCAA5}

.step-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#888;margin-bottom:8px}
.big-label{font-size:24px;font-weight:600;color:#111;margin-bottom:6px;line-height:1.2}
.sub-label{font-size:14px;color:#777;margin-bottom:18px}

/* Section labels */
.section-label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#aaa;margin-bottom:8px;margin-top:18px}

/* Product cards */
.prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.prod-card{border:2px solid #e8e6e0;border-radius:16px;padding:18px 12px 14px;text-align:center;cursor:pointer;background:#fff;transition:border-color .15s,background .15s;user-select:none;position:relative}
.prod-card:active{transform:scale(.98)}
.prod-card.sel{border-color:#1D9E75;background:#E1F5EE}
.prod-card.k-card{border-style:dashed;border-color:#aaa}
.prod-card.k-card.sel{border-color:#1D9E75;border-style:solid}
.prod-card.sf-card{border-color:#7F77DD}
.prod-card.sf-card.sel{border-color:#534AB7;background:#EEEDFE}
.prod-card svg{display:block;margin:0 auto 10px}
.pc-label{font-size:14px;font-weight:600;color:#111;line-height:1.2}
.prod-card.sel .pc-label{color:#085041}
.prod-card.sf-card .pc-label{color:#3C3489}
.sf-sub{font-size:10px;color:#999;margin-top:3px}
.sf-del{position:absolute;top:7px;right:9px;font-size:17px;color:#bbb;background:none;border:none;cursor:pointer;line-height:1;padding:2px 5px;border-radius:5px}
.sf-del:hover{color:#e24b4a;background:#feeded}

/* Buttons */
.btn-primary{width:100%;padding:18px;font-size:17px;font-weight:600;border:none;border-radius:14px;background:#1D9E75;color:#fff;cursor:pointer;margin-top:6px}
.btn-primary:disabled{opacity:.3;cursor:default}
.btn-primary:active{opacity:.85}
.btn-secondary{width:100%;padding:16px;font-size:15px;font-weight:500;border:2px solid #ddd;border-radius:14px;background:#fff;color:#333;cursor:pointer}
.btn-purple{padding:14px 20px;font-size:15px;font-weight:600;border:none;border-radius:12px;background:#534AB7;color:#fff;cursor:pointer}
.btn-purple:active{opacity:.85}
.nav-row{display:flex;gap:10px;margin-top:14px}

/* Grid editor */
.grid-controls{background:#f0ede8;border-radius:14px;padding:14px 16px;margin-bottom:16px}
.gc-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.gc-row:last-child{margin-bottom:0}
.gc-label{font-size:13px;font-weight:600;color:#666;width:60px}
.ctrl-btn{width:40px;height:40px;border-radius:10px;border:2px solid #ddd;background:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#333;flex-shrink:0}
.ctrl-btn:active{background:#eee}
.ctrl-val{font-size:20px;font-weight:600;color:#111;min-width:28px;text-align:center}

.grid-canvas{display:inline-grid;gap:6px;width:100%;margin-bottom:16px}
.grid-cell{border:2px solid #ddd;border-radius:11px;background:#f5f5f0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:68px;padding:8px 4px;transition:border-color .15s,background .15s}
.grid-cell:active{transform:scale(.97)}
.grid-cell.assigned{border-color:#1D9E75;background:#E1F5EE}
.grid-cell.sel-cell{border-color:#1D9E75;border-width:3px;box-shadow:0 0 0 3px rgba(29,158,117,.2)}
.cell-lbl{font-size:9px;color:#999;text-align:center;line-height:1.3}
.grid-cell.assigned .cell-lbl{color:#085041;font-weight:600}

.type-picker{background:#f0ede8;border-radius:14px;padding:14px;margin-bottom:16px}
.tp-label{font-size:12px;font-weight:600;color:#888;margin-bottom:10px}
.tp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tp-btn{border:2px solid #ddd;border-radius:11px;padding:10px 4px 8px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}
.tp-btn:active{transform:scale(.96)}
.tp-btn.sel{border-color:#1D9E75;background:#E1F5EE}
.tp-btn span{font-size:9px;color:#888;text-align:center;line-height:1.3;font-weight:500}
.tp-btn.sel span{color:#085041}
.tp-clear{border-style:dashed}

.save-row{display:flex;gap:8px;margin-top:14px;align-items:stretch}
.save-row input{flex:1;font-size:15px;padding:13px 14px;border:2px solid #ddd;border-radius:12px;background:#fff;color:#111}
.save-row input:focus{outline:none;border-color:#534AB7}

/* Dim blocks */
.dim-wrap{background:#fff;border:1.5px solid #e8e6e0;border-radius:14px;padding:16px;margin-bottom:12px}
.dim-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:10px}
.dim-name{font-size:14px;font-weight:600;color:#666;flex-shrink:0}
.dim-display{display:flex;align-items:baseline;gap:3px;cursor:pointer;padding:5px 9px;border-radius:9px;border:2px solid transparent;background:#f5f5f0;transition:border-color .15s}
.dim-display:active{border-color:#1D9E75}
.dim-display .val{font-size:28px;font-weight:700;color:#111;line-height:1}
.dim-display .unit{font-size:13px;color:#999;margin-left:2px}
.dim-display .hint{font-size:11px;color:#ccc;margin-left:4px}
.dim-input-wrap{display:none;align-items:center;gap:7px}
.dim-input-wrap.open{display:flex}
.dim-input-wrap input{font-size:22px;font-weight:700;color:#111;border:2px solid #1D9E75;border-radius:10px;padding:5px 10px;width:130px;text-align:right;background:#fff}
.dim-input-wrap input:focus{outline:none}
.dim-input-wrap .utxt{font-size:13px;color:#999}
.ok-btn{padding:10px 14px;background:#1D9E75;color:#fff;border:none;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer}

input[type=range].bslider{-webkit-appearance:none;appearance:none;width:100%;height:56px;background:transparent;cursor:pointer;padding:0;margin:0}
input[type=range].bslider::-webkit-slider-runnable-track{height:14px;border-radius:7px;background:#e8e6e0}
input[type=range].bslider::-webkit-slider-thumb{-webkit-appearance:none;width:44px;height:44px;border-radius:13px;margin-top:-15px;background:#1D9E75;border:3px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.2);cursor:grab}
input[type=range].bslider:active::-webkit-slider-thumb{background:#0F6E56;cursor:grabbing}
input[type=range].bslider::-moz-range-track{height:14px;border-radius:7px;background:#e8e6e0}
input[type=range].bslider::-moz-range-thumb{width:44px;height:44px;border-radius:13px;background:#1D9E75;border:3px solid #fff;cursor:grab}
.prec-row{display:flex;gap:6px;margin-top:4px}
.prec-btn{flex:1;padding:13px 0;font-size:14px;font-weight:600;border:2px solid #ddd;border-radius:11px;background:#fff;color:#555;cursor:pointer}
.prec-btn:active{background:#f0ede8}

/* Öffnungsart */
.richt-label{font-size:12px;font-weight:600;color:#888;margin-bottom:8px;margin-top:4px}
.richt-grid{display:grid;gap:7px;margin-bottom:14px}
.richt-btn{border:2px solid #ddd;border-radius:12px;padding:11px 6px 9px;background:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}
.richt-btn:active{transform:scale(.96)}
.richt-btn.sel{border-color:#1D9E75;background:#E1F5EE}
.richt-btn span{font-size:9px;color:#888;text-align:center;line-height:1.3;font-weight:500}
.richt-btn.sel span{color:#085041}

/* Elem cards */
.elem-card{background:#fff;border:1.5px solid #e8e6e0;border-radius:16px;padding:18px;margin-bottom:14px}
.elem-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.elem-title{font-size:16px;font-weight:600;color:#111}
.badge{font-size:11px;font-weight:600;padding:4px 11px;border-radius:99px}
.bg{background:#E1F5EE;color:#085041}
.bp{background:#EEEDFE;color:#3C3489}
.del-btn{width:36px;height:36px;border-radius:10px;border:2px solid #ddd;background:#fff;font-size:19px;color:#aaa;cursor:pointer;display:flex;align-items:center;justify-content:center}
.del-btn:hover{border-color:#e24b4a;color:#e24b4a}

.notiz-inp{width:100%;font-size:14px;padding:12px 13px;border:2px solid #ddd;border-radius:12px;background:#fff;color:#111;resize:none;font-family:inherit}
.notiz-inp:focus{outline:none;border-color:#1D9E75}
.add-elem-btn{width:100%;padding:16px;border:2px dashed #ccc;border-radius:14px;background:none;color:#999;font-size:15px;cursor:pointer;margin-bottom:14px;font-family:inherit}
.add-elem-btn:active{background:#f5f5f0}

/* Mini grid preview */
.mini-grid-wrap{margin-bottom:14px;display:flex;justify-content:center}

/* Summary */
.sum-card{background:#f5f5f0;border-radius:14px;padding:16px;margin-bottom:16px}
.sum-row{padding:10px 0;border-bottom:1px solid #e8e6e0}
.sum-row:last-child{border-bottom:none}
.sum-type{font-size:14px;font-weight:600;color:#111}
.sum-detail{font-size:12px;color:#888;margin-top:3px}
.contact-blk{margin-bottom:14px}
.contact-blk label{display:block;font-size:12px;font-weight:600;color:#888;margin-bottom:5px}
.contact-blk input,.contact-blk textarea{width:100%;font-size:16px;padding:14px;border:2px solid #ddd;border-radius:13px;background:#fff;color:#111;font-family:inherit}
.contact-blk input:focus,.contact-blk textarea:focus{outline:none;border-color:#1D9E75}
.contact-blk textarea{resize:vertical;min-height:72px}

.wa-btn{width:100%;padding:19px;background:#25D366;border:none;border-radius:15px;color:#fff;font-size:17px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px;font-family:inherit}
.wa-btn:active{opacity:.88}
.wa-icon{width:24px;height:24px;fill:#fff;flex-shrink:0}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1D9E75;color:#fff;padding:12px 22px;border-radius:99px;font-size:14px;font-weight:600;opacity:0;transition:opacity .3s;pointer-events:none;z-index:999;white-space:nowrap}
.toast.show{opacity:1}

/* ─── Positionsliste (persistenter Warenkorb) ─── */
.fab{position:fixed;bottom:22px;right:18px;width:58px;height:58px;border-radius:50%;background:#1D9E75;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.22);z-index:100;transition:transform .15s}
.fab:active{transform:scale(.93)}
.fab-badge{position:absolute;top:-3px;right:-3px;background:#E24B4A;color:#fff;font-size:11px;font-weight:700;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
.list-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;display:none;align-items:flex-end}
.list-overlay.open{display:flex}
.list-sheet{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}
.list-header{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 14px;border-bottom:1px solid #e8e6e0;flex-shrink:0}
.list-title{font-size:18px;font-weight:700;color:#111}
.list-close{width:34px;height:34px;border-radius:50%;border:none;background:#f0ede8;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#555}
.list-body{overflow-y:auto;flex:1;padding:12px 14px 100px}
.list-empty{text-align:center;padding:40px 20px;color:#aaa;font-size:15px}
.pos-card{background:#f8f8f5;border:1.5px solid #e8e6e0;border-radius:14px;padding:14px;margin-bottom:10px}
.pos-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.pos-info{flex:1}
.pos-num{font-size:11px;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.pos-type{font-size:15px;font-weight:700;color:#111;margin-bottom:2px}
.pos-detail{font-size:12px;color:#888;line-height:1.4}
.pos-actions{display:flex;gap:6px;flex-shrink:0;margin-left:10px}
.pos-del{width:30px;height:30px;border-radius:8px;border:1.5px solid #ddd;background:#fff;font-size:16px;color:#aaa;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pos-del:hover{border-color:#e24b4a;color:#e24b4a}
.pos-comment-wrap{margin-top:8px}
.pos-comment-toggle{font-size:12px;color:#1D9E75;font-weight:600;cursor:pointer;background:none;border:none;padding:0;display:flex;align-items:center;gap:4px}
.pos-comment-area{display:none;margin-top:8px}
.pos-comment-area.open{display:block}
.pos-comment-inp{width:100%;font-size:14px;padding:10px 12px;border:1.5px solid #ddd;border-radius:10px;background:#fff;color:#111;resize:none;min-height:64px;font-family:inherit}
.pos-comment-inp:focus{outline:none;border-color:#1D9E75}
.pos-comment-saved{font-size:12px;color:#888;font-style:italic;margin-top:4px;padding:6px 10px;background:#f0ede8;border-radius:8px;line-height:1.4}
.list-footer{position:absolute;bottom:0;left:0;right:0;padding:14px 14px 28px;background:#fff;border-top:1px solid #e8e6e0}
.wa-btn-small{width:100%;padding:16px;background:#25D366;border:none;border-radius:14px;color:#fff;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}
.pdf-btn{width:100%;padding:13px;background:none;border:2px solid #ddd;border-radius:14px;color:#555;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
.pdf-btn:active{background:#f5f5f0}
