.schema-canvas-wrap{--schema-canvas-grid-dot:color-mix(in srgb,var(--text-secondary) 28%,transparent);background:color-mix(in srgb,var(--bg-dark) 92%,rgba(var(--accent-blue-rgb),.2) 8%);border:1px solid rgba(var(--accent-blue-rgb),.22);border-radius:10px;contain:layout paint;cursor:default;flex:1 1;overflow:hidden;position:relative;touch-action:none}.schema-canvas-inner{left:0;position:absolute;top:0;will-change:transform;z-index:2}.schema-canvas-shell-layer{inset:0;pointer-events:none;position:absolute;z-index:1}.schema-canvas-zoom{position:relative}.schema-root-flow{contain:layout;min-height:2400px;min-width:3200px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schema-canvas-wrap--low-detail .schema-container-wrapper{will-change:transform}.schema-world-grid{inset:-12000px;overflow:hidden;pointer-events:none;position:absolute}.schema-world-grid__svg{display:block;height:100%;width:100%}.schema-child-wrap:has(.schema-add-child-menu),.schema-child-wrap:has(.schema-container-tag-dropdown),.schema-child-wrap:has(.schema-ep-block-topic-menu),.schema-root-flow>div:has(.schema-add-child-menu),.schema-root-flow>div:has(.schema-container-tag-dropdown),.schema-root-flow>div:has(.schema-ep-block-topic-menu){z-index:var(--z-drag-surface)!important /* !important needed: open menus must overlay all stacking contexts */}.schema-canvas-wrap--over,.schema-root-flow--over{background:rgba(var(--accent-blue-rgb),.03);outline:2px dashed var(--accent-blue);outline-offset:-8px}.schema-canvas-empty{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;inset:0;justify-content:center;padding:60px 24px;pointer-events:none;position:absolute;text-align:center;z-index:10}.schema-canvas-empty-icon{color:var(--text-secondary);margin-bottom:16px;opacity:.4}.schema-canvas-empty-title{font-size:16px;font-weight:700;margin:0 0 6px;opacity:.55}.schema-canvas-empty-hint{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0;max-width:280px;opacity:.7}.schema-canvas-watermark{align-items:center;color:var(--text-primary);display:flex;font-size:clamp(48px,7vw,220px);font-weight:700;inset:0;justify-content:center;letter-spacing:-.02em;opacity:.038;overflow:hidden;padding:0 40px;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;z-index:0}.schema-mosaic-toggle{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:99px;bottom:62px;cursor:pointer;height:30px;overflow:hidden;padding:0;pointer-events:auto;position:absolute;right:14px;transition:border-color .2s,width .25s cubic-bezier(.4,0,.2,1);width:76px;z-index:50}.schema-mosaic-toggle-knob{align-items:center;background:var(--accent);border-radius:50%;color:#fff;display:flex;height:24px;justify-content:center;left:3px;line-height:0;position:absolute;top:3px;transition:left .25s cubic-bezier(.4,0,.2,1),background .2s,transform .18s cubic-bezier(.4,0,.2,1);width:24px}.schema-mosaic-toggle:not(.schema-mosaic-toggle--on) .schema-mosaic-toggle-knob{left:49px}.schema-mosaic-toggle:hover .schema-mosaic-toggle-knob{background:var(--accent-blue-hover,var(--accent))}.schema-mosaic-toggle:active .schema-mosaic-toggle-knob{transform:scale(.88)}.schema-mosaic-toggle-label{color:var(--text-secondary,var(--text-muted));font-size:11px;font-weight:600;height:30px;line-height:30px;position:absolute;top:0;transition:opacity .15s ease;white-space:nowrap}.schema-mosaic-toggle--on .schema-mosaic-toggle-label{left:33px;right:6px;text-align:left}.schema-mosaic-toggle:not(.schema-mosaic-toggle--on) .schema-mosaic-toggle-label{left:6px;right:33px;text-align:right}.schema-vms-top-row{gap:2px}.schema-hover-focus-toggle,.schema-vms-top-row{align-items:center;display:flex;pointer-events:auto}.schema-hover-focus-toggle{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:99px;cursor:pointer;height:30px;overflow:hidden;padding:0;position:relative;transition:width .25s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);width:30px}.schema-hover-focus-knob{align-items:center;background:var(--bg-panel);border-radius:50%;color:var(--accent);display:flex;flex-shrink:0;height:24px;justify-content:center;line-height:0;margin-left:2px;transition:background .2s,color .2s;width:24px}.schema-hover-focus-toggle--on .schema-hover-focus-knob{background:var(--accent);color:#fff}.schema-hover-focus-label{color:var(--text-secondary,var(--text-muted));font-size:11px;font-weight:600;height:30px;left:32px;line-height:30px;opacity:0;position:absolute;top:0;transition:opacity .12s ease;white-space:nowrap}.schema-hover-focus-toggle:hover{width:76px}.schema-hover-focus-toggle:not(.schema-hover-focus-toggle--on):hover .schema-hover-focus-knob{background:var(--accent);color:#fff}.schema-hover-focus-toggle--on:hover .schema-hover-focus-knob{background:var(--bg-panel);color:var(--accent)}.schema-hover-focus-toggle:hover .schema-hover-focus-label{opacity:1;transition-delay:.1s}.schema-hover-focus-toggle:active .schema-hover-focus-knob{transform:scale(.88)}.schema-vms-group{align-items:flex-end;bottom:12px;display:flex;flex-direction:column;gap:8px;pointer-events:none;position:absolute;right:14px;z-index:50}.schema-vms-group .schema-mosaic-toggle,.schema-vms-group .schema-view-mode-slider{bottom:auto;left:auto;position:relative;right:auto;top:auto}.schema-vms-top-row:has(.schema-hover-focus-toggle:hover) .schema-mosaic-toggle{width:30px}.schema-vms-top-row:has(.schema-hover-focus-toggle:hover) .schema-mosaic-toggle-knob{bottom:0;left:0!important; /* !important needed: overrides left positioning from toggle on/off state */margin:auto;right:0;top:0;transition:right 0s,bottom 0s,margin 0s,left .25s cubic-bezier(.4,0,.2,1),background .2s,transform .18s cubic-bezier(.4,0,.2,1)}.schema-vms-top-row:has(.schema-hover-focus-toggle:hover) .schema-mosaic-toggle-label{opacity:0}.schema-view-mode-slider{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:9px;bottom:12px;display:flex;gap:4px;padding:5px 6px;pointer-events:auto;position:absolute;right:14px;z-index:50}.schema-vms-pin-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:22px;justify-content:center;opacity:0;overflow:hidden;padding:0;transition:width .2s ease 1s,opacity .15s ease 1s,color .12s ease,border-color .12s ease,background .12s ease;width:0}.schema-view-mode-slider:hover .schema-vms-pin-btn{opacity:1;transition-delay:0s;width:22px}.schema-vms-pin-btn:hover{background:var(--bg-hover);border-color:var(--border-color);color:var(--text-primary)}.schema-vms-pin-btn--active{background:color-mix(in srgb,var(--bg-subtle) 80%,rgba(var(--accent-blue-rgb),.15) 20%)!important; /* !important needed: overrides parent :hover selector specificity */border-color:var(--accent-blue)!important; /* !important needed: overrides parent :hover selector specificity */color:var(--accent-blue)!important /* !important needed: overrides parent :hover selector specificity */}.schema-vms-track{align-items:center;display:flex;gap:2px;position:relative}.schema-vms-thumb{background:var(--accent);border-radius:6px;height:28px;left:0;opacity:1;pointer-events:none;position:absolute;top:0;width:28px;will-change:left,width;z-index:0}.schema-vms-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;position:relative;transition:color .15s,border-color .15s;width:28px;z-index:1}.schema-vms-btn:hover{border-color:var(--border-color)}.schema-vms-btn--active{color:var(--bg-panel)}[data-theme=dark] .schema-vms-btn--active{color:#fff}.schema-zoom-group{align-items:flex-start;bottom:12px;display:flex;flex-direction:column;gap:6px;left:14px;pointer-events:none;position:absolute;z-index:50}.schema-zoom-bottom-row{align-items:center;display:flex;flex-direction:row;gap:6px}.schema-minimap-panel{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:9px;height:176px;opacity:0;overflow:hidden;pointer-events:none;position:relative;transform:translateY(6px);transition:opacity .22s ease 1s,transform .22s ease 1s,pointer-events 0s linear 1s;width:176px}.schema-zoom-group--pinned .schema-minimap-panel,.schema-zoom-group:has(.schema-minimap-panel:hover) .schema-minimap-panel,.schema-zoom-group:has(.schema-zoom-controls:hover) .schema-minimap-panel{opacity:1;pointer-events:auto;transform:none;transition:opacity .22s ease 0s,transform .22s ease 0s,pointer-events 0s linear 0s}.schema-minimap-canvas{display:block;height:176px;width:176px}.schema-minimap-fit-btn{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:5px;bottom:6px;color:var(--text-secondary);cursor:pointer;display:flex;height:22px;justify-content:center;padding:0;position:absolute;right:6px;transition:background .12s,border-color .12s,color .12s;width:22px}.schema-minimap-fit-btn:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.schema-zoom-controls{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:9px;box-shadow:none;display:flex;gap:4px;padding:5px 8px;pointer-events:auto;position:relative}.schema-zoom-controls:before{content:"";height:10px;left:0;position:absolute;right:0;top:-10px}.schema-nav-divider{background:var(--border-color);display:inline-block;flex-shrink:0;height:14px;margin:0 4px;opacity:.7;width:1px}.schema-crumb-wrapper{align-items:center;display:flex;position:relative}.schema-nav-crumb{align-items:center;background:none;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:11px;font-weight:500;gap:5px;margin:0 2px;max-width:120px;overflow:hidden;padding:2px 5px;text-overflow:ellipsis;transition:background .12s,color .12s;white-space:nowrap}.schema-nav-crumb:hover{background:var(--bg-subtle);color:var(--text-primary)}.schema-nav-crumb:hover .schema-nav-label{border-bottom:2px solid var(--nav-active-color,var(--accent-blue));opacity:.6;padding-bottom:1px}.schema-nav-crumb:not(.schema-nav-crumb--active){margin-left:0;margin-right:0;max-width:0;opacity:0;padding-left:0;padding-right:0;pointer-events:none;transition:max-width .32s cubic-bezier(.4,0,.2,1) 1s,padding-left .32s ease 1s,padding-right .32s ease 1s,margin-left .32s ease 1s,margin-right .32s ease 1s,opacity .22s ease 1s,background .12s ease 0s,color .12s ease 0s}.schema-canvas-nav--pinned .schema-nav-crumb:not(.schema-nav-crumb--active),.schema-crumb-wrapper:hover .schema-nav-crumb:not(.schema-nav-crumb--active){margin-left:2px;margin-right:2px;max-width:130px;opacity:1;padding-left:5px;padding-right:5px;pointer-events:auto;transition:max-width .32s cubic-bezier(.4,0,.2,1) 0s,padding-left .32s ease 0s,padding-right .32s ease 0s,margin-left .32s ease 0s,margin-right .32s ease 0s,opacity .22s ease 0s,background .12s ease 0s,color .12s ease 0s}.schema-canvas-nav--pinned .schema-nav-sep{max-width:20px;opacity:.5;transition:max-width .32s cubic-bezier(.4,0,.2,1) 0s,opacity .22s ease 0s}.schema-nav-pin-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:18px;justify-content:center;margin-left:0;opacity:0;overflow:hidden;padding:0;transition:width .2s ease 1s,margin-left .2s ease 1s,opacity .15s ease 1s,color .12s ease,border-color .12s ease,background .12s ease;width:0}.schema-canvas-nav:hover .schema-nav-pin-btn{margin-left:3px;opacity:1;transition-delay:0s;width:18px}.schema-nav-pin-btn:hover{background:var(--bg-subtle);border-color:var(--border-color);color:var(--text-primary)}.schema-nav-pin-btn--active{background:color-mix(in srgb,var(--bg-subtle) 80%,rgba(var(--accent-blue-rgb),.15) 20%)!important; /* !important needed: overrides parent :hover selector specificity */border-color:var(--accent-blue)!important; /* !important needed: overrides parent :hover selector specificity */color:var(--accent-blue)!important /* !important needed: overrides parent :hover selector specificity */}.schema-nav-crumb--active{color:var(--text-primary);cursor:default}.schema-nav-label{display:inline}.schema-nav-label--active{border-bottom:2px solid var(--nav-active-color,var(--accent-blue));padding-bottom:1px}.schema-nav-crumb--root{color:var(--text-muted)}.schema-nav-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:7px;width:7px}.schema-nav-badge{align-items:center;background:var(--bg-input,var(--bg-subtle));border-radius:50%;color:var(--text-muted);display:inline-flex;flex-shrink:0;font-size:9px;font-weight:700;height:15px;justify-content:center;line-height:1;transition:background .12s,color .12s;width:15px}.schema-nav-badge--active{background:var(--nav-active-color,var(--accent-blue));color:#fff}.schema-nav-sep{color:var(--text-muted);flex-shrink:0;font-size:11px;line-height:1;max-width:0;opacity:0;overflow:hidden;transition:max-width .32s cubic-bezier(.4,0,.2,1) 1s,opacity .22s ease 1s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schema-crumb-wrapper:hover .schema-nav-sep{max-width:20px;opacity:.5;transition:max-width .32s cubic-bezier(.4,0,.2,1) 0s,opacity .22s ease 0s}.schema-canvas-add-btn{align-items:center;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;bottom:12px;box-shadow:none;cursor:pointer;display:inline-flex;font-size:14px;font-weight:400;gap:8px;height:40px;left:12px;padding:0 14px 0 10px;position:absolute;z-index:52}.schema-canvas-add-btn:hover{background:color-mix(in srgb,var(--bg-panel) 92%,rgba(var(--accent-blue-rgb),.08) 8%);border-color:rgba(var(--accent-blue-rgb),.42)}.schema-canvas-add-btn-plus{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:7px;color:var(--text-secondary);display:inline-flex;font-size:18px;height:22px;justify-content:center;line-height:1;width:22px}.schema-drill-back-btn{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(0,0,0,.52);border:none;border-radius:8px 8px 0 0;bottom:100%;color:hsla(0,0%,100%,.9);cursor:pointer;display:flex;font-size:10.5px;font-weight:600;gap:5px;justify-content:center;left:0;letter-spacing:.01em;opacity:0;overflow:hidden;padding:5px 12px;pointer-events:none;position:absolute;right:0;text-overflow:ellipsis;transform:translateY(6px);transition:opacity .15s,transform .15s,background .1s;white-space:nowrap;z-index:12}.schema-container-wrapper:hover .schema-drill-back-btn{opacity:1;pointer-events:auto;transform:translateY(0)}.schema-drill-back-btn:hover{background:rgba(0,0,0,.72)}.schema-drill-back-arrow{flex-shrink:0;font-size:12px;line-height:1}.schema-drill-back-name{font-style:italic;max-width:140px;opacity:.85;overflow:hidden;text-overflow:ellipsis}.schema-container-block{background:var(--bg-panel);border:none;border-radius:10px;box-shadow:none;max-width:460px;min-width:50px;overflow:visible;position:relative;transition:box-shadow .15s}.schema-container-block:after{border-radius:inherit;box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) var(--header-color);content:"";inset:0;pointer-events:none;position:absolute;z-index:10}.schema-container-block--root{min-width:240px}.schema-container-block--drop-target{outline:2px dashed var(--accent-blue);outline-offset:3px;transition:outline .08s}.schema-container-block--drop-target>.schema-container-header{background:var(--header-bg,var(--header-color));filter:brightness(1.18)}.schema-container-block--drop-target>.schema-container-body{background:hsla(0,0%,100%,.06)}.schema-container-block:not(.schema-container-block--root){max-width:100%;min-width:0}.schema-container-header{align-items:center;border-bottom:1px solid rgba(0,0,0,.07);border-radius:10px 10px 0 0;cursor:-webkit-grab;cursor:grab;display:flex;gap:7px;min-height:36px;padding:7px 8px 7px 10px;transition:background .18s,border-radius .15s}.schema-container-wrapper--in-drill:hover>.schema-container-block:not(.schema-container-block--collapsed)>.schema-container-header{border-radius:0 0 0 0}.schema-container-block--collapsed>.schema-container-header{border-radius:10px}.schema-container-block--selected:after{animation:schema-selection-pulse-container 1.8s ease-in-out infinite}.schema-container-block--focus-outline{background:transparent;box-shadow:none;min-width:0;padding:5px}.schema-container-block--focus-outline:after{border-radius:inherit;box-shadow:inset 0 0 0 calc(3px / var(--canvas-zoom)) var(--header-color);opacity:.55}.schema-container-block--block-sibling-pulse:after{animation:schema-block-sibling-pulse 1.1s ease-in-out infinite}@keyframes schema-block-sibling-pulse{0%{box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) var(--header-color),0 0 0 0 color-mix(in srgb,var(--header-color) 40%,transparent)}50%{box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) var(--header-color),0 0 0 calc(5px / var(--canvas-zoom)) color-mix(in srgb,var(--header-color) 40%,transparent)}to{box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) var(--header-color),0 0 0 0 color-mix(in srgb,var(--header-color) 40%,transparent)}}@keyframes schema-selection-pulse-container{0%{box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) var(--header-color)}50%{box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) color-mix(in srgb,var(--header-color) 10%,transparent)}to{box-shadow:inset 0 0 0 calc(2.25px / var(--canvas-zoom)) var(--header-color)}}.schema-move-grip{align-items:center;border-radius:4px;cursor:-webkit-grab;cursor:grab;display:flex;flex-shrink:0;height:24px;justify-content:center;margin-right:2px;opacity:.7;transition:opacity .12s,background .12s;width:18px}.schema-move-grip:hover{background:hsla(0,0%,100%,.2);opacity:1}.schema-container-collapse{align-items:center;background:hsla(0,0%,100%,.3);border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:9px;height:20px;justify-content:center;padding:0;transition:background .12s;width:20px}.schema-container-collapse:hover{background:hsla(0,0%,100%,.5)}.schema-container-name{background:radial-gradient(ellipse at center,var(--header-color) 35%,transparent 85%);cursor:-webkit-grab;cursor:grab;flex:0 1 auto;overflow:hidden;padding:4px 14px;text-overflow:ellipsis;text-shadow:none;white-space:nowrap}.schema-container-name,.schema-container-name-input{color:#fff;font-size:13px;font-weight:700;min-width:0}.schema-container-name-input{background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,100%,.7);border-radius:5px;flex:1 1;padding:2px 7px}.schema-container-name-input:focus{background:hsla(0,0%,100%,.35);outline:none}.schema-container-badge-area{align-items:center;display:flex;flex-shrink:0;gap:4px;position:relative}.schema-container-badge{background:rgba(0,0,0,.18);border:none;border-radius:5px;color:hsla(0,0%,100%,.9);flex-shrink:0;font-size:11px;font-weight:500;padding:3px 8px;white-space:nowrap}.schema-container-badge--tag-trigger{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:4px;outline:none;transition:background .2s ease,color .2s ease}.schema-container-badge--tag-trigger:hover{background:hsla(0,0%,100%,.2);color:#fff}.schema-tag-trigger-arrow{display:inline-block;font-size:9px;line-height:1;opacity:.75;transition:transform .15s ease}.schema-container-tag-chip{color:hsla(0,0%,100%,.6);flex-shrink:0;font-size:10px;font-weight:500;white-space:nowrap}.schema-container-tag-dropdown{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-md)!important; /* !important needed: dropdown must always show shadow regardless of parent */display:flex;flex-direction:column;gap:2px;left:0;max-height:240px;max-width:250px;min-width:170px;overflow-y:auto;padding:6px;position:absolute;top:calc(100% + 8px);z-index:300}.schema-tag-dropdown-search{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;flex-shrink:0;font-size:12px;margin-bottom:4px;outline:none;padding:5px 8px;transition:border-color .15s;width:100%}.schema-tag-dropdown-search:focus{border-color:var(--accent-blue)}.schema-container-tag-option{align-items:center;border-radius:6px;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:10px;overflow:hidden;padding:7px 10px;text-overflow:ellipsis;transition:background .15s,color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.schema-container-tag-option input[type=checkbox]{accent-color:var(--accent-blue);cursor:pointer;flex-shrink:0;height:14px;width:14px}.schema-tag-dropdown-empty{color:var(--text-secondary);display:block;font-size:11.5px;font-style:italic;padding:6px 8px}.schema-add-child-menu{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px;max-height:260px;max-width:240px;min-width:180px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:300}.schema-add-child-new{align-items:center;background:rgba(var(--accent-blue-rgb),.08);border:1px solid rgba(var(--accent-blue-rgb),.28);border-radius:7px;color:var(--accent-blue);cursor:pointer;display:flex;font-size:12px;font-weight:700;gap:7px;letter-spacing:.01em;padding:8px 11px;text-align:left;transition:background .15s,border-color .15s,color .15s;width:100%}.schema-add-child-divider{background:var(--border-color);flex-shrink:0;height:1px;margin:3px 0}.schema-add-child-search{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;color:var(--text-primary);flex-shrink:0;font-size:12px;margin-bottom:2px;outline:none;padding:5px 8px;transition:border-color .15s;width:100%}.schema-add-child-search:focus{border-color:var(--accent-blue)}.schema-add-child-option{background:transparent;border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;display:block;font-size:12px;font-weight:500;overflow:hidden;padding:6px 10px;text-align:left;text-overflow:ellipsis;transition:background .12s;white-space:nowrap;width:100%}.schema-add-child-empty{color:var(--text-secondary);display:block;font-size:11.5px;font-style:italic;padding:6px 8px}.schema-header-right{align-items:center;display:flex;flex:1 1;gap:7px;min-width:0;position:relative}.schema-badge-ticker{align-items:center;display:flex;inset:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);overflow:hidden;pointer-events:none;position:absolute}.schema-badge-ticker-inner{align-items:center;animation:schema-ticker-scroll 13.33s linear infinite;display:inline-flex;gap:6px;white-space:nowrap;will-change:transform}@keyframes schema-ticker-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.schema-badge-ticker--static{-webkit-mask-image:none;mask-image:none}.schema-badge-ticker--static .schema-badge-ticker-inner{animation:none;gap:5px}.schema-badge-ticker-spacer{display:inline-block;flex-shrink:0;width:60px}.schema-badge-ticker-item{color:hsla(0,0%,100%,.82);font-size:10px;font-weight:500}.schema-badge-ticker-item--tag{background:rgba(0,0,0,.18);border-radius:4px;color:hsla(0,0%,100%,.9);font-weight:600;padding:1px 5px}.schema-badge-ticker-sep{color:hsla(0,0%,100%,.4);font-size:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schema-container-actions{align-items:center;display:flex;flex-shrink:0;gap:2px;opacity:0;pointer-events:none;position:relative;transition:opacity .15s;z-index:20}.schema-container-header:hover .schema-container-actions{opacity:1;pointer-events:auto}.schema-ctn-action{align-items:center;background:hsla(0,0%,100%,.18);border:none;border-radius:5px;color:hsla(0,0%,100%,.9);cursor:pointer;display:flex;flex-shrink:0;font-size:13px;height:22px;justify-content:center;padding:0;transition:background .12s,color .12s;width:22px}.schema-ctn-action:hover{background:hsla(0,0%,100%,.38);color:#fff}.schema-ctn-action--delete:hover{background:rgba(200,30,30,.7)}.schema-container-body{background:var(--bg-subtle);border-radius:0 0 10px 10px;display:flex;flex-direction:column;gap:8px;min-height:44px;padding:10px;transition:background .12s,outline .12s}.schema-container-body--over{background:rgba(var(--accent-blue-rgb),.07);outline:2px dashed var(--accent-blue);outline-offset:-4px}.schema-container-empty{align-items:center;border:1.5px dashed var(--border-color);border-radius:7px;color:var(--text-secondary);display:flex;font-size:11.5px;font-style:italic;justify-content:center;opacity:.7;padding:12px 8px;text-align:center}.schema-endpoint-block{align-items:center;background:var(--bg-panel);border:1.5px solid var(--border-color);border-radius:7px;cursor:-webkit-grab;cursor:grab;display:flex;gap:7px;overflow:visible;padding:6px 8px;position:relative;transition:border-color .12s,box-shadow .12s}.schema-endpoint-block:hover{border-color:#94a3b8;box-shadow:none}.schema-endpoint-block--selected{animation:schema-selection-pulse-ep 1.8s ease-in-out infinite;background:color-mix(in srgb,var(--ep-color) 8%,transparent)!important; /* !important needed: selection highlight must override all state backgrounds */box-shadow:none!important /* !important needed: design spec — flat elevation during selection */}@keyframes schema-selection-pulse-ep{0%{border-color:var(--ep-color)}50%{border-color:var(--ep-color)}to{border-color:var(--ep-color)}}.schema-ep-block-pill{border-radius:4px;color:#fff;flex-shrink:0;font-family:Consolas,Fira Code,monospace;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 5px;position:relative;white-space:nowrap}.schema-ep-block-pill-dot{background:#facc15;border:1.5px solid #fff;border-radius:50%;height:8px;left:-4px;pointer-events:none;position:absolute;top:-4px;width:8px}.schema-ep-pill-sync-wrap{align-items:stretch;display:inline-flex;flex-shrink:0;position:relative}.schema-ep-block-pill--sync{align-items:center;cursor:pointer;display:inline-flex;justify-content:center;min-width:26px;transition:background .12s}.schema-ep-sync-dot{border:1.5px solid rgba(0,0,0,.3);border-radius:50%;bottom:-3px;flex-shrink:0;height:6px;pointer-events:none;position:absolute;right:-3px;width:6px}.schema-ep-sync-dot--current-only{background:#94a3b8}.schema-ep-sync-dot--partial{background:#fb923c}.schema-ep-sync-dot--all{background:#4ade80}@keyframes sync-circle-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes sync-arrow-up-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes sync-arrow-down-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes sync-arrow-up-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes sync-arrow-down-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.schema-ep-sync-float{align-items:center;display:flex;flex-direction:column;gap:3px;left:50%;pointer-events:all;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:60}.schema-ep-sync-btn--bare{align-items:center;background:transparent;border:none;color:var(--ep-color);cursor:pointer;display:flex;filter:brightness(.9);justify-content:center;line-height:0;margin:0;padding:0;transition:filter .1s,transform .1s}.schema-ep-sync-btn--bare:hover{filter:brightness(1.3);transform:scaleY(1.15)}.schema-ep-sync-float>.schema-ep-sync-btn--bare:first-child{animation:sync-arrow-up-in .09s ease-out backwards}.schema-ep-sync-float>.schema-ep-sync-btn--bare:last-child{animation:sync-arrow-down-in .09s ease-out backwards}.schema-ep-sync-float--leaving>.schema-ep-sync-btn--bare:first-child{animation:sync-arrow-up-out .09s ease-in forwards}.schema-ep-sync-float--leaving>.schema-ep-sync-btn--bare:last-child{animation:sync-arrow-down-out .09s ease-in forwards}.schema-ep-sync-btn--circle{align-items:center;background:var(--ep-color);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:17px;justify-content:center;padding:0;transition:filter .1s;width:17px}.schema-ep-sync-btn--circle:hover{filter:brightness(1.2)}.schema-ep-sync-dropdown{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:6px;left:0;max-width:260px;min-width:190px;padding:6px;position:absolute;top:calc(100% + 4px);z-index:140}.schema-ep-sync-dropdown-title{color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.06em;margin-bottom:5px;padding:0 2px;text-transform:uppercase}.schema-ep-sync-dropdown-item{align-items:center;border-radius:3px;color:var(--text-primary);cursor:pointer;display:flex;font-size:11.5px;gap:7px;padding:3px 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schema-ep-sync-dropdown-item:hover{background:hsla(0,0%,100%,.05)}.schema-ep-sync-dropdown-item input[type=checkbox]{accent-color:var(--accent-blue);flex-shrink:0}.schema-ep-sync-dropdown-footer{border-top:1px solid var(--border-subtle);display:flex;gap:6px;margin-top:7px;padding-top:7px}.schema-ep-sync-dropdown-footer button{background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);cursor:pointer;flex:1 1;font-size:11px;font-weight:600;padding:4px 8px;transition:background .1s,color .1s}.schema-ep-sync-dropdown-footer button:hover{background:hsla(0,0%,100%,.07)}.schema-ep-sync-dropdown-footer button:first-child{background:var(--accent-blue);border-color:transparent;color:#fff}.schema-ep-sync-dropdown-footer button:first-child:hover{background:color-mix(in srgb,var(--accent-blue) 85%,#fff)}.schema-ep-block-id{background:var(--bg-dark);border-radius:4px;color:var(--text-secondary);flex-shrink:0;font-family:Consolas,Fira Code,monospace;font-size:10px;font-weight:700;padding:2px 5px;white-space:nowrap}.schema-ep-block-name{flex:1 1;font-size:12.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-ep-block-icon{flex-shrink:0;display:inline-flex;align-items:center;color:var(--text-secondary);opacity:.8}.schema-ep-block-conflict{display:inline-flex;min-width:16px;height:16px;padding:0 4px;border-radius:4px;background:#c0392b;color:#ffffff;font-size:.66rem;font-weight:700;line-height:1;cursor:help}.schema-ep-block-conflict,.schema-ep-block-remove{flex-shrink:0;align-items:center;justify-content:center}.schema-ep-block-remove{background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:12px;height:18px;opacity:.5;padding:0;transition:background .1s,color .1s,opacity .1s;width:18px}.schema-ep-block-remove:hover{background:var(--accent-red);color:#fff;opacity:1}.schema-ep-block-condition{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--ep-color,var(--accent-blue));cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:18px;justify-content:center;opacity:.65;padding:0;transition:background .1s,opacity .1s;width:18px}.schema-ep-block-condition:hover{background:color-mix(in srgb,var(--ep-color,var(--accent-blue)) 14%,transparent);opacity:1}.schema-canvas-wrap--drawing{cursor:crosshair!important /* !important needed: drawing mode must override all child cursors */}.schema-canvas-wrap--drawing *{cursor:crosshair!important; /* !important needed: drawing mode must override all child cursors */pointer-events:none!important /* !important needed: drawing mode disables all child interactions */}.schema-canvas-wrap--drawing .schema-context-menu,.schema-canvas-wrap--drawing .schema-ctx-overlay{pointer-events:auto!important /* !important needed: context menu must remain interactive during drawing */}.schema-draw-rect{border-radius:4px;pointer-events:none;position:absolute;z-index:var(--z-overlay)}.schema-draw-rect--group{background:rgba(46,125,71,.09);border:2px dashed #2e7d47}.schema-draw-rect--select{background:rgba(var(--accent-blue-rgb),.07);border:2px dashed var(--accent-blue)}.schema-node-group{background:rgba(120,130,145,.07);border:1.5px solid rgba(120,130,145,.45);border-radius:10px;box-sizing:border-box;pointer-events:none;position:absolute;z-index:0}.schema-node-group-header{align-items:center;background:rgba(120,130,145,.12);border-bottom:1.5px solid rgba(120,130,145,.3);border-radius:8px 8px 0 0;cursor:-webkit-grab;cursor:grab;display:flex;gap:6px;justify-content:space-between;padding:3px 6px 3px 8px;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schema-node-group-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-node-group-label,.schema-node-group-label-input{color:rgba(140,150,165,.9);flex:1 1;font-size:11px;font-weight:600}.schema-node-group-label-input{background:transparent;border:none;min-width:0;outline:none;padding:0}.schema-node-group-delete{align-items:center;background:none;border:none;border-radius:3px;color:rgba(140,150,165,.7);cursor:pointer;display:flex;flex-shrink:0;font-size:13px;height:16px;justify-content:center;line-height:1;opacity:0;padding:0;transition:opacity .12s,background .12s;width:16px}.schema-node-group-header:hover .schema-node-group-delete{opacity:.7}.schema-node-group-delete:hover{background:rgba(120,130,145,.2);opacity:1!important}.schema-container-wrapper--selected>*{border-radius:8px;outline:2.5px solid var(--accent-blue);outline-offset:2px}.schema-text-label{display:inline-block;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2}.schema-text-label-inner{align-items:flex-start;display:flex;flex-direction:column;gap:2px;position:relative}.schema-text-label-corner{background:var(--accent-blue);border:1.5px solid #fff;border-radius:2px;height:8px;opacity:0;pointer-events:auto;position:absolute;transition:opacity .12s;width:8px;z-index:10}.schema-text-label:hover .schema-text-label-corner{opacity:.75}.schema-text-label-corner:hover{opacity:1!important}.schema-text-label-corner--tl{cursor:nwse-resize;left:-4px;top:-4px}.schema-text-label-corner--tr{cursor:nesw-resize;right:-4px;top:-4px}.schema-text-label-corner--bl{bottom:-4px;cursor:nesw-resize;left:-4px}.schema-text-label-corner--br{bottom:-4px;cursor:nwse-resize;right:-4px}.schema-text-label-body{cursor:-webkit-grab;cursor:grab}.schema-text-label-text{pointer-events:none;white-space:pre-wrap}.schema-text-label-text,.schema-text-label-textarea{color:var(--text-secondary);font-size:var(--label-font-size);font-weight:600;line-height:1.2}.schema-text-label-textarea{background:var(--bg-panel);border:1.5px solid var(--accent-blue);border-radius:4px;min-height:1.4em;min-width:80px;outline:none;padding:2px 4px;pointer-events:auto;resize:none}.schema-text-label-controls{align-items:center;cursor:default;display:flex;gap:3px;opacity:0;pointer-events:auto;transition:opacity .12s}.schema-text-label:hover .schema-text-label-controls{opacity:1}.schema-text-label-size-btn{background:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:10px;font-weight:600;line-height:1.4;padding:1px 5px;transition:background .1s}.schema-text-label-delete{align-items:center;background:none;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;height:18px;justify-content:center;padding:0;transition:background .1s,color .1s;width:18px}.schema-text-label-delete:hover{background:color-mix(in srgb,var(--accent-red) 12%,transparent);color:var(--accent-red)}.schema-confirm-overlay{background:color-mix(in srgb,var(--text-primary) 22%,transparent);inset:0;position:fixed;z-index:100020}.schema-confirm-dialog{background:var(--bg-panel);border:1.5px solid var(--border-color);border-radius:12px;box-shadow:none;display:flex;flex-direction:column;gap:12px;left:50%;padding:14px 14px 12px;position:fixed;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 28px));z-index:100021}.schema-confirm-head{align-items:flex-start;display:flex;gap:10px}.schema-confirm-icon{align-items:center;background:color-mix(in srgb,var(--accent-orange) 16%,transparent);border:1px solid var(--accent-orange);border-radius:7px;color:var(--accent-orange);display:inline-flex;flex-shrink:0;height:26px;justify-content:center;width:26px}.schema-confirm-text{min-width:0}.schema-confirm-title{font-size:14px;font-weight:700;margin:0 0 2px}.schema-confirm-message{color:var(--text-secondary);font-size:12.5px;line-height:1.5;margin:0}.schema-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.schema-confirm-btn{border:1px solid var(--border-color);border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:600;padding:6px 12px;transition:background .12s,border-color .12s,color .12s}.schema-confirm-btn--cancel{background:var(--bg-subtle)}.schema-confirm-btn--danger{background:color-mix(in srgb,var(--accent-red) 10%,transparent);border-color:var(--accent-red);color:var(--accent-red)}.schema-confirm-btn--danger:hover{background:var(--accent-red);border-color:var(--accent-red);color:#fff}.schema-confirm-btn--save{background:color-mix(in srgb,var(--accent-green) 10%,transparent);border-color:var(--accent-green);color:var(--accent-green)}.schema-confirm-btn--save:hover{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.schema-confirm-btn--primary:hover{background:var(--accent-blue-hover);border-color:var(--accent-blue-hover)}@media (min-width:1024px){.database-desc,.database-header h1,.schema-page-header h1{display:none}.database-page .database-header,.endpoints-page .database-header{gap:0}.endpoints-page .database-header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px}.database-page .database-header>div:first-child,.endpoints-page .endpoints-header-main.endpoints-header-main--no-chips{display:none}.endpoints-page .endpoints-header-main.endpoints-header-main--has-chips{flex:0 0 auto;margin-bottom:0;margin-left:auto;order:2}.endpoints-page .cep-toolbar{flex:1 1 auto;flex-wrap:nowrap;min-width:0;order:1}.schema-page-header{padding-bottom:8px;padding-top:8px}.schema-page-header>div:first-child{display:none}}@container panel (max-height: 260px){.composer-el-header,.view-el-header{background:transparent;border-bottom:none;display:block;inset:0;padding:0;pointer-events:none;position:absolute;z-index:999}.view-element:not(:hover):not(:focus-within) .view-el-header-actions{display:none!important}.view-element--has-conditions:before{display:none}.title-pos-top-left{left:6px;top:6px}.title-pos-top-center{left:50%;top:6px;transform:translateX(-50%)}.title-pos-top-right{right:6px;top:6px}.title-pos-center-left{left:6px;top:50%;transform:translateY(-50%)}.title-pos-center-right{right:6px;top:50%;transform:translateY(-50%)}.title-pos-bottom-left{bottom:6px;left:6px}.title-pos-bottom-center{bottom:6px;left:50%;transform:translateX(-50%)}.title-pos-bottom-right{bottom:6px;right:6px}.composer-el-title,.composer-el-title-input,.view-el-title{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;box-shadow:none;cursor:-webkit-grab;cursor:grab;display:inline-block;font-size:12px;padding:3px 8px;pointer-events:auto;position:absolute;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:var(--z-drag-cursor)}.view-el-title{align-items:center;display:inline-flex;gap:6px}.composer-el-title,.composer-el-title-input,.view-el-title{max-width:calc(100% - 12px)}.view-element:not(:hover):not(:focus-within) .view-el-title--compact-has-conditions:before{background:var(--accent-orange);border-radius:999px;content:"";flex:0 0 auto;height:6px;width:6px}.view-element:not(:hover):not(:focus-within) .view-el-title--compact-has-date:after{background:currentColor;content:"";flex:0 0 auto;height:10px;margin-left:1px;opacity:.62;width:10px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='3.5' width='11' height='10' rx='1.5'/%3E%3Cpath d='M5 2.5v2M11 2.5v2M2.5 6.5h11'/%3E%3C/svg%3E") center /contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='3.5' width='11' height='10' rx='1.5'/%3E%3Cpath d='M5 2.5v2M11 2.5v2M2.5 6.5h11'/%3E%3C/svg%3E") center /contain no-repeat}.composer-el-title:active,.view-el-title:active{cursor:-webkit-grabbing;cursor:grabbing}.composer-el-title-input{cursor:text;touch-action:auto;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.composer-el-actions{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;padding:2px;pointer-events:auto;position:absolute;right:6px;top:6px}.composer-el-body,.view-el-body{height:100%}.composer-element:focus-within .composer-el-header,.composer-element:hover .composer-el-header{align-items:center;background:var(--bg-subtle);border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;display:flex;inset:auto;justify-content:space-between;padding:7px 10px 6px;pointer-events:auto;position:static;z-index:auto}.view-element:focus-within .view-el-header,.view-element:hover .view-el-header{align-items:center;background:var(--bg-subtle);border-bottom:1px solid var(--border-color);display:flex;inset:auto;justify-content:space-between;padding:10px 12px 10px 18px;pointer-events:auto;position:static;z-index:auto}.view-element:focus-within .view-el-header-actions,.view-element:hover .view-el-header-actions{display:inline-flex!important}.composer-element:focus-within .composer-el-title,.composer-element:focus-within .composer-el-title-input,.composer-element:hover .composer-el-title,.composer-element:hover .composer-el-title-input,.view-element:focus-within .view-el-title,.view-element:hover .view-el-title{left:auto;right:auto;top:auto;bottom:auto;transform:none;z-index:auto}.composer-element:focus-within .composer-el-title,.composer-element:hover .composer-el-title,.view-element:focus-within .view-el-title,.view-element:hover .view-el-title{background:transparent;border:none;border-radius:0;cursor:inherit;padding:0;position:static;touch-action:auto;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.composer-element:focus-within .composer-el-title-input,.composer-element:hover .composer-el-title-input{border:1px solid var(--accent-blue);border-radius:4px;cursor:text;flex:1 1;font-size:12.5px;font-weight:600;min-width:0;padding:2px 6px;position:static;touch-action:auto;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.composer-element:focus-within .composer-el-actions,.composer-element:hover .composer-el-actions{background:transparent;border:none;border-radius:0;padding:0;pointer-events:auto;position:static;right:auto;top:auto}}.db-view-toggle{align-items:center;background-color:var(--hover-bg);border-radius:8px;display:flex;flex:0 0 auto;gap:2px;padding:3px}[data-theme=dark] .db-view-toggle{background-color:var(--card-bg);border:1px solid var(--border-color)}.db-view-toggle-btn{align-items:center;background:transparent;border:none;border-radius:6px;color:var(--text-color);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;opacity:.7;padding:6px 12px;transition:background-color .2s ease,box-shadow .2s ease,color .2s ease,opacity .2s ease}.db-view-toggle-btn:hover{opacity:1}.db-view-toggle-btn.active{background:var(--bg-color);box-shadow:0 1px 3px rgba(0,0,0,.1);opacity:1}[data-theme=dark] .db-view-toggle-btn.active{background:var(--hover-bg);box-shadow:0 1px 3px rgba(0,0,0,.3)}.db-view-toggle-btn svg{color:inherit}.recharts-tooltip-wrapper .recharts-default-tooltip{background-color:var(--bg-panel)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}.recharts-tooltip-wrapper .recharts-tooltip-label{color:var(--text-secondary)!important}.schema-usage-counter{align-items:center;background:hsla(0,0%,100%,.5);border-radius:4px;color:rgba(0,0,0,.7);display:flex;font-size:11px;font-weight:600;height:22px;justify-content:center;position:absolute;right:0;top:50%;transform:translateY(-50%);width:22px}.schema-container-header:hover .schema-usage-counter{display:none}.schema-container-actions{margin-left:auto}.schema-ep-block-suffix{background:var(--bg-primary);border:1px solid transparent;border-radius:4px;box-sizing:border-box;font-size:11px;margin-right:-4px;opacity:0;outline:none;overflow:hidden;padding:0;pointer-events:none;transition:width .2s,padding .2s,border-color .2s,opacity .2s,margin-right .2s;white-space:nowrap;width:0}.schema-ep-block-suffix:focus{border-color:var(--accent-blue)!important}.schema-endpoint-block:hover .schema-ep-block-suffix,.schema-ep-block-suffix.has-value{border-color:var(--border-color);opacity:1;padding:2px 6px;pointer-events:auto;width:60px}.schema-endpoint-block:hover .schema-ep-block-suffix{margin-right:0}.schema-ep-block-tag{border-radius:4px;font-size:9.5px;font-weight:700;letter-spacing:.06em;padding:2px 6px}.schema-ep-block-tag,.schema-ep-block-value{flex-shrink:0;overflow:hidden;white-space:nowrap}.schema-ep-block-value{color:var(--text-primary);font-family:Menlo,Consolas,monospace;font-size:11px;font-weight:600;max-width:100px;opacity:1;text-overflow:ellipsis}.schema-ep-block-value--assigned-topic{color:var(--text-secondary);font-family:inherit;font-size:10.5px;max-width:128px;opacity:1}.schema-ep-block-value--stale{color:var(--status-danger);opacity:1}.schema-ep-block-value--stale .bool-tag{border-color:var(--status-danger);color:var(--status-danger)}.schema-ep-block-topic-wrap{flex-shrink:0;position:relative}.schema-ep-block-topic-wrap--gps{flex-shrink:0}.schema-ep-block-topic-btn{align-items:center;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:5px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:10.5px;font-weight:600;gap:4px;height:22px;max-width:130px;padding:0 7px;transition:border-color .12s,background .12s,color .12s;white-space:nowrap}.schema-ep-block-topic-btn.has-topic,.schema-ep-block-topic-btn:hover{border-color:rgba(var(--accent-blue-rgb),.45);color:var(--accent-blue)}.schema-ep-block-topic-btn.has-topic{background:rgba(var(--accent-blue-rgb),.07)}.schema-ep-block-gps-btn{gap:5px;justify-content:center;min-width:26px;padding:0 6px;width:auto}.schema-ep-block-topic-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.schema-ep-block-topic--sim{align-items:center;background:rgba(var(--accent-blue-rgb),.12);border:1px solid rgba(var(--accent-blue-rgb),.3);border-radius:5px;color:var(--accent-blue);display:flex;flex-shrink:0;font-size:10.5px;font-weight:700;height:22px;padding:0 9px;white-space:nowrap}.schema-ep-block-topic-menu{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:7px;box-shadow:none;max-height:240px;max-width:280px;min-width:220px;overflow-y:auto;padding:3px;position:absolute;right:0;top:calc(100% + 4px);z-index:220}.schema-ep-block-gps-picker{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 24px rgba(0,0,0,.18);display:flex;flex-direction:column;height:40vh;padding:8px;width:40vh;z-index:9999}.schema-ep-block-gps-picker-header{align-items:center;cursor:-webkit-grab;cursor:grab;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.schema-ep-block-gps-picker--dragging .schema-ep-block-gps-picker-header{cursor:-webkit-grabbing;cursor:grabbing}.schema-ep-block-gps-picker-title{color:var(--text-primary);font-size:11px;font-weight:700}.schema-ep-block-gps-picker-clear{background:transparent;border:none;color:var(--accent-blue);cursor:pointer;font-size:10.5px;font-weight:600;padding:0}.schema-ep-block-gps-picker-map{border:1px solid var(--border-color);border-radius:10px;flex:1 1;min-height:0;overflow:hidden;position:relative;width:100%}.schema-ep-block-gps-picker-loading{align-items:center;color:var(--text-secondary);display:flex;font-size:11px;height:100%;justify-content:center}.schema-ep-block-gps-picker-footer{color:var(--text-secondary);font-size:10.5px;line-height:1.35;margin-top:8px}.schema-ep-block-gps-picker-fields{align-items:end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.schema-ep-block-gps-picker-field{display:flex;flex-direction:column;gap:4px;min-width:0}.schema-ep-block-gps-picker-field-label{color:var(--text-tertiary);font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.schema-ep-block-gps-picker-field-input{background:var(--bg-elevated,var(--bg-subtle));border:1px solid var(--border-color);border-radius:7px;color:var(--text-primary);cursor:ew-resize;font-feature-settings:"tnum";font-size:11px;min-width:0;outline:none;padding:7px 8px;width:100%}.schema-ep-block-gps-picker-field-input.is-scrubbing{cursor:ew-resize}.schema-ep-block-gps-picker-field-input:focus{border-color:var(--accent-blue,#3b82f6);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-blue,#3b82f6) 18%,transparent);cursor:text}.schema-ep-block-gps-picker-field-input::placeholder{color:var(--text-tertiary)}.schema-ep-block-gps-picker-helper{margin-top:8px}@media (max-width:640px){.schema-ep-block-gps-picker-fields{grid-template-columns:minmax(0,1fr)}}.schema-ep-block-gps-picker-list{list-style:none;margin:0;max-height:110px;overflow-y:auto;padding:0}.schema-ep-block-gps-picker-list-item{align-items:center;border-radius:5px;display:flex;gap:6px;justify-content:space-between;padding:3px 4px}.schema-ep-block-gps-picker-list-item:hover{background:var(--bg-subtle)}.schema-ep-block-gps-picker-list-label{flex:1 1;font-feature-settings:"tnum";min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-ep-block-gps-picker-list-remove{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;flex-shrink:0;font-size:13px;line-height:1;padding:0 2px}.schema-ep-block-gps-picker-list-remove:hover{color:var(--accent-red,#ef4444)}.schema-ep-block-topic-item{align-items:center;background:transparent;border:none;border-radius:5px;cursor:pointer;display:flex;font-size:11px;font-weight:500;padding:5px 8px;text-align:left;transition:background .1s;width:100%}.schema-ep-block-topic-item.active{color:var(--accent-blue);font-weight:700}.schema-ep-block-topic-item-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-ep-block-topic-empty{color:var(--text-muted);font-size:10.5px;font-style:italic;padding:5px 8px}.schema-ep-block-status{background:var(--text-secondary);border-radius:50%;flex-shrink:0;height:7px;opacity:.4;width:7px}.schema-ep-block-status--live{animation:ep-live-pulse 1.8s ease-in-out infinite;background:var(--accent-green);opacity:1}@keyframes ep-live-pulse{0%,to{box-shadow:0 0 0 0 rgba(31,157,85,.5);opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 4px rgba(31,157,85,0);opacity:.8;transform:scale(1.2)}}.sfm-sim-run-btn{color:var(--text-secondary)}.sfm-sim-run-btn--running{background:rgba(31,157,85,.08)!important;border-color:rgba(31,157,85,.4)!important;color:var(--accent-green)}.updbtn{gap:0!important;overflow:hidden!important;padding:0 10px!important;transition:gap .4s cubic-bezier(.175,.885,.32,1.1),padding .4s cubic-bezier(.175,.885,.32,1.1)!important}.sfm-center .updbtn{padding:0 6px!important}.updbtn-icon{align-items:center!important;display:flex!important;flex-shrink:0!important}.updbtn-label{display:inline-block!important;line-height:1!important;margin-left:0;max-width:0;opacity:0;overflow:hidden;transition:margin-left .4s cubic-bezier(.175,.885,.32,1.1),max-width .4s cubic-bezier(.175,.885,.32,1.1),opacity .4s cubic-bezier(.175,.885,.32,1.1);vertical-align:middle;white-space:nowrap}.updbtn.updbtn--error .updbtn-label,.updbtn.updbtn--pulse .updbtn-label,.updbtn.updbtn--saving .updbtn-label,.updbtn.updbtn--success .updbtn-label,.updbtn:hover .updbtn-label{margin-left:7px;max-width:150px;opacity:1}.updbtn.updbtn--error,.updbtn.updbtn--pulse,.updbtn.updbtn--saving,.updbtn.updbtn--success,.updbtn:hover{padding:0 16px 0 12px!important}.sfm-center .updbtn.updbtn--error,.sfm-center .updbtn.updbtn--pulse,.sfm-center .updbtn.updbtn--saving,.sfm-center .updbtn.updbtn--success,.sfm-center .updbtn:hover{padding:0 11px 0 9px!important}.sfm-center .updbtn.updbtn--error .updbtn-label,.sfm-center .updbtn.updbtn--pulse .updbtn-label,.sfm-center .updbtn.updbtn--saving .updbtn-label,.sfm-center .updbtn.updbtn--success .updbtn-label,.sfm-center .updbtn:hover .updbtn-label{margin-left:6px}@keyframes updbtn-alert-pulse{0%{box-shadow:0 0 0 0 rgba(var(--accent-blue-rgb),.7)!important}50%{box-shadow:0 0 0 8px rgba(var(--accent-blue-rgb),0)!important}to{box-shadow:0 0 0 0 rgba(var(--accent-blue-rgb),0)!important}}.updbtn.updbtn--pulse{animation:updbtn-alert-pulse 1.5s ease-out 2!important}.schema-canvas-db-overlay{background:var(--bg-canvas,var(--bg-main));display:flex;flex-direction:column;inset:0;overflow:hidden;position:absolute;z-index:41}.schema-canvas-db-toolbar{align-items:center;background:var(--bg-panel);border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;flex-wrap:wrap;gap:8px;padding:7px 14px}.schema-canvas-db-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:auto;padding:12px 14px}.schema-canvas-db-overlay .table-info{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;flex-wrap:nowrap;gap:8px;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.schema-canvas-db-overlay .table-scroll{flex:1 1;min-height:0;overflow-x:auto;overflow-y:auto}.schema-canvas-db-overlay .database-table{border-collapse:collapse;min-width:100%;width:max-content}.schema-canvas-db-overlay .row-number-cell,.schema-canvas-db-overlay .row-number-col-header{background:var(--bg-panel);border-right:1px solid var(--border-color);left:0;max-width:44px;min-width:44px;padding-left:8px;padding-right:8px;position:-webkit-sticky;position:sticky;text-align:center;width:44px;z-index:4}.schema-canvas-db-overlay .row-number-col-header{background:var(--bg-dark);color:var(--text-secondary);z-index:22}.schema-canvas-db-overlay .row-number-cell{color:var(--text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.schema-canvas-db-overlay .container-cell,.schema-canvas-db-overlay .container-col-header{background:var(--bg-panel);border-right:1px solid var(--border-color);left:44px;position:-webkit-sticky;position:sticky;z-index:3}.schema-canvas-db-overlay .container-col-header{background:var(--bg-dark);z-index:21}.schema-canvas-db-empty{color:var(--text-muted,var(--text-secondary));font-size:13px;padding:40px 20px;text-align:center}.schema-vms-group--pinned .schema-vms-track{--h0:1;--h1:1;--h2:1}.schema-vms-group--pinned .schema-vms-btn-node{width:var(--w-exp-n)!important}.schema-vms-group--pinned .schema-vms-btn-table{width:var(--w-exp-t)!important}.schema-vms-group--pinned .schema-vms-btn-cards{width:var(--w-exp-c)!important}.schema-vms-group--pinned .schema-vms-label{margin-left:2px!important;max-width:100px!important;opacity:1!important;padding-right:6px!important}.schema-vms-track{--w-norm:28px;--w-exp-n:72px;--w-exp-t:72px;--w-exp-c:73px;--gap:2px;--h0:0;--h1:0;--h2:0}.schema-vms-track:has(.schema-vms-btn-node:focus-visible),.schema-vms-track:has(.schema-vms-btn-node:hover),.schema-vms-track[data-hover-index="0"]{--h0:1}.schema-vms-track:has(.schema-vms-btn-table:focus-visible),.schema-vms-track:has(.schema-vms-btn-table:hover),.schema-vms-track[data-hover-index="1"]{--h1:1}.schema-vms-track:has(.schema-vms-btn-cards:focus-visible),.schema-vms-track:has(.schema-vms-btn-cards:hover),.schema-vms-track[data-hover-index="2"]{--h2:1}.schema-vms-btn,.schema-vms-thumb{transition:background-color .4s cubic-bezier(.175,.885,.32,1.1),border-color .4s cubic-bezier(.175,.885,.32,1.1),color .4s cubic-bezier(.175,.885,.32,1.1),left .4s cubic-bezier(.175,.885,.32,1.1),width .4s cubic-bezier(.175,.885,.32,1.1)!important}.schema-vms-btn{justify-content:flex-start!important;overflow:hidden}.schema-vms-btn:hover:not(.schema-vms-btn--active){background:var(--bg-panel)!important;border-color:var(--border-color)!important}.schema-vms-btn.schema-vms-btn--active:hover{border-color:transparent!important}.schema-vms-icon{align-items:center;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.schema-vms-label{color:inherit;display:inline-block;font-size:13px;font-weight:500;line-height:1;margin-left:0;max-width:0;opacity:0;overflow:hidden;transition:margin-left .4s cubic-bezier(.175,.885,.32,1.1),max-width .4s cubic-bezier(.175,.885,.32,1.1),opacity .4s cubic-bezier(.175,.885,.32,1.1),padding-right .4s cubic-bezier(.175,.885,.32,1.1);vertical-align:middle;white-space:nowrap}.schema-vms-track:has(.schema-vms-btn-node:focus-visible) .schema-vms-btn-node,.schema-vms-track:has(.schema-vms-btn-node:hover) .schema-vms-btn-node,.schema-vms-track[data-hover-index="0"] .schema-vms-btn-node{width:var(--w-exp-n)!important}.schema-vms-track:has(.schema-vms-btn-table:focus-visible) .schema-vms-btn-table,.schema-vms-track:has(.schema-vms-btn-table:hover) .schema-vms-btn-table,.schema-vms-track[data-hover-index="1"] .schema-vms-btn-table{width:var(--w-exp-t)!important}.schema-vms-track:has(.schema-vms-btn-cards:focus-visible) .schema-vms-btn-cards,.schema-vms-track:has(.schema-vms-btn-cards:hover) .schema-vms-btn-cards,.schema-vms-track[data-hover-index="2"] .schema-vms-btn-cards{width:var(--w-exp-c)!important}.schema-vms-btn:focus-visible .schema-vms-label,.schema-vms-btn:hover .schema-vms-label,.schema-vms-track[data-hover-index="0"] .schema-vms-btn-node .schema-vms-label,.schema-vms-track[data-hover-index="1"] .schema-vms-btn-table .schema-vms-label,.schema-vms-track[data-hover-index="2"] .schema-vms-btn-cards .schema-vms-label{margin-left:2px;max-width:100px;opacity:1;padding-right:6px}.schema-vms-track[data-index="0"] .schema-vms-thumb{left:0!important;width:calc(var(--w-norm) + var(--h0) * (var(--w-exp-n) - var(--w-norm)))!important}.schema-vms-track[data-index="1"] .schema-vms-thumb{left:calc(var(--w-norm) + var(--h0) * (var(--w-exp-n) - var(--w-norm)) + var(--gap))!important;width:calc(var(--w-norm) + var(--h1) * (var(--w-exp-t) - var(--w-norm)))!important}.schema-vms-track[data-index="2"] .schema-vms-thumb{left:calc(var(--w-norm) * 2 + var(--h0) * (var(--w-exp-n) - var(--w-norm)) + var(--h1) * (var(--w-exp-t) - var(--w-norm)) + var(--gap) * 2)!important;width:calc(var(--w-norm) + var(--h2) * (var(--w-exp-c) - var(--w-norm)))!important}.sfm-panel-sim .sfm-sim-back-btn,.sfm-panel-sim .sfm-sim-config-btn{border-width:0!important;margin:0;min-width:0!important;opacity:0;overflow:hidden;padding:0!important;transition:width .4s cubic-bezier(.175,.885,.32,1.1),opacity .3s ease,border-width .3s ease,margin .4s cubic-bezier(.175,.885,.32,1.1),color .12s,border-color .12s,background .12s!important;width:0!important}.sfm-panel-sim .sfm-sim-back-btn{margin-right:-7px!important}.sfm-panel-sim .sfm-sim-config-btn{margin-left:-7px!important}.sfm-panel-sim:hover .sfm-sim-back-btn,.sfm-panel-sim:hover .sfm-sim-config-btn{border-width:1px!important;margin-left:0!important;margin-right:0!important;opacity:1;width:28px!important}.sfm-panel-sim .sfm-icon-btn svg{flex-shrink:0}.schema-zoom-controls .schema-minimap-pin-btn,.schema-zoom-controls .schema-zoom-in,.schema-zoom-controls .schema-zoom-out,.schema-zoom-controls .schema-zoom-reset{border-width:0!important;margin:0;min-width:0!important;opacity:0;overflow:hidden;padding:0!important;transition:width .4s cubic-bezier(.175,.885,.32,1.1) 1s,opacity .3s ease 1s,border-width .3s ease 1s,margin .4s cubic-bezier(.175,.885,.32,1.1) 1s,color .12s,border-color .12s,background .12s!important;width:0!important}.schema-zoom-controls .schema-zoom-in{margin-right:-4px!important}.schema-zoom-controls .schema-zoom-out,.schema-zoom-controls .schema-zoom-reset{margin-left:-4px!important}.schema-zoom-group--pinned .schema-zoom-controls .schema-minimap-pin-btn,.schema-zoom-group--pinned .schema-zoom-controls .schema-zoom-in,.schema-zoom-group--pinned .schema-zoom-controls .schema-zoom-out,.schema-zoom-group--pinned .schema-zoom-controls .schema-zoom-reset,.schema-zoom-group:has(.schema-zoom-controls:hover) .schema-zoom-controls .schema-minimap-pin-btn,.schema-zoom-group:has(.schema-zoom-controls:hover) .schema-zoom-controls .schema-zoom-in,.schema-zoom-group:has(.schema-zoom-controls:hover) .schema-zoom-controls .schema-zoom-out,.schema-zoom-group:has(.schema-zoom-controls:hover) .schema-zoom-controls .schema-zoom-reset{border-width:1px!important;margin-left:0!important;margin-right:0!important;opacity:1;transition:width .4s cubic-bezier(.175,.885,.32,1.1) 0s,opacity .3s ease 0s,border-width .3s ease 0s,margin .4s cubic-bezier(.175,.885,.32,1.1) 0s,color .12s,border-color .12s,background .12s!important;width:26px!important}.schema-zoom-controls .schema-zoom-reset svg{flex-shrink:0}.schema-ep-topic-filter-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:2px;margin-bottom:3px;padding:3px 3px 4px}.schema-ep-topic-source-select-wrap{border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:5px;padding:5px 3px 7px}.schema-ep-topic-source-label{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.03em}.schema-ep-topic-source-select{background:var(--bg-dark);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:11px;min-width:0;outline:none;padding:5px 7px;width:100%}.schema-ep-topic-source-select:focus{border-color:var(--accent-blue)}.schema-ep-topic-filter-tab{background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:10px;font-weight:600;letter-spacing:.02em;padding:2px 5px;transition:background .12s,color .12s}.schema-ep-topic-filter-tab:hover{background:var(--bg-dark);color:var(--text-primary)}.schema-ep-topic-filter-tab--active{background:var(--accent-blue-tint-12);border-color:rgba(var(--accent-blue-rgb),.3);color:var(--accent-blue)}.schema-ep-topic-search-wrap{padding:2px 3px 3px}.schema-ep-topic-search{background:var(--bg-dark);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:11px;outline:none;padding:3px 7px;transition:border-color .15s;width:100%}.schema-ep-topic-search:focus{border-color:var(--accent-blue)}.schema-ep-block-topic-item-num{color:var(--text-muted);flex-shrink:0;font-size:10px;min-width:14px;text-align:right}.schema-ep-block-topic-item--user{color:var(--text-secondary)}.schema-ep-block-topic-item--user.active{background:color-mix(in srgb,var(--accent-blue) 6%,transparent)}.schema-ep-topic-user-badge{background:color-mix(in srgb,#0ea5e9 14%,transparent);border:1px solid rgba(14,165,233,.3);border-radius:3px;color:#0284c7;flex-shrink:0;font-size:9px;font-weight:700;letter-spacing:.03em;margin-left:auto;padding:1px 4px}.schema-ep-user-checkbox{align-items:center;border:1.5px solid var(--border-color);border-radius:3px;color:#fff;display:flex;flex-shrink:0;height:12px;justify-content:center;transition:background .1s,border-color .1s;width:12px}.schema-ep-user-checkbox--checked{background:var(--accent-blue);border-color:var(--accent-blue)}.schema-ep-block-user-tag{align-items:center;background:color-mix(in srgb,#0ea5e9 10%,transparent);border:1px solid rgba(14,165,233,.25);border-radius:5px;color:#0284c7;display:flex;flex-shrink:0;font-size:10px;font-weight:600;gap:3px;height:22px;max-width:110px;padding:0 6px}.schema-ep-block-user-tag-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}