:root {
  --tb-background: #f4f7fb;
  --tb-surface: #ffffff;
  --tb-surface-muted: #f8fafc;
  --tb-surface-strong: #101813;
  --tb-border: #dfe7ef;
  --tb-border-strong: #cad6e2;
  --tb-text-primary: #172033;
  --tb-text-secondary: #64748b;
  --tb-accent: #eab308;
  --tb-accent-strong: #ca8a04;
  --tb-accent-soft: #fef9c3;
  --tb-success: #15803d;
  --tb-success-soft: #ecfdf3;
  --tb-warning: #b45309;
  --tb-warning-soft: #fff7ed;
  --tb-danger: #b91c1c;
  --tb-danger-soft: #fef2f2;
  --tb-info: #1d4ed8;
  --tb-info-soft: #eff6ff;
  --tb-radius-sm: 8px;
  --tb-radius-md: 12px;
  --tb-radius-lg: 18px;
  --tb-shadow-sm: 0 2px 8px rgba(15, 23, 42, .04);
  --tb-shadow-card: 0 12px 30px rgba(15, 23, 42, .065);
  --tb-space-1: 4px;
  --tb-space-2: 8px;
  --tb-space-3: 12px;
  --tb-space-4: 16px;
  --tb-space-5: 20px;
  --tb-space-6: 24px;
  --tb-space-8: 32px;
  --tb-font-xs: 12px;
  --tb-font-sm: 14px;
  --tb-font-md: 16px;
  --tb-font-lg: 20px;
  --tb-font-xl: 30px;
}

body.trumbox-theme.trumbox-authenticated-page,
body.trumfb-manager-body,
body.trumfb-manager-action-mode {
  background: var(--tb-background) !important;
  color: var(--tb-text-primary);
  font-family: "Be Vietnam Pro", Inter, Arial, sans-serif;
  line-height: 1.55;
}

.tb-page-header,
.scheduler-page-header,
.trumfb-uid-heading,
.trumfb-competitor-block-heading,
.trumfb-manager-heading,
.trumfb-data-group-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--tb-space-6);
  margin-bottom: var(--tb-space-6);
}

.tb-page-header h1,
.scheduler-page-header h1,
.trumfb-uid-heading h1,
.trumfb-competitor-block-heading h1,
.trumfb-manager-heading h1,
.trumfb-data-group-heading h1 {
  margin: var(--tb-space-1) 0 0;
  color: var(--tb-text-primary) !important;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  letter-spacing: -.035em;
}

.tb-eyebrow,
.scheduler-eyebrow,
.section-kicker,
.trumfb-uid-heading > div > p,
.trumfb-competitor-block-heading > div > p,
.trumfb-data-group-heading p {
  color: var(--tb-accent-strong) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.tb-card,
.scheduler-summary-card,
.scheduler-progress-panel,
.scheduler-machine-section,
.scheduler-work-section,
.machine-card,
.trumfb-competitor-block-card,
.trumfb-data-group-create,
.trumfb-data-group-file,
.trumfb-uid-workspace,
.trumbox-authenticated-page .card {
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius-lg) !important;
  background: var(--tb-surface) !important;
  box-shadow: var(--tb-shadow-card) !important;
}

.tb-btn,
.trumfb-manager-body button,
.trumfb-manager-action-mode button,
.trumbox-authenticated-page .btn,
.action-preview-button {
  min-height: 40px;
  border-radius: var(--tb-radius-sm) !important;
  font-family: inherit;
  font-size: var(--tb-font-sm);
  font-weight: 700;
  transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}

.tb-btn:hover,
.trumfb-manager-body button:hover,
.trumfb-manager-action-mode button:hover,
.trumbox-authenticated-page .btn:hover { transform: translateY(-1px); }

.tb-btn-primary,
.trumfb-create-folder,
.trumfb-modal-save,
.trumfb-data-group-create button,
.action-preview-button {
  border: 1px solid var(--tb-accent-strong) !important;
  background: var(--tb-accent) !important;
  color: #241b00 !important;
}

.tb-btn-secondary {
  border: 1px solid var(--tb-border-strong) !important;
  background: var(--tb-surface) !important;
  color: var(--tb-text-primary) !important;
}

.tb-btn-ghost {
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--tb-text-secondary) !important;
}

.tb-btn-danger {
  border: 1px solid #fecaca !important;
  background: var(--tb-danger-soft) !important;
  color: var(--tb-danger) !important;
}

.trumfb-manager-body :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.trumfb-manager-action-mode :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.trumbox-authenticated-page :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 42px;
  border: 1px solid var(--tb-border-strong) !important;
  border-radius: var(--tb-radius-sm) !important;
  background: var(--tb-surface) !important;
  color: var(--tb-text-primary) !important;
  font: 500 var(--tb-font-sm)/1.45 inherit;
  outline: none;
}

.trumfb-manager-body :is(input, select, textarea):focus,
.trumfb-manager-action-mode :is(input, select, textarea):focus,
.trumbox-authenticated-page :is(input, select, textarea):focus {
  border-color: var(--tb-accent-strong) !important;
  box-shadow: 0 0 0 3px rgba(234, 179, 8, .16) !important;
}

.tb-table-wrap,
.table-wrap,
.trumfb-competitor-block-table-wrap,
.trumbox-authenticated-page .table-responsive {
  overflow-x: auto;
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius-md) !important;
  background: var(--tb-surface);
}

.tb-table,
.scheduler-table,
.trumfb-competitor-block-table-wrap table,
.trumbox-authenticated-page table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.tb-table th,
.scheduler-table th,
.trumfb-competitor-block-table-wrap th,
.trumbox-authenticated-page table th {
  padding: 13px 15px !important;
  background: var(--tb-surface-muted) !important;
  color: var(--tb-text-secondary) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .055em;
  text-align: left;
}

.tb-table td,
.scheduler-table td,
.trumfb-competitor-block-table-wrap td,
.trumbox-authenticated-page table td {
  padding: 14px 15px !important;
  border-top: 1px solid #edf2f7 !important;
  color: var(--tb-text-primary);
  vertical-align: middle;
}

.tb-table tbody tr:hover,
.scheduler-table tbody tr:hover,
.trumfb-competitor-block-table-wrap tbody tr:hover,
.trumbox-authenticated-page table tbody tr:hover { background: #fbfcfe; }

.tb-badge,
.status-badge,
.trumfb-competitor-block-status,
.sidebar .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 4px 10px;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.1;
}

.is-online, .tb-badge-success { background: var(--tb-success-soft) !important; color: var(--tb-success) !important; }
.is-offline, .is-prepared, .tb-badge-neutral { background: #f1f5f9 !important; color: #475569 !important; }
.is-running, .tb-badge-info { background: var(--tb-info-soft) !important; color: var(--tb-info) !important; }
.is-waiting, .tb-badge-warning { background: var(--tb-warning-soft) !important; color: var(--tb-warning) !important; }
.is-blocked, .tb-badge-danger { background: var(--tb-danger-soft) !important; color: var(--tb-danger) !important; }

.sidebar,
.trumfb-manager-sidebar {
  background: var(--tb-surface-strong) !important;
  border-right: 1px solid rgba(255, 255, 255, .08) !important;
  box-shadow: 8px 0 28px rgba(15, 23, 42, .10);
}

.sidebar .brand,
.trumfb-manager-brand {
  margin: 6px 6px 24px !important;
  padding: 12px !important;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: var(--tb-radius-md) !important;
  background: rgba(255, 255, 255, .035);
}

.sidebar .label,
.trumfb-manager-caption {
  margin: 20px 12px 7px !important;
  color: #82938a !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
}

.sidebar .item,
.sidebar .sub a,
.trumfb-manager-sidebar-nav a {
  border-radius: 10px !important;
  color: #d9e3dd !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  text-align: left !important;
}

.sidebar .item:hover,
.sidebar .sub a:hover,
.sidebar .item.active,
.sidebar .sub a.current,
.trumfb-manager-sidebar-nav a:hover,
.trumfb-manager-sidebar-nav a.is-active {
  background: rgba(234, 179, 8, .14) !important;
  color: #fde68a !important;
}

.sidebar .item.active,
.sidebar .sub a.current,
.trumfb-manager-sidebar-nav a.is-active {
  box-shadow: inset 3px 0 0 var(--tb-accent);
}

.tb-modal {
  position: fixed;
  inset: 0;
  z-index: 11000;
  display: grid;
  place-items: center;
  padding: var(--tb-space-5);
  background: rgba(15, 23, 42, .48);
  backdrop-filter: blur(4px);
  animation: tb-fade-in .16s ease both;
}

.tb-modal-dialog {
  width: min(600px, 100%);
  max-height: min(760px, calc(100vh - 36px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 22px;
  background: var(--tb-surface);
  box-shadow: 0 28px 80px rgba(15, 23, 42, .26);
  animation: tb-slide-up .2s ease both;
}

.tb-modal-header {
  display: flex;
  align-items: flex-start;
  gap: var(--tb-space-4);
  padding: 22px 22px 18px;
  border-bottom: 1px solid var(--tb-border);
}

.tb-modal-icon,
.tb-action-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  background: var(--tb-accent-soft);
  color: #854d0e;
  font-weight: 900;
}

.tb-modal-title { margin: 0; color: var(--tb-text-primary); font-size: 22px; font-weight: 800; }
.tb-modal-context { margin: 4px 0 0; color: var(--tb-text-secondary); font-size: 13px; }
.tb-modal-close { margin-left: auto; min-width: 40px; padding: 0; border: 0; background: transparent; color: var(--tb-text-secondary); font-size: 24px; }
.tb-modal-body { max-height: calc(100vh - 190px); overflow-y: auto; padding: 18px 22px 22px; }
.tb-action-list { display: grid; gap: 10px; }
.tb-action-item { display: flex; align-items: center; gap: 13px; padding: 13px 14px; border: 1px solid var(--tb-border); border-radius: var(--tb-radius-md); background: var(--tb-surface-muted); }
.tb-action-copy { min-width: 0; }
.tb-action-name { display: block; overflow-wrap: anywhere; color: var(--tb-text-primary); font-size: 15px; font-weight: 750; }
.tb-action-type { display: inline-flex; margin-top: 5px; padding: 3px 8px; border-radius: 999px; background: #e8eef5; color: #526276; font-size: 10px; font-weight: 800; letter-spacing: .055em; }
.tb-empty-state, .empty-state { border: 1px dashed var(--tb-border-strong) !important; border-radius: var(--tb-radius-md) !important; background: var(--tb-surface-muted) !important; color: var(--tb-text-secondary) !important; }

:is(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid rgba(234, 179, 8, .35) !important;
  outline-offset: 2px;
}

@keyframes tb-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes tb-slide-up { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: none; } }

@media (max-width: 840px) {
  body { overflow-x: hidden; }
  .tb-page-header, .scheduler-page-header, .trumfb-uid-heading, .trumfb-competitor-block-heading { align-items: flex-start; flex-direction: column; gap: var(--tb-space-3); }
  .tb-modal { padding: 12px; }
  .tb-modal-dialog { border-radius: 17px; }
  .tb-modal-header { padding: 18px 17px 15px; }
  .tb-modal-body { padding: 15px 17px 18px; }
  .table-wrap, .tb-table-wrap, .trumfb-competitor-block-table-wrap { max-width: 100%; }
}

@media (max-width: 560px) {
  .tb-action-item { align-items: flex-start; }
  .tb-modal-icon { width: 38px; height: 38px; }
  .tb-modal-title { font-size: 19px; }
}
/* Phase 1.71 scheduler polish and semantic status system */
:root {
  --tb-online: #15803d;
  --tb-online-soft: #ecfdf3;
  --tb-offline: #c62828;
  --tb-offline-soft: #fff1f2;
  --tb-waiting: #b45309;
  --tb-waiting-soft: #fff7ed;
}

.status-badge.is-online,
.tb-badge-online,
.tb-status-online,
[data-status-tone="online"],
.trumfb-competitor-block-status.completed {
  border: 1px solid #bbf7d0 !important;
  background: var(--tb-online-soft) !important;
  color: var(--tb-online) !important;
}

.status-badge.is-offline,
.tb-badge-offline,
.tb-status-offline,
[data-status-tone="offline"],
.trumfb-competitor-block-status.failed {
  border: 1px solid #fecdd3 !important;
  background: var(--tb-offline-soft) !important;
  color: var(--tb-offline) !important;
}

.status-badge.is-neutral,
.tb-badge-neutral,
.tb-status-neutral {
  border: 1px solid var(--tb-border) !important;
  background: var(--tb-surface-muted) !important;
  color: var(--tb-text-secondary) !important;
}
.status-badge.is-running,
.tb-badge-running,
.tb-status-running,
[data-status-tone="running"],
.trumfb-competitor-block-status.processing {
  border: 1px solid #bbf7d0 !important;
  background: var(--tb-online-soft) !important;
  color: var(--tb-online) !important;
}

.status-badge.is-waiting,
.status-badge.is-prepared,
.tb-badge-waiting,
.tb-badge-prepared,
.tb-status-waiting,
.tb-status-prepared,
[data-status-tone="waiting"],
[data-status-tone="prepared"],
.trumfb-competitor-block-status.pending {
  border: 1px solid #fed7aa !important;
  background: var(--tb-waiting-soft) !important;
  color: var(--tb-waiting) !important;
}

.status-badge.is-blocked,
.status-badge.is-error,
.tb-badge-error,
.tb-status-error,
[data-status-tone="error"] {
  border: 1px solid #fecaca !important;
  background: var(--tb-danger-soft) !important;
  color: var(--tb-danger) !important;
}

.tb-badge-success,
.tb-status-success,
[data-status-tone="success"] {
  border: 1px solid #bbf7d0 !important;
  background: var(--tb-online-soft) !important;
  color: var(--tb-online) !important;
}

.tb-modal {
  background: rgba(15, 23, 42, .40);
  backdrop-filter: blur(2px);
}

.tb-modal-dialog {
  width: min(540px, 100%);
  border-radius: 18px;
}

.tb-modal-header {
  align-items: center;
  gap: 13px;
  padding: 18px 18px 15px;
}

.tb-modal-icon,
.tb-action-icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
}

.tb-modal-title {
  font-family: "Be Vietnam Pro", Inter, Arial, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.02em;
}

.tb-modal-context {
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.5;
}

.tb-modal-close {
  width: 44px;
  min-width: 44px;
  height: 44px;
  border-radius: 10px !important;
  font-size: 22px;
  line-height: 1;
}

.tb-modal-body { padding: 15px 18px 18px; }
.tb-action-list { gap: 8px; }
.tb-action-item {
  min-height: 62px;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 11px;
}

.tb-action-name {
  font-size: 15px;
  font-weight: 650;
  line-height: 1.45;
}

.tb-action-type {
  margin-top: 4px;
  padding: 3px 8px;
  font-size: 12px;
  letter-spacing: .035em;
}

.tb-eyebrow,
.scheduler-eyebrow,
.section-kicker,
.sidebar .label,
.trumfb-manager-caption,
.tb-table th,
.scheduler-table th,
.trumfb-competitor-block-table-wrap th,
.trumbox-authenticated-page table th,
.tb-badge,
.status-badge,
.trumfb-competitor-block-status,
.sidebar .badge,
.scheduler-summary-card small,
.machine-detail > span,
.machine-focus-label {
  font-size: 12px !important;
}

.machine-detail > span,
.machine-focus-label { letter-spacing: .04em !important; }

@media (max-width: 900px) {
  html,
  body,
  .trumfb-account-scheduler-page,
  .scheduler-control-center,
  .scheduler-work-section,
  .table-wrap {
    max-width: 100%;
    box-sizing: border-box;
  }

  html,
  body,
  .trumfb-account-scheduler-page { overflow-x: hidden; }

  .table-wrap {
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .scheduler-table {
    display: block;
    width: 100%;
    min-width: 0 !important;
    border: 0;
  }

  .scheduler-table thead { display: none; }
  .scheduler-table tbody {
    display: grid;
    gap: 12px;
    width: 100%;
  }

  .scheduler-table tbody tr {
    display: block;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid var(--tb-border);
    border-radius: 14px;
    background: var(--tb-surface);
    box-shadow: var(--tb-shadow-sm);
  }

  .scheduler-table tbody tr:hover { background: var(--tb-surface); }

  .scheduler-table td {
    display: grid;
    grid-template-columns: minmax(104px, 36%) minmax(0, 1fr);
    gap: 12px;
    width: 100%;
    max-width: none !important;
    min-width: 0;
    box-sizing: border-box;
    overflow: visible !important;
    padding: 7px 0 !important;
    border: 0 !important;
    white-space: normal !important;
    text-align: left;
    text-overflow: clip !important;
    overflow-wrap: anywhere;
  }

  .scheduler-table td::before {
    content: attr(data-label);
    align-self: start;
    color: var(--tb-text-secondary);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
  }

  .scheduler-table td.row-number { display: none; }
  .scheduler-table .uid-cell,
  .scheduler-table .folder-cell,
  .scheduler-table .machine-column,
  .scheduler-table .wait-cell,
  .scheduler-table .remaining-cell {
    max-width: none;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .scheduler-table .status-badge { justify-self: start; }
  .scheduler-table .action-preview-button { width: 100%; min-height: 44px; }
}

@media (max-width: 680px) {
  .trumfb-account-scheduler-page { padding: 68px 12px 24px !important; }
  .scheduler-summary-grid { grid-template-columns: 1fr !important; gap: 10px; }
  .scheduler-summary-card { min-height: 92px; padding: 16px !important; }
  .machine-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .machine-card { min-width: 0; padding: 16px !important; }
  .machine-card-header { align-items: flex-start; }
  .machine-name { min-width: 0; overflow-wrap: anywhere; }
  .machine-focus-value {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .machine-details { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .machine-detail { min-width: 0; }
  .machine-detail strong { white-space: normal !important; overflow-wrap: anywhere; }

  .tb-modal { padding: 10px; }
  .tb-modal-dialog {
    width: calc(100vw - 20px);
    max-width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 15px;
  }
  .tb-modal-header { padding: 15px 14px 12px; }
  .tb-modal-body {
    max-height: calc(100dvh - 126px);
    overflow-x: hidden;
    padding: 12px 14px 15px;
  }
  .tb-action-item { width: 100%; box-sizing: border-box; }
}

@media (max-width: 360px) {
  .trumfb-account-scheduler-page { padding-inline: 9px !important; }
  .machine-details { grid-template-columns: minmax(0, 1fr) !important; }
  .scheduler-table td { grid-template-columns: minmax(88px, 34%) minmax(0, 1fr); gap: 8px; }
  .tb-modal { padding: 7px; }
  .tb-modal-dialog { width: calc(100vw - 14px); max-width: calc(100vw - 14px); }
}