:root{
  --bg:#0d1010;--panel:rgba(20,24,22,.84);--panel2:#171b19;--line:rgba(255,255,255,.12);
  --line2:rgba(255,255,255,.07);--orange:#f05a2a;--orange2:#ff7a3c;--green:#315f3b;
  --text:#f6f4ef;--muted:#9ca49f;--soft:#d8ddd9;--shadow:0 26px 80px rgba(0,0,0,.42)
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;background:var(--bg);color:var(--text);font-family:"Vazirmatn","Segoe UI",Tahoma,Arial,sans-serif;overflow:hidden}
button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid rgba(240,90,42,.78);outline-offset:2px}
#app,#scene{position:fixed;inset:0;width:100%;height:100%}#scene{display:block;touch-action:none;overscroll-behavior:none;background:radial-gradient(circle at 50% 12%,#222728,#0c0f0f 68%)}
.glass{background:linear-gradient(145deg,rgba(29,34,31,.88),rgba(12,15,14,.80));backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%);border:1px solid var(--line);box-shadow:0 16px 52px rgba(0,0,0,.30)}

.topbar{position:fixed;top:10px;left:14px;right:14px;min-height:60px;border-radius:17px;display:grid;grid-template-columns:auto minmax(250px,620px) auto;align-items:center;gap:12px;padding:6px 10px;z-index:20;direction:rtl;background:linear-gradient(145deg,rgba(24,29,27,.82),rgba(10,13,12,.72));}
.topbar::after{content:"";position:absolute;inset:auto 24px -1px;height:1px;background:linear-gradient(90deg,transparent,rgba(240,90,42,.64),rgba(49,95,59,.58),transparent);pointer-events:none}
.brand-chip{display:flex;align-items:center;gap:11px;min-width:255px}.brand-chip img{width:52px;height:52px;border-radius:13px;object-fit:cover;border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 28px #0008}.brand-chip b,.brand-chip small{display:block}.brand-chip b{font-size:15px;font-weight:800}.brand-chip small{font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:.05px}
.search-wrap{position:relative}.search-wrap input{width:100%;height:42px;border-radius:14px;border:1px solid var(--line);background:rgba(0,0,0,.24);color:#fff;padding:0 17px;outline:none}.search-wrap input::placeholder{color:#9ca49f}.search-wrap input:focus{border-color:rgba(240,90,42,.70);box-shadow:0 0 0 3px rgba(240,90,42,.10)}
.search-results{display:none;position:absolute;top:52px;left:0;right:0;background:rgba(18,22,20,.98);border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 24px 70px #000a;max-height:350px;overflow-y:auto}.search-results.show{display:block}.search-item{padding:12px 14px;border-bottom:1px solid var(--line2);display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer}.search-item:last-child{border-bottom:0}.search-item:hover{background:linear-gradient(90deg,rgba(240,90,42,.11),rgba(49,95,59,.07))}.search-item small{color:var(--muted);font-size:10px}
.top-actions{display:flex;gap:7px;direction:ltr}.icon-btn{height:40px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));color:#fff;transition:.18s transform,.18s border-color,.18s background}.icon-btn:hover{border-color:rgba(240,90,42,.65);background:rgba(240,90,42,.08);transform:translateY(-1px)}.cart-btn span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 5px;border-radius:10px;background:var(--orange);font-size:11px;box-shadow:0 0 16px rgba(240,90,42,.35)}

.info-stack{position:fixed;left:18px;top:80px;z-index:13;width:min(335px,calc(100vw - 36px));display:grid;gap:10px;pointer-events:none}.hall-label{position:relative;padding:10px 13px;border-radius:15px;display:flex;align-items:flex-start;gap:10px;direction:ltr;pointer-events:auto}.hall-label .dot{width:9px;height:9px;margin-top:4px;background:#59d47d;border-radius:50%;box-shadow:0 0 16px rgba(89,212,125,.85)}.hall-label b,.hall-label small,.hall-label em{display:block}.hall-label b{letter-spacing:.8px}.hall-label small{color:var(--soft);font-size:10px;direction:rtl;margin-top:3px}.hall-label em{font-style:normal;color:#7e8882;font-size:9px;margin-top:5px}
.proximity-badge{position:relative;width:100%;padding:11px 12px;border-radius:15px;opacity:0;transform:translateY(-5px);pointer-events:none;transition:.22s;display:none}.proximity-badge.show{display:block;opacity:1;transform:none;pointer-events:auto}.proximity-badge b,.proximity-badge span{display:block}.proximity-badge b{font-size:13px}.proximity-badge span{color:var(--muted);font-size:10px;margin-top:4px;direction:ltr;text-align:left}.proximity-badge button{margin-top:9px;width:100%;height:39px;border-radius:11px;border:1px solid rgba(240,90,42,.42);background:rgba(240,90,42,.10);color:#fff;font-size:12px;font-weight:700}.proximity-badge button:hover{background:rgba(240,90,42,.18)}
.crosshair{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;pointer-events:none;width:24px;height:24px;opacity:.62}.crosshair::before,.crosshair::after{content:"";position:absolute;background:#fff;border-radius:2px;box-shadow:0 0 7px #fff5}.crosshair::before{width:10px;height:1px;left:7px;top:11px}.crosshair::after{width:1px;height:10px;top:7px;left:11px}.crosshair span{position:absolute;inset:8px;border:1px solid #fff7;border-radius:50%}
.hint{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:10;padding:9px 14px;border-radius:13px;color:#d9ddd9;font-size:10px;white-space:nowrap}.scale-chip{position:fixed;right:18px;bottom:18px;z-index:10;padding:8px 11px;border-radius:12px;color:#9fa9a1;font-size:9px;direction:ltr}

.loading-screen{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 50% 38%,#322218,#0a0d0c 68%);display:grid;place-items:center;transition:.48s opacity}.loading-screen::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(240,90,42,.055),transparent 65%);animation:loadingSweep 3.2s linear infinite}.loading-screen.hide{opacity:0;pointer-events:none}.loading-card{position:relative;text-align:center;width:min(570px,88vw)}.loading-logo{width:134px;height:134px;border-radius:30px;object-fit:cover;box-shadow:0 26px 86px #000b,0 0 0 1px rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.11)}.eyebrow,.panel-kicker{font-size:10px;letter-spacing:2px;color:var(--orange2);font-weight:700;direction:ltr}.loading-card .eyebrow{margin-top:23px}.loading-card h1{font-size:27px;margin:10px 0 8px;font-weight:800}.loading-card p,.loading-status{color:var(--muted);font-size:11px}.loader{height:3px;width:240px;background:#ffffff10;border-radius:4px;margin:28px auto 14px;overflow:hidden}.loader span{display:block;height:100%;width:42%;background:linear-gradient(90deg,var(--orange),#ff9a62);animation:loader 1.3s ease-in-out infinite}@keyframes loader{0%{transform:translateX(-150%)}100%{transform:translateX(340%)}}@keyframes loadingSweep{0%{transform:translateX(-30%)}100%{transform:translateX(30%)}}

.side-panel{position:fixed;z-index:40;top:0;right:0;width:min(450px,94vw);height:100%;background:linear-gradient(160deg,rgba(20,24,22,.988),rgba(10,13,12,.99));border-left:1px solid var(--line);padding:79px 25px 24px;transform:translateX(105%);transition:.32s transform cubic-bezier(.2,.7,.2,1);overflow-y:auto;box-shadow:-30px 0 90px #0009}.side-panel.open{transform:none}.side-panel.compact{width:min(400px,94vw)}.brand-panel{width:min(610px,96vw)}.close-btn{position:absolute;top:22px;left:22px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#ffffff0a;color:#fff;font-size:24px;line-height:1;transition:.18s}.close-btn:hover{background:rgba(240,90,42,.12);border-color:rgba(240,90,42,.5)}.side-panel h2,.modal-card h2{margin:8px 0 16px;font-size:23px;font-weight:800}
.product-visual{height:194px;border-radius:21px;border:1px solid var(--line);margin:14px 0 16px;background:radial-gradient(circle at 48% 40%,#3a413e,#181c1a 64%,#0f1211);position:relative;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}.product-visual::before,.product-visual::after{content:"";position:absolute;background:#e9ebe6;box-shadow:inset 0 0 0 6px #c9cec9,0 18px 32px #0005}.product-visual::before{width:235px;height:50px;border-radius:999px;left:50%;top:52%;transform:translate(-50%,-50%) rotate(-7deg)}.product-visual::after{width:64px;height:64px;border-radius:50%;left:57%;top:37%}.product-visual[data-shape="window"]::before{width:128px;height:128px;border-radius:4px;background:transparent;border:10px solid #bec8c1;box-shadow:inset 0 0 0 1px #ffffff14,0 18px 32px #0005;transform:translate(-50%,-50%)}.product-visual[data-shape="window"]::after{width:3px;height:105px;border-radius:1px;background:#bec8c1;left:50%;top:23%;box-shadow:none}.product-visual[data-shape="light"]::before{width:12px;height:112px;border-radius:9px;background:#d8c58b;box-shadow:0 0 27px #ffe2a85c;transform:translate(-50%,-50%)}.product-visual[data-shape="light"]::after{width:112px;height:8px;left:50%;top:68%;background:#efd696;box-shadow:0 0 35px #ffe4aa68}
.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{padding:5px 9px;border-radius:999px;background:#ffffff08;border:1px solid var(--line);font-size:10px;color:#d6ddd7;direction:ltr}.muted{color:var(--muted);font-size:12px;line-height:1.9}.price-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);padding:14px 0;margin:17px 0}.price-row span{color:var(--muted);font-size:11px}.price-row b{color:#fff}.panel-actions{display:grid;gap:8px}.primary,.secondary{min-height:46px;border-radius:13px;padding:0 16px;border:1px solid transparent;transition:.18s transform,.18s filter,.18s border-color}.primary{background:linear-gradient(135deg,var(--orange),#db451e);color:#fff;font-weight:700;box-shadow:0 12px 28px rgba(240,90,42,.18)}.primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.secondary{background:#ffffff08;border-color:var(--line);color:#fff}.secondary:hover{border-color:rgba(255,255,255,.23);background:#ffffff0d}.full{width:100%}.demo-note{display:block;color:#788278;line-height:1.8;font-size:10px;margin-top:12px}.cart-line{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 0;border-bottom:1px solid var(--line2)}.cart-line small{display:block;color:var(--muted);margin-top:4px}.empty{padding:31px 0;color:var(--muted);text-align:center;font-size:12px}

.catalog-search{display:block;margin:12px 0 15px;font-size:10px;color:#c6cec8}.catalog-search span{display:block;margin-bottom:7px}.catalog-search input{width:100%;height:43px;border-radius:12px;border:1px solid var(--line);background:#0e1210;color:#fff;padding:0 13px;outline:none}.brand-products-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.catalog-card{border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#181d1a,#111513);padding:14px;text-align:right;color:#fff;min-height:142px;display:flex;flex-direction:column;justify-content:space-between}.catalog-card:hover{border-color:rgba(240,90,42,.38);background:linear-gradient(145deg,#1d211e,#121614)}.catalog-card .mini-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}.catalog-card .mini-tags span{font-size:8px;padding:3px 6px;border-radius:999px;border:1px solid var(--line);color:#aeb7b0;direction:ltr}.catalog-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px}.catalog-card footer b{font-size:10px;color:#e6e9e6}.catalog-card footer button{height:32px;border-radius:9px;border:1px solid rgba(240,90,42,.35);background:rgba(240,90,42,.08);color:#fff;font-size:9px;padding:0 10px}

.modal-shell{display:none;position:fixed;inset:0;z-index:60;background:#050605c9;backdrop-filter:blur(11px);place-items:center;padding:18px}.modal-shell.open{display:grid}.modal-card{position:relative;width:min(780px,95vw);max-height:92vh;overflow:auto;border:1px solid var(--line);border-radius:25px;background:linear-gradient(150deg,#171b19,#0f1211);padding:29px;box-shadow:0 35px 110px #000}.map-note{color:var(--muted);font-size:10px;margin:-5px 0 17px}
.floorplan{height:465px;position:relative;border:1px solid var(--line);border-radius:21px;background:linear-gradient(180deg,rgba(255,255,255,.018),transparent),repeating-linear-gradient(90deg,#111513 0,#111513 29px,#171d19 30px),repeating-linear-gradient(0deg,transparent 0,transparent 29px,#ffffff07 30px);overflow:hidden;box-shadow:inset 0 0 70px #0007}.floorplan::after{content:"";position:absolute;left:50%;top:62px;bottom:64px;width:86px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.009));border-left:1px dashed #ffffff12;border-right:1px dashed #ffffff12;pointer-events:none}.entrance{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);border:1px solid rgba(240,90,42,.34);background:rgba(240,90,42,.08);border-radius:10px;padding:7px 26px;color:#d9dfd9;font-size:10px;z-index:2}.aisle{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%) rotate(-90deg);color:#ffffff2b;letter-spacing:1px;font-size:9px;z-index:2}.plan-dim{position:absolute;color:#69736b;font-size:9px;z-index:2}.plan-width{top:12px;left:50%;transform:translateX(-50%)}.plan-depth{top:51%;right:-21px;transform:rotate(-90deg)}.map-booth{position:absolute;border-radius:14px;border:1px solid var(--line);color:#fff;background:#202620;z-index:3;text-align:center;padding:9px;transition:.18s transform,.18s border-color}.map-booth:hover{transform:translateY(-2px);border-color:#ffffff2f}.map-booth b,.map-booth strong,.map-booth small{display:block}.map-booth b{font-size:12px}.map-booth strong{font-size:18px;margin-top:5px}.map-booth small{margin-top:5px;color:#ffffff9e;font-size:8px}.map-booth.pipe{left:7%;top:96px;width:32%;height:150px;background:linear-gradient(145deg,#272d29,#141815);box-shadow:inset 0 4px 0 var(--orange)}.map-booth.pro{right:8%;top:92px;width:26%;height:130px;box-shadow:inset 0 4px 0 #c6a35d}.map-booth.std{right:11%;top:260px;width:22%;height:112px;box-shadow:inset 0 4px 0 #4f8a60}
.form-card{width:min(530px,94vw)}.form-card label{display:block;font-size:11px;color:#cbd2cc;margin:13px 0}.form-card input,.form-card textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);background:#0a0e0b;color:#fff;border-radius:12px;padding:12px;outline:none}.form-card input:focus,.form-card textarea:focus{border-color:rgba(240,90,42,.68);box-shadow:0 0 0 3px rgba(240,90,42,.08)}
.toast{position:fixed;z-index:100;bottom:24px;right:24px;max-width:min(370px,85vw);padding:12px 16px;background:#1a221c;border:1px solid #ffffff1b;border-radius:14px;box-shadow:0 20px 55px #0009;transform:translateY(120px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}
.mobile-pad{display:none;position:fixed;z-index:16;bottom:25px;left:22px;direction:ltr;user-select:none;-webkit-user-select:none}.mobile-pad>button,.mobile-pad div button{position:relative;width:51px;height:51px;border-radius:15px;border:1px solid #ffffff1e;background:#101511d9;color:#fff;backdrop-filter:blur(10px);touch-action:none}.mobile-pad>button{display:block;margin:auto auto 5px}.mobile-pad div{display:flex;gap:5px}.mobile-pad button::before{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;border-top:2px solid #fff;border-left:2px solid #fff;transform-origin:center}.mobile-pad button[data-move="forward"]::before{transform:translate(-50%,-34%) rotate(45deg)}.mobile-pad button[data-move="back"]::before{transform:translate(-50%,-66%) rotate(225deg)}.mobile-pad button[data-move="left"]::before{transform:translate(-34%,-50%) rotate(-45deg)}.mobile-pad button[data-move="right"]::before{transform:translate(-66%,-50%) rotate(135deg)}.mobile-pad button:active{background:rgba(240,90,42,.26);border-color:rgba(240,90,42,.55)}

.fallback{display:none;position:fixed;inset:0;z-index:8;padding:100px 22px 22px;overflow:auto;background:radial-gradient(circle at 50% 0,#273029,#0d100f 52%)}.fallback.show{display:block}.fallback-inner{max-width:1120px;margin:auto}.fallback-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.fallback-head span{font-size:10px;color:var(--orange);letter-spacing:1.5px}.fallback-head h2{margin:6px 0}.fallback-inner>p{color:var(--muted);font-size:12px}.fallback-hall{margin-top:29px;display:grid;grid-template-columns:1.38fr 1fr .82fr;gap:14px;perspective:1000px}.fallback-booth{height:245px;border-radius:24px;border:1px solid var(--line);background:#1a201c;color:#fff;text-align:right;padding:24px;box-shadow:0 30px 70px #0005;transition:.2s transform}.fallback-booth:hover{transform:translateY(-4px)}.fallback-booth span,.fallback-booth b,.fallback-booth small{display:block}.fallback-booth span{font-size:9px;letter-spacing:1.3px;color:#ff966b}.fallback-booth b{font-size:25px;margin-top:78px;direction:ltr;text-align:right}.fallback-booth small{color:var(--muted);margin-top:8px}.fallback-booth.pipe{background:linear-gradient(145deg,#2c332e,#111512);box-shadow:inset 0 5px 0 var(--orange),0 30px 70px #0005}.fallback-booth.pro{box-shadow:inset 0 5px 0 #c6a35d,0 30px 70px #0005}.fallback-booth.std{box-shadow:inset 0 5px 0 #4f8a60,0 30px 70px #0005}.fallback-products{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.fallback-selected{grid-column:1/-1;border:1px solid var(--line);border-radius:15px;background:#171d18;padding:13px 15px;display:flex;justify-content:space-between;gap:12px}.fallback-selected span{color:var(--muted);font-size:10px;direction:ltr}.fallback-product{border:1px solid var(--line);border-radius:15px;background:#141a16;color:#fff;padding:13px;text-align:right}.fallback-product small{display:block;color:var(--muted);margin-top:6px}

@media(max-width:920px){.topbar{grid-template-columns:1fr auto;min-height:68px;gap:8px}.brand-chip{min-width:0}.brand-chip div{display:none}.search-wrap{grid-column:1/3;grid-row:2}.top-actions{grid-column:2;grid-row:1}.info-stack{top:134px}.hint{display:none}.crosshair{display:none}.scale-chip{display:none}.mobile-pad{display:block}.side-panel{padding-top:72px}.fallback{padding-top:145px}.fallback-hall{grid-template-columns:1fr}.fallback-booth{height:155px}.fallback-booth b{margin-top:36px}.fallback-products{grid-template-columns:1fr 1fr}.brand-products-grid{grid-template-columns:1fr}.floorplan{height:590px}.floorplan::after{display:none}.map-booth{width:90%!important;right:5%!important;left:auto!important;height:118px}.map-booth.pipe{top:48px}.map-booth.pro{top:184px}.map-booth.std{top:320px}.aisle{display:none}.entrance{bottom:30px}.plan-depth{display:none}}
@media(max-width:520px){.topbar{left:9px;right:9px;top:9px}.icon-btn{padding:0 9px;font-size:10px}.info-stack{left:10px;width:min(315px,calc(100vw - 20px))}.fallback-products{grid-template-columns:1fr}.fallback-selected{display:block}.fallback-selected span{display:block;margin-top:5px}.loading-card h1{font-size:21px}.modal-card{padding:23px 17px}.mobile-pad{left:12px;bottom:14px}.product-visual{height:175px}}

.audio-popover{position:fixed;top:80px;right:18px;z-index:31;width:min(330px,calc(100vw - 36px));padding:15px;border-radius:17px;opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:.2s opacity,.2s transform}.audio-popover.open{opacity:1;transform:none;pointer-events:auto}.audio-popover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.audio-popover-head b,.audio-popover-head small{display:block}.audio-popover-head b{font-size:13px}.audio-popover-head small{font-size:9px;color:var(--muted);margin-top:4px}.audio-popover-head button{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:#ffffff09;color:#fff}.audio-row{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:9px;padding:9px 0;border-top:1px solid var(--line2);font-size:10px}.audio-row input{width:100%;accent-color:var(--orange)}.audio-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.audio-actions .secondary{min-height:38px;font-size:10px}

@media(max-width:920px){.audio-popover{top:137px;right:10px}}
/* v0.12 data-driven navigation containers: wrappers must not alter existing layout geometry. */
#mapBooths,#fallbackBooths{display:contents}

@media(max-width:920px){.admin-action{display:none!important}}

/* v0.18 — typography safety + release preview */
html,body,button,input,select,textarea{font-family:Vazirmatn,Tahoma,Arial,sans-serif;word-break:keep-all;overflow-wrap:normal}
h1,h2,h3,.panel-kicker,.hall-label b,.brand-chip b,.map-booth b,.map-booth strong,.icon-btn,.tag,.hint,.scale-chip{word-break:keep-all;overflow-wrap:normal;text-wrap:balance}
.icon-btn,.top-actions button,.hall-label b,.map-booth strong,.panel-kicker{white-space:nowrap}
p,.muted,.demo-note,.map-note,.catalog-card,.search-item{line-height:1.85;text-wrap:pretty}
.release-mode-banner{position:fixed;top:86px;left:50%;transform:translateX(-50%);z-index:70;width:min(760px,calc(100vw - 28px));padding:10px 14px;border:1px solid #d9673166;border-radius:12px;background:#24170fe8;backdrop-filter:blur(14px);box-shadow:0 14px 40px #0006;text-align:center;pointer-events:none}
.release-mode-banner b,.release-mode-banner span{display:block}.release-mode-banner b{font-size:11px;color:#ffd5c0}.release-mode-banner span{font-size:8.5px;color:#d6b29f;margin-top:3px;line-height:1.7}
@media(max-width:720px){.release-mode-banner{top:138px}}
