:root{--bg:#f7f7f7;--accent:#2b7fff;--text:#1a1a18;--muted:#7a8494;--border:#e4e8ee;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display:"Lisu Bosa", Georgia, "Times New Roman", serif;--mono:"SF Mono", "Fira Mono", Consolas, monospace;--sidebar-w-view:640px;--sidebar-w-edit:400px;--sidebar-w:var(--sidebar-w-view);--input-on-white:#f7f7f7;--input-on-gray:#fff;--sidebar-pad-x:20px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--sans);background:var(--bg);color:var(--text)}.app-shell{width:100vw;height:100vh;position:relative;overflow:hidden}.login-screen{background:var(--bg);width:100vw;height:100vh;position:relative;overflow:hidden}.login-screen-header{z-index:1;position:absolute;top:20px;left:24px;right:24px}.login-screen-main{justify-content:center;align-items:center;width:100%;height:100%;padding:80px 24px 24px;display:flex}.login-card{background:#fff;border:1px solid #e4e8ee;border-radius:16px;width:100%;max-width:360px;padding:28px;box-shadow:0 8px 32px #00000010}.login-demo-hint{color:var(--muted);font-size:12px;line-height:1.4}.stage-wrap{width:100%;height:100%}.stage{cursor:pointer;background-color:#f7f7f7;width:100%;height:100%;position:relative;overflow:hidden}.stage.is-3d{cursor:default}.stage.mode-edit.is-3d{cursor:crosshair}.stage.mode-edit.is-3d canvas{cursor:pointer}.stage.mode-edit-plan.mode-edit-categorie{cursor:crosshair}.stage.mode-edit-plan.mode-edit-categorie canvas{cursor:pointer}.stage.mode-edit-piano,.stage.mode-edit-piano canvas,.stage.mode-edit.focused{cursor:default}.stage.mode-edit .hint{bottom:88px}.stage.focused:not(.mode-edit) .pin:not(.active){opacity:.35;pointer-events:none}.stage.focused,.stage.focused.is-3d{cursor:default}.stage canvas{width:100%;height:100%;display:block}.top-bar{pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:20px;left:24px;right:24px}.top-bar>*{pointer-events:auto}.brand{align-items:center;display:flex}.brand-logo-text{width:auto;height:32px;display:block}.hint{color:var(--muted);pointer-events:none;z-index:10;white-space:nowrap;background:#fff;border:1px solid #dde3ec;border-radius:999px;padding:10px 18px;font-size:13px;transition:opacity .4s,transform .4s;position:absolute;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #00000012}.hint.hide{opacity:0;transform:translate(-50%)translateY(8px)}.edit-toolbar{z-index:12;pointer-events:auto;background:#fff;border:1px solid #dde3ec;border-radius:16px;align-items:center;gap:8px;padding:6px 8px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #00000018}.edit-toolbar-tabs{gap:4px;display:flex}.edit-toolbar-tools{border-left:1px solid #e8ecf2;gap:4px;margin-left:4px;padding-left:8px;display:flex}.edit-toolbar-tool{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.edit-toolbar-tool:hover:not(.disabled):not(.active){color:var(--text);background:#f5f7fa}.edit-toolbar-tool.active{background:var(--accent);color:#fff}.edit-toolbar-tool.disabled{opacity:.35;cursor:not-allowed}.stage.mode-edit-piano.tool-door,.stage.mode-edit-piano.tool-door .plan-editor-overlay{cursor:crosshair}.stage.mode-edit-piano .plan-gondola.selected{cursor:default}.plan-editor-overlay{z-index:8;pointer-events:auto;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.plan-gondola-fill{fill:#9aa3b2;stroke:#4a5568;stroke-width:1.5px;cursor:move}.plan-gondola.selected .plan-gondola-fill{fill:#e8f2ff;stroke:var(--accent);stroke-width:1.5px}.plan-guide{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 3;pointer-events:none;opacity:.7}.plan-handle{fill:#fff;stroke:var(--accent);stroke-width:1.5px;pointer-events:none}.plan-handle.resize{cursor:ew-resize}.plan-handle.corner{cursor:grab}.plan-handle.edge{opacity:.85}.plan-door{stroke:#2b7fff;pointer-events:none}.plan-door-hit{stroke:#0000;pointer-events:none}.plan-door.selected{stroke:var(--accent);stroke-width:6px}.edit-toolbar-tab{min-width:72px;color:var(--muted);font-family:var(--sans);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 14px 6px;font-size:11px;font-weight:500;transition:background .15s,color .15s;display:flex}.edit-toolbar-tab:hover:not(.active){color:var(--text);background:#f5f7fa}.edit-toolbar-tab.active{background:var(--accent);color:#fff}.edit-toolbar-icon{justify-content:center;align-items:center;line-height:0;display:flex}.edit-toolbar-label{line-height:1.2}.mode-toggle{background:#fff;border:1px solid #dde3ec;border-radius:999px;padding:3px;display:flex;box-shadow:0 2px 12px #00000010}.mode-toggle button{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.mode-toggle button.active{background:var(--accent);color:#fff}.mode-toggle button:not(.active):hover{color:var(--text)}.top-bar-actions{align-items:center;gap:10px;display:flex}.account-menu{position:relative}.account-avatar{cursor:pointer;background:#fff;border:1px solid #dde3ec;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 2px 12px #00000010}.account-avatar:hover,.account-avatar.open{border-color:color-mix(in srgb, var(--accent) 35%, #dde3ec);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}.account-avatar-initials{color:var(--accent);letter-spacing:-.02em;font-size:12px;font-weight:600}.account-avatar-img{object-fit:cover;width:100%;height:100%}.account-dropdown{z-index:20;background:#fff;border:1px solid #dde3ec;border-radius:14px;min-width:240px;padding:12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 32px #00000018}.account-dropdown-user{text-align:left;cursor:pointer;width:100%;font-family:var(--sans);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.account-dropdown-user:hover{background:#f5f7fa}.account-dropdown-avatar{background:color-mix(in srgb, var(--accent) 10%, #fff);border-radius:50%;flex-shrink:0;width:40px;height:40px;overflow:hidden}.account-dropdown-avatar img{object-fit:cover;width:100%;height:100%}.account-dropdown-avatar--logo{background:#fff;border:1px solid #eef1f5}.account-dropdown-avatar--logo img{object-fit:contain;padding:4px}.account-dropdown-user-text{flex:1;min-width:0}.account-dropdown-name{letter-spacing:-.02em;font-size:14px;font-weight:600}.account-dropdown-email{color:var(--muted);margin-top:2px;font-size:12px}.account-dropdown-divider{background:#eef1f5;height:1px;margin:8px 0}.account-dropdown-item{text-align:left;width:100%;font-family:var(--sans);color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px;font-size:13px;font-weight:500;display:flex}.account-dropdown-item:hover{background:#f5f7fa}.account-dropdown-item.accent{color:var(--accent)}.account-dropdown-value{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;overflow:hidden}.account-dropdown-item.danger{color:#c0392b}.account-guest-label{color:var(--muted);padding:4px 2px 8px;font-size:12px}.account-signin{flex-direction:column;gap:10px;display:flex}.account-signin-title{font-family:var(--display);letter-spacing:-.02em;font-size:48px;font-weight:400;line-height:1.05}.field-input{width:100%;position:relative}.field-input__wrap{width:100%;display:block;position:relative}.field-input__control{width:100%;font-family:var(--sans);color:var(--text);border:1px solid #0000;border-radius:8px;padding:20px 12px 8px;font-size:13px;line-height:1.3;transition:border-color .15s}.field-input--on-white .field-input__control{background:var(--input-on-white)}.field-input--on-gray .field-input__control{background:var(--input-on-gray)}.field-input__control:focus{border-color:color-mix(in srgb, var(--accent) 45%, #e4e8ee);outline:none}.field-input__text{color:var(--muted);pointer-events:none;font-size:13px;transition:top .15s,transform .15s,font-size .15s;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field-input__control:focus+.field-input__text,.field-input__control:not(:placeholder-shown)+.field-input__text{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:500;top:8px;transform:none}.field-input--password .field-input__control{padding-right:42px}.field-input__toggle{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.field-input__toggle:hover{color:var(--text);background:#00000008}.field-input--compact{flex-shrink:0;width:72px}.field-input--compact .field-input__control{text-align:center;padding-left:8px;padding-right:8px}.field-input--grow{flex:1;min-width:0}.field-select{width:100%;position:relative}.field-input__control--select{appearance:none;cursor:pointer}.field-input__text--select{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:500;top:8px;transform:none}.account-error{color:#c0392b;font-size:12px}.account-signin-btn{font-family:var(--sans);background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 12px;font-size:13px;font-weight:500}.account-signin-btn:hover:not(:disabled){filter:brightness(1.06)}.account-signin-btn:disabled{opacity:.7;cursor:wait}.account-switch-mode{font-family:var(--sans);color:var(--accent);cursor:pointer;text-align:center;background:0 0;border:0;padding:4px 0;font-size:12px}.account-checkbox{color:var(--text);align-items:center;gap:8px;font-size:12px;display:flex}.account-demo-note{color:var(--muted);font-size:11px;line-height:1.4}.save-status{z-index:50;color:var(--muted);white-space:nowrap;pointer-events:none;font-size:11px;position:fixed;bottom:16px;right:16px}.save-status--dirty{color:#ba7517}.save-status--saving{color:var(--muted)}.save-status--saved{color:#2d8a4e}.save-status--error{color:#c0392b}.mode-toggle button:disabled{opacity:.45;cursor:not-allowed}.modal-overlay{z-index:100;background:#0004;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #dde3ec;border-radius:14px;width:min(100%,420px);max-height:min(90vh,720px);padding:20px;overflow:auto;box-shadow:0 16px 48px #0002}.modal-card--wide{width:min(100%,560px)}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.modal-head h2{font-family:var(--display);letter-spacing:-.02em;font-size:20px;font-weight:400}.modal-close{cursor:pointer;width:32px;height:32px;color:var(--muted);background:0 0;border:0;border-radius:8px;font-size:22px}.modal-close:hover{background:#f5f7fa}.modal-sub{color:var(--muted);margin-bottom:12px;font-size:12px}.modal-form{flex-direction:column;gap:10px;display:flex}.details-modal-form{gap:12px}.details-avatar-block{flex-direction:column;align-items:center;gap:8px;padding:8px 0 4px;display:flex}.details-avatar{background:var(--input-on-white);border:1px solid #e4e8ee;border-radius:50%;width:88px;height:88px;overflow:hidden}.details-avatar--logo{border-radius:16px}.details-avatar img{object-fit:cover;width:100%;height:100%}.details-avatar--logo img{object-fit:contain;padding:8px}.details-avatar-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.details-avatar-btn{font-family:var(--sans);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:12px;font-weight:500}.details-avatar-btn:hover{text-decoration:underline}.details-avatar-reset{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.details-avatar-reset:hover{color:var(--text)}.details-readonly-field{flex-direction:column;gap:4px;padding:4px 2px;display:flex}.details-readonly-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10px;font-weight:500}.details-readonly-value{color:var(--text);font-size:13px}.btn-add-product{width:calc(100% - 32px);font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #c5cdd8;border-radius:8px;margin:12px 16px 16px;padding:8px 12px;font-size:13px;display:block}.btn-add-product:hover{border-color:var(--accent);color:var(--accent)}.btn-tag-assign{font-family:var(--sans);color:var(--accent);cursor:pointer;background:0 0;border:0;margin-top:4px;padding:0;font-size:10px;display:block}.cell-tag{vertical-align:top}.tag-assign-select{border:1px solid #e4e8ee;border-radius:6px;max-width:100%;padding:4px 6px;font-size:11px}.category-list{flex-direction:column;gap:8px;margin-bottom:16px;list-style:none;display:flex}.category-list-item,.category-add-row{align-items:flex-end;gap:8px;display:flex}.category-add-row .account-signin-btn{flex-shrink:0;margin-bottom:0}.btn-category-delete{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:18px}.btn-category-delete:hover{color:#c0392b;background:#fdecea}.esl-add-row{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.esl-add-row .field-input{flex:1;min-width:0}.esl-add-row .account-signin-btn{flex-shrink:0}.esl-table-wrap{overflow:auto}.esl-table{border-collapse:collapse;width:100%}.esl-table th,.esl-table td{text-align:left;border-bottom:1px solid #eef1f5;padding:8px 6px;font-size:12px}.esl-table select{background:var(--input-on-white);border:1px solid #0000;border-radius:8px;width:100%;padding:8px 10px;font-size:12px}.esl-empty{color:var(--muted);text-align:center;padding:16px}.esl-product-hint{color:var(--muted);margin-top:4px;font-size:10px;display:block}.pins-layer{pointer-events:none;z-index:8;position:absolute;inset:0}.pin{opacity:0;pointer-events:auto;cursor:pointer;align-items:center;gap:0;transition:opacity .35s;display:flex;position:absolute;transform:translate(-50%,-100%)}.pin.visible{opacity:1}.pin-icon{background:var(--accent);color:#fff;z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:background .2s,box-shadow .2s;display:flex;box-shadow:0 4px 14px #2b7fff44}.stage.mode-edit .pin .pin-icon{background:#222;box-shadow:0 4px 14px #0003}.pin-label{color:var(--text);white-space:nowrap;background:#fff;border-radius:999px;margin-left:-6px;padding:6px 14px 6px 16px;font-size:12px;font-weight:500;box-shadow:0 2px 12px #00000014}.pin:hover .pin-label{color:var(--accent)}.pin.active .pin-icon{box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--accent)}.stage.mode-edit .pin.active .pin-icon{box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--accent);background:#222}.zone-sidebar{width:var(--sidebar-w);z-index:30;pointer-events:none;background:#fff;border:1px solid #dde3ec;border-radius:14px;flex-direction:column;transition:transform .45s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:8px;bottom:8px;right:8px;overflow:hidden;transform:translate(calc(100% + 8px));box-shadow:0 8px 32px #00000018}.zone-sidebar.open{pointer-events:auto;transform:translate(0)}.zone-sidebar.panel-view{--sidebar-w:var(--sidebar-w-view)}.zone-sidebar.panel-edit{--sidebar-w:var(--sidebar-w-edit)}.sidebar-inner{opacity:0;flex-direction:column;width:100%;height:100%;transition:opacity .3s .1s;display:flex}.zone-sidebar.open .sidebar-inner{opacity:1}.sidebar-head{padding:20px var(--sidebar-pad-x) 16px;border-bottom:1px solid #eef1f5;flex-shrink:0}.sidebar-close{width:32px;height:32px;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;font-family:var(--sans);background:#fff;border:1px solid #e4e8ee;border-radius:8px;margin-bottom:14px}.sidebar-close:hover{color:var(--text);background:#f5f7fa}.sidebar-head h2{font-family:var(--display);letter-spacing:-.02em;font-size:20px;font-weight:400}.sidebar-head p{color:var(--muted);margin-top:4px;font-size:13px}.sidebar-body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.sidebar-view-body,.sidebar-edit-body{flex-direction:column;flex:1;min-height:0;display:none;overflow:hidden}.sidebar-view-body.active,.sidebar-edit-body.active{display:flex}.sidebar-edit-body{padding:20px var(--sidebar-pad-x);gap:14px;overflow-y:auto}.product-table-wrap{border-top:1px solid #eef1f5;flex:1;min-height:0;overflow:auto}.product-table{border-collapse:collapse;table-layout:fixed;width:100%}.product-table thead{z-index:1;position:sticky;top:0}.product-table thead tr{background:#f5f7fa}.product-table th{color:var(--muted);text-align:left;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:10px 12px;font-size:10px;font-weight:500}.product-table th:first-child,.product-table td:first-child{padding-left:var(--sidebar-pad-x)}.product-table th:last-child,.product-table td:last-child{padding-right:var(--sidebar-pad-x)}.product-table td{vertical-align:middle;border-bottom:1px solid #eef1f5;padding:10px 12px;font-size:13px}.product-table tr:last-child td{border-bottom:none}.product-table tr:not(.row-pending):hover td{background:#f9fafb}.product-table tr.row-pending td{background:color-mix(in srgb, var(--accent) 5%, transparent)}.col-img{width:52px}.col-name{width:24%}.col-device{width:16%}.col-ean{width:24%}.col-price{text-align:right;width:72px}.product-table th.col-price{text-align:right}.prod-thumb{object-fit:cover;background:#eef1f5;border-radius:8px;width:36px;height:36px;display:block}.prod-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.35;display:-webkit-box;overflow:hidden}.cell-mono{font-family:var(--mono);color:var(--muted);font-size:11px}.cell-price{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:500}.cell-price-edit{font-variant-numeric:tabular-nums;text-align:right;background:var(--input-on-white);width:72px;color:var(--text);cursor:text;appearance:none;box-shadow:none;border:1px solid #0000;border-radius:8px;outline:none;margin-left:auto;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:500;display:block}.cell-price-edit:focus{box-shadow:none;border-color:color-mix(in srgb, var(--accent) 45%, #e4e8ee);background:var(--input-on-white);outline:none}.cell-price-edit.is-dirty{color:var(--accent)}.price-update-bar{padding:16px var(--sidebar-pad-x);background:#fff;border-top:1px solid #eef1f5;flex-shrink:0;box-shadow:0 -4px 16px #00000008}.btn-update-prices{width:100%;font-family:var(--sans);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;text-align:center;border:0;border-radius:999px;padding:12px 16px;font-size:13px;font-weight:500;display:block}.btn-update-prices:hover{filter:brightness(1.06)}.product-empty{text-align:center;color:#b0b8c4;padding:48px 24px;font-size:13px}.sidebar-edit-body .field-select{margin-bottom:10px}.btn-save{font-family:var(--sans);background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;margin-top:4px;padding:10px 16px;font-size:13px;font-weight:500}.btn-save:hover{filter:brightness(1.05)}.edit-meta{color:var(--muted);font-size:12px;line-height:1.5}
