.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.course-flow-page{min-width:0;display:flex;flex-direction:column;gap:16px;color:var(--op-foreground)}.course-flow-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:20px}.course-flow-heading{flex:1 1 360px;min-width:0}.course-flow-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.course-flow-title-row h2{margin:0;font-size:22px;line-height:30px;letter-spacing:0}.course-flow-heading p{max-width:760px;margin:5px 0 0;color:var(--op-muted-foreground);font-size:13px;line-height:20px;overflow-wrap:anywhere}.course-flow-actions{min-width:0;display:flex;flex:1 1 360px;align-items:center;justify-content:flex-end;gap:6px}.course-flow-course-select{flex:1 1 280px;min-width:0;max-width:320px}.course-flow-course-select select{width:100%;min-width:0}.course-flow-metrics{display:grid;grid-template-columns:repeat(5,minmax(92px,1fr));border-top:1px solid var(--op-border);border-bottom:1px solid var(--op-border)}.course-flow-metrics>div{min-width:0;padding:12px 16px;display:flex;align-items:baseline;gap:8px;border-right:1px solid var(--op-border)}.course-flow-metrics>div:last-child{border-right:0}.course-flow-metrics strong{font-size:20px;line-height:24px}.course-flow-metrics span{color:var(--op-muted-foreground);font-size:12px;white-space:nowrap}.course-flow-metrics .warning strong{color:var(--op-warning)}.course-flow-metrics .success strong{color:var(--op-success)}.course-flow-tabs{overflow-x:auto;border-bottom:1px solid var(--op-border)}.course-flow-content{min-width:0}.course-flow-workspace,.course-scenes-workspace{height:calc(100vh - 310px);min-height:520px;display:grid;grid-template-columns:minmax(0,1fr) minmax(286px,340px);overflow:hidden;border:1px solid var(--op-border);border-radius:8px;background:var(--op-card)}.course-flow-graph{min-width:0;min-height:0;background:var(--op-sidebar)}.course-flow-graph .react-flow__controls,.course-flow-graph .react-flow__minimap{border:1px solid var(--op-border);border-radius:6px;overflow:hidden;box-shadow:none}.course-flow-graph .react-flow__controls-button{background:var(--op-card);border-bottom-color:var(--op-border);color:var(--op-foreground)}.course-flow-graph .react-flow__controls-button:hover{background:var(--op-muted)}.course-flow-graph .react-flow__controls-button svg{fill:currentColor}.course-flow-edge .react-flow__edge-path{stroke:var(--op-highlight);stroke-width:1.7}.course-scene-node{width:250px;height:154px;box-sizing:border-box;padding:12px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--op-border);border-left:4px solid var(--op-warning);border-radius:7px;background:var(--op-card);color:var(--op-foreground);box-shadow:0 5px 16px color-mix(in oklab,var(--op-foreground) 8%,transparent)}.course-scene-node:has(.course-placement-state.placed){border-left-color:var(--op-success)}.course-scene-node.selected{border-color:var(--op-highlight);border-left-color:var(--op-highlight);box-shadow:0 0 0 2px color-mix(in oklab,var(--op-highlight) 22%,transparent)}.course-scene-node-topline,.course-scene-node-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;line-height:14px}.course-scene-order{color:var(--op-muted-foreground);font-family:var(--op-font-mono);font-size:11px}.course-placement-state,.course-table-placement{font-size:11px;font-weight:600}.course-placement-state.placed,.course-table-placement.placed{color:var(--op-success)}.course-placement-state.unplaced,.course-table-placement.unplaced{color:var(--op-warning)}.course-scene-node strong{flex:0 0 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:18px}.course-scene-node code{flex:0 0 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--op-muted-foreground);font-size:10px;line-height:14px}.course-scene-node p{min-height:34px;margin:0;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--op-muted-foreground);font-size:11px;line-height:17px;overflow-wrap:anywhere}.course-scene-node-footer{margin-top:auto;padding-top:6px;border-top:1px solid var(--op-border);color:var(--op-muted-foreground);font-size:10px}.course-scene-node-footer>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-pending-count{flex:0 0 auto;color:var(--op-warning)}.course-scene-handle{width:9px!important;height:9px!important;border:2px solid var(--op-card)!important;background:var(--op-highlight)!important}.course-scene-inspector{min-width:0;min-height:0;overflow-y:auto;padding:18px;border-left:1px solid var(--op-border);background:var(--op-card)}.course-inspector-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--op-border)}.course-inspector-header>div{min-width:0}.course-inspector-eyebrow{display:block;color:var(--op-muted-foreground);font-size:11px}.course-inspector-header h3{margin:3px 0 4px;font-size:17px;line-height:23px;overflow-wrap:anywhere}.course-inspector-header code{color:var(--op-muted-foreground);font-size:10px;overflow-wrap:anywhere}.course-detail-section{padding:14px 0;border-bottom:1px solid var(--op-border)}.course-detail-section:last-child{border-bottom:0}.course-detail-section h4{margin:0 0 8px;color:var(--op-muted-foreground);font-size:11px;font-weight:600}.course-detail-section p{margin:0;font-size:13px;line-height:20px;overflow-wrap:anywhere}.course-location-detail{display:flex;flex-direction:column;gap:5px;color:var(--op-muted-foreground);font-size:12px}.course-location-detail>div{display:flex;align-items:center;gap:6px;color:var(--op-foreground)}.course-structured-list,.course-transition-list{margin:0;padding-left:18px;font-size:12px;line-height:19px}.course-structured-list li+li{margin-top:5px}.course-structured-fields{margin:0;display:grid;grid-template-columns:minmax(62px,auto) minmax(0,1fr);gap:6px 10px;font-size:12px;line-height:18px}.course-structured-fields dt{color:var(--op-muted-foreground)}.course-structured-fields dd{min-width:0;margin:0;overflow-wrap:anywhere}.course-inline-json{white-space:normal;overflow-wrap:anywhere;font-size:11px}.course-transition-list{padding:0;list-style:none}.course-transition-list li{display:flex;align-items:flex-start;gap:7px}.course-transition-list li+li{margin-top:9px}.course-transition-list svg{flex:0 0 auto;margin-top:1px;color:var(--op-highlight)}.course-transition-list span{min-width:0;display:flex;flex-direction:column;overflow-wrap:anywhere}.course-transition-list small{color:var(--op-muted-foreground)}.course-binding-tags{display:flex;flex-wrap:wrap;gap:6px}.course-binding-tags span{max-width:100%;padding:3px 7px;border:1px solid color-mix(in oklab,var(--op-warning) 38%,var(--op-border));border-radius:5px;background:color-mix(in oklab,var(--op-warning) 9%,transparent);color:var(--op-warning);font-family:var(--op-font-mono);font-size:10px;overflow-wrap:anywhere}.course-resolved{display:inline-flex;align-items:center;gap:5px;color:var(--op-success);font-size:12px}.course-scene-table-wrap,.course-revision-table-wrap{min-width:0;overflow:auto}.course-scene-table,.course-revision-table{width:100%;border-collapse:collapse;font-size:12px}.course-scene-table th,.course-scene-table td,.course-revision-table th,.course-revision-table td{padding:11px 12px;border-bottom:1px solid var(--op-border);text-align:left;vertical-align:top}.course-scene-table th,.course-revision-table th{position:sticky;top:0;z-index:1;background:var(--op-muted);color:var(--op-muted-foreground);font-weight:600;white-space:nowrap}.course-scene-table tbody tr.selected{background:color-mix(in oklab,var(--op-highlight) 8%,transparent)}.course-scene-link{max-width:260px;padding:0;display:flex;flex-direction:column;gap:3px;border:0;background:transparent;color:var(--op-foreground);font:inherit;text-align:left;cursor:pointer}.course-scene-link:hover span{color:var(--op-highlight)}.course-scene-link span,.course-scene-link code{max-width:100%;overflow-wrap:anywhere}.course-scene-link code{color:var(--op-muted-foreground);font-size:10px}.course-revision-table-wrap{border:1px solid var(--op-border);border-radius:8px}.course-revision-table td:first-child{display:flex;align-items:center;gap:8px;white-space:nowrap}.course-lesson-view{display:grid;grid-template-columns:minmax(240px,.36fr) minmax(0,1fr);min-height:520px;border:1px solid var(--op-border);border-radius:8px;overflow:hidden;background:var(--op-card)}.course-outline-summary,.course-source-plan{min-width:0;padding:20px}.course-outline-summary{border-right:1px solid var(--op-border);background:color-mix(in oklab,var(--op-muted) 38%,transparent)}.course-outline-summary h3,.course-outline-summary h4,.course-source-plan h3{margin:0;font-size:14px}.course-outline-summary h4{margin-top:20px;color:var(--op-muted-foreground);font-size:11px}.course-outline-summary p,.course-outline-summary li{font-size:13px;line-height:21px;overflow-wrap:anywhere}.course-outline-summary ul{margin:8px 0 0;padding-left:18px}.course-source-plan{display:flex;flex-direction:column;min-height:0}.course-source-plan-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--op-border)}.course-source-plan-header span{color:var(--op-muted-foreground);font-size:11px}.course-source-plan pre{flex:1;max-height:62vh;margin:0;padding:16px 0 0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--op-foreground);font-size:12px;line-height:20px}.course-flow-loading,.course-tab-loading,.course-flow-empty{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--op-muted-foreground);text-align:center}.course-flow-empty.compact,.course-tab-loading{min-height:240px}.course-flow-empty>svg{width:32px;height:32px}.course-flow-empty h2{margin:0;color:var(--op-foreground);font-size:18px}.course-flow-error{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid color-mix(in oklab,var(--op-destructive) 38%,var(--op-border));border-radius:6px;background:color-mix(in oklab,var(--op-destructive) 8%,transparent);color:var(--op-destructive);font-size:12px}.course-flow-muted{color:var(--op-muted-foreground);font-size:12px}.course-refreshing{animation:course-refresh-spin .8s linear infinite}@keyframes course-refresh-spin{to{transform:rotate(360deg)}}@media(max-width:1120px){.course-flow-workspace,.course-scenes-workspace{grid-template-columns:minmax(0,1fr) 286px}.course-flow-metrics>div{padding-inline:11px}}@media(max-width:860px){.course-flow-workspace,.course-scenes-workspace{height:auto;grid-template-columns:minmax(0,1fr)}.course-flow-graph,.course-scene-table-wrap{height:600px}.course-scene-inspector{max-height:none;border-top:1px solid var(--op-border);border-left:0}.course-lesson-view{grid-template-columns:minmax(0,1fr)}.course-outline-summary{border-right:0;border-bottom:1px solid var(--op-border)}}@media(max-width:620px){.course-flow-toolbar{flex-direction:column;align-items:stretch}.course-flow-heading,.course-flow-actions{flex-basis:auto;width:100%}.course-flow-course-select{max-width:none}.course-flow-metrics{grid-template-columns:repeat(5,minmax(82px,1fr));overflow-x:auto}.course-flow-metrics>div{flex-direction:column;gap:2px}.course-flow-graph,.course-scene-table-wrap{height:600px}.course-flow-graph .react-flow__minimap{display:none}.course-scene-table,.course-revision-table{min-width:760px}}.usage-page{width:min(100%,1500px);margin:0 auto;display:flex;flex-direction:column;gap:1.5rem;color:var(--op-foreground)}.usage-header{min-height:2.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.usage-heading{min-width:0;display:flex;align-items:center;gap:.75rem}.usage-heading-icon{width:2.25rem;height:2.25rem;flex:0 0 2.25rem;display:grid;place-items:center;border-radius:var(--op-radius-md);color:var(--op-highlight);background:color-mix(in oklab,var(--op-highlight) 12%,transparent)}.usage-heading h1,.usage-section h2{margin:0;letter-spacing:0}.usage-heading h1{font-size:1.25rem;line-height:1.6rem;font-weight:650}.usage-heading p,.usage-section-header p{margin:.2rem 0 0;color:var(--op-muted-foreground);font-size:.75rem;line-height:1.1rem}.usage-toolbar{display:flex;align-items:center;gap:.5rem}.usage-user-select{min-width:9rem;max-width:13rem}.usage-range{height:2rem;display:inline-grid;grid-template-columns:repeat(4,minmax(3.25rem,auto));padding:2px;border:1px solid var(--op-border);border-radius:var(--op-radius-md);background:var(--op-muted)}.usage-range button{min-width:0;padding:0 .65rem;border:0;border-radius:calc(var(--op-radius-md) - 2px);background:transparent;color:var(--op-muted-foreground);font:inherit;font-size:.75rem;font-weight:550;cursor:pointer}.usage-range button:hover{color:var(--op-foreground)}.usage-range button.active{color:var(--op-foreground);background:var(--op-card);box-shadow:0 1px 2px color-mix(in oklab,var(--op-foreground) 12%,transparent)}.usage-error{min-height:2.5rem;display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border:1px solid color-mix(in oklab,var(--op-destructive) 35%,transparent);border-radius:var(--op-radius-md);background:color-mix(in oklab,var(--op-destructive) 8%,transparent);color:var(--op-destructive);font-size:.8125rem;box-sizing:border-box}.usage-error span{flex:1;min-width:0;overflow-wrap:anywhere}.usage-loading{min-height:18rem;display:flex;align-items:center;justify-content:center;gap:.625rem;color:var(--op-muted-foreground);font-size:.8125rem}.usage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.usage-metric{min-width:0;min-height:7.5rem;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border:1px solid var(--op-border);border-radius:var(--op-radius-md);background:var(--op-card);box-sizing:border-box}.usage-metric-icon{width:2rem;height:2rem;flex:0 0 2rem;display:grid;place-items:center;border-radius:var(--op-radius-sm)}.usage-metric-tokens .usage-metric-icon{color:var(--op-highlight);background:color-mix(in oklab,var(--op-highlight) 12%,transparent)}.usage-metric-requests .usage-metric-icon{color:var(--op-success);background:color-mix(in oklab,var(--op-success) 12%,transparent)}.usage-metric-cache .usage-metric-icon{color:var(--op-warning);background:color-mix(in oklab,var(--op-warning) 12%,transparent)}.usage-metric-compaction .usage-metric-icon{color:var(--op-theme);background:color-mix(in oklab,var(--op-theme) 12%,transparent)}.usage-metric-content{min-width:0;display:flex;flex-direction:column}.usage-metric-label{color:var(--op-muted-foreground);font-size:.75rem;line-height:1.1rem}.usage-metric strong{margin-top:.3rem;overflow:hidden;text-overflow:ellipsis;font-size:1.65rem;line-height:2rem;font-weight:680;letter-spacing:0}.usage-metric-detail{margin-top:.45rem;color:var(--op-muted-foreground);font-size:.7rem;line-height:1rem;overflow-wrap:anywhere}.usage-analysis-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(17rem,1fr);gap:1.5rem}.usage-section{min-width:0;padding-top:1rem;border-top:1px solid var(--op-border)}.usage-section-header{min-height:2.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.usage-section h2{font-size:.9375rem;line-height:1.25rem;font-weight:650}.usage-legend{display:flex;align-items:center;gap:.75rem;color:var(--op-muted-foreground);font-size:.6875rem;white-space:nowrap}.usage-legend span{display:inline-flex;align-items:center;gap:.35rem}.usage-legend i{width:.5rem;height:.5rem;border-radius:2px}.usage-legend-input{background:var(--op-highlight)}.usage-legend-output{background:var(--op-success)}.usage-chart{height:15rem;margin-top:.75rem;display:flex;align-items:stretch;gap:clamp(2px,.45vw,7px);border-bottom:1px solid var(--op-border)}.usage-chart-column{min-width:0;flex:1 1 0;display:grid;grid-template-rows:minmax(0,1fr) 1.75rem;align-items:end}.usage-chart-track{width:100%;min-width:3px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-radius:3px 3px 0 0;background:color-mix(in oklab,var(--op-muted) 60%,transparent)}.usage-chart-output,.usage-chart-input{width:100%;min-height:0}.usage-chart-output{background:var(--op-success)}.usage-chart-input{background:var(--op-highlight)}.usage-chart-column>span{align-self:center;max-width:100%;padding-top:.4rem;overflow:hidden;color:var(--op-muted-foreground);font-size:.625rem;line-height:1rem;text-align:center;white-space:nowrap}.usage-chart-label-hidden{visibility:hidden}.usage-model-list{margin-top:.75rem;display:flex;flex-direction:column;gap:1rem}.usage-model-row{min-width:0}.usage-model-title,.usage-model-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.usage-member-list{margin-top:.75rem;display:flex;flex-direction:column}.usage-member-row{min-height:3.75rem;display:grid;grid-template-columns:minmax(9rem,1fr) minmax(12rem,2.5fr) minmax(4rem,auto);align-items:center;gap:1rem;border-bottom:1px solid var(--op-border)}.usage-member-row:last-child{border-bottom:0}.usage-member-identity,.usage-member-usage{min-width:0}.usage-member-identity{display:flex;flex-direction:column;gap:.2rem}.usage-member-identity button{width:fit-content;max-width:100%;padding:0;overflow:hidden;border:0;background:transparent;color:var(--op-highlight);font:inherit;font-size:.8125rem;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.usage-member-identity button:hover{text-decoration:underline}.usage-member-identity span,.usage-member-meta{color:var(--op-muted-foreground);font-size:.6875rem}.usage-member-track{height:.45rem;overflow:hidden;border-radius:3px;background:var(--op-muted)}.usage-member-track>div{height:100%;border-radius:inherit;background:var(--op-highlight)}.usage-member-meta{margin-top:.35rem;display:flex;justify-content:space-between;gap:.75rem}.usage-member-row>strong{font-size:.875rem;font-weight:650;text-align:right}.usage-model-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;font-family:var(--op-font-mono);font-size:.75rem;white-space:nowrap}.usage-model-title strong{flex:0 0 auto;font-size:.8125rem;font-weight:650}.usage-model-track{height:.4rem;margin-top:.45rem;overflow:hidden;border-radius:3px;background:var(--op-muted)}.usage-model-track>div{height:100%;min-width:2px;border-radius:inherit;background:var(--op-highlight)}.usage-model-row:nth-child(3n+2) .usage-model-track>div{background:var(--op-success)}.usage-model-row:nth-child(3n) .usage-model-track>div{background:var(--op-warning)}.usage-model-meta{margin-top:.35rem;color:var(--op-muted-foreground);font-size:.6875rem}.usage-empty{min-height:10rem;display:grid;place-items:center;color:var(--op-muted-foreground);font-size:.8125rem;text-align:center}.usage-recent-section{padding-bottom:1rem}.usage-table-wrap{width:100%;margin-top:.5rem;overflow-x:auto}.usage-table{min-width:920px}.usage-table th,.usage-table td{height:2.25rem;box-sizing:border-box;white-space:nowrap}.usage-number{text-align:right!important;font-variant-numeric:tabular-nums}.usage-time{color:var(--op-muted-foreground)!important;font-variant-numeric:tabular-nums}.usage-model-cell{max-width:14rem;overflow:hidden;text-overflow:ellipsis;font-family:var(--op-font-mono);font-size:.75rem}.usage-member-cell{max-width:10rem;overflow:hidden;text-overflow:ellipsis;font-weight:550}.usage-total-cell{font-weight:650}.usage-table-empty{height:8rem!important;color:var(--op-muted-foreground)!important;text-align:center}@media(max-width:1100px){.usage-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.usage-analysis-grid{grid-template-columns:1fr}.usage-model-section{min-height:0}}@media(max-width:700px){.usage-header{align-items:stretch;flex-direction:column}.usage-toolbar{flex-wrap:wrap;justify-content:space-between}.usage-user-select{width:100%;max-width:none}.usage-range{flex:1;grid-template-columns:repeat(4,minmax(0,1fr))}.usage-chart{height:12rem}}@media(max-width:480px){.usage-page{gap:1.1rem}.usage-metrics{grid-template-columns:1fr}.usage-metric{min-height:6.5rem}.usage-section-header{flex-direction:column;gap:.5rem}.usage-legend{align-self:flex-start}.usage-member-row{grid-template-columns:minmax(0,1fr) auto;gap:.5rem .75rem;padding:.75rem 0}.usage-member-usage{grid-column:1 / -1;grid-row:2}}:root{--op-background: oklch(1 0 0);--op-foreground: oklch(.145 0 0);--op-card: oklch(1 0 0);--op-card-foreground: oklch(.145 0 0);--op-popover: oklch(1 0 0);--op-primary: oklch(.205 0 0);--op-primary-foreground: oklch(.985 0 0);--op-secondary: oklch(.97 0 0);--op-secondary-foreground: oklch(.205 0 0);--op-muted: oklch(.97 0 0);--op-muted-foreground: oklch(.556 0 0);--op-accent: oklch(.97 0 0);--op-accent-foreground: oklch(.205 0 0);--op-destructive: oklch(.577 .245 27.325);--op-destructive-foreground: oklch(.985 0 0);--op-border: oklch(.922 0 0);--op-input: oklch(.922 0 0);--op-ring: oklch(.708 0 0);--op-sidebar: oklch(.985 0 0);--op-sidebar-foreground: oklch(.145 0 0);--op-sidebar-accent: oklch(.95 0 0);--op-sidebar-border: oklch(.922 0 0);--op-theme: #7f4c26;--op-theme-hovered: #a76f43;--op-highlight: oklch(.52 .2109 261.68);--op-success: #16a34a;--op-warning: #d97706;--op-info: oklch(.52 .2109 261.68);--op-radius: .625rem;--op-radius-sm: calc(var(--op-radius) - 4px);--op-radius-md: calc(var(--op-radius) - 2px);--op-radius-lg: var(--op-radius);--op-radius-xl: calc(var(--op-radius) + 4px);--op-sidebar-width: 15rem;--op-sidebar-width-icon: 3rem;--op-topbar-height: 3rem;--op-font-family: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--op-font-mono: "Google Sans Code", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--yarn-primary: var(--op-theme);--yarn-primary-dark: var(--op-theme-hovered);--yarn-secondary: var(--op-primary);--yarn-text: var(--op-foreground);--yarn-text-light: var(--op-muted-foreground);--yarn-bg: var(--op-sidebar);--yarn-white: var(--op-card);--yarn-border: var(--op-border);--yarn-link: var(--op-theme);--yarn-font-family: var(--op-font-family)}.dark{--op-background: oklch(.145 0 0);--op-foreground: oklch(.985 0 0);--op-card: oklch(.205 0 0);--op-card-foreground: oklch(.985 0 0);--op-popover: oklch(.205 0 0);--op-primary: oklch(.922 0 0);--op-primary-foreground: oklch(.205 0 0);--op-secondary: oklch(.269 0 0);--op-secondary-foreground: oklch(.985 0 0);--op-muted: oklch(.269 0 0);--op-muted-foreground: oklch(.708 0 0);--op-accent: oklch(.269 0 0);--op-accent-foreground: oklch(.985 0 0);--op-destructive: oklch(.704 .191 22.216);--op-destructive-foreground: oklch(.985 0 0);--op-border: oklch(1 0 0 / 10%);--op-input: oklch(1 0 0 / 15%);--op-ring: oklch(.556 0 0);--op-sidebar: oklch(.205 0 0);--op-sidebar-foreground: oklch(.985 0 0);--op-sidebar-accent: oklch(.269 0 0);--op-sidebar-border: oklch(1 0 0 / 10%);--op-theme: #f89d13;--op-theme-hovered: #d1830d;--op-highlight: oklch(.5 .2005 261.63);--op-success: #4ade80;--op-warning: #fbbf24;--op-info: oklch(.62 .18 261.63)}*{scrollbar-width:thin;scrollbar-color:color-mix(in oklab,var(--op-muted-foreground) 60%,transparent) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--op-muted-foreground) 55%,transparent);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:var(--op-muted-foreground)}*::-webkit-scrollbar-corner{background:transparent}.monaco-scrollable-element>.scrollbar{background:transparent!important}.monaco-scrollable-element>.scrollbar>.slider{background:color-mix(in oklab,var(--op-muted-foreground) 45%,transparent)!important;border-radius:999px!important}.monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-scrollable-element>.scrollbar>.slider.active{background:color-mix(in oklab,var(--op-muted-foreground) 70%,transparent)!important}html{background-color:var(--op-background);height:auto!important}body{font-family:var(--op-font-family);color:var(--op-foreground);background-color:var(--op-background);margin:0;padding:0;min-height:100vh}.fui-FluentProvider{background-color:transparent!important;min-height:100vh;color:inherit;overflow-x:hidden}h1,h2,h3,h4,h5,h6{color:var(--op-foreground);font-weight:600;margin-top:0}a{color:var(--op-theme);text-decoration:none;transition:color .15s ease}a:hover{color:var(--op-theme-hovered);text-decoration:none}.op-app{display:flex;width:100%;height:100vh;overflow:hidden;background-color:var(--op-background)}.op-sidebar{width:var(--op-sidebar-width);min-width:var(--op-sidebar-width);height:100%;background-color:var(--op-background);border-right:1px solid var(--op-sidebar-border);display:flex;flex-direction:column;transition:width .2s linear,min-width .2s linear;overflow:hidden;z-index:30}.op-sidebar.collapsed{width:var(--op-sidebar-width-icon);min-width:var(--op-sidebar-width-icon)}.op-sidebar-header{height:var(--op-topbar-height);min-height:var(--op-topbar-height);padding-left:1rem;border-bottom:1px solid var(--op-sidebar-border);display:flex;align-items:center;gap:.5rem;cursor:pointer;white-space:nowrap}.op-sidebar.collapsed .op-sidebar-header{justify-content:center;padding-left:0}.op-sidebar-logo{font-size:1.125rem;font-weight:600;color:var(--op-theme);letter-spacing:.02em;-webkit-user-select:none;user-select:none}.op-sidebar-logo-mark{width:26px;height:26px;min-width:26px;border-radius:var(--op-radius-sm);background:linear-gradient(135deg,var(--op-theme),var(--op-theme-hovered));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.op-sidebar.collapsed .op-sidebar-logo{display:none}.op-sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem;display:flex;flex-direction:column;gap:.25rem}.op-sidebar-group{display:flex;flex-direction:column;gap:2px;padding-bottom:.5rem}.op-sidebar-group-label{display:flex;align-items:center;height:2rem;padding:0 .5rem;font-size:.75rem;font-weight:500;color:color-mix(in oklab,var(--op-sidebar-foreground) 70%,transparent);white-space:nowrap;transition:opacity .2s linear}.op-sidebar.collapsed .op-sidebar-group-label{height:0;padding:0;overflow:hidden;opacity:0}.op-sidebar-item{position:relative;display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem;border:none;border-radius:var(--op-radius-md);background:transparent;color:var(--op-sidebar-foreground);font-family:inherit;font-size:.875rem;line-height:1.25rem;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;transition:background-color .15s ease,color .15s ease;box-sizing:border-box}.op-sidebar-item svg{width:16px;height:16px;min-width:16px;flex-shrink:0}.op-sidebar-agent-icon{width:18px;height:18px;min-width:18px;object-fit:contain;border-radius:var(--op-radius-sm);flex-shrink:0}.op-sidebar-item:hover{background-color:var(--op-muted)}.op-sidebar-item.active{background-color:var(--op-muted);font-weight:500}.op-sidebar-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:1.25rem;border-radius:2px;background-color:var(--op-theme)}.op-sidebar-item span{overflow:hidden;text-overflow:ellipsis}.op-sidebar-item-label{flex:1;min-width:0}.op-sidebar-item-count{flex-shrink:0;margin-left:auto;overflow:visible!important;color:color-mix(in oklab,var(--op-sidebar-foreground) 62%,transparent);font-size:.75rem;font-variant-numeric:tabular-nums;text-align:right;text-overflow:clip!important}.op-sidebar.collapsed .op-sidebar-item{width:2rem;height:2rem;padding:.5rem;justify-content:center;margin:0 auto}.op-sidebar.collapsed .op-sidebar-item span{display:none}.op-sidebar.collapsed .op-sidebar-item.active:before{left:-.5rem}.op-sidebar-footer{padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;white-space:nowrap}.op-sidebar-footer-actions{display:flex;align-items:center;gap:.25rem}.op-sidebar-footer-actions .op-ghost-btn{padding-inline:.5rem}.op-sidebar.collapsed .op-sidebar-footer{justify-content:center;padding:1rem .5rem}.op-sidebar.collapsed .op-sidebar-footer-actions{flex-direction:column}.op-sidebar.collapsed .op-sidebar-footer-actions .op-ghost-btn span{display:none}.op-sidebar-copyright{font-size:.75rem;color:var(--op-muted-foreground);overflow:hidden;text-overflow:ellipsis}.op-sidebar.collapsed .op-sidebar-copyright{display:none}.op-main{flex:1;min-width:0;display:flex;flex-direction:column;background-color:var(--op-sidebar);height:100%}.op-content{flex:1 1 auto;min-height:0;overflow:auto;padding:1.5rem 2rem 2rem;background-color:var(--op-sidebar)}.op-content--flush{overflow:hidden;padding:0}.op-agent-sidebar{width:0;min-width:0;height:100%;overflow:hidden;background:var(--op-card);border-left:0 solid var(--op-sidebar-border);transition:width .2s linear,min-width .2s linear,border-left-width .2s linear;z-index:20}.op-agent-sidebar.open{width:28rem;min-width:28rem;border-left-width:1px}.op-agent-sidebar>*{width:28rem;height:100%}.op-agent-sidebar-cache{width:28rem;height:100%}.op-agent-sidebar-cache[hidden]{display:none}.op-topbar{min-height:var(--op-topbar-height);height:var(--op-topbar-height);background-color:var(--op-background);border-bottom:1px solid var(--op-sidebar-border);display:flex;align-items:center;justify-content:space-between;gap:.25rem;padding:0 2rem}.op-topbar-spacer{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:.625rem}.op-topbar-title{min-width:0;display:flex;flex-direction:column;justify-content:center}.op-topbar-title .op-breadcrumb{min-width:0;margin-bottom:0;white-space:nowrap;overflow:hidden}.op-topbar-title .op-breadcrumb span:not(.op-breadcrumb-current){flex-shrink:0}.op-topbar-title .op-breadcrumb-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.op-topbar-title .op-page-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.25rem;font-weight:650}.op-topbar-actions{flex:0 0 auto;display:flex;align-items:center;gap:.25rem}.op-ghost-btn{display:inline-flex;align-items:center;gap:.375rem;height:2rem;padding:0 .625rem;border:none;border-radius:var(--op-radius-md);background:transparent;color:var(--op-foreground);font-family:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease;white-space:nowrap}.op-ghost-btn svg{width:16px;height:16px}.op-ghost-btn:hover{background-color:var(--op-accent);color:var(--op-accent-foreground)}.op-topbar-user{display:inline-flex;align-items:center;gap:.375rem;padding:0 .625rem;height:2rem;font-size:.8125rem;color:var(--op-muted-foreground)}.op-topbar-user svg{width:16px;height:16px}.op-topbar-divider{width:1px;height:1.25rem;background-color:var(--op-border);margin:0 .375rem}.op-mobile-trigger{display:none}.op-page{flex:1;overflow-y:auto;padding:2rem;display:flex;flex-direction:column;gap:1rem}.op-breadcrumb{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--op-muted-foreground);margin-bottom:.25rem}.op-breadcrumb-sep{opacity:.6}.op-breadcrumb-current{color:var(--op-foreground)}.op-page-title{font-size:1.875rem;line-height:2.25rem;font-weight:700;margin:0;color:var(--op-foreground)}.op-tab{border:none;background:transparent;font-family:inherit;font-size:.875rem;font-weight:500;color:var(--op-muted-foreground);padding:.25rem .5rem .75rem;border-bottom:1px solid var(--op-sidebar-border);cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.op-tab:hover{color:var(--op-foreground)}.op-tab.active{color:var(--op-foreground);border-bottom:2px solid var(--op-foreground);padding-bottom:calc(.75rem - 1px)}.op-login{width:100vw;height:100vh;display:flex;overflow:hidden}.op-login-banner{flex:2 1 40%;height:100%;position:relative;background-color:#181410;background-image:linear-gradient(to top,#0000009e,#0000002e 38%,#0000 60%),url(/img/login-banner.png);background-size:cover;background-position:center;box-shadow:inset 0 0 35px -13px #000000d9;display:flex;align-items:flex-end}.op-login-banner:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 35px -13px #000000d9;pointer-events:none}.op-login-banner-inner{position:relative;z-index:1;padding:3rem;color:#ffffffeb;text-shadow:0 1px 8px rgba(0,0,0,.6)}.op-login-banner-inner h2{color:#fff;font-size:2rem;margin:0 0 .5rem}.op-login-banner-inner p{color:#ffffffa6;font-size:.9375rem;margin:0}.op-login-panel{position:relative;flex:3 1 60%;height:100%;border-left:1px solid var(--op-border);z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;background-color:var(--op-background);padding:1rem;box-sizing:border-box;overflow:hidden}.op-login-mascot{position:absolute;right:5%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:.875rem;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:5}.op-login-mascot-frame{position:relative;animation:op-mascot-float 4s ease-in-out infinite}.op-login-mascot img{display:block;width:150px;height:150px;image-rendering:pixelated;border-radius:var(--op-radius-xl);border:4px solid var(--op-card);box-shadow:0 0 0 1px var(--op-border),0 18px 40px -16px color-mix(in oklab,var(--op-theme) 55%,rgba(0,0,0,.45));transform:rotate(4deg);background:var(--op-card)}.op-login-mascot-bubble{position:absolute;top:-1.875rem;right:-1.25rem;background:var(--op-card);color:var(--op-foreground);border:1px solid var(--op-border);border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;white-space:nowrap;box-shadow:0 6px 18px -8px #00000059;transform:rotate(2deg)}.op-login-mascot-tag{display:inline-flex;align-items:center;gap:.375rem;background:color-mix(in oklab,var(--op-theme) 12%,transparent);color:var(--op-theme);border:1px solid color-mix(in oklab,var(--op-theme) 30%,transparent);border-radius:999px;padding:.25rem .875rem;font-size:.8125rem;font-weight:600;letter-spacing:.03em}.op-login-mascot-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--op-success)}@keyframes op-mascot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@media(max-width:1440px){.op-login-mascot{right:3%}.op-login-mascot img{width:120px;height:120px}}@media(max-width:1180px){.op-login-mascot{display:none}}.op-login-brand{font-size:2.25rem;font-weight:700;color:var(--op-theme);letter-spacing:.02em;display:flex;align-items:center;gap:.75rem}.op-login-sub{font-size:1.125rem;color:var(--op-muted-foreground);margin:-.5rem 0 .5rem}.op-login-card{width:24rem;max-width:100%;background-color:var(--op-card);color:var(--op-card-foreground);border:1px solid var(--op-border);border-radius:var(--op-radius-xl);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;box-sizing:border-box}.op-login-card-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin:0}.op-login-card-title svg{width:18px;height:18px}.op-login-footer{font-size:.8125rem;color:var(--op-muted-foreground)}.op-field{display:flex;flex-direction:column;gap:.5rem}.op-field label{font-size:.875rem;font-weight:500;color:var(--op-foreground)}.op-alert-destructive{border:1px solid color-mix(in oklab,var(--op-destructive) 40%,transparent);background-color:color-mix(in oklab,var(--op-destructive) 8%,var(--op-background));color:var(--op-destructive);border-radius:var(--op-radius-md);padding:.625rem .75rem;font-size:.875rem}@media(max-width:1024px){.op-login-banner{display:none}.op-login-panel{border-left:none}}.yarn-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:2.25rem;padding:0 1rem;background-color:var(--op-primary);color:var(--op-primary-foreground);border:none;border-radius:var(--op-radius-md);font-family:inherit;font-size:.875rem;font-weight:500;line-height:1.25rem;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease;box-sizing:border-box}.yarn-button:hover{background-color:color-mix(in oklab,var(--op-primary) 90%,transparent)}.yarn-button:disabled{opacity:.5;pointer-events:none}.yarn-button.secondary{background-color:var(--op-background);color:var(--op-foreground);border:1px solid var(--op-border)}.yarn-button.secondary:hover{background-color:var(--op-accent);color:var(--op-accent-foreground)}.dark .yarn-button.secondary{background-color:color-mix(in oklab,var(--op-input) 30%,transparent);border-color:var(--op-input)}.dark .yarn-button.secondary:hover{background-color:color-mix(in oklab,var(--op-input) 50%,transparent)}.yarn-card{background:var(--op-card);border:1px solid var(--op-border);border-radius:var(--op-radius-sm);padding:1rem;box-shadow:none;color:var(--op-card-foreground);transition:border-color .15s ease;box-sizing:border-box}.yarn-card h1,.yarn-card h2,.yarn-card h3,.yarn-card h4,.yarn-card h5,.yarn-card h6{color:var(--op-card-foreground)}.yarn-card:hover{box-shadow:none;transform:none}.yarn-search-card{background:var(--op-card);border:1px solid var(--op-border);border-radius:var(--op-radius-sm);padding:1rem;display:flex;flex-direction:column;height:100%;transition:border-color .15s ease,background-color .15s ease;color:var(--op-card-foreground);box-sizing:border-box}.yarn-search-card:hover{box-shadow:none;border-color:var(--op-ring)}.yarn-search-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.yarn-package-name{color:var(--op-theme);font-weight:600;font-size:1rem;text-decoration:none;transition:color .15s ease}.yarn-package-name:hover{color:var(--op-theme-hovered)}.yarn-package-meta{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--op-muted-foreground)}.yarn-tag{display:inline-flex;align-items:center;background:var(--op-secondary);color:var(--op-secondary-foreground);border:1px solid transparent;padding:.125rem .5rem;border-radius:var(--op-radius-md);font-size:.75rem;font-weight:500;line-height:1rem;white-space:nowrap}.yarn-tag.ts{background:var(--op-highlight);color:#fff}.yarn-description{color:var(--op-muted-foreground);font-size:.875rem;line-height:1.5;margin-bottom:1.25rem;flex-grow:1}.yarn-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;border-top:1px solid var(--op-border);padding-top:.875rem}.op-section-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.op-section-bar h2{font-size:1.125rem;font-weight:600;margin:0}.op-section-bar-desc{font-size:.8125rem;color:var(--op-muted-foreground);margin:2px 0 0}.op-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1rem;align-items:stretch}.op-addon-card{position:relative;display:flex;flex-direction:column;background:var(--op-card);color:var(--op-card-foreground);border:1px solid var(--op-border);border-radius:var(--op-radius-md);cursor:pointer;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease;min-width:0}.op-addon-card:hover{border-color:var(--op-ring)}.op-addon-card.selected{border-color:var(--op-theme);box-shadow:0 0 0 1px var(--op-theme)}.op-addon-card-head{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1rem 0;min-width:0}.op-addon-icon{width:38px;height:38px;min-width:38px;border-radius:var(--op-radius-sm);background:linear-gradient(135deg,var(--op-theme),var(--op-theme-hovered));color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;-webkit-user-select:none;user-select:none;overflow:hidden}.op-addon-icon img{width:100%;height:100%;display:block;object-fit:cover}.op-addon-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.op-addon-name{font-size:.9375rem;font-weight:600;color:var(--op-foreground);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s ease}.op-addon-card:hover .op-addon-name{color:var(--op-theme)}.op-addon-sub{display:flex;align-items:center;gap:.5rem;min-width:0;font-size:.75rem;color:var(--op-muted-foreground)}.op-addon-version{font-family:var(--op-font-mono);font-size:.75rem;color:var(--op-muted-foreground);white-space:nowrap}.op-addon-namespace{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--op-font-mono)}.op-addon-desc{flex:1;padding:.625rem 1rem 1rem;margin:0;font-size:.8125rem;line-height:1.55;color:var(--op-muted-foreground);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}.op-addon-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;padding:.625rem .75rem;border-top:1px solid var(--op-border);background:color-mix(in oklab,var(--op-muted) 40%,transparent)}.op-addon-actions{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;min-width:0}.op-resource-view{min-width:0}.op-resource-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.op-resource-toolbar h2{margin:0;font-size:1.125rem;font-weight:600}.op-resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:1rem;align-items:stretch}.op-resource-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--op-border);border-radius:var(--op-radius-md);background:var(--op-card);color:var(--op-card-foreground);transition:border-color .15s ease,box-shadow .15s ease}.op-resource-card:hover{border-color:var(--op-ring);box-shadow:0 2px 10px color-mix(in oklab,var(--op-foreground) 8%,transparent)}.op-resource-preview{display:flex;width:100%;aspect-ratio:1;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--op-border);background:var(--op-muted)}.op-resource-preview img{display:block;width:100%;height:100%;padding:clamp(1rem,8%,1.75rem);object-fit:contain;image-rendering:pixelated}.op-resource-preview-fallback{display:flex;width:4rem;height:4rem;align-items:center;justify-content:center;border-radius:var(--op-radius-sm);background:var(--op-background);color:var(--op-muted-foreground);font-size:1.5rem;font-weight:700;-webkit-user-select:none;user-select:none}.op-resource-card-body{flex:1;min-width:0;padding:.875rem 1rem}.op-resource-card-body h3{margin:0;overflow:hidden;color:var(--op-foreground);font-size:.9375rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.op-resource-card-body p{margin:.375rem 0 0;overflow:hidden;color:var(--op-muted-foreground);font-family:var(--op-font-mono);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.op-resource-card-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.625rem .75rem;border-top:1px solid var(--op-border);background:color-mix(in oklab,var(--op-muted) 40%,transparent)}.op-resource-empty{grid-column:1 / -1}.op-mini-btn{display:inline-flex;align-items:center;gap:.25rem;height:1.75rem;padding:0 .5rem;border:1px solid var(--op-border);border-radius:var(--op-radius-sm);background:var(--op-background);color:var(--op-foreground);font-family:inherit;font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.op-mini-btn svg{width:14px;height:14px}.op-mini-btn:hover{background-color:var(--op-accent)}.op-mini-btn:disabled{opacity:.5;pointer-events:none}.op-mini-btn.destructive{color:var(--op-destructive)}.op-mini-btn.destructive:hover{background-color:color-mix(in oklab,var(--op-destructive) 8%,var(--op-background));border-color:color-mix(in oklab,var(--op-destructive) 40%,transparent)}.dark .op-mini-btn{background:color-mix(in oklab,var(--op-input) 30%,transparent)}.dark .op-mini-btn:hover{background:color-mix(in oklab,var(--op-input) 50%,transparent)}.op-badge{display:inline-flex;align-items:center;padding:.0625rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:500;line-height:1.1rem;white-space:nowrap;background:var(--op-secondary);color:var(--op-secondary-foreground);border:1px solid var(--op-border)}.op-badge.brand{background:color-mix(in oklab,var(--op-theme) 12%,transparent);color:var(--op-theme);border-color:color-mix(in oklab,var(--op-theme) 30%,transparent)}.op-badge.blue{background:color-mix(in oklab,var(--op-highlight) 12%,transparent);color:var(--op-highlight);border-color:color-mix(in oklab,var(--op-highlight) 30%,transparent)}.op-empty{grid-column:1 / -1;border:1px dashed var(--op-border);border-radius:var(--op-radius-md);padding:3rem 1rem;text-align:center;color:var(--op-muted-foreground);font-size:.875rem}@media(max-width:480px){.op-addon-foot{flex-direction:column;align-items:stretch}.op-addon-actions{justify-content:flex-start}}.op-subtle-label{font-size:.8125rem;font-weight:500;color:var(--op-muted-foreground);margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.op-user-item{position:relative;padding:.625rem 1rem;cursor:pointer;border-bottom:1px solid var(--op-border);color:var(--op-foreground);font-size:.875rem;transition:background-color .15s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.op-user-item:last-child{border-bottom:none}.op-user-item:hover{background-color:color-mix(in oklab,var(--op-muted) 50%,transparent)}.op-user-item.selected{background-color:var(--op-muted);font-weight:600}.op-user-item.selected:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:1.25rem;border-radius:2px;background-color:var(--op-theme)}.op-list-empty{padding:1.5rem 1rem;color:var(--op-muted-foreground);text-align:center;font-size:.875rem}.yarn-table tbody tr.op-row-checked{background-color:color-mix(in oklab,var(--op-theme) 8%,transparent)}.yarn-table tbody tr.op-row-checked:hover{background-color:color-mix(in oklab,var(--op-theme) 13%,transparent)}.op-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--op-highlight)}.yarn-search-input{background:transparent;border:1px solid var(--op-input);border-radius:var(--op-radius-md);padding:.4375rem .75rem;color:var(--op-foreground);width:100%;max-width:300px;min-width:120px;font-size:.875rem;font-family:inherit;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.dark .yarn-search-input{background:color-mix(in oklab,var(--op-input) 30%,transparent)}.yarn-search-input::placeholder{color:var(--op-muted-foreground)}.yarn-search-input:focus{outline:none;border-color:var(--op-ring);box-shadow:0 0 0 3px color-mix(in oklab,var(--op-ring) 35%,transparent);background:transparent}.yarn-form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.yarn-table{width:100%;border-collapse:collapse;background:transparent;border:none;border-radius:var(--op-radius-md);overflow:hidden;color:var(--op-foreground);font-size:.875rem}.yarn-table th{background-color:transparent;color:var(--op-foreground);font-weight:500;text-align:left;height:2.5rem;padding:0 .75rem;border-bottom:1px solid var(--op-border);white-space:nowrap}.yarn-table td{padding:.5rem .75rem;border-bottom:1px solid var(--op-border);color:var(--op-foreground);vertical-align:middle}.yarn-table tr:last-child td{border-bottom:none}.yarn-table tbody tr{transition:background-color .15s ease}.yarn-table tbody tr:hover{background-color:color-mix(in oklab,var(--op-muted) 50%,transparent)}.yarn-app{width:100%;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.yarn-main{width:100%;box-sizing:border-box;flex:1}.yarn-search{flex:1 1 auto;min-width:0;max-width:300px}@media(max-width:768px){.op-sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .2s linear;box-shadow:0 8px 24px #00000040}.op-sidebar.mobile-open{transform:translate(0);width:13rem;min-width:13rem}.op-sidebar-backdrop{position:fixed;inset:0;background:#0006;z-index:25}.op-agent-sidebar{position:fixed;top:0;right:0;bottom:0;width:min(100vw,24rem);min-width:min(100vw,24rem);border-left:1px solid var(--op-sidebar-border);transform:translate(100%);transition:transform .2s linear;z-index:24}.op-agent-sidebar.open{width:min(100vw,24rem);min-width:min(100vw,24rem);transform:translate(0)}.op-agent-sidebar>*{width:min(100vw,24rem)}.op-agent-sidebar-cache{width:min(100vw,24rem)}.op-mobile-trigger{display:inline-flex}.op-topbar{padding:0 .75rem}.op-page{padding:1rem}.op-page-title{font-size:1.5rem;line-height:2rem}}html,body,#app{margin:0;padding:0;height:100%;width:100%}body{font-family:var(--op-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,pre,kbd{font-family:var(--op-font-mono)}.markdown-body{min-width:0;overflow-wrap:anywhere}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body pre,.markdown-table-wrap{margin:.5rem 0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:.875rem 0 .5rem;line-height:1.25}.markdown-body h1{font-size:1.35em}.markdown-body h2{font-size:1.2em}.markdown-body h3{font-size:1.05em}.markdown-body ul,.markdown-body ol{padding-left:1.4rem}.markdown-body li+li{margin-top:.25rem}.markdown-body code{padding:.1rem .25rem;border-radius:var(--op-radius-sm);background:color-mix(in oklab,var(--op-muted) 70%,transparent);font-size:.92em}.markdown-body pre{max-width:100%;overflow-x:auto;padding:.75rem;border-radius:var(--op-radius-md);background:var(--op-background)}.markdown-body pre code{padding:0;background:transparent;white-space:pre}.markdown-table-wrap{max-width:100%;overflow-x:auto}.markdown-body table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.92em}.markdown-body th,.markdown-body td{padding:.375rem .5rem;border:1px solid var(--op-border);vertical-align:top}.markdown-body th{background:color-mix(in oklab,var(--op-muted) 70%,transparent);font-weight:600}
