/* ASM Course Planner v0.7.11 — Access Planit migration workspace */

.v079-migration-shell { display: grid; gap: 18px; }
.v079-intro-card,
.v079-upload-card,
.v079-run-detail,
.v079-history-card,
.v079-review-section,
.v079-commit-card {
  border: 1px solid var(--line-soft);
  border-radius: 12px;
  background: #fff;
}
.v079-intro-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 22px;
  padding: 20px;
  background: linear-gradient(145deg, #f8fbf6 0%, #fff 58%);
  border-color: #cbdcc1;
}
.v079-intro-card h2,
.v079-section-heading h3,
.v079-run-heading h3 { margin: 3px 0 5px; }
.v079-intro-card p,
.v079-section-heading p,
.v079-run-heading p { margin: 0; color: var(--muted); }
.v079-intro-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  align-content: center;
}
.v079-intro-points span {
  min-height: 42px;
  display: grid;
  place-items: center;
  padding: 8px;
  border: 1px solid #cbdcc1;
  border-radius: 8px;
  background: rgba(255,255,255,.88);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}
.v079-upload-card,
.v079-history-card,
.v079-run-detail { padding: 18px; }
.v079-section-heading,
.v079-run-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.v079-limit,
.v079-count {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8f9fb;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}
.v079-file-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.v079-file-card {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fbfcfd;
}
.v079-file-card:focus-within { border-color: var(--focus); box-shadow: 0 0 0 3px rgba(132,173,255,.2); }
.v079-file-card > span:not(.v079-file-title) { min-height: 34px; color: var(--muted); font-size: 11px; }
.v079-file-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 900; overflow-wrap: anywhere; }
.v079-file-title em {
  flex: 0 0 auto;
  padding: 2px 6px;
  border-radius: 999px;
  background: #eaf4e5;
  color: var(--primary-dark);
  font-size: 9px;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.v079-file-title em.optional { background: #eef1f5; color: var(--muted); }
.v079-file-card input[type="file"] { width: 100%; font-size: 11px; }
.v079-upload-notes {
  margin-top: 12px;
  padding: 11px 13px;
  border: 1px solid #d8e3d2;
  border-radius: 8px;
  background: #f8fbf6;
  color: #45563d;
  font-size: 11px;
}
.v079-upload-notes p { margin: 0; }
.v079-upload-notes p + p { margin-top: 6px; }
.v079-upload-actions { margin-top: 12px; }

.v079-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}
.v079-summary-card {
  min-width: 0;
  display: grid;
  align-content: space-between;
  gap: 12px;
  min-height: 130px;
  padding: 13px;
  border: 1px solid var(--line-soft);
  border-radius: 9px;
  background: #fbfcfd;
}
.v079-summary-card p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.v079-action-list { display: flex; flex-wrap: wrap; gap: 5px; }
.v079-action {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  padding: 3px 6px;
  border: 1px solid var(--line-soft);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: 10px;
}
.v079-action strong { color: var(--ink); font-size: 12px; }
.v079-action-new,
.v079-action-created { border-color: #b8d7a6; background: #f2faee; color: #315c20; }
.v079-action-changed,
.v079-action-updated,
.v079-action-matched-updated { border-color: #b8cce7; background: #f1f6fc; color: #244e7f; }
.v079-action-conflict,
.v079-action-kept_local { border-color: #e2bd61; background: #fff9e7; color: #6c4e00; }

.v079-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0;
}
.v079-stat-grid article {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
}
.v079-stat-grid article > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.v079-stat-grid article > div { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; }
.v079-stat-grid strong { font-size: 15px; }
.v079-stat-grid small { color: var(--muted); text-align: right; }

.v079-run-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.v079-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f4f6f8;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.v079-status-completed { border-color: #aecd9f; background: #eef8e9; color: #315c20; }
.v079-status-previewed { border-color: #abc3e3; background: #eff5fc; color: #244e7f; }
.v079-status-importing { border-color: #d7bf72; background: #fff9e5; color: #6c4e00; }
.v079-status-failed { border-color: #e0a5aa; background: #fff0f1; color: #8a1f28; }
.v079-status-cancelled { opacity: .72; }
.v079-success-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border: 1px solid #b8d7a6;
  border-radius: 8px;
  background: #f2faee;
  color: #315c20;
}
.v079-success-note span { font-size: 11px; }

.v079-review-section { margin-top: 14px; padding: 15px; background: #fbfcfd; }
.v079-review-section.warning { border-color: #e2c56f; background: #fffdf5; }
.v079-review-section.danger { border-color: #df9fa5; background: #fff8f8; }
.v079-warning-list { margin: 0; padding-left: 20px; color: #66500a; font-size: 12px; }
.v079-warning-list li + li { margin-top: 5px; }
.v079-detail-stack { display: grid; gap: 7px; margin-top: 12px; }
.v079-detail-stack details { border: 1px solid var(--line-soft); border-radius: 7px; background: #fff; }
.v079-detail-stack summary { padding: 8px 10px; cursor: pointer; font-weight: 800; }
.v079-detail-stack summary span { float: right; color: var(--muted); }
.v079-detail-stack ul { max-height: 260px; overflow: auto; margin: 0; padding: 0 30px 10px; color: var(--muted); font-size: 11px; }
.v079-review-list,
.v079-duplicate-list,
.v079-conflict-list { display: grid; gap: 8px; }
.v079-review-row,
.v079-duplicate-row,
.v079-conflict-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(280px, 1.2fr);
  gap: 12px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fff;
}
.v079-review-row strong,
.v079-duplicate-row strong,
.v079-conflict-row strong { display: block; overflow-wrap: anywhere; }
.v079-review-row small,
.v079-duplicate-row small,
.v079-conflict-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.v079-review-row select,
.v079-duplicate-row select { width: 100%; min-height: 38px; border: 1px solid var(--line); border-radius: 7px; padding: 6px 9px; background: #fff; }
.v079-duplicate-row label > span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 900; }
.v079-conflict-row { grid-template-columns: auto minmax(0, 1fr); align-items: flex-start; }
.v079-conflict-row input { margin-top: 3px; }
.v079-commit-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 14px;
  padding: 14px;
  border-color: #bad1ad;
  background: #f8fbf6;
}
.v079-confirm-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; align-items: flex-start; }
.v079-confirm-row input { margin-top: 3px; }
.v079-confirm-row strong,
.v079-confirm-row small { display: block; }
.v079-confirm-row small { margin-top: 3px; color: var(--muted); }

.v079-history-list { display: grid; gap: 8px; }
.v079-history-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(220px, 1fr) minmax(240px, 1.4fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 11px;
  border: 1px solid var(--line-soft);
  border-radius: 8px;
  background: #fbfcfd;
}
.v079-history-row > div { min-width: 0; }
.v079-history-row strong { display: block; }
.v079-history-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.v079-history-status { display: flex; align-items: center; gap: 8px; }
.v079-history-summary .v079-action-list { flex-wrap: nowrap; overflow: hidden; }

@media (max-width: 1180px) {
  .v079-file-grid,
  .v079-summary-grid,
  .v079-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v079-history-row { grid-template-columns: minmax(150px, .8fr) minmax(200px, 1fr) auto; }
  .v079-history-summary { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .v079-intro-card { grid-template-columns: 1fr; }
  .v079-section-heading,
  .v079-run-heading,
  .v079-commit-card,
  .v079-success-note { flex-direction: column; align-items: stretch; }
  .v079-run-actions { justify-content: flex-start; }
  .v079-review-row,
  .v079-duplicate-row { grid-template-columns: 1fr; }
  .v079-history-row { grid-template-columns: 1fr; }
  .v079-history-summary { grid-column: auto; }
}
@media (max-width: 520px) {
  .v079-file-grid,
  .v079-summary-grid,
  .v079-stat-grid,
  .v079-intro-points { grid-template-columns: 1fr; }
  .v079-upload-card,
  .v079-history-card,
  .v079-run-detail { padding: 13px; }
}


/* Imported Access Planit history shown in normal course and delegate views. */
.v079-course-source { margin-top: 1rem; border: 1px solid var(--border, #d8dee8); border-radius: 12px; overflow: hidden; background: var(--panel, #fff); }
.v079-course-source > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; cursor: pointer; background: var(--surface, #f8fafc); }
.v079-course-source > summary span { display: grid; gap: .12rem; }
.v079-course-source > summary small { color: var(--muted, #657080); }
.v079-course-source > summary em { font-style: normal; font-size: .75rem; font-weight: 800; padding: .2rem .5rem; border-radius: 999px; background: rgba(24,115,155,.1); }
.v079-booking-list { display: grid; }
.v079-booking-row { display: grid; grid-template-columns: minmax(12rem,.9fr) minmax(18rem,1.4fr) auto; align-items: center; gap: 1rem; padding: .75rem 1rem; }
.v079-booking-row + .v079-booking-row { border-top: 1px solid var(--border, #d8dee8); }
.v079-booking-row > div:first-child, .v079-booking-count { display: grid; gap: .12rem; }
.v079-booking-row span, .v079-booking-row small { color: var(--muted, #657080); font-size: .76rem; overflow-wrap: anywhere; }
.v079-booking-meta { display: flex; flex-wrap: wrap; gap: .3rem .75rem; }
.v079-booking-count { min-width: 5rem; text-align: right; }
.v079-booking-count strong { font-size: 1.2rem; }
.v079-imported-delegate-meta { color: #145475; font-weight: 650; }
.v079-historical-certificate { border-color: rgba(24,115,155,.3); background: rgba(24,115,155,.06); }
.v079-history-certificate-note { display: inline-flex; align-items: center; border-radius: 999px; padding: .28rem .58rem; background: rgba(24,115,155,.1); color: #145475; font-size: .75rem; font-weight: 700; }
@media (max-width: 800px) {
  .v079-booking-row { grid-template-columns: 1fr; }
  .v079-booking-count { text-align: left; }
}
@media (prefers-color-scheme: dark) {
  .v079-imported-delegate-meta, .v079-history-certificate-note { color: #8bd0ed; }
}
