@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#091926;--navy-80:#40424d;--navy-60:#6e7180;--navy-40:#9da2b3;--line:#e4e7ec;--line-strong:#d3d6e0;--steel:#bcbfcc;--surface:#edeff7;--white:#fff;--champagne:#d9c3af;--champagne-soft:#f5eee7;--gold:#c08329;--gold-soft:var(--champagne-soft);--danger:#a3332c;--radius:10px;--radius-sm:7px;--panel-w:400px;--top-h:60px;--font-display:"Fraunces Variable", Georgia, serif;--font-ui:"Manrope Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--white);color:var(--navy);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app{grid-template-rows:var(--top-h) 1fr;grid-template-columns:1fr var(--panel-w);height:100%;display:grid;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:var(--white);z-index:5;grid-column:1/-1;align-items:center;gap:14px;min-width:0;padding:0 16px 0 18px;display:flex}.brand{-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;align-items:center;line-height:1;display:inline-flex}.brand-logo{width:auto;height:22px;display:block}.brand-name{letter-spacing:.28em;text-transform:uppercase;color:var(--navy-60);white-space:nowrap;margin-top:5px;font-size:8.5px;font-weight:600}.design-name{border-radius:var(--radius-sm);text-overflow:ellipsis;background:0 0;border:1px solid #0000;flex:auto;min-width:80px;max-width:360px;padding:7px 10px;font-weight:600}.design-name:hover{border-color:var(--line)}.design-name:focus{border-color:var(--line-strong);background:var(--surface);outline:none}.topbar-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--white);white-space:nowrap;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 13px;font-size:13.5px;font-weight:600;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:hover{border-color:var(--line-strong);background:var(--surface)}.btn:disabled{opacity:.4;cursor:default;background:var(--white)}.btn svg{flex-shrink:0;width:17px;height:17px}.btn.icon{width:38px;padding:0}.btn.primary{background:var(--navy);border-color:var(--navy);color:var(--white)}.btn.primary:hover{background:var(--navy-80)}.btn.ghost{border-color:#0000}.btn.ghost:hover{border-color:var(--line)}.menu-wrap{position:relative}.menu{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius);z-index:30;width:300px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #0919261a}.menu button{text-align:left;border-radius:var(--radius-sm);background:0 0;border:0;align-items:flex-start;gap:11px;width:100%;padding:10px;display:flex}.menu button:hover{background:var(--surface)}.menu svg{width:18px;height:18px;color:var(--gold);flex-shrink:0;margin-top:2px}.menu strong{font-size:13.5px;display:block}.menu span{color:var(--navy-60);margin-top:2px;font-size:12.5px;line-height:1.35;display:block}.menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}.stage{background:var(--white);min-width:0;min-height:0;position:relative}.stage canvas{touch-action:none}.stage-tools{pointer-events:none;justify-content:space-between;gap:10px;display:flex;position:absolute;top:14px;left:14px;right:14px}.stage-tools>*{pointer-events:auto}.pill{background:var(--white);border:1px solid var(--line);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.pill button{color:var(--navy-60);background:0 0;border:0;border-radius:999px;min-height:32px;padding:6px 12px;font-size:12.5px;font-weight:600}.pill button:hover{color:var(--navy)}.pill button[aria-pressed=true]{background:var(--navy);color:var(--white)}.specs{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);width:min(330px,100% - 28px);padding:12px 14px 10px;font-size:12.5px;position:absolute;bottom:14px;left:14px}.specs h3{font-family:var(--font-display);justify-content:space-between;align-items:center;margin:0 0 6px;font-size:15px;font-weight:500;display:flex}.specs h3 button{color:var(--navy-60);font-family:var(--font-ui);background:0 0;border:0;padding:4px 0 4px 8px;font-size:12px;font-weight:600}.specs dl{grid-template-columns:auto 1fr;gap:4px 14px;margin:0;display:grid}.specs dt{color:var(--navy-60)}.specs dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.specs dd small{color:var(--navy-60);font-weight:500;display:block}.specs .note{color:var(--navy-40);margin:8px 0 0;font-size:11.5px}.warnings{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.warnings li{background:var(--gold-soft);border-radius:var(--radius-sm);color:var(--navy-80);padding:7px 9px;font-size:12px;line-height:1.4}.drop-hint{border:2px dashed var(--gold);font-family:var(--font-display);pointer-events:none;z-index:10;background:#ffffffeb;border-radius:14px;place-items:center;font-size:22px;display:grid;position:absolute;inset:10px}.panel{border-left:1px solid var(--line);overscroll-behavior:contain;background:var(--white);min-height:0;overflow-y:auto}.types{border-bottom:1px solid var(--line);background:var(--white);z-index:2;grid-template-columns:repeat(5,1fr);display:grid;position:sticky;top:0}.types button{color:var(--navy-60);background:0 0;border:0;border-bottom:2px solid #0000;justify-items:center;gap:5px;min-height:64px;padding:12px 2px 10px;font-size:11.5px;font-weight:600;display:grid}.types button svg{width:24px;height:24px}.types button:hover{color:var(--navy)}.types button[aria-pressed=true]{color:var(--navy);border-bottom-color:var(--gold)}.presets{padding:14px 18px 4px}.presets-row{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--white);border-radius:999px;min-height:32px;padding:6px 12px;font-size:12.5px;font-weight:600}.chip:hover{border-color:var(--navy-40)}.section{border-bottom:1px solid var(--line)}.section>summary{cursor:pointer;font-family:var(--font-display);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:15px 18px;font-size:16px;font-weight:500;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary .hint{font-family:var(--font-ui);color:var(--navy-60);white-space:nowrap;text-overflow:ellipsis;max-width:55%;margin-left:auto;margin-right:10px;font-size:12px;font-weight:600;overflow:hidden}.section>summary svg{width:16px;height:16px;color:var(--navy-40);transition:transform .16s}.section[open]>summary svg{transform:rotate(180deg)}.section-body{gap:16px;padding:0 18px 18px;display:grid}.field{gap:7px;display:grid}.field-label{color:var(--navy-80);justify-content:space-between;align-items:baseline;font-size:12.5px;font-weight:600;display:flex}.field-label output{font-variant-numeric:tabular-nums;color:var(--navy);font-weight:700}.field-label output small{color:var(--navy-60);margin-left:4px;font-weight:500}.field-help{color:var(--navy-60);margin-top:-3px;font-size:12px}.label-small{letter-spacing:.06em;text-transform:uppercase;color:var(--navy-60);margin:0 0 8px;font-size:11.5px;font-weight:700}.range{appearance:none;--fill:50%;background:0 0;width:100%;height:26px}.range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--navy) var(--fill), var(--line) var(--fill));border-radius:4px;height:4px}.range::-moz-range-track{background:var(--line);border-radius:4px;height:4px}.range::-moz-range-progress{background:var(--navy);border-radius:4px;height:4px}.range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--white);border:2px solid var(--navy);border-radius:50%;width:20px;height:20px;margin-top:-8px}.range::-moz-range-thumb{background:var(--white);border:2px solid var(--navy);border-radius:50%;width:16px;height:16px}.range:focus-visible{outline:none}.range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--gold-soft);border-color:var(--gold)}.segmented{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);gap:3px;padding:3px;display:flex}.segmented button{min-height:34px;color:var(--navy-60);background:0 0;border:0;border-radius:5px;flex:1 1 0;padding:7px 6px;font-size:12.5px;font-weight:600}.segmented button:hover{color:var(--navy);background:var(--surface)}.segmented button[aria-pressed=true]{background:var(--navy);color:var(--white)}.segmented button:disabled{opacity:.35;cursor:default;background:0 0}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{color:var(--navy-60);background:0 0;border:0;justify-items:center;gap:5px;min-width:58px;padding:2px;font-size:11.5px;font-weight:600;display:grid}.swatch .dot{outline-offset:2px;border:1px solid #09192624;border-radius:50%;outline:2px solid #0000;width:34px;height:34px;transition:outline-color .12s;box-shadow:inset 0 -6px 10px #0919261a,inset 0 4px 8px #fff9}.swatch:hover .dot{outline-color:var(--line-strong)}.swatch[aria-pressed=true]{color:var(--navy)}.swatch[aria-pressed=true] .dot{outline-color:var(--navy)}.cuts{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.cut{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--navy-60);justify-items:center;gap:4px;min-height:64px;padding:8px 2px 6px;font-size:10.5px;font-weight:600;display:grid}.cut svg{width:30px;height:30px}.cut:hover{border-color:var(--navy-40);color:var(--navy)}.cut[aria-pressed=true]{border-color:var(--navy);color:var(--navy);background:var(--surface)}.toggle{color:var(--navy-80);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:32px;font-size:13px;font-weight:600;display:flex}.toggle input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:999px;flex-shrink:0;width:40px;height:24px;transition:background-color .14s;position:relative}.toggle input:after{content:"";background:var(--white);border-radius:50%;width:18px;height:18px;transition:transform .14s;position:absolute;top:3px;left:3px}.toggle input:checked{background:var(--navy)}.toggle input:checked:after{transform:translate(16px)}.select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);width:100%;min-height:38px;padding:0 10px;font-weight:600}.panel-foot{color:var(--navy-40);padding:16px 18px 28px;font-size:11.5px;line-height:1.5}.num{font-variant-numeric:tabular-nums;color:var(--navy);background:0 0;border:0;border-bottom:1px dashed #0000;border-radius:5px;margin:-2px -4px;padding:2px 4px;font-weight:700}.num small{color:var(--navy-60);margin-left:4px;font-weight:500}.num:hover{background:var(--surface);border-bottom-color:var(--navy-40)}.num-input{text-align:right;border:1px solid var(--navy);font-variant-numeric:tabular-nums;border-radius:5px;outline:none;width:92px;padding:2px 6px;font-weight:700}.text{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);resize:vertical;width:100%;padding:9px 10px;font-weight:500;line-height:1.45}.text:focus{border-color:var(--navy-40);outline:none}.text::placeholder{color:var(--navy-40)}.add-row{flex-wrap:wrap;gap:6px;display:flex}.element{border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}.element.open{border-color:var(--line-strong)}.element-head{align-items:center;gap:2px;padding:3px 4px 3px 0;display:flex}.element-toggle{text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:9px;min-width:0;padding:9px 4px 9px 12px;font-size:13px;font-weight:600;display:flex}.element-toggle svg{width:15px;height:15px;color:var(--navy-40);flex-shrink:0;margin-left:auto;transition:transform .16s}.element-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.element-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.element-dot{border:1px solid #0919262e;border-radius:50%;flex-shrink:0;width:12px;height:12px}.element-body{border-top:1px solid var(--line);gap:16px;padding:14px 12px;display:grid}.element-body .cuts{grid-template-columns:repeat(4,1fr)}.canvas-layer{z-index:1;position:absolute;inset:0}.ref-photo{object-fit:contain;pointer-events:none;transform-origin:50%;width:100%;height:100%;position:absolute;inset:0}.ref-photo.behind{z-index:0}.ref-photo.front{z-index:2}.stage-tools,.specs{z-index:3}.dialog-backdrop{z-index:50;background:#09192659;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--white);border-radius:14px;grid-template-rows:auto 1fr;width:min(880px,100%);max-height:min(84vh,900px);display:grid;overflow:hidden}.dialog header{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:18px 20px;display:flex}.dialog header h2{font-family:var(--font-display);margin:0 auto 0 0;font-size:20px;font-weight:500}.dialog-body{padding:18px 20px 22px;overflow-y:auto}.library-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.library-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);display:grid;overflow:hidden}.library-card button.open{background:var(--surface);aspect-ratio:4/3;border:0;place-items:center;padding:0;display:grid;overflow:hidden}.library-card img{object-fit:cover;width:100%;height:100%}.library-card .meta{align-items:center;gap:8px;padding:10px 12px;display:flex}.library-card .meta div{flex:1;min-width:0}.library-card strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.library-card small{color:var(--navy-60);font-size:11.5px}.library-card .current{outline:2px solid var(--gold)}.empty{text-align:center;color:var(--navy-60);padding:40px 16px}.empty strong{font-family:var(--font-display);color:var(--navy);margin-bottom:6px;font-size:18px;font-weight:500;display:block}.toasts{z-index:60;gap:8px;width:min(460px,100% - 32px);display:grid;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{background:var(--navy);color:var(--white);border-radius:var(--radius);align-items:flex-start;gap:10px;padding:11px 14px;font-size:13px;font-weight:500;display:flex}.toast.error{background:var(--danger)}.toast svg{width:18px;height:18px;color:var(--champagne);flex-shrink:0;margin-top:1px}.toast.error svg{color:var(--white)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1100px){:root{--panel-w:360px}.btn .label-wide{display:none}}@media (width<=860px){.app{grid-template-columns:1fr;grid-template-rows:var(--top-h) 48vh 1fr}.panel{border-left:0;border-top:1px solid var(--line)}.brand-name,.btn .label{display:none}.btn{padding:0 10px}.specs{padding:10px 12px 8px;font-size:12px}.specs.collapsed dl,.specs.collapsed .note,.specs.collapsed .warnings{display:none}.stage-tools{top:10px;left:10px;right:10px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.dialog:has(>.dialog-foot){grid-template-rows:auto 1fr auto}.dialog.narrow{width:min(620px,100%)}.dialog.wide{width:min(1180px,100%);max-height:min(90vh,980px)}.dialog-foot{border-top:1px solid var(--line);background:var(--white);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.dialog-lead{color:var(--navy-80);text-wrap:pretty;margin:0 0 14px}.dialog-body .field+.field,.photo-picker+.field{margin-top:14px}select.text{appearance:auto;cursor:pointer}.photo-picker{gap:10px;display:grid}.photo-thumbs{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.photo-thumbs figure{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface);margin:0;position:relative;overflow:hidden}.photo-thumbs img{object-fit:cover;width:100%;height:100%}.photo-thumbs .btn{background:#ffffffeb;width:28px;min-height:28px;position:absolute;top:4px;right:4px}.dropzone{border:1.5px dashed var(--steel);border-radius:var(--radius);background:var(--white);color:var(--navy-80);cursor:pointer;justify-items:center;gap:4px;padding:22px 16px;font-weight:600;transition:border-color .12s,background-color .12s;display:grid}.dropzone:hover,.dropzone.over{border-color:var(--gold);background:var(--champagne-soft)}.dropzone svg{width:26px;height:26px;color:var(--navy-60)}.dropzone small{color:var(--navy-60);font-weight:500}.ki-note,.ki-busy,.ki-error{border-radius:var(--radius-sm);margin:14px 0 0;padding:10px 12px;font-size:13px;line-height:1.5}.ki-note{background:var(--surface);color:var(--navy-80)}.ki-note code{background:var(--white);border-radius:4px;padding:1px 4px;font-size:12px}.ki-busy{background:var(--champagne-soft);color:var(--navy)}.ki-error{color:var(--danger);background:#f8e9e7}.ki-result p{color:var(--navy-80);margin:8px 0 0}.ki-result h3{letter-spacing:.08em;text-transform:uppercase;color:var(--navy-60);margin:16px 0 4px;font-size:12px;font-weight:700}.ki-result ul{color:var(--navy-80);margin:0;padding-left:18px}.ki-result-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ki-result-head strong{font-family:var(--font-display);font-size:19px;font-weight:500}.badge{background:var(--surface);min-height:24px;color:var(--navy-80);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.gut{background:var(--navy);color:var(--white)}.badge.grob{background:var(--champagne-soft);color:var(--navy)}.muted{color:var(--navy-60);font-size:13px}.muted a{color:var(--navy);font-weight:600}.btn.danger,.btn.danger:hover{color:var(--danger);border-color:var(--danger)}.dialog.wide{height:min(90vh,980px)}.dialog.wide .dialog-body{min-height:0;padding:0;display:grid;overflow:hidden}.termine{grid-template-columns:290px 1fr;min-height:0;display:grid}.termine-liste{border-right:1px solid var(--line);background:var(--white);align-content:start;gap:12px;min-height:0;padding:16px;display:grid;overflow-y:auto}.termine-aktionen{gap:6px;display:flex}.termine-aktionen .btn.primary{flex:1}.speicherort{color:var(--navy-60);margin:0;font-size:12px;line-height:1.45}.termine-zugang{gap:10px;display:grid}.speicherort code{background:var(--surface);border-radius:4px;padding:1px 4px;font-size:11.5px}.termine-liste ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.termine-liste li>button{text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:52px 1fr;align-items:center;gap:10px;width:100%;padding:8px;display:grid}.termine-liste li>button:hover{background:var(--surface)}.termine-liste li>button.current{border-color:var(--line-strong);background:var(--surface);box-shadow:inset 3px 0 0 var(--gold)}.termine-liste img,.termine-liste .thumb-leer{object-fit:cover;background:var(--surface);border-radius:6px;width:52px;height:40px}.thumb-leer{color:var(--navy-60);align-content:center;place-items:center;gap:6px;font-size:12px;display:grid}.thumb-leer svg{width:20px;height:20px}.termin-meta{gap:1px;min-width:0;display:grid}.termin-meta strong{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.termin-meta small{color:var(--navy-60);font-size:12px}.termin-detail{min-width:0;min-height:0;padding:18px 22px 24px;overflow-y:auto}.termin{gap:14px;display:grid}.termin .field+.field,.termin .photo-picker+.field{margin-top:0}.termin-kopf{grid-template-columns:1.3fr 1fr 1fr;gap:12px;display:grid}.termin-kopf output{color:var(--navy-60);font-size:11.5px;font-weight:500}.termin-texte{grid-template-columns:1fr 1fr;gap:12px;display:grid}.termin p.muted{margin:-4px 0 0}.vorbereitung{background:var(--champagne-soft);border-radius:var(--radius);padding:12px 14px}.vorbereitung p{color:var(--navy);margin:0}.vorbereitung h3,.termin-h,.termin-h h3{letter-spacing:.08em;text-transform:uppercase;color:var(--navy-60);margin:10px 0 4px;font-size:12px;font-weight:700}.vorbereitung ul{margin:0;padding-left:18px}.termin-h{margin:6px 0 -4px}.entwuerfe-kopf{text-transform:none;letter-spacing:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.entwuerfe-kopf h3{margin:0}.entwuerfe-aktionen{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ki-anzahl{gap:4px;display:inline-flex}.ki-anzahl select{width:58px;min-height:38px}.vorlage-wahl{width:auto;min-height:38px;padding:0 10px;font-size:13.5px;font-weight:600}.entwuerfe{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.entwurf{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.entwurf.current{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.entwurf-bild{background:var(--surface);aspect-ratio:4/3;cursor:pointer;border:0;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.entwurf-bild img{object-fit:cover;background:var(--white);width:100%;height:100%}.entwurf-nr{background:var(--navy);min-width:24px;height:24px;color:var(--white);border-radius:999px;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;top:8px;left:8px}.entwurf-meta{align-content:start;gap:6px;padding:10px 12px 12px;display:grid}.entwurf-titel{border-radius:var(--radius-sm);font-family:var(--font-display);background:0 0;border:1px solid #0000;margin:-4px -6px 0;padding:4px 6px;font-size:16px;font-weight:500}.entwurf-titel:hover{border-color:var(--line)}.entwurf-titel:focus{border-color:var(--navy-40);outline:none}.entwurf-meta p{color:var(--navy-80);margin:0;font-size:12.5px;line-height:1.45}.entwurf-zeile{justify-content:space-between;align-items:center;gap:6px;margin-top:2px;display:flex}.entwurf-knoepfe{align-items:center;gap:2px;display:inline-flex}.entwurf-knoepfe .btn.primary{min-height:32px;margin-left:4px;padding:0 12px}.entwurf-knoepfe .btn.icon{width:32px;min-height:32px}.termin-fuss{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:4px;padding-top:12px;display:flex}.termin-fuss .btn.ghost{margin-left:auto}.termin-leiste{border:1px solid var(--line-strong);background:var(--white);border-radius:999px;flex-shrink:0;align-items:center;gap:2px;padding:2px 4px 2px 2px;display:inline-flex}.termin-leiste .btn.icon{border-radius:999px;width:30px;min-height:30px}.termin-leiste-name{background:var(--navy);color:var(--white);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;max-width:200px;min-height:30px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.termin-leiste-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.termin-leiste-name svg{width:15px;height:15px;color:var(--champagne);flex-shrink:0}.termin-leiste-nr{text-align:center;font-variant-numeric:tabular-nums;min-width:30px;font-size:12.5px;font-weight:700}@media (width<=1100px){.termin-kopf,.termin-texte{grid-template-columns:1fr}}@media (width<=860px){.termine{grid-template-columns:1fr;overflow-y:auto}.termin-detail,.termine-liste{overflow:visible}.termine-liste{border-right:0;border-bottom:1px solid var(--line)}.termin-leiste-name span{display:none}}.stage-present{border-radius:999px;min-height:40px}.build-failed{background:var(--white);border:1px solid var(--line-strong);text-align:center;z-index:4;border-radius:14px;width:min(430px,100% - 28px);padding:22px 22px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.build-failed strong{font-family:var(--font-display);font-size:19px;font-weight:500;line-height:1.25;display:block}.build-failed p{color:var(--navy-80);text-wrap:pretty;margin:8px 0 16px}.build-failed div{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.crash{align-content:center;justify-items:start;gap:14px;max-width:640px;min-height:100%;margin:0 auto;padding:32px 24px;display:grid}.crash h1{font-family:var(--font-display);margin:14px 0 0;font-size:32px;font-weight:400;line-height:1.15}.crash p{color:var(--navy-80);text-wrap:pretty;margin:0}.crash-actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.crash .crash-detail{color:var(--navy-40);word-break:break-word;font-size:12px}.app.present{grid-template-rows:1fr;grid-template-columns:1fr}.app.present>.topbar,.app.present>.panel{display:none}.present-layer{z-index:4;pointer-events:none;flex-direction:column;justify-content:space-between;padding:clamp(16px,3vw,44px);display:flex;position:absolute;inset:0}.present-top,.present-bottom{justify-content:space-between;gap:16px;display:flex}.present-top{align-items:flex-start}.present-bottom{align-items:flex-end}.present-logo{width:auto;height:clamp(24px,2.6vw,34px);display:block}.present-tools,.present-nav{pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;transition:opacity .4s;display:flex}.present-tools .btn,.present-nav .btn{border-radius:999px;min-height:40px}.present-tools .btn.icon,.present-nav .btn.icon{width:40px}.present-tools .btn[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:var(--white)}.present-layer.idle .present-tools:not(:focus-within),.present-layer.idle .present-nav:not(:focus-within){opacity:0;pointer-events:none}.present-text{max-width:min(720px,74%)}.present-kicker{letter-spacing:.28em;text-transform:uppercase;color:var(--navy-60);margin:0 0 10px;font-size:11px;font-weight:600}.present-text h1{font-family:var(--font-display);letter-spacing:-.012em;text-wrap:balance;margin:0;font-size:clamp(28px,4.2vw,60px);font-weight:400;line-height:1.04}.present-line{color:var(--navy-80);text-wrap:pretty;margin:12px 0 0;font-size:clamp(13.5px,1.25vw,17px)}@media (width<=620px){.app{grid-template-rows:auto 48vh 1fr}.topbar{flex-wrap:wrap;gap:2px 10px;padding:8px 10px 6px 12px}.design-name{min-width:0}.topbar-actions{justify-content:space-between;gap:2px;width:100%;margin-left:0}.topbar-actions .btn{width:36px;padding:0}.topbar-actions .menu-wrap .btn{width:44px}}.dialog.page{width:min(1120px,100%);max-height:min(92vh,1100px)}.blatt{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;gap:22px;display:grid}.blatt-optionen{gap:14px;display:grid}.blatt-optionen .dialog-lead{margin:0}.blatt-vorschau{background:var(--surface);border-radius:var(--radius);min-width:0;padding:16px}.blatt-rahmen{min-width:0}.blatt-seite{background:var(--white);border:1px solid var(--line);width:210mm}.dialog-foot-note{color:var(--navy-60);align-self:center;margin-right:auto;font-size:12.5px}@media (width<=860px){.blatt{grid-template-columns:1fr}.blatt-vorschau{padding:8px}}.sheet{width:210mm;min-height:292mm;color:var(--navy);font-family:var(--font-ui);-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;flex-direction:column;gap:7mm;padding:15mm 16mm 11mm;font-size:9.5pt;line-height:1.45;display:flex}:where(.sheet) :where(p,h1,h2,figure,dl,dd){margin:0}.sheet-head{border-bottom:.4mm solid var(--champagne);justify-content:space-between;align-items:flex-end;padding-bottom:5mm;display:flex}.sheet-head img{width:auto;height:9mm;display:block}.sheet-head p,.sheet-kicker,.sheet-note h2,.sheet-facts dt{letter-spacing:.2em;text-transform:uppercase;color:var(--navy-60);font-size:7.5pt;font-weight:600}.sheet-head p{text-align:right}.sheet-head p span{letter-spacing:0;text-transform:none;color:var(--navy-80);margin-top:.8mm;font-size:9pt;font-weight:500;display:block}.sheet-title h1{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin-top:1.5mm;font-size:26pt;font-weight:400;line-height:1.08}.sheet-line{color:var(--navy-80);margin-top:3mm;font-size:10.5pt}.sheet-kunde{color:var(--navy-60);margin-top:1.2mm}.sheet-main{grid-template-columns:112mm minmax(0,1fr);align-items:start;gap:9mm;display:grid}.sheet-views{gap:3mm;display:grid}.sheet-hero,.sheet-row figure{aspect-ratio:4/3;border:.3mm solid var(--line);background:#fff;border-radius:2mm;position:relative;overflow:hidden}.sheet-views img{object-fit:cover;width:100%;height:100%;display:block}.sheet-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm;display:grid}.sheet-row figcaption{letter-spacing:.16em;text-transform:uppercase;color:var(--navy-60);font-size:6.5pt;font-weight:600;position:absolute;bottom:1.3mm;left:2mm}.sheet-facts>div{border-bottom:.25mm solid var(--line);break-inside:avoid;padding:2.1mm 0}.sheet-facts>div:first-child{padding-top:0}.sheet-facts dt{letter-spacing:.14em}.sheet-facts dd{font-variant-numeric:tabular-nums;margin-top:.5mm;font-size:10.5pt;font-weight:600}.sheet-facts dd small{color:var(--navy-60);font-size:8.5pt;font-weight:500;display:block}.sheet-note{border-top:.3mm solid var(--line-strong);break-inside:avoid;padding-top:5mm}.sheet-note p{white-space:pre-wrap;margin-top:1.6mm;font-size:10pt}.sheet-foot{border-top:.3mm solid var(--line-strong);color:var(--navy-60);break-inside:avoid;justify-content:space-between;align-items:flex-end;gap:10mm;margin-top:auto;padding-top:4mm;font-size:7.5pt;display:flex}.sheet-foot p:first-child{max-width:122mm}.sheet-foot p:last-child{white-space:nowrap;color:var(--navy);font-weight:600}.print-root{display:none}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff;height:auto}body:has(>.print-root)>#root{display:none}.print-root{display:block}}
