.asset-card-workspace {
  --asset-control-size: var(--space-8);
  --asset-query-size: 36px;
  --asset-row-size: 36px;
  --asset-tree-size: 204px;
  --asset-tree-compact-size: 176px;
  --asset-period-size: 88px;
  --asset-period-marker-size: 24px;
  --asset-grid-min-size: 1688px;
  --asset-grid-columns: 56px 112px 150px 110px 160px 96px 116px 136px 82px 120px 132px 116px 132px 96px;
  --asset-compact-font: 13px;
  --asset-caption-font: 12px;
  --asset-state-size: 196px;
  --asset-popover-size: 280px;
  --asset-focus-ring: 3px solid rgba(20, 184, 166, 0.32);
  position: relative;
  min-height: calc(100dvh - 150px);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

body:has(.workspace[data-view="asset-cards"]) { --asset-wide-shell-main: minmax(0, 1fr); }
body:has(.workspace[data-view="asset-cards"]) .app-shell { grid-template-columns: var(--sidebar-width) var(--asset-wide-shell-main) 0; }
body:has(.workspace[data-view="asset-cards"]) .right-ai-dock { width: 0; padding: 0; border-left: 0; visibility: hidden; opacity: 0; pointer-events: none; }
body:has(.workspace[data-view="asset-cards"]) .ai-cat-launcher { display: grid; visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }
.asset-workbench-head, .asset-workbench-toolbar, .asset-query-row, .asset-pagination, .asset-mobile-controls { display: flex; align-items: center; }
.asset-workbench-head { justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); background: var(--surface-2); }
.asset-workbench-tabs, .asset-workbench-toolbar { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.asset-workbench-tabs button, .asset-tool, .asset-pagination button, .asset-category-tree button, .asset-period-months button, .asset-period-step, .asset-mobile-controls button {
  min-height: var(--asset-control-size);
  border: 1px solid transparent;
  border-radius: calc(var(--radius) - 2px);
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: var(--asset-compact-font);
  font-weight: 700;
  cursor: pointer;
  transition: background 180ms var(--ease), border-color 180ms var(--ease), color 180ms var(--ease), transform 120ms ease-out;
}
.asset-workbench-tabs button, .asset-category-tree button { padding: 0 var(--space-3); }
.asset-workbench-tabs .is-active, .asset-category-tree .is-active, .asset-period-months .is-active { color: var(--teal); background: var(--teal-soft); border-color: var(--teal-border); }
.asset-tool { position: relative; display: inline-flex; align-items: center; gap: var(--space-1); padding: 0 var(--space-2); white-space: nowrap; }
.asset-tool svg, .asset-search-box svg { width: var(--space-4); height: var(--space-4); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.asset-tool.is-primary { color: var(--on-accent); background: var(--teal); }
.asset-tool.is-disabled, .asset-tool:disabled { color: var(--muted); cursor: not-allowed; opacity: 0.72; }
.asset-tool:not(.is-disabled):not(:disabled):hover { color: var(--teal); background: var(--teal-soft); border-color: var(--teal-border); }
.asset-tool:not(:disabled):active { transform: translateY(1px); }
.asset-tool:focus-visible, .asset-workbench-tabs button:focus-visible, .asset-category-tree button:focus-visible, .asset-period-months button:focus-visible, .asset-period-step:focus-visible { outline: var(--asset-focus-ring); outline-offset: 1px; }
.asset-tool-tooltip { position: absolute; top: calc(100% + var(--space-1)); right: 0; z-index: 3; width: max-content; max-width: var(--asset-popover-size); padding: var(--space-2); border-radius: calc(var(--radius) - 2px); background: var(--ink); box-shadow: var(--shadow-soft); color: var(--surface); font-size: var(--asset-caption-font); opacity: 0; pointer-events: none; visibility: hidden; }
.asset-tool.is-disabled:hover .asset-tool-tooltip, .asset-tool.is-disabled:focus .asset-tool-tooltip { opacity: 1; visibility: visible; }
.asset-batch-action { position: relative; display: inline-flex; }
.asset-batch-menu { position: absolute; top: calc(100% + var(--space-1)); right: 0; z-index: 4; display: grid; gap: var(--space-1); min-width: 120px; padding: var(--space-1); border: 1px solid var(--line); border-radius: calc(var(--radius) - 2px); background: var(--surface); box-shadow: var(--shadow-soft); }
.asset-batch-menu[hidden] { display: none; }
.asset-batch-menu button { min-height: var(--asset-control-size); border: 0; border-radius: calc(var(--radius) - 4px); background: transparent; color: var(--ink); font: inherit; font-size: var(--asset-compact-font); font-weight: 700; text-align: left; cursor: pointer; }
.asset-batch-menu button:not(:disabled):hover { color: var(--rose); background: rgba(190, 18, 60, 0.08); }
.asset-batch-menu button:disabled { color: var(--muted); cursor: not-allowed; }
.asset-batch-status { align-self: center; color: var(--muted); font-size: var(--asset-caption-font); font-weight: 700; white-space: nowrap; }
.asset-batch-status.is-error { color: var(--rose); }
.asset-workbench-body { display: grid; grid-template-columns: var(--asset-tree-size) minmax(0, 1fr) var(--asset-period-size); min-height: calc(100dvh - 214px); }
.asset-category-tree { display: grid; align-content: start; gap: var(--space-2); padding: var(--space-3); border-right: 1px solid var(--line); background: var(--surface); }
.asset-category-group { display: grid; gap: var(--space-1); }
.asset-category-group-toggle { justify-content: flex-start; width: 100%; text-align: left; }
.asset-category-group-toggle::before { content: "›"; display: inline-block; margin-right: var(--space-2); transform: rotate(90deg); }
.asset-category-group-toggle[aria-expanded="false"]::before { transform: none; }
.asset-category-children { display: grid; gap: var(--space-1); padding-left: var(--space-3); }
.asset-category-children[hidden] { display: none; }
.asset-category-group.is-unavailable { padding-top: var(--space-1); border-top: 1px solid var(--line-subtle); }
.asset-category-group.is-unavailable button, .asset-category-group.is-unavailable span { color: var(--muted); }
.asset-category-group.is-unavailable span { padding: 0 var(--space-3); font-size: var(--asset-caption-font); }
.asset-table-pane { display: grid; grid-template-rows: auto minmax(var(--asset-state-size), 1fr) auto; min-width: 0; padding: var(--space-3); }
.asset-query-row { justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-3); }
.asset-search-box { display: inline-flex; align-items: center; gap: var(--space-2); width: min(360px, 100%); min-height: var(--asset-query-size); padding: 0 var(--space-3); border-bottom: 1px solid var(--line); color: var(--muted); }
.asset-search-box input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; }
.asset-more-filter { color: var(--muted); font-size: var(--asset-compact-font); }
.asset-card-table-scroll { min-height: var(--asset-state-size); max-width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: calc(var(--radius) - 2px); }
.asset-card-grid { min-width: var(--asset-grid-min-size); font-size: var(--asset-caption-font); font-variant-numeric: tabular-nums; }
.asset-card-grid-row { display: grid; grid-template-columns: var(--asset-grid-columns); min-height: var(--asset-row-size); border-bottom: 1px solid var(--line-subtle); }
.asset-card-grid-row > span { min-width: 0; overflow: hidden; padding: var(--space-2); text-overflow: ellipsis; white-space: nowrap; }
.asset-card-grid-head { position: sticky; top: 0; z-index: 1; background: var(--surface-table); color: var(--ink); font-weight: 800; }
.asset-card-grid-head span:first-child, .asset-card-grid-row span:first-child { display: inline-flex; align-items: center; gap: var(--space-1); }
.asset-card-grid-row:not(.asset-card-grid-head):hover { background: var(--surface-accent); }
.asset-state-row { grid-template-columns: 1fr; min-height: var(--asset-state-size); place-items: center; color: var(--muted); font-size: var(--asset-compact-font); font-weight: 700; }
.asset-pagination { justify-content: flex-end; gap: var(--space-2); padding-top: var(--space-3); color: var(--muted); font-size: var(--asset-caption-font); }
.asset-pagination select, .asset-mobile-controls select { min-height: var(--asset-control-size); border: 1px solid var(--line); border-radius: calc(var(--radius) - 2px); background: var(--surface); }
.asset-period-rail { display: grid; align-content: start; gap: var(--space-2); padding: var(--space-3) var(--space-2); border-left: 1px solid var(--line); background: var(--surface-2); text-align: center; }
.asset-period-rail span { color: var(--muted); font-size: var(--asset-caption-font); font-weight: 800; }
.asset-period-rail strong { font-size: var(--asset-compact-font); }
.asset-period-months { display: grid; gap: var(--space-1); max-height: calc(100dvh - 370px); overflow: auto; }
.asset-period-year { min-height: var(--asset-period-marker-size); display: grid; place-items: center; border-top: 1px solid var(--line-subtle); }
.asset-guide-popover { position: absolute; right: var(--space-4); top: 58px; display: grid; gap: var(--space-2); max-width: var(--asset-popover-size); padding: var(--space-3); border: 1px solid var(--teal-border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); color: var(--ink); }
.asset-guide-popover[hidden] { display: none; }
.asset-card-workspace.is-guided .asset-workbench-toolbar, .asset-card-workspace.is-guided .asset-category-tree, .asset-card-workspace.is-guided .asset-query-row { outline: 3px solid rgba(20, 184, 166, 0.24); outline-offset: -3px; }
.asset-mobile-controls { display: none; justify-content: space-between; gap: var(--space-2); padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--line); }
@media print { body * { visibility: hidden; } .asset-card-workspace, .asset-card-workspace * { visibility: visible; } .asset-card-workspace { position: absolute; inset: 0; border: 0; } }
@media (max-width: 1100px) { .asset-workbench-body { grid-template-columns: var(--asset-tree-compact-size) minmax(0, 1fr); } .asset-period-rail { display: none; } }
@media (max-width: 680px) { .asset-card-workspace { min-height: 100dvh; border-radius: 0; } .asset-mobile-controls { display: flex; } .asset-workbench-head, .asset-query-row { align-items: stretch; flex-direction: column; } .asset-workbench-body { position: relative; display: block; } .asset-category-tree { position: absolute; inset: 0 auto 0 0; z-index: 2; width: min(var(--asset-tree-size), calc(100% - var(--space-8))); overflow: auto; border-right: 0; box-shadow: var(--shadow); transform: translateX(-100%); visibility: hidden; transition: transform 180ms var(--ease), visibility 180ms var(--ease); } .asset-category-tree.is-mobile-open { transform: translateX(0); visibility: visible; } }
