:root {
  --lab-bg: #06101d;
  --lab-panel: #0a1829;
  --lab-panel-2: #0e2238;
  --lab-line: #24415f;
  --lab-blue: #125cff;
  --lab-gold: #d9a441;
  --lab-green: #7bbf13;
  --lab-text: #f5f7fb;
  --lab-muted: #9aa8ba;
  --lab-red: #ff6b6b;
}

body {
  margin: 0;
  background: var(--lab-bg);
  color: var(--lab-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.dfs-lab-shell { min-height: 100vh; }

.dfs-lab-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--lab-line);
  background: rgba(6, 16, 29, .96);
  backdrop-filter: blur(12px);
}

.dfs-lab-main {
  padding: 12px;
}

.dfs-lab-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
  gap: 18px;
  align-items: end;
  padding: 14px 16px;
  border: 1px solid var(--lab-line);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(14, 34, 56, .94), rgba(6, 16, 29, .94)),
    radial-gradient(circle at 12% 0%, rgba(78, 179, 255, .18), transparent 35%);
}

.dfs-lab-kicker,
.dfs-lab-card-kicker {
  color: var(--lab-blue);
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.dfs-lab-hero h1 {
  margin: 5px 0;
  font-size: clamp(30px, 3.2vw, 48px);
  line-height: .95;
  color: #f7fbff;
  text-shadow: 0 8px 24px rgba(0, 0, 0, .36);
}

.dfs-lab-hero p {
  max-width: 860px;
  margin: 0;
  color: var(--lab-muted);
  font-size: 15px;
  line-height: 1.45;
}

.dfs-lab-date-panel {
  display: grid;
  gap: 8px;
  align-self: stretch;
  min-width: 260px;
  padding: 12px;
  border: 1px solid rgba(78, 179, 255, .22);
  border-radius: 10px;
  background: rgba(6, 16, 29, .62);
}

.dfs-lab-date {
  display: grid;
  gap: 7px;
}

.dfs-lab-date span {
  color: #98ff18;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-lab-date input {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 1px solid #365a7c;
  border-radius: 8px;
  background: #081525;
  color: var(--lab-text);
  padding: 0 12px;
  font: 900 14px "IBM Plex Mono", monospace;
  color-scheme: dark;
}

.dfs-lab-date input::-webkit-calendar-picker-indicator {
  opacity: 1;
  filter: invert(88%) sepia(68%) saturate(643%) hue-rotate(177deg) brightness(104%) contrast(102%);
  cursor: pointer;
}

.dfs-lab-date-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.dfs-lab-date-actions button {
  min-height: 34px;
  border: 1px solid rgba(217, 164, 65, .62);
  border-radius: 7px;
  background: rgba(217, 164, 65, .1);
  color: #ffd782;
  cursor: pointer;
  font: 1000 11px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.dfs-lab-date-actions button:hover,
.dfs-lab-date-actions button:focus-visible {
  background: #d9a441;
  color: #06101d;
  outline: 0;
}

#dfsLabShareStatus {
  min-height: 16px;
  color: var(--lab-green);
  font: 800 10px "IBM Plex Mono", monospace;
  text-transform: uppercase;
  letter-spacing: .04em;
}

#dfsLabLoadStatus {
  min-height: 16px;
  color: var(--lab-muted);
  font: 800 10px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
}

.dfs-lab-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
  align-items: start;
}

.dfs-lab-ops {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.dfs-lab-ops article {
  min-width: 0;
  border: 1px solid rgba(78, 179, 255, .28);
  border-left: 3px solid var(--lab-blue);
  border-radius: 8px;
  background: rgba(10, 24, 41, .9);
  padding: 12px;
}

.dfs-lab-ops span {
  display: block;
  color: var(--lab-blue);
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-lab-ops b {
  display: block;
  margin-top: 4px;
  color: var(--lab-text);
  font-size: 17px;
}

.dfs-lab-ops small {
  display: block;
  margin-top: 4px;
  color: var(--lab-muted);
  line-height: 1.35;
}

.dfs-lab-ops a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-top: 10px;
  padding: 0 10px;
  border: 1px solid rgba(217, 164, 65, .65);
  border-radius: 6px;
  color: #ffd782;
  background: rgba(217, 164, 65, .08);
  font: 900 11px "IBM Plex Mono", monospace;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.dfs-lab-ops a:hover,
.dfs-lab-ops a:focus-visible {
  color: #06101d;
  background: #d9a441;
  outline: 0;
}

.dfs-lab-guide-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(78, 179, 255, .42);
  border-left: 4px solid var(--lab-blue);
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(78, 179, 255, .12), rgba(30, 230, 166, .05)),
    rgba(10, 24, 41, .94);
  box-shadow: 0 18px 34px rgba(0, 0, 0, .18);
}

.dfs-lab-guide-card.is-dismissed {
  display: none;
}

.dfs-lab-guide-card.needs-attention {
  border-color: rgba(78, 179, 255, .72);
  box-shadow:
    inset 4px 0 0 var(--lab-blue),
    0 18px 34px rgba(0, 0, 0, .2);
}

.dfs-lab-guide-card h2 {
  margin: 3px 0;
  font-size: 22px;
  line-height: 1.1;
}

.dfs-lab-guide-card p {
  max-width: 980px;
  margin: 0;
  color: #c7d8ea;
  line-height: 1.45;
}

.dfs-lab-guide-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.dfs-lab-guide-actions button,
.dfs-guide-controls button {
  min-height: 38px;
  border: 1px solid #365a7c;
  border-radius: 8px;
  background: #0d2038;
  color: #dcecff;
  padding: 0 14px;
  font: 1000 11px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
}

.dfs-lab-guide-actions button.primary,
.dfs-guide-controls button.primary {
  border-color: #d9a441;
  background: #d9a441;
  color: #06101d;
}

.dfs-lab-guide-actions button:hover,
.dfs-lab-guide-actions button:focus-visible,
.dfs-guide-controls button:hover,
.dfs-guide-controls button:focus-visible {
  outline: 0;
  filter: brightness(1.12);
}

.dfs-guide-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  place-items: end center;
  padding: 24px;
  background: rgba(2, 7, 15, .46);
  pointer-events: none;
}

.dfs-guide-overlay[hidden] {
  display: none;
}

.dfs-guide-modal {
  width: min(720px, calc(100vw - 32px));
  border: 1px solid rgba(78, 179, 255, .62);
  border-top: 4px solid var(--lab-blue);
  border-radius: 14px;
  background: #071525;
  color: var(--lab-text);
  padding: 18px;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .58);
  pointer-events: auto;
}

.dfs-guide-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.dfs-guide-close {
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(160, 188, 220, .5);
  border-radius: 8px;
  background: rgba(12, 27, 47, .92);
  color: #eef6ff;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-guide-progress {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid rgba(30, 230, 166, .4);
  border-radius: 999px;
  color: var(--lab-green);
  background: rgba(30, 230, 166, .08);
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-guide-modal h2 {
  margin: 12px 0 8px;
  font-size: 25px;
  line-height: 1.08;
}

.dfs-guide-modal p {
  margin: 0;
  color: #dbe7f5;
  line-height: 1.5;
}

.dfs-guide-tip {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(217, 164, 65, .45);
  border-radius: 9px;
  background: rgba(217, 164, 65, .08);
  color: #ffe1a0;
  font: 900 12px "IBM Plex Mono", monospace;
  line-height: 1.45;
}

.dfs-guide-controls {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}

.dfs-guide-focus {
  position: relative;
  z-index: 25;
  outline: 3px solid #4eb3ff;
  outline-offset: 4px;
  box-shadow:
    0 0 0 8px rgba(78, 179, 255, .14),
    0 0 34px rgba(78, 179, 255, .55);
}

.dfs-lab-card {
  grid-column: span 4;
  min-width: 0;
  border: 1px solid var(--lab-line);
  border-radius: 10px;
  background: var(--lab-panel);
  padding: 14px;
  box-shadow: 0 18px 30px rgba(0, 0, 0, .22);
}

.dfs-lab-card.wide { grid-column: span 8; }
.dfs-lab-card.full { grid-column: 1 / -1; }

.dfs-lab-card h2 {
  margin: 4px 0 10px;
  font-size: 20px;
}

.dfs-lab-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.dfs-lab-stat {
  border: 1px solid rgba(78, 179, 255, .22);
  background: rgba(78, 179, 255, .06);
  border-radius: 8px;
  padding: 10px;
}

.dfs-lab-stat span,
.dfs-lab-table th {
  color: var(--lab-muted);
  font-family: "IBM Plex Mono", monospace;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.dfs-lab-stat strong {
  display: block;
  margin-top: 3px;
  color: var(--lab-text);
  font-size: 20px;
}

.dfs-lab-table-wrap { overflow-x: auto; }

.dfs-lab-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
}

.dfs-lab-table th,
.dfs-lab-table td {
  padding: 8px;
  border-bottom: 1px solid rgba(36, 65, 95, .65);
  text-align: left;
  white-space: nowrap;
}

.dfs-lab-table td {
  color: #dbe7f5;
}

.dfs-lab-table b { color: var(--lab-green); }
.dfs-lab-table .gold { color: var(--lab-gold); font-weight: 1000; }

.dfs-rule-list {
  margin: 0;
  padding-left: 18px;
  color: var(--lab-muted);
  line-height: 1.55;
}

.dfs-rule-list li { margin: 5px 0; }

.dfs-loading,
.dfs-error {
  grid-column: 1 / -1;
  color: var(--lab-muted);
}

.dfs-loading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  border-color: rgba(78, 179, 255, .45);
  border-left: 5px solid var(--lab-blue);
  background:
    linear-gradient(90deg, rgba(78, 179, 255, .12), rgba(10, 24, 41, .92) 48%),
    #081a2e;
}

.dfs-loading.slow {
  border-color: rgba(217, 164, 65, .72);
  border-left-color: var(--lab-gold);
  background:
    linear-gradient(90deg, rgba(217, 164, 65, .12), rgba(10, 24, 41, .94) 52%),
    #081a2e;
}

.dfs-loading > div:first-child {
  min-width: 0;
}

.dfs-loading span {
  color: var(--lab-blue);
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-loading b {
  display: block;
  color: #eaf6ff;
  font-size: 17px;
}

.dfs-loading p {
  margin: 5px 0 0;
  color: #b8c9dc;
  line-height: 1.45;
}

.dfs-loading-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.dfs-loading-actions button,
.dfs-loading-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  border: 1px solid rgba(78, 179, 255, .46);
  border-radius: 7px;
  background: rgba(78, 179, 255, .08);
  color: #dcecff;
  cursor: pointer;
  padding: 0 10px;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
}

.dfs-loading-actions button:hover,
.dfs-loading-actions button:focus-visible,
.dfs-loading-actions a:hover,
.dfs-loading-actions a:focus-visible {
  background: var(--lab-blue);
  color: #06101d;
  outline: 0;
}

.dfs-error { border-color: rgba(255, 107, 107, .75); color: #ffd2d2; }

.dfs-missing-algorithm {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border: 1px solid rgba(255, 107, 107, .6);
  border-left: 5px solid var(--lab-red);
  border-radius: 10px;
  background:
    linear-gradient(90deg, rgba(255, 107, 107, .14), rgba(10, 24, 41, .92) 42%),
    #081a2e;
  padding: 14px 16px;
  box-shadow: 0 18px 32px rgba(0, 0, 0, .2);
}

.dfs-missing-algorithm.pending {
  border-color: rgba(217, 164, 65, .62);
  border-left-color: var(--lab-gold);
  background:
    linear-gradient(90deg, rgba(217, 164, 65, .14), rgba(10, 24, 41, .94) 42%),
    #081a2e;
}

.dfs-missing-algorithm.pending span {
  color: #ffe1a0;
}

.dfs-missing-algorithm.pending p {
  color: #f8dfaa;
}

.dfs-missing-algorithm span {
  color: #ffaaaa;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.dfs-missing-algorithm b {
  display: block;
  margin-top: 3px;
  color: #fff;
  font-size: 20px;
}

.dfs-missing-algorithm p {
  margin: 5px 0 0;
  color: #ffd8d8;
  line-height: 1.4;
}

.dfs-missing-algorithm small {
  display: block;
  max-width: 880px;
  margin-top: 8px;
  color: #d9e8f8;
  font-size: 13px;
  line-height: 1.42;
}

.dfs-missing-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.dfs-missing-checklist em {
  border: 1px solid rgba(255, 107, 107, .38);
  border-radius: 999px;
  background: rgba(255, 107, 107, .1);
  color: #ffd1d1;
  padding: 6px 9px;
  font: 1000 10px "IBM Plex Mono", monospace;
  font-style: normal;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.dfs-missing-recommendation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 12px;
  align-items: center;
  max-width: 980px;
  margin-top: 12px;
  padding: 11px 12px;
  border: 1px solid rgba(30, 230, 166, .42);
  border-radius: 10px;
  background:
    linear-gradient(90deg, rgba(30, 230, 166, .13), rgba(10, 24, 41, .88)),
    #081a2e;
}

.dfs-missing-recommendation strong {
  color: #73ffd4;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dfs-missing-recommendation span {
  grid-column: 1;
  color: #d8fff4;
  font-size: 13px;
  line-height: 1.4;
}

.dfs-missing-recommendation a {
  grid-row: 1 / span 2;
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(30, 230, 166, .56);
  border-radius: 8px;
  background: rgba(30, 230, 166, .12);
  color: #ecfff9;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.dfs-missing-recommendation a:hover,
.dfs-missing-recommendation a:focus-visible {
  background: var(--lab-green);
  color: #04121c;
  outline: 0;
}

.dfs-available-algorithms {
  display: grid;
  gap: 8px;
  max-width: 980px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid rgba(78, 179, 255, .32);
  border-radius: 9px;
  background: rgba(78, 179, 255, .07);
}

.dfs-available-algorithms b {
  margin: 0;
  color: #9fd7ff;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.dfs-available-algorithms div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.dfs-available-algorithms a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(78, 179, 255, .42);
  border-radius: 999px;
  background: rgba(6, 16, 29, .65);
  color: #dff2ff;
  font: 1000 10px "IBM Plex Mono", monospace;
  text-decoration: none;
}

.dfs-available-algorithms a strong {
  color: inherit;
  font: inherit;
}

.dfs-available-algorithms a span,
.dfs-available-algorithms a small {
  color: inherit;
  font: inherit;
  opacity: .78;
}

.dfs-available-algorithms a:hover,
.dfs-available-algorithms a:focus-visible {
  background: var(--lab-blue);
  color: #06101d;
  outline: 0;
}

.dfs-available-algorithms.empty {
  border-color: rgba(217, 164, 65, .36);
  background: rgba(217, 164, 65, .08);
}

.dfs-available-algorithms.empty span {
  color: #ffe1a0;
}

.dfs-missing-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.dfs-missing-actions button,
.dfs-missing-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  border: 1px solid rgba(217, 164, 65, .6);
  border-radius: 7px;
  background: rgba(217, 164, 65, .1);
  color: #ffe1a0;
  cursor: pointer;
  padding: 0 11px;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
}

.dfs-missing-actions button:hover,
.dfs-missing-actions button:focus-visible,
.dfs-missing-actions a:hover,
.dfs-missing-actions a:focus-visible {
  background: #d9a441;
  color: #06101d;
  outline: 0;
}

.dfs-fc-toolbar,
.dfs-fc-controls,
.dfs-fc-pool-strip,
.dfs-fc-summary,
.dfs-active-tool,
.dfs-readiness,
.dfs-board-grid {
  grid-column: 1 / -1;
}

.dfs-fc-toolbar {
  display: flex;
  align-items: stretch;
  gap: 0;
  border: 1px solid #214b74;
  background:
    linear-gradient(90deg, #071f3b 0%, #0d315c 48%, #09233f 100%),
    #071f3b;
  border-radius: 10px 10px 0 0;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
}

.dfs-fc-brand {
  display: flex;
  align-items: center;
  padding: 0 16px;
  background: #071f3b;
  color: #fff;
  font-weight: 1000;
  letter-spacing: .04em;
}

.dfs-fc-brand span { color: #77ff2c; margin-left: 5px; }

.dfs-fc-readiness-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  align-self: center;
  margin: 8px 10px 8px 0;
  padding: 7px 10px;
  border: 1px solid rgba(255, 107, 107, .55);
  border-radius: 999px;
  background: rgba(255, 107, 107, .1);
  color: #ffd1d1;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.dfs-fc-readiness-pill.ready {
  border-color: rgba(30, 230, 166, .5);
  background: rgba(30, 230, 166, .11);
  color: var(--lab-green);
}

.dfs-fc-readiness-pill b {
  color: #fff;
  font-size: 12px;
}

.dfs-fc-tabs {
  display: flex;
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(78, 179, 255, .45) rgba(6, 16, 29, .55);
}

.dfs-fc-tabs button,
.dfs-fc-actions button,
.dfs-pool-strip button,
.dfs-position-tabs button,
.dfs-fc-pool-strip button {
  border: 0;
  border-left: 1px solid rgba(255,255,255,.16);
  background: transparent;
  color: #dcecff;
  font: 900 12px "IBM Plex Mono", monospace;
  padding: 13px 14px;
  cursor: pointer;
  white-space: nowrap;
}

.dfs-fc-tabs button {
  min-width: 98px;
}

.dfs-fc-tabs button:hover,
.dfs-fc-tabs button:focus-visible,
.dfs-fc-actions button:hover,
.dfs-fc-actions button:focus-visible,
.dfs-position-tabs button:hover,
.dfs-position-tabs button:focus-visible,
.dfs-fc-pool-strip button:hover,
.dfs-fc-pool-strip button:focus-visible {
  background: rgba(78, 179, 255, .18);
  color: #fff;
  outline: 0;
}

.dfs-fc-tabs button.active,
.dfs-fc-pool-strip button.active,
.dfs-position-tabs button.active {
  background: #2c75bd;
  color: #fff;
}

.dfs-fc-controls {
  display: grid;
  grid-template-columns: repeat(9, minmax(92px, 1fr)) minmax(250px, auto);
  gap: 7px;
  padding: 8px;
  border: 1px solid #214b74;
  border-top: 0;
  background: #081a2e;
}

.dfs-fc-controls label,
.dfs-fc-pool-strip label {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.dfs-fc-controls span,
.dfs-fc-pool-strip span {
  color: #98ff18;
  font: 1000 9px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-fc-controls input,
.dfs-fc-controls select,
.dfs-fc-pool-strip input {
  min-height: 32px;
  border: 1px solid #365a7c;
  border-radius: 7px;
  background: #071525;
  color: #f5f7fb;
  padding: 0 9px;
  font: 900 12px "IBM Plex Mono", monospace;
}

.dfs-fc-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.dfs-fc-actions button,
.wide-button {
  border: 1px solid #365a7c;
  border-radius: 7px;
  background: #0d2038;
  color: #dcecff;
  min-height: 34px;
  padding: 9px 11px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.dfs-fc-actions button.primary,
.wide-button.primary {
  border-color: #d9a441;
  background: #d9a441;
  color: #06101d;
}

.dfs-fc-actions button.blocked-action {
  border-color: rgba(255, 107, 107, .36);
  background: rgba(255, 107, 107, .08);
  color: #ffaaaa;
}

.dfs-fc-actions button.blocked-action:hover,
.dfs-fc-actions button.blocked-action:focus-visible {
  background: rgba(255, 107, 107, .16);
  color: #ffd1d1;
}

.dfs-fc-pool-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px;
  border: 1px solid #214b74;
  border-top: 0;
  background: #0a1829;
}

.dfs-fc-pool-strip button {
  border: 1px solid #214b74;
  border-radius: 8px;
  background: #071525;
}

.dfs-fc-pool-strip .search {
  min-width: 260px;
  flex: 1;
}

.dfs-fc-pool-strip .pool-filter-status {
  align-self: center;
  min-width: 150px;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #9ec8f3;
  font: 900 11px "IBM Plex Mono", monospace;
  letter-spacing: .02em;
  white-space: nowrap;
  opacity: .92;
}

.dfs-position-tabs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.dfs-role-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  min-width: 230px;
}

.dfs-fc-pool-strip .dfs-role-tabs button {
  display: inline-flex;
  justify-content: space-between;
  gap: 10px;
  border-color: rgba(80, 160, 220, .5);
  background: #071525;
  color: #9ec8f3;
  letter-spacing: .08em;
}

.dfs-fc-pool-strip .dfs-role-tabs button.active {
  border-color: rgba(34, 197, 94, .85);
  background: linear-gradient(135deg, rgba(34, 197, 94, .22), rgba(44, 117, 189, .28));
  color: #fff;
}

.dfs-role-tabs b {
  min-width: 26px;
  padding: 1px 7px;
  border-radius: 999px;
  background: rgba(0,0,0,.28);
  text-align: center;
}

.dfs-fc-pool-strip .pool-reset {
  margin-left: auto;
  border-color: rgba(217, 164, 65, .55);
  background: rgba(217, 164, 65, .08);
  color: #ffd782;
  padding-inline: 11px;
}

.dfs-fc-pool-strip .pool-reset:hover,
.dfs-fc-pool-strip .pool-reset:focus-visible {
  background: rgba(217, 164, 65, .18);
  color: #fff3cf;
}

.dfs-fc-body {
  grid-column: 1 / -1;
  display: grid;
  gap: 14px;
}

.dfs-workflow-guide {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.dfs-workflow-guide article {
  min-width: 0;
  border: 1px solid rgba(78, 179, 255, .24);
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(78, 179, 255, .08), rgba(6, 16, 29, .18)),
    #081a2e;
  padding: 12px;
}

.dfs-workflow-guide article.ready {
  border-color: rgba(30, 230, 166, .42);
  box-shadow: inset 4px 0 0 rgba(30, 230, 166, .9);
}

.dfs-workflow-guide article.blocked {
  border-color: rgba(255, 107, 107, .42);
  box-shadow: inset 4px 0 0 rgba(255, 107, 107, .85);
}

.dfs-workflow-guide span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(78, 179, 255, .12);
  color: var(--lab-blue);
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-workflow-guide b {
  display: block;
  margin-top: 8px;
  color: #fff;
  font-size: 18px;
}

.dfs-workflow-guide p {
  min-height: 54px;
  margin: 6px 0 10px;
  color: #c7d8ea;
  line-height: 1.4;
}

.dfs-workflow-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

.dfs-workflow-actions button {
  min-height: 32px;
  border: 1px solid rgba(217, 164, 65, .55);
  border-radius: 7px;
  background: rgba(217, 164, 65, .1);
  color: #ffe1a0;
  cursor: pointer;
  padding: 0 10px;
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.dfs-workflow-actions button:hover,
.dfs-workflow-actions button:focus-visible {
  outline: 0;
  background: #d9a441;
  color: #06101d;
}

.dfs-fc-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.dfs-fc-summary article,
.dfs-readiness article,
.dfs-contract-grid article {
  border: 1px solid rgba(78, 179, 255, .22);
  border-radius: 8px;
  background: rgba(78, 179, 255, .06);
  padding: 10px;
}

.dfs-fc-summary span,
.dfs-contract-grid span {
  display: block;
  color: var(--lab-muted);
  font: 900 10px "IBM Plex Mono", monospace;
  text-transform: uppercase;
}

.dfs-fc-summary b,
.dfs-contract-grid b {
  display: block;
  color: #fff;
  font-size: 20px;
  margin: 2px 0;
}

.dfs-fc-summary small { color: var(--lab-muted); }

.dfs-readiness {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.dfs-readiness article.ok { border-color: rgba(30, 230, 166, .45); }
.dfs-readiness article.blocked { border-color: rgba(255, 107, 107, .55); }
.dfs-readiness b { color: var(--lab-green); font-size: 10px; }
.dfs-readiness article.blocked b { color: var(--lab-red); }
.dfs-readiness span { display: block; color: #fff; font-weight: 1000; margin: 4px 0; }
.dfs-readiness small { color: var(--lab-muted); line-height: 1.35; }
.dfs-readiness article {
  position: relative;
  min-height: 94px;
}
.dfs-readiness article::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--lab-green);
  border-radius: 8px 0 0 8px;
}
.dfs-readiness article.blocked::before {
  background: var(--lab-red);
}

.dfs-board-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}

.dfs-panel {
  grid-column: span 4;
  min-width: 0;
  border: 1px solid var(--lab-line);
  border-radius: 10px;
  background: var(--lab-panel);
  overflow: hidden;
}

.dfs-panel.large { grid-column: span 8; }
.dfs-panel.full { grid-column: 1 / -1; }

.dfs-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--lab-line);
  background: #071525;
}

.dfs-panel > header span {
  color: var(--lab-blue);
  font: 1000 11px "IBM Plex Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-panel > header b { color: #fff; }

.dfs-stack-list,
.dfs-mini-list,
.dfs-result-cards {
  display: grid;
  gap: 8px;
  padding: 10px;
}

.dfs-stack-row,
.dfs-mini-list div,
.dfs-result-cards article,
.dfs-case {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px 12px;
  align-items: center;
  border: 1px solid rgba(217, 164, 65, .45);
  border-radius: 8px;
  background: #0c1724;
  color: #dcecff;
  padding: 9px 10px;
  text-align: left;
}

.dfs-empty-state {
  display: grid;
  gap: 4px;
  border: 1px dashed rgba(78, 179, 255, .35);
  border-radius: 8px;
  background: rgba(78, 179, 255, .055);
  padding: 14px;
}

.dfs-empty-state b {
  color: #fff;
  font-size: 14px;
}

.dfs-empty-state span {
  color: var(--lab-muted);
  white-space: normal;
}

.dfs-active-tool {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, auto);
  gap: 10px;
  align-items: stretch;
  border: 1px solid #214b74;
  border-top: 0;
  background: linear-gradient(90deg, rgba(78, 179, 255, .12), rgba(8, 24, 42, .95));
  padding: 10px;
}

.dfs-active-tool > div {
  border: 1px solid rgba(78, 179, 255, .28);
  border-radius: 9px;
  background: rgba(5, 16, 30, .66);
  padding: 10px 12px;
}

.dfs-active-tool span {
  color: var(--lab-blue);
  font: 1000 10px "IBM Plex Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-active-tool b {
  display: block;
  margin-top: 3px;
  color: #fff;
  font-size: 18px;
}

.dfs-active-tool small {
  display: block;
  margin-top: 4px;
  color: #c8d7e8;
  line-height: 1.4;
}

.dfs-active-tool-status.ready {
  border-color: rgba(30, 230, 166, .5);
  background: rgba(30, 230, 166, .08);
}

.dfs-active-tool-status.blocked {
  border-color: rgba(255, 107, 107, .42);
  background: rgba(255, 107, 107, .08);
}

.dfs-active-tool-status.blocked span { color: #ffb3b3; }

.dfs-active-tool-status b {
  color: #ffe2a4;
  font: 1000 13px "IBM Plex Mono", monospace;
  line-height: 1.45;
}

.dfs-stack-row span,
.dfs-mini-list span,
.dfs-result-cards span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dfs-stack-row b,
.dfs-mini-list strong,
.dfs-result-cards strong { color: var(--lab-gold); }
.dfs-stack-row small,
.dfs-mini-list small,
.dfs-result-cards small { grid-column: 2 / -1; color: var(--lab-muted); }

.dfs-table-wrap {
  overflow: auto;
  max-height: 70vh;
}

.dfs-player-table,
.dfs-lineup-card table {
  width: 100%;
  border-collapse: collapse;
  font: 900 11px "IBM Plex Mono", monospace;
}

.dfs-player-table th,
.dfs-player-table td,
.dfs-lineup-card th,
.dfs-lineup-card td {
  border-bottom: 1px solid rgba(36, 65, 95, .65);
  padding: 9px 10px;
  text-align: left;
  white-space: nowrap;
}

.dfs-player-table th,
.dfs-lineup-card th {
  position: sticky;
  top: 0;
  background: #071525;
  color: var(--lab-muted);
  z-index: 1;
}

.dfs-player-table b { display: block; color: #fff; }
.dfs-player-table small { display: block; color: var(--lab-muted); margin-top: 2px; }
.dfs-player-table strong { color: var(--lab-green); }
.dfs-player-table .gap { color: #ffcc80; }
.dfs-player-table tbody tr:nth-child(odd) { background: rgba(255, 255, 255, .018); }
.dfs-player-table tbody tr:hover {
  background: rgba(78, 179, 255, .09);
  outline: 1px solid rgba(78, 179, 255, .18);
  outline-offset: -1px;
}
.dfs-player-table tbody tr.is-locked {
  background: rgba(30, 230, 166, .075);
}
.dfs-player-table tbody tr.is-excluded {
  opacity: .56;
}
.dfs-player-table tbody tr.is-not-eligible {
  background: rgba(255, 75, 75, .09);
  outline: 1px solid rgba(255, 75, 75, .45);
  outline-offset: -1px;
}
.dfs-player-table tbody tr.is-not-eligible b {
  color: #ffdfdf;
}
.dfs-ineligible-x {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin-right: 7px;
  border-radius: 50%;
  background: #ff3030;
  color: #fff;
  font: 1000 12px "IBM Plex Mono", monospace;
  box-shadow: 0 0 12px rgba(255, 48, 48, .65);
}
.dfs-player-table .dfs-replacement {
  color: #77f7c5;
  white-space: normal;
  max-width: 420px;
}
.dfs-player-table input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--lab-green);
}

.lock,
.mini-input {
  border: 1px solid #365a7c;
  border-radius: 6px;
  background: #071525;
  color: #dcecff;
  padding: 6px 8px;
  font: 900 10px "IBM Plex Mono", monospace;
}

.lock.active {
  background: #1ee6a6;
  color: #06101d;
}

.mini-input { width: 62px; }

.dfs-lineup-warning,
.dfs-muted {
  margin: 10px;
  border: 1px solid rgba(255, 196, 87, .45);
  border-radius: 8px;
  background: rgba(255, 196, 87, .08);
  color: #ffe2a4;
  padding: 10px;
  line-height: 1.4;
}

.dfs-lineup-blocker {
  margin: 10px;
  border: 1px solid rgba(255, 102, 102, .55);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 102, 102, .12), rgba(8, 25, 43, .98));
  color: #f3f7ff;
  padding: 16px;
  line-height: 1.45;
}

.dfs-lineup-ready {
  display: grid;
  gap: 10px;
  margin: 10px;
  border: 1px solid rgba(30, 230, 166, .55);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(30, 230, 166, .13), rgba(8, 25, 43, .98));
  color: #f3f7ff;
  padding: 16px;
  line-height: 1.45;
}

.dfs-lineup-ready > span {
  color: #1ee6a6;
  font: 1000 11px "IBM Plex Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dfs-lineup-ready h3 {
  margin: 0;
  font: 900 20px "Inter", sans-serif;
}

.dfs-lineup-ready p {
  max-width: 980px;
  margin: 0;
  color: #d9e8f7;
}

.dfs-lineup-blocker > span {
  display: inline-block;
  margin-bottom: 8px;
  color: #ffb3b3;
  font: 900 11px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-lineup-blocker h3 {
  margin: 0 0 8px;
  font: 900 20px "Inter", sans-serif;
}

.dfs-lineup-blocker p {
  max-width: 980px;
  margin: 0 0 12px;
  color: #c9d7ea;
}

.dfs-lineup-blocker ul {
  margin: 12px 0 0 18px;
  padding: 0;
  color: #ffe2a4;
}

.dfs-lineup-blocker li + li { margin-top: 5px; }

.dfs-lineup-blocker-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}

.dfs-lineup-blocker-counts b {
  border: 1px solid rgba(78, 179, 255, .35);
  border-radius: 999px;
  background: rgba(6, 24, 43, .85);
  color: #dcecff;
  padding: 7px 10px;
  font: 900 12px "IBM Plex Mono", monospace;
}

.dfs-lineup-blocker-next {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  border: 1px solid rgba(78, 179, 255, .3);
  border-radius: 10px;
  padding: 12px;
  background: rgba(6, 16, 29, .76);
}

.dfs-lineup-blocker-next b {
  color: #4eb3ff;
  font: 1000 11px "IBM Plex Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-lineup-blocker-next span {
  color: #d9e8f7;
  font-size: 13px;
  line-height: 1.4;
}

.dfs-lineup-blocker-next div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dfs-lineup-blocker-next a,
.dfs-lineup-blocker-next button {
  border: 1px solid rgba(217, 164, 65, .58);
  border-radius: 7px;
  background: rgba(217, 164, 65, .12);
  color: #ffd782;
  padding: 8px 10px;
  cursor: pointer;
  text-decoration: none;
  font: 1000 11px "IBM Plex Mono", monospace;
  text-transform: uppercase;
}

.dfs-lineup-blocker-available {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  border: 1px solid rgba(30, 230, 166, .32);
  border-radius: 10px;
  padding: 12px;
  background: linear-gradient(135deg, rgba(30, 230, 166, .1), rgba(6, 16, 29, .82));
}

.dfs-lineup-blocker-available b {
  color: #1ee6a6;
  font: 1000 11px "IBM Plex Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dfs-lineup-blocker-available span {
  color: #d9e8f7;
  font-size: 13px;
  line-height: 1.4;
}

.dfs-lineup-blocker-available div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dfs-lineup-blocker-available button {
  border: 1px solid rgba(78, 179, 255, .46);
  border-radius: 7px;
  background: rgba(78, 179, 255, .14);
  color: #d9ecff;
  padding: 8px 10px;
  cursor: pointer;
  font: 1000 11px "IBM Plex Mono", monospace;
  text-transform: uppercase;
}

.dfs-lineup-blocker-available button:hover,
.dfs-lineup-blocker-available button:focus-visible {
  border-color: rgba(30, 230, 166, .72);
  background: rgba(30, 230, 166, .18);
  outline: 0;
}

.dfs-muted.compact {
  margin: 12px 0 0;
}

.dfs-lineup-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 12px;
  padding: 10px;
}

.dfs-lineup-card {
  border: 1px solid #26527a;
  border-radius: 9px;
  background: #0a1d32;
  overflow: hidden;
}

.dfs-lineup-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  background: #0d5b8d;
}

.dfs-lineup-card header strong.ok { color: #4dff89; }
.dfs-lineup-card header strong.bad { color: #ff6b6b; }

.dfs-lineup-meta {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: 8px 10px;
}

.dfs-lineup-meta span {
  border: 1px solid rgba(78, 179, 255, .25);
  border-radius: 999px;
  padding: 4px 7px;
  color: #dcecff;
  font: 900 10px "IBM Plex Mono", monospace;
}

.dfs-lineup-warning.ready {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-color: rgba(30, 230, 166, .35);
  background: rgba(10, 40, 30, .45);
  color: #d8fff0;
}

.dfs-lineup-warning .inline-export {
  flex: 0 0 auto;
  margin-left: auto;
}

.dfs-lineup-eligibility {
  margin: 0 10px 10px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--lab-line);
  background: rgba(10, 24, 41, .92);
  display: grid;
  gap: 4px;
}

.dfs-lineup-eligibility.ok {
  border-color: rgba(30, 230, 166, .35);
  background: rgba(10, 40, 30, .55);
}

.dfs-lineup-eligibility.bad {
  border-color: rgba(255, 107, 107, .45);
  background: rgba(48, 14, 18, .55);
}

.dfs-lineup-eligibility b {
  font: 900 11px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-lineup-eligibility.ok b { color: var(--lab-green); }
.dfs-lineup-eligibility.bad b { color: var(--lab-red); }

.dfs-lineup-eligibility span {
  color: var(--lab-muted);
  font-size: 13px;
  line-height: 1.45;
}

.dfs-hr-panel {
  margin: 0 10px 10px;
  padding: 12px;
  border: 1px solid rgba(217, 164, 65, .35);
  border-radius: 10px;
  background: rgba(32, 22, 8, .55);
}

.dfs-hr-panel header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.dfs-hr-panel header span {
  color: var(--lab-muted);
  font: 700 10px "IBM Plex Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfs-hr-panel header b {
  color: var(--lab-gold);
  font-size: 14px;
}

.dfs-hr-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
}

.dfs-hr-card {
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid rgba(217, 164, 65, .25);
  background: rgba(6, 16, 29, .75);
  display: grid;
  gap: 2px;
}

.dfs-hr-card b {
  font-size: 13px;
}

.dfs-hr-card span,
.dfs-hr-card small {
  color: var(--lab-muted);
  font-size: 11px;
}

.dfs-hr-card strong {
  color: var(--lab-gold);
  font: 900 12px "IBM Plex Mono", monospace;
}

.dfs-hr-badge,
.dfs-lineup-hr-tag {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  background: rgba(217, 164, 65, .18);
  border: 1px solid rgba(217, 164, 65, .45);
  color: var(--lab-gold);
  font: 900 10px "IBM Plex Mono", monospace;
  letter-spacing: .04em;
  vertical-align: middle;
}

.dfs-lineup-hr-tag {
  margin-left: 0;
}

.dfs-elig-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  border-radius: 999px;
  font: 900 11px "IBM Plex Mono", monospace;
}

.dfs-elig-badge.ok {
  color: #041f14;
  background: var(--lab-green);
}

.dfs-elig-badge.bad {
  color: #fff;
  background: var(--lab-red);
}

.dfs-elig-badge.missing {
  color: var(--lab-muted);
  border: 1px dashed rgba(154, 168, 186, .45);
  background: transparent;
}

.dfs-lineup-player-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.dfs-lineup-player-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.dfs-lineup-team-abbr {
  flex: 0 0 2.25rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.05em;
  text-align: center;
  color: #dbeafe;
}

.dfs-lineup-headshot {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 36px;
  background: #0d2138;
  border: 1px solid rgba(78, 179, 255, .28);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .35);
}

.dfs-lineup-headshot.is-broken {
  opacity: .35;
}

.dfs-lineup-headshot-fallback {
  display: inline-grid;
  place-items: center;
  color: #9fd6ff;
  font: 800 11px "IBM Plex Mono", monospace;
  text-transform: uppercase;
}

.dfs-lineup-headshot-brand {
  object-fit: cover;
  border: 2px solid rgba(224, 64, 251, 0.45);
  box-shadow: 0 0 10px rgba(192, 38, 211, 0.28);
  background: transparent;
}

.dfs-lineup-player-copy {
  min-width: 0;
}

.dfs-lineup-player-copy b {
  display: block;
  font-size: 13px;
  color: #fff;
}

.dfs-lineup-player-copy small {
  display: block;
  margin-top: 2px;
  color: var(--lab-muted);
  font: 500 10px Inter, sans-serif;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 220px;
}

.dfs-lineup-proj {
  color: #8fd0ff;
}

.dfs-lineup-open {
  color: var(--lab-muted);
  font-style: italic;
}

.dfs-lineup-player b {
  font-size: 13px;
}

.dfs-lineup-actual {
  color: var(--lab-gold);
  font-family: "IBM Plex Mono", monospace;
}

.dfs-metrics-toggle {
  border: 1px solid rgba(78, 179, 255, .35);
  border-radius: 999px;
  padding: 2px 8px;
  background: rgba(13, 91, 141, .35);
  color: #dcecff;
  font: 900 9px "IBM Plex Mono", monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
}

.dfs-metrics-toggle.is-open,
.dfs-metrics-toggle:hover {
  border-color: rgba(78, 179, 255, .65);
  background: rgba(13, 91, 141, .75);
}

.dfs-metrics-row td {
  padding: 0 !important;
  border-top: none !important;
}

.dfs-metrics-panel {
  margin: 0 8px 8px;
  border: 1px solid rgba(78, 179, 255, .22);
  border-radius: 8px;
  background: rgba(6, 16, 29, .92);
  overflow: hidden;
}

.dfs-metrics-panel header {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  border-bottom: 1px solid rgba(78, 179, 255, .18);
  background: rgba(13, 91, 141, .28);
}

.dfs-metrics-panel header b {
  color: #f7fbff;
}

.dfs-metrics-panel header span {
  color: var(--lab-muted);
  font: 900 10px "IBM Plex Mono", monospace;
}

.dfs-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px;
  padding: 10px;
}

.dfs-metrics-grid article {
  border: 1px solid rgba(36, 65, 95, .65);
  border-radius: 6px;
  padding: 7px 8px;
  background: rgba(10, 24, 41, .75);
  display: grid;
  gap: 3px;
}

.dfs-metrics-grid article span {
  color: var(--lab-muted);
  font: 900 9px "IBM Plex Mono", monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.dfs-metrics-grid article b {
  color: #f5f7fb;
  font-size: 12px;
  line-height: 1.3;
  word-break: break-word;
}

.dfs-case {
  margin: 10px;
  display: grid;
  grid-template-columns: 1fr;
}

.dfs-result-cards {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.dfs-result-cards article {
  grid-template-columns: 1fr auto;
}

.dfs-contract-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 10px;
}

.dfs-study-list {
  margin: 0;
  padding: 14px 14px 14px 34px;
  color: #dcecff;
  line-height: 1.6;
}

@media (max-width: 980px) {
  .dfs-lab-header,
  .dfs-lab-hero { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; }
  .dfs-lab-guide-card { flex-direction: column; align-items: stretch; }
  .dfs-lab-guide-actions { justify-content: flex-start; }
  .dfs-lab-card,
  .dfs-lab-card.wide { grid-column: 1 / -1; }
  .dfs-lab-stat-grid { grid-template-columns: 1fr 1fr; }
  .dfs-fc-controls,
  .dfs-fc-summary,
  .dfs-workflow-guide,
  .dfs-lab-ops,
  .dfs-readiness,
  .dfs-contract-grid { grid-template-columns: 1fr 1fr; }
  .dfs-panel,
  .dfs-panel.large { grid-column: 1 / -1; }
  .dfs-fc-toolbar { flex-wrap: wrap; }
  .dfs-fc-brand,
  .dfs-fc-readiness-pill { min-height: 42px; }
  .dfs-fc-tabs { flex-basis: 100%; order: 3; }
}

@media (max-width: 620px) {
  .dfs-lab-main { padding: 10px; }
  .dfs-guide-overlay { padding: 12px; place-items: end center; }
  .dfs-guide-modal { width: calc(100vw - 24px); padding: 14px; }
  .dfs-guide-controls { justify-content: stretch; flex-wrap: wrap; }
  .dfs-guide-controls button { flex: 1; }
  .dfs-lab-stat-grid { grid-template-columns: 1fr; }
  .dfs-fc-controls,
  .dfs-fc-summary,
  .dfs-workflow-guide,
  .dfs-lab-ops,
  .dfs-readiness,
  .dfs-contract-grid,
  .dfs-lineup-grid { grid-template-columns: 1fr; }
}

.dfs-sort-head {
  background: none;
  border: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
  padding: 0;
}
.dfs-sort-head.active { color: var(--lab-green); }
.dfs-metric-verified { color: var(--lab-green); font-weight: 600; }
