/* HDS DonutChart V1 — component-owned geometry presentation and semantic theme tokens. */
/* Public hook'lar (T3.4 · 19.10.2026): --hds-donut-color-<renk> (semantik renk başına palet), --hds-donut-legend-padding, --hds-donut-legend-font-size; tüketici kendi sarmalayıcısında tanımlar. */
.hds-donut-chart { --donut-size:260px; --donut-ink:var(--color-text,#203447); --donut-focus:var(--color-info,#176da6); margin:0; min-width:0; width:100%; container:donut-chart / inline-size; color:var(--donut-ink); font-family:inherit; }
.hds-donut-chart,.hds-donut-chart * { box-sizing:border-box; }
.hds-donut-chart--sm { --donut-size:200px; }
.hds-donut-chart--lg { --donut-size:320px; }
.hds-donut-chart__layout { display:grid; grid-template-columns:minmax(0,var(--donut-size)) minmax(0,1fr); align-items:center; gap:24px; }
.hds-donut-chart--bottom .hds-donut-chart__layout { grid-template-columns:minmax(0,1fr); }
.hds-donut-chart__frame { position:relative; width:min(100%,var(--donut-size)); aspect-ratio:1; justify-self:center; }
.hds-donut-chart__svg { display:block; width:100%; height:100%; overflow:visible; }
.hds-donut-chart__track { stroke:var(--color-border,#e2e8f0); }
.hds-donut-chart__slice { fill:var(--donut-color); transform:translate(var(--donut-x,0px),var(--donut-y,0px)); transition:transform 180ms ease,filter 180ms ease; transform-box:view-box; }
.hds-donut-chart.is-interactive .hds-donut-chart__slice { cursor:pointer; touch-action:manipulation; }
.hds-donut-chart__slice.is-selected { filter:drop-shadow(0 3px 2px rgb(15 23 42 / 28%)); stroke:var(--color-surface,#fff); stroke-width:1; }
.hds-donut-chart__slice:focus-visible { outline:none; stroke:var(--donut-focus); stroke-width:3; filter:drop-shadow(0 0 2px var(--donut-focus)); }
.hds-donut-chart__center { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:53%; max-height:48%; display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; pointer-events:none; }
.hds-donut-chart--thick .hds-donut-chart__center { width:40%; }
.hds-donut-chart__value { display:block; width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:clamp(18px,8cqi,32px); line-height:1.2; font-weight:800; font-variant-numeric:tabular-nums; }
.hds-donut-chart__label { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; width:100%; overflow:hidden; overflow-wrap:anywhere; line-height:1.35; font-size:13px; color:var(--color-text-muted,#64748b); }
.hds-donut-chart__legend { list-style:none; margin:0; padding:0; min-width:0; display:grid; gap:5px; }
.hds-donut-chart__legend[hidden] { display:none; }
.hds-donut-chart__legend-item { display:grid; grid-template-columns:12px minmax(0,1fr) auto; gap:10px; align-items:center; width:100%; min-height:44px; padding:var(--hds-donut-legend-padding,9px 12px); margin:0; border:1px solid transparent; border-radius:12px; background:transparent; color:inherit; text-align:left; font:inherit; font-size:var(--hds-donut-legend-font-size,14px); }
button.hds-donut-chart__legend-item:enabled { cursor:pointer; touch-action:manipulation; }
button.hds-donut-chart__legend-item:disabled { opacity:1; }
.hds-donut-chart__legend-item.is-selected { background:var(--color-surface-soft,#f1f5f9); border-color:var(--donut-focus); }
.hds-donut-chart__legend-item:focus-visible { outline:3px solid var(--donut-focus); outline-offset:2px; }
.hds-donut-chart__swatch { width:10px; height:10px; border-radius:3px; background:var(--donut-color); }
.hds-donut-chart__legend-label { overflow-wrap:anywhere; min-width:0; }
.hds-donut-chart__legend-value { font-weight:750; font-variant-numeric:tabular-nums; }
.hds-donut-chart__empty { margin:8px 0 0; text-align:center; color:var(--color-text-muted,#64748b); font-size:13px; }
.hds-donut-chart__status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.hds-donut-chart .color-success { --donut-color:var(--hds-donut-color-success,var(--color-success,var(--button-success-background,#198754))); }
.hds-donut-chart .color-warning { --donut-color:var(--hds-donut-color-warning,var(--color-warning,var(--button-warning-background,#f4b740))); }
.hds-donut-chart .color-danger { --donut-color:var(--hds-donut-color-danger,var(--color-danger,var(--button-danger-background,#dc3545))); }
.hds-donut-chart .color-info { --donut-color:var(--hds-donut-color-info,var(--color-info,var(--button-info-background,#2878b8))); }
.hds-donut-chart .color-primary { --donut-color:var(--hds-donut-color-primary,var(--color-primary,var(--button-primary-background,#073343))); }
.hds-donut-chart .color-secondary { --donut-color:var(--hds-donut-color-secondary,var(--color-secondary,var(--button-secondary-background,#6c757d))); }
.hds-donut-chart .color-neutral { --donut-color:var(--hds-donut-color-neutral,var(--color-text-muted,#94a3b8)); }
@container donut-chart (max-width:480px) { .hds-donut-chart__layout { grid-template-columns:minmax(0,1fr); gap:12px; } }
@media(hover:hover) { .hds-donut-chart.is-interactive .hds-donut-chart__slice:not(.is-selected):hover { filter:brightness(1.08); } button.hds-donut-chart__legend-item:enabled:hover { background:var(--color-surface-soft,#f1f5f9); } }
@media(prefers-reduced-motion:reduce) { .hds-donut-chart__slice { transition:none; } }
@media(forced-colors:active) { .hds-donut-chart__slice { stroke:CanvasText; stroke-width:1; } .hds-donut-chart__slice.is-selected { stroke:Highlight; stroke-width:3; } .hds-donut-chart__legend-item.is-selected { border-color:Highlight; } }
