/* Accordion ACCORDION_CSS */
.ds-acc{width:100%;}
.ds-acc-item{border-bottom:1px solid var(--border-default);}
.ds-acc-item:first-child{border-top:1px solid var(--border-default);}
.ds-acc-trigger{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);
  padding:0 2px;min-height:calc(var(--row-h) + 8px);background:transparent;border:0;cursor:pointer;font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;
  letter-spacing:-0.01em;color:var(--fg-1);text-align:start;line-height:var(--lh-body);transition:color var(--motion-fast);}
.ds-acc-trigger:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.ds-acc-trigger:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:calc(var(--radius) - 2px);}
.ds-acc-trigger:disabled{opacity:.5;cursor:not-allowed;}
.ds-acc-chev{flex:none;color:var(--fg-3);transition:transform var(--motion-base) var(--ease-standard);display:inline-flex;}
.ds-acc-trigger[aria-expanded="true"] .ds-acc-chev{transform:rotate(180deg);}
.ds-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--motion-base) ease;}
.ds-acc-panel[data-open="true"]{grid-template-rows:1fr;}
.ds-acc-panel > div{overflow:hidden;}
.ds-acc-panel p{margin:0;padding:0 2px var(--panel-pad);font-size:var(--font-body);letter-spacing:0.005em;color:var(--fg-2);line-height:var(--lh-body);}
@media (prefers-reduced-motion: reduce){.ds-acc-panel{transition:none;}}

/* Alert ALERT_CSS */
.ds-alert{position:relative;display:grid;grid-template-columns:var(--icon) minmax(0,1fr) auto;column-gap:var(--sp-8);align-items:start;
  border:1px solid var(--ds-alert-bd,var(--border-default));border-radius:var(--radius);padding:var(--panel-pad) calc(var(--panel-pad) + 2px);
  background:var(--ds-alert-bg,var(--surface-1));font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);box-sizing:border-box;color:var(--fg-1);}
.ds-alert > svg{width:var(--icon);height:var(--icon);margin-top:calc((var(--lh-body) - var(--icon)) / 2);grid-column:1;grid-row:1 / span 2;color:var(--ds-alert-ic,var(--fg-2));}
.ds-alert-title{grid-column:2;font-weight:500;color:var(--ds-alert-title,var(--fg-1));}
.ds-alert-desc{grid-column:2;color:var(--fg-2);font-variant-numeric:tabular-nums;}
.ds-alert-title + .ds-alert-desc{margin-top:2px;}
.ds-alert-action{grid-column:3;grid-row:1 / span 2;align-self:center;display:flex;gap:var(--sp-8);}
.ds-alert-desc a{color:var(--fg-1);}

/* AlertDialog ALERT_DIALOG_CSS */
@keyframes dsAdlgScrim{from{opacity:0;}to{opacity:1;}}
@keyframes dsAdlgPop{from{opacity:0;transform:translate(-50%,-48%) scale(.96);}to{opacity:1;transform:translate(-50%,-50%) scale(1);}}
.ds-adlg-scrim{position:fixed;inset:0;z-index:1000;background:rgba(9,9,11,.55);animation:dsAdlgScrim var(--motion-fast) both;}
.ds-adlg{position:fixed;top:50%;left:50%;z-index:1001;transform:translate(-50%,-50%);width:calc(100vw - 32px);max-width:400px;
  box-sizing:border-box;background:var(--surface-3);font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-1);border:1px solid var(--border-default);border-radius:calc(var(--radius) + 2px);
  box-shadow:var(--shadow-surface-3);padding:calc(var(--panel-pad) + 8px);font-family:var(--font-sans);animation:dsAdlgPop var(--motion-base) cubic-bezier(0.16,1,0.3,1) both;}
.ds-adlg-btn{height:var(--control-h);padding:0 calc(var(--pad-x) + 2px);border-radius:var(--radius);font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;
  letter-spacing:-0.025em;cursor:pointer;border:1px solid transparent;}
.ds-adlg-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-adlg-btn[data-kind="cancel"]{background:var(--surface-1);color:var(--fg-1);border-color:var(--border-control);}
.ds-adlg-btn[data-kind="cancel"]:hover{background:var(--hover-bg);}
.ds-adlg-btn[data-kind="action"]{background:var(--btn-primary-bg);color:var(--btn-primary-fg);}
.ds-adlg-btn[data-kind="action"]:hover{background:var(--btn-primary-bg-hover);}
.ds-adlg-btn[data-variant="destructive"]{background:var(--btn-danger-bg);color:var(--btn-danger-fg);}
.ds-adlg-btn[data-variant="destructive"]:hover{background:var(--btn-danger-bg-hover);}
@media (prefers-reduced-motion: reduce){.ds-adlg-scrim,.ds-adlg{animation:none;}}

/* Attachment ATTACHMENT_CSS */
.ds-att-group{display:flex;flex-wrap:wrap;gap:10px;}
.ds-att{position:relative;display:flex;align-items:center;gap:10px;box-sizing:border-box;
  border:1px solid var(--border-default);border-radius:var(--radius);background:var(--surface-1);
  padding:10px;font-family:var(--font-sans);color:var(--fg-1);max-width:100%;
  box-shadow:var(--shadow-1);transition:border-color .12s,background .12s;}
.ds-att:hover{border-color:var(--border-control);}
.ds-att[data-orientation="vertical"]{flex-direction:column;align-items:stretch;width:132px;padding:8px;gap:8px;}
.ds-att[data-state="uploading"]{background:var(--bg-muted);}
.ds-att[data-state="error"]{border-color:color-mix(in srgb,var(--btn-danger-bg) 55%,var(--border-default));}

.ds-att-media{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:var(--control-h);border-radius:var(--radius);background:var(--bg-muted);
  color:var(--fg-2);overflow:hidden;}
.ds-att-media svg{width:18px;height:18px;display:block;}
.ds-att-media[data-variant="image"]{background:var(--bg-muted);}
.ds-att-media[data-variant="image"] img{width:100%;height:100%;object-fit:cover;display:block;}
.ds-att[data-orientation="vertical"] .ds-att-media{width:100%;height:96px;border-radius:calc(var(--radius) - 2px);}

.ds-att-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.ds-att[data-orientation="vertical"] .ds-att-content{gap:1px;}
.ds-att-title{font-size:var(--font-body);font-weight:500;letter-spacing:-0.005em;color:var(--fg-1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-att-desc{font-size:calc(var(--font-body) - 1px);line-height:1.4;color:var(--fg-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.ds-att-actions{flex:none;display:inline-flex;align-items:center;gap:2px;margin-inline-start:auto;}
.ds-att[data-orientation="vertical"] .ds-att-actions{position:absolute;top:6px;inset-inline-end:6px;margin:0;}
.ds-att-action{appearance:none;border:0;background:transparent;cursor:pointer;
  width:24px;height:24px;border-radius:calc(var(--radius) - 2px);display:inline-flex;align-items:center;
  justify-content:center;color:var(--fg-3);transition:background .1s,color .1s;padding:0;}
.ds-att-action:hover{background:var(--bg-muted);color:var(--fg-1);}
.ds-att[data-orientation="vertical"] .ds-att-action{background:var(--surface-1);
  box-shadow:var(--shadow-1);}
.ds-att-action svg{width:14px;height:14px;display:block;}

/* uploading progress hairline along the bottom edge */
.ds-att[data-state="uploading"]::after{content:"";position:absolute;left:0;right:0;bottom:0;
  height:2px;border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);
  background:linear-gradient(90deg,var(--accent-violet),var(--accent-teal));
  background-size:200% 100%;animation:ds-att-load 1.1s ease-in-out infinite;}
@keyframes ds-att-load{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

/* Badge BADGE_AI_CSS */
span[data-ds-badge][data-ai]{background:transparent;color:var(--fg-1);position:relative;isolation:isolate;}
span[data-ds-badge][data-ai]::before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;background:var(--prism);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;}
span[data-ds-badge][data-ai] .ds-badge-aiic{display:inline-flex;align-items:center;color:var(--fg-3);}
span[data-ds-badge] .ds-badge-pulse{width:6px;height:6px;border-radius:9999px;background:var(--live-solid);flex:none;}

/* Bubble BUBBLE_CSS */
.ds-bubble-group{display:flex;flex-direction:column;gap:3px;}
.ds-bubble{display:flex;flex-direction:column;width:fit-content;max-width:82%;
  font-family:var(--font-sans);}
.ds-bubble[data-align="start"]{align-self:flex-start;}
.ds-bubble[data-align="end"]{align-self:flex-end;}

.ds-bubble-content{width:fit-content;max-width:100%;padding:9px 14px;font-size:var(--font-body);
  line-height:1.45;border-radius:16px;box-sizing:border-box;text-wrap:pretty;
  word-break:break-word;}
.ds-bubble[data-variant="default"] .ds-bubble-content{background:var(--bg-inverse);
  color:var(--fg-inverse);}
.ds-bubble[data-variant="muted"] .ds-bubble-content{background:var(--bg-muted);
  color:var(--fg-1);}

/* Collapse adjoining corners within a same-sender group */
.ds-bubble-group .ds-bubble[data-align="end"]:not(:only-child) .ds-bubble-content{border-bottom-right-radius:6px;border-top-right-radius:6px;}
.ds-bubble-group .ds-bubble[data-align="end"]:first-child .ds-bubble-content{border-top-right-radius:16px;}
.ds-bubble-group .ds-bubble[data-align="end"]:last-child .ds-bubble-content{border-bottom-right-radius:16px;}
.ds-bubble-group .ds-bubble[data-align="start"]:not(:only-child) .ds-bubble-content{border-bottom-left-radius:6px;border-top-left-radius:6px;}
.ds-bubble-group .ds-bubble[data-align="start"]:first-child .ds-bubble-content{border-top-left-radius:16px;}
.ds-bubble-group .ds-bubble[data-align="start"]:last-child .ds-bubble-content{border-bottom-left-radius:16px;}

/* Reactions · a single pill clipped to the bubble's lower-right edge; holds one
   or more emoji (multi-emoji stay grouped together in the same pill). */
.ds-bubble-reactions{align-self:flex-end;display:inline-flex;align-items:center;gap:4px;
  margin-top:-8px;z-index:1;width:fit-content;height:22px;padding:0 8px;border-radius:11px;
  background:var(--surface-1);border:1px solid var(--border-default);box-shadow:var(--shadow-1);}
.ds-bubble-reactions span{display:inline-flex;align-items:center;font-size:calc(var(--font-body) - 1px);line-height:1;
  color:var(--fg-2);}

/* Button BUTTON_CSS */
button[data-ds-btn]{transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast),color var(--motion-fast);}
button[data-ds-btn]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
button[data-ds-btn] svg{width:var(--icon);height:var(--icon);flex:none;}
button[data-ds-btn][data-variant="primary"]{background:var(--btn-primary-bg);color:var(--btn-primary-fg);}
button[data-ds-btn][data-variant="primary"]:hover:not(:disabled){background:var(--btn-primary-bg-hover);}
button[data-ds-btn][data-variant="primary"]:active:not(:disabled){background:var(--btn-primary-bg-active);}
button[data-ds-btn][data-variant="secondary"]{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg);}
button[data-ds-btn][data-variant="secondary"]:hover:not(:disabled){background:var(--btn-secondary-bg-hover);}
button[data-ds-btn][data-variant="secondary"]:active:not(:disabled){background:var(--btn-secondary-bg-active);}
button[data-ds-btn][data-variant="outline"]{background:var(--surface-1);color:var(--fg-1);border:1px solid var(--border-control);}
button[data-ds-btn][data-variant="outline"]:hover:not(:disabled){background:var(--hover-bg);}
button[data-ds-btn][data-variant="outline"]:active:not(:disabled){background:var(--bg-muted);}
button[data-ds-btn][data-variant="ghost"]{background:transparent;color:var(--fg-2);}
button[data-ds-btn][data-variant="ghost"]:hover:not(:disabled){background:var(--hover-bg);color:var(--fg-1);}
button[data-ds-btn][data-variant="ghost"]:active:not(:disabled){background:var(--bg-muted);color:var(--fg-1);}
button[data-ds-btn][data-variant="danger"]{background:var(--btn-danger-bg);color:var(--btn-danger-fg);}
button[data-ds-btn][data-variant="danger"]:hover:not(:disabled){background:var(--btn-danger-bg-hover);}
button[data-ds-btn][data-variant="danger"]:active:not(:disabled){background:var(--btn-danger-bg-active);}
button[data-ds-btn][data-variant="link"]{background:transparent;color:var(--fg-1);padding-left:2px;padding-right:2px;height:auto;}
button[data-ds-btn][data-variant="link"]:hover:not(:disabled){text-decoration:underline;text-underline-offset:3px;}
button[data-ds-btn][data-variant="ai"]{background:var(--surface-1);color:var(--fg-1);position:relative;isolation:isolate;}
button[data-ds-btn][data-variant="ai"]:hover:not(:disabled){background:var(--hover-bg);}
button[data-ds-btn][data-variant="ai"]::before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;background:var(--prism);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;}
button[data-ds-btn][data-halo]::after{content:"";position:absolute;inset:-6px;z-index:-1;border-radius:calc(var(--radius) + 6px);background:var(--prism);filter:blur(14px);opacity:.22;}
button[data-ds-btn][data-loading]{cursor:progress;}
button[data-ds-btn] .ds-btn-kbd{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:500;padding:1px 4px;border-radius:max(2px,calc(var(--radius) - 2px));background:color-mix(in srgb,currentColor 14%,transparent);opacity:.9;margin-inline-start:2px;}
.ds-btn-spinner{display:inline-block;width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dsBtnSpin .7s linear infinite;flex:none;box-sizing:border-box;}
@keyframes dsBtnSpin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){.ds-btn-spinner{animation-duration:1.6s;}}
.ds-split{display:inline-flex;position:relative;}
.ds-split>button[data-ds-btn]:first-child{border-start-end-radius:0;border-end-end-radius:0;}
.ds-split>button[data-ds-btn]:nth-child(2){border-start-start-radius:0;border-end-start-radius:0;margin-inline-start:1px;}
.ds-split>button[data-variant="outline"]:nth-child(2){margin-inline-start:-1px;}
.ds-split-menu{position:absolute;top:calc(100% + 4px);inset-inline-end:0;min-width:200px;z-index:50;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);padding:var(--sp-4);font-family:var(--font-sans);font-size:var(--font-body);}
.ds-split-item{display:flex;align-items:center;gap:var(--sp-8);width:100%;height:var(--control-h-sm);padding:0 var(--pad-x);border:0;background:transparent;color:var(--fg-1);border-radius:calc(var(--radius) - 2px);font:inherit;cursor:pointer;text-align:start;}
.ds-split-item[data-active],.ds-split-item:hover{background:var(--hover-bg);}
.ds-split-item:disabled{color:var(--fg-4);cursor:not-allowed;background:transparent;}
.ds-split-item .k{margin-inline-start:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-3);}

/* Calendar CAL_CSS */
.ds-cal{width:max-content;box-sizing:border-box;padding:var(--panel-pad);font-family:var(--font-sans);font-size:var(--font-body);color:var(--fg-1);}
.ds-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-8);}
.ds-cal-title{font-weight:600;font-variant-numeric:tabular-nums;}
.ds-cal-nav{width:var(--control-h-sm);height:var(--control-h-sm);border:0;border-radius:var(--radius);background:transparent;color:var(--fg-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.ds-cal-nav:hover{background:var(--hover-bg);color:var(--fg-1);}
.ds-cal-nav svg{width:var(--icon);height:var(--icon);}
.ds-cal-grid{display:grid;grid-template-columns:repeat(7,var(--control-h));row-gap:2px;}
.ds-cal-dow{text-align:center;font-size:var(--text-2xs);line-height:var(--text-2xs-lh);color:var(--fg-3);padding-bottom:var(--sp-4);}
.ds-cal-day{height:var(--control-h);border:0;background:transparent;color:var(--fg-1);font:400 var(--font-body)/1 var(--font-sans);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:var(--radius);}
.ds-cal-day:hover:not(:disabled){background:var(--hover-bg);}
.ds-cal-day[data-out]{color:var(--fg-3);}
.ds-cal-day[data-today]{box-shadow:inset 0 0 0 1px var(--border-control);font-weight:600;}
.ds-cal-day[data-range]{background:var(--selection-bg);border-radius:0;}
.ds-cal-day[data-sel]{background:var(--btn-primary-bg);color:var(--btn-primary-fg);font-weight:600;border-radius:var(--radius);}
.ds-cal-day:disabled{color:var(--fg-4);cursor:not-allowed;text-decoration:line-through;}
.ds-cal-day:focus-visible,.ds-cal-nav:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-dp{position:relative;display:inline-flex;flex-direction:column;gap:var(--sp-4);font-family:var(--font-sans);}
.ds-dp-field{display:flex;align-items:center;gap:var(--sp-6);height:var(--control-h);box-sizing:border-box;padding:0 calc(var(--pad-x) - 4px) 0 var(--pad-x);background:var(--surface-1);border:1px solid var(--border-control);border-radius:var(--radius);color:var(--fg-1);transition:border-color var(--motion-fast);}
.ds-dp-field:hover{border-color:var(--fg-3);}
.ds-dp-field:focus-within{border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring);}
.ds-dp-field[data-invalid]{border-color:var(--critical-fg);}
.ds-dp-field[data-readonly]{background:var(--bg-muted);border-style:dashed;border-color:var(--border-default);}
.ds-dp-field[data-disabled]{opacity:.5;}
.ds-dp-field input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:inherit;font:400 var(--font-body)/1 var(--font-sans);font-variant-numeric:tabular-nums;padding:0;}
.ds-dp-field input::placeholder{color:var(--fg-3);opacity:1;}
.ds-dp-tz{font:500 var(--text-2xs)/1 var(--font-mono);color:var(--fg-3);}
.ds-dp-btn{width:calc(var(--control-h) - 8px);height:calc(var(--control-h) - 8px);border:0;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--fg-3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.ds-dp-btn:hover{background:var(--hover-bg);color:var(--fg-1);}
.ds-dp-btn svg{width:var(--icon);height:var(--icon);}
.ds-dp-pop{position:absolute;top:calc(100% + 4px);inset-inline-start:0;z-index:50;display:flex;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);}
.ds-dp-side{display:flex;flex-direction:column;gap:2px;padding:var(--sp-8);border-inline-end:1px solid var(--border-subtle);min-width:150px;}
.ds-dp-tabs{display:flex;gap:2px;margin-bottom:var(--sp-6);}
.ds-dp-tab,.ds-dp-preset{height:var(--control-h-sm);padding:0 var(--pad-x);border:0;border-radius:calc(var(--radius) - 2px);background:transparent;color:var(--fg-2);font:500 var(--font-body)/1 var(--font-sans);cursor:pointer;text-align:start;white-space:nowrap;}
.ds-dp-tab[aria-selected="true"]{background:var(--bg-muted);color:var(--fg-1);box-shadow:inset 0 0 0 1px var(--border-default);}
.ds-dp-preset:hover,.ds-dp-tab:hover{background:var(--hover-bg);color:var(--fg-1);}
.ds-dp-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:var(--panel-pad);width:calc(var(--control-h) * 7);box-sizing:content-box;}
.ds-dp-per{height:calc(var(--control-h) + 8px);border:0;border-radius:var(--radius);background:transparent;color:var(--fg-1);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font:500 var(--font-body)/1 var(--font-mono);}
.ds-dp-per small{font:400 var(--text-2xs)/1 var(--font-sans);color:var(--fg-3);}
.ds-dp-per:hover{background:var(--hover-bg);}
.ds-dp-per[data-sel]{background:var(--btn-primary-bg);color:var(--btn-primary-fg);}
.ds-dp-per[data-sel] small{color:inherit;opacity:.8;}
.ds-dp-msg{font-size:var(--text-2xs);line-height:var(--text-2xs-lh);color:var(--fg-3);}
.ds-dp-msg[data-err]{color:var(--critical-fg);}

/* Carousel CAROUSEL_CSS */
.ds-carousel{position:relative;outline:none;}
.ds-carousel-viewport{overflow:hidden;}
.ds-carousel-track{display:flex;gap:16px;}
.ds-carousel[data-orientation="vertical"] .ds-carousel-track{flex-direction:column;}
.ds-carousel-item{flex:0 0 100%;min-width:0;scroll-snap-align:start;}
.ds-carousel-arrow{position:absolute;display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:var(--control-h-sm);border-radius:var(--r-pill);background:var(--surface-1);color:var(--fg-1);
  border:1px solid var(--border-default);box-shadow:var(--shadow-2);cursor:pointer;z-index:2;
  transition:background var(--motion-fast),opacity var(--motion-fast),border-color var(--motion-fast);}
.ds-carousel-arrow:hover:not(:disabled){background:var(--bg-muted);}
.ds-carousel-arrow:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}
.ds-carousel-arrow:disabled{opacity:.4;cursor:default;}
.ds-carousel-arrow svg{width:17px;height:17px;}
.ds-carousel[data-orientation="horizontal"] .ds-carousel-prev{left:-42px;top:50%;transform:translateY(-50%);}
.ds-carousel[data-orientation="horizontal"] .ds-carousel-next{right:-42px;top:50%;transform:translateY(-50%);}
.ds-carousel[data-orientation="vertical"] .ds-carousel-prev{top:-42px;left:50%;transform:translateX(-50%);}
.ds-carousel[data-orientation="vertical"] .ds-carousel-next{bottom:-42px;left:50%;transform:translateX(-50%);}
@media (prefers-reduced-motion: reduce){.ds-carousel-viewport{scroll-behavior:auto;}}

/* Chart CHART_CSS */
.ds-chart{display:flex;justify-content:center;width:100%;font-family:var(--font-sans);
  font-size:calc(var(--font-body) - 1px);line-height:1;color:var(--fg-2);}
.ds-chart .recharts-cartesian-axis-tick text{fill:var(--fg-3);}
.ds-chart .recharts-cartesian-axis-line,
.ds-chart .recharts-cartesian-axis line{stroke:transparent;}
.ds-chart .recharts-cartesian-grid line{stroke:var(--border-default);}
.ds-chart .recharts-cartesian-grid line[stroke='#ccc']{stroke:var(--border-default);}
.ds-chart .recharts-curve.recharts-tooltip-cursor{stroke:var(--border-control);}
.ds-chart .recharts-polar-grid line[stroke='#ccc']{stroke:var(--border-default);}
.ds-chart .recharts-radial-bar-background-sector{fill:var(--bg-muted);}
.ds-chart .recharts-rectangle.recharts-tooltip-cursor{fill:var(--bg-muted);}
.ds-chart .recharts-reference-line line[stroke='#ccc']{stroke:var(--border-default);}
.ds-chart .recharts-dot[stroke='#fff']{stroke:transparent;}
.ds-chart .recharts-layer,
.ds-chart .recharts-sector,
.ds-chart .recharts-surface{outline:none;}
.ds-chart .recharts-sector[stroke='#fff']{stroke:transparent;}
.ds-chart .recharts-text{fill:var(--fg-3);}
.ds-chart .recharts-legend-item-text{color:var(--fg-2)!important;}

.ds-chart-tt{display:grid;min-width:8rem;align-items:start;gap:6px;
  border-radius:var(--radius);border:1px solid var(--border-default);background:var(--surface-1);
  padding:8px 10px;font-size:calc(var(--font-body) - 1px);box-shadow:var(--shadow-surface-2);color:var(--fg-1);}
.ds-chart-tt-label{font-weight:600;color:var(--fg-1);}
.ds-chart-tt-items{display:grid;gap:6px;}
.ds-chart-tt-row{display:flex;width:100%;flex-wrap:wrap;align-items:stretch;gap:8px;
  align-items:center;}
.ds-chart-tt-row.is-dot{align-items:center;}
.ds-chart-tt-ind{flex-shrink:0;border-radius:2px;background:var(--_c);border-color:var(--_c);}
.ds-chart-tt-ind.dot{width:10px;height:10px;border-radius:50%;}
.ds-chart-tt-ind.line{width:10px;height:3px;}
.ds-chart-tt-ind.dashed{width:0;height:0;border:1.5px dashed var(--_c);background:transparent;
  margin:2px 0;width:10px;}
.ds-chart-tt-labels{display:flex;flex:1;justify-content:space-between;line-height:1;
  align-items:center;gap:12px;}
.ds-chart-tt-name{color:var(--fg-3);}
.ds-chart-tt-val{font-family:var(--font-mono);font-weight:600;color:var(--fg-1);
  font-variant-numeric:tabular-nums;}

.ds-chart-lg{display:flex;align-items:center;justify-content:center;gap:16px;
  padding-top:12px;flex-wrap:wrap;}
.ds-chart-lg.top{padding-top:0;padding-bottom:12px;}
.ds-chart-lg-item{display:flex;align-items:center;gap:6px;font-size:calc(var(--font-body) - 1px);color:var(--fg-2);}
.ds-chart-lg-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;background:var(--_c);}

/* Checkbox CHECKBOX_CSS */
label[data-ds-checkbox]{display:inline-flex;align-items:center;gap:var(--sp-8);min-height:max(24px,var(--control-h-sm));cursor:pointer;font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-1);position:relative;}
label[data-ds-checkbox][data-disabled]{cursor:not-allowed;opacity:.5;}
label[data-ds-checkbox] .box{width:var(--icon);height:var(--icon);box-sizing:border-box;flex:none;border-radius:max(3px,calc(var(--radius) - 2px));border:1px solid var(--border-control);background:var(--surface-1);display:inline-flex;align-items:center;justify-content:center;color:var(--btn-primary-fg);transition:background-color var(--motion-fast),border-color var(--motion-fast);}
label[data-ds-checkbox]:hover:not([data-disabled]) .box{border-color:var(--fg-2);}
label[data-ds-checkbox][data-on] .box{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);}
label[data-ds-checkbox][data-invalid] .box{border-color:var(--critical-fg);}
label[data-ds-checkbox] > input:focus-visible + .box{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
label[data-ds-checkbox] .box svg{width:calc(var(--icon) - 4px);height:calc(var(--icon) - 4px);}

/* Combobox COMBO_CSS */
.ds-cb-in{display:flex;align-items:center;gap:var(--sp-6);width:100%;height:var(--control-h);box-sizing:border-box;padding:0 calc(var(--pad-x) - 2px) 0 var(--pad-x);
  background:var(--surface-1);color:var(--fg-1);border:1px solid var(--border-control);border-radius:var(--radius);cursor:text;transition:border-color var(--motion-fast);}
.ds-cb-in:hover{border-color:var(--fg-3);}
.ds-cb-in:focus-within{border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring);}
.ds-cb-in[data-invalid]{border-color:var(--critical-fg);}
.ds-cb-in[data-disabled]{opacity:.5;cursor:not-allowed;}
.ds-cb-in input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:inherit;font-family:var(--font-sans);font-size:var(--font-body);padding:0;}
.ds-cb-in input::placeholder{color:var(--fg-3);opacity:1;}
.ds-cb-in svg{width:var(--icon);height:var(--icon);color:var(--fg-3);flex:none;}
.ds-cb-pop{position:absolute;top:calc(100% + 4px);inset-inline-start:0;width:100%;min-width:220px;z-index:50;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);overflow:hidden;font-family:var(--font-sans);font-size:var(--font-body);}
.ds-cb-list{max-height:240px;overflow:auto;padding:var(--sp-4);}
.ds-cb-lbl{padding:var(--sp-6) var(--pad-x) var(--sp-2);font-size:var(--text-2xs);line-height:var(--text-2xs-lh);font-weight:500;color:var(--fg-3);}
.ds-cb-opt{display:flex;align-items:center;gap:var(--sp-8);height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:calc(var(--radius) - 2px);cursor:pointer;color:var(--fg-1);}
.ds-cb-opt[data-active]{background:var(--hover-bg);}
.ds-cb-opt .chk{width:var(--icon);display:inline-flex;flex:none;}
.ds-cb-opt .chk svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);}
.ds-cb-opt .hint{margin-inline-start:auto;font-size:var(--text-2xs);color:var(--fg-3);font-family:var(--font-mono);}
.ds-cb-opt mark{background:transparent;color:inherit;font-weight:600;}
.ds-cb-status{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--pad-x);color:var(--fg-3);}
.ds-cb-spin{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dsCbSpin .7s linear infinite;box-sizing:border-box;flex:none;}
@keyframes dsCbSpin{to{transform:rotate(360deg);}}
.ds-cb-create{border-top:1px solid var(--border-subtle);padding:var(--sp-4);}

/* Command COMMAND_CSS */
.ds-cmd{border:1px solid var(--border-default);border-radius:calc(var(--radius) + 2px);overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow-surface-2);font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-1);}
.ds-cmd-in{display:flex;align-items:center;gap:var(--sp-8);padding:0 var(--panel-pad);height:calc(var(--control-h) + 8px);border-bottom:1px solid var(--border-default);color:var(--fg-3);}
.ds-cmd-in svg{width:var(--icon);height:var(--icon);flex:none;}
.ds-cmd-in input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--fg-1);font-family:var(--font-sans);font-size:var(--text-base);}
.ds-cmd-in input::placeholder{color:var(--fg-3);opacity:1;}
.ds-cmd-verb{display:inline-flex;align-items:center;height:calc(var(--control-h-sm) - 4px);padding:0 var(--sp-6);border-radius:calc(var(--radius) - 2px);background:var(--selection-bg);color:var(--fg-1);border:1px solid var(--selection-border);font-weight:500;white-space:nowrap;}
.ds-cmd-scopes{display:flex;gap:var(--sp-2);padding:var(--sp-4) var(--panel-pad);border-bottom:1px solid var(--border-subtle);}
.ds-cmd-scope{display:inline-flex;align-items:center;gap:var(--sp-4);height:var(--control-h-sm);padding:0 var(--pad-x);border:0;border-radius:var(--radius);background:transparent;color:var(--fg-3);font:500 var(--font-body)/1 var(--font-sans);cursor:pointer;}
.ds-cmd-scope:hover{background:var(--hover-bg);color:var(--fg-1);}
.ds-cmd-scope[aria-selected="true"]{background:var(--bg-muted);color:var(--fg-1);box-shadow:inset 0 0 0 1px var(--border-default);}
.ds-cmd-scope kbd{font:500 var(--text-2xs)/1 var(--font-mono);color:var(--fg-3);}
.ds-cmd-list{padding:var(--sp-4);max-height:340px;overflow:auto;}
.ds-cmd-head{padding:var(--sp-6) var(--pad-x) var(--sp-2);font-size:var(--text-2xs);line-height:var(--text-2xs-lh);font-weight:500;color:var(--fg-3);}
.ds-cmd-item{display:flex;align-items:center;gap:var(--sp-8);height:calc(var(--control-h-sm) + 4px);padding:0 var(--pad-x);border-radius:calc(var(--radius) - 2px);cursor:pointer;color:var(--fg-1);}
.ds-cmd-item[data-active]{background:var(--hover-bg);}
.ds-cmd-item[aria-disabled="true"]{color:var(--fg-4);cursor:default;}
.ds-cmd-item > svg{width:var(--icon);height:var(--icon);color:var(--fg-2);flex:none;}
.ds-cmd-item > span:not(.ds-cmd-k):not(.ds-cmd-hint){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-cmd-hint{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-3);}
.ds-cmd-k{margin-inline-start:auto;display:inline-flex;gap:2px;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-3);}
.ds-cmd-sep{height:1px;background:var(--border-subtle);margin:var(--sp-4) calc(var(--sp-4) * -1);}
.ds-cmd-empty{padding:calc(var(--panel-pad) * 2) var(--pad-x);text-align:center;color:var(--fg-3);}
.ds-cmd-foot{display:flex;gap:var(--sp-12);padding:var(--sp-6) var(--panel-pad);border-top:1px solid var(--border-subtle);font-size:var(--text-2xs);color:var(--fg-3);}
.ds-cmd-foot kbd{font:500 var(--text-2xs)/1 var(--font-mono);border:1px solid var(--border-default);border-bottom-width:2px;border-radius:3px;padding:1px 4px;margin-inline-end:4px;color:var(--fg-2);background:var(--bg-muted);}

/* ContextMenu CTX_MENU_CSS */
.ds-ctx-item:focus{background:var(--hover-bg);outline:0;}
.ds-ctx-item:focus-visible{box-shadow:inset 0 0 0 var(--focus-ring-width) var(--focus-ring);}
.ds-ctx-menu{position:fixed;z-index:1000;min-width:200px;background:var(--surface-2);
  border:1px solid var(--border-default);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);
  padding:var(--sp-4);font-family:var(--font-sans);box-sizing:border-box;}
.ds-ctx-item{display:flex;align-items:center;gap:var(--sp-8);height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:var(--radius);
  font-size:var(--font-body);font-weight:450;letter-spacing:-0.005em;color:var(--fg-1);cursor:default;user-select:none;
  border:0;background:transparent;width:100%;text-align:left;box-sizing:border-box;}
.ds-ctx-item:hover,.ds-ctx-item[data-highlighted="true"]{background:var(--hover-bg);}
.ds-ctx-item[data-disabled="true"]{opacity:.45;pointer-events:none;}
.ds-ctx-item[data-variant="destructive"]{color:var(--critical-fg);}
.ds-ctx-item[data-variant="destructive"] .ds-ctx-ic{color:var(--critical-fg);}
.ds-ctx-item[data-variant="destructive"]:hover{background:var(--critical-bg);}
.ds-ctx-item .ds-ctx-ic{width:var(--icon);height:var(--icon);color:var(--fg-2);flex:none;display:inline-flex;}
.ds-ctx-item .ds-ctx-ic svg{width:var(--icon);height:var(--icon);}
.ds-ctx-txt{flex:1;min-width:0;}
.ds-ctx-shortcut{margin-inline-start:auto;padding-inline-start:var(--sp-16);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-4);letter-spacing:0.04em;}
.ds-ctx-label{font-size:var(--text-2xs);font-weight:600;color:var(--fg-3);letter-spacing:0.02em;padding:var(--sp-6) var(--pad-x) var(--sp-2);}
.ds-ctx-sep{height:1px;background:var(--border-default);margin:var(--sp-4) calc(var(--sp-4) * -1);}
.ds-ctx-mark{width:var(--icon);flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-1);}
.ds-ctx-mark svg{width:var(--icon);height:var(--icon);}
.ds-ctx-dot{width:6px;height:6px;border-radius:9999px;background:var(--fg-1);}
.ds-ctx-chev{margin-inline-start:auto;width:var(--icon);height:var(--icon);color:var(--fg-3);display:inline-flex;}
.ds-ctx-chev svg{width:var(--icon);height:var(--icon);}
.ds-ctx-sub{position:relative;}
.ds-ctx-sub-content{position:absolute;top:calc(var(--sp-4) * -1 - 1px);inset-inline-start:calc(100% + 2px);display:none;min-width:180px;
  background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);
  box-shadow:var(--shadow-surface-2);padding:var(--sp-4);box-sizing:border-box;}
.ds-ctx-sub:hover > .ds-ctx-sub-content{display:block;}
.ds-ctx-sub:hover > .ds-ctx-item{background:var(--hover-bg);}

/* Dialog DIALOG_CSS */
@keyframes dsDialogScrim{from{opacity:0;}to{opacity:1;}}
@keyframes dsDialogPop{from{opacity:0;transform:translate(-50%,-48%);}to{opacity:1;transform:translate(-50%,-50%);}}
.ds-dialog-scrim{position:fixed;inset:0;z-index:1000;background:rgba(9,9,11,.55);animation:dsDialogScrim var(--motion-base) ease both;}
.ds-dialog{position:fixed;top:50%;left:50%;z-index:1001;transform:translate(-50%,-50%);width:calc(100vw - 32px);max-height:calc(100vh - 48px);overflow:auto;
  box-sizing:border-box;background:var(--surface-3);color:var(--fg-1);border:1px solid var(--border-default);border-radius:calc(var(--radius) + 2px);
  box-shadow:var(--shadow-surface-3);padding:calc(var(--panel-pad) + 8px);font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);
  animation:dsDialogPop var(--motion-slow) var(--ease-standard) both;}
.ds-dialog[data-size="sm"]{max-width:400px;}.ds-dialog[data-size="md"]{max-width:640px;}.ds-dialog[data-size="lg"]{max-width:960px;}
.ds-dialog-x{position:absolute;top:calc(var(--panel-pad) + 2px);inset-inline-end:calc(var(--panel-pad) + 2px);width:var(--control-h-sm);height:var(--control-h-sm);border:0;background:transparent;color:var(--fg-3);
  cursor:pointer;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;}
.ds-dialog-x:hover{background:var(--hover-bg);color:var(--fg-1);}
.ds-dialog-x:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-dialog-x svg{width:var(--icon);height:var(--icon);}

/* Drawer DRAWER_CSS */
@keyframes dsDrawerScrim{from{opacity:0;}to{opacity:1;}}
@keyframes dsDrawerInB{from{transform:translateY(100%);}to{transform:translateY(0);}}
@keyframes dsDrawerInR{from{transform:translateX(100%);}to{transform:translateX(0);}}
.ds-drawer-scrim{position:fixed;inset:0;z-index:1000;background:rgba(9,9,11,.55);animation:dsDrawerScrim var(--motion-base) ease both;}
.ds-drawer{position:fixed;z-index:1001;box-sizing:border-box;background:var(--surface-2);color:var(--fg-1);
  box-shadow:var(--shadow-surface-2);font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);display:flex;flex-direction:column;}
.ds-drawer:focus{outline:0;}
.ds-drawer[data-dir="down"]{left:0;bottom:0;width:100%;max-height:88vh;border-top:1px solid var(--border-default);
  border-radius:calc(var(--radius) + 2px) calc(var(--radius) + 2px) 0 0;animation:dsDrawerInB var(--motion-slow) var(--ease-standard) both;}
.ds-drawer[data-dir="right"]{top:0;inset-inline-end:0;height:100%;width:min(420px,calc(100vw - 48px));border-inline-start:1px solid var(--border-default);
  animation:dsDrawerInR var(--motion-slow) var(--ease-standard) both;}
.ds-drawer[data-dragging="true"]{animation:none;transition:none;}
.ds-drawer-handle{width:44px;height:5px;border-radius:9999px;background:var(--border-2);margin:var(--sp-8) auto var(--sp-4);flex:none;cursor:grab;touch-action:none;}
.ds-drawer-handle:active{cursor:grabbing;}
@media (prefers-reduced-motion: reduce){.ds-drawer-scrim,.ds-drawer{animation:none;}}

/* DropdownMenu MENU_CSS */
.ds-menu-wrap{position:relative;display:inline-block;}
.ds-menu{position:absolute;top:calc(100% + 4px);inset-inline-start:0;z-index:50;min-width:200px;font-family:var(--font-sans);font-size:var(--font-body);
  background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);
  box-shadow:var(--shadow-surface-2);padding:var(--sp-4);opacity:0;visibility:hidden;transition:opacity var(--motion-fast),visibility 0s var(--motion-fast);}
.ds-menu[data-align="end"]{inset-inline-start:auto;inset-inline-end:0;}
.ds-menu-wrap[data-open="true"] > .ds-menu{opacity:1;visibility:visible;transition:opacity var(--motion-fast);}
.ds-menu-label{font-size:var(--text-2xs);line-height:var(--text-2xs-lh);font-weight:500;color:var(--fg-3);padding:var(--sp-6) var(--pad-x) var(--sp-2);}
.ds-menu-sep{height:1px;background:var(--border-subtle);margin:var(--sp-4) calc(var(--sp-4) * -1);}
.ds-menu-item{display:flex;align-items:center;gap:var(--sp-8);height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:calc(var(--radius) - 2px);
  font:400 var(--font-body)/1 var(--font-sans);color:var(--fg-1);cursor:pointer;user-select:none;border:0;background:transparent;width:100%;text-align:start;box-sizing:border-box;}
.ds-menu-item:hover,.ds-menu-item:focus,.ds-menu-item[data-highlighted="true"]{background:var(--hover-bg);outline:0;}
.ds-menu-item:focus-visible{box-shadow:inset 0 0 0 var(--focus-ring-width) var(--focus-ring);}
.ds-menu-item[data-disabled="true"]{color:var(--fg-4);pointer-events:none;}
.ds-menu-item .ds-menu-ic{width:var(--icon);height:var(--icon);color:var(--fg-2);flex:none;display:inline-flex;}
.ds-menu-item .ds-menu-ic svg{width:var(--icon);height:var(--icon);}
.ds-menu-item .ds-menu-txt{flex:1;}
.ds-menu-item .ds-menu-kbd{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-3);}
.ds-menu-item[data-destructive="true"],.ds-menu-item[data-destructive="true"] .ds-menu-ic{color:var(--critical-fg);}
.ds-menu-item[data-destructive="true"]:hover,.ds-menu-item[data-destructive="true"]:focus{background:var(--critical-bg);}
.ds-menu-mark{width:var(--icon);height:var(--icon);flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-1);}
.ds-menu-mark svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);}
.ds-menu-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--fg-1);}
.ds-menu-chev{width:var(--icon);height:var(--icon);color:var(--fg-3);display:inline-flex;}
.ds-menu-chev svg{width:var(--icon);height:var(--icon);}
.ds-submenu{position:relative;}
.ds-submenu > .ds-menu{top:calc(var(--sp-4) * -1 - 1px);inset-inline-start:calc(100% + 4px);min-width:180px;}
.ds-submenu:hover > .ds-menu,.ds-submenu:focus-within > .ds-menu,.ds-submenu[data-open="true"] > .ds-menu{opacity:1;visibility:visible;transition:opacity var(--motion-fast);}
.ds-submenu:hover > .ds-menu-item{background:var(--hover-bg);}

/* Input INPUT_CSS */
.ds-in{display:flex;align-items:center;gap:var(--sp-6);height:var(--control-h);box-sizing:border-box;padding:0 var(--pad-x);
  background:var(--surface-1);border:1px solid var(--border-control);border-radius:var(--radius);color:var(--fg-1);
  font-family:var(--font-sans);font-size:var(--font-body);transition:border-color var(--motion-fast),box-shadow var(--motion-fast);}
.ds-in:hover{border-color:var(--fg-3);}
.ds-in:focus-within{border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring);}
.ds-in[data-invalid]{border-color:var(--critical-fg);}
.ds-in[data-invalid]:focus-within{box-shadow:0 0 0 1px var(--critical-fg);}
.ds-in[data-readonly]{background:var(--bg-muted);border-color:transparent;border-style:dashed;border-color:var(--border-default);}
.ds-in[data-readonly]:hover{border-color:var(--border-default);}
.ds-in[data-disabled]{opacity:.5;cursor:not-allowed;}
.ds-in[data-disabled]:hover{border-color:var(--border-control);}
.ds-in input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:inherit;font:inherit;padding:0;}
.ds-in input::placeholder{color:var(--fg-3);opacity:1;}
.ds-in input:disabled{cursor:not-allowed;}
.ds-in[data-variant="mono"] input{font-family:var(--font-mono);}
.ds-in[data-variant="numeric"] input{text-align:end;font-variant-numeric:tabular-nums;font-family:var(--font-mono);}
.ds-in .ds-in-affix{display:inline-flex;align-items:center;color:var(--fg-3);flex:none;font-size:var(--font-body);white-space:nowrap;}
.ds-in .ds-in-affix svg{width:var(--icon);height:var(--icon);}
.ds-in-wrap{display:flex;flex-direction:column;gap:var(--sp-4);font-family:var(--font-sans);}
.ds-in-label{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--font-body);line-height:var(--lh-body);font-weight:500;color:var(--fg-1);}
.ds-in-req{color:var(--critical-fg);}
.ds-in-changed{width:6px;height:6px;border-radius:9px;background:var(--modified-solid);}
.ds-in-desc{font-size:var(--text-2xs);line-height:var(--text-2xs-lh);color:var(--fg-3);}
.ds-in-err{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--text-2xs);line-height:var(--text-2xs-lh);color:var(--critical-fg);}
.ds-in-err svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);flex:none;}

/* InputGroup INPUT_GROUP_CSS */
.ds-ig{display:flex;flex-wrap:wrap;align-items:center;gap:8px;box-sizing:border-box;width:100%;
  background:var(--surface-1);border:1px solid var(--border-control);border-radius:var(--radius);box-shadow:none;font-size:var(--font-body);}
.ds-ig[data-block="false"]{height:var(--control-h);padding:0 calc(var(--pad-x) - 4px) 0 var(--pad-x);}
.ds-ig[data-block="true"]{padding:calc(var(--pad-x) / 2 + 2px) var(--pad-x);min-height:var(--control-h);align-items:stretch;}
.ds-ig:hover{border-color:var(--fg-3);}
.ds-ig:focus-within{border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring);}
.ds-ig[data-error="true"]{border-color:var(--critical-fg);}
.ds-ig[data-error="true"]:focus-within{box-shadow:0 0 0 1px var(--critical-fg);}
.ds-ig-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-ig[data-disabled="true"]{opacity:.5;pointer-events:none;}
.ds-ig[data-readonly="true"]{background:var(--bg-muted);border-style:dashed;border-color:var(--border-default);}
.ds-ig-input{flex:1;min-width:0;height:100%;background:transparent;color:var(--fg-1);border:0;outline:0;padding:0;
  font-family:var(--font-sans);font-size:var(--font-body);letter-spacing:0.005em;order:0;}
.ds-ig-input::placeholder{color:var(--fg-3);}
.ds-ig-textarea{flex-basis:100%;order:0;width:100%;resize:vertical;min-height:calc(var(--control-h) * 2);background:transparent;color:var(--fg-1);
  border:0;outline:0;padding:0;font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);}
.ds-ig-textarea::placeholder{color:var(--fg-3);}
.ds-ig-addon{display:inline-flex;align-items:center;gap:8px;color:var(--fg-3);flex-shrink:0;}
.ds-ig-addon svg{width:var(--icon);height:var(--icon);}
.ds-ig-addon[data-align="inline-start"]{order:-1;}
.ds-ig-addon[data-align="inline-end"]{order:1;margin-inline-start:auto;}
.ds-ig-addon[data-align="block-start"]{order:-2;flex-basis:100%;}
.ds-ig-addon[data-align="block-end"]{order:2;flex-basis:100%;}
.ds-ig-text{font-size:var(--font-body);letter-spacing:0.005em;white-space:nowrap;color:var(--fg-3);}
.ds-ig-spacer{flex:1;}
.ds-ig-btn{height:calc(var(--control-h) - 8px);padding:0 calc(var(--pad-x) - 2px);border-radius:calc(var(--radius) - 2px);font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;
  letter-spacing:-0.025em;display:inline-flex;align-items:center;gap:6px;cursor:pointer;flex-shrink:0;border:1px solid transparent;}
.ds-ig-btn svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);}
.ds-ig-btn[data-variant="secondary"]{background:var(--btn-secondary-bg);color:var(--fg-1);border-color:var(--border-default);}
.ds-ig-btn[data-variant="ghost"]{background:transparent;color:var(--fg-2);}
.ds-ig-btn[data-variant="ghost"]:hover{background:var(--hover-bg);}
.ds-ig-btn[data-size="icon"]{width:28px;padding:0;justify-content:center;}

/* InputOTP OTP_CSS */
@keyframes dsOtpCaret{0%,49%{opacity:1;}50%,100%{opacity:0;}}
.ds-otp-caret{display:inline-block;width:1.5px;height:calc(var(--font-body) + 6px);background:var(--fg-1);animation:dsOtpCaret 1s steps(1) infinite;}
@media (prefers-reduced-motion: reduce){.ds-otp-caret{animation:none;}}

/* Item ITEM_CSS */
.ds-item{display:flex;align-items:center;gap:var(--sp-12);font-size:var(--font-body);line-height:var(--lh-body);border-radius:var(--radius);box-sizing:border-box;
  font-family:var(--font-sans);color:var(--fg-1);text-decoration:none;}
.ds-item[data-size="default"]{padding:var(--panel-pad) calc(var(--panel-pad) + 4px);}
.ds-item[data-size="sm"]{padding:calc(var(--panel-pad) / 2 + 2px) var(--panel-pad);gap:var(--sp-8);}
.ds-item[data-variant="outline"]{border:1px solid var(--border-default);}
.ds-item[data-variant="muted"]{background:var(--bg-muted);}
a.ds-item,button.ds-item{cursor:pointer;transition:background-color var(--motion-fast);}
a.ds-item:hover,button.ds-item:hover{background:var(--hover-bg);}
a.ds-item:focus-visible,button.ds-item:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-item[aria-selected="true"]{background:var(--selection-bg);box-shadow:inset 2px 0 0 var(--selection-border);}
.ds-item-media svg{width:var(--icon);height:var(--icon);}
.ds-item-media{flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-2);}
.ds-item-media svg{display:block;}
.ds-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ds-item-title{font-size:var(--font-body);font-weight:500;letter-spacing:-0.005em;color:var(--fg-1);}
.ds-item-desc{font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-3);}
.ds-item-actions{flex:none;display:inline-flex;align-items:center;gap:var(--sp-8);margin-inline-start:auto;color:var(--fg-3);}

/* Marker MARKER_CSS */
.ds-marker{display:flex;align-items:center;gap:8px;font-family:var(--font-sans);
  font-size:var(--font-body);color:var(--fg-3);line-height:1.3;}
.ds-marker-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:var(--icon);height:var(--icon);color:var(--fg-3);}
.ds-marker-icon svg{width:14px;height:14px;display:block;}
.ds-marker-content{min-width:0;color:var(--fg-2);}

/* separator variant · label centered on a hairline rule */
.ds-marker[data-variant="separator"]{gap:12px;color:var(--fg-4);}
.ds-marker[data-variant="separator"]::before,
.ds-marker[data-variant="separator"]::after{content:"";flex:1;height:1px;background:var(--border-default);}
.ds-marker[data-variant="separator"] .ds-marker-content{font-size:calc(var(--font-body) - 1px);letter-spacing:0.02em;
  white-space:nowrap;color:var(--fg-4);}

/* shimmer · sweeping highlight over the text while a step is in progress */
.ds-marker-content.shimmer{background:linear-gradient(90deg,var(--fg-3) 0%,var(--fg-3) 35%,
  var(--fg-1) 50%,var(--fg-3) 65%,var(--fg-3) 100%);background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  color:transparent;animation:ds-marker-shimmer 1.6s linear infinite;}
@keyframes ds-marker-shimmer{0%{background-position:150% 0;}100%{background-position:-150% 0;}}
@media (prefers-reduced-motion:reduce){
  .ds-marker-content.shimmer{animation:none;-webkit-text-fill-color:var(--fg-2);color:var(--fg-2);}
}

/* Menubar MENUBAR_CSS */
.ds-menubar{display:inline-flex;align-items:center;gap:2px;background:var(--bg-panel);
  border:1px solid var(--border-default);border-radius:var(--radius);padding:var(--sp-2);box-shadow:var(--shadow-input);box-sizing:border-box;}
.ds-menubar-trigger{display:inline-flex;align-items:center;height:var(--control-h-sm);padding:0 var(--pad-x);border:0;background:transparent;
  border-radius:calc(var(--radius) - 2px);font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;letter-spacing:-0.005em;
  color:var(--fg-1);cursor:pointer;user-select:none;transition:background .1s ease;}
.ds-menubar-trigger:hover,.ds-menubar-trigger[data-open="true"]{background:var(--hover-bg);}
.ds-menubar-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;}
.ds-menubar-menu{position:relative;display:inline-flex;}
.ds-menubar-menu > .ds-menu{top:calc(100% + 4px);}
.ds-menubar-menu[data-open="true"] > .ds-menu{opacity:1;transform:scale(1) translateY(0);pointer-events:auto;}
.ds-menu-item:focus{background:var(--hover-bg);outline:0;}
.ds-submenu:focus-within > .ds-menu,.ds-submenu[data-open="true"] > .ds-menu{display:block;opacity:1;visibility:visible;pointer-events:auto;transform:none;}
.ds-menu-item:focus-visible{box-shadow:inset 0 0 0 var(--focus-ring-width) var(--focus-ring);}
.ds-menubar-trigger:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-menu-item.ds-inset{padding-inline-start:calc(var(--pad-x) + var(--icon) + var(--sp-8));}
.ds-menu-item .ds-menubar-kbd{margin-inline-start:auto;padding-inline-start:var(--sp-16);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--fg-4);letter-spacing:0;}

/* Menubar MENUBAR_MENU_CSS */
.ds-menu{position:absolute;top:calc(100% + 4px);inset-inline-start:0;z-index:50;min-width:200px;
  background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);
  box-shadow:var(--shadow-surface-2);padding:var(--sp-4);opacity:0;transform:scale(.97) translateY(-2px);
  transform-origin:top left;pointer-events:none;transition:opacity var(--motion-fast),transform var(--motion-fast);}
.ds-menu[data-align="end"]{inset-inline-start:auto;inset-inline-end:0;}
[dir="rtl"] .ds-menu{transform-origin:top right;}
.ds-menu-label{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:600;color:var(--fg-3);letter-spacing:0.02em;padding:var(--sp-6) var(--pad-x) var(--sp-2);}
.ds-menu-sep{height:1px;background:var(--border-default);margin:var(--sp-4) calc(var(--sp-4) * -1);}
.ds-menu-item{display:flex;align-items:center;gap:var(--sp-8);height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:var(--radius);
  font-family:var(--font-sans);font-size:var(--font-body);font-weight:450;letter-spacing:-0.005em;color:var(--fg-1);cursor:pointer;
  user-select:none;border:0;background:transparent;width:100%;text-align:start;box-sizing:border-box;}
.ds-menu-item:hover,.ds-menu-item[data-highlighted="true"]{background:var(--hover-bg);}
.ds-menu-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;}
.ds-menu-item[data-disabled="true"]{opacity:.45;pointer-events:none;}
.ds-menu-item .ds-menu-txt{flex:1;}
.ds-menu-mark{width:var(--icon);height:var(--icon);flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--fg-1);}
.ds-menu-mark svg{width:var(--icon);height:var(--icon);}
.ds-menu-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--fg-1);}
.ds-menu-chev{width:var(--icon);height:var(--icon);color:var(--fg-3);margin-inline-start:auto;display:inline-flex;}
.ds-menu-chev svg{width:var(--icon);height:var(--icon);}
.ds-submenu{position:relative;}
.ds-submenu > .ds-menu{top:-6px;inset-inline-start:calc(100% + 4px);min-width:180px;}
.ds-submenu:hover > .ds-menu{opacity:1;transform:scale(1);pointer-events:auto;}
.ds-submenu:hover > .ds-menu-item{background:var(--hover-bg);}
@media (prefers-reduced-motion: reduce){.ds-menu{transition:none;}}

/* Message MESSAGE_CSS */
.ds-msg{display:flex;align-items:flex-end;gap:8px;font-family:var(--font-sans);}
.ds-msg[data-align="end"]{flex-direction:row-reverse;}
.ds-msg-avatar{flex:none;align-self:flex-end;}
.ds-msg-avatar .ds-avatar{width:28px;height:var(--control-h-sm);}
.ds-msg-content{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:82%;
  align-items:flex-start;position:relative;}
.ds-msg[data-align="end"] .ds-msg-content{align-items:flex-end;}

/* Bubble follows the message side regardless of the Bubble's own align.
   The width cap lives on MessageContent so short lines stay on one line;
   the bubble shrinks to its content and is positioned via align-self. */
.ds-msg-content > .ds-bubble,.ds-msg-content > .ds-bubble-group{max-width:100%;}
.ds-msg[data-align="end"] .ds-msg-content .ds-bubble{align-self:flex-end;}
.ds-msg[data-align="start"] .ds-msg-content .ds-bubble{align-self:flex-start;}

/* Keep the avatar bottom-aligned to the last BUBBLE · not to trailing extras.
   Reaction pills overhang without reserving height; the footer floats below. */
.ds-msg-content .ds-bubble-reactions{margin-bottom:-14px;}
.ds-msg-footer{position:absolute;top:100%;margin-top:3px;width:fit-content;font-size:var(--text-2xs);
  color:var(--fg-3);padding:0 4px;line-height:1.3;white-space:nowrap;}
.ds-msg[data-align="start"] .ds-msg-footer{inset-inline-start:0;}
.ds-msg[data-align="end"] .ds-msg-footer{inset-inline-end:0;}

/* MessageScroller MS_CSS */
.ds-ms{position:relative;display:flex;flex-direction:column;min-height:0;height:100%;
  font-family:var(--font-sans);}
.ds-ms-viewport{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  scroll-behavior:smooth;}
.ds-ms-viewport:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:calc(var(--focus-ring-offset) * -2);}
@media (prefers-reduced-motion: reduce){.ds-ms-viewport{scroll-behavior:auto;}}
.ds-ms-viewport::-webkit-scrollbar{width:10px;}
.ds-ms-viewport::-webkit-scrollbar-thumb{background:var(--border-control);border-radius:8px;
  border:3px solid transparent;background-clip:content-box;}
.ds-ms-viewport::-webkit-scrollbar-thumb:hover{background:var(--border-strong);background-clip:content-box;}
.ds-ms-content{display:flex;flex-direction:column;gap:16px;}
.ds-ms-item{scroll-margin-top:12px;}

.ds-ms-btn{position:absolute;left:50%;bottom:12px;transform:translateX(-50%) translateY(6px);
  display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--control-h-sm);
  padding:0 12px 0 10px;border-radius:16px;border:1px solid var(--border-default);
  background:var(--surface-1);color:var(--fg-1);font-family:var(--font-sans);font-size:calc(var(--font-body) - 1px);
  font-weight:500;cursor:pointer;box-shadow:var(--shadow-surface-2);opacity:0;pointer-events:none;
  transition:opacity var(--motion-fast),transform var(--motion-fast);z-index:5;}
.ds-ms-btn[data-visible="true"]{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.ds-ms-btn svg{width:14px;height:14px;display:block;}
.ds-ms-btn .ds-ms-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-violet);}

/* NavigationMenu NAVMENU_CSS */
.ds-navmenu{position:relative;display:inline-flex;max-width:100%;}
.ds-navmenu-list{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0;}
.ds-navmenu-item{position:relative;}
.ds-navmenu-trigger{display:inline-flex;align-items:center;gap:5px;height:var(--control-h);padding:0 var(--pad-x);border:0;background:transparent;
  border-radius:var(--radius);font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;letter-spacing:-0.005em;
  color:var(--fg-1);cursor:pointer;user-select:none;transition:background .1s ease;}
.ds-navmenu-trigger:hover,.ds-navmenu-item[data-open="true"] > .ds-navmenu-trigger{background:var(--hover-bg);}
.ds-navmenu-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;}
.ds-navmenu-trigger:focus-visible,.ds-navmenu a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-navmenu-chev{width:calc(var(--icon) - 4px);height:calc(var(--icon) - 4px);color:var(--fg-3);transition:transform .2s ease;display:inline-flex;}
.ds-navmenu-item[data-open="true"] .ds-navmenu-trigger:focus-visible,.ds-navmenu a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-navmenu-chev{transform:rotate(180deg);}
.ds-navmenu-content{position:absolute;top:calc(100% + 4px);inset-inline-start:0;z-index:50;
  background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);
  box-shadow:var(--shadow-surface-2);padding:var(--sp-8);opacity:0;transform:translateY(-4px);pointer-events:none;
  transition:opacity var(--motion-fast),transform var(--motion-fast);box-sizing:border-box;}
.ds-navmenu-item[data-open="true"] > .ds-navmenu-content{opacity:1;transform:translateY(0);pointer-events:auto;}
.ds-navmenu-content ul{list-style:none;margin:0;padding:0;}
.ds-navmenu-link{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-8)px 10px;border-radius:var(--radius);
  text-decoration:none;color:var(--fg-1);font-family:var(--font-sans);font-size:var(--font-body);cursor:pointer;transition:background .1s ease;}
.ds-navmenu-link:hover{background:var(--hover-bg);}
.ds-navmenu-link .ds-navmenu-link-title{font-weight:500;line-height:1.2;color:var(--fg-1);}
.ds-navmenu-link .ds-navmenu-link-desc{font-size:calc(var(--font-body) - 1px);line-height:1.45;color:var(--fg-3);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ds-navmenu-triggerstyle{display:inline-flex;align-items:center;height:var(--control-h);padding:0 var(--pad-x);border-radius:var(--radius);
  font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;letter-spacing:-0.005em;color:var(--fg-1);
  text-decoration:none;cursor:pointer;transition:background .1s ease;}
.ds-navmenu-triggerstyle:hover{background:var(--hover-bg);}
@media (prefers-reduced-motion: reduce){.ds-navmenu-content,.ds-navmenu-trigger:focus-visible,.ds-navmenu a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-navmenu-chev{transition:none;}}

/* Pagination PAGINATION_CSS */
.ds-pgi{min-width:var(--control-h);height:var(--control-h);padding:0 var(--pad-x);border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:4px;font-family:var(--font-sans);font-size:var(--font-body);font-weight:500;letter-spacing:-0.025em;background:transparent;color:var(--fg-2);border:1px solid transparent;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast);}
.ds-pgi:hover:not(:disabled):not([data-on]){background:var(--hover-bg);color:var(--fg-1);}
.ds-pgi[data-on]{background:var(--surface-1);color:var(--fg-1);border-color:var(--border-control);font-variant-numeric:tabular-nums;}
.ds-pgi{font-variant-numeric:tabular-nums;}
.ds-pgi svg{width:var(--icon);height:var(--icon);}
.ds-pgi:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-pgi:disabled{color:var(--fg-4);cursor:not-allowed;}
.ds-pge{min-width:var(--control-h);height:var(--control-h);display:inline-flex;align-items:center;justify-content:center;color:var(--fg-3);}

/* Progress PROGRESS_CSS */
@keyframes dsIndet{0%{inset-inline-start:-40%;}100%{inset-inline-start:100%;}}
.ds-progress-indet{position:absolute;top:0;bottom:0;width:40%;border-radius:var(--r-pill);animation:dsIndet 1.2s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){.ds-progress-indet{animation-duration:2.4s;}}

/* RadioGroup RADIO_CSS */
label[data-ds-radio]{display:inline-flex;align-items:center;gap:var(--sp-8);min-height:max(24px,var(--control-h-sm));cursor:pointer;font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-1);position:relative;}
label[data-ds-radio][data-disabled]{cursor:not-allowed;opacity:.5;}
label[data-ds-radio] .dot{width:var(--icon);height:var(--icon);box-sizing:border-box;flex:none;border-radius:9999px;border:1px solid var(--border-control);background:var(--surface-1);display:inline-flex;align-items:center;justify-content:center;transition:border-color var(--motion-fast);}
label[data-ds-radio]:hover:not([data-disabled]) .dot{border-color:var(--fg-2);}
label[data-ds-radio][data-on] .dot{border-color:var(--btn-primary-bg);}
label[data-ds-radio][data-on] .dot::after{content:"";width:calc(var(--icon) / 2);height:calc(var(--icon) / 2);border-radius:9999px;background:var(--btn-primary-bg);}
label[data-ds-radio][data-invalid] .dot{border-color:var(--critical-fg);}
label[data-ds-radio] > input:focus-visible + .dot{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}

/* ScrollArea SCROLL_AREA_CSS */
.ds-scroll-area{overflow:auto;position:relative;scrollbar-width:thin;scrollbar-color:var(--border-control) transparent;}
.ds-scroll-area::-webkit-scrollbar{width:8px;height:8px;}
.ds-scroll-area::-webkit-scrollbar-track{background:transparent;}
.ds-scroll-area::-webkit-scrollbar-thumb{background:var(--border-control);border-radius:9999px;border:2px solid transparent;background-clip:content-box;}
.ds-scroll-area::-webkit-scrollbar-thumb:hover{background:var(--fg-4);background-clip:content-box;}
.ds-scroll-area[data-axis="horizontal"]{overflow-x:auto;overflow-y:hidden;}
.ds-scroll-area[data-axis="vertical"]{overflow-y:auto;overflow-x:hidden;}

/* Select SELECT_CSS */
.ds-sel-trig{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--sp-6);width:100%;height:var(--control-h);box-sizing:border-box;padding:0 calc(var(--pad-x) - 2px) 0 var(--pad-x);
  background:var(--surface-1);color:var(--fg-1);border:1px solid var(--border-control);border-radius:var(--radius);cursor:pointer;font-family:var(--font-sans);font-size:var(--font-body);
  transition:border-color var(--motion-fast);text-align:start;}
.ds-sel-trig:hover:not(:disabled){border-color:var(--fg-3);}
.ds-sel-trig:focus-visible,.ds-sel-trig[aria-expanded="true"]{outline:0;border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring);}
.ds-sel-trig[aria-invalid="true"]{border-color:var(--critical-fg);}
.ds-sel-trig[data-readonly]{background:var(--bg-muted);border-style:dashed;border-color:var(--border-default);cursor:default;}
.ds-sel-trig:disabled{opacity:.5;cursor:not-allowed;}
.ds-sel-trig svg{width:var(--icon);height:var(--icon);flex:none;color:var(--fg-3);}
.ds-sel-chips{display:flex;align-items:center;gap:var(--sp-4);min-width:0;overflow:hidden;}
.ds-sel-chip{display:inline-flex;align-items:center;height:calc(var(--control-h) - 10px);padding:0 var(--sp-6);border-radius:calc(var(--radius) - 2px);background:var(--bg-muted);border:1px solid var(--border-default);font-size:var(--text-2xs);white-space:nowrap;}
.ds-sel-pop{position:absolute;top:calc(100% + 4px);inset-inline-start:0;min-width:100%;z-index:50;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);padding:var(--sp-4);max-height:280px;overflow:auto;box-sizing:border-box;}
.ds-sel-lbl{padding:var(--sp-6) var(--pad-x) var(--sp-2);font-size:var(--text-2xs);line-height:var(--text-2xs-lh);font-weight:500;color:var(--fg-3);font-family:var(--font-sans);}
.ds-sel-opt{display:flex;align-items:center;gap:var(--sp-8);height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:calc(var(--radius) - 2px);cursor:pointer;font-family:var(--font-sans);font-size:var(--font-body);color:var(--fg-1);}
.ds-sel-opt[data-active]{background:var(--hover-bg);}
.ds-sel-opt[aria-disabled="true"]{color:var(--fg-4);cursor:not-allowed;background:transparent;}
.ds-sel-opt .chk{width:var(--icon);display:inline-flex;flex:none;}
.ds-sel-opt .chk svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);}
.ds-sel-opt .hint{margin-inline-start:auto;font-size:var(--text-2xs);color:var(--fg-3);font-family:var(--font-mono);}
.ds-sel-sep{height:1px;background:var(--border-subtle);margin:var(--sp-4) calc(var(--sp-4) * -1);}

/* Sheet SHEET_CSS */
@keyframes dsSheetScrim{from{opacity:0;}to{opacity:1;}}
@keyframes dsSheetInR{from{transform:translateX(100%);}to{transform:none;}}
@keyframes dsSheetInL{from{transform:translateX(-100%);}to{transform:none;}}
@keyframes dsSheetInT{from{transform:translateY(-100%);}to{transform:none;}}
@keyframes dsSheetInB{from{transform:translateY(100%);}to{transform:none;}}
.ds-sheet-scrim{position:fixed;inset:0;z-index:1000;background:rgba(9,9,11,.55);animation:dsSheetScrim var(--motion-base) ease both;}
.ds-sheet-scrim[data-contained]{position:absolute;}
.ds-sheet{position:fixed;z-index:1001;box-sizing:border-box;background:var(--surface-2);color:var(--fg-1);font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);
  display:flex;flex-direction:column;box-shadow:var(--shadow-surface-2);}
.ds-sheet[data-contained]{position:absolute;}
.ds-sheet[data-modal="false"]{box-shadow:none;background:var(--surface-1);}
.ds-sheet[data-side="right"]{top:0;inset-inline-end:0;height:100%;border-inline-start:1px solid var(--border-strong);animation:dsSheetInR var(--motion-slow) var(--ease-standard) both;}
.ds-sheet[data-side="left"]{top:0;inset-inline-start:0;height:100%;border-inline-end:1px solid var(--border-strong);animation:dsSheetInL var(--motion-slow) var(--ease-standard) both;}
.ds-sheet[data-side="top"]{top:0;left:0;width:100%;max-height:80%;border-bottom:1px solid var(--border-strong);animation:dsSheetInT var(--motion-slow) var(--ease-standard) both;}
.ds-sheet[data-side="bottom"]{bottom:0;left:0;width:100%;max-height:80%;border-top:1px solid var(--border-strong);animation:dsSheetInB var(--motion-slow) var(--ease-standard) both;}
.ds-sheet[data-side="right"][data-size="sm"],.ds-sheet[data-side="left"][data-size="sm"]{width:min(400px,100%);}
.ds-sheet[data-side="right"][data-size="md"],.ds-sheet[data-side="left"][data-size="md"]{width:min(640px,100%);}
.ds-sheet[data-side="right"][data-size="lg"],.ds-sheet[data-side="left"][data-size="lg"]{width:min(960px,100%);}
.ds-sheet-x{width:var(--control-h-sm);height:var(--control-h-sm);border:0;background:transparent;color:var(--fg-3);cursor:pointer;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;flex:none;}
.ds-sheet-x:hover{background:var(--hover-bg);color:var(--fg-1);}
.ds-sheet-x:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-sheet-x svg{width:var(--icon);height:var(--icon);}
.ds-sheet-head{display:flex;align-items:flex-start;gap:var(--gap);padding:var(--panel-pad) var(--panel-pad) var(--panel-pad) calc(var(--panel-pad) + 4px);border-bottom:1px solid var(--border-default);}
.ds-sheet-body{flex:1;min-height:0;overflow:auto;padding:calc(var(--panel-pad) + 4px);}
.ds-sheet-foot{display:flex;justify-content:flex-end;gap:var(--gap);padding:var(--panel-pad) calc(var(--panel-pad) + 4px);border-top:1px solid var(--border-default);}
@media (prefers-reduced-motion: reduce){.ds-sheet,.ds-sheet-scrim{animation:none;}}

/* Sidebar SIDEBAR_CSS */
.ds-sb-wrap{--sidebar-width:${SIDEBAR_WIDTH};--sidebar-width-icon:${SIDEBAR_WIDTH_ICON};
  --sb-bg:var(--bg-panel);--sb-fg:var(--fg-2);--sb-border:var(--border-default);
  --sb-accent:var(--bg-muted);--sb-accent-fg:var(--fg-1);--sb-ring:var(--accent-violet);
  display:flex;min-height:100%;width:100%;position:relative;isolation:isolate;
  font-family:var(--font-sans);color:var(--fg-1);}
.ds-sb-wrap *{box-sizing:border-box;}
.ds-sb-root{position:relative;z-index:1;color:var(--sb-fg);}
.ds-sb-gap{width:var(--sidebar-width);background:transparent;transition:width .2s ease;}
.ds-sb-root[data-collapsible="offcanvas"] .ds-sb-gap{width:0;}
.ds-sb-root[data-collapsible="icon"] .ds-sb-gap{width:var(--sidebar-width-icon);}
.ds-sb-root[data-variant="floating"] .ds-sb-gap,.ds-sb-root[data-variant="inset"] .ds-sb-gap{}
.ds-sb-root[data-variant="floating"][data-collapsible="icon"] .ds-sb-gap,
.ds-sb-root[data-variant="inset"][data-collapsible="icon"] .ds-sb-gap{width:calc(var(--sidebar-width-icon) + 16px);}
.ds-sb-container{position:absolute;inset-block:0;height:100%;width:var(--sidebar-width);
  transition:left .2s ease,right .2s ease,width .2s ease;display:flex;z-index:10;}
.ds-sb-root[data-side="left"] .ds-sb-container{left:0;}
.ds-sb-root[data-side="right"] .ds-sb-container{right:0;}
.ds-sb-root[data-side="left"][data-collapsible="offcanvas"] .ds-sb-container{left:calc(var(--sidebar-width) * -1);}
.ds-sb-root[data-side="right"][data-collapsible="offcanvas"] .ds-sb-container{right:calc(var(--sidebar-width) * -1);}
.ds-sb-root[data-collapsible="icon"] .ds-sb-container{width:var(--sidebar-width-icon);}
.ds-sb-root[data-variant="floating"][data-collapsible="icon"] .ds-sb-container,
.ds-sb-root[data-variant="inset"][data-collapsible="icon"] .ds-sb-container{width:calc(var(--sidebar-width-icon) + 16px);}
.ds-sb-root[data-variant="sidebar"][data-side="left"] .ds-sb-container{border-right:1px solid var(--sb-border);}
.ds-sb-root[data-variant="sidebar"][data-side="right"] .ds-sb-container{border-left:1px solid var(--sb-border);}
.ds-sb-root[data-variant="floating"] .ds-sb-container,.ds-sb-root[data-variant="inset"] .ds-sb-container{padding:8px;}
.ds-sb-inner{display:flex;height:100%;width:100%;flex-direction:column;background:var(--sb-bg);}
.ds-sb-root[data-variant="floating"] .ds-sb-inner{border:1px solid var(--sb-border);border-radius:var(--radius);box-shadow:var(--shadow-2);}

/* Non-collapsible / static */
.ds-sb-static{display:flex;height:100%;width:var(--sidebar-width);flex-direction:column;background:var(--sb-bg);color:var(--sb-fg);}

/* Mobile overlay */
.ds-sb-scrim{position:absolute;inset:0;z-index:40;background:rgba(9,9,11,.5);animation:dsSbScrim var(--motion-base) ease both;}
@keyframes dsSbScrim{from{opacity:0;}to{opacity:1;}}
.ds-sb-mobile{position:absolute;inset-block:0;z-index:50;width:var(--sidebar-width-mobile,${SIDEBAR_WIDTH_MOBILE});
  display:flex;flex-direction:column;background:var(--sb-bg);color:var(--sb-fg);box-shadow:var(--shadow-surface-2);}
.ds-sb-mobile[data-side="left"]{left:0;border-right:1px solid var(--sb-border);animation:dsSbInL .28s cubic-bezier(.32,.72,0,1) both;}
.ds-sb-mobile[data-side="right"]{right:0;border-left:1px solid var(--sb-border);animation:dsSbInR .28s cubic-bezier(.32,.72,0,1) both;}
@keyframes dsSbInL{from{transform:translateX(-100%);}to{transform:translateX(0);}}
@keyframes dsSbInR{from{transform:translateX(100%);}to{transform:translateX(0);}}

/* Inset (main content) */
.ds-sb-inset{position:relative;display:flex;width:100%;flex:1 1 0%;flex-direction:column;background:var(--bg-panel);}
.ds-sb-wrap:has(.ds-sb-root[data-variant="inset"]) .ds-sb-inset{margin:8px;margin-left:0;border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow-2);}
.ds-sb-wrap:has(.ds-sb-root[data-variant="inset"][data-state="collapsed"]) .ds-sb-inset{margin-left:8px;}

/* Structural regions */
.ds-sb-header,.ds-sb-footer{display:flex;flex-direction:column;gap:8px;padding:8px;}
.ds-sb-content{display:flex;min-height:0;flex:1 1 0%;flex-direction:column;gap:0;overflow:auto;}
.ds-sb-root[data-collapsible="icon"] .ds-sb-content{overflow:hidden;}
.ds-sb-content::-webkit-scrollbar{width:0;height:0;}
.ds-sb-sep{height:1px;margin:0;background:var(--sb-border);border:0;flex-shrink:0;}
.ds-sb-input{height:max(28px, var(--control-h-sm));width:100%;box-sizing:border-box;padding:0 10px;font-family:var(--font-sans);font-size:var(--font-body);
  color:var(--fg-1);background:var(--bg-panel);border:1px solid var(--border-control);border-radius:var(--radius);box-shadow:var(--shadow-1);outline:none;}
.ds-sb-input::placeholder{color:var(--fg-3);}
.ds-sb-input:focus-visible{border-color:var(--sb-ring);box-shadow:0 0 0 3px var(--accent-violet-soft);}

/* Group */
.ds-sb-group{position:relative;display:flex;width:100%;min-width:0;flex-direction:column;padding:8px;}
.ds-sb-group-label{display:flex;height:max(28px, var(--control-h-sm));flex-shrink:0;align-items:center;border-radius:var(--radius);padding:0 8px;
  font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);
  transition:margin .2s ease,opacity .2s ease;outline:none;}
.ds-sb-group-label>svg{width:var(--icon);height:var(--icon);flex-shrink:0;}
.ds-sb-root[data-collapsible="icon"] .ds-sb-group-label{margin-top:-32px;opacity:0;pointer-events:none;}
.ds-sb-group-action{position:absolute;top:14px;right:16px;display:flex;aspect-ratio:1;width:20px;align-items:center;
  justify-content:center;border:0;background:transparent;color:var(--sb-fg);border-radius:var(--radius);padding:0;cursor:pointer;transition:background .12s;}
.ds-sb-group-action:hover{background:var(--sb-accent);color:var(--sb-accent-fg);}
.ds-sb-group-action>svg{width:var(--icon);height:var(--icon);}
.ds-sb-root[data-collapsible="icon"] .ds-sb-group-action{display:none;}
.ds-sb-group-content{width:100%;font-size:var(--font-body);}

/* Menu */
.ds-sb-menu{display:flex;width:100%;min-width:0;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0;}
.ds-sb-menu-item{position:relative;list-style:none;}
.ds-sb-menu-btn{position:relative;display:flex;width:100%;box-sizing:border-box;align-items:center;gap:8px;overflow:hidden;
  border:0;background:transparent;border-radius:var(--radius);padding:8px;text-align:left;font-family:var(--font-sans);
  font-size:var(--font-body);font-weight:400;color:var(--sb-fg);cursor:pointer;outline:none;text-decoration:none;
  transition:background .12s,color .12s;height:max(32px, var(--control-h));}
.ds-sb-menu-btn>svg{width:var(--icon);height:var(--icon);flex-shrink:0;}
.ds-sb-menu-btn>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-sb-menu-btn:hover{background:var(--sb-accent);color:var(--sb-accent-fg);}
.ds-sb-menu-btn:focus-visible{box-shadow:inset 0 0 0 var(--focus-ring-width) var(--focus-ring);}
.ds-sb-menu-btn[data-active="true"]{background:var(--sb-accent);color:var(--sb-accent-fg);font-weight:600;}
.ds-sb-menu-btn[data-size="sm"]{height:max(28px, var(--control-h-sm));font-size:calc(var(--font-body) - 1px);}
.ds-sb-menu-btn[data-size="lg"]{height:48px;}
.ds-sb-menu-btn[data-variant="outline"]{background:var(--bg-panel);box-shadow:0 0 0 1px var(--sb-border);}
.ds-sb-menu-btn[data-variant="outline"]:hover{box-shadow:0 0 0 1px var(--sb-accent);}
.ds-sb-menu-btn:disabled{pointer-events:none;opacity:.5;}
.ds-sb-root[data-collapsible="icon"] .ds-sb-menu-btn{width:36px !important;height:36px;padding:0 !important;justify-content:center;margin-inline:auto;}
.ds-sb-root[data-collapsible="icon"] .ds-sb-menu-btn[data-size="lg"]{width:40px !important;height:40px;}
.ds-sb-root[data-collapsible="icon"] .ds-sb-menu-btn>span,
.ds-sb-root[data-collapsible="icon"] .ds-sb-menu-badge,
.ds-sb-root[data-collapsible="icon"] .ds-sb-menu-action{display:none;}

.ds-sb-menu-action{position:absolute;top:6px;right:8px;display:flex;aspect-ratio:1;width:20px;align-items:center;
  justify-content:center;border:0;background:transparent;color:var(--sb-fg);border-radius:var(--radius);padding:0;cursor:pointer;transition:background .12s,opacity .12s;}
.ds-sb-menu-action:hover{background:var(--sb-accent);color:var(--sb-accent-fg);}
.ds-sb-menu-action>svg{width:var(--icon);height:var(--icon);}
.ds-sb-menu-action[data-hover="true"]{opacity:0;}
.ds-sb-menu-item:hover .ds-sb-menu-action[data-hover="true"],
.ds-sb-menu-item:focus-within .ds-sb-menu-action[data-hover="true"]{opacity:1;}
.ds-sb-menu-badge{position:absolute;top:6px;right:8px;pointer-events:none;display:flex;height:20px;min-width:20px;
  align-items:center;justify-content:center;border-radius:var(--radius);padding:0 6px;font-size:var(--text-2xs);font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--sb-fg);user-select:none;}
.ds-sb-menu-btn[data-active="true"] ~ .ds-sb-menu-badge{color:var(--sb-accent-fg);}

.ds-sb-skel{display:flex;height:max(32px, var(--control-h));align-items:center;gap:8px;border-radius:var(--radius);padding:0 8px;}
.ds-sb-skel-box{border-radius:var(--radius);background:var(--bg-muted);animation:dsSbPulse 1.6s ease-in-out infinite;}
.ds-sb-skel-icon{width:var(--icon);height:var(--icon);flex-shrink:0;}
.ds-sb-skel-text{height:16px;flex:1;max-width:var(--skel-w,70%);}
@keyframes dsSbPulse{0%,100%{opacity:1;}50%{opacity:.4;}}

/* Submenu */
.ds-sb-menu-sub{display:flex;min-width:0;flex-direction:column;gap:2px;margin:0 14px;padding:2px 10px;list-style:none;
  border-left:1px solid var(--sb-border);transform:translateX(1px);}
.ds-sb-root[data-collapsible="icon"] .ds-sb-menu-sub{display:none;}
.ds-sb-menu-sub-item{position:relative;list-style:none;}
.ds-sb-menu-sub-btn{display:flex;height:max(28px, var(--control-h-sm));min-width:0;align-items:center;gap:8px;overflow:hidden;border-radius:var(--radius);
  padding:0 8px;color:var(--sb-fg);font-family:var(--font-sans);font-size:var(--font-body);text-decoration:none;cursor:pointer;
  transform:translateX(-1px);outline:none;transition:background .12s,color .12s;}
.ds-sb-menu-sub-btn>svg{width:var(--icon);height:var(--icon);flex-shrink:0;}
.ds-sb-menu-sub-btn>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-sb-menu-sub-btn:hover{background:var(--sb-accent);color:var(--sb-accent-fg);}
.ds-sb-menu-sub-btn[data-size="sm"]{font-size:calc(var(--font-body) - 1px);}
.ds-sb-menu-sub-btn[data-active="true"]{background:var(--sb-accent);color:var(--sb-accent-fg);font-weight:500;}

/* Rail */
.ds-sb-rail{position:absolute;inset-block:0;z-index:20;width:16px;border:0;background:transparent;cursor:pointer;
  transition:background .12s;display:none;}
@media (min-width:640px){.ds-sb-rail{display:block;}}
.ds-sb-root[data-side="left"] .ds-sb-rail{right:-8px;}
.ds-sb-root[data-side="right"] .ds-sb-rail{left:-8px;}
.ds-sb-rail::after{content:"";position:absolute;inset-block:0;left:50%;width:2px;transform:translateX(-50%);transition:background .12s;}
.ds-sb-rail:hover::after{background:var(--sb-border);}

/* Trigger */
.ds-sb-trigger{display:inline-flex;width:max(28px, var(--control-h-sm));height:max(28px, var(--control-h-sm));align-items:center;justify-content:center;border:0;
  background:transparent;color:var(--fg-2);border-radius:var(--radius);cursor:pointer;transition:background .12s,color .12s;}
.ds-sb-trigger:hover{background:var(--bg-muted);color:var(--fg-1);}
.ds-sb-trigger>svg{width:var(--icon);height:var(--icon);}

@media (prefers-reduced-motion:reduce){
  .ds-sb-gap,.ds-sb-container,.ds-sb-mobile,.ds-sb-scrim,.ds-sb-group-label,.ds-sb-menu-btn{animation:none;transition:none;}
}

/* Skeleton SKELETON_CSS */
@keyframes dsSkShimmer{0%{background-position:-400px 0;}100%{background-position:400px 0;}}
.ds-skeleton{display:block;background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shimmer) 50%,var(--skeleton-base) 75%);background-size:800px 100%;animation:dsSkShimmer 1.6s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){.ds-skeleton{animation:none;}}

/* Spinner SPINNER_CSS */
@keyframes dsSpin{to{transform:rotate(360deg);}}
.ds-spinner{animation:dsSpin .7s linear infinite;transform-origin:center;flex:none;}
@media (prefers-reduced-motion: reduce){.ds-spinner{animation-duration:1.6s;}}

/* Stepper STEPPER_CSS */
.ds-stepper-trigger:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:9999px;}
.ds-stepper{display:flex;flex-direction:column;gap:20px;font-family:var(--font-sans);
  color:var(--fg-1);width:100%;}
.ds-stepper[data-orientation="vertical"]{flex-direction:row;align-items:stretch;gap:24px;}

.ds-stepper-list{display:flex;align-items:center;gap:0;}
.ds-stepper[data-orientation="vertical"] .ds-stepper-list{flex-direction:column;align-items:stretch;
  flex:none;}

.ds-stepper-item{display:flex;align-items:center;flex:1;min-width:0;gap:0;}
.ds-stepper-item[data-last="true"]{flex:none;}
.ds-stepper[data-orientation="vertical"] .ds-stepper-item{flex-direction:column;align-items:flex-start;
  flex:1;}
.ds-stepper[data-orientation="vertical"] .ds-stepper-item[data-last="true"]{flex:none;}

.ds-stepper-trigger{appearance:none;border:0;background:transparent;padding:0;cursor:pointer;
  display:inline-flex;align-items:center;gap:10px;font-family:inherit;color:inherit;flex:none;}
.ds-stepper-trigger:disabled{cursor:not-allowed;opacity:.55;}

.ds-stepper-indicator{flex:none;width:28px;height:var(--control-h-sm);border-radius:var(--r-pill);
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
  font-size:calc(var(--font-body) - 1px);font-weight:600;font-variant-numeric:tabular-nums;line-height:1;
  border:1px solid var(--border-control);background:transparent;color:var(--fg-3);
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s;}
.ds-stepper-indicator svg{width:15px;height:15px;display:block;}
[data-state="active"] > .ds-stepper-indicator,
.ds-stepper-indicator[data-state="active"]{background:var(--fg-1);border-color:var(--fg-1);
  color:var(--surface-1);box-shadow:0 0 0 4px var(--accent-violet-soft);}
[data-state="completed"] > .ds-stepper-indicator,
.ds-stepper-indicator[data-state="completed"]{background:var(--fg-1);border-color:var(--fg-1);
  color:var(--surface-1);}

.ds-stepper-sep{flex:1;min-width:16px;height:2px;border-radius:1px;margin:0 8px;
  background:var(--border-control);transition:background .15s;}
.ds-stepper-sep[data-state="completed"]{background:var(--fg-1);}
.ds-stepper[data-orientation="vertical"] .ds-stepper-sep{width:2px;min-width:0;height:auto;
  min-height:24px;margin:6px 0 6px 13px;flex:1;}

/* trigger label (optional text beside the indicator) */
.ds-stepper-trigger .ds-stepper-label{display:flex;flex-direction:column;gap:1px;text-align:left;}
.ds-stepper-trigger .ds-stepper-label .t{font-size:var(--font-body);font-weight:600;letter-spacing:-0.005em;
  color:var(--fg-2);}
.ds-stepper-trigger[aria-selected="true"] .ds-stepper-label .t{color:var(--fg-1);}
.ds-stepper-trigger .ds-stepper-label .d{font-size:calc(var(--font-body) - 1px);color:var(--fg-3);}

.ds-stepper-content{flex:1;min-width:0;}

/* Switch SWITCH_CSS */
label[data-ds-switch]{display:inline-flex;align-items:center;gap:var(--sp-8);min-height:max(24px,var(--control-h-sm));cursor:pointer;font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-1);position:relative;}
label[data-ds-switch][data-disabled]{cursor:not-allowed;opacity:.5;}
label[data-ds-switch] .track{--k:calc(var(--icon) - 2px);width:calc(var(--k) * 2 + 4px);height:calc(var(--k) + 4px);box-sizing:border-box;border-radius:9999px;flex:none;position:relative;background:var(--border-control);transition:background-color var(--motion-fast);}
label[data-ds-switch]:hover:not([data-disabled]) .track{background:var(--fg-3);}
label[data-ds-switch][data-on] .track{background:var(--btn-primary-bg);}
label[data-ds-switch][data-on]:hover:not([data-disabled]) .track{background:var(--btn-primary-bg-hover);}
label[data-ds-switch] .knob{position:absolute;top:2px;inset-inline-start:2px;width:var(--k);height:var(--k);border-radius:9999px;background:var(--surface-1);transition:inset-inline-start var(--motion-fast) var(--ease-standard);}
label[data-ds-switch][data-on] .knob{inset-inline-start:calc(var(--k) + 2px);background:var(--btn-primary-fg);}
label[data-ds-switch] > input:focus-visible + .track{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
label[data-ds-switch] .state{font-size:var(--text-2xs);color:var(--fg-3);min-width:2.2em;}

/* Table TABLE_CSS */
.ds-table-wrap{width:100%;overflow-x:auto;}
.ds-table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);color:var(--fg-1);caption-side:bottom;font-variant-numeric:tabular-nums;}
.ds-table thead tr{border-bottom:1px solid var(--border-default);}
.ds-table th{height:var(--row-h);padding:0 var(--pad-x);text-align:left;vertical-align:middle;font-size:var(--text-2xs);line-height:var(--text-2xs-lh);font-weight:500;color:var(--fg-3);white-space:nowrap;}
.ds-table td{height:var(--row-h);padding:0 var(--pad-x);vertical-align:middle;border-bottom:1px solid var(--border-subtle);}
.ds-table tbody tr{transition:background-color var(--motion-fast) var(--ease-standard);}
.ds-table tbody tr:hover{background:var(--hover-bg);}
.ds-table tbody tr[data-linked="true"]{background:var(--linked-highlight);}
.ds-table tbody tr[data-selected="true"]{background:var(--selection-bg);box-shadow:inset 2px 0 0 var(--selection-border);}
.ds-table tbody tr[aria-disabled="true"]{color:var(--fg-4);}
.ds-table tfoot{border-top:1px solid var(--border-strong);font-weight:500;}
.ds-table tfoot td{border-bottom:0;}
.ds-table caption{margin-top:var(--gap);font-size:var(--text-2xs);color:var(--fg-3);text-align:left;}
.ds-table .text-right,.ds-table .num{text-align:right;}
.ds-table .text-center{text-align:center;}
.ds-table .mono{font-family:var(--font-mono);}
.ds-table .font-medium{font-weight:500;color:var(--fg-1);}

/* Textarea TEXTAREA_CSS */
.ds-ta{display:block;width:100%;box-sizing:border-box;min-height:calc(var(--control-h) * 2.25);padding:calc(var(--pad-x) / 2 + 2px) var(--pad-x);
  background:var(--surface-1);border:1px solid var(--border-control);border-radius:var(--radius);color:var(--fg-1);
  font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);outline:0;resize:vertical;
  transition:border-color var(--motion-fast),box-shadow var(--motion-fast);}
.ds-ta::placeholder{color:var(--fg-3);opacity:1;}
.ds-ta:hover{border-color:var(--fg-3);}
.ds-ta:focus{border-color:var(--fg-1);box-shadow:0 0 0 1px var(--focus-ring);}
.ds-ta[aria-invalid="true"]{border-color:var(--critical-fg);}
.ds-ta[aria-invalid="true"]:focus{box-shadow:0 0 0 1px var(--critical-fg);}
.ds-ta[readonly]{background:var(--bg-muted);border-style:dashed;border-color:var(--border-default);resize:none;}
.ds-ta:disabled{opacity:.5;cursor:not-allowed;resize:none;}
.ds-ta-wrap{display:flex;flex-direction:column;gap:var(--sp-4);font-family:var(--font-sans);}
.ds-ta-label{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--font-body);line-height:var(--lh-body);font-weight:500;color:var(--fg-1);}
.ds-ta-foot{display:flex;gap:var(--sp-8);font-size:var(--text-2xs);line-height:var(--text-2xs-lh);color:var(--fg-3);}
.ds-ta-foot .err{display:inline-flex;align-items:center;gap:var(--sp-4);color:var(--critical-fg);}
.ds-ta-foot .err svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);}
.ds-ta-foot .count{margin-inline-start:auto;font-variant-numeric:tabular-nums;}
.ds-ta-foot .count[data-over]{color:var(--critical-fg);}

/* Toast TOAST_CSS */
@keyframes dsToastIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@keyframes dsToastOut{to{opacity:0;transform:translateY(4px);}}
@keyframes dsToastSpin{to{transform:rotate(360deg);}}
.ds-toast{width:360px;max-width:calc(100vw - 32px);box-sizing:border-box;background:var(--surface-2);color:var(--fg-1);border:1px solid var(--border-default);
  border-inline-start:3px solid var(--ds-toast-edge,var(--border-strong));border-radius:var(--radius);box-shadow:var(--shadow-surface-2);
  padding:var(--panel-pad) var(--panel-pad) var(--panel-pad) calc(var(--panel-pad) + 2px);display:flex;align-items:flex-start;gap:var(--sp-8);
  font-family:var(--font-sans);font-size:var(--font-body);line-height:var(--lh-body);pointer-events:auto;animation:dsToastIn var(--motion-slow) var(--ease-standard) both;}
.ds-toast[data-leaving="true"]{animation:dsToastOut var(--motion-base) ease-in both;}
.ds-toast-ic{flex:none;display:inline-flex;margin-top:1px;color:var(--ds-toast-ic,var(--fg-3));}
.ds-toast-ic svg{width:var(--icon);height:var(--icon);}
.ds-toast-title{font-weight:500;color:var(--fg-1);}
.ds-toast-desc{color:var(--fg-2);margin-top:2px;font-variant-numeric:tabular-nums;}
.ds-toast-actions{display:flex;gap:var(--sp-8);margin-top:var(--sp-8);}
.ds-toast-btn{height:var(--control-h-sm);padding:0 var(--pad-x);border-radius:var(--radius);border:1px solid var(--border-control);background:var(--surface-1);color:var(--fg-1);
  font:500 var(--font-body)/1 var(--font-sans);cursor:pointer;}
.ds-toast-btn:hover{background:var(--hover-bg);}
.ds-toast-btn:focus-visible,.ds-toast-x:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
.ds-toast-x{flex:none;width:var(--control-h-sm);height:var(--control-h-sm);margin:calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) 0 0;border:0;background:transparent;color:var(--fg-3);cursor:pointer;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;}
.ds-toast-x:hover{color:var(--fg-1);background:var(--hover-bg);}
.ds-toast-x svg{width:calc(var(--icon) - 2px);height:calc(var(--icon) - 2px);}
.ds-toast-spin{width:var(--icon);height:var(--icon);box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:9999px;animation:dsToastSpin .8s linear infinite;flex:none;}
.ds-toaster{position:fixed;z-index:1000;display:flex;flex-direction:column-reverse;gap:var(--sp-8);pointer-events:none;}
.ds-toaster[data-contained]{position:absolute;}
.ds-toaster[data-pos="bottom-right"]{bottom:16px;right:16px;}
.ds-toaster[data-pos="bottom-left"]{bottom:16px;left:16px;}
.ds-toaster[data-pos="top-right"]{top:16px;right:16px;flex-direction:column;}
.ds-toaster[data-pos="top-left"]{top:16px;left:16px;flex-direction:column;}
.ds-toast-more{pointer-events:auto;align-self:flex-end;font:500 var(--text-2xs)/var(--text-2xs-lh) var(--font-sans);color:var(--fg-2);background:var(--surface-2);border:1px solid var(--border-default);border-radius:9999px;padding:2px 8px;font-variant-numeric:tabular-nums;}
@media (prefers-reduced-motion: reduce){.ds-toast{animation:none;}.ds-toast-spin{animation-duration:1.6s;}}

/* Toggle TOGGLE_CSS */
button[data-ds-toggle]{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-6);box-sizing:border-box;padding:0 var(--pad-x);
  font:500 var(--font-body)/1 var(--font-sans);color:var(--fg-2);background:transparent;border:1px solid transparent;border-radius:var(--radius);cursor:pointer;
  transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast);white-space:nowrap;}
button[data-ds-toggle] svg{width:var(--icon);height:var(--icon);flex:none;}
button[data-ds-toggle]:hover:not(:disabled){background:var(--hover-bg);color:var(--fg-1);}
button[data-ds-toggle][aria-pressed="true"]{background:var(--selection-bg);color:var(--fg-1);border-color:var(--selection-border);}
button[data-ds-toggle][data-variant="outline"]{border-color:var(--border-control);}
button[data-ds-toggle][data-variant="outline"][aria-pressed="true"]{border-color:var(--selection-border);}
button[data-ds-toggle]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset);}
button[data-ds-toggle]:disabled{opacity:.5;cursor:not-allowed;}
.ds-tgroup{display:inline-flex;gap:2px;padding:2px;background:var(--bg-muted);border:1px solid var(--border-default);border-radius:var(--radius);}
.ds-tgroup button[data-ds-toggle]{border-radius:calc(var(--radius) - 2px);border:0;}
.ds-tgroup button[data-ds-toggle][aria-pressed="true"]{background:var(--surface-1);box-shadow:0 0 0 1px var(--border-default);color:var(--fg-1);}

/* Tooltip TOOLTIP_CSS */
.ds-tip-wrap{position:relative;display:inline-flex;}
.ds-tip{position:absolute;z-index:40;pointer-events:none;background:var(--bg-inverse);color:var(--fg-inverse);
  font-family:var(--font-sans);font-size:var(--text-2xs);line-height:var(--text-2xs-lh);font-weight:500;white-space:nowrap;
  padding:var(--sp-4) var(--pad-x);border-radius:var(--radius);box-shadow:var(--shadow-surface-2);
  opacity:0;transition:opacity var(--motion-fast) var(--ease-standard) 0ms;display:inline-flex;align-items:center;gap:var(--sp-8);}
.ds-tip-wrap:hover .ds-tip,.ds-tip-wrap:focus-within .ds-tip{opacity:1;transition-delay:300ms;}
.ds-tip-wrap[data-dismissed] .ds-tip{opacity:0 !important;transition-delay:0ms;}
.ds-tip .ds-tip-kbd{padding:1px 5px;border-radius:calc(var(--radius) - 2px);background:color-mix(in srgb, currentColor 18%, transparent);font-family:var(--font-mono);}
.ds-tip::after{content:"";position:absolute;width:6px;height:6px;background:var(--bg-inverse);transform:rotate(45deg);}
.ds-tip[data-side="top"]{bottom:calc(100% + 6px);left:50%;translate:-50% 0;}
.ds-tip[data-side="top"]::after{bottom:-3px;left:50%;margin-left:-3px;}
.ds-tip[data-side="bottom"]{top:calc(100% + 6px);left:50%;translate:-50% 0;}
.ds-tip[data-side="bottom"]::after{top:-3px;left:50%;margin-left:-3px;}
.ds-tip[data-side="left"]{right:calc(100% + 6px);top:50%;translate:0 -50%;}
.ds-tip[data-side="left"]::after{right:-3px;top:50%;margin-top:-3px;}
.ds-tip[data-side="right"]{left:calc(100% + 6px);top:50%;translate:0 -50%;}
.ds-tip[data-side="right"]::after{left:-3px;top:50%;margin-top:-3px;}
