.login-page[data-theme=light]{--login-bg: #fff;--login-bg-color: #fff;--login-text: #00365f;--login-text-sub: #758c98;--login-text-footer: rgba(117, 140, 152, .5);--login-border: rgba(105, 171, 222, .3);--login-border-hover: rgba(37, 120, 181, .5);--login-btn-bg: #fff;--login-btn-hover: rgba(129, 207, 244, .05);--login-btn-shadow: 0 1px 3px rgba(0, 0, 0, .06);--login-btn-shadow-hover: 0 4px 12px rgba(0, 0, 0, .08);--login-error-bg: #fef2f2;--login-error-border: #fecaca;--login-error-text: #b91c1c;--login-error-icon: #ef4444;--login-footer-border: rgba(129, 207, 244, .15);--login-spinner-track: rgba(0, 54, 95, .15);--login-spinner-color: #2578b5;--login-loading-text: #758c98;--login-toggle-bg: rgba(0, 0, 0, .04);--login-toggle-border: #e5e7eb;--login-toggle-color: #758c98;--login-mobile-overlay: rgba(255, 255, 255, .95)}.login-page[data-theme=dark]{--login-bg: linear-gradient(160deg, #0c0c18 0%, #0e1525 40%, #0c1220 100%);--login-bg-color: #0c0c18;--login-text: #e0e0e0;--login-text-sub: #777;--login-text-footer: rgba(255, 255, 255, .2);--login-border: rgba(79, 158, 238, .2);--login-border-hover: rgba(79, 158, 238, .45);--login-btn-bg: rgba(255, 255, 255, .05);--login-btn-hover: rgba(79, 158, 238, .1);--login-btn-shadow: 0 1px 4px rgba(0, 0, 0, .3);--login-btn-shadow-hover: 0 4px 16px rgba(79, 158, 238, .15);--login-error-bg: rgba(244, 67, 54, .08);--login-error-border: rgba(244, 67, 54, .2);--login-error-text: #ef5350;--login-error-icon: #ef5350;--login-footer-border: rgba(255, 255, 255, .06);--login-spinner-track: rgba(79, 158, 238, .2);--login-spinner-color: #4F9EEE;--login-loading-text: #888;--login-toggle-bg: rgba(255, 255, 255, .04);--login-toggle-border: rgba(255, 255, 255, .1);--login-toggle-color: #888;--login-mobile-overlay: rgba(8, 8, 20, .96)}.login-page{display:flex;min-height:100vh;width:100vw;font-family:Outfit,system-ui,-apple-system,sans-serif}.login-left{display:none;position:relative;width:60%;overflow:hidden;flex-direction:column;justify-content:space-between;padding:48px}@media (min-width: 1024px){.login-left{display:flex}}.login-left-bg{position:absolute;inset:0;background:url(/fondo_almacen_nuevo.webp) center / cover no-repeat}.login-left-overlay{position:absolute;inset:0}.login-page[data-theme=light] .login-left-overlay{background:linear-gradient(135deg,rgba(0,54,95,.88) 0%,rgba(0,54,95,.78) 50%,rgba(37,120,181,.7) 100%)}.login-page[data-theme=dark] .login-left-overlay{background:linear-gradient(135deg,rgba(0,40,70,.92) 0%,rgba(0,42,72,.86) 50%,rgba(20,70,115,.8) 100%)}.login-left-spacer{position:relative;z-index:1}.login-left-content{position:relative;z-index:1;max-width:440px}.login-left-tag{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.25em;color:#81cff4;margin-bottom:16px}.login-left-heading{font-size:36px;font-weight:700;line-height:1.2;color:#fff;margin:0 0 16px}.login-left-subtext{font-size:15px;line-height:1.6;color:#ffffffb3;margin:0}.login-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:40px}.login-feature-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:10px;background:rgba(255,255,255,.07);backdrop-filter:blur(4px)}.login-feature-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:16px}.login-feature-title{font-size:13px;font-weight:600;color:#fff;margin-bottom:2px}.login-feature-desc{font-size:11px;color:#ffffff80}.login-left-footer{position:relative;z-index:1;font-size:11px;color:#fff6}.login-right{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:48px 24px;background:var(--login-bg);background-color:var(--login-bg-color);transition:background .25s}@media (min-width: 1024px){.login-right{width:40%}}.login-right-mobile-bg{position:absolute;inset:0;background:url(/fondo_almacen_nuevo.webp) center / cover no-repeat}.login-right-mobile-bg:after{content:"";position:absolute;inset:0;background:var(--login-mobile-overlay);backdrop-filter:blur(4px);transition:background .25s}@media (min-width: 1024px){.login-right-mobile-bg{display:none}}.login-right-inner{position:relative;z-index:1;width:100%;max-width:360px;animation:loginFadeIn .5s ease-out}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-theme-toggle{position:absolute;top:16px;right:16px;z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid var(--login-toggle-border);background:var(--login-toggle-bg);color:var(--login-toggle-color);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.login-theme-toggle:hover{border-color:var(--login-border-hover);color:var(--login-text)}.login-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:48px}.login-brand-logo{width:220px;height:auto}.login-welcome{text-align:center;margin-bottom:32px}.login-welcome h2{margin:0 0 8px;font-size:24px;font-weight:600;color:var(--login-text);transition:color .25s}.login-welcome p{margin:0;font-size:14px;color:var(--login-text-sub);transition:color .25s}.login-error{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;background:var(--login-error-bg);border:1px solid var(--login-error-border);margin-bottom:20px;transition:all .25s}.login-error-icon{flex-shrink:0;color:var(--login-error-icon);font-size:16px;line-height:1;margin-top:1px}.login-error-text{font-size:13px;color:var(--login-error-text);line-height:1.4}.login-ms-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 20px;border-radius:12px;border:1px solid var(--login-border);background:var(--login-btn-bg);color:var(--login-text);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;box-shadow:var(--login-btn-shadow)}.login-ms-btn:hover{border-color:var(--login-border-hover);background:var(--login-btn-hover);box-shadow:var(--login-btn-shadow-hover)}.login-ms-btn:active{transform:scale(.99)}.login-ms-btn svg{flex-shrink:0}.login-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0;color:var(--login-loading-text);font-size:13px}.login-loading-spinner{width:28px;height:28px;border:2px solid var(--login-spinner-track);border-top-color:var(--login-spinner-color);border-radius:50%;animation:loginSpin .7s linear infinite}@keyframes loginSpin{to{transform:rotate(360deg)}}.login-footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--login-footer-border);text-align:center;transition:border-color .25s}.login-footer p{margin:0;font-size:11px;color:var(--login-text-footer);transition:color .25s}.auth-callback[data-theme=dark]{--cb-bg: #0c0c18;--cb-text: #888;--cb-error-text: #ef5350;--cb-error-bg: rgba(244, 67, 54, .08);--cb-error-border: rgba(244, 67, 54, .2);--cb-btn-border: rgba(255, 255, 255, .1);--cb-btn-bg: rgba(255, 255, 255, .04);--cb-btn-text: #ccc;--cb-spinner-track: rgba(79, 158, 238, .2);--cb-spinner-color: #4F9EEE}.auth-callback[data-theme=light]{--cb-bg: #fff;--cb-text: #758c98;--cb-error-text: #b91c1c;--cb-error-bg: #fef2f2;--cb-error-border: #fecaca;--cb-btn-border: #e5e7eb;--cb-btn-bg: #fff;--cb-btn-text: #00365f;--cb-spinner-track: rgba(0, 54, 95, .15);--cb-spinner-color: #2578b5}.auth-callback{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cb-bg);font-family:Outfit,system-ui,sans-serif;transition:background .25s}.cb-loading{display:flex;flex-direction:column;align-items:center;gap:24px;color:var(--cb-text);font-size:14px}.cb-logo{width:160px;height:auto;margin-bottom:8px}.cb-spinner{width:32px;height:32px;border:2px solid var(--cb-spinner-track);border-top-color:var(--cb-spinner-color);border-radius:50%;animation:cbSpin .7s linear infinite}@keyframes cbSpin{to{transform:rotate(360deg)}}.cb-error{text-align:center;padding:32px;max-width:400px}.cb-error-icon{font-size:32px;color:var(--cb-error-text);margin-bottom:16px}.cb-error-text{color:var(--cb-error-text);font-size:14px;line-height:1.5;margin:0 0 20px;padding:12px 16px;border-radius:8px;background:var(--cb-error-bg);border:1px solid var(--cb-error-border)}.cb-error-btn{padding:10px 24px;border-radius:8px;border:1px solid var(--cb-btn-border);background:var(--cb-btn-bg);color:var(--cb-btn-text);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.cb-error-btn:hover{opacity:.8}.dashboard[data-theme=dark]{--bg: #0f0f1a;--bg-subtle: rgba(255, 255, 255, .02);--bg-card: rgba(255, 255, 255, .025);--bg-card-hover: rgba(255, 255, 255, .04);--bg-input: rgba(255, 255, 255, .04);--border: rgba(255, 255, 255, .06);--border-hover: rgba(79, 158, 238, .2);--border-input: rgba(255, 255, 255, .1);--text: #e0e0e0;--text-secondary: #888;--text-muted: #666;--text-dim: #555;--shadow-card: 0 4px 20px rgba(0, 0, 0, .2);--dialog-bg: #16162a;--action-hover-bg: rgba(255, 255, 255, .04);--header-border: rgba(255, 255, 255, .06);--header-text: #e0e0e0;--header-text-muted: #888;--header-btn-border: rgba(255, 255, 255, .08);--header-btn-bg: rgba(255, 255, 255, .03);--header-btn-hover: rgba(255, 255, 255, .06)}.dashboard[data-theme=light]{--bg: #f5f7fa;--bg-subtle: #00365f;--bg-card: #fff;--bg-card-hover: #fff;--bg-input: #fff;--border: #e5e7eb;--border-hover: rgba(79, 158, 238, .4);--border-input: #d1d5db;--text: #1a1a2e;--text-secondary: #6b7280;--text-muted: #9ca3af;--text-dim: #9ca3af;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 4px 16px rgba(0, 0, 0, .04);--dialog-bg: #fff;--action-hover-bg: #f3f4f6;--header-border: rgba(255, 255, 255, .1);--header-text: #fff;--header-text-muted: rgba(255, 255, 255, .6);--header-btn-border: rgba(255, 255, 255, .15);--header-btn-bg: rgba(255, 255, 255, .08);--header-btn-hover: rgba(255, 255, 255, .15)}.dashboard{width:100vw;min-height:100vh;background:var(--bg);color:var(--text);font-family:Outfit,system-ui,-apple-system,sans-serif;transition:background .25s,color .25s}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:56px;background:var(--bg-subtle);border-bottom:1px solid var(--header-border);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10;transition:background .25s,border-color .25s}.dash-header-left{display:flex;align-items:center;gap:12px}.dash-logo{display:flex;align-items:center}.dash-logo-img{height:38px;width:auto}.dash-header-right{display:flex;align-items:center;gap:16px}.dash-theme-toggle{width:34px;height:34px;border-radius:8px;border:1px solid var(--header-btn-border);background:var(--header-btn-bg);color:var(--header-text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.dash-theme-toggle:hover{color:var(--header-text);background:var(--header-btn-hover)}.dash-user{display:flex;align-items:center;gap:10px}.dash-avatar{width:32px;height:32px;border-radius:50%;background:rgba(79,158,238,.15);border:1px solid rgba(79,158,238,.3);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#4f9eee;overflow:hidden}.dash-avatar img{width:100%;height:100%;object-fit:cover}.dash-user-info{display:flex;flex-direction:column}.dash-user-name{font-size:13px;font-weight:500;color:var(--header-text)}.dash-user-role{font-size:10px;color:var(--header-text-muted);text-transform:uppercase;letter-spacing:.5px}.dash-logout{padding:6px 14px;border-radius:6px;border:1px solid var(--header-btn-border);background:var(--header-btn-bg);color:var(--header-text-muted);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s}.dash-logout:hover{background:var(--header-btn-hover);color:var(--header-text)}.dash-main{max-width:1280px;margin:0 auto;padding:32px 28px}.dash-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.dash-title{margin:0;font-size:24px;font-weight:600;color:var(--text)}.dash-subtitle{font-size:13px;color:var(--text-muted);margin:0 0 28px}.dash-create-btn{display:flex;align-items:center;gap:8px;padding:10px 22px;border-radius:8px;border:none;background:#4F9EEE;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #4f9eee40}.dash-create-btn:hover{background:#3d8bd4;box-shadow:0 4px 12px #4f9eee59;transform:translateY(-1px)}.dash-stats{display:flex;gap:16px;margin-bottom:28px}.dash-stat-card{flex:1;padding:16px 20px;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);transition:background .25s,border-color .25s}.dash-stat-value{font-size:28px;font-weight:700;color:var(--text);font-family:SF Mono,Consolas,monospace}.dash-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.dash-loading{text-align:center;padding:80px 20px;color:var(--text-dim);font-size:14px}.dash-loading-spinner{display:inline-block;width:32px;height:32px;border:2px solid rgba(79,158,238,.2);border-top-color:#4f9eee;border-radius:50%;animation:dashSpin .8s linear infinite;margin-bottom:16px}@keyframes dashSpin{to{transform:rotate(360deg)}}.dash-empty{text-align:center;padding:80px 20px}.dash-empty-icon{width:80px;height:80px;margin:0 auto 20px;border-radius:20px;background:rgba(79,158,238,.06);border:1px dashed rgba(79,158,238,.2);display:flex;align-items:center;justify-content:center;font-size:32px;color:#4f9eee;opacity:.5}.dash-empty-title{font-size:16px;font-weight:500;color:var(--text-secondary);margin:0 0 8px}.dash-empty-text{font-size:13px;color:var(--text-muted);margin:0 0 24px}.wh-card{padding:0;border-radius:12px;background:var(--bg-card);border:1px solid var(--border);transition:all .2s ease;overflow:hidden}.wh-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover);box-shadow:var(--shadow-card);transform:translateY(-2px)}.wh-card-top{padding:20px 20px 0}.wh-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.wh-card-code{font-size:11px;font-weight:700;color:#4f9eee;background:rgba(79,158,238,.1);padding:3px 10px;border-radius:4px;letter-spacing:.3px;font-family:SF Mono,Consolas,monospace}.wh-card-date{font-size:11px;color:var(--text-dim)}.wh-card-name{margin:0 0 4px;font-size:17px;font-weight:600;color:var(--text)}.wh-card-desc{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.4}.wh-card-stats{display:flex;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.wh-card-stat{display:flex;flex-direction:column}.wh-card-stat-value{font-size:15px;font-weight:600;color:var(--text);font-family:SF Mono,Consolas,monospace}.wh-card-stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.wh-card-actions{display:flex;border-top:1px solid var(--border);margin-top:16px}.wh-card-action{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 0;background:none;border:none;border-right:1px solid var(--border);color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s}.wh-card-action:last-child{border-right:none}.wh-card-action:hover{background:var(--action-hover-bg);color:var(--text)}.wh-card-action--primary{color:#4f9eee}.wh-card-action--primary:hover{background:rgba(79,158,238,.08);color:#7bb8ff}.wh-card-action--danger{color:var(--text-secondary)}.wh-card-action--danger:hover{background:rgba(244,67,54,.06);color:#ef5350}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:dialogOverlayIn .15s ease-out}@keyframes dialogOverlayIn{0%{opacity:0}to{opacity:1}}.dialog-box{background:var(--dialog-bg);border:1px solid var(--border);border-radius:16px;padding:32px 28px;width:420px;max-width:calc(100vw - 32px);animation:dialogBoxIn .2s ease-out;box-shadow:0 20px 40px #00000040}@keyframes dialogBoxIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dialog-title{margin:0 0 24px;font-size:18px;font-weight:600;color:var(--text)}.dialog-form{display:flex;flex-direction:column;gap:10px}.dialog-label{font-size:12px;color:var(--text-secondary);margin-top:4px}.dialog-input{padding:10px 14px;border-radius:8px;border:1px solid var(--border-input);background:var(--bg-input);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.dialog-input:focus{border-color:#4f9eee66}.dialog-input::placeholder{color:var(--text-dim)}.dialog-error{padding:8px 12px;border-radius:6px;background:rgba(244,67,54,.1);border:1px solid rgba(244,67,54,.15);color:#ef5350;font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dialog-cancel{padding:9px 18px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.dialog-cancel:hover{background:var(--action-hover-bg);color:var(--text)}.dialog-submit{padding:9px 24px;border-radius:8px;border:none;background:#4F9EEE;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.dialog-submit:hover{background:#3d8bd4}.dialog-submit:disabled{opacity:.5;cursor:not-allowed}.embed-mgr[data-theme=dark]{--em-bg: #0f0f1a;--em-bg-subtle: rgba(255, 255, 255, .03);--em-bg-card: rgba(255, 255, 255, .03);--em-bg-input: rgba(255, 255, 255, .06);--em-bg-code: rgba(0, 0, 0, .4);--em-bg-token: rgba(0, 0, 0, .3);--em-border: rgba(255, 255, 255, .06);--em-border-input: rgba(255, 255, 255, .1);--em-text: #e0e0e0;--em-text-secondary: #ccc;--em-text-muted: #888;--em-text-dim: #666;--em-code-color: #a0d0ff;--em-hover-bg: rgba(255, 255, 255, .06)}.embed-mgr[data-theme=light]{--em-bg: #f5f7fa;--em-bg-subtle: #fff;--em-bg-card: #fff;--em-bg-input: #fff;--em-bg-code: #f1f5f9;--em-bg-token: #f1f5f9;--em-border: #e5e7eb;--em-border-input: #d1d5db;--em-text: #1a1a2e;--em-text-secondary: #334155;--em-text-muted: #6b7280;--em-text-dim: #9ca3af;--em-code-color: #1e40af;--em-hover-bg: #f3f4f6}.embed-mgr{width:100vw;min-height:100vh;background:var(--em-bg);color:var(--em-text);font-family:Outfit,system-ui,-apple-system,sans-serif;transition:background .25s,color .25s}.em-header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:var(--em-bg-subtle);border-bottom:1px solid var(--em-border);transition:all .25s}.em-header-left{display:flex;align-items:center;gap:16px}.em-back-btn{padding:6px 12px;border-radius:6px;border:1px solid var(--em-border);background:var(--em-bg-card);color:var(--em-text-muted);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.em-back-btn:hover{color:var(--em-text);background:var(--em-hover-bg)}.em-header-title{font-size:15px;font-weight:600}.em-theme-toggle{width:34px;height:34px;border-radius:8px;border:1px solid var(--em-border);background:var(--em-bg-card);color:var(--em-text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.em-theme-toggle:hover{color:var(--em-text)}.em-main{max-width:800px;margin:0 auto;padding:32px 24px}.em-section{margin-bottom:40px}.em-section-title{margin:0 0 16px;font-size:16px;font-weight:600;color:var(--em-text-secondary)}.em-create-row{display:flex;gap:10px}.em-input{flex:1;padding:10px 14px;border-radius:8px;border:1px solid var(--em-border-input);background:var(--em-bg-input);color:var(--em-text);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.em-input:focus{border-color:#4f9eee66}.em-input::placeholder{color:var(--em-text-dim)}.em-create-btn{padding:10px 20px;border-radius:8px;border:none;background:#4F9EEE;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .2s}.em-create-btn:hover{background:#3d8bd4}.em-mode-row{display:flex;align-items:center;gap:10px;margin-top:12px}.em-mode-label{font-size:12px;color:var(--em-text-muted)}.em-mode-btn{padding:5px 14px;border-radius:6px;border:1px solid var(--em-border);background:var(--em-bg-card);color:var(--em-text-muted);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s}.em-mode-btn.active{border-color:#4f9eee80;background:rgba(79,158,238,.15);color:#4f9eee}.em-empty{color:var(--em-text-dim);font-size:13px}.em-token-list{display:flex;flex-direction:column;gap:14px}.em-token-card{padding:18px;border-radius:10px;background:var(--em-bg-card);border:1px solid var(--em-border);transition:all .25s}.em-token-header{display:flex;justify-content:space-between;margin-bottom:8px}.em-token-label{font-size:14px;font-weight:600}.em-token-date{font-size:12px;color:var(--em-text-dim)}.em-token-value{font-size:11px;color:var(--em-text-muted);font-family:SF Mono,Consolas,monospace;padding:6px 10px;border-radius:4px;background:var(--em-bg-token);margin-bottom:12px;overflow:hidden;text-overflow:ellipsis}.em-token-actions{display:flex;gap:8px}.em-copy-btn{padding:6px 14px;border-radius:6px;border:1px solid rgba(79,158,238,.3);background:rgba(79,158,238,.1);color:#4f9eee;font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s}.em-copy-btn.copied{background:rgba(76,175,80,.15);color:#81c784;border-color:#4caf504d}.em-delete-btn{padding:6px 14px;border-radius:6px;border:1px solid rgba(244,67,54,.3);background:rgba(244,67,54,.1);color:#ef5350;font-size:12px;font-family:inherit;cursor:pointer}.em-details{margin-top:12px}.em-summary{font-size:12px;color:var(--em-text-muted);cursor:pointer}.em-code-block{margin-top:8px;padding:14px;border-radius:8px;background:var(--em-bg-code);font-size:11px;font-family:SF Mono,Consolas,monospace;color:var(--em-code-color);white-space:pre-wrap;overflow-x:auto;transition:all .25s}.em-loading{text-align:center;padding:80px;color:var(--em-text-dim)}.cinematic-overlay{position:absolute;inset:0;pointer-events:none;z-index:5;filter:contrast(1.08) saturate(.75) brightness(.97)}.cinematic-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.15) 75%,rgba(0,0,0,.45) 100%)}.cinematic-grain{position:absolute;inset:-50%;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-size:128px 128px;opacity:.04;mix-blend-mode:overlay;animation:cinematic-grain-shift .5s steps(4) infinite}@keyframes cinematic-grain-shift{0%{transform:translate(0)}25%{transform:translate(-5%,-5%)}50%{transform:translate(3%,-3%)}75%{transform:translate(-3%,5%)}to{transform:translate(5%,3%)}}.fps-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0000008c;z-index:50;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;user-select:none;animation:fps-overlay-in .25s ease-out}@keyframes fps-overlay-in{0%{opacity:0}to{opacity:1}}.fps-overlay-title{font-size:28px;font-weight:600;color:#fff;margin-bottom:24px;letter-spacing:.5px}.fps-overlay-controls{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;max-width:500px}.fps-overlay-key-group{display:flex;flex-direction:column;align-items:center;gap:6px}.fps-overlay-key{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:34px;padding:0 10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:6px;color:#fff;font-size:13px;font-weight:600;font-family:system-ui,sans-serif}.fps-overlay-key-label{font-size:11px;color:#ffffff8c;text-transform:uppercase;letter-spacing:.5px}.fps-overlay-hint{margin-top:32px;font-size:13px;color:#fff6}.fps-overlay-esc{position:absolute;top:20px;right:24px;display:flex;align-items:center;gap:8px;font-size:12px;color:#fff6}.location-detail{position:absolute;top:12px;right:12px;z-index:10;width:260px;background:rgba(20,20,30,.88);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px;color:#e0e0e0;font-family:system-ui,-apple-system,sans-serif;font-size:13px;animation:slideIn .15s ease-out;max-height:calc(100vh - 70px);overflow-y:auto}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.location-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.location-detail-title{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#888}.location-detail-close{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.location-detail-close:hover{color:#fff}.location-detail-code{font-size:18px;font-weight:600;color:#fff;margin-bottom:12px;font-family:SF Mono,Consolas,monospace}.location-detail-status{display:flex;align-items:center;gap:8px;padding:8px 12px;border-left:3px solid;background:rgba(255,255,255,.04);border-radius:0 4px 4px 0;margin-bottom:16px;font-weight:500}.location-detail-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.location-detail-occupancy{display:flex;align-items:center;gap:10px;margin-bottom:16px}.location-detail-occupancy-bar{flex:1;height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden}.location-detail-occupancy-fill{height:100%;border-radius:4px;transition:width .3s ease}.location-detail-occupancy-value{font-size:13px;font-weight:600;color:#fff;min-width:36px;text-align:right;font-family:SF Mono,Consolas,monospace}.location-detail-grid{display:flex;flex-direction:column;gap:8px}.location-detail-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.location-detail-item:last-child{border-bottom:none}.location-detail-label{color:#888;font-size:12px;flex-shrink:0}.location-detail-value{color:#ccc;font-family:SF Mono,Consolas,monospace;font-size:12px;text-align:right}.location-detail-value--wrap{font-family:system-ui,-apple-system,sans-serif;max-width:140px;word-break:break-word;line-height:1.3}.location-detail-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#666;margin-top:14px;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.06)}.location-detail-empty{color:#555;font-size:12px;font-style:italic;padding:4px 0}.location-detail-reason{padding:6px 10px;background:rgba(158,158,158,.12);border-radius:4px;font-size:12px;color:#aaa;margin-bottom:4px}.location-detail-skeleton{display:inline-block;height:14px;border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.06) 25%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.06) 75%);background-size:200% 100%;animation:skeleton-pulse 1.2s ease-in-out infinite}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.heatmap-legend{position:absolute;bottom:16px;left:16px;z-index:10;background:rgba(20,20,30,.85);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;font-family:system-ui,-apple-system,sans-serif;font-size:11px;color:#ccc;min-width:200px}.heatmap-legend-title{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#888;margin-bottom:8px}.heatmap-legend-bar{height:12px;border-radius:4px;background:linear-gradient(to right,#2196F3 0%,#4CAF50 25%,#FFC107 50%,#FF9800 75%,#F44336 100%);margin-bottom:4px}.heatmap-legend-labels{display:flex;justify-content:space-between;font-size:10px;color:#888;margin-bottom:8px}.heatmap-legend-disabled{display:flex;align-items:center;gap:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);font-size:11px}.heatmap-legend-disabled-dot{width:8px;height:8px;border-radius:50%;background:#9E9E9E}.scene-loader{position:absolute;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0a0a1a;animation:scene-loader-fade-in .3s ease-out}@keyframes scene-loader-fade-in{0%{opacity:0}to{opacity:1}}.scene-loader-content{display:flex;flex-direction:column;align-items:center;gap:24px}.scene-loader-warehouse{position:relative;width:160px;height:100px;perspective:400px}.scene-loader-floor{position:absolute;bottom:0;left:10px;right:10px;height:4px;background:linear-gradient(90deg,transparent,rgba(79,158,238,.3),transparent);border-radius:2px}.scene-loader-rack{position:absolute;bottom:4px;border-radius:3px 3px 0 0;animation:scene-loader-rack-grow 1.8s ease-in-out infinite}.scene-loader-rack.rack-1{left:15px;width:20px;height:60px;background:linear-gradient(180deg,#4F9EEE,#2a6cb8);animation-delay:0s}.scene-loader-rack.rack-2{left:45px;width:20px;height:75px;background:linear-gradient(180deg,#4F9EEE,#2a6cb8);animation-delay:.15s}.scene-loader-rack.rack-3{left:85px;width:25px;height:50px;background:linear-gradient(180deg,#4CAF50,#2e7d32);animation-delay:.3s}.scene-loader-rack.rack-4{left:120px;width:20px;height:65px;background:linear-gradient(180deg,#FF9800,#e65100);animation-delay:.45s}@keyframes scene-loader-rack-grow{0%{transform:scaleY(0);opacity:.3}30%{transform:scaleY(1);opacity:1}70%{transform:scaleY(1);opacity:1}to{transform:scaleY(0);opacity:.3}}.scene-loader-scanline{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#4F9EEE,transparent);box-shadow:0 0 12px 2px #4f9eee80;animation:scene-loader-scan 1.8s ease-in-out infinite}@keyframes scene-loader-scan{0%{top:100%;opacity:0}10%{opacity:1}90%{opacity:1}to{top:-5%;opacity:0}}.scene-loader-text{font-size:15px;font-weight:500;color:#ffffffb3;letter-spacing:1px;font-family:system-ui,sans-serif}.scene-loader-dots{display:flex;gap:6px}.scene-loader-dots span{width:6px;height:6px;border-radius:50%;background:#4F9EEE;animation:scene-loader-dot 1.2s ease-in-out infinite}.scene-loader-dots span:nth-child(2){animation-delay:.2s}.scene-loader-dots span:nth-child(3){animation-delay:.4s}@keyframes scene-loader-dot{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.topbar{display:flex;flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;background:rgba(20,20,30,.75);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08);font-family:system-ui,-apple-system,sans-serif;font-size:13px;color:#e0e0e0;user-select:none}.topbar-group{display:flex;align-items:center;gap:4px;padding:0 8px;border-right:1px solid rgba(255,255,255,.1)}.topbar-group:last-child{border-right:none;margin-left:auto}.topbar-label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-right:4px}.topbar-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(255,255,255,.06);color:#ccc;font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}.topbar-btn:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#ffffff40}.topbar-btn.active{background:rgba(79,158,238,.25);color:#7bb8ff;border-color:#4f9eee80}.topbar-hint{font-size:11px;color:#666;padding:0 8px}.topbar-hint kbd{display:inline-block;padding:1px 5px;border:1px solid #555;border-radius:3px;background:rgba(255,255,255,.06);font-family:inherit;font-size:10px;color:#aaa}.topbar-search{padding:5px 12px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(255,255,255,.06);color:#e0e0e0;font-size:12px;font-family:inherit;outline:none;width:180px;transition:border-color .15s}.topbar-search:focus{border-color:#4f9eee80}.topbar-search::placeholder{color:#666}.editor-sidebar{width:180px;min-width:180px;background:#16213e;border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;padding:12px 0;user-select:none;font-family:system-ui,-apple-system,sans-serif}.editor-sidebar-title{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.8px;padding:0 16px 10px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}.editor-sidebar-tools{display:flex;flex-direction:column;gap:4px;padding:0 8px}.editor-sidebar-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:#bbb;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s ease;text-align:left}.editor-sidebar-btn:hover{background:rgba(255,255,255,.06);color:#e0e0e0}.editor-sidebar-btn.active{background:rgba(79,158,238,.2);color:#7bb8ff;border-color:#4f9eee66}.editor-sidebar-btn-icon{font-size:18px;width:24px;text-align:center;line-height:1}.editor-sidebar-btn-label{font-size:13px}.editor-canvas-container{flex:1;position:relative;overflow:hidden;background:#1a1a2e}.editor-canvas{display:block;width:100%;height:100%;cursor:crosshair}.props-panel{width:240px;min-width:240px;background:rgba(20,20,30,.95);border-left:1px solid rgba(255,255,255,.08);padding:16px 14px;display:flex;flex-direction:column;gap:12px;font-family:system-ui,-apple-system,sans-serif;color:#e0e0e0;user-select:none;overflow-y:auto}.props-title{font-size:14px;font-weight:600;color:#fff;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.props-section{display:flex;flex-direction:column;gap:4px}.props-label{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.4px}.props-input{padding:6px 10px;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(255,255,255,.06);color:#e0e0e0;font-size:13px;font-family:inherit;outline:none;transition:border-color .15s;width:100%;box-sizing:border-box}.props-input:focus{border-color:#4f9eee80}.props-input[type=number]{-moz-appearance:textfield}.props-input[type=number]::-webkit-inner-spin-button,.props-input[type=number]::-webkit-outer-spin-button{opacity:1}.props-toggle-group{display:flex;gap:4px}.props-toggle-btn{flex:1;padding:6px 0;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(255,255,255,.06);color:#bbb;font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s ease}.props-toggle-btn:hover{background:rgba(255,255,255,.1);color:#fff}.props-toggle-btn.active{background:rgba(79,158,238,.25);color:#7bb8ff;border-color:#4f9eee80}.props-readonly-group{display:flex;flex-direction:column;gap:8px}.props-readonly{display:flex;justify-content:space-between;align-items:center}.props-value{font-size:13px;color:#ccc}.props-delete-btn{margin-top:8px;padding:8px 0;border:1px solid rgba(220,50,50,.4);border-radius:4px;background:rgba(220,50,50,.15);color:#ff6b6b;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s ease}.props-delete-btn:hover{background:rgba(220,50,50,.3);border-color:#dc323299;color:#f88}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Light.ttf);font-weight:300;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Regular.ttf);font-weight:400;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Medium.ttf);font-weight:500;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-SemiBold.ttf);font-weight:600;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Bold.ttf);font-weight:700;font-display:swap}:root{font-family:Outfit,system-ui,-apple-system,sans-serif;font-size:16px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100vh;overflow:hidden}
