/* L08角色迁移：在保留原页面视觉语言的基础上补充课程证据链。 */
.l08-course-handoff{
  margin:18px 0;display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);
  gap:16px;padding:16px;border:1px solid rgba(18,112,91,.28);border-radius:16px;background:#f1faf6;
}
.l08-course-handoff h2,.l08-course-handoff p{margin:0}.l08-course-handoff h2{font-size:18px}
.l08-course-handoff p{font-size:13px;line-height:1.75;color:#4c625b}
.l08-handoff-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.l08-handoff-preview{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center}
.l08-handoff-preview img{width:150px;aspect-ratio:4/3;object-fit:contain;background:#fff;border:1px solid #d9e3de;border-radius:10px}
.l08-handoff-preview dl{display:grid;grid-template-columns:74px 1fr;gap:5px 9px;margin:0;font-size:12px}
.l08-handoff-preview dt{color:#728079}.l08-handoff-preview dd{margin:0;color:#223b32;overflow-wrap:anywhere}
.l08-handoff-empty{min-height:112px;display:grid;place-items:center;border:1px dashed #9fb9ae;border-radius:12px;color:#677b73;text-align:center;padding:14px}

.l08-stage-dashboard{position:sticky;top:10px;z-index:14;margin:14px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid #d8ded9;border-radius:14px;box-shadow:0 7px 24px rgba(32,46,40,.08)}
.l08-stage-card{border:1px solid #d7ded9;border-radius:10px;padding:9px 11px;background:#fff;min-height:64px;display:flex;gap:9px;align-items:flex-start;text-align:left;color:#243a32}
.l08-stage-card b{display:block;font-size:12px}.l08-stage-card small{display:block;margin-top:3px;color:#718078;line-height:1.35}
.l08-stage-card .l08-stage-number{width:27px;height:27px;flex:0 0 27px;border-radius:8px;display:grid;place-items:center;background:#eef2ef;font-weight:800}
.l08-stage-card.is-ready{border-color:#2f9b78;background:#f1faf6}.l08-stage-card.is-ready .l08-stage-number{background:#1f8063;color:#fff}
.l08-stage-card.is-confirmed{border-color:#d59b28;background:#fff8dd}.l08-stage-card.is-confirmed .l08-stage-number{background:#1f2422;color:#fff}

.l08-injected-block{margin:16px 0;padding:14px;border:1px solid #d8ded9;border-radius:14px;background:#fbfcfa}
.l08-injected-block h3{margin:0 0 5px;font-size:16px}.l08-injected-block>p{margin:0 0 12px;color:#6b7872;font-size:12.5px;line-height:1.7}
.l08-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.l08-media-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.l08-media-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid #d8ded9;border-radius:12px;background:#fff;min-width:0}
.l08-media-card strong{font-size:13px}.l08-media-card small{color:#78847e;line-height:1.5}
.l08-media-preview{position:relative;aspect-ratio:4/3;border:1px dashed #b7c1bc;border-radius:9px;background:#f4f5f2;display:grid;place-items:center;overflow:hidden;color:#79857f;font-size:12px;text-align:center;padding:8px}
.l08-media-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#f4f5f2}
.l08-media-card input[type=file]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.l08-media-card label{min-height:44px;display:grid;place-items:center;border:1px solid #2a765f;border-radius:9px;color:#155d49;font-weight:700;font-size:12px;cursor:pointer}
.l08-media-card label:hover{background:#eef8f4}
.l08-media-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:18px}

.l08-variant-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.l08-variant-controls label{display:block;font-size:12px;font-weight:700}.l08-variant-controls input{margin-top:5px;width:100%}
.l08-revision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.l08-revision-grid label{display:block;font-size:12px;font-weight:700}.l08-revision-grid textarea,.l08-revision-grid input{width:100%;margin-top:5px}
.l08-revision-grid .wide{grid-column:1/-1}
.l08-adoption{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.l08-adoption label{display:flex;align-items:center;gap:5px;border:1px solid #d7ded9;padding:7px 10px;border-radius:999px;background:#fff}

.l08-toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:14px}.l08-toolbar .l08-readiness{font-size:12px;color:#52655d;line-height:1.6}
.l08-course-status{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:30;max-width:min(430px,calc(100vw - 28px));padding:10px 14px;border-radius:12px;background:#17241f;color:#fff;font-size:12px;box-shadow:0 12px 32px rgba(0,0,0,.2);opacity:0;transform:translateY(16px);pointer-events:none;transition:.2s}
.l08-course-status.show{opacity:1;transform:none}.l08-course-status.error{background:#8d2f29}
.l08-mobile-mapping-note{display:none}

@media(max-width:900px){
  .l08-course-handoff{grid-template-columns:1fr}.l08-stage-dashboard{overflow-x:auto;grid-template-columns:repeat(4,minmax(180px,1fr));top:0}
  .l08-media-grid,.l08-variant-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .step-nav{position:static!important}.l08-stage-dashboard{position:sticky;top:0;margin-left:-2px;margin-right:-2px;padding:6px;grid-template-columns:repeat(4,minmax(158px,1fr));scroll-snap-type:x proximity}
  .l08-stage-card{scroll-snap-align:start;min-height:58px}.l08-media-grid,.l08-media-grid.cols-2,.l08-variant-controls,.l08-revision-grid{grid-template-columns:1fr}
  .l08-revision-grid .wide{grid-column:auto}.l08-handoff-preview{grid-template-columns:1fr}.l08-handoff-preview img{width:100%;max-height:220px}
  .mapping-table{min-width:0!important}.mapping-table thead{display:none}.mapping-table,.mapping-table tbody,.mapping-table tr,.mapping-table td{display:block;width:100%}.mapping-table tr{margin:9px 0;border:1px solid #d8ded9;border-radius:10px;padding:8px}.mapping-table td{border:0!important;padding:5px!important}.mapping-table td:first-child{font-weight:800;color:#155d49}.mapping-scroll{overflow:visible!important}.l08-mobile-mapping-note{display:block;color:#6e7d75;font-size:12px}
  .btn,.btn.small{min-height:44px}.step-panel{scroll-margin-top:78px}
}
