: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:calc(2rem + 96px)!important;bottom:calc(var(--toolbar-h, 60px) + var(--page-pad, 16px) + var(--overlay-gap, 16px) + 60px)!important;width:100vw!important;height:auto!important;position:fixed;z-index:950;display:flex;align-items:flex-start;justify-content:center;padding-left:2rem;padding-right:2rem;pointer-events:none;box-sizing:border-box}.overlay-shell.overlay-centered .overlay-inner{width:min(1600px,calc(100vw - 4rem));max-width:1600px;height:100%;max-height:100%;pointer-events:auto;background:#ffffffa6;-webkit-backdrop-filter:blur(12px) saturate(120%);backdrop-filter:blur(12px) saturate(120%);border:1px solid rgba(0,0,0,.1);border-radius:12px;padding:12px;overflow:hidden;box-shadow:0 16px 40px #0003}.full-page-view{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;z-index:100;pointer-events:auto;background:#0a1016;overflow-y:auto;overflow-x:hidden;padding-top:calc(3rem + 80px);padding-left:2rem;padding-right:2rem;padding-bottom:2rem}.full-page-loading{display:flex;align-items:center;justify-content:center;height:100%;color:#cfe2ff;font-size:16px}.certificate-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.certificate-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.certificate-modal-header{padding:24px 24px 16px;border-bottom:1px solid #e5e7eb}.certificate-modal-header h2{margin:0;font-size:24px;font-weight:600;color:#1f2937}.certificate-modal-content{padding:24px}.certificate-modal-message{font-size:16px;line-height:1.6;color:#374151;margin-bottom:20px}.certificate-modal-details{background:#f9fafb;border-radius:8px;padding:20px;margin-top:20px}.certificate-modal-details h3{margin:0 0 12px;font-size:18px;font-weight:600;color:#1f2937}.certificate-modal-details ol{margin:12px 0;padding-left:24px}.certificate-modal-details li{margin:8px 0;line-height:1.6;color:#4b5563}.certificate-modal-note{margin-top:16px;padding:12px;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;font-size:14px;line-height:1.6;color:#78350f}.certificate-modal-note strong{color:#92400e}.certificate-modal-actions{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.certificate-modal-btn{padding:10px 20px;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.certificate-modal-btn-primary{background:#3b82f6;color:#fff}.certificate-modal-btn-primary:hover{background:#2563eb}.certificate-modal-btn-primary:active{background:#1d4ed8}.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;cursor:pointer}.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;display:flex;flex-direction:column;min-height:0;overflow:hidden;flex:1}.properties-panel h3{font-size:.7rem;font-weight:600;color:#f44;margin-bottom:.5rem;font-family:inherit;flex-shrink:0}.properties-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-right:.25rem;scrollbar-width:thin;scrollbar-color:rgba(255,68,68,.3) transparent}.properties-content::-webkit-scrollbar{width:4px}.properties-content::-webkit-scrollbar-track{background:transparent}.properties-content::-webkit-scrollbar-thumb{background:#ff44444d;border-radius:2px}.properties-content::-webkit-scrollbar-thumb:hover{background:#ff444480}.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;display:flex;flex-direction:column;min-height:0;overflow:hidden}.layers-panel h3{font-size:.7rem;font-weight:600;color:#f44;margin-bottom:.5rem;font-family:inherit;flex-shrink:0}.layers-list{display:flex;flex-direction:column;gap:.125rem;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding-right:.25rem;scrollbar-width:thin;scrollbar-color:rgba(255,68,68,.3) transparent}.layers-list::-webkit-scrollbar{width:4px}.layers-list::-webkit-scrollbar-track{background:transparent}.layers-list::-webkit-scrollbar-thumb{background:#ff44444d;border-radius:2px}.layers-list::-webkit-scrollbar-thumb:hover{background:#ff444480}.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}.sidebar-container{position:fixed;top:0;left:0;height:100vh;z-index:1000;display:flex;align-items:center;pointer-events:none}.sidebar-container>*{pointer-events:auto}.sidebar-handle{position:fixed;left:0;top:40%;transform:translateY(-50%);width:36px;height:80px;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-left:none;border-radius:0 1rem 1rem 0;box-shadow:0 8px 32px #0000004d;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:1001;padding:0;margin:0}.sidebar-handle:hover{transform:translateY(-50%) translate(2px);background:#0006;border-color:#ffffff26;box-shadow:0 8px 32px #0000004d,0 0 20px #f443}.sidebar-handle:hover .sidebar-chevron{color:#f44}.sidebar-handle:active{transform:translateY(-50%) translate(1px)}.sidebar-handle-content{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.sidebar-chevron{color:#888;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.sidebar-chevron.rotated{transform:rotate(0)}.sidebar-panel{position:fixed;top:40%;left:36px;transform:translateY(-50%);width:240px;max-height:70vh;min-height:400px;background:#0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:1rem;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:hidden;z-index:1000;transition:transform .3s ease,opacity .3s ease}.sidebar-container.sidebar-closed .sidebar-panel{transform:translateY(-50%) translate(-100%);opacity:0;pointer-events:none}.sidebar-container.sidebar-open .sidebar-panel{transform:translateY(-50%) translate(0);opacity:1;pointer-events:auto}.panel-tabs{display:flex;flex-direction:column;background:transparent;padding:.75rem .5rem .5rem;gap:.125rem;position:relative;flex-shrink:0}.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}.sidebar-panel .panel-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem;display:flex;flex-direction:column;gap:.25rem;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(255,68,68,.3) transparent}.sidebar-panel .panel-content::-webkit-scrollbar{width:6px}.sidebar-panel .panel-content::-webkit-scrollbar-track{background:transparent}.sidebar-panel .panel-content::-webkit-scrollbar-thumb{background:#ff44444d;border-radius:3px}.sidebar-panel .panel-content::-webkit-scrollbar-thumb:hover{background:#ff444480}.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}.scene-2d-wrapper.view-blurred{filter:blur(8px) brightness(.3);transition:filter .3s ease;pointer-events:none}.scene-2d-wrapper:not(.view-blurred){filter:blur(0) brightness(1);transition:filter .3s ease}.info-top{position:relative}.info-top.headlights-on:before,.info-top.headlights-on:after{content:"";position:absolute;top:26px;height:4px;pointer-events:none;z-index:200;transition:opacity .3s ease}.info-top.headlights-on:before{left:26px;width:calc(680px / 3);background:linear-gradient(to top,rgba(255,255,255,1) 0%,rgba(255,255,255,1) 5%,rgba(255,255,255,.98) 10%,rgba(255,255,255,.95) 20%,rgba(255,255,255,.85) 35%,rgba(255,255,255,.7) 50%,rgba(255,255,255,.5) 65%,rgba(255,255,255,.3) 80%,rgba(255,255,255,.15) 90%,rgba(255,255,255,.05) 98%,transparent 100%);box-shadow:0 -2px 20px #fff,0 -5px 30px #fff,0 -10px 50px #fff,0 -20px 70px #fff,0 -35px 100px #fff,0 -50px 130px #fff,0 -80px 170px #fff,0 -120px 210px #fffffffa,0 -160px 260px #fffffff2,0 -200px 310px #ffffffeb,0 -250px 360px #ffffffe0,0 -300px 410px #ffffffd9,0 -350px 460px #fffc;transform:rotate(-4deg);transform-origin:bottom left}.info-top.headlights-on:after{left:calc(30px + 680px * 2 / 3 + 4px);width:calc(680px / 3);background:linear-gradient(to top,rgba(255,255,255,1) 0%,rgba(255,255,255,1) 5%,rgba(255,255,255,.98) 10%,rgba(255,255,255,.95) 20%,rgba(255,255,255,.85) 35%,rgba(255,255,255,.7) 50%,rgba(255,255,255,.5) 65%,rgba(255,255,255,.3) 80%,rgba(255,255,255,.15) 90%,rgba(255,255,255,.05) 98%,transparent 100%);box-shadow:0 -2px 20px #fff,0 -5px 30px #fff,0 -10px 50px #fff,0 -20px 70px #fff,0 -35px 100px #fff,0 -50px 130px #fff,0 -80px 170px #fff,0 -120px 210px #fffffffa,0 -160px 260px #fffffff2,0 -200px 310px #ffffffeb,0 -250px 360px #ffffffe0,0 -300px 410px #ffffffd9,0 -350px 460px #fffc;transform:rotate(4deg);transform-origin:bottom right}.info-top:not(.headlights-on):before,.info-top:not(.headlights-on):after{opacity:0}.car-wheel-speeds-container{position:absolute;top:85px;left:100px;width:1200px;height:300px;display:block}.car-wheel-speeds-container:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:900px;height:500px;background:radial-gradient(ellipse at center,rgba(100,150,255,.4) 0%,rgba(100,150,255,.3) 10%,rgba(100,150,255,.2) 20%,rgba(100,150,255,.12) 35%,rgba(100,150,255,.06) 50%,rgba(100,150,255,.03) 65%,rgba(100,150,255,.015) 80%,rgba(100,150,255,.008) 90%,rgba(100,150,255,.004) 95%,transparent 100%);z-index:0;pointer-events:none;filter:blur(20px);border-radius:50%}.car-top-view{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-90deg);width:42%;height:42%;object-fit:contain;object-position:center;z-index:1}.wheel-speed-number{position:absolute;color:#fff;font-size:14px;font-weight:400;font-family:Roboto,sans-serif;text-shadow:0 0 4px rgba(0,0,0,.8);pointer-events:none;z-index:2}.wheel-speed-fl{top:calc(50% - 55px);left:calc(50% - 100px);transform:translate(-50%,-50%)}.wheel-speed-fr{top:calc(50% - 55px);left:calc(50% + 100px);transform:translate(-50%,-50%)}.wheel-speed-rl{top:calc(50% + 45px);left:calc(50% - 100px);transform:translate(-50%,-50%)}.wheel-speed-rr{top:calc(50% + 45px);left:calc(50% + 100px);transform:translate(-50%,-50%)}.brake-indicator{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#fff;font-size:12px;font-weight:500;font-family:Roboto,sans-serif;text-shadow:0 0 4px rgba(0,0,0,.8);opacity:.5;transition:opacity .3s ease,color .3s ease,text-shadow .3s ease}.brake-indicator.brake-active{color:red;opacity:1;text-shadow:0 0 8px rgba(255,0,0,.8),0 0 16px rgba(255,0,0,.6),0 0 24px rgba(255,0,0,.4),0 0 4px rgba(0,0,0,.8);animation:brake-glow .5s ease-in-out infinite alternate}@keyframes brake-glow{0%{text-shadow:0 0 8px rgba(255,0,0,.8),0 0 16px rgba(255,0,0,.6),0 0 24px rgba(255,0,0,.4),0 0 4px rgba(0,0,0,.8)}to{text-shadow:0 0 12px rgba(255,0,0,1),0 0 24px rgba(255,0,0,.8),0 0 36px rgba(255,0,0,.6),0 0 4px rgba(0,0,0,.8)}}.taillight-strip{position:relative;width:100%;height:6px;margin-top:.5rem;background:transparent;border:1px solid transparent;border-radius:3px;overflow:hidden;transition:all .3s ease}.taillight-glow{width:100%;height:100%;background:transparent;transition:all .3s ease;border-radius:3px}.taillight-strip.active{background:#dc143c4d;border-color:#f009;box-shadow:0 0 30px #f009,0 0 50px #ff000080,0 0 80px #f006,0 0 120px #f003,0 10px 40px #ff000080,0 20px 60px #f006,0 30px 80px #ff00004d,0 40px 100px #f003}.taillight-strip.active .taillight-glow{background:linear-gradient(90deg,transparent 0%,rgba(255,0,0,.7) 10%,rgba(255,0,0,1) 20%,rgba(255,50,50,1) 30%,rgba(255,50,50,1) 70%,rgba(255,0,0,1) 80%,rgba(255,0,0,.7) 90%,transparent 100%);box-shadow:inset 0 0 30px red,inset 0 0 50px #ff6464cc,0 0 40px #f00c,0 0 60px #f009;animation:taillightPulse 2s ease-in-out infinite}@keyframes taillightPulse{0%,to{opacity:1;box-shadow:inset 0 0 30px red,inset 0 0 50px #ff6464cc,0 0 40px #f00c,0 0 60px #f009}50%{opacity:.9;box-shadow:inset 0 0 40px red,inset 0 0 60px #ff6464,0 0 50px red,0 0 80px #f00c}}.transmission-control-wrapper{position:absolute;left:50%;transform:translate(-50%);top:400px;width:400px;z-index:100}.transmission-control{width:100%;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:.75rem 1rem;box-shadow:0 8px 32px #0006}.transmission-mode-selector{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.mode-button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .4rem;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:8px;color:#ccc;cursor:pointer;transition:all .2s ease;font-family:inherit}.mode-button:hover{background:#ffffff1a;border-color:#fff3;transform:translateY(-2px)}.mode-button.active{background:#22c55e33;border-color:#22c55e;color:#22c55e;box-shadow:0 0 20px #22c55e4d}.mode-label{font-size:1.5rem;font-weight:700;line-height:1}.mode-button.active .mode-label{color:#22c55e}.clear-fault-button{color:#f66!important;border-color:#ff44444d!important}.clear-fault-button:hover{background:#ff444426!important;border-color:#ff444480!important}.clear-fault-button .mode-label{color:#f66}.clear-fault-button:hover{background:#f443;border-color:#f44;color:#f44;box-shadow:0 0 15px #f446;transform:translateY(-1px)}.clear-fault-button:active{transform:translateY(0)}.engine-control-wrapper{position:absolute;z-index:100;perspective:200px;perspective-origin:center;transform-style:preserve-3d;transition:all .5s ease}.engine-control-wrapper.engine-center{left:50%;top:50%;transform:translate(-50%,-50%)}.engine-control-wrapper.engine-bottom-right{position:absolute;right:20px;bottom:20px;left:auto;top:auto;transform:none;z-index:1000}.engine-button.starting .engine-light{animation:lightStartGlow 1.5s ease-in-out}@keyframes lightStartGlow{0%,to{background-color:#f9ea1a;box-shadow:0 0 11px 3px #c94a29 inset,0 0 32px 6px #c77713,0 0 100px #fff}30%{background-color:#fffb1a;box-shadow:0 0 15px 5px #c94a29 inset,0 0 50px 10px #c77713,0 0 150px #fff}60%{background-color:#ffff1a;box-shadow:0 0 20px 7px #c94a29 inset,0 0 70px 15px #c77713,0 0 200px #fff}}.engine-outer-black{background-color:#020202d9;border-radius:50%;width:150px;height:150px;box-shadow:1px 2px 1px #a0a0a0b3,-1px -1px 1px #555555b3;transform-style:preserve-3d;position:relative}.engine-outer-iron{background:linear-gradient(135deg,#4c4c4e,#414141 34%,#6a6a6a 55%,#212121);width:145px;height:145px;margin-left:2.5px;margin-top:2.5px;border-radius:50%;box-shadow:1px 1px 4px #8a8787ad inset;overflow:hidden;position:relative;transform:translateZ(3px);transform-style:preserve-3d}.engine-inner-black{width:130px;height:130px;background-color:#1e1e1e;position:absolute;top:7.5px;left:7.5px;border-radius:50%;box-shadow:3px 3px 1px 1px #505050 inset,1px -1px 1px 1px #e6e6e6 inset}.engine-inner-black-2{width:120px;height:120px;border-radius:50%;margin-left:5px;margin-top:5px;background-color:#101010;border:1px solid rgba(94,94,94,.7);box-shadow:-2px -2px 1px #a8a8a8cc inset;transform:translateZ(5px);position:relative}.engine-inner-black-3{width:115px;height:115px;margin-top:2.5px;margin-left:2.5px;background-color:#252525;border-radius:50%;border:1px solid #1c1c1c;box-sizing:border-box;box-shadow:-2px 3px 1px #5f5f5f inset;position:relative}.engine-glare{width:110px;height:125px;border-radius:50%;background-color:#fff;margin-left:17.5px;transform:translateY(-25px);box-shadow:0 0 25px 18.5px #fff;position:absolute;pointer-events:none;opacity:.3}.engine-button{-webkit-tap-highlight-color:transparent;background:#666;border-radius:50%;width:112.5px;height:112.5px;margin-left:1.25px;margin-top:1.25px;border:0;transition:all .1s;cursor:pointer;box-shadow:0 0 5px 1.5px #000 inset,0 -25px 50px #000c inset,0 15px 30px #000c inset;box-sizing:border-box;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:sans-serif;text-transform:uppercase;font-weight:700;color:#212121;transition:all .6s}.engine-button:focus{outline:none}.engine-button:active{box-shadow:0 0 6px 2.5px #000 inset,0 -30px 50px #000c inset,0 25px 30px #000c inset;padding-top:6.5px;background-position-y:3.25px}.engine-light{width:17.5px;height:7.5px;margin:0 auto 12.5px;background-color:#212121;border-radius:3.5px;border:1px solid #1b1b1b;transition:all .6s}.engine-button.active .engine-light{background-color:#f9ea1a;border:1px solid #923C14;box-shadow:0 0 11px 3px #c94a29 inset,0 0 32px 6px #c77713,0 0 100px #fff}.engine-button span{font-family:sans-serif;text-transform:uppercase;font-weight:700;font-size:15px;color:#212121;transition:all .6s;line-height:1.2}.engine-button.active span{color:#c5dea1;text-shadow:0 0 7.5px #8CA579,0 0 1px #fff}.engine-button span:first-of-type{font-size:10px}.rotary-dial-container{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem 0}.rotary-dial-label{font-size:.65rem;color:#ffffff80;font-weight:400;text-transform:uppercase;letter-spacing:.1em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.rotary-dial{position:relative;width:80px;height:80px;border-radius:50%;background:#ffffff05;border:1px solid rgba(255,255,255,.08);cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;transition:all .15s ease;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.rotary-dial:hover{background:#ffffff0a;border-color:#ffffff1f}.rotary-dial:active{background:#ffffff0f}.rotary-dial-face{position:relative;width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center}.rotary-dial-indicator{position:absolute;width:100%;height:100%;transform-origin:center;transition:transform .2s ease}.rotary-dial-pointer{position:absolute;top:8px;left:50%;transform:translate(-50%);width:3px;height:12px;background:#fffc;border-radius:2px;box-shadow:0 0 4px #ffffff80}.rotary-dial-center{position:relative;z-index:2;width:50px;height:50px;border-radius:50%;background:#0006;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center}.rotary-dial-value{font-size:.75rem;font-weight:500;color:#ffffffe6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.rotary-dial-marks{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;pointer-events:none}.rotary-dial-mark{position:absolute;top:4px;left:50%;width:1px;height:6px;background:#ffffff4d;transform-origin:center 40px;margin-left:-.5px}.vehicle-control-panel{position:absolute;right:20px;top:50%;transform:translateY(-50%);width:200px;background:#141419d9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:.5px solid rgba(255,255,255,.06);border-radius:12px;padding:.75rem;box-shadow:0 4px 24px #0006,inset 0 1px #ffffff0d;z-index:100;display:flex;flex-direction:column;max-height:80vh}.control-panel-header{margin-bottom:.5rem;text-align:center;padding-bottom:.5rem;border-bottom:.5px solid rgba(255,255,255,.05)}.control-panel-header h3{margin:0;font-size:.7rem;font-weight:400;color:#ffffff80;text-transform:uppercase;letter-spacing:.15em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.control-panel-tabs{display:flex;gap:.2rem;margin-bottom:.75rem;flex-wrap:wrap}.control-tab{flex:1;padding:.35rem .4rem;background:transparent;border:.5px solid rgba(255,255,255,.08);border-radius:6px;color:#fff9;font-size:.65rem;font-weight:400;cursor:pointer;transition:all .15s ease;text-align:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative}.control-tab:hover{background:#ffffff0a;color:#fffc}.control-tab.active{background:#ffffff1a;border-color:#ffffff26;color:#fffffff2}.control-panel-content{flex:1;overflow-y:auto;min-height:0}.control-section{display:flex;flex-direction:column;gap:.75rem}.control-section h4{margin:0 0 .5rem;font-size:.65rem;font-weight:400;color:#ffffff59;text-transform:uppercase;letter-spacing:.12em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.control-buttons{display:flex;flex-direction:column;gap:.4rem}.control-button{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;background:#ffffff05;border:.5px solid rgba(255,255,255,.08);border-radius:8px;color:#ffffffbf;font-size:.75rem;font-weight:400;cursor:pointer;transition:all .15s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-align:left;position:relative}.control-button:hover{background:#ffffff0d;border-color:#ffffff1f;color:#ffffffe6}.control-button.active{background:#ffffff14;border-color:#fff3;color:#22c55e}.button-icon{flex-shrink:0;color:inherit;opacity:.7;stroke-width:1.5;transition:opacity .15s ease}.control-button:hover .button-icon{opacity:.9}.control-button.active .button-icon{opacity:1}.button-label{flex:1}.control-panel-content::-webkit-scrollbar{width:0px;display:none}.control-panel-content{scrollbar-width:none;-ms-overflow-style:none}.windshield-wiper-container{position:absolute;top:400px;left:36%;transform:translate(-50%);width:400px;height:2px;pointer-events:none;z-index:150;overflow:visible}.wiper-blade{position:absolute;width:150px;height:3px;background:linear-gradient(90deg,transparent 0%,rgba(150,150,150,.7) 10%,rgba(180,180,180,.9) 50%,rgba(150,150,150,.7) 90%,transparent 100%);border-radius:2px;box-shadow:0 0 8px #c8c8c880,0 0 15px #c8c8c84d;transform-origin:right center;right:0;top:50%;transform:translateY(-50%);animation:wiperSweep 0s linear infinite}@keyframes wiperSweep{0%{transform:translateY(-50%) rotate(0);opacity:.8}25%{opacity:1}50%{transform:translateY(-50%) rotate(180deg);opacity:1}75%{opacity:1}to{transform:translateY(-50%) rotate(0);opacity:.8}}.dashboard-view{position:relative;width:100%;height:100vh;background:#000;overflow:hidden;display:flex;font-family:Roboto,BlinkMacSystemFont,-apple-system,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dashboard{display:flex;width:100%;min-height:100vh}.dashboard-body{display:flex;width:100%;align-items:center;justify-content:center}.dashboard-body .container{position:relative;display:block;width:1400px;height:500px;z-index:99}.info-top{display:block;width:740px;height:80px;position:absolute;left:330px;top:0}.map{display:block;width:1200px;height:300px;position:absolute;top:85px;left:100px}.info-map{display:block;width:460px;height:220px;position:absolute;top:90px;left:475px}.info-bottom{display:block;width:460px;height:200px;position:absolute;top:310px;left:475px}.rpm-gauge-wrapper{display:block;width:400px;height:400px;position:absolute;left:80px;top:80px;z-index:50}.speed-gauge-wrapper{display:block;width:400px;height:400px;position:absolute;top:80px;right:70px;z-index:50}.speed-gauge,.rpm-gauge{width:100%;height:100%}.scene-dashboard-wrapper.dashboard-blurred{filter:blur(8px) brightness(.3);transition:filter .3s ease;pointer-events:none}.scene-dashboard-wrapper:not(.dashboard-blurred){filter:blur(0) brightness(1);transition:filter .3s ease}.dashboard-off{display:flex;align-items:center;justify-content:center;background:#000}.dashboard-off-screen{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at center,#1a1a1a,#000);transition:background 1.5s ease}.dashboard-on{animation:dashboardFadeIn .5s ease-in}@keyframes dashboardFadeIn{0%{opacity:0}to{opacity:1}}.dashboard-view.interior-lights-on{position:relative}.dashboard-view.interior-lights-on:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center top,rgba(255,235,59,.25) 0%,rgba(255,235,59,.15) 20%,rgba(255,235,59,.08) 40%,rgba(255,235,59,.03) 60%,transparent 80%);pointer-events:none;z-index:10;transition:opacity .3s ease}.dashboard-view.interior-lights-on .dashboard{filter:brightness(1.15);transition:filter .3s ease}.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.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.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-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:0}.form-input:focus,.form-select:focus{outline:none;border-color:#06b6d4;box-shadow:0 0 0 2px #06b6d426}.btn-primary{background:#0e7490!important;color:#fff!important}.btn-primary:hover:not(:disabled){background:#155e75!important}.btn-secondary{background:#0e7490;color:#fff}.btn-secondary:hover:not(:disabled){background:#155e75}.button-group .btn{flex:1}.button-group .btn-primary{background:#0e7490!important;color:#fff!important}.button-group .btn-primary:hover:not(:disabled){background:#155e75!important}.info-box{padding:.375rem;background:#0e1113;border:1px solid #2a2b2e;border-radius:6px;font-size:.5625rem;color:#9fb0c7;line-height:1.4}.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}.service-name{font-size:.6875rem;font-weight:600;color:#e8eef8;line-height:1.3}.service-description{font-size:.5625rem;color:#9fb0c7;line-height:1.3;margin-top:.125rem}.param-label{font-size:.5625rem;color:#e8eef8;font-weight:500}.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;padding:.25rem .375rem;font-size:.6875rem;min-height:1.5rem}.queue-item-content{display:flex;align-items:center;gap:.375rem;flex:1}.queue-item-text{font-size:.6875rem;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}.attack-progress-alert{padding:.875rem;border-radius:8px;display:flex;flex-direction:column;gap:.75rem;background:linear-gradient(135deg,#121416f2,#0e1113fa);border:1px solid rgba(42,43,46,.8);box-shadow:0 4px 12px #0000004d,0 0 0 1px #ffffff0d inset;position:relative;overflow:hidden}.attack-progress-alert:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,currentColor,transparent);opacity:.3;animation:pulse-glow 2s ease-in-out infinite}.attack-progress-alert.attack-flood{border-color:#ef444466;box-shadow:0 4px 12px #ef444426,0 0 0 1px #ef44441a inset}.attack-progress-alert.attack-flood:before{color:#ef4444}.attack-progress-alert.attack-spoof{border-color:#f59e0b66;box-shadow:0 4px 12px #f59e0b26,0 0 0 1px #f59e0b1a inset}.attack-progress-alert.attack-spoof:before{color:#f59e0b}.attack-progress-alert.attack-busoff{border-color:#ec489966;box-shadow:0 4px 12px #ec489926,0 0 0 1px #ec48991a inset}.attack-progress-alert.attack-busoff:before{color:#ec4899}.attack-progress-alert.attack-replay{border-color:#8b5cf666;box-shadow:0 4px 12px #8b5cf626,0 0 0 1px #8b5cf61a inset}.attack-progress-alert.attack-replay:before{color:#8b5cf6}@keyframes pulse-glow{0%,to{opacity:.2}50%{opacity:.5}}.attack-progress-header{display:flex;align-items:flex-start;gap:.75rem}.attack-icon-wrapper{width:2.5rem;height:2.5rem;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #0000004d;position:relative;overflow:hidden}.attack-icon-wrapper:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 70%);animation:icon-shine 3s ease-in-out infinite}@keyframes icon-shine{0%,to{transform:translate(-50%,-50%) rotate(0);opacity:0}50%{transform:translate(-50%,-50%) rotate(180deg);opacity:1}}.attack-icon{width:1.25rem;height:1.25rem;color:#fff;z-index:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.attack-header-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.attack-title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.attack-title{font-size:.8125rem;font-weight:700;color:#fff;letter-spacing:.01em}.attack-status-badge{padding:.125rem .5rem;border-radius:4px;font-size:.625rem;font-weight:600;background:#ffffff1a;color:#e8eef8;border:1px solid rgba(255,255,255,.15);text-transform:uppercase;letter-spacing:.05em}.attack-subtitle{font-size:.625rem;color:#9fb0c7;font-weight:500}.attack-progress-container{display:flex;align-items:center;gap:.75rem}.attack-progress-bar{flex:1;height:.5rem;background:#2a2b2e99;border-radius:4px;overflow:hidden;position:relative;box-shadow:0 1px 3px #0000004d inset}.attack-progress-fill{height:100%;border-radius:4px;position:relative;transition:width .4s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:0 0 8px #0006}.attack-progress-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s ease-in-out infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.attack-progress-text{font-size:.6875rem;font-weight:700;color:#e8eef8;min-width:2.5rem;text-align:right;font-variant-numeric:tabular-nums}.attack-stats{display:flex;gap:1rem;padding-top:.5rem;border-top:1px solid rgba(42,43,46,.6)}.attack-stat{display:flex;align-items:center;gap:.375rem;font-size:.625rem}.stat-label{color:#9fb0c7;font-weight:500}.stat-value{color:#fff;font-weight:700;font-variant-numeric:tabular-nums}.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}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;min-width:320px;max-width:480px;padding:14px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;border-left:4px solid;pointer-events:auto;animation:slideIn .3s ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-content{display:flex;align-items:center;gap:12px;flex:1}.toast-icon{flex-shrink:0;width:20px;height:20px}.toast-message{font-size:14px;line-height:1.5;color:#1f2937;word-wrap:break-word}.toast-close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;margin-left:12px;color:#6b7280;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.toast-close:hover{background-color:#0000000d;color:#1f2937}.toast-close:active{background-color:#0000001a}.toast-error{background:#fef2f2;border-left-color:#ef4444;color:#991b1b}.toast-error .toast-icon{color:#ef4444}.toast-error .toast-message{color:#991b1b}.toast-warning{background:#fffbeb;border-left-color:#f59e0b;color:#92400e}.toast-warning .toast-icon{color:#f59e0b}.toast-warning .toast-message{color:#92400e}.toast-success{background:#f0fdf4;border-left-color:#22c55e;color:#166534}.toast-success .toast-icon{color:#22c55e}.toast-success .toast-message{color:#166534}.toast-info{background:#eff6ff;border-left-color:#3b82f6;color:#1e40af}.toast-info .toast-icon{color:#3b82f6}.toast-info .toast-message{color:#1e40af}@media (prefers-color-scheme: dark){.toast{background:#1f2937}.toast-error{background:#7f1d1d;border-left-color:#ef4444}.toast-error .toast-message{color:#fecaca}.toast-warning{background:#78350f;border-left-color:#f59e0b}.toast-warning .toast-message{color:#fde68a}.toast-success{background:#14532d;border-left-color:#22c55e}.toast-success .toast-message{color:#bbf7d0}.toast-info{background:#1e3a8a;border-left-color:#3b82f6}.toast-info .toast-message{color:#bfdbfe}.toast-close{color:#9ca3af}.toast-close:hover{background-color:#ffffff1a;color:#f3f4f6}}: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)}}
