:root{--panel-width:430px;--color-bg:#fff;--color-border:#e3e0db;--color-text:#2b2620;--color-muted:#8a8378;--color-accent:#b07d4f;--color-accent-dark:#96683f;color:var(--color-text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}.app{height:100%;display:flex}.wizard{width:var(--panel-width);border-right:1px solid var(--color-border);background:var(--color-bg);flex-direction:column;flex-shrink:0;display:flex}.wizard__header{padding:20px 24px 0}.wizard__title{margin:0 0 16px;font-size:20px;font-weight:600}.wizard__steps{border-bottom:1px solid var(--color-border);gap:4px;display:flex}.wizard__step{font:inherit;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.wizard__step:hover{color:var(--color-text)}.wizard__step--active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.wizard__step-number{background:var(--color-border);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:inline-flex}.wizard__step--active .wizard__step-number{background:var(--color-accent);color:#fff}.wizard__panel{flex:1;padding:24px;overflow-y:auto}.wizard__panel-title{margin:0 0 12px;font-size:17px}.wizard__placeholder{color:var(--color-muted);line-height:1.5}.wizard__footer{border-top:1px solid var(--color-border);justify-content:space-between;gap:12px;padding:16px 24px;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:10px 22px;font-size:14px}.btn:disabled{opacity:.45;cursor:default}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:not(:disabled):hover{background:var(--color-accent-dark)}.btn--secondary{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn--secondary:not(:disabled):hover{border-color:var(--color-muted)}.btn--toolbar{border-color:var(--color-border);background:#ffffffeb;box-shadow:0 1px 4px #0000001f}.btn--toolbar:hover{background:#fff}.step__section{margin-bottom:22px}.step__section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin:0 0 10px;font-size:14px}.segmented{border:1px solid var(--color-border);border-radius:6px;display:flex;overflow:hidden}.segmented__item{font:inherit;cursor:pointer;color:var(--color-text);background:0 0;border:none;flex:1;padding:9px 6px;font-size:14px}.segmented__item+.segmented__item{border-left:1px solid var(--color-border)}.segmented__item--active{background:var(--color-accent);color:#fff}.dim{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.dim__label{font-size:14px}.dim__controls{align-items:center;gap:6px;display:flex}.dim__step{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:6px;width:30px;height:30px;font-size:16px}.dim__step:disabled{opacity:.35;cursor:default}.dim__input{border:1px solid var(--color-border);width:64px;font:inherit;text-align:right;border-radius:6px;padding:6px 8px;font-size:14px}.dim__input:disabled{color:var(--color-muted);background:#f4f2ef}.dim__unit{color:var(--color-muted);font-size:13px}.toggle{cursor:pointer;align-items:center;gap:8px;padding:5px 0;font-size:14px;display:flex}.counter{align-items:center;gap:10px;display:flex}.counter__value{text-align:center;min-width:26px;font-size:17px;font-weight:600}.hint{color:var(--color-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.decor-picker__filters{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.decor-picker__filters select{border:1px solid var(--color-border);font:inherit;border-radius:6px;padding:7px 9px;font-size:14px}.decor-picker__tags{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--color-border);font:inherit;cursor:pointer;background:0 0;border-radius:14px;padding:5px 12px;font-size:13px}.chip--active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.chip__swatch{vertical-align:-2px;border:1px solid #00000026;border-radius:50%;width:13px;height:13px;margin-right:5px;display:inline-block}.decor-picker__grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.decor{font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;flex-direction:column;gap:4px;padding:4px;display:flex}.decor--active{border-color:var(--color-accent)}.decor__swatch{aspect-ratio:1;border:1px solid var(--color-border);background-position:50%;background-size:cover;border-radius:5px;width:100%}.decor__name{color:var(--color-muted);text-align:center;font-size:11px;line-height:1.25}.module-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.module{font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;display:flex}.module:disabled{opacity:.35;cursor:default}.module--active{border-color:var(--color-accent)}.module-icon{width:100%;max-width:56px}.module-icon--empty{aspect-ratio:100/220;border:2px solid var(--color-border);width:56px;color:var(--color-muted);background:#fff;border-radius:3px;place-items:center;font-size:22px;display:grid}.module__name{color:var(--color-muted);text-align:center;font-size:11px;line-height:1.25}.dialog-overlay{z-index:20;background:#2b262073;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:10px;width:400px;max-height:86vh;padding:24px;overflow-y:auto;box-shadow:0 12px 40px #00000040}.dialog__title{margin:0 0 18px;font-size:17px}.dialog__footer{justify-content:flex-end;margin-top:6px;display:flex}.color-row{justify-content:space-between;align-items:center;padding:5px 0;font-size:14px;display:flex}.color-row input[type=color]{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:6px;width:44px;height:28px;padding:1px}.viewport{background:#ddd8d1;flex:1;min-width:0;position:relative}.toolbar{gap:8px;display:flex;position:absolute;top:16px;right:16px}.tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:16px;display:flex}.tabs__item{font:inherit;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:8px 12px;font-size:14px}.tabs__item--active{color:var(--color-text);border-bottom-color:var(--color-accent);font-weight:600}.snapshot{border:1px solid var(--color-border);border-radius:8px;width:100%}.drawing{margin-top:14px}.drawing svg{width:100%;height:auto}table.specs{border-collapse:collapse;width:100%;font-size:13px}table.specs th{text-align:left;vertical-align:top;white-space:nowrap;padding:4px 8px 4px 0;font-weight:600}table.specs td{padding:4px 0}.materials{margin:0;padding-left:18px;font-size:14px;line-height:1.7}.field{margin-bottom:10px;font-size:13px;display:block}.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea{border:1px solid var(--color-border);width:100%;font:inherit;border-radius:6px;margin-top:4px;padding:8px 10px;font-size:14px;display:block}.field input[type=file]{margin-top:4px;font-size:13px;display:block}.form-errors{color:#a33b28;background:#f8e7e4;border:1px solid #e3b3aa;border-radius:6px;margin:0 0 12px;padding:10px 14px 10px 30px;font-size:13px}.toolbar__share{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--color-border);cursor:pointer;background:#fffffff2;border-radius:6px;align-self:center;max-width:320px;padding:8px 12px;font-size:12px;overflow:hidden}.price-badge{flex-direction:column;align-items:flex-start;gap:8px;max-width:420px;display:flex;position:absolute;bottom:16px;left:16px}.price-badge__button{border:1px solid var(--color-border);font:inherit;cursor:pointer;background:#fffffff2;border-radius:10px;flex-direction:column;align-items:flex-start;padding:10px 18px;display:flex;box-shadow:0 2px 10px #00000024}.price-badge__label{color:var(--color-muted);font-size:12px}.price-badge__total{color:var(--color-accent-dark);font-size:22px;font-weight:700}.price-breakdown{border:1px solid var(--color-border);background:#fffffff7;border-radius:10px;max-height:50vh;padding:14px 16px;overflow-y:auto;box-shadow:0 2px 10px #00000024}.price-breakdown h4{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin:0 0 8px;font-size:13px}.price-breakdown table{border-collapse:collapse;font-size:13px}.price-breakdown td{padding:3px 8px 3px 0}.price-breakdown td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.price-breakdown tr.sum td{border-top:1px solid var(--color-border);font-weight:600}
