/*
 * FANSU Enterprise Workspace
 * A task-first visual system for an Ego data operations product.
 * Information architecture borrows from professional dataset browsers;
 * the color, typography and interaction language remain FANSU-specific.
 */

:root {
  --fs-navy-950: #071922;
  --fs-navy-900: #0d252f;
  --fs-navy-800: #16343e;
  --fs-teal-700: #127a6b;
  --fs-teal-600: #199985;
  --fs-teal-400: #58c9b5;
  --fs-mint-100: #dff7ef;
  --fs-mint-50: #f0faf7;
  --fs-blue-100: #e8f1f5;
  --fs-canvas: #f2f5f5;
  --fs-panel: #ffffff;
  --fs-panel-soft: #f8fafa;
  --fs-line: #d5dfe1;
  --fs-line-strong: #aebfc3;
  --fs-text: #13282f;
  --fs-text-soft: #5f7279;
  --fs-text-faint: #839399;
  --fs-warning: #d17d2f;
  --fs-danger: #c85743;
  --fs-focus: #f1b65a;
  --fs-shadow-sm: 0 1px 2px rgba(7, 25, 34, .05), 0 5px 16px rgba(7, 25, 34, .04);
  --fs-shadow-drawer: -18px 0 46px rgba(7, 25, 34, .18);
  --fs-radius-sm: 6px;
  --fs-radius-md: 10px;
  --fs-radius-lg: 16px;
  --fs-rail-width: 252px;
  --fs-inspector-width: min(460px, 40vw);
}
.workspace-nav-group{display:block;margin:15px 13px 5px;color:#789098;font:800 7px ui-monospace,monospace;letter-spacing:.12em}

/* Workspace frame --------------------------------------------------------- */

.workspace-shell {
  min-height: calc(100vh - 58px);
  display: grid;
  grid-template-columns: var(--fs-rail-width) minmax(0, 1fr);
  background: var(--fs-canvas);
  color: var(--fs-text);
}

.enterprise-main {
  min-width: 0;
  padding: 24px 28px 56px;
}

.enterprise-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.enterprise-header h1 {
  margin: 2px 0 0;
  font: 800 clamp(25px, 3vw, 38px)/1.1 Inter, "PingFang SC", sans-serif;
  letter-spacing: -.035em;
}

.enterprise-header p {
  max-width: 720px;
  margin: 8px 0 0;
  color: var(--fs-text-soft);
  font-size: 12px;
}

.enterprise-eyebrow {
  margin: 0;
  color: var(--fs-teal-700);
  font: 800 9px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}

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

.enterprise-button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 13px;
  border: 1px solid var(--fs-line-strong);
  border-radius: var(--fs-radius-sm);
  background: var(--fs-panel);
  color: var(--fs-text);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.enterprise-button:hover { border-color: var(--fs-teal-600); background: var(--fs-mint-50); }
.enterprise-button.primary { border-color: var(--fs-navy-900); background: var(--fs-navy-900); color: #fff; }
.enterprise-button.primary:hover { border-color: var(--fs-teal-700); background: var(--fs-teal-700); }
.enterprise-button.quiet { border-color: transparent; background: transparent; color: var(--fs-text-soft); }
.enterprise-button.danger { border-color: #eccbc4; background: #fff6f4; color: var(--fs-danger); }

/* Encord-like enterprise project rail, expressed in the FANSU system ------ */

.project-rail {
  position: sticky;
  top: 58px;
  height: calc(100vh - 58px);
  min-width: 0;
  overflow: auto;
  padding: 16px 12px 22px;
  background: var(--fs-navy-950);
  color: #dbe7ea;
  border-right: 1px solid #28434c;
  scrollbar-width: thin;
  scrollbar-color: #34515b transparent;
}

.project-rail-head {
  padding: 7px 9px 16px;
  border-bottom: 1px solid #263f48;
}

.project-rail-head small,
.project-rail-head b { display: block; }
.project-rail-head small { color: #75919b; font: 8px ui-monospace, monospace; letter-spacing: .1em; }
.project-rail-head b { margin-top: 6px; color: #fff; font-size: 13px; }

.project-rail-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 2px 10px;
  padding: 0 10px;
  border: 1px solid #35525c;
  border-radius: var(--fs-radius-sm);
  background: #112b35;
}

.project-rail-search span { color: var(--fs-teal-400); }
.project-rail-search input {
  width: 100%;
  min-width: 0;
  height: 38px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #fff;
  font-size: 11px;
}
.project-rail-search input::placeholder { color: #6f8993; }

.project-rail-section { margin-top: 16px; }
.project-rail-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 9px 7px;
  color: #6f8993;
  font: 800 8px ui-monospace, monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.project-rail-list { display: grid; gap: 3px; }
.project-rail-item {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 44px;
  padding: 8px 9px;
  border: 1px solid transparent;
  border-radius: var(--fs-radius-sm);
  color: #9eb0b6;
  text-decoration: none;
  cursor: pointer;
}
.project-rail-item::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: #46616a;
}
.project-rail-item span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 750; }
.project-rail-item small { color: #6c8790; font: 8px ui-monospace, monospace; }
.project-rail-item:hover { background: #132f39; color: #fff; }
.project-rail-item.active { border-color: #34555e; background: #183944; color: #fff; }
.project-rail-item.active::before { background: var(--fs-teal-400); box-shadow: 0 0 0 4px rgba(88, 201, 181, .12); }
.project-rail-item.active small { color: #a5c0c7; }

/* Linked analytics strip -------------------------------------------------- */

.analytics-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 1px;
  margin-bottom: 14px;
  overflow: hidden;
  border: 1px solid var(--fs-line);
  border-radius: var(--fs-radius-md);
  background: var(--fs-line);
  box-shadow: var(--fs-shadow-sm);
}

.analytics-card {
  position: relative;
  min-height: 112px;
  padding: 16px;
  border: 0;
  background: var(--fs-panel);
  text-align: left;
  cursor: pointer;
}

.analytics-card:hover,
.analytics-card.is-filtering { background: var(--fs-mint-50); }
.analytics-card.is-filtering { box-shadow: inset 0 -3px var(--fs-teal-600); }
.analytics-card small { display: block; color: var(--fs-text-soft); font-size: 9px; font-weight: 800; }
.analytics-card strong { display: block; margin-top: 6px; font: 780 29px/1 ui-monospace, SFMono-Regular, monospace; letter-spacing: -.04em; }
.analytics-card .metric-delta { position: absolute; top: 17px; right: 15px; color: var(--fs-teal-700); font: 800 8px ui-monospace, monospace; }

.metric-sparkline {
  height: 26px;
  display: flex;
  align-items: flex-end;
  gap: 3px;
  margin-top: 11px;
}
.metric-sparkline i { flex: 1; min-width: 3px; border-radius: 2px 2px 0 0; background: #c5dad8; }
.analytics-card:hover .metric-sparkline i,
.analytics-card.is-filtering .metric-sparkline i { background: var(--fs-teal-400); }

.chart-link-state {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  margin: -2px 0 14px;
  padding: 6px 10px;
  border-left: 3px solid var(--fs-teal-600);
  background: #e8f4f1;
  color: var(--fs-text-soft);
  font-size: 10px;
}
.chart-link-state b { color: var(--fs-text); }
.chart-link-state button { margin-left: auto; border: 0; background: transparent; color: var(--fs-teal-700); font-size: 9px; font-weight: 850; cursor: pointer; }

/* Dataset browser --------------------------------------------------------- */

.sample-browser {
  min-width: 0;
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  align-items: start;
  border: 1px solid var(--fs-line);
  border-radius: var(--fs-radius-md);
  background: var(--fs-panel);
  box-shadow: var(--fs-shadow-sm);
}

.facet-panel {
  position: sticky;
  top: 74px;
  max-height: calc(100vh - 94px);
  overflow: auto;
  padding: 16px 14px 22px;
  border-right: 1px solid var(--fs-line);
  background: var(--fs-panel-soft);
  scrollbar-width: thin;
  scrollbar-color: #b5c6ca transparent;
}

.facet-panel-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }
.facet-panel-title b { font-size: 12px; }
.facet-panel-title button { border: 0; background: transparent; color: var(--fs-teal-700); font-size: 9px; font-weight: 850; cursor: pointer; }

.facet-group { padding: 13px 0; border-top: 1px solid var(--fs-line); }
.facet-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  color: var(--fs-text);
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}
.facet-group summary::-webkit-details-marker { display: none; }
.facet-group summary::after { content: "＋"; color: var(--fs-text-faint); }
.facet-group[open] summary::after { content: "−"; }
.facet-options { display: grid; gap: 7px; margin-top: 10px; }
.facet-option { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 7px; align-items: center; color: var(--fs-text-soft); font-size: 10px; cursor: pointer; }
.facet-option input { width: 14px; height: 14px; margin: 0; accent-color: var(--fs-teal-600); }
.facet-option span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.facet-option small { color: var(--fs-text-faint); font: 8px ui-monospace, monospace; }

.sample-results { min-width: 0; }
.sample-toolbar {
  position: sticky;
  top: 58px;
  z-index: 8;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 58px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--fs-line);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(12px);
}
.sample-toolbar .result-count { margin-right: auto; font-size: 10px; font-weight: 850; }
.sample-toolbar .result-count b { font: 800 13px ui-monospace, monospace; }
.sample-toolbar select,
.sample-toolbar input {
  height: 36px;
  border: 1px solid var(--fs-line);
  border-radius: var(--fs-radius-sm);
  background: #fff;
  padding: 0 10px;
  outline: 0;
  font-size: 10px;
}
.view-toggle { display: flex; padding: 3px; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-sm); background: var(--fs-panel-soft); }
.view-toggle button { width: 29px; height: 28px; border: 0; border-radius: 4px; background: transparent; color: var(--fs-text-soft); cursor: pointer; }
.view-toggle button.active { background: var(--fs-navy-900); color: #fff; }

.sample-browser .sample-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(222px, 1fr));
  gap: 12px;
  padding: 12px;
}

.sample-tile {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--fs-line);
  border-radius: var(--fs-radius-sm);
  background: var(--fs-panel);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
  cursor: pointer;
}
.sample-tile:hover { border-color: #91b6af; box-shadow: 0 8px 23px rgba(7, 25, 34, .1); transform: translateY(-1px); }
.sample-tile.selected { border-color: var(--fs-teal-600); box-shadow: 0 0 0 2px rgba(25, 153, 133, .16); }
.sample-tile-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #08161c; }
.sample-tile-media img,
.sample-tile-media video { display: block; width: 100%; height: 100%; object-fit: cover; }
.sample-tile-media.contain img,
.sample-tile-media.contain video { object-fit: contain; }
.sample-tile-media::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(transparent, rgba(3, 13, 18, .58)); pointer-events: none; }
.sample-duration { position: absolute; right: 7px; bottom: 6px; z-index: 1; padding: 3px 5px; border-radius: 3px; background: rgba(7, 25, 34, .86); color: #fff; font: 8px ui-monospace, monospace; }
.sample-tile-body { padding: 10px 11px 11px; }
.sample-tile-body b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.sample-tile-body p { display: -webkit-box; min-height: 30px; margin: 5px 0 9px; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: var(--fs-text-soft); font-size: 9px; }
.sample-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.sample-tags span { padding: 3px 5px; border-radius: 3px; background: var(--fs-blue-100); color: #3f5d68; font-size: 8px; }

.sample-browser .sample-list { display: grid; padding: 0; }
.sample-list .sample-tile {
  display: grid;
  grid-template-columns: 128px minmax(180px, 1fr) minmax(160px, .75fr) 100px;
  align-items: center;
  gap: 12px;
  min-height: 92px;
  padding: 10px 14px;
  border-width: 0 0 1px;
  border-radius: 0;
  transform: none;
}
.sample-list .sample-tile-media { aspect-ratio: 16 / 9; border-radius: 4px; }
.sample-list .sample-tile-body { padding: 0; }
.sample-list .sample-list-meta { color: var(--fs-text-soft); font-size: 9px; }
.sample-list .sample-list-status { justify-self: end; }

.sample-status { display: inline-flex; align-items: center; gap: 5px; padding: 4px 6px; border-radius: 20px; background: #edf1f2; color: var(--fs-text-soft); font-size: 8px; font-weight: 850; }
.sample-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #94a6ab; }
.sample-status.complete { background: var(--fs-mint-100); color: #126957; }
.sample-status.complete::before { background: var(--fs-teal-600); }
.sample-status.review { background: #fff1d7; color: #80581c; }
.sample-status.review::before { background: var(--fs-warning); }

/* Task manager ------------------------------------------------------------ */

.task-table-wrap { overflow: auto; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: #fff; }
.task-table { width: 100%; min-width: 980px; border-collapse: collapse; }
.task-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 11px 12px;
  border-bottom: 1px solid var(--fs-line);
  background: #eef3f3;
  color: #536a72;
  font: 800 9px ui-monospace, monospace;
  letter-spacing: .03em;
  text-align: left;
}
.task-table td { padding: 11px 12px; border-bottom: 1px solid #e7edef; color: var(--fs-text-soft); font-size: 10px; vertical-align: middle; }
.task-table tbody tr:hover { background: var(--fs-mint-50); }
.task-table tbody tr.selected { background: #e5f6f1; box-shadow: inset 3px 0 var(--fs-teal-600); }
.task-table input[type="checkbox"] { width: 15px; height: 15px; accent-color: var(--fs-teal-600); }
.task-id { color: var(--fs-text-faint); font: 9px ui-monospace, monospace; }
.task-name { display: flex; align-items: center; gap: 9px; min-width: 220px; color: var(--fs-text); font-weight: 800; }
.task-name img { width: 54px; height: 36px; object-fit: cover; border-radius: 4px; background: #10242d; }
.assignee-chip { display: inline-flex; align-items: center; gap: 6px; }
.assignee-chip i { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #dcebea; color: #155e54; font: normal 800 8px ui-monospace, monospace; }

.bulk-task-bar {
  position: sticky;
  bottom: 16px;
  z-index: 12;
  width: max-content;
  max-width: calc(100% - 28px);
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px auto 0;
  padding: 9px 10px 9px 14px;
  border: 1px solid #35505a;
  border-radius: 9px;
  background: var(--fs-navy-900);
  color: #fff;
  box-shadow: 0 16px 34px rgba(7, 25, 34, .24);
  font-size: 10px;
}
.bulk-task-bar[hidden] { display: none; }
.bulk-task-bar b { color: #aef2df; }

/* Inspector --------------------------------------------------------------- */

.inspector-backdrop {
  position: fixed;
  inset: 0;
  z-index: 90;
  background: rgba(4, 16, 22, .44);
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
.inspector-backdrop.open { opacity: 1; pointer-events: auto; }

.inspector-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 91;
  width: var(--fs-inspector-width);
  max-width: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: var(--fs-panel);
  box-shadow: var(--fs-shadow-drawer);
  transform: translateX(102%);
  transition: transform .22s cubic-bezier(.2, .72, .2, 1);
}
.inspector-drawer.open { transform: translateX(0); }
.inspector-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  border-bottom: 1px solid var(--fs-line);
}
.inspector-drawer-head h2 { margin: 3px 0 0; font: 800 20px/1.15 Inter, "PingFang SC", sans-serif; letter-spacing: -.03em; }
.inspector-drawer-head button { width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--fs-line); border-radius: 50%; background: #fff; cursor: pointer; }
.inspector-drawer-body { overflow: auto; padding: 16px 18px 28px; }
.inspector-preview { overflow: hidden; border-radius: var(--fs-radius-sm); background: #07161c; }
.inspector-preview video,
.inspector-preview img { display: block; width: 100%; max-height: 42vh; object-fit: contain; }
.inspector-section { padding: 17px 0; border-bottom: 1px solid var(--fs-line); }
.inspector-section:last-child { border-bottom: 0; }
.inspector-section-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 11px; }
.inspector-section-title b { font-size: 11px; }
.inspector-section-title small { color: var(--fs-text-faint); font: 8px ui-monospace, monospace; }
.metadata-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.metadata-grid article { min-width: 0; padding: 10px; border: 1px solid var(--fs-line); border-radius: 5px; background: var(--fs-panel-soft); }
.metadata-grid small,
.metadata-grid b { display: block; }
.metadata-grid small { color: var(--fs-text-faint); font: 8px ui-monospace, monospace; }
.metadata-grid b { margin-top: 5px; overflow-wrap: anywhere; font-size: 10px; }
.annotation-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 9px; align-items: start; padding: 9px 0; border-bottom: 1px solid #e9eeef; font-size: 9px; }
.annotation-row:last-child { border-bottom: 0; }
.annotation-row .annotation-label { color: var(--fs-teal-700); font-weight: 850; }
.annotation-row .annotation-time { color: var(--fs-text-faint); font: 8px ui-monospace, monospace; }
.inspector-drawer-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--fs-line); background: #f7f9f9; }

/* Shared interaction states ---------------------------------------------- */

.workspace-shell button:focus-visible,
.workspace-shell a:focus-visible,
.workspace-shell input:focus-visible,
.workspace-shell select:focus-visible,
.inspector-drawer button:focus-visible,
.inspector-drawer a:focus-visible {
  outline: 3px solid var(--fs-focus);
  outline-offset: 2px;
}

.enterprise-empty {
  display: grid;
  place-items: center;
  min-height: 320px;
  padding: 30px;
  border: 1px dashed var(--fs-line-strong);
  border-radius: var(--fs-radius-md);
  background: var(--fs-panel-soft);
  color: var(--fs-text-soft);
  text-align: center;
}
.enterprise-empty b { display: block; color: var(--fs-text); font-size: 13px; }
.enterprise-empty p { max-width: 420px; margin: 7px 0 0; font-size: 10px; }

/* Responsive -------------------------------------------------------------- */

@media (max-width: 1180px) {
  :root { --fs-rail-width: 214px; --fs-inspector-width: min(440px, 48vw); }
  .enterprise-main { padding-inline: 20px; }
  .sample-browser { grid-template-columns: 210px minmax(0, 1fr); }
  .analytics-strip { grid-template-columns: repeat(2, 1fr); }
  .sample-browser .sample-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
}

@media (max-width: 900px) {
  .workspace-shell { grid-template-columns: 1fr; }
  .project-rail {
    position: relative;
    top: auto;
    height: auto;
    padding: 8px 10px;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid #294650;
  }
  .project-rail-head,
  .project-rail-search,
  .project-rail-label { display: none; }
  .project-rail-section { margin: 0; }
  .project-rail-list { display: flex; gap: 5px; min-width: max-content; }
  .project-rail-item { min-width: 148px; }
  .sample-browser { grid-template-columns: 1fr; }
  .facet-panel {
    position: relative;
    top: auto;
    max-height: none;
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    padding: 10px;
    border-right: 0;
    border-bottom: 1px solid var(--fs-line);
  }
  .facet-panel-title { min-width: max-content; margin: 0; }
  .facet-group { min-width: 150px; padding: 9px 10px; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-sm); background: #fff; }
  .facet-options { position: absolute; z-index: 12; min-width: 190px; padding: 10px; border: 1px solid var(--fs-line); border-radius: 6px; background: #fff; box-shadow: var(--fs-shadow-sm); }
  .sample-toolbar { top: 116px; }
  .inspector-drawer { width: min(520px, 86vw); }
}

@media (max-width: 620px) {
  .enterprise-main { padding: 18px 12px 42px; }
  .enterprise-header { display: block; }
  .enterprise-actions { justify-content: flex-start; margin-top: 15px; }
  .analytics-strip { grid-template-columns: 1fr 1fr; }
  .analytics-card { min-height: 100px; padding: 13px; }
  .analytics-card strong { font-size: 24px; }
  .sample-toolbar { flex-wrap: wrap; top: 116px; }
  .sample-toolbar .result-count { width: 100%; }
  .sample-browser .sample-grid { grid-template-columns: 1fr; padding: 8px; }
  .sample-list .sample-tile { grid-template-columns: 104px minmax(0, 1fr); }
  .sample-list .sample-list-meta,
  .sample-list .sample-list-status { display: none; }
  .inspector-drawer { width: 100%; }
  .metadata-grid { grid-template-columns: 1fr; }
  .inspector-drawer-actions { justify-content: stretch; }
  .inspector-drawer-actions .enterprise-button { flex: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .sample-tile,
  .inspector-backdrop,
  .inspector-drawer { transition: none !important; }
}

/* Live workspace markup -------------------------------------------------- */
.enterprise-workspace{min-height:calc(100vh - 56px);padding:20px 22px 48px;background:var(--fs-canvas);color:var(--fs-text)}
.enterprise-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.project-breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px}.project-breadcrumb span{color:var(--fs-text-faint)}.project-breadcrumb span::after{content:"/";margin-left:10px;color:var(--fs-line-strong)}.project-breadcrumb b{font-size:14px}.project-breadcrumb i{padding:3px 6px;border-radius:20px;background:var(--fs-mint-100);color:var(--fs-teal-700);font:normal 800 8px ui-monospace,monospace}.enterprise-actions button,.enterprise-actions a{min-height:36px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--fs-line-strong);border-radius:6px;background:#fff;color:var(--fs-text);font-size:10px;font-weight:800;text-decoration:none;cursor:pointer}.enterprise-actions a{border-color:var(--fs-navy-900);background:var(--fs-navy-900);color:#fff}
.enterprise-workspace>.project-rail{position:static;top:auto;height:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;overflow:visible;padding:8px;margin-bottom:12px;border:1px solid #28434c;border-radius:10px;background:var(--fs-navy-950)}.enterprise-workspace>.project-rail button{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:10px;border:1px solid transparent;border-radius:6px;background:transparent;color:#9eb0b6;text-align:left;cursor:pointer}.enterprise-workspace>.project-rail button:hover,.enterprise-workspace>.project-rail button.active{border-color:#34555e;background:#183944;color:#fff}.enterprise-workspace>.project-rail button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:5px;background:#203d47;color:var(--fs-teal-400);font:800 9px ui-monospace,monospace}.enterprise-workspace>.project-rail button>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.enterprise-workspace>.project-rail button>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#78919a;font-size:8px}.enterprise-workspace>.project-rail button>i{grid-row:1/3;grid-column:3;font:normal 800 15px ui-monospace,monospace;color:#fff}
.enterprise-workspace>.analytics-strip{grid-template-columns:minmax(190px,.8fr) minmax(300px,1.5fr) minmax(260px,1fr)}.analytics-summary,.linked-chart{min-height:122px;padding:15px 17px;background:#fff}.analytics-summary small{display:block;color:var(--fs-teal-700);font:800 8px ui-monospace,monospace;letter-spacing:.1em}.analytics-summary strong{display:inline-block;margin-top:8px;font:800 34px/1 ui-monospace,monospace}.analytics-summary span{color:var(--fs-text-soft);font-size:9px}.analytics-summary p{margin:10px 0 0;color:var(--fs-text-soft);font-size:10px}.linked-chart header{display:flex;justify-content:space-between;gap:10px}.linked-chart header b{font-size:10px}.linked-chart header span{color:var(--fs-text-faint);font-size:8px}.mini-bars{height:78px;display:flex;align-items:flex-end;gap:7px;margin-top:9px}.mini-bars button{min-width:28px;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;padding:0;border:0;border-bottom:2px solid transparent;background:transparent;cursor:pointer}.mini-bars button.active{border-color:var(--fs-teal-600);background:var(--fs-mint-50)}.mini-bars i{width:min(22px,75%);min-height:4px;border-radius:3px 3px 0 0}.mini-bars span{font:800 8px ui-monospace,monospace}.mini-bars small{max-width:46px;overflow:hidden;color:var(--fs-text-faint);font-size:7px;white-space:nowrap}.status-chart{display:grid;gap:11px;margin-top:16px}.status-chart button{display:grid;grid-template-columns:minmax(70px,1fr) 22px 48px;align-items:center;gap:8px;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.status-chart button>span{height:6px;overflow:hidden;border-radius:5px;background:#e6ecec}.status-chart button i{display:block;height:100%;background:var(--fs-teal-600)}.status-chart button:nth-child(2) i{background:#91a2a7}.status-chart b{font:800 10px ui-monospace,monospace}.status-chart small{color:var(--fs-text-soft);font-size:8px}
.workspace-querybar{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:9px;border:1px solid var(--fs-line);border-radius:9px;background:#fff;box-shadow:var(--fs-shadow-sm)}.workspace-querybar>label{min-width:220px;flex:1;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--fs-line);border-radius:6px;background:var(--fs-panel-soft)}.workspace-querybar input{width:100%;height:36px;border:0;outline:0;background:transparent;font-size:10px}.workspace-querybar>button{height:36px;padding:0 11px;border:1px solid var(--fs-line);border-radius:6px;background:#fff;color:var(--fs-text-soft);font-size:9px;font-weight:800;cursor:pointer}.view-toggle button{width:auto;padding:0 9px;font-size:9px}
.sample-browser-shell{display:grid;grid-template-columns:190px minmax(0,1fr) 330px;align-items:start;overflow:hidden;border:1px solid var(--fs-line);border-radius:10px;background:#fff;box-shadow:var(--fs-shadow-sm)}.sample-browser-shell>.facet-panel{position:sticky;top:70px;max-height:calc(100vh - 92px);padding:15px 13px}.facet-panel>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.facet-panel>header b{font-size:11px}.facet-panel>header span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:20px;background:var(--fs-navy-900);color:#fff;font:800 8px ui-monospace,monospace}.facet-panel section{display:grid;gap:8px;padding:13px 0;border-top:1px solid var(--fs-line)}.facet-panel h3{margin:0 0 2px;font-size:9px}.facet-panel label{display:grid;grid-template-columns:15px minmax(0,1fr) auto;align-items:center;gap:6px;color:var(--fs-text-soft);font-size:9px;cursor:pointer}.facet-panel input{margin:0;accent-color:var(--fs-teal-600)}.facet-panel label b{color:var(--fs-text-faint);font:800 8px ui-monospace,monospace}.sample-results{border-right:1px solid var(--fs-line)}.sample-results>header{position:sticky;top:56px;z-index:3;display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:8px 12px;border-bottom:1px solid var(--fs-line);background:rgba(255,255,255,.95);backdrop-filter:blur(10px)}.sample-results>header div{display:flex;align-items:center;gap:8px}.sample-results>header b{font-size:11px}.sample-results>header span{color:var(--fs-text-faint);font:800 8px ui-monospace,monospace}.sample-results>header select{height:32px;padding:0 8px;border:1px solid var(--fs-line);border-radius:5px;background:#fff;font-size:9px}
.fiftyone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:10px;padding:10px}.fiftyone-sample{min-width:0;overflow:hidden;padding:0;border:1px solid var(--fs-line);border-radius:6px;background:#fff;color:var(--fs-text);text-align:left;cursor:pointer;transition:.15s ease}.fiftyone-sample:hover,.fiftyone-sample.active{border-color:var(--fs-teal-600);box-shadow:0 7px 20px rgba(7,25,34,.1);transform:translateY(-1px)}.sample-visual{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#07161c}.sample-visual img,.sample-visual video{width:100%;height:100%;display:block;object-fit:cover}.sample-visual>i{position:absolute;right:6px;bottom:6px;padding:3px 5px;border-radius:3px;background:rgba(7,25,34,.84);color:#fff;font:normal 800 7px ui-monospace,monospace}.review-dot{position:absolute;left:7px;top:7px;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#91a2a7;box-shadow:0 1px 3px #0005}.review-dot.done{background:var(--fs-teal-400)}.sample-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 6px;padding:9px}.sample-copy small,.sample-copy>span{grid-column:1/3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fs-text-faint);font-size:8px}.sample-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.sample-copy em{color:var(--fs-teal-700);font:normal 800 8px ui-monospace,monospace}.fiftyone-grid.list{display:grid;grid-template-columns:1fr;gap:0;padding:0}.fiftyone-grid.list .fiftyone-sample{display:grid;grid-template-columns:130px minmax(0,1fr);border-width:0 0 1px;border-radius:0;transform:none}.fiftyone-grid.list .sample-visual{aspect-ratio:16/9}.fiftyone-grid.list .sample-copy{align-content:center;padding:12px}
.sample-browser-shell>.inspector-drawer{position:sticky;inset:auto;top:70px;z-index:1;width:auto;max-width:none;height:calc(100vh - 92px);display:block;overflow:auto;background:var(--fs-panel-soft);box-shadow:none;transform:none;transition:none}.inspector-placeholder{min-height:420px;display:grid;place-content:center;gap:8px;padding:30px;color:var(--fs-text-soft);text-align:center}.inspector-placeholder span{font-size:28px;color:var(--fs-teal-600)}.inspector-placeholder b{font-size:11px}.inspector-placeholder p{max-width:240px;margin:0;font-size:9px;line-height:1.7}.inspector-drawer>header{display:flex;justify-content:space-between;gap:8px;padding:14px;border-bottom:1px solid var(--fs-line);background:#fff}.inspector-drawer>header div{display:grid;gap:3px}.inspector-drawer>header small{color:var(--fs-teal-700);font:800 7px ui-monospace,monospace}.inspector-drawer>header b{font-size:12px}.inspector-drawer>header span{color:var(--fs-text-soft);font-size:9px}.inspector-drawer>header button{width:28px;height:28px;border:1px solid var(--fs-line);border-radius:50%;background:#fff;cursor:pointer}.drawer-media{background:#07161c}.drawer-media img,.drawer-media video{display:block;width:100%;max-height:260px;object-fit:contain}.drawer-status{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-bottom:1px solid var(--fs-line)}.drawer-status span{padding:4px 7px;border-radius:20px;background:#e8edef;color:var(--fs-text-soft);font-size:8px;font-weight:800}.drawer-status span.done{background:var(--fs-mint-100);color:var(--fs-teal-700)}.drawer-status b{font-size:9px}.inspector-drawer dl{margin:0;padding:4px 13px}.inspector-drawer dl>div{padding:10px 0;border-bottom:1px solid var(--fs-line)}.inspector-drawer dt{color:var(--fs-text-faint);font:800 7px ui-monospace,monospace}.inspector-drawer dd{margin:5px 0 0;font-size:9px;line-height:1.55}.inspector-drawer dd span{display:inline-block;margin:2px 3px 0 0;padding:3px 5px;border-radius:3px;background:var(--fs-blue-100);font-size:8px}.drawer-annotations{display:grid;gap:5px;padding:12px 13px}.drawer-annotations>b{font-size:9px}.drawer-annotations article{display:grid;grid-template-columns:70px minmax(0,1fr);gap:4px;padding:7px;border:1px solid var(--fs-line);border-radius:4px;background:#fff}.drawer-annotations span{color:var(--fs-teal-700);font-size:8px}.drawer-annotations strong{font-size:9px}.drawer-annotations small{grid-column:1/3;color:var(--fs-text-faint);font:8px ui-monospace,monospace}.drawer-actions{position:sticky;bottom:0;display:flex;gap:7px;padding:11px 13px;border-top:1px solid var(--fs-line);background:rgba(255,255,255,.96)}.drawer-actions button{flex:1;min-height:34px;border:1px solid var(--fs-line-strong);border-radius:5px;background:#fff;font-size:9px;font-weight:800;cursor:pointer}.drawer-actions button.primary{border-color:var(--fs-navy-900);background:var(--fs-navy-900);color:#fff}
@media(max-width:1180px){.sample-browser-shell{grid-template-columns:174px minmax(0,1fr)}.sample-browser-shell>.inspector-drawer{position:fixed;inset:56px 0 0 auto;z-index:80;width:min(380px,86vw);height:auto;box-shadow:var(--fs-shadow-drawer);transform:translateX(102%)}.sample-browser-shell>.inspector-drawer:not(:has(.inspector-placeholder)){transform:none}.enterprise-workspace>.analytics-strip{grid-template-columns:1fr 1fr}.analytics-summary{grid-column:1/3}}
@media(max-width:760px){.enterprise-workspace{padding:12px}.enterprise-heading{align-items:flex-start}.project-breadcrumb span,.project-breadcrumb i{display:none}.enterprise-workspace>.project-rail{display:flex;overflow:auto}.enterprise-workspace>.project-rail button{min-width:190px}.enterprise-workspace>.analytics-strip{grid-template-columns:1fr}.analytics-summary{grid-column:auto}.sample-browser-shell{grid-template-columns:1fr}.sample-browser-shell>.facet-panel{position:static;display:flex;gap:14px;overflow:auto;border-right:0;border-bottom:1px solid var(--fs-line)}.facet-panel>header,.facet-panel section{min-width:150px}.workspace-querybar{flex-wrap:wrap}.workspace-querybar>label{flex-basis:100%}.fiftyone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.fiftyone-grid{grid-template-columns:1fr}.enterprise-actions button{display:none}.enterprise-workspace>.analytics-strip{display:block}.linked-chart,.analytics-summary{margin-bottom:1px}}

/* Analytics console ------------------------------------------------------ */
.analytics-console{min-height:calc(100vh - 56px);padding:24px 24px 64px;background:#f2f5f5;color:var(--fs-text)}
.analytics-console-head{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding-bottom:18px;border-bottom:1px solid var(--fs-line)}.analytics-console-head h1{margin:4px 0 7px;font:800 30px/1 Inter,"PingFang SC",sans-serif;letter-spacing:-.04em}.analytics-console-head p:not(.analytics-eyebrow){max-width:680px;margin:0;color:var(--fs-text-soft);font-size:10px;line-height:1.7}.analytics-eyebrow{margin:0;color:var(--fs-teal-700);font:800 8px ui-monospace,monospace;letter-spacing:.13em}.analytics-head-actions{display:flex;align-items:center;gap:9px}.analytics-head-actions>span{color:var(--fs-text-faint);font:8px ui-monospace,monospace}.analytics-head-actions>span b{color:var(--fs-text)}.analytics-head-actions a{min-height:35px;display:inline-flex;align-items:center;padding:0 12px;border-radius:5px;background:var(--fs-navy-900);color:#fff;font-size:9px;font-weight:800;text-decoration:none}
.analytics-console .dashboard-command.compact{display:grid;grid-template-columns:minmax(360px,1fr) auto;gap:14px;align-items:end;padding:14px 0 0}.analytics-console .dashboard-search{min-height:42px;display:grid;grid-template-columns:38px 1fr auto;border:1px solid var(--fs-line);border-radius:7px;background:#fff;box-shadow:none}.analytics-console .dashboard-search>span{font-size:16px}.analytics-console .dashboard-search input{font-size:10px}.analytics-console .dashboard-search button{min-width:68px;margin:4px;border-radius:4px;font-size:9px}.analytics-console .dashboard-tabs{display:flex;margin:0;border:1px solid var(--fs-line);border-radius:7px;background:#e9eeee;padding:3px}.analytics-console .dashboard-tabs button{min-width:118px;padding:7px 10px;border:0;border-radius:5px;background:transparent}.analytics-console .dashboard-tabs button.active{border:0;background:#fff;color:var(--fs-teal-700);box-shadow:0 1px 4px rgba(7,25,34,.08)}.analytics-console .dashboard-tabs span{font-size:9px}.analytics-console .dashboard-tabs small{margin-top:2px;font-size:7px}
.analytics-kpis{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px;border:1px solid var(--fs-line);border-radius:9px;background:var(--fs-line);gap:1px;overflow:hidden;box-shadow:var(--fs-shadow-sm)}.analytics-kpis::before{content:"";position:absolute;inset:0 auto auto 0;z-index:2;width:100%;height:2px;background:linear-gradient(90deg,var(--fs-teal-600) 0 28%,#7cbcb1 28% 52%,#a8c7c3 52% 76%,#d7e1e1 76%)}.analytics-kpis article{min-height:102px;padding:15px 17px;background:#fff}.analytics-kpis small,.analytics-kpis strong,.analytics-kpis span{display:block}.analytics-kpis small{color:var(--fs-text-soft);font-size:8px;font-weight:800}.analytics-kpis strong{margin-top:10px;font:800 28px/1 ui-monospace,monospace;letter-spacing:-.05em}.analytics-kpis span{margin-top:8px;color:var(--fs-text-faint);font-size:8px}
.analytics-grid-clean{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(360px,.85fr);gap:10px;margin-top:10px}.analytics-panel{min-width:0;padding:16px 17px;border:1px solid var(--fs-line);border-radius:9px;background:#fff;box-shadow:var(--fs-shadow-sm)}.analytics-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:13px;border-bottom:1px solid #e5ebec}.analytics-panel>header div{display:grid;gap:4px}.analytics-panel>header b{font-size:11px}.analytics-panel>header span{color:var(--fs-text-faint);font-size:8px}.analytics-panel>header a{color:var(--fs-teal-700);font-size:8px;font-weight:800;text-decoration:none}.theme-analytics{grid-row:span 2}.theme-analytics .bar-list{display:grid;gap:10px;margin-top:16px}.theme-analytics .bar-row{display:grid;grid-template-columns:100px 1fr 26px;align-items:center;gap:9px}.theme-analytics .bar-row label{font-size:9px}.theme-analytics .bar-track{height:7px;border-radius:5px;background:#edf1f1;overflow:hidden}.theme-analytics .bar-track i{display:block;height:100%;border-radius:5px}.theme-analytics .bar-row b{font:800 9px ui-monospace,monospace;text-align:right}.timeline-analytics .timeline{height:158px;display:flex;align-items:flex-end;gap:5px;padding:17px 2px 0;overflow-x:auto}.timeline-analytics .year-bar{min-width:22px;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.timeline-analytics .year-bar i{width:min(15px,70%);min-height:3px;background:#8bbdb5;border-radius:3px 3px 0 0}.timeline-analytics .year-bar:last-child i,.timeline-analytics .year-bar:nth-last-child(2) i{background:var(--fs-teal-600)}.timeline-analytics .year-bar b{margin-top:6px;color:var(--fs-text-faint);font:700 7px ui-monospace,monospace;writing-mode:vertical-rl}.signal-analytics .signal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:13px}.signal-analytics .signal-card{min-height:48px;display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #e4eaeb;border-radius:5px;background:#f8fafa}.signal-analytics .signal-card b{font:800 15px ui-monospace,monospace}.signal-analytics .signal-card span{color:var(--fs-text-soft);font-size:8px;line-height:1.35}
.selection-console,.dashboard-samples.clean,.dashboard-subpage{margin-top:10px;padding:16px 17px;border:1px solid var(--fs-line);border-radius:9px;background:#fff;box-shadow:var(--fs-shadow-sm)}.selection-console>header,.dashboard-samples.clean>header,.dashboard-subpage>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid #e5ebec}.selection-console>header div,.dashboard-samples.clean>header div,.dashboard-subpage>header div{display:grid;gap:4px}.selection-console>header b,.dashboard-samples.clean>header b,.dashboard-subpage>header b{font-size:11px}.selection-console>header span,.dashboard-samples.clean>header span,.dashboard-subpage>header span{color:var(--fs-text-faint);font-size:8px}.selection-console .decision-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:13px}.selection-console .decision-card{position:relative;min-height:128px;display:flex;flex-direction:column;align-items:flex-start;padding:13px;border:1px solid var(--fs-line);border-radius:6px;background:#f8fafa;color:var(--fs-text);text-align:left;cursor:pointer}.selection-console .decision-card:hover{border-color:var(--fs-teal-600);background:var(--fs-mint-50)}.selection-console .decision-card>span{color:var(--fs-teal-700);font:800 7px ui-monospace,monospace;letter-spacing:.08em}.selection-console .decision-card>b{margin-top:11px;font-size:10px}.selection-console .decision-card>p{margin:6px 0;color:var(--fs-text-soft);font-size:8px;line-height:1.55}.selection-console .decision-card>i{margin-top:auto;color:var(--fs-teal-700);font:normal 800 8px ui-monospace,monospace}
.dashboard-samples.clean{padding-bottom:17px}.dashboard-samples.clean>header{margin:0}.dashboard-samples.clean>header button{border:0;background:transparent;color:var(--fs-teal-700);font-size:8px;font-weight:800;cursor:pointer}.analytics-console .dashboard-video-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:13px}.analytics-console .dashboard-video-card{overflow:hidden;border:1px solid var(--fs-line);border-radius:6px;background:#fff}.analytics-console .video-thumb{aspect-ratio:16/9}.analytics-console .dashboard-video-card>div{padding:10px}.analytics-console .dashboard-video-card b{font-size:10px}.analytics-console .dashboard-video-card p{font-size:8px}.analytics-console .dashboard-video-card footer{font-size:7px}
.dashboard-subpage{min-height:560px}.dashboard-subpage>header strong{color:var(--fs-teal-700);font:800 11px ui-monospace,monospace}.analytics-console .dashboard-search-results{margin-top:13px}.analytics-console .dashboard-search-results>article{grid-template-columns:minmax(230px,1.2fr) minmax(170px,.8fr) minmax(170px,.8fr) 130px;padding:13px 14px;border-radius:6px;font-size:9px}.analytics-console .dashboard-video-page{padding-top:0}
@media(max-width:1120px){.analytics-console .dashboard-command.compact{grid-template-columns:1fr}.analytics-console .dashboard-tabs{width:max-content}.analytics-grid-clean{grid-template-columns:1fr}.theme-analytics{grid-row:auto}.analytics-console .dashboard-video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.analytics-console{padding:16px}.analytics-console-head{display:grid}.analytics-head-actions{justify-content:space-between}.analytics-kpis{grid-template-columns:1fr 1fr}.selection-console .decision-grid{grid-template-columns:1fr 1fr}.analytics-console .dashboard-video-grid{grid-template-columns:1fr 1fr}.analytics-console .dashboard-tabs{width:100%;overflow:auto}.analytics-console .dashboard-tabs button{min-width:110px}.signal-analytics .signal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.analytics-console{padding:12px}.analytics-console-head h1{font-size:25px}.analytics-head-actions>span{display:none}.analytics-kpis{grid-template-columns:1fr}.selection-console .decision-grid,.analytics-console .dashboard-video-grid{grid-template-columns:1fr}.signal-analytics .signal-grid{grid-template-columns:1fr}.analytics-console .dashboard-search{grid-template-columns:34px 1fr}.analytics-console .dashboard-search button{grid-column:1/-1;min-height:34px}.analytics-console .dashboard-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.analytics-console .dashboard-tabs button{min-width:0}.analytics-console .dashboard-tabs small{display:none}}

/* Integrated operations platform --------------------------------------- */
.control-center,.pipeline-center{min-height:calc(100vh - 56px);padding:22px 24px 60px;background:#f2f5f5;color:var(--fs-text)}
.control-head,.pipeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:17px;border-bottom:1px solid var(--fs-line)}.control-head>div:first-child,.pipeline-head>div:first-child{display:grid;gap:5px}.control-head p,.pipeline-head p{margin:0;color:var(--fs-teal-700);font:800 8px ui-monospace,monospace;letter-spacing:.12em}.control-head h1,.pipeline-head h1{margin:0;font:800 28px/1.1 Inter,"PingFang SC",sans-serif;letter-spacing:-.04em}.control-head span,.pipeline-head span{color:var(--fs-text-soft);font-size:9px}.control-head>div:last-child{display:flex;gap:8px}.control-head button,.control-head a,.pipeline-head>button{min-height:36px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--fs-line-strong);border-radius:5px;background:#fff;color:var(--fs-text);font-size:9px;font-weight:800;text-decoration:none;cursor:pointer}.control-head a,.pipeline-head>button{border-color:var(--fs-navy-900);background:var(--fs-navy-900);color:#fff}
.control-kpis{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:13px;overflow:hidden;border:1px solid var(--fs-line);border-radius:9px;background:var(--fs-line);box-shadow:var(--fs-shadow-sm)}.control-kpis::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#159884 0 25%,#42b4a2 25% 50%,#77c4b8 50% 75%,#a8d5cf 75%)}.control-kpis article{min-height:98px;padding:14px 16px;background:#fff}.control-kpis small,.control-kpis b,.control-kpis span{display:block}.control-kpis small{color:var(--fs-text-soft);font-size:8px;font-weight:800}.control-kpis b{margin-top:9px;font:800 27px/1 ui-monospace,monospace}.control-kpis span{margin-top:8px;color:var(--fs-text-faint);font-size:8px}
.flowline-panel,.control-panel{margin-top:10px;overflow:hidden;border:1px solid var(--fs-line);border-radius:9px;background:#fff;box-shadow:var(--fs-shadow-sm)}.flowline-panel>header,.control-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid #e5ebec}.flowline-panel>header div,.control-panel>header div{display:grid;gap:4px}.flowline-panel>header b,.control-panel>header b{font-size:10px}.flowline-panel>header span,.control-panel>header span{color:var(--fs-text-faint);font-size:8px}.flowline-panel>header>span{padding:4px 7px;border-radius:20px;background:var(--fs-mint-100);color:var(--fs-teal-700);font-weight:800}.control-panel>header a{color:var(--fs-teal-700);font-size:8px;font-weight:800;text-decoration:none}
.production-flow{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:18px 14px 20px}.production-flow::before{content:"";position:absolute;left:10%;right:10%;top:36px;height:2px;background:linear-gradient(90deg,var(--fs-teal-600),#a8c8c3)}.production-flow a{position:relative;z-index:1;display:grid;justify-items:center;gap:5px;color:var(--fs-text);text-decoration:none}.production-flow i{width:36px;height:36px;display:grid;place-items:center;border:5px solid #fff;border-radius:50%;background:var(--fs-navy-900);color:#fff;box-shadow:0 0 0 1px var(--fs-line);font:normal 800 8px ui-monospace,monospace}.production-flow a:hover i{background:var(--fs-teal-600);transform:translateY(-2px)}.production-flow b{font-size:9px}.production-flow span{color:var(--fs-text-faint);font-size:8px}
.control-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:10px}.control-panel.wide{grid-column:1/3}.control-pipeline-list{display:grid}.control-pipeline-list>button{display:grid;grid-template-columns:10px minmax(0,1fr) 82px;gap:10px;align-items:center;padding:11px 15px;border:0;border-bottom:1px solid #e8edef;background:#fff;color:var(--fs-text);text-align:left;cursor:pointer}.control-pipeline-list>button:last-child{border-bottom:0}.control-pipeline-list>button:hover{background:var(--fs-mint-50)}.pipeline-state{width:8px;height:8px;display:inline-block;border-radius:50%;background:#9ba9ad}.pipeline-state.running{background:var(--fs-teal-600);box-shadow:0 0 0 4px rgba(25,153,133,.12)}.pipeline-state.complete{background:#3d8bd4}.pipeline-state.paused{background:var(--fs-warning)}.pipeline-state.failed{background:var(--fs-danger)}.control-pipeline-list>button>div{min-width:0;display:grid;grid-template-columns:1fr;gap:3px}.control-pipeline-list b{font-size:9px}.control-pipeline-list small{overflow:hidden;color:var(--fs-text-faint);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.control-pipeline-list i{height:3px;overflow:hidden;border-radius:4px;background:#e5ebec}.control-pipeline-list i em{display:block;height:100%;background:var(--fs-teal-600)}.control-pipeline-list strong{display:grid;gap:3px;text-align:right;font-size:8px}.control-pipeline-list strong small{font:8px ui-monospace,monospace}.control-annotation{min-height:219px;display:grid;grid-template-columns:130px 1fr;align-items:center;gap:16px;padding:18px}.annotation-ring{width:112px;height:112px;display:grid;place-content:center;border-radius:50%;background:conic-gradient(var(--fs-teal-600) var(--progress),#e4ebeb 0);position:relative}.annotation-ring::after{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}.annotation-ring b,.annotation-ring span{position:relative;z-index:1;text-align:center}.annotation-ring b{font:800 21px ui-monospace,monospace}.annotation-ring span{margin-top:3px;color:var(--fs-text-faint);font-size:7px}.control-annotation dl{margin:0}.control-annotation dl>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #e7eded}.control-annotation dt{color:var(--fs-text-soft);font-size:8px}.control-annotation dd{margin:0;font:800 9px ui-monospace,monospace}.control-events{display:grid}.control-events article{display:grid;grid-template-columns:90px 92px minmax(0,1fr);gap:12px;align-items:center;padding:10px 15px;border-bottom:1px solid #e8edef}.control-events time{color:var(--fs-text-faint);font:8px ui-monospace,monospace}.control-events span{width:max-content;padding:3px 5px;border-radius:3px;background:var(--fs-blue-100);color:#47616a;font:700 7px ui-monospace,monospace}.control-events b{font-size:9px}.control-empty{padding:35px;color:var(--fs-text-faint);font-size:9px;text-align:center}
.pipeline-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:13px;overflow:hidden;border:1px solid var(--fs-line);border-radius:8px;background:var(--fs-line)}.pipeline-summary article{display:flex;align-items:baseline;gap:8px;padding:12px 14px;background:#fff}.pipeline-summary b{font:800 18px ui-monospace,monospace}.pipeline-summary span{color:var(--fs-text-soft);font-size:8px}.pipeline-layout{display:grid;grid-template-columns:250px minmax(480px,1fr) 230px;align-items:start;margin-top:10px;overflow:hidden;border:1px solid var(--fs-line);border-radius:9px;background:#fff;box-shadow:var(--fs-shadow-sm)}.pipeline-list,.run-history{min-height:620px;background:#f8fafa}.pipeline-list{border-right:1px solid var(--fs-line)}.run-history{border-left:1px solid var(--fs-line)}.pipeline-list>header,.run-history>header{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 13px;border-bottom:1px solid var(--fs-line)}.pipeline-list>header b,.run-history>header b{font-size:10px}.pipeline-list>header span,.run-history>header span{color:var(--fs-text-faint);font:8px ui-monospace,monospace}.pipeline-list>div{display:grid}.pipeline-list button{display:grid;grid-template-columns:10px minmax(0,1fr) 32px;gap:9px;align-items:center;padding:12px;border:0;border-bottom:1px solid #e6eced;background:transparent;color:var(--fs-text);text-align:left;cursor:pointer}.pipeline-list button.active{background:#fff;box-shadow:inset 3px 0 var(--fs-teal-600)}.pipeline-list button>div{min-width:0;display:grid;gap:4px}.pipeline-list button b,.pipeline-list button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pipeline-list button b{font-size:9px}.pipeline-list button small{color:var(--fs-text-faint);font-size:7px}.pipeline-list button>i{font:normal 800 8px ui-monospace,monospace;text-align:right}.pipeline-canvas{min-width:0}.pipeline-canvas>header{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;border-bottom:1px solid var(--fs-line)}.pipeline-canvas>header>div:first-child{min-width:0;display:grid;gap:3px}.pipeline-canvas>header small{color:var(--fs-teal-700);font:800 7px ui-monospace,monospace}.pipeline-canvas>header b{font-size:12px}.pipeline-canvas>header span{color:var(--fs-text-faint);font-size:8px}.pipeline-canvas>header>div:last-child{display:flex;align-items:center;gap:8px}.pipeline-canvas>header button{min-height:34px;padding:0 11px;border:0;border-radius:5px;background:var(--fs-navy-900);color:#fff;font-size:8px;font-weight:800;cursor:pointer}.pipeline-badge{padding:4px 7px;border-radius:20px;background:#e7ecee;color:var(--fs-text-soft)!important;font-weight:800}.pipeline-badge.running{background:var(--fs-mint-100);color:var(--fs-teal-700)!important}.pipeline-badge.complete{background:#e7f1fb;color:#3472aa!important}.pipeline-flow{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:20px;padding:34px 24px 38px;background-image:linear-gradient(#e9eeee 1px,transparent 1px),linear-gradient(90deg,#e9eeee 1px,transparent 1px);background-size:20px 20px}.pipeline-flow::before{content:"";position:absolute;left:7%;right:7%;top:61px;height:2px;background:#bdcbce}.pipeline-node{position:relative;z-index:1;min-height:120px;display:flex;flex-direction:column;align-items:flex-start;padding:12px;border:1px solid var(--fs-line-strong);border-radius:7px;background:#fff;color:var(--fs-text);text-align:left;box-shadow:0 4px 14px rgba(7,25,34,.07);cursor:pointer}.pipeline-node:hover,.pipeline-node.active{border-color:var(--fs-teal-600);box-shadow:0 0 0 2px rgba(25,153,133,.12)}.pipeline-node>i{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#e6ecee;color:var(--fs-text-soft);font:normal 800 7px ui-monospace,monospace}.pipeline-node.done>i{background:#dfeef9;color:#2d6f9e}.pipeline-node.running>i{background:var(--fs-mint-100);color:var(--fs-teal-700)}.pipeline-node>b{margin-top:12px;font-size:9px}.pipeline-node>span{margin-top:5px;color:var(--fs-text-faint);font-size:7px;line-height:1.5}.pipeline-node>em{position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}.pipeline-node.done>em{background:#4a94ca}.pipeline-node.running>em{background:var(--fs-teal-600)}.pipeline-node-detail{display:grid;grid-template-columns:minmax(180px,.7fr) 1.3fr;gap:18px;padding:16px;border-top:1px solid var(--fs-line)}.pipeline-node-detail>div{display:grid;gap:4px}.pipeline-node-detail small{color:var(--fs-teal-700);font:800 7px ui-monospace,monospace}.pipeline-node-detail b{font-size:11px}.pipeline-node-detail span{color:var(--fs-text-soft);font-size:8px;line-height:1.5}.pipeline-node-detail dl{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0}.pipeline-node-detail dl>div{padding:9px;border:1px solid var(--fs-line);border-radius:4px;background:#f8fafa}.pipeline-node-detail dt{color:var(--fs-text-faint);font:7px ui-monospace,monospace}.pipeline-node-detail dd{margin:5px 0 0;font-size:8px}.run-history>div{display:grid}.run-history article{display:grid;grid-template-columns:9px minmax(0,1fr) 30px;gap:8px;align-items:center;padding:11px;border-bottom:1px solid #e5ebec}.run-history article>div{display:grid;gap:3px}.run-history article b{font-size:8px}.run-history article small{color:var(--fs-text-faint);font-size:7px}.run-history article em{font:normal 800 8px ui-monospace,monospace}.run-empty{padding:28px 14px;color:var(--fs-text-faint);font-size:8px;text-align:center}
.pipeline-dialog{width:min(500px,calc(100vw - 24px));padding:0;border:0;border-radius:10px;box-shadow:0 24px 70px rgba(7,25,34,.3)}.pipeline-dialog::backdrop{background:rgba(7,25,34,.55)}.pipeline-dialog form{display:grid;padding:18px}.pipeline-dialog header{display:flex;justify-content:space-between;gap:15px;padding-bottom:14px;border-bottom:1px solid var(--fs-line)}.pipeline-dialog header small{color:var(--fs-teal-700);font:800 7px ui-monospace,monospace}.pipeline-dialog h2{margin:4px 0 0;font:800 21px Inter,"PingFang SC",sans-serif}.pipeline-dialog header button{width:30px;height:30px;border:1px solid var(--fs-line);border-radius:50%;background:#fff;cursor:pointer}.pipeline-dialog label{display:grid;gap:6px;margin-top:13px;color:var(--fs-text-soft);font-size:9px;font-weight:800}.pipeline-dialog input,.pipeline-dialog select{height:40px;padding:0 10px;border:1px solid var(--fs-line);border-radius:5px;background:#f8fafa;font-size:10px}.pipeline-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:13px;border-top:1px solid var(--fs-line)}.pipeline-dialog footer button{min-height:35px;padding:0 12px;border:1px solid var(--fs-line-strong);border-radius:5px;background:#fff;font-size:9px;font-weight:800;cursor:pointer}.pipeline-dialog footer button:last-child{border-color:var(--fs-navy-900);background:var(--fs-navy-900);color:#fff}
@media(max-width:1180px){.pipeline-layout{grid-template-columns:220px minmax(0,1fr)}.run-history{grid-column:1/3;min-height:0;border-left:0;border-top:1px solid var(--fs-line)}.run-history>div{grid-template-columns:repeat(3,1fr)}.pipeline-flow{grid-template-columns:repeat(3,minmax(120px,1fr))}.control-grid{grid-template-columns:1fr}.control-panel.wide{grid-column:auto}}
@media(max-width:820px){.control-center,.pipeline-center{padding:15px}.control-head,.pipeline-head{display:grid}.control-kpis,.pipeline-summary{grid-template-columns:1fr 1fr}.production-flow{grid-template-columns:1fr}.production-flow::before{left:31px;right:auto;top:28px;bottom:28px;width:2px;height:auto}.production-flow a{grid-template-columns:42px 1fr;justify-items:start;text-align:left}.production-flow i{grid-row:1/3}.control-grid{display:block}.control-panel{margin-top:10px}.pipeline-layout{grid-template-columns:1fr}.pipeline-list{min-height:0;border-right:0;border-bottom:1px solid var(--fs-line)}.pipeline-list>div{grid-template-columns:repeat(3,minmax(180px,1fr));overflow:auto}.pipeline-canvas{min-width:680px}.pipeline-layout{overflow:auto}.run-history{grid-column:auto}.pipeline-node-detail{grid-template-columns:1fr}.pipeline-node-detail dl{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:520px){.control-center,.pipeline-center{padding:11px}.control-head h1,.pipeline-head h1{font-size:24px}.control-kpis,.pipeline-summary{grid-template-columns:1fr}.control-annotation{grid-template-columns:1fr;justify-items:center}.control-annotation dl{width:100%}.control-events article{grid-template-columns:70px 1fr}.control-events article b{grid-column:1/3}.run-history>div{grid-template-columns:1fr}}
