:root{--bg: #ffffff;--panel: #f5f5f7;--panel-2: #f5f5f7;--surface: #f5f5f7;--border: #e5e5e7;--logo-gray: #8e8e93;--bg-dark: #0a0a0a;--text: #0a0a0a;--text-dim: #5c5c5e;--text-muted: #8e8e93;--accent: #f4a582;--accent-2: #dc8657;--tint: #fdf2ec;--warn: #d97706;--ok: #059669;--danger: #dc2626}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;color:var(--text);background:var(--bg);display:flex}#canvas-container{flex:1;position:relative;min-width:0}#canvas-container canvas{display:block}.viewer-toolbar{position:absolute;top:16px;left:16px;display:flex;gap:8px;align-items:stretch;z-index:5;pointer-events:none}.viewer-overlay-btn.history-btn{padding:8px 10px;pointer-events:auto}.viewer-overlay-btn.history-btn:disabled{opacity:.35;cursor:not-allowed}.viewer-overlay-btn.history-btn:disabled:hover{background:#ffffffd9;border-color:var(--border)}.view-toolbar{position:absolute;bottom:96px;left:16px;display:flex;gap:4px;z-index:9;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 2px 8px #0000000d}.view-btn{width:36px;height:32px;padding:0;background:transparent;border:1px solid transparent;border-radius:6px;font:inherit;font-size:14px;cursor:pointer;color:var(--text);display:inline-flex;align-items:center;justify-content:center}.view-btn:hover{background:#f4a58226;border-color:var(--accent)}.view-btn.active{background:var(--accent);border-color:var(--accent);font-weight:700}.view-btn[data-view=iso]{font-weight:700;font-size:11px;letter-spacing:.5px}.viewer-overlay{padding:10px 14px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:8px;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.3px;color:var(--text);box-shadow:0 2px 8px #0000000d}#dimensions-overlay{pointer-events:none}#dimensions-overlay .label{color:var(--text-dim);margin-right:6px}.viewer-overlay-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;max-width:40px;overflow:hidden;white-space:nowrap;cursor:pointer;pointer-events:auto;font-family:Inter,sans-serif;font-size:13px;font-weight:700;color:var(--text);-moz-appearance:none;appearance:none;-webkit-appearance:none;outline:none;transition:max-width .25s ease,background .15s,border-color .15s,color .15s}.viewer-overlay-btn .icon{width:16px;height:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim);transition:color .15s}.viewer-overlay-btn .label{opacity:0;transition:opacity .15s ease .05s}.viewer-overlay-btn:hover,.viewer-overlay-btn:focus-visible{max-width:220px;background:#fff}.viewer-overlay-btn:hover .icon,.viewer-overlay-btn:focus-visible .icon{color:inherit}.viewer-overlay-btn:hover .label,.viewer-overlay-btn:focus-visible .label{opacity:1}.viewer-overlay-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg-dark)}.viewer-overlay-btn.active .icon{color:inherit}.viewer-overlay-btn.active:hover,.viewer-overlay-btn.active:focus-visible{background:var(--accent-2);border-color:var(--accent-2)}#show-side-btn .label strong{font-weight:700}.show-side-flash{position:absolute;top:64px;left:50%;transform:translate(-50%);padding:8px 16px;background:var(--bg-dark);color:var(--bg);border-radius:999px;font-family:Inter,sans-serif;font-size:13px;font-weight:700;letter-spacing:.4px;box-shadow:0 6px 18px #0000002e;pointer-events:none;opacity:0;z-index:12;transition:opacity .18s ease}.show-side-flash.show{opacity:.96}.show-side-flash strong{color:var(--accent);margin-left:6px;font-weight:700}@media (prefers-reduced-motion: reduce){.show-side-flash{transition:none}}.viewer-overlay-help{display:inline-flex;align-items:center;cursor:pointer;pointer-events:auto;font-family:Inter,sans-serif;font-size:13px;font-weight:700;letter-spacing:.3px;background:var(--accent);border:1px solid var(--accent);color:var(--bg-dark);-moz-appearance:none;appearance:none;-webkit-appearance:none;outline:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.viewer-overlay-help:hover,.viewer-overlay-help:focus-visible{background:var(--accent-2);border-color:var(--accent-2);box-shadow:0 4px 12px #f4a58259}.viewer-help-wrap{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:5;pointer-events:none}.viewer-help-wrap .viewer-overlay-help{pointer-events:auto}#warning{position:absolute;top:24px;left:50%;transform:translate(-50%);padding:10px 36px 10px 14px;background:#d97706f2;border:1px solid var(--warn);border-radius:8px;color:#fff;font-size:13px;font-weight:500;max-width:480px;box-shadow:0 4px 12px #00000026;display:none;z-index:50;pointer-events:auto}#warning.show{display:block}#warning .warning-text{display:block;line-height:1.4}#warning .warning-close{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:24px;height:24px;padding:0;background:transparent;border:0;color:#ffffffd9;font-size:18px;line-height:1;cursor:pointer;border-radius:4px}#warning .warning-close:hover{background:#ffffff26;color:#fff}#warning .warning-close:focus-visible{outline:2px solid #fff;outline-offset:2px}#export-status{position:absolute;bottom:16px;left:16px;padding:8px 14px;background:#fffffff2;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;box-shadow:0 2px 8px #00000014;display:none}#export-status.show{display:block}#ui-panel{width:320px;background:var(--bg);border-left:1px solid var(--border);overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;min-height:0;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--accent) var(--panel)}#ui-panel::-webkit-scrollbar{width:8px}#ui-panel::-webkit-scrollbar-track{background:var(--bg)}#ui-panel::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px;border:1px solid var(--panel)}#ui-panel::-webkit-scrollbar-thumb:hover{background:var(--accent-2)}.panel-sticky-bottom{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--border);box-shadow:0 -8px 16px -10px #0000000f;margin-top:auto;z-index:5}.panel-sticky-bottom .actions{padding-bottom:12px}.panel-sticky-bottom .finish-cta{padding-top:0}.panel-header{padding:20px;background:var(--bg-dark);color:var(--bg);border-bottom:3px solid var(--accent)}.panel-header h1{margin:0 0 4px;font-family:Inter,sans-serif;font-size:16px;font-weight:700;letter-spacing:.2px;color:var(--bg)}.panel-header p{margin:0;font-size:12px;color:var(--logo-gray)}.section{padding:16px 20px;border-bottom:1px solid var(--border)}.section h2{margin:0 0 12px;font-family:Inter,sans-serif;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-dim)}.control{margin-bottom:12px}.control:last-child{margin-bottom:0}.control label{display:flex;justify-content:space-between;font-size:12px;color:var(--text);margin-bottom:6px}.control label .unit{color:var(--text-dim);font-variant-numeric:tabular-nums}.control .row{display:flex;align-items:center;gap:8px}.control input[type=range]{flex:1;height:4px;background:var(--panel-2);border-radius:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;cursor:pointer}.control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;transition:background .15s}.control input[type=range]::-webkit-slider-thumb:hover{background:var(--accent-2)}.control input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.control input[type=number]{width:64px;padding:4px 6px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:12px;font-variant-numeric:tabular-nums;text-align:right}.control input[type=number]:focus{outline:none;border-color:var(--accent)}.control input[type=number]::-webkit-inner-spin-button,.control input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.seg{display:flex;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:2px;gap:2px}.seg button{flex:1;padding:6px 8px;background:transparent;border:none;border-radius:4px;color:var(--text-dim);font-size:12px;cursor:pointer;transition:background .15s,color .15s}.seg button.active{background:var(--accent);color:var(--bg-dark);font-weight:700}.seg button:hover:not(.active){color:var(--text)}.toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{display:none}.toggle .switch{width:32px;height:18px;background:var(--panel-2);border-radius:9px;position:relative;transition:background .15s}.toggle .switch:after{content:"";position:absolute;width:14px;height:14px;background:var(--text-dim);border-radius:50%;top:2px;left:2px;transition:transform .15s,background .15s}.toggle input:checked+.switch{background:var(--accent)}.toggle input:checked+.switch:after{transform:translate(14px);background:var(--bg-dark)}.actions{padding:16px 20px}.btn{width:100%;padding:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:Inter,sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s;margin-bottom:8px}.btn:last-child{margin-bottom:0}.btn:hover{background:var(--border)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg-dark)}.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--bg-dark)}.btn.danger{background:#dc26260f;border-color:var(--danger, #dc2626);color:var(--danger, #dc2626)}.btn.danger:hover{background:var(--danger, #dc2626);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.holes-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.holes-toolbar .btn{margin-bottom:0;flex:0 1 auto}.holes-clear-row{display:flex;justify-content:flex-end;margin-top:8px}.holes-clear-row .btn{margin-bottom:0}.bevel-confirm-svg-container{background:#fafafa;border:1px solid var(--border);border-radius:8px;padding:16px;margin:12px 0;display:flex;flex-direction:column;gap:8px}.bevel-confirm-svg-container svg{width:100%;height:auto;display:block}.bevel-confirm-svg-caption{font-size:12px;color:var(--text-dim);text-align:center}.bevel-confirm-check{display:flex;align-items:center;gap:8px;padding:12px;background:#f4a58214;border:1px solid var(--accent, #f4a582);border-radius:8px;margin:12px 0;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.bevel-confirm-check input[type=checkbox]{width:18px;height:18px;margin:0}.bevel-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}#bevel-mode-panel.collapsed .bevel-cards,#bevel-mode-panel.collapsed .bevel-mode-intro{display:none}#bevel-mode-panel.collapsed:after{content:"Verstek-instellingen verborgen — klik om uit te klappen";display:block;font-size:12px;color:var(--text-dim);padding:8px 10px;background:var(--bg-soft, rgba(0,0,0,.04));border:1px dashed var(--border);border-radius:6px;cursor:pointer;text-align:center}.bevel-card{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--bg-soft, rgba(0,0,0,.04))}.bevel-card.active{border-color:var(--accent);background:#f4a58212}.bevel-card-label{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.bevel-card .seg{display:flex;gap:0;margin-bottom:8px}.bevel-card .seg button{flex:1;padding:4px 6px;font-size:12px}.bevel-card .field-row{display:flex;gap:6px;align-items:center;margin-top:6px}.bevel-card .field-row label{flex:1;font-size:11px;color:var(--text-dim)}.bevel-card .field-row input[type=number]{width:56px;padding:3px 6px;font-size:12px;border:1px solid var(--border);border-radius:4px}.bevel-card .side-row{display:flex;gap:4px;margin-top:4px}.bevel-card .side-row button{flex:1;padding:4px 6px;font-size:11px;background:#fff;border:1px solid var(--border);border-radius:4px;cursor:pointer}.bevel-card .side-row button.active{background:var(--accent);border-color:var(--accent);font-weight:600}.help-hint{position:fixed;width:280px;max-width:calc(100vw - 16px);z-index:250;pointer-events:auto;opacity:0;transform:translateY(-6px);transition:opacity .22s ease,transform .22s ease}.help-hint.show{opacity:1;transform:translateY(0)}.help-hint.hide{opacity:0;transform:translateY(-6px)}.help-hint-arrow{position:absolute;top:-10px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:12px solid var(--accent, #f4a582);transform:translate(-50%);animation:help-hint-arrow-pulse 1.4s ease-in-out infinite;filter:drop-shadow(0 -2px 4px rgba(244,165,130,.35))}@keyframes help-hint-arrow-pulse{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-4px)}}.help-hint-card{position:relative;background:#fff;border:2px solid var(--accent, #f4a582);border-radius:12px;padding:16px 36px 14px 16px;box-shadow:0 12px 28px #0000002e}.help-hint-close{position:absolute;top:6px;right:8px;width:24px;height:24px;padding:0;background:transparent;border:0;font-size:18px;line-height:1;color:var(--text-dim);cursor:pointer;border-radius:4px}.help-hint-close:hover{background:var(--bg-soft, rgba(0,0,0,.04));color:var(--text)}.help-hint-title{margin:0 0 4px;font-weight:700;font-size:15px;color:var(--text);cursor:pointer}.help-hint-body{margin:0 0 12px;font-size:13px;color:var(--text);line-height:1.4;cursor:pointer}.help-hint-title:hover,.help-hint-body:hover{color:var(--accent-2, #dc8657)}.help-hint-dismiss{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.help-hint-dismiss input[type=checkbox]{margin:0}@media (prefers-reduced-motion: reduce){.help-hint{transition:none}.help-hint-arrow{animation:none}}.dim-hint{position:fixed;width:260px;max-width:calc(100vw - 16px);z-index:250;pointer-events:auto;opacity:0;transform:translate(6px);transition:opacity .22s ease,transform .22s ease}.dim-hint.show{opacity:1;transform:translate(0)}.dim-hint.hide{opacity:0;transform:translate(6px)}.dim-hint-arrow{position:absolute;top:50%;right:-10px;width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:12px solid var(--accent, #f4a582);transform:translateY(-50%);animation:dim-hint-arrow-pulse 1.4s ease-in-out infinite;filter:drop-shadow(2px 0 4px rgba(244,165,130,.35))}@keyframes dim-hint-arrow-pulse{0%,to{transform:translateY(-50%)}50%{transform:translate(4px,-50%)}}.dim-hint--below .dim-hint-arrow{top:-10px;right:auto;left:50%;border-top:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:12px solid var(--accent, #f4a582);transform:translate(-50%);animation:dim-hint-arrow-pulse-vert 1.4s ease-in-out infinite;filter:drop-shadow(0 -2px 4px rgba(244,165,130,.35))}@keyframes dim-hint-arrow-pulse-vert{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-4px)}}.dim-hint-card{position:relative;background:#fff;border:2px solid var(--accent, #f4a582);border-radius:12px;padding:14px 32px 12px 14px;box-shadow:0 12px 28px #0000002e}.dim-hint-close{position:absolute;top:4px;right:6px;width:24px;height:24px;padding:0;background:transparent;border:0;font-size:18px;line-height:1;color:var(--text-dim);cursor:pointer;border-radius:4px}.dim-hint-close:hover{background:var(--bg-soft, rgba(0,0,0,.04));color:var(--text)}.dim-hint-title{margin:0 0 4px;font-weight:700;font-size:14px;color:var(--text)}.dim-hint-body{margin:0 0 10px;font-size:12.5px;color:var(--text);line-height:1.4}.dim-hint-dismiss{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.dim-hint-dismiss input[type=checkbox]{margin:0}.dim-hint-target{animation:dim-hint-target-pulse 1.5s ease-in-out infinite;border-radius:8px}@keyframes dim-hint-target-pulse{0%,to{box-shadow:0 0 #f4a5828c}50%{box-shadow:0 0 0 10px #f4a58200}}@media (prefers-reduced-motion: reduce){.dim-hint{transition:none}.dim-hint-arrow,.dim-hint--below .dim-hint-arrow,.dim-hint-target{animation:none}}.locale-picker{display:inline-block}.locale-picker-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;max-width:40px;overflow:hidden;white-space:nowrap;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 8px #0000000d;font-family:Inter,sans-serif;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;pointer-events:auto;transition:max-width .25s ease,background .15s,border-color .15s}.locale-picker-btn:hover,.locale-picker-btn:focus-visible{max-width:220px;background:#fff}.locale-picker-btn .locale-flag{font-size:16px;line-height:1;width:16px;height:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.locale-picker-btn .locale-code,.locale-picker-btn .locale-caret{opacity:0;transition:opacity .15s ease .05s}.locale-picker-btn:hover .locale-code,.locale-picker-btn:hover .locale-caret,.locale-picker-btn:focus-visible .locale-code,.locale-picker-btn:focus-visible .locale-caret{opacity:1}.locale-picker-btn .locale-code{font-weight:700;letter-spacing:.5px}.locale-picker-btn .locale-caret{font-size:10px;opacity:0}.locale-picker-dropdown{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px #0000001f;padding:4px;min-width:200px}.locale-picker-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:4px;font:inherit;font-size:13px;cursor:pointer;text-align:left;color:var(--text)}.locale-picker-item:hover{background:var(--bg-soft, rgba(0,0,0,.04))}.locale-picker-item[aria-current=true]{background:#f4a5821f;font-weight:600}.locale-picker-item .locale-flag{font-size:18px;line-height:1}.customer-choice-options{display:flex;flex-direction:column;gap:10px;margin-top:8px}.customer-choice-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;background:var(--bg-soft, rgba(0,0,0,.04));border:1px solid var(--border);border-radius:8px;cursor:pointer;font:inherit;text-align:left;transition:background .12s ease,border-color .12s ease}.customer-choice-option:hover{background:#f4a58214;border-color:var(--accent)}.customer-choice-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.customer-choice-option strong{font-size:15px}.customer-choice-option span{font-size:13px;color:var(--text-dim)}.pattern-anchor-info{margin:0 0 14px;padding:10px 12px;background:var(--bg-soft, rgba(0,0,0,.04));border-left:3px solid var(--accent);border-radius:4px;font-size:13px}.pattern-anchor-info .muted{color:var(--text-dim);margin-right:4px}.pattern-form .row{display:flex;gap:8px;align-items:center}.pattern-form label.field{display:block;margin-bottom:10px;font-size:13px}.pattern-form label.field>span{display:block;color:var(--text-dim);margin-bottom:4px}.pattern-form input[type=number]{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font:inherit}.pattern-preview{margin:12px 0;padding:10px 12px;background:var(--bg-soft, rgba(0,0,0,.04));border-radius:6px;font-size:13px;line-height:1.4;transition:background .2s ease}@keyframes pattern-preview-buzz{0%,to{background:var(--bg-soft, rgba(0,0,0,.04));box-shadow:none;transform:translate(0)}10%,30%,50%,70%{background:#dc26262e;box-shadow:0 0 0 2px #dc262673;transform:translate(-2px)}20%,40%,60%,80%{background:#dc26262e;box-shadow:0 0 0 2px #dc262673;transform:translate(2px)}}.pattern-preview.buzz{animation:pattern-preview-buzz .5s ease-out 1}@media (prefers-reduced-motion: reduce){.pattern-preview.buzz{animation-duration:1ms}}.pattern-preview strong{font-size:18px;display:block;margin-bottom:2px}.pattern-preview .muted{color:var(--text-dim);font-size:12px}#config-sidebar{width:160px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.config-sidebar-header{padding:18px 14px 10px;font-family:Inter,sans-serif;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-dim)}.config-sidebar-list{flex:1;overflow-y:auto;padding:0 10px 10px;display:flex;flex-direction:column;gap:8px}.config-sidebar-list>.config-add-btn{width:100%;margin:0;flex-shrink:0}.config-card{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;font-size:12px}.config-card:hover{border-color:var(--accent-2)}.config-card.active{border-color:var(--accent);background:#fffaeb;box-shadow:inset 3px 0 0 var(--accent)}.config-card .config-card-top{display:flex;align-items:center;gap:6px}.config-card .config-status{width:10px;height:10px;border-radius:50%;background:var(--ok);flex-shrink:0}.config-card.invalid .config-status{background:var(--danger)}.config-card.warning .config-status{background:var(--warn)}.config-card .config-name{font-weight:600;color:var(--text);font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card .config-name[contenteditable=true]{outline:2px solid var(--accent);outline-offset:1px;background:#fff;padding:0 2px;border-radius:3px;white-space:normal}.config-card .config-product-tag{font-size:10px;color:var(--text-dim);background:var(--panel-2);padding:1px 6px;border-radius:3px;align-self:flex-start;text-transform:uppercase;letter-spacing:.4px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card .config-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:6px}.config-card .config-qty{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim)}.config-card .config-qty input{width:38px;padding:2px 4px;text-align:center;border:1px solid var(--border);border-radius:4px;font:inherit;color:var(--text);background:var(--bg)}.config-card .config-actions{display:inline-flex;gap:2px}.config-card .config-actions .icon-btn{width:22px;height:22px;padding:0;font-size:12px;line-height:1}.add-config-card{max-width:460px;padding:26px 30px}.add-config-card h2{margin:0 0 4px;font-size:18px;font-weight:700}.add-config-card .modal-sub{margin-bottom:16px}.add-config-option{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:8px;margin-bottom:12px;cursor:pointer;transition:border-color .15s,background .15s}.add-config-option:hover{border-color:var(--accent-2)}.add-config-option.selected{border-color:var(--accent);background:#fffaeb}.add-config-option input[type=radio]{margin:3px 0 0;flex-shrink:0;cursor:pointer}.add-config-option-body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.add-config-option-body strong{font-size:13px;font-weight:700;color:var(--text)}.add-config-option-meta{font-size:12px;color:var(--accent-2);font-weight:700}.add-config-option-help{font-size:12px;color:var(--text-dim);line-height:1.4}.add-config-product-pickers{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}.add-config-product-pickers[hidden]{display:none}.add-config-product-pickers select{width:100%;padding:7px 9px;font-family:Inter,sans-serif;font-size:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.add-config-product-pickers select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f4a58233}.add-config-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.add-config-buttons .btn{width:auto;padding:9px 18px;margin:0}#add-config-feedback{margin-bottom:10px}.config-strip{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.config-tab{display:grid;grid-template-columns:14px 1fr auto auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);cursor:pointer;transition:border-color .15s,background .15s;font-size:13px}.config-tab:hover{border-color:var(--accent-2)}.config-tab.active{border-color:var(--accent);background:#fffaeb}.config-tab .config-status{width:10px;height:10px;border-radius:50%;background:var(--ok);flex-shrink:0}.config-tab.invalid .config-status{background:var(--danger)}.config-tab.warning .config-status{background:var(--warn)}.config-tab .config-name{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-tab .config-name[contenteditable=true]{outline:2px solid var(--accent);outline-offset:2px;background:#fff;padding:0 2px;border-radius:3px}.config-tab .config-qty{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim)}.config-tab .config-qty input{width:36px;padding:2px 4px;text-align:center;border:1px solid var(--border);border-radius:4px;font:inherit;color:var(--text);background:var(--bg)}.config-tab .config-actions{display:inline-flex;gap:4px}.config-tab .config-actions .icon-btn{width:22px;height:22px;padding:0;font-size:12px;line-height:1}.config-add-btn{align-self:stretch;padding:8px;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--text-dim);font-family:inherit;font-size:12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.config-add-btn:hover{border-color:var(--accent);color:var(--text);background:#fffaeb}.holes-list{margin-top:12px;display:flex;flex-direction:column;gap:6px}.holes-empty{font-size:12px;color:var(--text-dim);text-align:center;padding:12px 0;font-style:italic}.hole-item{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;overflow:hidden}.hole-item.editing{border-color:var(--accent);scroll-margin-top:12px;scroll-margin-bottom:110px}@keyframes hole-shake-invalid{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(6px)}45%{transform:translate(-4px)}60%{transform:translate(4px)}75%{transform:translate(-2px)}90%{transform:translate(2px)}}.hole-item.editing.shake-invalid{animation:hole-shake-invalid .52s cubic-bezier(.36,.07,.19,.97) both;border-color:var(--danger);background:var(--danger-soft, rgba(220, 38, 38, .08));box-shadow:0 0 0 2px #dc262640}.hole-item.editing.shake-invalid .hole-item-header,.hole-item.editing.shake-invalid .hole-edit{background:transparent}.hole-item.editing.shake-invalid input[type=range]::-webkit-slider-thumb,.hole-item.editing.shake-invalid input[type=number]{border-color:var(--danger)}.hole-item.editing.shake-invalid input[aria-invalid=true]{border-color:var(--danger);background:var(--danger-soft, rgba(220, 38, 38, .08))}@media (prefers-reduced-motion: reduce){.hole-item.editing.shake-invalid{animation:none}}.hole-item.invalid{border-color:var(--danger);background:var(--danger-soft, rgba(220,38,38,.08))}.hole-item.warning{border-color:var(--warn)}.hole-item-validation{font-size:11px;padding:4px 10px 8px;color:var(--danger);line-height:1.4}.hole-item.warning .hole-item-validation{color:var(--warn)}.validation-banner{margin-top:12px;padding:10px 12px;border-radius:6px;font-size:12px;line-height:1.4}.validation-banner.invalid{background:var(--danger-soft, rgba(220,38,38,.08));border:1px solid var(--danger);color:var(--danger)}.validation-banner.warning{background:#d9770614;border:1px solid var(--warn);color:var(--warn)}.validation-banner strong{font-weight:700}.validation-banner.project-banner{margin:12px 20px}.validation-banner.project-banner .config-link{color:inherit;text-decoration:underline;cursor:pointer;font-weight:700}.validation-banner.project-banner .config-link:hover{text-decoration:none}.hole-item-header{display:flex;align-items:center;gap:6px;padding:8px 10px}.hole-num{font-family:Inter,sans-serif;font-size:11px;font-weight:700;background:var(--accent);color:var(--bg-dark);padding:2px 6px;border-radius:4px;min-width:18px;text-align:center;flex-shrink:0}.hole-summary{flex:1;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hole-summary .type-tag{color:var(--text-dim);font-size:11px;margin-right:4px}.hole-actions{display:flex;gap:2px;flex-shrink:0}.icon-btn{width:24px;height:24px;padding:0;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--logo-gray);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s}.icon-btn:hover{background:var(--bg);border-color:var(--border);color:var(--text)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.icon-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.hole-edit{padding:10px;border-top:1px solid var(--border);background:var(--panel);display:none}.hole-item.editing .hole-edit{display:block}.hole-edit .control{margin-bottom:10px}.hole-edit .control:last-child{margin-bottom:0}.hole-edit-done{width:100%;padding:6px;background:var(--accent);color:var(--bg-dark);font-family:Inter,sans-serif;font-weight:700;border:none;border-radius:4px;font-size:12px;cursor:pointer;margin-top:4px}.hole-edit-done:hover{background:var(--accent-2)}.finish-cta{padding:0 20px 24px}.finish-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:16px;background:var(--accent);border:1px solid var(--accent);border-radius:10px;color:var(--bg-dark);font-family:Inter,sans-serif;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #f4a58259;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.finish-btn:hover{background:var(--accent-2);border-color:var(--accent-2);transform:translateY(-1px);box-shadow:0 6px 18px #f4a58273}.finish-btn:active{transform:translateY(0)}.finish-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--bg-dark);flex-shrink:0}.finish-icon svg{width:100%;height:100%;display:block}.corner-non-uniform-notice{font-size:11px;font-weight:700;color:var(--accent-2);background:#fffaeb;border:1px solid var(--accent);border-radius:6px;padding:6px 10px}.corner-modal-card{max-width:560px}.corner-modal-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.corner-modal-buttons .btn{width:auto;padding:9px 18px;margin:0}.corner-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.corner-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:border-color .15s,background .15s}.corner-card.invalid{border-color:var(--danger);background:var(--danger-soft, rgba(220, 38, 38, .08))}.corner-card-title{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px}.corner-radio-group{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.corner-radio-group label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);cursor:pointer;padding:2px 0}.corner-radio-group input[type=radio]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer;margin:0}.corner-card-size{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}.corner-card-size .row{display:flex;align-items:center;gap:6px}.corner-card-size input[type=range]{flex:1;height:4px;background:var(--panel-2);border-radius:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.corner-card-size input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer}.corner-card-size .corner-card-size-val{font-size:11px;font-weight:700;color:var(--accent-2);font-variant-numeric:tabular-nums;width:72px;flex-shrink:0;text-align:right}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-backdrop[hidden]{display:none}.modal{position:relative;background:var(--bg);border-radius:12px;padding:28px 32px;max-width:480px;width:100%;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 24px 48px #00000040;font-family:Inter,sans-serif;color:var(--text)}.modal h2{margin:0 0 4px;font-family:Inter,sans-serif;font-size:22px;font-weight:700;color:var(--text)}.modal-sub{margin:0 0 20px;font-size:13px;color:var(--text-dim)}.modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;background:transparent;border:none;border-radius:6px;font-size:22px;line-height:1;color:var(--text-dim);cursor:pointer;transition:background .15s,color .15s}.modal-close:hover{background:var(--panel-2);color:var(--text)}#finish-form{display:flex;flex-direction:column;gap:12px}#finish-form>label{display:flex;flex-direction:column;gap:4px;font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:var(--text)}#finish-form .req{color:var(--accent-2);margin-left:2px}#finish-form label.consent{flex-direction:row;align-items:flex-start;font-weight:400;font-size:12px;gap:8px;margin-top:4px;color:var(--text-dim)}#finish-form label.consent input{margin-top:2px}#finish-form input[type=text],#finish-form input[type=email],#finish-form input[type=tel],#finish-form textarea{font-family:Inter,sans-serif;font-size:14px;font-weight:400;padding:9px 11px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);transition:border-color .15s;width:100%;box-sizing:border-box}#finish-form input:focus,#finish-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f4a58233}#finish-form input.invalid,#finish-form textarea.invalid{border-color:var(--danger)}.field-error{display:block;font-size:11px;font-weight:400;color:var(--danger);min-height:0}.field-error:not(:empty){min-height:14px;margin-top:2px}.char-count{font-size:11px;font-weight:400;color:var(--text-dim);text-align:right}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-feedback{padding:10px 12px;border-radius:6px;font-size:13px;font-weight:400;display:none}.modal-feedback.show{display:block}.modal-feedback.success{background:#0596691a;border:1px solid var(--ok);color:#047857}.modal-feedback.error{background:#dc26261a;border:1px solid var(--danger);color:#b91c1c}.submit-btn{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;padding:12px;margin-top:4px;margin-bottom:0}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.submit-spinner{width:14px;height:14px;border:2px solid rgba(10,10,10,.25);border-top-color:var(--bg-dark);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.admin-toolbar{position:absolute;top:16px;right:16px;display:flex;gap:8px;align-items:stretch;z-index:5;pointer-events:none}.admin-toolbar>*{pointer-events:auto}.admin-toolbar .viewer-overlay-btn{font-family:Inter,sans-serif}.admin-toolbar .viewer-overlay-btn:hover,.admin-toolbar .viewer-overlay-btn:focus-visible{max-width:200px}.admin-toolbar .viewer-overlay-btn.logged-in{background:var(--accent);border-color:var(--accent);color:var(--bg-dark)}.admin-toolbar .viewer-overlay-btn.logged-in .icon{color:inherit}.admin-toolbar .viewer-overlay-btn.logged-in:hover{background:var(--accent-2);border-color:var(--accent-2)}.admin-login-card{max-width:360px;padding:24px 28px}.admin-login-card h2{margin:0 0 4px;font-size:18px;font-weight:700}.admin-login-card .modal-sub{margin-bottom:18px}.admin-login-card label{display:flex;flex-direction:column;gap:4px;font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:var(--text);margin-bottom:12px}.admin-login-card input{font-family:Inter,sans-serif;font-size:14px;font-weight:400;padding:9px 11px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);transition:border-color .15s}.admin-login-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f4a58233}.admin-login-card .err{background:#dc262614;color:var(--danger);border:1px solid var(--danger);padding:8px 12px;border-radius:6px;font-size:12px;margin-bottom:12px;display:none}.admin-login-card .err.show{display:block}.admin-login-card .submit-row{display:flex;gap:8px;margin-top:4px}.admin-login-card .submit-row .btn{flex:1;padding:10px;font-size:13px}.admin-logged-in-info{padding:12px;background:var(--panel-2);border-radius:6px;font-size:13px;margin-bottom:12px}.admin-logged-in-info strong{color:var(--text)}.product-picker{padding:14px 20px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.product-picker label.field-label{display:block;font-family:Inter,sans-serif;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-dim);margin:0 0 8px}.product-picker select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--text);background:var(--bg);cursor:pointer}.product-picker select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f4a58233}.profile-size-control label.field-label{display:block;font-family:Inter,sans-serif;font-size:11px;font-weight:400;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-dim);margin:0 0 8px}.profile-size-control select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:var(--text);background:var(--bg);cursor:pointer}.profile-size-control select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f4a58233}.product-info{margin-top:8px;font-size:11px;color:var(--text-dim);line-height:1.5}.product-info strong{color:var(--text);font-weight:700}.price-bar{position:absolute;left:16px;right:16px;bottom:16px;background:var(--bg-dark);color:var(--bg);border-radius:10px;padding:12px 18px;box-shadow:0 8px 24px #0000002e;font-family:Inter,sans-serif;z-index:8;transition:max-height .3s ease;overflow:hidden;max-height:64px}.price-bar.expanded{max-height:600px}.price-bar-row{display:flex;align-items:center;gap:16px;cursor:pointer}.price-bar .price-label{font-size:12px;color:var(--logo-gray);letter-spacing:.6px;text-transform:uppercase;font-weight:700}.price-bar .price-main{flex:1;display:flex;align-items:baseline;gap:14px}.price-bar .total-excl{font-size:22px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.5px}.price-bar .total-incl{font-size:12px;color:var(--logo-gray);font-variant-numeric:tabular-nums}.price-bar .total-project{font-size:12px;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;margin-left:8px}.price-bar .toggle{background:transparent;border:1px solid var(--logo-gray);color:var(--bg);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s}.price-bar .toggle:hover{border-color:var(--accent);color:var(--accent)}.price-breakdown{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;display:grid;grid-template-columns:1fr auto;row-gap:6px;column-gap:16px}.price-breakdown .k{color:var(--logo-gray)}.price-breakdown .v{color:var(--bg);font-variant-numeric:tabular-nums;text-align:right}.price-breakdown .section-row{color:var(--accent);font-weight:700;padding-top:4px}.price-breakdown .total-row{font-weight:700;color:var(--accent);padding-top:6px;border-top:1px solid rgba(255,255,255,.1);margin-top:4px}.price-warnings{margin-top:8px;font-size:11px;color:#fbbf24}.price-bar-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:4px 8px;border-radius:6px;transition:background .15s}.price-bar-toggle:hover{background:#ffffff0f}.price-bar-toggle input{display:none}.price-bar-toggle .switch{width:32px;height:18px;background:#ffffff2e;border:1px solid rgba(255,255,255,.25);border-radius:9px;position:relative;transition:background .15s,border-color .15s;flex-shrink:0}.price-bar-toggle .switch:after{content:"";position:absolute;width:14px;height:14px;background:#f5f5f5;border-radius:50%;top:1px;left:1px;transition:transform .15s,background .15s}.price-bar-toggle input:checked+.switch{background:var(--accent);border-color:var(--accent)}.price-bar-toggle input:checked+.switch:after{transform:translate(14px);background:var(--bg-dark)}.price-bar-toggle .label{font-size:11px;font-weight:700;color:var(--logo-gray);letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}.price-bar-toggle .label small{font-size:10px;font-weight:700;color:var(--accent);margin-left:4px;letter-spacing:.3px}.price-bar-toggle input:checked~.label{color:var(--bg)}.price-bar-toggle:focus-within{outline:2px solid var(--accent);outline-offset:2px}.edit-banner{position:absolute;top:0;left:0;right:0;padding:8px 44px 8px 16px;background:var(--accent);color:var(--bg-dark);font-family:Inter,sans-serif;font-size:13px;font-weight:700;text-align:center;z-index:50;box-shadow:0 2px 8px #00000014}.edit-banner[hidden]{display:none}.edit-banner .meta{font-weight:400;opacity:.85;margin-left:8px}.edit-banner-close{position:absolute;top:4px;right:8px;width:28px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:6px;font-size:18px;line-height:1;color:var(--bg-dark);cursor:pointer;transition:background .15s,border-color .15s}.edit-banner-close:hover,.edit-banner-close:focus-visible{background:#0a0a0a1a;border-color:var(--bg-dark);outline:none}.howto-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182833;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:100;opacity:0;transition:opacity .2s ease}.howto-backdrop.show{opacity:1}.howto-backdrop[hidden]{display:none!important}.howto-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);width:min(780px,94vw);height:min(580px,86vh);background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 64px #00000047,0 4px 16px #00000014;z-index:101;display:flex;flex-direction:column;overflow:hidden;opacity:0;transition:opacity .22s ease,transform .22s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.howto-modal.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.howto-modal[hidden]{display:none!important}.howto-modal.dimmed{opacity:.18;pointer-events:none}.howto-backdrop.dimmed{opacity:0;pointer-events:none}.howto-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--panel);flex-shrink:0}.howto-titles{flex:1;min-width:0}.howto-header h2{margin:0;font-size:16px;font-weight:700;color:var(--text);letter-spacing:.2px}.howto-subtitle{margin:3px 0 0;font-size:12.5px;font-weight:400;line-height:1.45;color:var(--text-dim)}.howto-close{width:32px;height:32px;border:1px solid var(--border);background:var(--bg);border-radius:6px;cursor:pointer;font-size:20px;line-height:1;color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.howto-close:hover,.howto-close:focus-visible{background:var(--panel-2);color:var(--text);border-color:var(--text-dim);outline:none}.howto-body{flex:1;min-height:0;display:flex}.howto-tabs{width:200px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);overflow-y:auto;padding:8px 0}.howto-tab{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:transparent;text-align:left;font-family:inherit;font-size:13px;color:var(--text);cursor:pointer;border-left:3px solid transparent;transition:background .15s,border-color .15s,color .15s}.howto-tab:hover{background:var(--panel-2)}.howto-tab.active{background:var(--bg);border-left-color:var(--accent);font-weight:700}.howto-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.howto-tab .num{width:22px;height:22px;border-radius:50%;background:var(--panel-2);color:var(--text-dim);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.howto-tab.active .num{background:var(--accent);color:var(--bg-dark)}.howto-content{flex:1;min-width:0;padding:22px 26px;overflow-y:auto;scroll-behavior:smooth}.howto-content h3{margin:0 0 6px;font-size:18px;font-weight:700;color:var(--text)}.howto-content .lead{margin:0 0 14px;font-size:14px;color:var(--text-dim);line-height:1.55}.howto-content p{margin:10px 0;font-size:14px;line-height:1.6;color:var(--text)}.howto-content ul{margin:8px 0;padding-left:20px}.howto-content li{margin:4px 0;font-size:14px;line-height:1.55}.howto-show-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:9px 14px;background:var(--accent);color:var(--bg-dark);border:1px solid var(--accent);border-radius:6px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.howto-show-btn:hover,.howto-show-btn:focus-visible{background:var(--accent-2);border-color:var(--accent-2);box-shadow:0 4px 12px #f4a58259;outline:none}.howto-footer{padding:10px 18px;border-top:1px solid var(--border);background:var(--panel);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.howto-footer .pager{display:flex;gap:8px}.howto-footer .pager button{padding:7px 12px;border:1px solid var(--border);background:var(--bg);border-radius:6px;font-family:inherit;font-size:12px;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}.howto-footer .pager button:hover:not([disabled]){background:var(--panel-2)}.howto-footer .pager button[disabled]{opacity:.4;cursor:not-allowed}.howto-footer .indicator{font-size:12px;color:var(--text-dim)}.help-pulse{position:relative;z-index:102;animation:helpPulse .65s ease-out 0s 3;border-radius:8px}.price-bar.help-pulse,.viewer-toolbar.help-pulse,.admin-toolbar.help-pulse{position:absolute}@keyframes helpPulse{0%{outline:0 solid rgba(244,165,130,0);outline-offset:0px;box-shadow:0 0 #f4a58200,0 0 #f4a58200}18%{outline:4px solid rgba(244,165,130,1);outline-offset:3px;box-shadow:0 0 0 6px #f4a5828c,0 0 22px 6px #f4a582bf}to{outline:4px solid rgba(244,165,130,0);outline-offset:10px;box-shadow:0 0 0 24px #f4a58200,0 0 32px 10px #f4a58200}}.viewer-overlay-btn.help-pulse{animation:helpPulse .65s ease-out 0s 3,helpFlash .65s ease-out 0s 3}@keyframes helpFlash{0%,to{background:var(--bg);border-color:var(--border);color:var(--text)}18%,60%{background:var(--accent);border-color:var(--accent-2);color:var(--bg-dark)}}@media (prefers-reduced-motion: reduce){.howto-modal,.howto-backdrop{transition:none}.help-pulse{animation:none;outline:4px solid var(--accent);outline-offset:4px}.viewer-overlay-btn.help-pulse{animation:none;background:var(--accent);border-color:var(--accent-2);color:var(--bg-dark)}}@media (max-width: 640px){.howto-modal{width:96vw;height:92vh}.howto-body{flex-direction:column}.howto-tabs{width:100%;border-right:none;border-bottom:1px solid var(--border);display:flex;overflow-x:auto;padding:4px}.howto-tab{flex-shrink:0;padding:8px 12px;border-left:none;border-bottom:3px solid transparent}.howto-tab.active{border-left-color:transparent;border-bottom-color:var(--accent)}.howto-content{padding:16px 18px}}.ai-input-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 24px);margin:12px;padding:11px 14px;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.2px;color:var(--bg-dark);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);border:1px solid var(--accent-2);border-radius:8px;cursor:pointer;transition:transform .12s,box-shadow .15s,background .15s;box-shadow:0 2px 6px #f4a58240}.ai-input-btn:hover,.ai-input-btn:focus-visible{box-shadow:0 4px 12px #f4a58266;outline:none;transform:translateY(-1px)}.ai-input-btn:active{transform:translateY(0)}.ai-input-btn svg{flex-shrink:0}.ai-input-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182859;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:200;opacity:0;transition:opacity .2s ease}.ai-input-backdrop.show{opacity:1}.ai-input-backdrop[hidden]{display:none!important}.ai-input-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);width:min(620px,94vw);max-height:88vh;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 64px #0000004d,0 4px 16px #0000001a;z-index:201;display:flex;flex-direction:column;overflow:hidden;opacity:0;transition:opacity .22s ease,transform .22s ease;font-family:inherit}.ai-input-modal.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.ai-input-modal[hidden]{display:none!important}.ai-input-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.ai-input-header h2{margin:0;font-size:16px;font-weight:700;color:var(--text)}.ai-input-subtitle{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-dim)}.ai-input-close{width:32px;height:32px;flex-shrink:0;border:1px solid var(--border);background:var(--bg);border-radius:6px;cursor:pointer;font-size:20px;line-height:1;color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.ai-input-close:hover,.ai-input-close:focus-visible{background:var(--panel-2);color:var(--text);border-color:var(--text-dim);outline:none}.ai-input-body{padding:18px 20px;overflow-y:auto;flex:1;min-height:0}.ai-input-label{display:block;font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px}.ai-input-textarea{width:100%;padding:12px 14px;font-family:inherit;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);border:1.5px solid var(--border);border-radius:8px;resize:vertical;min-height:96px;transition:border-color .15s,box-shadow .15s}.ai-input-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f4a5822e}.ai-input-meta{display:flex;justify-content:flex-end;margin-top:4px}.ai-input-counter{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums}.ai-input-counter.over{color:var(--danger);font-weight:700}.ai-input-examples{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px}.ai-input-examples-label{font-size:12px;color:var(--text-dim);font-weight:600}.ai-input-example{padding:5px 10px;font-family:inherit;font-size:11.5px;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.ai-input-example:hover,.ai-input-example:focus-visible{background:var(--bg);border-color:var(--accent);color:var(--text);outline:none}.ai-input-feedback{margin-top:14px;padding:0;font-size:13px;line-height:1.5;min-height:1.2em;transition:color .15s}.ai-input-feedback.success{padding:10px 12px;color:var(--ok);background:#05966914;border:1px solid rgba(5,150,105,.25);border-radius:6px}.ai-input-feedback.error{padding:10px 12px;color:var(--danger);background:#dc26260f;border:1px solid rgba(220,38,38,.25);border-radius:6px}.ai-input-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:var(--panel)}.ai-input-cancel,.ai-input-submit{padding:9px 16px;font-family:inherit;font-size:13px;font-weight:700;border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.ai-input-cancel{color:var(--text);background:var(--bg);border:1px solid var(--border)}.ai-input-cancel:hover,.ai-input-cancel:focus-visible{background:var(--panel-2);outline:none}.ai-input-submit{display:inline-flex;align-items:center;gap:8px;color:var(--bg-dark);background:var(--accent);border:1px solid var(--accent-2);min-width:180px;justify-content:center}.ai-input-submit:hover:not(:disabled),.ai-input-submit:focus-visible:not(:disabled){background:var(--accent-2);box-shadow:0 4px 12px #f4a58266;outline:none}.ai-input-submit:disabled{opacity:.5;cursor:not-allowed}.ai-input-spinner{width:14px;height:14px;border:2px solid rgba(10,10,10,.25);border-top-color:var(--bg-dark);border-radius:50%;animation:ai-spin .7s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.ai-input-modal,.ai-input-backdrop{transition:none}.ai-input-spinner{animation:none;opacity:.5}}@media (max-width: 640px){.ai-input-modal{width:96vw;max-height:92vh}.ai-input-footer{flex-direction:column-reverse}.ai-input-cancel,.ai-input-submit{width:100%}}body.is-profile #section-dimensions .dim-width,body.is-profile #section-dimensions .dim-thickness,body.is-profile #section-corner,body.is-profile #show-side-btn{display:none}body.is-profile .section-profile-only[hidden]{display:block}.profile-ends-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media (max-width: 720px){.profile-ends-cards{grid-template-columns:1fr}}.profile-end-card{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--bg);transition:border-color .12s ease}.profile-end-card.active{border-color:var(--accent);background:#f4a5820f}.profile-end-card-label{font-weight:700;font-size:11px;letter-spacing:.3px;text-transform:uppercase;color:var(--text);margin-bottom:6px}.profile-end-card-controls .seg{margin-bottom:6px}.profile-end-card-controls .end-detail-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.profile-end-card-controls .end-detail-row input[type=number]{width:56px;padding:5px 6px;border:1px solid var(--border);border-radius:4px;font:inherit;font-size:13px;text-align:center}.profile-end-card-controls .end-angle-suffix{font-size:13px;color:var(--text-dim);margin-right:4px}.profile-end-card-controls .end-direction{display:inline-flex;gap:2px;margin-left:auto}.profile-end-card-controls .end-dir-btn{width:26px;height:26px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font:inherit;font-size:14px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,border-color .12s ease}.profile-end-card-controls .end-dir-btn:hover{border-color:var(--accent)}.profile-end-card-controls .end-dir-btn.active{background:var(--accent);border-color:var(--accent);color:var(--bg-dark)}.section-intro{font-size:12px;color:var(--text-dim);margin:-4px 0 10px}
