.ws-row{display:flex;flex-direction:row;align-items:var(--_ws-row-align,var(--ws-row-align,center));justify-content:var(--_ws-row-justify,var(--ws-row-justify,flex-start));gap:var(--_ws-row-gap,var(--ws-row-gap,var(--ws-layout-gap-md)));flex-wrap:var(--_ws-row-wrap,var(--ws-row-wrap,nowrap))}.ws-row--inline{display:inline-flex}.ws-row--full{width:100%}.ws-row--grow{flex:1}.ws-row--align-start{--_ws-row-align:flex-start}.ws-row--align-center{--_ws-row-align:center}.ws-row--align-end{--_ws-row-align:flex-end}.ws-row--align-stretch{--_ws-row-align:stretch}.ws-row--align-baseline{--_ws-row-align:baseline}.ws-row--justify-start{--_ws-row-justify:flex-start}.ws-row--justify-center{--_ws-row-justify:center}.ws-row--justify-end{--_ws-row-justify:flex-end}.ws-row--justify-between{--_ws-row-justify:space-between}.ws-row--justify-around{--_ws-row-justify:space-around}.ws-row--justify-evenly{--_ws-row-justify:space-evenly}.ws-row--wrap{--_ws-row-wrap:wrap}.ws-row--nowrap{--_ws-row-wrap:nowrap}.ws-row--gap-none{--_ws-row-gap:var(--spacing-0)}.ws-row--gap-xs{--_ws-row-gap:var(--ws-layout-gap-xs)}.ws-row--gap-sm{--_ws-row-gap:var(--ws-layout-gap-sm)}.ws-row--gap-md{--_ws-row-gap:var(--ws-layout-gap-md)}.ws-row--gap-lg{--_ws-row-gap:var(--ws-layout-gap-lg)}.ws-stack{display:flex;flex-direction:column;align-items:var(--_ws-stack-align,var(--ws-stack-align,stretch));gap:var(--_ws-stack-gap,var(--ws-stack-gap,var(--ws-layout-gap-md)))}.ws-stack--full{width:100%}.ws-stack--horizontal{flex-direction:row}.ws-stack--vertical{flex-direction:column}.ws-stack--wrap{flex-wrap:wrap}.ws-stack--align-start{--_ws-stack-align:flex-start}.ws-stack--align-center{--_ws-stack-align:center}.ws-stack--align-end{--_ws-stack-align:flex-end}.ws-stack--align-stretch{--_ws-stack-align:stretch}.ws-stack--align-baseline{--_ws-stack-align:baseline}.ws-stack--justify-start{justify-content:flex-start}.ws-stack--justify-center{justify-content:center}.ws-stack--justify-end{justify-content:flex-end}.ws-stack--justify-between{justify-content:space-between}.ws-stack--justify-around{justify-content:space-around}.ws-stack--justify-evenly{justify-content:space-evenly}.ws-stack--gap-none{--_ws-stack-gap:var(--spacing-0)}.ws-stack--gap-xs{--_ws-stack-gap:var(--ws-layout-gap-xs)}.ws-stack--gap-sm{--_ws-stack-gap:var(--ws-layout-gap-sm)}.ws-stack--gap-md{--_ws-stack-gap:var(--ws-layout-gap-md)}.ws-stack--gap-lg{--_ws-stack-gap:var(--ws-layout-gap-lg)}.ws-card-grid{align-items:stretch;display:grid;gap:var(--ws-layout-gap-lg);grid-template-columns:minmax(0,1fr)}.ws-card-grid>*{min-width:0}.ws-card-grid-span{grid-column:1/-1}.ws-inline-metric{align-items:baseline;background:var(--wf-surface-card-secondary);border:1px solid var(--wf-border-primary);border-radius:var(--wf-radius-md);display:inline-flex;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-3);white-space:nowrap}.ws-inline-metric-label{color:var(--wf-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.ws-inline-metric-value{color:var(--wf-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-bold)}@media (width >= 1024px){.ws-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ws-stack--divider.ws-stack--vertical>:not(:last-child){border-bottom:1px solid var(--color-border);padding-bottom:var(--ws-layout-gap-md);margin-bottom:var(--ws-layout-gap-md)}.ws-stack--divider.ws-stack--horizontal>:not(:last-child){border-right:1px solid var(--color-border);padding-right:var(--ws-layout-gap-md);margin-right:var(--ws-layout-gap-md)}.ws-stack--divider-strong>:not(:last-child){border-color:var(--color-border-strong)}.ws-header__container{margin-bottom:var(--spacing-6)}.ws-page__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-top:0;margin-bottom:var(--spacing-2);color:var(--color-text)}.ws-page__subtitle{font-size:var(--font-size-lg);color:var(--color-text-subtle);margin:0}.cn-header{margin-bottom:var(--cn-header-space,16px);padding:var(--spacing-3) var(--spacing-4)}.cn-header__content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--cn-header-gap,16px)}.cn-header__text{flex:1}.cn-header__title{font-size:var(--cn-header-title-size,28px);line-height:var(--cn-header-title-lh,1.2);font-weight:var(--cn-header-title-weight,650);color:var(--wf-text-primary);margin:0}.cn-header__subtitle{margin-top:var(--cn-header-subtitle-mt,6px);margin-bottom:0;color:var(--cn-header-subtitle-color,var(--wf-text-secondary));font-size:var(--cn-header-subtitle-font-size,var(--wf-font-size-sm,14px))}.cn-header__right{flex-shrink:0}.cn-grid--gap-sm{gap:var(--cn-grid-gap-sm,12px)}.cn-grid--gap-md{gap:var(--cn-grid-gap-md,16px)}.cn-grid--gap-lg{gap:var(--cn-grid-gap-lg,24px)}.cn-grid{display:grid;gap:var(--cn-grid-gap-md,16px)}.cn-grid--1col{grid-template-columns:1fr}.cn-grid--2col{grid-template-columns:repeat(2,minmax(0,1fr))}.cn-grid--3col{grid-template-columns:repeat(3,minmax(0,1fr))}.cn-grid--4col{grid-template-columns:repeat(4,minmax(0,1fr))}.cn-grid--responsive.cn-grid--2col,.cn-grid--responsive.cn-grid--3col,.cn-grid--responsive.cn-grid--4col{grid-template-columns:1fr}@media (min-width:768px){.cn-grid--responsive.cn-grid--2col,.cn-grid--responsive.cn-grid--3col,.cn-grid--responsive.cn-grid--4col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.cn-grid--responsive.cn-grid--3col,.cn-grid--responsive.cn-grid--4col{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.cn-grid--responsive.cn-grid--4col{grid-template-columns:repeat(4,minmax(0,1fr))}}.ws-view-tabs{display:inline-flex;align-items:center;gap:4px;padding:3px;background:var(--wf-bg-tertiary);border-radius:var(--wf-radius-md,8px)}.ws-view-tabs__tab{all:unset;cursor:pointer;padding:4px 14px;border-radius:calc(var(--wf-radius-md, 8px) - 3px);font:var(--wf-text-sm-medium,500 13px/20px var(--wf-font-sans));color:var(--wf-text-secondary);transition:background .12s ease,color .12s ease;white-space:nowrap}.ws-view-tabs__tab:hover{background:var(--wf-bg-hover);color:var(--wf-text-primary)}.ws-view-tabs__tab--active{background:var(--wf-bg-elevated);color:var(--wf-text-primary);box-shadow:var(--wf-shadow-xs,0 1px 3px rgba(0,0,0,.15))}