@brycks/core-front 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),N=require("react"),M=require("../../../utils/styles.cjs"),C=["var(--brycks-primary-default)","var(--brycks-info-default)","var(--brycks-success-default)","var(--brycks-warning-default)","var(--brycks-error-default)","var(--brycks-foreground-subtle)"],b=100,l=b/2,r=l-1;function p(t,c){const a=(t-90)*Math.PI/180;return{x:l+c*Math.cos(a),y:l+c*Math.sin(a)}}function T(t,c){const a=c-t;if(a>=359.999){const i=p(0,r),o=p(180,r);return[`M ${i.x} ${i.y}`,`A ${r} ${r} 0 1 1 ${o.x} ${o.y}`,`A ${r} ${r} 0 1 1 ${i.x} ${i.y}`].join(" ")}const h=p(t,r),d=p(c,r),u=a>180?1:0;return[`M ${l} ${l}`,`L ${h.x} ${h.y}`,`A ${r} ${r} 0 ${u} 1 ${d.x} ${d.y}`,"Z"].join(" ")}const q=t=>String(t),R=N.forwardRef(function({data:c,size:a=168,thickness:h=22,legend:d="right",centerLabel:u,centerValue:i,valueFormatter:o=q,showShare:P=!0,emptyText:S="Sem dados",className:k,testId:v,...g},j){const{slices:y,total:w}=N.useMemo(()=>{const e=c.filter(n=>n.value>0),_=e.reduce((n,$)=>n+$.value,0);let x=0;return{slices:e.map((n,$)=>{const f=_>0?n.value/_:0,O=x;return x+=f*360,{...n,color:n.color??C[$%C.length],share:f,path:T(O,x)}}),total:_}},[c]),m=h>0,A=m?Math.max(0,r-h/a*b):0,E=y.map(e=>`${e.label}: ${o(e.value)} (${Math.round(e.share*100)}%)`).join(", ");return y.length===0?s.jsx("div",{ref:j,className:M.cx("brycks-pie-chart","brycks-pie-chart--empty",k),"data-testid":v,...g,children:s.jsx("span",{className:"brycks-pie-chart__empty",children:S})}):s.jsxs("div",{ref:j,className:M.cx("brycks-pie-chart",`brycks-pie-chart--legend-${d}`,k),"data-testid":v,...g,children:[s.jsxs("div",{className:"brycks-pie-chart__graphic",style:{width:a,height:a},children:[s.jsxs("svg",{viewBox:`0 0 ${b} ${b}`,className:"brycks-pie-chart__svg",role:"img","aria-label":E,children:[y.map(e=>s.jsx("path",{d:e.path,fill:e.color,className:"brycks-pie-chart__slice"},e.id)),m?s.jsx("circle",{cx:l,cy:l,r:A,className:"brycks-pie-chart__hole"}):null]}),m?s.jsxs("div",{className:"brycks-pie-chart__center","aria-hidden":"true",children:[s.jsx("span",{className:"brycks-pie-chart__center-value",children:i??o(w)}),u?s.jsx("span",{className:"brycks-pie-chart__center-label",children:u}):null]}):null]}),d==="none"?null:s.jsx("ul",{className:"brycks-pie-chart__legend",children:y.map(e=>s.jsxs("li",{className:"brycks-pie-chart__legend-item",children:[s.jsx("span",{className:"brycks-pie-chart__legend-dot",style:{backgroundColor:e.color},"aria-hidden":"true"}),s.jsx("span",{className:"brycks-pie-chart__legend-label",children:e.label}),s.jsx("span",{className:"brycks-pie-chart__legend-value",children:o(e.value)}),P?s.jsxs("span",{className:"brycks-pie-chart__legend-share",children:[Math.round(e.share*100),"%"]}):null]},e.id))})]})});R.displayName="PieChart";exports.PieChart=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),M=require("react"),C=require("../../../utils/styles.cjs"),R=["var(--brycks-primary-default)","var(--brycks-info-default)","var(--brycks-success-default)","var(--brycks-warning-default)","var(--brycks-error-default)","var(--brycks-foreground-subtle)"],u=100,l=u/2,s=l-1;function b(t,c){const a=(t-90)*Math.PI/180;return{x:l+c*Math.cos(a),y:l+c*Math.sin(a)}}function T(t,c){const a=c-t;if(a>=359.999){const i=b(0,s),o=b(180,s);return[`M ${i.x} ${i.y}`,`A ${s} ${s} 0 1 1 ${o.x} ${o.y}`,`A ${s} ${s} 0 1 1 ${i.x} ${i.y}`].join(" ")}const h=b(t,s),d=b(c,s),p=a>180?1:0;return[`M ${l} ${l}`,`L ${h.x} ${h.y}`,`A ${s} ${s} 0 ${p} 1 ${d.x} ${d.y}`,"Z"].join(" ")}const q=t=>String(t),P=M.forwardRef(function({data:c,size:a=168,thickness:h=22,legend:d="right",centerLabel:p,centerValue:i,valueFormatter:o=q,showShare:S=!0,emptyText:w="Sem dados",className:k,testId:v,...g},j){const{slices:y,total:A}=M.useMemo(()=>{const e=c.filter(n=>n.value>0),x=e.reduce((n,$)=>n+$.value,0);let _=0;return{slices:e.map((n,$)=>{const N=x>0?n.value/x:0,O=_;return _+=N*360,{...n,color:n.color??R[$%R.length],share:N,path:T(O,_)}}),total:x}},[c]),m=h>0,f=m?Math.max(0,s-h/a*u):0,D=f*2*a/u,E=y.map(e=>`${e.label}: ${o(e.value)} (${Math.round(e.share*100)}%)`).join(", ");return y.length===0?r.jsx("div",{ref:j,className:C.cx("brycks-pie-chart","brycks-pie-chart--empty",k),"data-testid":v,...g,children:r.jsx("span",{className:"brycks-pie-chart__empty",children:w})}):r.jsxs("div",{ref:j,className:C.cx("brycks-pie-chart",`brycks-pie-chart--legend-${d}`,k),"data-testid":v,...g,children:[r.jsxs("div",{className:"brycks-pie-chart__graphic",style:{width:a,height:a,"--brycks-pie-chart-hole":`${D}px`},children:[r.jsxs("svg",{viewBox:`0 0 ${u} ${u}`,className:"brycks-pie-chart__svg",role:"img","aria-label":E,children:[y.map(e=>r.jsx("path",{d:e.path,fill:e.color,className:"brycks-pie-chart__slice"},e.id)),m?r.jsx("circle",{cx:l,cy:l,r:f,className:"brycks-pie-chart__hole"}):null]}),m?r.jsxs("div",{className:"brycks-pie-chart__center","aria-hidden":"true",children:[r.jsx("span",{className:"brycks-pie-chart__center-value",children:i??o(A)}),p?r.jsx("span",{className:"brycks-pie-chart__center-label",children:p}):null]}):null]}),d==="none"?null:r.jsx("ul",{className:"brycks-pie-chart__legend",children:y.map(e=>r.jsxs("li",{className:"brycks-pie-chart__legend-item",children:[r.jsx("span",{className:"brycks-pie-chart__legend-dot",style:{backgroundColor:e.color},"aria-hidden":"true"}),r.jsx("span",{className:"brycks-pie-chart__legend-label",children:e.label}),r.jsx("span",{className:"brycks-pie-chart__legend-value",children:o(e.value)}),S?r.jsxs("span",{className:"brycks-pie-chart__legend-share",children:[Math.round(e.share*100),"%"]}):null]},e.id))})]})});P.displayName="PieChart";exports.PieChart=P;
2
2
  //# sourceMappingURL=PieChart.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PieChart.cjs","sources":["../../../../src/components/data/PieChart/PieChart.tsx"],"sourcesContent":["/**\n * PieChart Component\n *\n * Distribuição de um total em fatias — pizza ou rosca (donut). Desenhado em SVG\n * puro: sem dependência de runtime, sem canvas, imprimível e nítido em qualquer\n * densidade de tela.\n *\n * Quando usar: partes-de-um-todo mutuamente exclusivas (leads por status,\n * estoque por condição, receita por categoria). Para série temporal ou\n * comparação precisa entre muitas categorias, uma lista/barra lê melhor —\n * a pizza é forte até ~6 fatias.\n *\n * Acessibilidade: o gráfico é `role=\"img\"` com um resumo em `aria-label`, e a\n * legenda repete rótulo + valor + participação como texto real — leitor de tela\n * e daltônico não dependem da cor (cada item tem rótulo e valor).\n *\n * @example\n * <PieChart\n * data={[\n * { id: 'new', label: 'Novo', value: 3, color: 'var(--brycks-info-default)' },\n * { id: 'won', label: 'Convertido', value: 5, color: 'var(--brycks-success-default)' },\n * ]}\n * centerLabel=\"Leads\"\n * />\n *\n * @module components/data/PieChart\n */\n\nimport { forwardRef, useMemo, type HTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type PieChartLegend = 'right' | 'bottom' | 'none'\n\nexport interface PieSlice {\n /** Chave estável da fatia */\n id: string\n /** Rótulo legível (aparece na legenda e no leitor de tela) */\n label: string\n /** Valor absoluto — negativos são ignorados */\n value: number\n /** Cor da fatia; use um token (`var(--brycks-*)`). Sem cor, entra na paleta padrão. */\n color?: string\n}\n\nexport interface PieChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Fatias do gráfico */\n data: PieSlice[]\n /** Diâmetro do gráfico em px */\n size?: number\n /** Espessura do anel em px. `0` = pizza cheia; padrão = rosca */\n thickness?: number\n /** Posição da legenda */\n legend?: PieChartLegend\n /** Rótulo no centro da rosca (ignorado quando `thickness = 0`) */\n centerLabel?: ReactNode\n /** Conteúdo central; por padrão, a soma dos valores */\n centerValue?: ReactNode\n /** Formata valores na legenda, no centro e no resumo acessível */\n valueFormatter?: (value: number) => string\n /** Exibe a participação percentual de cada fatia na legenda */\n showShare?: boolean\n /** Texto quando não há dado positivo */\n emptyText?: string\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\n/** Paleta de fallback: percorre a rampa semântica antes de repetir. */\nconst DEFAULT_COLORS = [\n 'var(--brycks-primary-default)',\n 'var(--brycks-info-default)',\n 'var(--brycks-success-default)',\n 'var(--brycks-warning-default)',\n 'var(--brycks-error-default)',\n 'var(--brycks-foreground-subtle)',\n]\n\nconst VIEWBOX = 100\nconst CENTER = VIEWBOX / 2\nconst RADIUS = CENTER - 1\n\ninterface ResolvedSlice extends PieSlice {\n color: string\n share: number\n path: string\n}\n\nfunction polarToCartesian(angleInDegrees: number, radius: number) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180\n return {\n x: CENTER + radius * Math.cos(angleInRadians),\n y: CENTER + radius * Math.sin(angleInRadians),\n }\n}\n\n/**\n * Arco de uma fatia. Um arco de 360° tem início e fim no mesmo ponto — o `A` do\n * SVG não desenha nada nesse caso; por isso a fatia única vira dois semiarcos.\n */\nfunction slicePath(startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= 359.999) {\n const top = polarToCartesian(0, RADIUS)\n const bottom = polarToCartesian(180, RADIUS)\n return [\n `M ${top.x} ${top.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${bottom.x} ${bottom.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${top.x} ${top.y}`,\n ].join(' ')\n }\n const start = polarToCartesian(startAngle, RADIUS)\n const end = polarToCartesian(endAngle, RADIUS)\n const largeArc = sweep > 180 ? 1 : 0\n return [\n `M ${CENTER} ${CENTER}`,\n `L ${start.x} ${start.y}`,\n `A ${RADIUS} ${RADIUS} 0 ${largeArc} 1 ${end.x} ${end.y}`,\n 'Z',\n ].join(' ')\n}\n\nconst defaultFormatter = (value: number) => String(value)\n\nexport const PieChart = forwardRef<HTMLDivElement, PieChartProps>(function PieChart(\n {\n data,\n size = 168,\n thickness = 22,\n legend = 'right',\n centerLabel,\n centerValue,\n valueFormatter = defaultFormatter,\n showShare = true,\n emptyText = 'Sem dados',\n className,\n testId,\n ...props\n },\n ref\n) {\n const { slices, total } = useMemo(() => {\n const positive = data.filter((slice) => slice.value > 0)\n const sum = positive.reduce((acc, slice) => acc + slice.value, 0)\n\n let cursor = 0\n const resolved: ResolvedSlice[] = positive.map((slice, index) => {\n const share = sum > 0 ? slice.value / sum : 0\n const startAngle = cursor\n cursor += share * 360\n return {\n ...slice,\n color: slice.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length],\n share,\n path: slicePath(startAngle, cursor),\n }\n })\n\n return { slices: resolved, total: sum }\n }, [data])\n\n const isDonut = thickness > 0\n /* O furo é um disco da cor da superfície — mantém o SVG num só elemento e\n evita `mask`, que quebra em impressão e em forced-colors. */\n const holeRadius = isDonut ? Math.max(0, RADIUS - (thickness / size) * VIEWBOX) : 0\n\n const summary = slices\n .map((slice) => `${slice.label}: ${valueFormatter(slice.value)} (${Math.round(slice.share * 100)}%)`)\n .join(', ')\n\n if (slices.length === 0) {\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', 'brycks-pie-chart--empty', className)}\n data-testid={testId}\n {...props}\n >\n <span className=\"brycks-pie-chart__empty\">{emptyText}</span>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', `brycks-pie-chart--legend-${legend}`, className)}\n data-testid={testId}\n {...props}\n >\n <div className=\"brycks-pie-chart__graphic\" style={{ width: size, height: size }}>\n <svg\n viewBox={`0 0 ${VIEWBOX} ${VIEWBOX}`}\n className=\"brycks-pie-chart__svg\"\n role=\"img\"\n aria-label={summary}\n >\n {slices.map((slice) => (\n <path\n key={slice.id}\n d={slice.path}\n fill={slice.color}\n className=\"brycks-pie-chart__slice\"\n />\n ))}\n {isDonut ? (\n <circle cx={CENTER} cy={CENTER} r={holeRadius} className=\"brycks-pie-chart__hole\" />\n ) : null}\n </svg>\n\n {isDonut ? (\n <div className=\"brycks-pie-chart__center\" aria-hidden=\"true\">\n <span className=\"brycks-pie-chart__center-value\">\n {centerValue ?? valueFormatter(total)}\n </span>\n {centerLabel ? (\n <span className=\"brycks-pie-chart__center-label\">{centerLabel}</span>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {legend === 'none' ? null : (\n <ul className=\"brycks-pie-chart__legend\">\n {slices.map((slice) => (\n <li key={slice.id} className=\"brycks-pie-chart__legend-item\">\n <span\n className=\"brycks-pie-chart__legend-dot\"\n style={{ backgroundColor: slice.color }}\n aria-hidden=\"true\"\n />\n <span className=\"brycks-pie-chart__legend-label\">{slice.label}</span>\n <span className=\"brycks-pie-chart__legend-value\">{valueFormatter(slice.value)}</span>\n {showShare ? (\n <span className=\"brycks-pie-chart__legend-share\">\n {Math.round(slice.share * 100)}%\n </span>\n ) : null}\n </li>\n ))}\n </ul>\n )}\n </div>\n )\n})\n\nPieChart.displayName = 'PieChart'\n"],"names":["DEFAULT_COLORS","VIEWBOX","CENTER","RADIUS","polarToCartesian","angleInDegrees","radius","angleInRadians","slicePath","startAngle","endAngle","sweep","top","bottom","start","end","largeArc","defaultFormatter","value","PieChart","forwardRef","data","size","thickness","legend","centerLabel","centerValue","valueFormatter","showShare","emptyText","className","testId","props","ref","slices","total","useMemo","positive","slice","sum","acc","cursor","index","share","isDonut","holeRadius","summary","jsx","cx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"PieChart.cjs","sources":["../../../../src/components/data/PieChart/PieChart.tsx"],"sourcesContent":["/**\n * PieChart Component\n *\n * Distribuição de um total em fatias — pizza ou rosca (donut). Desenhado em SVG\n * puro: sem dependência de runtime, sem canvas, imprimível e nítido em qualquer\n * densidade de tela.\n *\n * Quando usar: partes-de-um-todo mutuamente exclusivas (leads por status,\n * estoque por condição, receita por categoria). Para série temporal ou\n * comparação precisa entre muitas categorias, uma lista/barra lê melhor —\n * a pizza é forte até ~6 fatias.\n *\n * Acessibilidade: o gráfico é `role=\"img\"` com um resumo em `aria-label`, e a\n * legenda repete rótulo + valor + participação como texto real — leitor de tela\n * e daltônico não dependem da cor (cada item tem rótulo e valor).\n *\n * @example\n * <PieChart\n * data={[\n * { id: 'new', label: 'Novo', value: 3, color: 'var(--brycks-info-default)' },\n * { id: 'won', label: 'Convertido', value: 5, color: 'var(--brycks-success-default)' },\n * ]}\n * centerLabel=\"Leads\"\n * />\n *\n * @module components/data/PieChart\n */\n\nimport { forwardRef, useMemo, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type PieChartLegend = 'right' | 'bottom' | 'none'\n\nexport interface PieSlice {\n /** Chave estável da fatia */\n id: string\n /** Rótulo legível (aparece na legenda e no leitor de tela) */\n label: string\n /** Valor absoluto — negativos são ignorados */\n value: number\n /** Cor da fatia; use um token (`var(--brycks-*)`). Sem cor, entra na paleta padrão. */\n color?: string\n}\n\nexport interface PieChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Fatias do gráfico */\n data: PieSlice[]\n /** Diâmetro do gráfico em px */\n size?: number\n /** Espessura do anel em px. `0` = pizza cheia; padrão = rosca */\n thickness?: number\n /** Posição da legenda */\n legend?: PieChartLegend\n /** Rótulo no centro da rosca (ignorado quando `thickness = 0`) */\n centerLabel?: ReactNode\n /** Conteúdo central; por padrão, a soma dos valores */\n centerValue?: ReactNode\n /** Formata valores na legenda, no centro e no resumo acessível */\n valueFormatter?: (value: number) => string\n /** Exibe a participação percentual de cada fatia na legenda */\n showShare?: boolean\n /** Texto quando não há dado positivo */\n emptyText?: string\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\n/** Paleta de fallback: percorre a rampa semântica antes de repetir. */\nconst DEFAULT_COLORS = [\n 'var(--brycks-primary-default)',\n 'var(--brycks-info-default)',\n 'var(--brycks-success-default)',\n 'var(--brycks-warning-default)',\n 'var(--brycks-error-default)',\n 'var(--brycks-foreground-subtle)',\n]\n\nconst VIEWBOX = 100\nconst CENTER = VIEWBOX / 2\nconst RADIUS = CENTER - 1\n\ninterface ResolvedSlice extends PieSlice {\n color: string\n share: number\n path: string\n}\n\nfunction polarToCartesian(angleInDegrees: number, radius: number) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180\n return {\n x: CENTER + radius * Math.cos(angleInRadians),\n y: CENTER + radius * Math.sin(angleInRadians),\n }\n}\n\n/**\n * Arco de uma fatia. Um arco de 360° tem início e fim no mesmo ponto — o `A` do\n * SVG não desenha nada nesse caso; por isso a fatia única vira dois semiarcos.\n */\nfunction slicePath(startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= 359.999) {\n const top = polarToCartesian(0, RADIUS)\n const bottom = polarToCartesian(180, RADIUS)\n return [\n `M ${top.x} ${top.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${bottom.x} ${bottom.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${top.x} ${top.y}`,\n ].join(' ')\n }\n const start = polarToCartesian(startAngle, RADIUS)\n const end = polarToCartesian(endAngle, RADIUS)\n const largeArc = sweep > 180 ? 1 : 0\n return [\n `M ${CENTER} ${CENTER}`,\n `L ${start.x} ${start.y}`,\n `A ${RADIUS} ${RADIUS} 0 ${largeArc} 1 ${end.x} ${end.y}`,\n 'Z',\n ].join(' ')\n}\n\nconst defaultFormatter = (value: number) => String(value)\n\nexport const PieChart = forwardRef<HTMLDivElement, PieChartProps>(function PieChart(\n {\n data,\n size = 168,\n thickness = 22,\n legend = 'right',\n centerLabel,\n centerValue,\n valueFormatter = defaultFormatter,\n showShare = true,\n emptyText = 'Sem dados',\n className,\n testId,\n ...props\n },\n ref\n) {\n const { slices, total } = useMemo(() => {\n const positive = data.filter((slice) => slice.value > 0)\n const sum = positive.reduce((acc, slice) => acc + slice.value, 0)\n\n let cursor = 0\n const resolved: ResolvedSlice[] = positive.map((slice, index) => {\n const share = sum > 0 ? slice.value / sum : 0\n const startAngle = cursor\n cursor += share * 360\n return {\n ...slice,\n color: slice.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length],\n share,\n path: slicePath(startAngle, cursor),\n }\n })\n\n return { slices: resolved, total: sum }\n }, [data])\n\n const isDonut = thickness > 0\n /* O furo é um disco da cor da superfície — mantém o SVG num só elemento e\n evita `mask`, que quebra em impressão e em forced-colors. */\n const holeRadius = isDonut ? Math.max(0, RADIUS - (thickness / size) * VIEWBOX) : 0\n /* O texto central não pode passar do furo: expõe o diâmetro em px para o CSS\n limitar a largura e quebrar a linha em vez de vazar por cima do anel. */\n const holeDiameter = (holeRadius * 2 * size) / VIEWBOX\n\n const summary = slices\n .map((slice) => `${slice.label}: ${valueFormatter(slice.value)} (${Math.round(slice.share * 100)}%)`)\n .join(', ')\n\n if (slices.length === 0) {\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', 'brycks-pie-chart--empty', className)}\n data-testid={testId}\n {...props}\n >\n <span className=\"brycks-pie-chart__empty\">{emptyText}</span>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', `brycks-pie-chart--legend-${legend}`, className)}\n data-testid={testId}\n {...props}\n >\n <div\n className=\"brycks-pie-chart__graphic\"\n style={\n {\n width: size,\n height: size,\n '--brycks-pie-chart-hole': `${holeDiameter}px`,\n } as CSSProperties\n }\n >\n <svg\n viewBox={`0 0 ${VIEWBOX} ${VIEWBOX}`}\n className=\"brycks-pie-chart__svg\"\n role=\"img\"\n aria-label={summary}\n >\n {slices.map((slice) => (\n <path\n key={slice.id}\n d={slice.path}\n fill={slice.color}\n className=\"brycks-pie-chart__slice\"\n />\n ))}\n {isDonut ? (\n <circle cx={CENTER} cy={CENTER} r={holeRadius} className=\"brycks-pie-chart__hole\" />\n ) : null}\n </svg>\n\n {isDonut ? (\n <div className=\"brycks-pie-chart__center\" aria-hidden=\"true\">\n <span className=\"brycks-pie-chart__center-value\">\n {centerValue ?? valueFormatter(total)}\n </span>\n {centerLabel ? (\n <span className=\"brycks-pie-chart__center-label\">{centerLabel}</span>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {legend === 'none' ? null : (\n <ul className=\"brycks-pie-chart__legend\">\n {slices.map((slice) => (\n <li key={slice.id} className=\"brycks-pie-chart__legend-item\">\n <span\n className=\"brycks-pie-chart__legend-dot\"\n style={{ backgroundColor: slice.color }}\n aria-hidden=\"true\"\n />\n <span className=\"brycks-pie-chart__legend-label\">{slice.label}</span>\n <span className=\"brycks-pie-chart__legend-value\">{valueFormatter(slice.value)}</span>\n {showShare ? (\n <span className=\"brycks-pie-chart__legend-share\">\n {Math.round(slice.share * 100)}%\n </span>\n ) : null}\n </li>\n ))}\n </ul>\n )}\n </div>\n )\n})\n\nPieChart.displayName = 'PieChart'\n"],"names":["DEFAULT_COLORS","VIEWBOX","CENTER","RADIUS","polarToCartesian","angleInDegrees","radius","angleInRadians","slicePath","startAngle","endAngle","sweep","top","bottom","start","end","largeArc","defaultFormatter","value","PieChart","forwardRef","data","size","thickness","legend","centerLabel","centerValue","valueFormatter","showShare","emptyText","className","testId","props","ref","slices","total","useMemo","positive","slice","sum","acc","cursor","index","share","isDonut","holeRadius","holeDiameter","summary","jsx","cx","jsxs"],"mappings":"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"}
@@ -1,112 +1,123 @@
1
- import { jsx as e, jsxs as h } from "react/jsx-runtime";
2
- import { forwardRef as D, useMemo as I } from "react";
3
- import { cx as C } from "../../../utils/styles.js";
4
- const R = [
1
+ import { jsx as c, jsxs as h } from "react/jsx-runtime";
2
+ import { forwardRef as I, useMemo as O } from "react";
3
+ import { cx as R } from "../../../utils/styles.js";
4
+ const j = [
5
5
  "var(--brycks-primary-default)",
6
6
  "var(--brycks-info-default)",
7
7
  "var(--brycks-success-default)",
8
8
  "var(--brycks-warning-default)",
9
9
  "var(--brycks-error-default)",
10
10
  "var(--brycks-foreground-subtle)"
11
- ], b = 100, l = b / 2, a = l - 1;
12
- function m(t, s) {
13
- const c = (t - 90) * Math.PI / 180;
11
+ ], u = 100, l = u / 2, e = l - 1;
12
+ function b(s, t) {
13
+ const a = (s - 90) * Math.PI / 180;
14
14
  return {
15
- x: l + s * Math.cos(c),
16
- y: l + s * Math.sin(c)
15
+ x: l + t * Math.cos(a),
16
+ y: l + t * Math.sin(a)
17
17
  };
18
18
  }
19
- function O(t, s) {
20
- const c = s - t;
21
- if (c >= 359.999) {
22
- const o = m(0, a), i = m(180, a);
19
+ function T(s, t) {
20
+ const a = t - s;
21
+ if (a >= 359.999) {
22
+ const o = b(0, e), i = b(180, e);
23
23
  return [
24
24
  `M ${o.x} ${o.y}`,
25
- `A ${a} ${a} 0 1 1 ${i.x} ${i.y}`,
26
- `A ${a} ${a} 0 1 1 ${o.x} ${o.y}`
25
+ `A ${e} ${e} 0 1 1 ${i.x} ${i.y}`,
26
+ `A ${e} ${e} 0 1 1 ${o.x} ${o.y}`
27
27
  ].join(" ");
28
28
  }
29
- const d = m(t, a), p = m(s, a), u = c > 180 ? 1 : 0;
29
+ const d = b(s, e), p = b(t, e), y = a > 180 ? 1 : 0;
30
30
  return [
31
31
  `M ${l} ${l}`,
32
32
  `L ${d.x} ${d.y}`,
33
- `A ${a} ${a} 0 ${u} 1 ${p.x} ${p.y}`,
33
+ `A ${e} ${e} 0 ${y} 1 ${p.x} ${p.y}`,
34
34
  "Z"
35
35
  ].join(" ");
36
36
  }
37
- const T = (t) => String(t), B = D(function({
38
- data: s,
39
- size: c = 168,
37
+ const B = (s) => String(s), L = I(function({
38
+ data: t,
39
+ size: a = 168,
40
40
  thickness: d = 22,
41
41
  legend: p = "right",
42
- centerLabel: u,
42
+ centerLabel: y,
43
43
  centerValue: o,
44
- valueFormatter: i = T,
45
- showShare: j = !0,
46
- emptyText: w = "Sem dados",
44
+ valueFormatter: i = B,
45
+ showShare: w = !0,
46
+ emptyText: A = "Sem dados",
47
47
  className: f,
48
48
  testId: g,
49
49
  ...N
50
50
  }, x) {
51
- const { slices: y, total: A } = I(() => {
52
- const r = s.filter((n) => n.value > 0), $ = r.reduce((n, v) => n + v.value, 0);
51
+ const { slices: m, total: P } = O(() => {
52
+ const r = t.filter((n) => n.value > 0), $ = r.reduce((n, v) => n + v.value, 0);
53
53
  let k = 0;
54
54
  return { slices: r.map((n, v) => {
55
- const M = $ > 0 ? n.value / $ : 0, S = k;
56
- return k += M * 360, {
55
+ const C = $ > 0 ? n.value / $ : 0, S = k;
56
+ return k += C * 360, {
57
57
  ...n,
58
- color: n.color ?? R[v % R.length],
59
- share: M,
60
- path: O(S, k)
58
+ color: n.color ?? j[v % j.length],
59
+ share: C,
60
+ path: T(S, k)
61
61
  };
62
62
  }), total: $ };
63
- }, [s]), _ = d > 0, P = _ ? Math.max(0, a - d / c * b) : 0, E = y.map((r) => `${r.label}: ${i(r.value)} (${Math.round(r.share * 100)}%)`).join(", ");
64
- return y.length === 0 ? /* @__PURE__ */ e(
63
+ }, [t]), _ = d > 0, M = _ ? Math.max(0, e - d / a * u) : 0, D = M * 2 * a / u, E = m.map((r) => `${r.label}: ${i(r.value)} (${Math.round(r.share * 100)}%)`).join(", ");
64
+ return m.length === 0 ? /* @__PURE__ */ c(
65
65
  "div",
66
66
  {
67
67
  ref: x,
68
- className: C("brycks-pie-chart", "brycks-pie-chart--empty", f),
68
+ className: R("brycks-pie-chart", "brycks-pie-chart--empty", f),
69
69
  "data-testid": g,
70
70
  ...N,
71
- children: /* @__PURE__ */ e("span", { className: "brycks-pie-chart__empty", children: w })
71
+ children: /* @__PURE__ */ c("span", { className: "brycks-pie-chart__empty", children: A })
72
72
  }
73
73
  ) : /* @__PURE__ */ h(
74
74
  "div",
75
75
  {
76
76
  ref: x,
77
- className: C("brycks-pie-chart", `brycks-pie-chart--legend-${p}`, f),
77
+ className: R("brycks-pie-chart", `brycks-pie-chart--legend-${p}`, f),
78
78
  "data-testid": g,
79
79
  ...N,
80
80
  children: [
81
- /* @__PURE__ */ h("div", { className: "brycks-pie-chart__graphic", style: { width: c, height: c }, children: [
82
- /* @__PURE__ */ h(
83
- "svg",
84
- {
85
- viewBox: `0 0 ${b} ${b}`,
86
- className: "brycks-pie-chart__svg",
87
- role: "img",
88
- "aria-label": E,
89
- children: [
90
- y.map((r) => /* @__PURE__ */ e(
91
- "path",
92
- {
93
- d: r.path,
94
- fill: r.color,
95
- className: "brycks-pie-chart__slice"
96
- },
97
- r.id
98
- )),
99
- _ ? /* @__PURE__ */ e("circle", { cx: l, cy: l, r: P, className: "brycks-pie-chart__hole" }) : null
100
- ]
101
- }
102
- ),
103
- _ ? /* @__PURE__ */ h("div", { className: "brycks-pie-chart__center", "aria-hidden": "true", children: [
104
- /* @__PURE__ */ e("span", { className: "brycks-pie-chart__center-value", children: o ?? i(A) }),
105
- u ? /* @__PURE__ */ e("span", { className: "brycks-pie-chart__center-label", children: u }) : null
106
- ] }) : null
107
- ] }),
108
- p === "none" ? null : /* @__PURE__ */ e("ul", { className: "brycks-pie-chart__legend", children: y.map((r) => /* @__PURE__ */ h("li", { className: "brycks-pie-chart__legend-item", children: [
109
- /* @__PURE__ */ e(
81
+ /* @__PURE__ */ h(
82
+ "div",
83
+ {
84
+ className: "brycks-pie-chart__graphic",
85
+ style: {
86
+ width: a,
87
+ height: a,
88
+ "--brycks-pie-chart-hole": `${D}px`
89
+ },
90
+ children: [
91
+ /* @__PURE__ */ h(
92
+ "svg",
93
+ {
94
+ viewBox: `0 0 ${u} ${u}`,
95
+ className: "brycks-pie-chart__svg",
96
+ role: "img",
97
+ "aria-label": E,
98
+ children: [
99
+ m.map((r) => /* @__PURE__ */ c(
100
+ "path",
101
+ {
102
+ d: r.path,
103
+ fill: r.color,
104
+ className: "brycks-pie-chart__slice"
105
+ },
106
+ r.id
107
+ )),
108
+ _ ? /* @__PURE__ */ c("circle", { cx: l, cy: l, r: M, className: "brycks-pie-chart__hole" }) : null
109
+ ]
110
+ }
111
+ ),
112
+ _ ? /* @__PURE__ */ h("div", { className: "brycks-pie-chart__center", "aria-hidden": "true", children: [
113
+ /* @__PURE__ */ c("span", { className: "brycks-pie-chart__center-value", children: o ?? i(P) }),
114
+ y ? /* @__PURE__ */ c("span", { className: "brycks-pie-chart__center-label", children: y }) : null
115
+ ] }) : null
116
+ ]
117
+ }
118
+ ),
119
+ p === "none" ? null : /* @__PURE__ */ c("ul", { className: "brycks-pie-chart__legend", children: m.map((r) => /* @__PURE__ */ h("li", { className: "brycks-pie-chart__legend-item", children: [
120
+ /* @__PURE__ */ c(
110
121
  "span",
111
122
  {
112
123
  className: "brycks-pie-chart__legend-dot",
@@ -114,9 +125,9 @@ const T = (t) => String(t), B = D(function({
114
125
  "aria-hidden": "true"
115
126
  }
116
127
  ),
117
- /* @__PURE__ */ e("span", { className: "brycks-pie-chart__legend-label", children: r.label }),
118
- /* @__PURE__ */ e("span", { className: "brycks-pie-chart__legend-value", children: i(r.value) }),
119
- j ? /* @__PURE__ */ h("span", { className: "brycks-pie-chart__legend-share", children: [
128
+ /* @__PURE__ */ c("span", { className: "brycks-pie-chart__legend-label", children: r.label }),
129
+ /* @__PURE__ */ c("span", { className: "brycks-pie-chart__legend-value", children: i(r.value) }),
130
+ w ? /* @__PURE__ */ h("span", { className: "brycks-pie-chart__legend-share", children: [
120
131
  Math.round(r.share * 100),
121
132
  "%"
122
133
  ] }) : null
@@ -125,8 +136,8 @@ const T = (t) => String(t), B = D(function({
125
136
  }
126
137
  );
127
138
  });
128
- B.displayName = "PieChart";
139
+ L.displayName = "PieChart";
129
140
  export {
130
- B as PieChart
141
+ L as PieChart
131
142
  };
132
143
  //# sourceMappingURL=PieChart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PieChart.js","sources":["../../../../src/components/data/PieChart/PieChart.tsx"],"sourcesContent":["/**\n * PieChart Component\n *\n * Distribuição de um total em fatias — pizza ou rosca (donut). Desenhado em SVG\n * puro: sem dependência de runtime, sem canvas, imprimível e nítido em qualquer\n * densidade de tela.\n *\n * Quando usar: partes-de-um-todo mutuamente exclusivas (leads por status,\n * estoque por condição, receita por categoria). Para série temporal ou\n * comparação precisa entre muitas categorias, uma lista/barra lê melhor —\n * a pizza é forte até ~6 fatias.\n *\n * Acessibilidade: o gráfico é `role=\"img\"` com um resumo em `aria-label`, e a\n * legenda repete rótulo + valor + participação como texto real — leitor de tela\n * e daltônico não dependem da cor (cada item tem rótulo e valor).\n *\n * @example\n * <PieChart\n * data={[\n * { id: 'new', label: 'Novo', value: 3, color: 'var(--brycks-info-default)' },\n * { id: 'won', label: 'Convertido', value: 5, color: 'var(--brycks-success-default)' },\n * ]}\n * centerLabel=\"Leads\"\n * />\n *\n * @module components/data/PieChart\n */\n\nimport { forwardRef, useMemo, type HTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type PieChartLegend = 'right' | 'bottom' | 'none'\n\nexport interface PieSlice {\n /** Chave estável da fatia */\n id: string\n /** Rótulo legível (aparece na legenda e no leitor de tela) */\n label: string\n /** Valor absoluto — negativos são ignorados */\n value: number\n /** Cor da fatia; use um token (`var(--brycks-*)`). Sem cor, entra na paleta padrão. */\n color?: string\n}\n\nexport interface PieChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Fatias do gráfico */\n data: PieSlice[]\n /** Diâmetro do gráfico em px */\n size?: number\n /** Espessura do anel em px. `0` = pizza cheia; padrão = rosca */\n thickness?: number\n /** Posição da legenda */\n legend?: PieChartLegend\n /** Rótulo no centro da rosca (ignorado quando `thickness = 0`) */\n centerLabel?: ReactNode\n /** Conteúdo central; por padrão, a soma dos valores */\n centerValue?: ReactNode\n /** Formata valores na legenda, no centro e no resumo acessível */\n valueFormatter?: (value: number) => string\n /** Exibe a participação percentual de cada fatia na legenda */\n showShare?: boolean\n /** Texto quando não há dado positivo */\n emptyText?: string\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\n/** Paleta de fallback: percorre a rampa semântica antes de repetir. */\nconst DEFAULT_COLORS = [\n 'var(--brycks-primary-default)',\n 'var(--brycks-info-default)',\n 'var(--brycks-success-default)',\n 'var(--brycks-warning-default)',\n 'var(--brycks-error-default)',\n 'var(--brycks-foreground-subtle)',\n]\n\nconst VIEWBOX = 100\nconst CENTER = VIEWBOX / 2\nconst RADIUS = CENTER - 1\n\ninterface ResolvedSlice extends PieSlice {\n color: string\n share: number\n path: string\n}\n\nfunction polarToCartesian(angleInDegrees: number, radius: number) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180\n return {\n x: CENTER + radius * Math.cos(angleInRadians),\n y: CENTER + radius * Math.sin(angleInRadians),\n }\n}\n\n/**\n * Arco de uma fatia. Um arco de 360° tem início e fim no mesmo ponto — o `A` do\n * SVG não desenha nada nesse caso; por isso a fatia única vira dois semiarcos.\n */\nfunction slicePath(startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= 359.999) {\n const top = polarToCartesian(0, RADIUS)\n const bottom = polarToCartesian(180, RADIUS)\n return [\n `M ${top.x} ${top.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${bottom.x} ${bottom.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${top.x} ${top.y}`,\n ].join(' ')\n }\n const start = polarToCartesian(startAngle, RADIUS)\n const end = polarToCartesian(endAngle, RADIUS)\n const largeArc = sweep > 180 ? 1 : 0\n return [\n `M ${CENTER} ${CENTER}`,\n `L ${start.x} ${start.y}`,\n `A ${RADIUS} ${RADIUS} 0 ${largeArc} 1 ${end.x} ${end.y}`,\n 'Z',\n ].join(' ')\n}\n\nconst defaultFormatter = (value: number) => String(value)\n\nexport const PieChart = forwardRef<HTMLDivElement, PieChartProps>(function PieChart(\n {\n data,\n size = 168,\n thickness = 22,\n legend = 'right',\n centerLabel,\n centerValue,\n valueFormatter = defaultFormatter,\n showShare = true,\n emptyText = 'Sem dados',\n className,\n testId,\n ...props\n },\n ref\n) {\n const { slices, total } = useMemo(() => {\n const positive = data.filter((slice) => slice.value > 0)\n const sum = positive.reduce((acc, slice) => acc + slice.value, 0)\n\n let cursor = 0\n const resolved: ResolvedSlice[] = positive.map((slice, index) => {\n const share = sum > 0 ? slice.value / sum : 0\n const startAngle = cursor\n cursor += share * 360\n return {\n ...slice,\n color: slice.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length],\n share,\n path: slicePath(startAngle, cursor),\n }\n })\n\n return { slices: resolved, total: sum }\n }, [data])\n\n const isDonut = thickness > 0\n /* O furo é um disco da cor da superfície — mantém o SVG num só elemento e\n evita `mask`, que quebra em impressão e em forced-colors. */\n const holeRadius = isDonut ? Math.max(0, RADIUS - (thickness / size) * VIEWBOX) : 0\n\n const summary = slices\n .map((slice) => `${slice.label}: ${valueFormatter(slice.value)} (${Math.round(slice.share * 100)}%)`)\n .join(', ')\n\n if (slices.length === 0) {\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', 'brycks-pie-chart--empty', className)}\n data-testid={testId}\n {...props}\n >\n <span className=\"brycks-pie-chart__empty\">{emptyText}</span>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', `brycks-pie-chart--legend-${legend}`, className)}\n data-testid={testId}\n {...props}\n >\n <div className=\"brycks-pie-chart__graphic\" style={{ width: size, height: size }}>\n <svg\n viewBox={`0 0 ${VIEWBOX} ${VIEWBOX}`}\n className=\"brycks-pie-chart__svg\"\n role=\"img\"\n aria-label={summary}\n >\n {slices.map((slice) => (\n <path\n key={slice.id}\n d={slice.path}\n fill={slice.color}\n className=\"brycks-pie-chart__slice\"\n />\n ))}\n {isDonut ? (\n <circle cx={CENTER} cy={CENTER} r={holeRadius} className=\"brycks-pie-chart__hole\" />\n ) : null}\n </svg>\n\n {isDonut ? (\n <div className=\"brycks-pie-chart__center\" aria-hidden=\"true\">\n <span className=\"brycks-pie-chart__center-value\">\n {centerValue ?? valueFormatter(total)}\n </span>\n {centerLabel ? (\n <span className=\"brycks-pie-chart__center-label\">{centerLabel}</span>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {legend === 'none' ? null : (\n <ul className=\"brycks-pie-chart__legend\">\n {slices.map((slice) => (\n <li key={slice.id} className=\"brycks-pie-chart__legend-item\">\n <span\n className=\"brycks-pie-chart__legend-dot\"\n style={{ backgroundColor: slice.color }}\n aria-hidden=\"true\"\n />\n <span className=\"brycks-pie-chart__legend-label\">{slice.label}</span>\n <span className=\"brycks-pie-chart__legend-value\">{valueFormatter(slice.value)}</span>\n {showShare ? (\n <span className=\"brycks-pie-chart__legend-share\">\n {Math.round(slice.share * 100)}%\n </span>\n ) : null}\n </li>\n ))}\n </ul>\n )}\n </div>\n )\n})\n\nPieChart.displayName = 'PieChart'\n"],"names":["DEFAULT_COLORS","VIEWBOX","CENTER","RADIUS","polarToCartesian","angleInDegrees","radius","angleInRadians","slicePath","startAngle","endAngle","sweep","top","bottom","start","end","largeArc","defaultFormatter","value","PieChart","forwardRef","data","size","thickness","legend","centerLabel","centerValue","valueFormatter","showShare","emptyText","className","testId","props","ref","slices","total","useMemo","positive","slice","sum","acc","cursor","index","share","isDonut","holeRadius","summary","jsx","cx","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"PieChart.js","sources":["../../../../src/components/data/PieChart/PieChart.tsx"],"sourcesContent":["/**\n * PieChart Component\n *\n * Distribuição de um total em fatias — pizza ou rosca (donut). Desenhado em SVG\n * puro: sem dependência de runtime, sem canvas, imprimível e nítido em qualquer\n * densidade de tela.\n *\n * Quando usar: partes-de-um-todo mutuamente exclusivas (leads por status,\n * estoque por condição, receita por categoria). Para série temporal ou\n * comparação precisa entre muitas categorias, uma lista/barra lê melhor —\n * a pizza é forte até ~6 fatias.\n *\n * Acessibilidade: o gráfico é `role=\"img\"` com um resumo em `aria-label`, e a\n * legenda repete rótulo + valor + participação como texto real — leitor de tela\n * e daltônico não dependem da cor (cada item tem rótulo e valor).\n *\n * @example\n * <PieChart\n * data={[\n * { id: 'new', label: 'Novo', value: 3, color: 'var(--brycks-info-default)' },\n * { id: 'won', label: 'Convertido', value: 5, color: 'var(--brycks-success-default)' },\n * ]}\n * centerLabel=\"Leads\"\n * />\n *\n * @module components/data/PieChart\n */\n\nimport { forwardRef, useMemo, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type PieChartLegend = 'right' | 'bottom' | 'none'\n\nexport interface PieSlice {\n /** Chave estável da fatia */\n id: string\n /** Rótulo legível (aparece na legenda e no leitor de tela) */\n label: string\n /** Valor absoluto — negativos são ignorados */\n value: number\n /** Cor da fatia; use um token (`var(--brycks-*)`). Sem cor, entra na paleta padrão. */\n color?: string\n}\n\nexport interface PieChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Fatias do gráfico */\n data: PieSlice[]\n /** Diâmetro do gráfico em px */\n size?: number\n /** Espessura do anel em px. `0` = pizza cheia; padrão = rosca */\n thickness?: number\n /** Posição da legenda */\n legend?: PieChartLegend\n /** Rótulo no centro da rosca (ignorado quando `thickness = 0`) */\n centerLabel?: ReactNode\n /** Conteúdo central; por padrão, a soma dos valores */\n centerValue?: ReactNode\n /** Formata valores na legenda, no centro e no resumo acessível */\n valueFormatter?: (value: number) => string\n /** Exibe a participação percentual de cada fatia na legenda */\n showShare?: boolean\n /** Texto quando não há dado positivo */\n emptyText?: string\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\n/** Paleta de fallback: percorre a rampa semântica antes de repetir. */\nconst DEFAULT_COLORS = [\n 'var(--brycks-primary-default)',\n 'var(--brycks-info-default)',\n 'var(--brycks-success-default)',\n 'var(--brycks-warning-default)',\n 'var(--brycks-error-default)',\n 'var(--brycks-foreground-subtle)',\n]\n\nconst VIEWBOX = 100\nconst CENTER = VIEWBOX / 2\nconst RADIUS = CENTER - 1\n\ninterface ResolvedSlice extends PieSlice {\n color: string\n share: number\n path: string\n}\n\nfunction polarToCartesian(angleInDegrees: number, radius: number) {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180\n return {\n x: CENTER + radius * Math.cos(angleInRadians),\n y: CENTER + radius * Math.sin(angleInRadians),\n }\n}\n\n/**\n * Arco de uma fatia. Um arco de 360° tem início e fim no mesmo ponto — o `A` do\n * SVG não desenha nada nesse caso; por isso a fatia única vira dois semiarcos.\n */\nfunction slicePath(startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= 359.999) {\n const top = polarToCartesian(0, RADIUS)\n const bottom = polarToCartesian(180, RADIUS)\n return [\n `M ${top.x} ${top.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${bottom.x} ${bottom.y}`,\n `A ${RADIUS} ${RADIUS} 0 1 1 ${top.x} ${top.y}`,\n ].join(' ')\n }\n const start = polarToCartesian(startAngle, RADIUS)\n const end = polarToCartesian(endAngle, RADIUS)\n const largeArc = sweep > 180 ? 1 : 0\n return [\n `M ${CENTER} ${CENTER}`,\n `L ${start.x} ${start.y}`,\n `A ${RADIUS} ${RADIUS} 0 ${largeArc} 1 ${end.x} ${end.y}`,\n 'Z',\n ].join(' ')\n}\n\nconst defaultFormatter = (value: number) => String(value)\n\nexport const PieChart = forwardRef<HTMLDivElement, PieChartProps>(function PieChart(\n {\n data,\n size = 168,\n thickness = 22,\n legend = 'right',\n centerLabel,\n centerValue,\n valueFormatter = defaultFormatter,\n showShare = true,\n emptyText = 'Sem dados',\n className,\n testId,\n ...props\n },\n ref\n) {\n const { slices, total } = useMemo(() => {\n const positive = data.filter((slice) => slice.value > 0)\n const sum = positive.reduce((acc, slice) => acc + slice.value, 0)\n\n let cursor = 0\n const resolved: ResolvedSlice[] = positive.map((slice, index) => {\n const share = sum > 0 ? slice.value / sum : 0\n const startAngle = cursor\n cursor += share * 360\n return {\n ...slice,\n color: slice.color ?? DEFAULT_COLORS[index % DEFAULT_COLORS.length],\n share,\n path: slicePath(startAngle, cursor),\n }\n })\n\n return { slices: resolved, total: sum }\n }, [data])\n\n const isDonut = thickness > 0\n /* O furo é um disco da cor da superfície — mantém o SVG num só elemento e\n evita `mask`, que quebra em impressão e em forced-colors. */\n const holeRadius = isDonut ? Math.max(0, RADIUS - (thickness / size) * VIEWBOX) : 0\n /* O texto central não pode passar do furo: expõe o diâmetro em px para o CSS\n limitar a largura e quebrar a linha em vez de vazar por cima do anel. */\n const holeDiameter = (holeRadius * 2 * size) / VIEWBOX\n\n const summary = slices\n .map((slice) => `${slice.label}: ${valueFormatter(slice.value)} (${Math.round(slice.share * 100)}%)`)\n .join(', ')\n\n if (slices.length === 0) {\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', 'brycks-pie-chart--empty', className)}\n data-testid={testId}\n {...props}\n >\n <span className=\"brycks-pie-chart__empty\">{emptyText}</span>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={cx('brycks-pie-chart', `brycks-pie-chart--legend-${legend}`, className)}\n data-testid={testId}\n {...props}\n >\n <div\n className=\"brycks-pie-chart__graphic\"\n style={\n {\n width: size,\n height: size,\n '--brycks-pie-chart-hole': `${holeDiameter}px`,\n } as CSSProperties\n }\n >\n <svg\n viewBox={`0 0 ${VIEWBOX} ${VIEWBOX}`}\n className=\"brycks-pie-chart__svg\"\n role=\"img\"\n aria-label={summary}\n >\n {slices.map((slice) => (\n <path\n key={slice.id}\n d={slice.path}\n fill={slice.color}\n className=\"brycks-pie-chart__slice\"\n />\n ))}\n {isDonut ? (\n <circle cx={CENTER} cy={CENTER} r={holeRadius} className=\"brycks-pie-chart__hole\" />\n ) : null}\n </svg>\n\n {isDonut ? (\n <div className=\"brycks-pie-chart__center\" aria-hidden=\"true\">\n <span className=\"brycks-pie-chart__center-value\">\n {centerValue ?? valueFormatter(total)}\n </span>\n {centerLabel ? (\n <span className=\"brycks-pie-chart__center-label\">{centerLabel}</span>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {legend === 'none' ? null : (\n <ul className=\"brycks-pie-chart__legend\">\n {slices.map((slice) => (\n <li key={slice.id} className=\"brycks-pie-chart__legend-item\">\n <span\n className=\"brycks-pie-chart__legend-dot\"\n style={{ backgroundColor: slice.color }}\n aria-hidden=\"true\"\n />\n <span className=\"brycks-pie-chart__legend-label\">{slice.label}</span>\n <span className=\"brycks-pie-chart__legend-value\">{valueFormatter(slice.value)}</span>\n {showShare ? (\n <span className=\"brycks-pie-chart__legend-share\">\n {Math.round(slice.share * 100)}%\n </span>\n ) : null}\n </li>\n ))}\n </ul>\n )}\n </div>\n )\n})\n\nPieChart.displayName = 'PieChart'\n"],"names":["DEFAULT_COLORS","VIEWBOX","CENTER","RADIUS","polarToCartesian","angleInDegrees","radius","angleInRadians","slicePath","startAngle","endAngle","sweep","top","bottom","start","end","largeArc","defaultFormatter","value","PieChart","forwardRef","data","size","thickness","legend","centerLabel","centerValue","valueFormatter","showShare","emptyText","className","testId","props","ref","slices","total","useMemo","positive","slice","sum","acc","cursor","index","share","isDonut","holeRadius","holeDiameter","summary","jsx","cx","jsxs"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- *,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}*{margin:0;padding:0}html,body{height:100%}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}h1,h2,h3,h4,h5,h6{text-wrap:balance}p{text-wrap:pretty}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--brycks-border-focus, #5578f4);outline-offset:2px}:focus:not(:focus-visible){outline:none}button{background:none;border:none;cursor:pointer}a{text-decoration:none}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}[disabled]{cursor:not-allowed}:root{--brycks-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brycks-font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--brycks-font-scale-body: 1;--brycks-font-scale-headings: 1;--brycks-font-scale-ui: 1;--brycks-fs-base-xs: 11px;--brycks-fs-base-sm: 12px;--brycks-fs-base-base: 14px;--brycks-fs-base-md: 16px;--brycks-fs-base-lg: 18px;--brycks-fs-base-xl: 20px;--brycks-fs-base-2xl: 24px;--brycks-fs-base-3xl: 28px;--brycks-fs-base-4xl: 32px;--brycks-fs-base-5xl: 40px;--brycks-fs-base-6xl: 48px;--brycks-fs-base-7xl: 60px;--brycks-fs-base-8xl: 72px;--brycks-fs-base-9xl: 96px;--brycks-fs-body-xs: calc(var(--brycks-fs-base-xs) * var(--brycks-font-scale-body));--brycks-fs-body-sm: calc(var(--brycks-fs-base-sm) * var(--brycks-font-scale-body));--brycks-fs-body-base: calc(var(--brycks-fs-base-base) * var(--brycks-font-scale-body));--brycks-fs-body-md: calc(var(--brycks-fs-base-md) * var(--brycks-font-scale-body));--brycks-fs-body-lg: calc(var(--brycks-fs-base-lg) * var(--brycks-font-scale-body));--brycks-fs-h6: calc(var(--brycks-fs-base-xl) * var(--brycks-font-scale-headings));--brycks-fs-h5: calc(var(--brycks-fs-base-2xl) * var(--brycks-font-scale-headings));--brycks-fs-h4: calc(var(--brycks-fs-base-3xl) * var(--brycks-font-scale-headings));--brycks-fs-h3: calc(var(--brycks-fs-base-4xl) * var(--brycks-font-scale-headings));--brycks-fs-h2: calc(var(--brycks-fs-base-5xl) * var(--brycks-font-scale-headings));--brycks-fs-h1: calc(var(--brycks-fs-base-6xl) * var(--brycks-font-scale-headings));--brycks-fs-display-sm: calc(var(--brycks-fs-base-7xl) * var(--brycks-font-scale-headings));--brycks-fs-display-md: calc(var(--brycks-fs-base-8xl) * var(--brycks-font-scale-headings));--brycks-fs-display-lg: calc(var(--brycks-fs-base-9xl) * var(--brycks-font-scale-headings));--brycks-fs-ui-xs: calc(var(--brycks-fs-base-xs) * var(--brycks-font-scale-ui));--brycks-fs-ui-sm: calc(var(--brycks-fs-base-sm) * var(--brycks-font-scale-ui));--brycks-fs-ui-md: calc(var(--brycks-fs-base-base) * var(--brycks-font-scale-ui));--brycks-fs-ui-lg: calc(15px * var(--brycks-font-scale-ui));--brycks-fs-ui-xl: calc(var(--brycks-fs-base-md) * var(--brycks-font-scale-ui));--brycks-font-size-xs: var(--brycks-fs-body-sm);--brycks-font-size-sm: var(--brycks-fs-body-base);--brycks-font-size-md: var(--brycks-fs-body-md);--brycks-font-size-lg: var(--brycks-fs-body-lg);--brycks-font-size-xl: var(--brycks-fs-h6);--brycks-font-size-2xl: var(--brycks-fs-h5);--brycks-font-size-3xl: var(--brycks-fs-h4);--brycks-font-size-4xl: var(--brycks-fs-h3);--brycks-space-0: 0;--brycks-space-px: 1px;--brycks-space-0-5: 2px;--brycks-space-1: 4px;--brycks-space-1-5: 6px;--brycks-space-2: 8px;--brycks-space-2-5: 10px;--brycks-space-3: 12px;--brycks-space-3-5: 14px;--brycks-space-4: 16px;--brycks-space-5: 20px;--brycks-space-6: 24px;--brycks-space-7: 28px;--brycks-space-8: 32px;--brycks-space-9: 36px;--brycks-space-10: 40px;--brycks-space-12: 48px;--brycks-space-14: 56px;--brycks-space-16: 64px;--brycks-space-20: 80px;--brycks-space-24: 96px;--brycks-spacing-1: var(--brycks-space-1);--brycks-spacing-2: var(--brycks-space-2);--brycks-spacing-2-5: var(--brycks-space-2-5);--brycks-spacing-3: var(--brycks-space-3);--brycks-spacing-4: var(--brycks-space-4);--brycks-spacing-5: var(--brycks-space-5);--brycks-spacing-6: var(--brycks-space-6);--brycks-spacing-8: var(--brycks-space-8);--brycks-radius-none: 0;--brycks-radius-xs: 2px;--brycks-radius-sm: 4px;--brycks-radius-md: 6px;--brycks-radius-default: 8px;--brycks-radius-lg: 10px;--brycks-radius-xl: 12px;--brycks-radius-2xl: 16px;--brycks-radius-3xl: 20px;--brycks-radius-4xl: 24px;--brycks-radius-full: 9999px;--brycks-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03), 0 1px 3px 0 rgba(0, 0, 0, .06);--brycks-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 2px 6px 0 rgba(0, 0, 0, .06), 0 0 1px 0 rgba(0, 0, 0, .04);--brycks-shadow-md: 0 2px 4px -1px rgba(0, 0, 0, .04), 0 4px 8px -1px rgba(0, 0, 0, .06), 0 8px 16px -2px rgba(0, 0, 0, .06);--brycks-shadow-lg: 0 4px 6px -2px rgba(0, 0, 0, .03), 0 8px 16px -4px rgba(0, 0, 0, .08), 0 16px 32px -8px rgba(0, 0, 0, .08);--brycks-shadow-xl: 0 8px 16px -4px rgba(0, 0, 0, .04), 0 16px 32px -8px rgba(0, 0, 0, .08), 0 32px 64px -16px rgba(0, 0, 0, .12);--brycks-shadow-2xl: 0 12px 24px -6px rgba(0, 0, 0, .05), 0 24px 48px -12px rgba(0, 0, 0, .1), 0 48px 96px -24px rgba(0, 0, 0, .15);--brycks-z-base: 0;--brycks-z-docked: 10;--brycks-z-dropdown: 1000;--brycks-z-sticky: 1100;--brycks-z-banner: 1200;--brycks-z-overlay: 1300;--brycks-z-modal: 1400;--brycks-z-drawer: 1400;--brycks-z-popover: 1500;--brycks-z-toast: 1700;--brycks-z-tooltip: 1800;--brycks-duration-fast: .1s;--brycks-duration-normal: .2s;--brycks-duration-slow: .4s;--brycks-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--brycks-focus-ring-color: color-mix(in srgb, var(--brycks-border-focus) 35%, transparent);--brycks-focus-ring-error: color-mix(in srgb, var(--brycks-error-default) 35%, transparent);--brycks-focus-ring-success: color-mix(in srgb, var(--brycks-success-default) 35%, transparent);--brycks-focus-ring: 0 0 0 3px var(--brycks-focus-ring-color)}:root,[data-theme=light]{--brycks-background-app: #FFFFFF;--brycks-background-subtle: #FAFAFA;--brycks-background-muted: #F5F5F7;--brycks-background-elevated: #FFFFFF;--brycks-background-overlay: rgba(0, 0, 0, .4);--brycks-background-inverse: #1D1D1F;--brycks-background-default: #FAFAFA;--brycks-foreground-default: #1D1D1F;--brycks-foreground-muted: #636366;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #AEAEB2;--brycks-foreground-inverse: #FFFFFF;--brycks-foreground-link: #3B5CE9;--brycks-border-default: #E8E8ED;--brycks-border-muted: #F5F5F7;--brycks-border-strong: #D2D2D7;--brycks-border-focus: #5578F4;--brycks-primary-default: #3B5CE9;--brycks-primary-hover: #2D47D6;--brycks-primary-active: #2A3CAD;--brycks-primary-muted: #EEF4FF;--brycks-primary-soft-hover: #E0EBFF;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #F86545;--brycks-accent-hover: #E54A28;--brycks-accent-active: #C13A1D;--brycks-accent-muted: #FFF5F3;--brycks-accent-soft-hover: #FFE8E3;--brycks-accent-foreground: #FFFFFF;--brycks-success-default: #059669;--brycks-success-hover: #047857;--brycks-success-muted: #ECFDF5;--brycks-success-soft-hover: #D1FAE5;--brycks-success-foreground: #FFFFFF;--brycks-success-on-muted: #047857;--brycks-warning-default: #F59E0B;--brycks-warning-hover: #D97706;--brycks-warning-muted: #FFFBEB;--brycks-warning-soft-hover: #FEF3C7;--brycks-warning-foreground: #1D1D1F;--brycks-warning-on-muted: #92400E;--brycks-error-default: #DC2626;--brycks-error-hover: #B91C1C;--brycks-error-muted: #FEF2F2;--brycks-error-soft-hover: #FEE2E2;--brycks-error-foreground: #FFFFFF;--brycks-error-on-muted: #B91C1C;--brycks-info-default: #0891B2;--brycks-info-hover: #0E7490;--brycks-info-muted: #ECFEFF;--brycks-info-soft-hover: #CFFAFE;--brycks-info-foreground: #FFFFFF;--brycks-info-on-muted: #0E7490}[data-theme=dark]{--brycks-background-app: #000000;--brycks-background-subtle: #1D1D1F;--brycks-background-muted: #2C2C2E;--brycks-background-elevated: #1D1D1F;--brycks-background-overlay: rgba(0, 0, 0, .6);--brycks-background-inverse: #FFFFFF;--brycks-background-default: #1D1D1F;--brycks-foreground-default: #FFFFFF;--brycks-foreground-muted: #AEAEB2;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #636366;--brycks-foreground-inverse: #1D1D1F;--brycks-foreground-link: #7A9FFF;--brycks-border-default: #3A3A3C;--brycks-border-muted: #2C2C2E;--brycks-border-strong: #48484A;--brycks-border-focus: #7A9FFF;--brycks-primary-default: #5578F4;--brycks-primary-hover: #7A9FFF;--brycks-primary-active: #A4C1FF;--brycks-primary-muted: #1A2352;--brycks-primary-soft-hover: #283889;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #FF8A71;--brycks-accent-hover: #FFB5A6;--brycks-accent-active: #FFD5CC;--brycks-accent-muted: #48140A;--brycks-accent-soft-hover: #842F1D;--brycks-accent-foreground: #000000;--brycks-success-default: #34D399;--brycks-success-hover: #6EE7B7;--brycks-success-muted: #022C22;--brycks-success-soft-hover: #064E3B;--brycks-success-foreground: #000000;--brycks-success-on-muted: #6EE7B7;--brycks-warning-default: #FBBF24;--brycks-warning-hover: #FCD34D;--brycks-warning-muted: #451A03;--brycks-warning-soft-hover: #78350F;--brycks-warning-foreground: #000000;--brycks-warning-on-muted: #FCD34D;--brycks-error-default: #F87171;--brycks-error-hover: #FCA5A5;--brycks-error-muted: #450A0A;--brycks-error-soft-hover: #7F1D1D;--brycks-error-foreground: #000000;--brycks-error-on-muted: #FCA5A5;--brycks-info-default: #22D3EE;--brycks-info-hover: #67E8F9;--brycks-info-muted: #083344;--brycks-info-soft-hover: #164E63;--brycks-info-foreground: #000000;--brycks-info-on-muted: #67E8F9}html{font-family:var(--brycks-font-sans);color-scheme:light dark}body{font-family:var(--brycks-font-sans);font-size:16px;line-height:1.5;color:var(--brycks-foreground-default);background-color:var(--brycks-background-app);transition:background-color var(--brycks-duration-normal) var(--brycks-ease-out),color var(--brycks-duration-normal) var(--brycks-ease-out)}::selection{background-color:var(--brycks-primary-muted);color:var(--brycks-foreground-default)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--brycks-border-default);border-radius:var(--brycks-radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:var(--brycks-border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--brycks-border-default) transparent}code,kbd,pre,samp{font-family:var(--brycks-font-mono)}.brycks-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-app-layout{display:flex;height:100vh;overflow:hidden;background-color:var(--brycks-background-subtle)}.brycks-app-layout__main{flex:1;display:flex;flex-direction:column;overflow:hidden}.brycks-app-layout__content{flex:1;overflow:auto;padding:var(--brycks-spacing-6)}.brycks-sidebar{width:240px;height:100vh;background-color:var(--brycks-background-elevated);border-right:1px solid var(--brycks-border-muted);display:flex;flex-direction:column;flex-shrink:0;will-change:width;contain:layout style}.brycks-sidebar--collapsed{width:72px}.brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-5);display:flex;align-items:center;gap:var(--brycks-spacing-3)}.brycks-sidebar--collapsed .brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-3);justify-content:center}.brycks-sidebar__logo-icon{width:32px;height:32px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:var(--brycks-font-size-sm);flex-shrink:0}.brycks-sidebar__logo-text{font-size:var(--brycks-font-size-lg);font-weight:600;color:var(--brycks-foreground-default)}.brycks-sidebar__nav{flex:1;padding:var(--brycks-spacing-2) var(--brycks-spacing-3);overflow-y:auto}.brycks-sidebar--collapsed .brycks-sidebar__nav{padding:var(--brycks-spacing-2)}.brycks-sidebar__footer{padding:var(--brycks-spacing-3);text-align:center}.brycks-sidebar--collapsed .brycks-sidebar__footer{padding:var(--brycks-spacing-3) var(--brycks-spacing-2)}.brycks-nav-item{display:flex;align-items:center;gap:var(--brycks-spacing-3);padding:var(--brycks-spacing-2-5) var(--brycks-spacing-3);border-radius:var(--brycks-radius-md);cursor:pointer;background-color:transparent;color:var(--brycks-foreground-default);transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out);border:none;width:100%;text-align:left;font-size:var(--brycks-font-size-sm)}.brycks-nav-item:hover{background-color:var(--brycks-background-muted)}.brycks-nav-item--active{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-nav-item--active:hover{background-color:var(--brycks-primary-muted)}.brycks-sidebar--collapsed .brycks-nav-item{padding:var(--brycks-spacing-3);justify-content:center}.brycks-nav-item__icon{width:20px;height:20px;flex-shrink:0;color:var(--brycks-foreground-muted)}.brycks-nav-item--active .brycks-nav-item__icon{color:var(--brycks-primary-default)}.brycks-nav-item__label{font-weight:400}.brycks-nav-item--active .brycks-nav-item__label{font-weight:500}.brycks-header{height:64px;background-color:var(--brycks-background-elevated);border-bottom:1px solid var(--brycks-border-muted);display:flex;align-items:center;justify-content:space-between;padding:0 var(--brycks-spacing-5);flex-shrink:0}.brycks-header__left,.brycks-header__right{display:flex;align-items:center}.brycks-header__left{gap:var(--brycks-spacing-4)}.brycks-header__right{gap:var(--brycks-spacing-2)}.brycks-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--brycks-radius-md);background-color:transparent;color:var(--brycks-foreground-muted);cursor:pointer;border:none;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-icon-btn:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-icon-btn:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-avatar{width:36px;height:36px;border-radius:var(--brycks-radius-full);background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-avatar:hover{transform:scale(1.05)}.brycks-avatar--xs{width:24px;height:24px;font-size:10px}.brycks-avatar--sm{width:32px;height:32px;font-size:12px}.brycks-avatar--md{width:36px;height:36px;font-size:14px}.brycks-avatar--lg{width:40px;height:40px;font-size:16px}.brycks-avatar--xl{width:48px;height:48px;font-size:18px}.brycks-avatar--2xl{width:64px;height:64px;font-size:24px}.brycks-page-header{margin-bottom:var(--brycks-spacing-6)}.brycks-stat-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center}.brycks-stat-card__icon--default{background-color:color-mix(in srgb,var(--brycks-foreground-muted) 10%,transparent);color:var(--brycks-foreground-muted)}.brycks-stat-card__icon--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-stat-card__icon--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-default)}.brycks-stat-card__icon--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-default)}.brycks-stat-card__icon--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-default)}.brycks-stat-card__trend{display:inline-flex;align-items:center;gap:var(--brycks-spacing-1);font-size:var(--brycks-font-size-xs);font-weight:500}.brycks-stat-card__trend--positive{color:var(--brycks-success-default)}.brycks-stat-card__trend--negative{color:var(--brycks-error-default)}.brycks-quick-action{padding:var(--brycks-spacing-4);border-radius:var(--brycks-radius-lg);background-color:var(--brycks-background-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out);text-align:center;border:none;width:100%}.brycks-quick-action:hover{background-color:var(--brycks-primary-muted)}.brycks-quick-action:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-quick-action__icon{color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-2)}.brycks-quick-action:hover .brycks-quick-action__icon{color:var(--brycks-primary-default)}.brycks-search-input{position:relative;min-width:240px}.brycks-search-input__icon{position:absolute;left:var(--brycks-spacing-3);top:50%;transform:translateY(-50%);pointer-events:none;z-index:1;color:var(--brycks-foreground-muted);width:16px;height:16px}.brycks-search-input input{padding-left:36px}.brycks-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--brycks-spacing-6);background-color:var(--brycks-background-subtle)}.brycks-login-card{width:100%;max-width:400px}.brycks-login-logo{display:flex;align-items:center;justify-content:center;margin-bottom:var(--brycks-spacing-8)}.brycks-login-logo__icon{width:64px;height:64px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-xl);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:28px}.brycks-login-footer{margin-top:var(--brycks-spacing-6);text-align:center}.brycks-user-info{padding:var(--brycks-spacing-2) var(--brycks-spacing-3)}.brycks-link{color:var(--brycks-primary-default);text-decoration:none;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-link:hover{color:var(--brycks-primary-hover);text-decoration:underline}.brycks-login-form__options{display:flex;justify-content:space-between;align-items:center}.brycks-dropdown-item__content{display:flex;align-items:center;gap:var(--brycks-spacing-2)}.brycks-vehicle-card{cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out),box-shadow var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-vehicle-card:hover{transform:translateY(-2px);box-shadow:var(--brycks-shadow-lg)}.brycks-vehicle-card__image{width:100%;aspect-ratio:16/10;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-3)}.brycks-vehicle-card__price{color:var(--brycks-primary-default)}.brycks-filter-select{min-width:160px}.brycks-page-card{cursor:pointer;transition:border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-page-card:hover{border-color:var(--brycks-primary-default)}.brycks-page-card__content{cursor:pointer}.brycks-page-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brycks-section-item{padding:var(--brycks-spacing-3);background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:grab;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out),opacity var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-item:active{cursor:grabbing}.brycks-section-item--dragging{opacity:.5;background-color:var(--brycks-background-muted)}.brycks-section-item--drag-over{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-section-item__grip{cursor:grab;color:var(--brycks-foreground-muted)}.brycks-section-item__icon{width:40px;height:40px;border-radius:var(--brycks-radius-md);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--brycks-fs-body-base);flex-shrink:0}.brycks-section-type-btn{padding:var(--brycks-spacing-4);background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:pointer;text-align:center;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-type-btn:hover{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-empty-zone{padding:var(--brycks-space-10);border:2px dashed var(--brycks-border-muted);border-radius:var(--brycks-radius-lg);display:flex;justify-content:center;align-items:center}.brycks-info-item{display:flex;flex-direction:column;gap:var(--brycks-spacing-1)}.brycks-image-container{width:100%;aspect-ratio:16/9;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted)}.brycks-table-action-btn{padding:var(--brycks-spacing-1)!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-skip-link{position:absolute;top:-40px;left:0;background:var(--brycks-primary-default);color:var(--brycks-primary-foreground);padding:var(--brycks-spacing-2) var(--brycks-spacing-4);z-index:var(--brycks-z-tooltip);text-decoration:none;font-weight:500}.brycks-skip-link:focus{top:0}*:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes brycks-fade-in{0%{opacity:0}to{opacity:1}}@keyframes brycks-fade-out{0%{opacity:1}to{opacity:0}}@keyframes brycks-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes brycks-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes brycks-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-left{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-slide-right{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-drawer-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes brycks-drawer-slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes brycks-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes brycks-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes brycks-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes brycks-bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes brycks-bounce-scale{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes brycks-pulse-scale{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}}@keyframes brycks-focus-ring-pulse{0%,to{box-shadow:0 0 0 3px #5578f459}50%{box-shadow:0 0 0 4px #5578f440}}@keyframes brycks-toast-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-toast-slide-in-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-accordion-expand{0%{height:0;opacity:0}to{height:var(--brycks-accordion-content-height);opacity:1}}@keyframes brycks-accordion-collapse{0%{height:var(--brycks-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes brycks-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.brycks-animate-fade-in{animation:brycks-fade-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-scale-in{animation:brycks-scale-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-slide-up{animation:brycks-slide-up var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-spin{animation:brycks-spin 1s linear infinite}.brycks-animate-pulse{animation:brycks-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.brycks-animate-shimmer{animation:brycks-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--brycks-background-muted) 0%,var(--brycks-background-subtle) 50%,var(--brycks-background-muted) 100%);background-size:200% 100%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.brycks-animate-spin{animation-duration:.5s!important}.brycks-animate-pulse,.brycks-animate-shimmer,.brycks-animate-bounce{animation:none!important}.brycks-skeleton{animation:none!important;background:var(--brycks-background-muted)!important}}:root{--brycks-anim-duration-instant: 50ms;--brycks-anim-duration-fast: .1s;--brycks-anim-duration-normal: .2s;--brycks-anim-duration-slow: .3s;--brycks-anim-duration-slower: .4s;--brycks-anim-ease-linear: linear;--brycks-anim-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-anim-ease-in: cubic-bezier(.4, 0, 1, 1);--brycks-anim-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-anim-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--brycks-anim-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55)}:root{--brycks-fs-responsive-xs: clamp(.75rem, 2.5vw, .875rem);--brycks-fs-responsive-sm: clamp(.8125rem, 2.8vw, 1rem);--brycks-fs-responsive-base: clamp(.875rem, 3vw, 1.125rem);--brycks-fs-responsive-lg: clamp(1rem, 3.5vw, 1.25rem);--brycks-fs-responsive-xl: clamp(1.125rem, 4vw, 1.5rem);--brycks-fs-responsive-2xl: clamp(1.25rem, 4.5vw, 1.75rem);--brycks-spacing-responsive-xs: clamp(.25rem, 1vw, .5rem);--brycks-spacing-responsive-sm: clamp(.375rem, 1.5vw, .75rem);--brycks-spacing-responsive-md: clamp(.5rem, 2vw, 1rem);--brycks-spacing-responsive-lg: clamp(.75rem, 3vw, 1.5rem)}.brycks-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.brycks-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.brycks-break-all{word-break:break-all}.brycks-break-word{word-break:break-word;overflow-wrap:break-word}.brycks-min-w-0{min-width:0}@media (max-width: 479px){.brycks-hide-mobile{display:none!important}}@media (max-width: 319px){.brycks-hide-xs{display:none!important}}@media (min-width: 640px){.brycks-show-mobile-only{display:none!important}}@media (max-width: 639px){.brycks-app-layout__content{padding:var(--brycks-spacing-4)}}@media (max-width: 479px){.brycks-app-layout__content{padding:var(--brycks-spacing-3)}}@media (max-width: 319px){.brycks-app-layout__content{padding:var(--brycks-spacing-2)}}@media (max-width: 319px){.brycks-sidebar{width:100%;max-width:250px}.brycks-sidebar__logo{padding:var(--brycks-spacing-2) var(--brycks-spacing-3)}.brycks-sidebar__logo-icon{width:28px;height:28px;font-size:var(--brycks-fs-responsive-sm)}.brycks-sidebar__logo-text{font-size:var(--brycks-fs-responsive-base)}.brycks-sidebar__nav{padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}.brycks-nav-item{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-sm);gap:var(--brycks-spacing-2)}.brycks-nav-item__icon{width:18px;height:18px}.brycks-nav-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-sidebar__footer{padding:var(--brycks-spacing-2)}}@media (max-width: 639px){.brycks-header{height:56px;padding:0 var(--brycks-spacing-3)}.brycks-header__left{gap:var(--brycks-spacing-2)}.brycks-header__right{gap:var(--brycks-spacing-1)}}@media (max-width: 479px){.brycks-header{padding:0 var(--brycks-spacing-2)}.brycks-icon-btn{width:32px;height:32px}}@media (max-width: 319px){.brycks-header{height:48px;padding:0 var(--brycks-spacing-1)}.brycks-icon-btn{width:28px;height:28px}.brycks-icon-btn svg{width:16px;height:16px}}@media (max-width: 319px){.brycks-avatar--md{width:32px;height:32px;font-size:12px}.brycks-avatar--lg{width:36px;height:36px;font-size:14px}}@media (max-width: 639px){.brycks-page-header{margin-bottom:var(--brycks-spacing-4)}}@media (max-width: 319px){.brycks-page-header{margin-bottom:var(--brycks-spacing-3)}}@media (max-width: 639px){.brycks-stat-card__icon{width:40px;height:40px}.brycks-stat-card__icon svg{width:18px;height:18px}}@media (max-width: 479px){.brycks-stat-card__icon{width:36px;height:36px}.brycks-stat-card__icon svg{width:16px;height:16px}}@media (max-width: 319px){.brycks-stat-card__icon{width:28px;height:28px}.brycks-stat-card__icon svg{width:14px;height:14px}.brycks-stat-card__trend{font-size:.5625rem}}@media (max-width: 639px){.brycks-quick-action{padding:var(--brycks-spacing-3)}}@media (max-width: 319px){.brycks-quick-action{padding:var(--brycks-spacing-2)}.brycks-quick-action__icon{margin-bottom:var(--brycks-spacing-1)}.brycks-quick-action__icon svg{width:20px;height:20px}}@media (max-width: 639px){.brycks-search-input{min-width:100%}}@media (max-width: 319px){.brycks-search-input input{font-size:14px;padding-left:32px;padding-top:var(--brycks-spacing-1);padding-bottom:var(--brycks-spacing-1)}.brycks-search-input__icon{left:var(--brycks-spacing-2);width:14px;height:14px}}@media (max-width: 479px){.brycks-login-container{padding:var(--brycks-spacing-4)}.brycks-login-card{max-width:100%}.brycks-login-logo{margin-bottom:var(--brycks-spacing-6)}.brycks-login-logo__icon{width:56px;height:56px;font-size:24px}}@media (max-width: 319px){.brycks-login-container{padding:var(--brycks-spacing-2)}.brycks-login-logo{margin-bottom:var(--brycks-spacing-4)}.brycks-login-logo__icon{width:48px;height:48px;font-size:20px}.brycks-login-footer{margin-top:var(--brycks-spacing-4)}.brycks-login-form__options{flex-direction:column;gap:var(--brycks-spacing-2);align-items:flex-start}}@media (max-width: 479px){.brycks-user-info{padding:var(--brycks-spacing-2)}.brycks-user-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;display:block}}@media (max-width: 639px){.brycks-vehicle-card__image{aspect-ratio:16/9}}@media (max-width: 319px){.brycks-vehicle-card__image{aspect-ratio:4/3;margin-bottom:var(--brycks-spacing-2)}}@media (max-width: 639px){.brycks-filter-select{min-width:100%}}@media (max-width: 479px){.brycks-page-card__icon{width:40px;height:40px}}@media (max-width: 319px){.brycks-page-card__icon{width:36px;height:36px}.brycks-page-card__icon svg{width:16px;height:16px}}@media (max-width: 479px){.brycks-section-item{padding:var(--brycks-spacing-2)}.brycks-section-item__icon{width:32px;height:32px;font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-section-item{padding:var(--brycks-spacing-1)}.brycks-section-item__icon{width:28px;height:28px}.brycks-section-item__grip{display:none}}@media (max-width: 479px){.brycks-section-type-btn{padding:var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-empty-zone{padding:var(--brycks-spacing-6)}}@media (max-width: 319px){.brycks-empty-zone{padding:var(--brycks-spacing-4)}}@media (max-width: 639px){.brycks-image-container{aspect-ratio:16/10}}@media (max-width: 319px){.brycks-image-container{aspect-ratio:4/3}}@media (max-width: 639px){input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=search],input[type=url],textarea,select{font-size:16px!important}}@media (max-width: 319px){input,textarea,select{padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-button--md{padding:var(--brycks-spacing-2) var(--brycks-spacing-3);font-size:var(--brycks-fs-responsive-sm)}.brycks-button--sm{padding:var(--brycks-spacing-1) var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}}@media (max-width: 319px){.brycks-button--md{padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}.brycks-button--sm{padding:var(--brycks-spacing-1)}.brycks-button svg{width:14px;height:14px}}@media (max-width: 479px){.brycks-badge--md{font-size:var(--brycks-fs-responsive-xs);padding:2px 6px}.brycks-badge--sm{font-size:.5625rem;padding:1px 4px}}@media (max-width: 639px){.brycks-modal{width:calc(100vw - var(--brycks-spacing-4));max-height:calc(100vh - var(--brycks-spacing-8));margin:var(--brycks-spacing-2)}.brycks-modal-header,.brycks-modal-body,.brycks-modal-footer{padding:var(--brycks-spacing-3)}.brycks-modal-footer{flex-wrap:wrap;gap:var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-modal-header,.brycks-modal-body,.brycks-modal-footer{padding:var(--brycks-spacing-2)}.brycks-modal-footer button{flex:1;min-width:80px}}@media (max-width: 319px){.brycks-modal{width:calc(100vw - var(--brycks-spacing-2));margin:var(--brycks-spacing-1)}.brycks-modal-footer button{min-width:60px}}@media (max-width: 639px){.brycks-card{border-radius:var(--brycks-radius-md)}.brycks-card-header,.brycks-card-body{padding:var(--brycks-spacing-3)}}@media (max-width: 479px){.brycks-card-header,.brycks-card-body{padding:var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-dropdown-content{max-width:calc(100vw - var(--brycks-spacing-4))}.brycks-dropdown-item{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-dropdown-item{padding:var(--brycks-spacing-1) var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}.brycks-dropdown-item__content{gap:var(--brycks-spacing-1)}}@media (max-width: 479px){.brycks-tooltip{max-width:calc(100vw - var(--brycks-spacing-4));font-size:var(--brycks-fs-responsive-xs);padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}}@media (max-width: 639px){.brycks-tabs .brycks-tab-list{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.brycks-tabs .brycks-tab-list::-webkit-scrollbar{display:none}.brycks-tabs .brycks-tab{flex:0 0 auto;white-space:nowrap}}@media (max-width: 319px){.brycks-tabs .brycks-tab{padding:var(--brycks-spacing-1) var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}.brycks-tabs .brycks-tab svg{width:14px;height:14px}}.brycks-table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 639px){.brycks-table th,.brycks-table td{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-table th,.brycks-table td{padding:var(--brycks-spacing-1);font-size:var(--brycks-fs-responsive-xs)}}@media (max-width: 479px){.brycks-pagination{gap:var(--brycks-spacing-1)}.brycks-pagination button{min-width:32px;height:32px;padding:var(--brycks-spacing-1);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-pagination button{min-width:28px;height:28px;font-size:var(--brycks-fs-responsive-xs)}.brycks-pagination button span{display:none}}@media (max-width: 479px){.brycks-alert{padding:var(--brycks-spacing-2) var(--brycks-spacing-3);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-alert{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}.brycks-alert__icon{width:16px;height:16px}}@media (max-width: 479px){.brycks-toast-container{left:var(--brycks-spacing-2);right:var(--brycks-spacing-2);bottom:var(--brycks-spacing-2)}.brycks-toast{max-width:100%;font-size:var(--brycks-fs-responsive-sm)}}.brycks-flex>*,.brycks-stack>*{min-width:0}@media print{.brycks-sidebar,.brycks-header,.brycks-skip-link{display:none!important}.brycks-app-layout__content{padding:0!important}.brycks-button,.brycks-icon-btn{display:none!important}}.brycks-button{font-family:var(--brycks-font-sans);font-weight:500;line-height:1;border:none;outline:none;cursor:pointer;user-select:none;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease-out,color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out,transform .15s ease-out}.brycks-button:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-button--disabled,.brycks-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.brycks-button--loading{cursor:wait;pointer-events:none}.brycks-button--solid.brycks-button--primary{background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground)}.brycks-button--solid.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-hover)}.brycks-button--solid.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-active);transform:scale(.98)}.brycks-button--solid.brycks-button--accent{background-color:var(--brycks-accent-default);color:var(--brycks-accent-foreground)}.brycks-button--solid.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-hover)}.brycks-button--solid.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-active);transform:scale(.98)}.brycks-button--solid.brycks-button--neutral{background-color:var(--brycks-foreground-default);color:var(--brycks-background-app)}.brycks-button--solid.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-foreground-muted)}.brycks-button--solid.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-foreground-subtle);transform:scale(.98)}.brycks-button--solid.brycks-button--success{background-color:var(--brycks-success-default);color:var(--brycks-success-foreground)}.brycks-button--solid.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-hover)}.brycks-button--solid.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-hover);transform:scale(.98)}.brycks-button--solid.brycks-button--warning{background-color:var(--brycks-warning-default);color:var(--brycks-warning-foreground)}.brycks-button--solid.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-hover)}.brycks-button--solid.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-hover);transform:scale(.98)}.brycks-button--solid.brycks-button--error{background-color:var(--brycks-error-default);color:var(--brycks-error-foreground)}.brycks-button--solid.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-hover)}.brycks-button--solid.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-hover);transform:scale(.98)}.brycks-button--outline.brycks-button--primary{background-color:transparent;color:var(--brycks-primary-default);border:1px solid var(--brycks-primary-default)}.brycks-button--outline.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-muted)}.brycks-button--outline.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--accent{background-color:transparent;color:var(--brycks-accent-default);border:1px solid var(--brycks-accent-default)}.brycks-button--outline.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-muted)}.brycks-button--outline.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--neutral{background-color:transparent;color:var(--brycks-foreground-default);border:1px solid var(--brycks-border-strong)}.brycks-button--outline.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-background-muted)}.brycks-button--outline.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--success{background-color:transparent;color:var(--brycks-success-default);border:1px solid var(--brycks-success-default)}.brycks-button--outline.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-muted)}.brycks-button--outline.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--warning{background-color:transparent;color:var(--brycks-warning-default);border:1px solid var(--brycks-warning-default)}.brycks-button--outline.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-muted)}.brycks-button--outline.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--error{background-color:transparent;color:var(--brycks-error-default);border:1px solid var(--brycks-error-default)}.brycks-button--outline.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-muted)}.brycks-button--outline.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--primary{background-color:transparent;color:var(--brycks-primary-default);border:none}.brycks-button--ghost.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-muted)}.brycks-button--ghost.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--accent{background-color:transparent;color:var(--brycks-accent-default);border:none}.brycks-button--ghost.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-muted)}.brycks-button--ghost.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--neutral{background-color:transparent;color:var(--brycks-foreground-default);border:none}.brycks-button--ghost.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-background-muted)}.brycks-button--ghost.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--success{background-color:transparent;color:var(--brycks-success-default);border:none}.brycks-button--ghost.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-muted)}.brycks-button--ghost.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--warning{background-color:transparent;color:var(--brycks-warning-default);border:none}.brycks-button--ghost.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-muted)}.brycks-button--ghost.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--error{background-color:transparent;color:var(--brycks-error-default);border:none}.brycks-button--ghost.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-muted)}.brycks-button--ghost.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);border:none}.brycks-button--soft.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-soft-hover)}.brycks-button--soft.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--accent{background-color:var(--brycks-accent-muted);color:var(--brycks-accent-default);border:none}.brycks-button--soft.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-soft-hover)}.brycks-button--soft.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--neutral{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default);border:none}.brycks-button--soft.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-border-default)}.brycks-button--soft.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-default);border:none}.brycks-button--soft.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-soft-hover)}.brycks-button--soft.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-default);border:none}.brycks-button--soft.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-soft-hover)}.brycks-button--soft.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-default);border:none}.brycks-button--soft.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-soft-hover)}.brycks-button--soft.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--link.brycks-button--primary{background-color:transparent;color:var(--brycks-primary-default);border:none}.brycks-button--link.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-primary-hover);text-decoration:underline}.brycks-button--link.brycks-button--accent{background-color:transparent;color:var(--brycks-accent-default);border:none}.brycks-button--link.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-accent-hover);text-decoration:underline}.brycks-button--link.brycks-button--neutral{background-color:transparent;color:var(--brycks-foreground-default);border:none}.brycks-button--link.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-foreground-muted);text-decoration:underline}.brycks-button--link.brycks-button--success{background-color:transparent;color:var(--brycks-success-default);border:none}.brycks-button--link.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-success-hover);text-decoration:underline}.brycks-button--link.brycks-button--warning{background-color:transparent;color:var(--brycks-warning-default);border:none}.brycks-button--link.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-warning-hover);text-decoration:underline}.brycks-button--link.brycks-button--error{background-color:transparent;color:var(--brycks-error-default);border:none}.brycks-button--link.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-error-hover);text-decoration:underline}.brycks-button--xs{height:24px;padding:0 8px;font-size:var(--brycks-fs-ui-xs);border-radius:var(--brycks-radius-md);gap:4px}.brycks-button--sm{height:32px;padding:0 12px;font-size:var(--brycks-fs-ui-sm);border-radius:var(--brycks-radius-md);gap:6px}.brycks-button--md{height:40px;padding:0 16px;font-size:var(--brycks-fs-ui-md);border-radius:var(--brycks-radius-default);gap:8px}.brycks-button--lg{height:48px;padding:0 20px;font-size:var(--brycks-fs-ui-lg);border-radius:var(--brycks-radius-lg);gap:8px}.brycks-button--xl{height:56px;padding:0 24px;font-size:var(--brycks-fs-ui-xl);border-radius:var(--brycks-radius-xl);gap:10px}.brycks-button--icon-only{padding:0}.brycks-button--icon-only.brycks-button--xs{width:24px;min-width:24px}.brycks-button--icon-only.brycks-button--sm{width:32px;min-width:32px}.brycks-button--icon-only.brycks-button--md{width:40px;min-width:40px}.brycks-button--icon-only.brycks-button--lg{width:48px;min-width:48px}.brycks-button--icon-only.brycks-button--xl{width:56px;min-width:56px}.brycks-button--full-width{width:100%}.brycks-button--link{height:auto;padding:0;border-radius:0}.brycks-switch{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer}.brycks-switch--disabled{opacity:.5;cursor:not-allowed}.brycks-switch__input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.brycks-switch--disabled .brycks-switch__input{cursor:not-allowed}.brycks-switch__track{position:relative;flex-shrink:0;background-color:var(--brycks-background-muted);box-shadow:inset 0 0 0 1px var(--brycks-border-default),inset 0 1px 2px #0000000d;transition:background-color .25s var(--brycks-ease-out),box-shadow .25s var(--brycks-ease-out)}.brycks-switch--checked .brycks-switch__track{background-color:var(--brycks-primary-default);box-shadow:inset 0 0 0 1px var(--brycks-primary-default)}.brycks-switch:focus-within .brycks-switch__track{box-shadow:inset 0 0 0 1px var(--brycks-border-default),inset 0 1px 2px #0000000d,0 0 0 3px var(--brycks-primary-muted)}.brycks-switch--checked:focus-within .brycks-switch__track{box-shadow:inset 0 0 0 1px var(--brycks-primary-default),0 0 0 3px var(--brycks-primary-muted)}.brycks-switch__thumb{position:absolute;background-color:var(--brycks-background-elevated);box-shadow:var(--brycks-shadow-sm);transition:left .25s var(--brycks-ease-out),transform .25s var(--brycks-ease-out),width .25s var(--brycks-ease-out)}.brycks-switch__label{display:flex;flex-direction:column;gap:2px;user-select:none}.brycks-switch__label-text{font-size:var(--brycks-fs-body-base);line-height:1.4;color:var(--brycks-foreground-default)}.brycks-switch__description{font-size:var(--brycks-fs-body-sm);line-height:1.4;color:var(--brycks-foreground-muted)}.brycks-tabs{display:flex}.brycks-tabs--horizontal{flex-direction:column}.brycks-tabs--vertical{flex-direction:row;gap:24px}.brycks-tab-list{display:flex;flex-shrink:0}.brycks-tabs--horizontal .brycks-tab-list{flex-direction:row}.brycks-tabs--vertical .brycks-tab-list{flex-direction:column;gap:4px}.brycks-tabs--line.brycks-tabs--horizontal .brycks-tab-list{border-bottom:1px solid var(--brycks-border-muted)}.brycks-tabs--line.brycks-tabs--vertical .brycks-tab-list{border-right:1px solid var(--brycks-border-muted);padding-right:16px}.brycks-tabs--enclosed .brycks-tab-list{background-color:var(--brycks-background-muted);padding:4px;border-radius:var(--brycks-radius-lg);gap:4px}.brycks-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;cursor:pointer;transition:all .15s ease-out;outline:none;border:none;background-color:transparent;white-space:nowrap}.brycks-tab:disabled{opacity:.5;cursor:not-allowed}.brycks-tabs--sm .brycks-tab{font-size:13px;padding:6px 12px;min-height:32px}.brycks-tabs--md .brycks-tab,.brycks-tab{font-size:14px;padding:8px 16px;min-height:40px}.brycks-tabs--lg .brycks-tab{font-size:16px;padding:10px 20px;min-height:48px}.brycks-tabs--line .brycks-tab{color:var(--brycks-foreground-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.brycks-tabs--line .brycks-tab:hover:not(:disabled){color:var(--brycks-foreground-default)}.brycks-tabs--line .brycks-tab--selected{color:var(--brycks-primary-default);border-bottom-color:var(--brycks-primary-default)}.brycks-tabs--line.brycks-tabs--vertical .brycks-tab{border-bottom:none;border-right:2px solid transparent;margin-bottom:0;margin-right:-1px}.brycks-tabs--line.brycks-tabs--vertical .brycks-tab--selected{border-right-color:var(--brycks-primary-default)}.brycks-tabs--enclosed .brycks-tab{color:var(--brycks-foreground-muted);border-radius:var(--brycks-radius-md)}.brycks-tabs--enclosed .brycks-tab:hover:not(:disabled):not(.brycks-tab--selected){color:var(--brycks-foreground-default);background-color:var(--brycks-background-subtle)}.brycks-tabs--enclosed .brycks-tab--selected{color:var(--brycks-foreground-default);background-color:var(--brycks-background-elevated);box-shadow:var(--brycks-shadow-sm)}.brycks-tabs--soft .brycks-tab{color:var(--brycks-foreground-muted);border-radius:var(--brycks-radius-md)}.brycks-tabs--soft .brycks-tab:hover:not(:disabled):not(.brycks-tab--selected){color:var(--brycks-foreground-default);background-color:var(--brycks-background-muted)}.brycks-tabs--soft .brycks-tab--selected{color:var(--brycks-primary-default);background-color:var(--brycks-primary-muted)}.brycks-tab-panels{flex:1}.brycks-tab-panel{padding:16px 0;animation:brycks-tab-panel-in .2s ease-out}@keyframes brycks-tab-panel-in{0%{opacity:0}to{opacity:1}}.brycks-tab__icon{display:inline-flex;flex-shrink:0}.brycks-tab:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:500;font-family:var(--brycks-font-sans);line-height:1;border-radius:var(--brycks-radius-full);white-space:nowrap}.brycks-badge--with-leading{gap:5px}.brycks-badge__dot{flex-shrink:0;width:6px;height:6px;border-radius:var(--brycks-radius-full);background-color:currentColor}.brycks-badge__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em}.brycks-badge__icon svg{width:100%;height:100%}.brycks-badge--sm{font-size:10px;padding:2px 6px;height:18px}.brycks-badge--md{font-size:11px;padding:3px 8px;height:22px}.brycks-badge--lg{font-size:12px;padding:4px 10px;height:26px}.brycks-badge--solid.brycks-badge--neutral{background-color:var(--brycks-foreground-default);color:var(--brycks-background-app)}.brycks-badge--solid.brycks-badge--primary{background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground)}.brycks-badge--solid.brycks-badge--accent{background-color:var(--brycks-accent-default);color:var(--brycks-accent-foreground)}.brycks-badge--solid.brycks-badge--success{background-color:var(--brycks-success-default);color:var(--brycks-success-foreground)}.brycks-badge--solid.brycks-badge--warning{background-color:var(--brycks-warning-default);color:var(--brycks-warning-foreground)}.brycks-badge--solid.brycks-badge--error{background-color:var(--brycks-error-default);color:var(--brycks-error-foreground)}.brycks-badge--solid.brycks-badge--info{background-color:var(--brycks-info-default);color:var(--brycks-info-foreground)}.brycks-badge--subtle.brycks-badge--neutral{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-badge--subtle.brycks-badge--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-badge--subtle.brycks-badge--accent{background-color:var(--brycks-accent-muted);color:var(--brycks-accent-default)}.brycks-badge--subtle.brycks-badge--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-on-muted)}.brycks-badge--subtle.brycks-badge--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-on-muted)}.brycks-badge--subtle.brycks-badge--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-on-muted)}.brycks-badge--subtle.brycks-badge--info{background-color:var(--brycks-info-muted);color:var(--brycks-info-on-muted)}.brycks-badge--outline{background-color:transparent;border:1px solid}.brycks-badge--outline.brycks-badge--neutral{color:var(--brycks-foreground-default);border-color:var(--brycks-border-default)}.brycks-badge--outline.brycks-badge--primary{color:var(--brycks-primary-default);border-color:var(--brycks-primary-default)}.brycks-badge--outline.brycks-badge--accent{color:var(--brycks-accent-default);border-color:var(--brycks-accent-default)}.brycks-badge--outline.brycks-badge--success{color:var(--brycks-success-default);border-color:var(--brycks-success-default)}.brycks-badge--outline.brycks-badge--warning{color:var(--brycks-warning-default);border-color:var(--brycks-warning-default)}.brycks-badge--outline.brycks-badge--error{color:var(--brycks-error-default);border-color:var(--brycks-error-default)}.brycks-badge--outline.brycks-badge--info{color:var(--brycks-info-default);border-color:var(--brycks-info-default)}.brycks-alert{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--brycks-radius-default);border:1px solid transparent}.brycks-alert__icon{flex-shrink:0;width:20px;height:20px}.brycks-alert__content{flex:1;min-width:0}.brycks-alert__title{font-weight:600;font-size:var(--brycks-fs-body-base);line-height:1.4;margin-bottom:2px}.brycks-alert__description{font-size:var(--brycks-fs-body-sm);line-height:1.5;color:var(--brycks-foreground-muted)}.brycks-alert__dismiss{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-alert__dismiss:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-alert__dismiss:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-alert--info{background-color:var(--brycks-info-muted);border-left-color:var(--brycks-info-default)}.brycks-alert--info .brycks-alert__icon{color:var(--brycks-info-default)}.brycks-alert--info .brycks-alert__title{color:var(--brycks-info-on-muted)}.brycks-alert--success{background-color:var(--brycks-success-muted);border-left-color:var(--brycks-success-default)}.brycks-alert--success .brycks-alert__icon{color:var(--brycks-success-default)}.brycks-alert--success .brycks-alert__title{color:var(--brycks-success-on-muted)}.brycks-alert--warning{background-color:var(--brycks-warning-muted);border-left-color:var(--brycks-warning-default)}.brycks-alert--warning .brycks-alert__icon{color:var(--brycks-warning-default)}.brycks-alert--warning .brycks-alert__title{color:var(--brycks-warning-on-muted)}.brycks-alert--error{background-color:var(--brycks-error-muted);border-left-color:var(--brycks-error-default)}.brycks-alert--error .brycks-alert__icon{color:var(--brycks-error-default)}.brycks-alert--error .brycks-alert__title{color:var(--brycks-error-on-muted)}.brycks-alert--primary{background-color:var(--brycks-primary-muted);border-left-color:var(--brycks-primary-default)}.brycks-alert--primary .brycks-alert__icon{color:var(--brycks-primary-default)}.brycks-alert--primary .brycks-alert__title{color:var(--brycks-primary-hover)}.brycks-alert--solid.brycks-alert--info{background-color:var(--brycks-info-default);border-color:var(--brycks-info-default)}.brycks-alert--solid.brycks-alert--success{background-color:var(--brycks-success-default);border-color:var(--brycks-success-default)}.brycks-alert--solid.brycks-alert--warning{background-color:var(--brycks-warning-default);border-color:var(--brycks-warning-default)}.brycks-alert--solid.brycks-alert--error{background-color:var(--brycks-error-default);border-color:var(--brycks-error-default)}.brycks-alert--solid.brycks-alert--info .brycks-alert__icon,.brycks-alert--solid.brycks-alert--info .brycks-alert__title,.brycks-alert--solid.brycks-alert--info .brycks-alert__description,.brycks-alert--solid.brycks-alert--success .brycks-alert__icon,.brycks-alert--solid.brycks-alert--success .brycks-alert__title,.brycks-alert--solid.brycks-alert--success .brycks-alert__description,.brycks-alert--solid.brycks-alert--warning .brycks-alert__icon,.brycks-alert--solid.brycks-alert--warning .brycks-alert__title,.brycks-alert--solid.brycks-alert--warning .brycks-alert__description,.brycks-alert--solid.brycks-alert--error .brycks-alert__icon,.brycks-alert--solid.brycks-alert--error .brycks-alert__title,.brycks-alert--solid.brycks-alert--error .brycks-alert__description{color:var(--brycks-info-foreground)}.brycks-alert--solid.brycks-alert--success .brycks-alert__icon,.brycks-alert--solid.brycks-alert--success .brycks-alert__title,.brycks-alert--solid.brycks-alert--success .brycks-alert__description{color:var(--brycks-success-foreground)}.brycks-alert--solid.brycks-alert--warning .brycks-alert__icon,.brycks-alert--solid.brycks-alert--warning .brycks-alert__title,.brycks-alert--solid.brycks-alert--warning .brycks-alert__description{color:var(--brycks-warning-foreground)}.brycks-alert--solid.brycks-alert--error .brycks-alert__icon,.brycks-alert--solid.brycks-alert--error .brycks-alert__title,.brycks-alert--solid.brycks-alert--error .brycks-alert__description{color:var(--brycks-error-foreground)}.brycks-alert--solid .brycks-alert__dismiss{color:inherit}.brycks-alert--outline{background-color:transparent}.brycks-alert--outline.brycks-alert--info{border-color:var(--brycks-info-default)}.brycks-alert--outline.brycks-alert--success{border-color:var(--brycks-success-default)}.brycks-alert--outline.brycks-alert--warning{border-color:var(--brycks-warning-default)}.brycks-alert--outline.brycks-alert--error{border-color:var(--brycks-error-default)}.brycks-banner{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:1px solid transparent;border-radius:var(--brycks-radius-default);font-family:var(--brycks-font-sans)}.brycks-banner__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.brycks-banner__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.brycks-banner__title{font-weight:600;font-size:var(--brycks-fs-body-base);line-height:1.4}.brycks-banner__description{font-size:var(--brycks-fs-body-sm);line-height:1.45;color:var(--brycks-foreground-muted)}.brycks-banner__actions{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;margin-left:auto}.brycks-banner__dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-banner__dismiss:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-banner__dismiss:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-banner--info{background-color:var(--brycks-info-muted);border-color:var(--brycks-info-default)}.brycks-banner--info .brycks-banner__icon{color:var(--brycks-info-default)}.brycks-banner--info .brycks-banner__title{color:var(--brycks-info-on-muted)}.brycks-banner--success{background-color:var(--brycks-success-muted);border-color:var(--brycks-success-default)}.brycks-banner--success .brycks-banner__icon{color:var(--brycks-success-default)}.brycks-banner--success .brycks-banner__title{color:var(--brycks-success-on-muted)}.brycks-banner--warning{background-color:var(--brycks-warning-muted);border-color:var(--brycks-warning-default)}.brycks-banner--warning .brycks-banner__icon{color:var(--brycks-warning-default)}.brycks-banner--warning .brycks-banner__title{color:var(--brycks-warning-on-muted)}.brycks-banner--error{background-color:var(--brycks-error-muted);border-color:var(--brycks-error-default)}.brycks-banner--error .brycks-banner__icon{color:var(--brycks-error-default)}.brycks-banner--error .brycks-banner__title{color:var(--brycks-error-on-muted)}.brycks-banner--neutral{background-color:var(--brycks-background-muted);border-color:var(--brycks-border-default)}.brycks-banner--neutral .brycks-banner__icon{color:var(--brycks-foreground-muted)}.brycks-banner--neutral .brycks-banner__title{color:var(--brycks-foreground-default)}.brycks-segmented{display:inline-flex;align-items:center;gap:2px;padding:2px;background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-lg)}.brycks-segmented--full-width{display:flex;width:100%}.brycks-segmented__item{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1 1 auto;white-space:nowrap;font-family:var(--brycks-font-sans);font-weight:500;color:var(--brycks-foreground-muted);background-color:transparent;border:none;border-radius:var(--brycks-radius-default);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-segmented__icon{display:inline-flex;align-items:center;justify-content:center}.brycks-segmented__item:hover:not(.brycks-segmented__item--selected):not(:disabled){color:var(--brycks-foreground-default)}.brycks-segmented__item--selected{color:var(--brycks-foreground-default);background-color:var(--brycks-background-app);font-weight:600}.brycks-segmented__item:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:1px}.brycks-segmented__item:disabled{opacity:.5;cursor:not-allowed}.brycks-segmented--sm .brycks-segmented__item{height:28px;padding:0 10px;font-size:12px}.brycks-segmented--md .brycks-segmented__item{height:34px;padding:0 14px;font-size:13px}.brycks-segmented--lg .brycks-segmented__item{height:40px;padding:0 18px;font-size:14px}.brycks-kbd{display:inline-flex;align-items:center;justify-content:center;font-family:var(--brycks-font-mono);font-weight:500;line-height:1;color:var(--brycks-foreground-muted);background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-sm);white-space:nowrap}.brycks-kbd--sm{min-width:18px;height:18px;padding:0 5px;font-size:11px}.brycks-kbd--md{min-width:22px;height:22px;padding:0 6px;font-size:12px}.brycks-search-input__clear{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-search-input__clear:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-search-input__clear:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:1px}.brycks-loading-overlay{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;background-color:var(--brycks-background-overlay);z-index:var(--brycks-z-overlay)}.brycks-skeleton{background:linear-gradient(90deg,var(--brycks-background-muted) 25%,var(--brycks-background-subtle) 50%,var(--brycks-background-muted) 75%);background-size:200% 100%;animation:brycks-skeleton-shimmer 1.5s infinite;border-radius:var(--brycks-radius-md)}@keyframes brycks-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.brycks-form-select__trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0 12px;height:40px;font-size:var(--brycks-fs-body-base);font-family:var(--brycks-font-sans);background-color:var(--brycks-background-default);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-default);color:var(--brycks-foreground-default);cursor:pointer;transition:border-color .15s ease-out,box-shadow .15s ease-out;outline:none}.brycks-form-select__trigger:hover:not(:disabled){border-color:var(--brycks-primary-default)}.brycks-form-select__trigger:focus,.brycks-form-select__trigger:focus-visible{border-color:var(--brycks-primary-default);box-shadow:0 0 0 3px var(--brycks-primary-muted)}.brycks-form-select__trigger:disabled{opacity:.5;cursor:not-allowed;background-color:var(--brycks-background-muted)}.brycks-form-select__trigger--error{border-color:var(--brycks-error-default)}.brycks-form-select__trigger--error:focus{box-shadow:0 0 0 3px var(--brycks-error-muted)}.brycks-form-select__trigger--sm{height:32px;padding:0 10px;font-size:var(--brycks-fs-body-sm)}.brycks-form-select__trigger--lg{height:48px;padding:0 16px;font-size:var(--brycks-fs-body-md)}.brycks-form-select__placeholder{color:var(--brycks-foreground-muted)}.brycks-form-select__icon{flex-shrink:0;color:var(--brycks-foreground-muted);transition:transform .2s ease-out}.brycks-form-select__trigger[data-state=open] .brycks-form-select__icon{transform:rotate(180deg)}.brycks-form-select__content{background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);padding:4px;z-index:var(--brycks-z-dropdown);overflow:hidden;animation:brycks-select-in .15s ease-out}@keyframes brycks-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.brycks-form-select__viewport{max-height:300px;overflow-y:auto}.brycks-form-select__item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-default);border-radius:var(--brycks-radius-md);cursor:pointer;outline:none;transition:background-color .1s ease-out}.brycks-form-select__item:hover,.brycks-form-select__item:focus,.brycks-form-select__item[data-highlighted]{background-color:var(--brycks-primary-muted)}.brycks-form-select__item[data-state=checked]{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);font-weight:500}.brycks-form-select__item:disabled,.brycks-form-select__item[data-disabled]{opacity:.5;cursor:not-allowed}.brycks-form-select__item-indicator{flex-shrink:0;color:var(--brycks-primary-default)}.brycks-form-select__group-label{padding:8px 12px 4px;font-size:var(--brycks-fs-body-xs);font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.5px}.brycks-form-select__separator{height:1px;background-color:var(--brycks-border-muted);margin:4px 0}.brycks-select-wrapper{position:relative;display:inline-flex;width:100%}.brycks-select{width:100%;font-family:var(--brycks-font-sans);color:var(--brycks-foreground-default);border-radius:var(--brycks-radius-default);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;transition:all .2s ease-out;box-shadow:none}.brycks-select--placeholder{color:var(--brycks-foreground-muted)}.brycks-select-wrapper--sm .brycks-select{height:32px;padding-left:10px;padding-right:34px;font-size:13px}.brycks-select-wrapper--md .brycks-select{height:40px;padding-left:12px;padding-right:36px;font-size:14px}.brycks-select-wrapper--lg .brycks-select{height:48px;padding-left:14px;padding-right:38px;font-size:15px}.brycks-select-wrapper--outline .brycks-select{background-color:var(--brycks-background-app);border:1px solid var(--brycks-border-default)}.brycks-select-wrapper--filled .brycks-select{background-color:var(--brycks-background-muted);border:1px solid transparent}.brycks-select-wrapper--outline .brycks-select:focus,.brycks-select-wrapper--filled .brycks-select:focus{border-color:var(--brycks-border-focus);box-shadow:0 0 0 3px #5578f426}.brycks-select-wrapper--invalid .brycks-select{border-color:var(--brycks-error-default)}.brycks-select-wrapper--invalid .brycks-select:focus{border-color:var(--brycks-error-default);box-shadow:0 0 0 3px #ef444426}.brycks-select-wrapper--disabled .brycks-select{opacity:.5;cursor:not-allowed}.brycks-select-icon{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--brycks-foreground-muted);transition:transform .2s ease-out}.brycks-select-wrapper--sm .brycks-select-icon{right:10px}.brycks-select-wrapper--md .brycks-select-icon{right:12px}.brycks-select-wrapper--lg .brycks-select-icon{right:14px}.brycks-card{display:flex;flex-direction:column;border-radius:var(--brycks-radius-lg);transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out}.brycks-card--elevated{background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-muted);box-shadow:var(--brycks-shadow-md)}.brycks-card--outline{background-color:var(--brycks-background-default);border:1px solid var(--brycks-border-default);box-shadow:none}.brycks-card--filled{background-color:var(--brycks-background-muted);border:1px solid transparent;box-shadow:none}.brycks-card--ghost{background-color:transparent;border:1px solid transparent;box-shadow:none}.brycks-card--padding-none{padding:0}.brycks-card--padding-sm{padding:12px}.brycks-card--padding-md{padding:16px}.brycks-card--padding-lg{padding:24px}.brycks-card--padding-xl{padding:32px}.brycks-card--interactive{cursor:pointer}.brycks-card--interactive:hover{border-color:var(--brycks-border-strong)}.brycks-card--interactive:active{transform:scale(.99)}.brycks-card--interactive:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-card--selected{border-color:var(--brycks-primary-default)}.brycks-card--selected.brycks-card--elevated{box-shadow:0 0 0 2px var(--brycks-primary-default),var(--brycks-shadow-md)}.brycks-card--selected.brycks-card--elevated:hover{box-shadow:0 0 0 2px var(--brycks-primary-default),var(--brycks-shadow-lg)}.brycks-card--selected.brycks-card--outline,.brycks-card--selected.brycks-card--filled,.brycks-card--selected.brycks-card--ghost{border-width:2px}.brycks-card__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.brycks-card__header--divider{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--brycks-border-muted)}.brycks-card__body{flex:1}.brycks-card__footer{display:flex;align-items:center;gap:16px;margin-top:12px}.brycks-card__footer--divider{padding-top:16px;margin-top:16px;border-top:1px solid var(--brycks-border-muted)}.brycks-card__footer--left{justify-content:flex-start}.brycks-card__footer--center{justify-content:center}.brycks-card__footer--right{justify-content:flex-end}.brycks-card__footer--between{justify-content:space-between}.brycks-dropdown{display:inline-block}.brycks-dropdown__menu{background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);padding:4px;z-index:var(--brycks-z-dropdown);outline:none;animation:brycks-dropdown-in .15s ease-out}@keyframes brycks-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.brycks-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-default);background-color:transparent;border-radius:var(--brycks-radius-md);cursor:pointer;outline:none;transition:background-color .1s ease-out;border:none;width:100%;text-align:left}.brycks-dropdown-item:hover,.brycks-dropdown-item:focus{background-color:var(--brycks-background-muted)}.brycks-dropdown-item--disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-dropdown-item--disabled:hover,.brycks-dropdown-item--disabled:focus{background-color:transparent}.brycks-dropdown-item--destructive{color:var(--brycks-error-default)}.brycks-dropdown-item--destructive:hover,.brycks-dropdown-item--destructive:focus{background-color:var(--brycks-error-muted)}.brycks-dropdown-item__icon{flex-shrink:0;width:16px;height:16px;color:var(--brycks-foreground-muted)}.brycks-dropdown-item:hover .brycks-dropdown-item__icon,.brycks-dropdown-item:focus .brycks-dropdown-item__icon{color:var(--brycks-foreground-default)}.brycks-dropdown-item--destructive .brycks-dropdown-item__icon{color:var(--brycks-error-default)}.brycks-dropdown-item--disabled .brycks-dropdown-item__icon{color:var(--brycks-foreground-disabled)}.brycks-dropdown-item__label{flex:1}.brycks-dropdown-item__shortcut{margin-left:auto;font-size:var(--brycks-fs-body-xs);color:var(--brycks-foreground-muted);font-family:var(--brycks-font-mono)}.brycks-dropdown-divider{height:1px;background-color:var(--brycks-border-muted);margin:4px 0}.brycks-dropdown-label{padding:8px 12px 4px;font-size:var(--brycks-fs-body-xs);font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.05em}.brycks-dropdown-submenu-trigger{display:flex;align-items:center;justify-content:space-between}.brycks-dropdown-submenu-trigger:after{content:"";width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;margin-left:8px}.brycks-menu-item:focus-visible,.brycks-pagination button:focus-visible,.brycks-accordion-trigger:focus-visible,.brycks-table-header--sortable button:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-modal-overlay{position:fixed;inset:0;z-index:var(--brycks-z-modal);display:flex;align-items:center;justify-content:center;padding:24px;background-color:var(--brycks-background-overlay);animation:brycks-fade-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-modal{position:relative;width:100%;max-height:85vh;background-color:var(--brycks-background-elevated);border-radius:var(--brycks-radius-xl);box-shadow:var(--brycks-shadow-2xl);display:flex;flex-direction:column;overflow:hidden;animation:brycks-scale-in var(--brycks-duration-normal) var(--brycks-ease-out);outline:none}.brycks-modal--sm{max-width:400px}.brycks-modal--md{max-width:500px}.brycks-modal--lg{max-width:640px}.brycks-modal--xl{max-width:800px}.brycks-modal--2xl{max-width:1200px}.brycks-modal--full{max-width:calc(100vw - 48px);max-height:calc(100vh - 48px)}.brycks-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--brycks-border-muted)}.brycks-modal-title-container{display:flex;flex-direction:column;gap:4px}.brycks-modal-title{font-size:18px;font-weight:600;color:var(--brycks-foreground-default);margin:0;line-height:1.3}.brycks-modal-description{font-size:14px;color:var(--brycks-foreground-muted);margin:0}.brycks-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--brycks-radius-md);color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;transition:all var(--brycks-duration-fast) var(--brycks-ease-out);margin-left:12px;flex-shrink:0}.brycks-modal-close:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-modal-content{flex:1;overflow:auto;padding:24px}.brycks-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--brycks-border-muted)}.brycks-table-container{position:relative;width:100%;overflow:auto}.brycks-table{width:100%;border-collapse:collapse;border-spacing:0;font-variant-numeric:tabular-nums;transition:opacity .15s var(--brycks-ease-out)}.brycks-table--bordered{border-collapse:separate}.brycks-table--sm{font-size:13px}.brycks-table--md{font-size:14px}.brycks-table--lg{font-size:15px}.brycks-table-head{background-color:var(--brycks-background-muted)}.brycks-table-head--sticky{position:sticky;top:0;z-index:1}.brycks-table-row{background-color:transparent;transition:background-color .15s var(--brycks-ease-out)}.brycks-table:not(.brycks-table--bordered) .brycks-table-row{border-bottom:1px solid var(--brycks-border-muted)}.brycks-table-row--clickable{cursor:pointer}.brycks-table-row--clickable:not(.brycks-table-row--selected):hover{background-color:var(--brycks-background-muted)}.brycks-table-row--selected{background-color:var(--brycks-primary-muted)}.brycks-table-header{font-weight:600;color:var(--brycks-foreground-muted);white-space:nowrap;transition:color .15s var(--brycks-ease-out)}.brycks-table--sm .brycks-table-header{padding:8px 12px}.brycks-table--md .brycks-table-header{padding:12px 16px}.brycks-table--lg .brycks-table-header{padding:14px 20px}.brycks-table-header__content{display:flex;align-items:center;gap:6px}.brycks-table-header__sort{width:100%;padding:0;background:transparent;border:none;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;user-select:none}.brycks-table-header__sort:hover{color:var(--brycks-foreground-default)}.brycks-table-cell{color:var(--brycks-foreground-default);vertical-align:middle}.brycks-table--sm .brycks-table-cell{padding:8px 12px}.brycks-table--md .brycks-table-cell{padding:12px 16px}.brycks-table--lg .brycks-table-cell{padding:16px 20px}.brycks-table--bordered .brycks-table-cell{border:1px solid var(--brycks-border-muted)}.brycks-table-cell--truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-table-foot{background-color:var(--brycks-background-muted);font-weight:500}.brycks-table-caption{padding:12px 16px;font-size:13px;color:var(--brycks-foreground-muted);text-align:left}.brycks-toast{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid transparent;border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);max-width:400px;animation:brycks-toast-in .2s ease-out}.brycks-toast--exiting{animation:brycks-toast-out .2s ease-in forwards}@keyframes brycks-toast-in{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes brycks-toast-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.95)}}.brycks-toast--info{background-color:var(--brycks-info-muted);border-color:var(--brycks-info-soft-hover)}.brycks-toast--info .brycks-toast__icon{color:var(--brycks-info-default)}.brycks-toast--success{background-color:var(--brycks-success-muted);border-color:var(--brycks-success-soft-hover)}.brycks-toast--success .brycks-toast__icon{color:var(--brycks-success-default)}.brycks-toast--warning{background-color:var(--brycks-warning-muted);border-color:var(--brycks-warning-soft-hover)}.brycks-toast--warning .brycks-toast__icon{color:var(--brycks-warning-default)}.brycks-toast--error{background-color:var(--brycks-error-muted);border-color:var(--brycks-error-soft-hover)}.brycks-toast--error .brycks-toast__icon{color:var(--brycks-error-default)}.brycks-toast__icon{flex-shrink:0;margin-top:2px}.brycks-toast__content{flex:1;display:flex;flex-direction:column;gap:4px}.brycks-toast__title{font-size:14px;font-weight:600;color:var(--brycks-foreground-default);line-height:1.4}.brycks-toast__description{font-size:13px;color:var(--brycks-foreground-muted);line-height:1.4}.brycks-toast__action{margin-top:8px}.brycks-toast__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;transition:all .15s ease-out;flex-shrink:0;margin-left:auto}.brycks-toast__close:hover{background-color:var(--brycks-background-muted)}.brycks-toast-container{position:fixed;z-index:var(--brycks-z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.brycks-toast-wrapper{pointer-events:auto}.brycks-drawer-overlay{position:fixed;inset:0;z-index:var(--brycks-z-drawer);display:flex;background-color:var(--brycks-background-overlay);animation:brycks-drawer-overlay-in .2s ease-out}.brycks-drawer-overlay--transparent{background-color:transparent}@keyframes brycks-drawer-overlay-in{0%{opacity:0}to{opacity:1}}.brycks-drawer{position:absolute;background-color:var(--brycks-background-elevated);box-shadow:var(--brycks-shadow-2xl);display:flex;flex-direction:column;overflow:hidden;outline:none}.brycks-drawer--left,.brycks-drawer--right{top:0;bottom:0;max-width:100vw}.brycks-drawer--left{left:0;animation:brycks-drawer-left-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--right{right:0;animation:brycks-drawer-right-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--top,.brycks-drawer--bottom{left:0;right:0;max-height:100vh}.brycks-drawer--top{top:0;animation:brycks-drawer-top-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--bottom{bottom:0;animation:brycks-drawer-bottom-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--left.brycks-drawer--sm,.brycks-drawer--right.brycks-drawer--sm{width:320px}.brycks-drawer--left.brycks-drawer--md,.brycks-drawer--right.brycks-drawer--md{width:400px}.brycks-drawer--left.brycks-drawer--lg,.brycks-drawer--right.brycks-drawer--lg{width:560px}.brycks-drawer--left.brycks-drawer--xl,.brycks-drawer--right.brycks-drawer--xl{width:720px}.brycks-drawer--left.brycks-drawer--full,.brycks-drawer--right.brycks-drawer--full{width:100%}.brycks-drawer--top.brycks-drawer--sm,.brycks-drawer--bottom.brycks-drawer--sm{height:320px}.brycks-drawer--top.brycks-drawer--md,.brycks-drawer--bottom.brycks-drawer--md{height:400px}.brycks-drawer--top.brycks-drawer--lg,.brycks-drawer--bottom.brycks-drawer--lg{height:560px}.brycks-drawer--top.brycks-drawer--xl,.brycks-drawer--bottom.brycks-drawer--xl{height:720px}.brycks-drawer--top.brycks-drawer--full,.brycks-drawer--bottom.brycks-drawer--full{height:100%}@keyframes brycks-drawer-left-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes brycks-drawer-right-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes brycks-drawer-top-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes brycks-drawer-bottom-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.brycks-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--brycks-border-muted);flex-shrink:0}.brycks-drawer-title{font-size:18px;font-weight:600;color:var(--brycks-foreground-default);margin:0}.brycks-drawer-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--brycks-radius-md);color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;transition:all .15s ease-out}.brycks-drawer-close:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-drawer-content{flex:1;overflow:auto;padding:20px}.brycks-menu{display:flex;flex-direction:column;gap:2px;padding:8px}.brycks-menu-item{display:flex;align-items:center;gap:10px;width:100%;font-weight:500;color:var(--brycks-foreground-default);background-color:transparent;border:none;border-radius:var(--brycks-radius-md);cursor:pointer;transition:all .15s var(--brycks-ease-out);text-align:left;justify-content:flex-start}.brycks-menu--sm .brycks-menu-item{min-height:32px;padding:0 10px;font-size:13px}.brycks-menu--md .brycks-menu-item{min-height:40px;padding:0 12px;font-size:14px}.brycks-menu--lg .brycks-menu-item{min-height:48px;padding:0 14px;font-size:16px}.brycks-menu--collapsed .brycks-menu-item{justify-content:center}.brycks-menu--collapsed.brycks-menu--sm .brycks-menu-item{padding:10px}.brycks-menu--collapsed.brycks-menu--md .brycks-menu-item{padding:12px}.brycks-menu--collapsed.brycks-menu--lg .brycks-menu-item{padding:14px}.brycks-menu-item--active{font-weight:600;color:var(--brycks-primary-default);background-color:var(--brycks-primary-muted)}.brycks-menu-item:not(:disabled):not(.brycks-menu-item--active):hover{background-color:var(--brycks-background-muted)}.brycks-menu-item:disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-menu-item__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.brycks-menu--sm .brycks-menu-item__icon{width:16px;height:16px}.brycks-menu--md .brycks-menu-item__icon{width:18px;height:18px}.brycks-menu--lg .brycks-menu-item__icon{width:20px;height:20px}.brycks-menu-item__label{flex:1}.brycks-menu-item__badge{margin-left:auto}.brycks-menu-group{display:flex;flex-direction:column;gap:2px}.brycks-menu-group__label{padding:12px 12px 6px;font-size:11px;font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.05em}.brycks-menu-divider{height:1px;background-color:var(--brycks-border-muted);margin:8px 0}.brycks-pagination{display:flex;align-items:center}.brycks-pagination--sm{gap:4px}.brycks-pagination--md{gap:6px}.brycks-pagination--lg{gap:8px}.brycks-pagination__button{display:inline-flex;align-items:center;justify-content:center;font-weight:500;color:var(--brycks-foreground-default);background-color:transparent;border:none;border-radius:var(--brycks-radius-md);cursor:pointer;transition:all .15s var(--brycks-ease-out)}.brycks-pagination--sm .brycks-pagination__button{min-width:28px;height:28px;padding:0 8px;font-size:12px}.brycks-pagination--md .brycks-pagination__button{min-width:36px;height:36px;padding:0 10px;font-size:14px}.brycks-pagination--lg .brycks-pagination__button{min-width:44px;height:44px;padding:0 12px;font-size:16px}.brycks-pagination__button--active{font-weight:600;color:var(--brycks-primary-default);background-color:var(--brycks-primary-muted)}.brycks-pagination__button:not(:disabled):not(.brycks-pagination__button--active):hover{background-color:var(--brycks-background-muted)}.brycks-pagination__button:disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-pagination__ellipsis{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted)}.brycks-pagination--sm .brycks-pagination__ellipsis{min-width:28px;height:28px;font-size:12px}.brycks-pagination--md .brycks-pagination__ellipsis{min-width:36px;height:36px;font-size:14px}.brycks-pagination--lg .brycks-pagination__ellipsis{min-width:44px;height:44px;font-size:16px}.brycks-pagination__info{color:var(--brycks-foreground-muted)}.brycks-pagination--sm .brycks-pagination__info{font-size:12px;padding:0 4px}.brycks-pagination--md .brycks-pagination__info{font-size:14px;padding:0 6px}.brycks-pagination--lg .brycks-pagination__info{font-size:16px;padding:0 8px}.brycks-combobox{position:relative;display:inline-flex;width:100%}.brycks-combobox__wrapper{position:relative;display:flex;align-items:center;width:100%;background-color:var(--brycks-background-default);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-md);transition:all .1s var(--brycks-ease-out);cursor:text}.brycks-combobox--sm .brycks-combobox__wrapper{height:32px}.brycks-combobox--md .brycks-combobox__wrapper{height:40px}.brycks-combobox--lg .brycks-combobox__wrapper{height:48px}.brycks-combobox__wrapper:focus-within{border-color:var(--brycks-primary-default);box-shadow:var(--brycks-focus-ring)}.brycks-combobox__wrapper--invalid{border-color:var(--brycks-error-default)}.brycks-combobox__wrapper--disabled{background-color:var(--brycks-background-muted);cursor:not-allowed}.brycks-combobox__input{flex:1;height:100%;padding-right:40px;color:var(--brycks-foreground-default);background-color:transparent;border:none;outline:none;cursor:text}.brycks-combobox--sm .brycks-combobox__input{padding-left:12px;font-size:13px}.brycks-combobox--md .brycks-combobox__input{padding-left:16px;font-size:14px}.brycks-combobox--lg .brycks-combobox__input{padding-left:20px;font-size:16px}.brycks-combobox__input:disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-combobox__icons{position:absolute;display:flex;align-items:center;gap:4px;pointer-events:none}.brycks-combobox--sm .brycks-combobox__icons{right:12px}.brycks-combobox--md .brycks-combobox__icons{right:16px}.brycks-combobox--lg .brycks-combobox__icons{right:20px}.brycks-combobox__clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;border-radius:var(--brycks-radius-sm);transition:all .1s var(--brycks-ease-out);pointer-events:auto}.brycks-combobox__clear:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-combobox__chevron{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);transform:rotate(0);transition:transform .1s var(--brycks-ease-out)}.brycks-combobox__chevron--open{transform:rotate(180deg)}.brycks-combobox__dropdown{position:absolute;max-height:300px;overflow-y:auto;background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);z-index:var(--brycks-z-dropdown);padding:4px;animation:brycks-dropdown-in .15s var(--brycks-ease-out)}.brycks-combobox__option{display:flex;align-items:center;gap:8px;padding:8px 12px;color:var(--brycks-foreground-default);background-color:transparent;border-radius:var(--brycks-radius-md);cursor:pointer;transition:background-color .1s var(--brycks-ease-out)}.brycks-combobox--sm .brycks-combobox__option{font-size:13px}.brycks-combobox--md .brycks-combobox__option{font-size:14px}.brycks-combobox--lg .brycks-combobox__option{font-size:16px}.brycks-combobox__option--selected{background-color:var(--brycks-primary-muted)}.brycks-combobox__option--active{background-color:var(--brycks-background-muted)}.brycks-combobox__option--disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-combobox__option--create{width:100%;border:none}.brycks-combobox__option-icon{flex-shrink:0}.brycks-combobox__option-body{flex:1;min-width:0}.brycks-combobox__option-label{font-weight:400}.brycks-combobox__option--selected .brycks-combobox__option-label{font-weight:500}.brycks-combobox__option-description{font-size:12px;color:var(--brycks-foreground-muted)}.brycks-combobox__option-check{flex-shrink:0}.brycks-combobox__empty{padding:16px 12px;color:var(--brycks-foreground-muted);text-align:center}.brycks-combobox--sm .brycks-combobox__empty{font-size:13px}.brycks-combobox--md .brycks-combobox__empty{font-size:14px}.brycks-combobox--lg .brycks-combobox__empty{font-size:16px}.brycks-combobox__loading{display:inline-flex;align-items:center;justify-content:center;gap:8px}.brycks-input-wrapper{display:flex;align-items:center;width:100%;position:relative;transition:all .2s var(--brycks-ease-out)}.brycks-input-wrapper--sm{height:32px;border-radius:var(--brycks-radius-md)}.brycks-input-wrapper--md{height:40px;border-radius:var(--brycks-radius-default)}.brycks-input-wrapper--lg{height:48px;border-radius:var(--brycks-radius-lg)}.brycks-input-wrapper--outline{background-color:var(--brycks-background-app);border:1px solid var(--brycks-border-default)}.brycks-input-wrapper--outline:focus-within{border-color:var(--brycks-border-focus);box-shadow:var(--brycks-focus-ring)}.brycks-input-wrapper--filled{background-color:var(--brycks-background-muted);border:1px solid transparent}.brycks-input-wrapper--filled:focus-within{border-color:var(--brycks-border-focus)}.brycks-input-wrapper--flushed{background-color:transparent;border-radius:0;border-bottom:2px solid var(--brycks-border-default)}.brycks-input-wrapper--flushed.brycks-input-wrapper--sm,.brycks-input-wrapper--flushed.brycks-input-wrapper--md,.brycks-input-wrapper--flushed.brycks-input-wrapper--lg{border-radius:0}.brycks-input-wrapper--flushed:focus-within{border-bottom-color:var(--brycks-border-focus)}.brycks-input-wrapper--invalid.brycks-input-wrapper--outline,.brycks-input-wrapper--invalid.brycks-input-wrapper--filled{border-color:var(--brycks-error-default)}.brycks-input-wrapper--invalid.brycks-input-wrapper--flushed{border-bottom-color:var(--brycks-error-default)}.brycks-input-wrapper--invalid.brycks-input-wrapper--outline:focus-within{border-color:var(--brycks-error-default);box-shadow:0 0 0 3px var(--brycks-focus-ring-error)}.brycks-input-wrapper--invalid.brycks-input-wrapper--filled:focus-within{border-color:var(--brycks-error-default)}.brycks-input-wrapper--invalid.brycks-input-wrapper--flushed:focus-within{border-bottom-color:var(--brycks-error-default)}.brycks-input-wrapper--disabled{opacity:.5;cursor:not-allowed}.brycks-input{width:100%;height:100%;font-family:var(--brycks-font-sans);color:var(--brycks-foreground-default);background-color:transparent;border:none;outline:none;border-radius:inherit;cursor:text;transition:all .2s var(--brycks-ease-out)}.brycks-input-wrapper--sm .brycks-input{font-size:12px}.brycks-input-wrapper--md .brycks-input{font-size:14px}.brycks-input-wrapper--lg .brycks-input{font-size:15px}.brycks-input-wrapper--disabled .brycks-input{cursor:not-allowed}.brycks-input-left-element,.brycks-input-right-element{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);flex-shrink:0}.brycks-input-wrapper--sm .brycks-input-left-element{padding-left:12px}.brycks-input-wrapper--md .brycks-input-left-element{padding-left:16px}.brycks-input-wrapper--lg .brycks-input-left-element{padding-left:20px}.brycks-input-wrapper--sm .brycks-input-right-element{padding-right:12px}.brycks-input-wrapper--md .brycks-input-right-element{padding-right:16px}.brycks-input-wrapper--lg .brycks-input-right-element{padding-right:20px}.brycks-textarea-wrapper{position:relative;width:100%}.brycks-textarea{width:100%;font-family:var(--brycks-font-sans);color:var(--brycks-foreground-default);border-radius:var(--brycks-radius-default);outline:none;transition:all .2s ease-out;box-shadow:none}.brycks-textarea-wrapper--sm .brycks-textarea{padding:10px;font-size:13px;line-height:1.5}.brycks-textarea-wrapper--md .brycks-textarea{padding:12px;font-size:14px;line-height:1.5}.brycks-textarea-wrapper--lg .brycks-textarea{padding:14px;font-size:15px;line-height:1.5}.brycks-textarea-wrapper--outline .brycks-textarea{background-color:var(--brycks-background-app);border:1px solid var(--brycks-border-default)}.brycks-textarea-wrapper--filled .brycks-textarea{background-color:var(--brycks-background-muted);border:1px solid transparent}.brycks-textarea-wrapper--outline .brycks-textarea:focus,.brycks-textarea-wrapper--filled .brycks-textarea:focus{border-color:var(--brycks-border-focus);box-shadow:0 0 0 3px #5578f426}.brycks-textarea-wrapper--invalid .brycks-textarea{border-color:var(--brycks-error-default)}.brycks-textarea-wrapper--invalid .brycks-textarea:focus{border-color:var(--brycks-error-default);box-shadow:0 0 0 3px #ef444426}.brycks-textarea-wrapper--disabled .brycks-textarea{opacity:.5;cursor:not-allowed;resize:none}.brycks-textarea-count{position:absolute;bottom:8px;right:12px;font-size:11px;color:var(--brycks-foreground-muted);pointer-events:none;transition:color .15s ease-out}.brycks-textarea-count--limit{color:var(--brycks-error-default)}.brycks-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.brycks-list--separated{gap:8px}.brycks-list--bordered{border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);overflow:hidden}.brycks-list-item{display:flex;align-items:center;background-color:transparent;opacity:1;transition:background-color .15s var(--brycks-ease-out)}.brycks-list--sm .brycks-list-item{gap:10px;padding:8px 12px;min-height:40px}.brycks-list--md .brycks-list-item{gap:12px;padding:12px 16px;min-height:52px}.brycks-list--lg .brycks-list-item{gap:14px;padding:16px 20px;min-height:64px}.brycks-list--default .brycks-list-item,.brycks-list--bordered .brycks-list-item{border-bottom:1px solid var(--brycks-border-muted)}.brycks-list--separated .brycks-list-item{border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg)}.brycks-list-item--clickable{cursor:pointer}.brycks-list-item--clickable:not(.brycks-list-item--disabled):not(.brycks-list-item--selected):hover{background-color:var(--brycks-background-muted)}.brycks-list-item--selected{background-color:var(--brycks-primary-muted)}.brycks-list-item--disabled{cursor:not-allowed;opacity:.5}.brycks-list-item__element{display:flex;align-items:center;justify-content:center;flex-shrink:0}.brycks-list-item__content{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.brycks-list-item__primary{font-weight:500;color:var(--brycks-foreground-default);line-height:1.4}.brycks-list-item__secondary{color:var(--brycks-foreground-muted);line-height:1.4}.brycks-list--sm .brycks-list-item__primary{font-size:13px}.brycks-list--md .brycks-list-item__primary{font-size:14px}.brycks-list--lg .brycks-list-item__primary{font-size:16px}.brycks-list--sm .brycks-list-item__secondary{font-size:12px}.brycks-list--md .brycks-list-item__secondary{font-size:13px}.brycks-list--lg .brycks-list-item__secondary{font-size:14px}.brycks-list-divider{height:1px;background-color:var(--brycks-border-muted);margin:8px 0}.brycks-list-header{padding:12px 16px 8px;font-size:11px;font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.05em}.brycks-treeview{list-style:none;margin:0;padding:4px;outline:none}.brycks-treeview__group{list-style:none;margin:0;padding:0}.brycks-treeview__item{display:flex;align-items:center;gap:6px;color:var(--brycks-foreground-default);background-color:transparent;border-radius:var(--brycks-radius-md);cursor:pointer;user-select:none;transition:background-color .1s var(--brycks-ease-out);position:relative}.brycks-treeview--sm .brycks-treeview__item{padding-top:4px;padding-bottom:4px;padding-right:8px;font-size:12px}.brycks-treeview--md .brycks-treeview__item{padding-top:6px;padding-bottom:6px;padding-right:8px;font-size:14px}.brycks-treeview--lg .brycks-treeview__item{padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:16px}.brycks-treeview__item--selected{background-color:var(--brycks-primary-muted)}.brycks-treeview__item--disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-treeview__item:not(.brycks-treeview__item--disabled):not(.brycks-treeview__item--selected):hover{background-color:var(--brycks-background-muted)}.brycks-treeview__toggle{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);cursor:pointer;flex-shrink:0}.brycks-treeview__icon{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);flex-shrink:0}.brycks-treeview__item--selected .brycks-treeview__icon{color:var(--brycks-primary-default)}.brycks-treeview--sm .brycks-treeview__toggle,.brycks-treeview--sm .brycks-treeview__icon{width:12px;height:12px}.brycks-treeview--md .brycks-treeview__toggle,.brycks-treeview--md .brycks-treeview__icon{width:16px;height:16px}.brycks-treeview--lg .brycks-treeview__toggle,.brycks-treeview--lg .brycks-treeview__icon{width:20px;height:20px}.brycks-treeview__label{flex:1}.brycks-treeview__line{position:absolute;top:0;bottom:0;width:1px;background-color:var(--brycks-border-default)}.brycks-pie-chart{display:flex;align-items:center;gap:var(--brycks-space-5);min-width:0}.brycks-pie-chart--legend-bottom{flex-direction:column;align-items:center}.brycks-pie-chart--legend-none{justify-content:center}.brycks-pie-chart--empty{justify-content:center;padding:var(--brycks-space-6)}.brycks-pie-chart__empty{font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-muted)}.brycks-pie-chart__graphic{position:relative;flex-shrink:0}.brycks-pie-chart__svg{width:100%;height:100%;display:block;overflow:visible}.brycks-pie-chart__slice{stroke:var(--brycks-background-elevated);stroke-width:1.5;stroke-linejoin:round}.brycks-pie-chart__hole{fill:var(--brycks-background-elevated)}.brycks-pie-chart__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none;text-align:center}.brycks-pie-chart__center-value{font-size:var(--brycks-fs-h6);font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--brycks-foreground-default);font-variant-numeric:tabular-nums}.brycks-pie-chart__center-label{font-size:var(--brycks-fs-ui-xs);font-weight:500;text-transform:uppercase;letter-spacing:.02em;color:var(--brycks-foreground-muted)}.brycks-pie-chart__legend{display:flex;flex-direction:column;gap:var(--brycks-space-2);margin:0;padding:0;list-style:none;min-width:0;flex:1}.brycks-pie-chart--legend-bottom .brycks-pie-chart__legend{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--brycks-space-2) var(--brycks-space-4);flex:0 1 auto}.brycks-pie-chart__legend-item{display:flex;align-items:center;gap:var(--brycks-space-2);min-width:0;font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-muted)}.brycks-pie-chart__legend-dot{width:8px;height:8px;border-radius:var(--brycks-radius-full);flex-shrink:0}.brycks-pie-chart__legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-pie-chart__legend-value{font-weight:600;color:var(--brycks-foreground-default);font-variant-numeric:tabular-nums;flex-shrink:0}.brycks-pie-chart__legend-share{font-size:var(--brycks-fs-ui-xs);color:var(--brycks-foreground-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:4ch;text-align:right}@media (forced-colors: active){.brycks-pie-chart__slice{stroke:CanvasText}}
1
+ *,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}*{margin:0;padding:0}html,body{height:100%}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}h1,h2,h3,h4,h5,h6{text-wrap:balance}p{text-wrap:pretty}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--brycks-border-focus, #5578f4);outline-offset:2px}:focus:not(:focus-visible){outline:none}button{background:none;border:none;cursor:pointer}a{text-decoration:none}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}[disabled]{cursor:not-allowed}:root{--brycks-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brycks-font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--brycks-font-scale-body: 1;--brycks-font-scale-headings: 1;--brycks-font-scale-ui: 1;--brycks-fs-base-xs: 11px;--brycks-fs-base-sm: 12px;--brycks-fs-base-base: 14px;--brycks-fs-base-md: 16px;--brycks-fs-base-lg: 18px;--brycks-fs-base-xl: 20px;--brycks-fs-base-2xl: 24px;--brycks-fs-base-3xl: 28px;--brycks-fs-base-4xl: 32px;--brycks-fs-base-5xl: 40px;--brycks-fs-base-6xl: 48px;--brycks-fs-base-7xl: 60px;--brycks-fs-base-8xl: 72px;--brycks-fs-base-9xl: 96px;--brycks-fs-body-xs: calc(var(--brycks-fs-base-xs) * var(--brycks-font-scale-body));--brycks-fs-body-sm: calc(var(--brycks-fs-base-sm) * var(--brycks-font-scale-body));--brycks-fs-body-base: calc(var(--brycks-fs-base-base) * var(--brycks-font-scale-body));--brycks-fs-body-md: calc(var(--brycks-fs-base-md) * var(--brycks-font-scale-body));--brycks-fs-body-lg: calc(var(--brycks-fs-base-lg) * var(--brycks-font-scale-body));--brycks-fs-h6: calc(var(--brycks-fs-base-xl) * var(--brycks-font-scale-headings));--brycks-fs-h5: calc(var(--brycks-fs-base-2xl) * var(--brycks-font-scale-headings));--brycks-fs-h4: calc(var(--brycks-fs-base-3xl) * var(--brycks-font-scale-headings));--brycks-fs-h3: calc(var(--brycks-fs-base-4xl) * var(--brycks-font-scale-headings));--brycks-fs-h2: calc(var(--brycks-fs-base-5xl) * var(--brycks-font-scale-headings));--brycks-fs-h1: calc(var(--brycks-fs-base-6xl) * var(--brycks-font-scale-headings));--brycks-fs-display-sm: calc(var(--brycks-fs-base-7xl) * var(--brycks-font-scale-headings));--brycks-fs-display-md: calc(var(--brycks-fs-base-8xl) * var(--brycks-font-scale-headings));--brycks-fs-display-lg: calc(var(--brycks-fs-base-9xl) * var(--brycks-font-scale-headings));--brycks-fs-ui-xs: calc(var(--brycks-fs-base-xs) * var(--brycks-font-scale-ui));--brycks-fs-ui-sm: calc(var(--brycks-fs-base-sm) * var(--brycks-font-scale-ui));--brycks-fs-ui-md: calc(var(--brycks-fs-base-base) * var(--brycks-font-scale-ui));--brycks-fs-ui-lg: calc(15px * var(--brycks-font-scale-ui));--brycks-fs-ui-xl: calc(var(--brycks-fs-base-md) * var(--brycks-font-scale-ui));--brycks-font-size-xs: var(--brycks-fs-body-sm);--brycks-font-size-sm: var(--brycks-fs-body-base);--brycks-font-size-md: var(--brycks-fs-body-md);--brycks-font-size-lg: var(--brycks-fs-body-lg);--brycks-font-size-xl: var(--brycks-fs-h6);--brycks-font-size-2xl: var(--brycks-fs-h5);--brycks-font-size-3xl: var(--brycks-fs-h4);--brycks-font-size-4xl: var(--brycks-fs-h3);--brycks-space-0: 0;--brycks-space-px: 1px;--brycks-space-0-5: 2px;--brycks-space-1: 4px;--brycks-space-1-5: 6px;--brycks-space-2: 8px;--brycks-space-2-5: 10px;--brycks-space-3: 12px;--brycks-space-3-5: 14px;--brycks-space-4: 16px;--brycks-space-5: 20px;--brycks-space-6: 24px;--brycks-space-7: 28px;--brycks-space-8: 32px;--brycks-space-9: 36px;--brycks-space-10: 40px;--brycks-space-12: 48px;--brycks-space-14: 56px;--brycks-space-16: 64px;--brycks-space-20: 80px;--brycks-space-24: 96px;--brycks-spacing-1: var(--brycks-space-1);--brycks-spacing-2: var(--brycks-space-2);--brycks-spacing-2-5: var(--brycks-space-2-5);--brycks-spacing-3: var(--brycks-space-3);--brycks-spacing-4: var(--brycks-space-4);--brycks-spacing-5: var(--brycks-space-5);--brycks-spacing-6: var(--brycks-space-6);--brycks-spacing-8: var(--brycks-space-8);--brycks-radius-none: 0;--brycks-radius-xs: 2px;--brycks-radius-sm: 4px;--brycks-radius-md: 6px;--brycks-radius-default: 8px;--brycks-radius-lg: 10px;--brycks-radius-xl: 12px;--brycks-radius-2xl: 16px;--brycks-radius-3xl: 20px;--brycks-radius-4xl: 24px;--brycks-radius-full: 9999px;--brycks-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03), 0 1px 3px 0 rgba(0, 0, 0, .06);--brycks-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 2px 6px 0 rgba(0, 0, 0, .06), 0 0 1px 0 rgba(0, 0, 0, .04);--brycks-shadow-md: 0 2px 4px -1px rgba(0, 0, 0, .04), 0 4px 8px -1px rgba(0, 0, 0, .06), 0 8px 16px -2px rgba(0, 0, 0, .06);--brycks-shadow-lg: 0 4px 6px -2px rgba(0, 0, 0, .03), 0 8px 16px -4px rgba(0, 0, 0, .08), 0 16px 32px -8px rgba(0, 0, 0, .08);--brycks-shadow-xl: 0 8px 16px -4px rgba(0, 0, 0, .04), 0 16px 32px -8px rgba(0, 0, 0, .08), 0 32px 64px -16px rgba(0, 0, 0, .12);--brycks-shadow-2xl: 0 12px 24px -6px rgba(0, 0, 0, .05), 0 24px 48px -12px rgba(0, 0, 0, .1), 0 48px 96px -24px rgba(0, 0, 0, .15);--brycks-z-base: 0;--brycks-z-docked: 10;--brycks-z-dropdown: 1000;--brycks-z-sticky: 1100;--brycks-z-banner: 1200;--brycks-z-overlay: 1300;--brycks-z-modal: 1400;--brycks-z-drawer: 1400;--brycks-z-popover: 1500;--brycks-z-toast: 1700;--brycks-z-tooltip: 1800;--brycks-duration-fast: .1s;--brycks-duration-normal: .2s;--brycks-duration-slow: .4s;--brycks-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--brycks-focus-ring-color: color-mix(in srgb, var(--brycks-border-focus) 35%, transparent);--brycks-focus-ring-error: color-mix(in srgb, var(--brycks-error-default) 35%, transparent);--brycks-focus-ring-success: color-mix(in srgb, var(--brycks-success-default) 35%, transparent);--brycks-focus-ring: 0 0 0 3px var(--brycks-focus-ring-color)}:root,[data-theme=light]{--brycks-background-app: #FFFFFF;--brycks-background-subtle: #FAFAFA;--brycks-background-muted: #F5F5F7;--brycks-background-elevated: #FFFFFF;--brycks-background-overlay: rgba(0, 0, 0, .4);--brycks-background-inverse: #1D1D1F;--brycks-background-default: #FAFAFA;--brycks-foreground-default: #1D1D1F;--brycks-foreground-muted: #636366;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #AEAEB2;--brycks-foreground-inverse: #FFFFFF;--brycks-foreground-link: #3B5CE9;--brycks-border-default: #E8E8ED;--brycks-border-muted: #F5F5F7;--brycks-border-strong: #D2D2D7;--brycks-border-focus: #5578F4;--brycks-primary-default: #3B5CE9;--brycks-primary-hover: #2D47D6;--brycks-primary-active: #2A3CAD;--brycks-primary-muted: #EEF4FF;--brycks-primary-soft-hover: #E0EBFF;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #F86545;--brycks-accent-hover: #E54A28;--brycks-accent-active: #C13A1D;--brycks-accent-muted: #FFF5F3;--brycks-accent-soft-hover: #FFE8E3;--brycks-accent-foreground: #FFFFFF;--brycks-success-default: #059669;--brycks-success-hover: #047857;--brycks-success-muted: #ECFDF5;--brycks-success-soft-hover: #D1FAE5;--brycks-success-foreground: #FFFFFF;--brycks-success-on-muted: #047857;--brycks-warning-default: #F59E0B;--brycks-warning-hover: #D97706;--brycks-warning-muted: #FFFBEB;--brycks-warning-soft-hover: #FEF3C7;--brycks-warning-foreground: #1D1D1F;--brycks-warning-on-muted: #92400E;--brycks-error-default: #DC2626;--brycks-error-hover: #B91C1C;--brycks-error-muted: #FEF2F2;--brycks-error-soft-hover: #FEE2E2;--brycks-error-foreground: #FFFFFF;--brycks-error-on-muted: #B91C1C;--brycks-info-default: #0891B2;--brycks-info-hover: #0E7490;--brycks-info-muted: #ECFEFF;--brycks-info-soft-hover: #CFFAFE;--brycks-info-foreground: #FFFFFF;--brycks-info-on-muted: #0E7490}[data-theme=dark]{--brycks-background-app: #000000;--brycks-background-subtle: #1D1D1F;--brycks-background-muted: #2C2C2E;--brycks-background-elevated: #1D1D1F;--brycks-background-overlay: rgba(0, 0, 0, .6);--brycks-background-inverse: #FFFFFF;--brycks-background-default: #1D1D1F;--brycks-foreground-default: #FFFFFF;--brycks-foreground-muted: #AEAEB2;--brycks-foreground-subtle: #8E8E93;--brycks-foreground-disabled: #636366;--brycks-foreground-inverse: #1D1D1F;--brycks-foreground-link: #7A9FFF;--brycks-border-default: #3A3A3C;--brycks-border-muted: #2C2C2E;--brycks-border-strong: #48484A;--brycks-border-focus: #7A9FFF;--brycks-primary-default: #5578F4;--brycks-primary-hover: #7A9FFF;--brycks-primary-active: #A4C1FF;--brycks-primary-muted: #1A2352;--brycks-primary-soft-hover: #283889;--brycks-primary-foreground: #FFFFFF;--brycks-accent-default: #FF8A71;--brycks-accent-hover: #FFB5A6;--brycks-accent-active: #FFD5CC;--brycks-accent-muted: #48140A;--brycks-accent-soft-hover: #842F1D;--brycks-accent-foreground: #000000;--brycks-success-default: #34D399;--brycks-success-hover: #6EE7B7;--brycks-success-muted: #022C22;--brycks-success-soft-hover: #064E3B;--brycks-success-foreground: #000000;--brycks-success-on-muted: #6EE7B7;--brycks-warning-default: #FBBF24;--brycks-warning-hover: #FCD34D;--brycks-warning-muted: #451A03;--brycks-warning-soft-hover: #78350F;--brycks-warning-foreground: #000000;--brycks-warning-on-muted: #FCD34D;--brycks-error-default: #F87171;--brycks-error-hover: #FCA5A5;--brycks-error-muted: #450A0A;--brycks-error-soft-hover: #7F1D1D;--brycks-error-foreground: #000000;--brycks-error-on-muted: #FCA5A5;--brycks-info-default: #22D3EE;--brycks-info-hover: #67E8F9;--brycks-info-muted: #083344;--brycks-info-soft-hover: #164E63;--brycks-info-foreground: #000000;--brycks-info-on-muted: #67E8F9}html{font-family:var(--brycks-font-sans);color-scheme:light dark}body{font-family:var(--brycks-font-sans);font-size:16px;line-height:1.5;color:var(--brycks-foreground-default);background-color:var(--brycks-background-app);transition:background-color var(--brycks-duration-normal) var(--brycks-ease-out),color var(--brycks-duration-normal) var(--brycks-ease-out)}::selection{background-color:var(--brycks-primary-muted);color:var(--brycks-foreground-default)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--brycks-border-default);border-radius:var(--brycks-radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:var(--brycks-border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--brycks-border-default) transparent}code,kbd,pre,samp{font-family:var(--brycks-font-mono)}.brycks-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-app-layout{display:flex;height:100vh;overflow:hidden;background-color:var(--brycks-background-subtle)}.brycks-app-layout__main{flex:1;display:flex;flex-direction:column;overflow:hidden}.brycks-app-layout__content{flex:1;overflow:auto;padding:var(--brycks-spacing-6)}.brycks-sidebar{width:240px;height:100vh;background-color:var(--brycks-background-elevated);border-right:1px solid var(--brycks-border-muted);display:flex;flex-direction:column;flex-shrink:0;will-change:width;contain:layout style}.brycks-sidebar--collapsed{width:72px}.brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-5);display:flex;align-items:center;gap:var(--brycks-spacing-3)}.brycks-sidebar--collapsed .brycks-sidebar__logo{padding:var(--brycks-spacing-4) var(--brycks-spacing-3);justify-content:center}.brycks-sidebar__logo-icon{width:32px;height:32px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:var(--brycks-font-size-sm);flex-shrink:0}.brycks-sidebar__logo-text{font-size:var(--brycks-font-size-lg);font-weight:600;color:var(--brycks-foreground-default)}.brycks-sidebar__nav{flex:1;padding:var(--brycks-spacing-2) var(--brycks-spacing-3);overflow-y:auto}.brycks-sidebar--collapsed .brycks-sidebar__nav{padding:var(--brycks-spacing-2)}.brycks-sidebar__footer{padding:var(--brycks-spacing-3);text-align:center}.brycks-sidebar--collapsed .brycks-sidebar__footer{padding:var(--brycks-spacing-3) var(--brycks-spacing-2)}.brycks-nav-item{display:flex;align-items:center;gap:var(--brycks-spacing-3);padding:var(--brycks-spacing-2-5) var(--brycks-spacing-3);border-radius:var(--brycks-radius-md);cursor:pointer;background-color:transparent;color:var(--brycks-foreground-default);transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out);border:none;width:100%;text-align:left;font-size:var(--brycks-font-size-sm)}.brycks-nav-item:hover{background-color:var(--brycks-background-muted)}.brycks-nav-item--active{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-nav-item--active:hover{background-color:var(--brycks-primary-muted)}.brycks-sidebar--collapsed .brycks-nav-item{padding:var(--brycks-spacing-3);justify-content:center}.brycks-nav-item__icon{width:20px;height:20px;flex-shrink:0;color:var(--brycks-foreground-muted)}.brycks-nav-item--active .brycks-nav-item__icon{color:var(--brycks-primary-default)}.brycks-nav-item__label{font-weight:400}.brycks-nav-item--active .brycks-nav-item__label{font-weight:500}.brycks-header{height:64px;background-color:var(--brycks-background-elevated);border-bottom:1px solid var(--brycks-border-muted);display:flex;align-items:center;justify-content:space-between;padding:0 var(--brycks-spacing-5);flex-shrink:0}.brycks-header__left,.brycks-header__right{display:flex;align-items:center}.brycks-header__left{gap:var(--brycks-spacing-4)}.brycks-header__right{gap:var(--brycks-spacing-2)}.brycks-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--brycks-radius-md);background-color:transparent;color:var(--brycks-foreground-muted);cursor:pointer;border:none;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-icon-btn:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-icon-btn:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-avatar{width:36px;height:36px;border-radius:var(--brycks-radius-full);background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-avatar:hover{transform:scale(1.05)}.brycks-avatar--xs{width:24px;height:24px;font-size:10px}.brycks-avatar--sm{width:32px;height:32px;font-size:12px}.brycks-avatar--md{width:36px;height:36px;font-size:14px}.brycks-avatar--lg{width:40px;height:40px;font-size:16px}.brycks-avatar--xl{width:48px;height:48px;font-size:18px}.brycks-avatar--2xl{width:64px;height:64px;font-size:24px}.brycks-page-header{margin-bottom:var(--brycks-spacing-6)}.brycks-stat-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center}.brycks-stat-card__icon--default{background-color:color-mix(in srgb,var(--brycks-foreground-muted) 10%,transparent);color:var(--brycks-foreground-muted)}.brycks-stat-card__icon--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-stat-card__icon--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-default)}.brycks-stat-card__icon--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-default)}.brycks-stat-card__icon--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-default)}.brycks-stat-card__trend{display:inline-flex;align-items:center;gap:var(--brycks-spacing-1);font-size:var(--brycks-font-size-xs);font-weight:500}.brycks-stat-card__trend--positive{color:var(--brycks-success-default)}.brycks-stat-card__trend--negative{color:var(--brycks-error-default)}.brycks-quick-action{padding:var(--brycks-spacing-4);border-radius:var(--brycks-radius-lg);background-color:var(--brycks-background-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out);text-align:center;border:none;width:100%}.brycks-quick-action:hover{background-color:var(--brycks-primary-muted)}.brycks-quick-action:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}.brycks-quick-action__icon{color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-2)}.brycks-quick-action:hover .brycks-quick-action__icon{color:var(--brycks-primary-default)}.brycks-search-input{position:relative;min-width:240px}.brycks-search-input__icon{position:absolute;left:var(--brycks-spacing-3);top:50%;transform:translateY(-50%);pointer-events:none;z-index:1;color:var(--brycks-foreground-muted);width:16px;height:16px}.brycks-search-input input{padding-left:36px}.brycks-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--brycks-spacing-6);background-color:var(--brycks-background-subtle)}.brycks-login-card{width:100%;max-width:400px}.brycks-login-logo{display:flex;align-items:center;justify-content:center;margin-bottom:var(--brycks-spacing-8)}.brycks-login-logo__icon{width:64px;height:64px;background-color:var(--brycks-primary-default);border-radius:var(--brycks-radius-xl);display:flex;align-items:center;justify-content:center;color:var(--brycks-primary-foreground);font-weight:700;font-size:28px}.brycks-login-footer{margin-top:var(--brycks-spacing-6);text-align:center}.brycks-user-info{padding:var(--brycks-spacing-2) var(--brycks-spacing-3)}.brycks-link{color:var(--brycks-primary-default);text-decoration:none;font-size:var(--brycks-font-size-sm);cursor:pointer;transition:color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-link:hover{color:var(--brycks-primary-hover);text-decoration:underline}.brycks-login-form__options{display:flex;justify-content:space-between;align-items:center}.brycks-dropdown-item__content{display:flex;align-items:center;gap:var(--brycks-spacing-2)}.brycks-vehicle-card{cursor:pointer;transition:transform var(--brycks-duration-fast) var(--brycks-ease-out),box-shadow var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-vehicle-card:hover{transform:translateY(-2px);box-shadow:var(--brycks-shadow-lg)}.brycks-vehicle-card__image{width:100%;aspect-ratio:16/10;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-md);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);margin-bottom:var(--brycks-spacing-3)}.brycks-vehicle-card__price{color:var(--brycks-primary-default)}.brycks-filter-select{min-width:160px}.brycks-page-card{cursor:pointer;transition:border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-page-card:hover{border-color:var(--brycks-primary-default)}.brycks-page-card__content{cursor:pointer}.brycks-page-card__icon{width:48px;height:48px;border-radius:var(--brycks-radius-lg);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brycks-section-item{padding:var(--brycks-spacing-3);background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:grab;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out),opacity var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-item:active{cursor:grabbing}.brycks-section-item--dragging{opacity:.5;background-color:var(--brycks-background-muted)}.brycks-section-item--drag-over{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-section-item__grip{cursor:grab;color:var(--brycks-foreground-muted)}.brycks-section-item__icon{width:40px;height:40px;border-radius:var(--brycks-radius-md);background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--brycks-fs-body-base);flex-shrink:0}.brycks-section-type-btn{padding:var(--brycks-spacing-4);background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-md);cursor:pointer;text-align:center;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),border-color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-section-type-btn:hover{background-color:var(--brycks-primary-muted);border-color:var(--brycks-primary-default)}.brycks-empty-zone{padding:var(--brycks-space-10);border:2px dashed var(--brycks-border-muted);border-radius:var(--brycks-radius-lg);display:flex;justify-content:center;align-items:center}.brycks-info-item{display:flex;flex-direction:column;gap:var(--brycks-spacing-1)}.brycks-image-container{width:100%;aspect-ratio:16/9;background-color:var(--brycks-background-muted);border-radius:var(--brycks-radius-lg);display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted)}.brycks-table-action-btn{padding:var(--brycks-spacing-1)!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brycks-skip-link{position:absolute;top:-40px;left:0;background:var(--brycks-primary-default);color:var(--brycks-primary-foreground);padding:var(--brycks-spacing-2) var(--brycks-spacing-4);z-index:var(--brycks-z-tooltip);text-decoration:none;font-weight:500}.brycks-skip-link:focus{top:0}*:focus-visible{outline:2px solid var(--brycks-primary-default);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes brycks-fade-in{0%{opacity:0}to{opacity:1}}@keyframes brycks-fade-out{0%{opacity:1}to{opacity:0}}@keyframes brycks-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes brycks-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes brycks-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-slide-left{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-slide-right{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes brycks-drawer-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes brycks-drawer-slide-top{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes brycks-drawer-slide-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes brycks-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes brycks-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes brycks-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes brycks-bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes brycks-bounce-scale{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}@keyframes brycks-pulse-scale{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}}@keyframes brycks-focus-ring-pulse{0%,to{box-shadow:0 0 0 3px #5578f459}50%{box-shadow:0 0 0 4px #5578f440}}@keyframes brycks-toast-slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes brycks-toast-slide-in-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-toast-slide-in-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes brycks-accordion-expand{0%{height:0;opacity:0}to{height:var(--brycks-accordion-content-height);opacity:1}}@keyframes brycks-accordion-collapse{0%{height:var(--brycks-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes brycks-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.brycks-animate-fade-in{animation:brycks-fade-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-scale-in{animation:brycks-scale-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-slide-up{animation:brycks-slide-up var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-animate-spin{animation:brycks-spin 1s linear infinite}.brycks-animate-pulse{animation:brycks-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.brycks-animate-shimmer{animation:brycks-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--brycks-background-muted) 0%,var(--brycks-background-subtle) 50%,var(--brycks-background-muted) 100%);background-size:200% 100%}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.brycks-animate-spin{animation-duration:.5s!important}.brycks-animate-pulse,.brycks-animate-shimmer,.brycks-animate-bounce{animation:none!important}.brycks-skeleton{animation:none!important;background:var(--brycks-background-muted)!important}}:root{--brycks-anim-duration-instant: 50ms;--brycks-anim-duration-fast: .1s;--brycks-anim-duration-normal: .2s;--brycks-anim-duration-slow: .3s;--brycks-anim-duration-slower: .4s;--brycks-anim-ease-linear: linear;--brycks-anim-ease-out: cubic-bezier(0, 0, .2, 1);--brycks-anim-ease-in: cubic-bezier(.4, 0, 1, 1);--brycks-anim-ease-in-out: cubic-bezier(.4, 0, .2, 1);--brycks-anim-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--brycks-anim-ease-bounce: cubic-bezier(.68, -.55, .265, 1.55)}:root{--brycks-fs-responsive-xs: clamp(.75rem, 2.5vw, .875rem);--brycks-fs-responsive-sm: clamp(.8125rem, 2.8vw, 1rem);--brycks-fs-responsive-base: clamp(.875rem, 3vw, 1.125rem);--brycks-fs-responsive-lg: clamp(1rem, 3.5vw, 1.25rem);--brycks-fs-responsive-xl: clamp(1.125rem, 4vw, 1.5rem);--brycks-fs-responsive-2xl: clamp(1.25rem, 4.5vw, 1.75rem);--brycks-spacing-responsive-xs: clamp(.25rem, 1vw, .5rem);--brycks-spacing-responsive-sm: clamp(.375rem, 1.5vw, .75rem);--brycks-spacing-responsive-md: clamp(.5rem, 2vw, 1rem);--brycks-spacing-responsive-lg: clamp(.75rem, 3vw, 1.5rem)}.brycks-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.brycks-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.brycks-break-all{word-break:break-all}.brycks-break-word{word-break:break-word;overflow-wrap:break-word}.brycks-min-w-0{min-width:0}@media (max-width: 479px){.brycks-hide-mobile{display:none!important}}@media (max-width: 319px){.brycks-hide-xs{display:none!important}}@media (min-width: 640px){.brycks-show-mobile-only{display:none!important}}@media (max-width: 639px){.brycks-app-layout__content{padding:var(--brycks-spacing-4)}}@media (max-width: 479px){.brycks-app-layout__content{padding:var(--brycks-spacing-3)}}@media (max-width: 319px){.brycks-app-layout__content{padding:var(--brycks-spacing-2)}}@media (max-width: 319px){.brycks-sidebar{width:100%;max-width:250px}.brycks-sidebar__logo{padding:var(--brycks-spacing-2) var(--brycks-spacing-3)}.brycks-sidebar__logo-icon{width:28px;height:28px;font-size:var(--brycks-fs-responsive-sm)}.brycks-sidebar__logo-text{font-size:var(--brycks-fs-responsive-base)}.brycks-sidebar__nav{padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}.brycks-nav-item{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-sm);gap:var(--brycks-spacing-2)}.brycks-nav-item__icon{width:18px;height:18px}.brycks-nav-item__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-sidebar__footer{padding:var(--brycks-spacing-2)}}@media (max-width: 639px){.brycks-header{height:56px;padding:0 var(--brycks-spacing-3)}.brycks-header__left{gap:var(--brycks-spacing-2)}.brycks-header__right{gap:var(--brycks-spacing-1)}}@media (max-width: 479px){.brycks-header{padding:0 var(--brycks-spacing-2)}.brycks-icon-btn{width:32px;height:32px}}@media (max-width: 319px){.brycks-header{height:48px;padding:0 var(--brycks-spacing-1)}.brycks-icon-btn{width:28px;height:28px}.brycks-icon-btn svg{width:16px;height:16px}}@media (max-width: 319px){.brycks-avatar--md{width:32px;height:32px;font-size:12px}.brycks-avatar--lg{width:36px;height:36px;font-size:14px}}@media (max-width: 639px){.brycks-page-header{margin-bottom:var(--brycks-spacing-4)}}@media (max-width: 319px){.brycks-page-header{margin-bottom:var(--brycks-spacing-3)}}@media (max-width: 639px){.brycks-stat-card__icon{width:40px;height:40px}.brycks-stat-card__icon svg{width:18px;height:18px}}@media (max-width: 479px){.brycks-stat-card__icon{width:36px;height:36px}.brycks-stat-card__icon svg{width:16px;height:16px}}@media (max-width: 319px){.brycks-stat-card__icon{width:28px;height:28px}.brycks-stat-card__icon svg{width:14px;height:14px}.brycks-stat-card__trend{font-size:.5625rem}}@media (max-width: 639px){.brycks-quick-action{padding:var(--brycks-spacing-3)}}@media (max-width: 319px){.brycks-quick-action{padding:var(--brycks-spacing-2)}.brycks-quick-action__icon{margin-bottom:var(--brycks-spacing-1)}.brycks-quick-action__icon svg{width:20px;height:20px}}@media (max-width: 639px){.brycks-search-input{min-width:100%}}@media (max-width: 319px){.brycks-search-input input{font-size:14px;padding-left:32px;padding-top:var(--brycks-spacing-1);padding-bottom:var(--brycks-spacing-1)}.brycks-search-input__icon{left:var(--brycks-spacing-2);width:14px;height:14px}}@media (max-width: 479px){.brycks-login-container{padding:var(--brycks-spacing-4)}.brycks-login-card{max-width:100%}.brycks-login-logo{margin-bottom:var(--brycks-spacing-6)}.brycks-login-logo__icon{width:56px;height:56px;font-size:24px}}@media (max-width: 319px){.brycks-login-container{padding:var(--brycks-spacing-2)}.brycks-login-logo{margin-bottom:var(--brycks-spacing-4)}.brycks-login-logo__icon{width:48px;height:48px;font-size:20px}.brycks-login-footer{margin-top:var(--brycks-spacing-4)}.brycks-login-form__options{flex-direction:column;gap:var(--brycks-spacing-2);align-items:flex-start}}@media (max-width: 479px){.brycks-user-info{padding:var(--brycks-spacing-2)}.brycks-user-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;display:block}}@media (max-width: 639px){.brycks-vehicle-card__image{aspect-ratio:16/9}}@media (max-width: 319px){.brycks-vehicle-card__image{aspect-ratio:4/3;margin-bottom:var(--brycks-spacing-2)}}@media (max-width: 639px){.brycks-filter-select{min-width:100%}}@media (max-width: 479px){.brycks-page-card__icon{width:40px;height:40px}}@media (max-width: 319px){.brycks-page-card__icon{width:36px;height:36px}.brycks-page-card__icon svg{width:16px;height:16px}}@media (max-width: 479px){.brycks-section-item{padding:var(--brycks-spacing-2)}.brycks-section-item__icon{width:32px;height:32px;font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-section-item{padding:var(--brycks-spacing-1)}.brycks-section-item__icon{width:28px;height:28px}.brycks-section-item__grip{display:none}}@media (max-width: 479px){.brycks-section-type-btn{padding:var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-empty-zone{padding:var(--brycks-spacing-6)}}@media (max-width: 319px){.brycks-empty-zone{padding:var(--brycks-spacing-4)}}@media (max-width: 639px){.brycks-image-container{aspect-ratio:16/10}}@media (max-width: 319px){.brycks-image-container{aspect-ratio:4/3}}@media (max-width: 639px){input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=search],input[type=url],textarea,select{font-size:16px!important}}@media (max-width: 319px){input,textarea,select{padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-button--md{padding:var(--brycks-spacing-2) var(--brycks-spacing-3);font-size:var(--brycks-fs-responsive-sm)}.brycks-button--sm{padding:var(--brycks-spacing-1) var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}}@media (max-width: 319px){.brycks-button--md{padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}.brycks-button--sm{padding:var(--brycks-spacing-1)}.brycks-button svg{width:14px;height:14px}}@media (max-width: 479px){.brycks-badge--md{font-size:var(--brycks-fs-responsive-xs);padding:2px 6px}.brycks-badge--sm{font-size:.5625rem;padding:1px 4px}}@media (max-width: 639px){.brycks-modal{width:calc(100vw - var(--brycks-spacing-4));max-height:calc(100vh - var(--brycks-spacing-8));margin:var(--brycks-spacing-2)}.brycks-modal-header,.brycks-modal-body,.brycks-modal-footer{padding:var(--brycks-spacing-3)}.brycks-modal-footer{flex-wrap:wrap;gap:var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-modal-header,.brycks-modal-body,.brycks-modal-footer{padding:var(--brycks-spacing-2)}.brycks-modal-footer button{flex:1;min-width:80px}}@media (max-width: 319px){.brycks-modal{width:calc(100vw - var(--brycks-spacing-2));margin:var(--brycks-spacing-1)}.brycks-modal-footer button{min-width:60px}}@media (max-width: 639px){.brycks-card{border-radius:var(--brycks-radius-md)}.brycks-card-header,.brycks-card-body{padding:var(--brycks-spacing-3)}}@media (max-width: 479px){.brycks-card-header,.brycks-card-body{padding:var(--brycks-spacing-2)}}@media (max-width: 479px){.brycks-dropdown-content{max-width:calc(100vw - var(--brycks-spacing-4))}.brycks-dropdown-item{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-dropdown-item{padding:var(--brycks-spacing-1) var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}.brycks-dropdown-item__content{gap:var(--brycks-spacing-1)}}@media (max-width: 479px){.brycks-tooltip{max-width:calc(100vw - var(--brycks-spacing-4));font-size:var(--brycks-fs-responsive-xs);padding:var(--brycks-spacing-1) var(--brycks-spacing-2)}}@media (max-width: 639px){.brycks-tabs .brycks-tab-list{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.brycks-tabs .brycks-tab-list::-webkit-scrollbar{display:none}.brycks-tabs .brycks-tab{flex:0 0 auto;white-space:nowrap}}@media (max-width: 319px){.brycks-tabs .brycks-tab{padding:var(--brycks-spacing-1) var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}.brycks-tabs .brycks-tab svg{width:14px;height:14px}}.brycks-table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 639px){.brycks-table th,.brycks-table td{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-table th,.brycks-table td{padding:var(--brycks-spacing-1);font-size:var(--brycks-fs-responsive-xs)}}@media (max-width: 479px){.brycks-pagination{gap:var(--brycks-spacing-1)}.brycks-pagination button{min-width:32px;height:32px;padding:var(--brycks-spacing-1);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-pagination button{min-width:28px;height:28px;font-size:var(--brycks-fs-responsive-xs)}.brycks-pagination button span{display:none}}@media (max-width: 479px){.brycks-alert{padding:var(--brycks-spacing-2) var(--brycks-spacing-3);font-size:var(--brycks-fs-responsive-sm)}}@media (max-width: 319px){.brycks-alert{padding:var(--brycks-spacing-2);font-size:var(--brycks-fs-responsive-xs)}.brycks-alert__icon{width:16px;height:16px}}@media (max-width: 479px){.brycks-toast-container{left:var(--brycks-spacing-2);right:var(--brycks-spacing-2);bottom:var(--brycks-spacing-2)}.brycks-toast{max-width:100%;font-size:var(--brycks-fs-responsive-sm)}}.brycks-flex>*,.brycks-stack>*{min-width:0}@media print{.brycks-sidebar,.brycks-header,.brycks-skip-link{display:none!important}.brycks-app-layout__content{padding:0!important}.brycks-button,.brycks-icon-btn{display:none!important}}.brycks-button{font-family:var(--brycks-font-sans);font-weight:500;line-height:1;border:none;outline:none;cursor:pointer;user-select:none;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease-out,color .15s ease-out,border-color .15s ease-out,box-shadow .15s ease-out,transform .15s ease-out}.brycks-button:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-button--disabled,.brycks-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.brycks-button--loading{cursor:wait;pointer-events:none}.brycks-button--solid.brycks-button--primary{background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground)}.brycks-button--solid.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-hover)}.brycks-button--solid.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-active);transform:scale(.98)}.brycks-button--solid.brycks-button--accent{background-color:var(--brycks-accent-default);color:var(--brycks-accent-foreground)}.brycks-button--solid.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-hover)}.brycks-button--solid.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-active);transform:scale(.98)}.brycks-button--solid.brycks-button--neutral{background-color:var(--brycks-foreground-default);color:var(--brycks-background-app)}.brycks-button--solid.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-foreground-muted)}.brycks-button--solid.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-foreground-subtle);transform:scale(.98)}.brycks-button--solid.brycks-button--success{background-color:var(--brycks-success-default);color:var(--brycks-success-foreground)}.brycks-button--solid.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-hover)}.brycks-button--solid.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-hover);transform:scale(.98)}.brycks-button--solid.brycks-button--warning{background-color:var(--brycks-warning-default);color:var(--brycks-warning-foreground)}.brycks-button--solid.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-hover)}.brycks-button--solid.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-hover);transform:scale(.98)}.brycks-button--solid.brycks-button--error{background-color:var(--brycks-error-default);color:var(--brycks-error-foreground)}.brycks-button--solid.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-hover)}.brycks-button--solid.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-hover);transform:scale(.98)}.brycks-button--outline.brycks-button--primary{background-color:transparent;color:var(--brycks-primary-default);border:1px solid var(--brycks-primary-default)}.brycks-button--outline.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-muted)}.brycks-button--outline.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--accent{background-color:transparent;color:var(--brycks-accent-default);border:1px solid var(--brycks-accent-default)}.brycks-button--outline.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-muted)}.brycks-button--outline.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--neutral{background-color:transparent;color:var(--brycks-foreground-default);border:1px solid var(--brycks-border-strong)}.brycks-button--outline.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-background-muted)}.brycks-button--outline.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--success{background-color:transparent;color:var(--brycks-success-default);border:1px solid var(--brycks-success-default)}.brycks-button--outline.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-muted)}.brycks-button--outline.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--warning{background-color:transparent;color:var(--brycks-warning-default);border:1px solid var(--brycks-warning-default)}.brycks-button--outline.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-muted)}.brycks-button--outline.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--outline.brycks-button--error{background-color:transparent;color:var(--brycks-error-default);border:1px solid var(--brycks-error-default)}.brycks-button--outline.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-muted)}.brycks-button--outline.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--primary{background-color:transparent;color:var(--brycks-primary-default);border:none}.brycks-button--ghost.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-muted)}.brycks-button--ghost.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--accent{background-color:transparent;color:var(--brycks-accent-default);border:none}.brycks-button--ghost.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-muted)}.brycks-button--ghost.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--neutral{background-color:transparent;color:var(--brycks-foreground-default);border:none}.brycks-button--ghost.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-background-muted)}.brycks-button--ghost.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--success{background-color:transparent;color:var(--brycks-success-default);border:none}.brycks-button--ghost.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-muted)}.brycks-button--ghost.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--warning{background-color:transparent;color:var(--brycks-warning-default);border:none}.brycks-button--ghost.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-muted)}.brycks-button--ghost.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--ghost.brycks-button--error{background-color:transparent;color:var(--brycks-error-default);border:none}.brycks-button--ghost.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-muted)}.brycks-button--ghost.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);border:none}.brycks-button--soft.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-primary-soft-hover)}.brycks-button--soft.brycks-button--primary:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--accent{background-color:var(--brycks-accent-muted);color:var(--brycks-accent-default);border:none}.brycks-button--soft.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-accent-soft-hover)}.brycks-button--soft.brycks-button--accent:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--neutral{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default);border:none}.brycks-button--soft.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-border-default)}.brycks-button--soft.brycks-button--neutral:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-default);border:none}.brycks-button--soft.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-success-soft-hover)}.brycks-button--soft.brycks-button--success:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-default);border:none}.brycks-button--soft.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-warning-soft-hover)}.brycks-button--soft.brycks-button--warning:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--soft.brycks-button--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-default);border:none}.brycks-button--soft.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){background-color:var(--brycks-error-soft-hover)}.brycks-button--soft.brycks-button--error:active:not(:disabled):not(.brycks-button--disabled){transform:scale(.98)}.brycks-button--link.brycks-button--primary{background-color:transparent;color:var(--brycks-primary-default);border:none}.brycks-button--link.brycks-button--primary:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-primary-hover);text-decoration:underline}.brycks-button--link.brycks-button--accent{background-color:transparent;color:var(--brycks-accent-default);border:none}.brycks-button--link.brycks-button--accent:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-accent-hover);text-decoration:underline}.brycks-button--link.brycks-button--neutral{background-color:transparent;color:var(--brycks-foreground-default);border:none}.brycks-button--link.brycks-button--neutral:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-foreground-muted);text-decoration:underline}.brycks-button--link.brycks-button--success{background-color:transparent;color:var(--brycks-success-default);border:none}.brycks-button--link.brycks-button--success:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-success-hover);text-decoration:underline}.brycks-button--link.brycks-button--warning{background-color:transparent;color:var(--brycks-warning-default);border:none}.brycks-button--link.brycks-button--warning:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-warning-hover);text-decoration:underline}.brycks-button--link.brycks-button--error{background-color:transparent;color:var(--brycks-error-default);border:none}.brycks-button--link.brycks-button--error:hover:not(:disabled):not(.brycks-button--disabled){color:var(--brycks-error-hover);text-decoration:underline}.brycks-button--xs{height:24px;padding:0 8px;font-size:var(--brycks-fs-ui-xs);border-radius:var(--brycks-radius-md);gap:4px}.brycks-button--sm{height:32px;padding:0 12px;font-size:var(--brycks-fs-ui-sm);border-radius:var(--brycks-radius-md);gap:6px}.brycks-button--md{height:40px;padding:0 16px;font-size:var(--brycks-fs-ui-md);border-radius:var(--brycks-radius-default);gap:8px}.brycks-button--lg{height:48px;padding:0 20px;font-size:var(--brycks-fs-ui-lg);border-radius:var(--brycks-radius-lg);gap:8px}.brycks-button--xl{height:56px;padding:0 24px;font-size:var(--brycks-fs-ui-xl);border-radius:var(--brycks-radius-xl);gap:10px}.brycks-button--icon-only{padding:0}.brycks-button--icon-only.brycks-button--xs{width:24px;min-width:24px}.brycks-button--icon-only.brycks-button--sm{width:32px;min-width:32px}.brycks-button--icon-only.brycks-button--md{width:40px;min-width:40px}.brycks-button--icon-only.brycks-button--lg{width:48px;min-width:48px}.brycks-button--icon-only.brycks-button--xl{width:56px;min-width:56px}.brycks-button--full-width{width:100%}.brycks-button--link{height:auto;padding:0;border-radius:0}.brycks-switch{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer}.brycks-switch--disabled{opacity:.5;cursor:not-allowed}.brycks-switch__input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.brycks-switch--disabled .brycks-switch__input{cursor:not-allowed}.brycks-switch__track{position:relative;flex-shrink:0;background-color:var(--brycks-background-muted);box-shadow:inset 0 0 0 1px var(--brycks-border-default),inset 0 1px 2px #0000000d;transition:background-color .25s var(--brycks-ease-out),box-shadow .25s var(--brycks-ease-out)}.brycks-switch--checked .brycks-switch__track{background-color:var(--brycks-primary-default);box-shadow:inset 0 0 0 1px var(--brycks-primary-default)}.brycks-switch:focus-within .brycks-switch__track{box-shadow:inset 0 0 0 1px var(--brycks-border-default),inset 0 1px 2px #0000000d,0 0 0 3px var(--brycks-primary-muted)}.brycks-switch--checked:focus-within .brycks-switch__track{box-shadow:inset 0 0 0 1px var(--brycks-primary-default),0 0 0 3px var(--brycks-primary-muted)}.brycks-switch__thumb{position:absolute;background-color:var(--brycks-background-elevated);box-shadow:var(--brycks-shadow-sm);transition:left .25s var(--brycks-ease-out),transform .25s var(--brycks-ease-out),width .25s var(--brycks-ease-out)}.brycks-switch__label{display:flex;flex-direction:column;gap:2px;user-select:none}.brycks-switch__label-text{font-size:var(--brycks-fs-body-base);line-height:1.4;color:var(--brycks-foreground-default)}.brycks-switch__description{font-size:var(--brycks-fs-body-sm);line-height:1.4;color:var(--brycks-foreground-muted)}.brycks-tabs{display:flex}.brycks-tabs--horizontal{flex-direction:column}.brycks-tabs--vertical{flex-direction:row;gap:24px}.brycks-tab-list{display:flex;flex-shrink:0}.brycks-tabs--horizontal .brycks-tab-list{flex-direction:row}.brycks-tabs--vertical .brycks-tab-list{flex-direction:column;gap:4px}.brycks-tabs--line.brycks-tabs--horizontal .brycks-tab-list{border-bottom:1px solid var(--brycks-border-muted)}.brycks-tabs--line.brycks-tabs--vertical .brycks-tab-list{border-right:1px solid var(--brycks-border-muted);padding-right:16px}.brycks-tabs--enclosed .brycks-tab-list{background-color:var(--brycks-background-muted);padding:4px;border-radius:var(--brycks-radius-lg);gap:4px}.brycks-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;cursor:pointer;transition:all .15s ease-out;outline:none;border:none;background-color:transparent;white-space:nowrap}.brycks-tab:disabled{opacity:.5;cursor:not-allowed}.brycks-tabs--sm .brycks-tab{font-size:13px;padding:6px 12px;min-height:32px}.brycks-tabs--md .brycks-tab,.brycks-tab{font-size:14px;padding:8px 16px;min-height:40px}.brycks-tabs--lg .brycks-tab{font-size:16px;padding:10px 20px;min-height:48px}.brycks-tabs--line .brycks-tab{color:var(--brycks-foreground-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.brycks-tabs--line .brycks-tab:hover:not(:disabled){color:var(--brycks-foreground-default)}.brycks-tabs--line .brycks-tab--selected{color:var(--brycks-primary-default);border-bottom-color:var(--brycks-primary-default)}.brycks-tabs--line.brycks-tabs--vertical .brycks-tab{border-bottom:none;border-right:2px solid transparent;margin-bottom:0;margin-right:-1px}.brycks-tabs--line.brycks-tabs--vertical .brycks-tab--selected{border-right-color:var(--brycks-primary-default)}.brycks-tabs--enclosed .brycks-tab{color:var(--brycks-foreground-muted);border-radius:var(--brycks-radius-md)}.brycks-tabs--enclosed .brycks-tab:hover:not(:disabled):not(.brycks-tab--selected){color:var(--brycks-foreground-default);background-color:var(--brycks-background-subtle)}.brycks-tabs--enclosed .brycks-tab--selected{color:var(--brycks-foreground-default);background-color:var(--brycks-background-elevated);box-shadow:var(--brycks-shadow-sm)}.brycks-tabs--soft .brycks-tab{color:var(--brycks-foreground-muted);border-radius:var(--brycks-radius-md)}.brycks-tabs--soft .brycks-tab:hover:not(:disabled):not(.brycks-tab--selected){color:var(--brycks-foreground-default);background-color:var(--brycks-background-muted)}.brycks-tabs--soft .brycks-tab--selected{color:var(--brycks-primary-default);background-color:var(--brycks-primary-muted)}.brycks-tab-panels{flex:1}.brycks-tab-panel{padding:16px 0;animation:brycks-tab-panel-in .2s ease-out}@keyframes brycks-tab-panel-in{0%{opacity:0}to{opacity:1}}.brycks-tab__icon{display:inline-flex;flex-shrink:0}.brycks-tab:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:500;font-family:var(--brycks-font-sans);line-height:1;border-radius:var(--brycks-radius-full);white-space:nowrap}.brycks-badge--with-leading{gap:5px}.brycks-badge__dot{flex-shrink:0;width:6px;height:6px;border-radius:var(--brycks-radius-full);background-color:currentColor}.brycks-badge__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em}.brycks-badge__icon svg{width:100%;height:100%}.brycks-badge--sm{font-size:10px;padding:2px 6px;height:18px}.brycks-badge--md{font-size:11px;padding:3px 8px;height:22px}.brycks-badge--lg{font-size:12px;padding:4px 10px;height:26px}.brycks-badge--solid.brycks-badge--neutral{background-color:var(--brycks-foreground-default);color:var(--brycks-background-app)}.brycks-badge--solid.brycks-badge--primary{background-color:var(--brycks-primary-default);color:var(--brycks-primary-foreground)}.brycks-badge--solid.brycks-badge--accent{background-color:var(--brycks-accent-default);color:var(--brycks-accent-foreground)}.brycks-badge--solid.brycks-badge--success{background-color:var(--brycks-success-default);color:var(--brycks-success-foreground)}.brycks-badge--solid.brycks-badge--warning{background-color:var(--brycks-warning-default);color:var(--brycks-warning-foreground)}.brycks-badge--solid.brycks-badge--error{background-color:var(--brycks-error-default);color:var(--brycks-error-foreground)}.brycks-badge--solid.brycks-badge--info{background-color:var(--brycks-info-default);color:var(--brycks-info-foreground)}.brycks-badge--subtle.brycks-badge--neutral{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-badge--subtle.brycks-badge--primary{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default)}.brycks-badge--subtle.brycks-badge--accent{background-color:var(--brycks-accent-muted);color:var(--brycks-accent-default)}.brycks-badge--subtle.brycks-badge--success{background-color:var(--brycks-success-muted);color:var(--brycks-success-on-muted)}.brycks-badge--subtle.brycks-badge--warning{background-color:var(--brycks-warning-muted);color:var(--brycks-warning-on-muted)}.brycks-badge--subtle.brycks-badge--error{background-color:var(--brycks-error-muted);color:var(--brycks-error-on-muted)}.brycks-badge--subtle.brycks-badge--info{background-color:var(--brycks-info-muted);color:var(--brycks-info-on-muted)}.brycks-badge--outline{background-color:transparent;border:1px solid}.brycks-badge--outline.brycks-badge--neutral{color:var(--brycks-foreground-default);border-color:var(--brycks-border-default)}.brycks-badge--outline.brycks-badge--primary{color:var(--brycks-primary-default);border-color:var(--brycks-primary-default)}.brycks-badge--outline.brycks-badge--accent{color:var(--brycks-accent-default);border-color:var(--brycks-accent-default)}.brycks-badge--outline.brycks-badge--success{color:var(--brycks-success-default);border-color:var(--brycks-success-default)}.brycks-badge--outline.brycks-badge--warning{color:var(--brycks-warning-default);border-color:var(--brycks-warning-default)}.brycks-badge--outline.brycks-badge--error{color:var(--brycks-error-default);border-color:var(--brycks-error-default)}.brycks-badge--outline.brycks-badge--info{color:var(--brycks-info-default);border-color:var(--brycks-info-default)}.brycks-alert{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--brycks-radius-default);border:1px solid transparent}.brycks-alert__icon{flex-shrink:0;width:20px;height:20px}.brycks-alert__content{flex:1;min-width:0}.brycks-alert__title{font-weight:600;font-size:var(--brycks-fs-body-base);line-height:1.4;margin-bottom:2px}.brycks-alert__description{font-size:var(--brycks-fs-body-sm);line-height:1.5;color:var(--brycks-foreground-muted)}.brycks-alert__dismiss{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-alert__dismiss:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-alert__dismiss:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-alert--info{background-color:var(--brycks-info-muted);border-left-color:var(--brycks-info-default)}.brycks-alert--info .brycks-alert__icon{color:var(--brycks-info-default)}.brycks-alert--info .brycks-alert__title{color:var(--brycks-info-on-muted)}.brycks-alert--success{background-color:var(--brycks-success-muted);border-left-color:var(--brycks-success-default)}.brycks-alert--success .brycks-alert__icon{color:var(--brycks-success-default)}.brycks-alert--success .brycks-alert__title{color:var(--brycks-success-on-muted)}.brycks-alert--warning{background-color:var(--brycks-warning-muted);border-left-color:var(--brycks-warning-default)}.brycks-alert--warning .brycks-alert__icon{color:var(--brycks-warning-default)}.brycks-alert--warning .brycks-alert__title{color:var(--brycks-warning-on-muted)}.brycks-alert--error{background-color:var(--brycks-error-muted);border-left-color:var(--brycks-error-default)}.brycks-alert--error .brycks-alert__icon{color:var(--brycks-error-default)}.brycks-alert--error .brycks-alert__title{color:var(--brycks-error-on-muted)}.brycks-alert--primary{background-color:var(--brycks-primary-muted);border-left-color:var(--brycks-primary-default)}.brycks-alert--primary .brycks-alert__icon{color:var(--brycks-primary-default)}.brycks-alert--primary .brycks-alert__title{color:var(--brycks-primary-hover)}.brycks-alert--solid.brycks-alert--info{background-color:var(--brycks-info-default);border-color:var(--brycks-info-default)}.brycks-alert--solid.brycks-alert--success{background-color:var(--brycks-success-default);border-color:var(--brycks-success-default)}.brycks-alert--solid.brycks-alert--warning{background-color:var(--brycks-warning-default);border-color:var(--brycks-warning-default)}.brycks-alert--solid.brycks-alert--error{background-color:var(--brycks-error-default);border-color:var(--brycks-error-default)}.brycks-alert--solid.brycks-alert--info .brycks-alert__icon,.brycks-alert--solid.brycks-alert--info .brycks-alert__title,.brycks-alert--solid.brycks-alert--info .brycks-alert__description,.brycks-alert--solid.brycks-alert--success .brycks-alert__icon,.brycks-alert--solid.brycks-alert--success .brycks-alert__title,.brycks-alert--solid.brycks-alert--success .brycks-alert__description,.brycks-alert--solid.brycks-alert--warning .brycks-alert__icon,.brycks-alert--solid.brycks-alert--warning .brycks-alert__title,.brycks-alert--solid.brycks-alert--warning .brycks-alert__description,.brycks-alert--solid.brycks-alert--error .brycks-alert__icon,.brycks-alert--solid.brycks-alert--error .brycks-alert__title,.brycks-alert--solid.brycks-alert--error .brycks-alert__description{color:var(--brycks-info-foreground)}.brycks-alert--solid.brycks-alert--success .brycks-alert__icon,.brycks-alert--solid.brycks-alert--success .brycks-alert__title,.brycks-alert--solid.brycks-alert--success .brycks-alert__description{color:var(--brycks-success-foreground)}.brycks-alert--solid.brycks-alert--warning .brycks-alert__icon,.brycks-alert--solid.brycks-alert--warning .brycks-alert__title,.brycks-alert--solid.brycks-alert--warning .brycks-alert__description{color:var(--brycks-warning-foreground)}.brycks-alert--solid.brycks-alert--error .brycks-alert__icon,.brycks-alert--solid.brycks-alert--error .brycks-alert__title,.brycks-alert--solid.brycks-alert--error .brycks-alert__description{color:var(--brycks-error-foreground)}.brycks-alert--solid .brycks-alert__dismiss{color:inherit}.brycks-alert--outline{background-color:transparent}.brycks-alert--outline.brycks-alert--info{border-color:var(--brycks-info-default)}.brycks-alert--outline.brycks-alert--success{border-color:var(--brycks-success-default)}.brycks-alert--outline.brycks-alert--warning{border-color:var(--brycks-warning-default)}.brycks-alert--outline.brycks-alert--error{border-color:var(--brycks-error-default)}.brycks-banner{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:1px solid transparent;border-radius:var(--brycks-radius-default);font-family:var(--brycks-font-sans)}.brycks-banner__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.brycks-banner__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.brycks-banner__title{font-weight:600;font-size:var(--brycks-fs-body-base);line-height:1.4}.brycks-banner__description{font-size:var(--brycks-fs-body-sm);line-height:1.45;color:var(--brycks-foreground-muted)}.brycks-banner__actions{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;margin-left:auto}.brycks-banner__dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-banner__dismiss:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-banner__dismiss:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-banner--info{background-color:var(--brycks-info-muted);border-color:var(--brycks-info-default)}.brycks-banner--info .brycks-banner__icon{color:var(--brycks-info-default)}.brycks-banner--info .brycks-banner__title{color:var(--brycks-info-on-muted)}.brycks-banner--success{background-color:var(--brycks-success-muted);border-color:var(--brycks-success-default)}.brycks-banner--success .brycks-banner__icon{color:var(--brycks-success-default)}.brycks-banner--success .brycks-banner__title{color:var(--brycks-success-on-muted)}.brycks-banner--warning{background-color:var(--brycks-warning-muted);border-color:var(--brycks-warning-default)}.brycks-banner--warning .brycks-banner__icon{color:var(--brycks-warning-default)}.brycks-banner--warning .brycks-banner__title{color:var(--brycks-warning-on-muted)}.brycks-banner--error{background-color:var(--brycks-error-muted);border-color:var(--brycks-error-default)}.brycks-banner--error .brycks-banner__icon{color:var(--brycks-error-default)}.brycks-banner--error .brycks-banner__title{color:var(--brycks-error-on-muted)}.brycks-banner--neutral{background-color:var(--brycks-background-muted);border-color:var(--brycks-border-default)}.brycks-banner--neutral .brycks-banner__icon{color:var(--brycks-foreground-muted)}.brycks-banner--neutral .brycks-banner__title{color:var(--brycks-foreground-default)}.brycks-segmented{display:inline-flex;align-items:center;gap:2px;padding:2px;background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-muted);border-radius:var(--brycks-radius-lg)}.brycks-segmented--full-width{display:flex;width:100%}.brycks-segmented__item{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1 1 auto;white-space:nowrap;font-family:var(--brycks-font-sans);font-weight:500;color:var(--brycks-foreground-muted);background-color:transparent;border:none;border-radius:var(--brycks-radius-default);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-segmented__icon{display:inline-flex;align-items:center;justify-content:center}.brycks-segmented__item:hover:not(.brycks-segmented__item--selected):not(:disabled){color:var(--brycks-foreground-default)}.brycks-segmented__item--selected{color:var(--brycks-foreground-default);background-color:var(--brycks-background-app);font-weight:600}.brycks-segmented__item:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:1px}.brycks-segmented__item:disabled{opacity:.5;cursor:not-allowed}.brycks-segmented--sm .brycks-segmented__item{height:28px;padding:0 10px;font-size:12px}.brycks-segmented--md .brycks-segmented__item{height:34px;padding:0 14px;font-size:13px}.brycks-segmented--lg .brycks-segmented__item{height:40px;padding:0 18px;font-size:14px}.brycks-kbd{display:inline-flex;align-items:center;justify-content:center;font-family:var(--brycks-font-mono);font-weight:500;line-height:1;color:var(--brycks-foreground-muted);background-color:var(--brycks-background-muted);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-sm);white-space:nowrap}.brycks-kbd--sm{min-width:18px;height:18px;padding:0 5px;font-size:11px}.brycks-kbd--md{min-width:22px;height:22px;padding:0 6px;font-size:12px}.brycks-search-input__clear{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);cursor:pointer;transition:background-color var(--brycks-duration-fast) var(--brycks-ease-out),color var(--brycks-duration-fast) var(--brycks-ease-out)}.brycks-search-input__clear:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-search-input__clear:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:1px}.brycks-loading-overlay{display:flex;align-items:center;justify-content:center;position:absolute;inset:0;background-color:var(--brycks-background-overlay);z-index:var(--brycks-z-overlay)}.brycks-skeleton{background:linear-gradient(90deg,var(--brycks-background-muted) 25%,var(--brycks-background-subtle) 50%,var(--brycks-background-muted) 75%);background-size:200% 100%;animation:brycks-skeleton-shimmer 1.5s infinite;border-radius:var(--brycks-radius-md)}@keyframes brycks-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.brycks-form-select__trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0 12px;height:40px;font-size:var(--brycks-fs-body-base);font-family:var(--brycks-font-sans);background-color:var(--brycks-background-default);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-default);color:var(--brycks-foreground-default);cursor:pointer;transition:border-color .15s ease-out,box-shadow .15s ease-out;outline:none}.brycks-form-select__trigger:hover:not(:disabled){border-color:var(--brycks-primary-default)}.brycks-form-select__trigger:focus,.brycks-form-select__trigger:focus-visible{border-color:var(--brycks-primary-default);box-shadow:0 0 0 3px var(--brycks-primary-muted)}.brycks-form-select__trigger:disabled{opacity:.5;cursor:not-allowed;background-color:var(--brycks-background-muted)}.brycks-form-select__trigger--error{border-color:var(--brycks-error-default)}.brycks-form-select__trigger--error:focus{box-shadow:0 0 0 3px var(--brycks-error-muted)}.brycks-form-select__trigger--sm{height:32px;padding:0 10px;font-size:var(--brycks-fs-body-sm)}.brycks-form-select__trigger--lg{height:48px;padding:0 16px;font-size:var(--brycks-fs-body-md)}.brycks-form-select__placeholder{color:var(--brycks-foreground-muted)}.brycks-form-select__icon{flex-shrink:0;color:var(--brycks-foreground-muted);transition:transform .2s ease-out}.brycks-form-select__trigger[data-state=open] .brycks-form-select__icon{transform:rotate(180deg)}.brycks-form-select__content{background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);padding:4px;z-index:var(--brycks-z-dropdown);overflow:hidden;animation:brycks-select-in .15s ease-out}@keyframes brycks-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.brycks-form-select__viewport{max-height:300px;overflow-y:auto}.brycks-form-select__item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-default);border-radius:var(--brycks-radius-md);cursor:pointer;outline:none;transition:background-color .1s ease-out}.brycks-form-select__item:hover,.brycks-form-select__item:focus,.brycks-form-select__item[data-highlighted]{background-color:var(--brycks-primary-muted)}.brycks-form-select__item[data-state=checked]{background-color:var(--brycks-primary-muted);color:var(--brycks-primary-default);font-weight:500}.brycks-form-select__item:disabled,.brycks-form-select__item[data-disabled]{opacity:.5;cursor:not-allowed}.brycks-form-select__item-indicator{flex-shrink:0;color:var(--brycks-primary-default)}.brycks-form-select__group-label{padding:8px 12px 4px;font-size:var(--brycks-fs-body-xs);font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.5px}.brycks-form-select__separator{height:1px;background-color:var(--brycks-border-muted);margin:4px 0}.brycks-select-wrapper{position:relative;display:inline-flex;width:100%}.brycks-select{width:100%;font-family:var(--brycks-font-sans);color:var(--brycks-foreground-default);border-radius:var(--brycks-radius-default);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;transition:all .2s ease-out;box-shadow:none}.brycks-select--placeholder{color:var(--brycks-foreground-muted)}.brycks-select-wrapper--sm .brycks-select{height:32px;padding-left:10px;padding-right:34px;font-size:13px}.brycks-select-wrapper--md .brycks-select{height:40px;padding-left:12px;padding-right:36px;font-size:14px}.brycks-select-wrapper--lg .brycks-select{height:48px;padding-left:14px;padding-right:38px;font-size:15px}.brycks-select-wrapper--outline .brycks-select{background-color:var(--brycks-background-app);border:1px solid var(--brycks-border-default)}.brycks-select-wrapper--filled .brycks-select{background-color:var(--brycks-background-muted);border:1px solid transparent}.brycks-select-wrapper--outline .brycks-select:focus,.brycks-select-wrapper--filled .brycks-select:focus{border-color:var(--brycks-border-focus);box-shadow:0 0 0 3px #5578f426}.brycks-select-wrapper--invalid .brycks-select{border-color:var(--brycks-error-default)}.brycks-select-wrapper--invalid .brycks-select:focus{border-color:var(--brycks-error-default);box-shadow:0 0 0 3px #ef444426}.brycks-select-wrapper--disabled .brycks-select{opacity:.5;cursor:not-allowed}.brycks-select-icon{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--brycks-foreground-muted);transition:transform .2s ease-out}.brycks-select-wrapper--sm .brycks-select-icon{right:10px}.brycks-select-wrapper--md .brycks-select-icon{right:12px}.brycks-select-wrapper--lg .brycks-select-icon{right:14px}.brycks-card{display:flex;flex-direction:column;border-radius:var(--brycks-radius-lg);transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out}.brycks-card--elevated{background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-muted);box-shadow:var(--brycks-shadow-md)}.brycks-card--outline{background-color:var(--brycks-background-default);border:1px solid var(--brycks-border-default);box-shadow:none}.brycks-card--filled{background-color:var(--brycks-background-muted);border:1px solid transparent;box-shadow:none}.brycks-card--ghost{background-color:transparent;border:1px solid transparent;box-shadow:none}.brycks-card--padding-none{padding:0}.brycks-card--padding-sm{padding:12px}.brycks-card--padding-md{padding:16px}.brycks-card--padding-lg{padding:24px}.brycks-card--padding-xl{padding:32px}.brycks-card--interactive{cursor:pointer}.brycks-card--interactive:hover{border-color:var(--brycks-border-strong)}.brycks-card--interactive:active{transform:scale(.99)}.brycks-card--interactive:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-card--selected{border-color:var(--brycks-primary-default)}.brycks-card--selected.brycks-card--elevated{box-shadow:0 0 0 2px var(--brycks-primary-default),var(--brycks-shadow-md)}.brycks-card--selected.brycks-card--elevated:hover{box-shadow:0 0 0 2px var(--brycks-primary-default),var(--brycks-shadow-lg)}.brycks-card--selected.brycks-card--outline,.brycks-card--selected.brycks-card--filled,.brycks-card--selected.brycks-card--ghost{border-width:2px}.brycks-card__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.brycks-card__header--divider{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--brycks-border-muted)}.brycks-card__body{flex:1}.brycks-card__footer{display:flex;align-items:center;gap:16px;margin-top:12px}.brycks-card__footer--divider{padding-top:16px;margin-top:16px;border-top:1px solid var(--brycks-border-muted)}.brycks-card__footer--left{justify-content:flex-start}.brycks-card__footer--center{justify-content:center}.brycks-card__footer--right{justify-content:flex-end}.brycks-card__footer--between{justify-content:space-between}.brycks-dropdown{display:inline-block}.brycks-dropdown__menu{background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);padding:4px;z-index:var(--brycks-z-dropdown);outline:none;animation:brycks-dropdown-in .15s ease-out}@keyframes brycks-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.brycks-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-default);background-color:transparent;border-radius:var(--brycks-radius-md);cursor:pointer;outline:none;transition:background-color .1s ease-out;border:none;width:100%;text-align:left}.brycks-dropdown-item:hover,.brycks-dropdown-item:focus{background-color:var(--brycks-background-muted)}.brycks-dropdown-item--disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-dropdown-item--disabled:hover,.brycks-dropdown-item--disabled:focus{background-color:transparent}.brycks-dropdown-item--destructive{color:var(--brycks-error-default)}.brycks-dropdown-item--destructive:hover,.brycks-dropdown-item--destructive:focus{background-color:var(--brycks-error-muted)}.brycks-dropdown-item__icon{flex-shrink:0;width:16px;height:16px;color:var(--brycks-foreground-muted)}.brycks-dropdown-item:hover .brycks-dropdown-item__icon,.brycks-dropdown-item:focus .brycks-dropdown-item__icon{color:var(--brycks-foreground-default)}.brycks-dropdown-item--destructive .brycks-dropdown-item__icon{color:var(--brycks-error-default)}.brycks-dropdown-item--disabled .brycks-dropdown-item__icon{color:var(--brycks-foreground-disabled)}.brycks-dropdown-item__label{flex:1}.brycks-dropdown-item__shortcut{margin-left:auto;font-size:var(--brycks-fs-body-xs);color:var(--brycks-foreground-muted);font-family:var(--brycks-font-mono)}.brycks-dropdown-divider{height:1px;background-color:var(--brycks-border-muted);margin:4px 0}.brycks-dropdown-label{padding:8px 12px 4px;font-size:var(--brycks-fs-body-xs);font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.05em}.brycks-dropdown-submenu-trigger{display:flex;align-items:center;justify-content:space-between}.brycks-dropdown-submenu-trigger:after{content:"";width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;margin-left:8px}.brycks-menu-item:focus-visible,.brycks-pagination button:focus-visible,.brycks-accordion-trigger:focus-visible,.brycks-table-header--sortable button:focus-visible{outline:2px solid var(--brycks-border-focus);outline-offset:2px}.brycks-modal-overlay{position:fixed;inset:0;z-index:var(--brycks-z-modal);display:flex;align-items:center;justify-content:center;padding:24px;background-color:var(--brycks-background-overlay);animation:brycks-fade-in var(--brycks-duration-normal) var(--brycks-ease-out)}.brycks-modal{position:relative;width:100%;max-height:85vh;background-color:var(--brycks-background-elevated);border-radius:var(--brycks-radius-xl);box-shadow:var(--brycks-shadow-2xl);display:flex;flex-direction:column;overflow:hidden;animation:brycks-scale-in var(--brycks-duration-normal) var(--brycks-ease-out);outline:none}.brycks-modal--sm{max-width:400px}.brycks-modal--md{max-width:500px}.brycks-modal--lg{max-width:640px}.brycks-modal--xl{max-width:800px}.brycks-modal--2xl{max-width:1200px}.brycks-modal--full{max-width:calc(100vw - 48px);max-height:calc(100vh - 48px)}.brycks-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--brycks-border-muted)}.brycks-modal-title-container{display:flex;flex-direction:column;gap:4px}.brycks-modal-title{font-size:18px;font-weight:600;color:var(--brycks-foreground-default);margin:0;line-height:1.3}.brycks-modal-description{font-size:14px;color:var(--brycks-foreground-muted);margin:0}.brycks-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--brycks-radius-md);color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;transition:all var(--brycks-duration-fast) var(--brycks-ease-out);margin-left:12px;flex-shrink:0}.brycks-modal-close:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-modal-content{flex:1;overflow:auto;padding:24px}.brycks-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--brycks-border-muted)}.brycks-table-container{position:relative;width:100%;overflow:auto}.brycks-table{width:100%;border-collapse:collapse;border-spacing:0;font-variant-numeric:tabular-nums;transition:opacity .15s var(--brycks-ease-out)}.brycks-table--bordered{border-collapse:separate}.brycks-table--sm{font-size:13px}.brycks-table--md{font-size:14px}.brycks-table--lg{font-size:15px}.brycks-table-head{background-color:var(--brycks-background-muted)}.brycks-table-head--sticky{position:sticky;top:0;z-index:1}.brycks-table-row{background-color:transparent;transition:background-color .15s var(--brycks-ease-out)}.brycks-table:not(.brycks-table--bordered) .brycks-table-row{border-bottom:1px solid var(--brycks-border-muted)}.brycks-table-row--clickable{cursor:pointer}.brycks-table-row--clickable:not(.brycks-table-row--selected):hover{background-color:var(--brycks-background-muted)}.brycks-table-row--selected{background-color:var(--brycks-primary-muted)}.brycks-table-header{font-weight:600;color:var(--brycks-foreground-muted);white-space:nowrap;transition:color .15s var(--brycks-ease-out)}.brycks-table--sm .brycks-table-header{padding:8px 12px}.brycks-table--md .brycks-table-header{padding:12px 16px}.brycks-table--lg .brycks-table-header{padding:14px 20px}.brycks-table-header__content{display:flex;align-items:center;gap:6px}.brycks-table-header__sort{width:100%;padding:0;background:transparent;border:none;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;user-select:none}.brycks-table-header__sort:hover{color:var(--brycks-foreground-default)}.brycks-table-cell{color:var(--brycks-foreground-default);vertical-align:middle}.brycks-table--sm .brycks-table-cell{padding:8px 12px}.brycks-table--md .brycks-table-cell{padding:12px 16px}.brycks-table--lg .brycks-table-cell{padding:16px 20px}.brycks-table--bordered .brycks-table-cell{border:1px solid var(--brycks-border-muted)}.brycks-table-cell--truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-table-foot{background-color:var(--brycks-background-muted);font-weight:500}.brycks-table-caption{padding:12px 16px;font-size:13px;color:var(--brycks-foreground-muted);text-align:left}.brycks-toast{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid transparent;border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);max-width:400px;animation:brycks-toast-in .2s ease-out}.brycks-toast--exiting{animation:brycks-toast-out .2s ease-in forwards}@keyframes brycks-toast-in{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes brycks-toast-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.95)}}.brycks-toast--info{background-color:var(--brycks-info-muted);border-color:var(--brycks-info-soft-hover)}.brycks-toast--info .brycks-toast__icon{color:var(--brycks-info-default)}.brycks-toast--success{background-color:var(--brycks-success-muted);border-color:var(--brycks-success-soft-hover)}.brycks-toast--success .brycks-toast__icon{color:var(--brycks-success-default)}.brycks-toast--warning{background-color:var(--brycks-warning-muted);border-color:var(--brycks-warning-soft-hover)}.brycks-toast--warning .brycks-toast__icon{color:var(--brycks-warning-default)}.brycks-toast--error{background-color:var(--brycks-error-muted);border-color:var(--brycks-error-soft-hover)}.brycks-toast--error .brycks-toast__icon{color:var(--brycks-error-default)}.brycks-toast__icon{flex-shrink:0;margin-top:2px}.brycks-toast__content{flex:1;display:flex;flex-direction:column;gap:4px}.brycks-toast__title{font-size:14px;font-weight:600;color:var(--brycks-foreground-default);line-height:1.4}.brycks-toast__description{font-size:13px;color:var(--brycks-foreground-muted);line-height:1.4}.brycks-toast__action{margin-top:8px}.brycks-toast__close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--brycks-radius-sm);color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;transition:all .15s ease-out;flex-shrink:0;margin-left:auto}.brycks-toast__close:hover{background-color:var(--brycks-background-muted)}.brycks-toast-container{position:fixed;z-index:var(--brycks-z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.brycks-toast-wrapper{pointer-events:auto}.brycks-drawer-overlay{position:fixed;inset:0;z-index:var(--brycks-z-drawer);display:flex;background-color:var(--brycks-background-overlay);animation:brycks-drawer-overlay-in .2s ease-out}.brycks-drawer-overlay--transparent{background-color:transparent}@keyframes brycks-drawer-overlay-in{0%{opacity:0}to{opacity:1}}.brycks-drawer{position:absolute;background-color:var(--brycks-background-elevated);box-shadow:var(--brycks-shadow-2xl);display:flex;flex-direction:column;overflow:hidden;outline:none}.brycks-drawer--left,.brycks-drawer--right{top:0;bottom:0;max-width:100vw}.brycks-drawer--left{left:0;animation:brycks-drawer-left-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--right{right:0;animation:brycks-drawer-right-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--top,.brycks-drawer--bottom{left:0;right:0;max-height:100vh}.brycks-drawer--top{top:0;animation:brycks-drawer-top-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--bottom{bottom:0;animation:brycks-drawer-bottom-in .25s cubic-bezier(.32,.72,0,1)}.brycks-drawer--left.brycks-drawer--sm,.brycks-drawer--right.brycks-drawer--sm{width:320px}.brycks-drawer--left.brycks-drawer--md,.brycks-drawer--right.brycks-drawer--md{width:400px}.brycks-drawer--left.brycks-drawer--lg,.brycks-drawer--right.brycks-drawer--lg{width:560px}.brycks-drawer--left.brycks-drawer--xl,.brycks-drawer--right.brycks-drawer--xl{width:720px}.brycks-drawer--left.brycks-drawer--full,.brycks-drawer--right.brycks-drawer--full{width:100%}.brycks-drawer--top.brycks-drawer--sm,.brycks-drawer--bottom.brycks-drawer--sm{height:320px}.brycks-drawer--top.brycks-drawer--md,.brycks-drawer--bottom.brycks-drawer--md{height:400px}.brycks-drawer--top.brycks-drawer--lg,.brycks-drawer--bottom.brycks-drawer--lg{height:560px}.brycks-drawer--top.brycks-drawer--xl,.brycks-drawer--bottom.brycks-drawer--xl{height:720px}.brycks-drawer--top.brycks-drawer--full,.brycks-drawer--bottom.brycks-drawer--full{height:100%}@keyframes brycks-drawer-left-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes brycks-drawer-right-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes brycks-drawer-top-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes brycks-drawer-bottom-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.brycks-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--brycks-border-muted);flex-shrink:0}.brycks-drawer-title{font-size:18px;font-weight:600;color:var(--brycks-foreground-default);margin:0}.brycks-drawer-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--brycks-radius-md);color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;transition:all .15s ease-out}.brycks-drawer-close:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-drawer-content{flex:1;overflow:auto;padding:20px}.brycks-menu{display:flex;flex-direction:column;gap:2px;padding:8px}.brycks-menu-item{display:flex;align-items:center;gap:10px;width:100%;font-weight:500;color:var(--brycks-foreground-default);background-color:transparent;border:none;border-radius:var(--brycks-radius-md);cursor:pointer;transition:all .15s var(--brycks-ease-out);text-align:left;justify-content:flex-start}.brycks-menu--sm .brycks-menu-item{min-height:32px;padding:0 10px;font-size:13px}.brycks-menu--md .brycks-menu-item{min-height:40px;padding:0 12px;font-size:14px}.brycks-menu--lg .brycks-menu-item{min-height:48px;padding:0 14px;font-size:16px}.brycks-menu--collapsed .brycks-menu-item{justify-content:center}.brycks-menu--collapsed.brycks-menu--sm .brycks-menu-item{padding:10px}.brycks-menu--collapsed.brycks-menu--md .brycks-menu-item{padding:12px}.brycks-menu--collapsed.brycks-menu--lg .brycks-menu-item{padding:14px}.brycks-menu-item--active{font-weight:600;color:var(--brycks-primary-default);background-color:var(--brycks-primary-muted)}.brycks-menu-item:not(:disabled):not(.brycks-menu-item--active):hover{background-color:var(--brycks-background-muted)}.brycks-menu-item:disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-menu-item__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.brycks-menu--sm .brycks-menu-item__icon{width:16px;height:16px}.brycks-menu--md .brycks-menu-item__icon{width:18px;height:18px}.brycks-menu--lg .brycks-menu-item__icon{width:20px;height:20px}.brycks-menu-item__label{flex:1}.brycks-menu-item__badge{margin-left:auto}.brycks-menu-group{display:flex;flex-direction:column;gap:2px}.brycks-menu-group__label{padding:12px 12px 6px;font-size:11px;font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.05em}.brycks-menu-divider{height:1px;background-color:var(--brycks-border-muted);margin:8px 0}.brycks-pagination{display:flex;align-items:center}.brycks-pagination--sm{gap:4px}.brycks-pagination--md{gap:6px}.brycks-pagination--lg{gap:8px}.brycks-pagination__button{display:inline-flex;align-items:center;justify-content:center;font-weight:500;color:var(--brycks-foreground-default);background-color:transparent;border:none;border-radius:var(--brycks-radius-md);cursor:pointer;transition:all .15s var(--brycks-ease-out)}.brycks-pagination--sm .brycks-pagination__button{min-width:28px;height:28px;padding:0 8px;font-size:12px}.brycks-pagination--md .brycks-pagination__button{min-width:36px;height:36px;padding:0 10px;font-size:14px}.brycks-pagination--lg .brycks-pagination__button{min-width:44px;height:44px;padding:0 12px;font-size:16px}.brycks-pagination__button--active{font-weight:600;color:var(--brycks-primary-default);background-color:var(--brycks-primary-muted)}.brycks-pagination__button:not(:disabled):not(.brycks-pagination__button--active):hover{background-color:var(--brycks-background-muted)}.brycks-pagination__button:disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-pagination__ellipsis{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted)}.brycks-pagination--sm .brycks-pagination__ellipsis{min-width:28px;height:28px;font-size:12px}.brycks-pagination--md .brycks-pagination__ellipsis{min-width:36px;height:36px;font-size:14px}.brycks-pagination--lg .brycks-pagination__ellipsis{min-width:44px;height:44px;font-size:16px}.brycks-pagination__info{color:var(--brycks-foreground-muted)}.brycks-pagination--sm .brycks-pagination__info{font-size:12px;padding:0 4px}.brycks-pagination--md .brycks-pagination__info{font-size:14px;padding:0 6px}.brycks-pagination--lg .brycks-pagination__info{font-size:16px;padding:0 8px}.brycks-combobox{position:relative;display:inline-flex;width:100%}.brycks-combobox__wrapper{position:relative;display:flex;align-items:center;width:100%;background-color:var(--brycks-background-default);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-md);transition:all .1s var(--brycks-ease-out);cursor:text}.brycks-combobox--sm .brycks-combobox__wrapper{height:32px}.brycks-combobox--md .brycks-combobox__wrapper{height:40px}.brycks-combobox--lg .brycks-combobox__wrapper{height:48px}.brycks-combobox__wrapper:focus-within{border-color:var(--brycks-primary-default);box-shadow:var(--brycks-focus-ring)}.brycks-combobox__wrapper--invalid{border-color:var(--brycks-error-default)}.brycks-combobox__wrapper--disabled{background-color:var(--brycks-background-muted);cursor:not-allowed}.brycks-combobox__input{flex:1;height:100%;padding-right:40px;color:var(--brycks-foreground-default);background-color:transparent;border:none;outline:none;cursor:text}.brycks-combobox--sm .brycks-combobox__input{padding-left:12px;font-size:13px}.brycks-combobox--md .brycks-combobox__input{padding-left:16px;font-size:14px}.brycks-combobox--lg .brycks-combobox__input{padding-left:20px;font-size:16px}.brycks-combobox__input:disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-combobox__icons{position:absolute;display:flex;align-items:center;gap:4px;pointer-events:none}.brycks-combobox--sm .brycks-combobox__icons{right:12px}.brycks-combobox--md .brycks-combobox__icons{right:16px}.brycks-combobox--lg .brycks-combobox__icons{right:20px}.brycks-combobox__clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--brycks-foreground-muted);background-color:transparent;border:none;cursor:pointer;border-radius:var(--brycks-radius-sm);transition:all .1s var(--brycks-ease-out);pointer-events:auto}.brycks-combobox__clear:hover{background-color:var(--brycks-background-muted);color:var(--brycks-foreground-default)}.brycks-combobox__chevron{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);transform:rotate(0);transition:transform .1s var(--brycks-ease-out)}.brycks-combobox__chevron--open{transform:rotate(180deg)}.brycks-combobox__dropdown{position:absolute;max-height:300px;overflow-y:auto;background-color:var(--brycks-background-elevated);border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);box-shadow:var(--brycks-shadow-lg);z-index:var(--brycks-z-dropdown);padding:4px;animation:brycks-dropdown-in .15s var(--brycks-ease-out)}.brycks-combobox__option{display:flex;align-items:center;gap:8px;padding:8px 12px;color:var(--brycks-foreground-default);background-color:transparent;border-radius:var(--brycks-radius-md);cursor:pointer;transition:background-color .1s var(--brycks-ease-out)}.brycks-combobox--sm .brycks-combobox__option{font-size:13px}.brycks-combobox--md .brycks-combobox__option{font-size:14px}.brycks-combobox--lg .brycks-combobox__option{font-size:16px}.brycks-combobox__option--selected{background-color:var(--brycks-primary-muted)}.brycks-combobox__option--active{background-color:var(--brycks-background-muted)}.brycks-combobox__option--disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-combobox__option--create{width:100%;border:none}.brycks-combobox__option-icon{flex-shrink:0}.brycks-combobox__option-body{flex:1;min-width:0}.brycks-combobox__option-label{font-weight:400}.brycks-combobox__option--selected .brycks-combobox__option-label{font-weight:500}.brycks-combobox__option-description{font-size:12px;color:var(--brycks-foreground-muted)}.brycks-combobox__option-check{flex-shrink:0}.brycks-combobox__empty{padding:16px 12px;color:var(--brycks-foreground-muted);text-align:center}.brycks-combobox--sm .brycks-combobox__empty{font-size:13px}.brycks-combobox--md .brycks-combobox__empty{font-size:14px}.brycks-combobox--lg .brycks-combobox__empty{font-size:16px}.brycks-combobox__loading{display:inline-flex;align-items:center;justify-content:center;gap:8px}.brycks-input-wrapper{display:flex;align-items:center;width:100%;position:relative;transition:all .2s var(--brycks-ease-out)}.brycks-input-wrapper--sm{height:32px;border-radius:var(--brycks-radius-md)}.brycks-input-wrapper--md{height:40px;border-radius:var(--brycks-radius-default)}.brycks-input-wrapper--lg{height:48px;border-radius:var(--brycks-radius-lg)}.brycks-input-wrapper--outline{background-color:var(--brycks-background-app);border:1px solid var(--brycks-border-default)}.brycks-input-wrapper--outline:focus-within{border-color:var(--brycks-border-focus);box-shadow:var(--brycks-focus-ring)}.brycks-input-wrapper--filled{background-color:var(--brycks-background-muted);border:1px solid transparent}.brycks-input-wrapper--filled:focus-within{border-color:var(--brycks-border-focus)}.brycks-input-wrapper--flushed{background-color:transparent;border-radius:0;border-bottom:2px solid var(--brycks-border-default)}.brycks-input-wrapper--flushed.brycks-input-wrapper--sm,.brycks-input-wrapper--flushed.brycks-input-wrapper--md,.brycks-input-wrapper--flushed.brycks-input-wrapper--lg{border-radius:0}.brycks-input-wrapper--flushed:focus-within{border-bottom-color:var(--brycks-border-focus)}.brycks-input-wrapper--invalid.brycks-input-wrapper--outline,.brycks-input-wrapper--invalid.brycks-input-wrapper--filled{border-color:var(--brycks-error-default)}.brycks-input-wrapper--invalid.brycks-input-wrapper--flushed{border-bottom-color:var(--brycks-error-default)}.brycks-input-wrapper--invalid.brycks-input-wrapper--outline:focus-within{border-color:var(--brycks-error-default);box-shadow:0 0 0 3px var(--brycks-focus-ring-error)}.brycks-input-wrapper--invalid.brycks-input-wrapper--filled:focus-within{border-color:var(--brycks-error-default)}.brycks-input-wrapper--invalid.brycks-input-wrapper--flushed:focus-within{border-bottom-color:var(--brycks-error-default)}.brycks-input-wrapper--disabled{opacity:.5;cursor:not-allowed}.brycks-input{width:100%;height:100%;font-family:var(--brycks-font-sans);color:var(--brycks-foreground-default);background-color:transparent;border:none;outline:none;border-radius:inherit;cursor:text;transition:all .2s var(--brycks-ease-out)}.brycks-input-wrapper--sm .brycks-input{font-size:12px}.brycks-input-wrapper--md .brycks-input{font-size:14px}.brycks-input-wrapper--lg .brycks-input{font-size:15px}.brycks-input-wrapper--disabled .brycks-input{cursor:not-allowed}.brycks-input-left-element,.brycks-input-right-element{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);flex-shrink:0}.brycks-input-wrapper--sm .brycks-input-left-element{padding-left:12px}.brycks-input-wrapper--md .brycks-input-left-element{padding-left:16px}.brycks-input-wrapper--lg .brycks-input-left-element{padding-left:20px}.brycks-input-wrapper--sm .brycks-input-right-element{padding-right:12px}.brycks-input-wrapper--md .brycks-input-right-element{padding-right:16px}.brycks-input-wrapper--lg .brycks-input-right-element{padding-right:20px}.brycks-textarea-wrapper{position:relative;width:100%}.brycks-textarea{width:100%;font-family:var(--brycks-font-sans);color:var(--brycks-foreground-default);border-radius:var(--brycks-radius-default);outline:none;transition:all .2s ease-out;box-shadow:none}.brycks-textarea-wrapper--sm .brycks-textarea{padding:10px;font-size:13px;line-height:1.5}.brycks-textarea-wrapper--md .brycks-textarea{padding:12px;font-size:14px;line-height:1.5}.brycks-textarea-wrapper--lg .brycks-textarea{padding:14px;font-size:15px;line-height:1.5}.brycks-textarea-wrapper--outline .brycks-textarea{background-color:var(--brycks-background-app);border:1px solid var(--brycks-border-default)}.brycks-textarea-wrapper--filled .brycks-textarea{background-color:var(--brycks-background-muted);border:1px solid transparent}.brycks-textarea-wrapper--outline .brycks-textarea:focus,.brycks-textarea-wrapper--filled .brycks-textarea:focus{border-color:var(--brycks-border-focus);box-shadow:0 0 0 3px #5578f426}.brycks-textarea-wrapper--invalid .brycks-textarea{border-color:var(--brycks-error-default)}.brycks-textarea-wrapper--invalid .brycks-textarea:focus{border-color:var(--brycks-error-default);box-shadow:0 0 0 3px #ef444426}.brycks-textarea-wrapper--disabled .brycks-textarea{opacity:.5;cursor:not-allowed;resize:none}.brycks-textarea-count{position:absolute;bottom:8px;right:12px;font-size:11px;color:var(--brycks-foreground-muted);pointer-events:none;transition:color .15s ease-out}.brycks-textarea-count--limit{color:var(--brycks-error-default)}.brycks-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.brycks-list--separated{gap:8px}.brycks-list--bordered{border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg);overflow:hidden}.brycks-list-item{display:flex;align-items:center;background-color:transparent;opacity:1;transition:background-color .15s var(--brycks-ease-out)}.brycks-list--sm .brycks-list-item{gap:10px;padding:8px 12px;min-height:40px}.brycks-list--md .brycks-list-item{gap:12px;padding:12px 16px;min-height:52px}.brycks-list--lg .brycks-list-item{gap:14px;padding:16px 20px;min-height:64px}.brycks-list--default .brycks-list-item,.brycks-list--bordered .brycks-list-item{border-bottom:1px solid var(--brycks-border-muted)}.brycks-list--separated .brycks-list-item{border:1px solid var(--brycks-border-default);border-radius:var(--brycks-radius-lg)}.brycks-list-item--clickable{cursor:pointer}.brycks-list-item--clickable:not(.brycks-list-item--disabled):not(.brycks-list-item--selected):hover{background-color:var(--brycks-background-muted)}.brycks-list-item--selected{background-color:var(--brycks-primary-muted)}.brycks-list-item--disabled{cursor:not-allowed;opacity:.5}.brycks-list-item__element{display:flex;align-items:center;justify-content:center;flex-shrink:0}.brycks-list-item__content{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.brycks-list-item__primary{font-weight:500;color:var(--brycks-foreground-default);line-height:1.4}.brycks-list-item__secondary{color:var(--brycks-foreground-muted);line-height:1.4}.brycks-list--sm .brycks-list-item__primary{font-size:13px}.brycks-list--md .brycks-list-item__primary{font-size:14px}.brycks-list--lg .brycks-list-item__primary{font-size:16px}.brycks-list--sm .brycks-list-item__secondary{font-size:12px}.brycks-list--md .brycks-list-item__secondary{font-size:13px}.brycks-list--lg .brycks-list-item__secondary{font-size:14px}.brycks-list-divider{height:1px;background-color:var(--brycks-border-muted);margin:8px 0}.brycks-list-header{padding:12px 16px 8px;font-size:11px;font-weight:600;color:var(--brycks-foreground-muted);text-transform:uppercase;letter-spacing:.05em}.brycks-treeview{list-style:none;margin:0;padding:4px;outline:none}.brycks-treeview__group{list-style:none;margin:0;padding:0}.brycks-treeview__item{display:flex;align-items:center;gap:6px;color:var(--brycks-foreground-default);background-color:transparent;border-radius:var(--brycks-radius-md);cursor:pointer;user-select:none;transition:background-color .1s var(--brycks-ease-out);position:relative}.brycks-treeview--sm .brycks-treeview__item{padding-top:4px;padding-bottom:4px;padding-right:8px;font-size:12px}.brycks-treeview--md .brycks-treeview__item{padding-top:6px;padding-bottom:6px;padding-right:8px;font-size:14px}.brycks-treeview--lg .brycks-treeview__item{padding-top:8px;padding-bottom:8px;padding-right:8px;font-size:16px}.brycks-treeview__item--selected{background-color:var(--brycks-primary-muted)}.brycks-treeview__item--disabled{color:var(--brycks-foreground-disabled);cursor:not-allowed}.brycks-treeview__item:not(.brycks-treeview__item--disabled):not(.brycks-treeview__item--selected):hover{background-color:var(--brycks-background-muted)}.brycks-treeview__toggle{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);cursor:pointer;flex-shrink:0}.brycks-treeview__icon{display:flex;align-items:center;justify-content:center;color:var(--brycks-foreground-muted);flex-shrink:0}.brycks-treeview__item--selected .brycks-treeview__icon{color:var(--brycks-primary-default)}.brycks-treeview--sm .brycks-treeview__toggle,.brycks-treeview--sm .brycks-treeview__icon{width:12px;height:12px}.brycks-treeview--md .brycks-treeview__toggle,.brycks-treeview--md .brycks-treeview__icon{width:16px;height:16px}.brycks-treeview--lg .brycks-treeview__toggle,.brycks-treeview--lg .brycks-treeview__icon{width:20px;height:20px}.brycks-treeview__label{flex:1}.brycks-treeview__line{position:absolute;top:0;bottom:0;width:1px;background-color:var(--brycks-border-default)}.brycks-pie-chart{display:flex;align-items:center;gap:var(--brycks-space-5);min-width:0}.brycks-pie-chart--legend-bottom{flex-direction:column;align-items:center}.brycks-pie-chart--legend-none{justify-content:center}.brycks-pie-chart--empty{justify-content:center;padding:var(--brycks-space-6)}.brycks-pie-chart__empty{font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-muted)}.brycks-pie-chart__graphic{position:relative;flex-shrink:0}.brycks-pie-chart__svg{width:100%;height:100%;display:block;overflow:visible}.brycks-pie-chart__slice{stroke:var(--brycks-background-elevated);stroke-width:1.5;stroke-linejoin:round}.brycks-pie-chart__hole{fill:var(--brycks-background-elevated)}.brycks-pie-chart__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none;text-align:center}.brycks-pie-chart__center>*{max-width:calc(var(--brycks-pie-chart-hole, 100%) * .78)}.brycks-pie-chart__center-value{font-size:min(var(--brycks-fs-h6),calc(var(--brycks-pie-chart-hole, 9999px) * .26));font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--brycks-foreground-default);font-variant-numeric:tabular-nums}.brycks-pie-chart__center-label{font-size:min(var(--brycks-fs-ui-xs),calc(var(--brycks-pie-chart-hole, 9999px) * .11));font-weight:500;letter-spacing:.02em;line-height:1.2;color:var(--brycks-foreground-muted);text-wrap:balance;overflow-wrap:anywhere;hyphens:auto}.brycks-pie-chart__legend{display:flex;flex-direction:column;gap:var(--brycks-space-2);margin:0;padding:0;list-style:none;min-width:0;flex:1}.brycks-pie-chart--legend-bottom .brycks-pie-chart__legend{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--brycks-space-2) var(--brycks-space-4);flex:0 1 auto}.brycks-pie-chart__legend-item{display:flex;align-items:center;gap:var(--brycks-space-2);min-width:0;font-size:var(--brycks-fs-body-base);color:var(--brycks-foreground-muted)}.brycks-pie-chart__legend-dot{width:8px;height:8px;border-radius:var(--brycks-radius-full);flex-shrink:0}.brycks-pie-chart__legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brycks-pie-chart__legend-value{font-weight:600;color:var(--brycks-foreground-default);font-variant-numeric:tabular-nums;flex-shrink:0}.brycks-pie-chart__legend-share{font-size:var(--brycks-fs-ui-xs);color:var(--brycks-foreground-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:4ch;text-align:right}@media (forced-colors: active){.brycks-pie-chart__slice{stroke:CanvasText}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brycks/core-front",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Brycks Design System - A modern, calm, and tactile UI component library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",