:root{--rail-w: 240px;--page-pad: 16px;--overlay-gap: 16px;--toolbar-h: 44px;--sim-toolbar-h: var(--toolbar-h)}.sim-toolbar{position:fixed;top:var(--page-pad);left:var(--page-pad);right:var(--page-pad);height:var(--sim-toolbar-h);z-index:1100;display:flex;align-items:center;gap:8px;background:#0a101a94;-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:5px 10px;box-shadow:0 10px 30px #00000059}.sim-title{flex:1;text-align:center}.sim-title-button{background:none;border:none;color:#e8eef8;font-weight:800;font-size:16px;letter-spacing:.02em;cursor:text}.sim-title-input{width:min(520px,82%);text-align:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);color:#e8eef8;border-radius:10px;padding:6px 10px;font-weight:800;font-size:14px}.sim-toolbar-right{display:flex;gap:8px}.sim-btn{background:transparent;color:#cfe2ff;border:1px solid rgba(255,255,255,.2);padding:7px 11px;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer}.sim-btn.ghost:hover{background:#ffffff12}.sim-btn.primary{background:#eb0a1e;color:#fff;border:none}.sim-btn.primary:hover{filter:brightness(.95)}.overlay-shell{position:fixed;z-index:950;top:calc(var(--sim-toolbar-h) + var(--page-pad) + 12px);left:calc(var(--rail-w) + 24px);width:min(1120px,calc(100vw - (var(--rail-w) + 2*var(--page-pad) + 48px)));height:min(82vh,760px);pointer-events:none}.overlay-inner{pointer-events:auto;height:100%;background:#0a101ab3;-webkit-backdrop-filter:blur(12px) saturate(120%);backdrop-filter:blur(12px) saturate(120%);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;overflow:hidden;box-shadow:0 16px 40px #00000073;display:flex;flex-direction:column}.overlay-content{flex:1 1 auto;overflow:auto;padding:8px;border-radius:10px}.overlay-loading{color:#cfe2ff;padding:12px}@media (max-width: 1024px){.overlay-shell{top:calc(var(--sim-toolbar-h) + var(--page-pad) + var(--overlay-gap))}}.project-title-container{position:fixed;top:2rem;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:.75rem;pointer-events:auto;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.5rem 1rem;border-radius:20px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;cursor:pointer;transition:all .2s ease}.project-title-container:hover{background:#0006;transform:translate(-50%) scale(1.02)}.project-title{color:#ccc;font-size:.85rem;font-weight:400;margin:0;text-shadow:0 1px 2px rgba(0,0,0,.3)}.project-title-input{background:none;border:none;color:#ccc;font-size:.85rem;font-weight:400;margin:0;text-shadow:0 1px 2px rgba(0,0,0,.3);outline:none;padding:0;font-family:inherit;text-align:center;min-width:100px}.project-title-input:focus{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.project-logo{width:20px;height:20px;filter:brightness(.9);background-color:#f44;mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='64'%3e%3cpath%20d='M32%2010.414c-18.126%200-32%209.347-32%2021.793C0%2044.243%2013.52%2054%2032%2054s32-9.757%2032-21.793c0-12.446-13.874-21.793-32-21.793zm19.953%209.347c.667%202.687-2.463%206.045-12.532%207.143-.67-6.842-2.7-12.623-6.063-13.847%204.528.128%208.82.893%2012.562%202.25%203.5%201.32%205.673%203.004%206.033%204.453zm-14.915%2012.34c0%208.67-2.604%2012.263-5.038%2012.263s-5.038-3.594-5.038-12.263v-.1A59.86%2059.86%200%200%200%2032%2032.22a59.86%2059.86%200%200%200%205.038-.209v.1zm-5.04-4.832a76.94%2076.94%200%200%201-4.721-.138c.765-5.67%202.796-8.965%204.722-8.965s3.957%203.296%204.722%208.964c-1.452.1-3.024.138-4.723.138zm-19.954-7.51c.358-1.44%202.512-3.116%205.98-4.434%203.755-1.37%208.068-2.143%2012.618-2.27-3.364%201.224-5.393%207.005-6.063%2013.847-10.07-1.098-13.2-4.456-12.535-7.143zM4.72%2031.422a14.67%2014.67%200%200%201%203.368-9.468c.277%204.866%206.86%208.495%2016.245%209.77l-.001.38c0%2011.74%203%2017.965%206.346%2019.25-14.328-.515-25.958-9.34-25.958-19.93zm28.545%2019.932c3.36-1.34%206.405-8.02%206.405-19.252l-.001-.38c9.386-1.274%2015.968-4.903%2016.245-9.77a14.67%2014.67%200%200%201%203.368%209.468c0%2010.605-11.662%2019.44-26.017%2019.932z'%20fill='%23eb0a1e'/%3e%3c/svg%3e") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='64'%20height='64'%3e%3cpath%20d='M32%2010.414c-18.126%200-32%209.347-32%2021.793C0%2044.243%2013.52%2054%2032%2054s32-9.757%2032-21.793c0-12.446-13.874-21.793-32-21.793zm19.953%209.347c.667%202.687-2.463%206.045-12.532%207.143-.67-6.842-2.7-12.623-6.063-13.847%204.528.128%208.82.893%2012.562%202.25%203.5%201.32%205.673%203.004%206.033%204.453zm-14.915%2012.34c0%208.67-2.604%2012.263-5.038%2012.263s-5.038-3.594-5.038-12.263v-.1A59.86%2059.86%200%200%200%2032%2032.22a59.86%2059.86%200%200%200%205.038-.209v.1zm-5.04-4.832a76.94%2076.94%200%200%201-4.721-.138c.765-5.67%202.796-8.965%204.722-8.965s3.957%203.296%204.722%208.964c-1.452.1-3.024.138-4.723.138zm-19.954-7.51c.358-1.44%202.512-3.116%205.98-4.434%203.755-1.37%208.068-2.143%2012.618-2.27-3.364%201.224-5.393%207.005-6.063%2013.847-10.07-1.098-13.2-4.456-12.535-7.143zM4.72%2031.422a14.67%2014.67%200%200%201%203.368-9.468c.277%204.866%206.86%208.495%2016.245%209.77l-.001.38c0%2011.74%203%2017.965%206.346%2019.25-14.328-.515-25.958-9.34-25.958-19.93zm28.545%2019.932c3.36-1.34%206.405-8.02%206.405-19.252l-.001-.38c9.386-1.274%2015.968-4.903%2016.245-9.77a14.67%2014.67%200%200%201%203.368%209.468c0%2010.605-11.662%2019.44-26.017%2019.932z'%20fill='%23eb0a1e'/%3e%3c/svg%3e") no-repeat center;-webkit-mask-size:contain}.unsaved-indicator{width:8px;height:8px;background-color:#f44;border-radius:50%;animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}to{opacity:.7;transform:scale(1)}}.scene-3d-container{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:125vh;z-index:1;pointer-events:auto}.overlay-shell.overlay-sidebar-right{position:fixed;top:calc(var(--toolbar-h, 60px) + var(--page-pad, 16px) + var(--overlay-gap, 16px) - 6px);right:16px;left:auto!important;bottom:calc(var(--toolbar-h, 60px) + var(--page-pad, 16px) + var(--overlay-gap, 16px) - 6px);width:240px!important;max-width:240px!important;min-width:240px!important;height:auto;margin:0;z-index:1000;pointer-events:none;display:block!important}.overlay-sidebar-right .overlay-inner,.overlay-sidebar-inner{height:100%;width:100%;padding:0;border-radius:12px;overflow:hidden;pointer-events:auto;box-shadow:0 10px 24px #00000059}@media (max-width: 1400px){.overlay-shell.overlay-sidebar-right{width:240px!important;max-width:240px!important;min-width:240px!important}}@media (max-width: 1200px){.overlay-shell.overlay-sidebar-right{width:240px!important;max-width:240px!important;min-width:240px!important}}@media (max-width: 1024px){.overlay-shell.overlay-sidebar-right{width:240px!important;max-width:240px!important;min-width:240px!important;right:12px;bottom:12px}}.nav-rail,.navigation-rail,.navigation-bar,.NavigationBar,.left-rail,[class*=NavigationBar]{top:calc(var(--sim-toolbar-h) + var(--page-pad) + 12px)!important}.scene3d-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:#111418}.overlay-shell.overlay-centered{left:0!important;right:0!important;top:0!important;bottom:0!important;width:100vw!important;height:100vh!important;position:fixed;top:0;right:0;bottom:0;left:0;z-index:950;display:grid;place-items:center;pointer-events:none}.overlay-shell.overlay-centered .overlay-inner{width:min(1120px,calc(100vw - 2 * (var(--page-pad, 16px) + 24px)));max-width:1120px;height:min(82vh,760px);max-height:82vh;pointer-events:auto;background:#0a101ab3;-webkit-backdrop-filter:blur(12px) saturate(120%);backdrop-filter:blur(12px) saturate(120%);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;overflow:hidden;box-shadow:0 16px 40px #00000073}.home-root{display:flex;flex-direction:column;height:100vh;background:#121416;color:#9fb0c7}.home-header{background:#121416;padding:.75rem 1rem;display:flex;align-items:center;justify-content:flex-start;margin-top:1rem}.header-brand{display:flex;align-items:center;gap:12px}.header-logo{width:40px;height:auto}.header-title{color:#fff;font-size:18px;font-weight:700;letter-spacing:.02em}.home-main{flex:1;display:flex;flex-direction:row;margin-top:0}.home-content-wrapper{flex:1;display:flex;flex-direction:column;margin-left:24px;margin-top:.5rem}.hs-root{width:240px;background:#121416;display:flex;flex-direction:column;padding:1.25rem .5rem .5rem}.hs-brand{display:flex;align-items:center;gap:8px;padding:8px 10px;color:#fff;font-weight:800;margin-bottom:.5rem}.hs-brand-text{letter-spacing:.02em;color:#fff;font-size:14px;font-weight:600}.hs-logo{width:48px;height:auto}.hs-list{display:flex;flex-direction:column;gap:.25rem;flex:1}.hs-item{width:100%;text-align:left;color:#9fb0c7;background:transparent;padding:.625rem .75rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.8125rem;border:none;display:flex;align-items:center;gap:.5rem;transition:all .15s}.hs-item:hover{background:#1a1f25}.hs-item.active{background:#2a2b2e;color:#e8eef8}.hs-icon{width:1rem;height:1rem}.hs-user-section{margin-top:auto;padding-top:1rem;border-top:1px solid #2a2b2e;display:flex;flex-direction:column;gap:.5rem}.hs-user-info{padding:.5rem .75rem}.hs-user-email{color:#9fb0c7;font-size:.75rem;font-weight:400;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hs-logout-btn{width:100%;text-align:left;color:#9fb0c7;background:transparent;padding:.625rem .75rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.8125rem;border:none;display:flex;align-items:center;gap:.5rem;transition:all .15s}.hs-logout-btn:hover{background:#1a1f25;color:#ef4444}.hb-root{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;margin:0;background:transparent}.hb-left{display:flex;align-items:center}.hb-title{font-weight:600;color:#fff;font-size:14px;margin:0}.hb-right{display:flex;align-items:center;gap:12px}.hb-search-container{position:relative}.hb-search{width:180px;height:24px;border-radius:6px;padding:0 12px;background:#1a1f25;border:1px solid #2a2b2e;color:#9fb0c7;font-size:12px;transition:all .15s}.hb-search:focus{outline:none;border-color:#eb0a1e;box-shadow:0 0 0 2px #eb0a1e1a}.hb-search::placeholder{color:#6b7280}.hb-create{height:24px;padding:0 12px;border:none;border-radius:6px;font-weight:500;color:#fff;background:#eb0a1e;cursor:pointer;font-size:12px;transition:all .15s}.hb-create:hover{background:#c4081a}.home-content{padding:0 12px 16px}.cg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:4px;max-width:1028px}.cg-card-wrapper{display:flex;flex-direction:column;gap:0px}.cg-card{position:relative;background:#1a1f25;border:1px solid #2a2b2e;border-radius:8px;box-shadow:0 4px 12px #00000026;overflow:hidden;display:flex;flex-direction:column;transition:all .15s}.cg-card:hover{border-color:#3a3d42;box-shadow:0 8px 20px #0003}.cg-thumb{height:140px;background:#121416;position:relative}.cg-thumb img{width:100%;height:100%;object-fit:cover}.cg-thumb-fallback{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(160% 120% at 100% -30%,#2a99ff26,#101e3240 60%,#0a1018cc)}.cg-template-watermark{position:absolute;top:8px;right:8px;background:#2a99ffe6;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:4px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cg-template-text{font-size:10px;font-weight:700;color:#fff;letter-spacing:.5px}.cg-card-info{display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 0 4px}.cg-info-left{display:flex;flex-direction:column;gap:2px}.cg-name{font-weight:600;color:#fff;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.cg-last-edited{font-weight:400;color:#6b7280;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:16px}.cg-menu{position:fixed;min-width:140px;background:#1a1f25;border:1px solid #2a2b2e;border-radius:8px;box-shadow:0 8px 20px #0000004d;padding:4px;display:flex;flex-direction:column;gap:2px;z-index:1000}.cg-menu-item{text-align:left;background:transparent;border:none;color:#9fb0c7;font-weight:500;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:12px;transition:all .15s}.cg-menu-item:hover{background:#2a2b2e;color:#eb0a1e}.cg-meta,.cg-actions,.cg-btn{display:none}.floating-nav-container{position:fixed;top:2rem;left:2rem;z-index:1000;pointer-events:none}.floating-nav{display:flex;gap:.5rem;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.5rem;border-radius:1rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;pointer-events:auto}.toyota-logo-container{position:relative;display:flex;align-items:center;margin-right:.5rem}.toyota-logo-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:.5rem;cursor:pointer;transition:all .2s ease;border-radius:50%;outline:none}.toyota-logo-btn:hover{transform:scale(1.05);box-shadow:0 0 20px #ff282866}.toyota-logo-btn:focus{outline:none}.toyota-logo{width:28px;height:28px;filter:brightness(.9);transition:all .2s ease}.toyota-logo-btn:hover .toyota-logo{filter:brightness(1.1)}.toyota-logo-btn.active .toyota-logo{transform:rotate(90deg);filter:brightness(1.2)}.toyota-dropdown-menu{position:absolute;top:calc(100% + .75rem);left:0;background:#141414d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:8px;padding:.25rem;min-width:160px;box-shadow:0 4px 30px #0006;animation:dropdownSlide .2s ease-in;z-index:1001}.toyota-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;color:#ccc;cursor:pointer;border-radius:.375rem;transition:all .3s ease;font-size:.8rem;font-weight:400;position:relative}.toyota-dropdown-item:hover{background:#ffffff1a;color:#fff;transform:translate(4px)}.toyota-dropdown-item.danger{color:#ef4444}.toyota-dropdown-item.danger:hover{background:#ef444426;color:#ef4444}.toyota-dropdown-divider{height:1px;background:#ffffff1a;margin:.125rem 0}.shortcut{margin-left:auto;font-size:.7rem;color:#888;font-weight:400}.zoom-controls-section{padding:.5rem}.zoom-controls{display:flex;align-items:center;justify-content:center;gap:8px}.zoom-btn{background:transparent;border:none;color:#fff;font-size:16px;font-weight:300;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.zoom-btn:hover{background:#ff44441a;box-shadow:0 4px 15px #f443;transform:scale(1.05)}.zoom-btn:active{background:#ff444426;box-shadow:0 0 20px #f446;transform:scale(.95)}.zoom-level{color:#fff;font-size:12px;font-weight:400;min-width:35px;text-align:center;opacity:.8}.toyota-dropdown-user-section{padding:.25rem}.toyota-dropdown-user-info{padding:.5rem .5rem .25rem}.toyota-dropdown-user-email{color:#888;font-size:.7rem;font-weight:400;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.nav-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:none;border:none;color:#888;cursor:pointer;border-radius:.75rem;font-size:.875rem;font-weight:500;transition:all .3s ease;position:relative;overflow:hidden}.nav-tab:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,#ff44441a,#ff44440d);opacity:0;transition:opacity .3s ease;border-radius:.75rem}.nav-tab:hover{color:#f44;transform:translateY(-2px);box-shadow:0 8px 25px #f443}.nav-tab:hover:before{opacity:1}.nav-tab.active{color:#f44;background:#ff444426;box-shadow:0 4px 20px #ff44444d;transform:translateY(-1px)}.nav-tab.active:before{opacity:1}.actions-container{position:fixed;bottom:2rem;left:2rem;z-index:1000;pointer-events:none}.actions-nav{display:flex;gap:.5rem;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.5rem;border-radius:1rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;pointer-events:auto}.action-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:none;border:none;color:#888;cursor:pointer;border-radius:.75rem;font-size:.875rem;font-weight:500;transition:all .3s ease;position:relative;overflow:hidden}.action-tab:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,#ff44441a,#ff44440d);opacity:0;transition:opacity .3s ease;border-radius:.75rem}.action-tab:hover{transform:translateY(-2px);box-shadow:0 8px 25px #f443}.action-tab:hover:before{opacity:1}.action-tab.save:hover{color:#22c55e;box-shadow:0 8px 25px #22c55e33}.action-tab.save:hover:before{background:linear-gradient(45deg,#22c55e1a,#22c55e0d)}.action-tab.exit:hover{color:#ef4444;box-shadow:0 8px 25px #ef444433}.action-tab.exit:hover:before{background:linear-gradient(45deg,#ef44441a,#ef44440d)}.exit-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.exit-dialog{background:#0a0f16f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:1rem;padding:2rem;max-width:400px;width:90%;box-shadow:0 20px 25px -5px #0000004d}.exit-dialog-header h3{margin:0 0 .5rem;color:#fff;font-size:1.25rem;font-weight:600}.exit-dialog-content p{margin:0 0 1.5rem;color:#888;font-size:.875rem;line-height:1.5}.exit-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.exit-dialog-btn{padding:.75rem 1.5rem;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s ease;background:none}.exit-dialog-btn-secondary{color:#888}.exit-dialog-btn-secondary:hover{background:#ffffff0d;color:#fff;border-color:#fff3}.exit-dialog-btn-danger{color:#ef4444;border-color:#ef44444d}.exit-dialog-btn-danger:hover{background:#ef44441a;color:#ef4444;border-color:#ef4444}.exit-dialog-btn-primary{background:#ff44441a;color:#f44;border-color:#f44}.exit-dialog-btn-primary:hover{background:#f443;color:#f44;border-color:#f44}@media (max-width: 768px){.floating-nav-container{top:1rem;left:1rem}.view-nav-container{top:1rem;right:1rem}.actions-container{bottom:1rem;left:1rem}.nav-tab{padding:.625rem .75rem;font-size:.8rem}.view-tab{padding:.375rem .5rem;font-size:.7rem}.action-tab{padding:.625rem .75rem;font-size:.8rem}}.view-mode-toggle-container{position:fixed;bottom:calc(var(--toolbar-h, 60px) + var(--page-pad, 16px) + var(--overlay-gap, 16px) - 6px);left:50%;transform:translate(-50%);z-index:1000;pointer-events:auto}.toggle-wrapper{background:#0006;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.5rem 1rem;border-radius:2rem;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.toggle-wrapper:hover{border-color:#ff44444d;box-shadow:0 8px 32px #ff44441a}.toggle-button{display:flex;align-items:center;gap:.75rem;background:none;border:none;cursor:pointer;padding:0;transition:all .2s ease}.toggle-button:hover{transform:scale(1.05)}.toggle-button:focus{outline:none}.icon{width:20px;height:20px;color:#666;transition:all .2s ease}.icon.active{color:#f44;transform:scale(1.1)}@media (max-width: 768px){.view-mode-toggle-container{bottom:calc(var(--toolbar-h, 60px) + var(--page-pad, 16px) + var(--overlay-gap, 16px) - 6px)}.toggle-wrapper{padding:.375rem .75rem}.toggle-button{gap:.5rem}.icon{width:18px;height:18px}}.design-canvas{position:absolute;top:0;left:0;width:100%;height:100%;background:#081015;overflow:hidden}.canvas-controls{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;align-items:center;background:#0a101acc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.5rem;border-radius:.375rem;box-shadow:0 4px 12px #0000004d;border:1px solid rgba(255,255,255,.1)}.canvas-controls button{padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;background:#fff;cursor:pointer;font-size:.75rem;transition:all .2s}.canvas-controls button:hover{background:#f3f4f6}.canvas-controls span{font-size:.75rem;color:#e8eef8;min-width:3rem;text-align:center}.canvas-info{position:absolute;bottom:1rem;left:1rem;display:flex;flex-direction:column;gap:.25rem;background:#fff;padding:.75rem;border-radius:.375rem;box-shadow:0 1px 3px #0000001a;border:1px solid #e2e8f0}.info-item{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.75rem}.info-item .label{color:#6b7280;font-weight:500}.info-item .value{color:#374151;font-weight:600;background:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;min-width:1.5rem;text-align:center}.properties-panel{padding:0;background:transparent;border:none;-webkit-backdrop-filter:none;backdrop-filter:none}.properties-panel h3{font-size:.7rem;font-weight:600;color:#f44;margin-bottom:.5rem;font-family:inherit}.no-selection{text-align:center;padding:.5rem;color:#a1a1aa;font-size:.65rem;font-family:inherit}.property-section{margin-bottom:1.5rem}.section-content{padding:0 .5rem}.section-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,68,68,.3),transparent);margin:1rem 0}.property-field{margin-bottom:1rem}.property-field label{display:block;font-size:.7rem;font-weight:500;color:#e2e8f0;margin-bottom:.5rem;font-family:inherit}.property-separator{height:1px;background:linear-gradient(90deg,transparent,rgba(255,68,68,.3),transparent);margin:1rem 0}.property-row{display:flex;gap:.5rem;align-items:center}.property-input input{width:100%;padding:.2rem .3rem;background:#ffffff0d;border:1px solid rgba(255,68,68,.2);border-radius:3px;color:#f1f5f9;font-size:.6rem;font-family:inherit;transition:all .2s ease}.property-input input:focus{outline:none;border-color:#f44;background:#ffffff14;box-shadow:0 0 0 2px #ff444440}.property-select{width:100%;padding:.25rem .35rem;background:#ffffff0d;border:1px solid rgba(255,68,68,.2);border-radius:4px;color:#f1f5f9;font-size:.65rem;font-family:inherit;transition:all .2s ease;cursor:pointer}.property-select:focus{outline:none;border-color:#f44;background:#ffffff14;box-shadow:0 0 0 2px #ff444440}.property-select option{background:#1a1a1a;color:#f1f5f9}.custom-input{position:relative}.custom-input input{width:100%;padding:.5rem .75rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#f1f5f9;font-size:.7rem;font-family:inherit;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.custom-input input:focus{outline:none;border-color:#f44;box-shadow:0 0 0 2px #ff444440;background:#0006}.custom-input input::placeholder{color:#64748b}.custom-select{position:relative}.custom-select select{width:100%;padding:.5rem .75rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#f1f5f9;font-size:.7rem;font-family:inherit;transition:all .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.custom-select select:focus{outline:none;border-color:#f44;box-shadow:0 0 0 2px #ff444440;background:#0006}.custom-select select option{background:#1a1a1a;color:#f1f5f9}.color-picker-field{display:flex;align-items:center;gap:.75rem}.color-preview{width:24px;height:24px;border-radius:4px;border:1px solid rgba(255,255,255,.2);flex-shrink:0}.color-picker{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;background:transparent}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:1px solid rgba(255,255,255,.2);border-radius:4px}.color-picker-container{display:flex;align-items:center;gap:.5rem}.color-picker-container input[type=color]{width:28px;height:22px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:transparent;cursor:pointer}.component-header{display:flex;align-items:center;justify-content:space-between;gap:.375rem;background:#ffffff08;border-radius:6px;padding:.375rem;margin-bottom:.5rem;border:1px solid rgba(255,255,255,.05)}.component-info-wrapper{display:flex;align-items:center;gap:.375rem;flex:1}.component-color-indicator{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.1)}.component-info h4{font-size:.7rem;font-weight:600;color:#f8fafc;margin:0;font-family:inherit}.component-type{font-size:.6rem;color:#94a3b8;font-family:inherit}.category-badge{display:inline-block;padding:.25rem .5rem;background:#6366f126;color:#a5b4fc;border-radius:4px;font-size:.75rem;font-weight:600;font-family:inherit;border:1px solid rgba(99,102,241,.25)}.network-topology{margin-top:1rem;border-top:1px solid rgba(255,255,255,.05);padding-top:.75rem}.network-topology-item{background:#ffffff08;border-radius:6px;padding:.4rem .5rem;margin-bottom:.4rem;color:#e2e8f0;font-size:.8rem;font-family:inherit;display:flex;align-items:center;justify-content:space-between;transition:background .2s}.network-topology-item:hover{background:#ffffff12}.delete-icon-button{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:#ef4444;cursor:pointer;transition:all .2s ease;flex-shrink:0;padding:0;margin-left:auto}.delete-icon-button:hover{background:#ef444433;color:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef444433}.delete-icon-button:active{transform:translateY(0);box-shadow:0 1px 4px #ef44444d}.layers-panel{padding:0;flex:1;background:transparent}.layers-panel h3{font-size:.7rem;font-weight:600;color:#f44;margin-bottom:.4rem;font-family:inherit}.layers-list{display:flex;flex-direction:column;gap:.125rem}.no-layers{text-align:center;padding:1rem .5rem;color:#6b7280}.no-layers .hint{font-size:.625rem;margin-top:.25rem;color:#9ca3af}.layer-item{display:flex;align-items:center;justify-content:space-between;padding:.2rem .4rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;transition:background .2s ease;background:#ffffff08;margin-bottom:.25rem}.layer-item:hover{background:#ffffff14}.layer-item.selected{background:#ff44441a;color:#f44}.layer-info{display:flex;align-items:center;gap:.5rem;flex:1}.layer-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:8px;color:#fff}.layer-details{display:flex;flex-direction:column;gap:.0625rem}.layer-name{font-size:.6rem;font-weight:600;color:#f8fafc;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit}.layer-type{font-size:.45rem;color:#94a3b8;font-family:inherit;font-weight:500}.layer-actions{display:flex;gap:.25rem;opacity:1;transition:opacity .2s}.layer-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:#ffffff1a;border-radius:6px;cursor:pointer;color:#9ca3af;transition:all .2s;font-size:6px;flex-shrink:0}.layer-action:hover{background:#ffffff1a;color:#e8eef8}.layer-action.delete{background:transparent;color:#ef4444;border:none;box-shadow:none}.layer-action.delete:hover{background:#ef44441a;color:#dc2626;border:none;box-shadow:none;transform:scale(1.1)}.two-d-view{position:relative;width:100%;height:100vh;background:#0b0f14;overflow:hidden;display:flex;font-family:Inter,Roboto Mono,monospace;color:#e2e8f0}.left-toolbar{width:220px;background:#18181bd9;border-right:1px solid rgba(255,255,255,.05);padding:1rem;overflow-y:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset -1px 0 #ffffff08}.toolbar-section{margin-bottom:1.5rem}.toolbar-section h3{font-size:.8rem;font-weight:600;color:#94a3b8;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.component-buttons{display:flex;flex-direction:column;gap:.4rem}.component-button{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff08;color:#e5e7eb;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.component-button:hover{background:#ffffff12;border-color:#ffffff1f;transform:translateY(-1px)}.component-button:active{transform:scale(.98)}.component-button.gateway{border-left:3px solid #f97316}.component-button.ecu{border-left:3px solid #22c55e}.component-button.bus{border-left:3px solid #16a34a}.component-button.attacker{border-left:3px solid #ef4444}.component-button.probe{border-left:3px solid #14b8a6}.component-button.secoc{border-left:3px solid #8b5cf6}.component-button.loadgen{border-left:3px solid #84cc16}.component-button.fvm{border-left:3px solid #a855f7}.two-d-view>div:last-child{flex:1;position:relative;z-index:1}.left-overlay{position:absolute;top:0;left:0;height:100%;z-index:10;pointer-events:none}.left-overlay>*{pointer-events:auto}.topology-panels{position:fixed;top:50%;left:2rem;transform:translateY(-50%);width:200px;height:450px;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;color:#e8eef8;font-size:.75rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;overflow:visible;z-index:1000}.panel-tabs{display:flex;flex-direction:column;background:transparent;padding:.5rem;gap:.125rem;position:relative}.panel-tabs:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 20%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.1) 80%,transparent 100%);box-shadow:0 0 8px #ffffff1a}.tab-button{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:none;color:#a1a1aa;font-size:.7rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .2s ease;border-radius:4px;text-align:left}.tab-button:hover{color:#f1f5f9}.tab-button.active{color:#f44;background:#ff44441a;border:1px solid rgba(255,68,68,.3);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #f443,inset 0 1px #ffffff1a;position:relative}.tab-button.active:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;background:linear-gradient(135deg,#f443,#ff44441a,#f443);border-radius:8px;z-index:-1}.left-overlay{transition:transform .3s ease}.left-overlay.panel-hidden{transform:translate(-100%)}.topology-panels .panel-content{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.25rem;scrollbar-width:none;-ms-overflow-style:none}.topology-panels .panel-content::-webkit-scrollbar{display:none}.two-d-view:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}.toyota-dialog-backdrop,.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.toyota-dialog,.dialog{background:#1a1a1f;border:1px solid rgba(255,255,255,.1);border-radius:12px;width:90%;max-width:500px;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.dialog-title{display:flex;align-items:center;gap:.75rem;color:#f1f5f9}.dialog-title h2{font-size:1.25rem;font-weight:600;margin:0}.close-button{width:32px;height:32px;border:none;background:transparent;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.close-button:hover{background:#ffffff1a;color:#f1f5f9}.dialog-content{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.import-info{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem}.import-info p{color:#cbd5e1;font-size:.875rem;margin:0;line-height:1.5}.dropzone,.file-drop-zone{border:2px dashed rgba(255,255,255,.2);border-radius:12px;padding:2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#ffffff05;margin:1.5rem}.dropzone:hover,.file-drop-zone:hover{border-color:#f446;background:#ff44440d}.dropzone.drag-active,.file-drop-zone.drag-active{border-color:#f44;background:#ff44441a;transform:scale(1.02)}.file-drop-zone.file-selected{border-color:#22c55e66;background:#22c55e0d}.drop-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;color:#94a3b8}.drop-content h3{font-size:1.125rem;font-weight:600;color:#cbd5e1;margin:0}.drop-content p{font-size:.875rem;margin:0}.file-types{font-size:.75rem;color:#64748b;font-weight:500}.file-info{display:flex;align-items:center;gap:1rem;color:#cbd5e1}.file-details h3{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:#f1f5f9}.file-details p{font-size:.875rem;color:#94a3b8;margin:0}.success-icon{color:#22c55e;margin-left:auto}.error,.import-error{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;font-size:.875rem;margin:.5rem 0}.success,.import-success{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:8px;color:#86efac;font-size:.875rem;margin:.5rem 0}.import-warning{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#fb923c1a;border:1px solid rgba(251,146,60,.3);border-radius:8px;color:#fdba74;font-size:.875rem}.dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;font-family:inherit}.btn-secondary{background:#ffffff0d;color:#cbd5e1;border:1px solid rgba(255,255,255,.1)}.btn-secondary:hover{background:#ffffff1a;color:#f1f5f9}.btn-primary{background:#f44;color:#fff;border:1px solid #ff4444}.btn-primary:hover{background:#dc2626;border-color:#dc2626}.btn-primary:disabled{background:#ff44444d;border-color:#ff44444d;cursor:not-allowed;opacity:.5}.controls-container{display:flex;flex-direction:column;gap:1rem;position:relative;z-index:1}.simulator-section{background:#0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;position:relative;overflow:hidden}.simulator-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ff44440d,#0000001a,#22c55e0d);pointer-events:none;z-index:0}.section-title{font-size:.875rem;font-weight:700;color:#fff;margin:0 0 .5rem;position:relative;z-index:1;text-shadow:0 2px 4px rgba(0,0,0,.3)}.subsection{display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:1}.subsection-title{font-size:.75rem;font-weight:600;color:#e8eef8;margin:0 0 .25rem;position:relative;z-index:1}.form-group{display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:1}.form-label{font-size:.75rem;font-weight:600;color:#e8eef8;text-shadow:0 1px 2px rgba(0,0,0,.3)}.form-input,.form-select{width:100%;padding:.75rem 1rem;background:#0000004d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#e8eef8;font-size:.8rem;font-weight:500;transition:all .3s ease;position:relative;z-index:1}.form-input:focus,.form-select:focus{outline:none;border-color:#f44;box-shadow:0 0 20px #ff44444d;background:#0006;transform:translateY(-1px)}.form-input:hover,.form-select:hover{border-color:#ff444480;background:#00000059}.form-input::placeholder{color:#9ca3af;font-style:italic}.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .3s ease;width:100%;position:relative;z-index:1;overflow:hidden}.btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);opacity:0;transition:opacity .3s ease;border-radius:8px}.btn:hover:before{opacity:1}.controls-container .btn-primary,.simulator-section .btn-primary{background:linear-gradient(135deg,#f44,#eb0a1e)!important;color:#fff!important;box-shadow:0 4px 15px #ff44444d!important}.controls-container .btn-primary:hover:not(:disabled),.simulator-section .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#f33,#d4081a)!important;box-shadow:0 6px 20px #f446!important;transform:translateY(-2px)}.btn-destructive{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 15px #ef44444d}.btn-destructive:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 20px #ef444466;transform:translateY(-2px)}.btn-outline{background:#0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#e8eef8}.btn-outline:hover:not(:disabled){background:#ffffff1a;border-color:#ff444480;color:#fff;box-shadow:0 4px 15px #f443;transform:translateY(-1px)}.btn-sm{padding:.5rem .75rem;font-size:.75rem}.probe-selects{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;position:relative;z-index:1}.probe-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;position:relative;z-index:1}.uds-services-container{display:flex;flex-direction:column;gap:.75rem}.form-input:focus,.form-select:focus{outline:none;border-color:#06b6d4;box-shadow:0 0 0 2px #06b6d426}.btn-primary{background:#06b6d4;color:#fff}.btn-primary:hover:not(:disabled){background:#0891b2}.btn-secondary{background:#0e7490;color:#fff;margin-top:.375rem}.btn-secondary:hover:not(:disabled){background:#155e75}.btn-icon{padding:.1875rem;background:transparent;border:none;color:#9fb0c7;cursor:pointer;border-radius:3px;transition:all .15s}.btn-icon:hover{background:#06b6d426;color:#06b6d4}.animate-spin{animation:spin 1s linear infinite}.service-item.selected{background:#06b6d426;border-color:#06b6d4}.service-badge{width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;background:#06b6d440;color:#67e8f9;border-radius:4px;font-size:.6875rem;font-weight:600}.request-queue{display:flex;flex-direction:column;gap:.1875rem}.queue-list{border:1px solid #2a2b2e;border-radius:6px;padding:.375rem;max-height:4.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.1875rem}.queue-item{display:flex;align-items:center;justify-content:space-between;font-size:.6875rem}.queue-item-content{display:flex;align-items:center;gap:.1875rem}.queue-item-text{font-size:.5625rem;color:#e8eef8}.attack-simulation-container{display:flex;flex-direction:column;gap:.75rem}.simulator-section{background:#121416;border:1px solid #2a2b2e;border-radius:10px;padding:.75rem;display:flex;flex-direction:column;gap:.625rem}.section-title{font-size:.8125rem;font-weight:600;color:#fff;margin:0 0 .375rem}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-size:.6875rem;font-weight:500;color:#e8eef8}.form-input,.form-select{width:100%;padding:.375rem .625rem;background:#0e1113;border:1px solid #2a2b2e;border-radius:6px;color:#e8eef8;font-size:.75rem;transition:all .15s}.form-input:focus,.form-select:focus{outline:none;border-color:#eb0a1e;box-shadow:0 0 0 2px #eb0a1e1a}.form-input::placeholder{color:#6b7280}.form-input-sm,.form-select-sm{padding:.25rem .5rem;font-size:.6875rem}.btn{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-destructive{background:#ef4444;color:#fff}.btn-destructive:hover:not(:disabled){background:#dc2626}.btn-outline{background:transparent;border:1px solid #2a2b2e;color:#e8eef8}.btn-outline:hover:not(:disabled){background:#2a2b2e;border-color:#3a3d42}.button-group{display:flex;gap:.375rem}.flex-1{flex:1}.icon-sm{width:.75rem;height:.75rem}.icon-xs{width:.625rem;height:.625rem}.services-list{display:flex;flex-direction:column;gap:.375rem}.service-item{display:flex;align-items:center;justify-content:space-between;padding:.375rem;background:#0e1113;border:1px solid #2a2b2e;border-radius:6px;cursor:pointer;transition:all .15s}.service-item:hover{background:#1a1f25;border-color:#3a3d42}.service-item.selected{background:#eb0a1e1a;border-color:#eb0a1e}.service-content{display:flex;align-items:center;gap:.375rem;flex:1}.attack-badge{width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;background:#ef44441f;color:#fecaca;border-radius:4px}.service-info{flex:1}.service-name{font-size:.6875rem;font-weight:600;color:#e8eef8}.service-description{font-size:.5625rem;color:#9fb0c7}.param-field{display:flex;flex-direction:column;gap:.1875rem}.param-label{font-size:.5625rem;color:#e8eef8}.info-box{padding:.375rem;background:#0e1113;border:1px solid #2a2b2e;border-radius:6px;font-size:.5625rem;color:#9fb0c7}.slider-container{padding:0 .375rem}.slider{width:100%;height:4px;background:#94a3b833;border-radius:2px;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#eb0a1e;border:2px solid #eb0a1e;border-radius:50%;cursor:pointer}.slider::-moz-range-thumb{width:16px;height:16px;background:#eb0a1e;border:2px solid #eb0a1e;border-radius:50%;cursor:pointer}.slider-labels{display:flex;justify-content:space-between;margin-top:.1875rem;font-size:.5625rem;color:#9fb0c7}.alert{padding:.5625rem;border-radius:6px;display:flex;flex-direction:column;gap:.375rem}.alert-destructive{background:#ef444414;border:1px solid rgba(239,68,68,.3)}.alert-header{display:flex;align-items:center;gap:.375rem;color:#ef4444}.alert-title{font-size:.6875rem;font-weight:600}.alert-description{font-size:.5625rem;color:#9fb0c7}.progress-bar{width:100%;height:.375rem;background:#94a3b833;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#eb0a1e;transition:width .3s}.simulator-sidebar-container{width:100%;height:100%;display:flex;flex-direction:column;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#e8eef8;font-size:.875rem;border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;position:relative;overflow:hidden}.simulator-sidebar-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ff44440d,#0000001a,#22c55e0d);pointer-events:none;z-index:0}.simulator-nav{position:relative;z-index:1;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.simulator-nav:after{content:"";position:absolute;bottom:0;left:1rem;right:1rem;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%)}.simulator-nav-btn{width:100%;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;color:#e8eef8;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.simulator-nav-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ff44441a,#22c55e1a);opacity:0;transition:opacity .3s ease;border-radius:8px}.simulator-nav-btn:hover{background:#ffffff0d;color:#fff;box-shadow:0 4px 20px #f443;transform:translate(4px)}.simulator-nav-btn:hover:before{opacity:1}.simulator-nav-btn.active{background:linear-gradient(135deg,#f443,#ff44441a);color:#f44;box-shadow:0 4px 20px #ff44444d;border:1px solid rgba(255,68,68,.3)}.simulator-nav-btn.active:before{opacity:1}.simulator-content{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;z-index:1;mask:linear-gradient(to bottom,transparent 0%,black 20px,black calc(100% - 20px),transparent 100%);-webkit-mask:linear-gradient(to bottom,transparent 0%,black 20px,black calc(100% - 20px),transparent 100%)}.simulator-content-inner{padding:1rem;display:flex;flex-direction:column;gap:1rem;position:relative}.simulator-content-inner>*+*{position:relative}.simulator-content-inner>*+*:before{content:"";position:absolute;top:-.5rem;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%)}.icon{width:.875rem;height:.875rem}.simulator-content::-webkit-scrollbar{display:none}.simulator-content{-ms-overflow-style:none;scrollbar-width:none}.config-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:transparent;display:flex;align-items:center;justify-content:center;z-index:99999;pointer-events:auto;cursor:pointer}.config-dialog{background:#0a0f16;border:1px solid #2a2b2e;border-radius:12px;padding:0;min-width:500px;max-width:600px;width:90%;max-height:80vh;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0000001a;pointer-events:auto;cursor:default;position:relative}.config-dialog-header{padding:2rem 2rem 0}.config-dialog-header h3{margin:0;color:#f44;font-size:1.25rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.config-dialog-content{padding:2rem;max-height:60vh;overflow-y:auto}.config-dialog-actions{padding:0 2rem 2rem;display:flex;gap:1rem;justify-content:flex-end}.config-dialog-btn{padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid transparent;min-width:80px}.config-dialog-btn:disabled{opacity:.5;cursor:not-allowed}.config-dialog-btn-secondary{background:transparent;color:#9fb0c7;border-color:#2a2b2e}.config-dialog-btn-secondary:hover:not(:disabled){background:#1a1f25;color:#e8eef8;border-color:#3a3d42}.config-dialog-btn-primary{background:#eb0a1e;color:#fff;border-color:#eb0a1e}.config-dialog-btn-primary:hover:not(:disabled){background:#c4081a;border-color:#c4081a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.config-dialog-content .form-group{margin-bottom:1.5rem}.config-dialog-content .form-group:last-child{margin-bottom:0}.config-dialog-content .form-input,.config-dialog-content .form-select{padding:.75rem 1rem;font-size:.875rem}.config-dialog-content .form-label{font-size:.875rem;margin-bottom:.5rem}.project-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.project-dialog{background:#1a1f25;border-radius:12px;box-shadow:0 20px 40px #0006;border:1px solid #2a2b2e;max-width:500px;width:100%;max-height:90vh;overflow:hidden;outline:none}.project-dialog-header{padding:1.5rem 2rem 1rem;border-bottom:1px solid #2a2b2e;display:flex;align-items:center;justify-content:space-between}.project-dialog-header h3{margin:0;color:#e8eef8;font-size:1.25rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.project-dialog-close{background:none;border:none;color:#9fb0c7;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;display:flex;align-items:center;justify-content:center}.project-dialog-close:hover{background:#2a2b2e;color:#e8eef8}.project-dialog-content{padding:2rem}.project-dialog-actions{padding:0 2rem 2rem;display:flex;gap:1rem;justify-content:flex-end}.project-dialog-btn{padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid transparent;min-width:100px}.project-dialog-btn:disabled{opacity:.5;cursor:not-allowed}.project-dialog-btn-secondary{background:transparent;color:#9fb0c7;border-color:#2a2b2e}.project-dialog-btn-secondary:hover:not(:disabled){background:#1a1f25;color:#e8eef8;border-color:#3a3d42}.project-dialog-btn-primary{background:#eb0a1e;color:#fff;border-color:#eb0a1e}.project-dialog-btn-primary:hover:not(:disabled){background:#c4081a;border-color:#c4081a}.form-input-error{border-color:#eb0a1e!important;box-shadow:0 0 0 2px #eb0a1e1a!important}.form-error{color:#eb0a1e;font-size:.75rem;margin-top:.5rem;display:flex;align-items:center;gap:.25rem}.confirmation-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.confirmation-dialog{background:#1a1f25;border-radius:12px;box-shadow:0 20px 40px #0006;border:1px solid #2a2b2e;max-width:450px;width:100%;max-height:90vh;overflow:hidden;outline:none}.confirmation-dialog-header{padding:1.5rem 2rem 1rem;border-bottom:1px solid #2a2b2e;display:flex;align-items:center;justify-content:space-between}.confirmation-dialog-title{display:flex;align-items:center;gap:.75rem}.confirmation-dialog-title h3{margin:0;color:#e8eef8;font-size:1.25rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.confirmation-dialog-icon{color:#eb0a1e;flex-shrink:0}.confirmation-dialog-close{background:none;border:none;color:#9fb0c7;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;display:flex;align-items:center;justify-content:center}.confirmation-dialog-close:hover{background:#2a2b2e;color:#e8eef8}.confirmation-dialog-content{padding:2rem}.confirmation-dialog-content p{margin:0;color:#9fb0c7;font-size:.875rem;line-height:1.5}.confirmation-dialog-actions{padding:0 2rem 2rem;display:flex;gap:1rem;justify-content:flex-end}.confirmation-dialog-btn{padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid transparent;min-width:100px}.confirmation-dialog-btn-secondary{background:transparent;color:#9fb0c7;border-color:#2a2b2e}.confirmation-dialog-btn-secondary:hover{background:#1a1f25;color:#e8eef8;border-color:#3a3d42}.confirmation-dialog-btn-primary{background:#eb0a1e;color:#fff;border-color:#eb0a1e}.confirmation-dialog-btn-primary:hover{background:#c4081a;border-color:#c4081a}.confirmation-dialog-btn-danger{background:#eb0a1e;color:#fff;border-color:#eb0a1e}.confirmation-dialog-btn-danger:hover{background:#c4081a;border-color:#c4081a}.rename-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.rename-dialog{background:#1a1f25;border-radius:12px;box-shadow:0 20px 40px #0006;border:1px solid #2a2b2e;max-width:500px;width:100%;max-height:90vh;overflow:hidden;outline:none}.rename-dialog-header{padding:1.5rem 2rem 1rem;border-bottom:1px solid #2a2b2e;display:flex;align-items:center;justify-content:space-between}.rename-dialog-title{display:flex;align-items:center;gap:.75rem}.rename-dialog-title h3{margin:0;color:#e8eef8;font-size:1.25rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.rename-dialog-icon{color:#eb0a1e;flex-shrink:0}.rename-dialog-close{background:none;border:none;color:#9fb0c7;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;display:flex;align-items:center;justify-content:center}.rename-dialog-close:hover{background:#2a2b2e;color:#e8eef8}.rename-dialog-content{padding:2rem}.rename-dialog-content .form-group{margin-bottom:1.5rem}.rename-dialog-content .form-group:last-child{margin-bottom:0}.rename-current-name{background:#2a2b2e;border:1px solid #3a3d42;border-radius:8px;padding:.75rem 1rem;color:#9fb0c7;font-size:.875rem;font-style:italic}.rename-dialog-actions{padding:0 2rem 2rem;display:flex;gap:1rem;justify-content:flex-end}.rename-dialog-btn{padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid transparent;min-width:100px}.rename-dialog-btn:disabled{opacity:.5;cursor:not-allowed}.rename-dialog-btn-secondary{background:transparent;color:#9fb0c7;border-color:#2a2b2e}.rename-dialog-btn-secondary:hover:not(:disabled){background:#1a1f25;color:#e8eef8;border-color:#3a3d42}.rename-dialog-btn-primary{background:#eb0a1e;color:#fff;border-color:#eb0a1e}.rename-dialog-btn-primary:hover:not(:disabled){background:#c4081a;border-color:#c4081a}.scene-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0a0f16e6;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.scene-loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;background:#1a1f25f2;border-radius:12px;border:1px solid #2a2b2e;box-shadow:0 20px 40px #0006}.scene-loading-spinner{width:40px;height:40px;border:3px solid #2a2b2e;border-top:3px solid #eb0a1e;border-radius:50%;animation:scene-loading-spin 1s linear infinite}.scene-loading-text{color:#e8eef8;font-size:1.125rem;font-weight:600;text-align:center;margin-top:16px;text-shadow:0 2px 4px rgba(0,0,0,.3)}@keyframes scene-loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scene-visible{opacity:1!important;visibility:visible!important;transition:opacity .1s ease-in-out;pointer-events:auto}.scene-hidden{opacity:0;visibility:hidden;transition:opacity .1s ease-in-out;pointer-events:none}.scene-2d-wrapper,.scene-3d-wrapper{transition:all .1s ease-in-out}.scene-3d-container{position:relative;overflow:hidden}.login-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:#0a0d10;background-image:radial-gradient(ellipse at 30% 20%,rgba(235,10,30,.08) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(235,10,30,.05) 0%,transparent 50%),linear-gradient(135deg,#0f1216,#0a0d10,#050608);padding:20px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 30%,rgba(235,10,30,.03) 0%,transparent 70%);pointer-events:none}.login-box{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:400px;width:100%;position:relative;z-index:1}.login-logo-wrapper{position:relative;margin-bottom:40px;display:flex;align-items:center;justify-content:center}.login-logo-wrapper:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120px;height:120px;background:radial-gradient(circle,rgba(235,10,30,.15) 0%,transparent 70%);border-radius:50%;filter:blur(20px);z-index:-1}.login-logo{width:80px;height:80px;filter:drop-shadow(0 4px 20px rgba(235,10,30,.3)) drop-shadow(0 0 40px rgba(235,10,30,.15));position:relative;z-index:1}.login-box h1{margin:0 0 12px;color:#fff;font-size:28px;font-weight:800;letter-spacing:.03em;line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.3)}.login-box p{margin:0 0 44px;color:#9fb0c7;font-size:14px;font-weight:400;line-height:1.6;letter-spacing:.01em}.login-button{background:#eb0a1e;color:#fff;border:none;border-radius:10px;padding:12px 32px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;letter-spacing:.02em;position:relative;overflow:hidden;min-width:140px;box-shadow:0 4px 16px #eb0a1e4d,0 0 0 1px #ffffff0d inset}.login-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.login-button:hover:before{left:100%}.login-button:hover{background:#c70918;box-shadow:0 8px 24px #eb0a1e80,0 4px 12px #eb0a1e4d,0 0 0 1px #ffffff1a inset}.login-button:active{box-shadow:0 4px 12px #eb0a1e66,0 0 0 1px #ffffff0d inset}.login-loading{color:#9fb0c7;font-size:14px;font-weight:400;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.login-loading:after{content:"";width:16px;height:16px;border:2px solid rgba(235,10,30,.2);border-top-color:#eb0a1e;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{color:#ef4444;margin-bottom:24px;padding:14px 20px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:10px;font-size:13px;font-weight:500;line-height:1.5;text-align:center;max-width:360px;box-shadow:0 2px 8px #ef44441a}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#9fb0c7;background-color:#121416;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;width:100vw;height:100vh;overflow:hidden;background-color:#121416;color:#9fb0c7}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1f25;color:#9fb0c7;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}*{box-sizing:border-box}html{background-color:#121416;color:#9fb0c7}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
