.ogd-overlay {
    --ogd-bg: var(--v2-bg, #0b1017);
    --ogd-panel: var(--v2-panel, #111923);
    --ogd-panel-2: var(--v2-panel-2, #17212d);
    --ogd-input: var(--v2-panel-3, #202c3a);
    --ogd-line: var(--v2-line, rgba(148, 163, 184, .16));
    --ogd-line-strong: var(--v2-line-strong, rgba(148, 163, 184, .3));
    --ogd-text: var(--v2-text, #eef4fb);
    --ogd-muted: var(--v2-muted, #8e9caf);
    --ogd-blue: var(--v2-blue, #4295ff);
    --ogd-blue-soft: rgba(66, 149, 255, .16);
    position: fixed;
    inset: 66px 0 0 var(--template-container-width, 320px);
    z-index: 2300;
    display: none;
    min-width: 860px;
    min-height: 560px;
    color: var(--ogd-text);
    background: var(--ogd-bg);
    font-family: Inter, system-ui, sans-serif;
    font-size: 12px;
    user-select: none;
}

.ogd-overlay.open { display: block; }
.ogd-overlay .material-symbols-rounded {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 20px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
}
body.controller-v2 .ogd-overlay {
    grid-column: 2;
    grid-row: 2;
    align-self: stretch;
    min-width: 0;
    min-height: 0;
    width: auto;
    height: auto;
    margin: 66px 0 0;
    position: relative;
    inset: auto;
    z-index: 7;
    container-type: inline-size;
}
body.controller-v2.ograf-designer-open .playlist-header,
body.controller-v2.ograf-designer-open #playlist-toolbar,
body.controller-v2.ograf-designer-open #playlist-container,
body.controller-v2.ograf-designer-open #playlist-quick-add { display: none !important; }
body.controller-v2.ograf-designer-open #navOgrafDesignerBtn { color: #eaf3ff !important; background: rgba(59,130,246,.24) !important; }
body.ograf-designer-standalone { width: 100vw; height: 100vh; margin: 0; overflow: hidden; background: var(--ogd-bg, #0b1017); }
body.ograf-designer-standalone .ogd-overlay { position: fixed; inset: 0; display: none; width: 100vw; height: 100vh; min-width: 860px; min-height: 560px; }
body.ograf-designer-standalone .ogd-overlay.open { display: block; }
body.ograf-designer-standalone #ogdPopout { display: none; }
.ogd-shell { --ogd-timeline-height: 224px; --ogd-layers-width: 236px; position: relative; display: grid; grid-template-rows: 52px minmax(250px, 1fr) var(--ogd-timeline-height); width: 100%; height: 100%; overflow: hidden; }

.ogd-topbar {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
    padding: 0 12px;
    background: var(--ogd-panel);
    border-bottom: 1px solid var(--ogd-line);
}

.ogd-brand { display: flex; align-items: center; gap: 9px; min-width: 235px; }
.ogd-brand-mark { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 7px; color: #fff; background: linear-gradient(145deg, #397fea, #6554dc); }
.ogd-brand-mark .material-symbols-rounded { font-size: 18px; }
.ogd-name { width: 170px; border: 0; outline: 0; color: var(--ogd-text); background: transparent; font: 650 14px/1 Inter, sans-serif; padding: 7px 3px; }
.ogd-name:focus { box-shadow: inset 0 -1px var(--ogd-blue); }
.ogd-toolbar, .ogd-top-actions, .ogd-zoom-controls, .ogd-grid-controls { display: flex; align-items: center; gap: 3px; }
.ogd-toolbar { flex: 1; justify-content: center; min-width: 300px; }
.ogd-separator { width: 1px; height: 22px; margin: 0 5px; background: var(--ogd-line); }

.ogd-icon-btn, .ogd-button, .ogd-state-btn, .ogd-layer-action {
    border: 0;
    outline: 0;
    color: var(--ogd-muted);
    background: transparent;
    cursor: pointer;
    border-radius: 6px;
    transition: background .14s ease, color .14s ease;
}
.ogd-icon-btn { width: 32px; height: 32px; display: grid; place-items: center; padding: 0; }
.ogd-icon-btn .material-symbols-rounded { font-size: 20px; }
.ogd-icon-btn:hover, .ogd-icon-btn.active, .ogd-state-btn:hover, .ogd-state-btn.active, .ogd-layer-action:hover { color: var(--ogd-text); background: var(--ogd-blue-soft); }
.ogd-icon-btn.active { box-shadow: inset 0 0 0 1px rgba(66, 149, 255, .4); }
.ogd-button { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; color: var(--ogd-text); background: color-mix(in srgb, var(--ogd-text) 6%, transparent); }
.ogd-button:hover { color: #fff; background: rgba(255,255,255,.1); }
.ogd-button.primary { color: #fff; background: #347ed9; }
.ogd-button.primary:hover { background: #4295ff; }
.ogd-button .material-symbols-rounded { font-size: 17px; }
.ogd-zoom-label { width: 42px; text-align: center; color: var(--ogd-muted); font-variant-numeric: tabular-nums; }
.ogd-actual-size { height: 27px; min-width: 30px; padding: 0 5px; border: 0; border-radius: 5px; color: var(--ogd-muted); background: color-mix(in srgb, var(--ogd-text) 5%, transparent); font: 700 9px/1 Inter, sans-serif; cursor: pointer; }
.ogd-actual-size:hover { color: var(--ogd-text); background: var(--ogd-blue-soft); }
.ogd-grid-size { display: flex; align-items: center; height: 28px; padding: 0 5px; border-radius: 5px; color: var(--ogd-muted); background: rgba(255,255,255,.045); font-size: 9px; }
.ogd-grid-size input { width: 35px; border: 0; outline: 0; padding: 0; color: var(--ogd-text); background: transparent; font: 600 10px/1 Inter, sans-serif; text-align: right; }
.ogd-grid-size input::-webkit-inner-spin-button { display: none; }
.ogd-grid-style { height: 28px; max-width: 90px; padding: 0 22px 0 7px; border: 0; outline: 0; border-radius: 5px; color: var(--ogd-text); background: color-mix(in srgb, var(--ogd-text) 5%, transparent); font: 600 10px/1 Inter, sans-serif; cursor: pointer; }
.ogd-grid-style:hover, .ogd-grid-style:focus { background: var(--ogd-blue-soft); }

.ogd-main { display: grid; grid-template-columns: var(--ogd-layers-width) minmax(360px, 1fr) 278px; min-height: 0; }
.ogd-sidebar { min-width: 0; background: var(--ogd-panel); overflow: hidden; }
.ogd-sidebar.left { display: grid; grid-template-rows: 38px auto minmax(0, 1fr); border-right: 1px solid var(--ogd-line); }
.ogd-sidebar.right { border-left: 1px solid var(--ogd-line); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #3b4654 transparent; }
.ogd-panel-title { display: flex; align-items: center; justify-content: space-between; height: 38px; padding: 0 12px; color: var(--ogd-text); font-weight: 650; border-bottom: 1px solid var(--ogd-line); }
.ogd-panel-title small { color: var(--ogd-muted); font-weight: 450; }
.ogd-resource-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 8px; border-bottom: 1px solid var(--ogd-line); }
.ogd-resource-actions button { height: 30px; }
.ogd-layers { overflow-y: auto; padding: 5px 0 24px; }
.ogd-layer-row { display: grid; grid-template-columns: 18px 24px 24px 25px minmax(0, 1fr) 24px 24px; align-items: center; min-height: 36px; padding: 0 7px; color: var(--ogd-muted); cursor: pointer; border-left: 2px solid transparent; }
.ogd-layer-row:hover { background: rgba(255,255,255,.035); }
.ogd-layer-row.selected { color: var(--ogd-text); background: var(--ogd-blue-soft); border-left-color: var(--ogd-blue); }
.ogd-drag-handle { display: grid; place-items: center; width: 18px; height: 26px; color: color-mix(in srgb, var(--ogd-muted) 74%, transparent); cursor: grab; user-select: none; }
.ogd-drag-handle:active { cursor: grabbing; }
.ogd-drag-handle:hover { color: var(--ogd-text); }
.ogd-layer-row .ogd-drag-handle.material-symbols-rounded { font-size: 18px; }
.ogd-layer-row.dragging,
.ogd-track-label.dragging { opacity: .45; }
.ogd-layer-row.drop-before,
.ogd-layer-row.drop-after,
.ogd-track-label.drop-before,
.ogd-track-label.drop-after { position: relative; }
.ogd-layer-row.drop-before::before,
.ogd-layer-row.drop-after::after,
.ogd-track-label.drop-before::before,
.ogd-track-label.drop-after::after { content: ''; position: absolute; left: 7px; right: 7px; height: 2px; border-radius: 999px; background: #55a7ff; box-shadow: 0 0 8px rgba(85,167,255,.55); pointer-events: none; }
.ogd-layer-row.drop-before::before { top: 0; }
.ogd-layer-row.drop-after::after { bottom: 0; }
.ogd-track-label.drop-before::before { top: 0; }
.ogd-track-label.drop-after::after { bottom: 0; }
.ogd-layer-row .material-symbols-rounded { font-size: 17px; }
.ogd-layer-type-icon { filter: drop-shadow(0 0 5px color-mix(in srgb, currentColor 30%, transparent)); }
.ogd-layer-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ogd-layer-action { width: 24px; height: 24px; display: grid; place-items: center; padding: 0; }
.ogd-motion-blur-toggle { color: color-mix(in srgb, var(--ogd-muted) 76%, transparent); }
.ogd-motion-blur-toggle.active { color: #69baff; background: color-mix(in srgb, #3186d8 18%, transparent); }
.ogd-motion-blur-toggle:hover, .ogd-motion-blur-toggle:focus-visible { color: var(--ogd-text); outline: 0; }
.ogd-motion-blur-toggle.active:hover, .ogd-motion-blur-toggle.active:focus-visible { color: #8dcbff; }
.ogd-motion-blur-glyph { position: relative; display: block; width: 18px; height: 13px; }
.ogd-motion-blur-glyph i { position: absolute; top: 2px; width: 8px; height: 8px; box-sizing: border-box; border: 1.35px solid currentColor; border-radius: 50%; }
.ogd-motion-blur-glyph i:nth-child(1) { left: 0; opacity: .28; }
.ogd-motion-blur-glyph i:nth-child(2) { left: 5px; z-index: 1; opacity: 1; }
.ogd-motion-blur-glyph i:nth-child(3) { left: 10px; opacity: .28; }
.ogd-empty-layers { padding: 28px 18px; color: var(--ogd-muted); line-height: 1.55; text-align: center; }

.ogd-viewport { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: var(--ogd-bg); }
.ogd-viewport-grid { position: absolute; inset: 0; overflow: auto; display: grid; place-items: center; padding: 40px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--ogd-line-strong) transparent; }
.ogd-stage-wrap { position: relative; flex: none; }
.ogd-stage {
    position: absolute;
    left: 0;
    top: 0;
    width: 1920px;
    height: 1080px;
    transform-origin: 0 0;
    overflow: hidden;
    background-color: transparent;
    background-image:
        linear-gradient(45deg, #2a3039 25%, transparent 25%),
        linear-gradient(-45deg, #2a3039 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #2a3039 75%),
        linear-gradient(-45deg, transparent 75%, #2a3039 75%);
    background-size: 32px 32px;
    background-position: 0 0, 0 16px, 16px -16px, -16px 0;
    box-shadow: 0 20px 70px rgba(0,0,0,.48), 0 0 0 1px rgba(255,255,255,.16);
}
.ogd-grid-overlay { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ogd-stage.grid-style-dots,
.ogd-stage.grid-style-lines { background-color: #181d25; background-image: none; }
.ogd-stage.grid-style-dots .ogd-grid-overlay { background-image: radial-gradient(circle, rgba(118,177,244,.34) 1.2px, transparent 1.4px); background-size: var(--ogd-grid-size, 40px) var(--ogd-grid-size, 40px); }
.ogd-stage.grid-style-lines .ogd-grid-overlay { background-image: linear-gradient(to right, rgba(105,174,255,.15) 1px, transparent 1px), linear-gradient(to bottom, rgba(105,174,255,.15) 1px, transparent 1px), linear-gradient(to right, rgba(105,174,255,.28) 1px, transparent 1px), linear-gradient(to bottom, rgba(105,174,255,.28) 1px, transparent 1px); background-size: var(--ogd-grid-size, 40px) var(--ogd-grid-size, 40px), var(--ogd-grid-size, 40px) var(--ogd-grid-size, 40px), calc(var(--ogd-grid-size, 40px) * 5) calc(var(--ogd-grid-size, 40px) * 5), calc(var(--ogd-grid-size, 40px) * 5) calc(var(--ogd-grid-size, 40px) * 5); }
.ogd-stage.grid-style-classic .ogd-grid-overlay { background-image: linear-gradient(to right, rgba(105,174,255,.24) 2px, transparent 2px), linear-gradient(to bottom, rgba(105,174,255,.24) 2px, transparent 2px), linear-gradient(to right, rgba(105,174,255,.46) 3px, transparent 3px), linear-gradient(to bottom, rgba(105,174,255,.46) 3px, transparent 3px); background-size: var(--ogd-grid-size, 40px) var(--ogd-grid-size, 40px), var(--ogd-grid-size, 40px) var(--ogd-grid-size, 40px), calc(var(--ogd-grid-size, 40px) * 5) calc(var(--ogd-grid-size, 40px) * 5), calc(var(--ogd-grid-size, 40px) * 5) calc(var(--ogd-grid-size, 40px) * 5); }
.ogd-stage.grid-hidden .ogd-grid-overlay { background-image: none; }
.ogd-guide { position: absolute; z-index: 1; background: rgba(91,169,255,.64); }
.ogd-guide.center-x { left: 50%; top: 0; bottom: 0; width: 1px; }
.ogd-guide.center-y { left: 0; right: 0; top: 50%; height: 1px; }
.ogd-safe-area { position: absolute; inset: 5%; border: 2px dashed rgba(255,255,255,.28); }
.ogd-stage.grid-hidden .ogd-guide,
.ogd-stage.grid-hidden .ogd-safe-area { display: none; }
.ogd-canvas-layer { position: absolute; box-sizing: border-box; transform-origin: center; cursor: move; }
.ogd-canvas-layer.hidden { display: none; }
.ogd-canvas-layer.selected { z-index: 10000; outline: 2px solid #52a5ff; outline-offset: 0; }
.ogd-canvas-layer .ogd-layer-text { width: 100%; height: 100%; display: flex; align-items: center; justify-content: var(--ogd-align, flex-start); overflow: hidden; white-space: pre-wrap; box-sizing: border-box; text-align: inherit; }
.ogd-canvas-layer .ogd-layer-text[contenteditable="true"] { cursor: text; user-select: text; -webkit-user-select: text; outline: 0; caret-color: currentColor; }
.ogd-imported-template-frame { display: block; width: 100%; height: 100%; border: 0; background: transparent; pointer-events: none; }
.ogd-imported-template-frame.load-error { background: repeating-linear-gradient(135deg, rgba(224,60,79,.12) 0 12px, transparent 12px 24px); }
.ogd-state-chip { position: absolute; left: 0; top: -34px; z-index: 10002; padding: 5px 8px; border-radius: 4px; color: #fff; background: #398ee8; font: 700 16px/1 Inter, sans-serif; text-transform: uppercase; pointer-events: none; }
.ogd-resize-handle { display: none; position: absolute; width: 14px; height: 14px; border: 2px solid #fff; background: #3f92ee; border-radius: 2px; z-index: 10001; }
.ogd-canvas-layer.selected > .ogd-resize-handle { display: block; }
.ogd-overlay.transport-preview .ogd-state-chip,
.ogd-overlay.transport-preview .ogd-resize-handle { display: none !important; }
.ogd-overlay.transport-preview .ogd-canvas-layer.selected { outline-color: transparent; }
.ogd-resize-handle.nw { left: -8px; top: -8px; cursor: nwse-resize; }
.ogd-resize-handle.n { left: calc(50% - 7px); top: -8px; cursor: ns-resize; }
.ogd-resize-handle.ne { right: -8px; top: -8px; cursor: nesw-resize; }
.ogd-resize-handle.e { right: -8px; top: calc(50% - 7px); cursor: ew-resize; }
.ogd-resize-handle.se { right: -8px; bottom: -8px; cursor: nwse-resize; }
.ogd-resize-handle.s { left: calc(50% - 7px); bottom: -8px; cursor: ns-resize; }
.ogd-resize-handle.sw { left: -8px; bottom: -8px; cursor: nesw-resize; }
.ogd-resize-handle.w { left: -8px; top: calc(50% - 7px); cursor: ew-resize; }
.ogd-stage-hint { position: absolute; left: 50%; top: 50%; translate: -50% -50%; padding: 10px 14px; color: rgba(255,255,255,.58); background: rgba(8,12,18,.72); border-radius: 7px; pointer-events: none; }

.ogd-inspector-empty { padding: 42px 22px; text-align: center; color: var(--ogd-muted); line-height: 1.5; }
.ogd-section { padding: 12px; border-bottom: 1px solid var(--ogd-line); }
.ogd-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; color: var(--ogd-text); font-weight: 650; }
.ogd-section-heading .material-symbols-rounded { font-size: 17px; color: var(--ogd-muted); }
.ogd-state-note { margin: -2px 0 10px; padding: 7px 8px; border-radius: 5px; color: var(--ogd-muted); background: var(--ogd-blue-soft); font-size: 10px; line-height: 1.35; }
.ogd-state-note strong { color: #69aeff; }
.ogd-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.ogd-field-grid.one { grid-template-columns: 1fr; }
.ogd-field { display: grid; gap: 5px; min-width: 0; color: var(--ogd-muted); font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.ogd-field.wide { grid-column: 1 / -1; }
.ogd-field input, .ogd-field select, .ogd-field textarea {
    width: 100%; min-width: 0; box-sizing: border-box; border: 0; outline: 0; border-radius: 5px; color: var(--ogd-text); background: var(--ogd-input); padding: 7px 8px; font: 500 12px/1.2 Inter, sans-serif; text-transform: none;
}
.ogd-field input:focus, .ogd-field select:focus, .ogd-field textarea:focus { box-shadow: 0 0 0 1px var(--ogd-blue); }
.ogd-field input[type="color"] { height: 30px; padding: 3px; }
.ogd-field textarea { resize: vertical; min-height: 62px; }
.ogd-font-search { position: relative; display: block; }
.ogd-font-search > .material-symbols-rounded { position: absolute; left: 8px; top: 50%; translate: 0 -50%; z-index: 1; color: var(--ogd-muted); font-size: 16px; pointer-events: none; }
.ogd-font-search > input { padding-left: 29px; }
.ogd-align-controls { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; padding: 3px; border-radius: 6px; background: var(--ogd-input); }
.ogd-align-controls button { display: grid; place-items: center; height: 28px; padding: 0; border: 0; border-radius: 4px; color: var(--ogd-muted); background: transparent; cursor: pointer; }
.ogd-align-controls button:hover { color: var(--ogd-text); background: rgba(255,255,255,.06); }
.ogd-align-controls button.active { color: #fff; background: var(--ogd-blue); }
.ogd-align-controls .material-symbols-rounded { font-size: 17px; }
.ogd-frame-align-controls { display: grid; grid-template-columns: 54px minmax(0, 1fr); align-items: center; gap: 6px 8px; }
.ogd-frame-align-label { color: var(--ogd-muted); font-size: 9px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.ogd-frame-align-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; padding: 3px; border-radius: 6px; background: var(--ogd-input); }
.ogd-frame-align-row button { display: grid; place-items: center; height: 28px; padding: 0; border: 0; border-radius: 4px; color: var(--ogd-muted); background: transparent; cursor: pointer; }
.ogd-frame-align-row button:hover { color: var(--ogd-text); background: rgba(255,255,255,.06); }
.ogd-frame-align-row button.active { color: #fff; background: var(--ogd-blue); }
.ogd-frame-align-row .material-symbols-rounded { font-size: 18px; }
.ogd-check { display: flex; align-items: center; gap: 8px; color: var(--ogd-text); font-size: 11px; }
.ogd-check input { accent-color: var(--ogd-blue); }
.ogd-effect-block { display: grid; gap: 8px; padding: 9px; border-radius: 7px; background: color-mix(in srgb, var(--ogd-text) 3.5%, transparent); }
.ogd-effect-block + .ogd-effect-block { margin-top: 7px; }
.ogd-effect-fields { padding-top: 1px; }
.ogd-help { margin: 10px 0 0; color: var(--ogd-muted); font-size: 10px; line-height: 1.45; }
.ogd-easing-preview { width: 100%; height: 92px; margin: 9px 0 0; border-radius: 7px; background: var(--ogd-input); }
.ogd-easing-preview path { fill: none; stroke: #55a7ff; stroke-width: 2.5; }
.ogd-easing-preview line { stroke: color-mix(in srgb, var(--ogd-muted) 32%, transparent); stroke-width: 1; stroke-dasharray: 3 3; }
.ogd-easing-preview circle { fill: #55a7ff; stroke: none; cursor: grab; filter: drop-shadow(0 2px 4px rgba(0,0,0,.28)); }
.ogd-easing-preview circle:active { cursor: grabbing; }

.ogd-timeline { position: relative; display: grid; grid-template-rows: 44px minmax(0,1fr); min-height: 0; background: var(--ogd-bg); border-top: 1px solid var(--ogd-line); }
.ogd-timeline-head { display: flex; align-items: center; gap: 8px; padding: 0 10px; border-bottom: 1px solid var(--ogd-line); }
.ogd-transport { display: flex; align-items: center; gap: 2px; padding-right: 7px; border-right: 1px solid var(--ogd-line); }
.ogd-transport .ogd-icon-btn { width: 27px; height: 28px; }
.ogd-transport .ogd-icon-btn .material-symbols-rounded { font-size: 18px; }
.ogd-timecode { min-width: 137px; color: var(--ogd-text); font: 600 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace; font-variant-numeric: tabular-nums; }
.ogd-state-tabs { display: grid; grid-template-columns: repeat(3, 1fr); width: 330px; height: 30px; background: rgba(255,255,255,.035); border-radius: 7px; padding: 2px; }
.ogd-state-btn { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 0 10px; font-weight: 650; }
.ogd-state-btn.active { color: #fff; background: #2f78ce; box-shadow: none; }
.ogd-state-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.ogd-duration { display: flex; align-items: center; gap: 5px; color: var(--ogd-muted); }
.ogd-duration input { width: 58px; height: 27px; box-sizing: border-box; border: 0; outline: 0; border-radius: 5px; padding: 0 6px; color: var(--ogd-text); background: var(--ogd-input); font: 500 11px Inter, sans-serif; }
.ogd-timeline-status { margin-left: auto; max-width: 300px; color: var(--ogd-muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ogd-timeline-body { position: relative; display: grid; grid-template-columns: var(--ogd-layers-width) minmax(0, 1fr); min-height: 0; }
.ogd-track-labels { overflow: hidden auto; border-right: 1px solid var(--ogd-line); }
.ogd-track-label-header { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; height: 24px; padding: 0 12px; box-sizing: border-box; color: var(--ogd-text); background: var(--ogd-bg); border-bottom: 1px solid var(--ogd-line); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.ogd-track-label-header small { color: var(--ogd-muted); font-size: 9px; }
.ogd-track-label { height: 32px; display: flex; align-items: center; gap: 5px; padding: 0 10px; box-sizing: border-box; color: var(--ogd-muted); border-bottom: 1px solid color-mix(in srgb, var(--ogd-line) 55%, transparent); }
.ogd-track-label .ogd-drag-handle.timeline { width: 16px; height: 24px; margin-left: -4px; font-size: 17px; flex: none; }
.ogd-track-expand { display: grid; place-items: center; width: 19px; height: 24px; flex: none; padding: 0; border: 0; border-radius: 4px; color: var(--ogd-muted); background: transparent; cursor: pointer; }
.ogd-track-expand:hover { color: var(--ogd-text); background: var(--ogd-blue-soft); }
.ogd-track-expand .material-symbols-rounded { font-size: 17px; transition: rotate .15s ease; }
.ogd-track-expand.expanded .material-symbols-rounded { rotate: 90deg; }
.ogd-track-type-icon.material-symbols-rounded { flex: none; font-size: 15px; }
.ogd-track-label-name { min-width: 0; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ogd-track-layer-action { display: grid; place-items: center; width: 20px; height: 20px; flex: none; padding: 0; border: 0; border-radius: 4px; color: var(--ogd-muted); background: transparent; cursor: pointer; opacity: .62; }
.ogd-track-layer-action:hover, .ogd-track-layer-action:focus-visible { color: var(--ogd-text); background: var(--ogd-blue-soft); opacity: 1; outline: 0; }
.ogd-track-layer-action.danger:hover, .ogd-track-layer-action.danger:focus-visible { color: #ff8994; background: rgba(224,60,79,.13); }
.ogd-track-layer-action .material-symbols-rounded { font-size: 14px; }
.ogd-track-layer-action .ogd-motion-blur-glyph { scale: .86; }
.ogd-track-label.selected { color: var(--ogd-text); background: var(--ogd-blue-soft); }
.ogd-property-label { height: 24px; display: flex; align-items: center; gap: 5px; padding: 0 7px 0 43px; box-sizing: border-box; color: var(--ogd-muted); background: color-mix(in srgb, var(--ogd-panel) 78%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--ogd-line) 38%, transparent); cursor: pointer; font-size: 10px; }
.ogd-property-label:hover, .ogd-property-label.selected { color: var(--ogd-text); background: color-mix(in srgb, var(--ogd-blue-soft) 72%, transparent); }
.ogd-property-label .material-symbols-rounded { color: var(--ogd-property-color); font-size: 14px; }
.ogd-property-name { min-width: 0; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ogd-property-shortcut { display: grid; place-items: center; min-width: 14px; height: 14px; padding: 0 2px; border: 0; border-radius: 3px; color: color-mix(in srgb, var(--ogd-muted) 75%, transparent); background: color-mix(in srgb, var(--ogd-text) 5%, transparent); font: 700 8px/1 Inter, sans-serif; }
.ogd-clear-property-keyframes { display: grid; place-items: center; width: 18px; height: 18px; flex: none; padding: 0; border: 0; border-radius: 3px; color: color-mix(in srgb, var(--ogd-muted) 72%, transparent); background: transparent; cursor: pointer; opacity: .58; }
.ogd-clear-property-keyframes:hover, .ogd-clear-property-keyframes:focus-visible { color: #ff8994; background: rgba(224,60,79,.13); opacity: 1; outline: 0; }
.ogd-clear-property-keyframes .material-symbols-rounded { color: currentColor; font-size: 14px; }
.ogd-property-controls { display: flex; align-items: center; gap: 3px; flex: none; }
.ogd-property-label.shortcut-active, .ogd-property-track.shortcut-active { background: color-mix(in srgb, var(--ogd-property-color) 18%, var(--ogd-panel)); box-shadow: inset 2px 0 0 var(--ogd-property-color); }
.ogd-property-value { display: flex; align-items: center; gap: 2px; color: color-mix(in srgb, var(--ogd-muted) 78%, transparent); font: 650 8px/1 Inter, sans-serif; }
.ogd-property-value input { width: 31px; height: 18px; box-sizing: border-box; padding: 0 3px; border: 0; outline: 0; border-radius: 3px; color: var(--ogd-text); background: var(--ogd-input); font: 600 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace; text-align: right; }
.ogd-property-value input[type="color"] { width: 23px; padding: 2px; }
.ogd-property-value input:focus, .ogd-property-easing:focus { box-shadow: 0 0 0 1px var(--ogd-property-color); }
.ogd-property-value input::-webkit-inner-spin-button { display: none; }
.ogd-property-easing { width: 72px; height: 18px; padding: 0 3px; border: 0; outline: 0; border-radius: 3px; color: var(--ogd-text); background: var(--ogd-input); font: 600 8px/1 Inter, sans-serif; }
.ogd-track-area { position: relative; overflow: auto; cursor: ew-resize; }
.ogd-ruler { position: sticky; top: 0; z-index: 4; height: 24px; min-width: 620px; color: var(--ogd-muted); background: var(--ogd-bg); border-bottom: 1px solid var(--ogd-line); }
.ogd-ruler span { position: absolute; top: 6px; translate: -50% 0; font-size: 9px; }
.ogd-tracks { min-width: 620px; }
.ogd-track { position: relative; height: 32px; box-sizing: border-box; border-bottom: 1px solid rgba(148,163,184,.08); }
.ogd-property-track { height: 24px; background: color-mix(in srgb, var(--ogd-panel) 62%, transparent); border-bottom-color: color-mix(in srgb, var(--ogd-line) 35%, transparent); }
.ogd-segment { position: absolute; top: 5px; bottom: 5px; border-radius: 3px; }
.ogd-segment.start { left: 0; background: #754bbb; }
.ogd-segment.hold { background: #719232; }
.ogd-segment.end { background: #b65c31; }
.ogd-segment.active { box-shadow: inset 0 0 0 2px rgba(255,255,255,.7); }
.ogd-property-track .ogd-segment { top: 3px; bottom: 3px; opacity: .18; border-radius: 0; }
.ogd-property-track .ogd-segment.active { opacity: .28; box-shadow: none; }
.ogd-keyframe { position: absolute; top: 0; z-index: 6; width: 20px; height: 32px; padding: 0; border: 0; outline: 0; background: transparent; cursor: pointer; translate: -50% 0; }
.ogd-keyframe.start { translate: 0 0; }
.ogd-keyframe.end { translate: -100% 0; }
.ogd-keyframe span { position: absolute; left: 5px; top: 11px; width: 9px; height: 9px; box-sizing: border-box; rotate: 45deg; border: 2px solid #f5f8fc; border-radius: 1px; background: #17212d; box-shadow: 0 0 0 2px rgba(8,12,18,.55); transition: scale .12s ease, background .12s ease, box-shadow .12s ease; }
.ogd-keyframe.start span { border-color: #c6a6ff; }
.ogd-keyframe.hold span { border-color: #d1ee7c; }
.ogd-keyframe.end span { border-color: #ffad83; }
.ogd-keyframe:hover span { scale: 1.35; background: #f5f8fc; }
.ogd-keyframe.movable { cursor: ew-resize; }
.ogd-keyframe.locked { cursor: pointer; }
.ogd-keyframe.locked span { opacity: .72; }
.ogd-keyframe.multi-selected span { scale: 1.35; background: #78b9ff; box-shadow: 0 0 0 3px rgba(66,149,255,.48); }
.ogd-keyframe.active span { scale: 1.45; background: #ffffff; box-shadow: 0 0 0 3px rgba(66,149,255,.62), 0 0 12px rgba(66,149,255,.65); }
.ogd-property-track .ogd-keyframe { height: 24px; }
.ogd-property-track .ogd-keyframe span { top: 7px; width: 8px; height: 8px; border-width: 1.5px; border-color: var(--ogd-property-color); background: var(--ogd-bg); box-shadow: 0 0 0 1px rgba(8,12,18,.5); }
.ogd-property-track .ogd-keyframe.active span { background: var(--ogd-property-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ogd-property-color) 45%, transparent); }
.ogd-property-track .ogd-keyframe.multi-selected span { background: var(--ogd-property-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ogd-property-color) 55%, transparent); }
.ogd-playhead { position: absolute; top: 0; bottom: 0; left: 0; z-index: 8; width: 2px; translate: -1px 0; background: #ff6676; pointer-events: none; }
.ogd-playhead::before { content: ''; position: absolute; top: 0; left: -5px; width: 12px; height: 9px; border-radius: 2px; background: #ff6676; }

.ogd-timeline-height-resizer { position: absolute; z-index: 18; left: 0; right: 0; top: -5px; height: 10px; cursor: ns-resize; touch-action: none; }
.ogd-timeline-height-resizer::before { content: ''; position: absolute; left: 0; right: 0; top: 4px; height: 1px; background: transparent; transition: background .14s ease, box-shadow .14s ease; }
.ogd-timeline-height-resizer::after { content: ''; position: absolute; left: 50%; top: 2px; width: 42px; height: 5px; translate: -50% 0; border-radius: 999px; background: color-mix(in srgb, var(--ogd-line-strong) 72%, transparent); transition: background .14s ease, scale .14s ease; }
.ogd-timeline-height-resizer:hover::before, .ogd-overlay.resizing-timeline-height .ogd-timeline-height-resizer::before { background: var(--ogd-blue); box-shadow: 0 0 9px color-mix(in srgb, var(--ogd-blue) 45%, transparent); }
.ogd-timeline-height-resizer:hover::after, .ogd-overlay.resizing-timeline-height .ogd-timeline-height-resizer::after { background: var(--ogd-blue); scale: 1.12; }
.ogd-layers-width-resizer { position: absolute; z-index: 17; left: calc(var(--ogd-layers-width) - 5px); top: 52px; bottom: 0; width: 10px; cursor: ew-resize; touch-action: none; }
.ogd-layers-width-resizer::before { content: ''; position: absolute; top: 0; bottom: 0; left: 4px; width: 1px; background: transparent; transition: background .14s ease, box-shadow .14s ease; }
.ogd-layers-width-resizer::after { content: ''; position: absolute; left: 2px; top: 42%; width: 5px; height: 38px; border-radius: 999px; background: color-mix(in srgb, var(--ogd-line-strong) 72%, transparent); transition: background .14s ease, scale .14s ease; }
.ogd-layers-width-resizer:hover::before, .ogd-overlay.resizing-layers-width .ogd-layers-width-resizer::before { background: var(--ogd-blue); box-shadow: 0 0 9px color-mix(in srgb, var(--ogd-blue) 45%, transparent); }
.ogd-layers-width-resizer:hover::after, .ogd-overlay.resizing-layers-width .ogd-layers-width-resizer::after { background: var(--ogd-blue); scale: 1.12; }
.ogd-overlay.resizing-timeline-height, .ogd-overlay.resizing-timeline-height * { cursor: ns-resize !important; }
.ogd-overlay.resizing-layers-width, .ogd-overlay.resizing-layers-width * { cursor: ew-resize !important; }

.ogd-overlay * { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--ogd-muted) 45%, transparent) color-mix(in srgb, var(--ogd-bg) 72%, transparent); }
.ogd-overlay *::-webkit-scrollbar { width: 10px; height: 10px; }
.ogd-overlay *::-webkit-scrollbar-track { background: color-mix(in srgb, var(--ogd-bg) 78%, transparent); }
.ogd-overlay *::-webkit-scrollbar-thumb { min-height: 28px; border: 2px solid color-mix(in srgb, var(--ogd-bg) 78%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--ogd-muted) 48%, var(--ogd-panel)); }
.ogd-overlay *::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--ogd-blue) 62%, var(--ogd-panel)); }
.ogd-overlay *::-webkit-scrollbar-corner { background: var(--ogd-bg); }

.ogd-context-menu {
    position: fixed;
    z-index: 2400;
    display: none;
    width: 176px;
    padding: 5px;
    border: 1px solid var(--ogd-line-strong);
    border-radius: 8px;
    color: var(--ogd-text);
    background: var(--ogd-panel-2);
    box-shadow: 0 16px 42px rgba(0,0,0,.34);
}
.ogd-context-menu.open { display: grid; gap: 2px; }
.ogd-context-menu button { display: flex; align-items: center; gap: 9px; width: 100%; height: 34px; padding: 0 9px; border: 0; border-radius: 5px; color: var(--ogd-text); background: transparent; font: 550 11px/1 Inter, sans-serif; text-align: left; cursor: pointer; }
.ogd-context-menu button:hover { background: var(--ogd-blue-soft); }
.ogd-context-menu button:disabled { color: var(--ogd-muted); opacity: .48; cursor: default; }
.ogd-context-menu button:disabled:hover { background: transparent; }
.ogd-context-menu .material-symbols-rounded { color: var(--ogd-muted); font-size: 17px; }
.ogd-context-menu button.danger:not(:disabled) { color: #ff7b88; }
.ogd-context-menu button.danger:not(:disabled) .material-symbols-rounded { color: #ff7b88; }
.ogd-context-menu button.danger:not(:disabled):hover { background: rgba(224,60,79,.14); }
.ogd-context-separator { display: block; height: 1px; margin: 3px 5px; background: var(--ogd-line); }
.ogd-context-menu [hidden] { display: none !important; }
.ogd-context-heading { display: block; padding: 5px 9px 3px; color: var(--ogd-muted); font: 750 9px/1 Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
#ogdObjectMenu { width: min(720px, calc(100vw - 16px)); max-height: calc(100vh - 16px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--ogd-line-strong) transparent; }
.ogd-preset-categories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.ogd-preset-category { min-width: 0; padding: 5px; border-radius: 7px; background: color-mix(in srgb, var(--ogd-text) 3%, transparent); }
.ogd-preset-category-title { display: flex; align-items: center; gap: 6px; height: 26px; padding: 0 6px; color: #69d89c; font: 800 10px/1 Inter, sans-serif; letter-spacing: .1em; }
.ogd-preset-category.out .ogd-preset-category-title { color: #ff9b82; }
.ogd-preset-category-title .material-symbols-rounded { color: currentColor; font-size: 16px; }
.ogd-preset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; }
.ogd-preset-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ogd-preset-grid button { min-width: 0; }
.ogd-preset-grid button span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 760px) {
    .ogd-preset-categories { grid-template-columns: 1fr; }
}

.ogd-toast { position: absolute; right: 18px; bottom: 240px; z-index: 30; max-width: 380px; padding: 10px 13px; border-radius: 7px; color: #fff; background: #2177c9; box-shadow: 0 12px 35px rgba(0,0,0,.35); opacity: 0; translate: 0 8px; pointer-events: none; transition: opacity .18s, translate .18s; }
.ogd-toast.show { opacity: 1; translate: 0 0; }
.ogd-toast.error { background: #b83c4c; }

body.light-mode .ogd-overlay {
    --ogd-bg: #cbd4df; --ogd-panel: #e3e8ee; --ogd-panel-2: #d6dee7; --ogd-input: #f7f9fb; --ogd-line: rgba(30,41,59,.12); --ogd-line-strong: rgba(30,41,59,.22); --ogd-text: #1d2734; --ogd-muted: #627084; --ogd-blue-soft: rgba(37,99,235,.12);
}
body.light-mode .ogd-topbar { background: #dbe2ea; }
body.light-mode .ogd-icon-btn:hover, body.light-mode .ogd-icon-btn.active, body.light-mode .ogd-state-btn:hover, body.light-mode .ogd-layer-action:hover { color: #1d2734; }
body.light-mode .ogd-viewport { background: #b8c2cf; }
body.light-mode .ogd-timeline, body.light-mode .ogd-ruler { background: #d7dee7; }
body.light-mode .ogd-easing-preview { background: #f3f6f9; }
body.light-mode.controller-v2.ograf-designer-open #navOgrafDesignerBtn { color: #1d2734 !important; }

body.black-theme .ogd-shell { background: radial-gradient(circle at 15% 8%, rgba(48,103,184,.055), transparent 32%), var(--ogd-bg); }
body.graphite-theme .ogd-shell { background: linear-gradient(145deg, rgba(255,255,255,.025), transparent 45%), var(--ogd-bg); }

@container (max-width: 900px) {
    .ogd-shell { grid-template-rows: 48px minmax(250px, 1fr) var(--ogd-timeline-height); }
    .ogd-topbar { gap: 4px; padding: 0 6px; }
    .ogd-brand { min-width: 104px; gap: 4px; }
    .ogd-brand-mark { width: 24px; height: 24px; }
    .ogd-name { width: 76px; font-size: 11px; }
    .ogd-toolbar { min-width: 0; gap: 1px; }
    .ogd-toolbar .ogd-icon-btn { width: 25px; height: 28px; }
    .ogd-toolbar .ogd-icon-btn .material-symbols-rounded { font-size: 17px; }
    .ogd-toolbar .ogd-separator { margin: 0 2px; }
    .ogd-zoom-label, .ogd-grid-size { display: none; }
    .ogd-top-actions { gap: 2px; }
    .ogd-top-actions .ogd-button { width: 29px; padding: 0; justify-content: center; }
    .ogd-top-actions .ogd-button span:not(.material-symbols-rounded) { display: none; }
    .ogd-main { grid-template-columns: 145px minmax(255px, 1fr) 195px; }
    .ogd-timeline-body { grid-template-columns: 145px minmax(0,1fr); }
    .ogd-layers-width-resizer { display: none; }
    .ogd-panel-title, .ogd-section { padding-left: 8px; padding-right: 8px; }
    .ogd-resource-actions { padding: 5px; gap: 1px; }
    .ogd-layer-row { grid-template-columns: 15px 21px 21px 21px minmax(0,1fr) 21px 21px; padding: 0 4px; }
    .ogd-timeline-head { gap: 4px; padding: 0 5px; }
    .ogd-transport { gap: 0; padding-right: 3px; }
    .ogd-transport .ogd-icon-btn { width: 22px; }
    .ogd-timecode { min-width: 102px; font-size: 8px; }
    .ogd-state-tabs { width: 138px; }
    .ogd-state-btn { padding: 0 4px; font-size: 9px; }
    .ogd-duration { gap: 1px; font-size: 0; }
    .ogd-duration input { width: 39px; padding: 0 3px; font-size: 9px; }
    .ogd-timeline-status { display: none; }
}

@media (max-width: 1180px) {
    body:not(.controller-v2) .ogd-main { grid-template-columns: var(--ogd-layers-width) minmax(320px,1fr) 240px; }
    body:not(.controller-v2) .ogd-timeline-body { grid-template-columns: var(--ogd-layers-width) minmax(0,1fr); }
    body:not(.controller-v2) .ogd-brand { min-width: 175px; }
    body:not(.controller-v2) .ogd-name { width: 120px; }
    body:not(.controller-v2) .ogd-button span:not(.material-symbols-rounded) { display: none; }
}
