/* 校园义诊：公开登记与后台记录管理。 */
.clinic-hero { padding-block: clamp(42px, 6vw, 76px); }
.clinic-section { padding-top: 36px; }
.clinic-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: clamp(32px, 5vw, 76px); align-items: start; }
.clinic-layout > * { min-width: 0; }
.clinic-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--accent-dim); color: var(--accent); margin-bottom: 18px; }
.clinic-icon svg { width: 25px; height: 25px; }
.clinic-intro > p { color: var(--fg-dim); margin-top: 16px; font-size: 14px; }
.clinic-intro .h-xl { font-size: clamp(26px, 2.8vw, 38px); line-height: 1.35; }
.clinic-steps { list-style: none; counter-reset: clinic-step; margin-top: 28px; }
.clinic-steps li { counter-increment: clinic-step; position: relative; padding: 0 0 24px 44px; }
.clinic-steps li::before { content: counter(clinic-step, decimal-leading-zero); position: absolute; left: 0; color: var(--accent); font-family: var(--font-mono); font-size: 13px; padding-top: 3px; }
.clinic-steps b { display: block; font-size: 15px; font-weight: 500; }
.clinic-steps span { display: block; color: var(--fg-dim); font-size: 13px; margin-top: 4px; }
.clinic-privacy { display: flex; gap: 10px; border-top: 1px solid var(--line); padding-top: 20px; }
.clinic-privacy svg { width: 17px; height: 17px; flex: 0 0 17px; margin-top: 4px; }
.clinic-card { background: var(--surface); border: 1px solid var(--line-strong); border-radius: 20px; padding: clamp(22px, 3vw, 36px); }
.clinic-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.clinic-card-head h2 { font-size: 23px; }
.clinic-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
#clinic-fields { border: 0; padding: 0; min-width: 0; }
#clinic-fields:disabled { opacity: .5; }
#clinic-fields .field label span { color: var(--accent); }
#clinic-fields input, #clinic-fields textarea, #clinic-edit-form input, #clinic-edit-form textarea { min-width: 0; font-size: 16px; }
#clinic-fields textarea, #clinic-edit-form textarea { resize: vertical; }
#clinic-submit { width: 100%; }
.clinic-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.clinic-success { text-align: center; padding: 38px 0 16px; outline: none; }
.clinic-success h3 { font-size: 26px; margin-bottom: 10px; }
.clinic-success p { color: var(--fg-dim); font-size: 14px; margin: 14px 0 22px; }
#clinic-receipt { white-space: pre-line; color: var(--accent); line-height: 2; }
.clinic-success[hidden], #clinic-form[hidden], #clinic-retry[hidden] { display: none; }

/* 后台表格在自身容器内滚动，长故障描述保留换行。 */
.data-table.clinic-table { min-width: 1218px; table-layout: fixed; }
.clinic-table .clinic-col-check { width: 48px; }
.clinic-table .clinic-col-id { width: 70px; }
.clinic-table .clinic-col-name { width: 100px; }
.clinic-table .clinic-col-contact { width: 155px; }
.clinic-table .clinic-col-college { width: 150px; }
.clinic-table .clinic-col-problem { width: 275px; }
.clinic-table .clinic-col-technician { width: 115px; }
.clinic-table .clinic-col-time { width: 175px; }
.clinic-table .clinic-col-actions { width: 130px; }
.clinic-table td { overflow-wrap: anywhere; white-space: pre-wrap; }
.clinic-table td small { display: block; color: var(--fg-dim); font-size: 11px; margin-top: 6px; }
.clinic-table input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--accent); }
#clinic-filter { display: grid; grid-template-columns: minmax(160px, 1fr) 155px 155px auto; gap: 12px; align-items: end; margin: 0 0 14px; }
#clinic-filter .field { margin: 0; min-width: 0; }
#clinic-filter input { min-width: 0; width: 100%; padding: 9px 10px; font-size: 13px; color-scheme: dark; }
.clinic-filter-actions, .clinic-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.clinic-toolbar { margin-bottom: 12px; }
#clinic-total { margin-right: auto; }
#clinic-selection { font-size: 12px; color: var(--fg-dim); }
.clinic-dialog { position: fixed; inset: 0; margin: auto; width: min(620px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow-y: auto; padding: clamp(22px, 3vw, 34px); border: 1px solid var(--line-strong); border-radius: 18px; background: var(--bg-2); color: var(--fg); }
.clinic-dialog::backdrop { background: rgba(0, 0, 0, .75); backdrop-filter: blur(6px); }
.clinic-dialog h3 { font-size: 22px; }
.clinic-dialog .form-actions { flex-wrap: wrap; }
@media (max-width: 1100px) { #clinic-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .clinic-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .clinic-intro { order: 2; }
  .clinic-intro .clinic-steps { margin-top: 20px; }
  .clinic-hero { padding-block: 36px; }
  .clinic-section { padding-top: 20px; }
}
@media (max-width: 560px) {
  .clinic-form-row { grid-template-columns: minmax(0, 1fr); }
  #clinic-filter { grid-template-columns: minmax(0, 1fr); }
  .clinic-card-head h2 { font-size: 21px; }
}
