.datatable{border:1px solid var(--token-line-soft);border-radius:var(--radius-lg);background:var(--token-surface);overflow:hidden;font-size:var(--density-font-size-md)}.dt-toolbar{display:flex;align-items:center;gap:var(--density-space-sm);padding:10px 14px;border-bottom:1px solid var(--token-line-soft)}.dt-search{display:flex;align-items:center;gap:8px;height:32px;width:260px;max-width:100%;padding:0 10px;color:var(--token-text-faint);background:var(--token-control);border:1px solid var(--token-outline-soft);border-radius:var(--radius-md);box-shadow:var(--token-shadow-inset);transition:border-color var(--icen-tx-fast),box-shadow var(--icen-tx-fast)}.dt-search:focus-within{border-color:var(--icen-control-focus-border, var(--token-accent));box-shadow:var(--icen-control-focus-shadow)}.dt-search-input{flex:1;min-width:0;border:0;outline:none;background:transparent;color:var(--token-text);font:inherit;font-size:var(--density-font-size-sm)}.dt-search-input::placeholder{color:var(--token-text-faint)}.dt-search-input::-webkit-search-cancel-button{-webkit-appearance:none}.dt-scroll{overflow:auto}.datatable--virtual .dt-scroll{overscroll-behavior:contain}.dt-canvas{min-width:560px}.dt-row{display:grid;align-items:center;border-bottom:1px solid var(--token-line-soft);transition:background var(--icen-tx-fast)}.dt-body .dt-row:last-child{border-bottom:0}.dt-body .dt-row:hover{background:var(--token-fill-1)}.dt-row.is-selected{background:var(--token-accent-subtle)}.dt-row.is-selected:hover{background:color-mix(in srgb,var(--token-accent-subtle) 82%,var(--token-fill-1))}.dt-row.is-clickable{cursor:pointer}.datatable--striped .dt-body .dt-row:nth-child(2n):not(.is-selected){background:color-mix(in srgb,var(--token-fill-1) 55%,transparent)}.datatable--striped .dt-body .dt-row:nth-child(2n):not(.is-selected):hover{background:var(--token-fill-1)}.dt-cell{padding:0 12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--token-text);display:flex;align-items:center;gap:8px;min-height:44px}.datatable--virtual .dt-cell{min-height:0;height:100%}.dt-cell[data-align=center]{justify-content:center;text-align:center}.dt-cell[data-align=right]{justify-content:flex-end;text-align:right}.dt-cell--check,.dt-cell--expand{justify-content:center;padding:0 4px}.dt-head{border-bottom:1px solid var(--token-line-soft)}.dt-row--head{background:var(--token-bg-soft);border-bottom:0}.datatable--virtual .dt-row--head{position:sticky;top:0;z-index:var(--z-raised)}.dt-cell--head{position:relative;min-height:40px;font-size:var(--density-font-size-sm);font-weight:600;color:var(--token-text-muted);user-select:none}.dt-cell--head.is-sortable{cursor:pointer}.dt-cell--head.is-sortable:hover{color:var(--token-text)}.dt-cell--head:focus-visible{outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--token-accent) 50%,transparent)}.dt-head-title{overflow:hidden;text-overflow:ellipsis}.dt-sort{font-size:10px;color:var(--token-text-faint);flex-shrink:0}.dt-sort.is-active{color:var(--token-accent)}.dt-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--token-text-faint);cursor:pointer;transition:color var(--icen-tx-fast),background var(--icen-tx-fast)}.dt-filter-btn:hover{color:var(--token-text);background:var(--token-fill-2)}.dt-filter-btn.is-open,.dt-filter-btn.is-active{color:var(--token-accent)}.dt-filter-btn.is-active{background:var(--token-accent-subtle)}.dt-filter-panel{position:fixed;z-index:var(--z-popover);min-width:168px;max-width:240px;padding:4px;background:var(--token-card-strong);border:1px solid var(--token-outline);border-radius:var(--radius-md);box-shadow:var(--token-shadow-overlay);font-weight:400;animation:dt-panel-in var(--icen-tx-fast)}@keyframes dt-panel-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.dt-filter-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column}.dt-filter-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--density-font-size-sm);color:var(--token-text);cursor:pointer}.dt-filter-item:hover{background:var(--token-fill-1)}.dt-filter-item>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-filter-foot{display:flex;justify-content:flex-end;padding:4px 6px 2px;border-top:1px solid var(--token-line-soft);margin-top:4px}.dt-filter-reset{border:0;background:transparent;color:var(--token-accent);font:inherit;font-size:var(--density-font-size-xs);cursor:pointer;padding:2px 4px}.dt-filter-reset:hover{text-decoration:underline}.dt-check{width:15px;height:15px;margin:0;accent-color:var(--token-accent);cursor:pointer;flex-shrink:0}.dt-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--token-text-faint);cursor:pointer;transition:transform var(--icen-tx-fast),color var(--icen-tx-fast),background var(--icen-tx-fast)}.dt-expand-btn:hover{color:var(--token-text);background:var(--token-fill-2)}.dt-expand-btn[aria-expanded=true]{transform:rotate(180deg);color:var(--token-accent)}.dt-expand-row{padding:14px 16px;border-bottom:1px solid var(--token-line-soft);background:var(--token-bg-soft);color:var(--token-text-muted);font-size:var(--density-font-size-sm);line-height:1.7;white-space:normal}.dt-empty{padding:48px 16px;text-align:center;color:var(--token-text-faint);font-size:var(--density-font-size-sm)}.dt-skeleton-row{padding:14px 16px;border-bottom:1px solid var(--token-line-soft)}.dt-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--token-line-soft)}.dt-foot:empty{display:none}.dt-stat{font-size:var(--density-font-size-xs);color:var(--token-text-faint);font-variant-numeric:tabular-nums}.dt-stat--sel{color:var(--token-accent);display:inline-flex;align-items:center;gap:6px}.dt-clear-sel{border:0;background:transparent;color:var(--token-accent);font:inherit;font-size:var(--density-font-size-xs);cursor:pointer;padding:0}.dt-clear-sel:hover{text-decoration:underline}.dt-pager{margin-left:auto;display:flex;align-items:center;gap:4px}.dt-page-size{appearance:none;-webkit-appearance:none;height:28px;padding:0 8px;margin-right:6px;font:inherit;font-size:var(--density-font-size-xs);color:var(--token-text-muted);background:transparent;border:1px solid var(--token-line-soft);border-radius:var(--radius-sm);cursor:pointer}.dt-page-size:hover{border-color:var(--token-accent);color:var(--token-text)}.dt-page-btn{min-width:28px;height:28px;padding:0 6px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--token-text-muted);font:inherit;font-size:var(--density-font-size-xs);font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--icen-tx-fast),border-color var(--icen-tx-fast),background var(--icen-tx-fast)}.dt-page-btn:hover:not(:disabled):not(.is-active){color:var(--token-text);border-color:var(--token-line-soft)}.dt-page-btn.is-active{color:var(--token-accent);border-color:var(--token-accent);background:var(--token-accent-subtle);font-weight:600}.dt-page-btn:disabled{opacity:.35;cursor:not-allowed}.dt-page-dots{color:var(--token-text-faint);font-size:var(--density-font-size-xs);padding:0 2px}@media(prefers-reduced-motion:reduce){.dt-filter-panel{animation:none}}.menu{position:fixed;z-index:var(--z-popover);min-width:180px;max-width:320px;max-height:min(70vh,420px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:var(--density-space-xs);background:color-mix(in srgb,var(--token-card-strong) 92%,transparent);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--token-outline);box-shadow:var(--token-shadow-overlay);border-radius:var(--radius-lg);animation:icen-menu-in var(--icen-tx-fast)}.menu[data-side=top]{animation-name:icen-menu-in-top}.menu[data-side=left]{animation-name:icen-menu-in-left}.menu[data-side=right]{animation-name:icen-menu-in-right}.menu--context{min-width:218px;max-width:286px;z-index:var(--z-tooltip);animation-duration:.1s}.menu-label{padding:var(--density-space-xs) var(--density-space-sm);font-size:var(--density-font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--token-text-faint)}.menu-header{padding:var(--density-space-sm) calc(var(--density-space-sm) + 2px) var(--density-space-xs)}.menu-header-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--density-font-size-sm);font-weight:500;line-height:1.4;color:var(--token-text)}.menu-header-desc{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--density-font-size-xs);line-height:1.4;color:var(--token-text-faint)}.menu-item{position:relative;display:flex;align-items:center;gap:var(--density-space-xs);width:100%;padding:6px var(--density-space-sm);background:none;border:0;font:inherit;font-size:var(--density-font-size-sm);text-align:left;color:var(--token-text);border-radius:var(--radius-sm);cursor:pointer;user-select:none;transition:background-color var(--icen-tx-fast),color var(--icen-tx-fast)}.menu-item:hover:not(.is-disabled){background:var(--token-fill-1)}.menu-item.is-highlighted,.menu-item:focus-visible{background:var(--token-surface-hover);color:var(--token-accent);outline:none}.menu-item--danger{color:var(--token-error)}.menu-item--danger.is-highlighted,.menu-item--danger:focus-visible{background:var(--token-error-muted);color:var(--token-error)}.menu-item.is-disabled,.menu-item:disabled,.menu-item[aria-disabled=true]{opacity:var(--icen-disabled-opacity);pointer-events:none}.menu-item-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.menu-item-icon:empty{width:14px;height:auto}.menu-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-sub{display:block;font-size:var(--density-font-size-xs);line-height:1.3;color:var(--token-text-faint);margin-top:2px}.menu-item-shortcut{font-size:var(--density-font-size-xs);color:var(--token-text-faint);font-family:var(--font-mono);margin-left:var(--density-space-sm)}.menu-item-chevron{width:12px;height:12px;flex-shrink:0;color:var(--token-text-faint)}.menu-item-check{position:absolute;left:var(--density-space-sm);top:50%;transform:translateY(-50%);color:var(--token-accent);font-size:var(--density-font-size-md);line-height:1}.menu-item--checked{padding-left:28px}.menu-separator{margin:var(--density-space-xs) calc(var(--density-space-sm) + 2px);height:1px;background:var(--token-line-soft)}@keyframes icen-menu-in{0%{opacity:0;transform:scale(.95) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes icen-menu-in-top{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes icen-menu-in-left{0%{opacity:0;transform:scale(.95) translate(8px)}to{opacity:1;transform:scale(1) translate(0)}}@keyframes icen-menu-in-right{0%{opacity:0;transform:scale(.95) translate(-8px)}to{opacity:1;transform:scale(1) translate(0)}}@media(prefers-reduced-motion:reduce){.menu,.menu--context{animation:none}}@media(hover:none){.menu-item:hover:not(.is-disabled){background:transparent}}.chart{width:100%;display:flex;flex-direction:column;gap:var(--density-space-sm)}.chart-empty{height:150px;display:flex;align-items:center;justify-content:center;font-size:var(--density-font-size-xs);color:var(--token-text-faint)}.chart-legend{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.chart-legend-item{display:flex;align-items:center;gap:var(--density-space-xs);font-size:var(--density-font-size-xs);min-width:0}.chart-legend-dot{width:8px;height:8px;flex-shrink:0;border-radius:var(--radius-full);background:var(--chart-tone, var(--token-accent))}.chart-legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--token-text-muted)}.chart-legend-value{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--token-text-faint)}.chart-labels{display:flex;gap:var(--density-space-xs);margin-top:var(--density-space-xs)}.chart-labels>span{flex:1;min-width:0;text-align:center;font-size:9px;color:var(--token-text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.chart-vbar{display:flex;align-items:flex-end;gap:var(--density-space-xs);height:112px}.chart-vbar-track{flex:1;height:100%;min-width:0;display:flex;align-items:flex-end;background:color-mix(in srgb,var(--token-fill-2) 45%,transparent);border-radius:var(--radius-sm);overflow:hidden}.chart-vbar-bar{width:100%;border-radius:var(--radius-sm);background:var(--chart-tone, var(--token-accent));transition:height var(--icen-tx-slow)}.chart-vbar-bar:hover{filter:brightness(1.08)}.chart-hbar{display:flex;flex-direction:column;gap:var(--density-space-xs)}.chart-hbar-row{display:grid;grid-template-columns:minmax(72px,1fr) minmax(90px,2fr) 52px;gap:var(--density-space-xs);align-items:center;font-size:var(--density-font-size-xs)}.chart-hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--token-text-muted)}.chart-hbar-track{height:10px;overflow:hidden;border-radius:var(--radius-full);background:var(--token-fill-2)}.chart-hbar-bar{height:100%;border-radius:var(--radius-full);background:var(--chart-tone, var(--token-accent));transition:width var(--icen-tx-slow)}.chart-hbar-bar:hover{filter:brightness(1.08)}.chart-hbar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--token-text-faint)}.chart-stack{height:16px;display:flex;overflow:hidden;border-radius:var(--radius-full);background:var(--token-fill-2);margin-bottom:var(--density-space-sm)}.chart-stack-seg{height:100%;min-width:3px;background:var(--chart-tone, var(--token-accent));transition:width var(--icen-tx-slow)}.chart-stack-seg:hover{filter:brightness(1.08)}.chart-donut{display:flex;align-items:center;gap:var(--density-space-md);min-height:150px}.chart-donut>svg{width:132px;height:132px;flex-shrink:0}.chart-donut-center{font-variant-numeric:tabular-nums;text-anchor:middle;fill:var(--token-text);font-weight:600}.chart-line>svg{display:block;width:100%;height:150px;overflow:visible}.chart-heatmap{display:flex;flex-direction:column;gap:var(--density-space-xs)}.chart-heatmap-grid{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;width:100%}.chart-heatmap-cell{aspect-ratio:1;border-radius:2px;background:var(--token-fill-2)}.chart-heatmap-cell.is-blank{background:transparent}.chart-heatmap-cell[data-level="1"]{background:color-mix(in srgb,var(--chart-tone, var(--token-accent)) 28%,var(--token-fill-2))}.chart-heatmap-cell[data-level="2"]{background:color-mix(in srgb,var(--chart-tone, var(--token-accent)) 50%,var(--token-fill-2))}.chart-heatmap-cell[data-level="3"]{background:color-mix(in srgb,var(--chart-tone, var(--token-accent)) 74%,var(--token-fill-2))}.chart-heatmap-cell[data-level="4"]{background:var(--chart-tone, var(--token-accent))}.chart-heatmap-cell:not(.is-blank):hover{outline:1px solid var(--chart-tone, var(--token-accent));outline-offset:0}.chart-heatmap-legend{display:flex;align-items:center;justify-content:flex-end;gap:3px;font-size:var(--density-font-size-xs);color:var(--token-text-faint)}.chart-heatmap-legend .chart-heatmap-cell{width:10px;height:10px;aspect-ratio:auto}.chart-heatmap-legend>span:first-child{margin-right:2px}.chart-heatmap-legend>span:last-child{margin-left:2px}.chart-sparkline>svg{display:block;width:96px;height:28px;overflow:visible}.chart-gauge{position:relative;width:132px;flex-shrink:0}.chart-gauge>svg{display:block;width:132px;height:132px}.chart-gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.chart-gauge-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--token-text)}.chart-gauge-label{font-size:var(--density-font-size-xs);color:var(--token-text-faint)}.chart-tone-1{--chart-tone: var(--token-accent)}.chart-tone-2{--chart-tone: var(--token-accent-cold)}.chart-tone-3{--chart-tone: var(--token-success)}.chart-tone-4{--chart-tone: var(--token-warning)}.chart-tone-5{--chart-tone: var(--token-info)}.chart-tone-6{--chart-tone: color-mix(in srgb, var(--token-text) 50%, transparent)}@media(prefers-reduced-motion:reduce){.chart-vbar-bar,.chart-hbar-bar,.chart-stack-seg{transition:none}}
