:root{--bg: #1c1c1e;--panel: #242427;--field: #2c2c30;--field-hover: #36363b;--line: #3a3a3e;--text: #ededee;--muted: #9a9a9f;--accent: #5b8cff;--danger: #ff6b52;--radius: 12px;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .5);font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow:hidden}button{font-family:inherit;cursor:pointer}.app-shell{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.promo-banner-slot{flex-shrink:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .38s ease,opacity .38s ease}.promo-banner-slot--open{max-height:52px;opacity:1}.promo-banner{position:relative;display:flex;align-items:center;justify-content:center;height:48px;padding:0 108px 0 16px;background:var(--promo-bg, linear-gradient(90deg, #1a3a6b 0%, #2f6df6 50%, #1a3a6b 100%));color:#fff;font-size:13.5px;border-bottom:1px solid rgba(255,255,255,.12);transition:filter .15s,opacity .38s ease,transform .38s ease;opacity:0;transform:translateY(-100%)}.promo-banner-link{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:100%;min-width:0;color:inherit;text-decoration:none}.promo-banner-link:hover{color:inherit}.promo-banner:hover{filter:brightness(1.08)}.promo-banner--visible{opacity:1;transform:translateY(0)}.promo-banner--entering,.promo-banner--leaving{opacity:0;transform:translateY(-100%)}.promo-banner-timer{position:absolute;right:12px;top:50%;transform:translateY(-50%);flex-shrink:0;display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:10px;background:#00000038;border:1px solid rgba(255,255,255,.22);line-height:1.1}.promo-banner-timer-col{display:flex;flex-direction:column;align-items:flex-end;gap:0}.promo-banner-timer-label{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.85}.promo-banner-timer-value{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.04em}.promo-banner-timer--urgent{background:#00000059;border-color:#ff82968c;animation:promo-timer-urgent 1s ease-in-out infinite}.promo-banner-timer--urgent .promo-banner-timer-value{color:#ffb8c8}.promo-banner-timer--demo .promo-banner-timer-demo{display:inline}.promo-banner-timer-demo{display:none;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.65;padding:2px 5px;border-radius:4px;background:#ffffff1f;align-self:center}@keyframes promo-timer-urgent{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.04)}}.promo-banner-badge{background:var(--promo-badge-bg, #fff);color:var(--promo-badge-text, #1a1a22);font-weight:800;font-size:12px;padding:4px 10px;border-radius:999px;letter-spacing:.02em;flex-shrink:0;box-shadow:0 2px 8px #0003}.promo-banner-text{text-align:center;line-height:1.35;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.promo-banner-text strong{font-weight:700}.promo-banner-brand{font-weight:700;text-decoration:underline;text-underline-offset:2px}.promo-banner-cta{flex-shrink:0;font-size:12px;font-weight:700;padding:5px 14px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:#ffffff1f;box-shadow:0 2px 10px #00000026;animation:promo-cta-pulse 2.4s ease-in-out infinite}@keyframes promo-cta-pulse{0%,to{box-shadow:0 2px 10px #00000026;transform:scale(1)}50%{box-shadow:0 2px 16px #ffffff40;transform:scale(1.03)}}.promo-banner--blue{--promo-bg: linear-gradient(90deg, #142d5c 0%, #2f6df6 45%, #1a4a9e 100%);--promo-badge-bg: #e8eeff;--promo-badge-text: #1a3a6b}.promo-banner--coral{--promo-bg: linear-gradient(90deg, #4a1528 0%, #d63d6e 45%, #8b1e42 100%);--promo-badge-bg: #fff;--promo-badge-text: #6b1230}.promo-banner--emerald{--promo-bg: linear-gradient(90deg, #0a3d32 0%, #1dbf8a 45%, #0d6b52 100%);--promo-badge-bg: #d8fff2;--promo-badge-text: #065f46}.promo-banner--violet{--promo-bg: linear-gradient(90deg, #2e1558 0%, #7c4dff 45%, #4a2590 100%);--promo-badge-bg: #f9a8d4;--promo-badge-text: #3b0764}.promo-banner--rose{--promo-bg: linear-gradient(90deg, #5c1230 0%, #e8457a 45%, #9e1f52 100%);--promo-badge-bg: #fff;--promo-badge-text: #831843}.promo-banner--teal{--promo-bg: linear-gradient(90deg, #0a3340 0%, #14b8d4 45%, #0e6b7d 100%);--promo-badge-bg: #cffafe;--promo-badge-text: #0c4a6e}.promo-popup{position:fixed;right:16px;bottom:84px;width:300px;z-index:190;border-radius:16px;overflow:hidden;box-shadow:0 10px 40px #0000008c,0 0 0 2px #e8a33d59;border:1px solid rgba(255,255,255,.14);animation:promo-popup-in .32s ease-out}@keyframes promo-popup-in{0%{transform:translate(16px) scale(.92);opacity:0}to{transform:translate(0) scale(1);opacity:1}}.promo-popup-close{position:absolute;top:8px;right:8px;z-index:3;width:28px;height:28px;border:none;border-radius:999px;background:#0009;color:#fff;font-size:18px;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer}.promo-popup-close:hover{background:#000c}.promo-popup-link{display:flex;flex-direction:column;width:100%;color:#fff;text-decoration:none;background:#121a2e}.promo-popup-link:hover{color:#fff}.promo-popup-link:hover .promo-popup-cta{background:#ffbe4d;transform:translateY(-1px)}.promo-popup-visual{position:relative;aspect-ratio:1 / 1;flex-shrink:0;overflow:hidden;background:#f3efe9;padding:10px}.promo-popup-img-frame{width:100%;height:100%;border-radius:12px;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:inset 0 0 0 1px #ffffffa6,0 2px 10px #00000014}.promo-popup-img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;background:#f3efe9}.promo-popup-visual-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000000d 40%,#00000073);pointer-events:none}.promo-popup-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:34px;font-weight:800;color:#ffffff59;letter-spacing:.04em;text-transform:uppercase}.promo-popup-discount-ring{position:absolute;left:10px;top:10px;z-index:2;width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd36a,#e8a33d 55%,#c97f12);color:#1a1206;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 14px #00000059,inset 0 1px #ffffff73;animation:promo-discount-pulse 2s ease-in-out infinite}@keyframes promo-discount-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.promo-popup-discount-value{font-size:17px;font-weight:900;line-height:1;letter-spacing:-.02em}.promo-popup-discount-sub{font-size:7px;font-weight:800;letter-spacing:.08em;margin-top:2px;opacity:.85}.promo-popup-info{flex-shrink:0;padding:12px 14px 14px;background:linear-gradient(180deg,#0f1628,#0a0f1c);display:flex;flex-direction:column;gap:6px;border-top:2px solid rgba(232,163,61,.45)}.promo-popup-urgency{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ff8f5a}.promo-popup-name{font-size:12.5px;font-weight:600;line-height:1.3;color:#e8eaef;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.promo-popup-price-block{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:2px}.promo-popup-old-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.promo-popup-old-label{font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8b93a8}.promo-popup-old{font-size:16px;font-weight:700;color:#9aa3b8;text-decoration-thickness:2px;text-decoration-color:#ff6b52;opacity:1}.promo-popup-sale-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}.promo-popup-sale-label{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#7ee0a8}.promo-popup-sale{font-size:26px;font-weight:900;line-height:1;color:#ffe08a;text-shadow:0 2px 8px rgba(232,163,61,.35);letter-spacing:-.02em}.promo-popup-savings{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:800;color:#1a1206;background:linear-gradient(90deg,#7ee0a8,#5fd492);padding:4px 10px;border-radius:999px;letter-spacing:.01em}.promo-popup-cta{margin-top:4px;display:block;text-align:center;font-size:13px;font-weight:800;letter-spacing:.02em;color:#1a1206;background:linear-gradient(90deg,#e8a33d,#ffbe4d);padding:10px 12px;border-radius:10px;box-shadow:0 4px 14px #e8a33d59;transition:transform .15s,background .15s}.newsletter-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:280;background:#0000009e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:24px;transition:opacity .32s ease;opacity:0}.newsletter-backdrop--visible{opacity:1}.newsletter-backdrop--entering,.newsletter-backdrop--leaving{opacity:0}.newsletter-card{position:relative;width:min(620px,100%);background:var(--panel);border:2px solid rgba(91,140,255,.45);border-radius:20px;padding:48px 52px 36px;box-shadow:0 28px 56px #0000007a,0 0 0 1px #ffffff0f,0 0 40px #5b8cff2e;transition:opacity .32s ease,transform .32s ease;opacity:0;transform:translateY(12px) scale(.98)}.newsletter-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;border-radius:18px 18px 0 0;background:linear-gradient(90deg,#5b8cff,#7ee0a8)}.newsletter-card--visible{opacity:1;transform:translateY(0) scale(1)}.newsletter-card--entering,.newsletter-card--leaving{opacity:0;transform:translateY(12px) scale(.98)}.newsletter-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:22px;line-height:1;display:grid;place-items:center;transition:color .15s,background .15s}.newsletter-close:hover{background:var(--field);color:var(--text)}.newsletter-hero{margin-bottom:32px;padding-right:28px;text-align:left}.newsletter-badge{display:inline-flex;align-items:center;margin-bottom:14px;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#dbe6ff;background:#5b8cff2e;border:1px solid rgba(91,140,255,.35)}.newsletter-hero h2{margin:0 0 12px;font-family:Fraunces,serif;font-size:2.05rem;font-weight:600;line-height:1.15;color:var(--text);letter-spacing:-.02em}.newsletter-lead{margin:0;font-size:17px;line-height:1.55;color:var(--muted)}.newsletter-lead strong{color:#9ec0ff;font-weight:700}.newsletter-perks{display:flex;flex-direction:column;gap:10px;margin:0 0 32px}.newsletter-perk{display:flex;align-items:center;gap:18px;padding:18px;border-radius:14px;background:#5b8cff12;border:1px solid rgba(91,140,255,.14)}.newsletter-perk:nth-child(2){background:#7ee0a814;border-color:#7ee0a833}.newsletter-perk:nth-child(3){background:#ff8f5a14;border-color:#ff8f5a2e}.newsletter-perk:last-child{border-bottom:none}.newsletter-perk-icon{width:52px;height:52px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;font-size:18px;font-weight:800;color:#fff;background:linear-gradient(135deg,#5b8cff,#3d6fe0);box-shadow:0 4px 12px #5b8cff47}.newsletter-perk:nth-child(2) .newsletter-perk-icon{background:linear-gradient(135deg,#5fd492,#2fb87a);box-shadow:0 4px 12px #5fd49247}.newsletter-perk:nth-child(3) .newsletter-perk-icon{background:linear-gradient(135deg,#ff9a6a,#ff6b52);box-shadow:0 4px 12px #ff6b5247}.newsletter-perk-text{display:flex;flex-direction:column;gap:4px;min-width:0}.newsletter-perk-text strong{font-size:16px;font-weight:700;line-height:1.3;color:var(--text)}.newsletter-perk-text span{font-size:14px;line-height:1.45;color:var(--muted)}.newsletter-form{display:flex;flex-direction:column;gap:12px}.newsletter-input{width:100%;border:1px solid var(--line);background:var(--field);border-radius:12px;padding:17px 18px;font-size:16px;font-family:inherit;color:var(--text);transition:border-color .15s}.newsletter-input:focus{outline:none;border-color:var(--accent)}.newsletter-submit{width:100%;border:none;border-radius:12px;padding:17px 22px;font-size:17px;font-weight:700;color:#fff;background:linear-gradient(90deg,#4f7fe8,#5b8cff);box-shadow:0 8px 22px #5b8cff59;transition:filter .15s,transform .12s,box-shadow .15s}.newsletter-submit:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 10px 26px #5b8cff73}.newsletter-submit:active:not(:disabled){transform:scale(.995)}.newsletter-submit:disabled{opacity:.65;cursor:wait}.newsletter-error{margin:0;font-size:13px;color:var(--danger)}.newsletter-fine{margin:16px 0 0;font-size:13px;color:var(--muted);text-align:center}.newsletter-success{text-align:center;padding:24px 8px 8px}.newsletter-success-icon{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#1dbf8a1f;color:#5fd492;font-size:24px;font-weight:700;margin-bottom:16px}.newsletter-success h2{margin:0 0 8px;font-family:Fraunces,serif;font-size:1.5rem;color:var(--text)}.newsletter-success p{margin:0;font-size:14px;line-height:1.5;color:var(--muted)}@media (max-width: 640px){.newsletter-card{padding:36px 26px 26px}.newsletter-hero h2{font-size:1.65rem}.newsletter-lead{font-size:15px}.newsletter-perk{padding:14px;gap:14px}.newsletter-perk-icon{width:44px;height:44px;font-size:16px}.newsletter-perk-text strong{font-size:15px}}.app{display:flex;flex:1;min-height:0;width:100%}.sidebar{width:280px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;height:100%}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:opacity .15s}.brand:hover{opacity:.92}.brand-logo{display:block;height:30px;width:auto;max-width:100%;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);opacity:.92}.brand:hover .brand-logo{opacity:1}.brand-tag{font-size:11px;color:var(--muted);letter-spacing:.03em}.cat-select-wrap{padding:14px 16px;border-bottom:1px solid var(--line)}.cat-select{width:100%;border:1px solid var(--line);background:var(--field);color:var(--text);padding:9px 12px;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}.cat-select:hover{border-color:var(--muted)}.cat-select:focus{outline:none;border-color:var(--accent)}.catalog-list{flex:1;overflow-y:auto;padding:8px 8px 8px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#52525c transparent}.catalog-list::-webkit-scrollbar{width:7px}.catalog-list::-webkit-scrollbar-track{background:transparent;margin:6px 0}.catalog-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#4e4e58,#3d3d46);border-radius:999px;border:2px solid transparent;background-clip:padding-box;transition:background .2s ease}.catalog-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#6b8fff 0%,var(--accent) 100%);background-clip:padding-box}.catalog-list::-webkit-scrollbar-thumb:active{background:#4576e6;background-clip:padding-box}.list-item{background:var(--field);border:1px solid var(--line);border-radius:10px;padding:6px 6px 8px;display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:center;transition:all .15s;color:var(--text);min-width:0}.list-item:hover{border-color:var(--accent);background:var(--field-hover)}.list-item--active{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.list-item-thumb{width:100%;aspect-ratio:1;border-radius:8px;background:linear-gradient(180deg,#3a3a42,#2a2a30);border:1px solid var(--line);display:grid;place-items:stretch;flex-shrink:0;overflow:hidden;position:relative}.glb-preview-canvas{width:100%!important;height:100%!important;display:block}.glb-preview-img{width:100%;height:100%;object-fit:cover;display:block}.list-item-icon{display:block;width:88%;height:88%;max-width:120px;max-height:120px}.list-item-text{display:flex;flex-direction:column;gap:2px;min-width:0;padding:0 2px}.list-item-name{font-size:11.5px;font-weight:600;line-height:1.3;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.list-item-meta{font-size:10.5px;color:var(--muted);font-weight:500}.sidebar-foot{padding:12px 16px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);text-align:center}.sidebar-hint{padding:16px;font-size:12px;line-height:1.55;color:var(--muted)}.sidebar-hint code{font-size:11px;background:#0000000f;padding:1px 5px;border-radius:4px}.stage{flex:1;display:flex;flex-direction:column;min-width:0;container-type:inline-size;container-name:stage}.topbar{min-height:52px;flex-shrink:0;background:var(--panel);border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;column-gap:8px;row-gap:6px;padding:6px 12px}.topbar-menu-btn{display:none;width:36px;height:36px;border:1px solid var(--line);background:var(--field);border-radius:8px;color:var(--text);font-size:18px;line-height:1;place-items:center;padding:0;flex-shrink:0}.topbar-menu-btn:hover{border-color:var(--muted);background:var(--field-hover)}.topbar-status{display:flex;align-items:center;flex-shrink:0}.topbar-count{font-size:12px;color:var(--muted);font-weight:500;white-space:nowrap}.topbar-count-num{font-weight:700;color:var(--text)}.tbtn-toggle-dev.on .tbtn-toggle-label,.tbtn-toggle-dev.on .tbtn-toggle-state{color:#9ad17c}.room-panel{display:flex;align-items:center;gap:8px;min-width:0;justify-self:center}.topbar-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;justify-content:flex-end;flex-shrink:0}.topbar-tools{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.tbtn-cta-short{display:none;font-size:12px;font-weight:700;white-space:nowrap}.tbtn{border:1px solid var(--line);background:var(--field);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;color:var(--text);transition:all .15s}.tbtn:hover{border-color:var(--muted);background:var(--field-hover)}.tbtn-cta{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tbtn-cta-pdf{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 16px;min-width:0;box-shadow:0 2px 12px #2f6df659}.tbtn-cta-title{font-size:13.5px;font-weight:700;line-height:1.2;letter-spacing:.01em}.tbtn-cta-sub{font-size:10.5px;font-weight:500;opacity:.88;line-height:1.2;letter-spacing:.02em}.tbtn-cta:hover{background:#4576e6;border-color:#4576e6;color:#fff;box-shadow:0 4px 16px #2f6df673}.tbtn-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;align-self:center}.tbtn-toggle-label{font-size:12px;font-weight:600;color:var(--muted)}.tbtn-toggle-state{font-size:12px;font-weight:600;min-width:36px;text-align:left}.tbtn-toggle-track{width:34px;height:18px;border-radius:999px;background:#4a4a50;position:relative;flex-shrink:0;transition:background .2s ease}.tbtn-toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s ease;box-shadow:0 1px 3px #00000059}.tbtn-toggle.on{border-color:#5b8cff8c;background:#5b8cff1a}.tbtn-toggle.on .tbtn-toggle-track{background:var(--accent)}.tbtn-toggle.on .tbtn-toggle-thumb{transform:translate(16px)}.tbtn-toggle.on .tbtn-toggle-label,.tbtn-toggle.on .tbtn-toggle-state{color:var(--text)}.tbtn-toggle-dev.on{border-color:#9ad17c8c;background:#9ad17c1a}.tbtn-toggle-dev.on .tbtn-toggle-track{background:#9ad17c}.tbtn-icon-text{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.tbtn-icon{font-size:15px;line-height:1}.room-panel-inputs{display:flex;gap:10px}.room-input{display:flex;flex-direction:column;gap:2px}.room-input span{font-size:10.5px;color:var(--muted)}.room-input input{width:58px;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:6px 8px;font-size:13px;font-family:inherit;color:var(--text)}.room-input input:focus{outline:none;border-color:var(--accent)}.viewport{flex:1;position:relative;min-height:0}.viewport canvas{display:block}.viewport-watermark-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.viewport-watermark-wrap>canvas{width:100%;height:100%}.viewport-watermark{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:2;pointer-events:none;display:flex;flex-direction:column;justify-content:space-evenly;gap:28px;transform:rotate(-24deg);opacity:.2;-webkit-user-select:none;user-select:none}.viewport-watermark-row{display:flex;justify-content:space-around;gap:48px;white-space:nowrap}.viewport-watermark-row span{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;text-shadow:0 0 1px rgba(0,0,0,.8)}.bottombar{height:70px;flex-shrink:0;background:var(--panel);border-top:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 22px}.bb-group{display:flex;align-items:center;gap:10px}.bb-selected{flex:1;min-width:0}.bb-label{font-size:11px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.swatches{display:flex;gap:8px}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);transition:transform .12s}.swatch:hover{transform:scale(1.08)}.swatch.active{box-shadow:0 0 0 2px var(--accent)}.bb-sel-name{font-weight:600;font-size:14px;margin-right:14px;color:var(--text)}.bb-buttons{display:inline-flex;gap:6px}.bb-btn{border:1px solid var(--line);background:var(--field);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;color:var(--text);min-width:38px;transition:all .15s}.bb-btn:hover{border-color:var(--muted);background:var(--field-hover)}.bb-btn.danger{color:var(--danger);border-color:#ff6b5259}.bb-btn.danger:hover{background:#ff6b521f}.bb-hint{font-size:12.5px;color:var(--muted)}.bb-sel-price{font-size:13px;font-weight:700;color:var(--accent);margin-right:12px;white-space:nowrap}.bb-total{margin-left:auto}.bb-total-inner{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.bb-total-price{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.02em}.bb-total-note{font-size:10.5px;color:var(--muted);text-align:right;max-width:220px}.resize-panel{position:fixed;z-index:50;width:220px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;color:var(--text)}.resize-panel-head{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:600;margin-bottom:10px}.resize-close{border:none;background:none;font-size:16px;line-height:1;color:var(--muted);padding:0 2px}.resize-close:hover{color:var(--text)}.resize-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;color:var(--muted)}.resize-row span:first-child{width:62px;flex-shrink:0}.resize-row input{flex:1;width:0;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:6px 8px;font-size:13px;font-family:inherit;color:var(--text)}.resize-row input:focus{outline:none;border-color:var(--accent)}.resize-unit{flex-shrink:0}.resize-row-presets{align-items:flex-start}.resize-presets{display:flex;gap:6px;flex:1}.resize-preset{flex:1;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:6px 0;font-size:12px;font-weight:600;color:var(--text);transition:all .15s}.resize-preset:hover{border-color:var(--muted);background:var(--field-hover)}.resize-preset.active{border-color:var(--accent);background:var(--accent);color:#fff}.resize-row-static{justify-content:space-between}.resize-static-value{font-weight:600;color:var(--text)}.resize-hint{font-size:10.5px;color:var(--muted);margin:-2px 0 10px;line-height:1.4}.resize-actions{display:flex;gap:8px;margin-top:4px}.resize-btn{flex:1;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:7px 0;font-size:12.5px;font-weight:600;color:var(--text);transition:all .15s}.resize-btn:hover{border-color:var(--muted);background:var(--field-hover)}.resize-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.resize-btn.primary:hover{background:#4576e6}.dev-stats{position:absolute;top:16px;right:16px;z-index:40;width:168px;background:#141416e0;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:10px 12px;color:#fff;font-family:SF Mono,Menlo,Consolas,monospace;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}.dev-stats-head{font-size:10.5px;letter-spacing:.06em;color:#9ad17c;margin-bottom:6px;text-transform:uppercase}.dev-stats-row{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;line-height:1.6;color:#e6e6e6}.dev-stats-row span:first-child{color:#9aa0a6}.toast{position:fixed;bottom:24px;right:24px;z-index:200;max-width:320px;background:#2a2110;border:1px solid #6b4f12;border-left:4px solid #e8a33d;border-radius:var(--radius);padding:12px 16px;font-size:13px;font-weight:600;color:#f0c36d;box-shadow:var(--shadow);animation:toast-in .18s ease-out}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000000a6;display:grid;place-items:center;padding:16px}.modal-card{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px 22px;color:var(--text)}.modal-card-wide{max-width:520px}.modal-demo-badge{margin:0 0 12px;font-size:11.5px;font-weight:600;color:#f0c36d;background:#e8a33d1f;border:1px solid rgba(232,163,61,.35);border-radius:8px;padding:8px 10px;line-height:1.35}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.modal-title{margin:0;font-family:Fraunces,serif;font-size:20px;font-weight:600;line-height:1.2}.modal-close{border:none;background:none;color:var(--muted);font-size:22px;line-height:1;padding:0 4px}.modal-close:hover{color:var(--text)}.modal-lead{margin:0 0 12px;font-size:13.5px;color:var(--muted);line-height:1.45}.modal-warn{margin:0 0 12px;font-size:13px;color:#f0c36d;background:#e8a33d1f;border:1px solid rgba(232,163,61,.35);border-radius:8px;padding:8px 10px}.modal-preview-summary{margin:0 0 14px;font-size:14px;color:var(--text)}.modal-form{display:flex;flex-direction:column;gap:12px}.modal-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.modal-field input{border:1px solid var(--line);background:var(--field);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--text)}.modal-field input:focus{outline:none;border-color:var(--accent)}.modal-checkbox{display:flex;align-items:flex-start;gap:10px;font-size:11.5px;color:var(--muted);line-height:1.4;cursor:pointer}.modal-checkbox input{margin-top:3px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.modal-pdf-preview-wrap{max-height:min(58vh,520px);overflow:auto;border:1px solid var(--line);border-radius:10px;background:#e8e8e8;margin-bottom:14px;padding:10px;-webkit-overflow-scrolling:touch}.modal-pdf-preview-wrap .pdf-report{width:100%;max-width:476px;margin:0 auto;padding:14px 16px 18px;font-size:10px;box-shadow:0 4px 20px #0000001f}.modal-pdf-preview-wrap .pdf-report-title{font-size:22px}.modal-pdf-preview-wrap .pdf-report-section h2{font-size:11px}.modal-pdf-preview-wrap .pdf-room-card-value{font-size:16px}.modal-pdf-preview-wrap .pdf-report-table{font-size:9px}.modal-error{margin:0;font-size:13px;color:var(--danger)}.modal-privacy{margin:0;font-size:11px;color:var(--muted);line-height:1.4}.modal-actions{display:flex;gap:10px;margin-top:4px}.modal-btn{flex:1;border:1px solid var(--line);background:var(--field);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;color:var(--text)}.modal-btn:hover:not(:disabled){background:var(--field-hover)}.modal-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.modal-btn.primary:hover:not(:disabled){background:#4576e6}.modal-card-confirm{max-width:380px}.modal-btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.modal-btn.danger:hover:not(:disabled){background:#e85a45;border-color:#e85a45}.modal-btn:disabled{opacity:.55;cursor:not-allowed}.pdf-report{width:794px;background:#fff;color:#1a1a1a;font-family:Inter,system-ui,sans-serif;padding:36px 44px 44px;box-sizing:border-box}.pdf-report-head{border-bottom:3px solid #2f6df6;padding-bottom:18px;margin-bottom:22px}.pdf-report-head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.pdf-report-brand{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#2f6df6;font-weight:700;margin-bottom:6px}.pdf-report-title{margin:0 0 6px;font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:700;color:#111}.pdf-report-meta{margin:0;font-size:12px;color:#666}.pdf-report-contact{text-align:right;font-size:13px;line-height:1.5;color:#333}.pdf-report-contact-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#888;margin-bottom:4px}.pdf-report-room-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.pdf-room-card{background:#f6f8fc;border:1px solid #dce4f2;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}.pdf-room-card-label{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#6b7280;font-weight:600}.pdf-room-card-value{font-size:22px;font-weight:700;color:#1e3a8a;font-family:Fraunces,Georgia,serif}.pdf-room-card-sub{font-size:11px;color:#888}.pdf-report-section{margin-bottom:26px}.pdf-report-section h2{margin:0 0 6px;font-size:13px;font-weight:700;color:#1e3a8a;text-transform:uppercase;letter-spacing:.06em}.pdf-section-desc{margin:0 0 12px;font-size:12px;color:#666;line-height:1.45}.pdf-render-frame{border:1px solid #d0d7e2;border-radius:10px;overflow:hidden;background:#222}.pdf-render-img{display:block;width:100%;height:auto}.pdf-floorplan{display:block;width:100%;max-width:420px;border:1px solid #e0e0e0;border-radius:8px;background:#fafafa}.pdf-legend-grid{display:flex;flex-direction:column;gap:8px}.pdf-legend-item{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;padding:10px 12px;border:1px solid #e8e8e8;border-radius:8px;background:#fafafa}.pdf-legend-swatch{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0}.pdf-legend-text{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#555;line-height:1.35}.pdf-legend-text strong{font-size:13px;color:#111}.pdf-report-table{width:100%;border-collapse:collapse;font-size:11.5px}.pdf-report-table th,.pdf-report-table td{border:1px solid #ddd;padding:9px 10px;text-align:left}.pdf-report-table th{background:#eef2f9;font-weight:700;color:#334155}.pdf-table-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;color:#fff;font-weight:700;font-size:11px}.pdf-table-total td{background:#f4f7fb;border-top:2px solid #c5d0e0}.pdf-report-foot{margin-top:28px;padding-top:18px;border-top:2px solid #e5e7eb}.pdf-report-disclaimer{font-size:10.5px;color:#777;line-height:1.5;margin:0}.pdf-cabinet-badge{width:30px;height:30px;border-radius:50%;border:2px solid #fff;color:#fff;font-weight:800;font-size:14px;display:grid;place-items:center;box-shadow:0 2px 8px #00000073;font-family:Inter,sans-serif;pointer-events:none;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.promo-banner-slot--open{max-height:88px}.promo-banner{height:auto;min-height:48px;padding:8px 82px 8px 10px;font-size:12px;align-items:center}.promo-banner-link{flex-wrap:wrap;justify-content:center;gap:6px 8px;row-gap:4px}.promo-banner-text{white-space:normal;flex:1 1 100%;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.promo-banner-timer{right:8px;padding:3px 8px;gap:4px}.promo-banner-timer-value{font-size:13px}.promo-banner-timer-label{font-size:8px}.promo-banner-cta{display:none}.topbar-menu-btn{display:grid}.topbar{grid-template-columns:auto auto 1fr auto}.sidebar{position:fixed;top:48px;left:0;bottom:0;z-index:260;width:min(300px,88vw);transform:translate(-105%);transition:transform .22s ease;box-shadow:none}.app.sidebar-open .sidebar{transform:translate(0);box-shadow:8px 0 32px #00000073}.sidebar-backdrop{display:block;position:fixed;top:48px;right:0;bottom:0;left:0;z-index:250;border:none;padding:0;margin:0;background:#0000008c;cursor:pointer}}@media (max-width: 420px){.promo-banner-slot--open{max-height:96px}.promo-banner{padding:8px 68px 8px 8px;font-size:11.5px}.promo-banner-badge{font-size:11px;padding:3px 8px}.promo-banner-timer-label{display:none}.promo-banner-timer-demo{display:none!important}.promo-banner-timer{padding:4px 7px}.promo-banner-timer-value{font-size:12px}}@container stage (max-width: 920px){.tbtn-cta-sub,.room-panel .bb-label{display:none}.room-input input{width:52px;padding:5px 6px;font-size:12px}.room-panel-inputs{gap:8px}}@container stage (max-width: 900px){.tbtn-cta-title,.tbtn-cta-sub{display:none}.tbtn-cta-short{display:inline}.tbtn-cta-pdf{flex-direction:row;align-items:center;padding:7px 10px}.tbtn-toggle-label,.tbtn-text,.topbar-count-label{display:none}.tbtn{padding:6px 9px;font-size:12px}.tbtn-toggle-state{min-width:28px}}@container stage (max-width: 860px){.topbar{grid-template-columns:auto 1fr auto;grid-template-rows:auto auto}.topbar-menu-btn{grid-row:1;grid-column:1}.topbar-status{grid-row:1;grid-column:2}.topbar-actions{grid-row:1;grid-column:3}.room-panel{grid-row:2;grid-column:1 / -1;justify-self:stretch;justify-content:center}.room-panel-inputs{flex:1;justify-content:center;max-width:360px}.room-input span{display:none}}@container stage (max-width: 580px){.topbar-actions,.topbar-tools{gap:4px}.room-panel-inputs{max-width:none;width:100%;padding:0 4px}}@container stage (max-width: 400px){.topbar{grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;padding:6px 8px}.topbar-status{grid-column:2}.topbar-actions{grid-row:2;grid-column:1 / -1;flex-direction:column;align-items:stretch;gap:6px}.tbtn-cta-pdf{width:100%;justify-content:center}.topbar-tools{width:100%;justify-content:space-between}.room-panel{grid-row:3}.room-input input{width:100%}.room-input{flex:1}.room-panel-inputs{width:100%;max-width:none}}
