.data-grid{overflow:visible;width:100%;min-width:100%}.data-grid table{width:100%;border-collapse:collapse;min-width:-moz-max-content;min-width:max-content;table-layout:auto}.data-grid th{background-color:hsl(var(--muted));text-align:left;color:hsl(var(--muted-foreground));white-space:nowrap;position:sticky;top:0;left:0;z-index:30;background-color:var(--muted)}.data-grid td,.data-grid th{border-bottom-width:var(--hairline);padding:.75rem 1rem;min-width:120px}.data-grid td{max-width:300px;position:relative;cursor:pointer;pointer-events:auto;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.data-grid td.selectable{cursor:pointer;pointer-events:auto;outline:none;transition:all .15s ease-in-out}.data-grid td.selectable:focus{outline:2px solid #3b82f6;outline-offset:-2px}.data-grid td .cell-content{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 0;pointer-events:none}.data-grid td:hover .cell-content{background-color:rgba(59,130,246,.1);border-radius:4px;padding:2px 4px}.data-grid td.actions-column,.data-grid th.actions-column{min-width:100px;max-width:100px;width:100px;white-space:nowrap;cursor:default;pointer-events:auto}.data-grid td.id-column,.data-grid th.id-column{min-width:80px;max-width:80px;width:80px;cursor:default;pointer-events:auto}.data-grid tbody tr:hover{background-color:hsl(var(--muted)/.5)}.data-grid tbody tr:last-child td{border-bottom-width:0}.data-grid-container{position:relative;overflow-x:auto;overflow-y:auto;border-radius:8px;border:1px solid var(--border)}.data-grid-container::-webkit-scrollbar{height:8px}.data-grid-container::-webkit-scrollbar-track{background:var(--muted);border-radius:4px}.data-grid-container::-webkit-scrollbar-thumb{background:var(--muted-foreground);border-radius:4px}.data-grid-container::-webkit-scrollbar-thumb:hover{background:var(--foreground)}.scroll-indicator{position:absolute;top:0;right:0;bottom:0;width:4px;background:linear-gradient(90deg,transparent,rgba(59,130,246,.3));pointer-events:none;opacity:0;transition:opacity .3s ease}.scroll-indicator.visible{opacity:1}.data-grid .loading-row{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:-200% 0}to{background-position:200% 0}}.data-grid td.selected{background-color:rgba(59,130,246,.1);border:2px solid #3b82f6;position:relative}.data-grid td.highlighted{background-color:rgba(251,191,36,.2);border:2px solid #f59e0b;position:relative}.data-grid td.selected.highlighted{background:linear-gradient(45deg,rgba(59,130,246,.1) 50%,rgba(251,191,36,.2) 0);border:2px solid #8b5cf6}.data-grid td.selected:before{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;background:#3b82f6;border-radius:50%;z-index:10}.data-grid td.highlighted:after{content:"";position:absolute;top:2px;right:2px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #f59e0b;z-index:10}.data-grid td input,.data-grid td select,.data-grid td textarea{width:100%;border-width:0;background-color:transparent;padding:.25rem}.data-grid td input:focus,.data-grid td select:focus,.data-grid td textarea:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity));--tw-ring-offset-width:0px}.data-grid td input,.data-grid td select,.data-grid td textarea{min-height:32px}.data-grid td input:focus,.data-grid td select:focus,.data-grid td textarea:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.data-grid td.error{background-color:rgba(239,68,68,.1);border:1px solid #ef4444}.data-grid td.error input,.data-grid td.error select,.data-grid td.error textarea{border-color:#ef4444}.validation-error{margin-top:.25rem;font-size:var(--type-xs);line-height:var(--type-xs-lh);--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity));display:block}.permission-indicator{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;z-index:20}.permission-indicator.read-only{background-color:#6b7280}.permission-indicator.write{background-color:#10b981}.permission-indicator.admin{background-color:#8b5cf6}.computed-column{background-color:rgba(139,92,246,.05);font-family:JetBrains Mono,Fira Code,monospace}.computed-column .cell-content{font-weight:500}.formula-error{color:#ef4444;font-size:.75rem;font-weight:600}@media (max-width:768px){.data-grid td,.data-grid th{min-width:100px;padding:8px 12px}.data-grid td.actions-column,.data-grid th.actions-column{min-width:80px;max-width:80px}.data-grid td.id-column,.data-grid th.id-column{min-width:60px;max-width:60px}}.data-grid td:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px;z-index:10}.data-grid th button:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.data-grid .new-record-row{animation:slideIn .3s ease-out}.sort-indicator{display:inline-flex;align-items:center;margin-left:4px;opacity:.5;transition:opacity .2s ease}.sort-indicator.active{opacity:1}.filter-active{background-color:rgba(59,130,246,.1);border-radius:4px}.data-grid th:hover .sort-indicator{opacity:.8}.data-grid tbody tr:hover td.selectable{background-color:rgba(59,130,246,.05)}.context-menu{background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);padding:4px 0;min-width:160px;z-index:50}.context-menu-item{padding:8px 12px;cursor:pointer;transition:background-color .15s ease}.context-menu-item:hover{background-color:var(--muted)}.context-menu-separator{height:1px;background-color:var(--border);margin:4px 0}.data-grid{contain:layout style paint}.data-grid tbody{contain:layout style}.data-grid tr{contain:layout}@media print{.data-grid{overflow:visible!important}.data-grid table{page-break-inside:auto}.data-grid tr{page-break-inside:avoid;page-break-after:auto}.data-grid th{position:static;background:#fff!important}.actions-column{display:none}}.cell-highlight-yellow{background-color:#fef3c7!important}.cell-highlight-green{background-color:#dcfce7!important}.cell-highlight-blue{background-color:#dbeafe!important}.cell-highlight-red{background-color:#fee2e2!important}.cell-highlight-purple{background-color:#ede9fe!important}.simple-grid-cell{position:relative}.cell-selected{outline:none}.cell-in-range,.cell-selected{background-color:rgba(59,130,246,.08)}.cell-range-edge-bottom,.cell-range-edge-left,.cell-range-edge-right,.cell-range-edge-top{box-shadow:none}.simple-grid{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.paper{background:hsl(var(--ground));color:hsl(var(--ink))}.paper .ps-header{background:hsl(var(--surface));border-bottom:1px solid hsl(var(--rule))}.paper .ps-header,.paper .ps-wordmark{color:hsl(var(--ink));font-family:var(--font-sans)}.paper .ps-wordmark{font-size:var(--type-xl);line-height:1;font-weight:var(--weight-heading);letter-spacing:var(--track-tight)}.paper .ps-control{background:hsl(var(--surface));border:1px solid hsl(var(--rule));color:hsl(var(--ink));font-family:var(--font-sans)}.paper .ps-control:hover{background:hsl(var(--band));color:hsl(var(--ink))}.paper .ps-control:not(.focus-ring):focus-visible{outline:2px solid hsl(var(--seal));outline-offset:1px}.paper .ps-control-muted{color:hsl(var(--ink-secondary))}.paper .ps-kbd{font-weight:var(--weight-medium);color:hsl(var(--ink-muted))}.paper .ps-env-chip,.paper .ps-kbd{font-family:var(--font-mono);font-size:var(--type-2xs);line-height:var(--type-2xs-lh);letter-spacing:var(--track-wider);border:1px solid hsl(var(--rule));background:transparent}.paper .ps-env-chip{font-weight:var(--weight-heading);color:hsl(var(--ink-secondary))}.paper .ps-env-chip-red{border-color:hsl(var(--verdict-blocked));color:hsl(var(--verdict-blocked));background:hsl(var(--verdict-blocked)/.05)}.paper .ps-env-chip-amber{border-color:hsl(var(--verdict-advisory));color:hsl(var(--verdict-advisory))}.paper .ps-badge-count{background:hsl(var(--seal-solid));color:hsl(var(--seal-on-solid));font-family:var(--font-mono);font-variant-numeric:tabular-nums}.paper .ps-avatar{border:1px solid hsl(var(--rule));background:hsl(var(--band))}.paper .ps-avatar,.paper .ps-avatar svg,.paper .ps-meta{color:hsl(var(--ink-secondary))}.paper .ps-meta,.paper .ps-sidebar{font-family:var(--font-sans)}.paper .ps-sidebar{background:hsl(var(--surface));border-right:1px solid hsl(var(--rule));color:hsl(var(--ink))}.paper .ps-sidebar-head{border-bottom:1px solid hsl(var(--rule))}.paper .ps-nav-item{color:hsl(var(--ink-secondary));font-family:var(--font-sans);font-weight:var(--weight-medium);background:transparent;box-shadow:inset 2px 0 0 transparent}.paper .ps-nav-item:hover{background:hsl(var(--band));color:hsl(var(--ink))}.paper .ps-nav-item.ps-active,.paper .ps-nav-item.ps-active:hover{color:hsl(var(--seal));background:hsl(var(--seal)/.06);box-shadow:inset 2px 0 0 hsl(var(--seal))}.paper .ps-nav-icon{color:hsl(var(--ink-muted))}.paper .ps-nav-item:hover .ps-nav-icon{color:hsl(var(--ink-secondary))}.paper .ps-nav-item.ps-active .ps-nav-icon{color:hsl(var(--seal))}.paper .ps-nav-chevron{color:hsl(var(--ink-muted))}.paper .ps-nav-item.ps-active .ps-nav-chevron{color:hsl(var(--seal))}.paper .ps-nav-child{color:hsl(var(--ink-secondary));font-family:var(--font-sans)}.paper .ps-nav-child:hover{color:hsl(var(--ink))}.paper .ps-nav-child.ps-active{color:hsl(var(--seal));font-weight:var(--weight-medium)}.paper .ps-collapse-btn{background:hsl(var(--surface));border:1px solid hsl(var(--rule));color:hsl(var(--ink-secondary))}.paper .ps-collapse-btn:hover{background:hsl(var(--band));color:hsl(var(--ink))}.paper .ps-crumb{color:hsl(var(--ink-muted));font-family:var(--font-sans)}.paper a.ps-crumb:hover{color:hsl(var(--seal))}.paper .ps-crumb-entity{color:hsl(var(--ink))}.paper .ps-crumb-sep,.paper .ps-crumb-sep svg{color:hsl(var(--rule))}