:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:100 900;src:url(https://cdn.jsdelivr.net/fontsource/fonts/geist:vf@latest/latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--grid-bg: #FAFAF9;--grid-bg-card: #FFFFFF;--grid-bg-elevated: #FFFFFF;--grid-bg-muted: #F5F5F3;--grid-text: #1A1A1A;--grid-text-muted: #5C5C5C;--grid-text-subtle: #737373;--grid-border: #E8E8E6;--grid-border-light: #F0F0EE;--grid-accent: #2563EB;--grid-accent-hover: #1D4ED8;--grid-accent-muted: #DBEAFE;--grid-ai: #F97316;--grid-ai-hover: #EA580C;--grid-ai-muted: #FFF7ED;--grid-success: #059669;--grid-success-muted: #ECFDF5;--grid-error: #DC2626;--grid-error-muted: #FEF2F2;--grid-warning-bg: #FFFBEB;--grid-warning-text: #92400E;--grid-radius: 12px;--grid-radius-sm: 8px;--grid-radius-pill: 999px;--grid-shadow: 0 2px 8px rgba(0, 0, 0, .06);--grid-shadow-hover: 0 4px 12px rgba(0, 0, 0, .08)}*{box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--grid-bg);background-image:linear-gradient(to right,rgba(0,0,0,.04) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.04) 1px,transparent 1px);background-size:24px 24px;color:var(--grid-text);line-height:1.5;-webkit-font-smoothing:antialiased}#root{width:100%;min-height:100vh}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:240px;flex-shrink:0;background:var(--grid-bg-card);border-right:1px solid var(--grid-border-light);display:flex;flex-direction:column;box-shadow:1px 0 #00000008}.app-sidebar-brand{padding:1.25rem 1.25rem 1rem;border-bottom:1px solid var(--grid-border-light)}.app-sidebar-logo-wrap{display:flex;align-items:flex-end;gap:.375rem;margin-bottom:.5rem}.app-sidebar-logo-mark{display:grid;grid-template-columns:repeat(3,7px);grid-template-rows:repeat(3,7px);gap:3px;flex-shrink:0}.app-sidebar-logo-dot{width:7px;height:7px;border-radius:50%;background:var(--grid-accent-muted)}.app-sidebar-logo-dot--g{background:color-mix(in srgb,var(--grid-accent) calc((1 - var(--g-step, 0)) * 100%),color-mix(in srgb,var(--grid-accent) 10%,var(--grid-accent-muted)) calc(var(--g-step, 0) * 100%))}.app-sidebar-logo-dot--alt{background:var(--grid-accent-muted);opacity:.25}.app-sidebar-logo{font-family:Geist,Inter,sans-serif;font-size:1.5rem;font-weight:700;margin:0;line-height:1;letter-spacing:-.03em;text-transform:uppercase;color:var(--grid-text)}.app-sidebar-tagline{font-size:.8rem;color:var(--grid-text-muted);margin:0;font-weight:500}.app-sidebar-nav{flex:1;padding:.75rem .75rem 1rem;display:flex;flex-direction:column;gap:.25rem}.app-sidebar-nav button{display:flex;align-items:center;width:100%;padding:.6rem 1rem;font-size:.9rem;font-weight:500;border:none;border-radius:var(--grid-radius-sm);background:transparent;color:var(--grid-text-muted);cursor:pointer;text-align:left;transition:background .15s,color .15s}.app-sidebar-nav button:hover{background:var(--grid-bg-muted);color:var(--grid-text)}.app-sidebar-nav button:focus-visible{outline:2px solid var(--grid-accent);outline-offset:2px}.app-sidebar-nav button.active{background:var(--grid-accent-muted);color:var(--grid-accent-hover)}.app-sidebar-ai{margin-top:.5rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600;border:none;border-radius:var(--grid-radius-sm);background:var(--grid-ai);color:#fff;cursor:pointer;text-align:center;transition:background .15s}.app-sidebar-ai:hover{background:var(--grid-ai-hover)}.app-sidebar-ai:focus-visible{outline:2px solid var(--grid-ai-hover);outline-offset:2px}.app-sidebar-footer{padding:1rem 1rem 1.25rem;border-top:1px solid var(--grid-border-light);display:flex;flex-direction:column;gap:.75rem}.app-user-block{padding:.75rem;background:var(--grid-bg-muted);border-radius:var(--grid-radius-sm);border:1px solid var(--grid-border-light)}.app-user-info{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.5rem}.app-user-email{font-size:.8rem;font-weight:500;color:var(--grid-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-user-tenant{font-size:.75rem;color:var(--grid-text-subtle)}.app-user-actions{display:flex;gap:.35rem}.app-user-signout{padding:.35rem .65rem;font-size:.8rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text-muted);border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.app-user-signout:hover{background:var(--grid-bg);color:var(--grid-text)}.app-sidebar-placeholders{display:flex;gap:.35rem}.app-placeholder-btn{flex:1;padding:.4rem .6rem;font-size:.75rem;font-weight:500;border:1px dashed var(--grid-border);background:transparent;color:var(--grid-text-subtle);border-radius:6px;cursor:not-allowed;opacity:.8}.app-main{flex:1;min-width:0;padding:1.25rem 1.5rem;overflow:auto;max-width:1000px}.app-main--canvas-full{max-width:none;padding:.75rem 1rem;display:flex;flex-direction:column;min-height:0;overflow:hidden}.app-main--canvas-full .app-page-title{flex-shrink:0;margin-bottom:.5rem}.app-main--canvas-full .canvas-view-wrap--fullscreen,.app-main--canvas-full .schema-view-wrap{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.schema-view-wrap .schema-visualizer{min-height:300px}.canvas-view-wrap--fullscreen .layout-canvas{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin-top:0}.canvas-view-wrap--fullscreen .canvas-toolbar{flex-shrink:0}.canvas-view-wrap--fullscreen .canvas-body{flex:1;min-height:0;overflow:hidden}.canvas-view-wrap--fullscreen .canvas-grid-wrap{min-height:0;height:100%;flex:1}.canvas-view-wrap--dashboards .canvas-grid-wrap{background:transparent;background-image:none;border:none;box-shadow:none}.layout-canvas--preview,.canvas-preview-inline{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.canvas-preview-inline-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 0 .75rem;border-bottom:1px solid var(--grid-border-light);margin-bottom:.5rem}.canvas-preview-inline-title{font-size:1rem;font-weight:600;margin:0;color:var(--grid-text)}.canvas-preview-inline-close{padding:.4rem .85rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer}.canvas-preview-inline-close:hover{background:var(--grid-bg-muted)}.canvas-preview-inline-grid{flex:1;min-height:0;overflow:auto;background:var(--grid-bg);border-radius:var(--grid-radius);border:1px solid var(--grid-border);padding:.5rem}.app-page-title{font-size:1.25rem;font-weight:600;margin:0 0 1rem;color:var(--grid-text)}.home-dashboard{display:flex;flex-direction:column;gap:1.25rem}.home-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.home-stat-card{background:var(--grid-bg-card);border:1px solid var(--grid-border-light);border-radius:var(--grid-radius);padding:1rem 1.25rem;box-shadow:var(--grid-shadow);display:flex;flex-direction:column;gap:.25rem}.home-stat-value{font-size:1.5rem;font-weight:700;color:var(--grid-text);letter-spacing:-.02em}.home-stat-label{font-size:.8rem;color:var(--grid-text-muted);font-weight:500}.home-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.home-card{background:var(--grid-bg-card);border:1px solid var(--grid-border-light);border-radius:var(--grid-radius);padding:1.25rem;box-shadow:var(--grid-shadow)}.home-card-placeholder{opacity:.92}.home-card-wide{grid-column:1 / -1}.home-card-title{font-size:1rem;font-weight:600;margin:0 0 .5rem;color:var(--grid-text)}.home-card-text{font-size:.9rem;color:var(--grid-text-muted);line-height:1.5;margin:0 0 1rem}.home-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.home-card-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:600;border:none;border-radius:var(--grid-radius-sm);background:var(--grid-accent);color:#fff;cursor:pointer;transition:background .15s}.home-card-btn:hover{background:var(--grid-accent-hover)}.home-card-btn-secondary{background:var(--grid-bg-muted);color:var(--grid-text)}.home-card-btn-secondary:hover{background:var(--grid-border)}.home-activity-list{list-style:none;margin:0;padding:0}.home-activity-item{font-size:.875rem;color:var(--grid-text-subtle);padding:.35rem 0}.home-quick-actions{display:flex;gap:.5rem;flex-wrap:wrap}.home-quick-action{padding:.45rem .85rem;font-size:.85rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text-muted);border-radius:var(--grid-radius-sm);cursor:not-allowed;opacity:.85}.placeholder{text-align:center;padding:2rem 1.5rem;background:var(--grid-bg-card);border-radius:var(--grid-radius);color:var(--grid-text-muted);border:1px solid var(--grid-border-light);box-shadow:var(--grid-shadow)}.placeholder code{background:var(--grid-bg-muted);padding:.2em .5em;border-radius:6px;font-size:.9em;color:var(--grid-text)}.home-content{text-align:left}.objects-list-wrap{margin-top:1.5rem}.objects-list-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.objects-list-title{font-size:1.05rem;font-weight:600;margin:0;color:var(--grid-text)}.objects-list-add-custom{padding:.4rem .85rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer}.objects-list-add-custom:hover{background:var(--grid-bg-muted);border-color:var(--grid-border)}.objects-list-loading,.objects-list-empty{font-size:.9rem;color:var(--grid-text-muted);margin:0}.objects-list{list-style:none;margin:0;padding:0;border-radius:var(--grid-radius-sm);overflow:hidden;border:1px solid var(--grid-border-light);background:var(--grid-bg-card);box-shadow:var(--grid-shadow)}.objects-list-item{border-bottom:1px solid var(--grid-border-light);font-size:.9rem}.objects-list-item:last-child{border-bottom:none}.objects-list-button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.65rem 1rem;text-align:left;background:none;border:none;font:inherit;color:inherit;cursor:pointer;transition:background .15s}.objects-list-button:hover{background:var(--grid-bg-muted)}.objects-list-label{font-weight:500;min-width:6rem;color:var(--grid-text)}.objects-list-api{color:var(--grid-text-subtle);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8em}.objects-list-badge{font-size:.7rem;background:var(--grid-accent-muted);color:var(--grid-accent-hover);padding:.2rem .5rem;border-radius:var(--grid-radius-pill);font-weight:500}.objects-list-badge--custom{background:var(--grid-bg-muted);color:var(--grid-text-muted)}.app-loading{text-align:center;padding:2.5rem;color:var(--grid-text-muted);font-size:.95rem}.app-loading:before{content:"";display:block;width:24px;height:24px;margin:0 auto .75rem;border:2px solid var(--grid-border);border-top-color:var(--grid-accent);border-radius:50%;animation:app-loading-spin .7s linear infinite}@keyframes app-loading-spin{to{transform:rotate(360deg)}}.login-wrap{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;box-sizing:border-box}.login-page{width:100%;max-width:360px;margin:0;flex-shrink:0;padding:2rem;text-align:center;background:var(--grid-bg-card);border-radius:var(--grid-radius);border:1px solid var(--grid-border-light);box-shadow:var(--grid-shadow);color:var(--grid-text)}.login-page h1{font-size:1.6rem;font-weight:700;margin:0 0 .35rem;color:var(--grid-text)}.login-page .tagline{margin-bottom:1.5rem;color:var(--grid-text-muted)}.login-page form{display:flex;flex-direction:column;gap:.85rem}.login-page input{padding:.65rem .9rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);font-size:1rem;font-family:inherit;background:var(--grid-bg);color:var(--grid-text)}.login-page input::placeholder{color:var(--grid-text-subtle)}.login-page input:focus{outline:none;border-color:var(--grid-accent);box-shadow:0 0 0 3px var(--grid-accent-muted)}.login-page button{padding:.65rem 1rem;background:var(--grid-accent);color:#fff!important;border:none;border-radius:var(--grid-radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.login-page button:hover:not(:disabled){background:var(--grid-accent-hover)}.login-page button:disabled{opacity:.7;cursor:not-allowed}.login-error{color:var(--grid-error);font-size:.9rem;margin:0}.link-button{background:none;border:none;color:var(--grid-accent);cursor:pointer;text-decoration:none;font-size:inherit;padding:0;font-weight:500}.link-button:hover{color:var(--grid-accent-hover);text-decoration:underline}.auth-warning{background:var(--grid-warning-bg);color:var(--grid-warning-text);border:1px solid #FDE68A}.auth-debug{font-size:.85rem;margin-top:.5rem;opacity:.9}.layout-canvas{margin-top:.5rem}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding:.6rem 0;flex-wrap:wrap;gap:.75rem}.canvas-toolbar-label{font-weight:600;font-size:1rem;color:var(--grid-text)}.canvas-toolbar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.canvas-select-wrap{display:flex;align-items:center;gap:.5rem}.canvas-select-label{font-size:.85rem;color:var(--grid-text-muted);margin:0}.canvas-select{padding:.4rem .6rem;font-size:.875rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);background:var(--grid-bg-card);color:var(--grid-text);min-width:140px}.canvas-new-btn{padding:.4rem .9rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-accent);background:var(--grid-accent-muted);color:var(--grid-accent-hover);border-radius:var(--grid-radius-sm);cursor:pointer}.canvas-new-btn:hover{background:var(--grid-accent-muted);color:var(--grid-accent)}.canvas-rename-btn{padding:.4rem .65rem;font-size:.85rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text-muted);border-radius:var(--grid-radius-sm);cursor:pointer}.canvas-rename-btn:hover{background:var(--grid-bg-muted);color:var(--grid-text)}.canvas-rename-inline{display:flex;align-items:center;gap:.4rem}.canvas-rename-input{padding:.4rem .6rem;font-size:.875rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);background:var(--grid-bg-card);color:var(--grid-text);min-width:160px}.canvas-rename-input:focus{outline:none;border-color:var(--grid-accent);box-shadow:0 0 0 2px var(--grid-accent-muted)}.canvas-rename-apply{padding:.4rem .65rem;font-size:.85rem;font-weight:500;border:none;border-radius:var(--grid-radius-sm);background:var(--grid-accent);color:#fff;cursor:pointer}.canvas-rename-apply:hover{background:var(--grid-accent-hover)}.canvas-rename-cancel{padding:.4rem .65rem;font-size:.85rem;font-weight:500;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);background:var(--grid-bg-card);color:var(--grid-text-muted);cursor:pointer}.canvas-rename-cancel:hover{background:var(--grid-bg-muted);color:var(--grid-text)}.canvas-empty-state{padding:2rem;text-align:center;background:var(--grid-bg-card);border:1px solid var(--grid-border-light);border-radius:var(--grid-radius);margin-top:.5rem}.canvas-empty-state p{margin:0 0 1rem;color:var(--grid-text-muted)}.canvas-empty-btn{margin:0}.canvas-mode-toggle{display:flex;gap:.25rem}.canvas-mode-toggle button{padding:.4rem .85rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text-muted);border-radius:var(--grid-radius-sm);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.canvas-mode-toggle button.active{background:var(--grid-accent);border-color:var(--grid-accent);color:#fff}.canvas-add-btn,.canvas-new-btn.canvas-empty-btn,.canvas-preview-btn,.canvas-save-btn{padding:.4rem .9rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer;transition:background .15s,border-color .15s}.canvas-add-btn:hover,.canvas-preview-btn:hover,.canvas-save-btn:hover{background:var(--grid-bg-muted);border-color:var(--grid-border)}.canvas-save-btn:disabled{opacity:.6;cursor:not-allowed}.canvas-save-status{display:inline-block;min-width:6rem;margin-left:.25rem;font-size:.875rem}.canvas-save-ok{color:var(--grid-success);font-weight:500}.canvas-save-err{color:var(--grid-error)}.canvas-load-err{color:var(--grid-error);font-size:.9rem;margin-bottom:.5rem}.canvas-body{display:flex;gap:1rem;align-items:flex-start}.canvas-component-library{flex-shrink:0;width:168px;padding:1rem;background:var(--grid-bg-card);border:1px solid var(--grid-border-light);border-radius:var(--grid-radius);box-shadow:var(--grid-shadow)}.canvas-library-title{font-size:.9rem;font-weight:600;margin:0 0 .6rem;color:var(--grid-text)}.canvas-library-list{list-style:none;margin:0;padding:0}.canvas-library-item{padding:.5rem .65rem;margin-bottom:.35rem;background:var(--grid-bg);border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);font-size:.85rem;color:var(--grid-text);transition:border-color .15s,box-shadow .15s}.canvas-library-item-draggable{cursor:grab;-webkit-user-select:none;user-select:none}.canvas-library-item-draggable:hover{border-color:var(--grid-accent);box-shadow:0 0 0 2px var(--grid-accent-muted)}.canvas-library-item-draggable:active{cursor:grabbing}.canvas-library-hint{font-size:.75rem;color:var(--grid-text-subtle);margin:.6rem 0 0}.canvas-body .canvas-grid-wrap{flex:1;min-width:0}.canvas-view-wrap.canvas-view-hidden{position:absolute;left:-9999px;width:100%;visibility:hidden;pointer-events:none}.canvas-grid-wrap{min-height:min(600px,calc(100vh - 220px));height:auto;border:1px solid var(--grid-border);border-radius:var(--grid-radius);overflow:auto;background:var(--grid-bg);background-image:radial-gradient(circle,var(--grid-border-light) 1px,transparent 1px);background-size:12px 12px;box-shadow:var(--grid-shadow)}.canvas-preview-overlay{position:fixed;inset:0;z-index:200;background:var(--grid-bg);display:flex;flex-direction:column}.canvas-preview-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--grid-border-light);background:var(--grid-bg-card)}.canvas-preview-title{font-size:1rem;font-weight:600;margin:0;color:var(--grid-text)}.canvas-preview-close{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer}.canvas-preview-close:hover{background:var(--grid-bg-muted)}.canvas-preview-close:focus-visible{outline:2px solid var(--grid-accent);outline-offset:2px}.canvas-preview-grid-wrap{flex:1;min-height:0;overflow:auto;padding:1rem;background:var(--grid-bg)}.canvas-placeholder{background:var(--grid-bg-card);border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--grid-text-muted);position:relative;box-shadow:var(--grid-shadow)}.canvas-drop-zone{background:var(--grid-bg-muted);border-style:dashed;border-color:var(--grid-border);color:var(--grid-text-subtle)}.canvas-tile-label{flex:1;text-align:center}.canvas-tile-remove{position:absolute;top:6px;right:8px;min-width:26px;min-height:26px;padding:0;border:none;background:var(--grid-bg-muted);color:var(--grid-text-muted);font-size:1.1rem;line-height:1;border-radius:6px;cursor:pointer;z-index:10;touch-action:none;transition:background .15s,color .15s}.canvas-tile-remove:hover{background:var(--grid-error);color:#fff}.canvas-placeholder-filled{align-items:flex-start;justify-content:flex-start;padding:1rem;overflow:auto}.grid-comp{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.grid-comp-title{font-size:.95rem;font-weight:600;margin:0 0 .6rem;flex-shrink:0;color:var(--grid-text)}.grid-comp-table,.grid-comp-chart,.grid-comp-form{flex:1;min-height:0;overflow:auto}.grid-comp-table-wrap{overflow:auto;border-radius:var(--grid-radius-sm);border:1px solid var(--grid-border-light)}.grid-comp-table-inner{width:100%;border-collapse:collapse;font-size:.85rem}.grid-comp-table-inner th,.grid-comp-table-inner td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--grid-border-light)}.grid-comp-table-inner th{background:var(--grid-bg-muted);font-weight:600;color:var(--grid-text)}.grid-comp-table-inner tbody tr:hover{background:var(--grid-bg-muted)}.grid-comp-chart-bars{list-style:none;margin:0;padding:0}.grid-comp-chart-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;font-size:.85rem}.grid-comp-chart-label{flex:0 0 5.5rem;color:var(--grid-text)}.grid-comp-chart-track{flex:1;height:1.25rem;background:var(--grid-bg-muted);border-radius:var(--grid-radius-pill);overflow:hidden}.grid-comp-chart-fill{display:block;height:100%;background:linear-gradient(90deg,var(--grid-accent),var(--grid-accent-hover));border-radius:var(--grid-radius-pill);min-width:4px;transition:width .2s ease}.grid-comp-chart-value{flex:0 0 1.75rem;font-weight:600;color:var(--grid-text)}.grid-comp-form-inner{display:flex;flex-direction:column;gap:.6rem}.grid-comp-form-field{display:flex;flex-direction:column;gap:.25rem}.grid-comp-form-field label{font-size:.8rem;font-weight:500;color:var(--grid-text)}.grid-comp-form-field input,.grid-comp-form-field select{padding:.5rem .65rem;font-size:.9rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);font-family:inherit;background:var(--grid-bg-card)}.grid-comp-form-field input:focus,.grid-comp-form-field select:focus{outline:none;border-color:var(--grid-accent);box-shadow:0 0 0 2px var(--grid-accent-muted)}.grid-comp-form-submit{margin-top:.35rem;padding:.5rem 1rem;font-weight:600;font-size:.9rem;background:var(--grid-accent);color:#fff;border:none;border-radius:var(--grid-radius-sm);cursor:pointer;align-self:flex-start;transition:background .15s}.grid-comp-form-submit:hover{background:var(--grid-accent-hover)}.grid-comp-placeholder,.grid-comp-unknown{font-size:.85rem;color:var(--grid-text-muted)}.react-grid-item.react-grid-placeholder{background:var(--grid-accent-muted)!important;opacity:.6;border-radius:var(--grid-radius-sm);border:1px dashed var(--grid-accent)}.react-grid-item>.react-resizable-handle:after{border-right-color:var(--grid-text-subtle);border-bottom-color:var(--grid-text-subtle)}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.add-field-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-field-modal{background:var(--grid-bg-card);border-radius:var(--grid-radius);box-shadow:var(--grid-shadow-hover);max-width:420px;width:100%;padding:1.5rem}.add-field-title{font-size:1.15rem;font-weight:600;margin:0 0 .5rem;color:var(--grid-text)}.add-field-description{font-size:.9rem;color:var(--grid-text-muted);margin:0 0 1.25rem;line-height:1.45}.add-field-form{display:flex;flex-direction:column;gap:1rem}.add-field-field{display:flex;flex-direction:column;gap:.35rem}.add-field-field label{font-size:.875rem;font-weight:500;color:var(--grid-text)}.add-field-field input,.add-field-field select{padding:.5rem .75rem;font-size:.95rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);background:var(--grid-bg-card);color:var(--grid-text)}.add-field-field input:focus,.add-field-field select:focus{outline:none;border-color:var(--grid-accent);box-shadow:0 0 0 2px var(--grid-accent-muted)}.add-field-field input::placeholder{color:var(--grid-text-subtle)}.add-field-field select{cursor:pointer;appearance:auto}.add-field-error{font-size:.875rem;color:var(--grid-error);margin:0}.add-field-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.25rem}.add-field-cancel{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer}.add-field-cancel:hover:not(:disabled){background:var(--grid-bg-muted)}.add-field-submit{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:none;background:var(--grid-accent);color:#fff;border-radius:var(--grid-radius-sm);cursor:pointer}.add-field-submit:hover:not(:disabled){background:var(--grid-accent-hover)}.add-field-submit:disabled{opacity:.7;cursor:not-allowed}.record-list-page{padding:1rem 0;max-width:960px}.record-list-header{margin-bottom:1.25rem}.record-list-back{display:inline-block;margin-bottom:.5rem;font-size:.9rem}.record-list-title-row{display:flex;align-items:center;gap:.75rem;margin:0 0 .25rem}.record-list-title{font-size:1.25rem;font-weight:600;margin:0}.record-list-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.record-list-add-field{padding:.4rem .75rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-border, #e0e0e0);background:var(--grid-bg-card, #fff);color:var(--grid-text, #333);border-radius:4px;cursor:pointer}.record-list-add-field:hover{background:var(--grid-bg-muted, #f5f5f5);border-color:var(--grid-border-light, #ccc)}.record-list-new{padding:.4rem .75rem;font-size:.9rem;background:#06c;color:#fff;border:1px solid #0052a3;border-radius:4px;cursor:pointer}.record-list-new:hover{background:#0052a3}.record-list-delete-object{padding:.4rem .75rem;font-size:.875rem;font-weight:500;border:1px solid var(--grid-border, #e0e0e0);background:var(--grid-bg-card, #fff);color:var(--grid-text-muted, #666);border-radius:4px;cursor:pointer}.record-list-delete-object:hover{background:var(--grid-error-muted, #fef2f2);color:var(--grid-error, #dc2626);border-color:var(--grid-error, #dc2626)}.record-list-meta{font-size:.9rem;color:#666;margin:0}.record-list-loading,.record-list-empty{font-size:.95rem;color:#666;margin:0}.record-list-error{font-size:.95rem;color:#c00;margin:0}.record-list-table-wrap{overflow-x:auto;border:1px solid #ddd;border-radius:8px;background:#fff;max-width:100%}.record-list-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.9rem}.record-list-empty-cell{padding:1rem .75rem;color:#666;font-size:.95rem;text-align:center}.record-list-table th,.record-list-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.record-list-table th{font-weight:600;background:#f8f8f8;color:#333}.record-list-table tbody tr:last-child td{border-bottom:none}.record-list-table tbody tr:hover{background:#fafafa}.record-list-row-clickable{cursor:pointer}.record-list-cell-id{width:100px}.record-list-id{font-size:.8em;background:#f0f0f0;padding:.15em .4em;border-radius:4px}.record-form{max-width:560px}.record-form-error{display:block;color:#c00;font-size:.9rem;margin-bottom:.75rem}.record-form-empty{color:#666;margin:0 0 1rem}.record-form-fields{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.record-form-field{display:flex;flex-direction:column;gap:.25rem}.record-form-label{font-size:.9rem;font-weight:500;color:#333}.record-form-required{color:#c00}.record-form-input{padding:.5rem .6rem;font-size:.95rem;border:1px solid #ccc;border-radius:4px;max-width:320px}.record-form-input:focus{outline:none;border-color:#06c;box-shadow:0 0 0 2px #06c3}.record-form-input[aria-invalid=true]{border-color:#c00}.record-form-input--textarea{min-height:4.5rem;resize:vertical;max-width:100%}.record-form-field-error{font-size:.85rem;color:#c00}.record-form-actions{display:flex;gap:.75rem;flex-wrap:wrap}.record-form-cancel,.record-form-submit{padding:.5rem 1rem;font-size:.95rem;border-radius:4px;cursor:pointer}.record-form-cancel{background:#f5f5f5;border:1px solid #ccc;color:#333}.record-form-cancel:hover:not(:disabled){background:#eee}.record-form-submit{background:#06c;border:1px solid #0052a3;color:#fff}.record-form-submit:hover:not(:disabled){background:#0052a3}.record-form-submit:disabled,.record-form-cancel:disabled{opacity:.6;cursor:not-allowed}.record-detail-page{padding:1rem 0;max-width:960px}.record-detail-header{margin-bottom:1.5rem}.record-detail-back{display:inline-block;margin-bottom:.5rem;font-size:.9rem}.record-detail-title-row{display:flex;align-items:center;gap:.75rem;margin:0 0 .25rem}.record-detail-title{font-size:1.35rem;font-weight:600;margin:0}.record-detail-edit{font-size:.9rem}.record-detail-meta{font-size:.9rem;color:#666;margin:0}.record-detail-loading,.record-detail-error{font-size:.95rem;margin:0}.record-detail-error{color:#c00}.record-detail-fields{display:grid;gap:.75rem 2rem;grid-template-columns:auto 1fr;margin:0;max-width:560px}.record-detail-field{display:contents}.record-detail-label{font-size:.9rem;color:#666;margin:0;font-weight:500}.record-detail-value{font-size:.95rem;margin:0}.record-detail-related{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #eee}.record-detail-related-title{font-size:1rem;font-weight:600;margin:0 0 .75rem}.record-detail-related-empty{font-size:.9rem;color:#666;margin:0}.record-detail-related-table-wrap{overflow-x:auto;border:1px solid #ddd;border-radius:6px;background:#fff}.record-detail-related-table{width:100%;border-collapse:collapse;font-size:.9rem}.record-detail-related-th,.record-detail-related-td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.record-detail-related-th{font-weight:600;background:#f8f8f8;color:#333}.record-detail-related-table tbody tr:last-child td{border-bottom:none}.record-create-page{padding:1rem 0;max-width:960px}.record-create-header{margin-bottom:1.5rem}.record-create-back{display:inline-block;margin-bottom:.5rem;font-size:.9rem}.record-create-title{font-size:1.35rem;font-weight:600;margin:0 0 .25rem}.record-create-meta{font-size:.9rem;color:#666;margin:0}.record-create-loading,.record-create-error{font-size:.95rem;margin:0}.record-create-error{color:#c00}.ai-chat-backdrop{position:fixed;inset:0;background:#00000026;z-index:100}.ai-chat-sidebar{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:100%;background:#fff;box-shadow:-4px 0 24px #00000014;z-index:101;display:flex;flex-direction:column;border-left:1px solid #E8E8E6;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.ai-chat-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid #F0F0EE;flex-shrink:0}.ai-chat-mode-toggle{display:flex;gap:.25rem;margin-left:auto}.ai-chat-mode-toggle button{padding:.4rem .85rem;font-size:.85rem;font-weight:500;border:1px solid #E8E8E6;background:#fafaf9;color:#5c5c5c;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.ai-chat-mode-toggle button.active{background:#2563eb;color:#fff;border-color:#2563eb}.ai-chat-mode-toggle button:hover:not(.active){background:#f5f5f3;color:#1a1a1a}.ai-chat-title{font-size:1.1rem;font-weight:600;margin:0;color:#1a1a1a}.ai-chat-close{width:32px;height:32px;padding:0;border:none;background:#f5f5f3;border-radius:8px;font-size:1.35rem;line-height:1;color:#5c5c5c;cursor:pointer;transition:background .15s,color .15s}.ai-chat-close:hover{background:#e8e8e6;color:#1a1a1a}.ai-chat-context{font-size:.85rem;color:#737373;margin:.5rem 1.25rem 0;padding:0}.ai-chat-grid-badge{margin:.3rem 1.25rem 0;font-size:.75rem;color:#737373}.ai-chat-messages{flex:1;overflow:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.ai-chat-empty{font-size:.9rem;color:#5c5c5c;margin:0;line-height:1.55}.ai-chat-message{max-width:95%;padding:.75rem 1rem;border-radius:12px;border:1px solid #E8E8E6;background:#fafaf9}.ai-chat-message p{margin:0;white-space:pre-wrap;line-height:1.45}.ai-chat-message-user{align-self:flex-end;background:#dbeafe;border-color:#93c5fd}.ai-chat-message-assistant{align-self:flex-start}.ai-chat-message-error{border-color:#fecaca;background:#fef2f2}.ai-chat-message-meta{margin-top:.4rem!important;font-size:.72rem;color:#737373}.ai-chat-input-wrap{padding:1rem 1.25rem;border-top:1px solid #F0F0EE;display:flex;flex-direction:column;gap:.75rem;flex-shrink:0}.ai-chat-request-error{margin:0;padding:.5rem 1.25rem;font-size:.8rem;color:#dc2626;border-top:1px solid #FEE2E2;background:#fef2f2}.ai-chat-quick-actions{display:flex;gap:.4rem;flex-wrap:wrap}.ai-chat-quick-action-btn{border:1px solid #E8E8E6;background:#fff;color:#1a1a1a;border-radius:999px;font-size:.8rem;font-weight:500;padding:.4rem .75rem;cursor:pointer;transition:background .15s,border-color .15s}.ai-chat-quick-action-btn:disabled{opacity:.5;cursor:not-allowed}.ai-chat-quick-action-btn:hover:not(:disabled){background:#fafaf9;border-color:#2563eb;color:#1d4ed8}.ai-chat-input-row{display:flex;gap:.5rem;align-items:flex-end}.ai-chat-input{flex:1;padding:.75rem 1rem;border:1px solid #E8E8E6;border-radius:8px;font-size:.95rem;font-family:inherit;resize:none;box-sizing:border-box;background:#fafaf9;transition:border-color .15s,box-shadow .15s}.ai-chat-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb33}.ai-chat-input::placeholder{color:#737373}.ai-chat-send{height:42px;min-width:76px;border:none;border-radius:8px;background:#2563eb;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s}.ai-chat-send:disabled{opacity:.5;cursor:not-allowed}.ai-chat-send:hover:not(:disabled){background:#1d4ed8}.ai-chat-generate-panel{flex:1;overflow:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.ai-chat-generate-title{font-size:1rem;font-weight:600;margin:0;color:#1a1a1a}.ai-chat-generate-description{font-size:.9rem;line-height:1.5;color:#5c5c5c;margin:0}.ai-chat-generate-input-wrap{display:flex;flex-direction:column;gap:.75rem}.ai-chat-generate-label{font-size:.9rem;font-weight:500;color:#1a1a1a}.ai-chat-generate-input{padding:.85rem 1rem;font-size:.95rem;border:1px solid #E8E8E6;border-radius:8px;font-family:inherit;background:#fafaf9;transition:border-color .15s,box-shadow .15s}.ai-chat-generate-input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f9731626}.ai-chat-generate-btn{padding:.75rem 1.35rem;font-size:.95rem;font-weight:600;border:none;border-radius:8px;background:#f97316;color:#fff;cursor:pointer;align-self:flex-start;transition:background .15s}.ai-chat-generate-btn:disabled{opacity:.5;cursor:not-allowed}.ai-chat-generate-btn:hover:not(:disabled){background:#ea580c}.ai-chat-stream-wrap{margin-top:.5rem;border:1px solid #E8E8E6;border-radius:8px;background:#fafaf9;overflow:hidden;max-height:240px;display:flex;flex-direction:column}.ai-chat-stream-label{margin:0;padding:.5rem .85rem;font-size:.75rem;font-weight:600;color:#737373;border-bottom:1px solid #F0F0EE;text-transform:uppercase;letter-spacing:.03em}.ai-chat-stream-output{flex:1;margin:0;padding:.85rem 1rem;font-size:.8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;line-height:1.45;white-space:pre-wrap;word-break:break-word;overflow:auto;min-height:4rem;color:#1a1a1a}.ai-chat-generate-error{padding:.85rem;background:#fef2f2;border:1px solid #FECACA;border-radius:8px;font-size:.85rem;color:#dc2626}.ai-chat-generate-error strong{display:block;margin-bottom:.25rem}.schema-visualizer{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--grid-bg-muted);border-radius:var(--grid-radius);overflow:hidden}.schema-visualizer--loading,.schema-visualizer--error,.schema-visualizer--empty{align-items:center;justify-content:center;padding:2rem;color:var(--grid-text-muted)}.schema-visualizer--error{color:var(--grid-error)}.schema-canvas{flex:1;min-height:400px;overflow:auto;background:linear-gradient(to right,var(--grid-border-light) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-border-light) 1px,transparent 1px);background-size:20px 20px;background-color:var(--grid-bg)}.schema-canvas-inner{position:relative;flex-shrink:0;overflow:visible}.schema-edges{position:absolute;top:0;left:0;pointer-events:none}.schema-edge--hit{pointer-events:stroke}.schema-edge-group{pointer-events:none}.schema-edge-group .schema-edge--hit{pointer-events:stroke}.schema-node-field--relationship-target{background:var(--grid-accent-muted)}.schema-node{position:absolute;background:var(--grid-bg-card);border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);box-shadow:var(--grid-shadow);cursor:grab;display:flex;flex-direction:column;min-height:80px;transition:box-shadow .15s,border-color .15s}.schema-node:hover{border-color:var(--grid-accent-muted);box-shadow:var(--grid-shadow-hover)}.schema-node--dragging{cursor:grabbing;box-shadow:0 8px 24px #0000001f;z-index:10}.schema-node-header{padding:10px 14px;border-bottom:1px solid var(--grid-border-light);background:var(--grid-bg-muted);border-radius:var(--grid-radius-sm) var(--grid-radius-sm) 0 0;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-height:44px;height:44px;overflow:hidden}.schema-node-title{font-weight:600;font-size:.95rem;color:var(--grid-text)}.schema-node-api{font-size:.75rem;color:var(--grid-text-subtle);font-family:ui-monospace,monospace}.schema-node-badge{font-size:.65rem;padding:2px 6px;border-radius:4px;background:var(--grid-accent-muted);color:var(--grid-accent-hover);font-weight:500;margin-left:auto}.schema-node-badge--custom{background:var(--grid-bg-muted);color:var(--grid-text-muted)}.schema-node-fields{padding:8px 0;display:flex;flex-direction:column;gap:0}.schema-node-field{display:flex;align-items:center;gap:8px;padding:4px 14px;font-size:.8rem;color:var(--grid-text)}.schema-node-field:hover{background:var(--grid-bg-muted)}.schema-node-field-name{font-family:ui-monospace,monospace;color:var(--grid-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.schema-node-field-type{font-size:.7rem;color:var(--grid-text-subtle);flex-shrink:0}.schema-node-field--empty{color:var(--grid-text-muted);font-style:italic}.schema-legend{padding:10px 16px;border-top:1px solid var(--grid-border-light);background:var(--grid-bg-card);font-size:.8rem;color:var(--grid-text-muted);display:flex;flex-wrap:wrap;gap:12px;align-items:center}.schema-legend-item em{font-style:normal;color:var(--grid-accent-hover);margin-left:4px}.schema-legend-empty{font-style:italic}.add-custom-object-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.add-custom-object-modal{background:var(--grid-bg-card);border-radius:var(--grid-radius);box-shadow:var(--grid-shadow-hover);max-width:420px;width:100%;padding:1.5rem}.add-custom-object-title{font-size:1.15rem;font-weight:600;margin:0 0 .5rem;color:var(--grid-text)}.add-custom-object-description{font-size:.9rem;color:var(--grid-text-muted);margin:0 0 1.25rem;line-height:1.45}.add-custom-object-form{display:flex;flex-direction:column;gap:1rem}.add-custom-object-field{display:flex;flex-direction:column;gap:.35rem}.add-custom-object-field label{font-size:.875rem;font-weight:500;color:var(--grid-text)}.add-custom-object-field input{padding:.5rem .75rem;font-size:.95rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);background:var(--grid-bg-card);color:var(--grid-text)}.add-custom-object-field input:focus{outline:none;border-color:var(--grid-accent);box-shadow:0 0 0 2px var(--grid-accent-muted)}.add-custom-object-field input::placeholder{color:var(--grid-text-subtle)}.add-custom-object-error{font-size:.875rem;color:var(--grid-error);margin:0}.add-custom-object-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.25rem}.add-custom-object-cancel{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer}.add-custom-object-cancel:hover:not(:disabled){background:var(--grid-bg-muted)}.add-custom-object-submit{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:none;background:var(--grid-accent);color:#fff;border-radius:var(--grid-radius-sm);cursor:pointer}.add-custom-object-submit:hover:not(:disabled){background:var(--grid-accent-hover)}.add-custom-object-submit:disabled{opacity:.7;cursor:not-allowed}.delete-object-confirm-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.delete-object-confirm-modal{background:var(--grid-bg-card);border-radius:var(--grid-radius);box-shadow:var(--grid-shadow-hover);max-width:420px;width:100%;padding:1.5rem}.delete-object-confirm-title{font-size:1.15rem;font-weight:600;margin:0 0 .5rem;color:var(--grid-text)}.delete-object-confirm-description{font-size:.9rem;color:var(--grid-text-muted);margin:0 0 .5rem;line-height:1.45}.delete-object-confirm-hint{font-size:.875rem;color:var(--grid-text-subtle);margin:0 0 1rem}.delete-object-confirm-form{display:flex;flex-direction:column;gap:1rem}.delete-object-confirm-input{padding:.5rem .75rem;font-size:.95rem;border:1px solid var(--grid-border);border-radius:var(--grid-radius-sm);background:var(--grid-bg-card);color:var(--grid-text)}.delete-object-confirm-input:focus{outline:none;border-color:var(--grid-accent);box-shadow:0 0 0 2px var(--grid-accent-muted)}.delete-object-confirm-input::placeholder{color:var(--grid-text-subtle)}.delete-object-confirm-actions{display:flex;justify-content:flex-end;gap:.75rem}.delete-object-confirm-cancel{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:1px solid var(--grid-border);background:var(--grid-bg-card);color:var(--grid-text);border-radius:var(--grid-radius-sm);cursor:pointer}.delete-object-confirm-cancel:hover:not(:disabled){background:var(--grid-bg-muted)}.delete-object-confirm-submit{padding:.5rem 1rem;font-size:.9rem;font-weight:500;border:none;background:var(--grid-error);color:#fff;border-radius:var(--grid-radius-sm);cursor:pointer}.delete-object-confirm-submit:hover:not(:disabled){background:#b91c1c}.delete-object-confirm-submit:disabled{opacity:.5;cursor:not-allowed}
