:root {
  --bg: #f4f6f8;
  --surface: #ffffff;
  --line: #d9dee6;
  --text: #18202a;
  --muted: #667085;
  --teal: #0f766e;
  --teal-soft: #e6f4f1;
  --amber: #b45309;
  --red: #b42318;
  --red-soft: #fee4e2;
  --green: #027a48;
  --green-soft: #dcfae6;
  --shadow: 0 8px 18px rgba(24, 32, 42, 0.06);
}

/* Screening follow-up / secondary interview */
.secondary-interview-workspace {
  display: grid;
  gap: 18px;
  width: 100%;
  padding: 18px 20px 30px;
  color: #172033;
}

.secondary-panel-heading,
.secondary-risk-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.secondary-panel-heading h3,
.secondary-dimension-card h4 {
  margin: 0;
}

.secondary-eyebrow,
.secondary-panel-heading span {
  display: block;
  margin-bottom: 4px;
  color: #4f6ee8;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
}

.secondary-record-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.secondary-record-controls label {
  margin: 0;
}

.secondary-record-controls label > span {
  display: block;
  margin-bottom: 7px;
  color: #53627b;
  font-size: 13px;
  font-weight: 800;
}

.secondary-record-controls select {
  min-width: min(520px, 100%);
}

.secondary-record-strip {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding: 14px 16px;
  border: 1px solid #dbe6f5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(60, 79, 120, .04);
}

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

.secondary-export-actions button,
.secondary-record-controls button,
.secondary-analyze-btn {
  min-height: 40px;
  border-radius: 10px;
  padding: 0 15px;
  font-weight: 800;
}

.secondary-export-actions button:not(.primary),
.secondary-record-controls button:not(.primary),
.secondary-analyze-btn:not(.primary) {
  border-color: #d8e2f1;
  background: #fff;
  color: #24314a;
}

.secondary-export-actions .primary,
.secondary-record-controls .primary,
.secondary-analyze-btn.primary {
  border-color: transparent;
  background: linear-gradient(135deg, #3e70ff 0%, #7245f4 55%, #2cbde4 100%);
  color: #fff;
  box-shadow: 0 8px 18px rgba(76, 101, 239, .22);
}

.secondary-basic-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid #dbe6f5;
  border-radius: 16px;
  background: #dbe6f5;
}

.secondary-basic-grid > div {
  min-width: 0;
  padding: 16px;
  background: #fff;
}

.secondary-basic-grid span {
  display: block;
  margin-bottom: 7px;
  color: #7b89a3;
  font-size: 12px;
}

.secondary-basic-grid strong {
  display: block;
  overflow: hidden;
  color: #26334d;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.secondary-status-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 12px;
  background: #eef4ff;
  color: #3456a4;
}

.secondary-status-banner.status-returned {
  background: #fff3e7;
  color: #a95913;
}

.secondary-status-banner.status-reviewed {
  background: #ecfbf2;
  color: #1b7b4d;
}

.secondary-panel {
  padding: 22px;
  border: 1px solid #dfe7f3;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(60, 79, 120, .05);
}

.secondary-panel-heading {
  margin-bottom: 18px;
}

.secondary-panel-heading h3 {
  font-size: 19px;
}

.secondary-form-grid,
.secondary-evidence-grid,
.secondary-followup-details {
  display: grid;
  gap: 14px;
}

.secondary-form-grid.columns-2,
.secondary-evidence-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.secondary-form-grid.columns-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.secondary-followup-details {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 12px 0;
}

.secondary-panel label > span,
.secondary-field-group > span {
  display: block;
  margin-bottom: 7px;
  color: #53627b;
  font-size: 13px;
  font-weight: 700;
}

.secondary-panel input:not([type="checkbox"]):not([type="radio"]),
.secondary-panel select,
.secondary-panel textarea,
.secondary-record-controls select {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #ccd8e8;
  border-radius: 10px;
  background: #fff;
  color: #1f2b42;
}

.secondary-panel input[type="checkbox"],
.secondary-panel input[type="radio"] {
  width: 17px;
  min-width: 17px;
  height: 17px;
  min-height: 0;
  padding: 0;
  flex: 0 0 17px;
  box-shadow: none;
}

.secondary-panel input:not([type="checkbox"]):not([type="radio"]),
.secondary-panel select,
.secondary-record-controls select {
  min-height: 42px;
  padding: 9px 11px;
}

.secondary-panel textarea {
  min-height: 112px;
  padding: 10px 11px;
  line-height: 1.6;
  resize: vertical;
}

.secondary-evidence-grid textarea {
  min-height: 150px;
}

.secondary-source-text {
  min-height: 260px !important;
  max-height: 460px;
}

.secondary-panel input:disabled,
.secondary-panel select:disabled,
.secondary-panel textarea:disabled {
  background: #f6f8fc;
  color: #5f6f89;
}

.secondary-field-group {
  margin: 14px 0;
}

.secondary-check-grid {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex-wrap: wrap;
}

.secondary-check-option {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.secondary-check-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.secondary-check-option span {
  display: inline-flex !important;
  align-items: center;
  min-height: 34px;
  margin: 0 !important;
  padding: 5px 11px;
  border: 1px solid #d6dfed;
  border-radius: 9px;
  background: #f8faff;
  color: #52617a !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer;
}

.secondary-check-option input:checked + span {
  border-color: #5b7cff;
  background: #edf2ff;
  color: #3457d5 !important;
  box-shadow: inset 0 0 0 1px rgba(91, 124, 255, .12);
}

.secondary-check-option input:disabled + span {
  cursor: default;
  opacity: .78;
}

.secondary-dimension-card {
  margin-top: 12px;
  padding: 16px;
  border: 1px solid #e1e8f3;
  border-radius: 13px;
  background: #fbfcff;
}

.secondary-dimension-card h4 {
  margin-bottom: 12px;
  color: #273754;
  font-size: 15px;
}

.secondary-evidence-grid {
  margin-top: 13px;
}

.secondary-ethics-note {
  padding: 11px 13px;
  border-left: 4px solid #ef6a6a;
  border-radius: 8px;
  background: #fff6f6;
  color: #8b3e47;
  line-height: 1.6;
}

.secondary-transcript-list {
  display: grid;
  gap: 9px;
}

.secondary-transcript-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 14px;
  border: 1px solid #dce5f2;
  border-radius: 11px;
  background: #fafcff;
}

.secondary-transcript-list.is-readonly .secondary-transcript-item {
  border-left: 4px solid #4f8df7;
  background: linear-gradient(135deg, #fbfdff 0%, #f6f9ff 100%);
}

.secondary-transcript-item input {
  margin-top: 4px;
}

.secondary-transcript-item span {
  min-width: 0;
}

.secondary-transcript-item strong,
.secondary-transcript-item em,
.secondary-transcript-item small {
  display: block;
}

.secondary-transcript-item em {
  margin: 2px 0 5px;
  color: #7b89a3;
  font-size: 12px;
  font-style: normal;
}

.secondary-transcript-item small {
  overflow: hidden;
  color: #53627a;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.secondary-source-preview {
  padding: 20px 22px;
  border: 1px solid #dbe6f5;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(60, 79, 120, .04);
}

.secondary-source-preview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.secondary-source-preview-head h3 {
  margin: 0;
  color: #22304b;
}

.secondary-source-meta {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  color: #76859d;
  font-size: 12px;
}

.secondary-source-preview textarea {
  width: 100%;
  border: 1px solid #d8e2f1;
  border-radius: 12px;
  background: #fbfdff;
  color: #24314a;
  padding: 12px 14px;
  line-height: 1.65;
  resize: vertical;
}

.secondary-risk-head {
  margin: 18px 0 10px;
}

.secondary-model-badge {
  padding: 5px 9px;
  border-radius: 999px;
  background: #edf2ff;
  color: #3f60d8;
  font-size: 12px;
  font-weight: 800;
}

.secondary-risk-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.secondary-risk-option {
  position: relative;
  margin: 0;
}

.secondary-risk-option input {
  position: absolute;
  width: 1px;
  min-width: 1px;
  height: 1px;
  min-height: 0;
  flex: none;
  opacity: 0;
}

.secondary-risk-option > span {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  margin: 0 !important;
  padding: 12px 14px;
  border: 2px solid #dbe3ef;
  border-radius: 14px;
  background: #fff;
  color: #25334d !important;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(42, 60, 96, .05);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}

.secondary-risk-option > span:hover {
  border-color: #9fb1cf;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(42, 60, 96, .08);
}

.secondary-risk-option b {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #fff;
  font-size: 12px;
  flex: 0 0 28px;
}

.secondary-risk-option.risk-green b { background: #27a96b; }
.secondary-risk-option.risk-yellow b { background: #d8a700; }
.secondary-risk-option.risk-orange b { background: #e87821; }
.secondary-risk-option.risk-red b { background: #d94242; }
.secondary-risk-option.risk-green input:checked + span { border-color: #27a96b; background: #eefaf4; box-shadow: inset 0 0 0 1px rgba(39, 169, 107, .18), 0 8px 18px rgba(39, 169, 107, .08); }
.secondary-risk-option.risk-yellow input:checked + span { border-color: #d8a700; background: #fff9e4; box-shadow: inset 0 0 0 1px rgba(216, 167, 0, .18), 0 8px 18px rgba(216, 167, 0, .08); }
.secondary-risk-option.risk-orange input:checked + span { border-color: #e87821; background: #fff3ea; box-shadow: inset 0 0 0 1px rgba(232, 120, 33, .18), 0 8px 18px rgba(232, 120, 33, .08); }
.secondary-risk-option.risk-red input:checked + span { border-color: #d94242; background: #fff0f0; box-shadow: inset 0 0 0 1px rgba(217, 66, 66, .18), 0 8px 18px rgba(217, 66, 66, .08); }

.secondary-risk-option em {
  position: absolute;
  right: 12px;
  bottom: 8px;
  color: #65748f;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.secondary-analysis-progress {
  position: relative;
  overflow: hidden;
  height: 8px;
  margin: -6px 0 14px;
  border-radius: 999px;
  background: #edf2ff;
}

.secondary-analysis-progress i {
  position: absolute;
  inset: 0 auto 0 0;
  width: 42%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3e70ff, #7245f4, #2cbde4);
  animation: secondary-progress-slide 1.08s ease-in-out infinite;
}

@keyframes secondary-progress-slide {
  0% { transform: translateX(-105%); }
  55% { transform: translateX(82%); }
  100% { transform: translateX(242%); }
}

.secondary-confirm-check,
.secondary-inline-check {
  display: flex !important;
  align-items: center;
  gap: 9px;
}

.secondary-confirm-check {
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid #cfdaf0;
  border-radius: 10px;
  background: #f5f8ff;
}

.secondary-confirm-check span,
.secondary-inline-check span {
  margin: 0 !important;
}

.secondary-confirm-check em {
  display: inline-flex;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff0f0;
  color: #d94242;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.secondary-empty-state {
  display: grid;
  place-items: center;
  min-height: 220px;
  gap: 7px;
  border: 1px dashed #cbd8ea;
  border-radius: 16px;
  background: #fbfcff;
  color: #6e7f99;
}

.secondary-empty-state strong {
  color: #2e3b55;
  font-size: 18px;
}

@media (max-width: 1200px) {
  .secondary-basic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .secondary-risk-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .secondary-interview-workspace { padding: 12px; }
  .secondary-panel-heading,
  .secondary-source-preview-head { align-items: stretch; flex-direction: column; }
  .secondary-basic-grid,
  .secondary-form-grid.columns-2,
  .secondary-form-grid.columns-3,
  .secondary-evidence-grid,
  .secondary-followup-details,
  .secondary-risk-options { grid-template-columns: 1fr; }
  .secondary-record-controls select { min-width: 0; }
  .secondary-record-strip,
  .secondary-export-actions,
  .secondary-record-controls { justify-items: stretch; justify-content: stretch; }
}

@font-face {
  font-family: "Source Han Sans SC";
  src: url("assets/fonts/SourceHanSansSC-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Source Han Sans SC", "思源黑体", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--text);
  padding: 0 12px;
  cursor: pointer;
  transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}

button:hover {
  border-color: var(--teal);
  transform: translateY(-1px);
}

button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 3px solid rgba(15, 118, 110, 0.18);
  outline-offset: 2px;
  border-color: var(--teal);
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.52;
}

select,
input,
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--text);
}

select,
input {
  min-height: 36px;
  padding: 0 10px;
}

textarea {
  min-height: 520px;
  resize: vertical;
  padding: 12px;
  line-height: 1.6;
}

.shell {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  min-height: 100vh;
}

.sidebar {
  border-right: 1px solid var(--line);
  background: #ffffff;
  padding: 14px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.brand-mark {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 8px;
  background: var(--teal);
  color: #fff;
  font-weight: 700;
}

.brand h1 {
  margin: 0;
  font-size: 16px;
}

.brand p,
.crumb {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.toolbar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-bottom: 14px;
}

.identity-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f9fbfb;
  padding: 10px;
  margin-bottom: 12px;
}

.identity-panel .filter-field + .filter-field {
  margin-top: 8px;
}

.feature-menu {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
}

.feature-menu button {
  width: 100%;
  min-height: 34px;
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  padding: 6px 10px;
}

.feature-menu button:hover,
.feature-menu button.active {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal);
  transform: none;
}

.sidebar-todos {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffaf5;
  padding: 10px;
  margin-bottom: 12px;
}

.todo-list {
  display: grid;
  gap: 6px;
}

.todo-item {
  width: 100%;
  min-height: auto;
  padding: 8px 10px;
  text-align: left;
  border: 1px dashed #f0d7b8;
  background: #fff;
}

.todo-item strong {
  display: block;
  font-size: 13px;
}

.todo-item span {
  color: var(--muted);
  font-size: 12px;
}

.basics-hint {
  margin: 0 0 10px;
  color: var(--amber);
  font-size: 12px;
  line-height: 1.5;
}

.extended-profile-block {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}

.extended-profile-block h4 {
  margin: 0;
  font-size: 14px;
}

.extended-profile-form {
  display: grid;
  gap: 8px;
}

.profile-field-row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
}

.profile-field-row textarea {
  min-height: 72px;
}

.profile-field-row .btn-remove-field {
  min-width: 34px;
  min-height: 34px;
  padding: 0;
}

.record-item.needs-basics {
  border-color: #f0b27a;
  background: #fffaf5;
}

.feature-view {
  display: grid;
  gap: 14px;
}

.feature-panel {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  padding: 16px;
  box-shadow: var(--shadow);
}

.profile-panel .profile-alert {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff7e6;
  border: 1px solid #f0d9a8;
  color: #7a4d00;
  font-size: 0.9rem;
  line-height: 1.5;
}

.profile-form {
  margin-top: 14px;
}

.profile-form .modal-fieldset {
  margin: 0;
}

.profile-form-actions {
  margin-top: 18px;
}

.profile-action-btn {
  min-width: 96px;
  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease,
    background 0.16s ease,
    color 0.16s ease,
    border-color 0.16s ease;
}

.profile-action-btn.is-dirty:hover {
  transform: translateY(-1px);
}

.profile-action-btn:disabled {
  border-color: rgba(148, 163, 184, 0.28) !important;
  background: #eef2f7 !important;
  color: #94a3b8 !important;
  cursor: not-allowed;
  box-shadow: none !important;
  transform: none;
}

.profile-action-btn.is-saving {
  border-color: transparent !important;
  background: linear-gradient(135deg, #93c5fd, #a78bfa) !important;
  color: #ffffff !important;
  cursor: wait;
}

.profile-action-btn.is-saved {
  border-color: transparent !important;
  background: linear-gradient(135deg, #22c55e, #14b8a6) !important;
  color: #ffffff !important;
  animation: profile-save-pop 0.58s ease;
  box-shadow: 0 12px 24px rgba(20, 184, 166, 0.2) !important;
}

@keyframes profile-save-pop {
  0% {
    transform: scale(0.98);
  }
  48% {
    transform: scale(1.04);
  }
  100% {
    transform: scale(1);
  }
}

.profile-readonly-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.profile-password-hint {
  margin: 0 0 10px;
}

.profile-section-target {
  scroll-margin-top: 20px;
  outline: none;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
}

.profile-section-target.is-targeted {
  border-color: rgba(88, 112, 245, 0.58);
  background: linear-gradient(135deg, rgba(240, 246, 255, 0.76), rgba(249, 246, 255, 0.72));
  box-shadow:
    0 0 0 4px rgba(91, 116, 246, 0.09),
    0 12px 30px rgba(72, 91, 145, 0.08);
}

.profile-quick-actions-hint {
  margin: 4px 0 14px;
  line-height: 1.6;
}

.profile-quick-actions-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.profile-quick-actions-grid .profile-quick-action-option {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 22px;
  gap: 10px;
  align-items: center;
  min-height: 74px;
  margin: 0;
  padding: 12px;
  border: 1px solid #e4eaf5;
  border-radius: 12px;
  background: #fbfcff;
  color: #2f3d56;
  cursor: pointer;
  transition:
    border-color 0.16s ease,
    background 0.16s ease,
    box-shadow 0.16s ease,
    transform 0.16s ease;
}

.profile-quick-actions-grid .profile-quick-action-option:hover {
  border-color: rgba(84, 112, 239, 0.34);
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(74, 95, 148, 0.08);
  transform: translateY(-1px);
}

.profile-quick-action-option > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.profile-quick-action-option:focus-within {
  outline: 3px solid rgba(74, 113, 245, 0.18);
  outline-offset: 2px;
}

.profile-quick-action-option:has(input:checked) {
  border-color: rgba(83, 111, 241, 0.45);
  background: linear-gradient(135deg, #f4f8ff, #faf7ff);
}

.profile-quick-action-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  background: linear-gradient(135deg, #edf4ff, #f3efff);
  color: #607ef1;
}

.profile-quick-action-icon svg {
  width: 21px;
  height: 21px;
}

.profile-quick-action-option > span:nth-of-type(2) {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.profile-quick-action-option strong {
  font-size: 13px;
}

.profile-quick-action-option small {
  overflow: hidden;
  color: #7d8ba3;
  font-size: 11px;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-quick-action-option > i {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid #d9e0ed;
  border-radius: 6px;
  background: #ffffff;
  color: transparent;
  font-size: 12px;
  font-style: normal;
}

.profile-quick-action-option > input:checked ~ i {
  border-color: #607df4;
  background: linear-gradient(135deg, #5f8af5, #725ef0);
  color: #ffffff;
}

.profile-quick-actions-reset {
  border-color: #dfe5ef;
  background: #ffffff;
  color: #6c7890;
}

.profile-quick-actions-reset:hover {
  border-color: #c9d5ea;
  color: #4667ca;
}

@media (max-width: 900px) {
  .profile-quick-actions-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .profile-quick-actions-grid {
    grid-template-columns: 1fr;
  }
}

.patient-merge-duplicates {
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #f0d9a8;
  border-radius: 10px;
  background: #fffaf0;
}

.patient-merge-duplicates-title {
  margin: 0 0 10px;
  color: #7a4d00;
}

.patient-merge-duplicate-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-top: 1px solid rgba(122, 77, 0, 0.12);
}

.patient-merge-duplicate-item:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
}

.stat-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #f9fbfb;
}

.stat-card strong {
  display: block;
  font-size: 24px;
  margin-top: 4px;
}

.stats-dashboard {
  display: grid;
  gap: 16px;
}

.stats-dashboard-head {
  align-items: flex-start;
  margin-bottom: 0;
}

.stats-dashboard-head p {
  margin: 4px 0 0;
  color: #6c7890;
  font-size: 13px;
  font-weight: 700;
}

.stats-overview-grid {
  grid-template-columns: repeat(7, minmax(112px, 1fr));
}

.stats-kpi-card {
  min-height: 96px;
  background:
    radial-gradient(circle at 88% 12%, rgba(var(--theme-rgb-c), 0.12), transparent 30%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.08), rgba(255, 255, 255, 0.96));
}

.stats-chart-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.92fr) minmax(320px, 1.08fr);
  gap: 14px;
}

.stats-chart-grid-wide {
  grid-template-columns: 1fr;
}

.stats-chart-card {
  position: relative;
  overflow: hidden;
  min-height: 260px;
  padding: 16px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  border-radius: 8px;
  background:
    radial-gradient(circle at 96% 0%, rgba(var(--theme-rgb-a), 0.12), transparent 26%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(var(--theme-rgb-b), 0.045)),
    #fff;
  box-shadow: 0 16px 34px rgba(44, 64, 104, 0.08);
}

.stats-chart-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c));
}

.stats-chart-card > * {
  position: relative;
  z-index: 1;
}

.stats-chart-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.stats-chart-title h4 {
  margin: 0;
  color: #172235;
  font-size: 16px;
}

.stats-chart-title span {
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.09);
  color: var(--theme-text);
  font-size: 12px;
  font-weight: 800;
}

.stats-donut-layout {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
}

.stats-donut {
  position: relative;
  display: grid;
  width: 168px;
  height: 168px;
  place-items: center;
  border-radius: 50%;
  background: var(--stats-donut);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.48),
    0 18px 36px rgba(var(--theme-rgb-b), 0.12);
}

.stats-donut::after {
  content: "";
  position: absolute;
  inset: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(91, 117, 154, 0.1);
}

.stats-donut-core {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.stats-donut-core strong {
  color: #172235;
  font-size: 30px;
  line-height: 1;
}

.stats-donut-core span {
  margin-top: 6px;
  color: #6c7890;
  font-size: 12px;
  font-weight: 800;
}

.stats-donut-legend {
  display: grid;
  gap: 8px;
}

.stats-legend-row {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) 48px 44px;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 8px;
  border: 1px solid rgba(91, 117, 154, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
}

.stats-legend-row span {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #2b3850;
  font-weight: 800;
}

.stats-legend-row i {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
}

.stats-legend-row strong,
.stats-legend-row em {
  color: #172235;
  font-style: normal;
  font-weight: 900;
  text-align: right;
}

.stats-legend-row em {
  color: #728098;
  font-size: 12px;
}

.stats-stage-bars,
.stats-school-bars {
  display: grid;
  gap: 12px;
}

.stats-stage-row {
  display: grid;
  grid-template-columns: minmax(112px, 0.85fr) minmax(180px, 1.4fr) 44px;
  align-items: center;
  gap: 12px;
}

.stats-stage-meta,
.stats-school-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}

.stats-stage-meta span,
.stats-school-meta span {
  overflow: hidden;
  color: #2b3850;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stats-stage-meta strong,
.stats-school-meta strong {
  color: #172235;
  font-size: 16px;
  font-weight: 900;
}

.stats-stage-track,
.stats-school-row {
  overflow: hidden;
  border-radius: 999px;
  background:
    linear-gradient(90deg, rgba(91, 117, 154, 0.08), rgba(91, 117, 154, 0.035));
}

.stats-stage-track {
  height: 13px;
}

.stats-stage-track i,
.stats-school-track i {
  display: block;
  height: 100%;
  border-radius: 999px;
}

.stats-stage-row em {
  color: #728098;
  font-style: normal;
  font-size: 12px;
  font-weight: 900;
  text-align: right;
}

.stats-school-chart {
  min-height: 300px;
}

.stats-school-row {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 38px;
  padding: 6px 8px;
  border: 1px solid rgba(91, 117, 154, 0.08);
  background: rgba(255, 255, 255, 0.7);
}

.stats-school-track {
  display: flex;
  overflow: hidden;
  min-width: 32px;
  height: 18px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.stats-school-track i {
  flex: 0 0 auto;
  min-width: 0;
  border-radius: 0;
}

.stats-school-track i:first-child {
  border-radius: 999px 0 0 999px;
}

.stats-school-track i:last-child {
  border-radius: 0 999px 999px 0;
}

.stats-empty-chart {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: #728098;
  font-weight: 800;
}

.stats-detail-table {
  margin-top: 0;
  overflow: hidden;
  border: 1px solid rgba(var(--theme-rgb-b), 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
}

/* Phase-one role-aware analytics center. The legacy dashboard stats above remain
   available to the home/todo workflow but are no longer rendered on /stats. */
.analytics-dashboard {
  --analytics-ink: #172235;
  --analytics-muted: #687791;
  --analytics-line: rgba(91, 117, 154, 0.14);
  gap: 18px;
  padding: 20px !important;
  background:
    radial-gradient(circle at 96% 0%, rgba(var(--theme-rgb-c), 0.09), transparent 24%),
    linear-gradient(180deg, #ffffff 0%, rgba(247, 250, 255, 0.96) 100%) !important;
}

.analytics-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.analytics-page-head h3 {
  margin: 2px 0 0;
  font-size: clamp(24px, 2vw, 32px);
  letter-spacing: -0.03em;
}

.analytics-page-head .analytics-eyebrow {
  margin: 0;
  color: var(--theme-text);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

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

.analytics-export-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  text-decoration: none;
}

.analytics-filter-bar {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--analytics-line);
  border-radius: 12px;
  background: rgba(248, 250, 255, 0.9);
}

.analytics-filter-bar > label,
.analytics-custom-range label,
.analytics-inline-form label {
  display: grid;
  min-width: 150px;
  gap: 6px;
}

.analytics-filter-bar label > span,
.analytics-inline-form label > span {
  color: #4d5d78;
  font-size: 12px;
  font-weight: 900;
}

.analytics-filter-bar select,
.analytics-filter-bar input,
.analytics-inline-form select,
.analytics-inline-form input {
  min-height: 40px;
  border-radius: 9px;
}

.analytics-custom-range {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.analytics-context-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.11);
  border-radius: 10px;
  background: linear-gradient(90deg, rgba(var(--theme-rgb-a), 0.08), rgba(var(--theme-rgb-b), 0.04));
  color: #4d5d78;
}

.analytics-context-bar span {
  padding: 4px 9px;
  border-radius: 999px;
  background: #fff;
  color: var(--theme-text);
  font-size: 12px;
  font-weight: 900;
}

.analytics-context-bar strong {
  color: var(--analytics-ink);
  font-size: 13px;
}

.analytics-context-bar small {
  margin-left: auto;
  color: var(--analytics-muted);
  font-weight: 800;
}

.analytics-method-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 9px;
  padding: 10px 12px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  border-radius: 10px;
  background: #fff;
  color: #53627d;
  font-size: 11px;
  font-weight: 800;
}

.analytics-method-bar strong {
  color: var(--analytics-ink);
  font-size: 12px;
}

.analytics-method-bar span {
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.07);
}

.analytics-method-bar small {
  margin-left: auto;
  color: var(--analytics-muted);
  font-weight: 800;
}

.analytics-readiness-disclosure {
  overflow: hidden;
  border: 1px solid var(--analytics-line);
  border-radius: 10px;
  background: rgba(248, 250, 255, 0.76);
}

.analytics-readiness-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  color: var(--analytics-ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
}

.analytics-readiness-disclosure > summary small {
  color: var(--analytics-muted);
  font-size: 10px;
}

.analytics-readiness-disclosure[open] > summary {
  border-bottom: 1px solid var(--analytics-line);
}

.analytics-readiness-disclosure > .analytics-readiness {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.analytics-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 5px;
  border: 1px solid var(--analytics-line);
  border-radius: 12px;
  background: rgba(237, 243, 253, 0.72);
  scrollbar-width: thin;
}

.analytics-tabs button {
  min-height: 38px;
  flex: 0 0 auto;
  padding: 8px 15px;
  border-color: transparent;
  background: transparent;
  color: #53627d;
  box-shadow: none;
  font-size: 13px;
  font-weight: 900;
}

.admin-page .analytics-tabs button:hover,
.admin-page .analytics-tabs button:focus-visible {
  border-color: rgba(var(--theme-rgb-b), 0.12);
  background: rgba(255, 255, 255, 0.82);
  color: var(--theme-text);
}

.admin-page .analytics-tabs button.active,
.admin-page .analytics-tabs button.active:hover,
.admin-page .analytics-tabs button.active:focus-visible {
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 58%, var(--theme-c));
  color: #fff;
  -webkit-text-fill-color: #fff;
  box-shadow: 0 8px 18px var(--theme-shadow);
}

.analytics-content,
.analytics-stack,
.analytics-single-column {
  display: grid;
  gap: 16px;
}

.analytics-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 10px;
}

.analytics-outcome-grid {
  grid-template-columns: repeat(4, minmax(190px, 1fr));
}

.analytics-kpi-card {
  position: relative;
  min-height: 150px;
  overflow: hidden;
  padding: 16px;
  border: 1px solid var(--analytics-line);
  border-radius: 12px;
  background:
    radial-gradient(circle at 92% 4%, rgba(var(--theme-rgb-a), 0.13), transparent 31%),
    #fff;
  box-shadow: 0 12px 26px rgba(45, 64, 105, 0.07);
}

.analytics-kpi-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c));
}

.analytics-kpi-card > span {
  color: #53627d;
  font-size: 13px;
  font-weight: 900;
}

.analytics-kpi-card > strong {
  display: block;
  min-height: 39px;
  margin: 9px 0 4px;
  color: var(--analytics-ink);
  font-size: clamp(23px, 2vw, 30px);
  line-height: 1.25;
  letter-spacing: -0.03em;
}

.analytics-kpi-card > p {
  margin: 8px 0 0;
  color: #79869d;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.55;
}

.analytics-outcome-grid .analytics-kpi-card {
  min-height: 174px;
}

.analytics-outcome-grid .analytics-kpi-card > strong {
  font-size: clamp(21px, 1.8vw, 28px);
}

.analytics-kpi-delta {
  display: inline-flex;
  min-height: 21px;
  align-items: center;
  padding: 3px 7px;
  border-radius: 999px;
  background: #f0f3f8;
  color: #687791;
  font-size: 10px;
  font-weight: 900;
}

.analytics-kpi-delta.is-up {
  background: rgba(217, 86, 108, 0.1);
  color: #bc4057;
}

.analytics-kpi-delta.is-down {
  background: rgba(54, 170, 114, 0.1);
  color: #247c54;
}

.analytics-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(280px, 0.72fr);
  gap: 14px;
}

.analytics-two-column,
.analytics-severity-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.analytics-severity-layout {
  grid-template-columns: minmax(250px, 0.65fr) minmax(0, 1.35fr);
}

.analytics-overview-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(290px, 0.75fr);
  gap: 14px;
}

.analytics-overview-summary-grid > * {
  min-width: 0;
}

.analytics-card {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--analytics-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(45, 64, 105, 0.065);
}

.analytics-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.analytics-card-head h4 {
  margin: 0;
  color: var(--analytics-ink);
  font-size: 16px;
}

.analytics-card-head p {
  margin: 5px 0 0;
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.analytics-card-head > span {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.08);
  color: var(--theme-text);
  font-size: 11px;
  font-weight: 900;
}

.analytics-state {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  min-height: 126px;
  padding: 20px;
  border: 1px dashed rgba(91, 117, 154, 0.22);
  border-radius: 12px;
  background: rgba(247, 249, 253, 0.86);
}

.analytics-state > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: rgba(var(--theme-rgb-b), 0.1);
  color: var(--theme-text);
  font-size: 17px;
  font-weight: 900;
}

.analytics-state strong {
  color: var(--analytics-ink);
}

.analytics-state p {
  margin: 5px 0 0;
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 700;
}

.analytics-state--error {
  border-color: rgba(217, 86, 108, 0.32);
  background: rgba(255, 244, 247, 0.9);
}

.analytics-state--error > span {
  background: rgba(217, 86, 108, 0.12);
  color: #bf3f58;
}

.analytics-state--ready {
  border-color: rgba(54, 170, 114, 0.28);
  background: rgba(244, 252, 248, 0.92);
}

.analytics-state--ready > span {
  background: rgba(54, 170, 114, 0.13);
  color: #247c54;
}

.analytics-state--insufficient {
  border-color: rgba(240, 140, 70, 0.28);
  background: rgba(255, 250, 242, 0.92);
}

.analytics-state--insufficient > span {
  background: rgba(240, 140, 70, 0.13);
  color: #a8612c;
}

.analytics-bar-chart {
  display: grid;
  gap: 12px;
}

.analytics-bar-row {
  display: grid;
  grid-template-columns: minmax(120px, 0.85fr) minmax(130px, 1.4fr) 52px;
  align-items: center;
  gap: 11px;
}

.analytics-bar-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.analytics-bar-meta span {
  overflow: hidden;
  color: #41506a;
  font-size: 12px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.analytics-bar-meta strong {
  color: var(--analytics-ink);
  font-size: 13px;
}

.analytics-bar-track {
  height: 11px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(91, 117, 154, 0.09);
}

.analytics-bar-track i {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
}

.analytics-bar-row em {
  color: #697892;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  text-align: right;
}

.analytics-bar-row.is-suppressed {
  opacity: 0.76;
}

.analytics-ring-layout {
  display: grid;
  grid-template-columns: minmax(150px, 0.78fr) minmax(0, 1.22fr);
  align-items: center;
  gap: 14px;
}

.analytics-ring-svg {
  display: block;
  width: min(100%, 190px);
  height: auto;
  margin-inline: auto;
  overflow: visible;
}

.analytics-ring-track,
.analytics-ring-segment {
  fill: none;
  stroke-width: 25;
}

.analytics-ring-track {
  stroke: #edf1f7;
}

.analytics-ring-segment {
  transform: rotate(-90deg);
  transform-origin: 95px 95px;
  stroke-linecap: butt;
}

.analytics-ring-total {
  fill: var(--analytics-ink);
  font-size: 25px;
  font-weight: 900;
}

.analytics-ring-center-label {
  fill: var(--analytics-muted);
  font-size: 10px;
  font-weight: 900;
}

.analytics-ring-legend {
  display: grid;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.analytics-ring-legend li {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 7px 8px;
  border-radius: 8px;
  background: #f7f9fc;
  color: #52617a;
  font-size: 10px;
  font-weight: 800;
}

.analytics-ring-legend li > i {
  display: grid;
  width: 16px;
  height: 16px;
  place-items: center;
  border-radius: 50%;
  background: var(--ring-color);
  color: #fff;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
}

.analytics-ring-legend li > span {
  min-width: 0;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.analytics-ring-legend strong {
  color: var(--analytics-ink);
  white-space: nowrap;
}

.analytics-ring-legend em {
  color: var(--analytics-muted);
  font-style: normal;
  white-space: nowrap;
}

.analytics-ring-note,
.analytics-series-note {
  margin: 12px 0 0;
  padding: 9px 10px;
  border-radius: 8px;
  background: rgba(var(--theme-rgb-b), 0.06);
  color: #65748d;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.55;
}

.analytics-table-fallback {
  margin-top: 16px;
  border-top: 1px solid var(--analytics-line);
}

.analytics-table-fallback summary {
  padding: 12px 0 3px;
  color: var(--theme-text);
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
}

.analytics-table-scroll {
  overflow-x: auto;
  margin-top: 8px;
  border: 1px solid var(--analytics-line);
  border-radius: 9px;
}

.analytics-table-scroll table,
.analytics-table-fallback table {
  width: 100%;
  min-width: 420px;
  border-collapse: collapse;
  background: #fff;
}

.analytics-table-scroll th,
.analytics-table-scroll td,
.analytics-table-fallback th,
.analytics-table-fallback td {
  padding: 9px 10px;
  border-bottom: 1px solid rgba(91, 117, 154, 0.1);
  color: #3d4c65;
  font-size: 12px;
  text-align: left;
  vertical-align: middle;
}

.analytics-table-scroll th,
.analytics-table-fallback th {
  background: #f5f7fb;
  color: #53627d;
  font-weight: 900;
}

.analytics-svg-wrap {
  width: 100%;
  overflow-x: auto;
}

.analytics-svg-wrap svg {
  display: block;
  width: 100%;
  min-width: 580px;
  height: auto;
}

.analytics-svg-wrap text {
  fill: #718098;
  font-size: 10px;
  font-weight: 700;
}

.analytics-grid-line {
  stroke: rgba(91, 117, 154, 0.12);
  stroke-width: 1;
}

.analytics-trend-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: -5px 0 8px;
}

.analytics-trend-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #5c6b84;
  font-size: 11px;
  font-weight: 900;
}

.analytics-trend-legend i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.analytics-trend-legend .analytics-legend-dash {
  width: 18px;
  height: 0;
  border-top: 2px dashed #7a8ba8;
  border-radius: 0;
}

.analytics-line-legend span {
  align-items: center;
}

.analytics-line-legend span small {
  padding: 2px 5px;
  border-radius: 999px;
  background: #f0f3f8;
  color: #74829a;
  font-size: 8px;
}

.analytics-line-legend i {
  position: relative;
  width: 25px;
  height: 10px;
  border-top: 3px solid var(--series-color);
  border-radius: 0;
}

.analytics-line-legend i.is-square {
  border-top-style: dashed;
}

.analytics-line-legend i.is-diamond {
  border-top-style: dotted;
}

.analytics-line-legend i::after {
  position: absolute;
  top: -6px;
  left: 9px;
  width: 7px;
  height: 7px;
  border: 2px solid var(--series-color);
  background: #fff;
  content: "";
}

.analytics-line-legend i.is-circle::after {
  border-radius: 50%;
}

.analytics-line-legend i.is-square::after {
  border-radius: 1px;
}

.analytics-line-legend i.is-diamond::after {
  transform: rotate(45deg);
}

.analytics-series-note {
  margin: 0 0 10px;
  border-left: 3px solid #19a8b8;
}

.analytics-metric-switch {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: -4px 0 14px;
}

.analytics-metric-switch button {
  min-height: 32px;
  padding: 6px 10px;
  border-color: rgba(91, 117, 154, 0.18);
  border-radius: 999px;
  background: #f6f8fc;
  color: #5c6b84;
  box-shadow: none;
  font-size: 11px;
  font-weight: 900;
}

.admin-page .analytics-metric-switch button.active,
.analytics-metric-switch button.active {
  border-color: transparent;
  background: var(--theme-text);
  color: #fff;
  -webkit-text-fill-color: #fff;
}

.analytics-benchmark-chart {
  display: grid;
  gap: 14px;
}

.analytics-benchmark-legend {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  color: #5c6b84;
  font-size: 11px;
  font-weight: 900;
}

.analytics-benchmark-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.analytics-benchmark-legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

.analytics-benchmark-legend i.is-baseline,
.analytics-benchmark-bars b.is-baseline {
  background: #a9b5ca;
}

.analytics-benchmark-legend i.is-current,
.analytics-benchmark-bars b.is-current {
  background: #36aa72;
}

.analytics-benchmark-bars b.is-current.is-over {
  background: #d9566c;
}

.analytics-benchmark-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
}

.analytics-benchmark-row > div:first-child {
  display: grid;
  gap: 4px;
}

.analytics-benchmark-row > div:first-child strong {
  color: var(--analytics-ink);
  font-size: 13px;
}

.analytics-benchmark-row > div:first-child small {
  color: var(--analytics-muted);
  font-size: 10px;
  font-weight: 800;
}

.analytics-benchmark-bars {
  display: grid;
  gap: 8px;
}

.analytics-benchmark-bars > div {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 76px;
  align-items: center;
  gap: 8px;
}

.analytics-benchmark-bars span,
.analytics-benchmark-bars em {
  color: #65748d;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.analytics-benchmark-bars em {
  text-align: right;
}

.analytics-benchmark-bars i {
  position: relative;
  display: block;
  height: 11px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf1f7;
}

.analytics-benchmark-bars b {
  display: block;
  min-width: 2px;
  height: 100%;
  border-radius: inherit;
}

.analytics-benchmark-axis {
  display: flex;
  justify-content: space-between;
  margin-left: 168px;
  padding: 2px 76px 0 46px;
  border-top: 1px solid rgba(91, 117, 154, 0.12);
  color: #8a95a8;
  font-size: 9px;
  font-weight: 800;
}

.analytics-baseline-line {
  stroke: #7a8ba8;
  stroke-width: 1.5;
  stroke-dasharray: 6 5;
}

.analytics-baseline-line.is-followup {
  opacity: 0.62;
}

.analytics-interpretation-card ul {
  display: grid;
  gap: 9px;
  margin: 0;
  padding-left: 20px;
  color: #4d5d78;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.65;
}

.analytics-causality-note {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-left: 3px solid #f08c46;
  border-radius: 8px;
  background: rgba(240, 140, 70, 0.08);
  color: #72523b;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.55;
}

.analytics-coverage-ring {
  position: relative;
  display: grid;
  width: 154px;
  height: 154px;
  margin: 8px auto 12px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--theme-b) calc(var(--coverage) * 1%), #e9eef6 0);
}

.analytics-coverage-ring::before {
  content: "";
  position: absolute;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  background: #fff;
}

.analytics-coverage-ring > div {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.analytics-coverage-ring strong {
  color: var(--analytics-ink);
  font-size: 27px;
}

.analytics-coverage-ring span {
  color: var(--analytics-muted);
  font-size: 11px;
  font-weight: 900;
}

.analytics-coverage-detail,
.analytics-data-note {
  margin: 8px 0 0;
  color: #65748d;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.55;
  text-align: center;
}

.analytics-data-note {
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(var(--theme-rgb-b), 0.06);
}

.analytics-quality-list {
  display: grid;
  gap: 8px;
}

.analytics-quality-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 1px solid rgba(91, 117, 154, 0.1);
  border-radius: 9px;
  background: #fafbfe;
}

.analytics-quality-list span {
  display: grid;
  gap: 2px;
}

.analytics-quality-list strong {
  color: #3d4c65;
  font-size: 12px;
}

.analytics-quality-list small {
  color: #8290a6;
  font-size: 10px;
  font-weight: 700;
}

.analytics-quality-list em {
  min-width: 42px;
  color: var(--analytics-ink);
  font-size: 18px;
  font-style: normal;
  font-weight: 900;
  text-align: right;
}

.analytics-service-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
}

.analytics-service-kpis article {
  padding: 15px;
  border: 1px solid var(--analytics-line);
  border-radius: 11px;
  background: linear-gradient(135deg, #fff, rgba(var(--theme-rgb-a), 0.06));
}

.analytics-service-kpis span {
  display: block;
  color: #5c6b84;
  font-size: 12px;
  font-weight: 900;
}

.analytics-service-kpis strong {
  display: block;
  margin-top: 7px;
  color: var(--analytics-ink);
  font-size: 22px;
}

.analytics-service-kpis small {
  display: block;
  margin-top: 6px;
  color: var(--analytics-muted);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.45;
}

.analytics-readiness {
  background:
    radial-gradient(circle at 96% 0%, rgba(var(--theme-rgb-c), 0.1), transparent 30%),
    #fff;
}

.analytics-readiness-grid {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.analytics-readiness-grid article {
  min-height: 104px;
}

.analytics-readiness-grid strong {
  font-size: 20px;
}

.analytics-insight-readiness .analytics-state {
  min-height: 150px;
}

.analytics-metric-list {
  display: grid;
  gap: 10px;
  margin: 0;
}

.analytics-metric-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px;
  border-radius: 9px;
  background: #f6f8fc;
}

.analytics-metric-list dt {
  color: #5c6b84;
  font-size: 12px;
  font-weight: 900;
}

.analytics-metric-list dd {
  margin: 0;
  color: var(--analytics-ink);
  font-size: 17px;
  font-weight: 900;
}

.analytics-funnel {
  display: grid;
  gap: 8px;
}

.analytics-funnel > div {
  display: flex;
  width: var(--funnel-width);
  min-width: 150px;
  max-width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-inline: auto;
  padding: 10px 12px;
  border-left: 4px solid var(--funnel-color);
  border-radius: 8px;
  background: color-mix(in srgb, var(--funnel-color) 9%, #fff);
  color: #42516b;
  font-size: 12px;
  font-weight: 800;
}

.analytics-funnel > div.is-empty {
  min-width: 150px;
  border-left-color: #cbd5e1;
  background: #f8fafc;
  color: #7b8799;
}

.analytics-funnel > div.is-suppressed {
  min-width: 150px;
  border-left-color: #94a3b8;
  background: repeating-linear-gradient(
    135deg,
    #f4f6fa 0,
    #f4f6fa 8px,
    #e9edf4 8px,
    #e9edf4 16px
  );
  color: #5f6d82;
}

.analytics-funnel > div.is-empty strong,
.analytics-funnel > div.is-suppressed strong {
  color: #5f6d82;
}

.analytics-funnel strong {
  color: var(--analytics-ink);
  font-size: 15px;
}

.analytics-admin-panels {
  display: grid;
  gap: 10px;
}

.analytics-inline-panel {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.18);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.07), rgba(var(--theme-rgb-b), 0.035)),
    #fff;
  box-shadow: inset 4px 0 0 var(--theme-b);
}

.analytics-inline-panel h4 {
  margin: 0;
  color: var(--analytics-ink);
}

.analytics-inline-panel > div > p {
  margin: 5px 0 0;
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 700;
}

.analytics-term-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
}

.analytics-term-list > span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 3px 8px;
  padding: 9px 10px;
  border: 1px solid rgba(91, 117, 154, 0.11);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.82);
}

.analytics-term-list strong {
  overflow: hidden;
  color: #3f4e68;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.analytics-term-list small {
  grid-column: 1;
  color: #7a879d;
  font-size: 10px;
  font-weight: 700;
}

.analytics-term-list em {
  grid-column: 2;
  grid-row: 1 / span 2;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(54, 170, 114, 0.11);
  color: #247c54;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.analytics-empty-inline {
  margin: 0;
  padding: 9px 11px;
  border-radius: 8px;
  background: rgba(91, 117, 154, 0.06);
  color: #6d7b92;
  font-size: 11px;
  font-weight: 800;
}

.analytics-inline-form {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.analytics-inline-form .analytics-checkbox {
  display: flex;
  min-height: 40px;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}

.analytics-checkbox input {
  width: 18px;
  min-height: auto;
  height: 18px;
}

.analytics-file-field {
  min-width: min(330px, 100%) !important;
}

.analytics-file-field small {
  color: #78869d;
  font-size: 10px;
  font-weight: 700;
}

.analytics-inline-actions {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

.analytics-comparison-table .analytics-kpi-delta {
  white-space: nowrap;
}

.analytics-method-note {
  padding: 10px 13px;
  border-top: 1px solid var(--analytics-line);
  color: #74829a;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.6;
}

@media (max-width: 1450px) {
  .analytics-kpi-grid {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
  }

  .analytics-outcome-grid {
    grid-template-columns: repeat(2, minmax(190px, 1fr));
  }
}

@media (max-width: 1080px) {
  .analytics-main-grid,
  .analytics-two-column,
  .analytics-severity-layout,
  .analytics-overview-summary-grid {
    grid-template-columns: 1fr;
  }

  .analytics-service-kpis {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
  }
}

@media (max-width: 720px) {
  .analytics-dashboard {
    padding: 14px !important;
  }

  .analytics-page-head {
    display: grid;
  }

  .analytics-head-actions {
    justify-content: flex-start;
  }

  .analytics-filter-bar,
  .analytics-custom-range,
  .analytics-inline-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .analytics-filter-bar > label,
  .analytics-custom-range label,
  .analytics-inline-form label {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .analytics-filter-bar select,
  .analytics-filter-bar input,
  .analytics-inline-form select,
  .analytics-inline-form input {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .analytics-kpi-grid,
  .analytics-service-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .analytics-bar-row {
    grid-template-columns: minmax(90px, 1fr) 1.2fr 44px;
  }

  .analytics-context-bar small {
    width: 100%;
    margin-left: 0;
  }

  .analytics-method-bar small {
    width: 100%;
    margin-left: 0;
  }

  .analytics-readiness-disclosure > summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .analytics-benchmark-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .analytics-benchmark-axis {
    margin-left: 0;
  }

  .analytics-ring-layout {
    grid-template-columns: 1fr;
  }

  .analytics-ring-legend li {
    grid-template-columns: 18px minmax(0, 1fr) auto;
  }

  .analytics-ring-legend li > em {
    grid-column: 2 / -1;
  }

  .analytics-inline-actions {
    margin-left: 0;
  }
}

@media (max-width: 440px) {
  .analytics-kpi-grid,
  .analytics-service-kpis {
    grid-template-columns: 1fr;
  }

  .analytics-outcome-grid {
    grid-template-columns: 1fr;
  }

  .analytics-benchmark-bars > div {
    grid-template-columns: 38px minmax(0, 1fr) 68px;
  }

  .analytics-benchmark-axis {
    padding-right: 68px;
  }

  .analytics-ring-card {
    overflow: hidden;
  }

  .analytics-ring-legend li {
    padding-inline: 6px;
  }

  .analytics-bar-row {
    grid-template-columns: 1fr 48px;
  }

  .analytics-bar-track {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

.schedule-table {
  width: 100%;
  border-collapse: collapse;
}

.schedule-table th,
.schedule-table td {
  border-bottom: 1px solid var(--line);
  padding: 8px 6px;
  text-align: left;
  font-size: 13px;
}

/* 审批中心：固定信息层级，长文本不再撑开整张表。 */
.approval-center-panel {
  min-width: 0;
}

.approval-bulk-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  margin: 14px 0 10px;
  padding: 8px 12px;
  border: 1px solid rgba(79, 109, 245, 0.14);
  border-radius: 10px;
  background: #f7f9ff;
}

.approval-bulk-toolbar .inline-actions {
  margin-left: auto;
}

.approval-select-all,
.approval-selection-count {
  white-space: nowrap;
  color: #43536d;
  font-size: 13px;
}

.approval-table-wrap {
  max-width: 100%;
  min-width: 0;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: 10px;
}

.approval-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.approval-table th,
.approval-table td {
  height: 72px;
  padding: 12px 6px;
  vertical-align: middle;
  line-height: 1.55;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.approval-table th {
  height: 46px;
  background: #f7f9fc;
  color: #33445e;
  font-weight: 700;
  white-space: nowrap;
}

.approval-table col.approval-col-select { width: 4%; }
.approval-table col.approval-col-type { width: 10%; }
.approval-table col.approval-col-school { width: 7%; }
.approval-table col.approval-col-relation { width: 6%; }
.approval-table col.approval-col-entity { width: 16%; }
.approval-table col.approval-col-requester { width: 7%; }
.approval-table col.approval-col-assignee { width: 8%; }
.approval-table col.approval-col-reason { width: 20%; }
.approval-table col.approval-col-status { width: 6%; }
.approval-table col.approval-col-time { width: 10%; }
.approval-table col.approval-col-actions { width: 6%; }

.admin-page .approval-center-panel input[type="checkbox"] {
  appearance: auto;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  min-width: 14px;
  min-height: 14px;
  margin: 0;
  padding: 0;
  box-shadow: none;
  vertical-align: middle;
  accent-color: #4f6df5;
}

.approval-select-all { display: inline-flex; align-items: center; gap: 8px; }
.approval-entity-name, .approval-entity-meta, .approval-time {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.approval-entity-name { font-weight: 600; color: #26364e; }
.approval-entity-meta { margin-top: 5px; font-size: 12px; color: #758196; }
.approval-center-panel .inline-filter { flex-shrink: 0; }
.approval-center-panel .inline-filter > span { white-space: nowrap; }
.approval-center-panel .inline-filter select { width: auto; max-width: 220px; }

.approval-select-cell,
.approval-actions-cell {
  text-align: center !important;
}

.approval-actions-cell .btn-compact {
  display: block;
  width: 100%;
  max-width: 56px;
  min-width: 0;
  padding: 5px 2px;
  white-space: nowrap;
  margin: 3px auto;
}

.approval-description-text {
  white-space: normal;
  overflow-wrap: anywhere;
  height: 42px;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.approval-description.is-expanded .approval-description-text {
  display: block;
  overflow-y: auto;
}

.approval-expand-btn {
  margin-top: 3px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #4f6df5;
  cursor: pointer;
  font-size: 12px;
}

.btn-danger-soft {
  border-color: rgba(217, 83, 79, 0.25) !important;
  color: #b44845 !important;
  background: #fff8f7 !important;
}

.btn-primary-soft {
  border-color: rgba(79, 109, 245, 0.3) !important;
  color: #365bd5 !important;
  background: #f1f4ff !important;
}

@media (max-width: 900px) {
  .approval-bulk-toolbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .approval-bulk-toolbar .inline-actions {
    width: 100%;
    margin-left: 0;
  }
}

.schedule-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.schedule-page {
  --schedule-blue: #2f6df6;
  --schedule-orange: #f28a32;
  --schedule-purple: #8a58e8;
  overflow: hidden;
}

.schedule-page-head,
.schedule-toolbar,
.schedule-dialog-head,
.schedule-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.schedule-page-head h3,
.schedule-page-head p,
.schedule-toolbar h4 {
  margin: 0;
}

.schedule-page-head p {
  margin-top: 5px;
}

.schedule-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  gap: 12px;
  margin: 20px 0 14px;
  padding: 14px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  border-radius: 14px;
  background: rgba(var(--theme-rgb-b), 0.035);
}

.schedule-filters label,
.schedule-filter-static,
.schedule-form-grid label,
.schedule-remark {
  display: grid;
  gap: 6px;
}

.schedule-filters label > span,
.schedule-filter-static > span,
.schedule-form-grid label > span,
.schedule-remark > span {
  color: #687895;
  font-size: 12px;
  font-weight: 800;
}

.schedule-filter-static {
  align-content: center;
}

.schedule-filter-static strong {
  min-height: 42px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

.schedule-filters select,
.schedule-form-grid input,
.schedule-form-grid select,
.schedule-remark textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #d9e1ef;
  border-radius: 10px;
  background: #fff;
  color: #263650;
  font: inherit;
}

.schedule-toolbar {
  min-height: 58px;
  padding: 8px 0;
}

.schedule-nav,
.schedule-view-toggle,
.schedule-dialog-actions > div {
  display: flex;
  align-items: center;
  gap: 6px;
}

.schedule-nav button,
.schedule-view-toggle button,
.schedule-dialog-actions button,
.schedule-page-head button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid #d9e1ef;
  border-radius: 10px;
  background: #fff;
  color: #34425d;
  font-weight: 800;
  cursor: pointer;
}

.schedule-view-toggle {
  padding: 3px;
  border-radius: 12px;
  background: #eef2fb;
}

.schedule-view-toggle button {
  min-width: 54px;
  border: 0;
  background: transparent;
}

.schedule-view-toggle button.active {
  background: #fff;
  color: var(--schedule-blue);
  box-shadow: 0 3px 12px rgba(44, 70, 125, 0.12);
}

.schedule-weekdays,
.schedule-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.schedule-month-calendar {
  overflow: hidden;
  border: 1px solid #dfe6f2;
  border-radius: 16px;
}

.schedule-weekdays {
  background: #f4f7fc;
}

.schedule-weekdays span {
  padding: 10px;
  color: #71809a;
  text-align: center;
  font-size: 12px;
  font-weight: 800;
}

.schedule-month-day {
  position: relative;
  min-height: 128px;
  padding: 8px;
  border-top: 1px solid #e5eaf3;
  border-right: 1px solid #e5eaf3;
  background: rgba(255, 255, 255, 0.9);
}

.schedule-month-day:nth-child(7n) {
  border-right: 0;
}

.schedule-month-day.is-outside {
  background: #f8f9fc;
  color: #aab4c6;
}

.schedule-day-number {
  display: grid;
  width: 30px;
  height: 30px;
  margin: 0 0 4px auto;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font-weight: 800;
  cursor: pointer;
}

.schedule-month-day.is-today .schedule-day-number {
  background: var(--schedule-blue);
  color: #fff;
}

.schedule-month-events {
  display: grid;
  gap: 4px;
}

.schedule-event-chip,
.schedule-day-event {
  overflow: hidden;
  border: 0;
  border-left: 3px solid currentColor;
  border-radius: 7px;
  text-align: left;
  cursor: pointer;
}

.schedule-event-chip {
  display: grid;
  width: 100%;
  padding: 5px 7px;
  background: #edf3ff;
  color: var(--schedule-blue);
  font-size: 11px;
}

.schedule-event-chip strong,
.schedule-event-chip span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-event-chip.is-interview,
.schedule-day-event.is-interview {
  background: #fff3e8;
  color: #cf681d;
}

.schedule-event-chip.is-course,
.schedule-day-event.is-course {
  background: #f4edff;
  color: #7543ce;
}

.schedule-more {
  margin-top: 4px;
  padding: 2px 5px;
  border: 0;
  background: transparent;
  color: #657897;
  font-size: 11px;
  cursor: pointer;
}

.schedule-day-calendar {
  overflow: hidden;
  border: 1px solid #dfe6f2;
  border-radius: 16px;
  background: #fff;
}

.schedule-day-all-day {
  display: grid;
  grid-template-columns: 74px 1fr;
  padding: 10px 16px;
  border-bottom: 1px solid #e5eaf3;
  color: #72809a;
  font-size: 12px;
}

.schedule-day-all-day p {
  margin: 0;
}

.schedule-day-scroll {
  display: grid;
  grid-template-columns: 72px minmax(620px, 1fr);
  max-height: 720px;
  overflow: auto;
}

.schedule-time-labels,
.schedule-time-grid {
  position: relative;
}

.schedule-time-labels span {
  position: absolute;
  right: 10px;
  transform: translateY(-7px);
  color: #8390a8;
  font-size: 11px;
}

.schedule-time-grid {
  border-left: 1px solid #e5eaf3;
}

.schedule-hour-slot {
  position: absolute;
  left: 0;
  width: 100%;
  height: 64px;
  padding: 0;
  border: 0;
  border-top: 1px solid #e9edf5;
  background: transparent;
  cursor: crosshair;
}

.schedule-hour-slot:hover {
  background: rgba(47, 109, 246, 0.035);
}

.schedule-day-event {
  position: absolute;
  z-index: 2;
  left: calc((100% / var(--lanes)) * var(--lane) + 5px);
  width: calc(100% / var(--lanes) - 10px);
  padding: 6px 9px;
  background: #eaf1ff;
  color: #245bc9;
  box-shadow: 0 3px 10px rgba(41, 69, 127, 0.1);
}

.schedule-day-event strong,
.schedule-day-event span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-day-event span {
  margin-top: 2px;
  font-size: 11px;
}

.schedule-empty-state {
  display: grid;
  min-height: 300px;
  place-content: center;
  gap: 8px;
  border: 1px dashed #cfd8e9;
  border-radius: 16px;
  color: #74819a;
  text-align: center;
}

.schedule-event-dialog {
  width: min(760px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  color: #263650;
  box-shadow: 0 24px 80px rgba(19, 34, 67, 0.32);
}

.schedule-event-dialog::backdrop {
  background: rgba(20, 31, 52, 0.48);
  backdrop-filter: blur(2px);
}

.schedule-dialog-head {
  padding: 18px 22px;
  border-bottom: 1px solid #e4e9f2;
  background: #f7f9fd;
}

.schedule-dialog-head span {
  color: #77849b;
  font-size: 12px;
  font-weight: 800;
}

.schedule-dialog-head h3 {
  margin: 3px 0 0;
}

.schedule-dialog-head > button {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #e9eef7;
  font-size: 22px;
  cursor: pointer;
}

.schedule-dialog-body {
  max-height: calc(100vh - 210px);
  padding: 20px 22px;
  overflow: auto;
}

.schedule-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.schedule-remark {
  margin-top: 14px;
}

.schedule-readonly-note {
  margin-bottom: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef4ff;
  color: #41649e;
  font-size: 13px;
}

.schedule-form-error {
  margin-bottom: 14px;
  padding: 10px 14px;
  border: 1px solid #fecaca;
  border-radius: 10px;
  background: #fff1f2;
  color: #b42318;
  font-size: 14px;
  line-height: 1.5;
}

.schedule-scope-choice {
  display: flex;
  gap: 18px;
  margin: 16px 0 0;
  padding: 12px 14px;
  border: 1px solid #dce3ef;
  border-radius: 12px;
}

.schedule-scope-choice legend {
  padding: 0 6px;
  color: #687895;
  font-size: 12px;
  font-weight: 800;
}

.schedule-dialog-actions {
  padding: 14px 22px;
  border-top: 1px solid #e4e9f2;
  background: #fafbfe;
}

.schedule-page-head .btn-primary,
.schedule-dialog-actions .btn-primary {
  border-color: transparent;
  background: linear-gradient(125deg, #2f6df6, #7258ea);
  color: #fff;
}

.schedule-dialog-actions .btn-danger-ghost {
  border-color: rgba(215, 66, 66, 0.25);
  color: #c94444;
}

.feature-menu-section button.schedule-reminder-active {
  position: relative;
  color: #d33b3b;
  box-shadow: inset 0 0 0 2px rgba(222, 58, 58, 0.35), 0 0 0 4px rgba(222, 58, 58, 0.08);
  animation: scheduleReminderPulse 1.8s ease-in-out infinite;
}

.schedule-reminder-badge {
  display: inline-grid;
  min-width: 20px;
  height: 20px;
  margin-left: 8px;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  background: #e33f4d;
  color: #fff;
  font-size: 11px;
}

.feature-menu-title.schedule-reminder-title::after {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 7px;
  border-radius: 50%;
  background: #e33f4d;
  box-shadow: 0 0 0 4px rgba(227, 63, 77, 0.12);
  content: "";
}

@keyframes scheduleReminderPulse {
  50% { box-shadow: inset 0 0 0 2px rgba(222, 58, 58, 0.55), 0 0 0 7px rgba(222, 58, 58, 0.03); }
}

@media (max-width: 800px) {
  .schedule-filters,
  .schedule-form-grid {
    grid-template-columns: 1fr;
  }

  .schedule-page-head,
  .schedule-toolbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .schedule-toolbar h4 {
    order: -1;
    width: 100%;
  }

  .schedule-month-calendar {
    overflow-x: auto;
  }

  .schedule-weekdays,
  .schedule-month-grid {
    min-width: 770px;
  }

  .schedule-dialog-body {
    padding: 16px;
  }
}

.media-item[role="button"] {
  cursor: pointer;
}

.media-item.is-selected-source {
  border-color: var(--teal);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--teal) 18%, transparent);
  background: color-mix(in srgb, var(--teal-soft) 38%, white);
}

.media-item.is-parent-source {
  border-left: 3px solid #d97706;
}

.media-item.is-teacher-source {
  border-left: 3px solid #7c3aed;
}

.media-item-title {
  color: var(--text);
  font-weight: 700;
}

.media-processing-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.media-processing-badge.is-processing {
  color: #1d4ed8;
  background: #dbeafe;
}

.media-processing-badge.is-complete {
  color: #047857;
  background: #d1fae5;
}

.media-processing-badge.is-waiting {
  color: #92400e;
  background: #fef3c7;
}

.interview-source-badge {
  display: inline-flex;
  align-items: center;
  margin-right: 6px;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.interview-source-badge.is-student {
  color: #075985;
  background: #e0f2fe;
}

.interview-source-badge.is-parent {
  color: #9a3412;
  background: #ffedd5;
}

.interview-source-badge.is-teacher {
  color: #6d28d9;
  background: #ede9fe;
}

.interview-source-badge.is-secondary-interview {
  color: #047857;
  background: #d1fae5;
}

#roleBadge,
.readonly-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border-radius: 999px;
  padding: 0 8px;
  background: var(--teal-soft);
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
}

.readonly-badge {
  background: #fef0c7;
  color: var(--amber);
}

.filter-field {
  display: grid;
  gap: 5px;
}

.filter-field span {
  color: var(--muted);
  font-size: 12px;
}

.section-title,
.panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.panel-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.panel-head-actions button {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
}

.panel-head-actions button:hover {
  border-color: var(--teal);
  color: var(--teal);
}

.section-title {
  margin-bottom: 8px;
  color: var(--muted);
  font-size: 13px;
}

.section-title-right {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.section-title-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.section-title-actions h3 {
  margin: 0;
}

.inline-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.inline-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--muted);
}

.inline-filter select {
  min-width: 96px;
}

.btn-danger {
  border-color: #fecdca;
  background: var(--red-soft);
  color: var(--red);
}

.btn-danger:hover {
  border-color: var(--red);
  background: #fef3f2;
}

.btn-danger:disabled {
  cursor: not-allowed;
  border-color: #fed7aa;
  background: #fff7ed;
  color: #c2410c;
  opacity: 0.86;
}

.detail-danger-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.btn-compact {
  min-height: 28px;
  padding: 0 8px;
  font-size: 12px;
}

#saveBtn.needs-save {
  color: #fff;
  background: #dc2626;
  border-color: #b91c1c;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.35);
}

#saveBtn.needs-save:hover {
  background: #b91c1c;
  border-color: #991b1b;
}

.save-module-btn.needs-save {
  color: #fff;
  background: #dc2626;
  border-color: #b91c1c;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.35);
}

.save-module-btn.needs-save:hover {
  background: #b91c1c;
  border-color: #991b1b;
}

.record-list {
  display: grid;
  gap: 8px;
}

.record-list-scroll {
  max-height: calc((76px + 8px) * 20 - 8px);
  overflow-y: auto;
  padding-right: 2px;
}

.record-type-filter-field,
.record-search-field {
  margin-bottom: 10px;
}

.record-type-filter-field select {
  width: 100%;
}

.record-pagination {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.record-pagination button {
  min-width: 0;
  white-space: nowrap;
}

.record-pagination span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.case-index-filters {
  position: relative;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.case-filter-combo {
  position: relative;
  z-index: 1;
}

.case-filter-combo:focus-within {
  z-index: 100;
}

.case-filter-combo-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 36px;
  align-items: stretch;
  min-height: 40px;
  border: 1px solid rgba(91, 117, 154, 0.16);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow:
    inset 0 1px 2px rgba(61, 78, 116, 0.03),
    0 8px 18px rgba(61, 78, 116, 0.04);
}

.case-filter-combo-control:focus-within {
  border-color: var(--theme-b);
  box-shadow:
    0 0 0 3px rgba(var(--theme-rgb-b), 0.14),
    0 10px 24px rgba(var(--theme-rgb-b), 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.case-filter-combo-control input {
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #1b2738;
  font-size: 15px;
  font-weight: 700;
}

.case-filter-toggle {
  display: grid;
  place-items: center;
  min-width: 34px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #25364c;
  background: #fff;
  box-shadow: none;
}

.case-filter-toggle:hover {
  border-color: transparent;
  background: rgba(var(--theme-rgb-a), 0.08);
  box-shadow: none;
  transform: none;
}

.case-filter-options {
  position: absolute;
  z-index: 90;
  top: calc(100% + 8px);
  right: 0;
  left: 0;
  display: block;
  max-height: 188px;
  overflow: auto;
  padding: 6px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.16);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(52, 73, 113, 0.18);
  scrollbar-width: thin;
}

.case-filter-option {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: flex-start;
  min-height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  color: #1d2a3d;
  background: #fff;
  box-shadow: none;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  transform: none;
}

.case-filter-option:hover,
.case-filter-option:focus-visible {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  box-shadow: none;
  outline: 0;
  transform: none;
}

.case-filter-empty {
  display: block;
  padding: 9px 10px;
  color: #718096;
  font-size: 12px;
}

body.admin-page[data-active-feature="consultations"] #consultationFilters,
body.admin-page[data-active-feature="interview_index"] #consultationFilters,
body.admin-page[data-active-feature="case_index"] #consultationFilters,
body.admin-page[data-active-feature="crisis_intervention"] #consultationFilters {
  display: none !important;
}

.admin-page .case-index-panel {
  overflow: visible;
}

.case-index-table-wrap {
  position: relative;
  z-index: 1;
  max-height: min(70vh, 640px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.case-index-table-wrap .schedule-table {
  margin: 0;
}

.case-index-table-wrap .schedule-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f7faf9;
}

.screening-insight-filter-form {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) repeat(2, minmax(160px, 0.7fr)) auto;
  align-items: end;
  gap: 14px;
  padding-bottom: 18px;
}

.screening-insight-filter-card {
  overflow: visible;
}

.screening-insight-filter-form > label,
.screening-school-field {
  display: grid;
  gap: 7px;
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 900;
}

.screening-insight-filter-form input,
.screening-insight-filter-form select {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid var(--analytics-line);
  border-radius: 10px;
  background: #fff;
  color: var(--analytics-ink);
  font: inherit;
}

.screening-school-field {
  position: relative;
  min-width: 0;
}

.screening-school-field > small {
  position: absolute;
  top: calc(100% + 5px);
  left: 0;
}

.screening-filter-label {
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 900;
}

.screening-insight-filter-form small {
  color: var(--analytics-muted);
  font-size: 11px;
  font-weight: 700;
}

.screening-school-picker {
  position: relative;
  min-width: 0;
}

.screening-school-picker > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 14px;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid var(--analytics-line);
  border-radius: 10px;
  background: #fff;
  color: var(--analytics-ink);
  cursor: pointer;
  list-style: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.screening-school-picker > summary::-webkit-details-marker {
  display: none;
}

.screening-school-picker > summary:hover,
.screening-school-picker > summary:focus-visible,
.screening-school-picker[open] > summary {
  border-color: rgba(var(--theme-rgb-b), 0.56);
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb-b), 0.1);
  outline: 0;
}

.screening-school-picker-value {
  overflow: hidden;
  color: var(--analytics-ink);
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.screening-school-picker-count {
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.1);
  color: var(--theme-text);
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.screening-school-picker-chevron {
  width: 8px;
  height: 8px;
  border-right: 2px solid #718096;
  border-bottom: 2px solid #718096;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.18s ease;
}

.screening-school-picker[open] .screening-school-picker-chevron {
  transform: translateY(2px) rotate(225deg);
}

.screening-school-picker-panel {
  position: absolute;
  z-index: 40;
  top: calc(100% + 7px);
  left: 0;
  width: min(420px, calc(100vw - 48px));
  min-width: 100%;
  padding: 10px;
  border: 1px solid var(--analytics-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(29, 42, 61, 0.18);
}

.screening-school-search {
  display: block;
}

.screening-school-search input {
  min-height: 38px;
  padding-left: 34px;
  background:
    linear-gradient(45deg, transparent 46%, #718096 47% 53%, transparent 54%) 20px 23px / 7px 7px no-repeat,
    radial-gradient(circle, transparent 45%, #718096 47% 57%, transparent 59%) 12px 10px / 12px 12px no-repeat,
    #fff;
}

.screening-school-picker-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 2px;
}

.screening-school-picker-actions button {
  padding: 4px 7px;
  border: 0;
  background: transparent;
  color: var(--theme-text);
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.screening-school-picker-actions button:hover,
.screening-school-picker-actions button:focus-visible {
  text-decoration: underline;
  outline: 0;
}

.screening-school-picker-actions button:disabled {
  color: #a0aec0;
  cursor: not-allowed;
  text-decoration: none;
}

.screening-school-picker-actions > span {
  margin-left: auto;
  color: var(--analytics-muted);
  font-size: 11px;
  font-weight: 800;
}

.screening-school-options {
  display: grid;
  gap: 4px;
  max-height: 252px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.screening-school-option {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 9px;
  border-radius: 8px;
  color: var(--analytics-ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}

.screening-school-option[hidden],
.screening-school-empty[hidden] {
  display: none;
}

.screening-school-option:hover,
.screening-school-option:has(input:focus-visible) {
  background: rgba(var(--theme-rgb-b), 0.07);
}

.screening-school-option:has(input:checked) {
  background: rgba(var(--theme-rgb-b), 0.11);
  color: var(--theme-text);
}

.screening-school-option input {
  width: 17px;
  min-height: 17px;
  margin: 0;
  padding: 0;
  accent-color: var(--theme-b);
}

.screening-school-option span {
  overflow-wrap: anywhere;
}

.screening-school-empty {
  padding: 12px 9px;
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 700;
}

.screening-filter-actions {
  display: flex;
  align-items: flex-end;
  min-height: 42px;
}

.screening-selection-actions,
.screening-summary-export-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}

.screening-summary-export-actions {
  justify-content: flex-end;
  margin: 14px 0 0;
}

.screening-summary-export-actions .analytics-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-right: auto;
  color: var(--analytics-muted);
  font-size: 12px;
  font-weight: 800;
}

.screening-summary-kpis {
  margin-top: 16px;
}

.screening-record-table {
  min-width: 1180px;
}

.screening-student-table {
  min-width: 1220px;
}

.screening-record-table th:first-child,
.screening-record-table td:first-child {
  width: 44px;
  text-align: center;
}

.screening-record-table input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--theme-b);
}

.screening-record-table tr.is-ineligible {
  opacity: 0.62;
}

.screening-student-list-card .analytics-data-note {
  margin-top: 12px;
}

@media (max-width: 920px) {
  .screening-insight-filter-form {
    grid-template-columns: 1fr 1fr;
    padding-bottom: 0;
  }

  .screening-school-field,
  .screening-filter-actions {
    grid-column: 1 / -1;
  }

  .screening-school-field > small {
    position: static;
  }
}

@media (max-width: 620px) {
  .screening-insight-filter-form {
    grid-template-columns: 1fr;
  }

  .screening-school-field,
  .screening-filter-actions {
    grid-column: auto;
  }

  .screening-school-picker-panel {
    position: static;
    width: 100%;
    min-width: 0;
    margin-top: 7px;
    box-shadow: 0 10px 24px rgba(29, 42, 61, 0.14);
  }

  .screening-summary-export-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

.interview-index-filters {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.interview-index-actions {
  grid-column: span 2;
}

.interview-index-actions > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.interview-index-actions button {
  min-height: 40px;
  white-space: nowrap;
}

.interview-index-result-summary {
  margin: 0 0 10px;
}

.interview-index-table {
  min-width: 1180px;
}

.interview-index-check-cell {
  width: 48px;
  min-width: 48px;
  text-align: center;
}

.interview-index-check-cell input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--theme-b);
  cursor: pointer;
}

.interview-risk-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.interview-risk-pill.risk-green {
  color: #107154;
  background: #def8eb;
}

.interview-risk-pill.risk-yellow {
  color: #8a6500;
  background: #fff4c7;
}

.interview-risk-pill.risk-orange {
  color: #a64c13;
  background: #ffe6cf;
}

.interview-risk-pill.risk-red {
  color: #b42332;
  background: #ffe0e4;
}

.interview-risk-pill.risk-unset {
  color: #64748b;
  background: #edf2f7;
}

body.admin-page[data-active-feature="interview_index"] .case-index-panel {
  overflow: visible;
}

body.admin-page[data-active-feature="interview_index"] .case-index-filters .filter-field select {
  height: 44px;
  min-height: 44px;
  appearance: none;
  -webkit-appearance: none;
  padding: 0 46px 0 18px;
  border: 1px solid rgba(91, 117, 154, 0.16);
  border-radius: 8px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M2 2l5 5 5-5' fill='none' stroke='%2325364c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  background-size: 14px 9px;
  color: #162033;
  box-shadow: inset 0 1px 2px rgba(61, 78, 116, 0.03), 0 10px 22px rgba(61, 78, 116, 0.045);
  font-size: 15px;
  font-weight: 800;
}

body.admin-page[data-active-feature="interview_index"] .case-index-filters .filter-field select:focus-visible {
  border-color: var(--theme-b);
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb-b), 0.14), 0 10px 24px rgba(var(--theme-rgb-b), 0.1);
}

@media (max-width: 900px) {
  .interview-index-actions {
    grid-column: 1 / -1;
  }
}

.case-index-open-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 180px;
}

.case-index-open-row .case-open-select {
  flex: 1;
  min-width: 0;
  min-height: 30px;
  font-size: 12px;
}

.case-index-open-row .case-open-select-btn {
  flex-shrink: 0;
  min-height: 30px;
  padding: 0 8px;
  font-size: 12px;
}

.detail-danger-zone {
  margin-top: 18px;
  padding: 16px;
  border: 1px dashed #fecdca;
  border-radius: 10px;
  background: #fffafb;
}

.detail-danger-zone .muted-text {
  margin: 0 0 10px;
  font-size: 12px;
}

.record-item {
  width: 100%;
  min-height: 76px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  padding: 10px;
  text-align: left;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
  cursor: grab;
  touch-action: pan-y;
  -webkit-touch-callout: none;
  user-select: none;
}

.record-order-hint {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  margin-left: 5px;
  padding: 0 7px;
  border: 1px solid rgba(79, 109, 245, 0.14);
  border-radius: 999px;
  background: rgba(79, 109, 245, 0.08);
  color: #66749a;
  font-size: 10px;
  font-weight: 600;
  vertical-align: middle;
}

.record-list.is-reordering {
  position: relative;
  margin: -6px;
  padding: 6px;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(50, 104, 255, 0.1), rgba(123, 63, 242, 0.06));
  box-shadow: inset 0 0 0 2px rgba(50, 104, 255, 0.18);
  cursor: grabbing;
}

.record-list.is-reordering .record-item:not(.is-dragging) {
  opacity: 0.58;
  filter: saturate(0.72);
  transform: scale(0.975);
  transition: opacity 0.14s ease, filter 0.14s ease, transform 0.14s ease, box-shadow 0.14s ease;
}

.record-item.is-awaiting-drag {
  border-color: rgba(50, 104, 255, 0.56);
  transform: scale(0.992);
  box-shadow: 0 0 0 3px rgba(50, 104, 255, 0.13), 0 10px 24px rgba(50, 104, 255, 0.14);
}

.record-item.is-dragging,
.record-item.is-dragging:hover {
  position: relative;
  z-index: 20;
  overflow: visible;
  border-color: #ffffff;
  cursor: grabbing;
  opacity: 1;
  filter: none;
  outline: 3px solid #3268ff;
  outline-offset: 2px;
  transform: translateY(-4px) scale(1.045) rotate(-0.45deg);
  box-shadow:
    0 0 0 7px rgba(50, 104, 255, 0.14),
    0 24px 48px rgba(50, 104, 255, 0.4);
  animation: consultation-drag-lift 0.82s ease-in-out infinite alternate;
}

.record-item.is-dragging::after {
  content: "↕ 正在移动";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 30;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 999px;
  background: rgba(27, 47, 112, 0.9);
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  pointer-events: none;
  transform: translate(-50%, -50%);
  box-shadow: 0 8px 22px rgba(18, 31, 68, 0.28);
}

.record-item.is-drop-before,
.record-item.is-drop-after {
  position: relative;
}

.record-item.is-drop-before::before,
.record-item.is-drop-after::before {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  z-index: 25;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, #18bff0, #3268ff 52%, #7b3ff2);
  box-shadow: 0 0 0 3px rgba(50, 104, 255, 0.12), 0 0 16px rgba(50, 104, 255, 0.55);
  pointer-events: none;
}

.record-item.is-drop-before::before {
  top: -7px;
}

.record-item.is-drop-after::before {
  bottom: -7px;
}

@keyframes consultation-drag-lift {
  from {
    box-shadow: 0 0 0 6px rgba(50, 104, 255, 0.12), 0 22px 44px rgba(50, 104, 255, 0.34);
  }
  to {
    box-shadow: 0 0 0 10px rgba(123, 63, 242, 0.17), 0 28px 54px rgba(50, 104, 255, 0.46);
  }
}

body.is-consultation-list-reordering,
body.is-consultation-list-reordering * {
  cursor: grabbing !important;
  user-select: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .record-item.is-dragging,
  .record-item.is-dragging:hover {
    animation: none;
  }
}

.record-item.active {
  border-color: var(--teal);
  box-shadow: 0 0 0 2px var(--teal-soft);
}

.record-item:hover {
  box-shadow: var(--shadow);
  transform: translateY(-1px);
}

.record-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.record-title {
  font-weight: 700;
  font-size: 14px;
}

.record-meta {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.workspace {
  min-width: 0;
  padding: 22px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.topbar h2 {
  margin: 4px 0 0;
  font-size: 24px;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.actions-topbar button {
  font-weight: 700;
  background: #f8fbfa;
  border-color: #b7e1dc;
  color: var(--teal);
}

.actions-topbar button:disabled {
  opacity: 0.55;
}

.empty {
  display: grid;
  min-height: 420px;
  place-content: center;
  gap: 8px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--muted);
  text-align: center;
}

.empty strong {
  color: var(--text);
  font-size: 18px;
}

.hidden {
  display: none !important;
}

.create-user-form {
  display: grid;
  gap: 10px;
  margin: 12px 0 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}

.create-user-form label {
  display: grid;
  gap: 6px;
  font-size: 13px;
  color: var(--muted);
}

.create-user-form input,
.create-user-form select {
  width: 100%;
  max-width: 360px;
}

.create-user-form .form-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.role-inline-head {
  margin: 6px 0 10px;
}

.role-editor-panel {
  margin: 0 0 12px;
}

.role-editor-form h4 {
  margin: 0;
}

.role-perm-head {
  margin-bottom: 4px;
}

.role-perm-actions {
  display: inline-flex;
  gap: 6px;
}

.role-editor-error {
  margin: 0 0 6px;
  color: var(--red);
  font-size: 12px;
  line-height: 1.4;
}

.role-perm-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 5px;
  margin-top: 4px;
}

.role-perm-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 3px 6px;
  background: #fff;
  min-height: 34px;
}

.role-perm-item span {
  display: grid;
  gap: 1px;
  line-height: 1.2;
  min-width: 0;
  flex: 1 1 auto;
}

.role-perm-item strong {
  font-size: 11px;
  font-weight: 600;
  color: var(--text);
}

.role-perm-item em {
  font-style: normal;
  font-size: 10px;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.role-perm-item input[type="checkbox"] {
  width: 13px;
  height: 13px;
  margin: 0;
  flex: 0 0 auto;
}

.detail {
  display: grid;
  gap: 14px;
}

.case-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  padding: 16px;
  box-shadow: var(--shadow);
}

.case-main {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 14px;
}

.case-main h3 {
  margin: 0;
  font-size: 20px;
}

.case-main p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.case-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  min-height: 34px;
  border-radius: 999px;
  background: var(--teal-soft);
  color: var(--teal);
  font-size: 13px;
  font-weight: 700;
}

.case-metrics {
  display: grid;
  grid-template-columns: repeat(3, 74px);
  gap: 8px;
}

.case-metrics div {
  border-left: 1px solid var(--line);
  padding-left: 12px;
}

.case-metrics strong,
.case-metrics span {
  display: block;
}

.case-metrics span {
  color: var(--muted);
  font-size: 12px;
}

.case-lifecycle-form {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.case-lifecycle-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.case-lifecycle-form label,
.case-lifecycle-note {
  display: grid;
  gap: 6px;
  color: #4e5e78;
  font-size: 12px;
  font-weight: 850;
}

.case-lifecycle-form [hidden] {
  display: none !important;
}

.case-lifecycle-form input,
.case-lifecycle-form select,
.case-lifecycle-form textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 42px;
  border: 1px solid #d7dfef;
  border-radius: 10px;
  padding: 9px 11px;
  outline: none;
  background: rgba(248, 250, 255, 0.9);
  font: inherit;
  font-weight: 500;
}

.case-lifecycle-form textarea {
  resize: vertical;
}

.case-lifecycle-form input:focus,
.case-lifecycle-form select:focus,
.case-lifecycle-form textarea:focus {
  border-color: #7588f7;
  background: #ffffff;
  box-shadow: 0 0 0 4px rgba(79, 109, 245, 0.12);
}

.case-lifecycle-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin: 4px -26px -22px;
  padding: 16px 26px 22px;
  border-top: 1px solid #edf0f7;
  background: rgba(248, 250, 255, 0.72);
}

.case-lifecycle-dialog .system-dialog-card {
  width: min(720px, calc(100vw - 32px));
}

.summary-duration-display {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 6px;
}

.summary-duration-display em {
  padding-bottom: 1px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.summary-field-duration output.summary-field-value {
  cursor: default;
}

.summary-field-duration output.summary-field-value[data-duration-state="pending"] {
  color: #52677f;
}

.summary-field-duration output.summary-field-value[data-duration-state="empty"] {
  color: #64748b;
}

.summary-duration-hint {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
}

@media (max-width: 900px) {
  .case-lifecycle-dialog .system-dialog-card {
    width: min(620px, calc(100vw - 32px));
  }
}

@media (max-width: 620px) {
  .case-lifecycle-form-grid {
    grid-template-columns: 1fr;
  }

  .case-lifecycle-form-actions {
    margin-right: -20px;
    margin-left: -20px;
    padding-right: 20px;
    padding-left: 20px;
  }
}

.summary-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.summary-strip > .summary-field,
.panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: var(--shadow);
}

.summary-strip > .summary-field {
  min-height: 76px;
  padding: 12px;
  display: grid;
  align-content: start;
  gap: 0;
  min-width: 0;
}

.summary-field-label,
.summary-strip .summary-field > span.summary-field-label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
}

.summary-field-value,
.summary-field input.summary-field-value,
.summary-field select.summary-field-value,
.summary-field strong.summary-field-value {
  display: block;
  margin-top: 6px;
  overflow-wrap: anywhere;
  font-size: inherit;
  font-weight: 700;
  line-height: 1.4;
  color: var(--text);
  border: none;
  background: transparent;
  padding: 0;
  width: 100%;
  min-height: 0;
  box-shadow: none;
  box-sizing: border-box;
  font-family: inherit;
}

.summary-field input.summary-field-value::placeholder {
  color: #94a3b8;
  font-weight: 500;
}

.summary-field select.summary-field-value {
  cursor: pointer;
  appearance: none;
  padding-right: 22px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23667085' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 2px center;
  background-size: 12px 8px;
}

.summary-field input.summary-field-value:focus,
.summary-field select.summary-field-value:focus {
  outline: 2px solid #8fcfc7;
  outline-offset: 2px;
  border-radius: 4px;
}

.summary-field input.summary-field-value:disabled,
.summary-field select.summary-field-value:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.summary-field-wide {
  grid-column: span 1;
}

.summary-visitor-row {
  display: grid;
  grid-template-columns: minmax(58px, 0.72fr) minmax(92px, 1.28fr);
  align-items: start;
  gap: 12px;
  margin-top: 0;
  min-width: 0;
}

.summary-field-visitor #summaryMergePatientBtn {
  justify-self: start;
  margin-top: 8px;
}

.summary-visitor-control {
  display: grid;
  gap: 0;
  min-width: 0;
}

.summary-visitor-control-label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.summary-visitor-row .summary-field-value,
.summary-visitor-row input.summary-field-value,
.summary-visitor-row select.summary-field-value {
  min-width: 0;
  margin-top: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.summary-visitor-role select.summary-field-value {
  padding-right: 16px;
  background-position: right 0 center;
}

.summary-grade-class-row,
.summary-course-row {
  --summary-value-line-height: 1.4em;
}

.summary-grade-class-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px auto;
  align-items: center;
  gap: 8px;
  margin-top: 0;
  min-height: var(--summary-value-line-height);
}

#summaryEnrollmentYear:invalid {
  color: #94a3b8;
}

#summaryClassNumber {
  text-align: center;
}

.summary-course-row {
  display: grid;
  grid-template-columns: 30px auto 30px auto;
  align-items: center;
  gap: 6px;
  margin-top: 0;
  min-height: var(--summary-value-line-height);
}

.summary-course-display {
  display: grid;
  gap: 8px;
  align-content: start;
  margin-top: 0;
  min-height: var(--summary-value-line-height);
}

.summary-consult-time-display {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 6px;
  align-items: center;
  margin-top: 6px;
  min-width: 0;
}

.summary-consult-time-lines {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.summary-consult-time-display .summary-consult-date,
.summary-consult-time-display .summary-consult-clock {
  margin-top: 0;
  min-width: 0;
  width: 100%;
  font-variant-numeric: tabular-nums;
}

.summary-consult-time-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #667085;
  cursor: pointer;
  z-index: 2;
}

.summary-consult-time-icon:hover:not(:disabled) {
  background: rgba(50, 104, 255, 0.08);
  color: #3268ff;
}

.summary-consult-time-icon:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.summary-consult-time-native {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  border: 0;
  padding: 0;
  margin: 0;
}

.summary-consult-time-display input[type="date"]::-webkit-calendar-picker-indicator,
.summary-consult-time-display input[type="time"]::-webkit-calendar-picker-indicator,
.summary-consult-time-native::-webkit-calendar-picker-indicator {
  opacity: 0;
  display: none;
}

.admin-page .summary-strip > .summary-field-consult-time {
  overflow: visible;
}

.summary-course-line {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: max-content;
  max-width: 100%;
  color: #152334;
  font-size: 18px;
  font-weight: 850;
  line-height: 1.25;
}

.summary-course-line + .summary-course-line {
  color: #667085;
  font-size: 14px;
  font-weight: 780;
}

.summary-course-inline-input {
  display: inline-flex;
  align-items: center;
  width: 30px;
  min-width: 30px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  outline: 0;
  background: transparent;
  color: #152334;
  -webkit-text-fill-color: #152334;
  font: inherit;
  text-align: center;
  font-weight: 850;
  line-height: 24px;
  box-shadow: none;
}

.summary-course-line + .summary-course-line .summary-course-inline-input {
  color: #667085;
  -webkit-text-fill-color: #667085;
  font-size: 14px;
  font-weight: 780;
}

.summary-course-inline-input::placeholder {
  color: currentColor;
  opacity: 1;
}

.summary-course-inline-input:focus {
  background: rgba(255, 255, 255, 0.92);
  box-shadow:
    0 0 0 2px rgba(50, 104, 255, 0.16),
    0 6px 14px rgba(50, 104, 255, 0.1);
}

.summary-course-inline-input:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}

.summary-grade-class-row .summary-field-value,
.summary-course-row .summary-field-value {
  display: inline-flex;
  align-items: center;
  margin-top: 0;
  height: var(--summary-value-line-height);
  line-height: var(--summary-value-line-height);
}

.summary-course-number {
  text-align: center;
}

.summary-unit-label {
  display: inline-flex;
  align-items: center;
  height: var(--summary-value-line-height);
  min-width: max-content;
  color: var(--text);
  font-size: inherit;
  font-weight: 700;
  line-height: var(--summary-value-line-height);
  transform: translateY(3px);
  white-space: nowrap;
}

.gc-enrollment-year-select.is-expanded {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.gc-year-popover {
  position: fixed;
  z-index: 2600;
  display: grid;
  gap: 4px;
  max-height: 190px;
  overflow-y: auto;
  padding: 6px 5px 6px 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.16);
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}

.gc-year-popover::-webkit-scrollbar {
  width: 5px;
}

.gc-year-popover::-webkit-scrollbar-track {
  background: transparent;
}

.gc-year-popover::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: #cbd5e1;
}

.gc-year-option {
  width: 100%;
  min-height: 32px;
  padding: 7px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  line-height: 1.2;
  text-align: left;
  white-space: nowrap;
}

.gc-year-option:hover {
  border-color: var(--teal);
  background: var(--teal-soft);
}

.gc-year-option.is-selected {
  border-color: var(--accent);
  background: #eef2ff;
  color: #1d4ed8;
  font-weight: 700;
}

.field span,
.panel-head span {
  color: var(--muted);
  font-size: 13px;
}

.panel {
  min-width: 0;
  padding: 16px;
}

.basics-panel {
  border-left: 4px solid #2563eb;
}

.basics-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.basics-form label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.basics-form span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.basics-form input,
.basics-form select {
  background: #fbfcfd;
}

.basic-course-inputs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

#saveBasicsBtn {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
  font-weight: 700;
}

.panel h3 {
  margin: 0;
  font-size: 16px;
}

.intake-panel {
  border-left: 4px solid var(--teal);
}

.intake-summary {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.intake-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.intake-field {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  padding: 10px;
}

.intake-field.missing {
  border-color: #fecdca;
  background: #fff8f7;
}

.intake-field span,
.intake-field strong,
.intake-field em {
  display: block;
}

.intake-field span {
  color: var(--muted);
  font-size: 12px;
}

.intake-field strong {
  margin-top: 5px;
  overflow-wrap: anywhere;
  font-size: 15px;
}

.intake-field strong.risk-pill {
  display: inline-flex;
  margin-top: 5px;
}

.intake-field em {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.intake-tags {
  padding-top: 2px;
}

.missing-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 10px;
  color: var(--muted);
  font-size: 13px;
}

.missing-fields b {
  color: var(--text);
}

.missing-fields span {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  border-radius: 999px;
  background: #fef0c7;
  color: var(--amber);
  padding: 0 9px;
  font-weight: 700;
}

.risk-pill,
.status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  border-radius: 999px;
  padding: 0 10px;
  background: var(--teal-soft);
  color: var(--teal);
  font-size: 13px;
  font-weight: 700;
}

.status-pending-basics,
.case-status.status-pending-basics {
  background: #fef0c7;
  color: var(--amber);
}

.status-pending-analysis,
.case-status.status-pending-analysis {
  background: #dbeafe;
  color: #1d4ed8;
}

.status-pending-check,
.case-status.status-pending-check {
  background: var(--teal-soft);
  color: var(--teal);
}

.status-under-review,
.case-status.status-under-review {
  background: #ffedd5;
  color: #c2410c;
}

.status-reviewed,
.case-status.status-reviewed {
  background: var(--green-soft);
  color: var(--green);
}

.status-restored,
.case-status.status-restored {
  background: #e0f2fe;
  color: #0369a1;
}

.risk-red {
  background: var(--red-soft);
  color: var(--red);
}

.risk-green {
  background: var(--green-soft);
  color: var(--green);
}

.risk-amber {
  background: #fef0c7;
  color: var(--amber);
}

.route-body {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  color: var(--muted);
  line-height: 1.55;
}

.route-line {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 10px;
}

.route-line.compact {
  grid-template-columns: 78px 1fr;
  font-size: 13px;
}

.route-line b {
  color: var(--text);
  font-size: 13px;
}

.route-note {
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.chip {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  border: 1px solid #b7e1dc;
  border-radius: 999px;
  background: var(--teal-soft);
  color: var(--teal);
  padding: 0 10px;
  font-size: 12px;
  font-weight: 700;
}

.report-rule-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}

.report-rule-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}

.report-rule-card strong,
.report-rule-card span {
  display: block;
}

.report-rule-card strong {
  color: var(--text);
  font-size: 14px;
}

.report-rule-card span {
  color: var(--teal);
  font-size: 12px;
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.report-rule-card p {
  margin: 8px 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.report-rule-card ul {
  margin: 8px 0 0;
  padding-left: 18px;
  font-size: 13px;
  line-height: 1.55;
}

.job-status {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}

.job-topline,
.job-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.job-topline strong {
  color: var(--teal);
}

.job-topline span,
.job-meta,
.job-time {
  color: var(--muted);
  font-size: 13px;
}

.progress-bar {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf1f3;
}

.progress-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--teal), #38a169);
}

.job-error {
  margin: 0;
  border: 1px solid #fecdca;
  border-radius: 8px;
  background: var(--red-soft);
  color: var(--red);
  padding: 8px 10px;
  font-size: 13px;
}

.job-log {
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fbfcfd;
  color: var(--muted);
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.5;
}

.case-module-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  padding: 10px;
  box-shadow: var(--shadow);
}

.case-module-btn {
  min-height: 34px;
  border-radius: 999px;
  font-weight: 700;
}

.case-module-btn.active {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal);
}

.case-module-panels {
  display: grid;
  gap: 14px;
}

.case-module-pane {
  display: grid;
  gap: 14px;
}

.module-hint {
  margin: 0 0 12px;
  font-size: 13px;
}

.template-doc-panel {
  border-left: 4px solid var(--teal);
}

.doc-appointment.template-doc-panel {
  border-left-color: #7c3aed;
}

.doc-cover.template-doc-panel {
  border-left-color: #2563eb;
}

.doc-counseling.template-doc-panel {
  border-left-color: #0f766e;
}

.doc-summary.template-doc-panel {
  border-left-color: #b45309;
}

.doc-attachments.template-doc-panel {
  border-left-color: #d97706;
}

.attachment-material-panel {
  border-top: 4px solid #22b8cf;
}

.attachment-material-head > div:first-child {
  min-width: 0;
}

.attachment-material-head .muted-text {
  margin: 6px 0 0;
}

.attachment-material-list {
  display: grid;
  gap: 18px;
}

.attachment-material-empty {
  margin: 0;
  padding: 26px;
  border: 1px dashed #cbd8e8;
  border-radius: 14px;
  text-align: center;
  background: #f8fbff;
}

.attachment-material-card {
  border: 1px solid #d7e1ee;
  border-radius: 16px;
  padding: 18px;
  background: linear-gradient(145deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: 0 10px 28px rgba(52, 76, 112, 0.08);
}

.attachment-material-card-head,
.attachment-material-actions,
.attachment-upload-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.attachment-material-card-head {
  justify-content: space-between;
  margin-bottom: 16px;
}

.attachment-material-card-head > div {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.attachment-material-kind,
.attachment-analysis-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
}

.attachment-material-kind {
  color: #075985;
  background: #e0f2fe;
}

.attachment-analysis-status {
  color: #52627a;
  background: #eef2f7;
}

.attachment-analysis-status.is-running {
  color: #1d4ed8;
  background: #dbeafe;
}

.attachment-analysis-status.is-succeeded {
  color: #047857;
  background: #d1fae5;
}

.attachment-analysis-status.is-stale,
.attachment-analysis-status.is-failed {
  color: #b45309;
  background: #fef3c7;
}

.attachment-material-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.attachment-material-fields label {
  display: grid;
  gap: 6px;
  color: #52627a;
  font-size: 14px;
}

.attachment-material-fields label > span:first-child {
  font-weight: 700;
}

.attachment-material-fields .span-2 {
  grid-column: 1 / -1;
}

.attachment-material-fields input,
.attachment-material-fields select,
.attachment-material-fields textarea,
.attachment-analysis-editor textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cfd9e6;
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  color: #223047;
}

.attachment-material-fields textarea {
  min-height: 96px;
  resize: vertical;
}

.attachment-material-details textarea {
  min-height: 76px;
}

.attachment-material-details {
  margin-top: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
}

.attachment-material-details summary {
  cursor: pointer;
  color: #34507a;
  font-weight: 700;
}

.attachment-material-details[open] summary {
  margin-bottom: 12px;
}

.attachment-transcript-check {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center;
  gap: 8px !important;
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  color: #52627a;
  background: #f5f8fc;
  font-size: 13px;
  line-height: 1.6;
}

.attachment-transcript-check input {
  width: auto;
}

.attachment-upload-row {
  margin: 14px 0;
  color: #718096;
  font-size: 13px;
}

.attachment-upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 15px;
  border-radius: 10px;
  background: #eef4ff;
  color: #2855c5;
  font-weight: 700;
  cursor: pointer;
}

.attachment-upload-button.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.sandbox-capture-guide {
  margin: 14px 0 0;
  padding: 16px;
  border: 1px solid #d7e4f4;
  border-radius: 14px;
  background: linear-gradient(145deg, #f8fbff 0%, #f5f3ff 100%);
}

.sandbox-capture-guide-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.sandbox-capture-guide-head > div > strong {
  color: #294e86;
  font-size: 15px;
}

.sandbox-capture-guide-head p,
.sandbox-capture-slot > p,
.sandbox-capture-unassigned > p,
.sandbox-capture-file-note {
  color: #64748b;
  line-height: 1.55;
}

.sandbox-capture-guide-head p {
  margin: 5px 0 0;
  font-size: 13px;
}

.sandbox-capture-guide-head > span {
  flex: 0 0 auto;
  padding: 5px 11px;
  border-radius: 999px;
  color: #2855c5;
  background: #e7efff;
  font-size: 13px;
  font-weight: 700;
}

.sandbox-capture-cross {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-areas:
    ". front ."
    "left overhead right"
    ". back .";
  gap: 12px;
  max-width: 1120px;
  margin: 0 auto;
}

.sandbox-capture-slot.is-front { grid-area: front; }
.sandbox-capture-slot.is-left { grid-area: left; }
.sandbox-capture-slot.is-overhead { grid-area: overhead; }
.sandbox-capture-slot.is-right { grid-area: right; }
.sandbox-capture-slot.is-back { grid-area: back; }

.sandbox-capture-slot {
  min-width: 0;
  padding: 10px;
  border: 1px dashed #b8c9df;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
}

.sandbox-capture-slot.is-filled {
  border-style: solid;
  border-color: #b8d4c5;
  background: rgba(249, 255, 252, 0.94);
}

.sandbox-capture-slot-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.sandbox-capture-slot-head strong {
  color: #24446f;
  font-size: 14px;
}

.sandbox-capture-slot > p {
  margin: 8px 2px 0;
  font-size: 12px;
}

.sandbox-capture-upload {
  display: grid;
  min-height: 124px;
  place-items: center;
  border: 1px dashed #9fb8da;
  border-radius: 10px;
  color: #2855c5;
  background: #f7faff;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.sandbox-capture-upload:hover {
  border-color: #6f91c6;
  background: #eef4ff;
}

.sandbox-capture-upload.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.sandbox-capture-slot .attachment-image-card {
  border: 0;
  padding: 0;
  background: transparent;
}

.sandbox-capture-slot .attachment-image-preview {
  height: 132px;
}

.sandbox-capture-file-note {
  margin: 12px 0 0;
  text-align: center;
  font-size: 12px;
}

.sandbox-capture-unassigned {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #dce6f2;
}

.sandbox-capture-unassigned > strong {
  color: #8a5a13;
  font-size: 14px;
}

.sandbox-capture-unassigned > p {
  margin: 5px 0 10px;
  font-size: 12px;
}

.attachment-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 12px;
}

.attachment-image-card {
  min-width: 0;
  border: 1px solid #dbe4ef;
  border-radius: 12px;
  padding: 10px;
  background: #fff;
}

.attachment-image-preview {
  position: relative;
  display: grid;
  place-items: center;
  height: 180px;
  overflow: hidden;
  border-radius: 9px;
  background: #edf2f7;
}

.attachment-image-preview img {
  max-width: 88%;
  max-height: 88%;
  object-fit: contain;
  transition: transform 180ms ease;
}

.attachment-image-preview span {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  color: #fff;
  background: rgba(31, 41, 55, 0.72);
  font-size: 12px;
}

body.admin-page .attachment-image-preview > button.attachment-image-delete {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  min-height: 24px;
  max-height: 24px;
  border: 1px solid rgba(255, 255, 255, 0.74);
  border-radius: 50%;
  padding: 0;
  color: #fff;
  -webkit-text-fill-color: #fff;
  background: rgba(220, 38, 38, 0.64);
  box-shadow: 0 2px 8px rgba(153, 27, 27, 0.3);
  backdrop-filter: blur(4px);
  font-family: Arial, sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 24px;
  opacity: 1;
  cursor: pointer;
  transition: opacity 160ms ease, background 160ms ease, transform 160ms ease;
}

body.admin-page .attachment-image-preview > button.attachment-image-delete:hover,
body.admin-page .attachment-image-preview > button.attachment-image-delete:focus-visible {
  border-color: rgba(255, 255, 255, 0.92);
  opacity: 1;
  background: rgba(185, 28, 28, 0.86);
  box-shadow: 0 3px 10px rgba(153, 27, 27, 0.38);
  transform: scale(1.06);
}

body.admin-page .attachment-image-preview > button.attachment-image-delete.is-deleting {
  opacity: 0.45;
  cursor: wait;
}

.attachment-image-name {
  overflow: hidden;
  margin: 8px 0;
  color: #475569;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.attachment-image-position {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  color: #52627a;
  font-size: 12px;
}

.attachment-image-position select {
  width: 100%;
  min-width: 0;
  border: 1px solid #cfd9e6;
  border-radius: 8px;
  padding: 7px 9px;
  color: #31445f;
  background: #fff;
}

.attachment-material-actions button {
  white-space: nowrap;
}

.attachment-material-actions {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #e2e8f0;
}

.attachment-analysis-box {
  margin-top: 14px;
}

.attachment-analysis-empty,
.attachment-analysis-error,
.attachment-analysis-progress {
  padding: 14px;
  border-radius: 10px;
  background: #f8fafc;
  color: #64748b;
}

.attachment-analysis-error {
  color: #b91c1c;
  background: #fef2f2;
}

.attachment-analysis-progress i {
  display: block;
  width: 100%;
  height: 4px;
  margin-top: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(90deg, #3b82f6, #8b5cf6, #22c1dc);
  animation: attachment-analysis-pulse 1.2s ease-in-out infinite alternate;
}

@keyframes attachment-analysis-pulse {
  from { opacity: 0.35; transform: scaleX(0.45); transform-origin: left; }
  to { opacity: 1; transform: scaleX(1); transform-origin: left; }
}

.attachment-analysis-editor {
  display: grid;
  gap: 7px;
  color: #34455f;
  font-weight: 700;
}

.attachment-analysis-editor textarea {
  min-height: 260px;
  line-height: 1.65;
  font-weight: 400;
}

.attachment-analysis-disclaimer {
  margin: 8px 0 0;
  color: #8a5a13;
  font-size: 13px;
}

.danger-link {
  color: #c2412d;
}

@media (max-width: 820px) {
  .attachment-material-fields {
    grid-template-columns: 1fr;
  }

  .attachment-material-fields .span-2 {
    grid-column: auto;
  }

  .sandbox-capture-guide-head {
    display: grid;
  }

  .sandbox-capture-guide-head > span {
    justify-self: start;
  }

  .sandbox-capture-cross {
    grid-template-columns: 1fr;
    grid-template-areas:
      "front"
      "left"
      "overhead"
      "right"
      "back";
  }

  .sandbox-capture-slot .attachment-image-preview {
    height: 180px;
  }
}

.template-form-root {
  margin-top: 8px;
}

.template-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

.tf-doc-title {
  grid-column: 1 / -1;
  display: grid;
  gap: 4px;
  margin-bottom: 4px;
  text-align: center;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}

.tf-doc-title strong {
  font-size: 18px;
}

.tf-doc-title span {
  font-size: 16px;
  font-weight: 700;
}

.tf-doc-title em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.tf-section {
  grid-column: 1 / -1;
  margin: 8px 0 0;
  padding-top: 8px;
  border-top: 1px dashed var(--line);
  font-size: 15px;
}

.tf-note {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.tf-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.tf-span-2 {
  grid-column: 1 / -1;
}

.tf-ai-stamp {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
}

.tf-ai-stamp .tf-label {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}

.tf-ai-stamp input {
  border: none;
  background: transparent;
  color: var(--muted);
  font-size: 13px;
  padding: 0;
  cursor: default;
}

.tf-review-stamp {
  margin-top: 4px;
  padding-top: 0;
  border-top: none;
}

.tf-review-stamp .tf-label,
.tf-display-stamp-value {
  color: var(--muted);
  font-size: 13px;
}

.tf-display-stamp-value {
  margin-top: 2px;
  line-height: 1.5;
}

.tf-label,
.tf-check-group legend {
  display: inline-block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.tf-required-mark {
  display: inline-block;
  margin-left: 3px;
  vertical-align: baseline;
  color: #dc2626;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

.tf-field input,
.tf-field textarea,
.tf-field select {
  background: #fbfcfd;
}

.tf-field input.is-disabled-dependent,
.tf-field input:disabled {
  background: #eef1f4;
  color: #94a3b8;
  cursor: not-allowed;
}

/* 日期时间：整框可点，不必只点右侧日历图标 */
.tf-datetime-hit {
  display: block;
  width: 100%;
  position: relative;
  cursor: pointer;
}

.tf-datetime-hit input[type="datetime-local"],
.tf-datetime-hit input[type="date"] {
  width: 100%;
  min-height: 42px;
  cursor: pointer;
  box-sizing: border-box;
}

.tf-datetime-hit input[type="datetime-local"]::-webkit-calendar-picker-indicator,
.tf-datetime-hit input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
}

.tf-field textarea {
  min-height: 88px;
  resize: vertical;
}

.tf-check-group {
  border: 1px dashed var(--line);
  border-radius: 8px;
  padding: 10px 12px;
  margin: 0;
}

.tf-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
}

.tf-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
}

.tf-option input {
  width: auto;
  min-height: 0;
  margin: 0;
}

.tf-extra {
  display: grid;
  gap: 4px;
  width: 100%;
  margin-top: 6px;
}

.save-module-btn,
.record-edit-request-btn {
  background: var(--teal-soft);
  border-color: #8fcfc7;
  color: var(--teal);
  font-weight: 700;
}

.consultation-ops-fold {
  padding: 0;
}

.consultation-ops-fold > summary {
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 700;
  list-style-position: inside;
}

.ops-fold-body {
  display: grid;
  gap: 14px;
  padding: 0 16px 16px;
}

.report-workspace {
  min-width: 0;
}

.work-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.78fr) minmax(520px, 1.18fr) minmax(260px, 0.56fr);
  gap: 14px;
  align-items: start;
}

.work-grid-counseling {
  grid-template-columns: minmax(280px, 0.62fr) minmax(420px, 1.38fr);
}

.work-grid-report {
  grid-template-columns: minmax(420px, 1.2fr) minmax(260px, 0.56fr);
}

.report-panel,
.side-stack {
  min-width: 0;
}

.report-chooser {
  display: grid;
  grid-template-columns: minmax(160px, 0.75fr) minmax(260px, 1.1fr) minmax(130px, 0.45fr);
  gap: 14px;
  align-items: end;
  border: 1px solid #8fcfc7;
  border-radius: 8px;
  background: linear-gradient(180deg, #f2fbf9 0%, #e6f4f1 100%);
  padding: 12px;
}

.report-chooser h3 {
  margin: 0;
}

.report-chooser p {
  margin: 4px 0 0;
  color: var(--teal);
  font-size: 13px;
}

.report-chooser label {
  display: grid;
  gap: 6px;
}

.report-chooser label span {
  color: var(--teal);
  font-size: 13px;
  font-weight: 700;
}

#reportSelect {
  min-height: 42px;
  border-color: #68bdb4;
  background: #fff;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.06);
}

.version-chain {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  min-height: 30px;
}

.version-chain > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.version-chain button {
  min-height: 28px;
  border-color: #cfd6df;
  background: #fff;
  color: var(--muted);
  padding: 0 10px;
  font-size: 12px;
  font-weight: 700;
}

.version-chain button.active {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal);
}

.report-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
  border: 1px solid #cfd6df;
  border-left: 4px solid var(--teal);
  border-radius: 8px;
  background: #fff;
  padding: 12px 14px;
}

.report-guide.approved {
  border-left-color: var(--green);
  background: #fbfffc;
}

.report-guide.empty-guide {
  border-left-color: var(--amber);
}

.report-guide.sync-stale {
  border-color: #f7c948;
  border-left-color: var(--amber);
  background: #fffaf0;
}

.report-guide strong,
.report-guide p {
  display: block;
}

.report-guide strong {
  margin-top: 4px;
  font-size: 15px;
}

.report-guide p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.guide-status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border-radius: 999px;
  background: var(--teal-soft);
  color: var(--teal);
  padding: 0 9px;
  font-size: 12px;
  font-weight: 800;
}

.report-guide.approved .guide-status {
  background: var(--green-soft);
  color: var(--green);
}

.report-guide.empty-guide .guide-status {
  background: #fef0c7;
  color: var(--amber);
}

.report-guide.sync-stale .guide-status {
  background: #fef0c7;
  color: var(--amber);
}

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

.guide-actions button {
  min-height: 34px;
  border-color: #99d6ce;
  background: #f6fbfa;
  color: var(--teal);
  font-weight: 800;
}

.side-stack {
  display: grid;
  gap: 14px;
}

.transcript-panel .transcript {
  min-height: 220px;
  max-height: 360px;
}

.transcript {
  overflow: auto;
  margin: 12px 0 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f9fafb;
  white-space: pre-wrap;
  line-height: 1.7;
}

.transcript-manual {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
}

.transcript-manual-hint {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

#transcriptPaste {
  min-height: 180px;
  width: 100%;
  resize: vertical;
}

textarea {
  min-height: 320px;
}

.field {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.preview-block {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.report-preview {
  max-height: 680px;
  overflow: auto;
  border: 1px solid #cfd6df;
  border-radius: 8px;
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    linear-gradient(180deg, #eef3f5, #d9dee6) border-box;
  padding: 30px 34px;
  line-height: 1.75;
  box-shadow: inset 0 0 0 1px #f7f9fb, 0 14px 26px rgba(24, 32, 42, 0.06);
}

.report-preview h1 {
  margin: 0 0 18px;
  text-align: center;
  font-size: 25px;
  line-height: 1.3;
}

.report-preview h2 {
  margin: 28px 0 12px;
  border-bottom: 2px solid #dce7e5;
  padding-bottom: 8px;
  font-size: 19px;
}

.report-preview h3 {
  margin: 20px 0 8px;
  color: var(--teal);
  font-size: 16px;
}

.report-preview h4 {
  margin: 14px 0 6px;
  font-size: 14px;
}

.report-preview p,
.report-preview li {
  font-size: 14px;
  color: #25303b;
}

.report-preview p {
  margin: 8px 0 10px;
}

.report-preview ul {
  margin: 8px 0 12px;
  padding-left: 20px;
}

.report-preview table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0 16px;
  font-size: 13px;
  background: #fff;
}

.report-preview th,
.report-preview td {
  border: 1px solid var(--line);
  padding: 8px;
  text-align: left;
  vertical-align: top;
}

.report-preview th {
  background: #f3f8f7;
}

.report-preview pre {
  overflow: auto;
  border-radius: 8px;
  background: #f4f6f8;
  padding: 12px;
}

.muted-text {
  color: var(--muted);
}

.media-transcript-workspace {
  display: grid;
  grid-template-columns: minmax(220px, 0.42fr) minmax(280px, 1fr);
  gap: 14px;
  align-items: start;
  margin-top: 12px;
}

.media-list-compact {
  margin-top: 0;
}

.media-transcript-side {
  display: grid;
  gap: 8px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #f9fbfc;
}

.media-transcript-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.media-transcript-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
}

.media-transcript-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.media-transcript-side #transcriptPaste {
  min-height: 200px;
}

.temperament-assessment-panel {
  display: grid;
  gap: 14px;
}

.temperament-assessment-panel .panel-head p {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
}

.temperament-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 260px));
  gap: 14px;
}

.temperament-score-grid label {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.temperament-score-grid input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 14px;
  color: var(--ink);
  font: inherit;
  font-weight: 700;
  background: #fff;
}

.temperament-score-grid input:focus {
  outline: none;
  border-color: #7c8cf8;
  box-shadow: 0 0 0 3px rgba(79, 109, 245, 0.12);
}

.temperament-result {
  min-height: 58px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
  background:
    linear-gradient(135deg, rgba(79, 109, 245, 0.05), rgba(19, 191, 232, 0.04)),
    #fff;
}

.temperament-progress {
  display: grid;
  gap: 10px;
  font-weight: 700;
  color: #3451d1;
}

.temperament-progress i {
  display: block;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eeff;
  position: relative;
}

.temperament-progress i::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 42%;
  border-radius: inherit;
  background: linear-gradient(90deg, #4f6df5, #13bfe8);
  animation: temperament-progress-slide 1.1s ease-in-out infinite;
}

@keyframes temperament-progress-slide {
  0% {
    transform: translateX(-110%);
  }
  100% {
    transform: translateX(245%);
  }
}

.temperament-result-card {
  display: grid;
  gap: 10px;
}

.temperament-result-card p {
  margin: 0;
  line-height: 1.6;
}

.temperament-result-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  color: var(--muted);
}

.temperament-result-main strong {
  color: var(--ink);
}

.temperament-type-pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 12px;
  border-radius: 999px;
  color: #3451d1;
  background: #edf2ff;
  font-weight: 800;
}

.temperament-brief-summary {
  color: var(--ink);
  font-weight: 700;
}

.temperament-brief-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}

.temperament-brief-grid > div {
  min-width: 0;
  border: 1px solid #dde7f7;
  border-radius: 12px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.78);
}

.temperament-brief-grid span {
  display: block;
  margin-bottom: 5px;
  color: #2f4ee6;
  font-size: 13px;
  font-weight: 800;
}

.temperament-brief-grid p {
  color: var(--muted);
  font-size: 13px;
}

.temperament-brief-grid ul {
  margin: 0;
  padding-left: 1.2em;
  color: var(--muted);
  font-size: 13px;
}

.temperament-brief-grid li {
  margin: 0 0 4px;
  line-height: 1.55;
}

.temperament-report-hint {
  color: var(--muted);
  font-size: 13px;
}

.source-comparison-card {
  display: grid;
  gap: 7px;
  margin-top: 9px;
  padding: 10px;
  border: 1px solid #fed7aa;
  border-radius: 9px;
  background: #fffaf3;
}

.source-comparison-card > strong {
  color: #9a3412;
  font-size: 13px;
}

.source-comparison-topic {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.source-statement {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 8px;
  border-radius: 7px;
  font-size: 13px;
}

.source-statement span {
  font-weight: 700;
}

.source-statement p {
  margin: 0;
  line-height: 1.55;
}

.source-statement.is-student {
  color: #075985;
  background: #e0f2fe;
}

.source-statement.is-parent {
  color: #9a3412;
  background: #ffedd5;
}

.source-statement.is-collateral {
  color: #6d28d9;
  background: #ede9fe;
}

.patient-merge-source-role {
  display: block;
  min-width: 0;
  margin: 0 0 14px;
  padding: 10px 12px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fbfa;
}

.patient-merge-source-role legend {
  padding: 0 6px;
  font-weight: 700;
}

.patient-merge-source-options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.patient-merge-source-role label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  min-width: 142px;
  margin: 0;
  padding: 9px 14px;
  border: 1px solid #d9e2ec;
  border-radius: 10px;
  color: #24364b;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
  white-space: nowrap;
  word-break: keep-all;
  writing-mode: horizontal-tb;
  background: #ffffff;
  cursor: pointer;
}

.patient-merge-source-role label:has(input:checked) {
  border-color: #3b82f6;
  color: #1d4ed8;
  background: #eff6ff;
  box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.12);
}

.patient-merge-source-role label > span {
  display: inline-block;
  white-space: nowrap;
  word-break: keep-all;
  writing-mode: horizontal-tb;
}

.patient-merge-source-role input[type="radio"] {
  flex: 0 0 18px;
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  accent-color: #2563eb;
}

.patient-merge-parent-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.patient-merge-parent-fields label {
  display: grid;
  gap: 5px;
}

.patient-merge-parent-fields label > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.counseling-session-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fbfa;
}

.counseling-session-switch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink-2);
}

.visit-session-switch > span {
  white-space: nowrap;
}

.counseling-session-switch select {
  min-width: 220px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #fff;
}

.counseling-session-hint {
  font-size: 12px;
  color: var(--muted);
}

.visit-session-bar {
  margin-top: 8px;
}

.visit-session-bar .record-edit-request-btn {
  margin-left: auto;
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Audit history has its own full-width row, including while collapsed. */
.visit-session-bar .record-review-history {
  box-sizing: border-box;
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  margin: 2px 0 0;
  border-top: 1px solid #e4e9f1;
  color: #344056;
}
.record-review-history > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 8px 2px;
  box-sizing: border-box;
  list-style: none;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}
.record-review-history > summary::-webkit-details-marker { display: none; }
.record-review-history > summary::marker { content: ""; }
.record-review-history > summary:hover { color: #4c67db; }
.record-review-history > summary:focus-visible { outline: 2px solid #7588f7; outline-offset: 2px; border-radius: 6px; }
.record-review-history-title, .record-review-history-toggle { display: inline-flex; align-items: center; gap: 8px; }
.record-review-count { color: #7b8799; font-size: 12px; font-weight: 400; }
.record-review-history-toggle { flex: none; color: #738096; font-size: 12px; font-weight: 400; }
.record-review-history-toggle i { width: 6px; height: 6px; margin: -3px 4px 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.record-review-collapse, .record-review-history[open] .record-review-expand { display: none; }
.record-review-history[open] .record-review-collapse { display: inline; }
.record-review-history[open] .record-review-history-toggle i { transform: rotate(225deg); margin-top: 3px; }
.record-review-timeline {
  box-sizing: border-box;
  min-width: 0;
  margin: 0 0 4px;
  padding: 20px 22px 4px;
  list-style: none;
  border: 1px solid #e7ebf2;
  border-radius: 10px;
  background: #fff;
  max-height: 360px;
  overflow: auto;
  overflow-wrap: anywhere;
}
.record-review-event { position: relative; margin: 0; padding: 0 0 20px 20px; border-left: 1px solid #e4e9f1; }
.record-review-event:last-child { border-left-color: transparent; }
.record-review-event::before { content: ""; position: absolute; left: -4px; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: #9aaade; box-shadow: 0 0 0 4px #fff; }
.record-review-event-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.record-review-event-heading strong { color: #2b364d; font-size: 14px; font-weight: 600; }
.record-review-event-heading time { margin-left: auto; color: #8490a2; font-size: 12px; font-weight: 400; }
.record-review-badge { padding: 2px 7px; border-radius: 5px; background: #f1f3f7; color: #647187; font-size: 11px; line-height: 1.5; font-weight: 500; }
.record-review-badge--pending { color: #95661d; background: #fff6e5; }
.record-review-badge--approved { color: #287964; background: #eaf6f0; }
.record-review-badge--rejected { color: #b14c5a; background: #fceef0; }
.record-review-event-content { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; margin: 10px 0 0; font-size: 13px; line-height: 1.75; }
.record-review-event-content dt { margin: 0; color: #8a94a5; font-weight: 400; }
.record-review-event-content dd { min-width: 0; margin: 0; color: #566279; white-space: pre-wrap; }
.record-review-event-meta, .record-review-event-outcome { margin: 8px 0 0; font-size: 12px; line-height: 1.7; color: #8490a2; }
.record-review-event-outcome { color: #566279; font-size: 13px; }
@media (max-width: 680px) {
  .visit-session-bar .visit-session-switch { display: flex; flex-wrap: wrap; width: 100%; min-width: 0; }
  .admin-page .visit-session-bar .visit-session-switch select { width: 100%; min-width: 0; max-width: 100%; }
  .record-review-timeline { padding: 16px 14px 0; }
  .record-review-event { padding-left: 15px; }
  .record-review-event-heading time { flex-basis: 100%; margin-left: 0; }
  .record-review-event-content { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

.case-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.media-session-heading {
  margin: 10px 0 4px;
  padding-top: 8px;
  border-top: 1px dashed var(--line);
  font-size: 13px;
  color: var(--muted);
}

.ai-fill-module-btn {
  background: #eef8f6;
  border-color: #9fd9d0;
  color: var(--teal);
  font-weight: 700;
}

.ai-fill-module-btn.is-loading,
#fillFormsBtn.is-loading {
  position: relative;
  pointer-events: none;
  opacity: 0.92;
  animation: ai-fill-btn-pulse 1.2s ease-in-out infinite;
}

@keyframes ai-fill-btn-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(15, 118, 110, 0.28);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(15, 118, 110, 0);
  }
}

.case-form-fill-progress {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #b8e4dc;
  border-radius: 12px;
  background: linear-gradient(180deg, #f3fbf9 0%, #eef8f6 100%);
}

.case-form-fill-progress.hidden {
  display: none;
}

.case-form-fill-progress-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.case-form-fill-progress-head strong {
  color: var(--teal);
  font-size: 14px;
}

.case-form-fill-pulse {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--teal);
  flex: 0 0 auto;
  animation: case-form-fill-pulse 1s ease-in-out infinite;
}

@keyframes case-form-fill-pulse {
  0%,
  100% {
    transform: scale(0.85);
    opacity: 0.55;
  }
  50% {
    transform: scale(1.15);
    opacity: 1;
  }
}

.progress-bar-animated span {
  transition: width 0.45s ease;
  background: linear-gradient(90deg, var(--teal), #38a169, var(--teal));
  background-size: 200% 100%;
  animation: progress-bar-shimmer 1.6s linear infinite;
}

@keyframes progress-bar-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

.case-form-fill-progress-pct {
  font-size: 12px;
  font-weight: 700;
  color: var(--teal);
}

.primary-soft {
  background: var(--teal-soft);
  border-color: #8fcfc7;
  color: var(--teal);
  font-weight: 700;
}

.tf-grade-class-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.tf-grade-class-row label {
  display: grid;
  gap: 4px;
}

.tf-grade-class-row span {
  font-size: 12px;
  color: var(--muted);
  font-weight: 700;
}

.export-module-btn {
  background: #f4f8fb;
  border-color: #c5d3e0;
  color: #334155;
  font-weight: 600;
}

.panel-head-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.media-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.media-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 10px;
  color: var(--muted);
  line-height: 1.45;
}

.media-item a {
  color: var(--teal);
  font-weight: 700;
  text-decoration: none;
}

.raw-audio-panel .media-item strong {
  color: var(--text);
}

.media-unlinked {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
}

.media-unlinked-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.media-unlinked-head h4 {
  margin: 0;
  font-size: 14px;
  color: var(--ink);
}

.media-unlinked-hint {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.media-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.media-download-progress {
  margin-top: 12px;
  font-size: 12px;
  color: var(--muted);
}

.media-download-progress[hidden] {
  display: none;
}

.media-download-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 4px 12px;
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}

.media-download-status {
  color: var(--teal);
  font-weight: 600;
}

.media-download-track {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--teal-soft);
}

.media-download-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--teal);
  transition: width 0.15s ease;
}

.media-download-track.is-indeterminate span {
  animation: media-download-indeterminate 1.4s ease-in-out infinite;
}

.media-download-progress[data-phase="error"] .media-download-status {
  color: #b91c1c;
}

.media-download-progress[data-phase="error"] .media-download-track {
  display: none;
}

@keyframes media-download-indeterminate {
  from { transform: translateX(-100%); }
  to { transform: translateX(286%); }
}

@media (prefers-reduced-motion: reduce) {
  .media-download-track span,
  .media-download-track.is-indeterminate span {
    animation: none;
    transition: none;
  }
}

.media-attach-btn,
.media-download-btn,
.media-detach-btn,
.media-source-manage-btn,
.media-secondary-btn {
  margin-top: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 4px 8px;
  font-size: 12px;
  cursor: pointer;
}

.media-actions .media-attach-btn,
.media-actions .media-download-btn,
.media-actions .media-detach-btn,
.media-actions .media-source-manage-btn,
.media-actions .media-secondary-btn {
  margin-top: 0;
  flex: 0 0 auto;
  white-space: nowrap;
}

.media-attach-btn:hover,
.media-download-btn:hover,
.media-detach-btn:hover,
.media-source-manage-btn:hover,
.media-secondary-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
}

.media-download-btn {
  background: var(--teal-soft);
  color: var(--teal);
}

.media-secondary-btn {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #047857;
}

.media-secondary-btn:hover {
  border-color: #10b981;
  color: #065f46;
}

.media-detach-btn {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #c2410c;
}

.media-detach-btn:hover {
  border-color: #f97316;
  color: #9a3412;
}

.media-source-manage-btn {
  border-color: #b9c8ff;
  background: linear-gradient(135deg, #eef3ff 0%, #f4efff 100%);
  color: #465bd4;
  font-weight: 800;
}

.media-source-manage-btn:hover {
  border-color: #6579e8;
  color: #3348bd;
  box-shadow: 0 5px 14px rgba(74, 93, 208, 0.14);
}

.media-source-modal {
  width: min(620px, 100%);
}

.media-source-eyebrow {
  margin: 0 0 3px;
  color: #6676dc;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

.media-source-modal .modal-header h3 {
  margin: 0;
}

.media-source-file {
  margin: 2px 0 16px;
  padding: 11px 13px;
  border: 1px solid #dce4f3;
  border-radius: 10px;
  background: #f8faff;
  color: #4f5f7a;
  font-size: 13px;
}

.media-source-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.media-source-form label:first-child,
.media-source-form #mediaSourceNameRow {
  grid-column: 1 / -1;
}

.media-source-form label > span {
  display: block;
  margin-bottom: 7px;
  color: #53627b;
  font-size: 13px;
  font-weight: 800;
}

.media-source-form select,
.media-source-form input {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid #ccd8e8;
  border-radius: 10px;
  background: #fff;
  color: #1f2b42;
}

.media-source-hint {
  margin: 15px 0 0;
  padding: 11px 13px;
  border-left: 4px solid #7182e6;
  border-radius: 8px;
  background: #f3f5ff;
  color: #596784;
  font-size: 13px;
  line-height: 1.65;
}

.media-source-actions #mediaSourceDetach {
  margin-right: auto;
}

@media (max-width: 640px) {
  .media-source-form {
    grid-template-columns: 1fr;
  }

  .media-source-form label:first-child,
  .media-source-form #mediaSourceNameRow {
    grid-column: auto;
  }
}

.review-hints {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}

.review-hints ul,
.approval-check-card ul,
.approval-focus ul {
  margin: 0;
  padding-left: 18px;
  color: var(--text);
  line-height: 1.65;
}

.approval-topline {
  display: grid;
  gap: 8px;
}

.approval-topline strong {
  font-size: 14px;
}

.approval-alert {
  border: 1px solid #d9dee6;
  border-radius: 8px;
  background: #fbfcfd;
  color: var(--muted);
  padding: 9px 10px;
  font-size: 13px;
  line-height: 1.5;
}

.approval-alert.strong {
  border-color: #fecdca;
  background: var(--red-soft);
  color: var(--red);
}

.approval-missing,
.approval-focus {
  display: grid;
  gap: 8px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
  font-size: 13px;
}

.approval-missing b,
.approval-focus b {
  color: var(--text);
}

.approval-missing {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.approval-missing span {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  border-radius: 999px;
  background: #fef0c7;
  color: var(--amber);
  padding: 0 9px;
  font-weight: 700;
}

.approval-checklist {
  display: grid;
  gap: 9px;
}

.approval-check-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.approval-check-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}

.approval-check-card strong {
  font-size: 13px;
}

.approval-check-card span {
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--teal-soft);
  color: var(--teal);
  padding: 2px 7px;
  font-size: 11px;
  font-weight: 800;
}

.approval-check-card li {
  font-size: 13px;
}

.review-meta {
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
  padding-top: 10px;
}

.review-events {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.event-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.event-item strong,
.event-item span,
.event-item p {
  display: block;
}

.event-item strong {
  color: var(--teal);
  font-size: 13px;
}

.event-item span {
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
}

.event-item p {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
}

.event-audit {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.event-audit span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  margin-top: 0;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef7f5;
  color: #315c57;
  font-size: 11px;
  font-weight: 700;
}

.event-audit .risk-pill {
  color: inherit;
}

.system-data-panel .tab-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.system-data-panel .tab-btn {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 8px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 13px;
}

.system-data-panel .tab-btn.active {
  background: #e8f5f2;
  border-color: #7ab8ad;
  font-weight: 700;
}

.data-location-dl {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 8px 12px;
  margin: 12px 0;
  font-size: 13px;
}

.data-location-dl code {
  word-break: break-all;
  font-size: 12px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  margin-top: 12px;
}

.data-table th,
.data-table td {
  border-bottom: 1px solid var(--line);
  padding: 8px 6px;
  text-align: left;
  vertical-align: top;
}

.toolbar-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 8px 0 12px;
}

.warn-text {
  color: #b45309;
  font-weight: 600;
}

.audit-table .audit-time {
  white-space: nowrap;
  font-size: 12px;
  color: var(--muted);
}

.audit-table .audit-summary {
  font-size: 13px;
  line-height: 1.5;
  max-width: 360px;
}

.audit-raw {
  margin-top: 6px;
}

.audit-raw summary {
  cursor: pointer;
  font-size: 12px;
  color: var(--muted);
}

.audit-table pre {
  max-height: 160px;
  overflow: auto;
  font-size: 11px;
  background: #f6f8f7;
  padding: 8px;
  border-radius: 6px;
  margin: 4px 0 0;
}

.system-dialog-layer {
  box-sizing: border-box;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 24px;
  border: 0;
  overflow: auto;
  color: #202b40;
  background: transparent;
}
.system-dialog-layer[open] { display: grid; place-items: center; }
.system-dialog-card { box-sizing: border-box; overflow: hidden; }
.system-dialog-header { display: flex; align-items: flex-start; gap: 14px; }
.system-dialog-heading { min-width: 0; }
.system-dialog-kicker, .system-dialog-heading h3, .system-dialog-message { margin: 0; }
.system-dialog-heading h3 { line-height: 1.4; }
.system-dialog-heading, .system-dialog-body { overflow-wrap: anywhere; }
.system-dialog-message { white-space: pre-line; }
.system-dialog-field { display: grid; gap: 8px; font-size: 13px; }
.admin-page .system-dialog-field input,
.admin-page .system-dialog-field textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 1px solid #d7dfef;
  border-radius: 8px;
  padding: 10px 12px;
  color: #202b40;
  background: #fff;
  font: inherit;
  font-weight: 400;
  line-height: 1.6;
  resize: vertical;
}
.admin-page .system-dialog-field input:focus,
.admin-page .system-dialog-field textarea:focus {
  outline: none;
  border-color: #7588f7;
  box-shadow: 0 0 0 3px rgba(79, 109, 245, .12);
}
.system-dialog-error { margin: 10px 0 0; color: #c43f50; font-size: 13px; line-height: 1.6; }
.system-dialog-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  border-top: 1px solid #edf0f5;
  max-height: 45dvh;
  overflow-y: auto;
}
.admin-page .system-dialog-button {
  box-sizing: border-box;
  flex: 0 0 auto;
  max-width: 100%;
  padding: 9px 18px;
  border: 1px solid transparent;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.admin-page .system-dialog-button--secondary { border-color: #d8e0ef; color: #52617c; background: #fff; }
.admin-page .system-dialog-button--secondary:hover { border-color: #b9c7e4; background: #f8faff; }
.admin-page .system-dialog-button--primary { color: #fff; -webkit-text-fill-color: #fff; }
.admin-page .system-dialog-button--danger { color: #fff; -webkit-text-fill-color: #fff; background: #c84d60; }
.admin-page .system-dialog-button--danger:hover { background: #b53e50; }
.admin-page .system-dialog-button:focus-visible,
.admin-page .system-dialog-close:focus-visible { outline: 3px solid rgba(79,109,245,.25); outline-offset: 2px; }
/* Shared dialogs: readable forms, scrollable content and responsive actions. */
.system-dialog-layer::backdrop {
  background: rgba(24, 32, 50, .38);
  backdrop-filter: blur(3px);
}
.system-dialog-layer .system-dialog-card {
  display: flex;
  flex-direction: column;
  width: min(560px, 100%);
  max-height: calc(100dvh - 48px);
  border: 1px solid #e3e7ee;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(24, 32, 50, .2);
}
.system-dialog-layer .system-dialog-card::before,
.system-dialog-layer .system-dialog-icon { display: none; }
.system-dialog-layer .system-dialog-header { flex: none; padding: 26px 28px 0; }
.system-dialog-layer .system-dialog-kicker {
  margin-bottom: 7px; color: #768196; font-size: 12px; font-weight: 500; letter-spacing: 0;
}
.system-dialog-layer .system-dialog-heading h3 {
  color: #202b40; font-size: 22px; font-weight: 650;
}
.admin-page .system-dialog-close {
  flex: none; width: 32px; min-width: 32px; height: 32px; min-height: 32px;
  margin: -4px -8px 0 auto; padding: 0; border: 0; border-radius: 8px;
  color: #7b8495; background: transparent; box-shadow: none;
  font-size: 26px; font-weight: 400; line-height: 1; cursor: pointer;
}
.admin-page .system-dialog-close:hover { color: #26354d; background: #f1f4f8; }
.system-dialog-layer .system-dialog-body {
  min-height: 0; overflow-y: auto; padding: 12px 28px 24px;
}
.system-dialog-layer .system-dialog-message {
  color: #6d7789; font-size: 14px; line-height: 1.6;
}
.system-dialog-selection { min-width: 0; margin: 24px 0 0; padding: 0; border: 0; }
.system-dialog-selection legend {
  margin-bottom: 12px; padding: 0; color: #344056; font-size: 13px; font-weight: 600;
}
.system-dialog-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.system-dialog-option {
  display: flex; align-items: flex-start; gap: 11px; min-width: 0; margin: 0;
  padding: 16px 14px; border: 1px solid #dfe4ec; border-radius: 10px;
  background: #fff; cursor: pointer;
}
.system-dialog-option:hover { border-color: #a7b6d7; background: #fafbfe; }
.system-dialog-option:has(input:checked) {
  border-color: #526ee8; background: #f3f6ff; box-shadow: inset 0 0 0 1px #526ee8;
}
.system-dialog-option:has(input:focus-visible) { outline: 3px solid rgba(79,109,245,.18); outline-offset: 2px; }
.admin-page .system-dialog-option input[type="radio"] {
  flex: 0 0 16px; width: 16px; height: 16px; min-height: 16px;
  margin: 3px 0 0; padding: 0; accent-color: #4c67db; box-shadow: none;
}
.system-dialog-option > span { min-width: 0; }
.system-dialog-option strong {
  display: block; color: #2b364d; font-size: 14px; font-weight: 600; line-height: 1.6;
}
.system-dialog-option > span > span {
  display: block; margin-top: 5px; color: #738096; font-size: 12px; font-weight: 400; line-height: 1.6;
}
.system-dialog-layer .system-dialog-field {
  margin-top: 24px; color: #344056; font-weight: 600;
}
.admin-page .system-dialog-layer textarea {
  min-height: 94px; padding: 12px; border-radius: 8px; background: #fff;
  font-size: 14px; font-weight: 400; line-height: 1.6;
}
.system-dialog-field-help { color: #7a8598; font-size: 12px; font-weight: 400; line-height: 1.6; }
.system-dialog-layer .system-dialog-actions {
  flex: none; padding: 16px 28px; border-color: #edf0f5; background: #fff;
}
.admin-page .system-dialog-layer .system-dialog-button {
  min-width: 88px; min-height: 40px; border-radius: 8px; font-weight: 600;
  white-space: normal; box-shadow: none;
}
.admin-page .system-dialog-layer .system-dialog-button--primary { background: #4c67db; }
.admin-page .system-dialog-layer .system-dialog-button--primary:hover { background: #405ac9; }
@media (max-width: 560px) {
  .system-dialog-layer .system-dialog-card { max-height: calc(100dvh - 32px); }
  .system-dialog-layer .system-dialog-header { padding: 20px 20px 0; }
  .system-dialog-layer .system-dialog-body { padding: 12px 20px 20px; }
  .system-dialog-layer .system-dialog-actions { padding: 14px 20px; }
  .system-dialog-layer .system-dialog-heading h3 { font-size: 20px; }
  .system-dialog-options { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .system-dialog-option { padding: 12px; }
}


.system-dialog-layer--record-verification .system-dialog-card { width: min(640px, 100%); }
@media (max-width: 560px) {
  .system-dialog-layer { padding: 16px; }
  .system-dialog-layer .system-dialog-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .system-dialog-layer .system-dialog-actions--multiple { grid-template-columns: minmax(0, 1fr); }
  .admin-page .system-dialog-layer .system-dialog-button { min-width: 0; width: 100%; padding: 10px 12px; }
  .system-dialog-actions > :only-child { grid-column: 1 / -1; }
}

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.45);
}

.modal-card {
  width: min(520px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: var(--surface);
  border-radius: 12px;
  border: 1px solid var(--line);
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.2);
  padding: 20px;
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.modal-header h3 {
  margin: 0;
  font-size: 18px;
}

.modal-kicker {
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--accent);
}

.modal-close {
  border: none;
  background: transparent;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0 4px;
}

.modal-hint {
  margin: 0 0 14px;
  font-size: 13px;
}

.modal-form {
  display: grid;
  gap: 14px;
}

.modal-fieldset {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px 14px 14px;
  margin: 0;
}

.modal-fieldset legend {
  padding: 0 6px;
  font-size: 13px;
  font-weight: 700;
}

.modal-fieldset label {
  display: grid;
  gap: 4px;
  margin-top: 10px;
  font-size: 13px;
}

.modal-fieldset label:first-of-type {
  margin-top: 4px;
}

.modal-radio-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-size: 13px;
}

.modal-radio-row input {
  width: auto;
}

.create-patient-mode-row {
  margin: 4px 0 12px;
}

.create-doctor-assign {
  margin-top: 10px;
}

.create-doctor-assign-label {
  display: block;
  font-size: 13px;
  margin-bottom: 4px;
}

.doctor-assign-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.doctor-assign-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}

.doctor-change-btn {
  flex-shrink: 0;
}

.doctor-pending-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  color: #b45309;
  background: #fef3c7;
  border: 1px solid #fcd34d;
}

.summary-field-doctor .doctor-assign-row {
  min-height: 34px;
}

.summary-doctor-hint {
  margin: 4px 0 0;
  font-size: 11px;
  line-height: 1.45;
  max-width: 220px;
}

.doctor-picker-list {
  display: grid;
  gap: 6px;
  max-height: 320px;
  overflow: auto;
  margin-bottom: 12px;
}

.doctor-picker-reason {
  display: grid;
  gap: 6px;
  margin-bottom: 12px;
}

.doctor-picker-reason label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}

.doctor-picker-reason textarea {
  width: 100%;
  min-height: 72px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  resize: vertical;
}

.delete-approval-card {
  width: min(640px, 100%);
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28);
}

.delete-approval-hint {
  color: var(--muted);
  line-height: 1.65;
  margin-bottom: 16px;
}

.delete-approval-field {
  display: grid;
  gap: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}

.delete-approval-field b {
  color: #ef4444;
}

.delete-approval-field textarea {
  width: 100%;
  min-height: 128px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f8fbff;
  color: var(--text);
  font: inherit;
  font-weight: 500;
  line-height: 1.6;
  resize: vertical;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.delete-approval-field textarea:focus {
  outline: none;
  border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

.delete-approval-error {
  margin: 10px 0 0;
  padding: 8px 10px;
  border-radius: 10px;
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  font-size: 13px;
}

.doctor-picker-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font-size: 14px;
}

.doctor-picker-item:hover {
  border-color: var(--teal);
  background: var(--teal-soft);
}

.doctor-picker-item.is-disabled,
.doctor-picker-item:disabled {
  cursor: not-allowed;
  color: var(--muted);
  background: #f8fafc;
  opacity: 0.68;
}

.doctor-picker-item.is-disabled:hover,
.doctor-picker-item:disabled:hover {
  border-color: var(--line);
  background: #f8fafc;
}

.doctor-picker-item.is-self {
  border-color: #0f766e;
  background: #ecfdf5;
}

.doctor-picker-item.is-selected {
  border-color: var(--accent);
  background: #eef2ff;
  box-shadow: inset 0 0 0 1px var(--accent);
}

.doctor-picker-item-meta {
  font-size: 12px;
  color: var(--muted);
}

.doctor-picker-create {
  display: grid;
  gap: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.doctor-picker-create label {
  display: grid;
  gap: 4px;
  font-size: 13px;
}

.doctor-picker-create input {
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
}

.doctor-assign-name.doctor-assign-missing {
  color: #b45309;
}

.create-consultation-form .tf-grade-class-row {
  margin-top: 4px;
}

.create-audio-or {
  margin: 4px 0 8px;
  font-size: 12px;
  text-align: center;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding-top: 4px;
}

.patient-merge-modal {
  width: min(920px, 100%);
}

.patient-merge-section-label {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}

.patient-merge-compare-wrap {
  overflow-x: auto;
}

.patient-merge-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.patient-merge-compare-table th,
.patient-merge-compare-table td {
  border: 1px solid var(--line);
  padding: 8px 10px;
  vertical-align: top;
}

.patient-merge-compare-table th {
  background: #f8fafb;
  text-align: left;
  white-space: nowrap;
}

.patient-merge-compare-sub {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  font-weight: 400;
  color: var(--muted);
}

.patient-merge-compare-option {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  cursor: pointer;
}

.patient-merge-compare-option input {
  margin-top: 3px;
}

.patient-merge-same-hint {
  margin: 0 0 8px;
}

.patient-merge-warning {
  margin: 0;
  color: #dc2626;
  font-size: 13px;
}

.patient-merge-course-picker {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
}

.patient-merge-course-picker span {
  color: var(--muted);
  font-size: 12px;
}

.patient-merge-course-picker strong {
  color: #1d4ed8;
}

.patient-merge-course-picker div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.patient-merge-course-plan-inputs label {
  display: grid;
  gap: 4px;
  margin: 0;
}

.patient-merge-course-plan-inputs input {
  width: 100%;
  min-width: 0;
}

.patient-merge-course-picker em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.patient-merge-compare-cell.is-same {
  background: #f9fbfb;
}

.patient-merge-body {
  display: grid;
  gap: 14px;
  margin-bottom: 4px;
}

.patient-merge-lead {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink);
}

.patient-merge-profile {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border: 1px solid #99f6e4;
  border-radius: 10px;
  background: linear-gradient(135deg, #f0fdfa 0%, #ecfdf5 100%);
}

.patient-merge-profile strong {
  font-size: 17px;
  color: #0f766e;
}

.patient-merge-profile span {
  font-size: 13px;
  color: var(--muted);
}

.patient-merge-bullets {
  margin: 0;
  padding: 0 0 0 18px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--muted);
}

.patient-merge-bullets li + li {
  margin-top: 4px;
}

.patient-merge-list {
  display: grid;
  gap: 6px;
  max-height: 280px;
  overflow: auto;
}

.patient-merge-item {
  display: grid;
  gap: 2px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font-size: 14px;
  transition: border-color 0.15s, background 0.15s;
}

.patient-merge-item:hover {
  border-color: var(--teal);
  background: var(--teal-soft);
}

.patient-merge-item.is-selected {
  border-color: #0f766e;
  background: #ecfdf5;
  box-shadow: 0 0 0 1px #0f766e;
}

.admin-page .patient-merge-item.is-selected,
.admin-page .patient-merge-item.is-selected:hover,
.admin-page .patient-merge-item.is-selected:focus-visible {
  border-color: #2563eb;
  color: #1e3a8a;
  background: #eff6ff;
  box-shadow:
    0 0 0 1px #2563eb,
    0 8px 18px rgba(37, 99, 235, 0.12);
}

.admin-page .patient-merge-item.is-selected .patient-merge-item-meta,
.admin-page .patient-merge-item.is-selected:hover .patient-merge-item-meta {
  color: #526b91;
}

.patient-merge-item-meta {
  font-size: 12px;
  color: var(--muted);
}

#patientMergeLinkBtn.btn-primary {
  background: #0f766e;
  color: #fff;
  border: none;
}

#patientMergeLinkBtn.btn-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.modal-fieldset .req {
  color: #c2410c;
  font-style: normal;
}

#createConsultationBtn.btn-primary {
  background: #0f766e;
  color: #fff;
  border: none;
}

.create-consultation-view {
  display: grid;
  gap: 14px;
  padding-right: 22px;
}

.create-consultation-panel {
  width: 100%;
  max-width: 1320px;
  box-sizing: border-box;
}

.create-consultation-hint {
  margin: 0 0 16px;
  font-size: 13px;
}

.create-consultation-form {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(360px, 0.82fr);
  align-items: start;
  gap: 16px;
}

.create-consultation-form > .modal-fieldset:first-of-type {
  grid-column: 1 / -1;
  grid-row: 1;
}

.create-consultation-form > .modal-fieldset:nth-of-type(2) {
  grid-column: 1;
  grid-row: 2;
}

.create-consultation-form > .modal-fieldset:nth-of-type(3) {
  grid-column: 2;
  grid-row: 2;
}

.create-consultation-form > .modal-fieldset:first-of-type {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 0 16px;
}

.create-consultation-form > .modal-fieldset:first-of-type > legend,
.create-consultation-form #createPatientExisting,
.create-consultation-form #createPatientNew {
  grid-column: 1 / -1;
}

.create-consultation-form .create-patient-mode-row {
  align-self: end;
  min-height: 48px;
  margin: 4px 0 0;
}

.create-consultation-form #createPatientNew {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 16px;
}

.create-consultation-form #createPatientGradeClass {
  grid-column: 3 / -1;
}

.create-consultation-form .modal-fieldset label input,
.create-consultation-form .modal-fieldset label select {
  width: 100%;
}

.create-consultation-form .modal-actions {
  grid-column: 1 / -1;
  position: sticky;
  bottom: 0;
  background: var(--surface);
  padding: 12px 0 4px;
  border-top: 1px solid var(--line);
  margin-top: 4px;
}

@media (max-width: 1180px) {
  .create-consultation-form {
    grid-template-columns: 1fr;
  }

  .create-consultation-form > .modal-fieldset:first-of-type,
  .create-consultation-form > .modal-fieldset:nth-of-type(2),
  .create-consultation-form > .modal-fieldset:nth-of-type(3) {
    grid-column: 1;
    grid-row: auto;
  }

  .create-consultation-form #createPatientNew {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .create-consultation-form #createPatientGradeClass {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .create-consultation-view {
    padding-right: 12px;
  }

  .create-consultation-form > .modal-fieldset:first-of-type,
  .create-consultation-form #createPatientNew {
    grid-template-columns: 1fr;
  }

  .create-consultation-form > .modal-fieldset:first-of-type > *,
  .create-consultation-form #createPatientNew > * {
    grid-column: 1;
  }
}

.report-files {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.file-entry {
  display: grid;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.file-entry.active {
  border-color: var(--teal);
  box-shadow: 0 0 0 2px var(--teal-soft);
}

.file-entry.file-stale {
  border-color: #f7c948;
  background: #fffaf0;
}

.file-entry.file-stale.active {
  box-shadow: 0 0 0 2px #fef0c7;
}

.file-entry-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.file-entry-head strong,
.file-entry-head span {
  display: block;
}

.file-entry-head strong {
  font-size: 14px;
}

.file-entry-head .file-select-btn {
  background: #f6fbfa;
  border-color: #99d6ce;
  color: var(--teal);
  font-weight: 800;
  white-space: nowrap;
}

.file-entry-head span,
.file-entry-meta {
  color: var(--muted);
  font-size: 12px;
}

.file-select-btn,
#exportAllBtn {
  min-height: 30px;
  padding: 0 9px;
  font-size: 12px;
}

#exportAllBtn {
  border-color: #99d6ce;
  background: var(--teal-soft);
  color: var(--teal);
  font-weight: 700;
}

.file-entry-meta,
.file-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.source-link {
  border-radius: 999px;
  background: #eef7f5;
  color: var(--teal) !important;
  padding: 2px 8px;
  font-weight: 800;
}

.file-sync-warning {
  border: 1px solid #f7c948;
  border-radius: 8px;
  background: #fffbeb;
  color: var(--amber);
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.file-card {
  display: inline-grid;
  grid-template-columns: auto 1fr;
  column-gap: 8px;
  row-gap: 2px;
  align-items: center;
  border: 1px solid #cfd6df;
  border-radius: 8px;
  background: #fbfcfd;
  color: var(--text);
  padding: 10px;
  text-decoration: none;
  min-width: 148px;
  flex: 1 1 168px;
}

.file-card:hover {
  border-color: var(--teal);
  background: #f6fbfa;
}

.file-card strong {
  grid-row: span 2;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 8px;
  background: var(--teal-soft);
  color: var(--teal);
  font-size: 12px;
}

.file-card span {
  overflow-wrap: anywhere;
  font-size: 13px;
  font-weight: 700;
}

.file-card em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.file-docx strong {
  background: #e8f1ff;
  color: #175cd3;
}

.file-pdf strong {
  background: var(--red-soft);
  color: var(--red);
}

.toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  max-width: min(420px, calc(100vw - 36px));
  border-radius: 8px;
  background: #18202a;
  color: #fff;
  padding: 12px 14px;
  box-shadow: var(--shadow);
}

@media (max-width: 960px) {
  .shell,
  .work-grid,
  .work-grid-counseling,
  .work-grid-report,
  .template-form-grid,
  .summary-strip {
    grid-template-columns: 1fr;
  }

  .case-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .case-metrics {
    width: 100%;
    grid-template-columns: repeat(3, 1fr);
  }

  .report-chooser {
    grid-template-columns: 1fr;
  }

  .report-guide {
    align-items: flex-start;
    flex-direction: column;
  }

  .guide-actions {
    width: 100%;
  }

  .guide-actions button {
    flex: 1 1 140px;
  }

  .sidebar {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .topbar {
    align-items: flex-start;
    flex-direction: column;
  }
}

.ethics-banner {
  margin: 0;
  padding: 10px 16px;
  background: #f0f7ff;
  border-bottom: 1px solid #d6e8f7;
  color: #234;
  font-size: 0.85rem;
}

/* Modern fixed-scale UI layer */
:root {
  --app-width: 1652px;
  --app-height: 960px;
  --app-scale: 1;
  --app-viewport-height: var(--app-height);
  --bg: #f3f6fd;
  --surface: rgba(255, 255, 255, 0.94);
  --surface-strong: #ffffff;
  --surface-tint: rgba(248, 250, 255, 0.9);
  --line: rgba(91, 117, 154, 0.16);
  --line-strong: rgba(78, 110, 245, 0.3);
  --text: #182033;
  --ink: #182033;
  --muted: #77839a;
  --teal: #13bfe8;
  --teal-soft: #e8f8ff;
  --accent: #4f6df5;
  --violet: #7b3ff2;
  --amber: #ff8a4c;
  --red: #c13246;
  --red-soft: #ffe7eb;
  --green: #29c76f;
  --green-soft: #e7fbf0;
  --card-cyan: #18bff0;
  --card-blue: #3268ff;
  --card-violet: #7b3ff2;
  --card-magenta: #c23df4;
  --card-green: #28c96f;
  --card-orange: #ff8a3d;
  --card-yellow: #ffc342;
  --shadow: 0 18px 42px rgba(61, 78, 116, 0.1);
  --shadow-soft: 0 10px 24px rgba(61, 78, 116, 0.08);
  --radius: 8px;
  --radius-sm: 6px;
}

@supports (width: calc(100px / 2)) {
  :root {
    --app-scale: calc(100vw / var(--app-width));
    --app-viewport-height: calc(100vh / var(--app-scale));
  }
}

html,
body.admin-page,
body.login-page {
  width: 100%;
  height: 100%;
}

body.admin-page {
  --theme-a: #18bff0;
  --theme-b: #3268ff;
  --theme-c: #7b3ff2;
  --theme-text: #2949c7;
  --theme-rgb-a: 24, 191, 240;
  --theme-rgb-b: 50, 104, 255;
  --theme-rgb-c: 123, 63, 242;
  --theme-soft-a: rgba(24, 191, 240, 0.12);
  --theme-soft-b: rgba(50, 104, 255, 0.1);
  --theme-soft-c: rgba(123, 63, 242, 0.08);
  --theme-focus: rgba(50, 104, 255, 0.16);
  --theme-shadow: rgba(50, 104, 255, 0.18);
  display: block;
  min-height: 100vh;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(19, 191, 232, 0.14), transparent 30%),
    radial-gradient(circle at 88% 8%, rgba(123, 63, 242, 0.1), transparent 28%),
    linear-gradient(180deg, #f8faff 0%, #f2f5fc 54%, #eef3fb 100%);
}

body.admin-page[data-feature-theme="case"] {
  --theme-a: #3268ff;
  --theme-b: #7b3ff2;
  --theme-c: #18bff0;
  --theme-text: #3556d6;
  --theme-rgb-a: 50, 104, 255;
  --theme-rgb-b: 123, 63, 242;
  --theme-rgb-c: 24, 191, 240;
  --theme-soft-a: rgba(50, 104, 255, 0.12);
  --theme-soft-b: rgba(123, 63, 242, 0.09);
  --theme-soft-c: rgba(24, 191, 240, 0.07);
  --theme-focus: rgba(50, 104, 255, 0.16);
  --theme-shadow: rgba(50, 104, 255, 0.18);
}

body.admin-page[data-feature-theme="crisis"] {
  --theme-a: #ff4d57;
  --theme-b: #e71935;
  --theme-c: #991124;
  --theme-text: #c7122b;
  --theme-rgb-a: 255, 77, 87;
  --theme-rgb-b: 231, 25, 53;
  --theme-rgb-c: 153, 17, 36;
  --theme-soft-a: rgba(255, 77, 87, 0.16);
  --theme-soft-b: rgba(231, 25, 53, 0.13);
  --theme-soft-c: rgba(153, 17, 36, 0.1);
  --theme-focus: rgba(231, 25, 53, 0.2);
  --theme-shadow: rgba(231, 25, 53, 0.22);
}

body.admin-page[data-feature-theme="schedule"] {
  --theme-a: #28c96f;
  --theme-b: #18bff0;
  --theme-c: #3268ff;
  --theme-text: #118f78;
  --theme-rgb-a: 40, 201, 111;
  --theme-rgb-b: 24, 191, 240;
  --theme-rgb-c: 50, 104, 255;
  --theme-soft-a: rgba(40, 201, 111, 0.12);
  --theme-soft-b: rgba(24, 191, 240, 0.09);
  --theme-soft-c: rgba(50, 104, 255, 0.07);
  --theme-focus: rgba(24, 191, 240, 0.16);
  --theme-shadow: rgba(40, 201, 111, 0.16);
}

body.admin-page[data-feature-theme="org"] {
  --theme-a: #ff8a3d;
  --theme-b: #ffc342;
  --theme-c: #f05aa8;
  --theme-text: #c05d16;
  --theme-rgb-a: 255, 138, 61;
  --theme-rgb-b: 255, 195, 66;
  --theme-rgb-c: 240, 90, 168;
  --theme-soft-a: rgba(255, 138, 61, 0.12);
  --theme-soft-b: rgba(255, 195, 66, 0.1);
  --theme-soft-c: rgba(240, 90, 168, 0.06);
  --theme-focus: rgba(255, 138, 61, 0.17);
  --theme-shadow: rgba(255, 138, 61, 0.16);
}

body.admin-page[data-feature-theme="data"] {
  --theme-a: #13bfe8;
  --theme-b: #3268ff;
  --theme-c: #28c96f;
  --theme-text: #2370cf;
  --theme-rgb-a: 19, 191, 232;
  --theme-rgb-b: 50, 104, 255;
  --theme-rgb-c: 40, 201, 111;
  --theme-soft-a: rgba(19, 191, 232, 0.12);
  --theme-soft-b: rgba(50, 104, 255, 0.09);
  --theme-soft-c: rgba(40, 201, 111, 0.07);
  --theme-focus: rgba(50, 104, 255, 0.16);
  --theme-shadow: rgba(19, 191, 232, 0.16);
}

body.admin-page[data-feature-theme="teaching"] {
  --theme-a: #19c7a8;
  --theme-b: #3268ff;
  --theme-c: #8a5cf6;
  --theme-text: #148a89;
  --theme-rgb-a: 25, 199, 168;
  --theme-rgb-b: 50, 104, 255;
  --theme-rgb-c: 138, 92, 246;
  --theme-soft-a: rgba(25, 199, 168, 0.13);
  --theme-soft-b: rgba(50, 104, 255, 0.09);
  --theme-soft-c: rgba(138, 92, 246, 0.07);
  --theme-focus: rgba(25, 199, 168, 0.18);
  --theme-shadow: rgba(25, 199, 168, 0.17);
}

body.admin-page::before,
body.login-page::before,
body.admin-page::after,
body.login-page::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
}

body.admin-page::before,
body.login-page::before {
  background:
    radial-gradient(circle, rgba(79, 109, 245, 0.08) 0 1px, transparent 1.6px) 0 0 / 28px 28px,
    linear-gradient(135deg, rgba(19, 191, 232, 0.09), transparent 36%, rgba(123, 63, 242, 0.06) 68%, rgba(255, 138, 76, 0.06));
  opacity: 0.8;
}

body.admin-page::after,
body.login-page::after {
  background:
    linear-gradient(118deg, transparent 0 18%, rgba(19, 191, 232, 0.1) 18.2% 18.8%, transparent 19% 61%, rgba(123, 63, 242, 0.07) 61.2% 61.9%, transparent 62.1%),
    linear-gradient(22deg, transparent 0 70%, rgba(255, 138, 76, 0.08) 70.2% 71%, transparent 71.2%);
  opacity: 0.62;
}

.admin-page * {
  scrollbar-width: thin;
  scrollbar-color: rgba(50, 104, 255, 0.34) transparent;
}

.admin-page *::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

.admin-page *::-webkit-scrollbar-track {
  background: transparent;
}

.admin-page *::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(50, 104, 255, 0.34);
  background-clip: padding-box;
}

.admin-page .shell {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1;
  display: grid;
  grid-template-columns: 274px 1fr !important;
  width: var(--app-width);
  height: var(--app-viewport-height);
  min-height: 0;
  overflow: hidden;
  transform: scale(var(--app-scale));
  transform-origin: top left;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(180deg, #f8faff 0%, #f1f5fc 100%),
    linear-gradient(135deg, rgba(79, 109, 245, 0.06), rgba(19, 191, 232, 0.06));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.admin-page .sidebar {
  display: block;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  border-right: 1px solid rgba(93, 160, 178, 0.2) !important;
  border-bottom: 0 !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(19, 191, 232, 0.14), transparent 28%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 255, 0.96) 58%, rgba(243, 247, 254, 0.96));
  color: #25324b;
  padding: 14px 10px 18px 0;
}

.admin-page .brand {
  min-height: 52px;
  margin-bottom: 10px;
  padding: 9px;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 30px rgba(61, 78, 116, 0.08);
}

.admin-page .brand-mark {
  width: 38px;
  height: 38px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #13bfe8, #4f6df5 58%, #7b3ff2);
  color: #ffffff;
  box-shadow: 0 12px 24px rgba(79, 109, 245, 0.24);
}

.admin-page .brand h1 {
  color: #182033;
  font-size: 15px;
  line-height: 1.25;
}

.admin-page .brand p,
.admin-page .sidebar .muted-text,
.admin-page .sidebar .section-title,
.admin-page .sidebar .filter-field span {
  color: #77839a;
}

.admin-page .identity-panel,
.admin-page .sidebar-todos {
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.92);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.8),
    0 10px 22px rgba(61, 78, 116, 0.05);
}

.admin-page .identity-panel {
  margin-bottom: 12px;
  padding: 12px;
}

.admin-page .feature-menu {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
  padding: 9px;
  border: 1px solid rgba(91, 117, 154, 0.1);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.9);
}

.admin-page .feature-menu-section {
  display: grid;
  gap: 3px;
  padding: 7px 6px;
  border: 1px solid rgba(91, 117, 154, 0.08);
  border-radius: var(--radius-sm);
  background: #fbfcff;
}

.admin-page .feature-menu-title {
  display: flex;
  align-items: center;
  min-height: 18px;
  padding: 0 7px;
  color: #8893a8;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
}

.admin-page .feature-menu-title::before {
  content: "";
  width: 4px;
  height: 4px;
  margin-right: 6px;
  border-radius: 999px;
  background: #13bfe8;
  box-shadow: 0 0 9px rgba(19, 191, 232, 0.36);
}

.admin-page .feature-menu button {
  position: relative;
  justify-content: flex-start;
  min-height: 29px;
  padding: 0 25px 0 18px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  color: #4b5871;
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0;
  box-shadow: none;
}

.admin-page .feature-menu button::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, #13bfe8, #4f6df5);
  box-shadow: 0 0 12px rgba(79, 109, 245, 0.32);
  opacity: 0;
  transition: opacity 0.16s ease;
}

.admin-page .feature-menu button::after {
  content: "";
  position: absolute;
  right: 12px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: transparent;
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.admin-page .feature-menu button:hover,
.admin-page .feature-menu button.active {
  color: #182033;
}

.admin-page .feature-menu button:hover {
  border-color: rgba(79, 109, 245, 0.14);
  background: #f6f8ff;
}

.admin-page .feature-menu button.active {
  border-color: rgba(79, 109, 245, 0.2);
  background:
    linear-gradient(90deg, rgba(19, 191, 232, 0.18), rgba(79, 109, 245, 0.14)),
    #ffffff;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.78),
    0 10px 20px rgba(79, 109, 245, 0.12);
}

.admin-page .feature-menu button.active::before,
.admin-page .feature-menu button.active::after {
  opacity: 1;
}

.admin-page .feature-menu button.active::after {
  background: #13bfe8;
  box-shadow: 0 0 14px rgba(19, 191, 232, 0.56);
}

.admin-page .sidebar button {
  border-color: rgba(91, 117, 154, 0.14);
  background: rgba(255, 255, 255, 0.86);
  color: #3e4b63;
}

.admin-page .sidebar button:hover {
  border-color: rgba(79, 109, 245, 0.28);
  background: #ffffff;
  color: #182033;
}

.admin-page .sidebar .btn-primary,
.admin-page .sidebar #createConsultationBtn.btn-primary {
  border-color: transparent;
  background: linear-gradient(135deg, #13bfe8, #4f6df5 58%, #7b3ff2);
  color: #ffffff;
}

.admin-page .sidebar-todos {
  max-height: none;
  margin-bottom: 12px;
  overflow: visible;
  padding: 10px;
}

.admin-page .todo-item {
  border-color: rgba(255, 138, 76, 0.22);
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(61, 78, 116, 0.06);
}

.admin-page .toolbar {
  gap: 8px;
  margin-bottom: 12px;
  padding: 10px;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(61, 78, 116, 0.06);
}

.admin-page #consultationListSection {
  display: block;
  min-height: 0;
  margin-bottom: 12px;
}

.admin-page .record-list-scroll {
  max-height: none;
  min-height: 0;
  overflow: visible;
  padding-right: 0;
}

.admin-page .record-pagination {
  position: sticky;
  z-index: 6;
  bottom: -14px;
  margin: 10px -2px -2px;
  padding: 10px 2px 14px;
  border-top: 1px solid rgba(91, 117, 154, 0.12);
  background: linear-gradient(180deg, rgba(250, 253, 255, 0.9), #f4f9ff 34%);
  backdrop-filter: blur(12px);
}

.admin-page .record-pagination button {
  padding: 9px 10px;
  border-color: rgba(var(--theme-rgb-b), 0.2);
  background: rgba(255, 255, 255, 0.92);
  color: var(--theme-b);
  font-weight: 800;
}

.admin-page .record-pagination button:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}

.admin-page .record-item {
  min-height: 88px;
  border-color: rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(61, 78, 116, 0.08);
}

.admin-page .record-item.active {
  border-color: rgba(79, 109, 245, 0.42);
  background:
    linear-gradient(90deg, rgba(19, 191, 232, 0.1), rgba(79, 109, 245, 0.06)),
    #ffffff;
  box-shadow:
    0 0 0 2px rgba(79, 109, 245, 0.1),
    0 14px 28px rgba(79, 109, 245, 0.14);
}

.admin-page .workspace {
  height: 100%;
  min-width: 0;
  overflow: auto;
  padding: 20px 0 24px 22px;
  background:
    radial-gradient(circle at 76% 4%, rgba(123, 63, 242, 0.08), transparent 26%),
    linear-gradient(180deg, #f7f9ff 0%, #f1f5fc 100%);
}

.admin-page .ethics-banner {
  margin: -20px 0 18px -22px;
  border: 0;
  border-bottom: 1px solid rgba(91, 117, 154, 0.12);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 255, 0.92)),
    linear-gradient(90deg, rgba(19, 191, 232, 0.08), rgba(79, 109, 245, 0.08), rgba(255, 138, 76, 0.06));
  color: #46536b;
  box-shadow: 0 6px 18px rgba(61, 78, 116, 0.05);
}

.admin-page .topbar {
  min-height: 76px;
  align-items: center !important;
  flex-direction: row !important;
  margin-bottom: 16px;
  padding: 14px 16px;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(61, 78, 116, 0.08);
  backdrop-filter: none;
}

.admin-page .topbar h2 {
  color: #182033;
  font-size: 24px;
  line-height: 1.2;
}

.admin-page .topbar-title-block {
  min-width: 0;
}

.admin-page .detail-title-nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.admin-page .detail-title-name,
.admin-page .detail-title-dot {
  flex: 0 0 auto;
}

.admin-page .detail-title-select-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.admin-page .detail-title-select {
  appearance: none;
  -webkit-appearance: none;
  max-width: min(280px, 100%);
  height: 40px;
  padding: 0 36px 0 12px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.16);
  border-radius: 10px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M2 2l5 5 5-5' fill='none' stroke='%23182033' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 13px center / 14px 9px no-repeat,
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.08), rgba(var(--theme-rgb-b), 0.08)),
    #fff;
  color: #182033;
  box-shadow: 0 10px 22px rgba(var(--theme-rgb-b), 0.08);
  cursor: pointer;
  font: inherit;
  font-weight: 900;
  line-height: 1.1;
}

.admin-page .detail-title-select:hover,
.admin-page .detail-title-select:focus-visible {
  border-color: rgba(var(--theme-rgb-b), 0.34);
  outline: 0;
  box-shadow:
    0 0 0 3px rgba(var(--theme-rgb-b), 0.12),
    0 12px 24px rgba(var(--theme-rgb-b), 0.12);
}

.detail-placeholder-view {
  min-height: 320px;
}

.detail-placeholder-panel {
  display: grid;
  min-height: 320px;
  padding: 22px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 94% 0%, rgba(var(--theme-rgb-c), 0.08), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(var(--theme-rgb-a), 0.055)),
    #fff;
  box-shadow: 0 16px 34px rgba(44, 64, 104, 0.08);
}

.detail-placeholder-panel h3 {
  margin: 0;
  color: #182033;
  font-size: 22px;
}

.detail-placeholder-panel p {
  max-width: 760px;
  margin: 12px 0 0;
  color: #62718b;
  font-size: 15px;
  line-height: 1.8;
}

.detail-placeholder-actions {
  display: grid;
  grid-template-columns: minmax(260px, 420px);
  gap: 12px;
  margin-top: 20px;
}

.detail-placeholder-actions button {
  text-align: left;
}

.detail-placeholder-action-card {
  display: grid;
  gap: 8px;
  min-height: 132px;
  padding: 18px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.24);
  border-radius: 14px;
  background:
    radial-gradient(circle at 92% 12%, rgba(var(--theme-rgb-c), 0.18), transparent 28%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.16), rgba(var(--theme-rgb-b), 0.1)),
    #fff;
  color: #172033;
  box-shadow: 0 14px 28px rgba(var(--theme-rgb-b), 0.1);
}

.detail-placeholder-action-card:hover,
.detail-placeholder-action-card:focus-visible {
  border-color: rgba(var(--theme-rgb-b), 0.42);
  outline: 0;
  transform: translateY(-1px);
  box-shadow:
    0 0 0 3px rgba(var(--theme-rgb-b), 0.1),
    0 18px 34px rgba(var(--theme-rgb-b), 0.16);
}

.detail-placeholder-action-card span {
  width: max-content;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-a), 0.16);
  color: var(--theme-text);
  font-size: 12px;
  font-weight: 900;
}

.detail-placeholder-action-card strong {
  color: #172033;
  font-size: 18px;
}

.detail-placeholder-action-card em {
  color: #63728b;
  font-style: normal;
  line-height: 1.55;
}

.admin-page .crumb {
  color: #4f6df5;
  font-weight: 700;
}

.detail-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.detail-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.detail-breadcrumb a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.detail-breadcrumb a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 2px;
}

.detail-breadcrumb-separator {
  color: var(--muted);
  -webkit-text-fill-color: currentColor;
  font-weight: 400;
}

.admin-page .actions,
.admin-page .panel-head-actions,
.admin-page .guide-actions,
.admin-page .media-actions,
.admin-page .modal-actions {
  flex-wrap: nowrap;
}

.admin-page .actions-topbar {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.admin-page button,
.admin-page input,
.admin-page select,
.admin-page textarea {
  border-radius: var(--radius-sm);
}

.admin-page button {
  border-color: rgba(91, 117, 154, 0.16);
  background: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    0 6px 14px rgba(61, 78, 116, 0.05);
}

.admin-page button:hover {
  border-color: rgba(79, 109, 245, 0.34);
  background: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    0 8px 18px rgba(79, 109, 245, 0.1);
}

.admin-page .btn-primary,
.admin-page .primary,
.admin-page #createConsultationBtn.btn-primary,
.admin-page #patientMergeLinkBtn.btn-primary,
.admin-page .trigger-form button {
  border-color: transparent;
  background: linear-gradient(135deg, #13bfe8, #4f6df5 58%, #7b3ff2);
  color: #ffffff;
  font-weight: 800;
  box-shadow: 0 12px 24px rgba(79, 109, 245, 0.2);
}

.admin-page .btn-primary:hover,
.admin-page .btn-primary:focus-visible,
.admin-page .primary:hover,
.admin-page .primary:focus-visible,
.admin-page #createConsultationBtn.btn-primary:hover,
.admin-page #patientMergeLinkBtn.btn-primary:hover,
.admin-page .trigger-form button:hover {
  border-color: transparent;
  background: linear-gradient(135deg, #20cef4, #4f6df5 58%, #6a31de);
  color: #ffffff;
  box-shadow:
    0 14px 28px rgba(79, 109, 245, 0.22),
    0 0 0 3px rgba(79, 109, 245, 0.12);
}

.admin-page .actions-topbar button,
.admin-page .save-module-btn,
.admin-page .record-edit-request-btn,
.admin-page .ai-fill-module-btn,
.admin-page .primary-soft,
.admin-page #exportAllBtn {
  border-color: rgba(79, 109, 245, 0.2);
  background: linear-gradient(135deg, rgba(19, 191, 232, 0.11), rgba(79, 109, 245, 0.13));
  color: #3854c9;
}

.admin-page .actions-topbar #saveBtn {
  border-color: rgba(79, 109, 245, 0.2);
  background: linear-gradient(135deg, rgba(19, 191, 232, 0.11), rgba(79, 109, 245, 0.13));
  color: #3854c9;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    color 0.18s ease,
    transform 0.18s ease;
}

.admin-page .actions-topbar #saveBtn:not(.needs-save):hover,
.admin-page .actions-topbar #saveBtn:not(.needs-save):focus-visible {
  border-color: rgba(79, 109, 245, 0.34);
  background: linear-gradient(135deg, rgba(19, 191, 232, 0.15), rgba(79, 109, 245, 0.18));
  color: #2949c7;
  box-shadow: 0 8px 18px rgba(79, 109, 245, 0.12);
}

.admin-page .actions-topbar #saveBtn.needs-save {
  border-color: rgba(220, 38, 38, 0.62);
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #ffffff;
  box-shadow:
    0 10px 20px rgba(220, 38, 38, 0.2),
    0 0 0 2px rgba(220, 38, 38, 0.18);
}

.admin-page .actions-topbar #saveBtn.needs-save:hover,
.admin-page .actions-topbar #saveBtn.needs-save:focus-visible {
  border-color: rgba(185, 28, 28, 0.72);
  background: linear-gradient(135deg, #dc2626, #b91c1c);
  color: #ffffff;
  box-shadow:
    0 12px 22px rgba(220, 38, 38, 0.22),
    0 0 0 3px rgba(220, 38, 38, 0.16);
}

.admin-page input,
.admin-page select,
.admin-page textarea {
  border-color: rgba(91, 117, 154, 0.16);
  background: #ffffff;
  color: var(--text);
  box-shadow: inset 0 1px 2px rgba(61, 78, 116, 0.03);
}

.admin-page textarea {
  line-height: 1.68;
}

.admin-page input:focus-visible,
.admin-page select:focus-visible,
.admin-page textarea:focus-visible,
.admin-page button:focus-visible {
  outline: 3px solid rgba(79, 109, 245, 0.16);
  border-color: #4f6df5;
}

.admin-page .feature-view,
.admin-page .detail,
.admin-page .case-module-panels,
.admin-page .case-module-pane {
  gap: 16px;
}

.admin-page .feature-panel,
.admin-page .panel,
.admin-page .summary-strip > .summary-field,
.admin-page .case-header,
.admin-page .case-module-nav,
.admin-page .report-chooser,
.admin-page .report-guide,
.admin-page .media-transcript-side,
.admin-page .approval-check-card,
.admin-page .event-item,
.admin-page .file-entry,
.admin-page .stat-card,
.admin-page .modal-card {
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: 0 14px 34px rgba(61, 78, 116, 0.08);
}

.admin-page .feature-panel,
.admin-page .panel {
  padding: 16px;
}

.admin-page .panel-head {
  min-height: 38px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(91, 117, 154, 0.1);
}

.admin-page .panel-head h3,
.admin-page .feature-panel h3 {
  color: #13283a;
}

.admin-page .case-header {
  align-items: center !important;
  flex-direction: row !important;
  padding: 16px;
  border-left: 4px solid #4f6df5;
  background:
    linear-gradient(90deg, rgba(79, 109, 245, 0.06), transparent 38%),
    #ffffff;
}

.admin-page .case-status,
.admin-page .risk-pill,
.admin-page .status-pill,
.admin-page #roleBadge,
.admin-page .readonly-badge,
.admin-page .guide-status,
.admin-page .approval-check-card span {
  min-height: 24px;
  border-radius: 999px;
  font-weight: 800;
}

.admin-page .case-metrics {
  width: auto !important;
  grid-template-columns: repeat(3, 82px) !important;
}

.admin-page .case-metrics div {
  border-left-color: rgba(91, 117, 154, 0.12);
}

.admin-page .summary-strip {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  align-items: stretch;
  gap: 10px;
  overflow: visible;
}

.admin-page .summary-strip > .summary-field {
  position: relative;
  min-width: 0;
  min-height: 74px;
  padding: 10px 12px;
  overflow: hidden;
}

.admin-page .summary-strip > .summary-field::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #13bfe8, #4f6df5);
}

.admin-page .summary-strip > .summary-field:nth-child(2)::before {
  background: linear-gradient(90deg, #7b3ff2, #b042f5);
}

.admin-page .summary-strip > .summary-field:nth-child(3)::before {
  background: linear-gradient(90deg, #29c76f, #25d0a7);
}

.admin-page .summary-strip > .summary-field:nth-child(4)::before {
  background: linear-gradient(90deg, #ff8a4c, #ffbd4a);
}

.admin-page .summary-strip > .summary-field:nth-child(5)::before {
  background: linear-gradient(90deg, #13bfe8, #7b3ff2);
}

.admin-page .summary-strip > .summary-field:nth-child(6)::before {
  background: linear-gradient(90deg, #4f6df5, #13bfe8);
}

.admin-page .summary-strip > .summary-field:nth-child(7)::before {
  background: linear-gradient(90deg, #29c76f, #4f6df5);
}

.admin-page .summary-strip > .summary-field:nth-child(8)::before {
  background: linear-gradient(90deg, #7b3ff2, #ff8a4c);
}

.admin-page #summaryMergePatientBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 10px;
  color: #234155;
  font-size: 13px;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.92);
}

.admin-page #summaryMergePatientBtn:hover,
.admin-page #summaryMergePatientBtn:focus-visible {
  border-color: rgba(79, 109, 245, 0.24);
  color: #2949c7;
  background: #ffffff;
}

.admin-page .summary-field-label,
.admin-page .summary-strip .summary-field > span.summary-field-label,
.admin-page .field span,
.admin-page .panel-head span,
.admin-page .filter-field span,
.admin-page .tf-label,
.admin-page .tf-check-group legend {
  color: #627387;
  letter-spacing: 0;
}

.admin-page .summary-visitor-control-label {
  color: #627387;
  font-weight: 800;
  letter-spacing: 0;
}

.admin-page .summary-field-value,
.admin-page .summary-field input.summary-field-value,
.admin-page .summary-field select.summary-field-value,
.admin-page .summary-field strong.summary-field-value {
  color: #152334;
}

.admin-page .summary-grade-class-row {
  grid-template-columns: minmax(0, 1fr) 26px auto;
  gap: 7px;
}

.admin-page .summary-course-row {
  grid-template-columns: 28px auto 28px auto;
  gap: 6px;
}

.admin-page .summary-course-display {
  position: relative;
  z-index: 1;
  gap: 8px;
}

.admin-page .summary-course-line,
.admin-page .summary-course-line span {
  white-space: nowrap;
}

.admin-page .summary-course-line:first-child span {
  color: #152334;
  -webkit-text-fill-color: #152334;
  font-size: 16px;
  font-weight: 850;
}

.admin-page .summary-course-line + .summary-course-line,
.admin-page .summary-course-line + .summary-course-line span {
  color: #627387;
  -webkit-text-fill-color: #627387;
  font-weight: 780;
}

.admin-page .summary-unit-label {
  color: #152334;
  font-weight: 800;
}

.admin-page #summaryEnrollmentYear {
  min-width: 0;
  padding-right: 16px;
  background-position: right 0 center;
}

.admin-page #summaryClassNumber,
.admin-page .summary-course-number {
  min-width: 0;
  letter-spacing: 0;
}

.admin-page .summary-doctor-hint {
  max-width: none;
}

.admin-page .case-module-nav {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  padding: 8px;
}

.admin-page .case-module-btn {
  border-radius: var(--radius-sm);
}

.admin-page .case-module-btn.active {
  border-color: transparent;
  background: linear-gradient(135deg, #13bfe8, #4f6df5 58%, #7b3ff2);
  color: #ffffff;
  box-shadow: 0 12px 22px rgba(79, 109, 245, 0.18);
}

.admin-page .template-doc-panel,
.admin-page .basics-panel,
.admin-page .intake-panel {
  border-left-width: 4px;
}

.admin-page .template-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px 14px;
}

.admin-page .tf-field input,
.admin-page .tf-field textarea,
.admin-page .tf-field select,
.admin-page .basics-form input,
.admin-page .basics-form select {
  background: #ffffff;
}

.admin-page .tf-check-group {
  border-color: rgba(91, 117, 154, 0.12);
  background: #fbfcff;
}

.admin-page .tf-options {
  flex-wrap: wrap;
}

.admin-page .work-grid {
  grid-template-columns: 310px 520px 242px !important;
}

.admin-page .work-grid-counseling {
  grid-template-columns: 338px 748px !important;
}

.admin-page .work-grid-report {
  grid-template-columns: 724px 362px !important;
}

.admin-page .report-chooser {
  grid-template-columns: 230px 1fr 148px !important;
  border-color: rgba(79, 109, 245, 0.14);
  background:
    linear-gradient(135deg, rgba(19, 191, 232, 0.08), rgba(79, 109, 245, 0.08), rgba(255, 138, 76, 0.06)),
    #ffffff;
}

.admin-page .report-guide {
  align-items: center !important;
  flex-direction: row !important;
  border-left-color: #4f6df5;
}

.admin-page .media-transcript-workspace {
  grid-template-columns: 400px minmax(0, 1fr) !important;
}

.admin-page .media-list {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.admin-page .create-consultation-panel {
  width: 100%;
  max-width: 1320px;
}

.admin-page .modal-overlay {
  background: rgba(5, 13, 26, 0.62);
  backdrop-filter: blur(10px);
}

.admin-page .modal-card {
  max-height: 760px;
}

.admin-page .patient-merge-modal {
  width: min(920px, 100%);
  max-height: calc(100dvh - 32px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.admin-page .patient-merge-modal .modal-header,
.admin-page .patient-merge-modal .modal-actions { flex: none; }
.admin-page .patient-merge-modal .patient-merge-body { min-height: 0; overflow-y: auto; display: flex; flex-direction: column; }
.admin-page .patient-merge-modal .patient-merge-body > * { flex-shrink: 0; }
.patient-merge-blockers button { margin: 0 6px 6px 0; }

.admin-page .empty {
  min-height: 500px;
  border-color: rgba(79, 109, 245, 0.14);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 30% 18%, rgba(19, 191, 232, 0.08), transparent 32%),
    #ffffff;
  box-shadow: 0 14px 34px rgba(61, 78, 116, 0.08);
}

.admin-page .progress-bar {
  background: rgba(79, 109, 245, 0.1);
}

.admin-page .progress-bar span,
.admin-page .progress-bar-animated span {
  background: linear-gradient(90deg, #13bfe8, #4f6df5, #7b3ff2, #ff8a4c);
}

.admin-page .toast {
  border: 1px solid rgba(125, 229, 238, 0.18);
  border-radius: var(--radius);
  background: rgba(11, 25, 42, 0.94);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.25);
}

.admin-page .status-pending-basics,
.admin-page .case-status.status-pending-basics {
  background: #fff1e8;
  color: #d45b1f;
}

.admin-page .status-pending-analysis,
.admin-page .case-status.status-pending-analysis {
  background: #e9efff;
  color: #3854c9;
}

.admin-page .status-pending-check,
.admin-page .case-status.status-pending-check {
  background: #e8f8ff;
  color: #0c8db2;
}

.admin-page .status-under-review,
.admin-page .case-status.status-under-review {
  background: #f1eaff;
  color: #6935d8;
}

.admin-page .status-reviewed,
.admin-page .case-status.status-reviewed {
  background: #e7fbf0;
  color: #15824e;
}

.admin-page .status-restored,
.admin-page .case-status.status-restored {
  background: #e8f8ff;
  color: #0c8db2;
}

.admin-page .feature-menu {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(245, 249, 255, 0.92)),
    linear-gradient(135deg, rgba(24, 191, 240, 0.16), rgba(50, 104, 255, 0.12), rgba(255, 138, 61, 0.1));
}

.admin-page .feature-menu-section {
  position: relative;
  overflow: hidden;
  border-color: transparent;
  background:
    linear-gradient(135deg, rgba(24, 191, 240, 0.16), rgba(50, 104, 255, 0.09)),
    rgba(255, 255, 255, 0.76);
}

.admin-page .feature-menu-section:nth-child(2) {
  background:
    linear-gradient(135deg, rgba(50, 104, 255, 0.15), rgba(123, 63, 242, 0.12)),
    rgba(255, 255, 255, 0.78);
}

.admin-page .feature-menu-section:nth-child(3) {
  background:
    linear-gradient(135deg, rgba(40, 201, 111, 0.15), rgba(24, 191, 240, 0.1)),
    rgba(255, 255, 255, 0.78);
}

.admin-page .feature-menu-section:nth-child(4) {
  background:
    linear-gradient(135deg, rgba(255, 138, 61, 0.17), rgba(255, 195, 66, 0.11)),
    rgba(255, 255, 255, 0.78);
}

.admin-page .feature-menu-title {
  color: #32435d;
}

.admin-page .feature-menu button {
  background: rgba(255, 255, 255, 0.64);
  color: #25324b;
}

.admin-page .feature-menu button:hover {
  background: rgba(255, 255, 255, 0.86);
}

.admin-page .feature-menu button.active {
  border-color: transparent;
  background: linear-gradient(135deg, #18bff0, #3268ff 60%, #7b3ff2);
  color: #ffffff;
  box-shadow:
    0 12px 24px rgba(50, 104, 255, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.admin-page .feature-menu button.active::before {
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 0 14px rgba(255, 255, 255, 0.52);
}

.admin-page .feature-menu button.active::after {
  background: #66f2ff;
  box-shadow: 0 0 16px rgba(102, 242, 255, 0.72);
}

.admin-page .sidebar {
  position: relative;
  padding-left: 10px;
  background:
    linear-gradient(90deg, rgba(24, 191, 240, 0.18), transparent 8%),
    radial-gradient(circle at 16% 8%, rgba(24, 191, 240, 0.26), transparent 26%),
    radial-gradient(circle at 86% 28%, rgba(123, 63, 242, 0.16), transparent 24%),
    radial-gradient(circle at 24% 76%, rgba(255, 138, 61, 0.16), transparent 28%),
    linear-gradient(180deg, #fafdff 0%, #edf7ff 42%, #f8f4ff 72%, #fff8ef 100%);
}

.admin-page .sidebar::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  background: linear-gradient(180deg, #18bff0, #3268ff 36%, #7b3ff2 68%, #ff8a3d);
  box-shadow: 0 0 18px rgba(50, 104, 255, 0.28);
  pointer-events: none;
}

.admin-page .brand {
  border-color: rgba(255, 255, 255, 0.68);
  background:
    radial-gradient(circle at 88% 0%, rgba(255, 195, 66, 0.28), transparent 30%),
    linear-gradient(135deg, rgba(24, 191, 240, 0.22), rgba(50, 104, 255, 0.12) 48%, rgba(123, 63, 242, 0.12)),
    rgba(255, 255, 255, 0.84);
  box-shadow:
    0 16px 32px rgba(50, 104, 255, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.admin-page .brand-mark {
  background:
    radial-gradient(circle at 24% 20%, rgba(255, 255, 255, 0.42), transparent 22%),
    linear-gradient(135deg, #18bff0, #3268ff 54%, #7b3ff2 100%);
}

.admin-page .identity-panel {
  position: relative;
  overflow: hidden;
  border-color: rgba(255, 255, 255, 0.68);
  background:
    radial-gradient(circle at 96% 0%, rgba(40, 201, 111, 0.22), transparent 32%),
    linear-gradient(135deg, rgba(24, 191, 240, 0.16), rgba(50, 104, 255, 0.08), rgba(40, 201, 111, 0.12)),
    rgba(255, 255, 255, 0.82);
}

.admin-page .identity-panel::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, #18bff0, #28c96f, #3268ff);
}

.admin-page .toolbar {
  border-color: rgba(255, 255, 255, 0.72);
  background:
    linear-gradient(135deg, rgba(24, 191, 240, 0.16), rgba(50, 104, 255, 0.12), rgba(123, 63, 242, 0.1)),
    rgba(255, 255, 255, 0.82);
}

.admin-page .feature-menu {
  border-color: rgba(255, 255, 255, 0.78);
  background:
    radial-gradient(circle at 90% 0%, rgba(255, 195, 66, 0.2), transparent 24%),
    linear-gradient(135deg, rgba(24, 191, 240, 0.22), rgba(50, 104, 255, 0.14) 45%, rgba(123, 63, 242, 0.15) 72%, rgba(255, 138, 61, 0.12)),
    rgba(255, 255, 255, 0.74);
  box-shadow:
    0 16px 32px rgba(50, 104, 255, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.admin-page .feature-menu-section {
  padding-left: 10px;
  background:
    radial-gradient(circle at 95% 8%, rgba(255, 255, 255, 0.42), transparent 24%),
    linear-gradient(135deg, rgba(24, 191, 240, 0.24), rgba(50, 104, 255, 0.14)),
    rgba(255, 255, 255, 0.72);
  box-shadow:
    inset 4px 0 0 #18bff0,
    0 8px 18px rgba(50, 104, 255, 0.06);
}

.admin-page .feature-menu-section:nth-child(2) {
  background:
    radial-gradient(circle at 95% 8%, rgba(255, 255, 255, 0.4), transparent 24%),
    linear-gradient(135deg, rgba(50, 104, 255, 0.24), rgba(123, 63, 242, 0.2)),
    rgba(255, 255, 255, 0.72);
  box-shadow:
    inset 4px 0 0 #3268ff,
    0 8px 18px rgba(50, 104, 255, 0.08);
}

.admin-page .feature-menu-section:nth-child(3) {
  background:
    radial-gradient(circle at 95% 8%, rgba(255, 255, 255, 0.4), transparent 24%),
    linear-gradient(135deg, rgba(40, 201, 111, 0.25), rgba(24, 191, 240, 0.16)),
    rgba(255, 255, 255, 0.72);
  box-shadow:
    inset 4px 0 0 #28c96f,
    0 8px 18px rgba(40, 201, 111, 0.08);
}

.admin-page .feature-menu-section:nth-child(4) {
  background:
    radial-gradient(circle at 95% 8%, rgba(255, 255, 255, 0.42), transparent 24%),
    linear-gradient(135deg, rgba(255, 138, 61, 0.26), rgba(255, 195, 66, 0.16)),
    rgba(255, 255, 255, 0.72);
  box-shadow:
    inset 4px 0 0 #ff8a3d,
    0 8px 18px rgba(255, 138, 61, 0.08);
}

.admin-page .feature-menu button {
  border-color: rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.72);
}

.admin-page .feature-menu button:hover {
  background: rgba(255, 255, 255, 0.94);
}

.admin-page .feature-menu button.active,
.admin-page .feature-menu button.active:hover,
.admin-page .feature-menu button.active:focus-visible {
  border-color: transparent;
  background: linear-gradient(135deg, #18bff0, #3268ff 60%, #7b3ff2);
  color: #ffffff;
  -webkit-text-fill-color: #ffffff;
  box-shadow:
    0 12px 24px rgba(50, 104, 255, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.admin-page .sidebar-todos {
  border-color: rgba(255, 255, 255, 0.72);
  background:
    radial-gradient(circle at 92% 4%, rgba(255, 255, 255, 0.42), transparent 24%),
    linear-gradient(135deg, rgba(255, 138, 61, 0.2), rgba(255, 195, 66, 0.12), rgba(123, 63, 242, 0.1)),
    rgba(255, 255, 255, 0.78);
}

.admin-page .todo-item {
  border-color: rgba(255, 255, 255, 0.72);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 248, 239, 0.78));
}

.admin-page .record-item.active {
  border-color: transparent;
  background:
    radial-gradient(circle at 88% 0%, rgba(255, 255, 255, 0.28), transparent 26%),
    linear-gradient(135deg, #18bff0, #3268ff 60%, #7b3ff2);
  color: #ffffff;
  box-shadow:
    0 14px 28px rgba(50, 104, 255, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.admin-page .record-item.active:hover,
.admin-page .record-item.active:focus-visible {
  border-color: transparent;
  background:
    radial-gradient(circle at 88% 0%, rgba(255, 255, 255, 0.3), transparent 26%),
    linear-gradient(135deg, #18bff0, #3268ff 60%, #7b3ff2);
  color: #ffffff;
  box-shadow:
    0 16px 30px rgba(50, 104, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.26);
}

.admin-page .record-item.active .record-title,
.admin-page .record-item.active .record-meta,
.admin-page .record-item.active strong,
.admin-page .record-item.active span {
  color: #ffffff;
}

.admin-page .record-item.active .status-pill {
  position: relative;
  z-index: 1;
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.92);
  color: #2949c7;
  -webkit-text-fill-color: #2949c7;
  box-shadow:
    0 8px 18px rgba(18, 31, 68, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.84);
}

.admin-page .record-item.active .status-pill.status-pending-basics {
  background: #fff3e6;
  color: #d45b1f;
  -webkit-text-fill-color: #d45b1f;
}

.admin-page .record-item.active .status-pill.status-pending-analysis {
  background: #edf2ff;
  color: #2949c7;
  -webkit-text-fill-color: #2949c7;
}

.admin-page .record-item.active .status-pill.status-pending-check {
  background: #e8f8ff;
  color: #0c8db2;
  -webkit-text-fill-color: #0c8db2;
}

.admin-page .record-item.active .status-pill.status-under-review {
  background: #f1eaff;
  color: #6935d8;
  -webkit-text-fill-color: #6935d8;
}

.admin-page .record-item.active .status-pill.status-reviewed {
  background: #e7fbf0;
  color: #15824e;
  -webkit-text-fill-color: #15824e;
}

.admin-page .case-module-btn.active:hover,
.admin-page .case-module-btn.active:focus-visible {
  border-color: transparent;
  color: #ffffff;
  box-shadow: 0 14px 26px rgba(50, 104, 255, 0.2);
}

.admin-page .case-header {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-left: 5px solid #3268ff;
  background:
    radial-gradient(circle at 92% 0%, rgba(123, 63, 242, 0.12), transparent 28%),
    linear-gradient(90deg, rgba(50, 104, 255, 0.09), rgba(24, 191, 240, 0.04) 42%, rgba(255, 255, 255, 0.96) 100%),
    #ffffff;
  color: #182033;
  box-shadow:
    0 14px 34px rgba(61, 78, 116, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.admin-page .case-header .case-main h3,
.admin-page .case-header .case-metrics strong {
  color: #182033;
}

.admin-page .case-header .case-main p,
.admin-page .case-header .case-metrics span {
  color: #627387;
}

.admin-page .case-header .case-metrics div {
  border-left-color: rgba(91, 117, 154, 0.14);
}

.admin-page .case-header .case-status {
  border: 1px solid rgba(50, 104, 255, 0.16);
  background: linear-gradient(135deg, rgba(24, 191, 240, 0.12), rgba(50, 104, 255, 0.12));
  color: #2949c7;
}

.admin-page .summary-strip > .summary-field {
  --summary-accent-a: #18bff0;
  --summary-accent-b: #3268ff;
  border: 1px solid rgba(91, 117, 154, 0.12);
  min-height: 96px;
  padding: 14px 14px 12px;
  color: #152334;
  background:
    linear-gradient(135deg, rgba(24, 191, 240, 0.08), rgba(50, 104, 255, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
  box-shadow:
    0 12px 26px rgba(61, 78, 116, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

.admin-page .summary-strip > .summary-field::before {
  inset: 0 0 auto;
  width: auto;
  height: 5px;
  border-radius: var(--radius) var(--radius) 0 0;
  background: linear-gradient(90deg, var(--summary-accent-a), var(--summary-accent-b));
  transform: none;
}

.admin-page .summary-strip > .summary-field:nth-child(2) {
  --summary-accent-a: #7b3ff2;
  --summary-accent-b: #c23df4;
  background:
    linear-gradient(135deg, rgba(123, 63, 242, 0.085), rgba(194, 61, 244, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(3) {
  --summary-accent-a: #28c96f;
  --summary-accent-b: #18bff0;
  background:
    linear-gradient(135deg, rgba(40, 201, 111, 0.085), rgba(24, 191, 240, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(4) {
  --summary-accent-a: #ff8a3d;
  --summary-accent-b: #ffc342;
  background:
    linear-gradient(135deg, rgba(255, 138, 61, 0.09), rgba(255, 195, 66, 0.04) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(5) {
  --summary-accent-a: #3268ff;
  --summary-accent-b: #18bff0;
  background:
    linear-gradient(135deg, rgba(50, 104, 255, 0.085), rgba(24, 191, 240, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(6) {
  --summary-accent-a: #18bff0;
  --summary-accent-b: #28c96f;
  background:
    linear-gradient(135deg, rgba(24, 191, 240, 0.085), rgba(40, 201, 111, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(7) {
  --summary-accent-a: #7b3ff2;
  --summary-accent-b: #3268ff;
  background:
    linear-gradient(135deg, rgba(123, 63, 242, 0.085), rgba(50, 104, 255, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(8) {
  --summary-accent-a: #ff8a3d;
  --summary-accent-b: #7b3ff2;
  background:
    linear-gradient(135deg, rgba(255, 138, 61, 0.085), rgba(123, 63, 242, 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-field-label,
.admin-page .summary-strip .summary-field > span.summary-field-label {
  position: relative;
  z-index: 1;
  color: #627387;
  font-weight: 800;
}

.admin-page .summary-field-value,
.admin-page .summary-field input.summary-field-value,
.admin-page .summary-field select.summary-field-value,
.admin-page .summary-field strong.summary-field-value,
.admin-page .summary-unit-label,
.admin-page .summary-doctor-hint {
  position: relative;
  z-index: 1;
  color: #152334;
  -webkit-text-fill-color: #152334;
}

.admin-page .summary-field select.summary-field-value {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23627085' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
}

.admin-page .summary-field select.summary-field-value option {
  color: #182033;
}

.admin-page .summary-field input.summary-field-value::placeholder {
  color: #94a3b8;
}

.admin-page .summary-field input.summary-field-value:focus,
.admin-page .summary-field select.summary-field-value:focus {
  outline: 2px solid rgba(50, 104, 255, 0.26);
}

.admin-page #summaryMergePatientBtn,
.admin-page #summaryMergePatientBtn:hover,
.admin-page #summaryMergePatientBtn:focus-visible {
  position: relative;
  z-index: 1;
}

.admin-page #summaryMergePatientBtn,
.admin-page #summaryMergePatientBtn:hover,
.admin-page #summaryMergePatientBtn:focus-visible {
  border-color: rgba(91, 117, 154, 0.14);
  background: rgba(255, 255, 255, 0.92) !important;
  color: #2949c7 !important;
  -webkit-text-fill-color: #2949c7;
  box-shadow: 0 8px 16px rgba(61, 78, 116, 0.08);
}

.admin-page .case-module-nav {
  border: 0;
  background:
    linear-gradient(135deg, rgba(24, 191, 240, 0.14), rgba(50, 104, 255, 0.12), rgba(255, 138, 61, 0.1)),
    #ffffff;
}

.admin-page .case-module-btn {
  border-color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.72);
  color: #25324b;
}

.admin-page .case-module-btn:nth-child(1).active {
  background: linear-gradient(135deg, #18bff0, #3268ff);
}

.admin-page .case-module-btn:nth-child(2).active {
  background: linear-gradient(135deg, #3268ff, #7b3ff2);
}

.admin-page .case-module-btn:nth-child(3).active {
  background: linear-gradient(135deg, #7b3ff2, #c23df4);
}

.admin-page .case-module-btn:nth-child(4).active {
  background: linear-gradient(135deg, #28c96f, #18bff0);
}

.admin-page .case-module-btn:nth-child(5).active {
  background: linear-gradient(135deg, #ff8a3d, #3268ff);
}

.admin-page .report-chooser {
  border: 0;
  background:
    radial-gradient(circle at 88% 8%, rgba(255, 195, 66, 0.36), transparent 24%),
    linear-gradient(135deg, #18bff0 0%, #3268ff 54%, #7b3ff2 100%);
  color: #ffffff;
  box-shadow:
    0 16px 34px rgba(50, 104, 255, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.admin-page .report-chooser h3,
.admin-page .report-chooser p,
.admin-page .report-chooser label span {
  color: #ffffff;
}

.admin-page #reportSelect {
  border-color: rgba(255, 255, 255, 0.58);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 22px rgba(24, 32, 51, 0.12);
}

.admin-page .template-doc-panel,
.admin-page .basics-panel,
.admin-page .intake-panel {
  position: relative;
  overflow: hidden;
}

.admin-page .template-doc-panel::before,
.admin-page .basics-panel::before,
.admin-page .intake-panel::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 6px;
  background: linear-gradient(90deg, #18bff0, #3268ff, #7b3ff2);
}

.admin-page .doc-appointment.template-doc-panel::before {
  background: linear-gradient(90deg, #18bff0, #3268ff);
}

.admin-page .doc-cover.template-doc-panel::before {
  background: linear-gradient(90deg, #3268ff, #7b3ff2);
}

.admin-page .doc-counseling.template-doc-panel::before {
  background: linear-gradient(90deg, #28c96f, #18bff0);
}

.admin-page .doc-summary.template-doc-panel::before {
  background: linear-gradient(90deg, #ff8a3d, #ffc342);
}

.admin-page .doc-attachments.template-doc-panel::before {
  background: linear-gradient(90deg, #7b3ff2, #ff8a3d);
}

body.admin-page::before {
  background:
    radial-gradient(circle, rgba(var(--theme-rgb-b), 0.065) 0 1px, transparent 1.6px) 0 0 / 28px 28px,
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.08), transparent 36%, rgba(var(--theme-rgb-b), 0.055) 68%, rgba(var(--theme-rgb-c), 0.045));
}

body.admin-page::after {
  background:
    linear-gradient(118deg, transparent 0 18%, rgba(var(--theme-rgb-a), 0.1) 18.2% 18.8%, transparent 19% 61%, rgba(var(--theme-rgb-b), 0.065) 61.2% 61.9%, transparent 62.1%),
    linear-gradient(22deg, transparent 0 70%, rgba(var(--theme-rgb-c), 0.07) 70.2% 71%, transparent 71.2%);
}

.admin-page .shell {
  background:
    radial-gradient(circle at 82% 0%, rgba(var(--theme-rgb-b), 0.07), transparent 24%),
    linear-gradient(180deg, #f9fbff 0%, #f1f6fc 100%);
}

.admin-page .workspace {
  background:
    radial-gradient(circle at 74% 3%, rgba(var(--theme-rgb-b), 0.075), transparent 26%),
    radial-gradient(circle at 34% 94%, rgba(var(--theme-rgb-a), 0.055), transparent 30%),
    linear-gradient(180deg, #f8fbff 0%, #f1f6fb 100%);
}

.admin-page .ethics-banner {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.96), rgba(248, 251, 255, 0.94)),
    linear-gradient(90deg, rgba(var(--theme-rgb-a), 0.08), rgba(var(--theme-rgb-b), 0.07), rgba(var(--theme-rgb-c), 0.05));
}

.admin-page .feature-menu-section {
  --section-a: #18bff0;
  --section-b: #3268ff;
  --section-c: #7b3ff2;
  --section-rgb-a: 24, 191, 240;
  --section-rgb-b: 50, 104, 255;
  --section-rgb-c: 123, 63, 242;
  background:
    radial-gradient(circle at 95% 8%, rgba(255, 255, 255, 0.42), transparent 24%),
    linear-gradient(135deg, rgba(var(--section-rgb-a), 0.2), rgba(var(--section-rgb-b), 0.12), rgba(var(--section-rgb-c), 0.06)),
    rgba(255, 255, 255, 0.76);
  box-shadow:
    inset 4px 0 0 var(--section-a),
    0 8px 18px rgba(var(--section-rgb-b), 0.06);
}

.admin-page .feature-menu-section[data-feature-theme="case"] {
  --section-a: #3268ff;
  --section-b: #7b3ff2;
  --section-c: #18bff0;
  --section-rgb-a: 50, 104, 255;
  --section-rgb-b: 123, 63, 242;
  --section-rgb-c: 24, 191, 240;
}

.admin-page .feature-menu-section[data-feature-theme="crisis"] {
  --section-a: #ff4d57;
  --section-b: #e71935;
  --section-c: #991124;
  --section-rgb-a: 255, 77, 87;
  --section-rgb-b: 231, 25, 53;
  --section-rgb-c: 153, 17, 36;
  border-color: rgba(231, 25, 53, 0.22);
  background:
    radial-gradient(circle at 94% 8%, rgba(255, 255, 255, 0.5), transparent 24%),
    linear-gradient(135deg, rgba(255, 77, 87, 0.22), rgba(231, 25, 53, 0.14), rgba(153, 17, 36, 0.08)),
    rgba(255, 255, 255, 0.82);
  box-shadow:
    inset 4px 0 0 #ff1f38,
    0 10px 22px rgba(231, 25, 53, 0.12);
}

.admin-page .feature-menu-section[data-feature-theme="teaching"] {
  --section-a: #19c7a8;
  --section-b: #3268ff;
  --section-c: #8a5cf6;
  --section-rgb-a: 25, 199, 168;
  --section-rgb-b: 50, 104, 255;
  --section-rgb-c: 138, 92, 246;
}

.admin-page .feature-menu-section[data-feature-theme="schedule"] {
  --section-a: #28c96f;
  --section-b: #18bff0;
  --section-c: #3268ff;
  --section-rgb-a: 40, 201, 111;
  --section-rgb-b: 24, 191, 240;
  --section-rgb-c: 50, 104, 255;
}

.admin-page .feature-menu-section[data-feature-theme="org"] {
  --section-a: #ff8a3d;
  --section-b: #ffc342;
  --section-c: #f05aa8;
  --section-rgb-a: 255, 138, 61;
  --section-rgb-b: 255, 195, 66;
  --section-rgb-c: 240, 90, 168;
}

.admin-page .feature-menu-section[data-feature-theme="data"] {
  --section-a: #13bfe8;
  --section-b: #3268ff;
  --section-c: #28c96f;
  --section-rgb-a: 19, 191, 232;
  --section-rgb-b: 50, 104, 255;
  --section-rgb-c: 40, 201, 111;
}

.admin-page .feature-menu-section[data-feature-theme] button.active,
.admin-page .feature-menu-section[data-feature-theme] button.active:hover,
.admin-page .feature-menu-section[data-feature-theme] button.active:focus-visible {
  background: linear-gradient(135deg, var(--section-a), var(--section-b) 58%, var(--section-c));
  box-shadow:
    0 12px 24px rgba(var(--section-rgb-b), 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.admin-page .feature-menu-section-solo {
  padding: 10px;
}

.admin-page .feature-menu-section-solo button {
  min-height: 44px;
  font-weight: 1000;
}

.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button {
  border-color: rgba(231, 25, 53, 0.34);
  color: #fff;
  background: linear-gradient(135deg, #ff4d57, #e71935 58%, #991124);
  box-shadow:
    0 12px 24px rgba(231, 25, 53, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.admin-page .feature-menu-title::before {
  background: var(--section-a);
  box-shadow: 0 0 9px rgba(var(--section-rgb-a), 0.42);
}

.admin-page .feature-menu button::before {
  background: linear-gradient(180deg, var(--section-a), var(--section-b));
  box-shadow: 0 0 12px rgba(var(--section-rgb-b), 0.3);
}

.admin-page .feature-menu button:hover {
  border-color: rgba(var(--section-rgb-b), 0.18);
  background: rgba(255, 255, 255, 0.94);
  color: #182033;
}

.admin-page .feature-menu button.active,
.admin-page .feature-menu button.active:hover,
.admin-page .feature-menu button.active:focus-visible {
  background: linear-gradient(135deg, var(--section-a), var(--section-b) 64%, var(--section-c));
  box-shadow:
    0 12px 24px rgba(var(--section-rgb-b), 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.admin-page .feature-menu button.active::after {
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 0 16px rgba(255, 255, 255, 0.72);
}

.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button,
.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button:hover,
.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button:focus-visible,
.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button.active,
.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button.active:hover,
.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button.active:focus-visible {
  border-color: rgba(231, 25, 53, 0.38);
  color: #fff;
  background: linear-gradient(135deg, #ff4d57, #e71935 58%, #991124);
  box-shadow:
    0 12px 24px rgba(231, 25, 53, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button.active {
  animation: crisis-menu-active-pulse 1.8s ease-in-out infinite;
}

@keyframes crisis-menu-active-pulse {
  0%,
  100% {
    box-shadow:
      0 12px 24px rgba(231, 25, 53, 0.2),
      0 0 0 0 rgba(231, 25, 53, 0.18),
      inset 0 1px 0 rgba(255, 255, 255, 0.3);
  }
  50% {
    box-shadow:
      0 16px 30px rgba(231, 25, 53, 0.3),
      0 0 0 4px rgba(231, 25, 53, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.36);
  }
}

@media (prefers-reduced-motion: reduce) {
  .admin-page .feature-menu-section-solo[data-feature-theme="crisis"] button.active {
    animation: none;
  }
}

.admin-page .topbar {
  border-color: rgba(var(--theme-rgb-b), 0.13);
  background:
    radial-gradient(circle at 94% 0%, rgba(var(--theme-rgb-c), 0.08), transparent 28%),
    linear-gradient(90deg, rgba(var(--theme-rgb-a), 0.045), rgba(255, 255, 255, 0.96) 42%, rgba(255, 255, 255, 0.98)),
    #ffffff;
}

.admin-page .crumb,
.admin-page .panel-head-actions button:hover,
.admin-page #summaryMergePatientBtn,
.admin-page #summaryMergePatientBtn:hover,
.admin-page #summaryMergePatientBtn:focus-visible {
  color: var(--theme-text) !important;
  -webkit-text-fill-color: var(--theme-text);
}

.admin-page button:hover {
  border-color: rgba(var(--theme-rgb-b), 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    0 8px 18px rgba(var(--theme-rgb-b), 0.09);
}

.admin-page input:focus-visible,
.admin-page select:focus-visible,
.admin-page textarea:focus-visible,
.admin-page button:focus-visible {
  outline-color: var(--theme-focus);
  border-color: var(--theme-b);
}

.admin-page .btn-primary,
.admin-page .primary,
.admin-page #createConsultationBtn.btn-primary,
.admin-page #patientMergeLinkBtn.btn-primary,
.admin-page .trigger-form button,
.admin-page .sidebar .btn-primary,
.admin-page .sidebar #createConsultationBtn.btn-primary {
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 62%, var(--theme-c));
  box-shadow: 0 12px 24px var(--theme-shadow);
}

.admin-page .btn-primary:hover,
.admin-page .btn-primary:focus-visible,
.admin-page .primary:hover,
.admin-page .primary:focus-visible,
.admin-page #createConsultationBtn.btn-primary:hover,
.admin-page #patientMergeLinkBtn.btn-primary:hover,
.admin-page .trigger-form button:hover {
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 58%, var(--theme-c));
  box-shadow:
    0 14px 28px var(--theme-shadow),
    0 0 0 3px var(--theme-focus);
}

.admin-page .actions-topbar button,
.admin-page .save-module-btn,
.admin-page .record-edit-request-btn,
.admin-page .ai-fill-module-btn,
.admin-page .primary-soft,
.admin-page #exportAllBtn,
.admin-page .actions-topbar #saveBtn {
  border-color: rgba(var(--theme-rgb-b), 0.2);
  background: linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.11), rgba(var(--theme-rgb-b), 0.13));
  color: var(--theme-text);
}

.admin-page .actions-topbar #saveBtn:not(.needs-save):hover,
.admin-page .actions-topbar #saveBtn:not(.needs-save):focus-visible {
  border-color: rgba(var(--theme-rgb-b), 0.34);
  background: linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.15), rgba(var(--theme-rgb-b), 0.18));
  color: var(--theme-text);
  box-shadow: 0 8px 18px rgba(var(--theme-rgb-b), 0.12);
}

.admin-page .feature-panel,
.admin-page .stat-card {
  position: relative;
  overflow: hidden;
}

.admin-page .feature-panel::before,
.admin-page .stat-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c));
}

.admin-page .panel-head,
.admin-page .feature-panel > *,
.admin-page .stat-card > * {
  position: relative;
  z-index: 1;
}

.admin-page .case-header {
  border-left-color: var(--theme-b);
  background:
    radial-gradient(circle at 92% 0%, rgba(var(--theme-rgb-c), 0.1), transparent 28%),
    linear-gradient(90deg, rgba(var(--theme-rgb-a), 0.09), rgba(var(--theme-rgb-b), 0.04) 42%, rgba(255, 255, 255, 0.96) 100%),
    #ffffff;
}

.admin-page .case-header .case-status {
  border-color: rgba(var(--theme-rgb-b), 0.16);
  background: linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.12), rgba(var(--theme-rgb-b), 0.12));
  color: var(--theme-text);
}

.admin-page .record-item.active,
.admin-page .record-item.active:hover,
.admin-page .record-item.active:focus-visible {
  background:
    radial-gradient(circle at 88% 0%, rgba(255, 255, 255, 0.28), transparent 26%),
    linear-gradient(135deg, var(--theme-a), var(--theme-b) 62%, var(--theme-c));
  box-shadow:
    0 14px 28px var(--theme-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.admin-page .record-item.active .status-pill {
  color: var(--theme-text);
  -webkit-text-fill-color: var(--theme-text);
}

.admin-page .summary-strip > .summary-field,
.admin-page .summary-strip > .summary-field:nth-child(2),
.admin-page .summary-strip > .summary-field:nth-child(3),
.admin-page .summary-strip > .summary-field:nth-child(4),
.admin-page .summary-strip > .summary-field:nth-child(5),
.admin-page .summary-strip > .summary-field:nth-child(6),
.admin-page .summary-strip > .summary-field:nth-child(7),
.admin-page .summary-strip > .summary-field:nth-child(8) {
  --summary-accent-a: var(--theme-a);
  --summary-accent-b: var(--theme-b);
  background:
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.07), rgba(var(--theme-rgb-b), 0.035) 54%, rgba(255, 255, 255, 0.96)),
    #ffffff;
}

.admin-page .summary-strip > .summary-field:nth-child(2),
.admin-page .summary-strip > .summary-field:nth-child(6) {
  --summary-accent-a: var(--theme-b);
  --summary-accent-b: var(--theme-c);
}

.admin-page .summary-strip > .summary-field:nth-child(3),
.admin-page .summary-strip > .summary-field:nth-child(7) {
  --summary-accent-a: var(--theme-a);
  --summary-accent-b: var(--theme-c);
}

.admin-page .summary-strip > .summary-field:nth-child(4),
.admin-page .summary-strip > .summary-field:nth-child(8) {
  --summary-accent-a: var(--theme-b);
  --summary-accent-b: var(--theme-a);
}

.admin-page .summary-strip > .summary-field::before,
.admin-page .summary-strip > .summary-field:nth-child(2)::before,
.admin-page .summary-strip > .summary-field:nth-child(3)::before,
.admin-page .summary-strip > .summary-field:nth-child(4)::before,
.admin-page .summary-strip > .summary-field:nth-child(5)::before,
.admin-page .summary-strip > .summary-field:nth-child(6)::before,
.admin-page .summary-strip > .summary-field:nth-child(7)::before,
.admin-page .summary-strip > .summary-field:nth-child(8)::before {
  background: linear-gradient(90deg, var(--summary-accent-a), var(--summary-accent-b)) !important;
}

.admin-page .summary-field input.summary-field-value:focus,
.admin-page .summary-field select.summary-field-value:focus {
  outline-color: var(--theme-focus);
}

.admin-page #summaryMergePatientBtn,
.admin-page #summaryMergePatientBtn:hover,
.admin-page #summaryMergePatientBtn:focus-visible {
  border-color: rgba(var(--theme-rgb-b), 0.16);
}

.admin-page .case-module-nav {
  background:
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.12), rgba(var(--theme-rgb-b), 0.1), rgba(var(--theme-rgb-c), 0.06)),
    #ffffff;
}

.admin-page .case-module-btn.active,
.admin-page .case-module-btn:nth-child(1).active,
.admin-page .case-module-btn:nth-child(2).active,
.admin-page .case-module-btn:nth-child(3).active,
.admin-page .case-module-btn:nth-child(4).active,
.admin-page .case-module-btn:nth-child(5).active,
.admin-page .case-module-btn.active:hover,
.admin-page .case-module-btn.active:focus-visible {
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 62%, var(--theme-c));
  box-shadow: 0 12px 22px var(--theme-shadow);
}

.admin-page .report-chooser {
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  background:
    radial-gradient(circle at 92% 0%, rgba(var(--theme-rgb-c), 0.12), transparent 28%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.09), rgba(var(--theme-rgb-b), 0.06), rgba(255, 255, 255, 0.96)),
    #ffffff;
  color: #182033;
  box-shadow:
    0 14px 32px rgba(61, 78, 116, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.admin-page .report-chooser h3 {
  color: #13283a;
}

.admin-page .report-chooser p,
.admin-page .report-chooser label span {
  color: #627387;
}

.admin-page #reportSelect {
  border-color: rgba(var(--theme-rgb-b), 0.16);
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(61, 78, 116, 0.08);
}

.admin-page .report-guide {
  border-left-color: var(--theme-b);
}

.admin-page .template-doc-panel::before,
.admin-page .basics-panel::before,
.admin-page .intake-panel::before,
.admin-page .doc-appointment.template-doc-panel::before,
.admin-page .doc-cover.template-doc-panel::before,
.admin-page .doc-counseling.template-doc-panel::before,
.admin-page .doc-summary.template-doc-panel::before,
.admin-page .doc-attachments.template-doc-panel::before {
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c));
}

.admin-page .progress-bar {
  background: rgba(var(--theme-rgb-b), 0.1);
}

.admin-page .progress-bar span,
.admin-page .progress-bar-animated span {
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c));
}

body.admin-page[data-active-feature="home"] .workspace {
  background:
    radial-gradient(circle at 88% 4%, rgba(122, 105, 245, 0.11), transparent 25%),
    radial-gradient(circle at 28% 100%, rgba(47, 196, 179, 0.07), transparent 30%),
    linear-gradient(180deg, #f8faff 0%, #f3f6fc 100%);
}

.admin-page .internal-home-page {
  display: grid;
  gap: 18px;
  padding: 0 22px 28px 0;
  color: #16243a;
}

.admin-page .internal-home-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 94px;
  padding: 2px 8px 2px 12px;
}

.admin-page .internal-home-eyebrow {
  margin: 0 0 7px !important;
  color: #5870b7 !important;
  font-size: 11px !important;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.admin-page .internal-home-welcome h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: #13243b;
  font-size: 27px;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.admin-page .internal-home-welcome > div:first-child > p:last-child {
  margin: 8px 0 0;
  color: #718099;
  font-size: 14px;
}

.admin-page .internal-home-wave {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 10px;
  background: linear-gradient(135deg, #fff1ad, #ffd166);
  color: #bd7813;
  font-size: 16px;
  box-shadow: 0 8px 18px rgba(231, 173, 55, 0.2);
  transform: rotate(-8deg);
}

.admin-page .internal-home-date {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid rgba(87, 106, 154, 0.11);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 12px 28px rgba(54, 72, 116, 0.06);
}

.admin-page .internal-home-date span {
  display: inline-grid;
  min-width: 42px;
  min-height: 26px;
  place-items: center;
  border-radius: 999px;
  background: #eef1ff;
  color: #5968d8;
  font-size: 12px;
  font-weight: 900;
}

.admin-page .internal-home-date strong {
  color: #526178;
  font-size: 14px;
  white-space: nowrap;
}

.admin-page .internal-home-password-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 13px 16px;
  border: 1px solid rgba(225, 165, 57, 0.26);
  border-radius: 14px;
  background: linear-gradient(110deg, rgba(255, 249, 229, 0.98), rgba(255, 253, 243, 0.92));
  color: #6f4a16;
  text-align: left;
  box-shadow: 0 10px 26px rgba(154, 112, 31, 0.07);
}

.admin-page .internal-home-password-notice:hover,
.admin-page .internal-home-password-notice:focus-visible {
  border-color: rgba(220, 148, 29, 0.5);
  box-shadow: 0 13px 30px rgba(154, 112, 31, 0.12);
  transform: translateY(-1px);
}

.admin-page .internal-home-password-notice > span {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 10px;
  background: #ffdf8a;
  color: #80510c;
  font-weight: 950;
}

.admin-page .internal-home-password-notice div {
  display: grid;
  gap: 3px;
}

.admin-page .internal-home-password-notice strong {
  font-size: 14px;
}

.admin-page .internal-home-password-notice small {
  color: #98723d;
  font-size: 12px;
}

.admin-page .internal-home-password-notice b {
  color: #a86b12;
  font-size: 13px;
  white-space: nowrap;
}

.admin-page .internal-home-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 18px;
  align-items: start;
}

.admin-page .internal-home-main,
.admin-page .internal-home-side {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.admin-page .internal-home-hero {
  position: relative;
  min-height: 374px;
  overflow: hidden;
  border: 1px solid rgba(102, 111, 198, 0.12);
  border-radius: 18px;
  background: #eef0ff;
  box-shadow:
    0 20px 48px rgba(74, 79, 151, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

.admin-page .internal-home-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 54%;
  pointer-events: none;
  user-select: none;
}

.admin-page .internal-home-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(248, 249, 255, 0.98) 0%, rgba(248, 249, 255, 0.92) 35%, rgba(247, 247, 255, 0.34) 57%, rgba(240, 240, 255, 0.03) 76%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(109, 93, 188, 0.05));
}

.admin-page .internal-home-hero-copy {
  position: relative;
  z-index: 1;
  width: 54%;
  padding: 43px 0 34px 42px;
}

.admin-page .internal-home-hero-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 0 10px;
  border: 1px solid rgba(94, 104, 220, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.7);
  color: #6b68cf;
  font-size: 10px;
  font-weight: 1000;
  letter-spacing: 0.13em;
}

.admin-page .internal-home-hero-copy h3 {
  margin: 17px 0 10px;
  color: #17253d;
  font-size: 34px;
  line-height: 1.3;
  letter-spacing: -0.035em;
}

.admin-page .internal-home-hero-copy > p {
  max-width: 455px;
  margin: 0;
  color: #66758f;
  font-size: 14px;
  line-height: 1.75;
}

.admin-page .internal-home-trust-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 28px;
}

.admin-page .internal-home-trust-list > span {
  display: grid;
  grid-template-columns: 33px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 8px;
  align-items: center;
}

.admin-page .internal-home-trust-list i {
  display: grid;
  grid-row: 1 / 3;
  width: 33px;
  height: 33px;
  place-items: center;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  color: #5673e8;
  font-style: normal;
  font-size: 15px;
  font-weight: 1000;
  box-shadow: 0 9px 20px rgba(83, 91, 168, 0.09);
}

.admin-page .internal-home-trust-list > span:nth-child(2) i {
  color: #8060dc;
}

.admin-page .internal-home-trust-list > span:nth-child(3) i {
  color: #36a98b;
}

.admin-page .internal-home-trust-list strong {
  color: #344158;
  font-size: 12px;
  line-height: 1.25;
}

.admin-page .internal-home-trust-list small {
  color: #8a96a9;
  font-size: 10px;
  line-height: 1.3;
  white-space: nowrap;
}

.admin-page .internal-home-steps,
.admin-page .internal-home-quick,
.admin-page .internal-home-side-card {
  border: 1px solid rgba(88, 107, 151, 0.11);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow:
    0 16px 38px rgba(50, 67, 106, 0.075),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.admin-page .internal-home-steps,
.admin-page .internal-home-quick {
  padding: 20px 22px 22px;
}

.admin-page .internal-home-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 17px;
}

.admin-page .internal-home-section-head > div > span {
  display: block;
  margin-bottom: 4px;
  color: #8794a9;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.admin-page .internal-home-section-head h3 {
  margin: 0;
  color: #1c2a40;
  font-size: 19px;
}

.admin-page .internal-home-text-action {
  min-height: 30px;
  padding: 0 9px;
  border: 0;
  background: transparent;
  color: #5c6ad9;
  font-size: 12px;
  font-weight: 900;
  box-shadow: none;
}

.admin-page .internal-home-text-action:hover,
.admin-page .internal-home-text-action:focus-visible {
  border: 0;
  background: #f0f2ff;
  color: #4858cc;
  box-shadow: none;
}

.admin-page .internal-home-text-action b {
  margin-left: 5px;
}

.admin-page .internal-home-step-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 24px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.admin-page .internal-home-step-grid article {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-height: 104px;
  padding: 15px;
  border: 1px solid rgba(96, 113, 159, 0.1);
  border-radius: 13px;
  background:
    radial-gradient(circle at 96% 0%, rgba(120, 111, 235, 0.06), transparent 32%),
    #fbfcff;
}

.admin-page .internal-home-step-number {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  font-size: 16px;
  font-weight: 1000;
  box-shadow: 0 9px 18px rgba(65, 89, 180, 0.18);
}

.admin-page .step-blue {
  background: linear-gradient(135deg, #62a7f8, #4d6ee9);
}

.admin-page .step-violet {
  background: linear-gradient(135deg, #9a7bf0, #7858d5);
}

.admin-page .step-green {
  background: linear-gradient(135deg, #55cda8, #36aa86);
}

.admin-page .internal-home-step-grid h4 {
  margin: 2px 0 7px;
  color: #243248;
  font-size: 14px;
}

.admin-page .internal-home-step-grid p {
  margin: 0;
  color: #7b879b;
  font-size: 11px;
  line-height: 1.55;
}

.admin-page .internal-home-step-arrow {
  color: #c0c9e6;
  font-style: normal;
  font-size: 32px;
  text-align: center;
}

.admin-page .internal-home-quick-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 11px;
}

.admin-page .internal-home-quick-card {
  position: relative;
  display: grid;
  justify-items: center;
  min-width: 0;
  min-height: 126px;
  padding: 14px 9px 12px;
  border: 1px solid rgba(89, 108, 151, 0.1);
  border-radius: 13px;
  background: #fff;
  color: #334057;
  text-align: center;
  box-shadow: 0 10px 24px rgba(58, 75, 114, 0.055);
}

.admin-page .internal-home-quick-card:hover,
.admin-page .internal-home-quick-card:focus-visible {
  border-color: rgba(95, 103, 217, 0.2);
  background: #fcfcff;
  color: #29374e;
  box-shadow: 0 16px 28px rgba(66, 76, 149, 0.12);
  transform: translateY(-2px);
}

.admin-page .internal-home-quick-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, #e4f1ff, #eef0ff);
  color: #4f76df;
  box-shadow: 0 9px 20px rgba(80, 112, 215, 0.12);
}

.admin-page .quick-todo .internal-home-quick-icon {
  background: linear-gradient(135deg, #eee8ff, #f5efff);
  color: #805ed4;
}

.admin-page .quick-calendar .internal-home-quick-icon {
  background: linear-gradient(135deg, #e1faf3, #eefcf7);
  color: #20ae84;
}

.admin-page .quick-folder .internal-home-quick-icon {
  background: linear-gradient(135deg, #fff0dc, #fff8eb);
  color: #ec8c25;
}

.admin-page .quick-interview .internal-home-quick-icon {
  background: linear-gradient(135deg, #e6efff, #eff4ff);
  color: #477bd9;
}

.admin-page .quick-chart .internal-home-quick-icon {
  background: linear-gradient(135deg, #eee7ff, #f7efff);
  color: #8b59d2;
}

.admin-page .internal-home-quick-icon svg {
  width: 23px;
  height: 23px;
}

.admin-page .internal-home-quick-card strong {
  margin-top: 9px;
  color: inherit;
  font-size: 12px;
  line-height: 1.25;
}

.admin-page .internal-home-quick-card small {
  max-width: 100%;
  margin-top: 4px;
  overflow: hidden;
  color: #8a95a7;
  font-size: 9px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-page .internal-home-quick-card > i {
  position: absolute;
  right: 9px;
  top: 9px;
  color: #c3cad8;
  font-style: normal;
  font-size: 12px;
}

.admin-page .internal-home-side-card {
  padding: 20px;
}

.admin-page .internal-home-side-title {
  display: flex;
  align-items: center;
  gap: 11px;
}

.admin-page .internal-home-side-icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(135deg, #e5edff, #efebff);
  color: #6672df;
  font-size: 17px;
  font-weight: 1000;
}

.admin-page .internal-home-side-title small {
  display: block;
  margin-bottom: 2px;
  color: #9aa5b6;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.admin-page .internal-home-side-title h3 {
  margin: 0;
  color: #253249;
  font-size: 17px;
}

.admin-page .internal-home-overview-list {
  display: grid;
  gap: 7px;
  margin: 17px 0;
}

.admin-page .internal-home-overview-list button {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  min-height: 63px;
  padding: 9px 10px;
  border: 1px solid transparent;
  background: #f9faff;
  text-align: left;
  box-shadow: none;
}

.admin-page .internal-home-overview-list button:hover,
.admin-page .internal-home-overview-list button:focus-visible {
  border-color: rgba(94, 104, 216, 0.14);
  background: #f5f6ff;
  box-shadow: none;
  transform: translateX(2px);
}

.admin-page .overview-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
}

.admin-page .dot-blue {
  background: #6993ef;
  box-shadow: 0 0 0 4px rgba(105, 147, 239, 0.11);
}

.admin-page .dot-violet {
  background: #8d72dd;
  box-shadow: 0 0 0 4px rgba(141, 114, 221, 0.11);
}

.admin-page .dot-green {
  background: #40ba94;
  box-shadow: 0 0 0 4px rgba(64, 186, 148, 0.11);
}

.admin-page .internal-home-overview-list div {
  display: grid;
  gap: 3px;
}

.admin-page .internal-home-overview-list strong {
  color: #344157;
  font-size: 12px;
}

.admin-page .internal-home-overview-list small {
  color: #8b96a7;
  font-size: 10px;
}

.admin-page .internal-home-overview-list b {
  display: grid;
  min-width: 35px;
  height: 30px;
  place-items: center;
  border-radius: 10px;
  background: #fff;
  color: #5966d0;
  font-size: 16px;
  box-shadow: 0 7px 16px rgba(72, 83, 143, 0.08);
}

.admin-page .internal-home-primary-action {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 100%;
  min-height: 42px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, #6677e9, #806bd9);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(104, 102, 215, 0.2);
}

.admin-page .internal-home-primary-action:hover,
.admin-page .internal-home-primary-action:focus-visible {
  border: 0;
  background: linear-gradient(135deg, #596be1, #735bcf);
  color: #fff;
  box-shadow: 0 15px 27px rgba(104, 102, 215, 0.25);
}

.admin-page .internal-home-reminder {
  background:
    radial-gradient(circle at 96% 0%, rgba(111, 97, 219, 0.1), transparent 35%),
    rgba(255, 255, 255, 0.94);
}

.admin-page .internal-home-reminder .internal-home-side-icon {
  background: linear-gradient(135deg, #e6faf3, #eaf7ff);
  color: #2daa87;
}

.admin-page .internal-home-reminder > p {
  margin: 17px 0 13px;
  color: #68768c;
  font-size: 12px;
  line-height: 1.65;
}

.admin-page .internal-home-progress {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf0f6;
}

.admin-page .internal-home-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #59c8a5, #6b83e9);
  box-shadow: 0 4px 10px rgba(89, 143, 206, 0.2);
}

.admin-page .internal-home-reminder > small {
  display: block;
  margin-top: 9px;
  color: #9aa4b5;
  font-size: 9px;
}

.admin-page .internal-home-care {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  gap: 13px;
  background:
    radial-gradient(circle at 8% 0%, rgba(159, 124, 224, 0.11), transparent 34%),
    linear-gradient(135deg, rgba(249, 247, 255, 0.98), rgba(255, 255, 255, 0.96));
}

.admin-page .internal-home-care-mark {
  display: grid;
  width: 43px;
  height: 43px;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, #eee5ff, #f6efff);
  color: #8b66cd;
  font-size: 21px;
  font-weight: 1000;
}

.admin-page .internal-home-care small {
  color: #9a88bd;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.admin-page .internal-home-care h3 {
  margin: 5px 0 7px;
  color: #3f3b55;
  font-size: 14px;
  line-height: 1.45;
}

.admin-page .internal-home-care p {
  margin: 0;
  color: #7e7891;
  font-size: 10px;
  line-height: 1.65;
}

.admin-page .home-dashboard {
  min-height: 560px;
}

.admin-page .home-dashboard-head {
  margin-bottom: 14px;
}

.admin-page .home-stats-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin-bottom: 18px;
}

.admin-page .home-todo-workspace {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.admin-page .home-todo-categories {
  display: grid;
  gap: 10px;
}

.admin-page .home-todo-category {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 14px 16px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.055), rgba(255, 255, 255, 0.96)),
    #ffffff;
  color: #24324a;
  text-align: left;
  box-shadow: 0 10px 22px rgba(61, 78, 116, 0.06);
}

.admin-page .home-todo-category span {
  font-weight: 800;
  line-height: 1.35;
}

.admin-page .home-todo-category strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 30px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.09);
  color: var(--theme-text);
  font-size: 16px;
}

.admin-page .home-todo-category.active,
.admin-page .home-todo-category.active:hover,
.admin-page .home-todo-category.active:focus-visible {
  border-color: transparent;
  background:
    radial-gradient(circle at 92% 8%, rgba(255, 255, 255, 0.28), transparent 24%),
    linear-gradient(135deg, var(--theme-a), var(--theme-b) 62%, var(--theme-c));
  color: #ffffff;
  box-shadow: 0 14px 28px var(--theme-shadow);
}

.admin-page .home-todo-category.active strong {
  background: rgba(255, 255, 255, 0.9);
  color: var(--theme-text);
}

.admin-page .home-todo-results {
  min-height: 330px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.12);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 92% 0%, rgba(var(--theme-rgb-c), 0.09), transparent 26%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.055), rgba(255, 255, 255, 0.98)),
    #ffffff;
  box-shadow: 0 14px 34px rgba(61, 78, 116, 0.08);
  overflow: hidden;
}

.admin-page .home-todo-results-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-bottom: 1px solid rgba(91, 117, 154, 0.1);
}

.admin-page .home-todo-results-head h4 {
  margin: 0;
  color: #13283a;
  font-size: 17px;
}

.admin-page .home-todo-results-head p {
  margin: 5px 0 0;
  color: #627387;
  font-size: 13px;
}

.admin-page .home-todo-results-head > span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.09);
  color: var(--theme-text);
  font-weight: 800;
  white-space: nowrap;
}

.admin-page .home-todo-records {
  display: grid;
  gap: 10px;
  max-height: 540px;
  overflow: auto;
  padding: 14px;
}

.admin-page .home-todo-record {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 74px;
  padding: 12px 14px;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 8px 18px rgba(61, 78, 116, 0.05);
}

.admin-page .home-todo-record-title {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.admin-page .home-todo-record-title strong {
  color: #152334;
  font-size: 15px;
}

.admin-page .home-todo-record-main p {
  margin: 6px 0 0;
  color: #627387;
  font-size: 13px;
  line-height: 1.45;
}

.admin-page .home-todo-record-action {
  min-width: 92px;
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #ffffff;
  font-weight: 800;
  white-space: nowrap;
}

.admin-page .home-todo-record-action:hover,
.admin-page .home-todo-record-action:focus-visible {
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 58%, var(--theme-c));
  color: #ffffff;
  box-shadow: 0 12px 22px var(--theme-shadow);
}

.admin-page .home-todo-empty {
  display: grid;
  place-items: center;
  min-height: 180px;
  padding: 28px;
  color: #627387;
  text-align: center;
}

.admin-page .home-todo-error {
  gap: 8px;
  color: #b42318;
}

@keyframes todoMissingFlash {
  0%,
  100% {
    border-color: rgba(var(--theme-rgb-b), 0.14);
    box-shadow: 0 0 0 rgba(var(--theme-rgb-b), 0);
  }
  25%,
  75% {
    border-color: var(--theme-b);
    box-shadow:
      0 0 0 3px rgba(var(--theme-rgb-b), 0.18),
      0 12px 26px var(--theme-shadow);
  }
}

.admin-page .todo-missing-flash {
  animation: todoMissingFlash 0.9s ease-in-out 2;
}

body.login-page {
  display: grid;
  place-items: center;
  min-height: 100vh;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(19, 191, 232, 0.14), transparent 30%),
    radial-gradient(circle at 88% 8%, rgba(123, 63, 242, 0.1), transparent 28%),
    linear-gradient(180deg, #f8faff 0%, #f2f5fc 54%, #eef3fb 100%);
}

.login-page .login-card {
  position: relative;
  z-index: 1;
  width: 420px;
  padding: 30px;
  overflow: hidden;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow:
    0 24px 58px rgba(61, 78, 116, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.login-page .login-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #13bfe8, #4f6df5, #7b3ff2, #ff8a4c);
}

.login-page .login-card h1 {
  margin: 0 0 8px;
  color: #182033;
  font-size: 24px;
  line-height: 1.25;
}

.login-page .login-card p {
  margin: 0 0 22px;
  color: #77839a;
  font-size: 14px;
}

.login-page .login-card label {
  display: grid;
  gap: 7px;
  margin-bottom: 14px;
}

.login-page .login-card span {
  color: #5b6680;
  font-size: 13px;
  font-weight: 700;
}

.login-page .login-card input {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(91, 117, 154, 0.16);
  border-radius: var(--radius-sm);
  background: #ffffff;
  color: #182033;
  padding: 0 12px;
  box-shadow: inset 0 1px 2px rgba(61, 78, 116, 0.03);
}

.login-page .login-card input:focus-visible {
  outline: 3px solid rgba(79, 109, 245, 0.16);
  border-color: #4f6df5;
}

.login-page .login-card button {
  width: 100%;
  min-height: 44px;
  margin-top: 6px;
  border: 0;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, #13bfe8, #4f6df5 58%, #7b3ff2);
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(79, 109, 245, 0.2);
}

.login-page .login-card button:disabled {
  cursor: not-allowed;
  opacity: 0.62;
}

.login-page .login-error {
  min-height: 1.4em;
  margin-top: 10px;
  color: #c13246;
  font-size: 13px;
}

.login-page .ethics-hint {
  margin-top: 18px;
  padding: 11px 12px;
  border: 1px solid rgba(91, 117, 154, 0.12);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(19, 191, 232, 0.08), rgba(79, 109, 245, 0.08)),
    #fbfcff;
  color: #4b5871;
  font-size: 12px;
  line-height: 1.55;
}

body.admin-page[data-active-feature="case_index"] .case-index-panel,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-panel {
  overflow: visible;
}

body.admin-page[data-active-feature="case_index"] .case-index-panel > .case-index-filters,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-panel > .case-index-filters {
  position: relative;
  z-index: 60;
}

body.admin-page[data-active-feature="case_index"] .case-index-panel > .case-index-table-wrap,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-panel > .case-index-table-wrap {
  position: relative;
  z-index: 1;
}

body.admin-page[data-active-feature="case_index"] .case-filter-combo:focus-within,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo:focus-within {
  z-index: 120;
}

body.admin-page[data-active-feature="case_index"] .case-filter-options,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-options {
  z-index: 200;
}

body.admin-page[data-active-feature="case_index"] .case-filter-option,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-option {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  background: #fff;
  color: #1d2a3d;
  box-shadow: none;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  transform: none;
}

body.admin-page[data-active-feature="case_index"] .case-filter-option:hover,
body.admin-page[data-active-feature="case_index"] .case-filter-option:focus-visible,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-option:hover,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-option:focus-visible {
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  box-shadow: none;
  outline: 0;
  transform: none;
}

body.admin-page[data-active-feature="case_index"] .case-index-filters .filter-field select,
body.admin-page[data-active-feature="case_index"] .case-filter-combo-control,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-filters .filter-field select,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control {
  height: 44px;
  min-height: 44px;
  border: 1px solid rgba(91, 117, 154, 0.16);
  border-radius: 8px;
  background-color: #fff;
  box-shadow:
    inset 0 1px 2px rgba(61, 78, 116, 0.03),
    0 10px 22px rgba(61, 78, 116, 0.045);
}

body.admin-page[data-active-feature="case_index"] .case-index-filters .filter-field select,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-filters .filter-field select {
  appearance: none;
  -webkit-appearance: none;
  padding: 0 46px 0 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M2 2l5 5 5-5' fill='none' stroke='%2325364c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  background-size: 14px 9px;
  color: #162033;
  font-size: 15px;
  font-weight: 800;
  line-height: 44px;
}

body.admin-page[data-active-feature="case_index"] .case-filter-combo-control,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control {
  grid-template-columns: minmax(0, 1fr) 46px;
  padding: 0;
}

body.admin-page[data-active-feature="case_index"] .case-filter-combo-control input,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control input {
  height: 100%;
  min-height: 42px;
  padding: 0 0 0 18px;
  color: #162033;
  font-size: 15px;
  font-weight: 800;
  line-height: 44px;
}

body.admin-page[data-active-feature="case_index"] .case-filter-combo-control input::placeholder,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control input::placeholder {
  color: #162033;
  opacity: 1;
}

body.admin-page[data-active-feature="case_index"] .case-filter-combo-control input[readonly],
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control input[readonly] {
  cursor: pointer;
  caret-color: transparent;
}

body.admin-page[data-active-feature="case_index"] .case-filter-toggle,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  min-width: 46px;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: transparent;
  font-size: 0;
  line-height: 1;
}

body.admin-page[data-active-feature="case_index"] .case-filter-toggle::before,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-toggle::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 14px;
  height: 9px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M2 2l5 5 5-5' fill='none' stroke='%2325364c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 14px 9px;
  transform: translateY(2px);
}

body.admin-page[data-active-feature="case_index"] .case-index-filters .filter-field select:hover,
body.admin-page[data-active-feature="case_index"] .case-filter-combo-control:hover,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-filters .filter-field select:hover,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control:hover {
  border-color: rgba(var(--theme-rgb-b), 0.26);
}

body.admin-page[data-active-feature="case_index"] .case-index-filters .filter-field select:focus-visible,
body.admin-page[data-active-feature="case_index"] .case-filter-combo-control:focus-within,
body.admin-page[data-active-feature="crisis_intervention"] .case-index-filters .filter-field select:focus-visible,
body.admin-page[data-active-feature="crisis_intervention"] .case-filter-combo-control:focus-within {
  border-color: var(--theme-b);
  box-shadow:
    0 0 0 3px rgba(var(--theme-rgb-b), 0.14),
    0 10px 24px rgba(var(--theme-rgb-b), 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.admin-page .crisis-panel {
  border-color: rgba(239, 52, 64, 0.14);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.9)),
    radial-gradient(circle at 6% 0%, rgba(255, 207, 36, 0.16), transparent 28%),
    radial-gradient(circle at 95% 4%, rgba(239, 52, 64, 0.11), transparent 24%);
}

.admin-page .crisis-feature-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.admin-page .crisis-feature-head h3 {
  margin: 0 0 6px;
}

.admin-page .crisis-feature-head .muted-text {
  margin: 0;
}

.admin-page .crisis-safety-chip {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  color: #9a3412;
  background: linear-gradient(135deg, rgba(255, 207, 36, 0.28), rgba(255, 107, 26, 0.16));
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.admin-page .crisis-index-table-wrap .schedule-table th:last-child,
.admin-page .crisis-index-table-wrap .schedule-table td:last-child {
  width: 220px;
}

.admin-page .crisis-action-cell {
  display: grid;
  gap: 8px;
  min-width: 196px;
}

.admin-page .crisis-hold-btn {
  position: relative;
  display: grid;
  min-height: 46px;
  place-items: center;
  overflow: hidden;
  border: 2px solid #171717;
  border-radius: 8px;
  color: #111827;
  background:
    repeating-linear-gradient(
      -45deg,
      #ffce1f 0 12px,
      #ffce1f 12px 22px,
      #151515 22px 34px,
      #151515 34px 44px
    );
  box-shadow: 0 10px 22px rgba(239, 52, 64, 0.18);
  cursor: pointer;
  transform: translateZ(0);
}

.admin-page .crisis-hold-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(239, 52, 64, 0.22);
}

.admin-page .crisis-hold-progress {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  background: rgba(220, 38, 38, 0.88);
  transition: none;
}

.admin-page .crisis-hold-btn.is-holding .crisis-hold-progress {
  width: 100%;
  transition: width var(--hold-duration, 1300ms) linear;
}

.admin-page .crisis-hold-label {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #111827;
  font-size: 16px;
  font-weight: 1000;
  letter-spacing: 0;
}

.admin-page .crisis-modal-overlay,
.admin-page .crisis-alert-overlay {
  background: rgba(8, 12, 24, 0.62);
  backdrop-filter: blur(4px);
}

.admin-page .crisis-contact-modal {
  width: min(880px, calc(100vw - 44px));
  max-height: min(86vh, 760px);
  overflow: auto;
  border-top: 5px solid #ef3440;
}

.admin-page .crisis-case-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.admin-page .crisis-case-summary span,
.admin-page .crisis-alert-case span {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(239, 52, 64, 0.12);
  border-radius: 8px;
  background: rgba(255, 247, 214, 0.52);
  color: #35425d;
  font-size: 12px;
  font-weight: 800;
}

.admin-page .crisis-warning-line {
  display: grid;
  gap: 4px;
  margin: 12px 0 16px;
  padding: 12px;
  border-radius: 8px;
  background:
    linear-gradient(90deg, rgba(239, 52, 64, 0.1), rgba(255, 207, 36, 0.14)),
    #fff;
  color: #7f1d1d;
}

.admin-page .crisis-warning-line span {
  color: #6b7280;
  font-size: 12px;
}

.admin-page .crisis-contact-list {
  display: grid;
  gap: 14px;
}

.admin-page .crisis-contact-group {
  display: grid;
  gap: 8px;
}

.admin-page .crisis-contact-group h4 {
  margin: 0;
  color: #1f2937;
}

.admin-page .crisis-contact-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px;
  border: 1px solid rgba(91, 117, 154, 0.14);
  border-radius: 8px;
  background: #fff;
}

.admin-page .crisis-contact-card strong {
  display: block;
  margin-bottom: 4px;
  color: #172033;
}

.admin-page .crisis-contact-card p {
  margin: 0 0 4px;
  color: #53627a;
  font-size: 13px;
}

.admin-page .crisis-contact-card span {
  color: #8a94a8;
  font-size: 12px;
}

.admin-page .crisis-contact-send {
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid #ef4444;
  border-radius: 8px;
  background: #ef4444;
  color: #fff;
  font-weight: 900;
  cursor: pointer;
}

.admin-page .crisis-contact-send:disabled {
  border-color: rgba(239, 68, 68, 0.28);
  background: rgba(239, 68, 68, 0.42);
  cursor: default;
}

.admin-page .crisis-alert-card {
  width: min(620px, calc(100vw - 38px));
  overflow: hidden;
  border: 1px solid rgba(239, 52, 64, 0.24);
}

.admin-page .crisis-alert-band {
  margin: -20px -20px 16px;
  padding: 12px 20px;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(239, 52, 64, 0.96), rgba(255, 107, 26, 0.94)),
    repeating-linear-gradient(-45deg, transparent 0 14px, rgba(0, 0, 0, 0.22) 14px 28px);
  font-weight: 1000;
}

.admin-page .crisis-alert-case {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0;
}

.admin-page .crisis-alert-message {
  margin: 0 0 16px;
  padding: 12px;
  border-radius: 8px;
  background: #fff7ed;
  color: #7c2d12;
  font-weight: 800;
}

.admin-page .crisis-alert-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

@media (max-width: 720px) {
  .admin-page .crisis-feature-head,
  .admin-page .crisis-contact-card {
    grid-template-columns: 1fr;
    display: grid;
  }

  .admin-page .crisis-case-summary,
  .admin-page .crisis-alert-case {
    grid-template-columns: 1fr;
  }
}

.admin-page .course-teaching-panel {
  display: grid;
  gap: 20px;
}

.admin-page .course-feature-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.admin-page .course-feature-head h3 {
  margin-bottom: 6px;
}

.admin-page .course-feature-head p {
  margin: 0;
  color: #66758d;
  line-height: 1.6;
}

.admin-page .course-record-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(var(--theme-rgb-a), 0.18);
  border-radius: 14px;
  background:
    radial-gradient(circle at 96% 12%, rgba(var(--theme-rgb-c), 0.08), transparent 24%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.08), rgba(var(--theme-rgb-b), 0.04)),
    rgba(255, 255, 255, 0.9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.admin-page .course-record-form label,
.admin-page .course-resource-search label {
  display: grid;
  gap: 7px;
  color: #61708a;
  font-weight: 700;
}

.admin-page .course-record-form input,
.admin-page .course-record-form select,
.admin-page .course-resource-search input,
.admin-page .course-resource-search select {
  min-height: 44px;
  border-color: rgba(182, 198, 218, 0.78);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 18px rgba(31, 52, 84, 0.04);
}

.admin-page .course-record-form textarea {
  min-height: 112px;
  border-color: rgba(182, 198, 218, 0.78);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
}

.admin-page .course-linear-form,
.admin-page .course-upload-form {
  grid-template-columns: 1fr;
}

.admin-page .course-form-row {
  display: grid;
  gap: 14px;
  width: 100%;
}

.admin-page .course-form-row-triple {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-page .course-form-row-halves {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-page .course-form-row-halves > input[type="hidden"] {
  display: none;
}

.admin-page .course-form-row-main,
.admin-page .course-form-row-desc,
.admin-page .course-form-row-topic {
  max-width: none;
  grid-template-columns: minmax(0, 1fr);
}

.admin-page .course-form-row-short {
  max-width: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-page .course-form-row label {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.admin-page .course-form-row-short label {
  grid-column: 1;
}

.admin-page .course-form-row-short input[type="file"] {
  width: 100%;
  max-width: 100%;
}

.admin-page .course-resource-file-field {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
  min-width: 0;
}

.admin-page .course-resource-file-label {
  color: #64748b;
  font-weight: 800;
}

.admin-page .course-resource-file-picker {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.admin-page .course-resource-file-input {
  position: absolute;
  width: 1px !important;
  height: 1px;
  padding: 0 !important;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.admin-page .course-resource-file-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 42px;
  padding: 8px 16px;
  border: 1px solid rgba(var(--theme-rgb-a), 0.24);
  border-radius: 10px;
  background: rgba(var(--theme-rgb-a), 0.1);
  color: var(--theme-text);
  font-weight: 800;
  cursor: pointer;
}

.admin-page .course-resource-file-trigger:hover {
  border-color: rgba(var(--theme-rgb-a), 0.45);
  background: rgba(var(--theme-rgb-a), 0.16);
}

.admin-page .course-resource-file-hint {
  color: #7c8aa5;
  font-size: 13px;
}

.admin-page .course-selected-file-list {
  display: grid;
  gap: 8px;
}

.admin-page .course-selected-file-list[hidden] {
  display: none;
}

.admin-page .course-selected-file-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 9px 12px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
}

.admin-page .course-selected-file-name {
  min-width: 0;
  color: #28364f;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.admin-page .course-selected-file-item button {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 5px 10px;
  border-color: rgba(216, 57, 67, 0.2);
  background: rgba(216, 57, 67, 0.06);
  color: #c93641;
}

.admin-page .course-record-form input[type="file"],
.admin-page .courseware-upload-form input[type="file"] {
  padding: 7px 9px;
  color: #172033;
}

.admin-page .course-record-form input[type="file"]::file-selector-button,
.admin-page .courseware-upload-form input[type="file"]::file-selector-button {
  margin-right: 10px;
  padding: 7px 12px;
  border: 0;
  border-radius: 8px;
  background: rgba(var(--theme-rgb-a), 0.13);
  color: var(--theme-text);
  font-weight: 800;
  cursor: pointer;
}

.admin-page .course-form-wide {
  grid-column: span 2;
}

.admin-page .course-form-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
}

.admin-page .course-form-actions button,
.admin-page .course-resource-search button {
  min-height: 44px;
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  font-weight: 800;
  box-shadow: 0 12px 24px rgba(var(--theme-rgb-b), 0.18);
}

.admin-page .course-upload-progress-inline {
  display: grid;
  gap: 6px;
  margin-top: 2px;
  padding: 0 2px;
  color: #64748b;
}

.admin-page .course-upload-progress-inline[hidden] {
  display: none;
}

.admin-page .course-upload-progress-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
}

.admin-page .course-upload-progress-meta b {
  min-width: 34px;
  font-size: 12px;
  text-align: right;
}

.admin-page .course-upload-progress-track {
  position: relative;
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.2);
}

.admin-page .course-upload-progress-track > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c));
  transition: width 180ms ease;
}

.admin-page .course-upload-progress-track.is-indeterminate > span {
  width: 36% !important;
  animation: course-upload-indeterminate 1.1s ease-in-out infinite;
}

.admin-page .course-upload-progress-inline[data-state="success"] .course-upload-progress-track > span {
  background: linear-gradient(90deg, #20a86f, #45d39b);
}

.admin-page .course-upload-progress-inline[data-state="error"] .course-upload-progress-meta {
  color: #d83943;
}

@keyframes course-upload-indeterminate {
  from {
    transform: translateX(-120%);
  }
  to {
    transform: translateX(300%);
  }
}

.admin-page .course-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.admin-page .course-section-title strong {
  font-size: 17px;
}

.admin-page .course-section-title span {
  color: #71819b;
  font-size: 13px;
}

.admin-page .course-record-list,
.admin-page .course-resource-list {
  display: grid;
  gap: 10px;
}

.admin-page .course-record-filter-bar {
  display: grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(260px, 1.35fr) minmax(160px, 1fr) minmax(150px, 0.9fr) minmax(240px, 1.35fr) auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.14);
  border-radius: 16px;
  background:
    radial-gradient(circle at 96% 0%, rgba(var(--theme-rgb-c), 0.1), transparent 28%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.08), rgba(255, 255, 255, 0.9) 48%, rgba(var(--theme-rgb-b), 0.04)),
    rgba(255, 255, 255, 0.84);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 12px 26px rgba(39, 53, 82, 0.05);
}

.admin-page .course-record-filter-bar label {
  display: grid;
  min-width: 0;
  gap: 7px;
  color: #61708a;
  font-weight: 800;
}

.admin-page .course-record-filter-bar input,
.admin-page .course-record-filter-bar select {
  width: 100%;
  min-height: 42px;
  border-color: rgba(182, 198, 218, 0.78);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 18px rgba(31, 52, 84, 0.04);
}

.admin-page .course-filter-date-range {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.admin-page .course-filter-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.admin-page .course-filter-actions button {
  min-height: 42px;
  min-width: 72px;
  font-weight: 900;
}

.admin-page .course-filter-actions button[type="submit"] {
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  box-shadow: 0 10px 20px rgba(var(--theme-rgb-b), 0.14);
}

.admin-page .course-record-index-wrap {
  overflow: hidden;
  border: 1px solid rgba(202, 212, 226, 0.78);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 24px rgba(33, 49, 80, 0.05);
}

.admin-page .course-record-index-table {
  margin: 0;
}

.admin-page .course-record-index-table th,
.admin-page .course-record-index-table td {
  vertical-align: middle;
}

.admin-page .course-record-index-table tbody tr {
  cursor: pointer;
  transition:
    background 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.admin-page .course-record-index-table tbody tr:hover,
.admin-page .course-record-index-table tbody tr:focus-visible {
  background:
    linear-gradient(90deg, rgba(var(--theme-rgb-a), 0.12), rgba(var(--theme-rgb-b), 0.06)),
    rgba(255, 255, 255, 0.96);
  box-shadow: inset 4px 0 0 var(--theme-a);
  outline: none;
}

.admin-page .course-record-index-table td strong {
  display: block;
  color: #172033;
}

.admin-page .course-record-index-table td span {
  display: block;
  margin-top: 4px;
  color: #71819b;
  font-size: 12px;
  line-height: 1.45;
}

.admin-page .course-record-card,
.admin-page .course-resource-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid rgba(202, 212, 226, 0.78);
  border-radius: 13px;
  background:
    linear-gradient(90deg, rgba(var(--theme-rgb-a), 0.06), rgba(255, 255, 255, 0.95) 38%),
    #fff;
  box-shadow: 0 10px 22px rgba(39, 53, 82, 0.04);
}

.admin-page .course-record-card strong,
.admin-page .course-resource-row strong {
  display: block;
  margin-bottom: 6px;
  color: #172033;
}

.admin-page .course-record-card p,
.admin-page .course-resource-row p {
  margin: 3px 0;
  color: #66758d;
  line-height: 1.55;
}

.admin-page .course-record-meta {
  display: flex;
  min-width: 190px;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  color: #6b7890;
  font-size: 13px;
  text-align: right;
}

.admin-page .course-record-meta a,
.admin-page .course-file-link {
  color: var(--theme-text);
  font-weight: 800;
  text-decoration: none;
}

.admin-page .course-empty {
  padding: 18px;
  border: 1px dashed rgba(var(--theme-rgb-b), 0.28);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.72);
  color: #71819b;
}

.admin-page .course-record-editor-panel,
.admin-page .course-record-detail-panel {
  align-content: start;
}

.admin-page .course-record-detail {
  display: grid;
  gap: 16px;
}

.admin-page .course-record-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.admin-page .course-record-detail-grid > div,
.admin-page .course-record-detail-content,
.admin-page .course-record-detail-attachments {
  padding: 16px;
  border: 1px solid rgba(202, 212, 226, 0.72);
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.08), rgba(255, 255, 255, 0.92)),
    #fff;
  box-shadow: 0 10px 22px rgba(39, 53, 82, 0.04);
}

.admin-page .course-record-detail-grid span,
.admin-page .course-record-detail-content > span {
  display: block;
  margin-bottom: 8px;
  color: #66758d;
  font-size: 13px;
  font-weight: 800;
}

.admin-page .course-record-detail-grid strong {
  color: #172033;
  font-size: 17px;
}

.admin-page .course-record-detail-content p {
  margin: 0;
  color: #3b4658;
  line-height: 1.75;
  white-space: pre-wrap;
}

.admin-page .course-record-detail-attachments {
  display: grid;
  gap: 10px;
}

.admin-page .course-standard-plan-box {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.2);
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 2%, rgba(var(--theme-rgb-b), 0.15), transparent 27%),
    radial-gradient(circle at 8% 100%, rgba(var(--theme-rgb-a), 0.12), transparent 30%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(var(--theme-rgb-b), 0.055) 58%, rgba(var(--theme-rgb-a), 0.075)),
    rgba(255, 255, 255, 0.9);
  box-shadow:
    inset 0 3px 0 rgba(var(--theme-rgb-b), 0.54),
    0 16px 34px rgba(var(--theme-rgb-b), 0.075);
}

.admin-page .course-standard-plan-box .course-section-title {
  margin-bottom: 0;
}

.admin-page .uploaded-course-section,
.admin-page .standard-course-section {
  display: grid;
  gap: 12px;
}

.admin-page .standard-course-section {
  margin-top: 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--theme-rgb-b), 0.16);
}

.admin-page .course-subsection-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.admin-page .course-subsection-title strong {
  color: #273348;
  font-size: 15px;
}

.admin-page .course-subsection-title span {
  color: #71819b;
  font-size: 12px;
  font-weight: 700;
}

.admin-page .uploaded-course-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.admin-page .uploaded-course-card {
  display: grid;
  min-width: 0;
  min-height: 190px;
  align-content: start;
  gap: 9px;
  padding: 15px;
  border: 1px solid rgba(198, 208, 224, 0.82);
  border-radius: 14px;
  background:
    radial-gradient(circle at 90% 8%, rgba(var(--theme-rgb-c), 0.1), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(var(--theme-rgb-a), 0.08));
  box-shadow: 0 10px 24px rgba(33, 49, 80, 0.05);
}

.admin-page .uploaded-course-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.admin-page .uploaded-course-card-head span {
  width: max-content;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-a), 0.12);
  color: var(--theme-text);
  font-size: 12px;
  font-weight: 800;
}

.admin-page .uploaded-course-card-head time {
  overflow: hidden;
  color: #71819b;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-page .uploaded-course-card > strong {
  overflow: hidden;
  color: #172033;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-page .uploaded-course-card > p {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #66758d;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.admin-page .uploaded-course-card .course-resource-filename {
  -webkit-line-clamp: 1;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-page .uploaded-course-card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: auto;
  padding-top: 4px;
}

.admin-page .uploaded-course-card-actions .course-file-link {
  min-width: 0;
  padding: 8px;
  font-size: 12px;
}

.admin-page .uploaded-course-empty {
  grid-column: 1 / -1;
}

.admin-page .course-resource-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.admin-page .course-resource-pagination button {
  min-width: 78px;
  padding: 8px 14px;
  border-color: rgba(var(--theme-rgb-b), 0.24);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--theme-text);
  font-weight: 800;
}

.admin-page .course-resource-pagination button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.admin-page .course-resource-pagination span {
  color: #66758d;
  font-size: 13px;
  font-weight: 700;
}

.admin-page .standard-course-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.admin-page .standard-course-card {
  display: grid;
  min-height: 138px;
  align-content: start;
  gap: 8px;
  padding: 14px;
  text-align: left;
  border: 1px solid rgba(198, 208, 224, 0.82);
  border-radius: 14px;
  background:
    radial-gradient(circle at 90% 8%, rgba(var(--theme-rgb-c), 0.1), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(var(--theme-rgb-a), 0.08));
  box-shadow: 0 10px 24px rgba(33, 49, 80, 0.05);
}

.admin-page .standard-course-card:hover,
.admin-page .standard-course-card.active {
  border-color: rgba(var(--theme-rgb-b), 0.55);
  background:
    radial-gradient(circle at 88% 0%, rgba(var(--theme-rgb-c), 0.2), transparent 30%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.18), rgba(var(--theme-rgb-b), 0.11)),
    #fff;
  color: #172033;
  transform: translateY(-2px);
}

.admin-page .standard-course-card span {
  width: max-content;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-a), 0.12);
  color: var(--theme-text);
  font-size: 12px;
  font-weight: 800;
}

.admin-page .standard-course-card strong {
  font-size: 17px;
}

.admin-page .standard-course-card em {
  color: #64738d;
  font-size: 13px;
  font-style: normal;
  line-height: 1.55;
}

.admin-page .courseware-placeholder {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(var(--theme-rgb-b), 0.18);
  border-radius: 16px;
  background:
    radial-gradient(circle at 10% 0%, rgba(var(--theme-rgb-a), 0.12), transparent 30%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(var(--theme-rgb-c), 0.07)),
    #fff;
}

.admin-page .courseware-placeholder span {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.1);
  color: #3157d7;
  font-size: 12px;
  font-weight: 800;
}

.admin-page .courseware-placeholder h4 {
  margin: 0 0 8px;
  font-size: 24px;
}

.admin-page .courseware-placeholder p {
  margin: 0;
  color: #66758d;
  line-height: 1.7;
}

.admin-page .courseware-frame {
  min-height: 160px;
  padding: 20px;
  border: 1px dashed rgba(var(--theme-rgb-b), 0.34);
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.1), rgba(var(--theme-rgb-b), 0.08)),
    rgba(255, 255, 255, 0.7);
}

.admin-page .courseware-frame-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.admin-page .courseware-empty {
  padding: 16px 18px;
  border: 1px dashed rgba(var(--theme-rgb-b), 0.3);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(var(--theme-rgb-a), 0.08)),
    rgba(255, 255, 255, 0.68);
}

.admin-page .courseware-file-list {
  display: grid;
  gap: 10px;
}

.admin-page .courseware-file-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(198, 209, 226, 0.72);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
}

.admin-page .courseware-file-row strong {
  display: block;
  margin-bottom: 4px;
  color: #172033;
}

.admin-page .courseware-file-row span {
  display: block;
  margin: 0;
  padding: 0;
  background: transparent;
  color: #71819b;
}

.admin-page .courseware-actions,
.admin-page .course-resource-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.admin-page .courseware-actions a {
  min-width: 62px;
  padding: 8px 10px;
  border-radius: 9px;
  background: rgba(var(--theme-rgb-a), 0.12);
  color: var(--theme-text);
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.admin-page .courseware-actions button {
  min-width: 62px;
  padding: 8px 10px;
  border: 1px solid rgba(239, 68, 68, 0.22);
  border-radius: 9px;
  background: rgba(254, 242, 242, 0.92);
  color: #c24141;
  font-weight: 800;
  cursor: pointer;
}

.admin-page .courseware-actions button:hover:not(:disabled) {
  background: #fee2e2;
  border-color: rgba(239, 68, 68, 0.34);
}

.admin-page .courseware-upload-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin-top: 16px;
}

.admin-page .courseware-upload-form label,
.admin-page .courseware-upload-line label {
  display: grid;
  gap: 7px;
  color: #61708a;
  font-weight: 700;
}

.admin-page .courseware-upload-line {
  display: grid;
  min-width: 0;
}

.admin-page .courseware-upload-line > input[type="hidden"] {
  display: none;
}

.admin-page .courseware-upload-form input[type="file"] {
  width: 100%;
  max-width: 100%;
  min-height: 42px;
  border-color: rgba(182, 198, 218, 0.78);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
}

.admin-page .courseware-upload-actions {
  display: flex;
  justify-content: flex-start;
}

.admin-page .courseware-upload-form button {
  min-height: 42px;
  min-width: 118px;
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  font-weight: 800;
}

.admin-page .course-resource-query,
.admin-page .course-upload-box {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(205, 214, 229, 0.76);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.76);
}

.admin-page .course-resource-query {
  border-color: rgba(var(--theme-rgb-a), 0.24);
  background:
    radial-gradient(circle at 7% 0%, rgba(var(--theme-rgb-a), 0.16), transparent 28%),
    radial-gradient(circle at 96% 86%, rgba(var(--theme-rgb-b), 0.08), transparent 30%),
    linear-gradient(135deg, rgba(var(--theme-rgb-a), 0.075), rgba(255, 255, 255, 0.93) 52%, rgba(var(--theme-rgb-a), 0.045)),
    rgba(255, 255, 255, 0.86);
  box-shadow:
    inset 0 3px 0 rgba(var(--theme-rgb-a), 0.54),
    0 14px 30px rgba(var(--theme-rgb-a), 0.065);
}

.admin-page .course-upload-box {
  border-color: rgba(var(--theme-rgb-c), 0.22);
  background:
    radial-gradient(circle at 92% 0%, rgba(var(--theme-rgb-c), 0.16), transparent 27%),
    radial-gradient(circle at 4% 92%, rgba(var(--theme-rgb-b), 0.09), transparent 31%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(var(--theme-rgb-c), 0.065) 54%, rgba(var(--theme-rgb-b), 0.045)),
    rgba(255, 255, 255, 0.86);
  box-shadow:
    inset 0 3px 0 rgba(var(--theme-rgb-c), 0.48),
    0 14px 30px rgba(var(--theme-rgb-c), 0.06);
}

.admin-page .course-standard-plan-box .course-section-title span,
.admin-page .course-resource-query .course-section-title span,
.admin-page .course-upload-box .course-section-title span {
  width: max-content;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 800;
}

.admin-page .course-standard-plan-box .course-section-title span {
  background: rgba(var(--theme-rgb-b), 0.1);
  color: #3157d7;
}

.admin-page .course-resource-query .course-section-title span {
  background: rgba(var(--theme-rgb-a), 0.12);
  color: #118f78;
}

.admin-page .course-upload-box .course-section-title span {
  background: rgba(var(--theme-rgb-c), 0.11);
  color: #6d45d7;
}

.admin-page .course-resource-search {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 140px;
  gap: 12px;
  align-items: end;
}

.admin-page .course-file-link {
  align-self: center;
  min-width: 120px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(var(--theme-rgb-a), 0.12);
  text-align: center;
}

.admin-page .course-resource-filename {
  font-weight: 700;
  word-break: break-all;
}

.admin-page .home-school-cobuild-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid rgba(20, 184, 166, 0.18);
  border-radius: 16px;
  background:
    radial-gradient(circle at 94% 4%, rgba(245, 158, 11, 0.16), transparent 24%),
    linear-gradient(135deg, rgba(20, 184, 166, 0.11), rgba(59, 130, 246, 0.08)),
    rgba(255, 255, 255, 0.88);
  box-shadow: 0 16px 34px rgba(45, 70, 110, 0.06);
}

.admin-page .home-school-cobuild-block span {
  display: inline-flex;
  width: max-content;
  margin-bottom: 7px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(20, 184, 166, 0.12);
  color: #0f766e;
  font-size: 12px;
  font-weight: 900;
}

.admin-page .home-school-cobuild-block strong {
  display: block;
  margin-bottom: 5px;
  color: #172033;
  font-size: 18px;
}

.admin-page .home-school-cobuild-block p {
  margin: 0;
  color: #60708a;
  line-height: 1.6;
}

.admin-page .home-school-cobuild-block button {
  min-width: 138px;
  min-height: 42px;
  border-color: transparent;
  background: linear-gradient(135deg, #14b8a6, #2f6df6);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(20, 184, 166, 0.18);
}

.admin-page .home-school-section {
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(205, 216, 230, 0.82);
  background: transparent;
}

.admin-page .home-school-section .section-title-actions {
  align-items: flex-start;
  margin-bottom: 0;
}

.admin-page .home-school-section .section-title-actions h4 {
  margin: 0 0 6px;
  color: #172033;
  font-size: 16px;
}

.admin-page .home-school-section .section-title-actions .muted-text {
  max-width: 920px;
  margin: 0;
}

.admin-page .home-school-count {
  flex: 0 0 auto;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(var(--theme-rgb-b), 0.1);
  color: #2f5de0;
  font-weight: 900;
}

.admin-page .home-school-filter,
.admin-page .home-school-form-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.admin-page .home-school-filter {
  grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1fr) 128px;
  align-items: end;
}

.admin-page .home-school-filter label,
.admin-page .home-school-parent-form label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: #61708a;
  font-weight: 800;
}

.admin-page .home-school-filter input,
.admin-page .home-school-filter select,
.admin-page .home-school-parent-form input,
.admin-page .home-school-parent-form select {
  width: 100%;
  max-width: none;
  min-height: 42px;
  border-color: rgba(182, 198, 218, 0.78);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
}

.admin-page .home-school-filter button,
.admin-page .home-school-parent-form button.primary {
  min-height: 42px;
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  font-weight: 900;
}

.admin-page .home-school-parent-list {
  display: grid;
  gap: 10px;
  overflow-x: auto;
}

.admin-page .home-school-parent-table {
  min-width: 980px;
  border: 1px solid rgba(207, 216, 230, 0.82);
  border-radius: 10px;
  overflow: hidden;
}

.admin-page .home-school-parent-table thead th {
  background: #f7faf9;
}

.admin-page .home-school-parent-table tbody tr {
  cursor: pointer;
  transition:
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}

.admin-page .home-school-parent-table tbody tr:hover,
.admin-page .home-school-parent-table tbody tr:focus-visible {
  background: rgba(var(--theme-rgb-a), 0.06);
  box-shadow: inset 4px 0 0 var(--theme-a);
  outline: 0;
}

.admin-page .home-school-parent-table td {
  vertical-align: middle;
}

.admin-page .home-school-parent-table td strong {
  display: block;
  color: #172033;
  font-size: 14px;
}

.admin-page .home-school-parent-table td span {
  display: block;
  margin-top: 4px;
  color: #64738d;
  font-size: 12px;
}

.admin-page .home-school-parent-row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.admin-page .home-school-parent-row-actions a,
.admin-page .home-school-parent-row-actions button,
.admin-page .home-school-parent-detail-actions a,
.admin-page .home-school-parent-detail-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: 8px 10px;
  border-radius: 9px;
  border: 1px solid transparent;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
}

.admin-page .home-school-parent-row-actions a,
.admin-page .home-school-parent-detail-actions a {
  background: rgba(var(--theme-rgb-a), 0.12);
  color: #2f5de0;
}

.admin-page .home-school-parent-row-actions button,
.admin-page .home-school-parent-detail-actions button {
  border: 1px solid rgba(239, 68, 68, 0.22);
  background: rgba(254, 242, 242, 0.92);
  color: #c24141;
  cursor: pointer;
}

.admin-page .home-school-parent-detail {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(207, 216, 230, 0.82);
  border-radius: 10px;
  background: #fff;
}

.admin-page .home-school-parent-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.admin-page .home-school-parent-detail-grid > div,
.admin-page .home-school-parent-detail-block {
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid rgba(207, 216, 230, 0.74);
  border-radius: 10px;
  background: rgba(248, 251, 255, 0.78);
}

.admin-page .home-school-parent-detail-grid span,
.admin-page .home-school-parent-detail-block span {
  color: #65748d;
  font-size: 12px;
  font-weight: 800;
}

.admin-page .home-school-parent-detail-grid strong,
.admin-page .home-school-parent-detail-block p {
  margin: 0;
  color: #172033;
  line-height: 1.55;
}

.admin-page .home-school-parent-detail-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-page .home-school-parent-form {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(207, 216, 230, 0.82);
  border-radius: 10px;
  background: #fff;
}

.admin-page .home-school-form-row-wide {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-page .home-school-form-row-wide label:only-child {
  grid-column: 1 / -1;
}

.admin-page .home-school-consent {
  display: flex !important;
  align-items: center;
  gap: 8px !important;
  color: #53647d !important;
}

.admin-page .home-school-consent input {
  width: 16px;
  min-height: 16px;
}

@media (max-width: 1180px) {
  .admin-page .course-record-form,
  .admin-page .course-record-detail-grid,
  .admin-page .uploaded-course-grid,
  .admin-page .standard-course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-page .home-school-cobuild-block {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-page .course-linear-form,
  .admin-page .course-upload-form,
  .admin-page .course-record-filter-bar,
  .admin-page .course-form-row-triple,
  .admin-page .course-form-row-halves,
  .admin-page .course-form-row-short,
  .admin-page .home-school-filter,
  .admin-page .home-school-form-row,
  .admin-page .home-school-form-row-wide {
    grid-template-columns: 1fr;
  }

  .admin-page .course-form-row-short label {
    grid-column: auto;
  }

  .admin-page .course-resource-search,
  .admin-page .courseware-placeholder,
  .admin-page .courseware-upload-form {
    grid-template-columns: 1fr;
  }

  .admin-page .course-record-index-wrap {
    overflow-x: auto;
  }

  .admin-page .course-record-index-table {
    min-width: 920px;
  }

  .admin-page .course-filter-actions {
    justify-content: flex-start;
  }

  .admin-page .home-school-parent-detail-grid {
    grid-template-columns: 1fr;
  }

  .admin-page .home-school-parent-table {
    min-width: 860px;
  }
}

/* Internal home — keep the original shared sidebar unchanged. */
body.admin-page[data-active-feature="home"] .ethics-banner {
  display: none;
}

body.admin-page[data-active-feature="home"] .workspace {
  padding: 0 0 28px 22px;
  background:
    radial-gradient(circle at 90% 2%, rgba(85, 135, 255, 0.1), transparent 28%),
    radial-gradient(circle at 56% 66%, rgba(129, 113, 246, 0.06), transparent 38%),
    linear-gradient(180deg, #fbfcff 0%, #f4f7fc 100%);
}

body.admin-page[data-active-feature="home"] .feature-view {
  gap: 0;
}

body.admin-page[data-active-feature="home"] .internal-home-page {
  display: grid;
  gap: 22px;
  padding: 0 26px 30px 0;
  color: #17253a;
}

body.admin-page[data-active-feature="home"] .internal-home-welcome {
  display: grid;
  grid-template-columns: minmax(330px, auto) auto minmax(280px, 1fr);
  gap: 26px;
  align-items: center;
  min-height: 126px;
  padding: 0 4px 0 16px;
}

body.admin-page[data-active-feature="home"] .internal-home-welcome-copy h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #142137;
  font-size: 27px;
  font-weight: 850;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

body.admin-page[data-active-feature="home"] .internal-home-welcome-copy > p {
  margin: 11px 0 0;
  color: #718098;
  font-size: 14px;
}

body.admin-page[data-active-feature="home"] .internal-home-wave {
  display: inline;
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  font-size: 21px;
  transform: none;
}

body.admin-page[data-active-feature="home"] .internal-home-date-weather {
  display: flex;
  align-items: center;
  gap: 24px;
  align-self: center;
  min-width: 210px;
}

body.admin-page[data-active-feature="home"] .internal-home-date-divider {
  display: block;
  width: 1px;
  height: 64px;
  background: linear-gradient(180deg, transparent, #e1e7f2 18% 82%, transparent);
}

body.admin-page[data-active-feature="home"] .internal-home-date-weather > div {
  display: grid;
  gap: 8px;
}

body.admin-page[data-active-feature="home"] .internal-home-date-weather p {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 0;
  color: #6d7b93;
  font-size: 14px;
}

body.admin-page[data-active-feature="home"] .internal-home-date-weather p strong,
body.admin-page[data-active-feature="home"] .internal-home-date-weather p b {
  font-weight: 650;
}

body.admin-page[data-active-feature="home"] .internal-home-date-weather small {
  color: #6b7890;
  font-size: 13px;
}

body.admin-page[data-active-feature="home"] .internal-home-date-weather small i {
  margin-right: 5px;
  font-style: normal;
}

body.admin-page[data-active-feature="home"] .internal-home-header-actions {
  display: flex;
  justify-self: end;
  align-items: center;
  gap: 16px;
}

body.admin-page[data-active-feature="home"] .internal-home-message-button,
body.admin-page[data-active-feature="home"] .internal-home-user-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  padding: 0 17px;
  border: 1px solid rgba(90, 112, 154, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
  color: #24324a;
  box-shadow: 0 10px 26px rgba(61, 78, 116, 0.06);
}

body.admin-page[data-active-feature="home"] .internal-home-message-button:hover,
body.admin-page[data-active-feature="home"] .internal-home-user-button:hover {
  border-color: rgba(83, 113, 226, 0.18);
  background: #ffffff;
  transform: translateY(-1px);
}

body.admin-page[data-active-feature="home"] .internal-home-message-button > span {
  font-size: 15px;
  filter: grayscale(1);
}

body.admin-page[data-active-feature="home"] .internal-home-message-button > strong,
body.admin-page[data-active-feature="home"] .internal-home-user-button > strong {
  font-size: 13px;
}

body.admin-page[data-active-feature="home"] .internal-home-message-button > b {
  position: absolute;
  top: -8px;
  right: 14px;
  display: grid;
  width: 21px;
  height: 21px;
  place-items: center;
  border: 2px solid #ffffff;
  border-radius: 999px;
  background: #ff4e5c;
  color: #ffffff;
  font-size: 11px;
  line-height: 1;
}

body.admin-page[data-active-feature="home"] .internal-home-user-button {
  padding: 0 14px 0 9px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-wrap {
  position: relative;
}

body.admin-page[data-active-feature="home"] .internal-home-user-avatar {
  display: inline-grid;
  width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #e2e6ec;
  background: #f1f3f6;
  color: #7d8795;
}

body.admin-page[data-active-feature="home"] .internal-home-user-avatar > svg {
  width: 19px;
  height: 19px;
  fill: currentColor;
}

body.admin-page[data-active-feature="home"] .internal-home-user-button > i {
  color: #758199;
  font-size: 14px;
  font-style: normal;
  transition: transform 0.18s ease;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-wrap.is-open .internal-home-user-button {
  border-color: rgba(83, 113, 226, 0.26);
  background: #ffffff;
  box-shadow: 0 12px 30px rgba(56, 75, 124, 0.12);
}

body.admin-page[data-active-feature="home"] .internal-home-user-button[aria-expanded="true"] > i {
  transform: rotate(180deg);
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu {
  position: absolute;
  z-index: 60;
  top: calc(100% + 12px);
  right: 0;
  width: 288px;
  overflow: hidden;
  border: 1px solid rgba(116, 134, 178, 0.16);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow:
    0 24px 56px rgba(45, 61, 102, 0.18),
    0 4px 14px rgba(61, 79, 118, 0.08);
  backdrop-filter: blur(18px);
  animation: internal-home-user-menu-in 0.16s ease-out;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu[hidden] {
  display: none;
}

@keyframes internal-home-user-menu-in {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

body.admin-page[data-active-feature="home"] .internal-home-user-summary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  padding: 17px 17px 14px;
  background: linear-gradient(135deg, rgba(241, 247, 255, 0.94), rgba(250, 247, 255, 0.94));
}

body.admin-page[data-active-feature="home"] .internal-home-user-summary-avatar {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #dde4ee;
  border-radius: 50%;
  background: #f1f3f6;
  color: #7d8795;
}

body.admin-page[data-active-feature="home"] .internal-home-user-summary-avatar svg {
  width: 24px;
  height: 24px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-summary > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

body.admin-page[data-active-feature="home"] .internal-home-user-summary strong {
  overflow: hidden;
  color: #26354f;
  font-size: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-page[data-active-feature="home"] .internal-home-user-summary small {
  overflow: hidden;
  color: #7a889f;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items {
  display: grid;
  gap: 3px;
  padding: 8px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer > button {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  min-height: 54px;
  padding: 8px 10px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #34425c;
  text-align: left;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button:hover,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button:focus-visible {
  background: #f3f7ff;
  color: #365ecb;
  outline: none;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button > span,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer > button > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: #f3f5f8;
  color: #7b879a;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button:hover > span,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button:focus-visible > span {
  background: #eaf1ff;
  color: #5074e4;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items svg,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer svg {
  width: 19px;
  height: 19px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button > div {
  display: grid;
  gap: 3px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items strong,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer strong {
  font-size: 13px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items small {
  color: #8b97aa;
  font-size: 11px;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-items > button > i {
  color: #9aa5b7;
  font-size: 17px;
  font-style: normal;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer {
  padding: 7px 8px 8px;
  border-top: 1px solid #edf0f5;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer > button {
  grid-template-columns: 34px minmax(0, 1fr);
  color: #c34a58;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer > button:hover,
body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer > button:focus-visible {
  background: #fff1f2;
  color: #b82f40;
  outline: none;
}

body.admin-page[data-active-feature="home"] .internal-home-user-menu-footer > button > span {
  background: #fff0f1;
  color: #d25563;
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  width: 100%;
  min-height: 102px;
  padding: 18px 24px;
  border: 1px solid #f3d998;
  border-radius: 20px;
  background:
    linear-gradient(105deg, rgba(255, 248, 222, 0.96), rgba(255, 254, 244, 0.97)),
    #fffbed;
  color: #805619;
  text-align: left;
  box-shadow: 0 12px 30px rgba(131, 99, 33, 0.07);
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice:hover,
body.admin-page[data-active-feature="home"] .internal-home-password-notice:focus-visible {
  border-color: #edc869;
  box-shadow: 0 14px 32px rgba(131, 99, 33, 0.11);
  transform: translateY(-1px);
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice > span {
  display: inline-grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 15px;
  background: #ffda7e;
  color: #8d5b0b;
  font-size: 24px;
  font-weight: 850;
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice div {
  display: grid;
  gap: 6px;
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice strong {
  color: #805619;
  font-size: 18px;
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice small {
  color: #a17739;
  font-size: 14px;
}

body.admin-page[data-active-feature="home"] .internal-home-password-notice b {
  color: #af7013;
  font-size: 15px;
  white-space: nowrap;
}

body.admin-page[data-active-feature="home"] .internal-home-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 26px;
  align-items: start;
}

body.admin-page[data-active-feature="home"] .internal-home-main,
body.admin-page[data-active-feature="home"] .internal-home-side {
  display: grid;
  gap: 22px;
  min-width: 0;
}

body.admin-page[data-active-feature="home"] .internal-home-hero {
  position: relative;
  min-height: 510px;
  overflow: hidden;
  border: 1px solid rgba(105, 123, 171, 0.12);
  border-radius: 18px;
  background: #edf2ff;
  box-shadow:
    0 18px 44px rgba(74, 91, 143, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

body.admin-page[data-active-feature="home"] .internal-home-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.98;
}

body.admin-page[data-active-feature="home"] .internal-home-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(240, 246, 255, 0.62) 0%, rgba(243, 247, 255, 0.38) 32%, rgba(241, 243, 255, 0.08) 62%, transparent 100%),
    linear-gradient(180deg, transparent 0 55%, rgba(244, 247, 255, 0.45) 68%, rgba(242, 245, 252, 0.82) 100%);
}

body.admin-page[data-active-feature="home"] .internal-home-hero-copy {
  position: absolute;
  z-index: 2;
  top: 26px;
  left: 24px;
  max-width: 600px;
}

body.admin-page[data-active-feature="home"] .internal-home-hero-copy h3 {
  margin: 0;
  color: #142238;
  font-size: 36px;
  font-weight: 850;
  letter-spacing: -0.035em;
  line-height: 1.35;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list {
  display: flex;
  gap: 42px;
  align-items: center;
  margin-top: 28px;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list > span {
  display: grid;
  grid-template-columns: 42px auto;
  grid-template-rows: auto auto;
  column-gap: 10px;
  align-items: center;
  min-width: 124px;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list i {
  grid-row: 1 / 3;
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(77, 128, 255, 0.14);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.86);
  font-size: 24px;
  font-style: normal;
  box-shadow: 0 8px 20px rgba(70, 95, 151, 0.08);
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list .trust-blue {
  color: #4088ff;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list .trust-indigo {
  color: #4e78e8;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list .trust-violet {
  color: #8e55e8;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list strong {
  align-self: end;
  color: #38475f;
  font-size: 13px;
}

body.admin-page[data-active-feature="home"] .internal-home-trust-list small {
  align-self: start;
  margin-top: 3px;
  color: #738098;
  font-size: 12px;
}

body.admin-page[data-active-feature="home"] .internal-home-step-grid {
  position: absolute;
  z-index: 3;
  right: 28px;
  bottom: 30px;
  left: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px minmax(0, 1fr) 52px minmax(0, 1fr);
  align-items: center;
}

body.admin-page[data-active-feature="home"] .internal-home-step-grid article {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 154px;
  padding: 24px 16px 20px 90px;
  border: 1px solid rgba(103, 120, 165, 0.13);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.89);
  box-shadow:
    0 16px 32px rgba(66, 81, 124, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
}

body.admin-page[data-active-feature="home"] .internal-home-step-number {
  position: absolute;
  top: 30px;
  left: 34px;
  display: inline-grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 11px;
  color: #ffffff;
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(61, 87, 160, 0.18);
}

body.admin-page[data-active-feature="home"] .internal-home-step-number.step-blue {
  background: linear-gradient(135deg, #66b5ff, #4085ee);
}

body.admin-page[data-active-feature="home"] .internal-home-step-number.step-violet {
  background: linear-gradient(135deg, #a779f2, #7c49db);
}

body.admin-page[data-active-feature="home"] .internal-home-step-number.step-green {
  background: linear-gradient(135deg, #65d9b4, #35b892);
}

body.admin-page[data-active-feature="home"] .internal-home-step-icon {
  position: absolute;
  bottom: 24px;
  left: 31px;
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
}

body.admin-page[data-active-feature="home"] .internal-home-step-icon svg {
  width: 27px;
  height: 27px;
}

body.admin-page[data-active-feature="home"] .step-icon-blue {
  background: #edf5ff;
  color: #5f9dff;
}

body.admin-page[data-active-feature="home"] .step-icon-violet {
  background: #f3edff;
  color: #9a6ce6;
}

body.admin-page[data-active-feature="home"] .step-icon-green {
  background: #ebfaf5;
  color: #42c59f;
}

body.admin-page[data-active-feature="home"] .internal-home-step-grid h4 {
  margin: 0 0 16px;
  color: #26344a;
  font-size: 14px;
  line-height: 1.3;
}

body.admin-page[data-active-feature="home"] .internal-home-step-grid p {
  margin: 0;
  color: #728097;
  font-size: 11px;
  line-height: 1.75;
}

body.admin-page[data-active-feature="home"] .internal-home-step-arrow {
  display: grid;
  place-items: center;
  color: #b0c3ef;
  font-size: 45px;
  font-style: normal;
  font-weight: 300;
}

body.admin-page[data-active-feature="home"] .internal-home-quick {
  display: grid;
  gap: 20px;
  padding: 30px 12px 14px;
  border: 1px solid rgba(104, 122, 165, 0.11);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 16px 38px rgba(66, 81, 124, 0.06);
}

body.admin-page[data-active-feature="home"] .internal-home-quick > h3 {
  margin: 0 0 2px 2px;
  color: #243147;
  font-size: 18px;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 20px;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-card {
  display: grid;
  gap: 13px;
  justify-items: center;
  min-height: 128px;
  padding: 22px 10px 16px;
  border: 1px solid rgba(107, 125, 166, 0.13);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.95);
  color: #314057;
  box-shadow: 0 9px 22px rgba(65, 82, 127, 0.045);
}

body.admin-page[data-active-feature="home"] .internal-home-quick-card:hover,
body.admin-page[data-active-feature="home"] .internal-home-quick-card:focus-visible {
  border-color: rgba(82, 109, 226, 0.25);
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(65, 82, 127, 0.09);
  transform: translateY(-2px);
}

body.admin-page[data-active-feature="home"] .internal-home-quick-icon {
  display: inline-grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 15px;
  background: #eff5ff;
  color: #3e83f4;
}

body.admin-page[data-active-feature="home"] .quick-todo .internal-home-quick-icon {
  background: #f2ecff;
  color: #8658dc;
}

body.admin-page[data-active-feature="home"] .quick-calendar .internal-home-quick-icon {
  background: #eafaf6;
  color: #24b995;
}

body.admin-page[data-active-feature="home"] .quick-folder .internal-home-quick-icon {
  background: #fff5e9;
  color: #f09b2c;
}

body.admin-page[data-active-feature="home"] .quick-interview .internal-home-quick-icon {
  background: #edf5ff;
  color: #4f8cea;
}

body.admin-page[data-active-feature="home"] .quick-chart .internal-home-quick-icon {
  background: #f3edff;
  color: #8b5bd8;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-icon svg {
  width: 29px;
  height: 29px;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-card strong {
  color: #354258;
  font-size: 14px;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-tip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 42px;
  padding: 0 10px;
  border: 1px solid #e8edf7;
  border-radius: 10px;
  background: #f9fbff;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-tip > span {
  font-size: 16px;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-tip p {
  margin: 0;
  color: #7b879d;
  font-size: 12px;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-tip p strong {
  color: #58667d;
}

body.admin-page[data-active-feature="home"] .internal-home-quick-tip button {
  min-height: 28px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: #f0edff;
  color: #6559de;
  font-size: 12px;
  font-weight: 700;
}

body.admin-page[data-active-feature="home"] .internal-home-side {
  grid-template-rows: 250px 242px 250px;
}

body.admin-page[data-active-feature="home"] .internal-home-side-card {
  min-width: 0;
  padding: 25px;
  border: 1px solid rgba(104, 122, 165, 0.11);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 16px 38px rgba(66, 81, 124, 0.06);
}

body.admin-page[data-active-feature="home"] .internal-home-side-title {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

body.admin-page[data-active-feature="home"] .internal-home-side-title h3 {
  margin: 0;
  color: #29364c;
  font-size: 17px;
}

body.admin-page[data-active-feature="home"] .internal-home-side-title > button {
  min-height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #8996ae;
  font-size: 12px;
}

body.admin-page[data-active-feature="home"] .internal-home-side-title > button:hover {
  color: #5570dc;
  transform: none;
}

body.admin-page[data-active-feature="home"] .internal-home-side-icon {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 7px;
  background: #edf4ff;
  color: #4b86e6;
  font-size: 14px;
  font-weight: 800;
}

body.admin-page[data-active-feature="home"] .internal-home-manual-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 148px;
  gap: 12px;
  align-items: center;
  height: calc(100% - 34px);
  padding-top: 10px;
}

body.admin-page[data-active-feature="home"] .internal-home-manual-content strong {
  color: #71819d;
  font-size: 13px;
}

body.admin-page[data-active-feature="home"] .internal-home-manual-content p {
  margin: 10px 0 12px;
  color: #607089;
  font-size: 13px;
  line-height: 1.9;
}

body.admin-page[data-active-feature="home"] .internal-home-manual-content button {
  min-height: 36px;
  padding: 0 18px;
  border: 1px solid #e0e8f6;
  border-radius: 10px;
  background: #ffffff;
  color: #4082ec;
  font-size: 13px;
  font-weight: 750;
  box-shadow: 0 8px 18px rgba(60, 87, 146, 0.06);
}

body.admin-page[data-active-feature="home"] .internal-home-manual-art {
  position: relative;
  height: 150px;
}

body.admin-page[data-active-feature="home"] .manual-page {
  position: absolute;
  z-index: 2;
  top: 22px;
  left: 30px;
  display: grid;
  width: 80px;
  height: 104px;
  place-items: center;
  border: 1px solid rgba(104, 116, 237, 0.18);
  border-radius: 17px;
  background:
    linear-gradient(#8177f0 0 0) 17px 24px / 38px 8px no-repeat,
    linear-gradient(#aaa7f6 0 0) 17px 42px / 48px 6px no-repeat,
    linear-gradient(#c5c3fb 0 0) 17px 58px / 43px 6px no-repeat,
    linear-gradient(150deg, #9e9af7, #6f68e2);
  color: #ffffff;
  box-shadow: 0 18px 28px rgba(94, 87, 211, 0.2);
  transform: rotate(7deg);
}

body.admin-page[data-active-feature="home"] .manual-page i {
  margin-top: 48px;
  font-size: 24px;
  font-style: normal;
}

body.admin-page[data-active-feature="home"] .manual-help {
  position: absolute;
  z-index: 3;
  top: 7px;
  right: 4px;
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #b7bcff, #8d91f6);
  color: #ffffff;
  font-size: 31px;
  font-weight: 800;
  box-shadow: 0 12px 26px rgba(91, 91, 220, 0.18);
}

body.admin-page[data-active-feature="home"] .manual-shadow {
  position: absolute;
  right: 6px;
  bottom: 8px;
  left: 10px;
  height: 30px;
  border-radius: 50%;
  background: rgba(116, 107, 225, 0.16);
  filter: blur(10px);
}

body.admin-page[data-active-feature="home"] .internal-home-notice-list,
body.admin-page[data-active-feature="home"] .internal-home-question-list {
  display: grid;
  gap: 3px;
  margin-top: 19px;
}

body.admin-page[data-active-feature="home"] .internal-home-notice-list button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #46536a;
  text-align: left;
}

body.admin-page[data-active-feature="home"] .internal-home-notice-list button:hover,
body.admin-page[data-active-feature="home"] .internal-home-question-list button:hover {
  color: #506ede;
  transform: translateX(2px);
}

body.admin-page[data-active-feature="home"] .internal-home-notice-list i {
  display: block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}

body.admin-page[data-active-feature="home"] .notice-blue {
  background: #7089f3;
}

body.admin-page[data-active-feature="home"] .notice-violet {
  background: #8f6ceb;
}

body.admin-page[data-active-feature="home"] .notice-orange {
  background: #c89c86;
}

body.admin-page[data-active-feature="home"] .notice-green {
  background: #8db5a7;
}

body.admin-page[data-active-feature="home"] .internal-home-notice-list strong {
  overflow: hidden;
  font-size: 12px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-page[data-active-feature="home"] .internal-home-notice-list time {
  color: #8997af;
  font-size: 11px;
}

body.admin-page[data-active-feature="home"] .internal-home-question-list button {
  display: flex;
  gap: 10px;
  align-items: center;
  min-height: 43px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #445168;
  text-align: left;
}

body.admin-page[data-active-feature="home"] .internal-home-question-list span {
  display: inline-grid;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  place-items: center;
  border: 1px solid #d7e2fb;
  border-radius: 9px;
  background: #edf4ff;
  color: #5786e8;
  font-size: 13px;
  font-weight: 800;
}

body.admin-page[data-active-feature="home"] .internal-home-question-list .support-icon {
  background: #f2f5fb;
  color: #647da8;
}

body.admin-page[data-active-feature="home"] .internal-home-question-list strong {
  font-size: 12px;
  font-weight: 650;
}

body.internal-home-manual-open {
  overflow: hidden;
}

.internal-home-manual-overlay {
  position: fixed;
  inset: 0;
  z-index: 3200;
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(27, 40, 72, 0.38);
  backdrop-filter: blur(10px);
}

.internal-home-manual-dialog {
  width: min(1480px, 100%);
  height: calc(100vh - 32px);
  display: grid;
  grid-template-rows: 58px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(207, 219, 242, 0.95);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(27, 40, 72, 0.3);
}

.internal-home-manual-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 18px 0 22px;
  border-bottom: 1px solid #e7edf8;
  background: linear-gradient(110deg, #f8fbff 0%, #f5f2ff 100%);
}

.internal-home-manual-toolbar > div {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.internal-home-manual-toolbar span {
  color: #8190aa;
  font-size: 13px;
  font-weight: 700;
}

.internal-home-manual-toolbar strong {
  color: #263550;
  font-size: 17px;
}

.internal-home-manual-toolbar button {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  background: #fff;
  color: #5e6f8d;
  font: 400 26px/1 sans-serif;
  cursor: pointer;
  box-shadow: 0 3px 12px rgba(69, 92, 136, 0.12);
}

.internal-home-manual-toolbar button:hover {
  background: #edf3ff;
  color: #3679f6;
}

.internal-home-manual-frame {
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

@media (max-width: 1500px) {
  body.admin-page[data-active-feature="home"] .internal-home-welcome {
    grid-template-columns: minmax(300px, auto) auto minmax(250px, 1fr);
    gap: 18px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-layout {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 20px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-hero {
    min-height: 500px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-hero-copy {
    top: 24px;
    left: 22px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-trust-list {
    gap: 22px;
    margin-top: 32px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-grid {
    right: 20px;
    bottom: 22px;
    left: 20px;
    grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr) 30px minmax(0, 1fr);
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-grid article {
    min-height: 148px;
    padding: 22px 13px 18px 78px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-number {
    left: 24px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-icon {
    left: 21px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-quick-grid {
    gap: 10px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-side-card {
    padding: 25px 22px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-manual-content {
    grid-template-columns: minmax(0, 1fr) 115px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-manual-art {
    transform: scale(0.82);
    transform-origin: center right;
  }
}

@media (max-width: 1180px) {
  body.admin-page[data-active-feature="home"] .internal-home-welcome {
    grid-template-columns: 1fr auto;
    min-height: 112px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-date-weather {
    display: none;
  }

  body.admin-page[data-active-feature="home"] .internal-home-layout {
    grid-template-columns: 1fr;
  }

  body.admin-page[data-active-feature="home"] .internal-home-side {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: none;
  }

  body.admin-page[data-active-feature="home"] .internal-home-quick-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .internal-home-manual-overlay {
    padding: 0;
  }

  .internal-home-manual-dialog {
    width: 100vw;
    height: 100vh;
    grid-template-rows: 52px minmax(0, 1fr);
    border: 0;
    border-radius: 0;
  }

  .internal-home-manual-toolbar {
    padding: 0 10px 0 16px;
  }

  body.admin-page[data-active-feature="home"] .workspace {
    padding-left: 12px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-page {
    padding-right: 12px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-welcome {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 18px 4px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-header-actions {
    justify-self: start;
  }

  body.admin-page[data-active-feature="home"] .internal-home-user-menu {
    right: auto;
    left: 0;
    width: min(288px, calc(100vw - 48px));
  }

  body.admin-page[data-active-feature="home"] .internal-home-password-notice {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.admin-page[data-active-feature="home"] .internal-home-password-notice > b {
    grid-column: 2;
  }

  body.admin-page[data-active-feature="home"] .internal-home-hero {
    min-height: 720px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-hero-copy {
    top: 34px;
    left: 28px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-trust-list {
    display: grid;
    gap: 12px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-grid article {
    min-height: 130px;
  }

  body.admin-page[data-active-feature="home"] .internal-home-step-arrow {
    display: none;
  }

  body.admin-page[data-active-feature="home"] .internal-home-side {
    grid-template-columns: 1fr;
  }

  body.admin-page[data-active-feature="home"] .internal-home-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-page[data-active-feature="home"] .internal-home-quick-tip {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.admin-page[data-active-feature="home"] .internal-home-quick-tip button {
    grid-column: 2;
    justify-self: start;
  }
}

/* One summary template with visit/course/case source scopes. */
.summary-scope-switch select {
  min-width: min(420px, 52vw);
  font-weight: 700;
  color: var(--ink);
}

.summary-scope-switch select:disabled {
  cursor: wait;
  color: var(--muted);
  background: #f2f5f8;
}

.summary-scope-bar-context {
  display: flex;
  min-width: 0;
  flex: 1 1 360px;
  align-items: center;
  gap: 8px;
}

.summary-scope-source-hint {
  min-width: 0;
  line-height: 1.55;
}

.scoped-summary-panel {
  overflow: hidden;
}

.scoped-summary-panel-head {
  align-items: flex-start;
  gap: 16px;
  border-bottom: 1px solid #e5ebf3;
  background: linear-gradient(135deg, #f8fbff, #f6fbf9);
}

.scoped-summary-heading {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.scoped-summary-kicker {
  margin: 0;
  color: #4e6f8d;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.scoped-summary-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}

.scoped-summary-title-row h3 {
  margin: 0;
}

.scoped-summary-source {
  max-width: 780px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.scoped-summary-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.admin-page .scoped-summary-actions {
  flex-wrap: wrap;
}

.scoped-summary-status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 24px;
  padding: 2px 9px;
  border: 1px solid #d6dfeb;
  border-radius: 999px;
  background: #f4f7fa;
  color: #66758b;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.scoped-summary-status--progress {
  border-color: #9fc6f4;
  background: #eef6ff;
  color: #1762ad;
}

.scoped-summary-status--review {
  border-color: #e9c67e;
  background: #fff8e8;
  color: #8b5d08;
}

.scoped-summary-status--confirmed {
  border-color: #9ed8bd;
  background: #edf9f3;
  color: #18724b;
}

.scoped-summary-status--stale,
.scoped-summary-status--warning {
  border-color: #e5b97d;
  background: #fff4e5;
  color: #94540a;
}

.scoped-summary-status--danger {
  border-color: #efb2b2;
  background: #fff0f0;
  color: #ad3030;
}

.scoped-summary-notice {
  margin: 14px 18px 0;
  padding: 10px 12px;
  border: 1px solid #dbe5f0;
  border-radius: 9px;
  background: #f7fafc;
  color: #506176;
  font-size: 12px;
  line-height: 1.6;
}

.scoped-summary-notice--review,
.scoped-summary-notice--warning,
.scoped-summary-notice--stale {
  border-color: #ead3a4;
  background: #fffaef;
  color: #77521a;
}

.scoped-summary-notice--confirmed {
  border-color: #b9dfcd;
  background: #f1faf6;
  color: #28674d;
}

.scoped-summary-notice--danger {
  border-color: #efc1c1;
  background: #fff5f5;
  color: #9a3232;
}

.scoped-summary-progress {
  display: grid;
  gap: 10px;
  margin: 10px 18px 0;
  padding: 12px 14px;
  border: 1px solid #b9d6f7;
  border-radius: 12px;
  background: linear-gradient(135deg, #f3f8ff 0%, #eef5ff 56%, #f7f4ff 100%);
  box-shadow: 0 8px 20px rgba(54, 120, 200, 0.08);
}

.scoped-summary-progress.hidden,
.scoped-summary-progress[hidden] {
  display: none;
}

.scoped-summary-progress-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.scoped-summary-progress-pulse {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #3678c8;
  box-shadow: 0 0 0 5px rgba(54, 120, 200, 0.12);
  animation: scoped-summary-progress-pulse 1.2s ease-in-out infinite;
}

.scoped-summary-progress-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.scoped-summary-progress-copy strong {
  color: #1f5f9f;
  font-size: 13px;
}

.scoped-summary-progress-copy span {
  overflow: hidden;
  color: #60758c;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scoped-summary-progress-head b {
  color: #286db5;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.scoped-summary-progress-track {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #dce8f6;
}

.scoped-summary-progress-track > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3678c8, #6558d9);
  transition: width .45s ease;
}

.scoped-summary-progress-track.is-waiting-model > span {
  background: linear-gradient(90deg, #3678c8, #7b68ee, #23a9c7, #3678c8);
  background-size: 220% 100%;
  animation: scoped-summary-progress-shimmer 1.7s linear infinite;
}

@keyframes scoped-summary-progress-pulse {
  0%,
  100% {
    opacity: .55;
    transform: scale(.86);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}

@keyframes scoped-summary-progress-shimmer {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: -120% 0;
  }
}

.scoped-summary-form-state {
  display: flex;
  min-height: 180px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 28px;
  color: var(--muted);
  text-align: center;
}

.scoped-summary-form-state--error {
  flex-direction: column;
  color: #9a3232;
}

.scoped-summary-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid #cbd8e7;
  border-top-color: #3678c8;
  border-radius: 50%;
  animation: consultation-save-spin .8s linear infinite;
}

.scoped-summary-panel .template-form-root {
  padding-top: 4px;
}

.scoped-summary-panel .template-form-root input:disabled,
.scoped-summary-panel .template-form-root textarea:disabled,
.scoped-summary-panel .template-form-root select:disabled {
  cursor: not-allowed;
}

@media (max-width: 760px) {
  .summary-scope-switch,
  .summary-scope-switch select,
  .summary-scope-bar-context {
    width: 100%;
  }

  .summary-scope-switch {
    align-items: stretch;
    flex-direction: column;
  }

  .summary-scope-switch select {
    min-width: 0;
  }

  .summary-scope-bar-context {
    align-items: flex-start;
  }

  .scoped-summary-panel-head {
    align-items: stretch;
    flex-direction: column;
  }

  .scoped-summary-actions {
    justify-content: flex-start;
  }

  .scoped-summary-progress-copy span {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .scoped-summary-progress-pulse,
  .scoped-summary-progress-track.is-waiting-model > span {
    animation: none;
  }

  .scoped-summary-progress-track > span {
    transition: none;
  }
}

@keyframes consultation-save-spin {
  to {
    transform: rotate(360deg);
  }
}

.admin-page #saveBtn.is-saving,
.admin-page .save-module-btn.is-saving {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #ffffff;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 62%, var(--theme-c));
  border-color: transparent;
  box-shadow: 0 8px 18px var(--theme-shadow);
  cursor: wait;
  opacity: 1;
}

.admin-page #saveBtn.is-saving::before,
.admin-page .save-module-btn.is-saving::before {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border: 2px solid rgba(255, 255, 255, 0.42);
  border-top-color: #ffffff;
  border-radius: 50%;
  content: "";
  animation: consultation-save-spin 0.72s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .admin-page #saveBtn.is-saving::before,
  .admin-page .save-module-btn.is-saving::before {
    animation-duration: 1.8s;
  }
}

/* System announcements — a home subpage with stable list/detail routes. */
body.admin-page[data-active-feature="announcements"] .ethics-banner {
  display: none;
}

body.admin-page[data-active-feature="announcements"] .workspace {
  padding: 0 0 36px 22px;
  background:
    radial-gradient(circle at 92% 0%, rgba(92, 128, 255, 0.12), transparent 28%),
    radial-gradient(circle at 38% 92%, rgba(127, 104, 246, 0.07), transparent 34%),
    linear-gradient(180deg, #fbfcff 0%, #f3f6fc 100%);
}

body.admin-page[data-active-feature="announcements"] .feature-view {
  gap: 0;
}

.system-announcement-page {
  width: min(1180px, calc(100% - 28px));
  display: grid;
  gap: 20px;
  margin: 0 auto;
  padding: 28px 28px 44px 0;
  color: #1b2b45;
}

.system-announcement-page-head,
.system-announcement-detail-head {
  display: grid;
  gap: 20px;
}

.system-announcement-breadcrumb {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #8a98b2;
  font-size: 13px;
  font-weight: 700;
}

.system-announcement-breadcrumb button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #6c82ab;
  font: inherit;
  cursor: pointer;
}

.system-announcement-breadcrumb button:hover {
  color: #377df5;
}

.system-announcement-breadcrumb strong {
  min-width: 0;
  overflow: hidden;
  color: #566681;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-announcement-page-title {
  min-height: 126px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 25px 28px;
  overflow: hidden;
  border: 1px solid rgba(215, 225, 244, 0.92);
  border-radius: 20px;
  background:
    radial-gradient(circle at 90% 20%, rgba(116, 98, 242, 0.12), transparent 27%),
    linear-gradient(120deg, rgba(240, 247, 255, 0.96), rgba(249, 247, 255, 0.98));
  box-shadow: 0 16px 38px rgba(55, 77, 120, 0.08);
}

.system-announcement-title-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid #dbe7ff;
  border-radius: 16px;
  background: #fff;
  color: #4b83f8;
  font-size: 29px;
  line-height: 1;
  box-shadow: 0 10px 22px rgba(69, 112, 205, 0.12);
}

.system-announcement-page-title h2 {
  margin: 0;
  color: #1c2d49;
  font-size: clamp(25px, 2vw, 32px);
}

.system-announcement-page-title p {
  margin: 8px 0 0;
  color: #70809b;
  font-size: 14px;
}

.system-announcement-back-home,
.system-announcement-back-list {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid #dbe5f7;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.9);
  color: #58709a;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(54, 77, 119, 0.06);
}

.system-announcement-back-home:hover,
.system-announcement-back-list:hover {
  border-color: #a9c4fb;
  color: #367af3;
  transform: translateY(-1px);
}

.system-announcement-list-panel {
  overflow: hidden;
  border: 1px solid rgba(217, 225, 240, 0.92);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 18px 44px rgba(44, 65, 104, 0.08);
}

.system-announcement-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px;
  border-bottom: 1px solid #edf1f8;
}

.system-announcement-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.system-announcement-categories button {
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #f4f7fc;
  color: #6a7b98;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
}

.system-announcement-categories button:hover {
  background: #edf3ff;
  color: #477ee4;
}

.system-announcement-categories button.active {
  border-color: #6f92fc;
  background: linear-gradient(120deg, #4f91fa, #745cf3);
  color: #fff;
  box-shadow: 0 7px 16px rgba(82, 105, 229, 0.2);
}

.system-announcement-search {
  width: min(290px, 100%);
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 13px;
  border: 1px solid #dce5f5;
  border-radius: 11px;
  background: #fafcff;
  color: #8292ac;
}

.system-announcement-search:focus-within {
  border-color: #8eb4fa;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(69, 130, 244, 0.1);
}

.system-announcement-search input {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #273853;
  font-size: 13px;
}

.system-announcement-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 24px 10px;
}

.system-announcement-list-head strong {
  font-size: 16px;
}

.system-announcement-list-head span {
  color: #8a98af;
  font-size: 12px;
  font-weight: 700;
}

.system-announcement-list {
  display: grid;
  gap: 10px;
  padding: 8px 16px 20px;
}

.system-announcement-row {
  width: 100%;
  min-height: 104px;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 15px;
  padding: 17px 18px;
  border: 1px solid #edf1f7;
  border-radius: 15px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: 160ms ease;
}

.system-announcement-row:hover {
  border-color: #cbdcff;
  background: linear-gradient(110deg, #fbfdff, #f8f7ff);
  box-shadow: 0 12px 28px rgba(64, 91, 144, 0.1);
  transform: translateY(-2px);
}

.system-announcement-row-mark {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #6c92fb;
  box-shadow: 0 0 0 5px rgba(108, 146, 251, 0.1);
}

.system-announcement-row-mark.notice-violet {
  background: #8769ef;
  box-shadow: 0 0 0 5px rgba(135, 105, 239, 0.1);
}

.system-announcement-row-mark.notice-orange {
  background: #c9967d;
  box-shadow: 0 0 0 5px rgba(201, 150, 125, 0.1);
}

.system-announcement-row-mark.notice-green {
  background: #79ad9e;
  box-shadow: 0 0 0 5px rgba(121, 173, 158, 0.1);
}

.system-announcement-row-copy {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.system-announcement-row-meta {
  display: flex;
  align-items: center;
  gap: 7px;
}

.system-announcement-row-meta b,
.system-announcement-row-meta em {
  padding: 3px 8px;
  border-radius: 999px;
  background: #edf3ff;
  color: #5a7dc0;
  font-size: 11px;
  font-style: normal;
  line-height: 1.25;
}

.system-announcement-row-meta em {
  background: #fff3dd;
  color: #b67a1e;
}

.system-announcement-row-copy > strong {
  overflow: hidden;
  color: #243652;
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-announcement-row-copy > small {
  overflow: hidden;
  color: #77869e;
  font-size: 13px;
  line-height: 1.55;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-announcement-row time {
  color: #8594ac;
  font-size: 13px;
  font-weight: 700;
}

.system-announcement-row > i {
  color: #91a6cb;
  font-size: 23px;
  font-style: normal;
  transition: transform 160ms ease;
}

.system-announcement-row:hover > i {
  color: #4e83ed;
  transform: translateX(3px);
}

.system-announcement-empty {
  min-height: 270px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  color: #8090a9;
  text-align: center;
}

.system-announcement-empty > span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #f0f5ff;
  color: #6790df;
  font-size: 26px;
}

.system-announcement-empty strong {
  color: #3a4b67;
}

.system-announcement-empty p {
  margin: 0;
  font-size: 13px;
}

.system-announcement-detail-head {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.system-announcement-detail-head .system-announcement-breadcrumb {
  overflow: hidden;
}

.system-announcement-article {
  overflow: hidden;
  border: 1px solid rgba(216, 225, 241, 0.95);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(42, 64, 105, 0.09);
}

.system-announcement-article-title {
  padding: 42px clamp(28px, 6vw, 76px) 34px;
  border-bottom: 1px solid #edf1f7;
  background:
    radial-gradient(circle at 84% 14%, rgba(105, 91, 236, 0.09), transparent 25%),
    linear-gradient(180deg, #fbfdff, #f8faff);
  text-align: center;
}

.system-announcement-article-badges {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 14px;
}

.system-announcement-article-badges span,
.system-announcement-article-badges b {
  padding: 4px 10px;
  border-radius: 999px;
  background: #edf3ff;
  color: #5b7fc1;
  font-size: 11px;
}

.system-announcement-article-badges span.notice-violet {
  background: #f0ecff;
  color: #7658d9;
}

.system-announcement-article-badges span.notice-orange {
  background: #fff1e9;
  color: #ac7054;
}

.system-announcement-article-badges span.notice-green {
  background: #eaf7f2;
  color: #5c917f;
}

.system-announcement-article-badges b {
  background: #fff3dc;
  color: #b67719;
}

.system-announcement-article h1 {
  margin: 0;
  color: #1c2c47;
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.35;
}

.system-announcement-article-meta {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 17px;
  color: #8795ac;
  font-size: 12px;
}

.system-announcement-article-body {
  width: min(820px, calc(100% - 48px));
  margin: 0 auto;
  padding: 38px 0 52px;
}

.system-announcement-article-lead {
  margin: 0 0 32px;
  color: #3e506d;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.9;
}

.system-announcement-article-section {
  margin-top: 30px;
}

.system-announcement-article-section h3 {
  position: relative;
  margin: 0 0 14px;
  padding-left: 14px;
  color: #263955;
  font-size: 18px;
}

.system-announcement-article-section h3::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 4px;
  border-radius: 4px;
  background: linear-gradient(180deg, #4f93fb, #7b60ed);
}

.system-announcement-article-section p,
.system-announcement-article-section li {
  color: #53647e;
  font-size: 14px;
  line-height: 1.9;
}

.system-announcement-article-section p {
  margin: 0 0 11px;
}

.system-announcement-article-section ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding-left: 22px;
}

.system-announcement-reminder {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  margin-top: 36px;
  padding: 18px 20px;
  border: 1px solid #f0dba8;
  border-radius: 14px;
  background: linear-gradient(100deg, #fff9e9, #fffdf5);
}

.system-announcement-reminder > span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #ffdf8b;
  color: #9a650d;
  font-size: 19px;
  font-weight: 850;
}

.system-announcement-reminder strong {
  color: #825d1f;
  font-size: 14px;
}

.system-announcement-reminder p {
  margin: 5px 0 0;
  color: #927344;
  font-size: 13px;
  line-height: 1.7;
}

.system-announcement-adjacent {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.system-announcement-adjacent button,
.system-announcement-adjacent-empty {
  min-height: 84px;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 16px 18px;
  border: 1px solid #dfe7f4;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  color: #6c7d98;
  text-align: left;
}

.system-announcement-adjacent button {
  cursor: pointer;
}

.system-announcement-adjacent button:hover {
  border-color: #b9cef8;
  box-shadow: 0 10px 24px rgba(57, 86, 140, 0.09);
  transform: translateY(-1px);
}

.system-announcement-adjacent span {
  font-size: 11px;
  font-weight: 800;
}

.system-announcement-adjacent strong {
  overflow: hidden;
  color: #344661;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-announcement-adjacent .next {
  text-align: right;
}

.system-announcement-adjacent-empty {
  border-style: dashed;
  color: #a0acc0;
  font-size: 12px;
}

.system-announcement-not-found {
  min-height: 460px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  border: 1px solid #dde5f2;
  border-radius: 20px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 44px rgba(44, 65, 104, 0.08);
}

.system-announcement-not-found > span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #fff1e8;
  color: #c17a58;
  font-size: 28px;
  font-weight: 800;
}

.system-announcement-not-found h2,
.system-announcement-not-found p {
  margin: 0;
}

.system-announcement-not-found p {
  color: #7b899f;
  font-size: 13px;
}

.system-announcement-not-found button {
  min-height: 40px;
  margin-top: 6px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(120deg, #4e91fa, #735df1);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 960px) {
  .system-announcement-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .system-announcement-search {
    width: 100%;
  }
}

@media (max-width: 760px) {
  body.admin-page[data-active-feature="announcements"] .workspace {
    padding-left: 12px;
  }

  .system-announcement-page {
    width: 100%;
    padding: 20px 12px 34px 0;
  }

  .system-announcement-page-title {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 20px;
  }

  .system-announcement-back-home {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .system-announcement-toolbar {
    padding: 16px;
  }

  .system-announcement-categories {
    flex-wrap: nowrap;
    padding-bottom: 4px;
    overflow-x: auto;
  }

  .system-announcement-categories button {
    flex: 0 0 auto;
  }

  .system-announcement-row {
    grid-template-columns: 8px minmax(0, 1fr) 16px;
    gap: 11px;
    padding: 15px 13px;
  }

  .system-announcement-row time {
    grid-column: 2;
    justify-self: start;
  }

  .system-announcement-row > i {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .system-announcement-detail-head {
    grid-template-columns: 1fr;
  }

  .system-announcement-back-list {
    justify-self: start;
  }

  .system-announcement-article-title {
    padding: 30px 20px 26px;
    text-align: left;
  }

  .system-announcement-article-badges,
  .system-announcement-article-meta {
    justify-content: flex-start;
  }

  .system-announcement-article-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .system-announcement-article-body {
    width: calc(100% - 36px);
    padding: 28px 0 36px;
  }

  .system-announcement-adjacent {
    grid-template-columns: 1fr;
  }

  .system-announcement-adjacent .next {
    text-align: left;
  }
}

/* Help center — searchable FAQs and structured answers under the home workspace. */
body.admin-page[data-active-feature="help"] .ethics-banner {
  display: none;
}

body.admin-page[data-active-feature="help"] .workspace {
  padding: 0 0 36px 22px;
  background:
    radial-gradient(circle at 91% 0%, rgba(77, 137, 250, 0.12), transparent 27%),
    radial-gradient(circle at 35% 94%, rgba(117, 100, 242, 0.07), transparent 34%),
    linear-gradient(180deg, #fbfcff 0%, #f3f6fc 100%);
}

body.admin-page[data-active-feature="help"] .feature-view {
  gap: 0;
}

.help-center-page {
  width: min(1180px, calc(100% - 28px));
  display: grid;
  gap: 20px;
  margin: 0 auto;
  padding: 28px 28px 44px 0;
  color: #1b2c47;
}

.help-center-page-head {
  display: grid;
  gap: 18px;
}

.help-center-breadcrumb {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  overflow: hidden;
  color: #8a98b2;
  font-size: 13px;
  font-weight: 700;
}

.help-center-breadcrumb button {
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6c82ab;
  font: inherit;
  cursor: pointer;
}

.help-center-breadcrumb button:hover {
  color: #377df5;
}

.help-center-breadcrumb strong {
  min-width: 0;
  overflow: hidden;
  color: #566681;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.help-center-hero {
  min-height: 176px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 24px 28px;
  overflow: hidden;
  border: 1px solid rgba(214, 225, 245, 0.95);
  border-radius: 22px;
  background:
    radial-gradient(circle at 88% 14%, rgba(114, 91, 239, 0.13), transparent 25%),
    radial-gradient(circle at 8% 82%, rgba(80, 156, 250, 0.1), transparent 25%),
    linear-gradient(120deg, rgba(240, 247, 255, 0.98), rgba(249, 247, 255, 0.98));
  box-shadow: 0 17px 42px rgba(53, 75, 117, 0.09);
}

.help-center-hero-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 1px solid #d9e6ff;
  border-radius: 18px;
  background: #fff;
  color: #4f88f6;
  font-size: 30px;
  font-weight: 750;
  box-shadow: 0 10px 24px rgba(69, 112, 205, 0.13);
}

.help-center-hero h2 {
  margin: 0;
  color: #1c2d49;
  font-size: clamp(25px, 2vw, 32px);
}

.help-center-hero p {
  margin: 8px 0 0;
  color: #70809b;
  font-size: 14px;
}

.help-center-manual-button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid #d7e3f8;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  color: #55709f;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(55, 78, 122, 0.07);
}

.help-center-manual-button span {
  color: #4f88f6;
  font-size: 18px;
}

.help-center-manual-button:hover {
  border-color: #a9c5fb;
  color: #3379f2;
  transform: translateY(-1px);
}

.help-center-search {
  grid-column: 1 / -1;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 16px;
  border: 1px solid #d9e4f5;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: #7b8da9;
  box-shadow: 0 7px 20px rgba(57, 80, 123, 0.06);
}

.help-center-search:focus-within {
  border-color: #85b0fa;
  box-shadow: 0 0 0 4px rgba(70, 133, 244, 0.1);
}

.help-center-search > span {
  font-size: 20px;
}

.help-center-search input {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #273853;
  font-size: 14px;
}

.help-center-workspace {
  display: grid;
  grid-template-columns: 246px minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}

.help-center-category-panel,
.help-center-question-panel {
  border: 1px solid rgba(216, 225, 241, 0.95);
  border-radius: 19px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 17px 42px rgba(45, 66, 105, 0.08);
}

.help-center-category-panel {
  position: sticky;
  top: 18px;
  overflow: hidden;
}

.help-center-category-panel > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 19px 18px 13px;
}

.help-center-category-panel > div strong {
  color: #2d3e59;
  font-size: 15px;
}

.help-center-category-panel > div span {
  color: #98a5b8;
  font-size: 11px;
  font-weight: 700;
}

.help-center-category-panel nav {
  display: grid;
  gap: 5px;
  padding: 4px 10px 12px;
}

.help-center-category-panel nav button {
  min-height: 42px;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: #687a97;
  text-align: left;
  cursor: pointer;
}

.help-center-category-panel nav button:hover {
  background: #f3f7ff;
  color: #477cdf;
}

.help-center-category-panel nav button.active {
  border-color: #cbdcff;
  background: linear-gradient(105deg, #edf5ff, #f3efff);
  color: #426fc7;
  box-shadow: inset 3px 0 #578bf3;
}

.help-center-category-panel nav i {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #edf3ff;
  color: #5f8ee9;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
}

.help-center-category-panel nav span {
  overflow: hidden;
  font-size: 12px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.help-center-category-panel nav b {
  color: #9aa7ba;
  font-size: 11px;
}

.help-center-category-home {
  width: calc(100% - 20px);
  min-height: 38px;
  margin: 0 10px 12px;
  border: 1px solid #e1e8f4;
  border-radius: 10px;
  background: #fafcff;
  color: #70819e;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.help-center-category-home:hover {
  border-color: #bad0f8;
  color: #447de6;
}

.help-center-question-panel {
  overflow: hidden;
}

.help-center-question-head {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 13px 19px;
  border-bottom: 1px solid #edf1f7;
  background: linear-gradient(180deg, #fff, #fbfcff);
}

.help-center-question-head > div {
  display: grid;
  gap: 3px;
}

.help-center-question-head > div span {
  color: #2f415e;
  font-size: 15px;
  font-weight: 800;
}

.help-center-question-head > div strong {
  color: #95a2b5;
  font-size: 11px;
}

.help-center-question-head > button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #6282bd;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.help-center-question-head > button:hover {
  color: #377df5;
}

.help-center-question-list {
  display: grid;
  gap: 9px;
  padding: 14px;
}

.help-center-question-row {
  width: 100%;
  min-height: 96px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 20px;
  align-items: center;
  gap: 14px;
  padding: 15px 16px;
  border: 1px solid #edf1f7;
  border-radius: 14px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: 160ms ease;
}

.help-center-question-row:hover {
  border-color: #c9dcff;
  background: linear-gradient(110deg, #fbfdff, #f8f7ff);
  box-shadow: 0 11px 26px rgba(61, 88, 140, 0.1);
  transform: translateY(-2px);
}

.help-center-question-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid #cfe0ff;
  border-radius: 12px;
  background: #f0f6ff;
  color: #578af1;
  font-size: 20px;
  font-weight: 750;
}

.help-center-question-icon.support {
  background: #f3f5fa;
  color: #6c7f9f;
  font-size: 15px;
}

.help-center-question-copy {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.help-center-question-copy > span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.help-center-question-copy b,
.help-center-question-copy em {
  padding: 3px 7px;
  border-radius: 999px;
  background: #edf3ff;
  color: #6685bd;
  font-size: 10px;
  font-style: normal;
  line-height: 1.2;
}

.help-center-question-copy em {
  background: #f1edff;
  color: #7960d7;
}

.help-center-question-copy > strong {
  overflow: hidden;
  color: #2a3b56;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.help-center-question-copy > small {
  overflow: hidden;
  color: #7a899f;
  font-size: 12px;
  line-height: 1.55;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.help-center-question-row > i {
  color: #95a9cc;
  font-size: 23px;
  font-style: normal;
  transition: transform 160ms ease;
}

.help-center-question-row:hover > i {
  color: #4d83eb;
  transform: translateX(3px);
}

.help-center-empty {
  min-height: 360px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 9px;
  text-align: center;
}

.help-center-empty > span {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #eff5ff;
  color: #6491e5;
  font-size: 25px;
}

.help-center-empty strong {
  color: #3a4b67;
}

.help-center-empty p {
  margin: 0;
  color: #8491a6;
  font-size: 13px;
}

.help-center-empty > div {
  display: flex;
  gap: 8px;
  margin-top: 5px;
}

.help-center-empty button {
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid #d9e4f6;
  border-radius: 9px;
  background: #fff;
  color: #5c79ab;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.help-center-detail-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
}

.help-center-back-list {
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid #dbe5f7;
  border-radius: 11px;
  background: #fff;
  color: #60779d;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(54, 77, 119, 0.06);
}

.help-center-back-list:hover {
  border-color: #a9c4fb;
  color: #367af3;
  transform: translateY(-1px);
}

.help-center-detail-card {
  overflow: hidden;
  border: 1px solid rgba(216, 225, 241, 0.95);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(42, 64, 105, 0.09);
}

.help-center-detail-card > header {
  padding: 38px clamp(28px, 6vw, 72px) 32px;
  border-bottom: 1px solid #edf1f7;
  background:
    radial-gradient(circle at 86% 15%, rgba(94, 102, 239, 0.1), transparent 25%),
    linear-gradient(180deg, #fbfdff, #f7faff);
  text-align: center;
}

.help-center-detail-card > header > div {
  display: flex;
  justify-content: center;
  gap: 7px;
  margin-bottom: 13px;
}

.help-center-detail-card > header span,
.help-center-detail-card > header b {
  padding: 4px 10px;
  border-radius: 999px;
  background: #edf3ff;
  color: #5d7fc0;
  font-size: 11px;
}

.help-center-detail-card > header b {
  background: #f0ecff;
  color: #765bd5;
}

.help-center-detail-card h1 {
  margin: 0;
  color: #1d2e49;
  font-size: clamp(25px, 3vw, 34px);
  line-height: 1.4;
}

.help-center-detail-body {
  width: min(820px, calc(100% - 48px));
  margin: 0 auto;
  padding: 38px 0 50px;
}

.help-center-quick-answer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  padding: 20px;
  border: 1px solid #cfe0fb;
  border-radius: 15px;
  background: linear-gradient(105deg, #f1f7ff, #f7f5ff);
}

.help-center-quick-answer > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: linear-gradient(135deg, #5795f9, #765ff0);
  color: #fff;
  font-weight: 850;
}

.help-center-quick-answer strong {
  color: #315690;
  font-size: 14px;
}

.help-center-quick-answer p {
  margin: 6px 0 0;
  color: #526a8e;
  font-size: 14px;
  line-height: 1.8;
}

.help-center-detail-section {
  margin-top: 30px;
}

.help-center-detail-section h3 {
  position: relative;
  margin: 0 0 14px;
  padding-left: 14px;
  color: #263955;
  font-size: 18px;
}

.help-center-detail-section h3::before {
  content: "";
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 4px;
  border-radius: 4px;
  background: linear-gradient(180deg, #4f93fb, #7b60ed);
}

.help-center-detail-section ul,
.help-center-detail-section ol {
  display: grid;
  gap: 9px;
  margin: 0;
  padding-left: 23px;
}

.help-center-detail-section li {
  padding-left: 3px;
  color: #53647e;
  font-size: 14px;
  line-height: 1.85;
}

.help-center-detail-section ol li::marker {
  color: #5c86d8;
  font-weight: 800;
}

.help-center-detail-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 34px;
  padding: 18px 20px;
  border: 1px solid #dbe5f5;
  border-radius: 14px;
  background: #fafcff;
}

.help-center-detail-action > div {
  display: grid;
  gap: 4px;
}

.help-center-detail-action span {
  color: #8a98ad;
  font-size: 11px;
  font-weight: 750;
}

.help-center-detail-action strong {
  color: #344763;
  font-size: 14px;
}

.help-center-detail-action button {
  min-height: 40px;
  padding: 0 15px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(120deg, #4f91fa, #735cf1);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(76, 96, 221, 0.2);
}

.help-center-detail-action button:hover {
  transform: translateY(-1px);
}

.help-center-detail-action i {
  font-style: normal;
}

.help-center-unresolved {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 26px;
  padding: 18px 20px;
  border: 1px solid #e6dfcf;
  border-radius: 14px;
  background: linear-gradient(105deg, #fffcf4, #fafcff);
}

.help-center-unresolved strong {
  color: #5d513e;
  font-size: 14px;
}

.help-center-unresolved p {
  margin: 5px 0 0;
  color: #827762;
  font-size: 12px;
  line-height: 1.65;
}

.help-center-unresolved button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid #dcd2bd;
  border-radius: 10px;
  background: #fff;
  color: #80683f;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.help-center-feedback-template {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 16px;
  margin-top: 30px;
  padding: 18px 20px;
  border: 1px solid #d7e2f4;
  border-radius: 14px;
  background: #f8faff;
}

.help-center-feedback-template span {
  color: #4c6387;
  font-size: 13px;
  font-weight: 800;
}

.help-center-feedback-template pre {
  margin: 10px 0 0;
  overflow-x: auto;
  color: #63738d;
  font: 12px/1.7 "SFMono-Regular", Consolas, monospace;
  white-space: pre-wrap;
}

.help-center-feedback-template button {
  min-height: 39px;
  padding: 0 14px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(120deg, #4f91fa, #735cf1);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.help-center-related {
  padding: 20px;
  border: 1px solid rgba(216, 225, 241, 0.95);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 15px 38px rgba(45, 66, 105, 0.07);
}

.help-center-related > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.help-center-related h2 {
  margin: 0;
  color: #2b3d59;
  font-size: 17px;
}

.help-center-related > div:first-child button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #6682b6;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.help-center-related > div:last-child {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.help-center-related > div:last-child button {
  min-width: 0;
  min-height: 92px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: center;
  gap: 7px;
  padding: 15px;
  border: 1px solid #e0e7f3;
  border-radius: 13px;
  background: #fff;
  color: #384b68;
  text-align: left;
  cursor: pointer;
}

.help-center-related > div:last-child button:hover {
  border-color: #bfd3fa;
  background: #fbfdff;
  transform: translateY(-1px);
}

.help-center-related > div:last-child span {
  grid-column: 1 / -1;
  color: #7690bd;
  font-size: 10px;
  font-weight: 750;
}

.help-center-related > div:last-child strong {
  min-width: 0;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.help-center-related > div:last-child i {
  color: #91a6ca;
  font-size: 20px;
  font-style: normal;
}

.help-center-not-found {
  min-height: 460px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  border: 1px solid #dde5f2;
  border-radius: 20px;
  background: #fff;
  text-align: center;
  box-shadow: 0 18px 44px rgba(44, 65, 104, 0.08);
}

.help-center-not-found > span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #eff5ff;
  color: #6390e5;
  font-size: 28px;
  font-weight: 800;
}

.help-center-not-found h2,
.help-center-not-found p {
  margin: 0;
}

.help-center-not-found p {
  color: #7b899f;
  font-size: 13px;
}

.help-center-not-found button {
  min-height: 40px;
  margin-top: 6px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(120deg, #4e91fa, #735df1);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 960px) {
  .help-center-workspace {
    grid-template-columns: 1fr;
  }

  .help-center-category-panel {
    position: static;
  }

  .help-center-category-panel > div,
  .help-center-category-home {
    display: none;
  }

  .help-center-category-panel nav {
    display: flex;
    padding: 10px;
    overflow-x: auto;
  }

  .help-center-category-panel nav button {
    flex: 0 0 auto;
    grid-template-columns: 24px auto auto;
  }

  .help-center-related > div:last-child {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.admin-page[data-active-feature="help"] .workspace {
    padding-left: 12px;
  }

  .help-center-page {
    width: 100%;
    padding: 20px 12px 34px 0;
  }

  .help-center-hero {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 20px;
  }

  .help-center-manual-button {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .help-center-question-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .help-center-question-row {
    grid-template-columns: auto minmax(0, 1fr) 16px;
    gap: 10px;
    padding: 14px 12px;
  }

  .help-center-question-copy > small {
    white-space: normal;
  }

  .help-center-detail-head {
    grid-template-columns: 1fr;
  }

  .help-center-back-list {
    justify-self: start;
  }

  .help-center-detail-card > header {
    padding: 30px 20px 25px;
    text-align: left;
  }

  .help-center-detail-card > header > div {
    justify-content: flex-start;
  }

  .help-center-detail-body {
    width: calc(100% - 36px);
    padding: 28px 0 36px;
  }

  .help-center-detail-action,
  .help-center-unresolved {
    align-items: flex-start;
    flex-direction: column;
  }

  .help-center-feedback-template {
    grid-template-columns: 1fr;
  }

  .help-center-feedback-template button {
    justify-self: start;
  }

  .help-center-related > div:first-child {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Crisis warning inbox */
.crisis-warning-page { position: relative; overflow: hidden; padding: 16px; border: 1px solid rgba(91, 117, 154, 0.12); border-radius: var(--radius, 8px); background: #fff; box-shadow: 0 14px 34px rgba(61, 78, 116, 0.08); }
.crisis-warning-page::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--theme-a), var(--theme-b), var(--theme-c)); }
.crisis-warning-page > * { position: relative; z-index: 1; }
.crisis-warning-page .feature-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.crisis-warning-page .feature-page-header h2 { margin: 5px 0 8px; }
.crisis-warning-page .feature-page-header p { margin: 0; color: var(--muted-text, #64748b); }
.crisis-warning-filters { display: grid; gap: 10px; padding: 0; border: 0; background: transparent; }
.crisis-warning-filter-fields { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; align-items: start; }
.crisis-warning-filters label, .crisis-warning-filter-control, .crisis-warning-actions label { display: grid; gap: 6px; min-width: 0; color: var(--muted-text, #64748b); font-size: 12px; }
.crisis-warning-filters label > span { min-height: 16px; font-weight: 700; }
.crisis-warning-filter-control > span { min-height: 16px; font-weight: 700; }
.crisis-warning-filters input, .crisis-warning-filters select, .crisis-warning-actions textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; padding: 8px 10px; background: #fff; color: inherit; }
.crisis-warning-filters input, .crisis-warning-filters select:not([multiple]) { min-height: 40px; }
.crisis-warning-filters select[multiple] { min-height: 96px; padding: 6px 8px; }
.crisis-warning-filters small { color: var(--muted-text, #64748b); font-size: 11px; }
.crisis-warning-risk-options { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-height: 40px; }
.crisis-warning-risk-option { position: relative; display: inline-flex !important; width: auto; cursor: pointer; }
.crisis-warning-risk-option input { position: absolute; width: 1px; height: 1px; min-height: 0; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.crisis-warning-risk-option span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 10px; border: 1px solid var(--line, #cbd5e1); border-radius: 999px; background: #fff; color: #64748b; font-size: 12px; font-weight: 700; transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease; }
.crisis-warning-risk-option input:focus-visible + span { outline: 3px solid rgba(37, 99, 235, .18); outline-offset: 2px; }
.crisis-warning-risk-option input:checked + span { box-shadow: inset 0 0 0 1px currentColor; }
.crisis-warning-risk-option-low input:checked + span { border-color: #22c55e; background: #f0fdf4; color: #15803d; }
.crisis-warning-risk-option-medium input:checked + span { border-color: #eab308; background: #fefce8; color: #a16207; }
.crisis-warning-risk-option-high input:checked + span { border-color: #f97316; background: #fff7ed; color: #c2410c; }
.crisis-warning-risk-option-critical input:checked + span { border-color: #ef4444; background: #fef2f2; color: #b91c1c; }
.crisis-warning-filter-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 8px; min-height: 62px; }
.crisis-warning-filter-actions button, .crisis-warning-detail-head button, .crisis-warning-actions button { min-height: 34px; padding: 7px 12px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; background: #fff; cursor: pointer; }
.crisis-warning-filter-actions .primary, .crisis-warning-actions .primary { background: linear-gradient(135deg, var(--theme-a), var(--theme-b) 62%, var(--theme-c)); color: #fff; border-color: transparent; box-shadow: 0 12px 24px var(--theme-shadow); }
.crisis-warning-summary { margin: 18px 0 10px; color: var(--muted-text, #64748b); font-size: 13px; }
.crisis-warning-table { width: 100%; margin-top: 12px; }
.crisis-warning-level { display: inline-flex; padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.crisis-warning-level-low { background: #dcfce7; color: #166534; }
.crisis-warning-level-medium { background: #fef3c7; color: #92400e; }
.crisis-warning-level-high { background: #ffedd5; color: #9a3412; }
.crisis-warning-level-critical { background: #fee2e2; color: #991b1b; }
.crisis-warning-detail { border: 1px solid var(--line, #e2e8f0); border-radius: 14px; padding: 18px; background: #fff; }
.crisis-warning-detail-head { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.crisis-warning-detail-head h3 { margin: 4px 0 16px; }
.crisis-warning-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 0 16px; }
.crisis-warning-meta div { min-width: 0; }
.crisis-warning-meta dt { color: var(--muted-text, #64748b); font-size: 12px; }
.crisis-warning-meta dd { margin: 3px 0 0; overflow-wrap: anywhere; }
.crisis-warning-reason { padding: 12px; background: #f8fafc; border-radius: 10px; margin-bottom: 12px; }
.crisis-warning-reason p { margin: 7px 0 0; white-space: pre-wrap; }
.crisis-warning-detail details { margin: 10px 0; }
.crisis-warning-detail pre { max-height: 180px; overflow: auto; white-space: pre-wrap; font-size: 11px; background: #f8fafc; padding: 10px; border-radius: 8px; }
.crisis-warning-actions { display: grid; gap: 10px; margin-top: 16px; }
.crisis-warning-actions textarea { min-height: 68px; resize: vertical; }
.crisis-warning-actions > div { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 1050px) { .crisis-warning-filter-fields { grid-template-columns: repeat(4, minmax(160px, 1fr)); } }
@media (max-width: 780px) { .crisis-warning-filter-fields { grid-template-columns: repeat(2, minmax(150px, 1fr)); } }
@media (max-width: 650px) { .crisis-warning-page { padding: 16px; } .crisis-warning-filters { padding: 0; } .crisis-warning-filter-fields { grid-template-columns: 1fr; } .crisis-warning-filter-actions { justify-content: stretch; } .crisis-warning-filter-actions button { flex: 1; } .crisis-warning-page .feature-page-header { flex-direction: column; } .crisis-warning-meta { grid-template-columns: 1fr; } }
.crisis-warning-pagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 16px; font-size: 13px; }
.crisis-warning-pagination button { padding: 6px 12px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; background: #fff; cursor: pointer; }
.crisis-warning-pagination button:disabled { opacity: .45; cursor: default; }

/* Counselor focused warning detail */
.crisis-warning-detail-page { padding: 0; border: 0; box-shadow: none; background: #f8fafc; }
.crisis-warning-detail-page::before { display: none; }
.crisis-warning-detail { max-width: 1180px; margin: 0 auto; padding: 26px; border: 0; background: transparent; }
.crisis-warning-detail { font-size: 13px; }
.crisis-warning-detail-head { margin-bottom: 20px; }
.crisis-warning-back { border: 0; background: transparent; color: #475569; padding: 0; margin-bottom: 14px; cursor: pointer; font-size: 13px; }
.crisis-warning-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.crisis-warning-title-row h3 { margin: 4px 0 0; font-size: 23px; color: #0f172a; }
.crisis-warning-title-row .crisis-warning-level { display: none; }
.crisis-warning-detail-subtitle { margin: 6px 0 0; color: #64748b; }
.crisis-warning-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; align-items: start; }
.crisis-warning-detail-grid main, .crisis-warning-side { display: grid; gap: 16px; }
.crisis-warning-card { border: 1px solid #e2e8f0; border-radius: 14px; padding: 18px; background: #fff; box-shadow: 0 2px 8px rgba(15,23,42,.03); }
.crisis-warning-summary-card { border-left: 4px solid #ef4444; }
.crisis-warning-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.crisis-warning-section-heading h4 { margin: 4px 0 0; font-size: 15px; color: #0f172a; }
.crisis-warning-count { color: #64748b; font-size: 12px; }
.crisis-warning-muted { margin: 0; color: #94a3b8; }
.crisis-warning-evidence-list, .crisis-warning-context-list { display: grid; gap: 10px; }
.crisis-warning-evidence-item { display: flex; gap: 10px; padding: 11px 12px; border-radius: 10px; background: #fff7ed; }
.crisis-warning-evidence-index { display: grid; place-items: center; flex: 0 0 22px; height: 22px; border-radius: 50%; background: #fed7aa; color: #9a3412; font-size: 12px; font-weight: 700; }
.crisis-warning-evidence-item strong { color: #9a3412; font-size: 12px; }
.crisis-warning-evidence-item p, .crisis-warning-context-item p { margin: 4px 0 0; white-space: pre-wrap; line-height: 1.55; font-size: 12px; }
.crisis-warning-context-item { padding: 11px 12px; border-radius: 10px; background: #f8fafc; }
.crisis-warning-context-meta { display: flex; justify-content: space-between; gap: 8px; color: #475569; font-size: 12px; }
.crisis-warning-context-meta time { color: #94a3b8; font-weight: 400; }
.crisis-warning-meta { grid-template-columns: 1fr; gap: 13px; margin: 0; }
.crisis-warning-meta dd { color: #0f172a; line-height: 1.5; }
.crisis-warning-action-card textarea { min-height: 108px; margin: 8px 0 12px; }
.crisis-warning-action-card label { display: grid; color: #64748b; font-size: 12px; }
.crisis-warning-action-card button { font-size: 12px; }
.crisis-warning-read-success { border-color: #16a34a !important; background: #dcfce7 !important; color: #15803d !important; cursor: default !important; font-weight: 700; }
.crisis-warning-action-card .crisis-warning-actions { margin-top: 0; }
.crisis-warning-technical { border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; }
.crisis-warning-technical summary { padding: 13px 16px; color: #64748b; cursor: pointer; font-size: 13px; }
.crisis-warning-technical-body { padding: 0 16px 16px; }
.crisis-warning-technical pre { max-height: 260px; margin: 0; }
@media (max-width: 850px) { .crisis-warning-detail-grid { grid-template-columns: 1fr; } .crisis-warning-side { grid-row: 1; } }
.field-record { display: grid; gap: 12px; min-width: 0; }
.media-transcript-title-block { display: grid; gap: 4px; flex: 1; min-width: 0; }
.media-transcript-title-block strong { font-size: 17px; }
.media-transcript-title-block #transcriptMeta { font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.field-record-header-actions { display: flex; margin-left: auto; flex-shrink: 0; }
.field-record-header-actions:empty { display: none; }
#fieldRecordRetranscribe { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 174px; min-height: 42px; padding: 10px 16px; border: 1px solid #2563eb; border-radius: 10px; background: #2563eb; color: #fff; box-shadow: 0 3px 8px rgba(37, 99, 235, .2); font-size: 14px; font-weight: 650; line-height: 1.4; white-space: nowrap; cursor: pointer; transition: background .15s, box-shadow .15s, transform .15s; }
#fieldRecordRetranscribe svg { width: 18px; height: 18px; flex-shrink: 0; }
#fieldRecordRetranscribe:hover:not(:disabled) { background: #1d4ed8; border-color: #1d4ed8; box-shadow: 0 5px 12px rgba(37, 99, 235, .26); transform: translateY(-1px); }
#fieldRecordRetranscribe:active:not(:disabled) { transform: translateY(0); box-shadow: 0 2px 5px rgba(37, 99, 235, .18); }
#fieldRecordRetranscribe:focus-visible { outline: 2px solid #2563eb; outline-offset: 3px; }
#fieldRecordRetranscribe:disabled { background: #e8eef0; border-color: #d5dfe3; color: #74818a; box-shadow: none; cursor: not-allowed; opacity: 1; }
#fieldRecordRetranscribe.is-loading { background: #2563eb; border-color: #2563eb; color: #fff; cursor: wait; }
#fieldRecordRetranscribe.is-loading svg { animation: field-record-refresh-spin 1s linear infinite; }
@keyframes field-record-refresh-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #fieldRecordRetranscribe { transition: none; }
  #fieldRecordRetranscribe.is-loading svg { animation: none; }
}
.field-record-toolbar, .field-record-roles, .field-record-pagination { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.field-record-toolbar label, .field-record-roles label { display: flex; align-items: center; gap: 6px; font-size: 13px; white-space: nowrap; }
.field-record-toolbar select { max-width: 340px; }
.field-record-toolbar input[type="search"] { flex: 1; min-width: 180px; }
.field-record-toolbar input[type="checkbox"] { width: auto; }
.field-record audio { width: 100%; height: 40px; }
.field-record #fieldRecordNote { margin: 0; font-size: 13px; line-height: 1.6; }
.field-record-rows { max-height: 620px; overflow-y: auto; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.field-record-row { padding: 12px 14px; border-bottom: 1px solid var(--line); border-left: 3px solid var(--teal-soft); }
.field-record-row:last-child { border-bottom: 0; }
.field-record-row-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; font-size: 12px; }
.field-record-speaker { color: var(--teal); font-weight: 600; }
.field-record-row p { margin: 6px 0 0; font-size: 15px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.field-record-play { padding: 2px 6px; min-height: 24px; font-size: 12px; border: none; background: transparent; color: var(--teal); }
.field-record-row.is-compact, .field-record-row.is-brief { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; padding: 5px 14px; background: #fafcfc; }
.field-record-row.is-compact p, .field-record-row.is-brief p { margin: 0; font-size: 14px; }
.field-record-row.is-playing { background: var(--teal-soft); border-left-color: var(--teal); }
.field-record-edit { margin-top: 4px; font-size: 12px; color: var(--muted); }
.field-record-edit[open] { width: 100%; }
.field-record-edit summary, .field-record-original summary, .field-record-fulltext summary { cursor: pointer; font-size: 13px; }
.field-record-edit label { display: block; margin: 8px 0; }
.field-record-edit textarea { width: 100%; min-height: 72px; resize: vertical; font-size: 14px; }
.field-record-pagination { justify-content: center; font-size: 13px; }
.field-record-original pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 240px; overflow: auto; padding: 10px; font: inherit; font-size: 13px; background: var(--surface); border: 1px solid var(--line); }
.field-record-fulltext #transcriptPaste { margin-top: 8px; }
@media (max-width: 600px) {
  .media-transcript-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 12px; }
  .media-transcript-title-block { display: contents; }
  .media-transcript-title-block #transcriptMeta { grid-column: 1 / -1; grid-row: 2; }
  .field-record-header-actions { grid-column: 2; grid-row: 1; }
  .field-record-toolbar { align-items: stretch; }
  .field-record-toolbar select { max-width: 100%; min-width: 0; }
  .field-record-toolbar label:first-child { max-width: 100%; }
  .field-record-rows { max-height: 520px; }
}

/* 个案表单的多行文本框统一按内容完整展开。 */
.tf-field textarea.tf-auto-grow {
  box-sizing: border-box;
  /* 三行正文，加上下内边距与边框。 */
  min-height: calc(3lh + 26px);
  max-height: none;
  overflow: hidden;
  resize: none;
}


/* Shared geometry; only explicitly frequent actions receive emphasis. */
.admin-page #featureView .org-admin-controls button:not(.modal-close) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: auto;
  min-width: 80px;
  max-width: 100%;
  min-height: 36px;
  margin: 0;
  padding: 7px 14px;
  flex: 0 0 auto;
  justify-self: start;
  vertical-align: middle;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  -webkit-text-fill-color: currentColor;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  box-shadow: none;
  transform: none;
  transition: background-color 0.16s ease, border-color 0.16s ease;
}

.admin-page #featureView .org-admin-controls button:not(.modal-close):hover:not(:disabled) {
  border-color: #b9c3cf;
  background: #f8fafc;
  box-shadow: none;
  transform: none;
}

.admin-page #featureView .org-admin-controls button.org-action-frequent {
  border-color: #d9a16a;
  background: #f7d5b0;
  color: #653b1c;
  font-weight: 600;
}

.admin-page #featureView .org-admin-controls button.org-action-frequent:hover:not(:disabled) {
  border-color: #c48b54;
  background: #f1c696;
}

/* Destructive maintenance stays quiet until interacted with. */
.admin-page #featureView .org-admin-controls button:is(.org-action-caution, [data-remove-assignment], [data-remove-user-assignment], [data-delete-home-school-parent]):hover:not(:disabled) {
  border-color: #cb8e8e;
  background: #fff7f7;
  color: #984343;
}

.admin-page #featureView .org-admin-controls button:not(.modal-close):focus-visible {
  outline: 3px solid rgba(100, 116, 139, 0.25);
  outline-offset: 2px;
  box-shadow: none;
}

.admin-page #featureView .org-admin-controls button:not(.modal-close):disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

.admin-page #featureView .org-admin-controls :is(.org-action-group, .form-actions, .inline-actions, .role-perm-actions, .home-school-parent-detail-actions) {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-page #featureView .org-admin-controls .form-actions {
  grid-column: 1 / -1;
}

.admin-page #featureView .org-admin-controls .section-title-actions {
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-page #featureView .org-admin-controls .home-school-filter {
  align-items: end;
  gap: 8px;
}

.admin-page #featureView .org-admin-controls .home-school-filter :is(input, select) {
  min-height: 36px;
}

.admin-page #featureView .org-admin-controls .org-action-status {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  color: var(--muted);
  font-size: 14px;
}

.admin-page #featureView .org-admin-controls #activeSchoolContext {
  scroll-margin-top: 24px;
  margin-top: 20px;
}

/* Region navigation stays within the region workspace. */
.region-breadcrumbs { margin: 0 0 20px; font-size: 14px; line-height: 1.6; }
.region-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.region-breadcrumbs li { display: inline-flex; align-items: center; gap: 8px; }
.region-breadcrumbs li + li::before { content: "/"; color: var(--muted); }
.region-breadcrumbs a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.region-breadcrumbs [aria-current="page"] { color: var(--muted); }
.region-table-scroll { overflow-x: auto; }
.region-pagination { margin-top: 16px; }

.region-record-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin: 16px 0 24px; }
.region-record-facts dt { color: var(--muted); font-size: 14px; margin-bottom: 6px; }
.region-record-facts dd { margin: 0; overflow-wrap: anywhere; }
.region-record-section { border: 1px solid var(--line); border-radius: 8px; padding: 16px; margin: 12px 0; }
.region-record-section summary { cursor: pointer; font-weight: 600; }
.region-record-text { white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 12px; }
.region-record-report { overflow-x: auto; margin-top: 12px; }

#pendingRecordings { padding: .65rem; margin: .5rem 0; border: 1px solid #a8cfc4; border-radius: .5rem; }
#pendingRecordings summary { cursor: pointer; font-weight: 600; }
.pending-recording { display: grid; gap: .4rem; padding-top: .65rem; overflow-wrap: anywhere; }
.pending-recording audio, .pending-recording select { width: 100%; min-width: 0; }
