.hidden{display:none!important}:root{--bg:#1c1c2e;--surface:#262640;--surface2:#30304a;--border:#52527a;--border-light:#6a6a90;--primary:#7c3aed;--primary-hover:#6d28d9;--danger:#ef4444;--success:#22c55e;--text:#f0f0f4;--text-dim:#b0b0c8;--text-muted:#8888a4;--accent:#38bdf8}html,body{background:var(--bg);height:100%;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex}#header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:24px;height:48px;padding:0 20px;display:flex}#back-to-dashboard{flex-shrink:0;justify-content:center;align-items:center;padding:4px;display:flex}.header-title{color:#b794f6;letter-spacing:.5px;white-space:nowrap;font-size:16px;font-weight:700}.header-dropdown{flex-shrink:0;position:relative}#project-selector{margin-left:auto}.mode-select{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:6px;outline:none;height:32px;padding:4px 24px 4px 8px;font-size:13px;transition:border-color .15s}.mode-select:hover,.mode-select:focus{border-color:var(--primary)}.dropdown-arrow{opacity:.7;font-size:10px}.dropdown-menu{background:var(--surface2);border:1px solid var(--border);z-index:200;border-radius:6px;min-width:180px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #0006}.dropdown-item{width:100%;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:8px 14px;font-size:13px;transition:background .1s;display:block}.dropdown-item:hover{background:var(--border)}.dropdown-item.active{color:var(--primary);font-weight:600}.dropdown-item.new-project{color:var(--accent);border-top:1px solid var(--border)}.dropdown-item.archived{color:var(--text-dim);font-style:italic}.dropdown-item.danger{color:var(--danger)}.dropdown-row{align-items:center;display:flex}.dropdown-row .dropdown-item{flex:1}.dropdown-action{cursor:pointer;opacity:0;background:0 0;border:none;padding:4px 10px;font-size:14px;transition:opacity .15s}.dropdown-row:hover .dropdown-action{opacity:.7}.dropdown-action:hover{opacity:1!important}.dropdown-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;padding:6px 14px 2px;font-size:11px}#empty-state{background:var(--bg);flex:1;justify-content:center;align-items:center;display:flex;overflow-y:auto}.empty-state-content{text-align:center;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:640px;padding:40px 24px;display:flex}.empty-state-icon{font-size:64px;line-height:1}.empty-state-title{color:var(--text);font-size:28px;font-weight:700}.empty-state-subtitle{color:var(--text-dim);margin-top:-12px;font-size:15px}.template-cards{flex-wrap:wrap;justify-content:center;gap:16px;width:100%;display:flex}.template-card{background:var(--surface);border:2px solid var(--border);cursor:pointer;text-align:left;border-radius:10px;flex:1;min-width:180px;max-width:220px;padding:20px 16px;transition:all .15s}.template-card:hover{border-color:var(--border-light);background:var(--surface2)}.template-card.selected{border-color:var(--primary);background:#7c3aed1a}.template-card-icon{margin-bottom:10px;font-size:32px}.template-card-name{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:700}.template-card-desc{color:var(--text-dim);font-size:12px;line-height:1.5}.empty-state-form{gap:10px;width:100%;max-width:400px;display:flex}.form-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:14px;transition:border-color .15s}.form-input:focus{border-color:var(--primary)}.form-input::placeholder{color:var(--text-muted)}.empty-state-error{color:var(--danger);min-height:18px;font-size:13px}.new-project-modal .template-cards{margin-top:8px}.new-project-modal .modal-name-row{gap:10px;width:100%;margin-top:12px;display:flex}#tab-bar{gap:4px;display:flex}.tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 18px;font-size:13px;font-weight:500;transition:all .15s}.tab:hover{color:var(--text);background:var(--surface2)}.tab.active{color:#fff;background:var(--primary)}.tab.tab-hidden{display:none}#tab-content{flex:1;position:relative;overflow:hidden}.tab-panel{display:none;position:absolute;inset:0;overflow:hidden}.tab-panel.active{display:flex}.builder-layout{width:100%;height:100%;display:flex}.builder-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;display:flex}.builder-main{background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;overflow:auto}.builder-props{background:var(--surface);border-left:1px solid var(--border);flex-shrink:0;width:240px;padding:16px;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px;display:flex}.sidebar-header h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);font-size:13px;font-weight:600}.item-list{flex:1;padding:4px;overflow-y:auto}.item-list-entry{cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.item-list-entry:hover{background:var(--surface2);border-color:var(--border)}.item-list-entry.active{background:var(--primary);color:#fff;border-color:var(--primary)}.item-list-entry .preview-thumb{border:1px solid var(--border-light);width:24px;height:24px;image-rendering:pixelated;background:var(--surface2);border-radius:2px}.btn{cursor:pointer;border:none;border-radius:4px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.btn-sm{padding:4px 10px;font-size:11px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.btn-success{background:var(--success);color:#fff}.btn-success:hover{opacity:.85}.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:var(--border)}.btn-accent{background:var(--accent);color:#0f172a}.btn-accent:hover{opacity:.85}.btn-icon{border:1px solid var(--border);background:var(--surface2);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:16px;transition:all .1s;display:flex}.btn-icon:hover{background:var(--border)}.btn-icon.active{background:var(--primary);border-color:var(--primary);color:#fff}.btn-icon svg{pointer-events:none;width:18px;height:18px}.pixel-editor-component{flex-direction:column;align-items:center;gap:10px;display:flex}.pixel-editor-middle-row{flex-direction:row;align-items:flex-start;gap:6px;display:flex}.pixel-editor-zone-top,.pixel-editor-zone-bottom{flex-flow:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.pixel-editor-zone-left,.pixel-editor-zone-right{flex-direction:column;align-self:stretch;align-items:flex-start;gap:6px;min-height:0;display:flex;overflow-y:auto}.pixel-editor-zone-top.zone-empty,.pixel-editor-zone-bottom.zone-empty,.pixel-editor-zone-left.zone-empty,.pixel-editor-zone-right.zone-empty{display:none}.pixel-editor-wrap{justify-content:center;align-items:center;display:flex;position:relative}.pixel-editor-canvas{image-rendering:pixelated;cursor:crosshair;border:2px solid var(--border-light);border-radius:4px}.toolset{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:4px;padding:6px 8px;transition:opacity .2s;display:flex}.toolset.toolset-horizontal{flex-flow:wrap}.toolset.toolset-vertical{flex-direction:column;align-items:flex-start}.toolset-drag-handle{cursor:grab;opacity:.4;touch-action:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:flex}.toolset-drag-handle:hover{opacity:1;background:var(--border)}.toolset-drag-handle:active{cursor:grabbing}.toolset.dragging{opacity:.3;pointer-events:none}.toolset-ghost{pointer-events:none;opacity:.85;box-shadow:0 4px 16px #0006}.pixel-editor-zone-top.drop-target,.pixel-editor-zone-bottom.drop-target,.pixel-editor-zone-left.drop-target,.pixel-editor-zone-right.drop-target{outline:2px dashed var(--accent);outline-offset:2px;background:#38bdf80f}.toolset-drop-indicator{background:var(--accent);pointer-events:none;border-radius:1px;flex-shrink:0}.pixel-editor-footer{justify-content:flex-end;width:100%;display:flex}.pixel-editor-reset-layout{color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;padding:2px 8px;font-size:11px}.pixel-editor-reset-layout:hover{color:var(--text);background:var(--border);border-color:var(--border)}.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:8px 12px;display:flex}.toolbar-divider{background:var(--border);width:1px;height:24px;margin:0 4px}.color-palette{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;gap:3px;max-width:480px;padding:8px 12px;display:flex}.color-swatch{cursor:pointer;border:2px solid #ffffff1a;border-radius:3px;width:22px;height:22px;transition:border-color .1s,transform .1s}.color-swatch:hover{border-color:#fff6;transform:scale(1.15)}.color-swatch.active{border-color:#fff;transform:scale(1.15)}.color-picker-wrap{position:relative}.color-picker-wrap input[type=color]{border:2px dashed var(--border-light);cursor:pointer;background:0 0;border-radius:3px;width:22px;height:22px;padding:0}.color-picker-wrap input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-picker-wrap input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.current-color{border:2px solid var(--border-light);border-radius:4px;width:32px;height:32px}.props-section{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:16px}.props-section:last-child{border-bottom:none;padding-bottom:0}.props-section h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:4px;font-size:11px;font-weight:600}.props-field{margin-bottom:10px}.props-field label{color:var(--text-dim);margin-bottom:4px;font-size:12px;display:block}.props-field input[type=text],.props-field input[type=number],.props-field select{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:4px;padding:6px 10px;font-size:13px}.props-field input[type=text]:focus,.props-field input[type=number]:focus,.props-field select:focus{border-color:var(--primary);outline:none}.checkbox-row{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.checkbox-row input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}.anim-state-list{margin-bottom:12px}.anim-state-entry{cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;transition:background .1s;display:flex}.anim-state-entry:hover{background:var(--surface2);border-color:var(--border)}.anim-state-entry.active{background:var(--primary);color:#fff;border-color:var(--primary)}.anim-state-entry .state-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.anim-state-entry.enabled .state-dot{background:var(--success)}.anim-state-entry.active .state-dot{background:#fff}.frame-nav{align-items:center;gap:6px;padding:8px 0;display:flex}.frame-nav span{color:var(--text-dim);text-align:center;min-width:60px;font-size:12px}.anim-preview-box{border:1px solid var(--border);text-align:center;background:var(--surface2);border-radius:4px;padding:8px}.anim-preview-box canvas{image-rendering:pixelated}.anim-preview-box .preview-label{color:var(--text-dim);margin-top:6px;font-size:11px}.timeline-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:stretch;gap:12px;width:100%;max-width:700px;padding:10px;display:flex}.timeline-preview{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:80px;padding:6px 10px;display:flex}.timeline-preview canvas{image-rendering:pixelated;border:1px solid var(--border);background:var(--bg);border-radius:3px}.timeline-preview .preview-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:10px}.timeline-strip{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.timeline-frames{align-items:center;gap:6px;padding:4px 0;display:flex;overflow-x:auto}.timeline-frame{cursor:pointer;border:2px solid var(--border);background:var(--bg);border-radius:4px;flex-shrink:0;padding:2px;transition:border-color .1s,box-shadow .1s;position:relative}.timeline-frame:hover{border-color:var(--border-light)}.timeline-frame.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.timeline-frame canvas{image-rendering:pixelated;display:block}.timeline-frame .frame-number{background:var(--surface2);color:var(--text-muted);border-radius:2px 0;padding:0 3px;font-size:9px;line-height:14px;position:absolute;bottom:-1px;right:-1px}.timeline-frame.active .frame-number{background:var(--primary);color:#fff}.timeline-controls{align-items:center;gap:4px;display:flex}.timeline-controls .btn-icon{width:26px;height:26px;font-size:14px}.level-canvas-wrap{flex:1;justify-content:flex-start;align-items:flex-start;display:flex;position:relative;overflow:auto}.level-canvas{image-rendering:pixelated;cursor:crosshair}.block-palette{flex-direction:column;flex:1;gap:4px;padding:8px;display:flex;overflow-y:auto}.block-palette-entry{cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;transition:background .1s;display:flex}.block-palette-entry:hover{background:var(--surface2);border-color:var(--border)}.block-palette-entry.active{background:var(--primary);color:#fff;border-color:var(--primary)}.block-palette-entry canvas{image-rendering:pixelated;border:1px solid var(--border-light);border-radius:2px}.level-tools{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding:8px;display:flex}.level-tool-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:4px;padding:8px 12px;font-size:12px;transition:all .1s}.level-tool-btn:hover{background:var(--border)}.level-tool-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}#game-overlay{z-index:1000;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}#game-overlay.hidden{display:none}#game-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:44px;padding:0 16px;display:flex}#game-status{color:var(--accent);font-size:14px;font-weight:600}#game-canvas{width:100%;image-rendering:pixelated;flex:1}#stop-test{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;padding:6px 16px;font-size:13px;transition:all .1s}#stop-test:hover{background:var(--border)}#modal-backdrop{z-index:2000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#modal-backdrop.hidden{display:none}#modal{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;min-width:320px;max-width:420px;padding:24px;box-shadow:0 8px 32px #00000080}#modal h3{margin-bottom:16px;font-size:16px}#modal-body{margin-bottom:20px}#modal-body .props-field{margin-bottom:12px}#modal-actions{justify-content:flex-end;gap:8px;display:flex}.icon-editor-header{justify-content:space-between;align-items:center;display:flex}.icon-editor-header-actions{gap:8px;display:flex}.coming-soon{width:100%;height:100%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;display:flex}.coming-soon h2{color:var(--text);margin-bottom:8px;font-size:28px}.coming-soon p{opacity:.6;font-size:18px}.empty-state{height:100%;color:var(--text-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px;font-size:14px;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.size-badge{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:3px;margin-left:auto;padding:2px 6px;font-size:10px}.ebl-editor-wrap{flex-direction:column;gap:6px;width:100%;display:flex}.ebl-editor-area{border:1px solid var(--border);background:#12121e;border-radius:6px;position:relative;overflow:hidden}.ebl-line-nums{text-align:right;color:#4a4a66;border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;white-space:pre;background:#0e0e1a;width:36px;padding:12px 6px 12px 0;font:13px/20px SF Mono,Fira Code,Cascadia Code,monospace;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.ebl-highlight,.ebl-textarea{white-space:pre;tab-size:2;min-height:300px;max-height:500px;margin:0;padding:12px 12px 12px 44px;font:13px/20px SF Mono,Fira Code,Cascadia Code,monospace;overflow:auto}.ebl-highlight{pointer-events:none;color:#c8c8d8;position:absolute;inset:0}.ebl-textarea{color:#0000;caret-color:#e8e8f0;resize:vertical;background:0 0;border:none;outline:none;width:100%;height:100%;min-height:300px;position:relative}.ebl-comment{color:#5c6370;font-style:italic}.ebl-string{color:#98c379}.ebl-number{color:#d19a66}.ebl-keyword{color:#c678dd;font-weight:600}.ebl-builtin{color:#e5c07b}.ebl-this{color:#e06c75}.ebl-func{color:#61afef}.ebl-op{color:#56b6c2}.ebl-bracket{color:#abb2bf}.ebl-autocomplete{z-index:100;background:var(--surface);border:1px solid var(--border-light);border-radius:6px;min-width:180px;max-height:200px;position:absolute;overflow-y:auto;box-shadow:0 6px 20px #00000080}.ebl-ac-item{cursor:pointer;color:var(--text);align-items:center;gap:6px;padding:4px 10px;font:12px/18px SF Mono,Fira Code,monospace;display:flex}.ebl-ac-item:hover,.ebl-ac-item.active{background:var(--primary);color:#fff}.ebl-ac-badge{text-transform:uppercase;border-radius:3px;flex-shrink:0;padding:1px 4px;font-size:9px;font-weight:700}.ebl-ac-fn{color:#61afef;background:#2d4a7a}.ebl-ac-var{color:#d19a66;background:#4a3a2a}.ebl-ac-ns{color:#c678dd;background:#3a2a4a}.ebl-error-bar{color:#ef4444;background:#ef44441a;border:1px solid #ef44444d;border-radius:4px;padding:6px 10px;font-size:12px;line-height:1.5;display:none}.ebl-error-bar .ebl-error-line{color:#f87171;font-weight:600}.ebl-visual-wrap{flex-direction:column;gap:8px;width:100%;display:flex}.ebl-block{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:5px;padding:10px 12px}.ebl-block-header{color:var(--text-dim);text-transform:uppercase;letter-spacing:.3px;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.ebl-block-header .ebl-block-color{border-radius:2px;flex-shrink:0;width:4px;height:16px}.ebl-block-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.ebl-block-row label{color:var(--text-dim);min-width:60px;font-size:12px}.ebl-block-row select,.ebl-block-row input[type=number],.ebl-block-row input[type=text]{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:3px 8px;font-size:12px}.ebl-block-row select{min-width:120px}.ebl-block-row input[type=number]{width:65px}.ebl-block-nested{border-left:2px solid var(--border);margin-left:16px;padding-left:12px}.ebl-block-add{background:var(--surface2);border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;text-align:center;border-radius:4px;padding:6px 12px;font-size:12px}.ebl-block-add:hover{border-color:var(--primary);color:var(--text)}.ebl-block-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;margin-left:auto;padding:2px 6px;font-size:14px}.ebl-block-remove:hover{color:var(--danger);background:#ef44441a}.ebl-state-tab{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-bottom:none;border-radius:4px 4px 0 0;padding:6px 14px;font-size:12px;font-weight:600}.ebl-state-tab.active{background:var(--surface);color:var(--text);border-color:var(--border)}.ebl-custom-code textarea{border:1px solid var(--border);color:#c8c8d8;resize:vertical;background:#12121e;border-radius:4px;width:100%;min-height:40px;padding:8px;font:12px/18px SF Mono,Fira Code,monospace}#loading-overlay{background:var(--bg);z-index:3000;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}#loading-overlay.hidden{display:none}.loading-spinner{border:4px solid var(--surface2);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.loading-spinner.hidden{display:none}@keyframes spin{to{transform:rotate(360deg)}}.loading-message{color:var(--text-dim);font-size:15px}.loading-message.hidden{display:none}.loading-error{color:var(--danger);text-align:center;max-width:360px;font-size:14px;line-height:1.5}.loading-error.hidden{display:none}.recorder-editor{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:640px;display:flex}.recorder-waveform{border:1px solid var(--border);background:var(--bg);cursor:default;border-radius:6px;width:100%;height:160px}.recorder-trim-label{color:var(--accent);letter-spacing:.02em;min-height:18px;font-size:12px}.recorder-status{min-height:20px;font-size:13px}.recorder-controls{align-items:center;gap:8px;display:flex}.props-value{color:var(--text-dim);font-size:13px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1c1c2e;--surface:#262640;--surface2:#30304a;--border:#52527a;--primary:#7c3aed;--primary-hover:#6d28d9;--danger:#ef4444;--success:#22c55e;--text:#f0f0f4;--text-dim:#b0b0c8;--text-muted:#8888a4;--accent:#b794f6}html,body{background:var(--bg);min-height:100vh;color:var(--text);justify-content:center;align-items:center;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:420px;margin:24px;padding:40px 36px}.auth-logo{color:var(--accent);letter-spacing:.5px;text-align:center;margin-bottom:8px;font-size:22px;font-weight:700}.auth-subtitle{text-align:center;color:var(--text-dim);margin-bottom:32px;font-size:13px}.form-group{margin-bottom:16px}label{color:var(--text-dim);margin-bottom:6px;font-size:13px;font-weight:500;display:block}input[type=text],input[type=email],input[type=password]{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}input:focus{border-color:var(--primary)}input.invalid{border-color:var(--danger)}.field-error{color:var(--danger);min-height:16px;margin-top:4px;font-size:12px}.auth-error{color:#fca5a5;background:#ef44441f;border:1px solid #ef444466;border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:13px;display:none}.auth-error.visible{display:block}.btn-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;margin-top:8px;padding:11px;font-size:14px;font-weight:600;transition:background .15s}.btn-submit:hover{background:var(--primary-hover)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;color:var(--text-dim);margin-top:20px;font-size:13px}.auth-footer a{color:var(--accent);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}#dashboard{flex:1;padding:32px;overflow-y:auto}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.dashboard-header h2{color:var(--text);font-size:20px;font-weight:700}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;display:grid}.dashboard-tile{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:20px 12px 16px;transition:background .15s,border-color .15s,transform .1s;display:flex}.dashboard-tile:hover{background:var(--surface2);border-color:var(--border-light);transform:translateY(-2px)}.dashboard-tile-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.dashboard-tile-icon canvas{image-rendering:pixelated;width:64px;height:64px}.dashboard-tile-letter{color:#fff;font-size:28px;font-weight:700}.dashboard-tile-name{color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.dashboard-tile.archived{opacity:.45}.dashboard-tile.archived:hover{opacity:.7}.btn-view-archived{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-top:20px;padding:8px 0;font-size:13px;font-weight:500;text-decoration:underline;display:inline-block}.btn-view-archived:hover{opacity:.75}.dashboard-archived-section{margin-top:4px}.dashboard-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-top:32px;margin-bottom:12px;font-size:12px;font-weight:600}.dashboard-empty{color:var(--text-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.dashboard-empty-icon{opacity:.6;font-size:48px}.dashboard-empty p{max-width:300px;font-size:14px}.project-popup-details{flex-direction:column;gap:10px;display:flex}.project-popup-icon-row{flex-direction:column;align-items:center;gap:6px;margin-bottom:8px;display:flex}.project-popup-edit-icon{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.project-popup-edit-icon:hover{text-decoration:underline}.project-popup-icon{border-radius:12px;width:80px;height:80px}.project-popup-icon canvas{image-rendering:pixelated;width:80px;height:80px}.project-popup-icon .dashboard-tile-letter{font-size:36px}.project-popup-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.project-popup-label{color:var(--text-muted);font-size:13px}.project-popup-value{color:var(--text);font-size:13px;font-weight:500}.btn-disabled{opacity:.4;cursor:not-allowed}.btn-archive{color:var(--text-muted)}.project-publish-badge{color:#22c55e;background:#22c55e26;border:1px solid #22c55e4d;border-radius:20px;align-items:center;gap:6px;margin-bottom:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.project-publish-link-row{flex-direction:column;align-items:flex-start;gap:4px}.project-publish-link{color:var(--accent);word-break:break-all;font-size:12px;text-decoration:none}.project-publish-link:hover{text-decoration:underline}.project-publish-config{background:var(--surface2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;margin-top:8px;padding:10px;display:flex}.project-publish-config-label{color:var(--text-muted);font-size:12px;font-weight:600}.project-publish-entry-select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:4px;width:100%;padding:4px 8px;font-family:inherit;font-size:13px}.project-popup-title-header{align-items:center;gap:8px;display:flex}.project-popup-rename-btn{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 4px;transition:opacity .15s,color .15s;display:flex}.project-popup-title-header:hover .project-popup-rename-btn,.project-popup-rename-btn:focus{opacity:1}.project-popup-rename-btn:hover{color:var(--accent)}.project-popup-rename-input{background:var(--surface);border:1px solid var(--accent);color:var(--text);border-radius:4px;outline:none;flex:1;min-width:0;padding:2px 8px;font-family:inherit;font-size:16px;font-weight:700}.project-popup-rename-input.rename-error{border-color:var(--danger,#ef4444);animation:.25s rename-shake}.project-popup-rename-input.rename-success{border-color:#22c55e}@keyframes rename-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.icon-editor-modal{min-width:360px;max-width:none}.icon-editor-size-row{align-items:center;margin-bottom:12px;display:flex}.icon-editor-canvas{justify-content:center;min-height:200px;margin-bottom:12px;display:flex}.icon-editor-timeline{margin-top:4px}.icon-timeline-strip{align-items:center;gap:6px;padding:4px 0;display:flex;overflow-x:auto}.icon-timeline-frame{border:2px solid var(--border);cursor:pointer;border-radius:4px;flex-shrink:0;padding:2px}.icon-timeline-frame.active{border-color:var(--primary)}.icon-timeline-frame canvas{image-rendering:pixelated;display:block}
