:root{--bg: #16161c;--panel: #1e1e26;--panel-header: #26262f;--border: #33333f;--text: #d6d6de;--text-dim: #8a8a96;--accent: #ff9f43;--accent-dim: #b06f2e;--selected: #2e3a52;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:13px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:12px;padding:6px 10px;background:var(--panel-header);border-bottom:1px solid var(--border)}.app-title{font-weight:700;color:var(--accent);margin-right:8px;white-space:nowrap}.toolbar-group{display:flex;gap:2px}.toolbar-spacer{flex:1}.toolbar-status{display:flex;align-items:center;gap:8px;color:var(--text-dim)}.validation-badge{color:#ff6b6b;cursor:help}button{background:#2c2c37;color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer;font-size:12px}button:hover:not(:disabled){background:#383845}button:disabled{opacity:.4;cursor:default}button.active{background:var(--accent-dim);border-color:var(--accent)}.icon-btn{padding:2px 6px;background:transparent;border:none;font-size:12px}.main{flex:1;display:grid;grid-template-columns:240px 1fr 280px;min-height:0}.left-column{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border)}.left-column .outliner{flex:1;min-height:0}.left-column .textures{flex:0 0 auto;max-height:40%;border-top:1px solid var(--border)}.left-column .blockstate-panel{flex:0 0 auto;max-height:240px;border-top:1px solid var(--border)}.center-column{display:flex;flex-direction:column;min-width:0;min-height:0}.viewport{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}.viewport canvas{display:block}.right-column{display:flex;flex-direction:column;min-width:0;min-height:0;border-left:1px solid var(--border)}.right-column .properties{flex:1;min-height:0;overflow-y:auto;border-left:none}.pixel-editor{flex:0 0 auto;height:320px;border-top:1px solid var(--border)}.pixel-editor-toolbar{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--border);background:var(--panel-header)}.pixel-editor-toolbar input[type=color]{width:28px;padding:1px}.pixel-editor-toolbar input[type=range]{width:70px}.pixel-editor-toolbar select{width:auto}.zoom-label{color:var(--text-dim);font-size:11px;width:28px;text-align:center;display:inline-block}.pixel-editor-canvas-wrap{flex:1;overflow:auto;padding:10px;background:repeating-conic-gradient(#2a2a33,#2a2a33 25%,#222229 0%,#222229 50%) 0 0 / 16px 16px}.anim-panel{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;padding:4px 8px;border-bottom:1px solid var(--border)}.anim-controls{display:flex;align-items:center;gap:10px}.anim-controls .prop-label{display:flex;align-items:center;gap:4px;width:auto;color:var(--text-dim)}.anim-controls input[type=number]{width:48px}.anim-strip{display:flex;gap:3px;overflow-x:auto;padding:2px 0}.anim-frame-thumb{width:32px;height:32px;flex:0 0 auto;image-rendering:pixelated;border:1px solid var(--border);background:repeating-conic-gradient(#333,#333 25%,#222 0%,#222 50%) 0 0 / 8px 8px}.anim-frame-thumb.active{border-color:var(--accent);border-width:2px}.pixel-canvas-container{display:inline-block;cursor:crosshair;touch-action:none}.pixel-canvas-container canvas{display:block}.uv-editor{flex:0 0 auto;height:320px;border-top:1px solid var(--border)}.uv-editor-toolbar{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--border);background:var(--panel-header)}.uv-editor-canvas-wrap{flex:1;overflow:auto;padding:10px;background:repeating-conic-gradient(#2a2a33,#2a2a33 25%,#222229 0%,#222229 50%) 0 0 / 16px 16px}.uv-canvas{display:block;image-rendering:pixelated;cursor:crosshair;touch-action:none}.properties{border-left:1px solid var(--border)}.panel{display:flex;flex-direction:column;background:var(--panel);min-height:0}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--panel-header);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-body{flex:1;overflow-y:auto;padding:4px 0}.empty-hint{color:var(--text-dim);padding:10px;font-style:italic}.outliner-row{display:flex;align-items:center;gap:6px;padding:3px 8px;cursor:pointer;-webkit-user-select:none;user-select:none}.outliner-row:hover{background:#26262f}.outliner-row.selected{background:var(--selected)}.node-icon{color:var(--text-dim);width:12px}.node-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outliner-row input{flex:1;min-width:0}.prop-section{padding:8px 10px 2px;font-weight:600;color:var(--text-dim);text-transform:uppercase;font-size:11px;display:flex;gap:8px;align-items:center}.prop-row{display:flex;align-items:center;gap:8px;padding:3px 10px}.prop-label{width:64px;color:var(--text-dim);display:flex;gap:6px;align-items:center}.vec3,.vec4{display:flex;gap:4px;padding:3px 10px}.num-input{display:flex;align-items:center;gap:3px;flex:1;min-width:0}.num-label{color:var(--text-dim);cursor:ew-resize;font-size:11px}input,select{background:#14141a;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:3px 5px;font-size:12px;width:100%;min-width:0}select{width:auto}.mini-check{display:flex;align-items:center;gap:3px;font-size:11px;text-transform:none;font-weight:400}.mini-check input{width:auto}.face-select{font-size:11px}.texture-row{display:flex;align-items:center;gap:8px;padding:4px 10px;cursor:pointer}.texture-row:hover{background:#26262f}.texture-row.selected{background:var(--selected)}.texture-thumb{width:32px;height:32px;image-rendering:pixelated;border:1px solid var(--border);background:repeating-conic-gradient(#333,#333 25%,#222 0%,#222 50%) 0 0 / 8px 8px}.texture-thumb.missing{display:inline-block;background:repeating-conic-gradient(#f800f8,#f800f8 25%,#000 0%,#000 50%) 0 0 / 16px 16px}.texture-info{flex:1;min-width:0}.texture-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.texture-meta{display:flex;align-items:center;gap:6px;color:var(--text-dim);font-size:11px}.key-input{width:48px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal{display:flex;flex-direction:column;width:360px;max-width:90vw;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 32px #00000080}.modal-header{padding:10px 14px;font-weight:600;background:var(--panel-header);border-bottom:1px solid var(--border);border-radius:6px 6px 0 0}.modal-body{padding:8px 4px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}.issue-list{list-style:none;margin:8px 10px 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:11px}.issue-list .error{color:#ff6b6b}.issue-list .warning{color:var(--accent)}.jar-browser-modal{width:640px;max-height:80vh}.jar-browser-toolbar{display:flex;align-items:center;gap:6px;padding:0 10px 8px}.jar-browser-toolbar input{flex:1;min-width:0}.jar-browser-list{max-height:400px;overflow-y:auto;border-top:1px solid var(--border)}.jar-browser-row{display:flex;align-items:center;gap:8px;padding:4px 10px}.jar-browser-row:hover{background:#26262f}.jar-browser-row .texture-info{flex:1;min-width:0}.jar-browser-status{padding:6px 10px 0;color:var(--text-dim);font-size:11px}.timeline{flex:0 0 auto;max-height:260px;border-top:1px solid var(--border);overflow-y:auto}.timeline-scrub{flex:1;min-width:0}.timeline-time{color:var(--text-dim);font-size:11px;white-space:nowrap}.timeline-tracks{padding:4px 0}.timeline-track{display:flex;align-items:center;gap:8px;padding:2px 10px}.timeline-track-label{width:130px;flex:0 0 auto;color:var(--text-dim);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-strip{position:relative;flex:1;height:14px;background:#14141a;border:1px solid var(--border);border-radius:3px}.timeline-kf{position:absolute;top:1px;width:8px;height:8px;transform:translate(-50%);padding:0;background:var(--accent);border:1px solid #0006;border-radius:1px;cursor:pointer}.timeline-kf.active{background:#fff}.blockstate-toggle{padding:6px 10px}.variant-block{border-top:1px solid var(--border);padding:4px 0}.variant-key-row{display:flex;align-items:center;gap:4px;padding:3px 10px}.variant-key-input{flex:1;font-family:monospace}.variant-option{padding-bottom:3px}.variant-option-row{display:flex;align-items:center;gap:4px;padding:1px 10px 1px 20px}.variant-model-input{flex:1;min-width:0;font-size:11px}.variant-option-row select{font-size:11px;flex:0 0 auto;width:auto}.variant-weight-input{width:40px;flex:0 0 auto}
