/* SDS 1.2.0 component composition. Load tokens.css first. */
.sds {font-family:var(--sds-font-sans);font-size:var(--sds-type-body-size);line-height:var(--sds-type-body-line);font-weight:400;color:var(--sds-color-text);background:var(--sds-color-bg);min-width:0;}
.sds *, .sds *::before, .sds *::after {box-sizing:border-box;}
.sds button,.sds input,.sds select,.sds textarea {font-family:inherit;}
.sds a {color:var(--sds-color-accent);text-underline-offset:3px;}
.sds a:hover {color:var(--sds-color-accent-hover);}
.sds h1,.sds h2,.sds h3,.sds p {margin:0;}
.sds h1 {font-size:var(--sds-type-title-size);line-height:var(--sds-type-title-line);font-weight:600;}
.sds h2 {font-size:var(--sds-type-heading-size);line-height:var(--sds-type-heading-line);font-weight:600;}
.sds h3 {font-size:var(--sds-type-body-size);line-height:var(--sds-type-body-line);font-weight:600;}
.sds :focus-visible {outline:var(--sds-border-focus-width) solid var(--sds-color-focus);outline-offset:var(--sds-border-focus-offset);box-shadow:0 0 0 var(--sds-component-focus-offset) var(--sds-component-focus-inner);scroll-margin-block:calc(var(--sds-topbar-height) + 16px) 80px;}
.sds-visually-hidden {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;}
.sds-button {display:inline-grid;position:relative;align-items:center;justify-content:center;min-height:var(--sds-control-height);min-width:var(--sds-control-height);padding:6px 12px;border:1px solid var(--sds-color-edge);border-radius:var(--sds-radius-control);background:var(--sds-color-surface);color:var(--sds-color-text);font-size:var(--sds-type-body-size);line-height:var(--sds-type-body-line);font-weight:600;cursor:pointer;text-align:center;white-space:normal;transition:background-color var(--sds-motion-fast) var(--sds-motion-ease);}
.sds-button__label {grid-area:1/1;display:inline-flex;gap:8px;align-items:center;justify-content:center;}
.sds-button--primary {color:var(--sds-color-on-primary);background:var(--sds-color-primary);border-color:var(--sds-color-primary);}
.sds-button--primary:hover:not(:disabled):not([aria-disabled=true]) {background:var(--sds-color-primary-hover);border-color:var(--sds-color-primary-hover);}
.sds-button--primary:active:not(:disabled):not([aria-disabled=true]) {background:var(--sds-color-primary-pressed);border-color:var(--sds-color-primary-pressed);}
.sds-button--secondary:hover:not(:disabled):not([aria-disabled=true]),.sds-button--tertiary:hover:not(:disabled):not([aria-disabled=true]) {background:var(--sds-color-hover);}
.sds-button--tertiary {background:transparent;border-color:transparent;color:var(--sds-color-accent);}
.sds-button--destructive {color:var(--sds-color-danger);background:var(--sds-color-danger-bg);border-color:var(--sds-color-danger);}
.sds-button--destructive:hover:not(:disabled):not([aria-disabled=true]) {box-shadow:inset 0 0 0 1px var(--sds-color-danger);}
.sds-button:disabled {cursor:not-allowed;color:var(--sds-color-sub);background:var(--sds-color-surface2);border-color:var(--sds-color-border);}
.sds-button[aria-disabled=true] {cursor:wait;}
.sds-button:disabled[aria-disabled=true] {cursor:not-allowed;}
.sds-button.is-busy .sds-button__label {visibility:hidden;}
.sds-button__pending {position:absolute;inset:0;display:block;align-content:center;max-width:100%;padding-inline:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.sds-icon-button {width:var(--sds-control-height);padding:6px;}
.sds-icon-button svg {width:20px;height:20px;display:block;}
.sds-field {display:flex;flex-direction:column;gap:8px;min-width:0;}
.sds-field__label {font-weight:600;}
.sds-field__required {font-weight:400;color:var(--sds-color-sub);}
.sds-field__hint {color:var(--sds-color-sub);font-size:var(--sds-type-caption-size);line-height:var(--sds-type-caption-line);}
.sds-field__error {color:var(--sds-color-danger);font-size:var(--sds-type-body-size);line-height:var(--sds-type-body-line);}
.sds-input {width:100%;max-width:100%;min-width:0;min-height:var(--sds-control-height);padding:4px 12px;font-size:var(--sds-type-input-size);line-height:var(--sds-type-input-line);color:var(--sds-color-text);background:var(--sds-color-surface);border:1px solid var(--sds-color-edge);border-radius:var(--sds-radius-control);}
.sds-input[aria-invalid=true] {border-color:var(--sds-color-danger);}
.sds-input:disabled {color:var(--sds-color-sub);background:var(--sds-color-surface2);cursor:not-allowed;}
.sds-input[readonly] {background:var(--sds-color-surface2);}
.sds-input::placeholder {color:var(--sds-color-sub);opacity:1;}
.sds-textarea {min-height:104px;resize:vertical;}
.sds-choice-field {min-width:0;}
.sds-choice {display:flex;align-items:center;gap:8px;min-height:var(--sds-control-height);width:fit-content;max-width:100%;padding:4px 0;cursor:pointer;}
.sds-choice input {flex:none;width:20px;height:20px;accent-color:var(--sds-color-accent);margin:0;}
.sds-choice:has(input:disabled) {cursor:not-allowed;color:var(--sds-color-sub);}
.sds-switch input {appearance:none;width:36px;height:24px;border-radius:999px;background:var(--sds-color-surface2);border:1px solid var(--sds-color-edge);position:relative;}
.sds-switch input::after {content:'';display:block;width:16px;height:16px;background:var(--sds-color-sub);border-radius:50%;position:absolute;inset-block-start:3px;inset-inline-start:3px;}
.sds-switch input:checked {background:var(--sds-color-primary);border-color:var(--sds-color-primary);}
.sds-switch input:checked::after {background:var(--sds-color-on-primary);inset-inline-start:15px;}
.sds-badge {display:inline-flex;align-items:center;gap:4px;border:1px solid var(--sds-component-badge-border);border-radius:var(--sds-component-badge-radius);font-size:var(--sds-type-caption-size);line-height:var(--sds-type-caption-line);font-weight:500;padding:var(--sds-component-badge-padding-block) var(--sds-component-badge-padding-inline);}
.sds-tone-neutral {color:var(--sds-color-sub);background:var(--sds-color-surface2);}
.sds-tone-info {color:var(--sds-color-accent);background:var(--sds-color-tint);}
.sds-tone-success {color:var(--sds-color-success);background:var(--sds-color-success-bg);}
.sds-tone-warning {color:var(--sds-color-warning);background:var(--sds-color-warning-bg);}
.sds-tone-danger {color:var(--sds-color-danger);background:var(--sds-color-danger-bg);}
.sds-banner {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border:1px solid currentColor;border-radius:var(--sds-radius-control);}
.sds-banner__action {flex:none;}
.sds-empty {padding:32px 24px;display:grid;gap:16px;justify-items:start;border:1px solid var(--sds-color-border);border-radius:var(--sds-radius-card);background:var(--sds-color-surface);}
.sds-empty p {max-width:65ch;color:var(--sds-color-sub);}
.sds-loading-region {position:relative;min-width:0;}
.sds-loading-label {padding:12px;color:var(--sds-color-sub);}
.sds-page-header {display:grid;gap:12px;margin-block-end:24px;}
.sds-page-header__row {display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;}
.sds-page-header__row p {margin-block-start:8px;color:var(--sds-color-sub);max-width:75ch;}
.sds-actions {display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.sds-panel {background:var(--sds-color-surface);border:1px solid var(--sds-color-border);border-radius:var(--sds-radius-card);padding:var(--sds-panel-padding);min-width:0;}
.sds-panel__header {display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-block-end:16px;flex-wrap:wrap;}
.sds-kpi {display:grid;gap:8px;}
.sds-kpi__label,.sds-kpi__detail {color:var(--sds-color-sub);}
.sds-kpi__value {font-size:var(--sds-type-title-size);line-height:var(--sds-type-title-line);font-weight:600;font-variant-numeric:tabular-nums;}
.sds-kpi__detail {font-size:var(--sds-type-caption-size);line-height:var(--sds-type-caption-line);}
.sds-breadcrumbs ol {list-style:none;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap;}
.sds-breadcrumbs li {display:inline-flex;gap:8px;align-items:center;}
.sds-breadcrumbs li:not(:last-child)::after {content:'/';color:var(--sds-color-sub);}
.sds-table-region {max-width:100%;min-width:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--sds-color-border);border-radius:var(--sds-radius-control);background:var(--sds-color-surface);}
.sds-table {width:100%;border-collapse:separate;border-spacing:0;font-size:var(--sds-type-body-size);line-height:var(--sds-type-body-line);}
.sds-table caption {text-align:start;padding:12px;font-weight:600;color:var(--sds-color-text);}
.sds-table th {position:sticky;top:0;background:var(--sds-color-surface2);font-weight:600;text-align:start;z-index:var(--sds-z-index-sticky);}
.sds-table th,.sds-table td {padding:8px 12px;border-block-end:1px solid var(--sds-color-border);vertical-align:middle;}
.sds-table td[data-numeric],.sds-table th[data-numeric] {text-align:end;font-variant-numeric:tabular-nums;}
.sds-table tbody tr:last-child td {border-block-end:0;}
.sds-dialog {background:var(--sds-color-surface);color:var(--sds-color-text);border:1px solid var(--sds-color-edge);border-radius:var(--sds-radius-sheet);box-shadow:var(--sds-shadow-dialog);width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;overflow:auto;}
.sds-dialog::backdrop {background:var(--sds-color-scrim);}
.sds-dialog__header {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-block-end:16px;}
.sds-dialog__body {margin-block:16px;}
.sds-dialog__footer {display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-block-start:24px;}
.sds-skip-link {position:fixed;inset-inline-start:16px;top:8px;transform:translateY(-200%);background:var(--sds-color-surface);color:var(--sds-color-text);padding:12px;z-index:1000;border:1px solid var(--sds-color-edge);}
.sds-skip-link:focus {transform:none;}
@media(max-width:639.98px){.sds-banner{flex-direction:column}.sds-dialog{padding:16px}.sds-panel__header{gap:12px}}
@media(prefers-reduced-motion:reduce){.sds *,.sds *::before,.sds *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.sds-button,.sds-badge,.sds-banner{border:1px solid CanvasText}.sds-button{color:ButtonText;background:ButtonFace}.sds-switch input{forced-color-adjust:none;background:Canvas;border-color:CanvasText}.sds-switch input::after{background:CanvasText}.sds-switch input:checked{background:Highlight;border-color:Highlight}.sds-switch input:checked::after{background:HighlightText}.sds-button:disabled{color:GrayText;border-color:GrayText}.sds-dialog{box-shadow:none}.sds :focus-visible{outline-color:Highlight;box-shadow:none}}

.sds-badge--neutral {color:var(--sds-color-sub);background:var(--sds-color-surface2);}
.sds-badge--info {color:var(--sds-color-info);background:var(--sds-color-info-bg);}
.sds-badge--success {color:var(--sds-color-success);background:var(--sds-color-success-bg);}
.sds-badge--warning {color:var(--sds-color-warning);background:var(--sds-color-warning-bg);}
.sds-badge--danger {color:var(--sds-color-danger);background:var(--sds-color-danger-bg);}
