/* Opt-in component classes. Screen CSS arranges these; tokens own their metrics. */
:is(.workspace, dialog, .ws-floating-ai) .ws-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ws-space-2);
  min-height: var(--ws-control-height);
  padding: 8px 14px;
  font: var(--ws-type-control);
  border: 1px solid var(--ws-color-control);
  border-radius: var(--ws-control-radius);
  background: var(--ws-color-surface);
  color: var(--ws-color-ink);
  text-decoration: none;
  cursor: pointer;
  vertical-align: middle;
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--primary {
  background: var(--ws-color-action);
  border-color: var(--ws-color-action);
  color: white;
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--primary:hover:not(:disabled) {
  background: var(--ws-color-action-hover);
  border-color: var(--ws-color-action-hover);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--secondary {
  border-color: var(--ws-color-control);
  background: var(--ws-color-surface);
  color: var(--ws-color-ink);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--danger {
  color: var(--ws-color-danger);
  border-color: var(--ws-color-danger);
  background: var(--ws-color-surface);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--danger:hover:not(:disabled) {
  background: var(--ws-color-danger-bg);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--text {
  border-color: transparent;
  background: transparent;
  color: var(--ws-color-action);
  padding-inline: 8px;
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button[aria-busy="true"] {
  opacity: 1;
  cursor: progress;
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--icon {
  width: var(--ws-control-height);
  min-width: var(--ws-control-height);
  height: var(--ws-control-height);
  padding: 0;
  flex: none;
  border-color: transparent;
  background: transparent;
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--icon.ws-button--danger {
  color: var(--ws-color-danger);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--icon:hover:not(:disabled) {
  background: var(--ws-color-sunk);
}
.ws-icon-anchor {
  display: inline-flex;
  flex: none;
  align-items: center;
}
.ws-tooltip {
  background: var(--ws-color-ink);
  color: white;
  border-radius: var(--ws-control-radius);
  padding: 6px 10px;
  max-width: min(260px, calc(100vw - 16px));
  font: var(--ws-type-small);
  z-index: var(--ws-layer-tooltip);
  pointer-events: auto;
  box-shadow: var(--ws-shadow-overlay);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ws-space-2);
}
.ws-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  font: var(--ws-type-body);
}
.ws-field > label {
  font: var(--ws-type-label);
  color: var(--ws-color-ink);
}
.ws-required {
  font-weight: 400;
  color: var(--ws-color-muted);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-field > :is(input, select, textarea) {
  font: var(--ws-type-body);
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  min-height: var(--ws-control-height);
  border: 1px solid var(--ws-color-control);
  border-radius: var(--ws-control-radius);
  padding: 8px 10px;
  background: var(--ws-color-surface);
  color: var(--ws-color-ink);
  margin: 0;
}
.ws-field > textarea {
  resize: vertical;
}
/* Native single-selects keep their semantics and gain the shared chevron. */
:is(.workspace, dialog, .ws-floating-ai)
  :is(.ws-field, .field, .company-select)
  :is(select:not([multiple]):not([size]), select[size="1"]:not([multiple])) {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2359655f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 16px 16px;
  padding-inline-end: 2.25rem;
}
:is(.workspace, dialog, .ws-floating-ai)
  :is(.ws-field, .field, .company-select)
  :is(select:not([multiple]):not([size]), select[size="1"]:not([multiple])):dir(rtl) {
  background-position: left 10px center;
}
@media (forced-colors: active) {
  :is(.workspace, dialog, .ws-floating-ai)
    :is(.ws-field, .field, .company-select)
    :is(select:not([multiple]):not([size]), select[size="1"]:not([multiple])) {
    appearance: auto;
    background-image: none !important;
  }
}
.ws-field-help:empty {
  display: none;
}
.ws-field-help {
  font: var(--ws-type-small);
  color: var(--ws-color-muted);
}
.ws-field-error {
  font: var(--ws-type-small);
  color: var(--ws-color-danger);
}
.ws-field [aria-invalid="true"] {
  border-color: var(--ws-color-danger) !important;
}
.ws-field :disabled {
  background-color: var(--ws-color-sunk) !important;
  color: var(--ws-color-muted) !important;
  cursor: not-allowed;
}
.ws-choice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font: var(--ws-type-body);
}
.ws-choice input {
  appearance: auto !important;
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px !important;
  accent-color: var(--ws-color-action);
  margin: 3px 0;
}
.ws-choice label {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  font-weight: 600;
  cursor: pointer;
}
.ws-choice p {
  margin: 0;
  color: var(--ws-color-muted);
  font: var(--ws-type-small);
}
.ws-options,
.ws-menu-items {
  z-index: var(--ws-layer-menu);
  background: var(--ws-color-surface);
  border: 1px solid var(--ws-color-control);
  border-radius: var(--ws-card-radius);
  box-shadow: var(--ws-shadow-overlay);
  padding: 4px;
  margin: 0;
  overflow: auto;
  box-sizing: border-box;
  list-style: none;
  font: var(--ws-type-body);
}
.ws-options [role="option"] {
  padding: 10px;
  border-radius: 4px;
  cursor: pointer;
}
.ws-options [role="option"] strong {
  font-weight: 500;
  display: block;
}
.ws-options small {
  color: var(--ws-color-muted);
  display: block;
}
.ws-options [aria-selected="true"],
.ws-options [role="option"]:hover {
  background: var(--ws-color-mint);
  color: var(--ws-color-ink);
}
.ws-option-empty {
  padding: 12px;
  color: var(--ws-color-muted);
}
.ws-menu {
  display: inline-flex;
}
.ws-menu-items [role="menuitem"] {
  display: block;
  border: 0;
  background: transparent;
  color: var(--ws-color-ink);
  padding: 10px 12px;
  width: 100%;
  text-align: left;
  font: inherit;
  cursor: pointer;
  border-radius: 4px;
  min-height: 40px;
}
.ws-menu-items [role="menuitem"]:focus {
  background: var(--ws-color-mint);
}
.ws-menu-items :disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.ws-surface {
  border: 1px solid var(--ws-color-line);
  background: var(--ws-color-surface);
  border-radius: var(--ws-card-radius);
  padding: var(--ws-space-5);
  min-width: 0;
}
.ws-surface-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ws-space-4);
  margin-bottom: var(--ws-space-4);
}
.ws-surface-header h2 {
  font: var(--ws-type-heading);
  margin: 0;
}
.ws-surface-header p {
  font: var(--ws-type-small);
  color: var(--ws-color-muted);
  margin: 4px 0 0;
}
.ws-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--ws-color-control);
  background: var(--ws-color-sunk);
  color: var(--ws-color-ink);
  padding: 3px 8px;
  border-radius: 5px;
  font: var(--ws-type-small);
  font-weight: 600;
  white-space: nowrap;
}
.ws-status .ws-icon {
  width: 14px;
  height: 14px;
  flex: none;
}
.ws-status--success {
  background: var(--ws-color-mint);
  color: var(--ws-color-action-hover);
  border-color: var(--ws-color-action);
}
.ws-status--warning {
  background: var(--ws-color-attention-bg);
  color: var(--ws-color-attention);
  border-color: var(--ws-color-attention);
}
.ws-status--danger {
  background: var(--ws-color-danger-bg);
  color: var(--ws-color-danger);
  border-color: var(--ws-color-danger);
}
.ws-status--info {
  background: var(--ws-color-info-bg);
  color: var(--ws-color-info);
  border-color: var(--ws-color-info);
}
.ws-status--test {
  border-style: dashed;
  background: transparent;
  color: var(--ws-color-muted);
}
.ws-alert {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid var(--ws-color-info);
  background: var(--ws-color-info-bg);
  padding: 14px 16px;
  border-radius: var(--ws-control-radius);
  font: var(--ws-type-body);
  color: var(--ws-color-ink);
}
.ws-alert > .ws-icon {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 1px;
  color: var(--ws-color-info);
}
.ws-alert strong {
  font-weight: 600;
}
.ws-alert p {
  margin: 4px 0 0;
}
.ws-alert .ws-actions {
  margin-top: 12px;
}
.ws-alert--danger {
  border-color: var(--ws-color-danger);
  background: var(--ws-color-danger-bg);
}
.ws-alert--danger > .ws-icon {
  color: var(--ws-color-danger);
}
.ws-alert--warning {
  border-color: var(--ws-color-attention);
  background: var(--ws-color-attention-bg);
}
.ws-alert--warning > .ws-icon {
  color: var(--ws-color-attention);
}
.ws-alert--success {
  border-color: var(--ws-color-action);
  background: var(--ws-color-mint);
}
.ws-alert--success > .ws-icon {
  color: var(--ws-color-action);
}
.ws-alert--test {
  border-style: dashed;
}
.ws-alert--neutral {
  background: var(--ws-color-sunk);
  border-color: var(--ws-color-control);
}
.ws-table-region {
  overflow: auto;
  max-width: 100%;
  border: 1px solid var(--ws-color-line);
  border-radius: var(--ws-control-radius);
}
.ws-table {
  width: 100%;
  border-collapse: collapse;
  font: var(--ws-type-body);
  white-space: nowrap;
}
.ws-table caption {
  text-align: left;
  padding: 12px;
  font: var(--ws-type-label);
  color: var(--ws-color-muted);
}
.ws-table :is(th, td) {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--ws-color-line);
}
.ws-table th {
  background: var(--ws-color-sunk);
  font: var(--ws-type-label);
  color: var(--ws-color-muted);
}
.ws-table tbody tr:last-child td {
  border-bottom: 0;
}
.ws-table .ws-numeric {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ws-table-empty {
  white-space: normal;
  color: var(--ws-color-muted);
}
.ws-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  font: var(--ws-type-small);
}
.ws-pagination > span:first-child {
  margin-right: auto;
  color: var(--ws-color-muted);
}
.ws-tab-list {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--ws-color-line);
  overflow: auto;
}
.ws-tab-list [role="tab"] {
  flex: none;
  min-height: var(--ws-control-height);
  padding: 8px 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font: var(--ws-type-label);
  color: var(--ws-color-muted);
  cursor: pointer;
}
.ws-tab-list [aria-selected="true"] {
  color: var(--ws-color-action);
  border-bottom-color: var(--ws-color-action);
  background: var(--ws-color-mint);
}
.ws-tabs [role="tabpanel"] {
  padding-block: 16px;
}
.ws-modal > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.ws-modal header h2 {
  margin: 0;
  font: var(--ws-type-title);
  font-size: 20px;
}
.ws-modal header p {
  margin: 6px 0 0;
  color: var(--ws-color-muted);
  font: var(--ws-type-body);
}
.ws-modal-body {
  min-width: 0;
}
.ws-modal > footer {
  justify-content: flex-end;
  border-top: 1px solid var(--ws-color-line);
  padding-top: 16px;
  margin-top: 20px;
}
.ws-modal[aria-busy="true"] {
  cursor: progress;
}
.ws-notifications {
  position: fixed;
  z-index: var(--ws-layer-tooltip);
  bottom: 24px;
  right: 24px;
  display: grid;
  gap: 8px;
  max-width: min(420px, calc(100vw - 32px));
}
.ws-notification {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--ws-color-ink);
  color: white;
  border-radius: var(--ws-card-radius);
  padding: 12px 14px;
  box-shadow: var(--ws-shadow-overlay);
  font: var(--ws-type-body);
}
.ws-notification > .ws-icon {
  flex: none;
  width: 20px;
  height: 20px;
}
.ws-notification .ws-button.ws-button--icon {
  color: white;
}
.ws-notification .ws-button.ws-button--icon:hover {
  background: #ffffff20;
}
:is(.workspace, dialog, .ws-floating-ai)
  :is(
    .ws-button,
    .ws-field input,
    .ws-field select,
    .ws-field textarea,
    .ws-choice input,
    .ws-tab-list button,
    .ws-menu-items button,
    .ws-table-region
  ):focus-visible {
  outline: var(--ws-focus);
  outline-offset: 3px;
}
:is(.ws-tooltip, .ws-options, .ws-menu-items, .ws-field-error)[hidden],
.ws-tabs [role="tabpanel"][hidden] {
  display: none !important;
}
@media (max-width: 760px), (pointer: coarse) {
  .ws-field > :is(input, select, textarea) {
    font-size: 16px !important;
  }
  .ws-choice label {
    min-height: 44px;
  }
  .ws-choice input {
    margin-top: 13px;
  }
  .ws-menu-items [role="menuitem"] {
    min-height: 44px;
  }
  .ws-surface {
    padding: 16px;
  }
  .ws-surface-header {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .ws-notifications {
    bottom: calc(80px + env(safe-area-inset-bottom));
    right: 16px;
  }
}

.ws-button[hidden],
.ws-modal [hidden] {
  display: none !important;
}
.ws-radio-group {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
  display: grid;
  gap: 10px;
}
.ws-radio-group legend {
  font: var(--ws-type-label);
  margin-bottom: 12px;
}
.ws-radio-group > .ws-field-help {
  margin: 0;
}
.ws-file-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 24px 20px;
  border: 1px dashed var(--ws-color-control);
  border-radius: var(--ws-card-radius);
  background: var(--ws-color-sunk);
  text-align: center;
  min-width: 0;
  transition:
    background var(--ws-motion-fast),
    border-color var(--ws-motion-fast);
}
.ws-file-dropzone:focus-visible,
.ws-file-browse:focus-within {
  outline: var(--ws-focus);
  outline-offset: 3px;
}
.ws-file-dropzone.is-dragging {
  background: var(--ws-color-mint);
  border-color: var(--ws-color-action);
  border-style: solid;
}
.ws-file-dropzone[aria-invalid="true"] {
  border-color: var(--ws-color-danger);
}
.ws-file-dropzone[aria-disabled="true"] {
  opacity: 0.6;
}
.ws-file-symbol {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--ws-color-line);
  border-radius: 12px;
  background: var(--ws-color-surface);
  color: var(--ws-color-action);
}
.ws-file-symbol svg {
  width: 24px;
  height: 24px;
}
.ws-file-dropzone > strong {
  font: var(--ws-type-heading);
}
.ws-file-dropzone > p {
  margin: 0;
  max-width: 400px;
  color: var(--ws-color-muted);
  font: var(--ws-type-body);
}
.ws-file-dropzone .ws-actions {
  justify-content: center;
}
.ws-file-browse {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--ws-control-height);
  padding: 9px 14px;
  border: 1px solid var(--ws-color-control);
  border-radius: var(--ws-control-radius);
  background: var(--ws-color-surface);
  color: var(--ws-color-ink);
  cursor: pointer;
  font: var(--ws-type-control);
}
.ws-file-browse:hover:not(.is-disabled) {
  background: var(--ws-color-mint);
}
.ws-file-browse.is-disabled {
  cursor: default;
}
.ws-file-browse svg {
  width: 18px;
  height: 18px;
  flex: none;
}
.ws-file-browse input.ws-file-native {
  position: absolute;
  width: 1px;
  min-width: 0;
  height: 1px;
  padding: 0;
  border: 0;
  margin: -1px;
  clip-path: inset(50%);
  overflow: hidden;
  white-space: nowrap;
}
.ws-file-limits {
  font: var(--ws-type-small);
  color: var(--ws-color-muted);
  overflow-wrap: anywhere;
}
.ws-file-list {
  list-style: none;
  padding: 0;
  margin: 4px 0 0;
  display: grid;
  gap: 8px;
  min-width: 0;
}
.ws-file-list[hidden] {
  display: none;
}
.ws-file-list > li {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--ws-color-line);
  border-radius: var(--ws-control-radius);
  padding: 10px 12px;
  min-width: 0;
}
.ws-file-item-icon {
  color: var(--ws-color-muted);
  flex: none;
}
.ws-file-item-icon svg {
  width: 20px;
  height: 20px;
  display: block;
}
.ws-file-list li > div {
  flex: 1;
  min-width: 0;
}
.ws-file-list strong {
  display: block;
  font: var(--ws-type-label);
  overflow-wrap: anywhere;
}
.ws-file-list li > div > span {
  font: var(--ws-type-small);
  color: var(--ws-color-muted);
}
.ws-file-list .ws-button {
  flex: none;
}
.ws-loading {
  display: grid;
  gap: 16px;
  font: var(--ws-type-body);
  color: var(--ws-color-muted);
}
.ws-loading > div {
  display: grid;
  gap: 10px;
}
.ws-skeleton-line {
  display: block;
  height: 16px;
  border-radius: 4px;
  background: var(--ws-color-line);
  animation: ws-skeleton-pulse 1.4s ease-in-out infinite;
}
.ws-skeleton-line:last-child {
  width: 65%;
}
@keyframes ws-skeleton-pulse {
  50% {
    opacity: 0.4;
  }
}
.ws-page-loading { min-width: 0; font: var(--ws-type-body); }
.ws-page-loading header { margin-bottom: 24px; }
.ws-page-loading h1 { margin: 0 0 8px; font: var(--ws-type-title); letter-spacing: -.35px; }
.ws-page-loading header p { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--ws-color-muted); }
.ws-page-loading-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--ws-color-action); animation: ws-skeleton-pulse 1.4s ease-in-out infinite; }
.ws-page-loading-shapes { display: grid; gap: 24px; }
.ws-page-loading-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ws-page-loading-cards > div, .ws-page-loading-content { padding: 20px; border: 1px solid var(--ws-color-line); border-radius: var(--ws-card-radius); background: var(--ws-color-surface); }
.ws-page-loading-cards > div { display: grid; gap: 18px; }
.ws-page-loading-cards .ws-skeleton-line:first-child { height: 10px; width: 50%; }
.ws-page-loading-cards .ws-skeleton-line:last-child { height: 24px; width: 65%; }
.ws-page-loading-toolbar { display: flex; justify-content: space-between; gap: 24px; padding-bottom: 24px; }
.ws-page-loading-toolbar .ws-skeleton-line { width: min(45%, 280px); height: 32px; }
.ws-page-loading-toolbar .ws-skeleton-line:last-child { width: 84px; }
.ws-page-loading-row { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 24px; padding: 20px 0; border-top: 1px solid var(--ws-color-line); }
.ws-page-loading-row .ws-skeleton-line { height: 12px; }
@media (max-width: 760px) {
  .ws-page-loading-shapes { gap: 16px; }
  .ws-page-loading-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ws-page-loading-cards > div { padding: 16px; }
  .ws-page-loading-cards > div:last-child { display: none; }
  .ws-page-loading-content { padding: 16px; }
  .ws-page-loading-row { grid-template-columns: 2fr 1fr; gap: 16px; }
  .ws-page-loading-row .ws-skeleton-line:last-child { display: none; }
}
.ws-disclosure {
  border: 1px solid var(--ws-color-line);
  border-radius: var(--ws-control-radius);
}
.ws-disclosure > summary {
  font: var(--ws-type-label);
  padding: 12px 16px;
  cursor: pointer;
  min-height: 44px;
}
.ws-disclosure > div {
  padding: 0 16px 16px;
  font: var(--ws-type-body);
}
@media (prefers-reduced-motion: reduce) {
  .ws-skeleton-line, .ws-page-loading-dot {
    animation: none;
  }
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--icon.ws-button--primary {
  background: var(--ws-color-action);
  border-color: var(--ws-color-action);
  color: white;
}
:is(.workspace, dialog, .ws-floating-ai)
  .ws-button.ws-button--icon.ws-button--primary:hover:not(:disabled) {
  background: var(--ws-color-action-hover);
  border-color: var(--ws-color-action-hover);
}
:is(.workspace, dialog, .ws-floating-ai) .ws-button.ws-button--icon.ws-button--text {
  color: var(--ws-color-action);
}

/* Canonical controls are excluded from legacy foundation control selectors. */
.ws-button > .ws-icon {
  display: block;
  flex: none;
  width: var(--ws-button-icon-size);
  height: var(--ws-button-icon-size);
}
.ws-button.ws-button--icon > .ws-icon {
  width: var(--ws-icon-size);
  height: var(--ws-icon-size);
}
.ws-button-label {
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 20px;
}
.ws-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.ws-control-spinner {
  display: block;
  flex: none;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ws-control-spin 0.8s linear infinite;
}
@keyframes ws-control-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ws-control-spinner {
    animation: none;
  }
}

.ws-modal > footer:empty { display: none; }

/* List filters wrap at natural widths; search never stretches across a panel.
   Legacy aliases share the same contract while their screens migrate. */
:root :is(.ws-filter-toolbar,.library-search,.ws-customer-filters,.ws-catalog-filters,.ws-sales-filter-grid) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--ws-space-3);
}
:root :is(.ws-filter-toolbar,.library-search,.ws-customer-filters,.ws-catalog-filters,.ws-sales-filter-grid) > :is(.field,.ws-field) {
  flex: 0 1 100%;
  inline-size: 100%;
  max-inline-size: 100%;
  min-inline-size: 0;
  margin: 0;
}
@media (min-width: 761px) {
  :root :is(.ws-filter-toolbar,.library-search,.ws-customer-filters,.ws-catalog-filters,.ws-sales-filter-grid) > :is(.field,.ws-field) {
    flex-basis: var(--ws-filter-width);
    inline-size: var(--ws-filter-width);
  }
  :root :is(.ws-filter-toolbar,.library-search,.ws-customer-filters,.ws-catalog-filters,.ws-sales-filter-grid) > :is(.field,.ws-field):has(input[type="search"]) {
    flex-basis: var(--ws-search-width);
    inline-size: var(--ws-search-width);
  }
}

/* General tasks and record-bound actions share geometry, not command ownership. */
.ws-task-list { min-inline-size: 0; margin-block: var(--ws-space-3); }
.ws-task-list > ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); align-items: stretch; gap: var(--ws-space-1); max-inline-size: none; padding: 0; margin: 0; list-style: none; }
.ws-task-entry { min-inline-size: 0; max-inline-size: 22rem; inline-size: 100%; justify-self: start; margin: 0; padding: 0; }
:is(.workspace,dialog) .ws-task-entry > .ws-button { display: flex; inline-size: 100%; block-size: 100%; min-height: 56px; justify-content: flex-start; align-items: center; text-align: start; padding: 10px 8px; border: 1px solid transparent; border-radius: var(--ws-control-radius); color: var(--ws-color-ink); background: transparent; }
:is(.workspace,dialog) .ws-task-entry > .ws-button:hover:not(:disabled) { background: var(--ws-color-sunk); }
.ws-task-entry .ws-button > svg { flex: none; color: var(--ws-color-action); }
.ws-button-copy { display: flex; flex-direction: column; gap: 2px; min-inline-size: 0; overflow-wrap: anywhere; }
.ws-button-description { display: block; font: var(--ws-type-small); color: var(--ws-color-muted); }
.ws-context-actions { min-inline-size: 0; margin: 0; }
.ws-context-description { margin: 0 0 var(--ws-space-2); font: var(--ws-type-small); color: var(--ws-color-muted); }
.ws-context-actions > .ws-actions { min-inline-size: 0; }
.ws-context-actions .ws-button { max-inline-size: 100%; white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 760px) { :is(.workspace,dialog) .ws-context-actions .ws-button { min-height: 44px; } }

/* Detail cards keep status, related context and commands in separate lanes. */
.ws-detail-card > header { flex-wrap: wrap; }
.ws-detail-card > header > div { flex: 1 1 auto; min-inline-size: 0; }
.ws-detail-card > header h3 { overflow-wrap: anywhere; }
.ws-detail-status { flex: 0 0 auto; align-self: flex-start; margin-inline-start: auto; white-space: nowrap; }
.ws-detail-related { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ws-space-2); min-inline-size: 0; margin: -8px 0 var(--ws-space-4); font: var(--ws-type-small); color: var(--ws-color-muted); overflow-wrap: anywhere; }
.ws-detail-card > footer.ws-record-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: var(--ws-space-2); }
.ws-record-actions > .ws-button,
.ws-record-actions > .ws-menu { flex: 0 0 auto; }
.ws-record-actions .ws-button { white-space: nowrap; }
@media (max-width: 760px) {
  .ws-detail-status { align-self: center; }
}

@media print { .ws-task-list, .ws-context-actions { display: none !important; } }

/* Record menus share one delegated lifecycle; commands retain controller ownership. */
.ws-record-menu { position: relative; flex: none; }
.ws-record-menu .ws-menu-items { min-inline-size: 13rem; max-inline-size: min(22rem, calc(100vw - 24px)); white-space: normal; }
:is(.workspace,dialog) .ws-record-menu [role="menuitem"] { display: flex; justify-content: flex-start; text-align: start; inline-size: 100%; min-height: 44px; white-space: normal; border: 0; box-shadow: none; padding: 10px 12px; }
.ws-record-menu [role="separator"] { display: block; block-size: 1px; margin: 4px; background: var(--ws-color-border, #dce3de); }
:is(.workspace,dialog) .ws-record-menu [role="menuitem"].danger { color: var(--ws-color-danger); }
:is(.workspace,dialog) .ws-record-menu [role="menuitem"]:is(:hover,:focus-visible) { background: var(--ws-color-mint); }
.ws-record-menu [aria-busy="true"] > .ws-icon { opacity: .4; }
.ws-detail-card > footer > .ws-record-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: nowrap; gap: var(--ws-space-2); inline-size: 100%; min-inline-size: 0; }
.ws-detail-card > header > div { flex: 1 1 8rem; }
@media (max-width: 760px) { :is(.workspace,dialog) .ws-record-menu > .ws-icon-anchor > .ws-button { min-inline-size: 44px; min-block-size: 44px; } }
@media print { .ws-record-menu { display: none !important; } }

/* Dense module layout (Equipo option A): general tasks beside the dominant action,
   a one-row summary, wide work beside pending work, and quiet empty lines. */
.ws-heading-actions .ws-task-list { margin: 0; }
.ws-heading-actions .ws-task-list > ul { display: flex; flex-wrap: wrap; gap: var(--ws-space-2); }
.ws-heading-actions .ws-task-entry { inline-size: auto; max-inline-size: none; }
:is(.workspace,dialog) .ws-heading-actions .ws-task-entry > .ws-button { min-height: var(--ws-control-height); block-size: auto; padding: 0 14px; border-color: var(--ws-color-control); background: var(--ws-color-surface); font: var(--ws-type-control); white-space: nowrap; }
:is(.workspace,dialog) .ws-heading-actions .ws-task-entry > .ws-button > svg { width: 16px; height: 16px; }
.ws-heading-actions .ws-task-entry .ws-button-description { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
:is(.workspace,dialog) .ws-task-entry > .ws-button { min-height: 48px; padding-block: 6px; }

.ws-stat-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1px; background: var(--ws-color-line); border: 1px solid var(--ws-color-line); border-radius: var(--ws-card-radius); overflow: hidden; min-inline-size: 0; }
.ws-stat-strip--dense { grid-template-columns: repeat(auto-fit, minmax(min(100%, 11.5rem), 1fr)); }
.ws-stat-strip--dense .ws-stat { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; align-items: center; column-gap: var(--ws-space-1); row-gap: 0; }
.ws-stat-strip--dense .ws-stat-label { grid-column: 1; grid-row: 1; }
.ws-stat-strip--dense .ws-stat-value { grid-column: 1; grid-row: 2; font-size: 18px; line-height: 24px; }
.ws-stat-strip--dense .ws-stat > .ws-button { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.ws-stat { display: flex; align-items: center; gap: var(--ws-space-2); min-inline-size: 0; padding: 8px 8px 8px var(--ws-space-4); background: var(--ws-color-surface); }
.ws-stat-label { flex: 1 1 auto; min-inline-size: 0; font: var(--ws-type-label); color: var(--ws-color-muted); }
.ws-stat-value { flex: none; font-size: 20px; line-height: 28px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ws-color-ink); }
.ws-stat--attention .ws-stat-value { color: var(--ws-color-attention); }
.ws-stat--pending .ws-stat-value { color: var(--ws-color-info); }
.ws-stat[aria-busy="true"] .ws-stat-value { color: var(--ws-color-muted); }
:is(.workspace,dialog) .ws-stat .ws-button.ws-button--icon.ws-button--text { color: var(--ws-color-muted); width: 32px; min-width: 32px; height: 32px; min-height: 32px; }
:is(.workspace,dialog) .ws-stat .ws-button.ws-button--icon.ws-button--text:hover { color: var(--ws-color-ink); }
:is(.workspace,dialog) .ws-stat .ws-button--icon > .ws-icon { width: 16px; height: 16px; }
@media (max-width: 760px), (pointer: coarse) { :is(.workspace,dialog) .ws-stat .ws-button.ws-button--icon.ws-button--text { width: 44px; min-width: 44px; height: 44px; min-height: 44px; } }

.ws-surface-count { display: inline-block; margin-inline-start: var(--ws-space-2); padding: 1px 8px; border-radius: 999px; background: var(--ws-color-sunk); border: 1px solid var(--ws-color-line); font: var(--ws-type-small); font-weight: 600; color: var(--ws-color-muted); vertical-align: 2px; }
.ws-surface-header { flex-wrap: wrap; }
.ws-surface-header > .ws-actions { flex: 0 1 auto; justify-content: flex-end; }
/* A table that is the section's content sits flush with its edges. */
.ws-surface--flush { padding: 0; overflow: hidden; }
.ws-surface--flush > .ws-surface-header { padding: var(--ws-space-4) var(--ws-space-4) var(--ws-space-3); margin: 0; }
.ws-surface--flush .ws-table-region { border: 0; border-top: 1px solid var(--ws-color-line); border-radius: 0; }
.ws-surface--flush .ws-table caption { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
/* Inset with margins, not padding: children that draw their own box (alerts, disclosures,
   empty states) then line up with the section title instead of touching the card edge. */
:is(.ws-surface--flush,.ws-surface--compact) > :not(.ws-surface-header):not(.ws-table-region):not(.ws-pending):not(:has(> .ws-table-region)) { margin-inline: var(--ws-space-4); }
:is(.ws-surface--flush,.ws-surface--compact) > :is(.ws-table-region,:has(> .ws-table-region)) { margin-inline: 0; }
:is(.ws-surface--flush,.ws-surface--compact) > :last-child:not(.ws-surface-header):not(.ws-table-region):not(:has(> .ws-table-region)) { margin-block-end: var(--ws-space-4); }
/* Filters that belong to one section live in its header without repeating visible labels. */
.ws-surface-header :is(.ws-filter-toolbar,.ws-customer-filters,.ws-catalog-filters,.library-search) { margin: 0; gap: var(--ws-space-2); align-items: center; }
.ws-surface-header :is(.ws-filter-toolbar,.ws-customer-filters,.ws-catalog-filters,.library-search) > :is(.field,.ws-field) > label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 761px) { :root .ws-surface-header :is(.ws-filter-toolbar,.ws-customer-filters,.ws-catalog-filters,.library-search) > :is(.field,.ws-field):has(input[type="search"]) { flex-basis: 16rem; inline-size: 16rem; } }
.ws-surface--compact { padding: 0; }
.ws-surface--compact > .ws-surface-header { padding: 14px var(--ws-space-4) 10px; margin: 0; }

.ws-work-columns { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--ws-space-5); min-inline-size: 0; }
.ws-work-main { flex: 999 1 36rem; min-inline-size: 0; display: grid; gap: var(--ws-space-5); }
.ws-work-aside { flex: 1 1 24rem; min-inline-size: 0; display: grid; gap: var(--ws-space-5); }

.ws-empty-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ws-space-2) var(--ws-space-4); }
.ws-empty-line > p { margin: 0; font: var(--ws-type-body); color: var(--ws-color-muted); }

.ws-pending { display: grid; gap: var(--ws-space-3); min-inline-size: 0; }
.ws-surface--compact > .ws-pending > :is(.ws-pending-summary,.ws-empty-line,.ws-pending-footer) { margin-inline: var(--ws-space-4); }
.ws-pending-summary { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ws-pending-chip { padding: 2px 8px; border-radius: 999px; font: var(--ws-type-small); font-weight: 600; background: var(--ws-color-sunk); color: var(--ws-color-muted); }
.ws-pending-chip--attention { background: var(--ws-color-attention-bg); color: var(--ws-color-attention); }
.ws-pending-chip--pending { background: var(--ws-color-info-bg); color: var(--ws-color-info); }
.ws-pending-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ws-color-line); }
.ws-pending-item { display: grid; gap: 4px; padding: 10px var(--ws-space-4); border-bottom: 1px solid var(--ws-color-line); }
.ws-pending-line { display: flex; align-items: center; justify-content: space-between; gap: var(--ws-space-3); min-inline-size: 0; }
.ws-pending-title { min-inline-size: 0; overflow-wrap: anywhere; font: var(--ws-type-body); font-weight: 600; }
.ws-pending-title a { color: var(--ws-color-ink); }
.ws-pending-amount { flex: none; font-weight: 600; font-variant-numeric: tabular-nums; }
.ws-pending-detail { font: var(--ws-type-small); color: var(--ws-color-muted); }
.ws-pending-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ws-space-2); min-inline-size: 0; }
.ws-pending-meta .ws-status { padding: 1px 6px; }
.ws-pending-detail .ws-context-actions, .ws-pending-detail .ws-actions { flex: none; flex-wrap: nowrap; }
.ws-pending-detail .ws-context-actions .ws-button { white-space: nowrap; }
:is(.workspace,dialog) .ws-pending-detail .ws-button { min-height: 32px; padding-block: 4px; }
@media (max-width: 760px), (pointer: coarse) { :is(.workspace,dialog) .ws-pending-detail .ws-button { min-height: 44px; } }
.ws-pending-footer { font: var(--ws-type-small); color: var(--ws-color-muted); }
.ws-pending-footer p { margin: 0; }
@media print { .ws-work-columns { display: block; } .ws-stat .ws-icon-anchor { display: none; } }

/* Module pages lay out in grids with their own gap; the heading adds none on top. */
.workspace :is(.ws-adjustment-workspace,.ws-cash-workspace,.ws-catalog-workspace,.ws-inventory-workspace,.ws-collections-workspace,.ws-invoice-library-workspace,.ws-purchases-workspace,.ws-team-workspace,.ws-workbook-workspace,.ws-reports-workspace,.ws-accounting-workspace,.ws-invoice-workspace,.ws-customer-workspace)>.page-heading{margin-bottom:0}
/* The heading copy yields width to its actions so they stay on one row when they can. */
@media (min-width: 761px){.workspace .ws-page-heading>div:first-child{flex:1 1 18rem;min-width:16rem}.workspace .ws-page-heading>.ws-heading-actions{flex:0 1 auto;justify-content:flex-end}}
@media (max-width: 760px){.ws-surface-header>.ws-actions{flex-basis:100%}.ws-surface-header>.ws-actions>:is(form,nav){inline-size:100%}}
/* A section whose only content is an informational empty notice shows it as a quiet line. */
.ws-surface>.ws-surface-header+.ws-alert--info:last-child,
.ws-surface>div:last-child>.ws-alert--info:only-child{padding:0;border:0;background:transparent;color:var(--ws-color-muted)}
.ws-surface>.ws-surface-header+.ws-alert--info:last-child>.ws-icon,
.ws-surface>div:last-child>.ws-alert--info:only-child>.ws-icon{display:none}
.ws-surface>.ws-surface-header+.ws-alert--info:last-child :is(strong,p),
.ws-surface>div:last-child>.ws-alert--info:only-child :is(strong,p){display:inline;font:var(--ws-type-body);color:var(--ws-color-muted)}
.ws-surface>.ws-surface-header+.ws-alert--info:last-child strong::after,
.ws-surface>div:last-child>.ws-alert--info:only-child strong::after{content:" "}

/* A page-scope filter (period, date) can sit with the heading's actions. */
.ws-heading-actions>.ws-filter-toolbar{margin:0;gap:var(--ws-space-2);align-items:center;flex-wrap:nowrap}
.ws-heading-actions>.ws-filter-toolbar>:is(.field,.ws-field){flex:0 0 auto;inline-size:auto}
.ws-heading-actions>.ws-filter-toolbar>:is(.field,.ws-field)>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.ws-options .ws-option-create strong{color:var(--ws-color-action)}
/* Inline file field for compact contextual document entry. */
.ws-file-field--inline{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--ws-space-4);row-gap:var(--ws-space-1);align-items:center;position:relative;border:1px dashed var(--ws-color-control);border-radius:var(--ws-card-radius);padding:var(--ws-space-4);background:var(--ws-color-sunk)}
.ws-file-field--inline>label{grid-column:1;grid-row:1;margin:0}
.ws-file-field--inline>.ws-file-dropzone{grid-column:2;grid-row:1 / span 2;flex-direction:row;border:0;background:transparent;padding:0;display:flex;align-items:center;justify-content:space-between;gap:var(--ws-space-3);min-height:0;flex-wrap:wrap}
.ws-file-field--inline .ws-file-symbol,.ws-file-field--inline .ws-file-dropzone>strong,.ws-file-field--inline .ws-file-dropzone>p{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ws-file-field--inline .ws-file-limits{font:var(--ws-type-small)}
.ws-file-field--inline>.ws-field-help{display:block;grid-column:1;grid-row:2}
.ws-file-field--inline>.ws-field-error,.ws-file-field--inline>.ws-file-list{grid-column:1/-1}
@media(max-width:760px){.ws-file-field--inline{grid-template-columns:minmax(0,1fr)}.ws-file-field--inline>.ws-file-dropzone{grid-column:1;grid-row:3}.ws-file-field--inline>.ws-field-help{grid-row:2}}

/* A separated header with a padded form body; table surfaces keep flush. */
.ws-surface--divided{padding:0}
.ws-surface--divided>.ws-surface-header{padding:var(--ws-space-4);margin:0;border-bottom:1px solid var(--ws-color-line)}
.ws-surface--divided>.ws-surface-body{padding:var(--ws-space-4);min-width:0}

/* Compact centered drop area for document-first forms. Native selection,
   paste, keyboard and validation behavior remain shared. */
.ws-file-field--drop{position:relative}
.ws-file-field--drop>label,.ws-file-field--drop .ws-file-symbol{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.ws-file-field--drop>.ws-file-dropzone{gap:var(--ws-space-2);padding:var(--ws-space-4)}
.ws-file-field--drop .ws-file-dropzone>strong{font:var(--ws-type-label)}
.ws-file-field--drop .ws-file-dropzone>p{max-width:none;font:var(--ws-type-small)}
.ws-radio-group--cards {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--ws-space-2);
}
.ws-radio-group--cards .ws-choice {
  min-width: 0;
  padding: var(--ws-space-3);
  border: 1px solid var(--ws-color-line);
  border-radius: var(--ws-card-radius);
  background: var(--ws-color-surface);
}
.ws-radio-group--cards .ws-choice:has(input:checked) {
  border-color: var(--ws-color-action);
  background: var(--ws-color-mint);
}
.ws-radio-group--cards .ws-choice label {
  min-height: 0;
}
.ws-radio-group--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--ws-space-2);
}
.ws-radio-group--inline legend {
  flex: 1 1 180px;
  margin: 0;
  font: var(--ws-type-body);
  font-weight: 600;
}
.ws-radio-group--inline .ws-choice {
  min-width: 0;
  flex: none;
  align-items: center;
  padding: 4px 10px;
  border: 1px solid var(--ws-color-line);
  border-radius: var(--ws-control-radius);
}
.ws-radio-group--inline .ws-choice:has(input:checked) {
  border-color: var(--ws-color-action);
  background: var(--ws-color-mint);
}
.ws-radio-group--inline .ws-choice label {
  min-height: 0;
  font-weight: 600;
}
.ws-radio-group--inline > .ws-field-help:empty {
  display: none;
}

/* DS1 layout wrappers. Responsive values are owned by tokens.css. */
.ws-stack { display: flex; flex-direction: column; gap: var(--ws-layout-gap, var(--ws-space-4)); min-inline-size: 0; }
.ws-cluster { display: flex; flex-wrap: wrap; gap: var(--ws-layout-gap, var(--ws-space-4)); min-inline-size: 0; }
.ws-stack > *, .ws-cluster > *, .ws-grid > *, .ws-split > * { min-inline-size: 0; }
.ws-cluster--align-start { align-items: flex-start; }
.ws-cluster--align-center { align-items: center; }
.ws-cluster--align-end { align-items: flex-end; }
.ws-cluster--justify-start { justify-content: flex-start; }
.ws-cluster--justify-between { justify-content: space-between; }
.ws-cluster--justify-end { justify-content: flex-end; }
.ws-split { display: grid; gap: var(--ws-space-6); min-inline-size: 0; align-items: start; }
.ws-split--narrow { grid-template-columns: var(--ws-layout-split-narrow); }
.ws-split--wide { grid-template-columns: var(--ws-layout-split-wide); }
.ws-split--side-first > .ws-split-side { order: var(--ws-layout-side-first-order); }
.ws-split--sticky > .ws-split-side { position: var(--ws-layout-sticky-position); top: var(--ws-layout-sticky-top); align-self: start; }
.ws-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ws-grid-min)), 1fr)); gap: var(--ws-layout-gap, var(--ws-space-4)); min-inline-size: 0; }
.ws-grid--min-12 { --ws-grid-min: var(--ws-layout-grid-min-12); }
.ws-grid--min-16 { --ws-grid-min: var(--ws-layout-grid-min-16); }
.ws-grid--min-20 { --ws-grid-min: var(--ws-layout-grid-min-20); }
.ws-stack--gap-2, .ws-cluster--gap-2, .ws-grid--gap-2 { --ws-layout-gap: var(--ws-space-2); }
.ws-stack--gap-3, .ws-cluster--gap-3, .ws-grid--gap-3 { --ws-layout-gap: var(--ws-space-3); }
.ws-stack--gap-4, .ws-cluster--gap-4, .ws-grid--gap-4 { --ws-layout-gap: var(--ws-space-4); }
.ws-stack--gap-5, .ws-cluster--gap-5, .ws-grid--gap-5 { --ws-layout-gap: var(--ws-space-5); }
.ws-stack--gap-6, .ws-cluster--gap-6, .ws-grid--gap-6 { --ws-layout-gap: var(--ws-space-6); }
.ws-stack--gap-7, .ws-cluster--gap-7, .ws-grid--gap-7 { --ws-layout-gap: var(--ws-space-7); }
.ws-stack--gap-8, .ws-cluster--gap-8, .ws-grid--gap-8 { --ws-layout-gap: var(--ws-space-8); }

/* dataTable width options: whole percentages, scoped to this table's own colgroup. */
.ws-table > colgroup > .ws-table-column--1 { width: calc(1 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--2 { width: calc(2 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--3 { width: calc(3 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--4 { width: calc(4 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--5 { width: calc(5 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--6 { width: calc(6 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--7 { width: calc(7 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--8 { width: calc(8 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--9 { width: calc(9 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--10 { width: calc(10 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--11 { width: calc(11 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--12 { width: calc(12 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--13 { width: calc(13 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--14 { width: calc(14 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--15 { width: calc(15 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--16 { width: calc(16 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--17 { width: calc(17 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--18 { width: calc(18 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--19 { width: calc(19 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--20 { width: calc(20 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--21 { width: calc(21 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--22 { width: calc(22 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--23 { width: calc(23 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--24 { width: calc(24 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--25 { width: calc(25 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--26 { width: calc(26 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--27 { width: calc(27 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--28 { width: calc(28 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--29 { width: calc(29 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--30 { width: calc(30 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--31 { width: calc(31 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--32 { width: calc(32 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--33 { width: calc(33 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--34 { width: calc(34 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--35 { width: calc(35 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--36 { width: calc(36 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--37 { width: calc(37 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--38 { width: calc(38 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--39 { width: calc(39 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--40 { width: calc(40 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--41 { width: calc(41 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--42 { width: calc(42 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--43 { width: calc(43 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--44 { width: calc(44 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--45 { width: calc(45 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--46 { width: calc(46 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--47 { width: calc(47 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--48 { width: calc(48 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--49 { width: calc(49 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--50 { width: calc(50 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--51 { width: calc(51 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--52 { width: calc(52 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--53 { width: calc(53 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--54 { width: calc(54 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--55 { width: calc(55 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--56 { width: calc(56 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--57 { width: calc(57 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--58 { width: calc(58 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--59 { width: calc(59 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--60 { width: calc(60 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--61 { width: calc(61 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--62 { width: calc(62 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--63 { width: calc(63 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--64 { width: calc(64 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--65 { width: calc(65 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--66 { width: calc(66 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--67 { width: calc(67 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--68 { width: calc(68 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--69 { width: calc(69 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--70 { width: calc(70 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--71 { width: calc(71 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--72 { width: calc(72 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--73 { width: calc(73 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--74 { width: calc(74 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--75 { width: calc(75 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--76 { width: calc(76 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--77 { width: calc(77 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--78 { width: calc(78 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--79 { width: calc(79 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--80 { width: calc(80 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--81 { width: calc(81 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--82 { width: calc(82 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--83 { width: calc(83 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--84 { width: calc(84 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--85 { width: calc(85 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--86 { width: calc(86 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--87 { width: calc(87 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--88 { width: calc(88 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--89 { width: calc(89 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--90 { width: calc(90 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--91 { width: calc(91 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--92 { width: calc(92 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--93 { width: calc(93 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--94 { width: calc(94 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--95 { width: calc(95 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--96 { width: calc(96 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--97 { width: calc(97 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--98 { width: calc(98 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--99 { width: calc(99 * var(--ws-table-column-unit)); }
.ws-table > colgroup > .ws-table-column--100 { width: calc(100 * var(--ws-table-column-unit)); }
