:root {
    --abc-accent: #176957;
    --abc-accent-hover: #105241;
    --abc-on-accent: #ffffff;
    --abc-text: #202e2a;
    --abc-muted: #5c6b65;
    --abc-surface: #ffffff;
    --abc-surface-subtle: #f3f6f3;
    --abc-border: #d6ded8;
    --abc-focus: #247fbd;
    --abc-danger: #ac3034;
    --abc-radius: 0.625rem;
    --abc-font-family: inherit;
}

.abc-button, .abc-input, .abc-select, .abc-checkbox, .abc-card {
    box-sizing: border-box;
    font-family: var(--abc-font-family);
}

.abc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 2.75rem;
    padding: 0.65rem 1.1rem;
    border: 1px solid transparent;
    border-radius: var(--abc-radius);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
    transition: background-color 120ms ease, border-color 120ms ease;
}

.abc-button--primary {
    color: var(--abc-on-accent);
    background: var(--abc-accent);
    border-color: var(--abc-accent);
}
.abc-button--primary:hover:not(:disabled) {
    background: var(--abc-accent-hover);
    border-color: var(--abc-accent-hover);
}
.abc-button--secondary {
    color: var(--abc-text);
    background: var(--abc-surface);
    border-color: var(--abc-border);
}
.abc-button--secondary:hover:not(:disabled),
.abc-button--ghost:hover:not(:disabled) { background: var(--abc-surface-subtle); }
.abc-button--ghost { color: var(--abc-accent); background: transparent; }
.abc-button:disabled { opacity: 0.48; cursor: not-allowed; }

.abc-input, .abc-select {
    display: block;
    width: 100%;
    min-height: 2.875rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--abc-border);
    border-radius: var(--abc-radius);
    background: var(--abc-surface);
    color: var(--abc-text);
    font-size: 0.9375rem;
    line-height: 1.5;
}
.abc-input::placeholder { color: var(--abc-muted); opacity: 1; }
.abc-select { padding-right: 1.75rem; }
.abc-input:disabled, .abc-select:disabled {
    background: var(--abc-surface-subtle);
    color: var(--abc-muted);
    cursor: not-allowed;
}
.abc-input.invalid, .abc-select.invalid, .abc-checkbox.invalid {
    border-color: var(--abc-danger);
    outline: 1px solid var(--abc-danger);
}
.abc-checkbox {
    width: 1.125rem;
    height: 1.125rem;
    margin: 0;
    accent-color: var(--abc-accent);
    cursor: pointer;
    flex-shrink: 0;
}
.abc-checkbox:disabled { cursor: not-allowed; opacity: 0.55; }
.abc-button:focus-visible, .abc-input:focus-visible,
.abc-select:focus-visible, .abc-checkbox:focus-visible {
    outline: 3px solid var(--abc-focus);
    outline-offset: 3px;
}
.abc-card {
    padding: 1.5rem;
    border: 1px solid var(--abc-border);
    border-radius: calc(var(--abc-radius) * 1.6);
    background: var(--abc-surface);
    color: var(--abc-text);
}

@media (prefers-reduced-motion: reduce) {
    .abc-button { transition: none; }
}


/* Extended inputs, modal dialogs, and tabs. */
.abc-textarea { resize: vertical; }
.abc-dialog, .abc-tabs, .abc-tabs__tab, .abc-dialog__close {
    box-sizing: border-box;
    font-family: var(--abc-font-family);
}
.abc-dialog {
    width: min(35rem, calc(100% - 2rem));
    max-height: calc(100dvh - 4rem);
    padding: 0;
    border: 1px solid var(--abc-border);
    border-radius: calc(var(--abc-radius) * 1.6);
    background: var(--abc-surface);
    color: var(--abc-text);
    box-shadow: 0 24px 80px #14241d33;
    overflow: auto;
}
.abc-dialog::backdrop { background: #14241d77; backdrop-filter: blur(3px); }
.abc-dialog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--abc-border);
}
.abc-dialog__header h2 { margin: 0; font-size: 1.25rem; font-weight: 600; letter-spacing: -0.025em; }
.abc-dialog__close {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 0;
    border-radius: var(--abc-radius);
    background: transparent;
    color: var(--abc-muted);
    font-size: 1.75rem;
    cursor: pointer;
}
.abc-dialog__close:hover { background: var(--abc-surface-subtle); }
.abc-dialog__body { padding: 1.5rem; overflow-wrap: anywhere; }
.abc-dialog__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--abc-border);
    background: var(--abc-surface-subtle);
}
.abc-tabs__list { display: flex; gap: 0.25rem; overflow-x: auto; border-bottom: 1px solid var(--abc-border); }
.abc-tabs__tab {
    padding: 0.8rem 1rem;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: var(--abc-muted);
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}
.abc-tabs__tab[aria-selected="true"] { color: var(--abc-accent); border-bottom-color: var(--abc-accent); }
.abc-tabs__tab:hover:not(:disabled) { background: var(--abc-surface-subtle); }
.abc-tabs__tab:disabled { opacity: 0.45; cursor: not-allowed; }
.abc-tabs__panel { padding: 1.25rem 0.25rem; color: var(--abc-text); }
.abc-tabs__panel[hidden] { display: none; }
.abc-dialog__close:focus-visible, .abc-tabs__panel:focus-visible {
    outline: 3px solid var(--abc-focus);
    outline-offset: 3px;
}
.abc-tabs__tab:focus-visible { outline: 3px solid var(--abc-focus); outline-offset: -4px; }

/* Choices and status feedback. */
:root {
    --abc-neutral-text: #52604f;
    --abc-neutral-surface: #f0f3ed;
    --abc-neutral-border: #d7dfd2;
    --abc-info-text: #235a88;
    --abc-info-surface: #edf5fc;
    --abc-info-border: #bed6e9;
    --abc-success-text: #176957;
    --abc-success-surface: #edf7f0;
    --abc-success-border: #bdd8c6;
    --abc-warning-text: #845006;
    --abc-warning-surface: #fff6de;
    --abc-warning-border: #edd49b;
    --abc-error-text: #ac3034;
    --abc-error-surface: #fff0ef;
    --abc-error-border: #eebeb9;
}
.abc-radio-group, .abc-radio, .abc-switch, .abc-alert, .abc-badge, .abc-progress {
    box-sizing: border-box;
    font-family: var(--abc-font-family);
}
.abc-radio-group { min-inline-size: 0; padding: 0; margin: 0; border: 0; }
.abc-radio-group > legend { padding: 0; margin-bottom: 0.75rem; font-size: 0.875rem; font-weight: 600; color: var(--abc-text); }
.abc-radio-group__options { display: grid; gap: 0.5rem; }
.abc-radio-group--inline .abc-radio-group__options { display: flex; flex-wrap: wrap; }
.abc-radio-option {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.8rem;
    border: 1px solid var(--abc-border);
    border-radius: var(--abc-radius);
    background: var(--abc-surface);
    cursor: pointer;
}
.abc-radio-option:has(input:checked) { background: var(--abc-surface-subtle); border-color: var(--abc-accent); }
.abc-radio-option:has(input:not(:disabled)):hover { background: var(--abc-surface-subtle); }
.abc-radio-option:has(input:disabled) { opacity: 0.5; cursor: not-allowed; }
.abc-radio { width: 1.125rem; height: 1.125rem; margin: 0.1rem 0 0; accent-color: var(--abc-accent); flex-shrink: 0; cursor: inherit; }
.abc-radio-option__text { display: grid; gap: 0.3rem; }
.abc-radio-option__label { font-size: 0.875rem; font-weight: 550; color: var(--abc-text); }
.abc-radio-option__description { font-size: 0.8125rem; line-height: 1.5; color: var(--abc-muted); }
.abc-switch {
    appearance: none;
    position: relative;
    display: inline-block;
    flex-shrink: 0;
    width: 2.625rem;
    height: 1.5rem;
    margin: 0;
    border: 2px solid var(--abc-border);
    border-radius: 999px;
    background: var(--abc-muted);
    cursor: pointer;
    transition: background-color 120ms ease;
}
.abc-switch::before {
    content: "";
    position: absolute;
    top: 0.125rem;
    inset-inline-start: 0.125rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: var(--abc-on-accent);
    transition: inset-inline-start 120ms ease;
}
.abc-switch:checked { background: var(--abc-accent); border-color: var(--abc-accent); }
.abc-switch:checked::before { inset-inline-start: calc(100% - 1.125rem); }
.abc-switch:disabled { opacity: 0.45; cursor: not-allowed; }
.abc-radio.invalid, .abc-switch.invalid { outline: 1px solid var(--abc-danger); outline-offset: 2px; }
.abc-radio:focus-visible, .abc-switch:focus-visible, .abc-alert__dismiss:focus-visible {
    outline: 3px solid var(--abc-focus);
    outline-offset: 3px;
}
.abc-alert, .abc-badge, .abc-progress, .abc-tone--neutral {
    --abc-tone-text: var(--abc-neutral-text);
    --abc-tone-surface: var(--abc-neutral-surface);
    --abc-tone-border: var(--abc-neutral-border);
}
.abc-tone--info { --abc-tone-text: var(--abc-info-text); --abc-tone-surface: var(--abc-info-surface); --abc-tone-border: var(--abc-info-border); }
.abc-tone--success { --abc-tone-text: var(--abc-success-text); --abc-tone-surface: var(--abc-success-surface); --abc-tone-border: var(--abc-success-border); }
.abc-tone--warning { --abc-tone-text: var(--abc-warning-text); --abc-tone-surface: var(--abc-warning-surface); --abc-tone-border: var(--abc-warning-border); }
.abc-tone--error { --abc-tone-text: var(--abc-error-text); --abc-tone-surface: var(--abc-error-surface); --abc-tone-border: var(--abc-error-border); }
.abc-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.6rem;
    border: 1px solid var(--abc-tone-border);
    border-radius: 999px;
    color: var(--abc-tone-text);
    background: var(--abc-tone-surface);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
}
.abc-alert {
    display: flex;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid var(--abc-tone-border);
    border-radius: var(--abc-radius);
    color: var(--abc-tone-text);
    background: var(--abc-tone-surface);
}
.abc-alert__icon { display: grid; place-items: center; flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin-top: 0.1rem; border: 1px solid currentColor; border-radius: 50%; font-size: 0.8rem; font-weight: 700; }
.abc-alert__content { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.abc-alert__title { display: block; font-size: 0.875rem; font-weight: 650; line-height: 1.5; }
.abc-alert__message { font-size: 0.8125rem; line-height: 1.6; }
.abc-alert__title + .abc-alert__message { margin-top: 0.25rem; }
.abc-alert__dismiss { display: grid; place-items: center; flex-shrink: 0; width: 1.75rem; height: 1.75rem; padding: 0; border: 0; border-radius: 0.25rem; color: inherit; background: transparent; cursor: pointer; font: inherit; font-size: 1.4rem; }
.abc-alert__dismiss:hover { background: var(--abc-tone-border); }
.abc-progress { display: block; appearance: none; width: 100%; height: 0.625rem; border: 0; border-radius: 999px; overflow: hidden; background: var(--abc-surface-subtle); accent-color: var(--abc-tone-text); }
.abc-progress::-webkit-progress-bar { background: var(--abc-surface-subtle); border-radius: inherit; }
.abc-progress::-webkit-progress-value { background: var(--abc-tone-text); border-radius: inherit; }
.abc-progress::-moz-progress-bar { background: var(--abc-tone-text); border-radius: inherit; }
.abc-progress:indeterminate::-webkit-progress-bar {
    background: repeating-linear-gradient(135deg, var(--abc-tone-border) 0 8px, var(--abc-tone-surface) 8px 16px);
    background-size: 32px 32px;
    animation: abc-progress-stripes 1.5s linear infinite;
}
.abc-progress:indeterminate::-moz-progress-bar {
    background: repeating-linear-gradient(135deg, var(--abc-tone-border) 0 8px, var(--abc-tone-surface) 8px 16px);
    background-size: 32px 32px;
    animation: abc-progress-stripes 1.5s linear infinite;
}
@keyframes abc-progress-stripes { to { background-position: 32px 0; } }
@media (prefers-reduced-motion: reduce) {
    .abc-switch, .abc-switch::before { transition: none; }
    .abc-progress:indeterminate::-webkit-progress-bar { animation: none; }
    .abc-progress:indeterminate::-moz-progress-bar { animation: none; }
}

/* Navigation, floating controls, choices, files, and data. */
.abc-field-label { display: block; margin-bottom: .5rem; color: var(--abc-text); font-size: .875rem; font-weight: 600; }
.abc-empty { display: block; padding: 1rem; color: var(--abc-muted); font-size: .875rem; }
.abc-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: 0; margin: 0 0 1.25rem; list-style: none; font-size: .8125rem; }
.abc-breadcrumbs li { display: flex; align-items: center; gap: .6rem; }
.abc-breadcrumbs a { color: var(--abc-accent); text-underline-offset: 3px; }
.abc-breadcrumbs [aria-current] { color: var(--abc-muted); }
.abc-breadcrumbs__separator { color: var(--abc-border); }
.abc-accordion { border: 1px solid var(--abc-border); border-radius: var(--abc-radius); overflow: hidden; }
.abc-accordion__item + .abc-accordion__item { border-top: 1px solid var(--abc-border); }
.abc-accordion__heading { margin: 0; }
.abc-accordion__trigger { display: flex; justify-content: space-between; gap: 1rem; width: 100%; padding: 1rem; border: 0; background: var(--abc-surface); color: var(--abc-text); text-align: start; font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer; }
.abc-accordion__trigger:hover:not(:disabled), .abc-accordion__trigger[aria-expanded="true"] { background: var(--abc-surface-subtle); }
.abc-accordion__trigger:disabled { opacity: .45; cursor: not-allowed; }
.abc-accordion__panel { padding: .5rem 1rem 1rem; color: var(--abc-muted); font-size: .875rem; line-height: 1.6; }
.abc-accordion__panel[hidden] { display: none; }
.abc-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; padding: 1rem 0; font-size: .75rem; color: var(--abc-muted); }
.abc-pagination__pages { display: flex; gap: .2rem; }
.abc-pagination__pages button { min-width: 2rem; min-height: 2rem; border: 1px solid var(--abc-border); border-radius: .35rem; background: var(--abc-surface); color: var(--abc-text); font: inherit; cursor: pointer; }
.abc-pagination__pages [aria-current] { background: var(--abc-accent); color: var(--abc-on-accent); border-color: var(--abc-accent); }
.abc-pagination__pages button:disabled { opacity: .4; cursor: not-allowed; }
.abc-pagination__size { display: flex; align-items: center; gap: .5rem; margin-inline-start: auto; }
.abc-pagination__size select { border: 1px solid var(--abc-border); border-radius: .35rem; padding: .35rem; background: var(--abc-surface); color: var(--abc-text); font: inherit; }
.abc-popover { position: fixed; inset: auto; margin: 0; box-sizing: border-box; width: 22rem; padding: 1.1rem; border: 1px solid var(--abc-border); border-radius: var(--abc-radius); background: var(--abc-surface); color: var(--abc-text); box-shadow: 0 12px 40px #14241d25; overflow: auto; font-family: var(--abc-font-family); }
.abc-popover h4 { font-size: 1rem; margin: 0 0 .7rem; }
.abc-popover p { color: var(--abc-muted); font-size: .875rem; line-height: 1.6; margin: 0 0 1rem; }
.abc-tooltip-trigger { padding: .4rem 0; border: 0; border-bottom: 1px dashed var(--abc-muted); background: transparent; color: var(--abc-accent); font: inherit; font-size: .8125rem; cursor: help; }
.abc-tooltip { width: 18rem; padding: .65rem .85rem; background: var(--abc-text); color: var(--abc-surface); border-color: var(--abc-text); font-size: .8125rem; line-height: 1.6; pointer-events: auto; }
.abc-menu { width: 14rem; padding: .35rem; }
.abc-menu__item { display: block; width: 100%; border: 0; border-radius: .3rem; padding: .7rem .8rem; background: transparent; color: var(--abc-text); font: inherit; font-size: .875rem; text-align: start; cursor: pointer; }
.abc-menu__item:hover:not(:disabled), .abc-menu__item:focus-visible { background: var(--abc-surface-subtle); }
.abc-menu__item:disabled { opacity: .4; cursor: not-allowed; }
.abc-combobox__input { display: flex; position: relative; }
.abc-combobox__input .abc-input { padding-inline-end: 2.5rem; }
.abc-combobox__clear { position: absolute; inset-inline-end: .35rem; top: .35rem; width: 2rem; height: 2rem; border: 0; border-radius: .3rem; background: transparent; color: var(--abc-muted); font-size: 1.25rem; cursor: pointer; }
.abc-options { padding: .3rem; }
.abc-option { display: flex; gap: .5rem; width: 100%; padding: .7rem .8rem; border: 0; border-radius: .3rem; background: transparent; color: var(--abc-text); font: inherit; font-size: .875rem; text-align: start; cursor: pointer; }
.abc-option[data-abc-active="true"], .abc-option:hover:not(:disabled) { background: var(--abc-surface-subtle); }
.abc-option[aria-selected="true"] { color: var(--abc-accent); font-weight: 600; }
.abc-option:disabled { opacity: .4; cursor: not-allowed; }
.abc-multiselect__frame { padding: .3rem .5rem; border: 1px solid var(--abc-border); border-radius: var(--abc-radius); background: var(--abc-surface); }
.abc-multiselect__frame.invalid { border-color: var(--abc-danger); }
.abc-multiselect__frame:focus-within { outline: 3px solid var(--abc-focus); outline-offset: 3px; }
.abc-multiselect__search { box-sizing: border-box; width: 100%; min-height: 2.2rem; padding: .35rem; border: 0; outline: 0; background: transparent; color: var(--abc-text); font: inherit; font-size: .9rem; }
.abc-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin: .2rem 0; padding: 0; list-style: none; }
.abc-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .4rem .2rem .6rem; border-radius: 999px; background: var(--abc-surface-subtle); border: 1px solid var(--abc-border); color: var(--abc-accent); font-size: .75rem; }
.abc-chip button { border: 0; border-radius: 50%; width: 1.4rem; height: 1.4rem; background: transparent; color: inherit; cursor: pointer; font-size: 1rem; }
.abc-chip button:disabled { opacity: .4; cursor: not-allowed; }
.abc-file-upload__drop { position: relative; display: grid; place-items: center; gap: .65rem; padding: 1.75rem 1rem; border: 1px dashed var(--abc-border); border-radius: var(--abc-radius); background: var(--abc-surface-subtle); text-align: center; }
.abc-file-upload__drop input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.abc-file-upload__drop:focus-within { outline: 3px solid var(--abc-focus); outline-offset: 3px; }
.abc-file-upload__drop strong { color: var(--abc-accent); font-size: .875rem; }
.abc-file-upload__drop > span:not(.abc-file-upload__symbol) { color: var(--abc-muted); font-size: .75rem; line-height: 1.6; }
.abc-file-upload__symbol { font-size: 1.75rem; color: var(--abc-accent); }
.abc-file-upload--disabled { opacity: .5; }
.abc-file-upload--disabled input[type="file"] { cursor: not-allowed; }
.abc-file-upload__files { padding: 0; margin: 1rem 0; list-style: none; font-size: .8125rem; }
.abc-file-upload__files li { display: flex; justify-content: space-between; gap: .75rem; padding: .5rem 0; border-bottom: 1px solid var(--abc-border); }
.abc-file-upload__files li span:first-child { overflow-wrap: anywhere; min-width: 0; }
.abc-file-upload__errors { padding-left: 1.2rem; color: var(--abc-danger); font-size: .8125rem; line-height: 1.6; }
.abc-grid__tools { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.abc-grid__filter { display: grid; gap: .4rem; max-width: 22rem; width: 100%; color: var(--abc-muted); font-size: .75rem; }
.abc-grid__selection { color: var(--abc-muted); font-size: .75rem; white-space: nowrap; }
.abc-grid__scroll { overflow-x: auto; border: 1px solid var(--abc-border); border-radius: var(--abc-radius); }
.abc-grid table { width: 100%; border-collapse: collapse; font-size: .8125rem; text-align: start; }
.abc-grid caption { padding: .75rem 1rem; background: var(--abc-surface-subtle); text-align: start; color: var(--abc-text); font-weight: 600; }
.abc-grid th { background: var(--abc-surface-subtle); color: var(--abc-muted); font-weight: 600; white-space: nowrap; }
.abc-grid th, .abc-grid td { padding: .85rem 1rem; border-top: 1px solid var(--abc-border); text-align: start; }
.abc-grid td { color: var(--abc-text); }
.abc-grid__sort { display: flex; align-items: center; gap: .8rem; padding: 0; border: 0; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.abc-grid__row--selected { background: var(--abc-surface-subtle); }
.abc-grid td.abc-empty { display: table-cell; text-align: center; padding: 2rem; }
.abc-accordion__trigger:focus-visible, .abc-pagination button:focus-visible, .abc-pagination select:focus-visible,
.abc-menu__item:focus-visible, .abc-tooltip-trigger:focus-visible, .abc-combobox__clear:focus-visible,
.abc-chip button:focus-visible, .abc-grid__sort:focus-visible, .abc-grid__scroll:focus-visible {
    outline: 3px solid var(--abc-focus); outline-offset: -3px;
}

/* Input details, loading, identity, and steps. */
.abc-slider { display:block; width:100%; min-height:2rem; margin:0; accent-color:var(--abc-accent); cursor:pointer; }
.abc-slider:disabled { cursor:not-allowed; opacity:.45; }
.abc-slider.invalid, .abc-color-picker.invalid { outline:1px solid var(--abc-danger); outline-offset:2px; }
.abc-slider:focus-visible, .abc-color-picker:focus-visible, .abc-stepper__step:focus-visible { outline:3px solid var(--abc-focus); outline-offset:3px; }
.abc-color-picker { box-sizing:border-box; width:3rem; height:2.75rem; padding:.25rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); background:var(--abc-surface); cursor:pointer; }
.abc-color-picker::-webkit-color-swatch-wrapper { padding:.15rem; }
.abc-color-picker::-webkit-color-swatch { border:0; border-radius:.3rem; }
.abc-color-picker::-moz-color-swatch { border:0; border-radius:.3rem; }
.abc-color-picker:disabled { cursor:not-allowed; opacity:.45; }
.abc-rating { margin:0; padding:0; border:0; min-inline-size:0; }
.abc-rating legend { padding:0; margin-bottom:.6rem; font-size:.875rem; font-weight:600; color:var(--abc-text); }
.abc-rating__options { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem; }
.abc-rating__star, .abc-rating__clear { position:relative; display:grid; place-items:center; border-radius:.3rem; cursor:pointer; }
.abc-rating__star { width:2rem; height:2.2rem; font-size:1.85rem; color:var(--abc-border); }
.abc-rating__star--filled { color:var(--abc-accent); }
.abc-rating__clear { min-height:2rem; padding:.15rem .45rem; margin-inline-end:.3rem; font-size:.75rem; color:var(--abc-muted); border:1px solid var(--abc-border); }
.abc-rating__options input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:inherit; }
.abc-rating__options label:has(input:focus-visible) { outline:3px solid var(--abc-focus); outline-offset:2px; }
.abc-rating__options label:has(input:disabled) { opacity:.45; cursor:not-allowed; }
.abc-rating__options label:has(input.invalid) { border-bottom:1px solid var(--abc-danger); }
.abc-skeleton { display:block; flex-shrink:0; box-sizing:border-box; border-radius:.4rem; background:var(--abc-border); opacity:.55; }
.abc-skeleton--circle { border-radius:50%; }
.abc-skeleton--rectangle { border-radius:var(--abc-radius); }
.abc-skeleton--animated { background-image:linear-gradient(100deg,transparent 20%,#ffffff77 50%,transparent 80%); background-size:220% 100%; animation:abc-skeleton-sweep 1.8s ease-in-out infinite; }
@keyframes abc-skeleton-sweep { from { background-position:140% 0; } to { background-position:-140% 0; } }
.abc-spinner { display:inline-flex; align-items:center; gap:.65rem; color:var(--abc-accent); }
.abc-spinner__ring { display:inline-block; box-sizing:border-box; width:1.5rem; height:1.5rem; flex-shrink:0; border:2px solid var(--abc-border); border-inline-end-color:var(--abc-accent); border-radius:50%; animation:abc-spinner-turn .9s linear infinite; }
.abc-spinner--small .abc-spinner__ring { width:1rem; height:1rem; }
.abc-spinner--large .abc-spinner__ring { width:2.25rem; height:2.25rem; border-width:3px; }
.abc-spinner__label { font-size:.8125rem; }
@keyframes abc-spinner-turn { to { transform:rotate(360deg); } }
.abc-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.abc-divider { box-sizing:border-box; display:flex; align-items:center; gap:.8rem; color:var(--abc-muted); }
.abc-divider--horizontal { width:100%; margin:1.25rem 0; }
.abc-divider--horizontal::before, .abc-divider--horizontal::after { content:""; flex:1; border-top:1px solid var(--abc-border); }
.abc-divider--horizontal:not(.abc-divider--labelled)::after { display:none; }
.abc-divider > span { flex-shrink:0; font-size:.75rem; }
.abc-divider--vertical { display:inline-block; width:1px; height:1.5rem; margin:0 .5rem; flex-shrink:0; background:var(--abc-border); }
.abc-avatar { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; width:2.5rem; height:2.5rem; flex-shrink:0; overflow:hidden; border-radius:50%; background:var(--abc-tone-surface,var(--abc-surface-subtle)); color:var(--abc-tone-text,var(--abc-text)); border:1px solid var(--abc-tone-border,var(--abc-border)); font-size:.875rem; font-weight:600; }
.abc-avatar--small { width:2rem; height:2rem; font-size:.75rem; }
.abc-avatar--large { width:3.5rem; height:3.5rem; font-size:1.125rem; }
.abc-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.abc-empty-state { display:grid; justify-items:center; gap:.75rem; padding:1.75rem 1rem; text-align:center; }
.abc-empty-state__icon { display:grid; place-items:center; width:3rem; height:3rem; border-radius:50%; background:var(--abc-surface-subtle); color:var(--abc-accent); font-size:1.75rem; }
.abc-empty-state h3 { margin:0; font-size:1rem; font-weight:600; color:var(--abc-text); }
.abc-empty-state p { margin:0; max-width:28rem; font-size:.875rem; line-height:1.6; color:var(--abc-muted); }
.abc-empty-state__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin-top:.3rem; }
.abc-stepper { display:block; width:100%; }
.abc-stepper ol { width:100%; display:flex; gap:.65rem; list-style:none; margin:0; padding:.5rem 0; }
.abc-stepper li { flex:1; min-width:0; position:relative; }
.abc-stepper li + li::before { content:""; position:absolute; inset-inline-start:calc(-50% - .325rem); top:.95rem; width:calc(100% + .65rem); height:1px; background:var(--abc-border); }
.abc-stepper__step { position:relative; display:flex; flex-direction:column; align-items:center; gap:.55rem; width:100%; padding:0 .15rem; border:0; border-radius:.3rem; background:transparent; color:var(--abc-muted); font:inherit; text-align:center; }
button.abc-stepper__step { cursor:pointer; }
.abc-stepper__step:disabled, .abc-stepper__step--disabled { opacity:.45; cursor:not-allowed; }
.abc-stepper__number { position:relative; z-index:1; display:grid; place-items:center; box-sizing:border-box; width:2rem; height:2rem; flex-shrink:0; border:1px solid var(--abc-border); border-radius:50%; background:var(--abc-surface); color:var(--abc-muted); font-size:.75rem; }
.abc-stepper__text { display:grid; gap:.3rem; overflow-wrap:anywhere; }
.abc-stepper__text strong { font-size:.75rem; font-weight:600; }
.abc-stepper__text > span { font-size:.6875rem; line-height:1.5; }
.abc-stepper__step--active .abc-stepper__number { color:var(--abc-on-accent); background:var(--abc-accent); border-color:var(--abc-accent); }
.abc-stepper__step--active .abc-stepper__text, .abc-stepper__step--complete .abc-stepper__number { color:var(--abc-accent); }
.abc-stepper__step--complete .abc-stepper__number { border-color:var(--abc-accent); }
@media (prefers-reduced-motion:reduce) { .abc-skeleton--animated, .abc-spinner__ring { animation:none; } }

/* Application navigation and workspace. */
.abc-appbar { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; padding:1rem 1.25rem; background:var(--abc-surface); color:var(--abc-text); border-bottom:1px solid var(--abc-border); }
.abc-appbar--sticky { position:sticky; top:0; z-index:100; }
.abc-appbar__brand, .abc-appbar__actions { display:flex; align-items:center; gap:.75rem; }
.abc-appbar__content { flex:1; min-width:8rem; }
.abc-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; padding:.65rem 0; }
.abc-toolbar__separator { width:1px; height:1.5rem; margin:0 .4rem; background:var(--abc-border); }
.abc-navigation { display:block; width:100%; }
.abc-navigation ul { margin:0; padding:0; list-style:none; }
.abc-navigation li > div[hidden] { display:none; }
.abc-navigation li > div:not(.abc-navigation__row) { padding-inline-start:1rem; }
.abc-navigation__row { display:flex; align-items:center; gap:.35rem; margin:.2rem 0; }
.abc-navigation__link, .abc-navigation__text { display:block; flex:1; padding:.75rem .85rem; border-radius:var(--abc-radius); color:var(--abc-text); font-size:.875rem; text-decoration:none; }
.abc-navigation__link:hover { background:var(--abc-surface-subtle); }
.abc-navigation__link--active { background:var(--abc-surface-subtle); color:var(--abc-accent); font-weight:650; }
.abc-navigation__text[aria-disabled="true"] { opacity:.4; }
.abc-navigation__toggle { width:2.2rem; height:2.2rem; padding:0; border:1px solid var(--abc-border); border-radius:.4rem; background:var(--abc-surface); color:var(--abc-muted); cursor:pointer; }
.abc-navigation__toggle:disabled { opacity:.4; cursor:not-allowed; }
.abc-drawer { width:min(var(--abc-drawer-width,26rem),100%); height:100dvh; max-height:100dvh; max-width:100vw; border-radius:0; inset-block:0; inset-inline:0; margin-block:0; overflow:hidden; }
.abc-drawer[open] { display:flex; flex-direction:column; }
.abc-drawer--end { margin-inline-start:auto; margin-inline-end:0; }
.abc-drawer--start { margin-inline-start:0; margin-inline-end:auto; }
.abc-drawer .abc-dialog__header, .abc-drawer .abc-dialog__footer { flex-shrink:0; }
.abc-drawer .abc-dialog__body { flex:1; overflow:auto; }
.abc-context-target { border:1px dashed var(--abc-border); border-radius:var(--abc-radius); padding:1.25rem; background:var(--abc-surface-subtle); color:var(--abc-text); }
.abc-context-target > strong { display:block; font-size:.9rem; }
.abc-context-target > span { display:block; color:var(--abc-muted); font-size:.8rem; line-height:1.6; margin-top:.5rem; }
.abc-toasts { position:fixed; display:grid; gap:.7rem; z-index:1500; width:min(24rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; pointer-events:none; }
.abc-toasts--bottomend { bottom:1rem; inset-inline-end:1rem; }
.abc-toasts--bottomstart { bottom:1rem; inset-inline-start:1rem; }
.abc-toasts--topend { top:1rem; inset-inline-end:1rem; }
.abc-toasts--topstart { top:1rem; inset-inline-start:1rem; }
.abc-toast { display:flex; align-items:start; gap:1rem; padding:1rem; border:1px solid var(--abc-tone-border,var(--abc-border)); border-radius:var(--abc-radius); box-shadow:0 8px 30px #14241d22; background:var(--abc-tone-surface,var(--abc-surface)); color:var(--abc-tone-text,var(--abc-text)); pointer-events:auto; }
.abc-toast > div { flex:1; min-width:0; overflow-wrap:anywhere; }
.abc-toast strong { font-size:.875rem; }
.abc-toast p { margin:.35rem 0 0; font-size:.8125rem; line-height:1.6; }
.abc-toast__close { flex-shrink:0; width:1.75rem; height:1.75rem; padding:0; border:0; border-radius:.3rem; background:transparent; color:inherit; font-size:1.4rem; cursor:pointer; }
.abc-searchbox__row { display:flex; gap:.35rem; align-items:center; }
.abc-searchbox__row > input { flex:1; min-width:0; }
.abc-searchbox__row > button { flex-shrink:0; }
.abc-tree { display:block; padding:.4rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); }
.abc-tree__item { display:flex; align-items:center; gap:.4rem; padding:.55rem .65rem; padding-inline-start:calc(.25rem + (var(--abc-tree-level) - 1) * 1.25rem); border-radius:.3rem; color:var(--abc-text); font-size:.875rem; cursor:pointer; }
.abc-tree__item[aria-selected="true"] { color:var(--abc-accent); background:var(--abc-surface-subtle); font-weight:600; }
.abc-tree__item:hover:not([aria-disabled="true"]) { background:var(--abc-surface-subtle); }
.abc-tree__item[aria-disabled="true"] { opacity:.4; cursor:not-allowed; }
.abc-tree__toggle { display:grid; place-items:center; width:1.5rem; height:1.5rem; flex-shrink:0; color:var(--abc-muted); }
.abc-calendar { max-width:26rem; width:100%; }
.abc-calendar.invalid { outline:1px solid var(--abc-danger); border-radius:var(--abc-radius); }
.abc-calendar__header { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.75rem; }
.abc-calendar__header h3 { margin:0; font-size:1rem; font-weight:600; }
.abc-calendar__header button { min-width:2.25rem; padding:.2rem .5rem; font-size:1.25rem; }
.abc-calendar table { width:100%; border-collapse:collapse; table-layout:fixed; }
.abc-calendar th { padding:.5rem .1rem; color:var(--abc-muted); font-size:.7rem; font-weight:550; }
.abc-calendar th abbr { text-decoration:none; }
.abc-calendar td { padding:.1rem; text-align:center; }
.abc-calendar__day { width:100%; min-height:2.3rem; padding:.3rem; border:1px solid transparent; border-radius:.4rem; background:transparent; color:var(--abc-text); font:inherit; font-size:.8125rem; cursor:pointer; }
.abc-calendar__day:hover:not(:disabled) { background:var(--abc-surface-subtle); }
.abc-calendar__day--outside { color:var(--abc-muted); opacity:.65; }
.abc-calendar__day[aria-current="date"] { border-color:var(--abc-accent); }
.abc-calendar__day--selected, .abc-calendar__day--selected:hover:not(:disabled) { color:var(--abc-on-accent); background:var(--abc-accent); }
.abc-calendar__day:disabled { opacity:.25; cursor:not-allowed; }
.abc-splitter { --abc-handle-size:.65rem; display:flex; width:100%; height:20rem; min-height:10rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); overflow:hidden; }
.abc-splitter--vertical { flex-direction:column; }
.abc-splitter__pane { flex:1 1 0; min-width:0; min-height:0; overflow:auto; }
.abc-splitter__pane--first { flex:0 0 var(--abc-split); }
.abc-splitter__handle { display:grid; place-items:center; flex:0 0 var(--abc-handle-size); background:var(--abc-surface-subtle); border-inline:1px solid var(--abc-border); color:var(--abc-muted); cursor:col-resize; touch-action:none; }
.abc-splitter--vertical .abc-splitter__handle { border-inline:0; border-block:1px solid var(--abc-border); cursor:row-resize; }
.abc-splitter--vertical .abc-splitter__handle > span { transform:rotate(90deg); }
.abc-splitter__handle[aria-disabled="true"] { cursor:default; opacity:.45; }
.abc-splitter--dragging { user-select:none; }
.abc-splitter--dragging .abc-splitter__handle { background:var(--abc-accent); color:var(--abc-on-accent); }
.abc-navigation__link:focus-visible, .abc-navigation__toggle:focus-visible, .abc-context-target:focus-visible,
.abc-toast__close:focus-visible, .abc-tree__item:focus-visible, .abc-calendar__day:focus-visible,
.abc-splitter__handle:focus-visible { outline:3px solid var(--abc-focus); outline-offset:-3px; }

/* Icons, chips, and form foundations */
.abc-icon { display:inline-block; width:1.25rem; height:1.25rem; flex-shrink:0; vertical-align:middle; }
.abc-icon--small { width:1rem; height:1rem; }
.abc-icon--large { width:1.5rem; height:1.5rem; }
.abc-icon-button { display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; min-height:0; padding:0; flex-shrink:0; }
.abc-icon-button--small { width:2rem; height:2rem; }
.abc-icon-button--large { width:3rem; height:3rem; }
.abc-chip-control { gap:.15rem; padding:.15rem; max-width:100%; color:var(--abc-tone-text); background:var(--abc-tone-surface); border-color:var(--abc-tone-border); font-family:var(--abc-font-family); font-size:.8125rem; line-height:1.4; }
.abc-chip-control--selected { box-shadow:inset 0 0 0 1px currentColor; }
.abc-chip-control--disabled { opacity:.5; }
.abc-chip-control .abc-chip__action, .abc-chip-control .abc-chip__text { display:inline-flex; align-items:center; gap:.35rem; min-width:0; padding:.3rem .55rem; }
.abc-chip-control .abc-chip__action { width:auto; height:auto; min-height:1.7rem; border-radius:999px; font:inherit; color:inherit; }
.abc-chip-control .abc-chip__action > span, .abc-chip-control .abc-chip__text > span { overflow-wrap:anywhere; }
.abc-chip-control .abc-chip__remove { display:inline-flex; align-items:center; justify-content:center; width:1.75rem; height:1.75rem; flex-shrink:0; }
.abc-chip-control button:hover:not(:disabled) { background:color-mix(in srgb, currentColor 10%, transparent); }
.abc-chip-control button:focus-visible { outline:2px solid var(--abc-accent); outline-offset:2px; }
.abc-chip-control button:disabled { opacity:1; }
.abc-chip-control--small { font-size:.75rem; }
.abc-chip-control--small .abc-chip__action, .abc-chip-control--small .abc-chip__text { padding:.15rem .4rem; }
.abc-chip-control--large { font-size:.9375rem; }
.abc-chip-control--large .abc-chip__action, .abc-chip-control--large .abc-chip__text { padding:.4rem .65rem; }
.abc-chip-list { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:0; padding:0; list-style:none; }
.abc-chip-list > li { display:flex; min-width:0; max-width:100%; }
.abc-chip-list__empty { color:var(--abc-muted); font-size:.875rem; padding:.5rem 0; }
.abc-form-field { min-width:0; font-family:var(--abc-font-family); }
.abc-form-field__label { display:block; margin-bottom:.45rem; font-size:.875rem; font-weight:600; color:var(--abc-text); }
.abc-form-field__required { color:var(--abc-danger); }
.abc-form-field__control { min-width:0; }
.abc-form-field__help { margin-top:.4rem; font-size:.8125rem; line-height:1.5; color:var(--abc-muted); }
.abc-form-field__errors { color:var(--abc-danger); font-size:.8125rem; line-height:1.5; }
.abc-form-field__errors:not(:empty) { margin-top:.4rem; }
.abc-form-field--invalid .abc-input, .abc-form-field--invalid .abc-select { border-color:var(--abc-danger); }
.abc-input-group { box-sizing:border-box; display:flex; align-items:stretch; min-width:0; width:100%; border:1px solid var(--abc-border); border-radius:var(--abc-radius); background:var(--abc-surface); color:var(--abc-text); }
.abc-input-group:focus-within { outline:3px solid var(--abc-focus); outline-offset:1px; border-color:var(--abc-accent); }
.abc-input-group:has(.invalid), .abc-form-field--invalid .abc-input-group { border-color:var(--abc-danger); }
.abc-input-group__addon { display:inline-flex; align-items:center; gap:.35rem; padding:.55rem .75rem; flex-shrink:0; font-size:.875rem; color:var(--abc-muted); background:var(--abc-surface-subtle); }
.abc-input-group__addon:first-child { border-radius:calc(var(--abc-radius) - 1px) 0 0 calc(var(--abc-radius) - 1px); border-inline-end:1px solid var(--abc-border); }
.abc-input-group__addon:last-child { border-radius:0 calc(var(--abc-radius) - 1px) calc(var(--abc-radius) - 1px) 0; border-inline-start:1px solid var(--abc-border); }
.abc-input-group__control { flex:1; min-width:0; border-radius:inherit; }
.abc-input-group__control > .abc-input.invalid, .abc-input-group__control > .abc-select.invalid { outline:0; }
.abc-input-group__control > .abc-input, .abc-input-group__control > .abc-select { border:0; border-radius:inherit; box-shadow:none; }
.abc-input-group__control > .abc-input:focus, .abc-input-group__control > .abc-select:focus { outline:0; box-shadow:none; }
.abc-input-group:has(input:disabled) { opacity:.65; }
.abc-fieldset { min-inline-size:0; margin:0; padding:1.25rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); font-family:var(--abc-font-family); }
.abc-fieldset > legend { padding:0 .4rem; font-weight:600; font-size:1rem; color:var(--abc-text); }
.abc-fieldset__description { margin:0 0 1.25rem; font-size:.8125rem; line-height:1.5; color:var(--abc-muted); }
.abc-form-layout { container:abc-form-layout / inline-size; min-width:0; }
.abc-form-layout__grid { display:grid; grid-template-columns:repeat(var(--abc-form-columns, 2),minmax(0,1fr)); gap:var(--abc-form-gap,1.25rem); }
.abc-form-span-all { grid-column:1 / -1; }
@container abc-form-layout (max-width:34rem) { .abc-form-layout__grid { grid-template-columns:minmax(0,1fr); } }
.abc-validation-summary { font-family:var(--abc-font-family); }
.abc-validation-summary__panel { padding:1rem 1.25rem; margin-bottom:1.25rem; color:#8e2935; background:#fff3f3; border:1px solid #ecc4c9; border-radius:var(--abc-radius); font-size:.875rem; line-height:1.5; }
.abc-validation-summary__panel ul { margin:.5rem 0 0; padding-inline-start:1.25rem; }


/* Additional inputs and date/time ranges */
.abc-password { position:relative; min-width:0; }
.abc-password > .abc-input { padding-inline-end:3rem; }
.abc-password__reveal { position:absolute; inset-block:3px; inset-inline-end:3px; width:2.5rem; border:0; border-radius:calc(var(--abc-radius) - 2px); background:transparent; color:var(--abc-accent); cursor:pointer; }
.abc-password__reveal:hover:not(:disabled) { background:var(--abc-surface-subtle); }
.abc-password__reveal:focus-visible { outline:2px solid var(--abc-focus); }
.abc-password__reveal:disabled { opacity:.5; cursor:not-allowed; }
.abc-toggle { white-space:normal; }
.abc-checkbox-group, .abc-segmented, .abc-range-field, .abc-range-slider { box-sizing:border-box; min-inline-size:0; padding:0; margin:0; border:0; font-family:var(--abc-font-family); color:var(--abc-text); }
.abc-checkbox-group > legend, .abc-segmented > legend, .abc-range-field > legend, .abc-range-slider > legend { padding:0; margin-bottom:.7rem; font-size:.875rem; font-weight:600; }
.abc-checkbox-group__options { display:flex; flex-direction:column; gap:.7rem; }
.abc-checkbox-group--inline .abc-checkbox-group__options { flex-direction:row; flex-wrap:wrap; }
.abc-checkbox-group__option { display:flex; align-items:center; gap:.6rem; font-size:.875rem; cursor:pointer; }
.abc-checkbox-group__option:has(input:disabled) { opacity:.5; cursor:not-allowed; }
.abc-segmented__options { display:flex; flex-wrap:wrap; gap:.2rem; padding:.25rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); background:var(--abc-surface-subtle); }
.abc-segmented__option { position:relative; flex:1; min-width:3rem; text-align:center; cursor:pointer; }
.abc-segmented__option > input { position:absolute; width:1px; height:1px; padding:0; margin:0; opacity:0; }
.abc-segmented__option > span { display:block; padding:.55rem .75rem; border:1px solid transparent; border-radius:calc(var(--abc-radius) - 3px); font-size:.875rem; }
.abc-segmented__option > input:checked + span { color:var(--abc-accent); border-color:var(--abc-border); background:var(--abc-surface); box-shadow:0 1px 3px #0000000a; font-weight:600; }
.abc-segmented__option > input:focus-visible + span { outline:2px solid var(--abc-focus); outline-offset:1px; }
.abc-segmented__option > input:disabled + span { opacity:.45; cursor:not-allowed; }
.abc-tag-input { min-width:0; }
.abc-tag-input .abc-chip-list { margin-bottom:.7rem; }
.abc-tag-input__entry { display:flex; gap:.5rem; }
.abc-tag-input__entry > .abc-input { flex:1; min-width:0; }
.abc-tag-input__hint { margin-top:.5rem; color:var(--abc-muted); font-size:.8125rem; line-height:1.5; }
.abc-tag-input__feedback { color:var(--abc-danger); font-size:.8125rem; line-height:1.5; }
.abc-tag-input__feedback:not(:empty) { margin-top:.5rem; }
.abc-range-field { container:abc-range-field / inline-size; }
.abc-range-field__inputs { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:.65rem; align-items:end; }
.abc-range-field__inputs > label { min-width:0; }
.abc-range-field__inputs > label > span { display:block; font-size:.8125rem; margin-bottom:.4rem; color:var(--abc-muted); }
.abc-range-field__separator { padding-bottom:.8rem; color:var(--abc-muted); }
.abc-range-field .validation-message, .abc-range-slider .validation-message { margin-top:.45rem; color:var(--abc-danger); font-size:.8125rem; line-height:1.5; }
.abc-range-field.invalid .abc-input { border-color:var(--abc-danger); }
.abc-range-slider__values { display:flex; justify-content:space-between; color:var(--abc-accent); font-size:.875rem; font-variant-numeric:tabular-nums; }
.abc-range-slider__track { position:relative; height:2.5rem; margin-inline:.6rem; }
.abc-range-slider__track::before { content:""; position:absolute; inset-inline:0; top:calc(50% - 3px); height:6px; border-radius:99px; background:linear-gradient(to right,var(--abc-border) var(--abc-range-start),var(--abc-accent) var(--abc-range-start),var(--abc-accent) var(--abc-range-end),var(--abc-border) var(--abc-range-end)); }
.abc-range-slider__track > input { appearance:none; -webkit-appearance:none; position:absolute; inset:0 -.6rem; width:calc(100% + 1.2rem); height:100%; margin:0; padding:0; background:transparent; pointer-events:none; }
.abc-range-slider__track > input::-webkit-slider-runnable-track { height:6px; background:transparent; }
.abc-range-slider__track > input::-moz-range-track { height:6px; background:transparent; }
.abc-range-slider__track > input::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; pointer-events:auto; width:1.2rem; height:1.2rem; margin-top:calc(3px - .6rem); border:2px solid var(--abc-surface); border-radius:50%; background:var(--abc-accent); box-shadow:0 0 0 1px var(--abc-accent); cursor:grab; }
.abc-range-slider__track > input::-moz-range-thumb { pointer-events:auto; width:1rem; height:1rem; border:2px solid var(--abc-surface); border-radius:50%; background:var(--abc-accent); box-shadow:0 0 0 1px var(--abc-accent); cursor:grab; }
.abc-range-slider__track > input:focus-visible { outline:2px solid var(--abc-focus); outline-offset:2px; border-radius:var(--abc-radius); }
.abc-range-slider:disabled { opacity:.5; }
.abc-range-slider:disabled input::-webkit-slider-thumb { cursor:not-allowed; }
.abc-range-slider:disabled input::-moz-range-thumb { cursor:not-allowed; }
@container abc-range-field (max-width:22rem) { .abc-range-field__inputs { grid-template-columns:minmax(0,1fr); } .abc-range-field__separator { display:none; } }
@media (forced-colors:active) { .abc-range-slider__track::before { background:CanvasText; } .abc-range-slider__track > input::-webkit-slider-thumb { background:Highlight; } }


/* Lists, workflows, charts, planning, and media */
.abc-control-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; margin-bottom:1rem; }
.abc-control-heading h3 { margin:0; font-size:1rem; }
.abc-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:.85rem 0; }
.abc-actions > .abc-select { width:auto; max-width:100%; }
.abc-control-help, .abc-control-status { font-size:.8125rem; line-height:1.55; color:var(--abc-muted); }
.abc-control-status:empty { display:none; }
.abc-muted { opacity:.5; }
.abc-list-view__items { list-style:none; padding:0; margin:0; }
.abc-list-view__items > li { display:flex; gap:.7rem; align-items:center; border-bottom:1px solid var(--abc-border); padding:.8rem; }
.abc-list-view__selected { background:var(--abc-surface-subtle); }
.abc-list-view__select { display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; flex-shrink:0; border:1px solid var(--abc-border); background:var(--abc-surface); color:var(--abc-accent); border-radius:50%; cursor:pointer; }
.abc-list-view__select:focus-visible { outline:3px solid var(--abc-focus); }
.abc-list-view__select:disabled { opacity:.4; cursor:not-allowed; }
.abc-list-view__content { flex:1; min-width:0; }
.abc-virtual-list { overflow:auto; border:1px solid var(--abc-border); border-radius:var(--abc-radius); contain:strict; }
.abc-virtual-list__item { box-sizing:border-box; min-height:48px; padding:.8rem 1rem; border-bottom:1px solid var(--abc-border); }
.abc-description-list { margin:0; }
.abc-description-list > div { display:grid; grid-template-columns:minmax(7rem,1fr) minmax(0,2fr); gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--abc-border); }
.abc-description-list dt { font-weight:600; font-size:.875rem; }
.abc-description-list dd { margin:0; overflow-wrap:anywhere; font-size:.875rem; color:var(--abc-muted); }
.abc-timeline { list-style:none; margin:0; padding:0; }
.abc-timeline > li { position:relative; display:flex; gap:1rem; padding:0 0 1.5rem; }
.abc-timeline > li:not(:last-child)::before { content:""; position:absolute; top:.75rem; bottom:0; left:.35rem; width:1px; background:var(--abc-border); }
.abc-timeline__dot { position:relative; flex-shrink:0; width:.75rem; height:.75rem; margin-top:.25rem; border-radius:50%; background:var(--abc-tone-text,var(--abc-accent)); }
.abc-timeline strong { display:block; font-size:.875rem; }
.abc-timeline time { display:block; font-size:.75rem; color:var(--abc-muted); margin:.3rem 0; }
.abc-timeline p { margin:.4rem 0 0; font-size:.875rem; line-height:1.6; }
nav.abc-anchor-nav { display:flex; flex-wrap:wrap; gap:.35rem; width:100%; font-size:.8125rem; }
.abc-anchor-nav > a { padding:.6rem .8rem; border-radius:var(--abc-radius); color:var(--abc-muted); text-decoration:none; }
.abc-anchor-nav > a[aria-current], .abc-anchor-nav > a:hover { color:var(--abc-accent); background:var(--abc-surface-subtle); }
.abc-back-top { position:fixed; right:1.25rem; bottom:1.25rem; z-index:30; box-shadow:0 4px 20px #202e2a20; }
.abc-back-top[hidden] { display:none; }
.abc-wizard__steps { display:flex; gap:.6rem; flex-wrap:wrap; list-style:none; padding:0; margin:0 0 1.5rem; }
.abc-wizard__steps li { display:flex; align-items:center; gap:.45rem; color:var(--abc-muted); font-size:.8125rem; }
.abc-wizard__steps li > span { display:grid; place-items:center; width:1.6rem; height:1.6rem; border:1px solid var(--abc-border); border-radius:50%; }
.abc-wizard__steps li[aria-current] { color:var(--abc-accent); font-weight:600; }
.abc-wizard__steps li[aria-current] > span { background:var(--abc-accent); color:var(--abc-on-accent); }
.abc-wizard > h3 { margin:0 0 1rem; font-size:1rem; }
.abc-wizard__body { min-height:7rem; }
.abc-command-dialog { width:min(38rem,calc(100% - 2rem)); }
.abc-command-palette ul { list-style:none; padding:0; margin:1rem 0 0; max-height:50vh; overflow:auto; }
.abc-command-palette li > button { display:flex; flex-direction:column; gap:.25rem; width:100%; text-align:start; padding:.85rem; border:0; border-radius:var(--abc-radius); color:var(--abc-text); background:transparent; cursor:pointer; }
.abc-command-palette li > button:hover, .abc-command-palette li > button:focus-visible { background:var(--abc-surface-subtle); outline:2px solid var(--abc-focus); outline-offset:-2px; }
.abc-command-palette li > button:disabled { opacity:.4; cursor:not-allowed; }
.abc-command-palette small, .abc-command-palette li > button > span { font-size:.75rem; color:var(--abc-muted); }
.abc-notification-center ul { list-style:none; padding:0; margin:0; }
.abc-notification-center li { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--abc-border); }
.abc-notification-center li:not(.abc-notification--read) { border-inline-start:3px solid var(--abc-tone-text); padding-inline-start:.8rem; }
.abc-notification-center li strong { font-size:.875rem; }
.abc-notification-center li p { margin:.35rem 0; font-size:.8125rem; line-height:1.5; }
.abc-notification-center time { color:var(--abc-muted); font-size:.7rem; }
.abc-property-grid, .abc-filter-builder { min-inline-size:0; margin:0; padding:0; border:0; }
.abc-property-grid > legend, .abc-filter-builder > legend { padding:0; font-size:.95rem; font-weight:600; margin-bottom:1rem; }
.abc-property-grid__row { display:grid; grid-template-columns:minmax(6rem,1fr) minmax(0,2fr); gap:1rem; padding:.65rem 0; border-bottom:1px solid var(--abc-border); }
.abc-property-grid__row > label { padding-top:.65rem; font-size:.8125rem; }
.abc-property-grid .validation-message { display:block; color:var(--abc-danger); }
.abc-filter-builder__mode { display:flex; align-items:center; gap:.6rem; font-size:.8125rem; margin-bottom:1rem; }
.abc-filter-builder__mode > select { width:auto; }
.abc-filter-builder__rule { display:flex; flex-wrap:wrap; gap:.4rem; margin:.7rem 0; }
.abc-filter-builder__rule > select, .abc-filter-builder__rule > input { flex:1; min-width:7rem; width:auto; }
.abc-filter-builder__rule > .validation-message { flex-basis:100%; color:var(--abc-danger); font-size:.8125rem; }
.abc-chart { position:relative; overflow:hidden; margin:0; min-width:0; }
.abc-chart > figcaption { font-size:1rem; font-weight:600; margin-bottom:1rem; }
.abc-chart > svg { width:100%; height:auto; display:block; overflow:visible; color:var(--abc-text); }
.abc-chart svg text { font-family:var(--abc-font-family); font-size:11px; fill:var(--abc-muted); }
.abc-chart__grid { stroke:var(--abc-border); stroke-width:.7; }
.abc-chart__legend { display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem; list-style:none; padding:0; margin:.6rem 0; font-size:.75rem; }
.abc-chart__legend li { display:flex; align-items:center; gap:.35rem; }
.abc-chart__legend li > span { width:.7rem; height:.7rem; border-radius:2px; }
.abc-chart__data { border-collapse:collapse; width:100%; margin-top:1rem; font-size:.8125rem; }
.abc-chart__data td, .abc-chart__data th { padding:.5rem; text-align:start; border-bottom:1px solid var(--abc-border); }
.abc-sparkline { display:inline-block; width:10rem; max-width:100%; height:2.75rem; color:var(--abc-accent); overflow:visible; }
.abc-gauge { display:inline-flex; flex-direction:column; align-items:center; width:10rem; max-width:100%; color:var(--abc-accent); font-size:.875rem; }
.abc-gauge > svg { width:100%; }
.abc-gauge circle { fill:none; stroke-width:9; }
.abc-gauge__track { stroke:var(--abc-border); }
.abc-gauge__value { stroke:currentColor; stroke-linecap:round; }
.abc-gauge text { fill:var(--abc-text); font-size:19px; font-weight:600; }
.abc-stat-card { padding:1.3rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); background:var(--abc-surface); }
.abc-stat-card .abc-control-heading { color:var(--abc-muted); font-size:.8125rem; }
.abc-stat-card__value { display:block; font-size:2rem; font-variant-numeric:tabular-nums; font-weight:650; letter-spacing:-.04em; }
.abc-stat-card__change { display:block; margin-top:.6rem; font-size:.8125rem; color:var(--abc-tone-text); }
.abc-stat-card__change > span { color:var(--abc-muted); }
.abc-heatmap { overflow:auto; }
.abc-heatmap table { width:100%; border-collapse:separate; border-spacing:.3rem; font-size:.75rem; }
.abc-heatmap caption { text-align:start; font-size:1rem; font-weight:600; margin-bottom:.8rem; }
.abc-heatmap th { text-align:start; font-weight:500; padding:.3rem; }
.abc-heatmap__cell { min-width:2.5rem; width:100%; min-height:2.5rem; border:0; border-radius:.35rem; background:color-mix(in srgb,var(--abc-accent) var(--abc-heat),var(--abc-surface)); color:var(--abc-text); font:inherit; cursor:pointer; text-shadow:0 0 3px var(--abc-surface); }
.abc-heatmap__cell:focus-visible { outline:3px solid var(--abc-focus); outline-offset:1px; }
.abc-tree-grid tr[aria-selected="true"] { background:var(--abc-surface-subtle); }
.abc-tree-grid tr:focus-visible { outline:2px solid var(--abc-focus); outline-offset:-2px; }
.abc-tree-grid tr[aria-disabled="true"] { opacity:.45; }
.abc-tree-grid__label { display:flex; align-items:center; gap:.5rem; white-space:nowrap; }
.abc-tree-grid__label > button, .abc-tree-grid__label > span { width:1.5rem; flex-shrink:0; text-align:center; }
.abc-tree-grid__label > button { padding:.25rem; background:transparent; border:0; color:var(--abc-accent); cursor:pointer; }
.abc-pivot td { text-align:end; font-variant-numeric:tabular-nums; }
.abc-pivot__total, .abc-pivot tfoot { font-weight:600; background:var(--abc-surface-subtle); }
.abc-kanban__columns { display:flex; gap:1rem; overflow:auto; padding-bottom:.7rem; }
.abc-kanban__column { min-width:15rem; flex:1; padding:.9rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius); background:var(--abc-surface-subtle); }
.abc-kanban__column h3 { display:flex; justify-content:space-between; font-size:.875rem; margin:0 0 1rem; }
.abc-kanban__column h3 > span { color:var(--abc-muted); font-weight:400; }
.abc-kanban__card { margin:.7rem 0; padding:1rem; background:var(--abc-surface); border:1px solid var(--abc-border); border-radius:var(--abc-radius); }
.abc-kanban__card[draggable="true"] { cursor:grab; }
.abc-kanban__card > strong { font-size:.875rem; }
.abc-kanban__card .abc-select { margin-top:.8rem; font-size:.75rem; padding:.35rem .5rem; min-height:2rem; }
.abc-scheduler__days { display:grid; grid-template-columns:repeat(var(--abc-days),minmax(8rem,1fr)); overflow:auto; border:1px solid var(--abc-border); border-radius:var(--abc-radius); }
.abc-scheduler__day { padding:.6rem; border-inline-end:1px solid var(--abc-border); min-height:13rem; }
.abc-scheduler__day:last-child { border-inline-end:0; }
.abc-scheduler__day h4 { font-size:.8125rem; margin:.3rem 0 1rem; }
.abc-scheduler__event { display:flex; flex-direction:column; gap:.3rem; width:100%; border:1px solid var(--abc-border); border-inline-start:3px solid var(--abc-accent); padding:.65rem; margin-bottom:.6rem; border-radius:.4rem; background:var(--abc-surface-subtle); color:var(--abc-text); text-align:start; cursor:pointer; overflow-wrap:anywhere; }
.abc-scheduler__event strong { font-size:.75rem; }
.abc-scheduler__event span, .abc-scheduler__event small { font-size:.7rem; color:var(--abc-muted); }
.abc-scheduler .abc-actions > strong { font-size:.8125rem; }
.abc-gantt__scroll { overflow:auto; border:1px solid var(--abc-border); border-radius:var(--abc-radius); }
.abc-gantt__layout { display:grid; grid-template-columns:11rem minmax(28rem,1fr); min-width:40rem; }
.abc-gantt__names { display:flex; flex-direction:column; border-inline-end:1px solid var(--abc-border); }
.abc-gantt__names > strong { height:36px; box-sizing:border-box; padding:.65rem; font-size:.75rem; }
.abc-gantt__names > button { box-sizing:border-box; height:44px; padding:.65rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:0; border-top:1px solid var(--abc-border); background:transparent; text-align:start; font:inherit; font-size:.8125rem; cursor:pointer; }
.abc-gantt__axis { position:relative; height:36px; font-size:.7rem; color:var(--abc-muted); }
.abc-gantt__axis > span { position:absolute; top:.65rem; white-space:nowrap; padding-left:.3rem; }
.abc-gantt__rows { position:relative; }
.abc-gantt__row { position:relative; height:44px; box-sizing:border-box; border-top:1px solid var(--abc-border); }
.abc-gantt__bar { position:absolute; top:10px; height:24px; border:1px solid var(--abc-accent); border-radius:.3rem; padding:0; overflow:hidden; background:var(--abc-surface-subtle); cursor:pointer; }
.abc-gantt__bar > span { position:absolute; inset:0 auto 0 0; background:var(--abc-accent); opacity:.65; }
.abc-gantt__bar > strong { position:relative; font-size:.65rem; color:var(--abc-text); text-shadow:0 0 4px var(--abc-surface); }
.abc-gantt__links { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; pointer-events:none; color:var(--abc-muted); }
.abc-gantt__links > path { fill:none; stroke:currentColor; stroke-width:1; }
.abc-image { position:relative; display:block; width:100%; overflow:hidden; border-radius:var(--abc-radius); background:var(--abc-surface-subtle); }
.abc-image > img { display:block; width:100%; height:100%; }
.abc-image--cover > img { object-fit:cover; }
.abc-image--contain > img { object-fit:contain; }
.abc-image--fill > img { object-fit:fill; }
.abc-image--none > img { object-fit:none; }
.abc-image__fallback { display:flex; min-height:7rem; height:100%; align-items:center; justify-content:center; gap:.5rem; color:var(--abc-muted); font-size:.8125rem; }
.abc-image__caption { position:absolute; bottom:0; inset-inline:0; padding:.65rem; color:white; background:#0009; font-size:.8125rem; }
.abc-gallery { display:grid; grid-template-columns:repeat(var(--abc-gallery-columns,3),minmax(0,1fr)); gap:.75rem; }
.abc-gallery__item { min-width:0; padding:0; border:1px solid var(--abc-border); border-radius:var(--abc-radius); overflow:hidden; background:var(--abc-surface); color:var(--abc-text); cursor:pointer; text-align:start; }
.abc-gallery__item > span:last-child:not(.abc-image) { display:block; padding:.65rem; font-size:.75rem; }
.abc-gallery__item:focus-visible { outline:3px solid var(--abc-focus); outline-offset:2px; }
.abc-lightbox { width:min(65rem,calc(100% - 2rem)); }
.abc-lightbox__image { max-height:65vh; overflow:auto; }
.abc-lightbox__image .abc-image { height:60vh; background:transparent; }
.abc-lightbox__image--zoom .abc-image { width:180%; height:auto; max-height:none; }
.abc-lightbox__image--zoom img { height:auto; object-fit:contain; }
.abc-lightbox__caption { display:flex; justify-content:space-between; gap:1rem; font-size:.875rem; }
.abc-carousel { border:1px solid var(--abc-border); border-radius:var(--abc-radius); overflow:hidden; }
.abc-carousel__slide { min-width:0; }
.abc-carousel__controls { display:flex; align-items:center; justify-content:center; gap:.6rem; flex-wrap:wrap; padding:.5rem; }
.abc-carousel__dots { display:flex; gap:.35rem; flex-wrap:wrap; }
.abc-carousel__dots > button { width:1.7rem; height:1.7rem; border:1px solid var(--abc-border); border-radius:50%; background:var(--abc-surface); color:var(--abc-muted); cursor:pointer; }
.abc-carousel__dots > button[aria-current] { background:var(--abc-accent); color:white; }
.abc-editor-toolbar { display:flex; flex-wrap:wrap; gap:.3rem; align-items:center; padding:.5rem; border:1px solid var(--abc-border); border-radius:var(--abc-radius) var(--abc-radius) 0 0; background:var(--abc-surface-subtle); }
.abc-editor-toolbar > button { border:1px solid var(--abc-border); border-radius:.3rem; background:var(--abc-surface); padding:.45rem .6rem; font:inherit; font-size:.75rem; color:var(--abc-text); cursor:pointer; }
.abc-editor-toolbar > button:disabled { opacity:.45; cursor:not-allowed; }
.abc-editor-toolbar > .abc-select { width:auto; min-height:2rem; font-size:.75rem; padding:.3rem; margin-inline-start:auto; }
.abc-markdown-panels { display:grid; grid-template-columns:minmax(0,1fr); border:1px solid var(--abc-border); border-top:0; border-radius:0 0 var(--abc-radius) var(--abc-radius); }
.abc-markdown-panels--split { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.abc-markdown-panels > div[hidden] { display:none; }
.abc-markdown-panels textarea { width:100%; height:100%; border:0; border-radius:0; resize:vertical; font-family:monospace; font-size:.8125rem; }
.abc-markdown-preview { padding:1rem; overflow-wrap:anywhere; line-height:1.6; font-size:.875rem; }
.abc-markdown-preview h1, .abc-markdown-preview h2, .abc-markdown-preview h3 { font-size:1.3em; margin:.4rem 0 1rem; letter-spacing:normal; }
.abc-markdown-preview p { margin:.5rem 0; }
.abc-markdown-preview pre { overflow:auto; padding:.8rem; background:var(--abc-surface-subtle); }
.abc-markdown-preview blockquote { margin:.5rem 0; padding-left:.75rem; border-left:3px solid var(--abc-border); color:var(--abc-muted); }
.abc-markdown-view { padding:0; font-size:inherit; }
.abc-rich-editor__link { display:flex; align-items:end; gap:.5rem; padding:.65rem; border-inline:1px solid var(--abc-border); }
.abc-rich-editor__link > label { flex:1; font-size:.75rem; color:var(--abc-muted); }
.abc-rich-editor__link .abc-input { margin-top:.35rem; min-height:2rem; font-size:.8125rem; }
.abc-rich-editor__content { box-sizing:border-box; padding:1rem; border:1px solid var(--abc-border); border-radius:0 0 var(--abc-radius) var(--abc-radius); outline-offset:2px; font-size:.9375rem; line-height:1.6; overflow-wrap:anywhere; }
.abc-rich-editor__content[aria-readonly="true"] { background:var(--abc-surface-subtle); }
.abc-rich-editor__content h2 { font-size:1.3em; }
.abc-rich-editor__content blockquote { border-left:3px solid var(--abc-border); margin:.5rem 0; padding-left:1rem; }
.abc-signature > canvas { display:block; width:100%; box-sizing:border-box; border:1px dashed var(--abc-border); border-radius:var(--abc-radius); background:var(--abc-surface); touch-action:none; cursor:crosshair; }
.abc-signature__typed { display:block; font-size:.8125rem; color:var(--abc-muted); margin-bottom:.65rem; }
.abc-signature__typed > input { margin-top:.4rem; }
.abc-file-manager__search { font-size:.75rem; }
.abc-file-manager__search > input { width:13rem; max-width:100%; margin-top:.3rem; }
nav.abc-file-manager__crumbs { display:flex; width:100%; gap:.5rem; flex-wrap:wrap; margin:.75rem 0; }
.abc-file-manager__crumbs > button { border:0; background:transparent; color:var(--abc-accent); font:inherit; font-size:.8125rem; cursor:pointer; }
.abc-file-manager__crumbs > button[aria-current] { font-weight:600; text-decoration:underline; }
.abc-file-manager__table { border-collapse:collapse; width:100%; font-size:.8125rem; }
.abc-file-manager__table td, .abc-file-manager__table th { text-align:start; padding:.7rem; border-bottom:1px solid var(--abc-border); }
.abc-file-manager__table th > button { border:0; background:transparent; color:var(--abc-text); font:inherit; font-weight:600; cursor:pointer; }
.abc-file-manager__open { display:flex; gap:.5rem; align-items:center; border:0; background:transparent; color:var(--abc-accent); font:inherit; cursor:pointer; text-align:start; }
@media(max-width:600px) { .abc-markdown-panels--split { grid-template-columns:minmax(0,1fr); } .abc-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } .abc-property-grid__row { grid-template-columns:minmax(0,1fr); gap:.35rem; } .abc-notification-center li { flex-direction:column; gap:.25rem; } .abc-back-top { right:.75rem; bottom:.75rem; padding:.5rem .7rem; } }
@media(prefers-reduced-motion:reduce) { .abc-carousel *, .abc-gauge * { transition:none!important; } }


/* Data and selection upgrades */
.abc-grid__tools { flex-wrap:wrap; gap:.8rem; }
.abc-grid__group-picker { display:grid; gap:.4rem; color:var(--abc-muted); font-size:.75rem; min-width:10rem; }
.abc-grid th[data-grid-column] { position:relative; padding-inline-end:1rem; }
.abc-grid__drag-handle { display:inline-block; padding-inline-end:.3rem; color:var(--abc-muted); cursor:grab; }
.abc-grid__order-buttons { display:inline-flex; margin-inline-start:.4rem; gap:.1rem; }
.abc-grid__order-buttons > button { border:0; background:transparent; color:var(--abc-accent); padding:.15rem .25rem; cursor:pointer; }
.abc-grid__order-buttons > button:disabled { opacity:.3; cursor:not-allowed; }
.abc-grid__resize { position:absolute; top:0; right:0; bottom:0; width:9px; cursor:col-resize; touch-action:none; border-inline-end:2px solid var(--abc-border); }
[dir="rtl"] .abc-grid__resize { right:auto; left:0; }
.abc-grid__resize:hover, .abc-grid__resize:focus-visible { background:var(--abc-focus); outline:2px solid var(--abc-focus); }
.abc-grid__cell { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.abc-grid__scroll--virtual { overflow:auto; }
.abc-grid__scroll--virtual thead { position:sticky; top:0; z-index:1; background:var(--abc-surface-subtle); }
.abc-grid__scroll--virtual tbody td { padding:0 .7rem; box-sizing:border-box; }
.abc-grid__scroll--virtual .abc-grid__cell { white-space:nowrap; }
.abc-grid__group { background:var(--abc-surface-subtle); }
.abc-grid__group button { display:flex; align-items:center; gap:.5rem; border:0; background:transparent; color:var(--abc-text); font:inherit; font-weight:600; cursor:pointer; }
.abc-grid__edit { border:0; padding:.3rem; color:var(--abc-accent); font:inherit; background:transparent; cursor:pointer; }
.abc-grid__error { color:var(--abc-danger); margin:.75rem 0; font-size:.875rem; }
.abc-grid .abc-dialog { text-align:start; }
.abc-tree__item[draggable="true"] { cursor:grab; }
.abc-tree__item > .abc-checkbox { width:1rem; height:1rem; }
.abc-tree__loading { color:var(--abc-muted); font-size:.75rem; margin-inline-start:auto; }
.abc-tree__retry { border:0; background:transparent; color:var(--abc-danger); font:inherit; font-size:.75rem; cursor:pointer; }
.abc-tree__drop-before { box-shadow:inset 0 3px var(--abc-accent); }
.abc-tree__drop-after { box-shadow:inset 0 -3px var(--abc-accent); }
.abc-tree__drop-inside { outline:2px solid var(--abc-accent); outline-offset:-2px; background:var(--abc-surface-subtle); }
.abc-tree__move-tools { display:flex; flex-wrap:wrap; align-items:end; gap:.6rem; margin-top:1rem; }
.abc-tree__move-tools > label { display:grid; gap:.4rem; flex:1; min-width:8rem; color:var(--abc-muted); font-size:.75rem; }
.abc-tree__move-tools > .abc-button { margin-bottom:0; }
.abc-suggestion-viewport { max-height:min(18rem,calc(var(--abc-floating-max-height,360px) - .75rem)); overflow:auto; min-width:0; }
.abc-suggestion-viewport[data-abc-virtual-options] { overflow:auto; }
.abc-suggestion-viewport[data-abc-virtual-options] .abc-option { box-sizing:border-box; min-height:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:.4rem .65rem; }
.abc-upload-queue { list-style:none; padding:0; margin:1rem 0; }
.abc-upload-queue > li { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:.7rem; row-gap:.5rem; padding:1rem 0; border-bottom:1px solid var(--abc-border); }
.abc-upload-queue > li > div:first-child { grid-column:1 / -1; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem; }
.abc-upload-queue strong { font-size:.875rem; overflow-wrap:anywhere; }
.abc-upload-queue span { font-size:.75rem; color:var(--abc-muted); }
.abc-upload-queue progress { width:100%; align-self:center; height:.65rem; accent-color:var(--abc-accent); }
.abc-upload-queue .abc-actions { margin:0; }
.abc-upload-queue .validation-message { grid-column:1 / -1; color:var(--abc-danger); }

.abc-grid__drag-handle { touch-action:none; user-select:none; } .abc-grid__drop-target { box-shadow:inset 3px 0 var(--abc-accent); }
.abc-grid table { border-collapse:separate; border-spacing:0; }
.abc-grid .abc-grid__frozen { position:sticky; z-index:2; background:var(--abc-surface); box-shadow:1px 0 var(--abc-border); }
.abc-grid thead .abc-grid__frozen { z-index:3; background:var(--abc-surface-subtle); }
.abc-grid__scroll--virtual thead { z-index:4; }
.abc-grid__column-filters td { padding:.5rem; background:var(--abc-surface-subtle); }
.abc-grid__column-filters .abc-select, .abc-grid__column-filters .abc-input { display:block; min-width:0; width:100%; box-sizing:border-box; font-size:.75rem; }
.abc-grid__column-filters .abc-input { margin-top:.35rem; }
.abc-grid__row--selected .abc-grid__frozen { background:var(--abc-surface-subtle); }
.abc-grid__row--pending td { box-shadow:inset 0 -2px var(--abc-accent); }
.abc-grid__pending-label { display:block; color:var(--abc-accent); font-size:.65rem; }
.abc-grid__group th { white-space:normal; }
.abc-grid__group button { text-align:start; }
.abc-grid th.abc-grid__frozen { position:sticky; }
.abc-grid__group button { position:sticky; inset-inline-start:0; width:max-content; max-width:85vw; }

/* Groups 10-12: scheduling, rich editing, chart exploration */
.abc-scheduler__resource { margin:1rem 0 .5rem; font-size:.9rem; }
.abc-scheduler__repeat { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.abc-scheduler__repeat label { flex:1 1 9rem; font-size:.8rem; }
.abc-scheduler__event--conflict { border-color:var(--abc-danger); }
.abc-scheduler__event .abc-scheduler__conflict { color:var(--abc-danger); font-weight:600; }
.abc-gantt__bar { overflow:visible; }
.abc-gantt__move { position:absolute; inset:0; width:100%; border:0; background:transparent; color:var(--abc-text); padding:0; cursor:grab; touch-action:pan-y; border-radius:inherit; overflow:hidden; }
.abc-gantt__move > span { position:absolute; inset:0 auto 0 0; background:var(--abc-accent); opacity:.65; pointer-events:none; }
.abc-gantt__move > strong { position:relative; font-size:.65rem; pointer-events:none; }
.abc-gantt__handle { position:absolute; top:-3px; height:30px; width:10px; padding:0; border:0; background:var(--abc-accent); opacity:.65; cursor:ew-resize; touch-action:none; border-radius:3px; }
.abc-gantt__handle--start { left:-3px; } .abc-gantt__handle--end { right:-3px; }
.abc-gantt__dependencies { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1rem; border:1px solid var(--abc-border); font-size:.85rem; }
.abc-gantt__move:focus-visible,.abc-gantt__handle:focus-visible { outline:2px solid var(--abc-focus); outline-offset:3px; }
.abc-editor-mentions { display:flex; align-items:end; flex-wrap:wrap; gap:.7rem; padding:.7rem; border-inline:1px solid var(--abc-border); }
.abc-editor-mentions label { flex:1; font-size:.8rem; }
.abc-editor-mention { color:var(--abc-accent); background:var(--abc-surface-subtle); border-radius:.25rem; padding:0 .2rem; }
.abc-rich-editor__content table,.abc-markdown-preview table { width:100%; border-collapse:collapse; margin:.75rem 0; table-layout:fixed; }
.abc-rich-editor__content th,.abc-rich-editor__content td,.abc-markdown-preview th,.abc-markdown-preview td { border:1px solid var(--abc-border); padding:.5rem; min-width:3rem; overflow-wrap:anywhere; }
.abc-rich-editor__content th,.abc-markdown-preview th { background:var(--abc-surface-subtle); }
.abc-editor-align-left { text-align:left; } .abc-editor-align-center { text-align:center; } .abc-editor-align-right { text-align:right; }
.abc-rich-editor__content code { background:var(--abc-surface-subtle); padding:.15rem .3rem; }
.abc-chart__legend button { display:flex; gap:.35rem; align-items:center; padding:.4rem .65rem; border:1px solid var(--abc-border); border-radius:.4rem; color:var(--abc-text); background:var(--abc-surface); cursor:pointer; font:inherit; }
.abc-chart__legend button > span { width:.7rem; height:.7rem; border-radius:2px; }
.abc-chart__legend button[aria-pressed="false"] { opacity:.5; text-decoration:line-through; }
.abc-chart__crosshair { pointer-events:none; stroke:var(--abc-accent); stroke-width:1; stroke-dasharray:4 4; }
.abc-chart__hole { fill:var(--abc-surface); } .abc-chart__dragging { cursor:grabbing; }
.abc-chart__inspection { min-height:1.6rem; color:var(--abc-muted); font-size:.8rem; }
.abc-chart > svg:focus-visible { outline:2px solid var(--abc-focus); outline-offset:-2px; }
.abc-chart__tools { flex-wrap:wrap; }


/* Files, transfer previews, and workspace layouts */
.abc-upload-previews { display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); gap:1rem; margin:1rem 0; }
.abc-file-preview { margin:0; min-width:0; border:1px solid var(--abc-border); border-radius:var(--abc-radius); padding:.85rem; background:var(--abc-surface); }
.abc-file-preview figcaption { display:flex; gap:.75rem; justify-content:space-between; flex-wrap:wrap; font-size:.85rem; margin-bottom:.7rem; }
.abc-file-preview figcaption span { color:var(--abc-muted); font-size:.7rem; }
.abc-file-preview img,.abc-file-preview video { display:block; width:100%; max-height:22rem; object-fit:contain; }
.abc-file-preview audio { max-width:100%; }
.abc-file-preview pre { max-height:18rem; overflow:auto; font-size:.8rem; white-space:pre-wrap; overflow-wrap:anywhere; background:var(--abc-surface-subtle); padding:.75rem; }
.abc-file-preview > p,.abc-file-preview > a { font-size:.8rem; }
.abc-workspace__toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem; margin-bottom:1rem; }
.abc-dock { min-width:0; }
.abc-dock__surface { position:relative; height:var(--abc-dock-height); min-height:20rem; display:grid; grid-template-rows:minmax(0,1fr) var(--abc-dock-bottom-handle) var(--abc-dock-bottom); border:1px solid var(--abc-border); border-radius:var(--abc-radius); overflow:hidden; background:var(--abc-surface-subtle); }
.abc-dock__top { grid-row:1; display:grid; min-height:0; min-width:0; grid-template-columns:var(--abc-dock-left) var(--abc-dock-left-handle) minmax(0,1fr) var(--abc-dock-right-handle) var(--abc-dock-right); }
.abc-dock__left { grid-column:1; } .abc-dock__center { grid-column:3; } .abc-dock__right { grid-column:5; } .abc-dock__bottom { grid-row:3; }
.abc-dock__left,.abc-dock__center,.abc-dock__right,.abc-dock__bottom { min-width:0; min-height:0; overflow:hidden; background:var(--abc-surface); }
.abc-dock__group { height:100%; display:flex; flex-direction:column; min-height:0; }
.abc-dock__tabs { display:flex; overflow:auto; flex-shrink:0; border-bottom:1px solid var(--abc-border); background:var(--abc-surface-subtle); }
.abc-dock__tabs > button { display:flex; gap:.4rem; align-items:center; white-space:nowrap; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--abc-muted); font:inherit; font-size:.8rem; padding:.65rem; cursor:pointer; }
.abc-dock__tabs > button[aria-selected="true"] { border-bottom-color:var(--abc-accent); color:var(--abc-accent); background:var(--abc-surface); }
.abc-dock__grip { cursor:grab; touch-action:none; user-select:none; padding:.2rem; }
.abc-dock__panel { min-height:0; flex:1; display:flex; flex-direction:column; }
.abc-dock__panel[hidden] { display:none; }
.abc-dock__panel-tools { display:flex; gap:.4rem; align-items:end; padding:.35rem .5rem; border-bottom:1px solid var(--abc-border); }
.abc-dock__position { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem; color:var(--abc-muted); font-size:.7rem; min-width:0; }
.abc-dock__position .abc-select { min-width:0; min-height:1.8rem; padding:.2rem 1.4rem .2rem .4rem; font-size:.72rem; }
.abc-dock__close { margin-inline-start:auto; border:0; background:transparent; color:var(--abc-muted); font-size:1.2rem; cursor:pointer; }
.abc-dock__content { flex:1; min-height:0; overflow:auto; padding:.75rem; font-size:.85rem; }
.abc-dock__resize { background:var(--abc-border); touch-action:none; }
.abc-dock__resize--left { grid-column:2; cursor:col-resize; } .abc-dock__resize--right { grid-column:4; cursor:col-resize; }
.abc-dock__resize--bottom { grid-row:2; cursor:row-resize; }
.abc-dock__resize:focus-visible { outline:2px solid var(--abc-focus); outline-offset:-1px; }
.abc-dock__reopen { display:flex; align-items:end; gap:.7rem; margin-bottom:.6rem; font-size:.8rem; }
.abc-dock--dragging .abc-dock__top { grid-template-columns:20% 6px minmax(0,1fr) 6px 20%; }
.abc-dock--dragging .abc-dock__surface { grid-template-rows:minmax(0,1fr) 6px 20%; }
.abc-dock--dragging [data-dock-drop] { outline:1px dashed var(--abc-accent); outline-offset:-2px; }
.abc-dock--dragging .abc-dock__drop-target { background:color-mix(in srgb,var(--abc-accent) 15%,var(--abc-surface)); outline:3px solid var(--abc-accent); }
.abc-window-layer { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.abc-window { position:absolute; box-sizing:border-box; display:flex; flex-direction:column; pointer-events:auto; min-width:0; border:1px solid var(--abc-border); border-radius:.5rem; background:var(--abc-surface); box-shadow:0 .5rem 1.5rem #0002; overflow:hidden; }
.abc-window__header { flex:0 0 40px; min-height:40px; display:flex; align-items:center; background:var(--abc-surface-subtle); border-bottom:1px solid var(--abc-border); }
.abc-window__title { flex:1; min-width:0; padding:.6rem; font-size:.8rem; cursor:move; touch-action:none; user-select:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.abc-window__actions { display:flex; gap:.1rem; }
.abc-window__actions button { width:1.8rem; height:1.8rem; padding:0; border:0; background:transparent; color:var(--abc-text); cursor:pointer; }
.abc-window__body { flex:1; min-height:0; overflow:auto; padding:.75rem; font-size:.85rem; }
.abc-window__body[hidden] { display:none; }
.abc-window__resize { position:absolute; right:0; bottom:0; width:1.3rem; height:1.3rem; padding:0; border:0; background:var(--abc-surface-subtle); color:var(--abc-accent); cursor:nwse-resize; touch-action:none; }
.abc-window__title:focus-visible,.abc-window__resize:focus-visible { outline:2px solid var(--abc-focus); outline-offset:-2px; }
.abc-navigation-drawer { display:grid; grid-template-columns:var(--abc-nav-width) minmax(0,1fr); border:1px solid var(--abc-border); border-radius:var(--abc-radius); overflow:hidden; }
.abc-navigation-drawer__sidebar { padding:1rem; background:var(--abc-surface-subtle); border-inline-end:1px solid var(--abc-border); }
.abc-navigation-drawer nav { display:grid; gap:.4rem; margin-top:.8rem; }
.abc-navigation-drawer__content { min-width:0; padding:1rem; }
.abc-navigation-drawer--compact { grid-template-columns:minmax(0,1fr); }
.abc-navigation-drawer__trigger { padding:.75rem; border-bottom:1px solid var(--abc-border); }

