.g-pane[data-fill]{min-height:320px}.gd-history-list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto}.gd-history-row{display:flex;align-items:center;gap:var(--sp-1);height:var(--h-2);padding:0 var(--sp-2);cursor:default;color:var(--text-secondary)}.gd-history-row:hover{background:var(--fill-hover)}.gd-history-row.current{color:var(--text-primary);background:var(--fill-active)}.gd-history-marker{display:inline-flex;width:14px;height:14px;color:var(--text-secondary)}.gd-history-marker .gd-icon{width:14px;height:14px}.gd-history-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gd-history-empty{padding:var(--sp-2);color:var(--text-placeholder)}.gd-history-budget{padding:var(--sp-1) var(--sp-2);border-top:1px solid var(--border-subtle);font-size:11px;line-height:var(--lh-1);color:var(--text-secondary)}.gd-panel-body.gd-layers{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.gd-layers-list{flex:1 1 auto;min-height:0;overflow-y:auto}.gd-layers-empty{padding:var(--sp-2);color:var(--text-placeholder)}.g-tree-actions .btn[data-muted]{color:var(--text-placeholder)}.g-tree-actions .btn[aria-pressed=true]{color:var(--accent-fg);background:var(--accent-fill);border-color:var(--accent-edge)}.gd-layers-footer{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3);border-top:1px solid var(--border-subtle)}.gd-layers-row{display:flex;align-items:center;gap:var(--sp-2)}.gd-layers-row>.label{flex:0 0 44px}.gd-layers-row>.select-wrap,.gd-layers-row>.g-slider{flex:1 1 auto;margin-right:var(--sp-3)}.gd-layers-actions{display:flex;align-items:center;gap:var(--sp-1)}.gd-panel-body.gd-colors{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3) var(--sp-3)}.gd-colors-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.gd-lc-canvas{display:block;width:100%;height:110px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:crosshair;touch-action:none}.gd-hue-slider{width:100%}.gd-lch-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2)}.gd-lch-row .label{font-size:11px}.gd-recent-disclosure{display:flex;flex-direction:column;gap:var(--sp-2)}.gd-disclosure{display:flex;align-items:center;gap:6px;list-style:none;color:var(--text-secondary);font-size:var(--font-size-ui);font-weight:500;cursor:pointer;user-select:none}.gd-disclosure::-webkit-details-marker{display:none}.gd-disclosure:before{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;rotate:-45deg;transition:rotate var(--dur-fast) var(--ease-out)}details[open]>.gd-disclosure:before{rotate:45deg;margin-top:-2px}.gd-panel-body.gd-effects{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3) var(--sp-3)}.gd-effects-section{display:flex;flex-direction:column;gap:var(--sp-2)}.gd-section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.gd-effects-divider{height:1px;background:var(--border-subtle)}.gd-effects-empty{padding:var(--sp-1) 0;color:var(--text-placeholder)}.gd-effects-list{max-height:220px;overflow-y:auto}.gd-effects-object-row{display:flex;align-items:center;gap:var(--sp-2)}.gd-effects-object-row>.field{flex:1 1 0;min-width:0}.gd-form-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle)}.gd-form-row .label{flex:0 0 auto;min-width:6em;cursor:ew-resize;user-select:none}.gd-form-control{flex:1 1 auto;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.gd-form-control .g-slider{flex:1 1 auto}.gd-form-control .input.num{flex:0 0 auto;width:5.5em}.gd-form-control .select-wrap{flex:1 1 auto;width:100%}.gd-form-unit{flex:0 0 auto;font-size:12px;color:var(--text-secondary)}.gd-form-vec{flex:1 1 auto;display:flex;gap:var(--sp-1);min-width:0}.gd-form-vec .input.num{width:4.5em;flex:0 0 auto}.gd-form-keyframe-badge{flex:0 0 auto;display:inline-flex;width:16px;height:16px;color:var(--accent-fill)}.gd-form-keyframe-badge .gd-icon{width:14px;height:14px}.gd-menu-empty{padding:var(--sp-2);color:var(--text-secondary);font-size:12px}dialog.dlg{display:flex;flex-direction:column;max-height:85vh;resize:both;overflow:hidden}.dlg-body{flex:1 1 auto;min-height:0;overflow-y:auto}:root{--gd-surround: var(--surface-1);--gd-rail-w: 76px}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--surface-1);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-ui)}#app{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.gd-menubar{z-index:20}.gd-menu-check{display:inline-flex;width:14px;height:14px;flex:0 0 auto}.gd-menu-check .gd-icon{width:14px;height:14px}.gd-menu-label{flex:1 1 auto}.gd-main{display:flex;min-height:0;min-width:0}.gd-rail{flex:0 0 var(--gd-rail-w);display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--surface-2);border-right:1px solid var(--border-subtle)}.gd-tools{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-2) var(--sp-1)}.gd-tools-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;justify-items:center}.gd-tool-btn{--_edge: transparent}.gd-tool-btn[aria-pressed=true]{background:var(--fill-active);color:var(--text-primary);border-color:var(--border)}.gd-tool-btn .gd-icon{width:16px;height:16px}.gd-rail-field{display:flex;flex-direction:column;gap:4px;padding:0 var(--sp-1)}.gd-rail-label{font-size:11px;line-height:var(--lh-1);color:var(--text-secondary)}.gd-rail-slider{width:100%}.gd-rail-value{font-size:11px;line-height:var(--lh-1);color:var(--text-secondary);text-align:right}.gd-canvas-region{position:relative;flex:1 1 auto;min-width:0;overflow:hidden;background:var(--gd-surround)}#gd-canvas{position:absolute;top:0;left:0;image-rendering:pixelated}.gd-canvas-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--sp-3);pointer-events:none;font-size:12px;line-height:var(--lh-1);color:var(--text-secondary);z-index:1}.gd-right{flex:0 0 280px;width:280px;min-width:0}.gd-statusbar{display:flex;gap:var(--sp-3);align-items:center;height:var(--h-3);padding:0 var(--sp-2);background:var(--surface-2);border-top:1px solid var(--border-subtle);font-size:12px;line-height:var(--lh-1);color:var(--text-primary);white-space:nowrap;overflow:hidden}.gd-status__item{flex:0 0 auto}.gd-status__quiet{color:var(--text-secondary)}.gd-status__transport{--_edge: transparent;width:24px;height:24px}.gd-status__transport .gd-icon{width:14px;height:14px}.gd-status__hint,.gd-status__message{flex:0 1 auto;margin-left:auto;overflow:hidden;text-overflow:ellipsis}.gd-status__hint{color:var(--text-secondary)}.gd-status__message{color:var(--text-primary)}.gd-selection-overlay{position:absolute;top:0;left:0;pointer-events:none}.gd-selection-box{position:absolute;border:1px solid var(--accent-edge);box-sizing:border-box;pointer-events:none}.gd-selection-box--secondary{opacity:.55}.gd-selection-handle{position:absolute;width:9px;height:9px;margin:-5px 0 0 -5px;background:var(--surface-2);border:1px solid var(--accent-edge);box-sizing:border-box;pointer-events:auto;cursor:pointer}.gd-selection-handle--rotate{border-radius:50%;cursor:grab}.gd-marquee-box{position:absolute;border:1px dashed var(--accent-edge);box-sizing:border-box;pointer-events:none}.gd-text-editor{position:absolute;padding:2px 4px;box-sizing:border-box;border:1px solid var(--border-hover);border-radius:var(--radius-sm);background:var(--overlay-bg);color:var(--text-primary);font:inherit;resize:none;outline:none}.gd-timeline{display:flex;flex-direction:column;height:120px;min-height:120px;background:var(--surface-2);border-top:1px solid var(--border-subtle);font-size:12px;line-height:var(--lh-1);overflow-y:auto}.gd-timeline__header{display:flex;align-items:center;gap:var(--sp-3);height:var(--h-2);padding:0 var(--sp-2);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);flex:0 0 auto}.gd-timeline__label{font-weight:500;color:var(--text-primary)}.gd-timeline__duration{display:flex;align-items:center;gap:var(--sp-1)}.gd-timeline__duration .input{width:5em;height:var(--h-1);padding:0 var(--sp-1)}.gd-timeline__row{display:grid;grid-template-columns:96px 1fr;align-items:center;border-bottom:1px solid var(--border-subtle)}.gd-timeline__row--ruler{flex:0 0 auto;height:22px}.gd-timeline__lane-label{padding:0 var(--sp-2);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gd-timeline__track,.gd-timeline__lane-track{position:relative;height:22px;cursor:pointer}.gd-timeline__tick{position:absolute;top:0;height:100%;border-left:1px solid var(--border-subtle);padding-left:3px;color:var(--text-placeholder);font-size:10px;line-height:22px;pointer-events:none}.gd-timeline__playhead{position:absolute;top:0;left:0;width:1px;height:999px;background:var(--accent-fill);pointer-events:none;z-index:5}.gd-timeline__loop-brace{position:absolute;top:2px;height:calc(100% - 4px);background:var(--fill-active);border:1px solid var(--border-hover);border-radius:var(--radius-sm)}.gd-timeline__loop-handle{position:absolute;top:0;width:6px;height:100%;cursor:ew-resize}.gd-timeline__loop-handle--from{left:-3px}.gd-timeline__loop-handle--to{right:-3px}.gd-timeline__lanes{flex:1 1 auto;overflow-y:auto}.gd-timeline__key{position:absolute;top:50%;width:8px;height:8px;transform:translate(-50%,-50%) rotate(45deg);background:var(--accent-fill);border-radius:1px;cursor:ew-resize}.gd-timeline__key .gd-icon{display:none}.gd-timeline__key.selected{background:var(--accent-fill);outline:2px solid var(--focus-ring);outline-offset:1px}.gd-timeline__key-tools{grid-column:1 / -1;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-top:1px solid var(--border-subtle)}.gd-timeline__key-tools .select-wrap{flex:0 0 auto;width:8em}.gd-timeline__empty{padding:var(--sp-2);color:var(--text-placeholder)}#gd-fatal-banner{position:fixed;top:0;left:0;right:0;z-index:1000;padding:var(--sp-2) var(--sp-4);background:var(--danger-fill);color:var(--danger-fg);font-size:var(--font-size-ui);line-height:var(--lh-2);text-align:center}.gd-boot-failure{max-width:36rem;margin:20vh auto 0;padding:var(--sp-4);color:var(--text-primary)}.gd-boot-failure h1{font-size:18px;line-height:var(--lh-3);font-weight:500;margin:0 0 var(--sp-3)}.gd-boot-failure p{margin:0 0 var(--sp-3);color:var(--text-secondary);line-height:var(--lh-2)}.gd-boot-failure pre{white-space:pre-wrap;color:var(--text-placeholder);font-family:var(--font-mono);font-size:12px}.gd-icon{width:16px;height:16px;flex:0 0 auto}
