/* Ванная: изолированная система панелей, каталогов и полей. */
.bath-app { --bath-border:#e5e6eb; --bath-muted:#747985; --bath-surface:#f5f6f8; }
.bath-app .panel-body { padding:20px 18px 36px; background:#fff; scroll-padding-top:20px; }
.bath-app .panel-section { padding:0; margin:0 0 24px; border:0; }
.bath-app .panel-title { font-size:18px; line-height:1.35; margin:0 0 16px; }
.bath-app .panel-hint { font-size:12px; line-height:1.6; margin:10px 0 18px; color:var(--bath-muted); }
.bath-panel-heading { margin:0 0 20px; }
.bath-panel-heading h2 { font-size:21px; letter-spacing:-.5px; line-height:1.25; margin:0; }
.bath-panel-heading p { margin:8px 0 0; font-size:13px; line-height:1.6; color:var(--bath-muted); }
.bath-back { display:flex; align-items:center; gap:8px; border:0; padding:8px 0; margin:0 0 18px; color:var(--bath-muted); background:none; font:500 12px var(--font); text-align:left; cursor:pointer; }
.bath-back svg { width:16px; height:16px; transform:rotate(90deg); flex:none; }
.bath-back:hover { color:var(--ink); }
.bath-new-project { display:flex; align-items:center; gap:10px; width:100%; min-height:48px; margin:0 0 24px; padding:12px; background:var(--bath-surface); border:0; border-radius:12px; text-align:left; justify-content:flex-start; line-height:1.4; }
.bath-section-grid { display:grid; gap:12px; margin:0 0 20px; }
.bath-section-card { display:grid; grid-template-columns:44px minmax(0,1fr) 16px; align-items:center; gap:14px; min-height:86px; padding:16px; background:#fff; border:1px solid var(--bath-border); border-radius:16px; text-align:left; font:inherit; color:var(--ink); cursor:pointer; transition:border-color .15s,background .15s; }
.bath-section-card:hover { border-color:var(--tape); background:#fffafa; }
.bath-section-card > span:nth-child(2) { display:grid; gap:5px; min-width:0; }
.bath-section-card b { font-size:14px; font-weight:600; line-height:1.35; }
.bath-section-card small { font-size:11px; color:var(--bath-muted); line-height:1.5; }
.bath-section-card > svg { width:16px; transform:rotate(-90deg); color:#a3a7b0; }
.bath-section-icon { display:grid; place-items:center; width:44px; height:44px; background:var(--bath-surface); border-radius:13px; }
.bath-section-icon svg { width:23px; height:23px; }
.bath-app .field { display:flex; flex-direction:column; gap:8px; margin:0 0 16px; min-width:0; }
.bath-app .field-label { margin:0; color:#555b67; font-size:12px; font-weight:500; line-height:1.5; }
.bath-app .grid-2 { gap:12px; margin:0; }
.bath-app .grid-2 .field { margin:0; }
.bath-app .stepper { height:44px; min-width:0; background:#fff; border:1px solid var(--bath-border); border-radius:10px; }
.bath-app .stepper input { width:100%; min-width:0; font-size:16px; }
.bath-app .stepper-btn { flex:0 0 28px; width:28px; padding:0; min-width:0; }
.bath-app .stepper-unit { margin-left:4px; font-size:11px; padding:0 4px 0 0; }
.bath-app .segmented { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; background:var(--bath-surface); padding:5px; margin:0; border-radius:12px; }
.bath-app .segmented button { min-width:0; min-height:40px; padding:8px 6px; line-height:1.35; white-space:normal; font-size:12px; border:1px solid transparent; border-radius:9px; }
.bath-app .segmented button[aria-checked=true] { border-color:var(--bath-border); background:#fff; box-shadow:0 2px 5px #20212a08; }
.bath-setting-card { padding:16px; margin:20px 0; background:var(--bath-surface); border:1px solid #edf0f3; border-radius:16px; }
.bath-setting-card h3 { margin:0 0 16px; font-size:13px; font-weight:650; }
.bath-setting-card .field:last-child { margin-bottom:0; }
.bath-setting-card .btn-ghost { margin-top:14px; min-height:40px; }
.bath-app .sub-title { margin:24px 0 12px; font-size:13px; font-weight:650; line-height:1.4; }
.bath-model-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 24px; }
.bath-model-option { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; min-height:90px; padding:12px 6px; border:1px solid var(--bath-border); border-radius:12px; background:#fff; color:var(--ink); font:500 11px var(--font); line-height:1.4; }
.bath-model-option svg { width:28px; height:28px; }
.bath-model-option[aria-pressed=true] { border-color:var(--tape); background:#fff6f5; }
.bath-color-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.bath-color { display:flex; align-items:center; gap:8px; min-width:0; min-height:42px; padding:8px; background:#fff; border:1px solid var(--bath-border); border-radius:10px; color:var(--ink); font:500 11px var(--font); }
.bath-color.is-on { border-color:var(--tape); }
.bath-color i { width:21px; height:21px; flex:none; border:1px solid #0002; border-radius:50%; background:var(--sw); }
.bath-custom-color input { width:24px; height:24px; padding:0; border:0; background:none; }
.bath-items.bath-photo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; }
.bath-photo-grid .catalog-item { display:flex; flex-direction:column; min-width:0; border:1px solid var(--bath-border); border-radius:14px; overflow:hidden; background:#fff; }
.bath-photo-item { display:flex; flex-direction:column; align-items:stretch; gap:10px; flex:1; width:100%; min-width:0; padding:8px; border:0; background:#fff; color:var(--ink); text-align:left; font:inherit; cursor:pointer; }
.bath-photo-item:hover { background:#fafafb; }
.bath-photo-item.is-placed { background:#fff8f7; }
.bath-photo-item .catalog-visual { border-radius:9px; background:var(--bath-surface); }
.bath-item-tx { display:grid; gap:6px; }
.bath-item-tx b { font-size:12px; font-weight:600; line-height:1.45; overflow-wrap:anywhere; }
.bath-item-tx small { color:var(--bath-muted); font-size:11px; line-height:1.4; }
.bath-photo-price { display:flex; justify-content:space-between; align-items:center; gap:4px; width:100%; margin-top:auto; font-size:12px; font-weight:650; padding-top:4px; }
.bath-photo-price svg { width:17px; height:17px; flex:none; }
.bath-app .catalog-preview-button { min-height:36px; font-size:11px; }
.bath-search { width:100%; height:46px; padding:10px 13px; border:1px solid var(--bath-border); border-radius:12px; background:var(--bath-surface); font:400 16px var(--font); }
.bath-catalog-group { margin:24px 0; }
.bath-catalog-group .mat-group { display:flex; align-items:center; justify-content:space-between; padding:0; margin:0 0 12px; }
.bath-catalog-group .mat-group small { color:var(--bath-muted); background:var(--bath-surface); border-radius:6px; padding:3px 7px; font-weight:400; }
[data-bath-card][hidden],.bath-catalog-group[hidden],[data-bath-empty][hidden] { display:none; }
.bath-area { padding:12px; margin:20px 0; font-size:12px; line-height:1.5; border-radius:12px; color:#59616c; background:var(--bath-surface); }
.bath-presets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.bath-preset { display:flex; flex-direction:column; gap:8px; padding:8px 8px 12px; min-width:0; background:#fff; color:var(--ink); text-align:left; border:1px solid var(--bath-border); border-radius:14px; font:inherit; }
.bath-preset b { font-size:13px; line-height:1.4; }
.bath-preset span:not(.catalog-visual) { font-size:11px; line-height:1.5; color:var(--bath-muted); }
.bath-preset small { font-size:11px; color:var(--bath-muted); }
.bath-preset.is-empty { padding:16px; border-style:dashed; }
.start-choice-grid .catalog-visual { width:100%; max-width:100%; }
.bath-app .swatches:not(.swatches-round) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.bath-app .swatch-card { display:flex; flex-direction:column; gap:6px; text-align:left; min-width:0; padding:8px; border:1px solid var(--bath-border); border-radius:12px; background:#fff; }
.bath-app .swatch-name { line-height:1.5; font-size:11px; }
.bath-app .swatches-round { display:flex; flex-wrap:wrap; gap:10px; margin:14px 0 24px; }
.bath-app .swatches-round .chip { min-height:38px; }
.insp-head { display:grid; grid-template-columns:40px minmax(0,1fr) 32px; gap:10px; margin-bottom:20px; align-items:start; }
.insp-head .panel-title { margin:0; font-size:16px; }
.insp-head .panel-hint { margin:7px 0 0; }
.bath-item-ic { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--bath-surface); }
.bath-item-ic svg { width:22px; height:22px; }
.bath-app .bath-inspector-actions { display:flex; flex-wrap:wrap; gap:12px; padding:20px 0 8px; margin:6px 0 20px; }
.bath-app .bath-inspector-actions .btn-ghost { min-height:44px; padding:10px 14px; border-radius:10px; }
.bath-app .is-danger { color:#c54439; }
.bath-replacements { border:1px solid var(--bath-border); border-radius:14px; padding:14px; }
.bath-replacements summary { display:flex; justify-content:space-between; gap:8px; font-size:13px; cursor:pointer; }
.bath-replacements summary span { font-size:11px; color:var(--bath-muted); }
.bath-replacements[open] > section { margin:16px 0 0; }
.bath-stack { display:flex; flex-direction:column; align-items:stretch; gap:12px; background:var(--bath-surface); color:var(--ink); }
.bath-stack .btn-primary,.bath-stack .btn-ghost { align-self:flex-start; }
.bath-list { display:grid; gap:8px; padding:0; list-style:none; }
.bath-list li { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px; font-size:12px; border-radius:10px; cursor:pointer; }
.bath-list .bath-item-ic { width:32px; height:32px; }
.bath-list b { font-weight:600; white-space:nowrap; }
.bath-tag { padding:5px 9px; border-radius:8px; background:var(--ink); color:#fff; font:600 12px var(--font); white-space:nowrap; pointer-events:none; }
.bath-app .stage-tools { max-width:calc(100% - 28px); }
.bath-app .stage-hint { white-space:normal; max-width:90%; width:max-content; line-height:1.5; }
.bath-app .shared-banner { cursor:pointer; }
.bath-app .rail button { display:flex; align-items:center; justify-content:flex-start; gap:10px; min-height:54px; padding:14px 10px; text-align:left; }
.bath-app .rail button span { white-space:normal; line-height:1.4; font-size:12px; }
.bath-app .rail button > svg { flex:0 0 20px; width:20px; height:20px; }
.bath-app .rail-badge { display:none; }
.bath-app .cabinet-controls [data-cabinet-action=door] { display:none; }
.bath-app .cabinet-controls__actions { grid-template-columns:repeat(4,minmax(0,1fr)); }
.bath-preview img { width:100%; display:block; border-radius:12px; }
.bath-preview .btn-primary { display:inline-flex; align-items:center; justify-content:center; min-height:44px; text-decoration:none; }
.bath-app .bath-reset { color:#c54439; }
.bath-app .camera-pad [data-action=reset-camera] { color:var(--tape); }
.share-row { display:flex; gap:8px; margin:14px 0; }
.share-input { flex:1; min-width:0; height:44px; padding:0 12px; border:1px solid var(--bath-border); border-radius:10px; font:inherit; }
.hp { position:absolute!important; left:-9999px; width:1px; height:1px; opacity:0; }
.project-title { display:flex; align-items:center; gap:8px; min-width:0; }
.lead-success { text-align:center; }
.lead-success p { margin:10px 0 20px; }
@media(max-width:900px) {
 .bath-app .topbar { grid-template-columns:auto minmax(0,1fr) auto; gap:6px; }
 .bath-app .brand-sub,.bath-app .project-title,.bath-app .tool-projects span { display:none; }
 .bath-app .login-btn { padding:0 10px; }
 .bath-app .workspace { overflow:clip; }
 .bath-app .panel-body { padding:18px 16px 32px; }
 .bath-panel-heading h2 { font-size:20px; }
 .bath-app .mobile-tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); }
 .bath-app .mobile-tabs button { min-width:0; padding:10px 2px 5px; justify-content:flex-start; }
 .bath-app .mobile-tabs button span { font-size:10px; }
 .bath-section-card { min-height:78px; padding:14px; }
 .bath-setting-card { padding:14px; }
 .bath-app .stage-tools [data-action=reset-camera] { display:none; }
 .bath-app [data-action=dims] span { display:inline; font-size:12px; }
 .bath-app .bath-reset { width:36px; padding:0; justify-content:center; }
 .bath-app .bath-reset span { display:none; }
 .bath-app .btn-sm { display:none; }
}
@media(max-width:350px) {
 .bath-app .panel-body { padding:16px 12px 30px; }
 .bath-app .grid-2 { gap:8px; }
 .bath-app .stepper-btn { width:23px; flex-basis:23px; }
 .bath-setting-card { padding:12px; }
 .bath-photo-price { font-size:11px; }
}

.bath-check-notes { margin:12px 0 0; }
.bath-check-notes > summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; border:1px solid var(--bath-border); border-radius:10px; font-size:12px; cursor:pointer; }
.bath-check-notes > summary span { padding:3px 7px; border-radius:6px; background:var(--bath-surface); color:var(--bath-muted); }
.bath-check-ok { display:flex; align-items:center; gap:8px; color:#377455; font-size:12px; line-height:1.5; }
.bath-check-ok svg { width:18px; height:18px; flex:none; }

@media(max-width:350px){.bath-app .mobile-tabs button span{font-size:9px}}

.bath-app .swatch-card .swatch{width:100%;height:auto;aspect-ratio:4/3;flex:none}
.bath-app .swatch-card .delta{margin-top:auto}
