:root{--bg-app: #f1f5f9;--bg-card: #ffffff;--bg-panel: rgba(255, 255, 255, .85);--bg-tafel: #f4f8fd;--border-tafel: #cbd5e1;--grid-dot: #94a3b8;--grid-line: #e2e8f0;--primary: #0284c7;--primary-light: #e0f2fe;--primary-dark: #0369a1;--primary-glow: rgba(2, 132, 199, .25);--accent-amber: #f59e0b;--accent-amber-glow: rgba(245, 158, 11, .35);--accent-emerald: #10b981;--accent-red: #ef4444;--accent-red-light: #fee2e2;--text-main: #0f172a;--text-muted: #64748b;--text-light: #94a3b8;--text-inverse: #ffffff;--border-light: #e2e8f0;--border-medium: #cbd5e1;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .03);--shadow-tafel: inset 0 2px 10px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none}.hidden{display:none!important}.lucide,[data-lucide]{display:inline-block;vertical-align:middle;stroke-width:2px;flex-shrink:0}.tool-btn .lucide{width:20px;height:20px}.tool-btn-icon .lucide{width:18px;height:18px}.sidebar-menu-icon.lucide,.sidebar-menu-icon svg{width:18px;height:18px;color:var(--primary)}.sidebar-toggle-btn .lucide,.sidebar-expand-tab .lucide{width:16px;height:16px}.challenge-hud-icon .lucide,.challenge-hud-icon svg,.editor-hud-badge .lucide,.editor-hud-badge svg{width:16px;height:16px}.targets-icon .lucide,.limit-icon .lucide,.coords-badge-icon .lucide{width:14px;height:14px}.challenge-hud-btn .lucide,.editor-hud-btn .lucide{width:13px;height:13px}.mode-badge-icon.lucide,.mode-badge-icon svg,.mode-badge-icon{width:14px;height:14px;color:currentColor;margin-right:4px}.info-panel-icon .lucide,.info-panel-icon svg,.challenge-modal-icon .lucide,.challenge-modal-icon svg,.level-editor-modal-icon .lucide,.level-editor-modal-icon svg{width:20px;height:20px}.info-panel-close-btn .lucide,.challenge-modal-close-btn .lucide{width:16px;height:16px}.info-accordion-icon .lucide,.info-accordion-icon svg{width:15px;height:15px;color:var(--primary)}.preset-pill-btn .lucide{width:14px;height:14px;margin-right:4px;vertical-align:-2px}.btn-create-custom-level .btn-icon.lucide,.btn-import-custom-level .btn-icon.lucide{width:16px;height:16px;margin-right:6px}html,body{width:100%;height:100%;overflow:hidden;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased}.philab-app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.app-header{height:64px;background:var(--bg-card);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:500;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .3s cubic-bezier(.16,1,.3,1),border-color .3s ease}.app-header.mode-free{background:linear-gradient(90deg,#f0f7ff,#e0f2fe);border-bottom-color:#bae6fd}.app-header.mode-challenge{background:linear-gradient(90deg,#fff7ed,#ffedd5);border-bottom-color:#fed7aa}.app-header.mode-editor{background:linear-gradient(90deg,#fff1f2,#ffe4e6);border-bottom-color:#fecdd3}.brand{display:flex;align-items:center;gap:10px;user-select:none;-webkit-user-select:none}.brand-home-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light);color:var(--text-muted);text-decoration:none;box-shadow:0 1px 3px #0f172a0f;transition:all .2s cubic-bezier(.16,1,.3,1);flex-shrink:0;cursor:pointer}.brand-home-btn .lucide{width:18px;height:18px;stroke-width:2.2;transition:transform .2s ease,color .2s ease}.brand-home-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark);box-shadow:0 2px 6px var(--primary-glow);transform:translateY(-1px)}.brand-home-btn:hover .lucide{transform:scale(1.08);color:var(--primary-dark)}.brand-home-btn:active{transform:translateY(0);box-shadow:0 1px 2px #0f172a14}.brand-home-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.brand-logo-img{height:40px;width:40px;object-fit:cover;border-radius:var(--radius-md);box-shadow:0 2px 8px #0f172a1a;display:block;flex-shrink:0}.brand-text{display:flex;align-items:baseline}.brand-name{font-size:1.65rem;line-height:1;display:flex;align-items:baseline}.brand-phi{color:#000;font-weight:800;font-family:var(--font-sans);letter-spacing:-.03em}.brand-lab{color:#000;font-weight:400;font-family:Great Vibes,Alex Brush,Dancing Script,Brush Script MT,Segoe Script,cursive;font-size:1em;margin-left:2px;letter-spacing:.02em;line-height:.8}.toolbar{display:flex;align-items:center;gap:10px;background:#f8fafc;padding:6px 10px;border-radius:var(--radius-lg);border:1px solid var(--border-light)}.tool-group{display:flex;align-items:center;gap:6px}.tool-btn{display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-main);font-family:var(--font-sans);font-size:.88rem;font-weight:500;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative}.tool-btn:hover{background:var(--bg-card);border-color:var(--border-medium);box-shadow:var(--shadow-sm);color:var(--primary-dark)}.tool-btn.active{background:var(--primary);color:#fff;border-color:var(--primary-dark);box-shadow:0 2px 8px var(--primary-glow)}.tool-btn.active svg{stroke:#fff}.tool-btn .shortcut{font-family:var(--font-mono);font-size:.7rem;padding:2px 5px;background:#0000000f;border-radius:4px;opacity:.75}.tool-btn.active .shortcut{background:#ffffff40;color:#fff}.tool-btn.danger-hover:hover{background:var(--accent-red-light);color:var(--accent-red);border-color:#fca5a5}.tool-btn.danger-hover.active{background:var(--accent-red);color:#fff;border-color:#dc2626;box-shadow:0 2px 8px #ef44444d}.tool-divider{width:1px;height:24px;background:var(--border-medium);margin:0 4px}.tool-btn-icon{width:34px;height:34px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.tool-btn-icon:hover{background:var(--bg-card);border-color:var(--border-medium);color:var(--text-main);box-shadow:var(--shadow-sm)}.tool-btn-icon.danger-text:hover{background:var(--accent-red-light);color:var(--accent-red)}.tool-btn-icon.sim-toggle-btn{color:var(--accent-emerald, #10b981)}.tool-btn-icon.sim-toggle-btn .icon-play{display:none}.tool-btn-icon.sim-toggle-btn .icon-pause{display:inline-flex}.tool-btn-icon.sim-toggle-btn:hover{background:#10b9811f;border-color:#10b98159;color:#059669;box-shadow:0 0 8px #10b98133}.tool-btn-icon.sim-toggle-btn.paused{color:#f59e0b;background:#f59e0b14;border-color:#f59e0b40}.tool-btn-icon.sim-toggle-btn.paused .icon-play{display:inline-flex}.tool-btn-icon.sim-toggle-btn.paused .icon-pause{display:none}.tool-btn-icon.sim-toggle-btn.paused:hover{background:#f59e0b2e;border-color:#f59e0b73;color:#d97706;box-shadow:0 0 8px #f59e0b40}.header-settings-dropdown{position:relative;display:flex;align-items:center;z-index:600}.header-settings-btn{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border-medium);background:#f8fafc;color:var(--text-main);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);outline:none}.header-settings-btn:hover{background:#fff;border-color:var(--primary);color:var(--primary-dark);box-shadow:0 4px 12px #0284c726;transform:translateY(-1px)}.header-settings-btn:active{transform:translateY(0)}.header-settings-btn.active,.header-settings-btn[aria-expanded=true]{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark)}.header-settings-btn svg{transition:transform .3s ease}.header-settings-btn:hover svg{transform:rotate(45deg)}.header-settings-menu{position:absolute;top:calc(100% + 10px);right:0;width:280px;background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 10px 30px #0f172a1f;z-index:600;overflow:hidden;animation:settingsMenuFadeIn .2s cubic-bezier(.16,1,.3,1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@keyframes settingsMenuFadeIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.settings-menu-header{padding:12px 16px 10px;background:#f8fafc;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.settings-menu-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.settings-menu-items{padding:8px;display:flex;flex-direction:column;gap:4px}.settings-menu-divider{height:1px;background:var(--border-light);margin:4px 6px}.settings-menu-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid transparent;background:#fff;cursor:pointer;text-align:left;transition:all .15s ease;user-select:none;-webkit-user-select:none}.settings-menu-item:hover{background:#f8fafc;border-color:var(--border-light)}.settings-menu-item .menu-item-left{display:flex;align-items:center;gap:10px;min-width:0}.settings-menu-item .menu-item-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:#f0fdf4;border:1px solid #bbf7d0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-menu-item .menu-item-icon.icon-action{background:#f0f9ff;border-color:#bae6fd;color:var(--primary)}.settings-menu-item:hover .menu-item-icon.icon-action{background:var(--primary-light);border-color:#7dd3fc;color:var(--primary-dark)}.settings-menu-item .icon-light-on{display:block;stroke:#eab308}.settings-menu-item .icon-light-off{display:none;stroke:#38bdf8}.settings-menu-item .menu-item-info{display:flex;flex-direction:column}.settings-menu-item .menu-item-title{font-size:.84rem;font-weight:600;color:var(--text-main)}.settings-menu-item .menu-item-desc{font-size:.72rem;color:var(--text-muted);margin-top:1px}.settings-menu-item .menu-item-switch{display:flex;align-items:center;flex-shrink:0}.settings-menu-item .menu-switch-plate{width:36px;height:20px;background:var(--primary);border-radius:10px;position:relative;transition:background-color .25s ease;display:block}.settings-menu-item .menu-switch-rocker{width:16px;height:16px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transform:translate(16px);transition:transform .25s cubic-bezier(.34,1.56,.64,1),background-color .2s ease;box-shadow:0 1px 3px #0003}.settings-menu-item.dark-mode-active .menu-item-icon{background:#0f172a;border-color:#334155}.settings-menu-item.dark-mode-active .icon-light-on{display:none}.settings-menu-item.dark-mode-active .icon-light-off{display:block}.settings-menu-item.dark-mode-active .menu-switch-plate{background:#cbd5e1}.settings-menu-item.dark-mode-active .menu-switch-rocker{transform:translate(0);background:#fff}.workspace-container{display:flex;flex:1;height:calc(100vh - 64px);overflow:hidden;position:relative}.sidebar{width:300px;min-width:300px;max-width:300px;height:100%;max-height:100%;min-height:0;background:#fff;border-right:1px solid var(--border-medium);display:flex;flex-direction:column;z-index:20;box-shadow:2px 0 8px #0f172a0a;overflow:hidden;transition:width .24s cubic-bezier(.4,0,.2,1),min-width .24s cubic-bezier(.4,0,.2,1),opacity .2s ease;position:relative}.sidebar.collapsed{width:0!important;min-width:0!important;max-width:0!important;opacity:0;pointer-events:none;border-right:none}.sidebar-header{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border-bottom:1px solid var(--border-light);flex-shrink:0}.sidebar-header-left{display:flex;align-items:center;gap:8px}.sidebar-menu-icon{font-size:1rem}.sidebar-header h2{font-size:.92rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-main);margin:0}.sidebar-toggle-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-light);border-radius:3px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.sidebar-toggle-btn:hover{background:#e2e8f0;color:var(--text-main);border-color:var(--border-medium)}.sidebar-search{margin:10px 12px 8px;position:relative;display:flex;align-items:center;flex-shrink:0}.sidebar-search svg{position:absolute;left:10px;color:var(--text-muted);pointer-events:none}.sidebar-search input{width:100%;padding:6px 10px 6px 32px;font-family:var(--font-sans);font-size:.82rem;border:1px solid var(--border-medium);border-radius:3px;background:#f8fafc;color:var(--text-main);outline:none;transition:all .15s ease}.sidebar-search input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 2px var(--primary-glow)}.category-accordion{flex:1 1 0;min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden;padding:6px 10px 24px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:#94a3b8 #f1f5f9}.category-accordion::-webkit-scrollbar{width:7px}.category-accordion::-webkit-scrollbar-track{background:#f8fafc;border-radius:4px}.category-accordion::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;border:1px solid #f1f5f9}.category-accordion::-webkit-scrollbar-thumb:hover{background:#94a3b8}.category-section{border:1px solid var(--border-light);border-radius:4px;background:#fff;overflow:hidden;flex-shrink:0;transition:border-color .15s ease}.category-section.expanded{border-color:var(--border-medium);box-shadow:0 1px 3px #0f172a0a}.category-header{width:100%;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border:none;cursor:pointer;font-family:var(--font-sans);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);text-align:left;border-bottom:1px solid transparent;transition:background .15s ease,color .15s ease}.category-section.expanded .category-header{background:#f1f5f9;color:var(--text-main);border-bottom-color:var(--border-light)}.category-header:hover{background:#e2e8f0;color:var(--text-main)}.category-title{display:flex;align-items:center;gap:8px}.category-icon{font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;color:var(--primary);width:18px;height:18px}.category-icon .lucide,.category-icon svg{width:17px;height:17px}.accordion-arrow{color:var(--text-muted);font-size:.78rem;transition:transform .15s ease;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.accordion-arrow .lucide,.accordion-arrow svg{width:15px;height:15px}.category-section.expanded .accordion-arrow{transform:rotate(0)}.category-section:not(.expanded) .accordion-arrow{transform:rotate(-90deg)}.category-items{padding:8px;display:flex;flex-direction:column;gap:6px}.category-section:not(.expanded) .category-items{display:none}.category-accordion.is-searching{gap:6px}.category-accordion.is-searching .category-section{border:none;background:transparent;box-shadow:none;border-radius:0}.category-accordion.is-searching .category-header{display:none!important}.category-accordion.is-searching .category-items{display:flex!important;padding:0;gap:6px}.badge-coming-soon{font-size:.62rem;background:#e2e8f0;color:#64748b;padding:1px 5px;border-radius:2px;font-weight:600;margin-left:auto;margin-right:6px;text-transform:none}.category-placeholder{font-size:.75rem;color:var(--text-muted);padding:10px;background:#f8fafc;border-radius:3px;border:1px dashed var(--border-medium);text-align:center;line-height:1.35}.component-card{display:flex;align-items:center;gap:10px;padding:6px 8px;background:#fff;border:1px solid var(--border-light);border-left:3px solid #cbd5e1;border-radius:3px;cursor:grab;transition:all .12s ease;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;touch-action:pan-y}.component-card:hover{background:#f8fafc;border-color:var(--border-medium);border-left-color:var(--primary);box-shadow:0 1px 4px #0000000d;transform:translate(2px)}.component-card:active{cursor:grabbing;background:#f1f5f9}.component-card.dragging{opacity:.4;border-style:dashed}.component-card-preview{width:42px;height:42px;border-radius:2px;background:#f8fafc;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-light);flex-shrink:0;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.component-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s ease;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}.component-card:hover .component-img{transform:scale(1.05)}.component-card-info{display:flex;flex-direction:column;flex:1;min-width:0}.component-card-title{font-weight:600;font-size:.82rem;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.component-card-desc{font-size:.69rem;color:var(--text-muted);line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorite-star-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#cbd5e1;padding:4px;border-radius:4px;cursor:pointer;transition:all .15s ease;flex-shrink:0}.favorite-star-btn svg,.favorite-star-btn .lucide{width:16px;height:16px;stroke:currentColor;fill:transparent;transition:all .15s ease}.favorite-star-btn:hover{color:#eab308;background:#eab3081f;transform:scale(1.15)}.favorite-star-btn.is-favorite{color:#eab308}.favorite-star-btn.is-favorite svg,.favorite-star-btn.is-favorite .lucide{fill:#facc15;stroke:#ca8a04}.favorite-category-icon{color:#ca8a04!important}.favorite-category-icon svg,.favorite-category-icon .lucide{fill:#facc15;stroke:#ca8a04}#category-section-favorites{border-color:#eab30859}#category-section-favorites .category-header{background:#fefce8;color:#854d0e}#category-section-favorites .category-header:hover{background:#fef9c3}#category-section-favorites.expanded{border-color:#eab308a6;box-shadow:0 1px 4px #eab30826}#category-section-favorites.expanded .category-header{background:#fef08a;border-bottom-color:#eab3084d;color:#713f12}.drag-handle{display:none}.sidebar-expand-tab{position:absolute;left:0;top:14px;z-index:30;display:flex;align-items:center;gap:6px;padding:7px 12px 7px 8px;background:#fff;border:1px solid var(--border-medium);border-left:none;border-radius:0 4px 4px 0;box-shadow:2px 2px 8px #0f172a1f;color:var(--text-main);font-family:var(--font-sans);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease}.sidebar-expand-tab:hover{background:#f8fafc;color:var(--primary);box-shadow:3px 3px 12px #0f172a2e;transform:translate(2px)}.sidebar-expand-tab.hidden{display:none!important}.expand-tab-text{letter-spacing:.02em}.drag-ghost{position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);opacity:.92;filter:drop-shadow(0 10px 22px rgba(15,23,42,.35));will-change:left,top}.drag-ghost.hidden{display:none}.drag-ghost-canvas{display:block;pointer-events:none}.board-wrapper{flex:1;min-width:0;position:relative;background:var(--bg-app);padding:16px 20px 20px;display:flex;flex-direction:column;overflow:hidden}.board-frame{flex:1;position:relative;background:var(--bg-tafel);border:2px solid var(--border-tafel);border-radius:var(--radius-xl);box-shadow:var(--shadow-tafel);overflow:hidden;display:flex;transition:background-color .3s ease,border-color .3s ease}.board-wrapper.dark-mode .board-frame{background:#0f172a;border-color:#1e293b;box-shadow:inset 0 0 40px #0009,0 8px 32px #0006}#tafel-canvas{width:100%;height:100%;display:block;cursor:default}.cursor-move{cursor:default}.cursor-select,.cursor-wire{cursor:crosshair!important}.cursor-cut_wire{cursor:pointer!important}.cursor-delete{cursor:not-allowed!important}.cursor-measure{cursor:crosshair!important}.board-pause-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:6px 18px;border-radius:20px;background:#fffbebf0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(245,158,11,.45);color:#b45309;font-size:.86rem;font-weight:600;letter-spacing:.02em;box-shadow:0 6px 20px #f59e0b2e,0 2px 6px #0000000f;-webkit-user-select:none;user-select:none;cursor:pointer;transition:all .2s ease;animation:pauseBannerFadeIn .25s cubic-bezier(.16,1,.3,1)}.board-pause-banner:hover{background:#fef3c7fa;border-color:#f59e0bb3;transform:translate(-50%) translateY(1px);box-shadow:0 8px 24px #f59e0b47}.board-pause-banner .lucide,.board-pause-banner svg{width:15px;height:15px;stroke-width:2.5;color:#d97706}.board-wrapper.dark-mode .board-pause-banner{background:#292524f0;border-color:#f59e0b80;color:#fde68a;box-shadow:0 6px 22px #0000008c,0 0 12px #f59e0b2e}.board-wrapper.dark-mode .board-pause-banner:hover{background:#37302bfa;border-color:#f59e0bbf}.board-wrapper.dark-mode .board-pause-banner .lucide,.board-wrapper.dark-mode .board-pause-banner svg{color:#fbbf24}@keyframes pauseBannerFadeIn{0%{opacity:0;transform:translate(-50%,-8px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}.board-empty-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:28px 36px;border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-lg);text-align:center;max-width:440px;transition:opacity .3s ease,transform .3s ease}.board-empty-hint.hidden{opacity:0;pointer-events:none;display:none!important;transform:translate(-50%,-46%)}.hint-icon{font-size:2.2rem;margin-bottom:8px}.board-empty-hint h3{font-size:1.25rem;font-weight:700;color:var(--text-main);margin-bottom:6px}.board-empty-hint p{font-size:.88rem;color:var(--text-muted);line-height:1.45;margin-bottom:18px}.hint-action-buttons{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.btn-sample-scene{pointer-events:auto;padding:9px 16px;background:var(--primary);color:#fff;font-family:var(--font-sans);font-size:.84rem;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 2px 8px var(--primary-glow);transition:all .15s ease}.btn-sample-scene:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-glow)}.btn-sample-scene.secondary-btn{background:#0f172a;box-shadow:0 2px 8px #0f172a33}.btn-sample-scene.secondary-btn:hover{background:#1e293b;box-shadow:0 4px 12px #0f172a4d}.board-snap-toggle{position:absolute;top:16px;left:16px;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-medium);padding:6px 14px;border-radius:20px;box-shadow:0 2px 8px #0f172a14,0 1px 3px #0f172a0a;display:flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:.82rem;font-weight:600;color:var(--text-muted);cursor:pointer;z-index:10;user-select:none;-webkit-user-select:none;transition:all .15s ease;outline:none}.board-snap-toggle .snap-icon{stroke:var(--text-muted);transition:stroke .15s ease}.board-snap-toggle:hover{background:#fff;color:var(--text-main);border-color:var(--primary);box-shadow:0 4px 12px #0f172a1f;transform:translateY(-1px)}.board-snap-toggle:hover .snap-icon{stroke:var(--primary)}.board-snap-toggle:active{transform:translateY(0)}.board-snap-toggle.active{background:var(--primary);color:#fff;border-color:var(--primary-dark);box-shadow:0 2px 8px var(--primary-glow)}.board-snap-toggle.active .snap-icon{stroke:#fff}.board-snap-toggle.active:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.board-hud{position:absolute;bottom:16px;right:16px;display:flex;gap:8px;pointer-events:none;z-index:10}.hud-item{background:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border-light);padding:4px 10px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);box-shadow:var(--shadow-sm)}.hud-item.hud-item-build{font-weight:500;color:var(--text-light);border-color:#cbd5e199;background:#ffffffd1}.switch{--hue: 223;--primary: hsl(var(--hue), 90%, 50%);--trans-dur: .5s;--trans-timing: cubic-bezier(.65, 0, .35, 1);font-size:16px;width:2.75em;height:1.5em;margin:0;padding:0;position:relative;display:inline-block;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;line-height:1;box-sizing:border-box}.switch *,.switch *:before,.switch *:after{box-sizing:border-box}.switch__input{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:none;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-radius:.75em;box-shadow:0 0 0 .0625em #cbd5e1,0 .125em .5em hsla(var(--hue),10%,10%,.1);cursor:pointer;transition:background-color var(--trans-dur),box-shadow var(--trans-dur)}.switch__icon{display:block;color:hsla(var(--hue),10%,75%);pointer-events:none;position:absolute;top:.375em;left:.375em;width:.75em;height:.75em;transition:color var(--trans-dur),transform var(--trans-dur) var(--trans-timing)}.switch__icon:nth-of-type(2){right:.375em;left:auto}.switch__inner,.switch__inner-icons{border-radius:.5em;display:block;overflow:hidden;position:absolute;top:.25em;left:.25em;width:2.25em;height:1em}.switch__inner:before,.switch__inner-icons{transition:transform var(--trans-dur) var(--trans-timing);transform:translate(-1.25em)}.switch__inner:before{background-color:var(--primary);border-radius:inherit;content:"";display:block;width:100%;height:100%}.switch__inner-icons{pointer-events:none}.switch__inner-icons .switch__icon{color:#fff;top:.125em;left:.125em;transform:translate(1.25em)}.switch__inner-icons .switch__icon:nth-child(2){right:.125em;left:auto}.switch__input:checked{background-color:hsl(var(--hue),10%,10%);box-shadow:0 0 0 .0625em #38bdf8,0 0 .5em #38bdf840,0 .125em .5em #0000004d}.switch__input:checked~.switch__icon{color:hsla(var(--hue),10%,40%)}.switch__input:checked~.switch__inner:before,.switch__input:checked~.switch__inner-icons{transform:translate(1.25em)}.switch__input:not(:checked)~.switch__icon:first-of-type,.switch__input:checked~.switch__icon:nth-of-type(2){transform:rotate(360deg)}.switch__input:checked~.switch__inner-icons .switch__icon:first-of-type{transform:translate(-1.25em) rotate(-360deg)}.switch__input:checked~.switch__inner-icons .switch__icon:nth-of-type(2){transform:translate(-1.25em) rotate(360deg)}.switch__input:focus-visible{box-shadow:0 0 0 .0625em hsla(var(--hue),90%,50%,1),0 .125em .5em hsla(var(--hue),10%,10%,.1)}.switch__sr{overflow:hidden;position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.switch.board-light-switch{font-size:20px;transition:transform .2s cubic-bezier(.4,0,.2,1)}.switch.board-light-switch:hover{transform:translateY(-1px)}.board-top-right-controls{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:10px;z-index:10;-webkit-user-select:none;user-select:none}.board-bottom-left-controls{position:absolute;bottom:16px;left:16px;display:flex;align-items:center;gap:10px;z-index:10;-webkit-user-select:none;user-select:none}.board-zoom-widget{display:flex;align-items:center;gap:2px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-medium);border-radius:20px;padding:3px 6px;box-shadow:0 4px 12px #0f172a14,0 1px 3px #0f172a0a}.board-coords-badge{background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-medium);padding:5px 12px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.78rem;font-weight:600;display:flex;align-items:center;gap:6px;box-shadow:var(--shadow-sm);color:var(--text-main);transition:all .2s ease;white-space:nowrap}.board-coords-badge.active-selection{background:#f0f7fff2;border-color:#bae6fd;color:#0369a1;box-shadow:0 2px 8px #0284c726}.board-coords-badge .coords-badge-icon{font-size:.85rem}.board-coords-badge .coords-badge-text{letter-spacing:.02em}.board-mode-badge{background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-medium);padding:5px 12px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.78rem;font-weight:700;display:flex;align-items:center;gap:7px;box-shadow:var(--shadow-sm);transition:all .25s cubic-bezier(.16,1,.3,1);white-space:nowrap}.board-mode-badge .mode-badge-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.board-mode-badge.mode-free{background:#f0f7fff2;border-color:#bae6fd;color:#0369a1}.board-mode-badge.mode-free .mode-badge-dot{background:#0284c7;box-shadow:0 0 6px #0284c780}.board-mode-badge.mode-challenge{background:#fff7edf2;border-color:#fed7aa;color:#c2410c}.board-mode-badge.mode-challenge .mode-badge-dot{background:#ea580c;box-shadow:0 0 6px #ea580c80}.board-mode-badge.mode-editor{background:#fff1f2f2;border-color:#fecdd3;color:#be123c}.board-mode-badge.mode-editor .mode-badge-dot{background:#e11d48;box-shadow:0 0 6px #e11d4880}.zoom-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-main);font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .15s ease}.zoom-btn:hover{background:#e2e8f0;color:var(--primary);transform:scale(1.08)}.zoom-btn:active{transform:scale(.95);background:#cbd5e1}.zoom-level-btn{border:none;background:transparent;padding:3px 8px;border-radius:12px;font-family:var(--font-mono);font-size:.76rem;font-weight:600;color:var(--text-main);cursor:pointer;transition:all .15s ease;min-width:48px;text-align:center}.zoom-level-btn:hover{background:#e2e8f0;color:var(--primary)}.zoom-divider{width:1px;height:16px;background:var(--border-medium);margin:0 2px}.zoom-fit-btn{font-size:.95rem}.board-frame.drag-over{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-tafel)}.info-panel{width:280px;min-width:280px;max-width:280px;height:100%;max-height:100%;min-height:0;background:#fff;border-left:1px solid var(--border-medium);display:flex;flex-direction:column;z-index:20;box-shadow:-2px 0 8px #0f172a0a;overflow:hidden;position:relative;transition:width .22s ease,opacity .2s ease}.info-panel.hidden{display:none!important}.info-panel-header{height:46px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-light);background:#f8fafc;flex-shrink:0}.info-panel-title-group{display:flex;align-items:center;gap:8px}.info-panel-icon{font-size:1.05rem}.info-panel-header h3{font-size:.88rem;font-weight:700;color:var(--text-main);margin:0}.info-panel-close-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-light);border-radius:4px;font-size:.85rem;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.info-panel-close-btn:hover{background:#fee2e2;color:var(--accent-red);border-color:#fca5a5}.info-panel-content{flex:1 1 auto;min-height:0;max-height:100%;padding:16px 14px 40px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:var(--border-medium) transparent}.info-panel-content::-webkit-scrollbar{width:5px}.info-panel-content::-webkit-scrollbar-track{background:transparent}.info-panel-content::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}.info-panel-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.info-component-preview-box{width:100%;height:100px;background:#f8fafc;border:1px solid var(--border-light);border-radius:6px;display:flex;align-items:center;justify-content:center}.info-component-preview-box canvas{width:90px;height:90px}.info-component-title{font-size:1rem;font-weight:700;color:var(--text-main);margin:0}.info-component-category-badge{display:inline-block;align-self:flex-start;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:12px;background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd;text-transform:uppercase;letter-spacing:.03em}.info-section{display:flex;flex-direction:column;gap:6px;margin-top:4px}.info-section-heading{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0}.info-component-desc{font-size:.82rem;line-height:1.45;color:var(--text-main);margin:0;background:#f8fafc;padding:10px;border-radius:4px;border:1px solid var(--border-light)}.info-component-desc.no-box,.info-component-desc:has(.info-truth-table){padding:0;background:transparent;border:none}.info-truth-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border-medium);border-radius:6px;overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}.info-truth-table thead{background:#f1f5f9}.info-truth-table th{padding:7px 4px;font-size:.74rem;font-weight:700;color:var(--text-main);text-align:center;border-bottom:1.5px solid var(--border-medium);letter-spacing:.02em}.info-truth-table th .pin-hint{font-size:.6rem;font-weight:600;color:var(--text-muted);background:#e2e8f0;padding:1px 4px;border-radius:3px;margin-left:2px}.info-truth-table th.th-out{color:var(--primary-dark);border-left:1px solid var(--border-medium);background:#e0f2fe}.info-truth-table th.th-out .pin-hint{background:#bae6fd;color:#0369a1}.info-truth-table td{padding:5px 4px;text-align:center;border-bottom:1px solid var(--border-light);transition:background .15s ease}.info-truth-table tr:last-child td{border-bottom:none}.info-truth-table td.td-out{border-left:1px solid var(--border-medium);background:#f8fafc}.info-truth-table tr:hover td{background:#f8fafc}.info-truth-table tr:hover td.td-out{background:#f0f9ff}.info-truth-table tr.active-truth-row td{background:#ecfdf5!important}.info-truth-table tr.active-truth-row td.td-out{background:#d1fae5!important}.info-truth-table .logic-val{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;font-family:var(--font-mono);font-size:.82rem;font-weight:700;line-height:1}.info-truth-table .logic-val.val-0{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.info-truth-table .logic-val.val-1{background:#dcfce7;color:#15803d;border:1px solid #86efac;box-shadow:0 1px 3px #16a34a26}.info-truth-table tr.active-truth-row .logic-val.val-1{box-shadow:0 0 6px #22c55e99}.info-settings-content{background:#f8fafc;border:1px solid var(--border-light);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.setting-group{display:flex;flex-direction:column;gap:6px}.setting-label{font-size:.76rem;font-weight:700;color:var(--text-muted)}.setting-segmented-control{display:flex;background:#e2e8f0;border-radius:6px;padding:3px;gap:3px}.setting-segment-btn{flex:1;padding:6px 4px;border:none;background:transparent;border-radius:4px;font-family:var(--font-sans);font-size:.76rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.setting-segment-btn:hover{color:var(--text-main)}.setting-segment-btn.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px #0f172a24;font-weight:700}.setting-slider-container{display:flex;flex-direction:column;gap:6px}.setting-slider-header{display:flex;justify-content:space-between;align-items:center}.setting-slider-val{font-family:var(--font-mono);font-size:.76rem;font-weight:700;color:var(--primary-dark);background:var(--primary-light);padding:1px 6px;border-radius:4px}.setting-slider-input{width:100%;height:6px;border-radius:3px;background:#e2e8f0;outline:none;cursor:pointer;accent-color:var(--primary)}.setting-text-input{width:100%;padding:7px 10px;border-radius:6px;border:1.5px solid #cbd5e1;background:#fff;font-family:var(--font-mono, monospace);font-size:.82rem;font-weight:600;color:var(--text-main);outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.setting-text-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0284c726}.setting-controlled-badge{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:600;color:#0284c7;background:#e0f2fe;border:1px solid #bae6fd;border-radius:4px;padding:1px 6px;margin-left:6px;letter-spacing:.01em;text-transform:none}.setting-controlled-badge .badge-icon{font-size:.75rem}.setting-group.is-controller-overridden,.setting-slider-container.is-controller-overridden{position:relative;opacity:.58;filter:grayscale(40%);transition:opacity .2s ease,filter .2s ease;pointer-events:none;-webkit-user-select:none;user-select:none}.setting-group.is-controller-overridden .setting-label,.setting-slider-container.is-controller-overridden .setting-label{color:var(--text-muted)}.setting-group.is-controller-overridden input,.setting-group.is-controller-overridden select,.setting-group.is-controller-overridden button,.setting-slider-container.is-controller-overridden input,.setting-slider-container.is-controller-overridden button{pointer-events:none!important;cursor:not-allowed!important}.setting-slider-container.is-controller-overridden .setting-slider-val{background:#e2e8f0;color:#64748b}.setting-action-btn{width:100%;padding:8px 14px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.82rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 2px 5px #0284c740;transition:transform .1s ease,box-shadow .15s ease,filter .15s ease}.setting-action-btn:hover{filter:brightness(1.08);box-shadow:0 4px 10px #0284c759}.setting-action-btn:active{transform:scale(.98)}.info-accordion-section{border:1px solid var(--border-light);border-radius:6px;background:#fff;margin-top:6px;margin-bottom:24px;flex-shrink:0;transition:border-color .15s ease}.info-accordion-header{width:100%;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;border:none;cursor:pointer;font-family:var(--font-sans);font-weight:700;font-size:.8rem;color:var(--text-main);transition:background .15s ease}.info-accordion-header:hover{background:#f1f5f9}.info-accordion-title{display:flex;align-items:center;gap:8px}.info-accordion-icon{font-size:.95rem}.info-accordion-arrow{color:var(--text-muted);font-size:.8rem;transition:transform .2s ease}.info-accordion-section.collapsed .info-accordion-arrow{transform:rotate(-90deg)}.info-accordion-section.collapsed .info-accordion-body{display:none}.info-accordion-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border-light);background:#fafafa}.info-accordion-body::-webkit-scrollbar{width:5px}.info-accordion-body::-webkit-scrollbar-track{background:transparent}.info-accordion-body::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}.info-accordion-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.connectable-item{display:flex;align-items:center;gap:10px;padding:6px 8px;background:#fff;border:1px solid var(--border-light);border-radius:6px;cursor:grab;-webkit-user-select:none;user-select:none;transition:all .15s ease}.connectable-item:hover{background:#f8fafc;border-color:var(--primary);box-shadow:0 2px 6px #0284c71a}.connectable-item:active{cursor:grabbing}.connectable-item-preview{width:38px;height:38px;min-width:38px;min-height:38px;background:#f8fafc;border:1px solid var(--border-light);border-radius:4px;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.connectable-item-preview canvas{width:38px;height:38px}.connectable-item-info{display:flex;flex-direction:column;min-width:0}.connectable-item-name{font-size:.8rem;font-weight:600;color:var(--text-main)}.connectable-item-note{font-size:.68rem;color:var(--text-muted)}.sensor-detect-container,.sensor-ignore-container{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;border:1px solid var(--border-light);border-radius:6px;padding:6px;background:#f8fafc}.sensor-detect-container::-webkit-scrollbar,.sensor-ignore-container::-webkit-scrollbar{width:4px}.sensor-detect-container::-webkit-scrollbar-thumb,.sensor-ignore-container::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}.sensor-detect-item,.sensor-ignore-item{display:flex;align-items:center;gap:8px;padding:5px 7px;background:#fff;border:1px solid var(--border-light);border-radius:5px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .12s ease}.sensor-detect-item:hover,.sensor-ignore-item:hover{background:#f1f5f9;border-color:var(--primary)}.sensor-detect-item.detected{background:#f0fdf4;border-color:#86efac}.sensor-ignore-item.ignored{background:#fef2f2;border-color:#fca5a5}.sensor-detect-checkbox{width:15px;height:15px;accent-color:#16a34a;cursor:pointer}.sensor-ignore-checkbox{width:15px;height:15px;accent-color:#ef4444;cursor:pointer}.sensor-detect-preview,.sensor-ignore-preview{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:4px;overflow:hidden;flex-shrink:0;border:1px solid var(--border-light)}.sensor-detect-info,.sensor-ignore-info{display:flex;flex-direction:column;flex:1;min-width:0}.sensor-detect-name,.sensor-ignore-name{font-size:.74rem;font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sensor-detect-badge,.sensor-ignore-badge{font-size:.65rem;color:var(--text-muted)}.sensor-detect-item.detected .sensor-detect-badge{color:#15803d;font-weight:600}.sensor-ignore-item.ignored .sensor-ignore-badge{color:#dc2626;font-weight:600}.connectable-empty{font-size:.76rem;color:var(--text-muted);font-style:italic;padding:4px}.philab-toast{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#0f172ae6;color:#fff;padding:10px 18px;border-radius:9999px;display:flex;align-items:center;gap:10px;font-size:.85rem;font-weight:500;box-shadow:0 10px 25px -5px #0000004d,0 0 0 1px #ffffff1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;pointer-events:none;animation:toastSlideDown .25s cubic-bezier(.16,1,.3,1);transition:opacity .25s ease,transform .25s ease}.philab-toast.success{background:#064e3bf2;border:1px solid rgba(52,211,153,.3)}.philab-toast.error{background:#7f1d1df2;border:1px solid rgba(248,113,113,.3)}.philab-toast .toast-icon{font-size:1.1rem}.philab-toast .toast-msg{white-space:nowrap}@keyframes toastSlideDown{0%{opacity:0;transform:translate(-50%,-16px) scale(.95)}to{opacity:1;transform:translate(-50%) scale(1)}}.board-drag-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0284c714;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:3px dashed #0284c7;border-radius:12px;display:flex;align-items:center;justify-content:center;z-index:990;pointer-events:none;animation:overlayFadeIn .2s ease}.drag-drop-modal{background:#fffffff2;border:1px solid rgba(2,132,199,.3);box-shadow:0 20px 35px -5px #0284c733,0 0 0 1px #0284c71a;padding:24px 36px;border-radius:16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.drag-drop-icon{font-size:2.5rem;margin-bottom:4px}.drag-drop-modal h3{font-size:1.1rem;font-weight:700;color:var(--text-main)}.drag-drop-modal p{font-size:.85rem;color:var(--text-muted)}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.header-right-actions{display:flex;align-items:center;gap:12px}.header-mode-group{display:flex;align-items:center;gap:8px}.header-mode-btn{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#f8fafc;border:1px solid var(--border-medium);border-radius:20px;font-family:var(--font-sans);font-size:.82rem;font-weight:600;color:var(--text-main);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);outline:none}.header-mode-btn:hover{background:#fff;border-color:var(--primary);color:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #0284c726}.header-mode-btn:active{transform:translateY(0)}.header-mode-btn .mode-btn-icon{font-size:1rem;line-height:1}.header-mode-btn.btn-leave-mode{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.header-mode-btn.btn-leave-mode:hover{background:#dbeafe;border-color:#3b82f6;color:#1e40af;box-shadow:0 4px 12px #3b82f633}.challenge-hud{position:absolute;bottom:58px;left:50%;transform:translate(-50%);z-index:15;display:flex;align-items:center;gap:16px;background:#fffffff0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(2,132,199,.25);box-shadow:0 10px 25px -5px #0f172a24,0 0 0 1px #0284c714;padding:8px 18px;border-radius:40px;animation:hudSlideUp .3s cubic-bezier(.16,1,.3,1);max-width:90%;pointer-events:auto}@keyframes hudSlideUp{0%{opacity:0;transform:translate(-50%,16px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}.challenge-hud-main{display:flex;align-items:center;gap:12px}.challenge-hud-badge{display:flex;align-items:center;gap:6px;background:#e0f2fe;color:#0369a1;padding:4px 10px;border-radius:20px;font-size:.78rem;font-weight:700;white-space:nowrap}.challenge-hud-icon{font-size:.9rem}.challenge-hud-goal-box{display:flex;align-items:center;gap:6px}.challenge-hud-goal-box .goal-label{font-size:.72rem;font-weight:800;letter-spacing:.05em;color:var(--text-muted)}.challenge-hud-goal{font-size:.85rem;font-weight:600;color:var(--text-main);white-space:nowrap;max-width:380px;overflow:hidden;text-overflow:ellipsis}.challenge-hud-limit-box{display:flex;align-items:center;gap:5px;background:#f1f5f9;border:1px solid #cbd5e1;color:#475569;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap;transition:all .2s ease}.challenge-hud-limit-box .limit-icon{font-size:.85rem}.challenge-hud-limit-box.limit-warning{background:#fff7ed;border-color:#fdba74;color:#c2410c}.challenge-hud-limit-box.limit-reached{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.challenge-status-badge{display:flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap;transition:all .3s ease}.challenge-status-badge.status-open{background:#fffbeb;border:1px solid #fde68a;color:#b45309}.challenge-status-badge.status-completed{background:#ecfdf5;border:1px solid #6ee7b7;color:#047857;box-shadow:0 0 12px #10b98159;animation:successPop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes successPop{0%{transform:scale(.85)}50%{transform:scale(1.12)}to{transform:scale(1)}}.status-pulse-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b;box-shadow:0 0 6px #f59e0b;animation:pulse-dot 1.8s infinite ease-in-out}.challenge-hud-actions{display:flex;align-items:center;gap:6px;border-left:1px solid var(--border-light);padding-left:10px}.challenge-hud-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:16px;background:#f1f5f9;border:1px solid var(--border-medium);font-family:var(--font-sans);font-size:.76rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s ease;outline:none}.challenge-hud-btn:hover{background:#fff;border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.challenge-hud-btn:active{transform:translateY(0)}.challenge-hud-btn.btn-hud-leave{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.challenge-hud-btn.btn-hud-leave:hover{background:#fecaca;border-color:#ef4444;color:#991b1b}.sidebar-challenge-notice{margin:10px 14px 14px;padding:12px 14px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:var(--radius-md);display:flex;gap:10px;align-items:flex-start;animation:fadeIn .2s ease}.challenge-notice-icon{font-size:1.25rem;line-height:1;flex-shrink:0;margin-top:1px}.challenge-notice-content strong{display:block;font-size:.82rem;font-weight:700;color:#0369a1;margin-bottom:3px}.challenge-notice-content p{font-size:.74rem;line-height:1.35;color:#334155;margin:0}.challenge-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172a73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:modalBackdropFadeIn .2s ease}.challenge-modal-backdrop.hidden{display:none!important;pointer-events:none!important}@keyframes modalBackdropFadeIn{0%{opacity:0}to{opacity:1}}.challenge-modal-container{width:90vw;max-width:960px;height:85vh;max-height:85vh;background:#fff;border-radius:20px;box-shadow:0 25px 50px -12px #0f172a40,0 0 0 1px #0284c71f;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:10;pointer-events:auto;animation:modalZoomIn .25s cubic-bezier(.16,1,.3,1)}@keyframes modalZoomIn{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.challenge-modal-header{padding:18px 24px;background:#f8fafc;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.challenge-modal-title-group{display:flex;align-items:center;gap:14px}.challenge-modal-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#0284c7,#38bdf8);display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 4px 10px #0284c740}.challenge-modal-title{font-size:1.15rem;font-weight:700;color:var(--text-main);margin-bottom:2px}.challenge-modal-subtitle{font-size:.78rem;color:var(--text-muted)}.challenge-modal-header-right{display:flex;align-items:center;gap:12px}.challenge-completed-pill{padding:4px 12px;border-radius:20px;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;font-size:.74rem;font-weight:700}.challenge-modal-close-btn{width:32px;height:32px;border-radius:50%;background:#f1f5f9;border:1px solid var(--border-medium);display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;font-size:.9rem;transition:all .15s ease;outline:none}.challenge-modal-close-btn:hover{background:#fee2e2;border-color:#fca5a5;color:#b91c1c;transform:rotate(90deg)}.challenge-tabs-nav{display:flex;align-items:center;gap:6px;padding:8px 24px 0;background:#f8fafc;border-bottom:1px solid var(--border-medium);overflow-x:auto;scrollbar-width:thin}.challenge-tabs-nav::-webkit-scrollbar{height:4px}.challenge-tabs-nav::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}.challenge-tab-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;font-size:.88rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:transparent;border:none;border-bottom:2.5px solid transparent;border-radius:8px 8px 0 0;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0;position:relative;z-index:1}.challenge-tab-btn>*{pointer-events:none}.challenge-tab-btn i,.challenge-tab-btn svg{width:18px;height:18px;transition:transform .2s ease;flex-shrink:0}.challenge-tab-btn:not(.active) .challenge-tab-label,.challenge-tab-btn:not(.active) .challenge-tab-count{display:none}.challenge-tab-btn:hover{color:var(--text-main);background:#0284c70d}.challenge-tab-btn.active{padding:10px 16px;color:var(--primary);border-bottom-color:var(--primary);background:#fff;font-weight:700;box-shadow:0 -1px 3px #00000005}.challenge-tab-count{font-size:.72rem;font-weight:600;padding:2px 7px;border-radius:10px;background:var(--bg-hover);color:var(--text-muted);border:1px solid var(--border-light);transition:all .2s ease}.challenge-tab-btn.active .challenge-tab-count{background:#e0f2fe;color:#0284c7;border-color:#bae6fd}.challenge-modal-body{padding:20px 24px;overflow-y:auto;flex:1}.challenge-modal-list{display:flex;flex-direction:column;gap:14px}.challenge-category-group{margin-bottom:22px}.challenge-category-group:last-child{margin-bottom:6px}.challenge-category-header{display:flex;align-items:center;gap:10px;padding:6px 4px 10px;border-bottom:2px solid var(--border-light);margin-bottom:12px}.category-icon{font-size:1.15rem;line-height:1}.category-title{font-size:.96rem;font-weight:700;color:var(--text-main);margin:0;flex:1}.category-count{font-size:.76rem;font-weight:600;color:var(--text-muted);background:var(--bg-hover);padding:3px 10px;border-radius:12px;border:1px solid var(--border-light)}.challenge-category-list{display:flex;flex-direction:column;gap:10px}.challenge-list-card{background:#fff;border:1.5px solid var(--border-light);border-radius:var(--radius-lg);display:flex;flex-direction:column;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm);overflow:hidden}.challenge-list-card:hover{border-color:var(--primary);box-shadow:0 4px 14px #0284c714}.challenge-list-card.completed{border-color:#a7f3d0;background:#fff}.challenge-list-card.active-level{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light),0 6px 18px #0284c71f}.challenge-list-card.locked{opacity:.85;background:#f8fafc;border-color:#e2e8f0}.challenge-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;transition:background .15s ease}.challenge-list-card.locked .challenge-card-header,.challenge-card-header:hover{background:#f8fafc}.challenge-card-title-group{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.challenge-card-number{font-family:var(--font-mono);font-size:.82rem;font-weight:700;color:var(--primary);background:var(--primary-light);padding:3px 8px;border-radius:6px;white-space:nowrap}.challenge-card-title{font-size:.92rem;font-weight:700;color:var(--text-main);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-card-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.challenge-card-chevron{font-size:.7rem;color:var(--text-muted);transition:transform .25s ease;display:inline-block;-webkit-user-select:none;user-select:none}.challenge-list-card.expanded .challenge-card-chevron{transform:rotate(180deg)}.challenge-card-status-badge{padding:3px 10px;border-radius:20px;font-size:.74rem;font-weight:700;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}.challenge-card-status-badge .lucide,.challenge-card-status-badge svg{width:13px;height:13px}.challenge-card-status-badge.status-open{background:#fffbeb;border:1px solid #fde68a;color:#b45309}.challenge-card-status-badge.status-completed{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.challenge-card-status-badge.status-locked{background:#f1f5f9;border:1px solid #cbd5e1;color:#64748b}.challenge-card-body{display:none;padding:12px 16px 16px;border-top:1px solid var(--border-light);background:#fbfcfe;flex-direction:column;gap:10px}.challenge-list-card.expanded .challenge-card-body{display:flex!important}.challenge-card-desc{font-size:.82rem;color:#334155;line-height:1.45;margin:0}.challenge-card-meta{background:#f1f5f9;border-radius:var(--radius-md);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:.78rem}.challenge-meta-item{display:flex;align-items:center;gap:6px}.challenge-meta-item .meta-label{font-weight:700;color:var(--text-muted)}.challenge-meta-item .meta-val{color:var(--text-main);font-weight:500}.challenge-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}.challenge-reset-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:20px;font-family:var(--font-sans);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s ease;outline:none;border:1px solid #fecaca;background:#fef2f2;color:#dc2626}.challenge-reset-btn .lucide,.challenge-reset-btn svg{width:14px;height:14px}.challenge-reset-btn:hover{background:#fee2e2;border-color:#f87171;color:#b91c1c}.challenge-start-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:20px;font-family:var(--font-sans);font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s ease;outline:none;border:none}.challenge-start-btn .lucide,.challenge-start-btn svg{width:14px;height:14px}.challenge-start-btn.primary{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;box-shadow:0 4px 12px #0284c740}.challenge-start-btn.primary:hover{background:linear-gradient(135deg,#0369a1,#075985);transform:translateY(-1px);box-shadow:0 6px 16px #0284c759}.challenge-start-btn.secondary{background:#f1f5f9;border:1px solid var(--border-medium);color:var(--text-main)}.challenge-start-btn.secondary:hover{background:#e2e8f0;border-color:var(--primary);color:var(--primary-dark)}.challenge-start-btn:disabled,.challenge-start-btn.disabled{background:#e2e8f0!important;color:#94a3b8!important;border:1px solid #cbd5e1!important;box-shadow:none!important;cursor:not-allowed!important;transform:none!important}.challenge-modal-footer{padding:14px 24px;background:#f8fafc;border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;gap:12px}.challenge-modal-footer-left{display:flex;align-items:center;gap:8px}.challenge-modal-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.btn-scan-challenges{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s ease;outline:none;background:#fff;border:1.5px solid var(--border-medium);color:var(--text-main);box-shadow:var(--shadow-sm)}.btn-scan-challenges:hover{background:#f1f5f9;border-color:var(--primary);color:var(--primary-dark);box-shadow:0 3px 10px var(--primary-glow);transform:translateY(-1px)}.btn-scan-challenges:active{transform:translateY(0)}.btn-scan-challenges .btn-icon{width:16px;height:16px;color:var(--primary)}.btn-scan-challenges.scanning{opacity:.6;pointer-events:none}.btn-create-custom-level,.btn-import-custom-level{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s ease;outline:none}.btn-create-custom-level{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;border:none;box-shadow:0 4px 12px #0284c733}.btn-create-custom-level:hover{background:linear-gradient(135deg,#0369a1,#075985);transform:translateY(-1px);box-shadow:0 6px 16px #0284c74d}.btn-import-custom-level{background:#fff;border:1px solid var(--border-medium);color:var(--text-main)}.btn-import-custom-level:hover{background:#f1f5f9;border-color:var(--primary);color:var(--primary-dark)}.level-editor-hud{position:absolute;bottom:58px;left:50%;transform:translate(-50%);z-index:15;display:flex;align-items:center;gap:14px;background:#fffffff2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(2,132,199,.3);box-shadow:0 12px 28px -6px #0f172a2e,0 0 0 1px #0284c71a;padding:8px 18px;border-radius:40px;animation:hudSlideUp .3s cubic-bezier(.16,1,.3,1);max-width:95%;pointer-events:auto}.editor-hud-badge{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;padding:4px 12px;border-radius:20px;font-size:.76rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.editor-hud-divider{width:1px;height:20px;background:var(--border-medium)}.editor-hud-targets-summary{display:flex;align-items:center;gap:6px;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:4px 10px;border-radius:20px;font-size:.78rem;font-weight:600}.editor-hud-actions{display:flex;align-items:center;gap:8px}.editor-hud-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid var(--border-medium);background:#f8fafc;color:var(--text-main);outline:none}.editor-hud-btn:hover{background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px)}.editor-hud-btn.primary{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.editor-hud-btn.primary:hover{background:#dbeafe;border-color:#3b82f6;color:#1e40af}.editor-hud-btn.success{background:#f0fdf4;border-color:#86efac;color:#15803d}.editor-hud-btn.success:hover{background:#dcfce7;border-color:#4ade80;color:#166534}.editor-hud-btn.btn-hud-leave:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.level-editor-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;animation:modalFadeIn .2s ease-out}.level-editor-modal-container{background:#fff;border-radius:16px;width:100%;max-width:780px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000059,0 0 0 1px #0284c726;overflow:hidden;animation:modalPopIn .25s cubic-bezier(.16,1,.3,1)}.level-editor-modal-header{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-light);background:#f8fafc}.level-editor-header-title-group{display:flex;align-items:center;gap:12px}.level-editor-modal-icon{font-size:1.6rem;background:#e0f2fe;width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center}.level-editor-modal-title{font-size:1.15rem;font-weight:700;color:var(--text-main);margin:0}.level-editor-modal-subtitle{font-size:.8rem;color:var(--text-muted);margin:2px 0 0}.level-editor-modal-body{padding:20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;max-height:calc(88vh - 140px)}.editor-form-grid{display:flex;flex-direction:column;gap:12px}.editor-form-row{display:flex;gap:12px}.editor-form-group{display:flex;flex-direction:column;gap:4px}.editor-form-group.flex-1{flex:1}.editor-form-group label{font-size:.78rem;font-weight:600;color:var(--text-main)}.editor-input,.editor-select,.editor-textarea{width:100%;padding:8px 12px;border:1px solid var(--border-medium);border-radius:8px;font-size:.85rem;font-family:inherit;color:var(--text-main);background:#fff;transition:all .15s ease;outline:none}.editor-input:focus,.editor-select:focus,.editor-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0284c726}.editor-textarea{resize:vertical;min-height:52px}.editor-section-divider{height:1px;background:var(--border-light);margin:4px 0}.editor-section-header{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.editor-section-heading{font-size:.95rem;font-weight:700;color:var(--text-main);margin:0}.editor-section-sub{font-size:.76rem;color:var(--text-muted);margin:2px 0 0}.editor-targets-list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto;padding-right:4px}.editor-empty-targets-hint{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f8fafc;border:1px dashed var(--border-medium);border-radius:8px;color:var(--text-muted);font-size:.8rem}.target-comp-card{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#f8fafc;border:1px solid var(--border-medium);border-radius:8px;transition:all .15s ease;gap:12px}.target-comp-card.target-on{background:#f0fdf4;border-color:#86efac}.target-comp-card.target-off{background:#fff7ed;border-color:#fdba74}.target-comp-left{display:flex;align-items:center;gap:10px}.target-comp-preview{width:38px;height:38px;border-radius:6px;background:#fff;border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.target-comp-canvas{width:36px;height:36px;display:block}.target-comp-icon{font-size:1.2rem}.target-comp-info{display:flex;flex-direction:column}.target-comp-title{font-size:.84rem;font-weight:600;color:var(--text-main)}.target-comp-status-live{font-size:.72rem;color:var(--text-muted)}.target-comp-options{display:flex;align-items:center;gap:8px}.target-option-btn{display:flex;align-items:center;gap:6px;padding:5px 11px;border-radius:6px;border:1px solid var(--border-medium);background:#fff;font-size:.76rem;font-weight:600;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.target-option-btn input{display:none}.target-option-btn:hover{background:#f1f5f9;color:var(--text-main)}.target-option-btn.option-on.selected{background:#dcfce7;border-color:#22c55e;color:#15803d;box-shadow:0 1px 4px #22c55e33}.target-option-btn.option-off.selected{background:#ffedd5;border-color:#ea580c;color:#c2410c;box-shadow:0 1px 4px #ea580c33}.editor-presets-group{display:flex;flex-wrap:wrap;gap:6px}.preset-pill-btn{padding:4px 10px;border-radius:6px;border:1px solid var(--border-medium);background:#f8fafc;color:var(--text-main);font-size:.74rem;font-weight:600;cursor:pointer;transition:all .15s ease}.preset-pill-btn:hover{background:#e2e8f0;border-color:var(--primary);color:var(--primary-dark)}.editor-allowed-components-grid{display:flex;flex-wrap:wrap;gap:6px;max-height:200px;overflow-y:auto;padding-right:4px}.allowed-comp-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 5px;border-radius:8px;background:#f8fafc;border:1px solid var(--border-medium);font-size:.78rem;font-weight:500;color:var(--text-main);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.allowed-comp-preview{width:26px;height:26px;border-radius:4px;background:#fff;border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.allowed-comp-canvas{width:24px;height:24px;display:block}.allowed-comp-pill input{display:none}.allowed-comp-pill:hover{border-color:var(--primary);background:#f0f9ff}.allowed-comp-pill.checked{background:#e0f2fe;border-color:#0284c7;color:#0369a1;font-weight:600}.allowed-comp-pill.checked .allowed-comp-preview{background:#fff;border-color:#bae6fd}.level-editor-modal-footer{padding:14px 24px;display:flex;align-items:center;justify-content:flex-end;gap:12px;background:#f8fafc;border-top:1px solid var(--border-light)}.editor-modal-btn{padding:8px 18px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s ease;outline:none}.editor-modal-btn.primary{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;border:none;box-shadow:0 4px 12px #0284c740}.editor-modal-btn.primary:hover{background:linear-gradient(135deg,#0369a1,#075985);transform:translateY(-1px);box-shadow:0 6px 16px #0284c759}.editor-modal-btn.secondary{background:#fff;border:1px solid var(--border-medium);color:var(--text-main)}.editor-modal-btn.secondary:hover{background:#f1f5f9}.editor-modal-btn.discard{background:#fff1f2;border:1px solid #fecdd3;color:#be123c}.editor-modal-btn.discard:hover{background:#ffe4e6;border-color:#fda4af;color:#9f1239}.level-editor-save-prompt-container{max-width:480px;width:90%;animation:scaleInModal .22s cubic-bezier(.16,1,.3,1)}.level-editor-save-prompt-body{padding:20px 24px}.prompt-info-box{background:#f8fafc;border:1.5px solid var(--border-light);border-radius:var(--radius-md);padding:14px 18px;display:flex;flex-direction:column;gap:10px}.prompt-info-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.prompt-info-label{color:var(--text-muted);font-weight:500}.prompt-info-val{color:var(--text-main);font-weight:700}.settings-menu-item .menu-item-icon.icon-physics{background:#fdf4ff;border-color:#f5d0fe;color:#a855f7}.settings-menu-item:hover .menu-item-icon.icon-physics{background:#fae8ff;border-color:#e879f9;color:#9333ea}.settings-menu-item .menu-item-icon.icon-app-settings{background:#f0fdfa;border-color:#ccfbf1;color:#0d9488}.settings-menu-item:hover .menu-item-icon.icon-app-settings{background:#ccfbf1;border-color:#99f6e4;color:#0f766e}.physics-docs-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0f172a8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1500;animation:modalFadeIn .2s ease-out}.physics-docs-modal-container{width:90%;max-width:920px;height:88vh;max-height:88vh;background:#fff;border-radius:20px;box-shadow:0 25px 50px -12px #0f172a4d,0 0 0 1px #a855f72e;display:flex;flex-direction:column;overflow:hidden;animation:modalPopIn .25s cubic-bezier(.16,1,.3,1)}.physics-docs-modal-header{padding:16px 24px;background:linear-gradient(135deg,#fdf4ff,#f8fafc);border-bottom:1px solid var(--border-medium);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.physics-docs-title-group{display:flex;align-items:center;gap:14px}.physics-docs-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#9333ea,#c084fc);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #9333ea4d;flex-shrink:0}.physics-docs-icon svg,.physics-docs-icon .lucide{width:24px;height:24px;stroke-width:2.2px}.physics-docs-title{font-size:1.18rem;font-weight:700;color:var(--text-main);margin:0 0 2px}.physics-docs-subtitle{font-size:.8rem;color:var(--text-muted);margin:0}.physics-docs-close-btn{width:34px;height:34px;border-radius:50%;background:#f1f5f9;border:1px solid var(--border-medium);display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;transition:all .15s ease;outline:none}.physics-docs-close-btn:hover{background:#fee2e2;border-color:#fca5a5;color:#b91c1c;transform:rotate(90deg)}.physics-docs-close-btn svg,.physics-docs-close-btn .lucide{width:18px;height:18px}.physics-docs-modal-body{padding:28px 36px;overflow-y:auto;flex:1;color:var(--text-main);line-height:1.65;font-size:.92rem;background:#fff}.physics-docs-modal-footer{padding:14px 24px;background:#f8fafc;border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.physics-docs-footer-hint{font-size:.78rem;color:var(--text-muted)}.physics-docs-footer-hint kbd{display:inline-block;padding:2px 6px;font-size:.72rem;font-family:inherit;font-weight:600;color:var(--text-main);background:#fff;border:1px solid var(--border-medium);border-radius:4px;box-shadow:0 1px 2px #0000000d}.physics-docs-loading,.physics-docs-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-muted);text-align:center}.physics-spinner{width:36px;height:36px;border:3px solid #f3e8ff;border-top-color:#9333ea;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.physics-markdown-view h1{font-size:1.55rem;font-weight:800;color:var(--text-main);margin-top:0;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #f1f5f9}.physics-markdown-view h2{font-size:1.25rem;font-weight:700;color:#0f172a;margin-top:28px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:8px}.physics-markdown-view h3{font-size:1.05rem;font-weight:700;color:#1e293b;margin-top:20px;margin-bottom:8px}.physics-markdown-view h4{font-size:.95rem;font-weight:600;color:#334155;margin-top:14px;margin-bottom:6px}.physics-markdown-view p{margin-top:0;margin-bottom:12px}.physics-markdown-view hr{border:0;height:1px;background:#e2e8f0;margin:24px 0}.physics-markdown-view ul,.physics-markdown-view ol{margin-top:4px;margin-bottom:14px;padding-left:24px}.physics-markdown-view li{margin-bottom:6px}.physics-markdown-view table{width:100%;border-collapse:collapse;margin:16px 0 20px;font-size:.85rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.physics-markdown-view th{background:#f8fafc;color:#334155;font-weight:600;padding:10px 14px;text-align:left;border:1px solid #e2e8f0}.physics-markdown-view td{padding:8px 14px;border:1px solid #e2e8f0;color:#475569}.physics-markdown-view tr:nth-child(2n) td{background:#fdfefe}.physics-markdown-view tr:hover td{background:#f1f5f9}.physics-markdown-view code{font-family:Fira Code,Consolas,monospace;font-size:.84em;background:#f1f5f9;color:#0f172a;padding:2px 6px;border-radius:4px;border:1px solid #e2e8f0}.physics-markdown-view pre{background:#0f172a;color:#f8fafc;padding:14px 18px;border-radius:10px;overflow-x:auto;margin:14px 0}.physics-markdown-view pre code{background:transparent;color:inherit;padding:0;border:none;font-size:.86rem}.physics-markdown-view .math-formula-block{background:#f8fafc;border-left:4px solid #9333ea;padding:10px 16px;margin:12px 0;border-radius:0 8px 8px 0;font-family:"Cambria Math",KaTeX_Main,Times New Roman,serif;font-size:1.05rem;color:#1e1b4b;overflow-x:auto;display:block}.physics-markdown-view .math-formula-inline{font-family:"Cambria Math",KaTeX_Main,Times New Roman,serif;font-size:.95em;font-style:italic;color:#4c1d95;padding:1px 3px;display:inline-block;vertical-align:middle}.physics-markdown-view .math-unit{font-style:normal;font-family:inherit;color:#334155;margin-left:2px}.physics-markdown-view .math-fn{font-style:normal;font-weight:500;color:#0f172a;margin:0 2px}.physics-markdown-view .math-vec{font-style:italic;font-weight:600}.physics-markdown-view .math-fraction{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;padding:0 3px;font-size:.88em;line-height:1.1}.physics-markdown-view .math-numerator{border-bottom:1.2px solid currentColor;padding-bottom:1px}.physics-markdown-view .math-denominator{padding-top:1px}.app-settings-modal-container{max-width:680px;height:auto;max-height:85vh;box-shadow:0 25px 50px -12px #0f172a4d,0 0 0 1px #0d948833}.app-settings-modal-header{background:linear-gradient(135deg,#f0fdfa,#f8fafc)}.app-settings-modal-icon{background:linear-gradient(135deg,#0d9488,#2dd4bf);box-shadow:0 4px 12px #0d94884d}.app-settings-tabs-nav{display:flex;align-items:center;gap:6px;padding:8px 24px 0;background:#f8fafc;border-bottom:1px solid var(--border-medium)}.app-settings-tab-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:.88rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:transparent;border:none;border-bottom:2.5px solid transparent;border-radius:8px 8px 0 0;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.app-settings-tab-btn i,.app-settings-tab-btn svg{width:17px;height:17px;transition:transform .2s ease}.app-settings-tab-btn:hover{color:var(--text-main);background:#0d94880d}.app-settings-tab-btn.active{color:#0d9488;border-bottom-color:#0d9488;background:#fff;font-weight:700;box-shadow:0 -1px 3px #00000005}.app-settings-tab-pane{display:flex;flex-direction:column;gap:24px}.app-settings-tab-pane.hidden{display:none!important}.app-settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:#f8fafc;border:1.5px solid var(--border-medium);border-radius:12px;transition:all .2s ease}.app-settings-toggle-row:hover{background:#f0fdfa;border-color:#5eead4}.app-settings-toggle-info{display:flex;flex-direction:column;gap:2px;flex:1}.app-settings-toggle-title{font-size:.92rem;font-weight:600;color:var(--text-main)}.app-settings-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0;cursor:pointer}.app-settings-switch input{opacity:0;width:0;height:0;position:absolute}.app-settings-switch-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;border-radius:24px;transition:.25s cubic-bezier(.4,0,.2,1)}.app-settings-switch-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;box-shadow:0 1px 3px #00000040;transition:.25s cubic-bezier(.4,0,.2,1)}.app-settings-switch input:checked+.app-settings-switch-slider{background-color:#0d9488}.app-settings-switch input:focus-visible+.app-settings-switch-slider{box-shadow:0 0 0 3px #0d948840}.app-settings-switch input:checked+.app-settings-switch-slider:before{transform:translate(20px)}.app-settings-modal-body{padding:24px 28px}.app-settings-section{display:flex;flex-direction:column;gap:16px}.app-settings-section-title{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;padding-bottom:6px;border-bottom:1px solid var(--border-light)}.app-settings-form-group{display:flex;flex-direction:column;gap:8px}.app-settings-field-label{display:flex;flex-direction:column;gap:2px;font-size:.92rem;font-weight:600;color:var(--text-main);cursor:pointer}.app-settings-field-sub{font-size:.78rem;font-weight:400;color:var(--text-muted);line-height:1.35}.app-settings-select{width:100%;padding:10px 14px;font-size:.92rem;font-weight:500;font-family:inherit;color:var(--text-main);background:#f8fafc;border:1.5px solid var(--border-medium);border-radius:10px;outline:none;cursor:pointer;transition:all .2s ease;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.app-settings-select:hover{background:#f0fdfa;border-color:#5eead4}.app-settings-select:focus{background:#fff;border-color:#0d9488;box-shadow:0 0 0 3px #0d948826}.app-settings-range-wrapper{display:flex;align-items:center;gap:14px;padding:10px 14px;background:#f8fafc;border:1px solid var(--border-medium);border-radius:10px}.app-settings-slider{flex:1;height:6px;accent-color:#0d9488;border-radius:3px;background:var(--border-medium);cursor:pointer}.app-settings-number-wrap{display:flex;align-items:center;gap:6px;background:#fff;padding:4px 10px;border:1.5px solid var(--border-medium);border-radius:8px;box-shadow:0 1px 2px #0000000d}.app-settings-number-input{width:76px;font-size:.92rem;font-weight:600;font-family:inherit;color:var(--text-main);border:none;background:transparent;outline:none;text-align:right}.app-settings-unit{font-size:.8rem;font-weight:600;color:var(--text-muted);-webkit-user-select:none;user-select:none}.app-settings-info-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:linear-gradient(135deg,#f0fdfa,#e6fffa);border:1px solid #99f6e4;border-radius:12px;box-shadow:0 2px 6px #0d94880f}.app-settings-info-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.app-settings-info-title{font-size:.94rem;font-weight:700;color:#0f766e}.app-settings-info-badge{font-size:.78rem;font-weight:700;padding:3px 8px;border-radius:6px;background:#0d9488;color:#fff;letter-spacing:.02em}.app-settings-info-desc{font-size:.82rem;color:#134e4a;line-height:1.45;margin:0}.app-settings-alert{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-radius:12px;margin:4px 0 6px;transition:all .2s ease}.app-settings-alert-warning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1.5px solid #fcd34d;box-shadow:0 2px 8px #f59e0b14}.app-settings-alert-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#f59e0b;color:#fff;flex-shrink:0;box-shadow:0 2px 6px #f59e0b4d}.app-settings-alert-icon i,.app-settings-alert-icon svg{width:18px;height:18px}.app-settings-alert-body{display:flex;flex-direction:column;gap:10px;flex:1}.app-settings-alert-text{font-size:.84rem;line-height:1.45;color:#92400e;font-weight:500}.app-settings-alert-actions{display:flex;align-items:center}.app-settings-btn-reset{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;font-size:.82rem;font-weight:600;font-family:inherit;color:#b45309;background:#fff;border:1.5px solid #fde68a;border-radius:8px;cursor:pointer;box-shadow:0 1px 3px #b4530914;transition:all .2s ease}.app-settings-btn-reset i,.app-settings-btn-reset svg{width:14px;height:14px;transition:transform .3s ease}.app-settings-btn-reset:hover{background:#fffbeb;border-color:#f59e0b;color:#78350f;transform:translateY(-1px);box-shadow:0 3px 8px #b4530926}.app-settings-btn-reset:hover i,.app-settings-btn-reset:hover svg{transform:rotate(-45deg)}.app-settings-btn-reset:active{transform:translateY(0)}
