.cgt {
  --cgt-bg: #16181c;
  --cgt-panel: #1f2329;
  --cgt-panel-2: #262b33;
  --cgt-line: #343a44;
  --cgt-text: #e8eaed;
  --cgt-muted: #8b919a;
  --cgt-blue: #3d8bfd;
  --cgt-wait: #6b7280;
  --cgt-submitted: #d4a017;
  --cgt-revise: #e07a3d;
  --cgt-done: #3cb371;
  position: fixed;
  inset: 0;
  display: grid;
  grid-template-rows: 52px minmax(220px, 1fr) minmax(240px, 38%);
  background: var(--cgt-bg);
  color: var(--cgt-text);
  font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  z-index: 20;
}
.cgt * { box-sizing: border-box; }
.cgt .muted { color: var(--cgt-muted); font-size: 12px; }
.cgt .row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cgt .progress { height: 6px; background: #121418; border-radius: 99px; overflow: hidden; }
.cgt .progress > span { display: block; height: 100%; width: 0; background: var(--cgt-blue); }
.cgt .empty { color: var(--cgt-muted); padding: 20px; }
.cgt-top {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 14px;
  border-bottom: 1px solid var(--cgt-line);
  background: #1a1d22;
}
.cgt-top b { font-size: 14px; }
.cgt-top small { color: var(--cgt-muted); margin-left: 8px; }
.cgt-btn {
  border: 1px solid var(--cgt-line);
  background: var(--cgt-panel-2);
  color: var(--cgt-text);
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
}
.cgt-btn.primary { background: var(--cgt-blue); border-color: var(--cgt-blue); color: #fff; }
.cgt-btn.done { background: #245c3b; border-color: var(--cgt-done); color: #c8f0d8; }
.cgt-btn.revise { background: #5a3418; border-color: var(--cgt-revise); color: #ffd4b8; }
.cgt-btn[disabled] { opacity: .5; cursor: wait; }
.cgt-filters { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.cgt-chip {
  border: 1px solid var(--cgt-line);
  background: transparent;
  color: var(--cgt-muted);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 12px;
  cursor: pointer;
}
.cgt-chip.on { background: #1d3b66; color: #cfe3ff; border-color: var(--cgt-blue); }

.cgt-mid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  min-height: 0;
}
.cgt-tasks, .cgt-feedback, .cgt-files {
  min-height: 0;
  overflow: auto;
}
.cgt-tasks { border-right: 1px solid var(--cgt-line); }
.cgt-feedback { background: var(--cgt-panel); }

.cgt table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.cgt th, .cgt td {
  border-bottom: 1px solid var(--cgt-line);
  padding: 8px 10px;
  text-align: left;
  white-space: nowrap;
}
.cgt th { color: var(--cgt-muted); font-weight: 600; background: #1a1d22; position: sticky; top: 0; }
.cgt tr.sel { background: #1d3b66; }
.cgt tr { cursor: pointer; }
.cgt tr:hover { background: #252b34; }
.cgt .stu { display: flex; flex-direction: column; gap: 2px; }
.cgt .stu b { font-size: 13px; }
.cgt .stu span { color: var(--cgt-muted); font-size: 11px; }

.st {
  display: inline-flex;
  min-width: 42px;
  justify-content: center;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 11px;
  color: #fff;
  background: var(--cgt-wait);
}
.st.submitted { background: var(--cgt-submitted); color: #1a1400; }
.st.revise { background: var(--cgt-revise); }
.st.done { background: var(--cgt-done); }

.fb-head { padding: 12px 14px; border-bottom: 1px solid var(--cgt-line); }
.fb-head h3 { margin: 0 0 4px; font-size: 15px; }
.fb-list { padding: 12px 14px; display: grid; gap: 12px; }
.fb-item { background: var(--cgt-panel-2); border-radius: 8px; padding: 10px; }
.fb-item .who { font-size: 12px; color: var(--cgt-muted); margin-bottom: 6px; }
.fb-item .body { white-space: pre-wrap; font-size: 13px; }
.fb-form { padding: 12px 14px; border-top: 1px solid var(--cgt-line); display: grid; gap: 8px; }
.fb-form textarea {
  width: 100%;
  min-height: 72px;
  resize: vertical;
  background: #121418;
  color: var(--cgt-text);
  border: 1px solid var(--cgt-line);
  border-radius: 8px;
  padding: 8px;
  font: inherit;
}

.cgt-files {
  border-top: 1px solid var(--cgt-line);
  background: #191c21;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  gap: 0;
}
.folder {
  border-right: 1px solid var(--cgt-line);
  min-width: 220px;
  display: flex;
  flex-direction: column;
}
.folder.on { background: #1d2530; }
.folder-h {
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 700;
  border-bottom: 1px solid var(--cgt-line);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.folder-h span { color: var(--cgt-muted); font-weight: 400; }
.slot { padding: 8px 10px; border-bottom: 1px dashed #2c323c; }
.slot b { display: block; font-size: 11px; color: #9ec1ff; margin-bottom: 6px; }
.fline {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  padding: 3px 0;
}
.fline em { color: var(--cgt-muted); font-style: normal; font-size: 11px; }
.lock { color: #e07a3d; font-size: 11px; }

@media (max-width: 900px) {
  .cgt {
    position: relative;
    inset: auto;
    min-height: 100vh;
    grid-template-rows: auto auto auto;
  }
  .cgt-mid { grid-template-columns: 1fr; }
  .cgt-files { grid-auto-flow: row; }
  .folder { min-width: 0; border-right: 0; border-bottom: 1px solid var(--cgt-line); }
}
