:root {
  --cdc-ink: #17202a;
  --cdc-muted: #667085;
  --cdc-line: #d9dee5;
  --cdc-paper: #f4f6f8;
  --cdc-panel: #ffffff;
  --cdc-primary: #4d6bfe;
  --cdc-primary-hover: #4058d8;
  --cdc-primary-soft: #eef3ff;
  --cdc-blue: #4d6bfe;
  --cdc-blue-soft: #eef3ff;
  --cdc-amber: #a45b08;
  --cdc-amber-soft: #fff7e8;
  --cdc-red: #b42318;
  --cdc-red-soft: #fff1f0;
  --cdc-shadow: 0 2px 8px rgba(22, 32, 42, 0.07);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-width: 0; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.cdc-ledger {
  min-width: 0;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  color: var(--cdc-ink);
  background: var(--cdc-paper);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
}
body.cdc-ledger:has(dialog[open]) { overflow: hidden; }

.cdc-ledger button,
.cdc-ledger input,
.cdc-ledger select,
.cdc-ledger textarea { font: inherit; letter-spacing: 0; }
.cdc-ledger button { cursor: pointer; }
.cdc-ledger button:focus-visible,
.cdc-ledger input:focus-visible,
.cdc-ledger select:focus-visible,
.cdc-ledger textarea:focus-visible { outline: 3px solid rgba(77, 107, 254, 0.22); outline-offset: 2px; }
.cdc-ledger svg { display: block; }

.cdc-access {
  width: min(420px, calc(100% - 24px));
  min-height: 226px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 12px;
  margin: 12vh auto 0;
  padding: 28px;
  border: 1px solid var(--cdc-line);
  border-radius: 8px;
  background: var(--cdc-panel);
  text-align: center;
  box-shadow: var(--cdc-shadow);
}
.cdc-access h1, .cdc-access p { margin: 0; }
.cdc-access h1 { font-size: 20px; }
.cdc-access p { max-width: 330px; color: var(--cdc-muted); font-size: 13px; line-height: 1.65; }
.cdc-access.error { border-color: #efaca7; background: var(--cdc-red-soft); }
.cdc-spinner {
  width: 31px;
  height: 31px;
  border: 3px solid #dce3fa;
  border-top-color: var(--cdc-primary);
  border-radius: 50%;
  animation: cdc-spin 0.72s linear infinite;
}
@keyframes cdc-spin { to { transform: rotate(360deg); } }

.cdc-app { min-height: 100vh; min-height: 100dvh; }
.cdc-topbar {
  position: sticky;
  z-index: 50;
  top: 0;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px max(20px, calc((100vw - 1480px) / 2));
  border-bottom: 1px solid var(--cdc-line);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 1px 4px rgba(20, 30, 38, 0.05);
}
.cdc-brand { min-width: 0; display: flex; align-items: center; gap: 11px; }
.cdc-brand > span:last-child { min-width: 0; display: grid; }
.cdc-brand strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-top-actions, .cdc-head-actions, .cdc-detail-actions { display: flex; align-items: center; gap: 8px; }
.cdc-top-actions { min-width: 0; flex: 0 1 auto; justify-content: flex-end; }

.cdc-page { width: min(1480px, 100%); display: grid; gap: 10px; margin: 0 auto; padding: 14px 20px max(40px, env(safe-area-inset-bottom)); }
.cdc-command-bar { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.cdc-btn, .cdc-icon-btn {
  min-height: 38px;
  border: 1px solid #ccd3dc;
  border-radius: 5px;
  color: #344054;
  background: #fff;
  font-weight: 720;
}
.cdc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 12px; white-space: nowrap; }
.cdc-btn svg { width: 16px; height: 16px; }
.cdc-btn:hover, .cdc-icon-btn:hover { border-color: #9aabff; background: #f6f8ff; }
.cdc-btn.cdc-primary { border-color: var(--cdc-primary); color: #fff; background: var(--cdc-primary); }
.cdc-btn.cdc-primary:hover { background: var(--cdc-primary-hover); }
.cdc-btn.cdc-danger { color: var(--cdc-red); }
.cdc-btn.cdc-danger:hover { border-color: #e6aaa5; background: var(--cdc-red-soft); }
.cdc-btn:disabled, .cdc-icon-btn:disabled { opacity: 0.55; cursor: wait; }
.cdc-icon-btn { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; }
.cdc-icon-btn svg { width: 17px; height: 17px; }
.cdc-mobile-only { display: none; }
.cdc-visually-hidden { width: 1px; height: 1px; position: absolute; margin: -1px; padding: 0; overflow: hidden; border: 0; clip: rect(0 0 0 0); white-space: nowrap; }

.cdc-kpis { min-width: 0; display: flex; align-items: center; overflow-x: auto; border: 1px solid var(--cdc-line); border-radius: 6px; background: var(--cdc-panel); scrollbar-width: thin; }
.cdc-kpis > div { min-width: max-content; flex: 1 0 auto; display: inline-flex; align-items: baseline; justify-content: center; gap: 7px; padding: 8px 14px; border-right: 1px solid #e6eaee; }
.cdc-kpis > div:last-child { border-right: 0; }
.cdc-kpis span { color: var(--cdc-muted); font-size: 11px; white-space: nowrap; }
.cdc-kpis strong { font-size: 16px; overflow-wrap: anywhere; }
.cdc-message { max-width: min(460px, 55vw); min-height: 36px; display: flex; align-items: center; margin: 0; padding: 7px 10px; border: 1px solid var(--cdc-line); border-radius: 6px; color: var(--cdc-muted); background: #fff; font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.cdc-message.success { border-color: #9bceb5; color: #126c43; background: #effaf3; }
.cdc-message.error { border-color: #efaca7; color: var(--cdc-red); background: var(--cdc-red-soft); }

.cdc-workspace { min-width: 0; min-height: 590px; display: grid; grid-template-columns: 310px minmax(0, 1fr); gap: 14px; }
.cdc-sidebar, .cdc-content { min-width: 0; border: 1px solid var(--cdc-line); border-radius: 7px; background: var(--cdc-panel); box-shadow: var(--cdc-shadow); }
.cdc-sidebar { height: calc(100vh - 164px); height: calc(100dvh - 164px); min-height: 520px; position: sticky; top: 72px; display: grid; grid-template-rows: auto auto minmax(0, 1fr); overflow: hidden; }
.cdc-sidebar-head { min-height: 57px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--cdc-line); }
.cdc-sidebar-head > div { min-width: 0; display: grid; gap: 2px; }
.cdc-sidebar-head strong { font-size: 15px; }
.cdc-sidebar-head small { color: var(--cdc-muted); font-size: 11px; }
.cdc-filters { display: grid; grid-template-columns: minmax(0, 1fr) 102px; gap: 8px; padding: 11px; border-bottom: 1px solid var(--cdc-line); }
.cdc-search { min-width: 0; position: relative; }
.cdc-search svg { width: 16px; height: 16px; position: absolute; left: 11px; top: 50%; color: var(--cdc-muted); pointer-events: none; transform: translateY(-50%); }
.cdc-filters .cdc-search { grid-column: 1 / -1; }
.cdc-filters .cdc-check { min-width: 0; }
.cdc-filter-submit { width: 100%; grid-column: 1 / -1; }
.cdc-ledger input, .cdc-ledger select, .cdc-ledger textarea { min-width: 0; border: 1px solid #cbd2dc; border-radius: 5px; color: var(--cdc-ink); background: #fff; }
.cdc-ledger input, .cdc-ledger select { min-height: 38px; padding: 0 9px; }
.cdc-ledger .cdc-search input { width: 100%; padding-left: 36px; }
.cdc-ledger textarea { padding: 9px; resize: vertical; line-height: 1.55; }
.cdc-check { display: inline-flex; align-items: center; gap: 7px; color: #475467; font-size: 12px; }
.cdc-check input, .cdc-check-line input { width: 16px; height: 16px; min-height: 0; padding: 0; }
.cdc-intern-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.cdc-intern-item { width: 100%; min-height: 101px; display: grid; gap: 5px; padding: 12px 13px; border: 0; border-bottom: 1px solid #e8ebef; color: var(--cdc-ink); background: #fff; text-align: left; }
.cdc-intern-item:hover { background: #f8faff; }
.cdc-intern-item.active { box-shadow: inset 3px 0 var(--cdc-primary); background: var(--cdc-primary-soft); }
.cdc-intern-item.archived { opacity: 0.65; }
.cdc-intern-item > span:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cdc-intern-item strong { min-width: 0; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-intern-item small { overflow: hidden; color: var(--cdc-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-intern-item .cdc-current-department { color: #4058d8; font-weight: 700; }
.cdc-pill, .cdc-status { display: inline-flex; align-items: center; width: fit-content; padding: 3px 7px; border-radius: 999px; color: #3f56c7; background: #edf2ff; font-size: 11px; font-weight: 750; white-space: nowrap; }
.cdc-pill.ended, .cdc-status.ended { color: #475467; background: #eef0f3; }
.cdc-pill.warn, .cdc-status.warn { color: var(--cdc-amber); background: var(--cdc-amber-soft); }
.cdc-pill.leave, .cdc-status.leave { color: #a1261d; background: #fff0ee; }
.cdc-pill.pending, .cdc-status.pending { color: #9a5b00; background: #fff4d6; }
.cdc-pill.paused, .cdc-status.paused { color: #73510d; background: #f5ead2; }
.cdc-pill.ending, .cdc-status.ending { color: #a14f00; background: #ffead7; }
.cdc-list-empty { display: grid; place-content: center; min-height: 180px; padding: 24px; color: var(--cdc-muted); font-size: 13px; text-align: center; }

.cdc-sidebar-backdrop { display: none; }
.cdc-content { min-height: 590px; overflow: hidden; }
.cdc-empty { min-height: 590px; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 28px; color: var(--cdc-muted); text-align: center; }
.cdc-empty svg { width: 36px; height: 36px; color: #82908e; }
.cdc-empty h2, .cdc-empty p { margin: 0; }
.cdc-empty h2 { color: var(--cdc-ink); font-size: 19px; }
.cdc-empty p { max-width: 360px; font-size: 13px; line-height: 1.6; }
.cdc-detail { min-width: 0; }
.cdc-detail-head { min-height: 88px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 15px 17px; border-bottom: 1px solid var(--cdc-line); }
.cdc-avatar { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 7px; color: #fff; background: #4d6bfe; font-size: 17px; font-weight: 800; }
.cdc-person { min-width: 0; display: grid; gap: 5px; }
.cdc-person > div { min-width: 0; display: flex; align-items: center; gap: 8px; }
.cdc-person h2, .cdc-person p { margin: 0; }
.cdc-person h2 { overflow: hidden; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-person p { overflow: hidden; color: var(--cdc-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-tabs { display: flex; gap: 2px; padding: 0 12px; border-bottom: 1px solid var(--cdc-line); overflow-x: auto; scrollbar-width: thin; }
.cdc-tabs button { min-height: 48px; flex: 0 0 auto; padding: 0 11px; border: 0; border-bottom: 2px solid transparent; color: var(--cdc-muted); background: transparent; font-size: 13px; font-weight: 700; }
.cdc-tabs button:hover { color: var(--cdc-primary); }
.cdc-tabs button.active { border-bottom-color: var(--cdc-primary); color: var(--cdc-primary); }
.cdc-tab-panel { display: none; min-width: 0; padding: 17px; }
.cdc-tab-panel.active { display: block; }
.cdc-section-head { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.cdc-section-head h3, .cdc-section-head p { margin: 0; }
.cdc-section-head h3 { font-size: 16px; }
.cdc-section-head p { margin-top: 3px; color: var(--cdc-muted); font-size: 12px; }
.cdc-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.cdc-info { min-width: 0; min-height: 68px; padding: 11px 12px; border: 1px solid #e1e6eb; border-radius: 6px; background: #f9fafb; }
.cdc-info.wide { grid-column: 1 / -1; }
.cdc-info span { display: block; color: var(--cdc-muted); font-size: 11px; }
.cdc-info strong { display: block; margin-top: 5px; font-size: 13px; font-weight: 650; line-height: 1.55; overflow-wrap: anywhere; white-space: pre-wrap; }
.cdc-table-wrap { width: 100%; overflow: auto; }
.cdc-ledger table { width: 100%; border-collapse: collapse; font-size: 12px; }
.cdc-ledger th, .cdc-ledger td { padding: 10px; border-bottom: 1px solid #e7ebef; text-align: left; vertical-align: middle; white-space: nowrap; }
.cdc-ledger th { color: #475467; background: #f8fafb; font-size: 11px; }
.cdc-ledger td.cdc-wrap { min-width: 170px; max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-row-actions { display: flex; gap: 6px; }
.cdc-row-actions button { min-height: 31px; padding: 0 8px; border: 1px solid #d4dae1; border-radius: 4px; color: #475467; background: #fff; font-size: 11px; }
.cdc-row-actions button:hover { border-color: #9aabff; color: var(--cdc-primary); }
.cdc-row-actions button.danger:hover { border-color: #e6aaa5; color: var(--cdc-red); background: var(--cdc-red-soft); }
.cdc-table-empty td { height: 150px; color: var(--cdc-muted); text-align: center; }
.cdc-audit { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.cdc-audit li { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; padding: 12px 0 12px 18px; border-left: 2px solid #d7dfdf; color: #475467; font-size: 12px; line-height: 1.55; }
.cdc-audit li::before { position: absolute; left: -6px; top: 16px; width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; background: var(--cdc-primary); content: ""; }
.cdc-audit time { color: var(--cdc-muted); }

.cdc-view-switch {
  width: fit-content;
  display: inline-flex;
  gap: 3px;
  padding: 3px;
  border: 1px solid #cfd6de;
  border-radius: 6px;
  background: #e9edf1;
}
.cdc-view-switch button, .cdc-segmented button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  border: 0;
  border-radius: 4px;
  color: #596473;
  background: transparent;
  font-size: 12px;
  font-weight: 750;
}
.cdc-view-switch button.active, .cdc-segmented button.active { color: var(--cdc-primary-hover); background: #fff; box-shadow: 0 1px 3px rgba(18, 30, 40, 0.12); }
.cdc-view-switch svg { width: 15px; height: 15px; }

.cdc-schedule-workspace {
  min-width: 0;
  border: 1px solid var(--cdc-line);
  border-radius: 7px;
  background: var(--cdc-panel);
  box-shadow: var(--cdc-shadow);
  overflow: hidden;
}
.cdc-schedule-head { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 17px; border-bottom: 1px solid var(--cdc-line); }
.cdc-schedule-head h2, .cdc-schedule-head p { margin: 0; }
.cdc-schedule-head h2 { font-size: 18px; }
.cdc-schedule-head p { margin-top: 4px; color: var(--cdc-muted); font-size: 12px; }
.cdc-schedule-head-actions { display: flex; align-items: center; gap: 8px; }
.cdc-schedule-controls {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) minmax(170px, 230px) auto auto;
  align-items: end;
  gap: 10px;
  padding: 14px 17px;
  border-bottom: 1px solid var(--cdc-line);
  background: #f8fafb;
}
.cdc-schedule-controls > label { min-width: 0; display: grid; gap: 5px; }
.cdc-schedule-controls > label > span { color: #475467; font-size: 11px; font-weight: 700; }
.cdc-schedule-controls input, .cdc-schedule-controls select { width: 100%; }
.cdc-segmented { display: inline-flex; align-self: end; gap: 2px; padding: 2px; border: 1px solid #cfd6de; border-radius: 5px; background: #e9edf1; }
.cdc-zoom button { min-width: 38px; padding: 0 8px; }
.cdc-schedule-summary { min-height: 40px; display: flex; align-items: center; padding: 10px 17px; border-bottom: 1px solid #e7ebef; color: var(--cdc-muted); font-size: 12px; }
.cdc-schedule-meta { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-right: 17px; border-bottom: 1px solid #e7ebef; }
.cdc-schedule-meta .cdc-schedule-summary { flex: 1 1 auto; border-bottom: 0; }
.cdc-timeline-tools { display: inline-flex; align-items: center; gap: 8px; }
.cdc-timeline-tools > label { min-height: 32px; display: inline-flex; align-items: center; gap: 6px; color: #596473; font-size: 10px; font-weight: 700; white-space: nowrap; }
.cdc-timeline-tools select { width: 92px; min-height: 32px; padding-block: 0; font-size: 11px; }
.cdc-density-control { min-width: 185px; }
.cdc-density-control input { width: 104px; min-height: 0; padding: 0; accent-color: var(--cdc-primary); }
.cdc-density-control output { min-width: 28px; color: var(--cdc-primary); font-size: 10px; }
.cdc-schedule-tip { display: inline-flex; align-items: center; gap: 5px; color: #687586; font-size: 10px; white-space: nowrap; }
.cdc-schedule-tip svg { width: 13px; height: 13px; }
.cdc-range-button {
  min-width: 0;
  min-height: 40px;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  border: 1px solid #c9d1da;
  border-radius: 5px;
  color: var(--cdc-ink);
  background: #fff;
  text-align: left;
}
.cdc-range-button:hover { border-color: #91a3f7; background: #fafbff; }
.cdc-range-button > svg { width: 16px; height: 16px; color: var(--cdc-primary); }
.cdc-range-button > span { min-width: 0; display: grid; gap: 1px; }
.cdc-range-button small { color: var(--cdc-muted); font-size: 9px; }
.cdc-range-button strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-schedule-chart, .cdc-personal-schedule { min-width: 0; }
.cdc-schedule-chart { padding: 16px 17px 20px; }
.cdc-personal-schedule { margin-bottom: 14px; padding: 11px; border: 1px solid #e0e5ea; border-radius: 6px; background: #fbfcfd; }
.cdc-chart-empty { min-height: 94px; display: grid; place-content: center; color: var(--cdc-muted); font-size: 12px; text-align: center; }
.cdc-gantt-scroll { min-width: 0; max-height: min(65vh, 680px); overflow: auto; border: 1px solid #dfe4e9; border-radius: 6px; background: #fff; overscroll-behavior: contain; }
.cdc-gantt { width: max-content; min-width: 100%; display: grid; grid-template-columns: 190px var(--cdc-timeline-width); }
.cdc-gantt-scroll.compact { max-height: 260px; }
.cdc-gantt-scroll.compact .cdc-gantt { grid-template-columns: 138px var(--cdc-timeline-width); }
.cdc-gantt-corner, .cdc-gantt-axis { min-height: 39px; border-bottom: 1px solid #dfe4e9; background: #f7f9fa; }
.cdc-gantt-corner { position: sticky; z-index: 6; top: 0; left: 0; display: flex; align-items: center; padding: 0 11px; border-right: 1px solid #dfe4e9; color: #475467; font-size: 11px; font-weight: 750; }
.cdc-gantt-axis { position: sticky; z-index: 5; top: 0; overflow: hidden; }
.cdc-gantt-axis span { position: absolute; top: 11px; padding-left: 5px; border-left: 1px solid #c7d0d9; color: var(--cdc-muted); font-size: 10px; white-space: nowrap; }
.cdc-gantt-row-label { min-width: 0; position: sticky; z-index: 4; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 8px 9px 8px 11px; border-right: 1px solid #e0e5ea; border-bottom: 1px solid #e7ebef; background: #fff; }
.cdc-gantt-row-label > span { min-width: 0; display: grid; gap: 2px; }
.cdc-gantt-row-label strong, .cdc-gantt-row-label small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-gantt-row-label strong { font-size: 12px; }
.cdc-gantt-row-label small { color: var(--cdc-muted); font-size: 9px; font-weight: 500; }
.cdc-gantt-row-label button { width: 26px; height: 26px; flex: 0 0 26px; display: grid; place-content: center; padding: 0; border: 1px solid #d4dae1; border-radius: 4px; color: var(--cdc-primary); background: #fff; }
.cdc-gantt-row-label button:hover { border-color: #9aabff; background: #f4f6ff; }
.cdc-gantt-row-label button svg { width: 13px; height: 13px; }
.cdc-gantt-track {
  min-height: 42px;
  position: relative;
  border-bottom: 1px solid #e7ebef;
  background-color: #fff;
  background-image:
    repeating-linear-gradient(to right, transparent 0 var(--cdc-saturday-start), rgba(39, 91, 127, 0.045) var(--cdc-saturday-start) var(--cdc-saturday-end), transparent var(--cdc-saturday-end) var(--cdc-week-width)),
    repeating-linear-gradient(to right, transparent 0 var(--cdc-sunday-start), rgba(39, 91, 127, 0.045) var(--cdc-sunday-start) var(--cdc-sunday-end), transparent var(--cdc-sunday-end) var(--cdc-week-width)),
    repeating-linear-gradient(to right, transparent 0, transparent calc(var(--cdc-day-width) - 1px), #eef1f4 calc(var(--cdc-day-width) - 1px), #eef1f4 var(--cdc-day-width));
}
.cdc-today-line { width: 2px; height: 100%; position: absolute; z-index: 1; top: 0; background: #d1453b; opacity: 0.65; pointer-events: none; }
.cdc-gantt-bar {
  height: 27px;
  position: absolute;
  z-index: 2;
  display: flex;
  align-items: center;
  padding: 0 7px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 3px;
  color: #fff;
  font-size: 10px;
  font-weight: 750;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(20, 30, 40, 0.2);
  touch-action: pan-y;
}
.cdc-gantt-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; }
.cdc-gantt-bar.draggable { cursor: grab; }
.cdc-gantt-bar.draggable:hover { filter: brightness(1.08); box-shadow: 0 2px 7px rgba(20, 30, 40, 0.28); }
.cdc-gantt-bar.dragging { z-index: 8; cursor: grabbing; opacity: 0.9; box-shadow: 0 6px 18px rgba(20, 30, 40, 0.32); }
.cdc-gantt-bar.conflict { background: var(--cdc-red) !important; outline: 2px solid rgba(184, 51, 45, 0.2); }
body.cdc-dragging { cursor: grabbing; user-select: none; }

.cdc-dialog { width: min(880px, calc(100% - 24px)); max-height: calc(100vh - 30px); max-height: calc(100dvh - 30px); padding: 0; border: 1px solid var(--cdc-line); border-radius: 8px; color: var(--cdc-ink); background: #fff; box-shadow: 0 18px 52px rgba(18, 30, 40, 0.24); }
.cdc-dialog::backdrop { background: rgba(10, 21, 29, 0.46); }
.cdc-dialog form { max-height: inherit; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.cdc-dialog header, .cdc-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; }
.cdc-dialog header { border-bottom: 1px solid var(--cdc-line); }
.cdc-dialog footer { justify-content: flex-end; border-top: 1px solid var(--cdc-line); }
.cdc-dialog h2, .cdc-dialog p { margin: 0; }
.cdc-dialog h2 { font-size: 18px; }
.cdc-dialog p { margin-top: 3px; color: var(--cdc-muted); font-size: 11px; }
.cdc-dialog-body { min-width: 0; overflow: auto; padding: 16px; }
.cdc-dialog fieldset { min-width: 0; margin: 0 0 14px; padding: 13px; border: 1px solid #dfe4e9; border-radius: 6px; }
.cdc-dialog fieldset:last-child { margin-bottom: 0; }
.cdc-dialog legend { padding: 0 5px; color: #475467; font-size: 12px; font-weight: 750; }
.cdc-print-dialog { width: min(1120px, calc(100% - 24px)); }
.cdc-print-body { display: grid; grid-template-columns: 300px minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 13px; }
.cdc-print-modes { grid-column: 1 / -1; width: 100%; align-self: auto; }
.cdc-print-modes button { flex: 1 1 0; }
.cdc-print-controls { min-width: 0; display: grid; align-content: start; gap: 10px; }
.cdc-print-layout-field { min-width: 0; display: grid; gap: 7px; padding: 12px; border: 1px solid #b8c8ff; border-radius: 6px; background: #f2f5ff; }
.cdc-print-layout-field > span { display: flex; align-items: center; gap: 6px; color: #2f4bb2; font-size: 12px; font-weight: 800; }
.cdc-print-layout-field > span svg { width: 15px; height: 15px; }
.cdc-print-layout-field select { width: 100%; }
.cdc-print-config { min-width: 0; align-content: start; display: grid; gap: 12px; padding: 13px; border: 1px solid #dfe4e9; border-radius: 6px; background: #f8fafb; }
.cdc-print-config > label, .cdc-print-custom-head > label { min-width: 0; display: grid; gap: 5px; }
.cdc-print-config > label > span, .cdc-print-custom-head > label > span { color: #475467; font-size: 11px; font-weight: 700; }
.cdc-print-config input, .cdc-print-config select { width: 100%; }
.cdc-print-config > .cdc-check { display: flex; }
.cdc-print-config > .cdc-check input { width: 16px; }
.cdc-print-custom { gap: 10px; }
.cdc-print-custom-head { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cdc-print-custom fieldset { margin: 0; padding: 10px; background: #fff; }
.cdc-print-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 10px; }
.cdc-print-controls .cdc-print-custom-head { grid-template-columns: minmax(0, 1fr); }
.cdc-print-controls .cdc-print-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cdc-print-fields label { min-width: 0; display: flex; align-items: center; gap: 6px; color: #475467; font-size: 10px; }
.cdc-print-fields input { width: 15px; height: 15px; min-height: 0; flex: 0 0 15px; accent-color: var(--cdc-primary); }
.cdc-print-preview { min-width: 0; min-height: 370px; max-height: 58vh; padding: 18px; overflow: auto; border: 1px solid #dfe4e9; border-radius: 6px; background: #eef1f4; }
.cdc-print-preview > p { display: grid; place-content: center; min-height: 330px; color: var(--cdc-muted); text-align: center; }
.cdc-print-sheet { display: none; }
.cdc-print-document { width: 794px; min-width: 794px; box-sizing: border-box; padding: 57px; color: #111827; background: #fff; font-family: "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 15px; line-height: 1.55; }
.cdc-print-document > header, .cdc-dialog .cdc-print-document > header { display: block; padding: 0 0 18px; border: 0; border-bottom: 2px solid #27313d; text-align: center; }
.cdc-print-document h1 { margin: 0; font-size: 35px; line-height: 1.3; letter-spacing: 0; }
.cdc-print-document > header h2, .cdc-dialog .cdc-print-document > header h2 { margin: 10px 0 0; font-size: 24px; line-height: 1.35; font-weight: 750; }
.cdc-print-mentor { display: flex; align-items: baseline; gap: 12px; margin: 24px 0 0; color: #4b5563; font-size: 16px; }
.cdc-print-mentor span { flex: 0 0 auto; font-weight: 700; }
.cdc-print-mentor strong { color: #111827; font-size: 24px; line-height: 1.3; overflow-wrap: anywhere; }
.cdc-print-table-wrap { width: 100%; margin-top: 20px; overflow: visible; }
.cdc-print-document table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.5; }
.cdc-print-document th, .cdc-print-document td { padding: 9px 10px; border: 1px solid #9ca3af; text-align: left; vertical-align: top; white-space: normal; overflow-wrap: anywhere; }
.cdc-print-document th { color: #111827; background: #eef0f2; font-weight: 750; }
.cdc-print-table-wrap.rotations :is(th, td):nth-child(2),
.cdc-print-table-wrap.rotations :is(th, td):nth-child(3),
.cdc-print-table-wrap.rotations :is(th, td):nth-child(5) { white-space: nowrap; overflow-wrap: normal; }
.cdc-print-person { margin-top: 24px; }
.cdc-print-person + .cdc-print-person { padding-top: 21px; border-top: 1px solid #9ca3af; }
.cdc-print-person h2, .cdc-dialog .cdc-print-person h2 { margin: 0 0 12px; font-size: 21px; line-height: 1.4; }
.cdc-print-person h3 { margin: 16px 0 0; font-size: 17px; line-height: 1.4; }
.cdc-print-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; border-top: 1px solid #b9c0c8; border-left: 1px solid #b9c0c8; }
.cdc-print-info > div { min-width: 0; display: grid; grid-template-columns: 116px minmax(0, 1fr); border-right: 1px solid #b9c0c8; border-bottom: 1px solid #b9c0c8; }
.cdc-print-info dt, .cdc-print-info dd { min-width: 0; margin: 0; padding: 8px 9px; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.cdc-print-info dt { background: #eef0f2; font-weight: 700; }
.cdc-print-empty { margin: 27px 0; color: #6b7280; font-size: 17px; text-align: center; }
.cdc-print-document > .cdc-print-signature, .cdc-dialog .cdc-print-document > .cdc-print-signature {
  display: block;
  margin-top: 33px;
  padding: 17px 0 0;
  border: 0;
  border-top: 1px solid #9ca3af;
  color: #111827;
  font-size: 17px;
  line-height: 1.5;
  text-align: right;
}
.cdc-print-signature > div { display: inline-grid; justify-items: start; gap: 7px; min-width: 330px; text-align: left; }
.cdc-print-signature strong, .cdc-print-signature span { display: block; }

.cdc-print-layout-blue > header, .cdc-dialog .cdc-print-layout-blue > header {
  padding: 13px 16px;
  border-left: 5px solid #2563a8;
  border-bottom: 1px solid #b8d4ef;
  background: #eef6ff;
  text-align: left;
}
.cdc-print-layout-blue h1 { color: #164f83; }
.cdc-print-layout-blue > header h2, .cdc-dialog .cdc-print-layout-blue > header h2 { color: #2563a8; }
.cdc-print-layout-blue th { color: #fff; border-color: #2563a8; background: #2563a8; }
.cdc-print-layout-blue td { border-color: #a9bfd3; }
.cdc-print-layout-blue .cdc-print-info { border-color: #9ebad4; }
.cdc-print-layout-blue .cdc-print-info > div { border-color: #9ebad4; }
.cdc-print-layout-blue .cdc-print-info dt { color: #164f83; background: #e7f2fc; }
.cdc-print-layout-blue .cdc-print-person h2 { padding-left: 8px; border-left: 3px solid #2563a8; color: #164f83; }
.cdc-print-layout-blue .cdc-print-signature { border-top-color: #8fb2d1; color: #164f83; }

.cdc-print-layout-formal > header, .cdc-dialog .cdc-print-layout-formal > header {
  padding: 4px 0 13px;
  border-top: 4px double #111827;
  border-bottom: 4px double #111827;
}
.cdc-print-layout-formal h1 { font-family: "SimSun", "Songti SC", serif; font-size: 38px; font-weight: 700; }
.cdc-print-layout-formal > header h2, .cdc-dialog .cdc-print-layout-formal > header h2 { font-family: "SimSun", "Songti SC", serif; }
.cdc-print-layout-formal table { border: 2px solid #111827; }
.cdc-print-layout-formal th, .cdc-print-layout-formal td { border-color: #4b5563; }
.cdc-print-layout-formal th { background: #fff; border-bottom: 2px solid #111827; text-align: center; }
.cdc-print-layout-formal .cdc-print-info { border-top: 2px solid #4b5563; border-left: 2px solid #4b5563; }
.cdc-print-layout-formal .cdc-print-info > div { border-color: #4b5563; }
.cdc-print-layout-formal .cdc-print-info dt { background: #f4f4f5; }
.cdc-print-layout-formal .cdc-print-person + .cdc-print-person { border-top: 2px solid #4b5563; }
.cdc-print-layout-formal .cdc-print-signature { border-top: 0; }

.cdc-print-layout-compact { padding: 38px 42px; font-size: 13px; line-height: 1.35; }
.cdc-print-layout-compact > header, .cdc-dialog .cdc-print-layout-compact > header {
  padding-bottom: 5px;
  border-bottom-width: 1px;
  text-align: left;
}
.cdc-print-layout-compact h1 { font-size: 24px; }
.cdc-print-layout-compact > header h2, .cdc-dialog .cdc-print-layout-compact > header h2 { margin-top: 3px; font-size: 18px; }
.cdc-print-layout-compact .cdc-print-mentor { margin-top: 9px; font-size: 13px; }
.cdc-print-layout-compact .cdc-print-mentor strong { font-size: 18px; }
.cdc-print-layout-compact .cdc-print-table-wrap { margin-top: 6px; }
.cdc-print-layout-compact table { font-size: 13px; line-height: 1.25; }
.cdc-print-layout-compact th, .cdc-print-layout-compact td { padding: 3px 5px; }
.cdc-print-layout-compact .cdc-print-person { margin-top: 8px; }
.cdc-print-layout-compact .cdc-print-person + .cdc-print-person { padding-top: 7px; }
.cdc-print-layout-compact .cdc-print-person h2, .cdc-dialog .cdc-print-layout-compact .cdc-print-person h2 { margin-bottom: 4px; font-size: 16px; }
.cdc-print-layout-compact .cdc-print-person h3 { margin-top: 5px; font-size: 13px; }
.cdc-print-layout-compact .cdc-print-info > div { grid-template-columns: 96px minmax(0, 1fr); }
.cdc-print-layout-compact .cdc-print-info dt, .cdc-print-layout-compact .cdc-print-info dd { padding: 3px 5px; font-size: 12px; line-height: 1.25; }
.cdc-print-layout-compact > .cdc-print-signature, .cdc-dialog .cdc-print-layout-compact > .cdc-print-signature { margin-top: 10px; padding-top: 6px; font-size: 13px; }

.cdc-print-layout-traditional {
  padding: 140px 102px 132px;
  font-family: "FangSong", "STFangsong", "仿宋_GB2312", "SimSun", serif;
  font-size: 21px;
  line-height: 1.75;
}
.cdc-print-layout-traditional > header, .cdc-dialog .cdc-print-layout-traditional > header { padding: 0 0 18px; border: 0; text-align: center; }
.cdc-print-layout-traditional h1,
.cdc-print-layout-traditional > header h2,
.cdc-dialog .cdc-print-layout-traditional > header h2 {
  font-family: "FZXiaoBiaoSong-B05S", "方正小标宋简体", "STZhongsong", "SimSun", serif;
  font-size: 29px;
  font-weight: 400;
  line-height: 1.45;
}
.cdc-print-layout-traditional > header h2, .cdc-dialog .cdc-print-layout-traditional > header h2 { margin-top: 3px; }
.cdc-print-layout-traditional .cdc-print-mentor { margin-top: 14px; color: #000; font-size: 21px; }
.cdc-print-layout-traditional .cdc-print-mentor strong { color: #000; font-size: 24px; }
.cdc-print-layout-traditional .cdc-print-person h2 { font-family: "SimHei", "STHeiti", sans-serif; font-size: 21px; font-weight: 400; }
.cdc-print-layout-traditional .cdc-print-person h3 { font-family: "KaiTi", "STKaiti", serif; font-size: 21px; font-weight: 400; }
.cdc-print-layout-traditional .cdc-print-person { margin-top: 12px; }
.cdc-print-layout-traditional .cdc-print-person + .cdc-print-person { padding-top: 10px; }
.cdc-print-layout-traditional .cdc-print-person h2, .cdc-dialog .cdc-print-layout-traditional .cdc-print-person h2 { margin-bottom: 6px; }
.cdc-print-layout-traditional .cdc-print-person h3 { margin-top: 8px; }
.cdc-print-layout-traditional .cdc-print-table-wrap { margin-top: 8px; }
.cdc-print-layout-traditional table { border: 1.5px solid #000; font-family: "FangSong", "STFangsong", "仿宋_GB2312", "SimSun", serif; font-size: 14px; line-height: 1.25; }
.cdc-print-layout-traditional th, .cdc-print-layout-traditional td { padding: 3px 4px; border-color: #000; }
.cdc-print-layout-traditional th { background: #fff; text-align: center; }
.cdc-print-layout-traditional .cdc-print-info { border-color: #000; }
.cdc-print-layout-traditional .cdc-print-info > div { grid-template-columns: 98px minmax(0, 1fr); border-color: #000; }
.cdc-print-layout-traditional .cdc-print-info dt, .cdc-print-layout-traditional .cdc-print-info dd { padding: 3px 4px; font-size: 14px; line-height: 1.25; }
.cdc-print-layout-traditional .cdc-print-info dt { background: #fff; }
.cdc-print-layout-traditional .cdc-print-person + .cdc-print-person { border-top-color: #000; }
.cdc-print-layout-traditional > .cdc-print-signature, .cdc-dialog .cdc-print-layout-traditional > .cdc-print-signature { border-top: 0; font-size: 21px; }
.cdc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cdc-form-grid label { min-width: 0; display: grid; align-content: start; gap: 5px; }
.cdc-form-grid label > span { color: #475467; font-size: 12px; font-weight: 650; }
.cdc-form-grid input, .cdc-form-grid select { width: 100%; }
.cdc-span-2 { grid-column: 1 / -1; }
.cdc-check-line { min-height: 38px; display: flex !important; flex-direction: row; align-items: center; gap: 8px !important; padding-top: 19px; }
.cdc-child-dialog { width: min(650px, calc(100% - 24px)); }
.cdc-file-field { min-width: 0; display: grid; gap: 5px; }
.cdc-file-field > span { color: #475467; font-size: 11px; font-weight: 700; }
.cdc-department-list { display: grid; border: 1px solid #dfe4e9; border-radius: 6px; overflow: hidden; }
.cdc-department-row { min-height: 59px; display: grid; grid-template-columns: 13px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 9px 11px; border-bottom: 1px solid #e7ebef; }
.cdc-department-row:last-child { border-bottom: 0; }
.cdc-department-row > i { width: 13px; height: 32px; border-radius: 3px; }
.cdc-department-row > span { min-width: 0; display: grid; gap: 2px; }
.cdc-department-row strong { font-size: 13px; }
.cdc-department-row small { color: var(--cdc-muted); font-size: 10px; }
.cdc-department-row > div { display: flex; gap: 6px; }
.cdc-department-row button { min-height: 31px; padding: 0 9px; border: 1px solid #d4dae1; border-radius: 4px; color: #475467; background: #fff; font-size: 11px; }
.cdc-department-row button.danger { color: var(--cdc-red); }
.cdc-import-dialog { width: min(620px, calc(100% - 24px)); }
.cdc-import-guide { display: flex; align-items: center; gap: 12px; margin-bottom: 15px; padding: 12px; border: 1px solid #d7e0ff; border-radius: 6px; background: #f5f7ff; }
.cdc-import-guide p { margin: 0; line-height: 1.55; }
.cdc-file-field { margin-top: 12px; }
.cdc-file-field input, .cdc-file-field select { width: 100%; }

.cdc-schedule-dialog { width: min(840px, calc(100% - 24px)); }
.cdc-assignment-grid { display: grid; grid-template-columns: minmax(250px, 0.85fr) minmax(300px, 1.15fr); gap: 16px; }
.cdc-people-picker { min-width: 0; }
.cdc-field-label { min-height: 25px; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.cdc-field-label > span, .cdc-assignment-fields label > span { color: #475467; font-size: 11px; font-weight: 750; }
.cdc-field-label button { padding: 0; border: 0; color: var(--cdc-primary); background: transparent; font-size: 10px; font-weight: 700; }
.cdc-people-picker .cdc-search { margin-bottom: 8px; }
.cdc-people-list { max-height: 282px; overflow-y: auto; border: 1px solid #dfe4e9; border-radius: 5px; background: #fff; }
.cdc-people-list > label { min-height: 49px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 8px; padding: 7px 9px; border-bottom: 1px solid #edf0f3; cursor: pointer; }
.cdc-people-list > label:last-child { border-bottom: 0; }
.cdc-people-list > label:hover { background: #f6f8ff; }
.cdc-people-list input { width: 16px; height: 16px; accent-color: var(--cdc-primary); }
.cdc-people-list span { min-width: 0; display: grid; gap: 2px; }
.cdc-people-list strong, .cdc-people-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-people-list strong { font-size: 12px; }
.cdc-people-list small { color: var(--cdc-muted); font-size: 9px; }
.cdc-fixed-person { min-height: 76px; align-content: center; gap: 3px; padding: 11px 13px; border-left: 3px solid var(--cdc-primary); background: #f5f7ff; }
.cdc-fixed-person:not([hidden]) { display: grid; }
.cdc-fixed-person span, .cdc-fixed-person small { color: var(--cdc-muted); font-size: 10px; }
.cdc-fixed-person strong { font-size: 15px; }
.cdc-assignment-fields, .cdc-assignment-fields > label, #cdcAssignDetails, #cdcAssignDetails > label { min-width: 0; display: grid; gap: 5px; }
.cdc-assignment-fields { align-content: start; gap: 12px; }
.cdc-assignment-fields select, .cdc-assignment-fields input, .cdc-assignment-fields textarea { width: 100%; }
#cdcAssignDetails { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#cdcAssignDetails .cdc-wide { grid-column: 1 / -1; }
.cdc-schedule-conflict { margin-top: 13px; padding: 10px 12px; border-left: 3px solid var(--cdc-red); color: #852d29; background: #fff4f3; font-size: 11px; line-height: 1.55; }

.cdc-calendar-dialog { width: min(760px, calc(100% - 24px)); }
.cdc-calendar-nav { display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px; align-items: center; margin-bottom: 12px; }
.cdc-calendar-nav strong { text-align: center; font-size: 13px; }
.cdc-calendar-months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.cdc-calendar-month h3 { margin: 0 0 8px; font-size: 13px; text-align: center; }
.cdc-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(32px, 1fr)); gap: 3px; }
.cdc-calendar-grid .weekday, .cdc-calendar-grid .blank { min-height: 28px; display: grid; place-content: center; color: var(--cdc-muted); font-size: 10px; }
.cdc-calendar-grid button { height: 34px; padding: 0; border: 0; border-radius: 4px; color: var(--cdc-ink); background: transparent; font-size: 11px; }
.cdc-calendar-grid button:hover { background: #edf2ff; }
.cdc-calendar-grid button.today { box-shadow: inset 0 0 0 1px var(--cdc-primary); }
.cdc-calendar-grid button.in-range { border-radius: 0; background: #e4eaff; }
.cdc-calendar-grid button.range-start, .cdc-calendar-grid button.range-end { color: #fff; background: var(--cdc-primary); font-weight: 800; }
.cdc-calendar-selection { min-height: 38px; display: flex; align-items: center; justify-content: center; margin-top: 13px; padding: 8px 11px; color: #475467; background: #f6f8fa; font-size: 11px; }

@media (max-width: 980px) {
  .cdc-head-actions { flex: 0 0 auto; }
  .cdc-workspace { grid-template-columns: 270px minmax(0, 1fr); }
  .cdc-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdc-schedule-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cdc-segmented { grid-column: 1 / -1; width: fit-content; }
  .cdc-schedule-controls > .cdc-btn { align-self: end; }
}

@media (max-width: 760px) {
  body.cdc-ledger.cdc-sidebar-open { overflow: hidden; }
  .cdc-mobile-only { display: grid; }
  .cdc-topbar { gap: 6px; padding: 10px 12px; }
  .cdc-topbar.cdc-has-message .cdc-brand > span:last-child { display: none; }
  .cdc-message { max-width: min(220px, calc(100vw - 126px)); padding: 6px 8px; font-size: 11px; }
  .cdc-page { gap: 9px; padding: 12px 12px max(28px, env(safe-area-inset-bottom)); }
  .cdc-command-bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .cdc-head-actions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .cdc-head-actions .cdc-btn, .cdc-head-actions .cdc-icon-btn { width: 100%; min-height: 36px; padding: 0 7px; font-size: 11px; }
  .cdc-kpis, .cdc-tabs { scrollbar-width: none; }
  .cdc-kpis::-webkit-scrollbar, .cdc-tabs::-webkit-scrollbar { display: none; }
  .cdc-kpis { scroll-snap-type: x proximity; }
  .cdc-kpis > div { flex: 0 0 auto; padding: 7px 12px; scroll-snap-align: start; }
  .cdc-workspace { min-height: 540px; display: block; }
  .cdc-sidebar {
    width: min(340px, calc(100vw - 38px));
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    position: fixed;
    z-index: 90;
    inset: 0 auto 0 0;
    border-width: 0 1px 0 0;
    border-radius: 0;
    box-shadow: 10px 0 30px rgba(16, 28, 36, 0.2);
    transform: translateX(-104%);
    transition: transform 180ms ease;
  }
  .cdc-sidebar.open { transform: translateX(0); }
  .cdc-sidebar-backdrop { position: fixed; z-index: 80; inset: 0; border: 0; background: rgba(9, 20, 28, 0.46); }
  .cdc-sidebar-backdrop.open { display: block; }
  .cdc-content, .cdc-empty { min-height: 540px; }
  .cdc-detail-head { grid-template-columns: 42px minmax(0, 1fr); padding: 13px; }
  .cdc-avatar { width: 40px; height: 40px; }
  .cdc-detail-actions { grid-column: 1 / -1; }
  .cdc-detail-actions .cdc-btn { flex: 1 1 0; }
  .cdc-tab-panel { padding: 13px; }
  .cdc-section-head { align-items: flex-start; }
  .cdc-section-head .cdc-btn { flex: 0 0 auto; }
  .cdc-info-grid { grid-template-columns: minmax(0, 1fr); }
  .cdc-info.wide { grid-column: auto; }
  .cdc-form-grid { grid-template-columns: minmax(0, 1fr); }
  .cdc-span-2 { grid-column: auto; }
  .cdc-check-line { padding-top: 0; }
  .cdc-dialog { width: 100%; max-width: none; max-height: 94vh; max-height: 94dvh; margin: auto 0 0; border-width: 1px 0 0; border-radius: 8px 8px 0 0; }
  .cdc-dialog-body { padding: 13px; }
  .cdc-audit li { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .cdc-view-switch { width: 100%; }
  .cdc-view-switch button { flex: 1 1 0; }
  .cdc-schedule-head { align-items: flex-start; }
  .cdc-schedule-head-actions { flex: 0 0 auto; }
  .cdc-schedule-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; }
  .cdc-segmented { width: 100%; }
  .cdc-segmented button { flex: 1 1 0; padding: 0 8px; }
  .cdc-schedule-controls > .cdc-btn { width: 100%; }
  .cdc-schedule-meta { align-items: flex-start; flex-direction: column; gap: 0; padding: 0 12px 9px; }
  .cdc-schedule-meta .cdc-schedule-summary { width: 100%; padding: 9px 0 5px; }
  .cdc-timeline-tools { width: 100%; justify-content: space-between; padding-bottom: 5px; }
  .cdc-density-control { min-width: 0; flex: 1 1 auto; justify-content: flex-end; }
  .cdc-density-control input { width: min(120px, 32vw); }
  .cdc-schedule-tip { white-space: normal; }
  .cdc-schedule-chart { padding: 12px; }
  .cdc-gantt { grid-template-columns: 154px var(--cdc-timeline-width); }
  .cdc-assignment-grid { grid-template-columns: minmax(0, 1fr); }
  .cdc-people-list { max-height: 220px; }
  .cdc-calendar-months { grid-template-columns: minmax(0, 1fr); }
  .cdc-calendar-month:nth-child(2) { display: none; }
  .cdc-import-guide { align-items: flex-start; flex-direction: column; }
  .cdc-print-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); }
  .cdc-print-modes { grid-column: auto; }
  .cdc-print-config { padding: 11px; }
  .cdc-print-preview { min-height: 310px; max-height: 48vh; padding: 10px; }
  .cdc-print-document { min-width: 700px; padding: 22px; }
}

@media (max-width: 430px) {
  .cdc-brand strong { font-size: 14px; }
  .cdc-section-head { display: grid; }
  .cdc-section-head .cdc-btn { width: 100%; }
  .cdc-schedule-head { display: grid; }
  .cdc-schedule-head-actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdc-schedule-head .cdc-btn { width: 100%; padding: 0 8px; }
  .cdc-schedule-controls { grid-template-columns: minmax(0, 1fr); }
  .cdc-segmented { grid-column: auto; }
  #cdcAssignDetails { grid-template-columns: minmax(0, 1fr); }
  #cdcAssignDetails .cdc-wide { grid-column: auto; }
  .cdc-calendar-grid { grid-template-columns: repeat(7, minmax(29px, 1fr)); }
  .cdc-department-row { grid-template-columns: 11px minmax(0, 1fr); }
  .cdc-department-row > div { grid-column: 2; }
  .cdc-head-actions .cdc-btn, .cdc-head-actions .cdc-icon-btn { padding-inline: 4px; }
  .cdc-print-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdc-print-custom-head, .cdc-print-fields { grid-template-columns: minmax(0, 1fr); }
}

@media (pointer: coarse) {
  .cdc-ledger input, .cdc-ledger select, .cdc-ledger textarea { font-size: 16px; }
  .cdc-tabs button { min-height: 48px; }
  .cdc-row-actions button { min-height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .cdc-spinner { animation-duration: 1.5s; }
  .cdc-sidebar { transition: none; }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 15mm 15mm 20mm;
    @bottom-center {
      content: "第 " counter(page) " 页 共 " counter(pages) " 页";
      color: #4b5563;
      font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
      font-size: 9pt;
    }
  }
  @page cdc-traditional {
    size: A4 portrait;
    margin: 37mm 27mm 35mm;
    @bottom-center {
      content: "第 " counter(page) " 页 共 " counter(pages) " 页";
      color: #000;
      font-family: "FangSong", "STFangsong", "仿宋_GB2312", "SimSun", serif;
      font-size: 10.5pt;
    }
  }
  html, body.cdc-ledger { min-height: 0; overflow: visible !important; background: #fff; }
  body.cdc-ledger > *:not(.cdc-print-sheet) { display: none !important; }
  .cdc-print-sheet { display: block !important; }
  .cdc-print-document { width: auto; min-width: 0; padding: 0; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .cdc-print-document > header { break-after: avoid-page; }
  .cdc-print-document thead { display: table-header-group; }
  .cdc-print-document tfoot { display: table-footer-group; }
  .cdc-print-document tr { break-inside: avoid; page-break-inside: avoid; }
  .cdc-print-person { break-inside: auto; page-break-inside: auto; }
  .cdc-print-person-summary { break-inside: avoid-page; page-break-inside: avoid; }
  .cdc-print-person > h3 { break-after: avoid-page; page-break-after: avoid; }
  .cdc-print-table-wrap { break-inside: auto; }
  .cdc-print-signature { break-inside: avoid-page; break-before: avoid-page; page-break-inside: avoid; page-break-before: avoid; }
  .cdc-print-layout-blue > header { padding: 10px 13px; }
  .cdc-print-layout-traditional { page: cdc-traditional; font-size: 16pt; }
  .cdc-print-layout-traditional table,
  .cdc-print-layout-traditional .cdc-print-info dt,
  .cdc-print-layout-traditional .cdc-print-info dd { font-size: 10.5pt; }
}

/* Roster and scheduling workspace v8 */
.cdc-workspace {
  min-height: 520px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 0;
  background: transparent;
}
.cdc-roster-toolbar {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(170px, 230px) 130px auto auto auto;
  align-items: center;
  gap: 9px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--cdc-line);
  background: transparent;
}
.cdc-roster-toolbar > select { width: 100%; }
.cdc-roster-toolbar > strong { color: var(--cdc-muted); font-size: 11px; white-space: nowrap; }
.cdc-roster-view { align-self: center; }
.cdc-roster-view button { width: 36px; min-width: 36px; padding: 0; }
.cdc-roster-view svg { width: 15px; height: 15px; }
.cdc-intern-list { min-height: 430px; padding: 14px 0 0; overflow: visible; }
.cdc-school-group { min-width: 0; margin-bottom: 15px; }
.cdc-school-group:last-child { margin-bottom: 0; }
.cdc-school-group > header { min-height: 30px; display: flex; align-items: baseline; gap: 8px; padding: 0 2px 7px; }
.cdc-school-group > header strong { font-size: 13px; }
.cdc-school-group > header span { color: var(--cdc-muted); font-size: 10px; }
.cdc-school-people { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.cdc-intern-item {
  min-width: 0;
  min-height: 126px;
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 11px;
  border: 1px solid #dde3e8;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}
.cdc-intern-item:hover { border-color: #a4b3ec; background: #f8faff; box-shadow: 0 2px 7px rgba(22, 32, 42, 0.08); }
.cdc-intern-item.active { border-color: #8ea2f0; box-shadow: inset 3px 0 var(--cdc-primary); background: var(--cdc-primary-soft); }
.cdc-intern-item.archived { border-color: #d5d9df; background: #f1f2f4; opacity: 0.58; }
.cdc-intern-item.on-leave { border-color: #e9a7a2; box-shadow: inset 3px 0 var(--cdc-red); background: #fff7f6; }
.cdc-intern-item.pending { border-color: #e7c26f; box-shadow: inset 3px 0 #d79a20; background: #fffaf0; }
.cdc-intern-item.paused { border-color: #d6bd8f; box-shadow: inset 3px 0 #98713a; background: #fbf7ef; }
.cdc-intern-item.ending-soon { border-color: #e5c07f; box-shadow: inset 3px 0 var(--cdc-amber); background: #fffaf1; }
.cdc-intern-identity { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 8px; }
.cdc-intern-identity > span { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.cdc-intern-badges { min-width: 0; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 4px; }
.cdc-intern-item small { width: 100%; }
.cdc-intern-item .cdc-intern-meta { color: #7a8592; font-size: 10px; }
.cdc-intern-list.list .cdc-school-people { grid-template-columns: minmax(0, 1fr); gap: 5px; }
.cdc-intern-list.list .cdc-intern-item { min-height: 62px; grid-template-columns: minmax(210px, 1.2fr) minmax(130px, 0.8fr) minmax(190px, 1fr) minmax(190px, 1fr); align-items: center; gap: 12px; }
.cdc-intern-list.list .cdc-intern-identity { grid-template-columns: 30px minmax(0, 1fr); }
.cdc-intern-list.list .cdc-intern-identity > i { width: 30px; height: 30px; }
.cdc-profile-dialog { width: min(1180px, calc(100% - 28px)); overflow: auto; }
.cdc-profile-dialog .cdc-detail { min-width: 0; background: #fff; }
.cdc-profile-dialog .cdc-detail-head { position: sticky; z-index: 3; top: 0; background: rgba(255, 255, 255, 0.98); }
.cdc-profile-dialog .cdc-tabs { position: sticky; z-index: 2; top: 77px; background: #fff; }

.cdc-schedule-controls {
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  padding: 11px 13px;
  overflow-x: auto;
  border-bottom: 1px solid var(--cdc-line);
  background: #f8fafb;
  scrollbar-width: thin;
}
.cdc-schedule-controls > * { flex: 0 0 auto; }
.cdc-schedule-controls > .cdc-range-button { min-width: 220px; flex: 1 1 270px; }
.cdc-schedule-controls > label { width: 180px; align-self: center; }
.cdc-schedule-controls > label > span { display: none; }
.cdc-schedule-controls .cdc-segmented { align-self: center; }
.cdc-schedule-controls .cdc-icon-btn { min-width: 38px; }
.cdc-zoom button { min-width: 42px; }
.cdc-schedule-chart { min-height: 310px; }

.cdc-schedule-dialog { width: min(1040px, calc(100% - 24px)); }
.cdc-matrix-toolbar { min-width: 0; display: grid; grid-template-columns: minmax(240px, 1fr) minmax(210px, 0.65fr) auto; align-items: center; gap: 9px; margin-bottom: 12px; }
.cdc-matrix-toolbar > .cdc-range-button { width: 100%; }
.cdc-assignment-matrix { border: 1px solid #d9e0e5; border-radius: 6px; overflow: hidden; }
.cdc-matrix-head, .cdc-matrix-row { min-width: 960px; display: grid; grid-template-columns: 52px minmax(170px, 0.85fr) minmax(270px, 1.4fr) minmax(165px, 0.8fr) minmax(145px, 0.7fr); align-items: center; }
.cdc-matrix-head { min-height: 35px; color: #596473; background: #f2f5f7; font-size: 10px; font-weight: 750; }
.cdc-matrix-head > *, .cdc-matrix-row > * { min-width: 0; padding: 7px 9px; }
.cdc-matrix-body { max-height: 43vh; overflow: auto; }
.cdc-matrix-row { min-height: 58px; border-top: 1px solid #e8ecef; background: #fff; transition: opacity 120ms ease, background-color 120ms ease; }
.cdc-matrix-row:first-child { border-top: 0; }
.cdc-matrix-row:hover { background: #f8faff; }
.cdc-matrix-row.existing { color: #667085; background: #f5f6f7; opacity: 0.55; }
.cdc-matrix-row.existing:hover, .cdc-matrix-row.pending-change { opacity: 1; }
.cdc-matrix-row.pending-change { box-shadow: inset 3px 0 var(--cdc-blue); background: var(--cdc-blue-soft); }
.cdc-matrix-row.complex { box-shadow: inset 3px 0 var(--cdc-amber); }
.cdc-matrix-row input[type="checkbox"] { width: 17px; height: 17px; min-height: 0; accent-color: var(--cdc-primary); }
.cdc-matrix-row select, .cdc-matrix-row input[type="text"] { width: 100%; }
.cdc-matrix-choose { display: grid; place-items: center; }
.cdc-matrix-person { display: grid; gap: 2px; }
.cdc-matrix-person strong, .cdc-matrix-person small, .cdc-matrix-window small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-matrix-person strong { color: var(--cdc-ink); font-size: 12px; }
.cdc-matrix-person small, .cdc-matrix-current { color: var(--cdc-muted); font-size: 9px; }
.cdc-matrix-current { display: grid; align-content: center; gap: 5px; overflow: hidden; }
.cdc-matrix-window { min-width: 0; display: grid; gap: 2px; color: #596473; }
.cdc-matrix-window small { display: block; }
.cdc-matrix-history { min-width: 0; }
.cdc-matrix-history summary { min-width: 0; overflow: hidden; color: #4058d8; cursor: pointer; font-size: 9px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cdc-matrix-history summary::marker { color: #7b8794; }
.cdc-matrix-history-list { max-height: 112px; display: grid; gap: 3px; margin-top: 5px; padding: 5px; overflow-y: auto; border: 1px solid #dfe5e9; border-radius: 4px; background: #fff; }
.cdc-matrix-history-list > div { min-width: 0; display: grid; gap: 1px; padding: 3px 4px; border-bottom: 1px solid #eef1f3; }
.cdc-matrix-history-list > div:last-child { border-bottom: 0; }
.cdc-matrix-history-list strong, .cdc-matrix-history-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-matrix-history-list strong { color: #364152; font-size: 9px; }
.cdc-matrix-history-list small { color: var(--cdc-muted); font-size: 8px; }
.cdc-matrix-mentor small { color: var(--cdc-muted); font-size: 9px; }
.cdc-move-assignment { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.7fr); align-items: end; gap: 12px; }
.cdc-move-assignment > label { min-width: 0; display: grid; gap: 5px; }
.cdc-move-assignment > label > span { color: #475467; font-size: 11px; font-weight: 750; }
.cdc-move-assignment select { width: 100%; }
#cdcAssignDetails { margin-top: 12px; display: flex; justify-content: flex-end; }
.cdc-batch-status > label { width: min(280px, 100%); display: grid; gap: 5px; }
.cdc-batch-status > label > span { color: #475467; font-size: 10px; font-weight: 750; }

@media (max-width: 1120px) {
  .cdc-school-people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cdc-roster-toolbar { grid-template-columns: minmax(240px, 1fr) minmax(160px, 210px) 120px auto auto; }
  .cdc-roster-toolbar > strong { display: none; }
}

@media (max-width: 760px) {
  .cdc-page { padding-inline: 10px; }
  .cdc-workspace { min-height: 480px; display: grid; }
  .cdc-roster-toolbar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 7px; padding: 10px; }
  .cdc-roster-toolbar .cdc-search { grid-column: 1 / -1; }
  .cdc-roster-toolbar .cdc-check { min-height: 38px; }
  .cdc-roster-toolbar > strong { display: block; justify-self: end; }
  .cdc-roster-view { width: fit-content; }
  .cdc-intern-list { min-height: 390px; padding: 10px; }
  .cdc-school-people { grid-template-columns: minmax(0, 1fr); }
  .cdc-intern-item { min-height: 116px; }
  .cdc-intern-list.list .cdc-intern-item { min-height: 92px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5px 10px; }
  .cdc-intern-list.list .cdc-current-department { text-align: right; }
  .cdc-profile-dialog { width: 100%; max-height: 94dvh; overflow: auto; }
  .cdc-profile-dialog .cdc-detail-head { position: static; grid-template-columns: 42px minmax(0, 1fr); }
  .cdc-profile-dialog .cdc-detail-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr 38px; }
  .cdc-profile-dialog .cdc-tabs { top: 0; }
  .cdc-schedule-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 38px; gap: 7px; padding: 10px; overflow: visible; }
  .cdc-schedule-controls > .cdc-segmented:not(.cdc-zoom),
  .cdc-schedule-controls > .cdc-range-button,
  .cdc-schedule-controls > label,
  .cdc-schedule-controls > .cdc-zoom { width: 100%; min-width: 0; grid-column: 1 / -1; }
  .cdc-schedule-controls > .cdc-segmented:not(.cdc-zoom) button,
  .cdc-schedule-controls > .cdc-zoom button { flex: 1 1 0; }
  #cdcNewSchedule { width: 100%; padding-inline: 7px; }
  #cdcLoadSchedule { grid-column: 3; }
  .cdc-schedule-meta { padding-right: 10px; }
  .cdc-schedule-tip { display: none; }
  .cdc-schedule-dialog .cdc-dialog-body { overflow-x: hidden; }
  .cdc-schedule-dialog { width: 100%; }
  .cdc-matrix-toolbar { grid-template-columns: minmax(0, 1fr) auto; }
  .cdc-matrix-toolbar > .cdc-range-button { grid-column: 1 / -1; }
  .cdc-assignment-matrix { overflow-x: auto; }
  .cdc-matrix-head { display: none; }
  .cdc-matrix-row { min-width: 0; grid-template-columns: 34px minmax(0, 1fr); padding: 7px 5px; }
  .cdc-matrix-row > * { padding: 5px 7px; }
  .cdc-matrix-row .cdc-matrix-current, .cdc-matrix-row .cdc-matrix-department, .cdc-matrix-row .cdc-matrix-mentor { grid-column: 2; }
  .cdc-matrix-history-list { max-height: 96px; }
  .cdc-move-assignment { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 430px) {
  .cdc-roster-toolbar { grid-template-columns: minmax(0, 1fr); }
  .cdc-roster-toolbar .cdc-search { grid-column: auto; }
  .cdc-roster-toolbar > strong { position: absolute; visibility: hidden; }
  .cdc-roster-view { width: 100%; }
  .cdc-roster-view button { flex: 1 1 0; }
  .cdc-intern-list.list .cdc-intern-item { grid-template-columns: minmax(0, 1fr); }
  .cdc-intern-list.list .cdc-current-department { text-align: left; }
}

/* Authenticated application shell */
.cdc-auth-shell {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f3f7ff;
}
.cdc-auth-panel {
  width: min(430px, 100%);
  padding: 0;
  border: 1px solid #d7e1f5;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 18px 46px rgba(50, 76, 140, 0.12);
}
.cdc-auth-brand { display: flex; align-items: center; gap: 14px; margin: 0; padding: 27px 30px 24px; border-bottom: 1px solid #dfe7f7; background: #edf3ff; }
.cdc-auth-brand h1, .cdc-auth-brand p { margin: 0; }
.cdc-auth-brand h1 { font-size: 20px; line-height: 1.35; }
.cdc-auth-brand p { margin-top: 4px; color: var(--cdc-muted); font-size: 12px; }
.cdc-auth-content { padding: 26px 30px 30px; }
.cdc-auth-form { display: grid; gap: 16px; }
.cdc-auth-form > label, .cdc-security-form > label { min-width: 0; display: grid; gap: 7px; }
.cdc-auth-form > label > span:first-child, .cdc-security-form > label > span { color: #475467; font-size: 12px; font-weight: 700; }
.cdc-auth-form input, .cdc-security-form input { width: 100%; min-height: 44px; }
.cdc-auth-submit { width: 100%; min-height: 44px; margin-top: 2px; }
.cdc-auth-context { display: grid; gap: 4px; padding-bottom: 4px; }
.cdc-auth-context strong { font-size: 16px; }
.cdc-auth-context span { color: var(--cdc-muted); font-size: 12px; overflow-wrap: anywhere; }
.cdc-auth-message { min-height: 20px; margin: 0 0 14px; color: #52606d; font-size: 12px; line-height: 1.5; }
.cdc-auth-message.error { color: var(--cdc-red); }
.cdc-auth-message.success { color: #126c43; }
.cdc-link-btn { min-height: 32px; padding: 0; border: 0; color: #4058d8; background: transparent; font-size: 12px; font-weight: 700; }
.cdc-link-btn:hover { color: var(--cdc-primary); text-decoration: underline; }
.cdc-auth-secondary { display: flex; justify-content: space-between; gap: 16px; }
.cdc-password-field { position: relative; display: block; }
.cdc-password-field input { padding-right: 46px; }
.cdc-password-field .cdc-icon-btn { position: absolute; top: 3px; right: 3px; border: 0; background: transparent; }

.cdc-app {
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  background: #f7f8fc;
}
.cdc-app > .cdc-sidebar {
  position: sticky;
  z-index: 70;
  top: 0;
  width: auto;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  border: 0;
  border-right: 1px solid #e2e6f0;
  border-radius: 0;
  overflow: hidden;
  background: #fff;
  box-shadow: none;
}
.cdc-sidebar-brand { min-width: 0; display: flex; align-items: center; gap: 11px; padding: 18px 16px; }
.cdc-sidebar-brand > span:last-child { min-width: 0; display: grid; gap: 2px; }
.cdc-sidebar-brand strong { overflow: hidden; color: #1d2939; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-sidebar-brand small { overflow: hidden; color: #7b8490; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.cdc-primary-nav { display: grid; align-content: start; gap: 4px; padding: 12px 10px; }
.cdc-primary-nav button {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  color: #475467;
  background: transparent;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
}
.cdc-primary-nav button:hover { color: #2d3a5c; background: #f3f5fb; }
.cdc-primary-nav button.active { color: #4058d8; background: #edf2ff; }
.cdc-primary-nav svg { width: 18px; height: 18px; flex: 0 0 auto; }
.cdc-sidebar-footer { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 13px 12px; border-top: 1px solid #e5e8eb; }
.cdc-current-user { min-width: 0; flex: 1 1 auto; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; }
.cdc-current-user > span:last-child { min-width: 0; display: grid; gap: 2px; }
.cdc-current-user strong, .cdc-current-user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-current-user strong { font-size: 12px; }
.cdc-current-user small { color: var(--cdc-muted); font-size: 10px; }
.cdc-main-shell { min-width: 0; min-height: 100dvh; position: relative; }
.cdc-main-shell > .cdc-topbar {
  display: none;
}
.cdc-main-shell > .cdc-page { width: min(1500px, 100%); gap: 18px; padding: 24px 28px 40px; }
.cdc-menu-button { display: none; }
.cdc-command-bar { min-height: 44px; margin-bottom: 12px; }

.cdc-dashboard { display: grid; gap: 18px; }
.cdc-dashboard-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cdc-dashboard-stats article { min-width: 0; min-height: 112px; display: grid; align-content: center; gap: 8px; padding: 18px; border: 1px solid #e1e5e9; border-radius: 7px; background: #fff; }
.cdc-dashboard-stats span { color: var(--cdc-muted); font-size: 12px; }
.cdc-dashboard-stats strong { color: #1d2939; font-size: 28px; font-weight: 760; }
.cdc-dashboard-stats article:nth-child(2) { border-top-color: #8eb3cf; }
.cdc-dashboard-stats article:nth-child(3) { border-top-color: #d7ad67; }
.cdc-dashboard-stats article:nth-child(4) { border-top-color: #c78f8b; }
.cdc-dashboard-focus { min-height: 150px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 2px; border-top: 1px solid #e1e5e9; border-bottom: 1px solid #e1e5e9; }
.cdc-dashboard-focus h2, .cdc-dashboard-focus p { margin: 0; }
.cdc-dashboard-focus h2 { font-size: 16px; }
.cdc-dashboard-focus p { margin-top: 7px; color: var(--cdc-muted); font-size: 13px; }

.cdc-account-workspace, .cdc-security-workspace { min-width: 0; }
.cdc-account-list { display: grid; margin-top: 12px; border-top: 1px solid #dde2e7; }
.cdc-account-row { min-width: 0; display: grid; grid-template-columns: minmax(230px, 1fr) 100px auto; align-items: center; gap: 18px; padding: 15px 4px; border-bottom: 1px solid #e4e8ec; }
.cdc-account-identity { min-width: 0; display: grid; gap: 3px; }
.cdc-account-identity strong, .cdc-account-identity span, .cdc-account-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cdc-account-identity strong { font-size: 13px; }
.cdc-account-identity span { color: #475467; font-size: 11px; }
.cdc-account-identity small { color: var(--cdc-muted); font-size: 10px; }
.cdc-account-state { width: fit-content; padding: 3px 7px; border-radius: 999px; color: #3e56d8; background: #edf2ff; font-size: 10px; font-weight: 750; }
.cdc-account-state.disabled { color: #667085; background: #eceff2; }
.cdc-account-state.locked { color: var(--cdc-amber); background: var(--cdc-amber-soft); }
.cdc-account-actions { display: flex; justify-content: flex-end; gap: 5px; }
.cdc-account-actions button { min-height: 32px; padding: 0 9px; border: 1px solid #d4d9df; border-radius: 5px; color: #475467; background: #fff; font-size: 10px; font-weight: 700; }
.cdc-account-actions button:hover { background: #f5f7f8; }
.cdc-account-actions button.danger { color: var(--cdc-red); }
.cdc-security-workspace { max-width: 620px; }
.cdc-security-form { display: grid; gap: 16px; margin-top: 22px; padding-top: 20px; border-top: 1px solid #e0e4e8; }
.cdc-security-form .cdc-btn { width: fit-content; min-width: 130px; }
.cdc-user-dialog { width: min(660px, calc(100% - 24px)); }
.cdc-temporary-password-dialog { width: min(560px, calc(100% - 24px)); }
.cdc-temporary-password-note { margin: 0 0 16px !important; color: #475467 !important; font-size: 12px !important; line-height: 1.7; }
.cdc-temporary-password-note strong { color: var(--cdc-ink); }
.cdc-temporary-password-field { display: grid; gap: 7px; color: #4f5d75; font-size: 11px; font-weight: 750; }
.cdc-temporary-password-field > span:last-child { display: grid; grid-template-columns: minmax(0, 1fr) 38px; gap: 8px; }
.cdc-temporary-password-field input { width: 100%; font-family: Consolas, "SFMono-Regular", monospace; font-size: 14px; font-weight: 650; }
.cdc-sidebar-scrim { display: none; }

@media (max-width: 980px) {
  .cdc-dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdc-account-row { grid-template-columns: minmax(200px, 1fr) 90px; }
  .cdc-account-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 760px) {
  .cdc-auth-shell { padding: 14px; }
  .cdc-auth-brand { padding: 23px 22px 20px; }
  .cdc-auth-content { padding: 22px; }
  .cdc-app { grid-template-columns: minmax(0, 1fr); }
  .cdc-app > .cdc-sidebar {
    position: fixed;
    left: 0;
    width: min(280px, 84vw);
    border-right: 1px solid #d9dee3;
    transform: translateX(-102%);
    transition: transform 180ms ease;
  }
  .cdc-app > .cdc-sidebar.open { transform: translateX(0); }
  .cdc-sidebar-scrim { position: fixed; z-index: 60; inset: 0; display: block; padding: 0; border: 0; background: rgba(24, 32, 40, 0.32); }
  .cdc-main-shell > .cdc-topbar { min-height: 54px; display: flex; gap: 10px; padding: 8px 10px; }
  .cdc-menu-button { display: grid; flex: 0 0 38px; }
  .cdc-main-shell > .cdc-page { padding: 14px 10px max(26px, env(safe-area-inset-bottom)); }
  .cdc-command-bar { align-items: flex-start; }
  .cdc-head-actions { width: 100%; overflow-x: auto; padding-bottom: 3px; }
  .cdc-dashboard-stats { gap: 9px; }
  .cdc-dashboard-stats article { min-height: 96px; padding: 14px; }
  .cdc-dashboard-focus { align-items: flex-start; flex-direction: column; padding: 20px 2px; }
  .cdc-account-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .cdc-account-actions { overflow-x: auto; }
}

@media (max-width: 430px) {
  .cdc-auth-brand { align-items: center; }
  .cdc-auth-brand h1 { font-size: 18px; }
  .cdc-dashboard-stats { grid-template-columns: minmax(0, 1fr); }
  .cdc-dashboard-stats article { min-height: 84px; grid-template-columns: 1fr auto; align-items: center; }
  .cdc-dashboard-stats strong { font-size: 24px; }
}

/* Blue workspace theme and system-management layout */
.cdc-brand-logo {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  object-fit: contain;
}
.cdc-sidebar-brand .cdc-brand-logo { width: 38px; height: 38px; flex-basis: 38px; }
.cdc-auth-brand .cdc-brand-logo { width: 58px; height: 58px; flex-basis: 58px; }
.cdc-ledger input:focus,
.cdc-ledger select:focus,
.cdc-ledger textarea:focus { border-color: #8ea2ff; }
.cdc-main-shell > .cdc-topbar { border-bottom-color: #e2e6f0; }
.cdc-command-bar-actions { justify-content: flex-end; }

.cdc-current-user > img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  border-radius: 50%;
  background: #eef2ff;
}
.cdc-avatar {
  object-fit: contain;
  padding: 3px;
  border: 1px solid #dce3f5;
  background: #eef2ff;
}
.cdc-intern-identity > img {
  width: 34px;
  height: 34px;
  object-fit: contain;
  border-radius: 5px;
  background: #eef2ff;
}
.cdc-intern-list.list .cdc-intern-identity > img { width: 30px; height: 30px; }

.cdc-management-workspace { min-width: 0; }
.cdc-management-tabs {
  min-width: 0;
  display: flex;
  gap: 4px;
  padding: 0 0 10px;
  border-bottom: 1px solid #e1e5ef;
  overflow-x: auto;
  scrollbar-width: thin;
}
.cdc-management-tabs button {
  min-height: 40px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  color: #596579;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
}
.cdc-management-tabs button:hover { color: #4058d8; background: #f3f5fb; }
.cdc-management-tabs button.active { color: #4058d8; background: #edf2ff; }
.cdc-management-tabs svg { width: 16px; height: 16px; }
.cdc-management-panel { min-width: 0; padding-top: 16px; }
.cdc-management-note { margin: 0 0 18px; padding: 10px 12px; border-left: 3px solid #6d86f8; color: #4c5c78; background: #f3f6ff; font-size: 12px; line-height: 1.65; }
.cdc-management-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.cdc-management-toolbar .cdc-segmented strong { min-width: 23px; color: inherit; font-size: 10px; }
.cdc-setting-editor {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 110px auto auto;
  align-items: end;
  gap: 10px;
  padding: 0 0 16px;
  border-bottom: 1px solid #e1e5ef;
}
.cdc-setting-editor.cdc-school-editor { grid-template-columns: minmax(260px, 1fr) auto auto; }
.cdc-setting-editor label { min-width: 0; display: grid; gap: 6px; }
.cdc-setting-editor label > span { color: #596579; font-size: 11px; font-weight: 700; }
.cdc-setting-editor input { width: 100%; }
.cdc-setting-editor input[type="color"] { padding: 4px; }
.cdc-management-panel > .cdc-department-list { margin-top: 14px; border-right: 0; border-left: 0; border-radius: 0; }
.cdc-department-row > .cdc-setting-icon {
  width: 26px;
  height: 26px;
  padding: 5px;
  border-radius: 5px;
  color: #4d6bfe;
  background: #eef2ff;
}
.cdc-school-row { grid-template-columns: 26px minmax(0, 1fr) auto; }
.cdc-management-action-list { display: grid; border-top: 1px solid #e1e6ef; }
.cdc-management-action-list > div { min-width: 0; min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 2px; border-bottom: 1px solid #e1e6ef; }
.cdc-management-action-list > div > span:first-child { min-width: 0; display: grid; gap: 5px; }
.cdc-management-action-list strong { color: #26344f; font-size: 13px; }
.cdc-management-action-list small { color: var(--cdc-muted); font-size: 11px; line-height: 1.55; }
.cdc-management-action-buttons { flex: 0 0 auto; display: flex; gap: 8px; }

.cdc-schedule-export-dialog { width: min(720px, calc(100% - 24px)); }
.cdc-export-picker-tools { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
.cdc-export-selection-summary { margin: 12px 0 8px !important; color: #40516c !important; font-weight: 750; }
.cdc-export-picker-list { max-height: min(52vh, 520px); overflow: auto; border-top: 1px solid #e1e6ef; border-bottom: 1px solid #e1e6ef; }
.cdc-export-person { min-height: 58px; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 9px 4px; border-bottom: 1px solid #edf0f5; cursor: pointer; }
.cdc-export-person:last-child { border-bottom: 0; }
.cdc-export-person:hover { background: #f7f9ff; }
.cdc-export-person > input { width: 16px; height: 16px; min-height: 0; accent-color: var(--cdc-primary); }
.cdc-export-person > span { min-width: 0; display: grid; gap: 3px; }
.cdc-export-person strong { color: #26344f; font-size: 13px; }
.cdc-export-person small { color: var(--cdc-muted); font-size: 11px; }
.cdc-export-person em { padding: 3px 7px; border-radius: 4px; color: #3158bd; background: #edf2ff; font-size: 10px; font-style: normal; font-weight: 750; }
.cdc-export-person em.archived { color: #677084; background: #eef0f4; }

.cdc-publication-settings { max-width: 980px; display: grid; gap: 18px; }
.cdc-publication-link-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 38px 38px; align-items: end; gap: 8px; }
.cdc-publication-link-row label, .cdc-publication-copy label { min-width: 0; display: grid; gap: 6px; }
.cdc-publication-link-row label > span, .cdc-publication-copy label > span { color: #4f5d75; font-size: 11px; font-weight: 750; }
.cdc-publication-link-row input { width: 100%; color: #58677e; background: #f7f9fc; }
.cdc-publication-link-row .cdc-icon-btn { text-decoration: none; }
.cdc-publication-switch { min-height: 64px; display: flex; align-items: center; gap: 11px; padding: 11px 13px; border: 1px solid #dce3ee; border-radius: 6px; background: #f8faff; }
.cdc-publication-switch input { width: 18px; height: 18px; min-height: 0; flex: 0 0 auto; accent-color: var(--cdc-primary); }
.cdc-publication-switch span { display: grid; gap: 3px; }
.cdc-publication-switch strong { font-size: 13px; }
.cdc-publication-switch small { color: var(--cdc-muted); font-size: 11px; line-height: 1.5; }
.cdc-publication-copy { display: grid; grid-template-columns: minmax(220px, 0.7fr) minmax(300px, 1.3fr); gap: 12px; }
.cdc-publication-copy input, .cdc-publication-copy textarea { width: 100%; }
.cdc-publication-fields { margin: 0; padding: 14px; border: 1px solid #dce3ee; border-radius: 6px; }
.cdc-publication-fields legend { padding: 0 6px; color: #34425a; font-size: 12px; font-weight: 800; }
.cdc-publication-fields > p { margin: 0 0 11px; color: var(--cdc-muted); font-size: 11px; }
.cdc-publication-fields > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px 12px; }
.cdc-publication-fields label { min-width: 0; display: flex; align-items: center; gap: 7px; color: #46546b; font-size: 12px; }
.cdc-publication-fields input { width: 16px; height: 16px; min-height: 0; flex: 0 0 16px; accent-color: var(--cdc-primary); }

.cdc-apple-spinner { width: 28px; height: 28px; display: block; border: 3px solid rgba(77, 107, 254, 0.18); border-top-color: var(--cdc-primary); border-radius: 50%; animation: cdc-spin 0.72s linear infinite; }
.cdc-mini-spinner { width: 18px; height: 18px; display: inline-block; border: 2px solid rgba(77, 107, 254, 0.18); border-top-color: var(--cdc-primary); border-radius: 50%; animation: cdc-spin 0.72s linear infinite; }
.cdc-region-loading { min-height: 150px; display: grid; place-content: center; justify-items: center; gap: 10px; color: var(--cdc-muted); font-size: 12px; }
.cdc-region-loading .cdc-apple-spinner { width: 24px; height: 24px; }
@keyframes cdc-spin { to { transform: rotate(360deg); } }

.cdc-schedule-workspace { border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.cdc-schedule-controls { padding: 0 0 14px; background: transparent; }
.cdc-schedule-meta { padding-inline: 0; }

.cdc-app > .cdc-message {
  position: fixed;
  z-index: 95;
  top: 16px;
  right: 18px;
  bottom: auto;
  left: auto;
  max-width: min(420px, calc(100vw - 36px));
  min-height: 40px;
  justify-content: center;
  margin: 0;
  padding: 9px 13px;
  border: 1px solid #cfd9ea;
  border-radius: 6px;
  color: #3c4b63;
  background: #fff;
  box-shadow: 0 10px 28px rgba(29, 48, 82, 0.14);
  text-align: left;
}
.cdc-app > .cdc-message.success { border-color: #a8d7bf; color: #126c43; background: #f1fbf5; }
.cdc-app > .cdc-message.error { border-color: #efaca7; color: #a1261d; background: #fff3f1; }

@media (max-width: 760px) {
  .cdc-brand-logo { width: 40px; height: 40px; flex-basis: 40px; }
  .cdc-auth-brand .cdc-brand-logo { width: 52px; height: 52px; flex-basis: 52px; }
  .cdc-management-tabs { margin-inline: -2px; }
  .cdc-management-toolbar .cdc-segmented { width: 100%; }
  .cdc-management-toolbar .cdc-segmented button { flex: 1 1 0; padding-inline: 8px; }
  .cdc-setting-editor,
  .cdc-setting-editor.cdc-school-editor { grid-template-columns: minmax(0, 1fr) auto; }
  .cdc-setting-editor label { grid-column: 1 / -1; }
  .cdc-color-field { grid-column: auto !important; }
  #cdcNewSchedule { width: 100%; }
  .cdc-app > .cdc-message { top: 64px; right: 10px; max-width: calc(100vw - 20px); }
  .cdc-management-action-list > div { align-items: flex-start; flex-direction: column; gap: 12px; }
  .cdc-management-action-buttons { width: 100%; }
  .cdc-management-action-buttons .cdc-btn { flex: 1 1 0; }
  .cdc-export-picker-tools { grid-template-columns: minmax(0, 1fr) auto auto; }
  .cdc-publication-link-row { grid-template-columns: minmax(0, 1fr) 38px 38px; }
  .cdc-publication-link-row label { grid-column: 1 / -1; }
  .cdc-publication-link-row .cdc-btn { min-width: 0; }
  .cdc-publication-copy { grid-template-columns: minmax(0, 1fr); }
  .cdc-publication-fields > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  .cdc-setting-editor,
  .cdc-setting-editor.cdc-school-editor { grid-template-columns: minmax(0, 1fr); }
  .cdc-setting-editor > * { width: 100%; grid-column: auto !important; }
  .cdc-management-action-list > div > .cdc-btn { width: 100%; }
  .cdc-publication-link-row { grid-template-columns: minmax(0, 1fr) 38px 38px; }
  .cdc-publication-link-row > .cdc-btn { grid-column: 1 / -1; }
  .cdc-publication-fields > div { grid-template-columns: minmax(0, 1fr); }
  .cdc-export-picker-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdc-export-picker-tools .cdc-search { grid-column: 1 / -1; }
  .cdc-export-person { grid-template-columns: 18px minmax(0, 1fr); }
  .cdc-export-person em { grid-column: 2; justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  .cdc-apple-spinner { animation-duration: 1.4s; }
}
