@import"https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700&display=swap";:root{--ink: #101412;--panel: #151a17;--panel-elevated: #1c2320;--line: #2a332e;--line-soft: #243029;--muted: #8b968e;--text: #e8eee9;--text-dim: #a7b1aa;--paper: #f3f5f3;--accent: #009e4e;--accent-deep: #007a3c;--accent-soft: rgba(0, 158, 78, .16);--danger: #d45a4f;--danger-soft: rgba(212, 90, 79, .14);--ok: #2f9d64;--shadow: 0 18px 48px rgba(0, 0, 0, .35);--dock-h: 64px;--topbar-h: 64px;--radius: 4px;--font: "Vazirmatn", sans-serif;font-family:var(--font);color:var(--text);background:var(--ink);font-synthesis:none;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;height:100dvh;margin:0;overflow:hidden}html[data-sheet=open] body{overflow:hidden;touch-action:none}body{overscroll-behavior:none;background:var(--ink)}button,input,select{font:inherit;color:inherit}button{appearance:none}.app-shell{width:100%;height:100%;height:100dvh;min-width:0;min-height:0;display:grid;grid-template:var(--topbar-h) 1fr / minmax(300px,340px) 1fr;grid-template-areas:"header header" "sidebar viewport";direction:rtl;background:var(--ink)}.topbar{grid-area:header;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;direction:ltr;min-width:0}.brand-logo{display:block;width:132px;height:36px;object-fit:contain;object-position:left center}.brand-product{display:flex;flex-direction:column;gap:2px;padding-left:12px;border-left:1px solid var(--line);direction:rtl;text-align:right}.brand-product small{color:var(--accent);font:700 9px/1 Arial,sans-serif;letter-spacing:.14em;direction:ltr;text-align:left}.brand-product strong{font-size:13px;font-weight:600;color:var(--text)}.topbar-actions{display:flex;align-items:center;gap:8px;min-width:0}.report-actions,.customer-workspace{display:flex;align-items:center;gap:6px}.tool-button,.save-config-button,.account-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-elevated);color:var(--text-dim);font-size:12px;cursor:pointer;white-space:nowrap}.tool-button:hover,.account-button:hover{border-color:#3d4a42;color:var(--text)}.tool-button.ghost{background:transparent}.save-config-button{border-color:var(--accent-deep);background:var(--accent);color:#fff;font-weight:600}.save-config-button.saved{background:var(--ok);border-color:var(--ok)}.save-config-button:disabled{opacity:.6;cursor:wait}.sidebar{grid-area:sidebar;z-index:15;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--line)}.sheet-handle,.sheet-head,.sheet-close,.sheet-scrim,.mobile-dock{display:none}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 28px}.sidebar-pane+.sidebar-pane{margin-top:8px;padding-top:18px;border-top:1px solid var(--line-soft)}.control-section h2{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:13px;font-weight:600;color:var(--text)}.catalog-section{margin:4px -4px 0;padding:14px 12px 16px;border:1px solid #d7d2c8;border-radius:8px;background:linear-gradient(180deg,#f7f4ee,#efebe3);color:#243028}.catalog-head{margin-bottom:14px}.catalog-head h1{margin:0 0 6px;font-size:14px;font-weight:700;color:#1d2621}.catalog-head p,.height-help{margin:0;color:#6d736c;font-size:12px;line-height:1.75}.height-help{margin:0 0 14px;color:var(--muted)}.field{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;color:var(--text-dim);font-size:12px}.input-wrap,.field select{border:1px solid var(--line);border-radius:var(--radius);background:var(--ink)}.input-wrap{display:flex;align-items:center;overflow:hidden}.input-wrap input{direction:ltr;width:84px;border:0;outline:0;padding:9px 8px;background:transparent;color:var(--text)}.input-wrap b{padding:0 8px;border-right:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:400}.field select{min-width:140px;padding:9px 10px;color:var(--text);outline:none}.end-controls,.bay-controls{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}.column-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}.column-actions button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-elevated);color:var(--text-dim);font-size:11px;cursor:pointer}.column-actions button:disabled{opacity:.35;cursor:default}.stock-summary{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--ink);color:var(--text-dim);font-size:11px}.stock-summary strong{color:var(--text);font-size:12px}.stock-summary span{direction:ltr;font-weight:600;color:var(--accent)}.stock-summary small{grid-column:1 / -1;color:var(--muted)}.palette-group>small{display:block;margin:14px 0 8px;color:#6a716b;font-size:11px;font-weight:700;letter-spacing:.02em}.products{display:grid;gap:12px}.product-card{display:grid;grid-template-rows:108px auto;gap:0;width:100%;padding:0;overflow:hidden;border:1px solid #d4cec3;border-radius:10px;background:#fffdf8;text-align:right;cursor:grab;touch-action:manipulation;transition:border-color .15s ease,transform .15s ease}.product-card:hover{border-color:#009e4e;transform:translateY(-2px)}.product-card:active{cursor:grabbing;transform:none}.product-preview{position:relative;display:block;overflow:hidden;width:100%;height:108px;border:0;border-bottom:1px solid #e6e0d6}.product-preview i{position:absolute;display:block}.product-preview.tone-glass{background:linear-gradient(160deg,#f4f7f8,#dce7ea 55%,#c9d7dc)}.tone-glass .preview-rail{left:18%;right:18%;top:34%;height:9px;border-radius:2px;background:#4a3028}.tone-glass .preview-glass{left:22%;right:22%;top:42%;height:36%;border:1px solid rgba(120,150,160,.45);background:linear-gradient(180deg,#ebf5f859,#aac8d29e);box-shadow:inset 0 1px #ffffffa6}.tone-glass .preview-bracket{top:40%;width:6px;height:40%;border-radius:1px;background:#3f2a23}.tone-glass .preview-bracket.left{left:18%}.tone-glass .preview-bracket.right{right:18%}.product-preview.tone-mdf{background:linear-gradient(145deg,#e2c29a,#c29563 45%,#9f7243)}.tone-mdf .preview-board{inset:26% 16%;border-radius:3px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.1) 0 3px,transparent 3px 9px),linear-gradient(180deg,#d0a574,#a67845);box-shadow:0 10px 18px #46281240}.tone-mdf .preview-edge{left:16%;right:16%;bottom:26%;height:5px;background:#7d5633}.product-preview.tone-rail{background:linear-gradient(160deg,#f2eee7,#e0d8cc)}.tone-rail .preview-rail-bar{left:14%;right:14%;top:46%;height:10px;border-radius:99px;background:linear-gradient(180deg,#6a4538,#3d261f);box-shadow:0 4px #2a1a15}.tone-rail .preview-hook{top:56%;width:3px;height:22%;background:#5c4034}.tone-rail .preview-hook.a{left:30%}.tone-rail .preview-hook.b{left:49%}.tone-rail .preview-hook.c{left:68%}.product-copy{display:grid;gap:4px;min-width:0;padding:12px 12px 13px}.product-copy strong{font-size:15px;font-weight:700;color:#1c241f;line-height:1.3}.product-copy em{color:#66706a;font-size:11px;font-style:normal;line-height:1.55}.product-copy small{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-top:6px;color:#7a827c;font-size:11px}.product-copy small span:last-child{color:#007a3c;font-weight:650}.no-placeables{padding:12px;border:1px solid #e0b7b1;border-radius:6px;background:#fff4f2;color:#9a4d4d;font-size:12px;line-height:1.7}.viewport{grid-area:viewport;position:relative;direction:ltr;min-width:0;min-height:0;overflow:hidden;background:#ddd8cf}.viewport canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.viewport-badge{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:8px;direction:rtl;padding:8px 12px;border:1px solid rgba(70,60,48,.14);border-radius:var(--radius);background:#fffcf7e0;color:#4d564f;font-size:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.viewport-badge span{display:grid;place-items:center;min-width:22px;height:22px;border-radius:2px;background:var(--accent);color:#fff;font-weight:700;font-size:11px}.empty-hint{position:absolute;left:50%;bottom:28px;transform:translate(-50%);direction:rtl;max-width:min(420px,calc(100% - 32px));padding:12px 16px;border:1px solid rgba(70,60,48,.14);border-radius:var(--radius);background:#fffcf7e6;color:#4d564f;font-size:12px;line-height:1.7;text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.snap-status{position:absolute;top:16px;left:50%;transform:translate(-50%);direction:rtl;padding:9px 14px;border-radius:var(--radius);color:#fff;font-size:12px;font-weight:600}.snap-status.is-valid{background:var(--ok)}.snap-status.is-invalid{background:var(--danger)}.toast{position:absolute;right:16px;bottom:16px;direction:rtl;width:min(360px,calc(100% - 32px));display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #6a3530;border-radius:var(--radius);background:#2a1816;color:#f2c3bd;box-shadow:var(--shadow)}.toast strong{font-size:12px;color:#fff}.toast p{margin:3px 0 0;font-size:11px;color:#d9a39c}.toast>span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:2px;background:var(--danger);color:#fff;font-size:11px;font-weight:700}.catalog-banner{position:absolute;z-index:8;inset:14px 14px auto;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #7a353a;border-radius:var(--radius);background:#46161af0;color:#fff}.catalog-banner p{margin:3px 0;color:#f1ced1;font-size:12px}.catalog-banner small{color:#e5aeb2;font-size:11px}.catalog-banner a{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(255,255,255,.28);border-radius:var(--radius);color:#fff;text-decoration:none;font-size:11px;white-space:nowrap}.height-dimension{display:block;direction:ltr;white-space:nowrap;padding:5px 8px;color:#31443a;background:#fffcf7f0;border:1px solid rgba(82,104,91,.35);border-radius:2px;font:600 12px/1.1 var(--font)}.component-dimension-label{display:grid;min-width:120px;gap:2px;padding:7px 10px;color:#30473b;background:#fffcf7f5;border:1.5px solid #6d8578;border-radius:4px;text-align:center;white-space:nowrap}.component-dimension-label small{color:#607067;font:650 10px/1.2 var(--font)}.component-dimension-label b{direction:ltr;color:#214f3b;font:800 13px/1.2 var(--font)}.component-dimension-label.is-spacing{border-color:#438065;background:#f4faf6fa}.object-controls{position:relative;width:220px;padding:10px;border:1px solid rgba(104,96,82,.28);border-radius:6px;background:#fffcf7f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#2c342f}.object-controls-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.object-controls-head strong{font-size:11px;color:#243028}.object-controls-head b{color:#007a3c;font-size:10px}.object-controls label{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#66706a;font-size:10px}.object-controls select{min-width:110px;padding:6px;border:1px solid #d4cec3;border-radius:2px;background:#fff;color:#243028;font-size:10px}.object-controls label+label{margin-top:6px}.shelf-facing-fixed{width:100%;margin-top:8px;padding:7px;border:1px solid #d4cec3;border-radius:2px;background:#f4f1ea;color:#4d564f;display:grid;grid-template-columns:auto 1fr;gap:4px 6px;font-size:9px;text-align:right}.shelf-facing-fixed em{grid-column:1 / -1;color:#7a5a3d;font-style:normal}.object-control-actions{display:grid;grid-template-columns:1fr 1fr 34px;gap:5px;margin-top:8px}.object-control-actions button{display:flex;align-items:center;justify-content:center;gap:3px;min-height:36px;padding:6px 4px;border:1px solid #d4cec3;border-radius:2px;background:#fff;color:#46534b;font-size:9px;cursor:pointer}.object-control-actions button:disabled{opacity:.35;cursor:default}.object-control-actions .remove-object{color:#a2433d;border-color:#e3bfba;background:#fff7f5}.height-dialog-backdrop,.workspace-backdrop{position:fixed;z-index:60;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.height-dialog-backdrop{display:grid;place-items:center;padding:20px}.height-dialog,.workspace-panel{width:min(420px,100%);padding:20px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.height-dialog strong{display:block;font-size:15px}.height-dialog p{margin:8px 0 16px;color:var(--text-dim);font-size:12px;line-height:1.8}.height-dialog button{width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-elevated);color:var(--text);text-align:right;cursor:pointer}.height-dialog button small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.height-dialog .height-dialog-cancel{border:0;background:transparent;color:var(--muted);text-align:center}.workspace-backdrop{display:flex;justify-content:flex-start;direction:rtl}.workspace-panel{width:min(400px,100%);height:100%;overflow-y:auto;border-radius:0;border:0;border-right:1px solid var(--line);padding:22px}.workspace-panel>header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}.workspace-panel>header div{display:grid;gap:4px}.workspace-panel>header strong{font-size:15px}.workspace-panel>header small{color:var(--muted);font-size:11px;direction:ltr;text-align:right}.workspace-panel>header button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-elevated);cursor:pointer}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin:18px 0;padding:3px;border-radius:var(--radius);background:var(--ink)}.auth-tabs button{padding:10px;border:0;border-radius:2px;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.auth-tabs button.active{background:var(--panel-elevated);color:var(--text)}.auth-form,.current-config{display:grid;gap:12px}.auth-form label,.current-config label{display:grid;gap:6px;color:var(--text-dim);font-size:12px}.auth-form input,.current-config input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--ink);outline:none;color:var(--text)}.auth-form input:focus,.current-config input:focus{border-color:var(--accent)}.auth-form>p{margin:-4px 0 0;color:var(--muted);font-size:11px}.workspace-panel .primary{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px;border:0;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.workspace-panel .secondary{min-height:40px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--text-dim);font-size:12px;cursor:pointer}.current-config{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--ink)}.configuration-list-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px;font-size:12px}.configuration-list-head span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:2px;background:var(--accent-soft);color:#7ddea8;font-size:11px}.configuration-list{display:grid;gap:8px}.configuration-list article{display:grid;grid-template-columns:1fr 40px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-elevated)}.configuration-list article.active{border-color:var(--accent)}.configuration-load{display:grid;gap:3px;padding:12px;border:0;background:transparent;text-align:right;cursor:pointer}.configuration-load strong{font-size:12px;color:var(--text)}.configuration-load small,.configuration-load time{color:var(--muted);font-size:11px}.configuration-load time{direction:ltr;text-align:right}.configuration-delete{display:grid;place-items:center;border:0;border-right:1px solid var(--line);background:#2a1816;color:#f0b4ae;cursor:pointer}.workspace-empty{padding:28px 10px;color:var(--muted);text-align:center;font-size:12px}.workspace-error{padding:10px;border:1px solid #6a3530;border-radius:var(--radius);background:var(--danger-soft);color:#f0b4ae;font-size:12px;line-height:1.7}.workspace-logout{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:22px;padding:12px;border:0;background:transparent;color:#c9a39c;font-size:12px;cursor:pointer}@media(max-width:900px){.app-shell{grid-template:var(--topbar-h) minmax(0,1fr) / minmax(0,1fr);grid-template-areas:"header" "viewport";padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom))}.topbar{height:var(--topbar-h);padding:env(safe-area-inset-top) max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left))}.brand-product{display:none}.brand-logo{width:108px;height:30px}.tool-button span,.save-config-button span,.account-button span{display:none}.tool-button,.save-config-button,.account-button{width:42px;min-width:42px;height:42px;padding:0}.mobile-dock{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);height:calc(var(--dock-h) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--panel)}.mobile-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600;cursor:pointer}.mobile-dock button.active{color:var(--accent)}.sheet-scrim{display:block;position:fixed;z-index:44;inset:0;border:0;background:#00000073}.sidebar{position:fixed;z-index:50;left:0;right:0;bottom:calc(var(--dock-h) + env(safe-area-inset-bottom));height:min(72dvh,620px);border:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;transform:translateY(110%);transition:transform .22s ease;box-shadow:0 -16px 40px #00000059}.app-shell.panel-size .sidebar,.app-shell.panel-catalog .sidebar{transform:translateY(0)}.app-shell.panel-closed .sidebar{visibility:hidden;pointer-events:none}.app-shell.panel-size .sidebar,.app-shell.panel-catalog .sidebar{visibility:visible;pointer-events:auto}.sheet-handle{display:grid;place-items:center;height:18px;flex:0 0 auto}.sheet-handle i{width:42px;height:4px;border-radius:99px;background:#3a453f}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 16px 10px;border-bottom:1px solid var(--line-soft)}.sheet-head strong{font-size:14px}.sheet-close{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-elevated);cursor:pointer}.sidebar-scroll{padding:12px 14px calc(18px + env(safe-area-inset-bottom))}.sidebar-pane{display:none;margin:0;padding:0;border:0}.app-shell.panel-size .pane-size,.app-shell.panel-catalog .pane-catalog{display:block}.catalog-head h1,.control-section h2{display:none}.catalog-section{margin:0;border-radius:10px}.products{grid-template-columns:1fr 1fr;gap:10px}.product-preview{height:92px}.product-card{grid-template-rows:92px auto}.viewport-badge{top:12px;left:12px}.empty-hint{bottom:16px}.snap-status{top:12px;max-width:calc(100% - 140px);text-align:center}.toast{right:12px;bottom:12px;width:calc(100% - 24px)}.field{flex-direction:column;align-items:stretch}.field select,.input-wrap{width:100%}.field select{min-width:0;min-height:44px;font-size:16px}.input-wrap input{flex:1;width:auto;min-height:44px;font-size:16px}.products{grid-template-columns:1fr}.workspace-panel{width:100%;padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.object-controls{width:min(220px,calc(100vw - 28px))}.object-control-actions button{min-height:42px}}@media(max-width:900px)and (orientation:landscape)and (max-height:520px){.sidebar{height:min(88dvh,100%)}.brand-logo{width:90px}}@media(min-width:901px){.sheet-head,.sheet-handle,.sheet-close,.sheet-scrim,.mobile-dock{display:none!important}.sidebar-pane{display:block!important}}
